X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FClientJS.pm;h=49bde8092cbfbeb1114c5969ad9f93786a51a04f;hb=b36fb0f412d2d2b43b8d98d787743cbe1fbf2540;hp=7f8bee01111305937a85fd7425c30d3109ff9191;hpb=40fc1b5c157cea8cedea29ba152c0a42e54a3698;p=kivitendo-erp.git diff --git a/SL/ClientJS.pm b/SL/ClientJS.pm index 7f8bee011..49bde8092 100644 --- a/SL/ClientJS.pm +++ b/SL/ClientJS.pm @@ -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($()).() @@ -113,6 +113,7 @@ my %supported_methods = ( # ## other stuff ## redirect_to => 1, # window.location.href = + save_file => 4, # kivi.save_file(, ) flash => 2, # kivi.display_flash(, ) flash_detail => 2, # kivi.display_flash_detail(, ) @@ -122,6 +123,8 @@ my %supported_methods = ( run_once_for => 3, # kivi.run_once_for(, ) scroll_into_view => 1, # $()[0].scrollIntoView() + + set_cursor_position => 2, # kivi.set_cursor_position(, ) ); my %trim_target_for = map { ($_ => 1) } qw(insertAfter insertBefore appendTo prependTo); @@ -300,20 +303,15 @@ First some JavaScript code: // In the client generate an AJAX request whose 'success' handler // calls "eval_json_result(data)": var data = { - action: "SomeController/the_action", + action: "SomeController/my_personal_action", id: $('#some_input_field').val() }; $.post("controller.pl", data, eval_json_result); -Now some Perl code: - - # In the controller itself. First, make sure that the "client_js.js" - # is loaded. This must be done when the whole side is loaded, so - # it's not in the action called by the AJAX request shown above. - $::request->layout->use_javascript('client_js.js'); +Now some Controller (perl) code for my personal action: - # Now in that action called via AJAX: - sub action_the_action { + # my personal action + sub action_my_personal_action { my ($self) = @_; # Create a new client-side JS object and do stuff with it! @@ -352,7 +350,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. @@ -662,7 +660,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: