compass-jquery-plugin 0.3.2.1 → 0.3.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. data/README.md +13 -6
  2. data/VERSION.yml +1 -1
  3. data/lib/handle_attributes.rb +23 -23
  4. data/lib/handle_js_files.rb +1 -1
  5. data/lib/jquery/compass_plugin.rb +5 -5
  6. data/lib/jquery/dynatree.rb +5 -5
  7. data/lib/jquery/jqtouch.rb +3 -3
  8. data/lib/jquery/jquery_auto_complete.rb +44 -44
  9. data/lib/jquery/jquery_selector_assertions.rb +78 -78
  10. data/lib/jquery/jstree.rb +4 -4
  11. data/lib/jquery/ribbon.rb +5 -5
  12. data/templates/jqtouch/jquery.jqtouch.min.js +2 -2
  13. data/templates/jquery/config/initializers/jquery.rb +2 -0
  14. data/templates/jquery/jquery.dotimeout.js +285 -0
  15. data/templates/jquery/jquery.dotimeout.min.js +2 -0
  16. data/templates/jquery/jquery.dst.js +154 -0
  17. data/templates/jquery/jquery.dst.min.js +4 -0
  18. data/templates/jquery/jquery.form.js +48 -36
  19. data/templates/jquery/jquery.form.min.js +15 -14
  20. data/templates/jquery/manifest.rb +4 -0
  21. data/templates/mobile/jquery/mobile/_base.scss +35 -20
  22. data/templates/mobile/jquery/mobile/default/icons-18-black.png +0 -0
  23. data/templates/mobile/jquery/mobile/default/icons-18-white.png +0 -0
  24. data/templates/mobile/jquery/mobile/default/icons-36-black.png +0 -0
  25. data/templates/mobile/jquery/mobile/default/icons-36-white.png +0 -0
  26. data/templates/mobile/jquery/mobile/default.scss +8 -2
  27. data/templates/mobile/jquery/mobile/valencia/icons-18-black.png +0 -0
  28. data/templates/mobile/jquery/mobile/valencia/icons-18-white.png +0 -0
  29. data/templates/mobile/jquery/mobile/valencia/icons-36-black.png +0 -0
  30. data/templates/mobile/jquery/mobile/valencia/icons-36-white.png +0 -0
  31. data/templates/mobile/jquery.mobile.js +29 -26
  32. data/templates/mobile/jquery.mobile.min.js +6 -6
  33. metadata +8 -4
@@ -0,0 +1,154 @@
1
+ /* DSt:
2
+ a simple, agnostic DOM Storage library.
3
+ http://github.com/gamache/DSt
4
+
5
+ AUTHORSHIP:
6
+ copyright 2010 pete gamache gamache!@#$!@#gmail.com
7
+ licensed under the MIT License and/or the GPL version 2
8
+
9
+ SYNOPSIS:
10
+ DSt uses the localStorage mechanism to provide per-site, persistent
11
+ storage of JSON-encodable data.
12
+
13
+ USAGE:
14
+
15
+ DSt.set(key, value); // sets stored value for given key
16
+ var value = DSt.get(key); // returns stored value for given key
17
+
18
+ DSt.store(input_elt); // stores value of a form input element
19
+ DSt.recall(input_elt); // recalls stored value of a form input elt
20
+
21
+ DSt.store_form(form_elt); // runs DSt.store(elt) on each form input
22
+ DSt.populate_form(form_elt); // runs DSt.recall(elt) on each form input
23
+
24
+ Element IDs may always be given in place of the elements themselves.
25
+ Values handled by DSt.get/DSt.set can be anything JSON-encodable.
26
+
27
+ You may use jQuery.DSt or $.DSt instead of DST if you're using
28
+ jquery.dst.js.
29
+ */
30
+
31
+ jQuery.DSt = (function(){var a = {
32
+
33
+ version: 0.002005,
34
+
35
+ get: function (key) {
36
+ var value = localStorage.getItem(key);
37
+ if (value === undefined || value === null)
38
+ value = 'null';
39
+ else
40
+ value = value.toString();
41
+ return JSON.parse(value);
42
+ },
43
+
44
+ set: function (key, value) {
45
+ return localStorage.setItem(key, JSON.stringify(value));
46
+ },
47
+
48
+
49
+ store: function (elt) {
50
+ if (typeof(elt) == 'string') elt = document.getElementById(elt);
51
+ if (!elt || elt.name == '') return this; // bail on nameless/missing elt
52
+
53
+ var key = a._form_elt_key(elt);
54
+
55
+ if (elt.type == 'checkbox') {
56
+ a.set(key, elt.checked ? 1 : 0);
57
+ }
58
+ else if (elt.type == 'radio') {
59
+ a.set(key, a._radio_value(elt));
60
+ }
61
+ else {
62
+ a.set(key, elt.value || '');
63
+ }
64
+
65
+ return this;
66
+ },
67
+
68
+ recall: function (elt) {
69
+ if (typeof(elt) == 'string') elt = document.getElementById(elt);
70
+ if (!elt || elt.name == '') return this; // bail on nameless/missing elt
71
+
72
+ var key = a._form_elt_key(elt);
73
+ var stored_value = a.get(key);
74
+
75
+ if (elt.type == 'checkbox') {
76
+ elt.checked = !!stored_value;
77
+ }
78
+ else if (elt.type == 'radio') {
79
+ if (elt.value == stored_value) elt.checked = true;
80
+ }
81
+ else {
82
+ elt.value = stored_value || '';
83
+ }
84
+
85
+ return this;
86
+ },
87
+
88
+ // returns a key string, based on form name and form element name
89
+ _form_elt_key: function (form_elt) {
90
+ return '_form_' + form_elt.form.name + '_field_' + form_elt.name;
91
+ },
92
+
93
+ // returns the selected value of a group of radio buttons, or null
94
+ // if none are selected
95
+ _radio_value: function (radio_elt) {
96
+ if (typeof(radio_elt)=='string')
97
+ radio_elt=document.getElementById(radio_elt);
98
+
99
+ var radios = radio_elt.form.elements[radio_elt.name];
100
+ var nradios = radios.length;
101
+ var value = null;
102
+ for (var i=0; i<nradios; i++) {
103
+ if (radios[i].checked) value = radios[i].value;
104
+ }
105
+ return value;
106
+ },
107
+
108
+
109
+
110
+ recall_form: function (form) {
111
+ return a._apply_fn_to_form_inputs(form, a.recall);
112
+ },
113
+
114
+ store_form: function (form) {
115
+ return a._apply_fn_to_form_inputs(form, a.store);
116
+ },
117
+
118
+ _apply_fn_to_form_inputs: function (form, fn) {
119
+ if (typeof(form)=='string') form=document.getElementById(form);
120
+ var nelts = form.elements.length;
121
+ for (var i=0; i<nelts; i++) {
122
+ var node = form.elements[i];
123
+ if (node.tagName == 'TEXTAREA' ||
124
+ node.tagName == 'INPUT' &&
125
+ node.type != 'file' &&
126
+ node.type != 'button' &&
127
+ node.type != 'image' &&
128
+ node.type != 'password' &&
129
+ node.type != 'submit' &&
130
+ node.type != 'reset' ) { fn(node); }
131
+ }
132
+ return this;
133
+ },
134
+
135
+
136
+
137
+ // _storage_types() returns a string containing every supported
138
+ // storage mechanism
139
+ _storage_types: function () {
140
+ var st = '';
141
+ for (var i in window) {
142
+ if (i=='sessionStorage' || i=='globalStorage' ||
143
+ i=='localStorage' || i=='openDatabase' ) {
144
+ st += st ? (' '+i) : i;
145
+ }
146
+ }
147
+ return st;
148
+ },
149
+
150
+ javascript_accepts_trailing_comma: false
151
+ };
152
+ return a;
153
+ })();
154
+
@@ -0,0 +1,4 @@
1
+ jQuery.DSt=function(){var c={version:0.002005,get:function(a){a=localStorage.getItem(a);a=a===undefined||a===null?"null":a.toString();return JSON.parse(a)},set:function(a,b){return localStorage.setItem(a,JSON.stringify(b))},store:function(a){if(typeof a=="string")a=document.getElementById(a);if(!a||a.name=="")return this;var b=c._form_elt_key(a);if(a.type=="checkbox")c.set(b,a.checked?1:0);else a.type=="radio"?c.set(b,c._radio_value(a)):c.set(b,a.value||"");return this},recall:function(a){if(typeof a==
2
+ "string")a=document.getElementById(a);if(!a||a.name=="")return this;var b=c._form_elt_key(a);b=c.get(b);if(a.type=="checkbox")a.checked=!!b;else if(a.type=="radio"){if(a.value==b)a.checked=true}else a.value=b||"";return this},_form_elt_key:function(a){return"_form_"+a.form.name+"_field_"+a.name},_radio_value:function(a){if(typeof a=="string")a=document.getElementById(a);a=a.form.elements[a.name];for(var b=a.length,f=null,e=0;e<b;e++)if(a[e].checked)f=a[e].value;return f},recall_form:function(a){return c._apply_fn_to_form_inputs(a,
3
+ c.recall)},store_form:function(a){return c._apply_fn_to_form_inputs(a,c.store)},_apply_fn_to_form_inputs:function(a,b){if(typeof a=="string")a=document.getElementById(a);for(var f=a.elements.length,e=0;e<f;e++){var d=a.elements[e];if(d.tagName=="TEXTAREA"||d.tagName=="INPUT"&&d.type!="file"&&d.type!="button"&&d.type!="image"&&d.type!="password"&&d.type!="submit"&&d.type!="reset")b(d)}return this},_storage_types:function(){var a="",b;for(b in window)if(b=="sessionStorage"||b=="globalStorage"||b=="localStorage"||
4
+ b=="openDatabase")a+=a?" "+b:b;return a},javascript_accepts_trailing_comma:false};return c}();
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * jQuery Form Plugin
3
- * version: 2.52 (07-DEC-2010)
3
+ * version: 2.63 (29-JAN-2011)
4
4
  * @requires jQuery v1.3.2 or later
5
5
  *
6
6
  * Examples and documentation at: http://malsup.com/jquery/form/
@@ -64,7 +64,7 @@ $.fn.ajaxSubmit = function(options) {
64
64
 
65
65
  options = $.extend(true, {
66
66
  url: url,
67
- type: this.attr('method') || 'GET',
67
+ type: this[0].getAttribute('method') || 'GET', // IE7 massage (see issue 57)
68
68
  iframeSrc: /^https/i.test(window.location.href || '') ? 'javascript:false' : 'about:blank'
69
69
  }, options);
70
70
 
@@ -168,7 +168,7 @@ $.fn.ajaxSubmit = function(options) {
168
168
  }
169
169
  }
170
170
  else {
171
- $.ajax(options);
171
+ $.ajax(options);
172
172
  }
173
173
 
174
174
  // fire 'notify' event
@@ -190,15 +190,7 @@ $.fn.ajaxSubmit = function(options) {
190
190
  var s = $.extend(true, {}, $.ajaxSettings, options);
191
191
  s.context = s.context || s;
192
192
  var id = 'jqFormIO' + (new Date().getTime()), fn = '_'+id;
193
- window[fn] = function() {
194
- var f = $io.data('form-plugin-onload');
195
- if (f) {
196
- f();
197
- window[fn] = undefined;
198
- try { delete window[fn]; } catch(e){}
199
- }
200
- }
201
- var $io = $('<iframe id="' + id + '" name="' + id + '" src="'+ s.iframeSrc +'" onload="window[\'_\'+this.id]()" />');
193
+ var $io = $('<iframe id="' + id + '" name="' + id + '" src="'+ s.iframeSrc +'" />');
202
194
  var io = $io[0];
203
195
 
204
196
  $io.css({ position: 'absolute', top: '-1000px', left: '-1000px' });
@@ -237,7 +229,6 @@ $.fn.ajaxSubmit = function(options) {
237
229
  return;
238
230
  }
239
231
 
240
- var cbInvoked = false;
241
232
  var timedOut = 0;
242
233
 
243
234
  // add submitting element to data if we know it
@@ -294,7 +285,7 @@ $.fn.ajaxSubmit = function(options) {
294
285
 
295
286
  // add iframe to doc and submit the form
296
287
  $io.appendTo('body');
297
- $io.data('form-plugin-onload', cb);
288
+ io.attachEvent ? io.attachEvent('onload', cb) : io.addEventListener('load', cb, false);
298
289
  form.submit();
299
290
  }
300
291
  finally {
@@ -319,20 +310,19 @@ $.fn.ajaxSubmit = function(options) {
319
310
  var data, doc, domCheckCount = 50;
320
311
 
321
312
  function cb() {
322
- if (cbInvoked) {
313
+ doc = io.contentWindow ? io.contentWindow.document : io.contentDocument ? io.contentDocument : io.document;
314
+ if (!doc || doc.location.href == s.iframeSrc) {
315
+ // response not received yet
323
316
  return;
324
317
  }
318
+ io.detachEvent ? io.detachEvent('onload', cb) : io.removeEventListener('load', cb, false);
325
319
 
326
- $io.removeData('form-plugin-onload');
327
-
328
320
  var ok = true;
329
321
  try {
330
322
  if (timedOut) {
331
323
  throw 'timeout';
332
324
  }
333
- // extract the server response from the iframe
334
- doc = io.contentWindow ? io.contentWindow.document : io.contentDocument ? io.contentDocument : io.document;
335
-
325
+
336
326
  var isXml = s.dataType == 'xml' || doc.XMLDocument || $.isXMLDoc(doc);
337
327
  log('isXml='+isXml);
338
328
  if (!isXml && window.opera && (doc.body == null || doc.body.innerHTML == '')) {
@@ -349,8 +339,7 @@ $.fn.ajaxSubmit = function(options) {
349
339
  }
350
340
 
351
341
  //log('response detected');
352
- cbInvoked = true;
353
- xhr.responseText = doc.documentElement ? doc.documentElement.innerHTML : null;
342
+ xhr.responseText = doc.body ? doc.body.innerHTML : doc.documentElement ? doc.documentElement.innerHTML : null;
354
343
  xhr.responseXML = doc.XMLDocument ? doc.XMLDocument : doc;
355
344
  xhr.getResponseHeader = function(header){
356
345
  var headers = {'content-type': s.dataType};
@@ -379,13 +368,15 @@ $.fn.ajaxSubmit = function(options) {
379
368
  else if (s.dataType == 'xml' && !xhr.responseXML && xhr.responseText != null) {
380
369
  xhr.responseXML = toXml(xhr.responseText);
381
370
  }
382
- data = $.httpData(xhr, s.dataType);
371
+
372
+ data = httpData(xhr, s.dataType, s);
383
373
  }
384
374
  catch(e){
385
375
  log('error caught:',e);
386
376
  ok = false;
387
377
  xhr.error = e;
388
- $.handleError(s, xhr, 'error', e);
378
+ s.error.call(s.context, xhr, 'error', e);
379
+ g && $.event.trigger("ajaxError", [xhr, s, e]);
389
380
  }
390
381
 
391
382
  if (xhr.aborted) {
@@ -396,19 +387,16 @@ $.fn.ajaxSubmit = function(options) {
396
387
  // ordering of these callbacks/triggers is odd, but that's how $.ajax does it
397
388
  if (ok) {
398
389
  s.success.call(s.context, data, 'success', xhr);
399
- if (g) {
400
- $.event.trigger("ajaxSuccess", [xhr, s]);
401
- }
402
- }
403
- if (g) {
404
- $.event.trigger("ajaxComplete", [xhr, s]);
390
+ g && $.event.trigger("ajaxSuccess", [xhr, s]);
405
391
  }
392
+
393
+ g && $.event.trigger("ajaxComplete", [xhr, s]);
394
+
406
395
  if (g && ! --$.active) {
407
396
  $.event.trigger("ajaxStop");
408
397
  }
409
- if (s.complete) {
410
- s.complete.call(s.context, xhr, ok ? 'success' : 'error');
411
- }
398
+
399
+ s.complete && s.complete.call(s.context, xhr, ok ? 'success' : 'error');
412
400
 
413
401
  // clean up
414
402
  setTimeout(function() {
@@ -418,7 +406,7 @@ $.fn.ajaxSubmit = function(options) {
418
406
  }, 100);
419
407
  }
420
408
 
421
- function toXml(s, doc) {
409
+ var toXml = $.parseXML || function(s, doc) { // use parseXML if available (jQuery 1.5+)
422
410
  if (window.ActiveXObject) {
423
411
  doc = new ActiveXObject('Microsoft.XMLDOM');
424
412
  doc.async = 'false';
@@ -427,8 +415,32 @@ $.fn.ajaxSubmit = function(options) {
427
415
  else {
428
416
  doc = (new DOMParser()).parseFromString(s, 'text/xml');
429
417
  }
430
- return (doc && doc.documentElement && doc.documentElement.tagName != 'parsererror') ? doc : null;
431
- }
418
+ return (doc && doc.documentElement && doc.documentElement.nodeName != 'parsererror') ? doc : null;
419
+ };
420
+ var parseJSON = $.parseJSON || function(s) {
421
+ return window['eval']('(' + s + ')');
422
+ };
423
+
424
+ var httpData = function( xhr, type, s ) { // mostly lifted from jq1.4.4
425
+ var ct = xhr.getResponseHeader('content-type') || '',
426
+ xml = type === 'xml' || !type && ct.indexOf('xml') >= 0,
427
+ data = xml ? xhr.responseXML : xhr.responseText;
428
+
429
+ if (xml && data.documentElement.nodeName === 'parsererror') {
430
+ $.error && $.error('parsererror');
431
+ }
432
+ if (s && s.dataFilter) {
433
+ data = s.dataFilter(data, type);
434
+ }
435
+ if (typeof data === 'string') {
436
+ if (type === 'json' || !type && ct.indexOf('json') >= 0) {
437
+ data = parseJSON(data);
438
+ } else if (type === "script" || !type && ct.indexOf("javascript") >= 0) {
439
+ $.globalEval(data);
440
+ }
441
+ }
442
+ return data;
443
+ };
432
444
  }
433
445
  };
434
446
 
@@ -1,19 +1,20 @@
1
- (function(b){function q(){if(b.fn.ajaxSubmit.debug){var a="[jquery.form] "+Array.prototype.join.call(arguments,"");if(window.console&&window.console.log)window.console.log(a);else window.opera&&window.opera.postError&&window.opera.postError(a)}}b.fn.ajaxSubmit=function(a){function f(){function t(){var o=i.attr("target"),m=i.attr("action");l.setAttribute("target",u);l.getAttribute("method")!="POST"&&l.setAttribute("method","POST");l.getAttribute("action")!=e.url&&l.setAttribute("action",e.url);e.skipEncodingOverride||
2
- i.attr({encoding:"multipart/form-data",enctype:"multipart/form-data"});e.timeout&&setTimeout(function(){F=true;s()},e.timeout);var v=[];try{if(e.extraData)for(var w in e.extraData)v.push(b('<input type="hidden" name="'+w+'" value="'+e.extraData[w]+'" />').appendTo(l)[0]);r.appendTo("body");r.data("form-plugin-onload",s);l.submit()}finally{l.setAttribute("action",m);o?l.setAttribute("target",o):i.removeAttr("target");b(v).remove()}}function s(){if(!G){r.removeData("form-plugin-onload");var o=true;
3
- try{if(F)throw"timeout";p=x.contentWindow?x.contentWindow.document:x.contentDocument?x.contentDocument:x.document;var m=e.dataType=="xml"||p.XMLDocument||b.isXMLDoc(p);q("isXml="+m);if(!m&&window.opera&&(p.body==null||p.body.innerHTML==""))if(--K){q("requeing onLoad callback, DOM not available");setTimeout(s,250);return}G=true;j.responseText=p.documentElement?p.documentElement.innerHTML:null;j.responseXML=p.XMLDocument?p.XMLDocument:p;j.getResponseHeader=function(L){return{"content-type":e.dataType}[L]};
4
- var v=/(json|script)/.test(e.dataType);if(v||e.textarea){var w=p.getElementsByTagName("textarea")[0];if(w)j.responseText=w.value;else if(v){var H=p.getElementsByTagName("pre")[0],I=p.getElementsByTagName("body")[0];if(H)j.responseText=H.textContent;else if(I)j.responseText=I.innerHTML}}else if(e.dataType=="xml"&&!j.responseXML&&j.responseText!=null)j.responseXML=C(j.responseText);J=b.httpData(j,e.dataType)}catch(D){q("error caught:",D);o=false;j.error=D;b.handleError(e,j,"error",D)}if(j.aborted){q("upload aborted");
5
- o=false}if(o){e.success.call(e.context,J,"success",j);y&&b.event.trigger("ajaxSuccess",[j,e])}y&&b.event.trigger("ajaxComplete",[j,e]);y&&!--b.active&&b.event.trigger("ajaxStop");if(e.complete)e.complete.call(e.context,j,o?"success":"error");setTimeout(function(){r.removeData("form-plugin-onload");r.remove();j.responseXML=null},100)}}function C(o,m){if(window.ActiveXObject){m=new ActiveXObject("Microsoft.XMLDOM");m.async="false";m.loadXML(o)}else m=(new DOMParser).parseFromString(o,"text/xml");return m&&
6
- m.documentElement&&m.documentElement.tagName!="parsererror"?m:null}var l=i[0];if(b(":input[name=submit],:input[id=submit]",l).length)alert('Error: Form elements must not have name or id of "submit".');else{var e=b.extend(true,{},b.ajaxSettings,a);e.context=e.context||e;var u="jqFormIO"+(new Date).getTime(),E="_"+u;window[E]=function(){var o=r.data("form-plugin-onload");if(o){o();window[E]=undefined;try{delete window[E]}catch(m){}}};var r=b('<iframe id="'+u+'" name="'+u+'" src="'+e.iframeSrc+'" onload="window[\'_\'+this.id]()" />'),
7
- x=r[0];r.css({position:"absolute",top:"-1000px",left:"-1000px"});var j={aborted:0,responseText:null,responseXML:null,status:0,statusText:"n/a",getAllResponseHeaders:function(){},getResponseHeader:function(){},setRequestHeader:function(){},abort:function(){this.aborted=1;r.attr("src",e.iframeSrc)}},y=e.global;y&&!b.active++&&b.event.trigger("ajaxStart");y&&b.event.trigger("ajaxSend",[j,e]);if(e.beforeSend&&e.beforeSend.call(e.context,j,e)===false)e.global&&b.active--;else if(!j.aborted){var G=false,
8
- F=0,z=l.clk;if(z){var A=z.name;if(A&&!z.disabled){e.extraData=e.extraData||{};e.extraData[A]=z.value;if(z.type=="image"){e.extraData[A+".x"]=l.clk_x;e.extraData[A+".y"]=l.clk_y}}}e.forceSync?t():setTimeout(t,10);var J,p,K=50}}}if(!this.length){q("ajaxSubmit: skipping submit process - no element selected");return this}if(typeof a=="function")a={success:a};var d=this.attr("action");if(d=typeof d==="string"?b.trim(d):"")d=(d.match(/^([^#]+)/)||[])[1];d=d||window.location.href||"";a=b.extend(true,{url:d,
9
- type:this.attr("method")||"GET",iframeSrc:/^https/i.test(window.location.href||"")?"javascript:false":"about:blank"},a);d={};this.trigger("form-pre-serialize",[this,a,d]);if(d.veto){q("ajaxSubmit: submit vetoed via form-pre-serialize trigger");return this}if(a.beforeSerialize&&a.beforeSerialize(this,a)===false){q("ajaxSubmit: submit aborted via beforeSerialize callback");return this}var c,h,g=this.formToArray(a.semantic);if(a.data){a.extraData=a.data;for(c in a.data)if(a.data[c]instanceof Array)for(var k in a.data[c])g.push({name:c,
10
- value:a.data[c][k]});else{h=a.data[c];h=b.isFunction(h)?h():h;g.push({name:c,value:h})}}if(a.beforeSubmit&&a.beforeSubmit(g,this,a)===false){q("ajaxSubmit: submit aborted via beforeSubmit callback");return this}this.trigger("form-submit-validate",[g,this,a,d]);if(d.veto){q("ajaxSubmit: submit vetoed via form-submit-validate trigger");return this}c=b.param(g);if(a.type.toUpperCase()=="GET"){a.url+=(a.url.indexOf("?")>=0?"&":"?")+c;a.data=null}else a.data=c;var i=this,n=[];a.resetForm&&n.push(function(){i.resetForm()});
11
- a.clearForm&&n.push(function(){i.clearForm()});if(!a.dataType&&a.target){var B=a.success||function(){};n.push(function(t){var s=a.replaceTarget?"replaceWith":"html";b(a.target)[s](t).each(B,arguments)})}else a.success&&n.push(a.success);a.success=function(t,s,C){for(var l=a.context||a,e=0,u=n.length;e<u;e++)n[e].apply(l,[t,s,C||i,i])};c=b("input:file",this).length>0;k=i.attr("enctype")=="multipart/form-data"||i.attr("encoding")=="multipart/form-data";if(a.iframe!==false&&(c||a.iframe||k))a.closeKeepAlive?
1
+ (function(b){function q(){if(b.fn.ajaxSubmit.debug){var a="[jquery.form] "+Array.prototype.join.call(arguments,"");if(window.console&&window.console.log)window.console.log(a);else window.opera&&window.opera.postError&&window.opera.postError(a)}}b.fn.ajaxSubmit=function(a){function f(){function x(){var j=i.attr("target"),l=i.attr("action");o.setAttribute("target",w);o.getAttribute("method")!="POST"&&o.setAttribute("method","POST");o.getAttribute("action")!=e.url&&o.setAttribute("action",e.url);e.skipEncodingOverride||
2
+ i.attr({encoding:"multipart/form-data",enctype:"multipart/form-data"});e.timeout&&setTimeout(function(){E=true;s()},e.timeout);var t=[];try{if(e.extraData)for(var u in e.extraData)t.push(b('<input type="hidden" name="'+u+'" value="'+e.extraData[u]+'" />').appendTo(o)[0]);v.appendTo("body");r.attachEvent?r.attachEvent("onload",s):r.addEventListener("load",s,false);o.submit()}finally{o.setAttribute("action",l);j?o.setAttribute("target",j):i.removeAttr("target");b(t).remove()}}function s(){m=r.contentWindow?
3
+ r.contentWindow.document:r.contentDocument?r.contentDocument:r.document;if(!(!m||m.location.href==e.iframeSrc)){r.detachEvent?r.detachEvent("onload",s):r.removeEventListener("load",s,false);var j=true;try{if(E)throw"timeout";var l=e.dataType=="xml"||m.XMLDocument||b.isXMLDoc(m);q("isXml="+l);if(!l&&window.opera&&(m.body==null||m.body.innerHTML==""))if(--H){q("requeing onLoad callback, DOM not available");setTimeout(s,250);return}k.responseText=m.body?m.body.innerHTML:m.documentElement?m.documentElement.innerHTML:
4
+ null;k.responseXML=m.XMLDocument?m.XMLDocument:m;k.getResponseHeader=function(I){return{"content-type":e.dataType}[I]};var t=/(json|script)/.test(e.dataType);if(t||e.textarea){var u=m.getElementsByTagName("textarea")[0];if(u)k.responseText=u.value;else if(t){var z=m.getElementsByTagName("pre")[0],F=m.getElementsByTagName("body")[0];if(z)k.responseText=z.textContent;else if(F)k.responseText=F.innerHTML}}else if(e.dataType=="xml"&&!k.responseXML&&k.responseText!=null)k.responseXML=J(k.responseText);
5
+ G=K(k,e.dataType,e)}catch(B){q("error caught:",B);j=false;k.error=B;e.error.call(e.context,k,"error",B);y&&b.event.trigger("ajaxError",[k,e,B])}if(k.aborted){q("upload aborted");j=false}if(j){e.success.call(e.context,G,"success",k);y&&b.event.trigger("ajaxSuccess",[k,e])}y&&b.event.trigger("ajaxComplete",[k,e]);y&&!--b.active&&b.event.trigger("ajaxStop");e.complete&&e.complete.call(e.context,k,j?"success":"error");setTimeout(function(){v.removeData("form-plugin-onload");v.remove();k.responseXML=null},
6
+ 100)}}var o=i[0];if(b(":input[name=submit],:input[id=submit]",o).length)alert('Error: Form elements must not have name or id of "submit".');else{var e=b.extend(true,{},b.ajaxSettings,a);e.context=e.context||e;var w="jqFormIO"+(new Date).getTime(),v=b('<iframe id="'+w+'" name="'+w+'" src="'+e.iframeSrc+'" />'),r=v[0];v.css({position:"absolute",top:"-1000px",left:"-1000px"});var k={aborted:0,responseText:null,responseXML:null,status:0,statusText:"n/a",getAllResponseHeaders:function(){},getResponseHeader:function(){},
7
+ setRequestHeader:function(){},abort:function(){this.aborted=1;v.attr("src",e.iframeSrc)}},y=e.global;y&&!b.active++&&b.event.trigger("ajaxStart");y&&b.event.trigger("ajaxSend",[k,e]);if(e.beforeSend&&e.beforeSend.call(e.context,k,e)===false)e.global&&b.active--;else if(!k.aborted){var E=0,A=o.clk;if(A){var C=A.name;if(C&&!A.disabled){e.extraData=e.extraData||{};e.extraData[C]=A.value;if(A.type=="image"){e.extraData[C+".x"]=o.clk_x;e.extraData[C+".y"]=o.clk_y}}}e.forceSync?x():setTimeout(x,10);var G,
8
+ m,H=50,J=b.parseXML||function(j,l){if(window.ActiveXObject){l=new ActiveXObject("Microsoft.XMLDOM");l.async="false";l.loadXML(j)}else l=(new DOMParser).parseFromString(j,"text/xml");return l&&l.documentElement&&l.documentElement.nodeName!="parsererror"?l:null},L=b.parseJSON||function(j){return window.eval("("+j+")")},K=function(j,l,t){var u=j.getResponseHeader("content-type")||"",z=l==="xml"||!l&&u.indexOf("xml")>=0;j=z?j.responseXML:j.responseText;z&&j.documentElement.nodeName==="parsererror"&&b.error&&
9
+ b.error("parsererror");if(t&&t.dataFilter)j=t.dataFilter(j,l);if(typeof j==="string")if(l==="json"||!l&&u.indexOf("json")>=0)j=L(j);else if(l==="script"||!l&&u.indexOf("javascript")>=0)b.globalEval(j);return j}}}}if(!this.length){q("ajaxSubmit: skipping submit process - no element selected");return this}if(typeof a=="function")a={success:a};var d=this.attr("action");if(d=typeof d==="string"?b.trim(d):"")d=(d.match(/^([^#]+)/)||[])[1];d=d||window.location.href||"";a=b.extend(true,{url:d,type:this[0].getAttribute("method")||
10
+ "GET",iframeSrc:/^https/i.test(window.location.href||"")?"javascript:false":"about:blank"},a);d={};this.trigger("form-pre-serialize",[this,a,d]);if(d.veto){q("ajaxSubmit: submit vetoed via form-pre-serialize trigger");return this}if(a.beforeSerialize&&a.beforeSerialize(this,a)===false){q("ajaxSubmit: submit aborted via beforeSerialize callback");return this}var c,h,g=this.formToArray(a.semantic);if(a.data){a.extraData=a.data;for(c in a.data)if(a.data[c]instanceof Array)for(var n in a.data[c])g.push({name:c,
11
+ value:a.data[c][n]});else{h=a.data[c];h=b.isFunction(h)?h():h;g.push({name:c,value:h})}}if(a.beforeSubmit&&a.beforeSubmit(g,this,a)===false){q("ajaxSubmit: submit aborted via beforeSubmit callback");return this}this.trigger("form-submit-validate",[g,this,a,d]);if(d.veto){q("ajaxSubmit: submit vetoed via form-submit-validate trigger");return this}c=b.param(g);if(a.type.toUpperCase()=="GET"){a.url+=(a.url.indexOf("?")>=0?"&":"?")+c;a.data=null}else a.data=c;var i=this,p=[];a.resetForm&&p.push(function(){i.resetForm()});
12
+ a.clearForm&&p.push(function(){i.clearForm()});if(!a.dataType&&a.target){var D=a.success||function(){};p.push(function(x){var s=a.replaceTarget?"replaceWith":"html";b(a.target)[s](x).each(D,arguments)})}else a.success&&p.push(a.success);a.success=function(x,s,o){for(var e=a.context||a,w=0,v=p.length;w<v;w++)p[w].apply(e,[x,s,o||i,i])};c=b("input:file",this).length>0;n=i.attr("enctype")=="multipart/form-data"||i.attr("encoding")=="multipart/form-data";if(a.iframe!==false&&(c||a.iframe||n))a.closeKeepAlive?
12
13
  b.get(a.closeKeepAlive,f):f();else b.ajax(a);this.trigger("form-submit-notify",[this,a]);return this};b.fn.ajaxForm=function(a){if(this.length===0){var f={s:this.selector,c:this.context};if(!b.isReady&&f.s){q("DOM not ready, queuing ajaxForm");b(function(){b(f.s,f.c).ajaxForm(a)});return this}q("terminating; zero elements found by selector"+(b.isReady?"":" (DOM not ready)"));return this}return this.ajaxFormUnbind().bind("submit.form-plugin",function(d){if(!d.isDefaultPrevented()){d.preventDefault();
13
14
  b(this).ajaxSubmit(a)}}).bind("click.form-plugin",function(d){var c=d.target,h=b(c);if(!h.is(":submit,input:image")){c=h.closest(":submit");if(c.length==0)return;c=c[0]}var g=this;g.clk=c;if(c.type=="image")if(d.offsetX!=undefined){g.clk_x=d.offsetX;g.clk_y=d.offsetY}else if(typeof b.fn.offset=="function"){h=h.offset();g.clk_x=d.pageX-h.left;g.clk_y=d.pageY-h.top}else{g.clk_x=d.pageX-c.offsetLeft;g.clk_y=d.pageY-c.offsetTop}setTimeout(function(){g.clk=g.clk_x=g.clk_y=null},100)})};b.fn.ajaxFormUnbind=
14
- function(){return this.unbind("submit.form-plugin click.form-plugin")};b.fn.formToArray=function(a){var f=[];if(this.length===0)return f;var d=this[0],c=a?d.getElementsByTagName("*"):d.elements;if(!c)return f;var h,g,k,i,n,B;h=0;for(n=c.length;h<n;h++){g=c[h];if(k=g.name)if(a&&d.clk&&g.type=="image"){if(!g.disabled&&d.clk==g){f.push({name:k,value:b(g).val()});f.push({name:k+".x",value:d.clk_x},{name:k+".y",value:d.clk_y})}}else if((i=b.fieldValue(g,true))&&i.constructor==Array){g=0;for(B=i.length;g<
15
- B;g++)f.push({name:k,value:i[g]})}else i!==null&&typeof i!="undefined"&&f.push({name:k,value:i})}if(!a&&d.clk){a=b(d.clk);c=a[0];if((k=c.name)&&!c.disabled&&c.type=="image"){f.push({name:k,value:a.val()});f.push({name:k+".x",value:d.clk_x},{name:k+".y",value:d.clk_y})}}return f};b.fn.formSerialize=function(a){return b.param(this.formToArray(a))};b.fn.fieldSerialize=function(a){var f=[];this.each(function(){var d=this.name;if(d){var c=b.fieldValue(this,a);if(c&&c.constructor==Array)for(var h=0,g=c.length;h<
15
+ function(){return this.unbind("submit.form-plugin click.form-plugin")};b.fn.formToArray=function(a){var f=[];if(this.length===0)return f;var d=this[0],c=a?d.getElementsByTagName("*"):d.elements;if(!c)return f;var h,g,n,i,p,D;h=0;for(p=c.length;h<p;h++){g=c[h];if(n=g.name)if(a&&d.clk&&g.type=="image"){if(!g.disabled&&d.clk==g){f.push({name:n,value:b(g).val()});f.push({name:n+".x",value:d.clk_x},{name:n+".y",value:d.clk_y})}}else if((i=b.fieldValue(g,true))&&i.constructor==Array){g=0;for(D=i.length;g<
16
+ D;g++)f.push({name:n,value:i[g]})}else i!==null&&typeof i!="undefined"&&f.push({name:n,value:i})}if(!a&&d.clk){a=b(d.clk);c=a[0];if((n=c.name)&&!c.disabled&&c.type=="image"){f.push({name:n,value:a.val()});f.push({name:n+".x",value:d.clk_x},{name:n+".y",value:d.clk_y})}}return f};b.fn.formSerialize=function(a){return b.param(this.formToArray(a))};b.fn.fieldSerialize=function(a){var f=[];this.each(function(){var d=this.name;if(d){var c=b.fieldValue(this,a);if(c&&c.constructor==Array)for(var h=0,g=c.length;h<
16
17
  g;h++)f.push({name:d,value:c[h]});else c!==null&&typeof c!="undefined"&&f.push({name:this.name,value:c})}});return b.param(f)};b.fn.fieldValue=function(a){for(var f=[],d=0,c=this.length;d<c;d++){var h=b.fieldValue(this[d],a);h===null||typeof h=="undefined"||h.constructor==Array&&!h.length||(h.constructor==Array?b.merge(f,h):f.push(h))}return f};b.fieldValue=function(a,f){var d=a.name,c=a.type,h=a.tagName.toLowerCase();if(f===undefined)f=true;if(f&&(!d||a.disabled||c=="reset"||c=="button"||(c=="checkbox"||
17
- c=="radio")&&!a.checked||(c=="submit"||c=="image")&&a.form&&a.form.clk!=a||h=="select"&&a.selectedIndex==-1))return null;if(h=="select"){var g=a.selectedIndex;if(g<0)return null;d=[];h=a.options;var k=(c=c=="select-one")?g+1:h.length;for(g=c?g:0;g<k;g++){var i=h[g];if(i.selected){var n=i.value;n||(n=i.attributes&&i.attributes.value&&!i.attributes.value.specified?i.text:i.value);if(c)return n;d.push(n)}}return d}return b(a).val()};b.fn.clearForm=function(){return this.each(function(){b("input,select,textarea",
18
+ c=="radio")&&!a.checked||(c=="submit"||c=="image")&&a.form&&a.form.clk!=a||h=="select"&&a.selectedIndex==-1))return null;if(h=="select"){var g=a.selectedIndex;if(g<0)return null;d=[];h=a.options;var n=(c=c=="select-one")?g+1:h.length;for(g=c?g:0;g<n;g++){var i=h[g];if(i.selected){var p=i.value;p||(p=i.attributes&&i.attributes.value&&!i.attributes.value.specified?i.text:i.value);if(c)return p;d.push(p)}}return d}return b(a).val()};b.fn.clearForm=function(){return this.each(function(){b("input,select,textarea",
18
19
  this).clearFields()})};b.fn.clearFields=b.fn.clearInputs=function(){return this.each(function(){var a=this.type,f=this.tagName.toLowerCase();if(a=="text"||a=="password"||f=="textarea")this.value="";else if(a=="checkbox"||a=="radio")this.checked=false;else if(f=="select")this.selectedIndex=-1})};b.fn.resetForm=function(){return this.each(function(){if(typeof this.reset=="function"||typeof this.reset=="object"&&!this.reset.nodeType)this.reset()})};b.fn.enable=function(a){if(a===undefined)a=true;return this.each(function(){this.disabled=
19
20
  !a})};b.fn.selected=function(a){if(a===undefined)a=true;return this.each(function(){var f=this.type;if(f=="checkbox"||f=="radio")this.checked=a;else if(this.tagName.toLowerCase()=="option"){f=b(this).parent("select");a&&f[0]&&f[0].type=="select-one"&&f.find("option").selected(false);this.selected=a}})}})(jQuery);
@@ -17,6 +17,10 @@ javascript 'jquery.contextMenu.js'
17
17
  javascript 'jquery.contextMenu.min.js'
18
18
  javascript 'jquery.cookie.js'
19
19
  javascript 'jquery.cookie.min.js'
20
+ javascript 'jquery.dotimeout.js'
21
+ javascript 'jquery.dotimeout.min.js'
22
+ javascript 'jquery.dst.js'
23
+ javascript 'jquery.dst.min.js'
20
24
  stylesheet 'jquery/ui/farbtastic.scss'
21
25
  javascript 'jquery.farbtastic.js'
22
26
  javascript 'jquery.farbtastic.min.js'
@@ -39,7 +39,7 @@
39
39
  display: inline-block;
40
40
  width: 20px;
41
41
  height: 20px;
42
- padding: 1px 0px 1px 2px;
42
+ padding: 2px 1px 2px 3px;
43
43
  text-indent: -9999px;
44
44
  .ui-btn-inner {
45
45
  padding: 0; }
@@ -260,13 +260,19 @@
260
260
  -ms-text-size-adjust: none;
261
261
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
262
262
 
263
- /*orientations from js are available */
264
-
265
- .portrait, .landscape {}
266
-
267
263
  /* "page" containers - full-screen views, one should always be in view post-pageload */
268
264
 
269
- [data-role=page], [data-role=dialog], .ui-page {
265
+ .ui-mobile {
266
+ [data-role=page], [data-role=dialog] {
267
+ top: 0;
268
+ left: 0;
269
+ width: 100%;
270
+ min-height: 100%;
271
+ position: absolute;
272
+ display: none;
273
+ border: 0; } }
274
+
275
+ .ui-page {
270
276
  top: 0;
271
277
  left: 0;
272
278
  width: 100%;
@@ -275,10 +281,21 @@
275
281
  display: none;
276
282
  border: 0; }
277
283
 
278
- .ui-page-active {
284
+ .ui-mobile .ui-page-active {
279
285
  display: block;
280
- overflow: visible;
281
- min-height: 100%; }
286
+ overflow: visible; }
287
+
288
+ /*orientations from js are available */
289
+
290
+ .portrait {
291
+ min-height: 480px;
292
+ .ui-page {
293
+ min-height: 480px; } }
294
+
295
+ .landscape {
296
+ min-height: 320px;
297
+ .ui-page {
298
+ min-height: 320px; } }
282
299
 
283
300
  /* loading screen */
284
301
 
@@ -409,6 +426,7 @@
409
426
  */
410
427
 
411
428
  .ui-dialog {
429
+ min-height: 480px;
412
430
  .ui-header, .ui-content, .ui-footer {
413
431
  margin: 15px;
414
432
  position: relative; }
@@ -473,11 +491,10 @@
473
491
  &:first-child {
474
492
  border-top-width: 0; } }
475
493
 
476
- @media screen and (max-width: 480px) {
477
- .ui-field-contain {
478
- border-width: 0;
479
- padding: 0;
480
- margin: 1em 0; } }
494
+ .min-width-480px .ui-field-contain {
495
+ border-width: 0;
496
+ padding: 0;
497
+ margin: 1em 0; }
481
498
 
482
499
  /*
483
500
  * jQuery Mobile Framework
@@ -728,9 +745,9 @@ textarea.ui-input-text {
728
745
  outline: 0 !important; }
729
746
  .ui-input-clear {
730
747
  position: absolute;
731
- right: 2px;
748
+ right: 0;
732
749
  top: 50%;
733
- margin-top: -12px; }
750
+ margin-top: -14px; }
734
751
  .ui-input-clear-hidden {
735
752
  display: none; } }
736
753
 
@@ -1283,13 +1300,11 @@ Built by David Kaneda and maintained by Jonathan Stark.
1283
1300
 
1284
1301
  .ui-mobile-viewport-transitioning {
1285
1302
  width: 100%;
1286
- height: 120%;
1287
- /* we want to make sure we take up enough to keep the scroll top hidden during transition, but not too much to overflow our buffer */
1303
+ height: 100%;
1288
1304
  overflow: hidden;
1289
1305
  .ui-page {
1290
1306
  width: 100%;
1291
- height: 120%;
1292
- /* we want to make sure we take up enough to keep the scroll top hidden during transition, but not too much to overflow our buffer */
1307
+ height: 100%;
1293
1308
  overflow: hidden; } }
1294
1309
 
1295
1310
  .flip {
@@ -549,7 +549,7 @@ a.ui-link-inherit {
549
549
  @media screen and (-webkit-min-device-pixel-ratio: 2), screen and (max--moz-device-pixel-ratio: 2) {
550
550
  .ui-icon {
551
551
  background-image: image_url("jquery/mobile/default/icons-36-white.png");
552
- background-size: 558px 18px; }
552
+ background-size: 630px 18px; }
553
553
  .ui-icon-black {
554
554
  background-image: image_url("jquery/mobile/default/icons-36-black.png"); } }
555
555
 
@@ -609,6 +609,12 @@ a.ui-link-inherit {
609
609
  .ui-icon-info {
610
610
  background-position: -540px 0; }
611
611
 
612
+ .ui-icon-home {
613
+ background-position: -576px 0; }
614
+
615
+ .ui-icon-search {
616
+ background-position: -612px 0; }
617
+
612
618
  /* checks,radios */
613
619
 
614
620
  .ui-icon-checkbox-off, .ui-icon-checkbox-on, .ui-icon-radio-off, .ui-icon-radio-on {
@@ -630,7 +636,7 @@ a.ui-link-inherit {
630
636
  .ui-icon-radio-on {
631
637
  background-image: image_url("jquery/mobile/default/form-radio-on.png"); }
632
638
 
633
- .ui-icon-search {
639
+ .ui-icon-searchfield {
634
640
  background-image: image_url("jquery/mobile/default/icon-search-black.png");
635
641
  background-size: 16px 16px; }
636
642