published: {
showAddress: false
},
- components: [
- {controlClasses: 'enyo-inline', components: [
- {name: "label", classes: "xv-label"},
- {kind: "onyx.InputDecorator", name: "decorator", classes: "xv-icon-decorator", components: [
- {name: "input", kind: "onyx.Input",
- onkeyup: "keyUp", onkeydown: "keyDown", onblur: "receiveBlur",
- onfocus: "receiveFocus"},
- {kind: "onyx.MenuDecorator", components: [
- {kind: "onyx.IconButton", classes: "icon-folder-open-alt"},
- {kind: "onyx.Menu", name: 'popupMenu', floating: true, components: [
- {kind: "XV.MenuItem", name: "searchItem", content: "_search".loc()},
- {kind: "XV.MenuItem", name: "openItem", content: "_open".loc(), disabled: true},
- {kind: "XV.MenuItem", name: "newItem", content: "_new".loc(), disabled: true}
- ]}
- ]},
- {name: "completer", kind: "XV.Completer"}
- ]}
+ descriptionComponents: [
+ {name: "jobTitleRow", controlClasses: "enyo-inline", showing: false, components: [
+ {classes: 'xv-description', name: "name"}
]},
- {name: 'descriptionContainer', components: [
- {name: "jobTitleRow", controlClasses: "enyo-inline", showing: false, components: [
- {classes: 'xv-description', name: "name"}
- ]},
- {name: "phoneRow", controlClasses: "enyo-inline", showing: false, components: [
- {classes: "xv-description hyperlink", target: '_blank', name: "description"}
- ]},
- {name: "alternateRow", controlClasses: "enyo-inline", showing: false, components: [
- {classes: "xv-description hyperlink", target: "_blank", name: "alternate"}
- ]},
- {name: "faxRow", controlClasses: "enyo-inline", showing: false, components: [
- {classes: "xv-description hyperlink", target: "_blank", name: "fax"}
- ]},
- {name: "emailRow", controlClasses: "enyo-inline", showing: false, components: [
- {classes: 'xv-description hyperlink', target: "_blank", name: "email"}
- ]},
- {name: "webAddressRow", controlClasses: "enyo-inline", showing: false, components: [
- {classes: 'xv-description hyperlink', target: "_blank", name: "webAddress"}
- ]},
- {name: "addressRow", controlClasses: "enyo-inline", showing: false, components: [
- {classes: "xv-description", name: "address", allowHtml: true}
- ]}
+ {name: "phoneRow", controlClasses: "enyo-inline", showing: false, components: [
+ {classes: "xv-description hyperlink", target: '_blank', name: "description"}
+ ]},
+ {name: "alternateRow", controlClasses: "enyo-inline", showing: false, components: [
+ {classes: "xv-description hyperlink", target: "_blank", name: "alternate"}
+ ]},
+ {name: "faxRow", controlClasses: "enyo-inline", showing: false, components: [
+ {classes: "xv-description hyperlink", target: "_blank", name: "fax"}
+ ]},
+ {name: "emailRow", controlClasses: "enyo-inline", showing: false, components: [
+ {classes: 'xv-description hyperlink', target: "_blank", name: "email"}
+ ]},
+ {name: "webAddressRow", controlClasses: "enyo-inline", showing: false, components: [
+ {classes: 'xv-description hyperlink', target: "_blank", name: "webAddress"}
+ ]},
+ {name: "addressRow", controlClasses: "enyo-inline", showing: false, components: [
+ {classes: "xv-description", name: "address", allowHtml: true}
]}
],
setValue: function (value, options) {
@todo Document the controlValueChanged method.
*/
controlValueChanged: function (inSender, inEvent) {
- var attr = inSender.getAttr(),
- value = inSender.getValue(),
+ var attr = inEvent.originator.getAttr(),
+ value = inEvent.originator.getValue(),
attributes = {},
model = this.getValue(),
characteristic,
{kind: "XV.CharacteristicItem"}
]},
{controlClasses: 'enyo-inline', classes: "xv-buttons", components: [
- {name: "label", classes: "xv-label"},
{kind: "onyx.Button", name: "newButton",
classes: "icon-plus xv-characteristic-button", onclick: "newItem"}
]}
],
- create: function () {
- this.inherited(arguments);
- this.showLabelChanged();
- },
disabledChanged: function () {
this.$.newButton.setDisabled(this.disabled);
},
this.value.sort();
this.lengthChanged();
},
-
- /**
- Sets visibility of the widget label.
- */
- showLabelChanged: function () {
- this.$.label.setShowing(this.getShowLabel());
- }
});
}());
{name: "completer", kind: "XV.Completer"}
]}
]},
- // TODO: refactor this out into a separate array that is added on create
- {name: 'descriptionContainer', classes: 'xv-invisible-wrapper', components: [
- {controlClasses: 'enyo-inline', components: [
- {name: "name", classes: "xv-description"},
- {name: "description", classes: "xv-description"}
- ]}
+ {name: 'descriptionContainer', classes: 'xv-invisible-wrapper'}
+ ],
+ descriptionComponents: [
+ {controlClasses: 'enyo-inline', components: [
+ {name: "name", classes: "xv-description"},
+ {name: "description", classes: "xv-description"}
]}
],
/**
this.listChanged();
this.labelChanged();
this.disabledChanged();
+
+ // create description components
+ _.each(this.descriptionComponents, function (component) {
+ this.$.descriptionContainer.createComponent(component, {owner: this});
+ }, this);
},
/**
@todo Document the disabledChanged method.