From: Thierry Parmentelat Date: Thu, 11 Apr 2013 10:39:24 +0000 (+0200) Subject: updater's query now has its own uuid X-Git-Tag: myslice-0.2-1~162 X-Git-Url: http://git.onelab.eu/?p=myslice.git;a=commitdiff_plain;h=d463ba934f955dd58900adc3c4d52cf979b66b2c updater's query now has its own uuid --- diff --git a/Makefile b/Makefile index 961fc51b..69c13369 100644 --- a/Makefile +++ b/Makefile @@ -40,6 +40,8 @@ THIRD-PARTY-RESOURCES += $(shell ls third-party/jquery/js/jquery.min.js) # for storing the visible status of plugins THIRD-PARTY-RESOURCES += $(shell ls third-party/jquery-html5storage/jquery.html5storage.js) THIRD-PARTY-RESOURCES += $(shell ls third-party/jquery-html5storage/jquery.html5storage.min.js) +# creating queries uuids on the fly +THIRD-PARTY-RESOURCES += $(shell ls third-party/uuid/Math.uuid.js) # spin comes in plain or min, + the jquery plugin, and our own settings THIRD-PARTY-RESOURCES += $(shell ls third-party/spin/*.js) # used in QueryCode diff --git a/plugins/updater/updater.js b/plugins/updater/updater.js index 26390a89..7bfaf6de 100644 --- a/plugins/updater/updater.js +++ b/plugins/updater/updater.js @@ -51,24 +51,23 @@ // implementation wouldn't fly // we keep this for a later improvement var query=manifold.find_query (options.query_uuid); - console.log("retrieved query " + query.__repr()); + messages.info("retrieved query " + query.__repr()); // very rough way of filling this for now this.update_query = new ManifoldQuery ("update", query.subject, null, query.filters, {}, // params query.fields, undefined, /* unique */ - query.query_uuid, /* tmp */ + Math.uuid(32,16), undefined, undefined /* maybe some day I'll get that one */); // arm button once document is loaded (function(updater) {$(document).ready(function(){updater.arm_button()})})(this); this.arm_button = function () { - console.log("arm_button"); $('#updater-' + this.options.plugin_uuid).click(this, this.submit_update_request); }, this.submit_update_request = function (e) { - console.log("submit_update_request"); + messages.debug("submit_update_request"); var query_uuid = e.data.options.query_uuid; var update_query = e.data.update_query; $.publish("/messages/debug","Updater.submit_update_request " + update_query.__repr()); @@ -93,7 +92,9 @@ }, update_slice = function (e, rows, query) { + /* This function is called twice : get and update */ + var data = e.data.instance.data().Slices; diff --git a/plugins/updater/updater.py b/plugins/updater/updater.py index 506416bd..f04afc20 100644 --- a/plugins/updater/updater.py +++ b/plugins/updater/updater.py @@ -13,7 +13,10 @@ class Updater (Plugin): def requirements (self): return { - 'js_files' : [ "js/updater.js" , "js/manifold.js", "js/manifold-query.js", ], + 'js_files' : [ "js/updater.js" , "js/manifold.js", "js/manifold-query.js", + "js/spin.presets.js", "js/spin.min.js", "js/jquery.spin.js", + "js/Math.uuid.js", + ], 'css_files' : "css/updater.css", } diff --git a/third-party/uuid/Math.uuid.js b/third-party/uuid/Math.uuid.js new file mode 100644 index 00000000..7538e678 --- /dev/null +++ b/third-party/uuid/Math.uuid.js @@ -0,0 +1,92 @@ +/*! +Math.uuid.js (v1.4) +http://www.broofa.com +mailto:robert@broofa.com + +Copyright (c) 2010 Robert Kieffer +Dual licensed under the MIT and GPL licenses. +*/ + +/* + * Generate a random uuid. + * + * USAGE: Math.uuid(length, radix) + * length - the desired number of characters + * radix - the number of allowable values for each character. + * + * EXAMPLES: + * // No arguments - returns RFC4122, version 4 ID + * >>> Math.uuid() + * "92329D39-6F5C-4520-ABFC-AAB64544E172" + * + * // One argument - returns ID of the specified length + * >>> Math.uuid(15) // 15 character ID (default base=62) + * "VcydxgltxrVZSTV" + * + * // Two arguments - returns ID of the specified length, and radix. (Radix must be <= 62) + * >>> Math.uuid(8, 2) // 8 character ID (base=2) + * "01001010" + * >>> Math.uuid(8, 10) // 8 character ID (base=10) + * "47473046" + * >>> Math.uuid(8, 16) // 8 character ID (base=16) + * "098F4D35" + */ +(function() { + // Private array of chars to use + var CHARS = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split(''); + + Math.uuid = function (len, radix) { + var chars = CHARS, uuid = [], i; + radix = radix || chars.length; + + if (len) { + // Compact form + for (i = 0; i < len; i++) uuid[i] = chars[0 | Math.random()*radix]; + } else { + // rfc4122, version 4 form + var r; + + // rfc4122 requires these characters + uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-'; + uuid[14] = '4'; + + // Fill in random data. At i==19 set the high bits of clock sequence as + // per rfc4122, sec. 4.1.5 + for (i = 0; i < 36; i++) { + if (!uuid[i]) { + r = 0 | Math.random()*16; + uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r]; + } + } + } + + return uuid.join(''); + }; + + // A more performant, but slightly bulkier, RFC4122v4 solution. We boost performance + // by minimizing calls to random() + Math.uuidFast = function() { + var chars = CHARS, uuid = new Array(36), rnd=0, r; + for (var i = 0; i < 36; i++) { + if (i==8 || i==13 || i==18 || i==23) { + uuid[i] = '-'; + } else if (i==14) { + uuid[i] = '4'; + } else { + if (rnd <= 0x02) rnd = 0x2000000 + (Math.random()*0x1000000)|0; + r = rnd & 0xf; + rnd = rnd >> 4; + uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r]; + } + } + return uuid.join(''); + }; + + // A more compact, but less performant, RFC4122v4 solution: + Math.uuidCompact = function() { + return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { + var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8); + return v.toString(16); + }); + }; +})(); diff --git a/third-party/uuid/Math.uuid.js.url b/third-party/uuid/Math.uuid.js.url new file mode 100644 index 00000000..0ff2b79a --- /dev/null +++ b/third-party/uuid/Math.uuid.js.url @@ -0,0 +1 @@ +http://www.broofa.com/Tools/Math.uuid.js