projects
/
mkws-moved-to-github.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
bcdf54e
)
Give subwidget method support for an optional hash of default values.
author
Mike Taylor
<mike@indexdata.com>
Mon, 19 May 2014 15:53:24 +0000
(16:53 +0100)
committer
Mike Taylor
<mike@indexdata.com>
Mon, 19 May 2014 15:53:24 +0000
(16:53 +0100)
src/mkws-widget.js
patch
|
blob
|
history
diff --git
a/src/mkws-widget.js
b/src/mkws-widget.js
index
1fbd813
..
c92789a
100644
(file)
--- a/
src/mkws-widget.js
+++ b/
src/mkws-widget.js
@@
-28,8
+28,10
@@
function widget($, team, type, node) {
// Returns the HTML of a subwidget of the specified type. It gets
// the same attributes at the parent widget that invokes this
// Returns the HTML of a subwidget of the specified type. It gets
// the same attributes at the parent widget that invokes this
- // function, except where overrides are passed in.
- that.subwidget = function(type, overrides) {
+ // function, except where overrides are passed in. If defaults are
+ // also provided, then these are used when the parent widget
+ // provides no values.
+ that.subwidget = function(type, overrides, defaults) {
var attrs = {};
// Copy locally-set properties from the parent widget
var attrs = {};
// Copy locally-set properties from the parent widget
@@
-45,6
+47,15
@@
function widget($, team, type, node) {
log(this + " overrode property " + name + "='" + attrs[name] + "' for " + type + " subwidget");
}
log(this + " overrode property " + name + "='" + attrs[name] + "' for " + type + " subwidget");
}
+ if (defaults) {
+ for (var name in defaults) {
+ if (!attrs[name]) {
+ attrs[name] = defaults[name];
+ log(this + " fell back to default property " + name + "='" + attrs[name] + "' for " + type + " subwidget");
+ }
+ }
+ }
+
var s = [];
s.push('<div class="mkws', type, ' mkwsTeam_', team.name(), '"');
for (var name in attrs) {
var s = [];
s.push('<div class="mkws', type, ' mkwsTeam_', team.name(), '"');
for (var name in attrs) {