X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FClientJS.pm;h=a04702eb34932dbb95a2ca7580bf6ce1ee92c2f2;hb=41276623722df9317163274551400fc42a2722e0;hp=51f663fa52c50b7db1941c0d94037c0cdbdcdff2;hpb=001c83b188e6a6394761c217d28984553f351c00;p=kivitendo-erp.git diff --git a/SL/ClientJS.pm b/SL/ClientJS.pm index 51f663fa5..a04702eb3 100644 --- a/SL/ClientJS.pm +++ b/SL/ClientJS.pm @@ -58,6 +58,11 @@ my %supported_methods = ( removeProp => 2, val => 2, + # Class attribute + addClass => 2, + removeClass => 2, + toggleClass => 2, + # Data storage data => 3, removeData => 2, @@ -65,6 +70,11 @@ my %supported_methods = ( # Form Events focus => 1, + # ## jqModal plugin ## + + # Closing and removing the popup + jqmClose => 1, + # ## jstree plugin ## pattern: $.jstree._reference($()).() # Operations on the whole tree @@ -90,6 +100,9 @@ my %supported_methods = ( 'jstree:select_node' => 2, # $.jstree._reference($()).(, true) 'jstree:deselect_node' => 2, 'jstree:deselect_all' => 1, + + # ## other stuff ## + redirect_to => 1, # window.location.href = ); sub AUTOLOAD { @@ -123,6 +136,12 @@ sub action { return $self; } +sub action_if { + my ($self, $condition, @args) = @_; + + return $condition ? $self->action(@args) : $self; +} + sub init__actions { return []; } @@ -338,7 +357,38 @@ Instead of: The first variation is obviously better suited for chaining. -Additional functions: +=over 4 + +=item C + +Call the function with the name C<$method> on C<$self> with arguments +C<@args>. Returns the return value of the actual function +called. Useful for chaining (see above). + +=item C + +Call the function with the name C<$method> on C<$self> with arguments +C<@args> if C<$condition> is trueish. Does nothing otherwise. + +Returns the return value of the actual function called if +C<$condition> is trueish and C<$self> otherwise. Useful for chaining +(see above). + +This function is equivalent to the following: + + if ($condition) { + $obj->$method(@args); + } + +But it is easier to integrate into a method call chain, e.g.: + + $js->html('#content', $html) + ->action_if($item->is_flagged, 'toggleClass', '#marker', 'flagged') + ->render($self); + +=back + +=head2 ADDITIONAL FUNCTIONS =over 4 @@ -347,8 +397,8 @@ Additional functions: Display a C<$message> in the flash of type C<$type>. Multiple calls of C on the same C<$self> will be merged by type. -On the client side the flash of this type will be cleared before the -message is shown. +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(...)>. =item C @@ -359,6 +409,14 @@ client will then show the message in the 'error' flash. The messages of multiple calls of C on the same C<$self> will be merged. +=item C + +Redirects the browser window to the new URL by setting the JavaScript +property C. Note that +L is AJAX aware and uses this +function if the current request is an AJAX request as determined by +L. + =back =head2 JQUERY FUNCTIONS