// reference and a normal reference
this.element = element;
this.$element = $(element);
+ // programmatically add specific class for publishing events
+ // used in manifold.js for triggering API events
+ if ( ! this.$element.hasClass('pubsub')) this.$element.addClass('pubsub');
// return this so we can chain/use the bridge with less code.
return this;
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, '');
+ },
+
+ // NOTE
+ // at some point in time we used to have a helper function named 'flat_id' here
+ // the goals was to sort of normalize id's but it turned out we can get rid of that
+ // in a nutshell, we would have an id (can be urn, hrn, whatever) and
+ // we want to be able to retrieve a DOM element based on that (e.g. a checkbox)
+ // so we did something like <tag id="some-id-that-comes-from-the-db">
+ // and then $("#some-id-that-comes-from-the-db")
+ // however the syntax for that selector prevents from using some characters in id
+ // and so for some of our ids this won't work
+ // instead of 'flattening' we now do this instead
+ // <tag some_id="then!we:can+use.what$we!want">
+ // and to retrieve it
+ // $("[some_id='then!we:can+use.what$we!want']")
+ // which thanks to the quotes, works; and you can use this with id as well in fact
+ // of course if now we have quotes in the id it's going to squeak, but well..
+
+ // 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) {
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() {