Start clues on initial login for every agent.
This commit is contained in:
parent
37d787fc42
commit
89c24149a3
6 changed files with 70 additions and 24 deletions
|
@ -1,18 +1,22 @@
|
||||||
class App.FirstStepsClues extends App.Controller
|
class App.FirstStepsClues extends App.Controller
|
||||||
clues: [
|
clues: [
|
||||||
|
{
|
||||||
|
container: '.js-dashboardMenuItem'
|
||||||
|
headline: 'Dashboard'
|
||||||
|
text: 'Here you see a quick overview about your and other agents performance.'
|
||||||
|
actions: [
|
||||||
|
'hover'
|
||||||
|
]
|
||||||
|
}
|
||||||
{
|
{
|
||||||
container: '.search-holder'
|
container: '.search-holder'
|
||||||
headline: 'Search'
|
headline: 'Search'
|
||||||
text: 'Here you can search for ticket, customers and organizations. To find everything use the <kbd>*</kbd>-Placeholder'
|
text: 'Here you can search for ticket, customers and organizations. To find everything use the §*§-Placeholder'
|
||||||
#headline: 'Suche'
|
|
||||||
#text: 'Um alles zu finden nutze den <kbd>*</kbd>-Platzhalter'
|
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
container: '.user-menu'
|
container: '.user-menu'
|
||||||
headline: 'Create'
|
headline: 'Create'
|
||||||
text: 'Here you can create new tickets. Also if you have the permissions you can create new customers and organizations.'
|
text: 'Here you can create new tickets. Also if you have the permissions you can create new customers and organizations.'
|
||||||
#headline: 'Erstellen'
|
|
||||||
#text: 'Hier kannst du Tickets, Kunden und Organisationen anlegen.'
|
|
||||||
actions: [
|
actions: [
|
||||||
'click .add .js-action',
|
'click .add .js-action',
|
||||||
'hover .add'
|
'hover .add'
|
||||||
|
@ -22,8 +26,6 @@ class App.FirstStepsClues extends App.Controller
|
||||||
container: '.user-menu'
|
container: '.user-menu'
|
||||||
headline: 'Personal Settings'
|
headline: 'Personal Settings'
|
||||||
text: 'Here you can sign out, change the frontend language or see your latest views items.'
|
text: 'Here you can sign out, change the frontend language or see your latest views items.'
|
||||||
#headline: 'Persönliches Menü'
|
|
||||||
#text: 'Hier findest du den Logout, den Weg zu deinen Einstellungen und deinen Verlauf.'
|
|
||||||
actions: [
|
actions: [
|
||||||
'click .user .js-action',
|
'click .user .js-action',
|
||||||
'hover .user'
|
'hover .user'
|
||||||
|
@ -33,18 +35,6 @@ class App.FirstStepsClues extends App.Controller
|
||||||
container: '.js-overviewsMenuItem'
|
container: '.js-overviewsMenuItem'
|
||||||
headline: 'Overviews'
|
headline: 'Overviews'
|
||||||
text: 'Here you find your ticket overviews for open, my assigned or escalated tickets.'
|
text: 'Here you find your ticket overviews for open, my assigned or escalated tickets.'
|
||||||
#headline: 'Übersichten'
|
|
||||||
#text: 'Hier findest du eine Liste aller Tickets.'
|
|
||||||
actions: [
|
|
||||||
'hover'
|
|
||||||
]
|
|
||||||
}
|
|
||||||
{
|
|
||||||
container: '.js-dashboardMenuItem'
|
|
||||||
headline: 'Dashboard'
|
|
||||||
text: 'Here you see a quick overview about your and other agents performance.'
|
|
||||||
#headline: 'Dashboard'
|
|
||||||
#text: 'Hier siehst du auf einem Blick ob sich alle Agenten an die Spielregeln halten.'
|
|
||||||
actions: [
|
actions: [
|
||||||
'hover'
|
'hover'
|
||||||
]
|
]
|
||||||
|
@ -78,8 +68,6 @@ class App.FirstStepsClues extends App.Controller
|
||||||
onComplete: a callback for when the user is done
|
onComplete: a callback for when the user is done
|
||||||
|
|
||||||
###
|
###
|
||||||
|
|
||||||
@options.onComplete = -> null
|
|
||||||
@position = 0
|
@position = 0
|
||||||
@render()
|
@render()
|
||||||
|
|
||||||
|
@ -235,7 +223,7 @@ class App.FirstStepsClues extends App.Controller
|
||||||
left = maxWidth - modal.width
|
left = maxWidth - modal.width
|
||||||
|
|
||||||
if top < 0
|
if top < 0
|
||||||
moveArrow = modal.height/2 + height
|
moveArrow = modal.height/2 + top
|
||||||
top = 0
|
top = 0
|
||||||
else if top + modal.height > maxHeight
|
else if top + modal.height > maxHeight
|
||||||
moveArrow = modal.height/2 + maxHeight - (top + modal.height)
|
moveArrow = modal.height/2 + maxHeight - (top + modal.height)
|
||||||
|
|
|
@ -18,6 +18,11 @@ class App.Dashboard extends App.Controller
|
||||||
return if !@authenticate(true)
|
return if !@authenticate(true)
|
||||||
@render()
|
@render()
|
||||||
|
|
||||||
|
# start intro
|
||||||
|
preferences = @Session.get('preferences')
|
||||||
|
if !preferences['intro']
|
||||||
|
@clues()
|
||||||
|
|
||||||
render: ->
|
render: ->
|
||||||
|
|
||||||
@html App.view('dashboard')(
|
@html App.view('dashboard')(
|
||||||
|
@ -35,9 +40,18 @@ class App.Dashboard extends App.Controller
|
||||||
)
|
)
|
||||||
|
|
||||||
clues: (e) =>
|
clues: (e) =>
|
||||||
e.preventDefault()
|
if e
|
||||||
|
e.preventDefault()
|
||||||
new App.FirstStepsClues(
|
new App.FirstStepsClues(
|
||||||
el: @el
|
el: @el
|
||||||
|
onComplete: =>
|
||||||
|
@ajax(
|
||||||
|
id: 'preferences'
|
||||||
|
type: 'PUT'
|
||||||
|
url: @apiPath + '/users/preferences'
|
||||||
|
data: JSON.stringify({user:{intro:true}})
|
||||||
|
processData: true
|
||||||
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
active: (state) =>
|
active: (state) =>
|
||||||
|
|
|
@ -184,6 +184,12 @@ class _i18nSingleton extends Spine.Module
|
||||||
|
|
||||||
translated = App.Utils.htmlEscape(@translate(string, args))
|
translated = App.Utils.htmlEscape(@translate(string, args))
|
||||||
|
|
||||||
|
# apply inline markup
|
||||||
|
translated
|
||||||
|
.replace(/\*(.+?)\*/gm, '<b>$1</b>')
|
||||||
|
.replace(/_(.+?)_/gm, '<u>$1</u>')
|
||||||
|
.replace(/§(.+?)§/gm, '<kbd>$1</kbd>')
|
||||||
|
|
||||||
translatePlain: (string, args) =>
|
translatePlain: (string, args) =>
|
||||||
@translate(string, args)
|
@translate(string, args)
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
<%- @Icon('diagonal-cross') %>
|
<%- @Icon('diagonal-cross') %>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-header"><%- @T(@headline) %></div>
|
<div class="modal-header"><%- @T(@headline) %></div>
|
||||||
<div class="modal-body"><%- @text %></div>
|
<div class="modal-body"><%- @T(@text) %></div>
|
||||||
<div class="modal-controls">
|
<div class="modal-controls">
|
||||||
<div class="modal-control">
|
<div class="modal-control">
|
||||||
<div class="<% if @position is 0: %>is-disabled <% end %>btn btn--text js-previous"><%- @T( 'Previous' ) %></div>
|
<div class="<% if @position is 0: %>is-disabled <% end %>btn btn--text js-previous"><%- @T( 'Previous' ) %></div>
|
||||||
|
|
|
@ -274,6 +274,18 @@ test( "i18n", function() {
|
||||||
translated = App.i18n.translateContent('%s %s test', 123, 'xxx');
|
translated = App.i18n.translateContent('%s %s test', 123, 'xxx');
|
||||||
equal( translated, '123 xxx test', 'de-de - %s %s' );
|
equal( translated, '123 xxx test', 'de-de - %s %s' );
|
||||||
|
|
||||||
|
translated = App.i18n.translateContent('*%s* %s test', 123, 'xxx');
|
||||||
|
equal( translated, '<b>123</b> xxx test', 'de-de - *%s* %s' );
|
||||||
|
|
||||||
|
translated = App.i18n.translateContent('_%s_ %s test', 123, 'xxx');
|
||||||
|
equal( translated, '<u>123</u> xxx test', 'de-de - _%s_ %s' );
|
||||||
|
|
||||||
|
translated = App.i18n.translateContent('§%s§ %s test', 123, 'xxx');
|
||||||
|
equal( translated, '<kbd>123</kbd> xxx test', 'de-de - §%s§ %s' );
|
||||||
|
|
||||||
|
translated = App.i18n.translateContent('\'%s\' %s test', 123, 'xxx');
|
||||||
|
equal( translated, ''123' xxx test', 'de-de - \'%s\' %s' );
|
||||||
|
|
||||||
translated = App.i18n.translateContent('<test&now>//*äöüß');
|
translated = App.i18n.translateContent('<test&now>//*äöüß');
|
||||||
equal( translated, '<test&now>//*äöüß', 'de - <test&now>//*äöüß' );
|
equal( translated, '<test&now>//*äöüß', 'de - <test&now>//*äöüß' );
|
||||||
|
|
||||||
|
@ -299,6 +311,18 @@ test( "i18n", function() {
|
||||||
translated = App.i18n.translateContent('%s %s test', 123, 'xxx');
|
translated = App.i18n.translateContent('%s %s test', 123, 'xxx');
|
||||||
equal( translated, '123 xxx test', 'en-us - %s %s' );
|
equal( translated, '123 xxx test', 'en-us - %s %s' );
|
||||||
|
|
||||||
|
translated = App.i18n.translateContent('*%s* %s test', 123, 'xxx');
|
||||||
|
equal( translated, '<b>123</b> xxx test', 'en-us - *%s* %s' );
|
||||||
|
|
||||||
|
translated = App.i18n.translateContent('_%s_ %s test', 123, 'xxx');
|
||||||
|
equal( translated, '<u>123</u> xxx test', 'en-us - _%s_ %s' );
|
||||||
|
|
||||||
|
translated = App.i18n.translateContent('§%s§ %s test', 123, 'xxx');
|
||||||
|
equal( translated, '<kbd>123</kbd> xxx test', 'en-us - §%s§ %s' );
|
||||||
|
|
||||||
|
translated = App.i18n.translateContent('\'%s\' %s test', 123, 'xxx');
|
||||||
|
equal( translated, ''123' xxx test', 'en-us - \'%s\' %s' );
|
||||||
|
|
||||||
translated = App.i18n.translateContent('<test&now>');
|
translated = App.i18n.translateContent('<test&now>');
|
||||||
equal( translated, '<test&now>', 'en-us - <test&now>' );
|
equal( translated, '<test&now>', 'en-us - <test&now>' );
|
||||||
|
|
||||||
|
|
|
@ -156,6 +156,13 @@ class TestCase < Test::Unit::TestCase
|
||||||
fail 'auto wizard login failed'
|
fail 'auto wizard login failed'
|
||||||
end
|
end
|
||||||
assert(true, 'auto wizard login ok')
|
assert(true, 'auto wizard login ok')
|
||||||
|
|
||||||
|
# remove clues
|
||||||
|
clues = instance.find_elements({ css: '.js-modal--clue .js-close' })[0]
|
||||||
|
if clues
|
||||||
|
clues.click
|
||||||
|
end
|
||||||
|
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
screenshot(browser: instance, comment: 'login_failed')
|
screenshot(browser: instance, comment: 'login_failed')
|
||||||
|
@ -182,6 +189,13 @@ class TestCase < Test::Unit::TestCase
|
||||||
screenshot(browser: instance, comment: 'login_failed')
|
screenshot(browser: instance, comment: 'login_failed')
|
||||||
fail 'login failed'
|
fail 'login failed'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# remove clues
|
||||||
|
clues = instance.find_elements({ css: '.js-modal--clue .js-close' })[0]
|
||||||
|
if clues
|
||||||
|
clues.click
|
||||||
|
end
|
||||||
|
|
||||||
screenshot(browser: instance, comment: 'login_ok')
|
screenshot(browser: instance, comment: 'login_ok')
|
||||||
assert(true, 'login ok')
|
assert(true, 'login ok')
|
||||||
login
|
login
|
||||||
|
|
Loading…
Reference in a new issue