← Index
NYTProf Performance Profile   « line view »
For ./view
  Run on Fri Jul 31 18:42:36 2015
Reported on Fri Jul 31 18:48:14 2015

Filename/var/www/foswikidev/core/lib/Foswiki/Plugins/JQueryPlugin.pm
StatementsExecuted 258 statements in 2.08ms
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
911227µs652µsFoswiki::Plugins::JQueryPlugin::::handleJQueryIconFoswiki::Plugins::JQueryPlugin::handleJQueryIcon
11176µs2.88msFoswiki::Plugins::JQueryPlugin::::initPluginFoswiki::Plugins::JQueryPlugin::initPlugin
65427µs3.88msFoswiki::Plugins::JQueryPlugin::::createPluginFoswiki::Plugins::JQueryPlugin::createPlugin
66522µs81µsFoswiki::Plugins::JQueryPlugin::::registerPluginFoswiki::Plugins::JQueryPlugin::registerPlugin
11113µs25µsFoswiki::Plugins::JQueryPlugin::::BEGIN@3Foswiki::Plugins::JQueryPlugin::BEGIN@3
11112µs169µsFoswiki::Plugins::JQueryPlugin::::finishPluginFoswiki::Plugins::JQueryPlugin::finishPlugin
11110µs14µsFoswiki::Plugins::JQueryPlugin::::BEGIN@4Foswiki::Plugins::JQueryPlugin::BEGIN@4
1119µs20µsFoswiki::Plugins::JQueryPlugin::::BEGIN@21Foswiki::Plugins::JQueryPlugin::BEGIN@21
1118µs21µsFoswiki::Plugins::JQueryPlugin::::BEGIN@23Foswiki::Plugins::JQueryPlugin::BEGIN@23
1118µs19µsFoswiki::Plugins::JQueryPlugin::::BEGIN@18Foswiki::Plugins::JQueryPlugin::BEGIN@18
1116µs43µsFoswiki::Plugins::JQueryPlugin::::createThemeFoswiki::Plugins::JQueryPlugin::createTheme
1114µs4µsFoswiki::Plugins::JQueryPlugin::::BEGIN@14Foswiki::Plugins::JQueryPlugin::BEGIN@14
1114µs4µsFoswiki::Plugins::JQueryPlugin::::BEGIN@15Foswiki::Plugins::JQueryPlugin::BEGIN@15
1114µs4µsFoswiki::Plugins::JQueryPlugin::::BEGIN@16Foswiki::Plugins::JQueryPlugin::BEGIN@16
0000s0sFoswiki::Plugins::JQueryPlugin::::_inlineErrorFoswiki::Plugins::JQueryPlugin::_inlineError
0000s0sFoswiki::Plugins::JQueryPlugin::::handleButtonFoswiki::Plugins::JQueryPlugin::handleButton
0000s0sFoswiki::Plugins::JQueryPlugin::::handleEndTabFoswiki::Plugins::JQueryPlugin::handleEndTab
0000s0sFoswiki::Plugins::JQueryPlugin::::handleEndTabPaneFoswiki::Plugins::JQueryPlugin::handleEndTabPane
0000s0sFoswiki::Plugins::JQueryPlugin::::handleJQueryIconPathFoswiki::Plugins::JQueryPlugin::handleJQueryIconPath
0000s0sFoswiki::Plugins::JQueryPlugin::::handleJQueryPluginsFoswiki::Plugins::JQueryPlugin::handleJQueryPlugins
0000s0sFoswiki::Plugins::JQueryPlugin::::handleJQueryRequireFoswiki::Plugins::JQueryPlugin::handleJQueryRequire
0000s0sFoswiki::Plugins::JQueryPlugin::::handleJQueryThemeFoswiki::Plugins::JQueryPlugin::handleJQueryTheme
0000s0sFoswiki::Plugins::JQueryPlugin::::handlePopUpWindowFoswiki::Plugins::JQueryPlugin::handlePopUpWindow
0000s0sFoswiki::Plugins::JQueryPlugin::::handleRestTmplFoswiki::Plugins::JQueryPlugin::handleRestTmpl
0000s0sFoswiki::Plugins::JQueryPlugin::::handleTabFoswiki::Plugins::JQueryPlugin::handleTab
0000s0sFoswiki::Plugins::JQueryPlugin::::handleTabPaneFoswiki::Plugins::JQueryPlugin::handleTabPane
0000s0sFoswiki::Plugins::JQueryPlugin::::handleToggleFoswiki::Plugins::JQueryPlugin::handleToggle
0000s0sFoswiki::Plugins::JQueryPlugin::::registerThemeFoswiki::Plugins::JQueryPlugin::registerTheme
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1# See bottom of file for license and copyright information
2package Foswiki::Plugins::JQueryPlugin;
3235µs237µs
# spent 25µs (13+12) within Foswiki::Plugins::JQueryPlugin::BEGIN@3 which was called: # once (13µs+12µs) by Foswiki::Contrib::JEditableContrib::JEDITABLE::BEGIN@7 at line 3
use strict;
# spent 25µs making 1 call to Foswiki::Plugins::JQueryPlugin::BEGIN@3 # spent 12µs making 1 call to strict::import
4235µs218µs
# spent 14µs (10+4) within Foswiki::Plugins::JQueryPlugin::BEGIN@4 which was called: # once (10µs+4µs) by Foswiki::Contrib::JEditableContrib::JEDITABLE::BEGIN@7 at line 4
use warnings;
# spent 14µs making 1 call to Foswiki::Plugins::JQueryPlugin::BEGIN@4 # spent 4µs making 1 call to warnings::import
5
6=begin TML
7
8---+ package Foswiki::Plugins::JQueryPlugin
9
10Container for jQuery and plugins
11
12=cut
13
14226µs14µs
# spent 4µs within Foswiki::Plugins::JQueryPlugin::BEGIN@14 which was called: # once (4µs+0s) by Foswiki::Contrib::JEditableContrib::JEDITABLE::BEGIN@7 at line 14
use Foswiki::Plugins ();
# spent 4µs making 1 call to Foswiki::Plugins::JQueryPlugin::BEGIN@14
15222µs14µs
# spent 4µs within Foswiki::Plugins::JQueryPlugin::BEGIN@15 which was called: # once (4µs+0s) by Foswiki::Contrib::JEditableContrib::JEDITABLE::BEGIN@7 at line 15
use Foswiki::Plugins::JQueryPlugin::Plugins ();
# spent 4µs making 1 call to Foswiki::Plugins::JQueryPlugin::BEGIN@15
16237µs14µs
# spent 4µs within Foswiki::Plugins::JQueryPlugin::BEGIN@16 which was called: # once (4µs+0s) by Foswiki::Contrib::JEditableContrib::JEDITABLE::BEGIN@7 at line 16
use Foswiki::Request ();
# spent 4µs making 1 call to Foswiki::Plugins::JQueryPlugin::BEGIN@16
17
18
# spent 19µs (8+11) within Foswiki::Plugins::JQueryPlugin::BEGIN@18 which was called: # once (8µs+11µs) by Foswiki::Contrib::JEditableContrib::JEDITABLE::BEGIN@7 at line 25
BEGIN {
19 # Backwards compatibility for Foswiki 1.1.x
2017µs111µs unless ( Foswiki::Request->can('multi_param') ) {
# spent 11µs making 1 call to CGI::can
21238µs231µs
# spent 20µs (9+11) within Foswiki::Plugins::JQueryPlugin::BEGIN@21 which was called: # once (9µs+11µs) by Foswiki::Contrib::JEditableContrib::JEDITABLE::BEGIN@7 at line 21
no warnings 'redefine';
# spent 20µs making 1 call to Foswiki::Plugins::JQueryPlugin::BEGIN@21 # spent 11µs making 1 call to warnings::unimport
22 *Foswiki::Request::multi_param = \&Foswiki::Request::param;
23225µs235µs
# spent 21µs (8+13) within Foswiki::Plugins::JQueryPlugin::BEGIN@23 which was called: # once (8µs+13µs) by Foswiki::Contrib::JEditableContrib::JEDITABLE::BEGIN@7 at line 23
use warnings 'redefine';
# spent 21µs making 1 call to Foswiki::Plugins::JQueryPlugin::BEGIN@23 # spent 13µs making 1 call to warnings::import
24 }
2511.50ms119µs}
# spent 19µs making 1 call to Foswiki::Plugins::JQueryPlugin::BEGIN@18
26
271600nsour $VERSION = '6.13';
281100nsour $RELEASE = '16 Jun 2015';
291100nsour $SHORTDESCRIPTION = 'jQuery <nop>JavaScript library for Foswiki';
301200nsour $NO_PREFS_IN_TOPIC = 1;
31
32=begin TML
33
34---++ initPlugin($topic, $web, $user) -> $boolean
35
36=cut
37
38
# spent 2.88ms (76µs+2.81) within Foswiki::Plugins::JQueryPlugin::initPlugin which was called: # once (76µs+2.81ms) by Foswiki::Plugin::__ANON__[/var/www/foswikidev/core/lib/Foswiki/Plugin.pm:257] at line 250 of /var/www/foswikidev/core/lib/Foswiki/Plugin.pm
sub initPlugin {
3912µs my ( $topic, $web, $user ) = @_;
40
41 # check for prerequisites
421900ns unless ( defined(&Foswiki::Func::addToZone) ) {
43 Foswiki::Func::writeWarning(
44"ZonePlugin required for legacy Foswiki engines ... disabling JQueryPlugin"
45 );
46 return 0;
47 }
48
4912µs116µs Foswiki::Func::registerTagHandler( 'JQTHEME', \&handleJQueryTheme );
# spent 16µs making 1 call to Foswiki::Func::registerTagHandler
5012µs112µs Foswiki::Func::registerTagHandler( 'JQREQUIRE', \&handleJQueryRequire );
# spent 12µs making 1 call to Foswiki::Func::registerTagHandler
5112µs112µs Foswiki::Func::registerTagHandler( 'JQICON', \&handleJQueryIcon );
# spent 12µs making 1 call to Foswiki::Func::registerTagHandler
5212µs112µs Foswiki::Func::registerTagHandler( 'JQICONPATH', \&handleJQueryIconPath );
# spent 12µs making 1 call to Foswiki::Func::registerTagHandler
5312µs114µs Foswiki::Func::registerTagHandler( 'JQPLUGINS', \&handleJQueryPlugins );
# spent 14µs making 1 call to Foswiki::Func::registerTagHandler
54
55 # jquery.tabpane
5612µs123µs Foswiki::Func::registerTagHandler( 'TABPANE', \&handleTabPane );
# spent 23µs making 1 call to Foswiki::Func::registerTagHandler
5712µs111µs Foswiki::Func::registerTagHandler( 'ENDTABPANE', \&handleEndTabPane );
# spent 11µs making 1 call to Foswiki::Func::registerTagHandler
5812µs111µs Foswiki::Func::registerTagHandler( 'TAB', \&handleTab );
# spent 11µs making 1 call to Foswiki::Func::registerTagHandler
5912µs113µs Foswiki::Func::registerTagHandler( 'ENDTAB', \&handleEndTab );
# spent 13µs making 1 call to Foswiki::Func::registerTagHandler
60
61 # jquery.button
6212µs113µs Foswiki::Func::registerTagHandler( 'BUTTON', \&handleButton );
# spent 13µs making 1 call to Foswiki::Func::registerTagHandler
63
64 # jquery.popupwindow
6512µs111µs Foswiki::Func::registerTagHandler( 'POPUPWINDOW', \&handlePopUpWindow );
# spent 11µs making 1 call to Foswiki::Func::registerTagHandler
66
67 # init plugin handler and preload default plugins
6813µs12.63ms Foswiki::Plugins::JQueryPlugin::Plugins::init();
# spent 2.63ms making 1 call to Foswiki::Plugins::JQueryPlugin::Plugins::init
69
70 # backwards compatibility
71114µs18µs if ( $Foswiki::Plugins::VERSION < 2.1 ) {
# spent 8µs making 1 call to version::vxs::VCMP
72 Foswiki::Func::setPreferencesValue( "CLEAR",
73 "<span class='foswikiClear'></span>" );
74 }
75
76 # jquery.tmpl
77 Foswiki::Func::registerRESTHandler(
7814µs124µs 'tmpl', \&handleRestTmpl,
# spent 24µs making 1 call to Foswiki::Func::registerRESTHandler
79 authenticate => 0, # Safe. Expands templates.
80 validate => 0, # Doesn't update.
81 http_allow => 'GET,POST', # Can't update so doesn't matter
82 description =>
83 'Load and expand a template in current web/topic context.'
84 );
85
8615µs return 1;
87}
88
89=begin TML
90
91finish up the plugins container
92
93=cut
94
95
# spent 169µs (12+157) within Foswiki::Plugins::JQueryPlugin::finishPlugin which was called: # once (12µs+157µs) by Foswiki::Plugin::invoke at line 310 of /var/www/foswikidev/core/lib/Foswiki/Plugin.pm
sub finishPlugin {
9616µs1157µs Foswiki::Plugins::JQueryPlugin::Plugins::finish();
# spent 157µs making 1 call to Foswiki::Plugins::JQueryPlugin::Plugins::finish
97}
98
99=begin TML
100
101---++ createPlugin($pluginName, ...) -> $plugin
102
103API to create a jQuery plugin. Instantiating it adds all required javascript
104and css files to the html page header.
105
106=cut
107
108
# spent 3.88ms (27µs+3.85) within Foswiki::Plugins::JQueryPlugin::createPlugin which was called 6 times, avg 647µs/call: # 2 times (13µs+2.08ms) by Foswiki::Plugins::SubscribePlugin::_SUBSCRIBE at line 104 of /var/www/foswikidev/core/lib/Foswiki/Plugins/SubscribePlugin.pm, avg 1.05ms/call # once (3µs+664µs) by Foswiki::Plugins::UpdatesPlugin::initPlugin at line 53 of /var/www/foswikidev/core/lib/Foswiki/Plugins/UpdatesPlugin.pm # once (5µs+466µs) by Foswiki::Plugins::CommentPlugin::initPlugin at line 44 of /var/www/foswikidev/core/lib/Foswiki/Plugins/CommentPlugin.pm # once (3µs+447µs) by Foswiki::Plugins::UpdatesPlugin::initPlugin at line 52 of /var/www/foswikidev/core/lib/Foswiki/Plugins/UpdatesPlugin.pm # once (3µs+196µs) by Foswiki::Plugins::JEditableContribPlugin::initPlugin at line 14 of /var/www/foswikidev/core/lib/Foswiki/Plugins/JEditableContribPlugin.pm
sub createPlugin {
109630µs63.85ms return Foswiki::Plugins::JQueryPlugin::Plugins::createPlugin(@_);
# spent 3.85ms making 6 calls to Foswiki::Plugins::JQueryPlugin::Plugins::createPlugin, avg 642µs/call
110}
111
112=begin TML
113
114---++ createTheme($themeName) -> $boolean
115
116API to load a jQuery UI theme. Returns true if the theme has
117been loaded successfully.
118
119=cut
120
121
# spent 43µs (6+37) within Foswiki::Plugins::JQueryPlugin::createTheme which was called: # once (6µs+37µs) by Foswiki::Plugins::JQueryPlugin::UI::init at line 59 of /var/www/foswikidev/core/lib/Foswiki/Plugins/JQueryPlugin/UI.pm
sub createTheme {
12216µs137µs return Foswiki::Plugins::JQueryPlugin::Plugins::createTheme(@_);
123}
124
125=begin TML
126
127---++ registerPlugin($pluginName, $class) -> $plugin
128
129API to register a jQuery plugin. This is of use for other Foswiki plugins
130to register their javascript modules as a jQuery plugin. Registering a plugin 'foobar'
131will make it available via =%<nop>JQREQUIRE{"foobar"}%=.
132
133Class will default to 'Foswiki::Plugins::JQueryPlugin::FOOBAR,
134
135The FOOBAR.pm stub must be derived from Foswiki::Plugins::JQueryPlugin::Plugin class.
136
137=cut
138
139
# spent 81µs (22+59) within Foswiki::Plugins::JQueryPlugin::registerPlugin which was called 6 times, avg 14µs/call: # once (6µs+14µs) by Foswiki::Plugins::CommentPlugin::initPlugin at line 42 of /var/www/foswikidev/core/lib/Foswiki/Plugins/CommentPlugin.pm # once (3µs+10µs) by Foswiki::Plugins::JEditableContribPlugin::initPlugin at line 12 of /var/www/foswikidev/core/lib/Foswiki/Plugins/JEditableContribPlugin.pm # once (3µs+10µs) by Foswiki::Plugins::TwistyPlugin::initPlugin at line 45 of /var/www/foswikidev/core/lib/Foswiki/Plugins/TwistyPlugin.pm # once (3µs+9µs) by Foswiki::Plugins::SubscribePlugin::initPlugin at line 60 of /var/www/foswikidev/core/lib/Foswiki/Plugins/SubscribePlugin.pm # once (3µs+9µs) by Foswiki::Plugins::ConfigurePlugin::initPlugin at line 78 of /var/www/foswikidev/core/lib/Foswiki/Plugins/ConfigurePlugin.pm # once (3µs+7µs) by Foswiki::Plugins::ConfigurePlugin::initPlugin at line 81 of /var/www/foswikidev/core/lib/Foswiki/Plugins/ConfigurePlugin.pm
sub registerPlugin {
140625µs660µs return Foswiki::Plugins::JQueryPlugin::Plugins::registerPlugin(@_);
# spent 60µs making 6 calls to Foswiki::Plugins::JQueryPlugin::Plugins::registerPlugin, avg 10µs/call
141}
142
143=begin TML
144
145---++ registerTheme($themeName, $url)
146
147API to register a jQuery theme. this is of use for other Foswiki plugins
148to register their theme. Registering a theme 'foobar'
149will make it available via =%<nop>JQTHEME{"foobar"}%=.
150
151The =$url= parameter will default to '%PUBURLPATH%/%SYSTEMWEB%/JQueryPlugin/ui/$themeName/jquery-ui.css'.
152
153=cut
154
155sub registerTheme {
156 return Foswiki::Plugins::JQueryPlugin::Plugins::registerTheme(@_);
157}
158
159=begin TML
160
161---++ handleButton($session, $params, $topic, $web) -> $result
162
163Handles the =%<nop>BUTTON% tag.
164
165=cut
166
167sub handleButton {
168 my $session = shift;
169
170 my $plugin = createPlugin( 'Button', $session );
171 return $plugin->handleButton(@_) if $plugin;
172 return '';
173}
174
175=begin TML
176
177---++ handleRestTmpl($session, $params, $topic, $web) -> $result
178
179Handles the tmpl rest handler
180
181=cut
182
183sub handleRestTmpl {
184 my $session = shift;
185
186 my $plugin = createPlugin( 'render', $session );
187 return $plugin->restTmpl( $session, @_ ) if $plugin;
188 return '';
189}
190
191=begin TML
192
193---++ handlePopUpWindow($session, $params, $topic, $web) -> $result
194
195Handles the =%<nop>POPUPWINDOW% tag.
196
197=cut
198
199sub handlePopUpWindow {
200 my $session = shift;
201
202 my $plugin = createPlugin( 'PopUpWindow', $session );
203 return $plugin->handlePopUpWindow(@_) if $plugin;
204 return '';
205}
206
207=begin TML
208
209---++ handleToggle($session, $params, $topic, $web) -> $result
210
211Handles the =%<nop>TOGGLE% tag.
212
213=cut
214
215sub handleToggle {
216 my $session = shift;
217
218 my $plugin = createPlugin( 'Toggle', $session );
219 return $plugin->handleToggle(@_) if $plugin;
220 return '';
221}
222
223=begin TML
224
225---++ handleTabPane($session, $params, $topic, $web) -> $result
226
227Handles the =%<nop>TABPANE% tag.
228
229=cut
230
231sub handleTabPane {
232 my $session = shift;
233
234 my $plugin = createPlugin( 'Tabpane', $session );
235 return $plugin->handleTabPane(@_) if $plugin;
236 return '';
237}
238
239=begin TML
240
241---++ handleTab($session, $params, $topic, $web) -> $result
242
243Handles the =%<nop>TAB% tag.
244
245=cut
246
247sub handleTab {
248 my $session = shift;
249
250 my $plugin = createPlugin( 'Tabpane', $session );
251 return $plugin->handleTab(@_) if $plugin;
252 return '';
253}
254
255=begin TML
256
257---++ handleEndTab($session, $params, $topic, $web) -> $result
258
259Handles the =%<nop>ENDTAB% tag.
260
261=cut
262
263sub handleEndTab {
264 my $session = shift;
265
266 my $plugin = createPlugin( 'Tabpane', $session );
267 return $plugin->handleEndTab(@_) if $plugin;
268 return '';
269}
270
271=begin TML
272
273---++ handleEndTabPane($session, $params, $topic, $web) -> $result
274
275Handles the =%<nop>ENDTABPANE% tag.
276
277=cut
278
279sub handleEndTabPane {
280 my $session = shift;
281
282 my $plugin = createPlugin( 'Tabpane', $session );
283 return $plugin->handleEndTabPane(@_) if $plugin;
284 return '';
285}
286
287=begin TML
288
289---++ handleJQueryRequire($session, $params, $topic, $web) -> $result
290
291Handles the =%<nop>JQREQUIRE% tag.
292
293=cut
294
295sub handleJQueryRequire {
296 my ( $session, $params, $theTopic, $theWeb ) = @_;
297
298 my $plugins = $params->{_DEFAULT} || '';
299 my $warn = Foswiki::Func::isTrue( $params->{warn}, 1 );
300 my $errorMsg = '';
301 foreach my $pluginName ( split( /\s*,\s*/, $plugins ) ) {
302 my $plugin = createPlugin( $pluginName, $session );
303 $errorMsg .= _inlineError("No such plugin $pluginName")
304 if !$plugin && $warn;
305 }
306
307 return $errorMsg;
308}
309
310=begin TML
311
312---++ handleJQueryTheme($session, $params, $topic, $web) -> $result
313
314Handles the =%<nop>JQTHEME% tag.
315
316=cut
317
318sub handleJQueryTheme {
319 my ( $session, $params, $theTopic, $theWeb ) = @_;
320
321 my $themeName = $params->{_DEFAULT}
322 || $Foswiki::cfg{JQueryPlugin}{JQueryTheme};
323
324 my $warn = Foswiki::Func::isTrue( $params->{warn}, 1 );
325
326 return _inlineError("No such theme $themeName")
327 if !createTheme($themeName) && $warn;
328
329 return '';
330}
331
332=begin TML
333
334---++ handleJQueryIconPath($session, $params, $topic, $web) -> $result
335
336Handles the =%<nop>JQICONPATH% tag.
337
338=cut
339
340sub handleJQueryIconPath {
341 my ( $session, $params, $theTopic, $theWeb ) = @_;
342
343 my $iconName = $params->{_DEFAULT} || '';
344 return Foswiki::Plugins::JQueryPlugin::Plugins::getIconUrlPath($iconName);
345}
346
347=begin TML
348
349---++ handleJQueryIcon($session, $params, $topic, $web) -> $result
350
351Handles the =%<nop>JQICON% tag.
352
353=cut
354
355
# spent 652µs (227+425) within Foswiki::Plugins::JQueryPlugin::handleJQueryIcon which was called 9 times, avg 72µs/call: # 9 times (227µs+425µs) by Foswiki::Func::__ANON__[/var/www/foswikidev/core/lib/Foswiki/Func.pm:662] at line 660 of /var/www/foswikidev/core/lib/Foswiki/Func.pm, avg 72µs/call
sub handleJQueryIcon {
35696µs my ( $session, $params, $theTopic, $theWeb ) = @_;
357
35895µs my $iconName = $params->{_DEFAULT} || '';
35993µs my $iconAlt = $params->{alt} || $iconName;
36093µs my $iconTitle = $params->{title} || '';
36192µs my $iconFormat = $params->{format};
36292µs my $iconStyle = $params->{style};
3639800ns my $iconPath;
3649800ns my $iconClass;
365
366 # fontawesome
367911µs if ( $iconName =~ m/^fa\-/ ) {
368 $iconFormat = '<i class=\'$iconClass\' $iconStyle $iconTitle></i>';
369 $iconPath = '';
370 $iconClass = "foswikiIcon jqIcon fa $iconName";
371 createPlugin("fontawesome");
372 }
373
374 # default img based
375 else {
37694µs $iconFormat =
377'<img src=\'$iconPath\' class=\'$iconClass $iconName\' $iconStyle $iconAlt$iconTitle/>'
378 unless $iconFormat;
379913µs9425µs $iconPath =
# spent 425µs making 9 calls to Foswiki::Plugins::JQueryPlugin::Plugins::getIconUrlPath, avg 47µs/call
380 Foswiki::Plugins::JQueryPlugin::Plugins::getIconUrlPath($iconName);
3819900ns return '' unless $iconPath;
382
38393µs $iconClass = "foswikiIcon jqIcon";
384 }
385
38693µs $iconClass .= " $params->{class}" if $params->{class};
387
38892µs my $img = $iconFormat;
389929µs $img =~ s/\$iconName/$iconName/g;
390927µs $img =~ s/\$iconPath/$iconPath/g;
391921µs $img =~ s/\$iconClass/$iconClass/g;
39292µs $img =~ s/\$iconStyle/style='$iconStyle'/g if $iconStyle;
393926µs $img =~ s/\$iconAlt/alt='$iconAlt' /g if $iconAlt;
39492µs $img =~ s/\$iconTitle/title='$iconTitle' /g if $iconTitle;
395933µs $img =~ s/\$(iconAlt|iconTitle|iconStyle)//g;
396
397929µs return $img;
398}
399
400=begin TML
401
402---++ handleJQueryPlugins($session, $params, $topic, $web) -> $result
403
404Handles the =%<nop>JQPLUGINS% tag.
405
406=cut
407
408sub handleJQueryPlugins {
409 my ( $session, $params, $theTopic, $theWeb ) = @_;
410
411 my $thePlugin = $params->{_DEFAULT} || '';
412 my $theFormat = $params->{format};
413 my $theHeader = $params->{header} || '';
414 my $theFooter = $params->{footer} || '';
415 my $theSeparator = $params->{separator};
416 my $theTagFormat = $params->{tagformat};
417
418 $theFormat = ' 1 <a href="$homepage">$name</a> $active $version $author'
419 unless defined $theFormat;
420 $theSeparator = '$n'
421 unless defined $theSeparator;
422 $theTagFormat = '[[%SYSTEMWEB%.Var$tag][$tag]]'
423 unless defined $theTagFormat;
424
425 my @plugins =
426 Foswiki::Plugins::JQueryPlugin::Plugins::getPlugins($thePlugin);
427
428 my @result;
429 my $counter = 0;
430 foreach my $plugin (@plugins) {
431 my $summary = $plugin->getSummary();
432 $summary =~ s/^\s+//;
433 $summary =~ s/\s+$//;
434 my $tags = '';
435 if ( $theFormat =~ m/\$tags/ ) {
436 my @lines = ();
437 my @tags = ();
438 if ( ref( $plugin->{tags} ) ) {
439 @tags = @{ $plugin->{tags} };
440 }
441 else {
442 @tags = split( /\s*,\s*/, $plugin->{tags} );
443 }
444 foreach my $tag ( sort @tags ) {
445 my $line = $theTagFormat;
446 $line =~ s/\$tag/$tag/g;
447 push @lines, $line if $line;
448 }
449 $tags = join( ', ', @lines );
450 }
451 my $active =
452 defined( $plugin->{isInit} )
453 ? '<span class="foswikiAlert">(active)</span>'
454 : '';
455 my $line = Foswiki::Plugins::JQueryPlugin::Plugins::expandVariables(
456 $theFormat,
457 'index' => ( $counter + 1 ),
458 name => $plugin->{name},
459 version => $plugin->{version},
460 summary => $summary,
461 documentation => $plugin->{documentation},
462 author => $plugin->{author},
463 homepage => $plugin->{homepage},
464 tags => $tags,
465 active => $active,
466 );
467 next unless $line;
468 push @result, $line;
469 $counter++;
470 }
471
472 $theHeader =
473 Foswiki::Plugins::JQueryPlugin::Plugins::expandVariables( $theHeader,
474 counter => $counter, );
475 $theFooter =
476 Foswiki::Plugins::JQueryPlugin::Plugins::expandVariables( $theFooter,
477 counter => $counter, );
478 $theSeparator =
479 Foswiki::Plugins::JQueryPlugin::Plugins::expandVariables($theSeparator);
480
481 return $theHeader . join( $theSeparator, @result ) . $theFooter;
482}
483
484sub _inlineError {
485 my $msg = shift;
486 return "<div class='foswikiAlert'>$msg</div>";
487}
488
48914µs1;
490__END__