cleanup
[myslice.git] / manifold / static / js / plugin.js
index f392961..e278129 100644 (file)
@@ -189,7 +189,29 @@ var Plugin = Class.extend({
 
     id_from_key: function(key_field, value) {
         
-        return key_field + manifold.separator + unfold.escape_id(value).replace(/\\/g, '');
+        return key_field + manifold.separator + this.escape_id(value).replace(/\\/g, '');
+    },
+
+    // we do not need to carry around all the nonsense about backslashing dots in hrns
+    // likewise, DOM ids do not like to have dots in them
+    // because "#foo.bar" matches an elem named foo with class bar - not an id that is foo.bar
+    // so this method gives you a valid DOMID but that cannot be 'reversed' back to retrieve an hrn or the like
+    // e.g. 
+    // input=input="ple.aluiple.host147-82-static\\.93-94-b\\.business\\.telecomitalia\\.it"
+    // > "ple.aluiple.host147-82-static\.93-94-b\.business\.telecomitalia\.it"
+    // flat_id(input)
+    // "ple-aluiple-host147-82-static-93-94-b-business-telecomitalia-it"
+    flat_id : function (id_in) {
+       return id_in.replace(/\\\./g,"-").replace(/\\/g,"-").replace(/\./g,"-");
+    },
+
+    // escape (read: backslashes) some meta-chars in input
+    escape_id: function(id) {
+        if( id !== undefined){
+            return id.replace( /(:|\.|\[|\])/g, "\\$1" );
+        }else{
+            return "undefined-id";
+        }
     },
 
     id_from_record: function(method, record) {
@@ -226,6 +248,15 @@ var Plugin = Class.extend({
         return array[arguments.length + 1];
     },
 
+    // TOGGLE
+    // plugin-helper.js is about managing toggled state
+    // it would be beneficial to merge it in here
+    toggle_on: function () { return this.toggle("true"); },
+    toggle_off: function () { return this.toggle("false"); },
+    toggle: function (status) {
+       plugin_helper.set_toggle_status (this.options.plugin_uuid,status);
+    },
+
     /* SPIN */
 
     spin: function() {