From 8ad7c46b8a2b9920c138da07336612ff3f42a6f5 Mon Sep 17 00:00:00 2001 From: Martin Edenhofer Date: Mon, 12 Nov 2012 10:34:22 +0100 Subject: [PATCH] Small improvements. --- .../_application_controller_form.js.coffee | 14 ++++++- .../controllers/customer_ticket_new.js.coffee | 3 +- .../app/lib/app_post/i18n.js.coffee | 5 ++- .../app/views/generic/admin/edit.jst.eco | 2 +- .../app/views/generic/admin/new.jst.eco | 2 +- .../javascripts/app/views/profile.jst.eco | 4 +- app/controllers/application_controller.rb | 30 ++++++++++++--- app/controllers/sessions/collection_base.rb | 8 +++- app/controllers/sessions/collection_ticket.rb | 38 ++++++++++--------- app/controllers/sessions_controller.rb | 7 ++-- 10 files changed, 78 insertions(+), 35 deletions(-) diff --git a/app/assets/javascripts/app/controllers/_application_controller_form.js.coffee b/app/assets/javascripts/app/controllers/_application_controller_form.js.coffee index 877f8011c..9c9e5aa0b 100644 --- a/app/assets/javascripts/app/controllers/_application_controller_form.js.coffee +++ b/app/assets/javascripts/app/controllers/_application_controller_form.js.coffee @@ -155,6 +155,9 @@ class App.ControllerForm extends App.Controller # finde selected/checked item of list @_selectedOptions( attribute ) + # filter attributes + @_filterOption( attribute ) + if attribute.tag is 'boolean' # build options list @@ -459,7 +462,7 @@ class App.ControllerForm extends App.Controller App.Log.log 'ControllerForm', 'debug', '_getRelationOptionList:filter-function' all = App[attribute.relation].all() - list = attribute.filter( all ) + list = attribute.filter( all, 'collection' ) # data based filter else if attribute.filter[ attribute.name ] @@ -511,6 +514,15 @@ class App.ControllerForm extends App.Controller } ) + # execute filter + _filterOption: (attribute) -> + return if !attribute.filter + return if !attribute.options + + return if typeof attribute.filter isnt 'function' + App.Log.log 'ControllerForm', 'debug', '_filterOption:filter-function' + + attribute.options = attribute.filter( attribute.options, attribute ) # set selected attributes _selectedOptions: (attribute) -> diff --git a/app/assets/javascripts/app/controllers/customer_ticket_new.js.coffee b/app/assets/javascripts/app/controllers/customer_ticket_new.js.coffee index 2f50b141b..ee2ff5bc4 100644 --- a/app/assets/javascripts/app/controllers/customer_ticket_new.js.coffee +++ b/app/assets/javascripts/app/controllers/customer_ticket_new.js.coffee @@ -196,5 +196,6 @@ class Index extends App.Controller 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' ) +#App.Config.set( 'CustomerTicketNew', { prio: 1600, parent: '', name: 'New Ticket', target: '#customer_ticket_new', role: ['Customer'] }, 'NavBar' ) +App.Config.set( 'CustomerTicketNew', { prio: 8000, parent: '', name: 'New', target: '#customer_ticket_new', role: ['Customer'] }, 'NavBarRight' ) diff --git a/app/assets/javascripts/app/lib/app_post/i18n.js.coffee b/app/assets/javascripts/app/lib/app_post/i18n.js.coffee index 7225887d5..b371d7e15 100644 --- a/app/assets/javascripts/app/lib/app_post/i18n.js.coffee +++ b/app/assets/javascripts/app/lib/app_post/i18n.js.coffee @@ -21,7 +21,8 @@ class App.i18n _instance ?= new _Singleton _instance.timestamp( args ) -class _Singleton +class _Singleton extends Spine.Module + @include App.Log constructor: -> @locale = 'de' @@ -134,6 +135,8 @@ class _Singleton # escape translated = @escape(translated) + @log 'i18n', 'debug', 'translate', string, args, translated + # return translated string return translated diff --git a/app/assets/javascripts/app/views/generic/admin/edit.jst.eco b/app/assets/javascripts/app/views/generic/admin/edit.jst.eco index 56bbba3ce..b402bc42b 100644 --- a/app/assets/javascripts/app/views/generic/admin/edit.jst.eco +++ b/app/assets/javascripts/app/views/generic/admin/edit.jst.eco @@ -1,6 +1,6 @@
diff --git a/app/assets/javascripts/app/views/generic/admin/new.jst.eco b/app/assets/javascripts/app/views/generic/admin/new.jst.eco index 488503ef9..2639e5684 100644 --- a/app/assets/javascripts/app/views/generic/admin/new.jst.eco +++ b/app/assets/javascripts/app/views/generic/admin/new.jst.eco @@ -1,6 +1,6 @@ diff --git a/app/assets/javascripts/app/views/profile.jst.eco b/app/assets/javascripts/app/views/profile.jst.eco index 8d4197455..a6fb0afd4 100644 --- a/app/assets/javascripts/app/views/profile.jst.eco +++ b/app/assets/javascripts/app/views/profile.jst.eco @@ -1,14 +1,14 @@ - +
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 63fd69453..a3a4044bd 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -163,6 +163,11 @@ class ApplicationController < ActionController::Base def ticket_permission(ticket) return true if ticket.permission( :current_user => current_user ) + response_access_deny + return false + end + + def response_access_deny render( :json => {}, :status => :unauthorized @@ -197,12 +202,15 @@ class ApplicationController < ActionController::Base # save object generic_object.save - render :json => generic_object, :status => :created + model_create_render_item(generic_object) rescue Exception => e logger.error e.message render :json => { :error => e.message }, :status => :unprocessable_entity end end + def model_create_render_item (generic_object) + render :json => generic_object, :status => :created + end def model_update_render (object, params) begin @@ -215,42 +223,54 @@ class ApplicationController < ActionController::Base # save object generic_object.update_attributes( object.param_cleanup(params) ) - render :json => generic_object, :status => :ok + model_update_render_item(generic_object) rescue Exception => e logger.error e.message render :json => { :error => e.message }, :status => :unprocessable_entity end end + def model_update_render_item (generic_object) + render :json => generic_object, :status => :ok + end def model_destory_render (object, params) begin generic_object = object.find( params[:id] ) generic_object.destroy - render :json => {}, :status => :ok + model_destory_render_item() rescue Exception => e logger.error e.message render :json => { :error => e.message }, :status => :unprocessable_entity end end + def model_destory_render_item () + render :json => {}, :status => :ok + end def model_show_render (object, params) begin generic_object = object.find( params[:id] ) - render :json => generic_object, :status => :ok + model_show_render_item(generic_object) rescue Exception => e logger.error e.message render :json => { :error => e.message }, :status => :unprocessable_entity end end + def model_show_render_item (generic_object) + render :json => generic_object, :status => :ok + end def model_index_render (object, params) begin generic_object = object.all - render :json => generic_object, :status => :ok + model_index_render_result( generic_object ) rescue Exception => e logger.error e.message render :json => { :error => e.message }, :status => :unprocessable_entity end end + def model_index_render_result (generic_objects) + render :json => generic_objects, :status => :ok + end end diff --git a/app/controllers/sessions/collection_base.rb b/app/controllers/sessions/collection_base.rb index 0e1266089..72af949cd 100644 --- a/app/controllers/sessions/collection_base.rb +++ b/app/controllers/sessions/collection_base.rb @@ -4,16 +4,20 @@ module ExtraCollection # all base stuff collections['Role'] = Role.all collections['Group'] = Group.all - collections['Organization'] = Organization.all + if !user.is_role('Customer') + collections['Organization'] = Organization.all + end end def push( collections, user ) # all base stuff collections['Role'] = Role.all collections['Group'] = Group.all - collections['Organization'] = Organization.all + if !user.is_role('Customer') + collections['Organization'] = Organization.all + end end module_function :session, :push end \ No newline at end of file diff --git a/app/controllers/sessions/collection_ticket.rb b/app/controllers/sessions/collection_ticket.rb index a867c9813..dcb8be10c 100644 --- a/app/controllers/sessions/collection_ticket.rb +++ b/app/controllers/sessions/collection_ticket.rb @@ -8,12 +8,14 @@ module ExtraCollection collections['TicketArticleType'] = Ticket::Article::Type.all collections['TicketArticleSender'] = Ticket::Article::Sender.all - # all signatures - collections['Signature'] = Signature.all - - # all email addresses - collections['EmailAddress'] = EmailAddress.all - + if !user.is_role('Customer') + + # all signatures + collections['Signature'] = Signature.all + + # all email addresses + collections['EmailAddress'] = EmailAddress.all + end end def push( collections, user ) @@ -24,18 +26,20 @@ module ExtraCollection collections['TicketArticleType'] = Ticket::Article::Type.all collections['TicketArticleSender'] = Ticket::Article::Sender.all - # all signatures - collections['Signature'] = Signature.all - - # all email addresses - collections['EmailAddress'] = EmailAddress.all - - # all templates - collections['Template'] = Template.all - - # all text modules - collections['TextModule'] = TextModule.all + if !user.is_role('Customer') + # all signatures + collections['Signature'] = Signature.all + + # all email addresses + collections['EmailAddress'] = EmailAddress.all + + # all templates + collections['Template'] = Template.all + + # all text modules + collections['TextModule'] = TextModule.all + end end module_function :session, :push diff --git a/app/controllers/sessions_controller.rb b/app/controllers/sessions_controller.rb index 39b68330a..c6c2fb349 100644 --- a/app/controllers/sessions_controller.rb +++ b/app/controllers/sessions_controller.rb @@ -18,12 +18,11 @@ class SessionsController < ApplicationController # remember last login date user.update_last_login() - user = User.find_fulldata(user.id) - # auto population of default collections default_collection = SessionHelper::default_collections(user) - + # set session user_id + user = User.find_fulldata(user.id) session[:user_id] = user['id'] # check logon session @@ -82,7 +81,7 @@ class SessionsController < ApplicationController user = User.user_data_full( user_id ) # auto population of default collections - default_collection = SessionHelper::default_collections(user) + default_collection = SessionHelper::default_collections( User.find(user_id) ) # return current session render :json => {