Base = XObject.define(
function(cfg) {
-
+
XObject.extend(this, cfg);
+
},
Object,
{
+ /**
+ * @cfg {Array} doubleStringProps list of properties that can be double quoted.
+ */
+ doubleStringProps : false,
id : false,
name : false, // is the JS name of the file.
{
var ret = { };
var _this = this;
- ['id', 'name', 'parent', 'title', 'path', 'items', 'project'].forEach( function(k) {
- ret[k] = _this[k];
+ ['id', 'name', 'parent', 'title', 'path', 'items' , 'permname', 'modOrder' ].forEach( function(k) {
+ ret[k] = typeof(_this[k]) == 'undefined' ? '' : _this[k];
});
return ret;
},
});
obj.items = newitems;
- //if (!obj.items.length) {
- // delete obj.items;
- //}
+ if (!obj.items.length) {
+ delete obj.items;
+ }
}
var left = '';
keys.forEach(function(i) {
- var el = obj[i];
- if (tyoeof(obj) == 'undefined') {
+
+ if (typeof(obj[i]) == 'undefined') { // empty or removed.
return;
}
-
+ var el = obj[i];
if (!isArray && skip.indexOf(i) > -1) { // things we do not write..
return;
}
left = "'" + leftv + "'";
} else if (leftv.match(/[^A-Z_]+/i)) { // not plain a-z... - quoted.
var val = JSON.stringify(leftv);
- left = "'" + val.substring(1, val.length-1).replace(/'/, "\\'") + "'";
+ left = "'" + val.substring(1, val.length-1).replace(/'/g, "\\'") + "'";
} else {
left = '' + leftv;
}
// return;
//}
//
-
- els.push(left + _this.mungeToString(el, i == 'listeners', pad + ' '));
+ var right = _this.mungeToString(el, i == 'listeners', pad + ' ');
+ if (typeof(right) != 'undefined') {
+ els.push(left + right);
+ }
+
return;
}
// standard. .
+ if (typeof(obj[i]) != 'string') {
+ els.push(left + JSON.stringify(obj[i]));
+ return;
+ }
+ // strings..
+ if (!_this.doubleStringProps) {
+ els.push(left + JSON.stringify(obj[i]));
+ return;
+ }
+ if (_this.doubleStringProps.indexOf(i) > -1) {
+ els.push(left + JSON.stringify(obj[i]));
+ return;
+ }
+ // single quote..
+ els.push(left + "'" + obj[i].replace(/'/g, "\\'") + "'");
- els.push(left + JSON.stringify(obj[i]));
+
});
+ if (!isArray && !els.length) {
+ return;
+ }
//output the thing.
var spad = pad.substring(0, pad.length-4);
return (isArray ? '[' : '{') + "\n" +
}
+
+
+
);