From cd799f0d747ca6c379958731d09004f6a453672a Mon Sep 17 00:00:00 2001 From: Martin Edenhofer Date: Sun, 30 Aug 2015 00:01:38 +0200 Subject: [PATCH] Added App.Wizard controller to reduce lines of code. --- .../_application_controller_generic.js.coffee | 43 +++++++- .../app/controllers/_channel/email.js.coffee | 62 +----------- .../app/controllers/getting_started.js.coffee | 98 +++---------------- .../channel/email_account_overview.jst.eco | 64 ++++++------ .../email_notification.jst.eco | 1 + app/controllers/channels_controller.rb | 6 +- 6 files changed, 97 insertions(+), 177 deletions(-) diff --git a/app/assets/javascripts/app/controllers/_application_controller_generic.js.coffee b/app/assets/javascripts/app/controllers/_application_controller_generic.js.coffee index 4d9568c00..012745547 100644 --- a/app/assets/javascripts/app/controllers/_application_controller_generic.js.coffee +++ b/app/assets/javascripts/app/controllers/_application_controller_generic.js.coffee @@ -596,4 +596,45 @@ class App.Sidebar extends App.Controller @currentTab = name # show sidebar if not shown - @showSidebar() \ No newline at end of file + @showSidebar() + +class App.Wizard extends App.Controller + goToSlide: (e) => + e.preventDefault() + slide = $(e.target).data('slide') + @showSlide(slide) + + showSlide: (name) => + @hideAlert(name) + @$('.setup.wizard').addClass('hide') + @$(".setup.wizard.#{name}").removeClass('hide') + @$(".setup.wizard.#{name} input, .setup.wizard.#{name} select").first().focus() + + showAlert: (screen, message) => + @$(".#{screen}").find('.alert').removeClass('hide').text( App.i18n.translateInline( message ) ) + + hideAlert: (screen) => + @$(".#{screen}").find('.alert').addClass('hide') + + hideAlerts: => + @$('.form-group').removeClass('has-error') + @$('.alert').addClass('hide') + + disable: (e) => + @formDisable(e) + @$('.wizard-controls .btn').attr('disabled', true) + + enable: (e) => + @formEnable(e) + @$('.wizard-controls .btn').attr('disabled', false) + + hide: (e) => + e.preventDefault() + @el.modal('hide') + + showInvalidField: (screen, fields) => + @$(".#{screen}").find('.form-group').removeClass('has-error') + return if !fields + for field, type of fields + if type + @$(".#{screen}").find("[name=\"options::#{field}\"]").closest('.form-group').addClass('has-error') diff --git a/app/assets/javascripts/app/controllers/_channel/email.js.coffee b/app/assets/javascripts/app/controllers/_channel/email.js.coffee index 3ff4c697e..339cce9b4 100644 --- a/app/assets/javascripts/app/controllers/_channel/email.js.coffee +++ b/app/assets/javascripts/app/controllers/_channel/email.js.coffee @@ -342,7 +342,7 @@ class App.ChannelEmailAccountOverview extends App.Controller callback: @load ) -class App.ChannelEmailAccountWizard extends App.Controller +class App.ChannelEmailAccountWizard extends App.Wizard elements: '.modal-body': 'body' @@ -637,43 +637,11 @@ class App.ChannelEmailAccountWizard extends App.Controller @showAlert('js-intro', 'Unable to verify sending and receiving. Please check your settings.') ) - goToSlide: (e) => - e.preventDefault() - slide = $(e.target).data('slide') - @showSlide(slide) - - showSlide: (name) => - @hideAlert(name) - @$('.setup.wizard').addClass('hide') - @$(".setup.wizard.#{name}").removeClass('hide') - @$(".setup.wizard.#{name} input, .setup.wizard.#{name} select").first().focus() - - showAlert: (screen, message) => - @$(".#{screen}").find('.alert').removeClass('hide').text( App.i18n.translateInline( message ) ) - - hideAlert: (screen) => - @$(".#{screen}").find('.alert').addClass('hide') - - disable: (e) => - @formDisable(e) - @$('.wizard-controls .btn').attr('disabled', true) - - enable: (e) => - @formEnable(e) - @$('.wizard-controls .btn').attr('disabled', false) - - showInvalidField: (screen, fields) => - @$(".#{screen}").find('.form-group').removeClass('has-error') - return if !fields - for field, type of fields - if type - @$(".#{screen}").find("[name=\"options::#{field}\"]").closest('.form-group').addClass('has-error') - hide: (e) => e.preventDefault() @el.modal('hide') -class App.ChannelEmailNotificationWizard extends App.Controller +class App.ChannelEmailNotificationWizard extends App.Wizard elements: '.modal-body': 'body' @@ -788,33 +756,11 @@ class App.ChannelEmailNotificationWizard extends App.Controller else @showSlide('js-outbound') @showAlert('js-outbound', data.message_human || data.message ) + @showInvalidField('js-outbound', data.invalid_field) @enable(e) fail: => @showSlide('js-outbound') @showAlert('js-outbound', data.message_human || data.message ) + @showInvalidField('js-outbound', data.invalid_field) @enable(e) ) - - showSlide: (name) => - @hideAlert(name) - @$('.setup.wizard').addClass('hide') - @$(".setup.wizard.#{name}").removeClass('hide') - @$(".setup.wizard.#{name} input, .setup.wizard.#{name} select").first().focus() - - showAlert: (screen, message) => - @$(".#{screen}").find('.alert').removeClass('hide').text( App.i18n.translateInline( message ) ) - - hideAlert: (screen) => - @$(".#{screen}").find('.alert').addClass('hide') - - disable: (e) => - @formDisable(e) - @$('.wizard-controls .btn').attr('disabled', true) - - enable: (e) => - @formEnable(e) - @$('.wizard-controls .btn').attr('disabled', false) - - hide: (e) => - e.preventDefault() - @el.modal('hide') diff --git a/app/assets/javascripts/app/controllers/getting_started.js.coffee b/app/assets/javascripts/app/controllers/getting_started.js.coffee index 5e628c469..813dd58d6 100644 --- a/app/assets/javascripts/app/controllers/getting_started.js.coffee +++ b/app/assets/javascripts/app/controllers/getting_started.js.coffee @@ -1,4 +1,4 @@ -class Index extends App.ControllerContent +class Index extends App.Controller className: 'getstarted fit' constructor: -> @@ -61,7 +61,7 @@ class Index extends App.ControllerContent App.Config.set( 'getting_started', Index, 'Routes' ) -class AutoWizard extends App.ControllerContent +class AutoWizard extends App.Controller className: 'getstarted fit' constructor: -> @@ -130,7 +130,7 @@ App.Config.set( 'getting_started/auto_wizard', AutoWizard, 'Routes' ) App.Config.set( 'getting_started/auto_wizard/:token', AutoWizard, 'Routes' ) -class Admin extends App.ControllerContent +class Admin extends App.Controller className: 'getstarted fit' events: 'submit form': 'submit' @@ -247,7 +247,7 @@ class Admin extends App.ControllerContent App.Config.set( 'getting_started/admin', Admin, 'Routes' ) -class Base extends App.ControllerContent +class Base extends App.Wizard className: 'getstarted fit' elements: '.logo-preview': 'logoPreview' @@ -376,25 +376,10 @@ class Base extends App.ControllerContent # add resized image App.ImageService.resizeForApp( @params.logo, @logoPreview.width(), @logoPreview.height(), store ) - hideAlerts: => - @$('.form-group').removeClass('has-error') - @$('.alert').addClass('hide') - - showAlert: (field, message) => - @$("[name=#{field}]").closest('.form-group').addClass('has-error') - @$("[name=#{field}]").closest('.form-group').find('.alert').removeClass('hide').text( App.i18n.translateInline( message ) ) - - disable: (e) => - @formDisable(e) - @$('.wizard-controls .btn').attr('disabled', true) - - enable: (e) => - @formEnable(e) - @$('.wizard-controls .btn').attr('disabled', false) - App.Config.set( 'getting_started/base', Base, 'Routes' ) -class EmailNotification extends App.ControllerContent + +class EmailNotification extends App.Wizard className: 'getstarted fit' events: 'change .js-outbound [name=adapter]': 'toggleOutboundAdapter' @@ -504,42 +489,20 @@ class EmailNotification extends App.ControllerContent else @showSlide('js-outbound') @showAlert('js-outbound', data.message_human || data.message ) + @showInvalidField('js-outbound', data.invalid_field) @enable(e) fail: => @showSlide('js-outbound') @showAlert('js-outbound', data.message_human || data.message ) + @showInvalidField('js-outbound', data.invalid_field) @enable(e) ) - goToSlide: (e) => - e.preventDefault() - slide = $(e.target).data('slide') - @showSlide(slide) - - showSlide: (name) => - @hideAlert(name) - @$('.setup.wizard').addClass('hide') - @$(".setup.wizard.#{name}").removeClass('hide') - @$(".setup.wizard.#{name} input, .setup.wizard.#{name} select").first().focus() - - showAlert: (screen, message) => - @$(".#{screen}").find('.alert').removeClass('hide').text( App.i18n.translateInline( message ) ) - - hideAlert: (screen) => - @$(".#{screen}").find('.alert').addClass('hide') - - disable: (e) => - @formDisable(e) - @$('.wizard-controls .btn').attr('disabled', true) - - enable: (e) => - @formEnable(e) - @$('.wizard-controls .btn').attr('disabled', false) - App.Config.set( 'getting_started/email_notification', EmailNotification, 'Routes' ) -class Channel extends App.ControllerContent + +class Channel extends App.Controller className: 'getstarted fit' constructor: -> @@ -592,7 +555,7 @@ class Channel extends App.ControllerContent App.Config.set( 'getting_started/channel', Channel, 'Routes' ) -class ChannelEmailPreConfigured extends App.ControllerContent +class ChannelEmailPreConfigured extends App.Controller className: 'getstarted fit' constructor: -> @@ -637,7 +600,7 @@ class ChannelEmailPreConfigured extends App.ControllerContent App.Config.set( 'getting_started/channel/email_pre_configured', ChannelEmailPreConfigured, 'Routes' ) -class ChannelEmail extends App.ControllerContent +class ChannelEmail extends App.Wizard className: 'getstarted fit' events: 'submit .js-intro': 'probeBasedOnIntro' @@ -896,42 +859,9 @@ class ChannelEmail extends App.ControllerContent @showAlert('js-intro', 'Unable to verify sending and receiving. Please check your settings.' ) ) - goToSlide: (e) => - e.preventDefault() - slide = $(e.target).data('slide') - @showSlide(slide) - - showSlide: (name) => - @hideAlert(name) - @$('.setup.wizard').addClass('hide') - @$(".setup.wizard.#{name}").removeClass('hide') - @$(".setup.wizard.#{name} input, .setup.wizard.#{name} select").first().focus() - - showAlert: (screen, message) => - @$(".#{screen}").find('.alert').removeClass('hide').text( App.i18n.translateInline( message ) ) - - hideAlert: (screen) => - @$(".#{screen}").find('.alert').addClass('hide') - - disable: (e) => - @formDisable(e) - @$('.wizard-controls .btn').attr('disabled', true) - - enable: (e) => - @formEnable(e) - @$('.wizard-controls .btn').attr('disabled', false) - - showInvalidField: (screen, fields) => - @$(".#{screen}").find('.form-group').removeClass('has-error') - return if !fields - for field, type of fields - if type - @$(".#{screen}").find("[name=\"options::#{field}\"]").closest('.form-group').addClass('has-error') - App.Config.set( 'getting_started/channel/email', ChannelEmail, 'Routes' ) - -class Agent extends App.ControllerContent +class Agent extends App.Controller className: 'getstarted fit' events: 'submit form': 'submit' @@ -1031,7 +961,7 @@ class Agent extends App.ControllerContent App.Config.set( 'getting_started/agents', Agent, 'Routes' ) -class Channel extends App.ControllerContent +class Channel extends App.Controller className: 'getstarted fit' constructor: -> diff --git a/app/assets/javascripts/app/views/channel/email_account_overview.jst.eco b/app/assets/javascripts/app/views/channel/email_account_overview.jst.eco index 48908298b..a5836e926 100644 --- a/app/assets/javascripts/app/views/channel/email_account_overview.jst.eco +++ b/app/assets/javascripts/app/views/channel/email_account_overview.jst.eco @@ -69,35 +69,37 @@ <%- @T('New') %> -

<%- @T('Notification Account') %>

+<% if @channel && !App.Config.get('system_online_service'): %> +

<%- @T('Notification Account') %>

- - - - - - - - - - - <% if @channel.status_in is 'error': %> - - - - <% end %> - <% if @channel.status_out is 'error': %> - - - - <% end %> - -
<%- @T('Outbound') %>
- <%- @T('State') %>: <%- @T(@channel.status_out || 'unknown') %>
- - <% if @channel.options.outbound && @channel.options.outbound.options: %> - <%= @channel.options.outbound.options.user %>
- <%= @channel.options.outbound.options.host %> - <% end %> - (<%= @channel.options.outbound.adapter %>)
-
<%= @channel.last_log_in %>
<%= @channel.last_log_out %>
\ No newline at end of file + + + + + + + + + + + <% if @channel.status_in is 'error': %> + + + + <% end %> + <% if @channel.status_out is 'error': %> + + + + <% end %> + +
<%- @T('Outbound') %>
+ <%- @T('State') %>: <%- @T(@channel.status_out || 'unknown') %>
+ + <% if @channel.options.outbound && @channel.options.outbound.options: %> + <%= @channel.options.outbound.options.user %>
+ <%= @channel.options.outbound.options.host %> + <% end %> + (<%= @channel.options.outbound.adapter %>)
+
<%= @channel.last_log_in %>
<%= @channel.last_log_out %>
+<% end %> diff --git a/app/assets/javascripts/app/views/getting_started/email_notification.jst.eco b/app/assets/javascripts/app/views/getting_started/email_notification.jst.eco index 461d403bc..ff968edbf 100644 --- a/app/assets/javascripts/app/views/getting_started/email_notification.jst.eco +++ b/app/assets/javascripts/app/views/getting_started/email_notification.jst.eco @@ -2,6 +2,7 @@
+

<%- @T('Email Notification') %>

diff --git a/app/controllers/channels_controller.rb b/app/controllers/channels_controller.rb index 8ca9c46fa..85006db62 100644 --- a/app/controllers/channels_controller.rb +++ b/app/controllers/channels_controller.rb @@ -216,14 +216,14 @@ curl http://localhost/api/v1/channels.json -v -u #{login}:#{password} -H "Conten def email_index return if deny_if_not_role(Z_ROLENAME_ADMIN) - + system_online_service = Setting.get('system_online_service') assets = {} Channel.all.each {|channel| - next if channel.preferences && channel.preferences[:online_service_disable] + next if system_online_service && channel.preferences && channel.preferences[:online_service_disable] assets = channel.assets(assets) } EmailAddress.all.each {|email_address| - next if email_address.preferences && email_address.preferences[:online_service_disable] + next if system_online_service && email_address.preferences && email_address.preferences[:online_service_disable] assets = email_address.assets(assets) } render json: {