compass-jquery-plugin 0.3.2.3 → 0.3.2.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (235) hide show
  1. data/README.md +54 -37
  2. data/VERSION.yml +1 -1
  3. data/lib/handle_attributes.rb +4 -4
  4. data/lib/handle_js_files.rb +5 -5
  5. data/lib/jqtouch_theme.rb +2 -2
  6. data/lib/jquery/dynatree.rb +2 -2
  7. data/lib/jquery/emulators.rb +1 -1
  8. data/lib/jquery/flash_messages.rb +6 -6
  9. data/lib/jquery/graphics.rb +5 -0
  10. data/lib/jquery/gridify/assertions.rb +1 -1
  11. data/lib/jquery/gridify/grid.rb +76 -59
  12. data/lib/jquery/gridify/grid_column.rb +73 -67
  13. data/lib/jquery/gridify/grid_finder.rb +79 -79
  14. data/lib/jquery/gridify/grid_options.rb +154 -149
  15. data/lib/jquery/gridify/grid_view.rb +143 -143
  16. data/lib/jquery/gridify.rb +25 -25
  17. data/lib/jquery/ical/calendar.rb +2 -2
  18. data/lib/jquery/ical/event.rb +48 -44
  19. data/lib/jquery/ical/helpers/ui_event_helper.rb +3 -3
  20. data/lib/jquery/jqgrid/jqgrid.rb +58 -58
  21. data/lib/jquery/jqgrid.rb +1 -1
  22. data/lib/jquery/jqtouch.rb +1 -1
  23. data/lib/jquery/jquery.rb +117 -117
  24. data/lib/jquery/jquery_auto_complete.rb +9 -9
  25. data/lib/jquery/jquery_json_response.rb +12 -12
  26. data/lib/jquery/jquery_selector_assertions.rb +55 -53
  27. data/lib/jquery/jstree.rb +2 -2
  28. data/lib/jquery/mobile.rb +1 -1
  29. data/lib/jquery/ribbon.rb +2 -2
  30. data/lib/jquery/secret_sauce/controller/ui_dialog_controls.rb +5 -5
  31. data/lib/jquery/secret_sauce/controller/ui_grid_controls.rb +5 -5
  32. data/lib/jquery/secret_sauce/helpers/ui_dialog_helper.rb +1 -1
  33. data/lib/jquery/secret_sauce/helpers/ui_form_helper.rb +39 -39
  34. data/lib/jquery/secret_sauce/helpers/ui_grid_helper.rb +74 -74
  35. data/lib/jquery/secret_sauce/model/find_for_grid.rb +21 -21
  36. data/lib/jquery/secret_sauce.rb +1 -1
  37. data/lib/jquery/tools.rb +1 -1
  38. data/lib/jquery_mobile_theme.rb +2 -2
  39. data/lib/jquery_ui_theme.rb +12 -12
  40. data/templates/dynatree/config/initializers/dynatree.rb +3 -3
  41. data/templates/dynatree/jquery/dynatree/aero.scss +16 -16
  42. data/templates/dynatree/jquery/dynatree/aqua.scss +16 -16
  43. data/templates/dynatree/jquery/dynatree/crystal.scss +16 -16
  44. data/templates/dynatree/jquery/dynatree/xp.scss +17 -17
  45. data/templates/dynatree/jquery.dynatree.js +2926 -2912
  46. data/templates/emulators/config/initializers/emulators.rb +6 -6
  47. data/templates/graphics/config/initializers/graphics.rb +5 -0
  48. data/templates/graphics/jquery/ganttView.scss +89 -0
  49. data/templates/graphics/jquery.ganttView.js +1669 -0
  50. data/templates/graphics/jquery.ganttView.min.js +70 -0
  51. data/templates/{jquery → graphics}/jquery.sparkline.js +466 -438
  52. data/templates/{jquery → graphics}/jquery.sparkline.min.js +0 -0
  53. data/templates/graphics/manifest.rb +9 -0
  54. data/templates/jqgrid/config/initializers/jqgrid.rb +1 -1
  55. data/templates/jqgrid/i18n/jqgrid/locale-ar.js +131 -125
  56. data/templates/jqgrid/i18n/jqgrid/locale-bg.js +135 -131
  57. data/templates/jqgrid/i18n/jqgrid/locale-bg1251.js +135 -131
  58. data/templates/jqgrid/i18n/jqgrid/locale-cat.js +132 -126
  59. data/templates/jqgrid/i18n/jqgrid/locale-cn.js +137 -131
  60. data/templates/jqgrid/i18n/jqgrid/locale-cs.js +133 -127
  61. data/templates/jqgrid/i18n/jqgrid/locale-da.js +132 -126
  62. data/templates/jqgrid/i18n/jqgrid/locale-de.js +138 -132
  63. data/templates/jqgrid/i18n/jqgrid/locale-el.js +131 -125
  64. data/templates/jqgrid/i18n/jqgrid/locale-en.js +133 -127
  65. data/templates/jqgrid/i18n/jqgrid/locale-es.js +133 -127
  66. data/templates/jqgrid/i18n/jqgrid/locale-fa.js +19 -16
  67. data/templates/jqgrid/i18n/jqgrid/locale-fi.js +132 -126
  68. data/templates/jqgrid/i18n/jqgrid/locale-fr.js +131 -125
  69. data/templates/jqgrid/i18n/jqgrid/locale-gl.js +131 -125
  70. data/templates/jqgrid/i18n/jqgrid/locale-he.js +132 -126
  71. data/templates/jqgrid/i18n/jqgrid/locale-hu.js +133 -127
  72. data/templates/jqgrid/i18n/jqgrid/locale-is.js +131 -125
  73. data/templates/jqgrid/i18n/jqgrid/locale-it.js +8 -1
  74. data/templates/jqgrid/i18n/jqgrid/locale-ja.js +139 -136
  75. data/templates/jqgrid/i18n/jqgrid/locale-nl.js +4 -1
  76. data/templates/jqgrid/i18n/jqgrid/locale-no.js +14 -1
  77. data/templates/jqgrid/i18n/jqgrid/locale-pl.js +132 -126
  78. data/templates/jqgrid/i18n/jqgrid/locale-pt-br.js +132 -126
  79. data/templates/jqgrid/i18n/jqgrid/locale-pt.js +130 -124
  80. data/templates/jqgrid/i18n/jqgrid/locale-ro.js +144 -138
  81. data/templates/jqgrid/i18n/jqgrid/locale-ru.js +132 -126
  82. data/templates/jqgrid/i18n/jqgrid/locale-sk.js +132 -126
  83. data/templates/jqgrid/i18n/jqgrid/locale-sr.js +133 -127
  84. data/templates/jqgrid/i18n/jqgrid/locale-sv.js +132 -126
  85. data/templates/jqgrid/i18n/jqgrid/locale-tr.js +131 -125
  86. data/templates/jqgrid/i18n/jqgrid/locale-ua.js +132 -126
  87. data/templates/jqgrid/jquery.jqGrid.js +12735 -10444
  88. data/templates/jqgrid/jquery.jqGrid.min.js +477 -469
  89. data/templates/jqgrid/public/stylesheets/ellipsis-xbl.xml +12 -10
  90. data/templates/jqtouch/config/initializers/jqtouch.rb +3 -3
  91. data/templates/jqtouch/jquery/touch/jqtouch.scss +1 -1
  92. data/templates/jqtouch/jquery.jqtouch.js +10025 -10043
  93. data/templates/jquery/config/initializers/jquery.rb +2 -4
  94. data/templates/jquery/history.adapter.jquery.js +71 -0
  95. data/templates/jquery/history.adapter.jquery.min.js +4 -0
  96. data/templates/jquery/history.html4.js +690 -0
  97. data/templates/jquery/history.html4.min.js +21 -0
  98. data/templates/jquery/history.js +1297 -0
  99. data/templates/jquery/history.min.js +29 -0
  100. data/templates/jquery/i18n/jquery.ui/datepicker-af.js +20 -20
  101. data/templates/jquery/i18n/jquery.ui/datepicker-ar-DZ.js +19 -19
  102. data/templates/jquery/i18n/jquery.ui/datepicker-ar.js +19 -19
  103. data/templates/jquery/i18n/jquery.ui/datepicker-az.js +19 -19
  104. data/templates/jquery/i18n/jquery.ui/datepicker-bg.js +8 -8
  105. data/templates/jquery/i18n/jquery.ui/datepicker-bs.js +20 -20
  106. data/templates/jquery/i18n/jquery.ui/datepicker-ca.js +20 -20
  107. data/templates/jquery/i18n/jquery.ui/datepicker-cs.js +20 -20
  108. data/templates/jquery/i18n/jquery.ui/datepicker-da.js +14 -14
  109. data/templates/jquery/i18n/jquery.ui/datepicker-de.js +20 -20
  110. data/templates/jquery/i18n/jquery.ui/datepicker-el.js +20 -20
  111. data/templates/jquery/i18n/jquery.ui/datepicker-en-AU.js +20 -20
  112. data/templates/jquery/i18n/jquery.ui/datepicker-en-GB.js +20 -20
  113. data/templates/jquery/i18n/jquery.ui/datepicker-en-NZ.js +20 -20
  114. data/templates/jquery/i18n/jquery.ui/datepicker-eo.js +20 -20
  115. data/templates/jquery/i18n/jquery.ui/datepicker-es.js +20 -20
  116. data/templates/jquery/i18n/jquery.ui/datepicker-et.js +20 -20
  117. data/templates/jquery/i18n/jquery.ui/datepicker-eu.js +20 -20
  118. data/templates/jquery/i18n/jquery.ui/datepicker-fa.js +18 -18
  119. data/templates/jquery/i18n/jquery.ui/datepicker-fi.js +15 -15
  120. data/templates/jquery/i18n/jquery.ui/datepicker-fo.js +20 -20
  121. data/templates/jquery/i18n/jquery.ui/datepicker-fr-CH.js +20 -20
  122. data/templates/jquery/i18n/jquery.ui/datepicker-fr.js +22 -22
  123. data/templates/jquery/i18n/jquery.ui/datepicker-gl.js +20 -20
  124. data/templates/jquery/i18n/jquery.ui/datepicker-he.js +20 -20
  125. data/templates/jquery/i18n/jquery.ui/datepicker-hr.js +20 -20
  126. data/templates/jquery/i18n/jquery.ui/datepicker-hu.js +20 -20
  127. data/templates/jquery/i18n/jquery.ui/datepicker-hu.min.js +1 -1
  128. data/templates/jquery/i18n/jquery.ui/datepicker-hy.js +20 -20
  129. data/templates/jquery/i18n/jquery.ui/datepicker-id.js +20 -20
  130. data/templates/jquery/i18n/jquery.ui/datepicker-is.js +20 -20
  131. data/templates/jquery/i18n/jquery.ui/datepicker-it.js +20 -20
  132. data/templates/jquery/i18n/jquery.ui/datepicker-ja.js +20 -20
  133. data/templates/jquery/i18n/jquery.ui/datepicker-ko.js +20 -20
  134. data/templates/jquery/i18n/jquery.ui/datepicker-kz.js +20 -20
  135. data/templates/jquery/i18n/jquery.ui/datepicker-lt.js +20 -20
  136. data/templates/jquery/i18n/jquery.ui/datepicker-lv.js +20 -20
  137. data/templates/jquery/i18n/jquery.ui/datepicker-ml.js +20 -20
  138. data/templates/jquery/i18n/jquery.ui/datepicker-ms.js +20 -20
  139. data/templates/jquery/i18n/jquery.ui/datepicker-nl.js +20 -20
  140. data/templates/jquery/i18n/jquery.ui/datepicker-no.js +16 -16
  141. data/templates/jquery/i18n/jquery.ui/datepicker-no.min.js +2 -2
  142. data/templates/jquery/i18n/jquery.ui/datepicker-pl.js +20 -20
  143. data/templates/jquery/i18n/jquery.ui/datepicker-pt-BR.js +20 -20
  144. data/templates/jquery/i18n/jquery.ui/datepicker-pt.js +20 -20
  145. data/templates/jquery/i18n/jquery.ui/datepicker-rm.js +18 -18
  146. data/templates/jquery/i18n/jquery.ui/datepicker-ro.js +20 -20
  147. data/templates/jquery/i18n/jquery.ui/datepicker-ru.js +20 -20
  148. data/templates/jquery/i18n/jquery.ui/datepicker-sk.js +20 -20
  149. data/templates/jquery/i18n/jquery.ui/datepicker-sl.js +20 -20
  150. data/templates/jquery/i18n/jquery.ui/datepicker-sq.js +20 -20
  151. data/templates/jquery/i18n/jquery.ui/datepicker-sr-SR.js +20 -20
  152. data/templates/jquery/i18n/jquery.ui/datepicker-sr.js +20 -20
  153. data/templates/jquery/i18n/jquery.ui/datepicker-sv.js +14 -14
  154. data/templates/jquery/i18n/jquery.ui/datepicker-ta.js +20 -20
  155. data/templates/jquery/i18n/jquery.ui/datepicker-th.js +20 -20
  156. data/templates/jquery/i18n/jquery.ui/datepicker-tr.js +20 -20
  157. data/templates/jquery/i18n/jquery.ui/datepicker-uk.js +20 -20
  158. data/templates/jquery/i18n/jquery.ui/datepicker-vi.js +20 -20
  159. data/templates/jquery/i18n/jquery.ui/datepicker-zh-CN.js +20 -20
  160. data/templates/jquery/i18n/jquery.ui/datepicker-zh-HK.js +20 -20
  161. data/templates/jquery/i18n/jquery.ui/datepicker-zh-TW.js +20 -20
  162. data/templates/jquery/{partials → jquery/ui}/_flash_messages.scss +0 -0
  163. data/templates/jquery/jquery/ui/_theme.scss +14 -13
  164. data/templates/jquery/jquery/ui/contextMenu/configure.png +0 -0
  165. data/templates/jquery/jquery/ui/contextMenu/copy.png +0 -0
  166. data/templates/jquery/jquery/ui/contextMenu/cut.png +0 -0
  167. data/templates/jquery/jquery/ui/contextMenu/delete.png +0 -0
  168. data/templates/jquery/jquery/ui/contextMenu/edit.png +0 -0
  169. data/templates/jquery/jquery/ui/contextMenu/exit.png +0 -0
  170. data/templates/jquery/jquery/ui/contextMenu/new.png +0 -0
  171. data/templates/jquery/jquery/ui/contextMenu/paste.png +0 -0
  172. data/templates/jquery/jquery/ui/contextMenu/rename.png +0 -0
  173. data/templates/jquery/jquery/ui/contextMenu/show.png +0 -0
  174. data/templates/jquery/jquery/ui/contextMenu/trash.png +0 -0
  175. data/templates/jquery/jquery/ui/contextMenu.scss +16 -10
  176. data/templates/jquery/jquery-ui.js +11839 -23066
  177. data/templates/jquery/jquery-ui.min.js +401 -795
  178. data/templates/jquery/jquery.bgiframe.js +27 -25
  179. data/templates/jquery/jquery.contextMenu.js +209 -196
  180. data/templates/jquery/jquery.cookie.js +3 -1
  181. data/templates/jquery/jquery.dotimeout.js +236 -228
  182. data/templates/jquery/jquery.dst.js +154 -151
  183. data/templates/jquery/jquery.farbtastic.js +293 -293
  184. data/templates/jquery/jquery.flashMessages.js +26 -0
  185. data/templates/jquery/jquery.flashMessages.min.js +1 -0
  186. data/templates/jquery/jquery.form.js +803 -786
  187. data/templates/jquery/jquery.haml.js +248 -247
  188. data/templates/jquery/jquery.hotkeys.js +89 -89
  189. data/templates/jquery/jquery.js +8141 -8106
  190. data/templates/jquery/jquery.layout.js +2451 -2415
  191. data/templates/jquery/jquery.min.js +167 -166
  192. data/templates/jquery/jquery.mousewheel.js +62 -54
  193. data/templates/jquery/jquery.offline.js +171 -171
  194. data/templates/jquery/jquery.pngFix.js +76 -76
  195. data/templates/jquery/jquery.replacetext.js +83 -83
  196. data/templates/jquery/jquery.themeswitchertool.js +202 -177
  197. data/templates/jquery/jquery.tmpl.js +478 -473
  198. data/templates/jquery/jquery.tmplPlus.js +82 -81
  199. data/templates/jquery/jrails.js +178 -175
  200. data/templates/jquery/json.js +77 -7
  201. data/templates/jquery/json2.js +480 -0
  202. data/templates/jquery/json2.min.js +7 -0
  203. data/templates/jquery/lib/tasks/haml.rake +2 -2
  204. data/templates/jquery/manifest.rb +21 -17
  205. data/templates/jstree/jquery.jstree.js +5967 -4536
  206. data/templates/mobile/config/initializers/mobile.rb +1 -1
  207. data/templates/mobile/jquery/mobile/_base.scss +944 -927
  208. data/templates/mobile/jquery/mobile/default.scss +61 -48
  209. data/templates/mobile/jquery/mobile/valencia.scss +56 -42
  210. data/templates/mobile/jquery.mobile.js +4461 -4347
  211. data/templates/mobile/jquery.mobile.min.js +11 -2
  212. data/templates/mobile/lib/tasks/jquery.mobile.rake +12 -12
  213. data/templates/ribbon/config/initializers/ribbon.rb +2 -2
  214. data/templates/ribbon/jquery.ribbon.js +50 -29
  215. data/templates/secret_sauce/secret_sauce.js +8 -8
  216. data/templates/tools/flowplayer.js +945 -1
  217. data/templates/tools/jquery.tools.js +4645 -4335
  218. data/templates/tools/jquery.tools.min.js +37 -37
  219. data/templates/tools/lib/tasks/jquery.tools.rake +4 -4
  220. data/templates/tools/swfobject.js +813 -773
  221. metadata +33 -21
  222. data/templates/jquery/haml.js +0 -506
  223. data/templates/jquery/haml.min.js +0 -5
  224. data/templates/jquery/jquery/ui/contextMenu/door.png +0 -0
  225. data/templates/jquery/jquery/ui/contextMenu/page_white_copy.png +0 -0
  226. data/templates/jquery/jquery/ui/contextMenu/page_white_delete.png +0 -0
  227. data/templates/jquery/jquery/ui/contextMenu/page_white_edit.png +0 -0
  228. data/templates/jquery/jquery/ui/contextMenu/page_white_new.png +0 -0
  229. data/templates/jquery/jquery/ui/contextMenu/page_white_paste.png +0 -0
  230. data/templates/jquery/jquery.compat-1.3.js +0 -291
  231. data/templates/jquery/jquery.compat-1.3.min.js +0 -6
  232. data/templates/jquery/jquery.flash_messages.js +0 -5
  233. data/templates/jquery/jquery.flash_messages.min.js +0 -1
  234. data/templates/jquery/jquery.history.js +0 -194
  235. data/templates/jquery/jquery.history.min.js +0 -5
@@ -29,184 +29,184 @@
29
29
 
30
30
  (function($) {
31
31
 
32
- var prefix = "offline.jquery:",
33
- mostRecent = null,
34
- requesting = {};
35
-
36
- // Allow the user to explicitly turn off localStorage
37
- // before loading this plugin
38
- if (typeof $.support.localStorage === "undefined") {
39
- $.support.localStorage = !!window.localStorage;
40
- }
41
-
42
- // modified getJSON which uses ifModified: true
43
- function getJSON(url, data, fn) {
44
- if (jQuery.isFunction(data)) {
45
- fn = data;
46
- data = null;
32
+ var prefix = "offline.jquery:",
33
+ mostRecent = null,
34
+ requesting = {};
35
+
36
+ // Allow the user to explicitly turn off localStorage
37
+ // before loading this plugin
38
+ if (typeof $.support.localStorage === "undefined") {
39
+ $.support.localStorage = !!window.localStorage;
47
40
  }
48
41
 
49
- var requestingKey = url + "?" + $.param(data || {});
50
- if (requesting[requestingKey]) {
51
- return false;
52
- }
53
-
54
- requesting[requestingKey] = true;
55
-
56
- return jQuery.ajax({
57
- type: "GET",
58
- url: url,
59
- data: data,
60
- success: function(responseData, text) {
61
- delete requesting[requestingKey];
62
-
63
- // handle lack of response (error callback isn't called in this case)
64
- if (undefined === responseData) {
65
- if (!window.navigator.onLine) {
66
- // requeue the request for the next time we come online
67
- mostRecent = function() {
68
- getJSON(url, data, fn);
69
- };
70
- }
71
- return;
42
+ // modified getJSON which uses ifModified: true
43
+ function getJSON(url, data, fn) {
44
+ if (jQuery.isFunction(data)) {
45
+ fn = data;
46
+ data = null;
72
47
  }
73
48
 
74
- fn(responseData, text);
75
- },
76
- error: function() {
77
- delete requesting[requestingKey];
78
- },
79
- dataType: "json",
80
- ifModified: true
81
- });
82
- }
83
-
84
- if ($.support.localStorage) {
85
- // If localStorage is available, define jQuery.retrieveJSON
86
- // and jQuery.clearJSON to operate in terms of the offline
87
- // cache
88
- // If the user comes online, run the most recent request
89
- // that was queued due to the user being offline
90
- $(window).bind("online", function() {
91
- if (mostRecent) {
92
- mostRecent();
93
- }
94
- });
95
-
96
- // If the user goes offline, hide any loading bar
97
- // the user may have created
98
- $(window).bind("offline", function() {
99
- jQuery.event.trigger("ajaxStop");
100
- });
101
-
102
- $.retrieveJSON = function(url, data, fn) {
103
- // allow jQuery.retrieveJSON(url, fn)
104
- if ($.isFunction(data)) {
105
- fn = data;
106
- data = {};
107
- }
108
-
109
- // remember when this request started so we can report
110
- // the time when a follow-up Ajax request completes.
111
- // this is especially important when the user comes
112
- // back online, since retrieveDate may be minutes,
113
- // hours or even days before the Ajax request finally
114
- // completes
115
- var retrieveDate = new Date;
116
-
117
- // get a String value for the data passed in, and then
118
- // use it to calculate a cache key
119
- var param = $.param(data),
120
- key = prefix + url + ":" + param,
121
- text = localStorage[key],
122
- dateString = localStorage[key + ":date"],
123
- date = new Date(Date.parse(dateString));
124
-
125
- function cleanupLocalStorage() {
126
- // take all date keys and remove the oldest half
127
- var dateKeys = [];
128
- for (var i = 0; i < localStorage.length; ++i) {
129
- var key = localStorage.key(i);
130
- if (/:date$/.test(key)) {
131
- dateKeys.push(key);
132
- }
133
- }
134
- dateKeys.sort(function(a, b) {
135
- var date_a = localStorage[a], date_b = localStorage[b];
136
- return date_a < date_b ? -1 : (date_a > date_b ? +1 : 0);
137
- });
138
- for (var i = 0; i < dateKeys.length / 2; ++i) {
139
- var key = dateKeys[i];
140
- delete localStorage[key];
141
- delete localStorage[key.substr(0, key.length - 5)]; // :date
142
- }
143
- }
144
-
145
- // create a function that will make an Ajax request and
146
- // store the result in the cache. This function will be
147
- // deferred until later if the user is offline
148
- function getData() {
149
- getJSON(url, data, function(json, status) {
150
- if ( status == 'notmodified' ) {
151
- // Just return if the response has a 304 status code
49
+ var requestingKey = url + "?" + $.param(data || {});
50
+ if (requesting[requestingKey]) {
152
51
  return false;
153
- }
154
-
155
- while (true) {
156
- try {
157
- localStorage[key] = JSON.stringify(json);
158
- localStorage[key + ":date"] = new Date;
159
- break;
160
- } catch (e) {
161
- if (e.name == "QUOTA_EXCEEDED_ERR" || e.name ==
162
- "NS_ERROR_DOM_QUOTA_REACHED") {
163
- cleanupLocalStorage();
52
+ }
53
+
54
+ requesting[requestingKey] = true;
55
+
56
+ return jQuery.ajax({
57
+ type: "GET",
58
+ url: url,
59
+ data: data,
60
+ success: function(responseData, text) {
61
+ delete requesting[requestingKey];
62
+
63
+ // handle lack of response (error callback isn't called in this case)
64
+ if (undefined === responseData) {
65
+ if (!window.navigator.onLine) {
66
+ // requeue the request for the next time we come online
67
+ mostRecent = function() {
68
+ getJSON(url, data, fn);
69
+ };
70
+ }
71
+ return;
164
72
  }
73
+
74
+ fn(responseData, text);
75
+ },
76
+ error: function() {
77
+ delete requesting[requestingKey];
78
+ },
79
+ dataType: "json",
80
+ ifModified: true
81
+ });
82
+ }
83
+
84
+ if ($.support.localStorage) {
85
+ // If localStorage is available, define jQuery.retrieveJSON
86
+ // and jQuery.clearJSON to operate in terms of the offline
87
+ // cache
88
+ // If the user comes online, run the most recent request
89
+ // that was queued due to the user being offline
90
+ $(window).bind("online", function() {
91
+ if (mostRecent) {
92
+ mostRecent();
165
93
  }
166
- }
167
-
168
- // If this is a follow-up request, create an object
169
- // containing both the original time of the cached
170
- // data and the time that the data was originally
171
- // retrieved from the cache. With this information,
172
- // users of jQuery Offline can provide the user
173
- // with improved feedback if the lag is large
174
- var data = text && { cachedAt: date, retrievedAt: retrieveDate };
175
- fn(json, status, data);
176
94
  });
177
- }
178
-
179
- // If there is anything in the cache, call the callback
180
- // right away, with the "cached" status string
181
- if( text ) {
182
- var response = fn( $.parseJSON(text), "cached", { cachedAt: date } );
183
- if( response === false ) return false;
184
- }
185
-
186
- // If the user is online, make the Ajax request right away;
187
- // otherwise, make it the most recent callback so it will
188
- // get triggered when the user comes online
189
- if (window.navigator.onLine) {
190
- getData();
191
- } else {
192
- mostRecent = getData;
193
- }
194
-
195
- return true;
196
- };
197
-
198
- // jQuery.clearJSON is simply a wrapper around deleting the
199
- // localStorage for a URL/data pair
200
- $.clearJSON = function(url, data) {
201
- var param = $.param(data || {});
202
- delete localStorage[prefix + url + ":" + param];
203
- delete localStorage[prefix + url + ":" + param + ":date"];
204
- };
205
- } else {
206
- // If localStorage is unavailable, just make all requests
207
- // regular Ajax requests.
208
- $.retrieveJSON = getJSON;
209
- $.clearJSON = $.noop;
210
- }
95
+
96
+ // If the user goes offline, hide any loading bar
97
+ // the user may have created
98
+ $(window).bind("offline", function() {
99
+ jQuery.event.trigger("ajaxStop");
100
+ });
101
+
102
+ $.retrieveJSON = function(url, data, fn) {
103
+ // allow jQuery.retrieveJSON(url, fn)
104
+ if ($.isFunction(data)) {
105
+ fn = data;
106
+ data = {};
107
+ }
108
+
109
+ // remember when this request started so we can report
110
+ // the time when a follow-up Ajax request completes.
111
+ // this is especially important when the user comes
112
+ // back online, since retrieveDate may be minutes,
113
+ // hours or even days before the Ajax request finally
114
+ // completes
115
+ var retrieveDate = new Date;
116
+
117
+ // get a String value for the data passed in, and then
118
+ // use it to calculate a cache key
119
+ var param = $.param(data),
120
+ key = prefix + url + ":" + param,
121
+ text = localStorage[key],
122
+ dateString = localStorage[key + ":date"],
123
+ date = new Date(Date.parse(dateString));
124
+
125
+ function cleanupLocalStorage() {
126
+ // take all date keys and remove the oldest half
127
+ var dateKeys = [];
128
+ for (var i = 0; i < localStorage.length; ++i) {
129
+ var key = localStorage.key(i);
130
+ if (/:date$/.test(key)) {
131
+ dateKeys.push(key);
132
+ }
133
+ }
134
+ dateKeys.sort(function(a, b) {
135
+ var date_a = localStorage[a], date_b = localStorage[b];
136
+ return date_a < date_b ? -1 : (date_a > date_b ? +1 : 0);
137
+ });
138
+ for (var i = 0; i < dateKeys.length / 2; ++i) {
139
+ var key = dateKeys[i];
140
+ delete localStorage[key];
141
+ delete localStorage[key.substr(0, key.length - 5)]; // :date
142
+ }
143
+ }
144
+
145
+ // create a function that will make an Ajax request and
146
+ // store the result in the cache. This function will be
147
+ // deferred until later if the user is offline
148
+ function getData() {
149
+ getJSON(url, data, function(json, status) {
150
+ if (status == 'notmodified') {
151
+ // Just return if the response has a 304 status code
152
+ return false;
153
+ }
154
+
155
+ while (true) {
156
+ try {
157
+ localStorage[key] = JSON.stringify(json);
158
+ localStorage[key + ":date"] = new Date;
159
+ break;
160
+ } catch (e) {
161
+ if (e.name == "QUOTA_EXCEEDED_ERR" || e.name ==
162
+ "NS_ERROR_DOM_QUOTA_REACHED") {
163
+ cleanupLocalStorage();
164
+ }
165
+ }
166
+ }
167
+
168
+ // If this is a follow-up request, create an object
169
+ // containing both the original time of the cached
170
+ // data and the time that the data was originally
171
+ // retrieved from the cache. With this information,
172
+ // users of jQuery Offline can provide the user
173
+ // with improved feedback if the lag is large
174
+ var data = text && { cachedAt: date, retrievedAt: retrieveDate };
175
+ fn(json, status, data);
176
+ });
177
+ }
178
+
179
+ // If there is anything in the cache, call the callback
180
+ // right away, with the "cached" status string
181
+ if (text) {
182
+ var response = fn($.parseJSON(text), "cached", { cachedAt: date });
183
+ if (response === false) return false;
184
+ }
185
+
186
+ // If the user is online, make the Ajax request right away;
187
+ // otherwise, make it the most recent callback so it will
188
+ // get triggered when the user comes online
189
+ if (window.navigator.onLine) {
190
+ getData();
191
+ } else {
192
+ mostRecent = getData;
193
+ }
194
+
195
+ return true;
196
+ };
197
+
198
+ // jQuery.clearJSON is simply a wrapper around deleting the
199
+ // localStorage for a URL/data pair
200
+ $.clearJSON = function(url, data) {
201
+ var param = $.param(data || {});
202
+ delete localStorage[prefix + url + ":" + param];
203
+ delete localStorage[prefix + url + ":" + param + ":date"];
204
+ };
205
+ } else {
206
+ // If localStorage is unavailable, just make all requests
207
+ // regular Ajax requests.
208
+ $.retrieveJSON = getJSON;
209
+ $.clearJSON = $.noop;
210
+ }
211
211
 
212
212
  })(jQuery);
@@ -31,81 +31,81 @@
31
31
 
32
32
  (function($) {
33
33
 
34
- jQuery.fn.pngFix = function(settings) {
35
-
36
- // Settings
37
- settings = jQuery.extend({
38
- blankgif: '/images/jquery/ui/pngFix/blank.gif'
39
- }, settings);
40
-
41
- var ie55 = (navigator.appName == "Microsoft Internet Explorer" && parseInt(navigator.appVersion) == 4 && navigator.appVersion.indexOf("MSIE 5.5") != -1);
42
- var ie6 = (navigator.appName == "Microsoft Internet Explorer" && parseInt(navigator.appVersion) == 4 && navigator.appVersion.indexOf("MSIE 6.0") != -1);
43
-
44
- if (jQuery.browser.msie && (ie55 || ie6)) {
45
-
46
- //fix images with png-source
47
- jQuery(this).find("img[@src$=.png]").each(function() {
48
-
49
- jQuery(this).attr('width',jQuery(this).width());
50
- jQuery(this).attr('height',jQuery(this).height());
51
-
52
- var prevStyle = '';
53
- var strNewHTML = '';
54
- var imgId = (jQuery(this).attr('id')) ? 'id="' + jQuery(this).attr('id') + '" ' : '';
55
- var imgClass = (jQuery(this).attr('class')) ? 'class="' + jQuery(this).attr('class') + '" ' : '';
56
- var imgTitle = (jQuery(this).attr('title')) ? 'title="' + jQuery(this).attr('title') + '" ' : '';
57
- var imgAlt = (jQuery(this).attr('alt')) ? 'alt="' + jQuery(this).attr('alt') + '" ' : '';
58
- var imgAlign = (jQuery(this).attr('align')) ? 'float:' + jQuery(this).attr('align') + ';' : '';
59
- var imgHand = (jQuery(this).parent().attr('href')) ? 'cursor:hand;' : '';
60
- if (this.style.border) {
61
- prevStyle += 'border:'+this.style.border+';';
62
- this.style.border = '';
63
- }
64
- if (this.style.padding) {
65
- prevStyle += 'padding:'+this.style.padding+';';
66
- this.style.padding = '';
67
- }
68
- if (this.style.margin) {
69
- prevStyle += 'margin:'+this.style.margin+';';
70
- this.style.margin = '';
71
- }
72
- var imgStyle = (this.style.cssText);
73
-
74
- strNewHTML += '<span '+imgId+imgClass+imgTitle+imgAlt;
75
- strNewHTML += 'style="position:relative;white-space:pre-line;display:inline-block;background:transparent;'+imgAlign+imgHand;
76
- strNewHTML += 'width:' + jQuery(this).width() + 'px;' + 'height:' + jQuery(this).height() + 'px;';
77
- strNewHTML += 'filter:progid:DXImageTransform.Microsoft.AlphaImageLoader' + '(src=\'' + jQuery(this).attr('src') + '\', sizingMethod=\'scale\');';
78
- strNewHTML += imgStyle+'"></span>';
79
- if (prevStyle != ''){
80
- strNewHTML = '<span style="position:relative;display:inline-block;'+prevStyle+imgHand+'width:' + jQuery(this).width() + 'px;' + 'height:' + jQuery(this).height() + 'px;'+'">' + strNewHTML + '</span>';
81
- }
82
-
83
- jQuery(this).hide();
84
- jQuery(this).after(strNewHTML);
85
-
86
- });
87
-
88
- // fix css background pngs
89
- jQuery(this).find("*").each(function(){
90
- var bgIMG = jQuery(this).css('background-image');
91
- if(bgIMG.indexOf(".png")!=-1){
92
- var iebg = bgIMG.split('url("')[1].split('")')[0];
93
- jQuery(this).css('background-image', 'none');
94
- jQuery(this).get(0).runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + iebg + "',sizingMethod='scale')";
95
- }
96
- });
97
-
98
- //fix input with png-source
99
- jQuery(this).find("input[@src$=.png]").each(function() {
100
- var bgIMG = jQuery(this).attr('src');
101
- jQuery(this).get(0).runtimeStyle.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader' + '(src=\'' + bgIMG + '\', sizingMethod=\'scale\');';
102
- jQuery(this).attr('src', settings.blankgif)
103
- });
104
-
105
- }
106
-
107
- return jQuery;
108
-
109
- };
34
+ jQuery.fn.pngFix = function(settings) {
35
+
36
+ // Settings
37
+ settings = jQuery.extend({
38
+ blankgif: '/images/jquery/ui/pngFix/blank.gif'
39
+ }, settings);
40
+
41
+ var ie55 = (navigator.appName == "Microsoft Internet Explorer" && parseInt(navigator.appVersion) == 4 && navigator.appVersion.indexOf("MSIE 5.5") != -1);
42
+ var ie6 = (navigator.appName == "Microsoft Internet Explorer" && parseInt(navigator.appVersion) == 4 && navigator.appVersion.indexOf("MSIE 6.0") != -1);
43
+
44
+ if (jQuery.browser.msie && (ie55 || ie6)) {
45
+
46
+ //fix images with png-source
47
+ jQuery(this).find("img[@src$=.png]").each(function() {
48
+
49
+ jQuery(this).attr('width', jQuery(this).width());
50
+ jQuery(this).attr('height', jQuery(this).height());
51
+
52
+ var prevStyle = '';
53
+ var strNewHTML = '';
54
+ var imgId = (jQuery(this).attr('id')) ? 'id="' + jQuery(this).attr('id') + '" ' : '';
55
+ var imgClass = (jQuery(this).attr('class')) ? 'class="' + jQuery(this).attr('class') + '" ' : '';
56
+ var imgTitle = (jQuery(this).attr('title')) ? 'title="' + jQuery(this).attr('title') + '" ' : '';
57
+ var imgAlt = (jQuery(this).attr('alt')) ? 'alt="' + jQuery(this).attr('alt') + '" ' : '';
58
+ var imgAlign = (jQuery(this).attr('align')) ? 'float:' + jQuery(this).attr('align') + ';' : '';
59
+ var imgHand = (jQuery(this).parent().attr('href')) ? 'cursor:hand;' : '';
60
+ if (this.style.border) {
61
+ prevStyle += 'border:' + this.style.border + ';';
62
+ this.style.border = '';
63
+ }
64
+ if (this.style.padding) {
65
+ prevStyle += 'padding:' + this.style.padding + ';';
66
+ this.style.padding = '';
67
+ }
68
+ if (this.style.margin) {
69
+ prevStyle += 'margin:' + this.style.margin + ';';
70
+ this.style.margin = '';
71
+ }
72
+ var imgStyle = (this.style.cssText);
73
+
74
+ strNewHTML += '<span ' + imgId + imgClass + imgTitle + imgAlt;
75
+ strNewHTML += 'style="position:relative;white-space:pre-line;display:inline-block;background:transparent;' + imgAlign + imgHand;
76
+ strNewHTML += 'width:' + jQuery(this).width() + 'px;' + 'height:' + jQuery(this).height() + 'px;';
77
+ strNewHTML += 'filter:progid:DXImageTransform.Microsoft.AlphaImageLoader' + '(src=\'' + jQuery(this).attr('src') + '\', sizingMethod=\'scale\');';
78
+ strNewHTML += imgStyle + '"></span>';
79
+ if (prevStyle != '') {
80
+ strNewHTML = '<span style="position:relative;display:inline-block;' + prevStyle + imgHand + 'width:' + jQuery(this).width() + 'px;' + 'height:' + jQuery(this).height() + 'px;' + '">' + strNewHTML + '</span>';
81
+ }
82
+
83
+ jQuery(this).hide();
84
+ jQuery(this).after(strNewHTML);
85
+
86
+ });
87
+
88
+ // fix css background pngs
89
+ jQuery(this).find("*").each(function() {
90
+ var bgIMG = jQuery(this).css('background-image');
91
+ if (bgIMG.indexOf(".png") != -1) {
92
+ var iebg = bgIMG.split('url("')[1].split('")')[0];
93
+ jQuery(this).css('background-image', 'none');
94
+ jQuery(this).get(0).runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + iebg + "',sizingMethod='scale')";
95
+ }
96
+ });
97
+
98
+ //fix input with png-source
99
+ jQuery(this).find("input[@src$=.png]").each(function() {
100
+ var bgIMG = jQuery(this).attr('src');
101
+ jQuery(this).get(0).runtimeStyle.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader' + '(src=\'' + bgIMG + '\', sizingMethod=\'scale\');';
102
+ jQuery(this).attr('src', settings.blankgif)
103
+ });
104
+
105
+ }
106
+
107
+ return jQuery;
108
+
109
+ };
110
110
 
111
111
  })(jQuery);