1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-12-28 08:20:57 +01:00
phorge-phorge/webroot/rsrc/js/phuix/PHUIXExample.js
epriestley 683647f1fb Add PHUIXButtonView and a UIExample
Summary:
Ref T12733. Ref M1476. This adds `PHUIXButtonView`, for client-side button rendering.

It also adds a PHUIX example which renders the server and client versions of each component side-by-side so it's easier to see if they're messed up.

Test Plan: {F4984128}

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T12733

Differential Revision: https://secure.phabricator.com/D18051
2017-05-30 18:01:16 -07:00

65 lines
1.2 KiB
JavaScript

/**
* @provides javelin-behavior-phuix-example
* @requires javelin-install
* javelin-dom
* phuix-button-view
*/
JX.behavior('phuix-example', function(config) {
var node;
var spec;
var defaults;
switch (config.type) {
case 'button':
var button = new JX.PHUIXButtonView();
defaults = {
text: null,
icon: null,
type: null,
color: null
};
spec = JX.copy(defaults, config.spec);
if (spec.text !== null) {
button.setText(spec.text);
}
if (spec.icon !== null) {
button.setIcon(spec.icon);
}
if (spec.type !== null) {
button.setButtonType(spec.type);
}
if (spec.color !== null) {
button.setColor(spec.color);
}
node = button.getNode();
break;
case 'icon':
var icon = new JX.PHUIXIconView();
defaults = {
icon: null,
color: null
};
spec = JX.copy(defaults, config.spec);
if (spec.icon !== null) {
icon.setIcon(spec.icon);
}
if (spec.color !== null) {
icon.setColor(spec.color);
}
node = icon.getNode();
break;
}
JX.DOM.setContent(JX.$(config.id), node);
});