Support legacyOptions

This commit is contained in:
nathangray 2020-01-24 06:41:27 -07:00 committed by Hadi Nategh
parent addc4d8935
commit 95a06b3f10
2 changed files with 18 additions and 14 deletions

View File

@ -408,7 +408,9 @@ var et2_widget = /** @class */ (function (_super) {
var attrName = _attrsObj[i].name; var attrName = _attrsObj[i].name;
var attrValue = _attrsObj[i].value; var attrValue = _attrsObj[i].value;
// Special handling for the legacy options // Special handling for the legacy options
if (attrName == "options" && _proto.legacyOptions && _proto.legacyOptions.length > 0) { if (attrName == "options" && _proto.constructor.legacyOptions && _proto.constructor.legacyOptions.length > 0) {
var legacy = _proto.constructor.legacyOptions || [];
var attrs = et2_attribute_registry[Object.getPrototypeOf(_proto).constructor.name] || {};
// Check for modifications on legacy options here. Normal modifications // Check for modifications on legacy options here. Normal modifications
// are handled in widget constructor, but it's too late for legacy options then // are handled in widget constructor, but it's too late for legacy options then
if (_target.id && this.getArrayMgr("modifications").getEntry(_target.id)) { if (_target.id && this.getArrayMgr("modifications").getEntry(_target.id)) {
@ -422,21 +424,21 @@ var et2_widget = /** @class */ (function (_super) {
} }
// Parse the legacy options (as a string, other types not allowed) // Parse the legacy options (as a string, other types not allowed)
var splitted = et2_csvSplit(attrValue + ""); var splitted = et2_csvSplit(attrValue + "");
for (var j = 0; j < splitted.length && j < _proto.legacyOptions.length; j++) { for (var j = 0; j < splitted.length && j < legacy.length; j++) {
// Blank = not set, unless there's more legacy options provided after // Blank = not set, unless there's more legacy options provided after
if (splitted[j].trim().length === 0 && _proto.legacyOptions.length >= splitted.length) if (splitted[j].trim().length === 0 && legacy.length >= splitted.length)
continue; continue;
// Check to make sure we don't overwrite a current option with a legacy option // Check to make sure we don't overwrite a current option with a legacy option
if (typeof _target[_proto.legacyOptions[j]] === "undefined") { if (typeof _target[legacy[j]] === "undefined") {
attrValue = splitted[j]; attrValue = splitted[j];
/** /**
If more legacy options than expected, stuff them all in the last legacy option If more legacy options than expected, stuff them all in the last legacy option
Some legacy options take a comma separated list. Some legacy options take a comma separated list.
*/ */
if (j == _proto.legacyOptions.length - 1 && splitted.length > _proto.legacyOptions.length) { if (j == legacy.length - 1 && splitted.length > legacy.length) {
attrValue = splitted.slice(j); attrValue = splitted.slice(j);
} }
var attr = _proto.attributes[_proto.legacyOptions[j]]; var attr = et2_attribute_registry[_proto.constructor.name][legacy[j]] || {};
// If the attribute is marked as boolean, parse the // If the attribute is marked as boolean, parse the
// expression as bool expression. // expression as bool expression.
if (attr.type == "boolean") { if (attr.type == "boolean") {
@ -445,7 +447,7 @@ var et2_widget = /** @class */ (function (_super) {
else if (typeof attrValue != "object") { else if (typeof attrValue != "object") {
attrValue = mgr.expandName(attrValue); attrValue = mgr.expandName(attrValue);
} }
_target[_proto.legacyOptions[j]] = attrValue; _target[legacy[j]] = attrValue;
} }
} }
} }

View File

@ -535,7 +535,9 @@ Comment this out (for now)
var attrValue = _attrsObj[i].value; var attrValue = _attrsObj[i].value;
// Special handling for the legacy options // Special handling for the legacy options
if (attrName == "options" && _proto.legacyOptions && _proto.legacyOptions.length > 0) { if (attrName == "options" && _proto.constructor.legacyOptions && _proto.constructor.legacyOptions.length > 0) {
let legacy = _proto.constructor.legacyOptions || [];
let attrs = et2_attribute_registry[Object.getPrototypeOf(_proto).constructor.name] || {};
// Check for modifications on legacy options here. Normal modifications // Check for modifications on legacy options here. Normal modifications
// are handled in widget constructor, but it's too late for legacy options then // are handled in widget constructor, but it's too late for legacy options then
if (_target.id && this.getArrayMgr("modifications").getEntry(_target.id)) { if (_target.id && this.getArrayMgr("modifications").getEntry(_target.id)) {
@ -550,23 +552,23 @@ Comment this out (for now)
// Parse the legacy options (as a string, other types not allowed) // Parse the legacy options (as a string, other types not allowed)
var splitted = et2_csvSplit(attrValue + ""); var splitted = et2_csvSplit(attrValue + "");
for (var j = 0; j < splitted.length && j < _proto.legacyOptions.length; j++) { for (var j = 0; j < splitted.length && j < legacy.length; j++) {
// Blank = not set, unless there's more legacy options provided after // Blank = not set, unless there's more legacy options provided after
if (splitted[j].trim().length === 0 && _proto.legacyOptions.length >= splitted.length) continue; if (splitted[j].trim().length === 0 && legacy.length >= splitted.length) continue;
// Check to make sure we don't overwrite a current option with a legacy option // Check to make sure we don't overwrite a current option with a legacy option
if (typeof _target[_proto.legacyOptions[j]] === "undefined") { if (typeof _target[legacy[j]] === "undefined") {
attrValue = splitted[j]; attrValue = splitted[j];
/** /**
If more legacy options than expected, stuff them all in the last legacy option If more legacy options than expected, stuff them all in the last legacy option
Some legacy options take a comma separated list. Some legacy options take a comma separated list.
*/ */
if (j == _proto.legacyOptions.length - 1 && splitted.length > _proto.legacyOptions.length) { if (j == legacy.length - 1 && splitted.length > legacy.length) {
attrValue = splitted.slice(j); attrValue = splitted.slice(j);
} }
var attr = _proto.attributes[_proto.legacyOptions[j]]; var attr = et2_attribute_registry[_proto.constructor.name][legacy[j]] || {};
// If the attribute is marked as boolean, parse the // If the attribute is marked as boolean, parse the
// expression as bool expression. // expression as bool expression.
@ -575,7 +577,7 @@ Comment this out (for now)
} else if (typeof attrValue != "object") { } else if (typeof attrValue != "object") {
attrValue = mgr.expandName(attrValue); attrValue = mgr.expandName(attrValue);
} }
_target[_proto.legacyOptions[j]] = attrValue; _target[legacy[j]] = attrValue;
} }
} }
} else if (attrName == "readonly" && typeof _target[attrName] != "undefined") { } else if (attrName == "readonly" && typeof _target[attrName] != "undefined") {