| 1 | %META:TOPICINFO{author="ProjectContributor" comment="reprev" date="1279640925" format="1.1" reprev="9" version="10"}% |
|---|
| 2 | ---+!! %TOPIC% |
|---|
| 3 | <!-- |
|---|
| 4 | * Set SHORTDESCRIPTION = jQuery <nop>JavaScript library for Foswiki |
|---|
| 5 | --> |
|---|
| 6 | %SHORTDESCRIPTION% |
|---|
| 7 | |
|---|
| 8 | %TOC% |
|---|
| 9 | |
|---|
| 10 | ---++ Description |
|---|
| 11 | <blockquote> |
|---|
| 12 | "jQuery is a fast, concise, <nop>JavaScript Library that simplifies how you traverse |
|---|
| 13 | HTML documents, handle events, perform animations, and add Ajax interactions to |
|---|
| 14 | your web pages." |
|---|
| 15 | </blockquote> |
|---|
| 16 | |
|---|
| 17 | <table class="foswikiRight"> |
|---|
| 18 | <tr> |
|---|
| 19 | <td><img src="%ATTACHURLPATH%/wikiringlogo40x40.png" title="Make your Wiki ring!" alt="WikiRing"></td> |
|---|
| 20 | <td><a href="http://wikiring.com" title="Make your Wiki ring!" style="text-decoration:none"> |
|---|
| 21 | Powered by <br /> <nop>WikiRing Consultants </a> |
|---|
| 22 | </td> |
|---|
| 23 | </tr> |
|---|
| 24 | </table> |
|---|
| 25 | |
|---|
| 26 | Besides jQuery itself, !JQueryPlugin comes with a selection of third party plugins that are thought to be essential for modern web applications. |
|---|
| 27 | These are integrated into Foswiki either by means of a special [[#Macros][macro]], by means of "minimal markup", or initialized using |
|---|
| 28 | a custom javascript initializer. That way the set of Foswiki macros that comes with !JQueryPlugin is kept rather low compared to the features available |
|---|
| 29 | in third party plugins. "Minimal markup" is a way to avoid the need to write javascript code to initialize the interface. Instead, a special |
|---|
| 30 | css class is added to an html element that triggers its initialization. See JQueryMetadata for an example. |
|---|
| 31 | |
|---|
| 32 | Use [[#VarJQREQUIRE][JQREQUIRE]] to make use of a specific jQuery plugin on a page. This will prepare the page by loading the required javascript |
|---|
| 33 | and css components. If you need to make a feature available on each and every page of your site, you may add this plugin to the list of default plugins |
|---|
| 34 | loaded automatically. See [[%SCRIPTURLPATH{"configure"}%][configure]]. |
|---|
| 35 | |
|---|
| 36 | Those plugins coming with their own [[#Macros][macro]] will take care of loading their javascript and css by themselves. So you won't need to |
|---|
| 37 | call JQREQUIRE explicitly for those listed below. |
|---|
| 38 | |
|---|
| 39 | !JQueryPlugin provides a special framework for integrating third party jQuery plugins into Foswiki. |
|---|
| 40 | The framework allows plugins to be loaded as needed and makes sure any dependencies are satisfied. |
|---|
| 41 | Examples are |
|---|
| 42 | Foswiki:Extensions/JQGridPlugin, Foswiki:Extensions/JQTablePlugin, |
|---|
| 43 | Foswiki:Extensions/JQFullCanendarPlugin, Foswiki:Extensions/ImagePlugin, |
|---|
| 44 | Foswiki:Extensions/ImageGalleryPlugin or Foswiki:Extensions/NatEditPlugin. |
|---|
| 45 | |
|---|
| 46 | ---++ Coding Standards |
|---|
| 47 | |
|---|
| 48 | See [[JQuery Coding Standards]] |
|---|
| 49 | This plugin contains the latest version of the [[http://jquery.com][jQuery]] |
|---|
| 50 | <nop>JavaScript library. |
|---|
| 51 | See also Foswiki:Development.UsingJQueryWithFoswiki for more information on |
|---|
| 52 | using jQuery with Foswiki. |
|---|
| 53 | |
|---|
| 54 | ---++ References and tutorials |
|---|
| 55 | * [[http://docs.jquery.com/How_jQuery_Works][Getting the feet wet]] |
|---|
| 56 | * [[http://docs.jquery.com/Tutorials][Tutorials]] |
|---|
| 57 | * [[http://docs.jquery.com/Main_Page][Reference API]] |
|---|
| 58 | * [[http://jqapi.com][Alternative jQuery Documentation and API Browser]] |
|---|
| 59 | * [[http://docs.jquery.com/Using_jQuery_with_Other_Libraries][Using jQuery with other libraries]] |
|---|
| 60 | * [[http://docs.jquery.com/Plugins][Plugin repository]] |
|---|
| 61 | * [[http://www.learningjquery.com/2010/07/great-ways-to-learn-jquery][Great Ways to Learn jQuery]] |
|---|
| 62 | |
|---|
| 63 | ---++ Macros |
|---|
| 64 | |
|---|
| 65 | %INCLUDE{"VarBUTTON"}% |
|---|
| 66 | |
|---|
| 67 | %INCLUDE{"VarTABPANE"}% |
|---|
| 68 | %INCLUDE{"VarENDTABPANE"}% |
|---|
| 69 | |
|---|
| 70 | %INCLUDE{"VarTAB"}% |
|---|
| 71 | %INCLUDE{"VarENDTAB"}% |
|---|
| 72 | |
|---|
| 73 | %INCLUDE{"VarJQICON"}% |
|---|
| 74 | %INCLUDE{"VarJQICONPATH"}% |
|---|
| 75 | |
|---|
| 76 | %INCLUDE{"VarJQPLUGINS"}% |
|---|
| 77 | %INCLUDE{"VarJQREQUIRE"}% |
|---|
| 78 | %INCLUDE{"VarJQTHEME"}% |
|---|
| 79 | |
|---|
| 80 | %INCLUDE{"VarPOPUPWINDOW"}% |
|---|
| 81 | |
|---|
| 82 | ---++ Available jQuery plugins |
|---|
| 83 | %JQPLUGINS{ |
|---|
| 84 | format="<h3> $index. $percntIF{\"istopic '$documentation'\" |
|---|
| 85 | then=\"[[$documentation][$name]]\" |
|---|
| 86 | else=\"<nop>$name\" |
|---|
| 87 | }$percnt $active |
|---|
| 88 | </h3> |
|---|
| 89 | $summary |
|---|
| 90 | " |
|---|
| 91 | }% |
|---|
| 92 | |
|---|
| 93 | ---++ Using compressed javascript and css files |
|---|
| 94 | All jQuery plugins are shipped with uncompressed js and css files, as well as minified and gzip compressed. |
|---|
| 95 | For instance the jquery.autocomplete plugin comes with the following set: |
|---|
| 96 | 1 %PUBURLPATH%/%SYSTEMWEB%/JQueryPlugin/plugins/autocomplete/jquery.autocomplete.uncompressed.js |
|---|
| 97 | 1 %PUBURLPATH%/%SYSTEMWEB%/JQueryPlugin/plugins/autocomplete/jquery.autocomplete.js |
|---|
| 98 | 1 %PUBURLPATH%/%SYSTEMWEB%/JQueryPlugin/plugins/autocomplete/jquery.autocomplete.js.gz |
|---|
| 99 | |
|---|
| 100 | There is a Makefile in the =%PUBURLPATH%/%SYSTEMWEB%/JQueryPlugin= root directory that ensures all these |
|---|
| 101 | files are up to date. By default all files in the !JQueryPlugin package are up to date, so you only have to |
|---|
| 102 | issue a =make= in the root directory if you wish to |
|---|
| 103 | modify one of the files underneath. This will update |
|---|
| 104 | all minified and gzipped files as required. Enable the ={JQueryPlugin}{Debug}= flag in =configure=, |
|---|
| 105 | to use the uncompressed files right away to omit the =make= step during development of new javascript components. |
|---|
| 106 | |
|---|
| 107 | Apache can be configured to automatically use the =.gz= files if present using =mod_rewrite= as follows: |
|---|
| 108 | <verbatim> |
|---|
| 109 | <FilesMatch ".*\.(js|css)$"> |
|---|
| 110 | RewriteEngine On |
|---|
| 111 | RewriteCond %{HTTP:Accept-encoding} gzip |
|---|
| 112 | RewriteCond %{REQUEST_FILENAME}.gz -f |
|---|
| 113 | RewriteRule ^(.*)$ %{REQUEST_URI}.gz [L,QSA] |
|---|
| 114 | </FilesMatch> |
|---|
| 115 | |
|---|
| 116 | <Files *.js.gz> |
|---|
| 117 | AddEncoding gzip .js |
|---|
| 118 | ForceType application/x-javascript |
|---|
| 119 | </Files> |
|---|
| 120 | |
|---|
| 121 | <Files *.css.gz> |
|---|
| 122 | AddEncoding gzip .css |
|---|
| 123 | ForceType text/css |
|---|
| 124 | </Files> |
|---|
| 125 | </verbatim> |
|---|
| 126 | |
|---|
| 127 | So whenever the browser accepts encoding the file as gzip _and_ the file with the =.gz= exists |
|---|
| 128 | in the filesystem, then there will be an internal redirect in the server while still enforcing the original mime-type. |
|---|
| 129 | The browser on the client side will unzip the css and js files automatically. This will drastically |
|---|
| 130 | reduce bandwidth and speed up interactive performance. |
|---|
| 131 | |
|---|
| 132 | ---++ Installation Instructions |
|---|
| 133 | %$INSTALL_INSTRUCTIONS% |
|---|
| 134 | |
|---|
| 135 | <blockquote class="foswikiHelp"> %X% For Foswiki versions before 1.1, this plugin requires the Foswiki:Extensions.ZonePlugin to be installed. The !ZonePlugin is *not* required for Foswiki 1.1 or later.</blockquote> |
|---|
| 136 | |
|---|
| 137 | ---++ Plugin Info |
|---|
| 138 | | Author(s): | Michael Daum | |
|---|
| 139 | | Copyright: | 2007-2010 Michael Daum http://michaeldaumconsulting.com | |
|---|
| 140 | | License: | GPL | |
|---|
| 141 | | Release: | %$RELEASE% | |
|---|
| 142 | | Version: | %$VERSION% | |
|---|
| 143 | | Change History: | <!-- versions below in reverse order --> | |
|---|
| 144 | | 19 Oct 2010: | (3.74) Version included with Foswiki 1.1.0 + fix for code bug in SLIMBOX causing !ImageGalleryPlugin to fail | |
|---|
| 145 | | 19 Aug 2010: | (3.71) JQueryLiveQuery now loads by default; \ |
|---|
| 146 | removed JQueryBgiframe and JQueryEasing plugins from default plugins | |
|---|
| 147 | | 02 Jul 2010: | (3.70) removed outdated spinner and ifixpng plugins; \ |
|---|
| 148 | improved documentation; \ |
|---|
| 149 | fixed IE error in treeview; \ |
|---|
| 150 | added post method to async mode of treeview; \ |
|---|
| 151 | moved %CLEAR to %SYSTEM.DefaultPreferences | |
|---|
| 152 | | 28 May 2010: | (3.60) removed pointless TOGGLE module; \ |
|---|
| 153 | reworked handling of =meta= tags by merging =foswikilibs.js= with =jquery.foswiki= module; \ |
|---|
| 154 | fixed IE7 error with floats inside tabpanes; \ |
|---|
| 155 | added ajax handler to query foswiki preferences async-ly | |
|---|
| 156 | | 30 Apr 2010: | (3.51) fixed initial classes of click-areas in treeviews | |
|---|
| 157 | | 29 Mar 2010: | (3.42) disable plugin when prerequisites are not met | |
|---|
| 158 | | 28 Mar 2010: | (3.41) fix ZonePlugin listed as optional dependency (not optional for Foswiki 1.0.x installations) | |
|---|
| 159 | | 26 Mar 2010: | (3.40) externalized grid and fullcalendar modules into plugins of their own; upgraded to jquery-ui 1.7.2; only load i18n support matching the current site language | |
|---|
| 160 | | 20 Mar 2010: | (3.31) Minifier CPAN libs removed from plugin. They will be in core CPAN lib in Foswiki 1.1 | |
|---|
| 161 | | 14 Mar 2010: | (3.30) upgraded =validate= to v1.7; added =wikiword= validation method; \ |
|---|
| 162 | fixed computation of line-height in =fluidfont=; \ |
|---|
| 163 | fixed height issue in =tabpane= | |
|---|
| 164 | | 03 Mar 2010: | made ZonePlugin an optional dependency | |
|---|
| 165 | | 01 Mar 2010: | improved js and css compression using yuicompressor; \ |
|---|
| 166 | improved simplemodal integration to foswiki to create modal dialogs with less additional javascript; \ |
|---|
| 167 | added custom events to textboxlist: <nop>AddValue, <nop>DeleteValue , Reset and Clear | |
|---|
| 168 | | 12 Feb 2010: | added livequery and rewrote all initializers to use it; \ |
|---|
| 169 | added =rating= formfield type; \ |
|---|
| 170 | updated jqGrid to latest version; \ |
|---|
| 171 | improved foswiki integration and documentation of various plugins; \ |
|---|
| 172 | upgraded jwplayer coming with media plugin; \ |
|---|
| 173 | using Foswiki:Extensions/ZonePlugin now to optimize page load time | |
|---|
| 174 | | 08 Feb 2010: | added query-object | |
|---|
| 175 | | 28 Jan 2010: | added jquery-1.4.1, corner, fluidfont, fullcalendar, \ |
|---|
| 176 | localscroll, masonry, scrollto, serialscroll, slimbox; \ |
|---|
| 177 | deprecated jquery.nifty; disabled JQSCRIPT and JQSTYLE | |
|---|
| 178 | | 11 Nov 2009: | added jqGrid library; reorganized documentation | |
|---|
| 179 | | 07 Nov 2009: | updated Superfish to 1.4.8 and added examples topic, added\ |
|---|
| 180 | supersubs plugin, moved JQuery examples from Sandbox to System | |
|---|
| 181 | | 29 Oct 2009: | added SCRIPTSUFFIX to foswiki var set (CDot) | |
|---|
| 182 | | 14 Sep 2009: | added perls tubs for jquery.ui, so that you can pull it in via JQREQUIRE now; \ |
|---|
| 183 | reworked plugin initialization to allow elements to be init'ed when loaded via ajax; \ |
|---|
| 184 | fixed BUTTON to play nicely with !TwistyPlugin; \ |
|---|
| 185 | only load ui-theme if you jqrequire the ui library | |
|---|
| 186 | | 20 Aug 2009: | made <nop>JQueryPlugin <nop>SafeWikiPlugin compatible | |
|---|
| 187 | | 02 Jul 2009: | improved parsing of foswiki meta tags in html header; \ |
|---|
| 188 | fixed jqTreeview initialisation for jquery-1.3.x; \ |
|---|
| 189 | fixed chili initialisation; \ |
|---|
| 190 | dropped support for konqueror3 | |
|---|
| 191 | | 23 Jun 2009: | added jquery.focus, jquery.textboxlist, jquery.farbtastic; jquery.gradient; \ |
|---|
| 192 | added =color= and =textboxlist= formfield types; \ |
|---|
| 193 | made !JQueryPlugin pluggable itself; \ |
|---|
| 194 | added animation switching tabs; \ |
|---|
| 195 | improved automaxexpand feature in tabs | |
|---|
| 196 | | 28 Apr 2009: | added jquery.media, jquery.simplemodal, shell highlightning for chilli | |
|---|
| 197 | | 03 Feb 2009: | fixed tabpane not being rendered using a rest handler; \ |
|---|
| 198 | added id to tabs that can be used to init the first active one; \ |
|---|
| 199 | added compressed version of blockUI; \ |
|---|
| 200 | replaced ICONTOPIC preference variable with ICONSEARCHPATH to search for icons \ |
|---|
| 201 | in multiple directories (defaults to all of <nop>FamFamFamContrib) | |
|---|
| 202 | | 15 Jan 2009: | fixed click target for relative urls in %<nop>BUTTON{}%; yet another jquery.wikiword fix | |
|---|
| 203 | | 13 Jan 2009: | fixed jquery.wikiword not to depend on outside string libraries; \ |
|---|
| 204 | added foswiki alias to global javascript variables (Eugen Mayer) | |
|---|
| 205 | | 08 Jan 2009: | certified for foswiki/compat; fixed BUTTON target for non-wikiword topics | |
|---|
| 206 | | 12 Dec 2008: | fixed a series of IE6+IE7 issues | |
|---|
| 207 | | 18 Nov 2008: | added jquery.ifixpng; \ |
|---|
| 208 | improved BUTTON tag to have submit and clear and reset buttons; \ |
|---|
| 209 | ie6 fixes for BUTTONs; \ |
|---|
| 210 | added missing jquery.wikiword plugin | |
|---|
| 211 | | 13 Nov 2008: | added automaxexpand for TABPANES ;\ |
|---|
| 212 | added jquery.shake plugin; \ |
|---|
| 213 | reworked BUTTON tag | |
|---|
| 214 | | 15 Oct 2008: | added jquery.autocomplete, jquery.cycle | |
|---|
| 215 | | 20 Jul 2008: | added jquery.form, jquery.maskedinput, jquery.validate | |
|---|
| 216 | | 15 Jul 2008: | updated to ui-1.5.2; added async treeview; added async options to tabpane | |
|---|
| 217 | | 03 Jul 2008: | updated to ui-1.5.1 | |
|---|
| 218 | | 05 Jun 2008: | updated to jquery-1.2.6 and ui-1.5-RC1 | |
|---|
| 219 | | 30 Apr 2008: | repackaged to contain jquery UI | |
|---|
| 220 | | 13 Feb 2008: | upgrade to jquery-1.2.3, as well as most plugins | |
|---|
| 221 | | 17 Jan 2008: | added jquery.metadata plugin; \ |
|---|
| 222 | implemented a jquery.tabpane plugin; \ |
|---|
| 223 | updated jquery.dimensions plugin; \ |
|---|
| 224 | added jquery.empty plugin to ease development of new plugins | |
|---|
| 225 | | 15 Nov 2007: | use skin independent way to add javascript files to header | |
|---|
| 226 | | 10 Oct 2007: | upgraded to jQuery-1.1.4; compressed js and css | |
|---|
| 227 | | 12 Jul 2007: | initial package containing jQuery-1.1.3.1 | |
|---|
| 228 | | Dependencies: | %$DEPENDENCIES% | |
|---|
| 229 | | Home: | Foswiki:Extensions/%TOPIC% | |
|---|
| 230 | | Support: | Foswiki:Support/%TOPIC% | |
|---|
| 231 | |
|---|
| 232 | |
|---|
| 233 | %META:FILEATTACHMENT{name="wikiringlogo40x40.png" attachment="wikiringlogo40x40.png" attr="h" comment="" date="1189787359" path="wikiringlogo40x40.png" size="2571" stream="wikiringlogo40x40.png" tmpFilename="" user="ProjectContributor" version="1"}% |
|---|