+ 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";
+ }