X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FClientJS.pm;h=a134cad9b2c53c8a19943ef0cd18422b7899b6d0;hb=c13f301e71da717b09f3c7364a9f0c87c4f7a4ea;hp=91ff14b18b4ae251013c522b15714248bbcd6f39;hpb=4b1bcc4753f0a4870b4abb8053a63c548896c5e3;p=kivitendo-erp.git diff --git a/SL/ClientJS.pm b/SL/ClientJS.pm index 91ff14b18..a134cad9b 100644 --- a/SL/ClientJS.pm +++ b/SL/ClientJS.pm @@ -10,7 +10,7 @@ use SL::JSON (); use Rose::Object::MakeMethods::Generic ( scalar => [ qw() ], - 'scalar --get_set_init' => [ qw(controller _actions _flash _flash_detail _error) ], + 'scalar --get_set_init' => [ qw(controller _actions _flash _flash_detail _no_flash_clear _error) ], ); my %supported_methods = ( @@ -75,12 +75,12 @@ my %supported_methods = ( # ## jQuery UI dialog plugin ## pattern: $().dialog('') - # Opening and closing and closing a popup + # Opening and closing a popup 'dialog:open' => 1, # kivi.popup_dialog() 'dialog:close' => 1, # ## jQuery Form plugin ## - 'ajaxForm' => 1, # pattern: $().ajaxForm({ success: eval_json_result }) + 'ajaxForm' => 1, # $().ajaxForm({ success: eval_json_result }) # ## jstree plugin ## pattern: $.jstree._reference($()).() @@ -116,7 +116,7 @@ my %supported_methods = ( flash => 2, # kivi.display_flash(, ) flash_detail => 2, # kivi.display_flash_detail(, ) - clear_flash => 2, # kivi.display_flash_detail(, ) + clear_flash => 2, # kivi.clear_flash(, ) reinit_widgets => 0, # kivi.reinit_widgets() run => -1, # kivi.run(, ) run_once_for => 3, # kivi.run_once_for(, ) @@ -190,11 +190,15 @@ sub init__error { return ''; } +sub init__no_flash_clear { + return ''; +} + sub to_json { my ($self) = @_; - return SL::JSON::to_json({ error => $self->_error }) if $self->_error; - return SL::JSON::to_json({ eval_actions => $self->_actions }); + return SL::JSON::to_json({ error => $self->_error }) if $self->_error; + return SL::JSON::to_json({ no_flash_clear => $self->_no_flash_clear, eval_actions => $self->_actions }); } sub to_array { @@ -257,6 +261,12 @@ sub flash_detail { return $self; } +sub no_flash_clear{ + my ($self) = @_; + $self->_no_flash_clear('1'); + return $self; +} + sub error { my ($self, @messages) = @_; @@ -342,7 +352,7 @@ This module enables the generation of jQuery-using JavaScript code on the server side. That code is then evaluated in a safe way on the client side. -The workflow is usally that the client creates an AJAX request, the +The workflow is usually that the client creates an AJAX request, the server creates some actions and sends them back, and the client then implements each of these actions. @@ -484,6 +494,17 @@ C on the same C<$self> will be merged by type. On the client side the flashes of all types will be cleared after each successful ClientJS call that did not end with C<$js-Eerror(...)>. +This clearing can be switched of by the function C + +=item C + +Display a detailed message C<$message> in the flash of type C<$type>. Multiple calls of +C on the same C<$self> will be merged by type. +So the flash message can be hold short and the visibility of details can toggled by the user. + +=item C + +No automatic clearing of flash after successful ClientJS call =item C @@ -641,7 +662,7 @@ C, C, C =head1 ADDING SUPPORT FOR ADDITIONAL FUNCTIONS -In order not having to maintain two files (this one and +In order to not have to maintain two files (this one and C) there's a script that can parse this file's C<%supported_methods> definition and generate the file C accordingly. The steps are: