# ## jQuery UI dialog plugin ## pattern: $(<TARGET>).dialog('<FUNCTION>')
- # Opening and closing and closing a popup
+ # Opening and closing a popup
'dialog:open' => 1, # kivi.popup_dialog(<TARGET>)
'dialog:close' => 1,
# ## other stuff ##
redirect_to => 1, # window.location.href = <TARGET>
+ save_file => 4, # kivi.save_file(<TARGET>, <ARGS>)
flash => 2, # kivi.display_flash(<TARGET>, <ARGS>)
flash_detail => 2, # kivi.display_flash_detail(<TARGET>, <ARGS>)
run_once_for => 3, # kivi.run_once_for(<TARGET>, <ARGS>)
scroll_into_view => 1, # $(<TARGET>)[0].scrollIntoView()
+
+ set_cursor_position => 2, # kivi.set_cursor_position(<TARGET>, <ARGS>)
);
my %trim_target_for = map { ($_ => 1) } qw(insertAfter insertBefore appendTo prependTo);
// 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!
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.
=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<js/client_js.js>) there's a script that can parse this file's
C<%supported_methods> definition and generate the file
C<js/client_js.js> accordingly. The steps are: