Moved to new config object mechanisms.

This commit is contained in:
Martin Edenhofer 2012-11-05 11:27:59 +01:00
parent fe9b99ae6e
commit dbf1d70794
36 changed files with 191 additions and 159 deletions

View file

@ -1,9 +1,12 @@
class App.Controller extends Spine.Controller class App.Controller extends Spine.Controller
constructor: ->
super
@Config = App.Config
# add @title methode to set title # add @title methode to set title
title: (name) -> title: (name) ->
# $('html head title').html( Config.product_name + ' - ' + App.i18n.translateInline(name) ) # $('html head title').html( @Config.get(product_name) + ' - ' + App.i18n.translateInline(name) )
document.title = Config.product_name + ' - ' + App.i18n.translateInline(name) document.title = @Config.get('product_name') + ' - ' + App.i18n.translateInline(name)
# add @notify methode to create notification # add @notify methode to create notification
notify: (data) -> notify: (data) ->
@ -127,7 +130,7 @@ class App.Controller extends Spine.Controller
return true if window.Session['id'] return true if window.Session['id']
# remember requested url # remember requested url
window.Config['requested_url'] = window.location.hash @Config.set( 'requested_url', window.location.hash )
# redirect to login # redirect to login
@navigate '#login' @navigate '#login'

View file

@ -108,9 +108,9 @@ class App.DashboardTicket extends App.Controller
id = $(e.target).parents('[data-id]').data('id') id = $(e.target).parents('[data-id]').data('id')
position = $(e.target).parents('[data-position]').data('position') position = $(e.target).parents('[data-position]').data('position')
Config['LastOverview'] = @view @Config.set('LastOverview', @view )
Config['LastOverviewPosition'] = position @Config.set('LastOverviewPosition', position )
Config['LastOverviewTotal'] = @tickets_count @Config.set('LastOverviewTotal', @tickets_count )
@log 'goto zoom!', id, position @log 'goto zoom!', id, position
@navigate 'ticket/zoom/' + id + '/nav/true' @navigate 'ticket/zoom/' + id + '/nav/true'

View file

@ -0,0 +1,13 @@
App.Config.set( 'User', {
prio: 10000,
parent: '',
callback: ->
item = {}
item['name'] = window.Session['login']
return item
target: '#current_user',
role: [ 'Agent', 'Customer' ]
}, 'NavBarRight' )
App.Config.set( 'Admin', { prio: 10000, parent: '', name: 'Manage', target: '#admin', role: ['Admin'] }, 'NavBar' )
App.Config.set( 'Setting', { prio: 20000, parent: '', name: 'Settings', target: '#settings', role: ['Admin'] }, 'NavBar' )

View file

@ -284,5 +284,8 @@ class UserNew extends App.ControllerModal
ui.modalHide() ui.modalHide()
) )
Config.Routes['ticket_create'] = Index App.Config.set( 'ticket_create', Index, 'Routes' )
Config.Routes['ticket_create/:ticket_id/:article_id'] = Index App.Config.set( 'ticket_create/:ticket_id/:article_id', Index, 'Routes' )
App.Config.set( 'TicketNew', { prio: 8000, parent: '', name: 'New', target: '#ticket_create', role: ['Agent'] }, 'NavBarRight' )

View file

@ -285,9 +285,9 @@ class Index extends App.Controller
position = $(e.target).parents('[data-position]').data('position') position = $(e.target).parents('[data-position]').data('position')
# set last overview # set last overview
Config['LastOverview'] = @view @Config.set('LastOverview', @view )
Config['LastOverviewPosition'] = position @Config.set('LastOverviewPosition', position )
Config['LastOverviewTotal'] = @tickets_count @Config.set('LastOverviewTotal', @tickets_count )
@navigate 'ticket/zoom/' + id + '/nav/true' @navigate 'ticket/zoom/' + id + '/nav/true'
@ -486,23 +486,30 @@ class Router extends App.Controller
@redirect() @redirect()
redirect: => redirect: =>
Config['LastOverview'] = @view @Config.set('LastOverview', @view )
Config['LastOverviewPosition'] = @position @position = parseInt( @position )
Config['LastOverviewTotal'] = @tickets_count @Config.set('LastOverviewPosition', @position )
@Config.set('LastOverviewTotal', @tickets_count )
# redirect # redirect
if @direction == 'next' if @direction == 'next'
if @ticket_list[ @position ] && @ticket_list[ @position ] if @ticket_list[ @position ] && @ticket_list[ @position ]
Config['LastOverviewPosition']++ position = @position + 1
@Config.set( 'LastOverviewPosition', position )
@navigate 'ticket/zoom/' + @ticket_list[ @position ] + '/nav/true' @navigate 'ticket/zoom/' + @ticket_list[ @position ] + '/nav/true'
else else
@navigate 'ticket/zoom/' + @ticket_list[ @position - 1 ] + '/nav/true' @navigate 'ticket/zoom/' + @ticket_list[ @position - 1 ] + '/nav/true'
else else
if @ticket_list[ @position - 2 ] && @ticket_list[ @position - 2 ] + '/nav/true' if @ticket_list[ @position - 2 ] && @ticket_list[ @position - 2 ] + '/nav/true'
Config['LastOverviewPosition']-- position = @position - 1
@Config.set( 'LastOverviewPosition', position )
@navigate 'ticket/zoom/' + @ticket_list[ @position - 2 ] + '/nav/true' @navigate 'ticket/zoom/' + @ticket_list[ @position - 2 ] + '/nav/true'
else else
@navigate 'ticket/zoom/' + @ticket_list[ @position - 1 ] + '/nav/true' @navigate 'ticket/zoom/' + @ticket_list[ @position - 1 ] + '/nav/true'
Config.Routes['ticket_view/:view/:position/:direction'] = Router App.Config.set( 'ticket_view/:view', Index, 'Routes' )
Config.Routes['ticket_view/:view'] = Index App.Config.set( 'ticket_view/:view/:position/:direction', Router, 'Routes' )
App.Config.set( 'TicketOverview', { prio: 1000, parent: '', name: 'Overviews', target: '#ticket_view', role: ['Agent'] }, 'NavBar' )
#App.Config.set( '', { prio: 1000, parent: '#ticket_view', name: 'My assigned Tickets (51)', target: '#ticket_view/my_assigned', role: ['Agent'] }
#App.Config.set( '', { prio: 1000, parent: '#ticket_view', name: 'Unassigned Tickets (133)', target: '#ticket_view/all_unassigned', role: ['Agent'] }

View file

@ -538,6 +538,6 @@ class TicketActionRow extends App.Controller
e.preventDefault() e.preventDefault()
new App.TicketCustomer( ticket_id: @ticket.id, zoom: @zoom ) new App.TicketCustomer( ticket_id: @ticket.id, zoom: @zoom )
Config.Routes['ticket/zoom/:ticket_id'] = Index App.Config.set( 'ticket/zoom/:ticket_id', Index, 'Routes' )
Config.Routes['ticket/zoom/:ticket_id/nav/:nav'] = Index App.Config.set( 'ticket/zoom/:ticket_id/nav/:nav', Index, 'Routes' )
Config.Routes['ticket/zoom/:ticket_id/:article_id'] = Index App.Config.set( 'ticket/zoom/:ticket_id/:article_id', Index, 'Routes' )

View file

@ -26,6 +26,7 @@ class Index extends App.ControllerLevel2
# render page # render page
@render() @render()
Config.Routes['channels/:target'] = Index App.Config.set( 'channels/:target', Index, 'Routes' )
Config.Routes['channels'] = Index App.Config.set( 'channels', Index, 'Routes' )
App.Config.set( 'Channels', { prio: 2500, parent: '#admin', name: 'Channels', target: '#channels', role: ['Admin'] }, 'NavBar' )

View file

@ -118,6 +118,13 @@ class App.ChatWidget extends App.Controller
@el.find('#chat_content').show(100) @el.find('#chat_content').show(100)
@newMessage = false @newMessage = false
# hide
@delay( =>
@hide()
60000
'chat-window-hide'
)
hide: => hide: =>
@isShown = false @isShown = false
@el.find('#chat_content').hide(100) @el.find('#chat_content').hide(100)
@ -125,12 +132,20 @@ class App.ChatWidget extends App.Controller
focusIn: => focusIn: =>
@focus = true @focus = true
@clearDelay 'chat-message-focusout' @clearDelay 'chat-message-focusout'
@clearDelay 'chat-window-hide'
focusOut: => focusOut: =>
a = => a = =>
@focus = false @focus = false
@delay a, 200, 'chat-message-focusout' @delay a, 200, 'chat-message-focusout'
# hide
@delay( =>
@hide()
60000
'chat-window-hide'
)
render: -> render: ->
for message in @messageLog for message in @messageLog

View file

@ -186,4 +186,7 @@ class Index extends App.Controller
ui.formEnable(e) ui.formEnable(e)
) )
Config.Routes['customer_ticket_new'] = Index App.Config.set( 'customer_ticket_new', Index, 'Routes' )
App.Config.set( 'CustomerTicketNew', { prio: 1600, parent: '', name: 'New Ticket', target: '#customer_ticket_new', role: ['Customer'] }, 'NavBar' )

View file

@ -26,6 +26,6 @@ class Index extends App.Controller
# form: @formGen( model: { configure_attributes: configure_attributes, className: 'create' } ), # form: @formGen( model: { configure_attributes: configure_attributes, className: 'create' } ),
) )
App.Config.set( 'customer_tickets', Index, 'Routes' )
App.Config.set( 'CustomerTickets', { prio: 1700, parent: '', name: 'My Tickets', target: '#ticket_view/my_tickets', role: ['Customer'] }, 'NavBar' )
Config.Routes['customer_tickets'] = Index

View file

@ -81,5 +81,5 @@ class Index extends App.Controller
new plugin.controller( params ) new plugin.controller( params )
Config.Routes[''] = Index App.Config.set( '', Index, 'Routes' )
Config.Routes['/'] = Index App.Config.set( '/', Index, 'Routes' )

View file

@ -134,4 +134,4 @@ class Index extends App.Controller
@el.find('.agent_user').fadeIn() @el.find('.agent_user').fadeIn()
) )
Config.Routes['getting_started'] = Index App.Config.set( 'getting_started', Index, 'Routes' )

View file

@ -26,12 +26,6 @@ class Index extends App.Controller
}, },
) )
App.Config.set( 'groups', Index, 'Routes' )
Config.Routes['groups'] = Index App.Config.set( 'Group', { prio: 1500, parent: '#admin', name: 'Groups', target: '#groups', role: ['Admin'] }, 'NavBar' )
#class App.Groups extends App.Router
# routes:
# 'groups/new': New
# 'groups/:id/edit': Edit
# 'groups': Index
#Config.Controller.push App.Groups

View file

@ -35,7 +35,7 @@ class Index extends App.Controller
} }
auth_providers = [] auth_providers = []
for key, provider of auth_provider_all for key, provider of auth_provider_all
if Config[provider.config] is true || Config[provider.config] is "true" if @Config.get( provider.config ) is true || @Config.get( provider.config ) is "true"
auth_providers.push provider auth_providers.push provider
@html App.view('login')( @html App.view('login')(
@ -75,7 +75,7 @@ class Index extends App.Controller
# update config # update config
for key, value of data.config for key, value of data.config
window.Config[key] = value App.Config.set( key, value )
# store user data # store user data
for key, value of data.session for key, value of data.session
@ -102,11 +102,11 @@ class Index extends App.Controller
} }
# redirect to # # redirect to #
if window.Config['requested_url'] isnt '' if @Config.get( 'requested_url' ) isnt ''
@navigate window.Config['requested_url'] @navigate @Config.get( 'requested_url' )
# reset # reset
window.Config['requested_url'] = '' @Config.set( 'requested_url', '' )
else else
@navigate '#/' @navigate '#/'
@ -125,4 +125,4 @@ class Index extends App.Controller
username: @username username: @username
) )
Config.Routes['login'] = Index App.Config.set( 'login', Index, 'Routes' )

View file

@ -20,4 +20,6 @@ class Index extends Spine.Controller
# redirect to login # redirect to login
@navigate 'login' @navigate 'login'
Config.Routes['logout'] = Index App.Config.set( 'logout', Index, 'Routes' )
App.Config.set( 'Logout', { prio: 1800, parent: '#current_user', name: 'Sign out', target: '#logout', divider: true, role: [ 'Agent', 'Customer' ] }, 'NavBarRight' )

View file

@ -35,8 +35,8 @@ class App.Navigation extends App.Controller
@render( window.Session ) @render( window.Session )
render: (user) -> render: (user) ->
nav_left = @getItems( navbar: Config.NavBar ) nav_left = @getItems( navbar: @Config.get( 'NavBar' ) )
nav_right = @getItems( navbar: Config.NavBarRight ) nav_right = @getItems( navbar: @Config.get( 'NavBarRight' ) )
# get open tabs to repopen on rerender # get open tabs to repopen on rerender
open_tab = {} open_tab = {}
@ -148,13 +148,14 @@ class App.Navigation extends App.Controller
App.Store.write( 'navupdate_ticket_overview', data ) App.Store.write( 'navupdate_ticket_overview', data )
# remove old views # remove old views
for key of Config.NavBar NavBar = @Config.get( 'NavBar' ) || {}
if Config.NavBar[key].parent is '#ticket_view' for key of NavBar
delete Config.NavBar[key] if NavBar[key].parent is '#ticket_view'
delete NavBar[key]
# add new views # add new views
for item in data for item in data
Config.NavBar['TicketOverview' + item.url] = { NavBar['TicketOverview' + item.url] = {
prio: item.prio, prio: item.prio,
parent: '#ticket_view', parent: '#ticket_view',
name: item.name, name: item.name,
@ -163,6 +164,8 @@ class App.Navigation extends App.Controller
role: ['Agent'], role: ['Agent'],
} }
@Config.set( 'NavBar', NavBar )
recent_viewed_build: (data) => recent_viewed_build: (data) =>
App.Store.write( 'update_recent_viewed', data ) App.Store.write( 'update_recent_viewed', data )
@ -176,11 +179,12 @@ class App.Navigation extends App.Controller
App.Collection.load( type: 'Ticket', data: data.tickets ) App.Collection.load( type: 'Ticket', data: data.tickets )
# remove old views # remove old views
for key of Config.NavBarRight NavBarRight = @Config.get( 'NavBarRight' ) || {}
if Config.NavBarRight[key].parent is '#current_user' for key of NavBarRight
if NavBarRight[key].parent is '#current_user'
part = key.split '::' part = key.split '::'
if part[0] is 'RecendViewed' if part[0] is 'RecendViewed'
delete Config.NavBarRight[key] delete NavBarRight[key]
# add new views # add new views
prio = 8000 prio = 8000
@ -192,7 +196,7 @@ class App.Navigation extends App.Controller
navheader = 'Recent Viewed' navheader = 'Recent Viewed'
ticket = App.Collection.find( 'Ticket', item.o_id ) ticket = App.Collection.find( 'Ticket', item.o_id )
prio++ prio++
Config.NavBarRight['RecendViewed::' + ticket.id + '-' + prio ] = { NavBarRight['RecendViewed::' + ticket.id + '-' + prio ] = {
prio: prio, prio: prio,
parent: '#current_user', parent: '#current_user',
name: item.history_object.name + ' (' + ticket.title + ')', name: item.history_object.name + ' (' + ticket.title + ')',
@ -201,3 +205,5 @@ class App.Navigation extends App.Controller
divider: divider, divider: divider,
navheader: navheader navheader: navheader
} }
@Config.set( 'NavBarRight', NavBarRight )

View file

@ -67,5 +67,9 @@ class Index extends App.Controller
item.destroy() if confirm('Sure?') item.destroy() if confirm('Sure?')
@render() @render()
App.Config.set( 'network', Index, 'Routes' )
#App.Config.set( 'Network', { prio: 1500, parent: '', name: 'Networking', target: '#network', role: ['Anybody', 'Customer', 'Agent'] }, 'NavBar' ), 'NavBar' )
#App.Config.set( '', { prio: 1600, parent: '', name: 'anybody+agent', target: '#aa', role: ['Anybody', 'Agent'] }
#App.Config.set( '', { prio: 1600, parent: '', name: 'Anybody', target: '#anybody', role: ['Anybody'] }
Config.Routes['network'] = Index

View file

@ -26,51 +26,7 @@ class Index extends App.Controller
}, },
) )
#Config.Routes['organizations/new'] = New App.Config.set( 'organizations', Index, 'Routes' )
#Config.Routes['organizations/:id/edit'] = Edit
Config.Routes['organizations'] = Index
App.Config.set( 'Organization', { prio: 2000, parent: '#admin', name: 'Organizations', target: '#organizations', role: ['Admin'] }, 'NavBar' )
Config.NavBar['Admin'] = { prio: 10000, parent: '', name: 'Manage', target: '#admin', role: ['Admin'] }
Config.NavBar['AdminUser'] = { prio: 1000, parent: '#admin', name: 'Users', target: '#users', role: ['Admin'] }
Config.NavBar['AdminGroup'] = { prio: 1500, parent: '#admin', name: 'Groups', target: '#groups', role: ['Admin'] }
Config.NavBar['AdminOrganization'] = { prio: 2000, parent: '#admin', name: 'Organizations', target: '#organizations', role: ['Admin'] }
Config.NavBar['AdminChannels'] = { prio: 2500, parent: '#admin', name: 'Channels', target: '#channels', role: ['Admin'] }
Config.NavBar['AdminTrigger'] = { prio: 3000, parent: '#admin', name: 'Trigger', target: '#trigger', role: ['Admin'] }
Config.NavBar['AdminScheduler'] = { prio: 3500, parent: '#admin', name: 'Scheduler', target: '#scheduler', role: ['Admin'] }
Config.NavBar['Setting'] = { prio: 20000, parent: '', name: 'Settings', target: '#settings', role: ['Admin'] }
Config.NavBar['SettingSystem'] = { prio: 1400, parent: '#settings', name: 'System', target: '#settings/system', role: ['Admin'] }
Config.NavBar['SettingSecurity'] = { prio: 1500, parent: '#settings', name: 'Security', target: '#settings/security', role: ['Admin'] }
Config.NavBar['SettingTicket'] = { prio: 1600, parent: '#settings', name: 'Ticket', target: '#settings/ticket', role: ['Admin'] }
Config.NavBar['SettingObject'] = { prio: 1700, parent: '#settings', name: 'Objects', target: '#settings/objects', role: ['Admin'] }
Config.NavBar['Packages'] = { prio: 1800, parent: '#settings', name: 'Packages', target: '#packages', role: ['Admin'] }
Config.NavBar['TicketOverview'] = { prio: 1000, parent: '', name: 'Overviews', target: '#ticket_view', role: ['Agent'] }
#Config.NavBar[''] = { prio: 1000, parent: '#ticket_view', name: 'My assigned Tickets (51)', target: '#ticket_view/my_assigned', role: ['Agent'] }
#Config.NavBar[''] = { prio: 1000, parent: '#ticket_view', name: 'Unassigned Tickets (133)', target: '#ticket_view/all_unassigned', role: ['Agent'] }
#Config.NavBar['Network'] = { prio: 1500, parent: '', name: 'Networking', target: '#network', role: ['Anybody', 'Customer', 'Agent'] }
#Config.NavBar[''] = { prio: 1600, parent: '', name: 'anybody+agent', target: '#aa', role: ['Anybody', 'Agent'] }
#Config.NavBar[''] = { prio: 1600, parent: '', name: 'Anybody', target: '#anybody', role: ['Anybody'] }
Config.NavBar['CustomerTicketNew'] = { prio: 1600, parent: '', name: 'New Ticket', target: '#customer_ticket_new', role: ['Customer'] }
Config.NavBar['CustomerTickets'] = { prio: 1700, parent: '', name: 'My Tickets', target: '#ticket_view/my_tickets', role: ['Customer'] }
Config.NavBarRight['TicketNew'] = { prio: 8000, parent: '', name: 'New', target: '#ticket_create', role: ['Agent'] }
Config.NavBarRight['User'] = {
prio: 10000,
parent: '',
callback: ->
item = {}
item['name'] = window.Session['login']
return item
target: '#current_user',
role: [ 'Agent', 'Customer' ]
}
Config.NavBarRight['UserProfile'] = { prio: 1700, parent: '#current_user', name: 'Profile', target: '#profile', role: [ 'Agent', 'Customer' ] }
Config.NavBarRight['UserLogout'] = { prio: 1800, parent: '#current_user', name: 'Sign out', target: '#logout', divider: true, role: [ 'Agent', 'Customer' ] }

View file

@ -24,9 +24,6 @@ class Index extends App.Controller
render: -> render: ->
@html App.view('profile')() @html App.view('profile')()
Config.Routes['profile'] = Index App.Config.set( 'profile', Index, 'Routes' )
#class App.Profile extends App.Router App.Config.set( 'Profile', { prio: 1700, parent: '#current_user', name: 'Profile', target: '#profile', role: [ 'Agent', 'Customer' ] }, 'NavBarRight' )
# routes:
# 'profile': Index
#Config.Controller.push App.Profile

View file

@ -61,8 +61,7 @@ class Index extends App.Controller
message: 'Username or email address invalid, please go back and try <a href="#" class="retry">again</a>.' message: 'Username or email address invalid, please go back and try <a href="#" class="retry">again</a>.'
); );
Config.Routes['reset_password'] = Index App.Config.set( 'reset_password', Index, 'Routes' )
class Verify extends App.Controller class Verify extends App.Controller
className: 'container' className: 'container'
@ -138,4 +137,4 @@ class Verify extends App.Controller
message: 'Ask your admin!', message: 'Ask your admin!',
); );
Config.Routes['reset_password_verify/:token'] = Verify App.Config.set( 'reset_password_verify/:token', Verify, 'Routes' )

View file

@ -19,5 +19,7 @@ class Index extends App.Controller
@html App.view('scheduler')( @html App.view('scheduler')(
head: 'some header' head: 'some header'
) )
Config.Routes['scheduler'] = Index
App.Config.set( 'scheduler', Index, 'Routes' )
App.Config.set( 'Scheduler', { prio: 3500, parent: '#admin', name: 'Scheduler', target: '#scheduler', role: ['Admin'] }, 'NavBar' )

View file

@ -55,6 +55,11 @@ class Index extends App.ControllerLevel2
# render page # render page
@render() @render()
Config.Routes['settings/:type/:target'] = Index App.Config.set( 'settings/:type/:target', Index, 'Routes' )
Config.Routes['settings/:type'] = Index App.Config.set( 'settings/:type', Index, 'Routes' )
App.Config.set( 'System', { prio: 1400, parent: '#settings', name: 'System', target: '#settings/system', role: ['Admin'] }, 'NavBar' )
App.Config.set( 'Security', { prio: 1500, parent: '#settings', name: 'Security', target: '#settings/security', role: ['Admin'] }, 'NavBar' )
App.Config.set( 'Ticket', { prio: 1600, parent: '#settings', name: 'Ticket', target: '#settings/ticket', role: ['Admin'] }, 'NavBar' )
App.Config.set( 'Object', { prio: 1700, parent: '#settings', name: 'Objects', target: '#settings/objects', role: ['Admin'] }, 'NavBar' )
App.Config.set( 'Packages', { prio: 1800, parent: '#settings', name: 'Packages', target: '#packages', role: ['Admin'] }, 'NavBar' )

View file

@ -100,4 +100,4 @@ class Index extends App.Controller
username: @username username: @username
) )
Config.Routes['signup'] = Index App.Config.set( 'signup', Index, 'Routes' )

View file

@ -26,6 +26,6 @@ class Index extends App.Controller
}, },
) )
Config.Routes['text_modules'] = Index App.Config.set( 'text_modules', Index, 'Routes' )
Config.NavBar['AdminTextModule'] = { prio: 2300, parent: '#admin', name: 'Text Modules', target: '#text_modules', role: ['Admin'] } App.Config.set( 'AdminTextModule', { prio: 2300, parent: '#admin', name: 'Text Modules', target: '#text_modules', role: ['Admin'] }, 'NavBar' )

View file

@ -19,16 +19,7 @@ class Index extends App.Controller
@html App.view('trigger')( @html App.view('trigger')(
head: 'some header' head: 'some header'
) )
Config.Routes['trigger'] = Index
#class App.Triggers extends App.Router App.Config.set( 'trigger', Index, 'Routes' )
# routes:
# 'triggers/web': New App.Config.set( 'Trigger', { prio: 3000, parent: '#admin', name: 'Trigger', target: '#trigger', role: ['Admin'] }, 'NavBar' )
# 'triggers/email': New
# 'triggers/twitter': New
# 'triggers/facebook': New
# 'triggers/new': New
# 'triggers/:id/edit': Edit
# 'triggers': Index
#
#Config.Controller.push App.Triggers

View file

@ -29,12 +29,6 @@ class Index extends App.Controller
} }
) )
Config.Routes['users'] = Index App.Config.set( 'users', Index, 'Routes' )
#class App.Users extends App.Router App.Config.set( 'User', { prio: 1000, parent: '#admin', name: 'Users', target: '#users', role: ['Admin'] }, 'NavBar' )
# routes:
# 'users/new': New
# 'users/:id/edit': Edit
# 'users': Index
#
#Config.Controller.push App.Users

View file

@ -16,14 +16,12 @@
#= require ./lib/bootstrap/bootstrap-transition.js #= require ./lib/bootstrap/bootstrap-transition.js
#= require_tree ./lib/base #= require_tree ./lib/base
#not_used= require_tree ./lib
#= require_self #= require_self
#= require_tree ./lib/app_init
#= require_tree ./models #= require_tree ./models
#= require_tree ./controllers #= require_tree ./controllers
#= require_tree ./views #= require_tree ./views
#= require_tree ./lib/app_post
#= require_tree ./lib/app
class App extends Spine.Controller class App extends Spine.Controller
@view: (name) -> @view: (name) ->
@ -62,6 +60,10 @@ class App extends Spine.Controller
params.L = ( item ) -> params.L = ( item ) ->
window.linkify( item ) window.linkify( item )
# define config helper
params.C = ( key ) ->
App.Config.get( key )
# define template # define template
JST["app/views/#{name}"](params) JST["app/views/#{name}"](params)
template template

View file

@ -0,0 +1,41 @@
class App.Config
_instance = undefined
@init: ->
_instance ?= new _Singleton
@get: ( key, group ) ->
if _instance == undefined
_instance ?= new _Singleton
_instance.get( key )
@set: ( key, value, group ) ->
if _instance == undefined
_instance ?= new _Singleton
_instance.set( key, value, group )
@_all: ->
if _instance == undefined
_instance ?= new _Singleton
_instance._all()
class _Singleton
constructor: ->
@config = {}
get: ( key, group ) ->
if group
return undefined if !group of @config
return @config[group][key]
return @config[key]
set: ( key, value, group ) ->
if group
if !@config[group]
@config[group] = {}
@config[group][key] = value
else
@config[key] = value
_all: ->
@config

View file

@ -36,7 +36,7 @@ class App.Auth
# update config # update config
for key, value of data.config for key, value of data.config
window.Config[key] = value App.Config.set( key, value )
# empty session # empty session
window.Session = {} window.Session = {}
@ -55,7 +55,7 @@ class App.Auth
# update config # update config
for key, value of data.config for key, value of data.config
window.Config[key] = value App.Config.set( key, value )
# store user data # store user data
for key, value of data.session for key, value of data.session

View file

@ -106,7 +106,7 @@ class _Singleton
translate_content: ( string, args... ) => translate_content: ( string, args... ) =>
translated = @translate( string, args... ) translated = @translate( string, args... )
# replace = '<span class="translation" contenteditable="true" data-text="' + @escape(string) + '">' + translated + '<span class="icon-edit"></span>' # replace = '<span class="translation" contenteditable="true" data-text="' + @escape(string) + '">' + translated + '<span class="icon-edit"></span>'
if window.Config['Translation'] if App.Config.get( 'Translation' )
replace = '<span class="translation" contenteditable="true" data-text="' + @escape(string) + '">' + translated + '' replace = '<span class="translation" contenteditable="true" data-text="' + @escape(string) + '">' + translated + ''
# if !@_translated # if !@_translated
# replace += '<span class="missing">XX</span>' # replace += '<span class="missing">XX</span>'

View file

@ -32,14 +32,15 @@ class App.Run extends App.Controller
# bind to fill selected text into # bind to fill selected text into
App.ClipBoard.bind( @el ) App.ClipBoard.bind( @el )
class App.Content extends Spine.Controller class App.Content extends App.Controller
className: 'container' className: 'container'
constructor: -> constructor: ->
super super
@log 'RUN content' @log 'RUN content'
for route, callback of Config.Routes Routes = @Config.get( 'Routes' )
for route, callback of Routes
do (route, callback) => do (route, callback) =>
@route(route, (params) -> @route(route, (params) ->

View file

@ -4,13 +4,13 @@
<h1><span contenteditable="true" class="title_update inline-edit"><%= @P( @ticket.title ) %></span> <small><%= @ticket.number %></small></h1> <h1><span contenteditable="true" class="title_update inline-edit"><%= @P( @ticket.title ) %></span> <small><%= @ticket.number %></small></h1>
</div> </div>
<div class="span2"> <div class="span2">
<% if window.Config['LastOverview'] && @nav: %> <% if @C( 'LastOverview' ) && @nav: %>
<div class="pagination"> <div class="pagination">
<span class="count"><%= Config['LastOverviewPosition'] %>/<%= Config['LastOverviewTotal'] %></span> <span class="count"><%= @C( 'LastOverviewPosition' ) %>/<%= @C( 'LastOverviewTotal' ) %></span>
<% base_url ="#ticket_view/#{Config['LastOverview']}/#{Config['LastOverviewPosition']}/" %> <% base_url ="#ticket_view/#{ @C('LastOverview') }/#{ @C('LastOverviewPosition') }/" %>
<ul> <ul>
<li class="<% if Config['LastOverviewPosition'] <= 1: %>disabled<% end %>"><a href="<%- base_url %>previous" title="<%- @Ti( 'previous Ticket in Overview' ) %>">«</a></li> <li class="<% if @C('LastOverviewPosition') <= 1: %>disabled<% end %>"><a href="<%- base_url %>previous" title="<%- @Ti( 'previous Ticket in Overview' ) %>">«</a></li>
<li class="<% if Config['LastOverviewPosition'] is Config['LastOverviewTotal']: %>disabled<% end %>"><a href="<%- base_url %>next" title="<%- @Ti( 'next Ticket in Overview' ) %>">»</a></li> <li class="<% if @C('LastOverviewPosition') is @C('LastOverviewTotal'): %>disabled<% end %>"><a href="<%- base_url %>next" title="<%- @Ti( 'next Ticket in Overview' ) %>">»</a></li>
</ul> </ul>
</div> </div>
<% end %> <% end %>

View file

@ -47,7 +47,7 @@
<div class="row"> <div class="row">
<div class="span12"> <div class="span12">
<p><%- @T( 'New to' ) %> <%= Config.product_name %>, <%- @T( 'join today!' ) %></p> <p><%- @T( 'New to' ) %> <%= @C( 'product_name' ) %>, <%- @T( 'join today!' ) %></p>
<p><a href="#signup" class="btn"><%- @T( 'Sign up' ) %></a> <p><a href="#signup" class="btn"><%- @T( 'Sign up' ) %></a>
</div> </div>
</div> </div>

View file

@ -1,7 +1,7 @@
<div class="navbar navbar-fixed-top navbar-inverse"> <div class="navbar navbar-fixed-top navbar-inverse">
<div class="navbar-inner"> <div class="navbar-inner">
<div class="container"> <div class="container">
<a class="brand" href="#/"><%- Config.product_name %></a> <a class="brand" href="#/"><%- @C( 'product_name' ) %></a>
<ul class="nav"> <ul class="nav">
<% for item in @navbar_left: %> <% for item in @navbar_left: %>
<% if item.child: %> <% if item.child: %>

View file

@ -1,5 +1,5 @@
<div class="hero-unit"> <div class="hero-unit">
<h1><%- @T( 'Join' ) %> <%= Config.product_name %><small></small></h1> <h1><%- @T( 'Join' ) %> <%= @C( 'product_name' ) %><small></small></h1>
<div class="container"> <div class="container">
<form class="form-horizontal"> <form class="form-horizontal">
<p id="form-signup"></p> <p id="form-signup"></p>

View file

@ -1,8 +1 @@
var Config = {};
Config.Routes = {};
Config.NavBar = {};
Config.NavBarRight = {};
Config.product_name = 'Zammad'
Config.requested_url = ''
var Store = {};
var Session = {}; var Session = {};