Browse Source

Improved email channel wizard, show info if there are already emails in the mailbox.

Martin Edenhofer 9 years ago
parent
commit
eb0aac89ba

+ 1 - 0
app/assets/javascripts/app/controllers/_application_controller_generic.js.coffee

@@ -602,6 +602,7 @@ class App.Wizard extends App.Controller
   goToSlide: (e) =>
     e.preventDefault()
     slide = $(e.target).data('slide')
+    return if !slide
     @showSlide(slide)
 
   showSlide: (name) =>

+ 26 - 0
app/assets/javascripts/app/controllers/_channel/chat.js.coffee

@@ -14,3 +14,29 @@ class App.ChannelChat extends App.ControllerTabs
     ]
 
     @render()
+
+# enable/disable
+
+# show also if nobody is online / leave a message
+
+# channels
+ # sales - en / authentication needed
+ # sales - de / authentication needed
+
+
+
+# agent
+ # channes I'm work for
+
+ # x sales - de / greeting
+ # o sales - en / greeting
+
+# concurent chats
+
+# active chats
+ # name, email, location/ip, age
+
+
+# chat history
+
+App.Config.set( 'Chat', { prio: 4000, name: 'Chat', parent: '#channels', target: '#channels/chat', controller: App.ChannelChat, role: ['Admin'] }, 'NavBarAdmin' )

+ 25 - 3
app/assets/javascripts/app/controllers/_channel/email.js.coffee

@@ -363,7 +363,7 @@ class App.ChannelEmailAccountWizard extends App.Wizard
     'submit .js-inbound':                 'probeInbound'
     'change .js-outbound [name=adapter]': 'toggleOutboundAdapter'
     'submit .js-outbound':                'probleOutbound'
-    'click  .js-back':                    'goToSlide'
+    'click  .js-goToSlide':               'goToSlide'
     'click  .js-close':                   'hide'
 
   constructor: ->
@@ -488,7 +488,20 @@ class App.ChannelEmailAccountWizard extends App.Wizard
           if data.setting
             for key, value of data.setting
               @account[key] = value
-          @verify(@account)
+
+          if !@channel &&  data.content_messages && data.content_messages > 0
+            message = App.i18n.translateContent('We have already found %s emails in your mailbox. Zammad will move it all from your mailbox into Zammad.', data.content_messages)
+            @$('.js-inbound-acknowledge .js-message').html(message)
+            @$('.js-inbound-acknowledge .js-back').attr('data-slide', 'js-intro')
+            @$('.js-inbound-acknowledge .js-next').attr('data-slide', '')
+            @$('.js-inbound-acknowledge .js-next').unbind('click.verify').bind('click.verify', (e) =>
+              e.preventDefault()
+              @verify(@account)
+            )
+            @showSlide('js-inbound-acknowledge')
+          else
+            @verify(@account)
+
         else if data.result is 'duplicate'
           @showSlide('js-intro')
           @showAlert('js-intro', 'Account already exists!' )
@@ -530,7 +543,14 @@ class App.ChannelEmailAccountWizard extends App.Wizard
           # remember account settings
           @account.inbound = params
 
-          @showSlide('js-outbound')
+          if !@channel && data.content_messages && data.content_messages > 0
+            message = App.i18n.translateContent('We have already found %s emails in your mailbox. Zammad will move it all from your mailbox into Zammad.', data.content_messages)
+            @$('.js-inbound-acknowledge .js-message').html(message)
+            @$('.js-inbound-acknowledge .js-back').attr('data-slide', 'js-inbound')
+            @$('.js-inbound-acknowledge .js-next').unbind('click.verify')
+            @showSlide('js-inbound-acknowledge')
+          else
+            @showSlide('js-outbound')
 
           # fill user / password based on inbound settings
           if !@channel
@@ -768,3 +788,5 @@ class App.ChannelEmailNotificationWizard extends App.Wizard
         @showInvalidField('js-outbound', data.invalid_field)
         @enable(e)
     )
+
+App.Config.set( 'Email', { prio: 3000, name: 'Email', parent: '#channels', target: '#channels/email', controller: App.ChannelEmail, role: ['Admin'] }, 'NavBarAdmin' )

+ 2 - 0
app/assets/javascripts/app/controllers/_channel/facebook.js.coffee

@@ -12,3 +12,5 @@ class App.ChannelFacebook extends App.Controller
     @html App.view('channel/facebook')(
       head: 'some header'
     )
+
+App.Config.set( 'Facebook', { prio: 6000, name: 'Facebook', parent: '#channels', target: '#channels/facebook', controller: App.ChannelFacebook, role: ['Admin'] }, 'NavBarAdmin' )

+ 3 - 1
app/assets/javascripts/app/controllers/_channel/form.js.coffee

@@ -30,4 +30,6 @@ class App.ChannelForm extends App.Controller
         paramString += "    #{key}: #{value}"
       else
         paramString += "    #{key}: '#{quote(value)}'"
-    @$('.js-modal-params').html(paramString)
+    @$('.js-modal-params').html(paramString)
+
+App.Config.set( 'Form', { prio: 2000, name: 'Form', parent: '#channels', target: '#channels/form', controller: App.ChannelForm, role: ['Admin'] }, 'NavBarAdmin' )

+ 2 - 0
app/assets/javascripts/app/controllers/_channel/twitter.js.coffee

@@ -11,3 +11,5 @@ class App.ChannelTwitter extends App.Controller
     @html App.view('channel/twitter')(
       head: 'some header'
     )
+
+App.Config.set( 'Twitter', { prio: 5000, name: 'Twitter', parent: '#channels', target: '#channels/twitter', controller: App.ChannelTwitter, role: ['Admin'] }, 'NavBarAdmin' )

+ 2 - 0
app/assets/javascripts/app/controllers/_channel/web.js.coffee

@@ -14,3 +14,5 @@ class App.ChannelWeb extends App.ControllerTabs
     ]
 
     @render()
+
+App.Config.set( 'Web', { prio: 1000, name: 'Web', parent: '#channels', target: '#channels/web', controller: App.ChannelWeb, role: ['Admin'] }, 'NavBarAdmin' )

+ 0 - 14
app/assets/javascripts/app/controllers/channel.js.coffee

@@ -1,14 +0,0 @@
-#App.Config.set( 'channels/:target', Index, 'Routes' )
-#App.Config.set( 'channels', Index, 'Routes' )
-
-#App.Config.set( 'Channels', { prio: 2500, name: 'Channels', target: '#channels', role: ['Admin'] }, 'NavBarLevel4' )
-
-#App.Config.set( 'Channels', { prio: 2500, parent: '#admin', name: 'Channels', target: '#channels', role: ['Admin'] }, 'NavBar' )
-
-App.Config.set( 'Web', { prio: 1000, name: 'Web', parent: '#channels', target: '#channels/web', controller: App.ChannelWeb, role: ['Admin'] }, 'NavBarAdmin' )
-App.Config.set( 'Form', { prio: 2000, name: 'Form', parent: '#channels', target: '#channels/form', controller: App.ChannelForm, role: ['Admin'] }, 'NavBarAdmin' )
-App.Config.set( 'Email', { prio: 3000, name: 'Email', parent: '#channels', target: '#channels/email', controller: App.ChannelEmail, role: ['Admin'] }, 'NavBarAdmin' )
-App.Config.set( 'Chat', { prio: 4000, name: 'Chat', parent: '#channels', target: '#channels/chat', controller: App.ChannelChat, role: ['Admin'] }, 'NavBarAdmin' )
-App.Config.set( 'Twitter', { prio: 5000, name: 'Twitter', parent: '#channels', target: '#channels/twitter', controller: App.ChannelTwitter, role: ['Admin'] }, 'NavBarAdmin' )
-App.Config.set( 'Facebook', { prio: 6000, name: 'Facebook', parent: '#channels', target: '#channels/facebook', controller: App.ChannelFacebook, role: ['Admin'] }, 'NavBarAdmin' )
-

+ 23 - 3
app/assets/javascripts/app/controllers/getting_started.js.coffee

@@ -613,7 +613,7 @@ class ChannelEmail extends App.Wizard
     'submit .js-inbound':                 'probeInbound'
     'change .js-outbound [name=adapter]': 'toggleOutboundAdapter'
     'submit .js-outbound':                'probleOutbound'
-    'click  .js-back':                    'goToSlide'
+    'click  .js-goToSlide':               'goToSlide'
 
   constructor: ->
     super
@@ -744,7 +744,20 @@ class ChannelEmail extends App.Wizard
           if data.setting
             for key, value of data.setting
               @account[key] = value
-          @verify(@account)
+
+          if data.content_messages && data.content_messages > 0
+            message = App.i18n.translateContent('We have already found %s emails in your mailbox. Zammad will move it all from your mailbox into Zammad.', data.content_messages)
+            @$('.js-inbound-acknowledge .js-message').html(message)
+            @$('.js-inbound-acknowledge .js-back').attr('data-slide', 'js-intro')
+            @$('.js-inbound-acknowledge .js-next').attr('data-slide', '')
+            @$('.js-inbound-acknowledge .js-next').unbind('click.verify').bind('click.verify', (e) =>
+              e.preventDefault()
+              @verify(@account)
+            )
+            @showSlide('js-inbound-acknowledge')
+          else
+            @verify(@account)
+
         else if data.result is 'duplicate'
           @showSlide('js-intro')
           @showAlert('js-intro', 'Account already exists!' )
@@ -781,7 +794,14 @@ class ChannelEmail extends App.Wizard
           # remember account settings
           @account.inbound = params
 
-          @showSlide('js-outbound')
+          if data.content_messages && data.content_messages > 0
+            message = App.i18n.translateContent('We have already found %s emails in your mailbox. Zammad will move it all from your mailbox into Zammad.', data.content_messages)
+            @$('.js-inbound-acknowledge .js-message').html(message)
+            @$('.js-inbound-acknowledge .js-back').attr('data-slide', 'js-inbound')
+            @$('.js-inbound-acknowledge .js-next').unbind('click.verify')
+            @showSlide('js-inbound-acknowledge')
+          else
+            @showSlide('js-outbound')
 
           # fill user / password based on inbound settings
           if !@channel

+ 25 - 2
app/assets/javascripts/app/views/channel/email_account_wizard.jst.eco

@@ -108,7 +108,7 @@
     </div>
     <div class="modal-footer">
       <div class="modal-rightFooter">
-      <a class="btn btn--text btn--secondary js-back align-left" data-slide="js-intro"><%- @T('Go Back') %></a>
+      <a class="btn btn--text btn--secondary js-goToSlide align-left" data-slide="js-intro"><%- @T('Go Back') %></a>
       </div>
       <div class="modal-rightFooter">
         <button class="btn btn--primary align-right"><%- @T('Continue') %></button>
@@ -116,6 +116,29 @@
     </div>
   </form>
 
+  <form class="modal-content setup wizard hide js-inbound-acknowledge">
+    <div class="modal-header">
+      <div class="modal-close js-close">
+        <%- @Icon('diagonal-cross') %>
+      </div>
+      <h1 class="modal-title"><%- @T('Email Inbound') %></h1>
+    </div>
+    <div class="modal-body">
+      <div class="wizard-body vertical justified">
+        <div class="alert alert--danger hide" role="alert"></div>
+        <p class="js-message"><%- @T('We have already found %s email(s) in your mailbox. Zammad will move it all from your mailbox into Zammad.', 'x') %></p>
+      </div>
+    </div>
+    <div class="modal-footer">
+      <div class="modal-rightFooter">
+      <a class="btn btn--text btn--secondary js-goToSlide js-back align-left" data-slide="js-inbound"><%- @T('Go Back') %></a>
+      </div>
+      <div class="modal-rightFooter">
+        <button class="btn btn--primary js-goToSlide js-next align-right" data-slide="js-outbound"><%- @T('Continue') %></button>
+      </div>
+    </div>
+  </form>
+
   <form class="modal-content setup wizard hide js-outbound">
     <!-- dummy to prevent chrome to ask for password save -->
     <input style="display:none">
@@ -136,7 +159,7 @@
     </div>
     <div class="modal-footer">
       <div class="modal-rightFooter">
-      <a class="btn btn--text btn--secondary js-back align-left" data-slide="js-inbound"><%- @T('Go Back') %></a>
+      <a class="btn btn--text btn--secondary js-goToSlide align-left" data-slide="js-inbound"><%- @T('Go Back') %></a>
       </div>
       <div class="modal-rightFooter">
         <button class="btn btn--primary align-right"><%- @T('Continue') %></button>

Some files were not shown because too many files changed in this diff