summaryrefslogtreecommitdiffstats
path: root/web
diff options
context:
space:
mode:
authorKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2013-11-25 20:30:19 +0200
committerKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2013-11-25 23:28:52 +0200
commit4ff7513fec2df0f079b844c7c558e9ad6c448b16 (patch)
tree2226660ea02f0502fd264f243ecd883f1dc4d415 /web
parent878c1bc580d89d70d330eb896d7affc88f776ce0 (diff)
downloadaconf-4ff7513fec2df0f079b844c7c558e9ad6c448b16.tar.bz2
aconf-4ff7513fec2df0f079b844c7c558e9ad6c448b16.tar.xz
resolve reference choices on server side
Diffstat (limited to 'web')
-rw-r--r--web/client.js54
1 files changed, 13 insertions, 41 deletions
diff --git a/web/client.js b/web/client.js
index cf7910f..ce5a031 100644
--- a/web/client.js
+++ b/web/client.js
@@ -487,14 +487,14 @@ $(function() {
Field.init = function(
data, name, meta, level, editable, removable
) {
- var el = _.bind(Widget.init, this)(
- data, name, meta, level, editable, removable
- );
-
this.data = data;
this.name = name;
this.editable = editable && meta.editable;
+ var el = _.bind(Widget.init, this)(
+ data, name, meta, level, editable, removable
+ );
+
this.onChange(this.validate);
if (data.status(name) == "invalid") this.validate();
@@ -653,7 +653,7 @@ $(function() {
Inline.requestData = function(value, meta) {
var def = $.Deferred();
txnMgr.query(value).done(function(data) {
- def.resolve(data, meta);
+ def.resolve(data, data.meta);
});
return def;
};
@@ -926,19 +926,6 @@ $(function() {
var CheckBoxes = Object.create(HeaderInline);
- CheckBoxes.requestData = function(value, meta) {
- var def = $.Deferred();
- Inline.requestData(value, meta).done(function(data, meta) {
- txnMgr.query(data.meta.members.scope).done(function(sdata) {
- meta.primitive = sdata.meta.type == "set";
- meta.choice = meta.primitive ?
- _.values(sdata.data) : _.keys(sdata.data);
- def.resolve(data, meta);
- });
- });
- return def;
- };
-
CheckBoxes.render = function(data, meta) {
_.bind(HeaderInline.render, this)(data, meta);
@@ -947,36 +934,32 @@ $(function() {
var self = this;
- _.each(meta.choice, function(choice) {
- var ec = meta.primitive ? escape(choice) : choice;
-
+ _.each(meta.members.choice, function(choice) {
var cbox = $("<input>").attr({
type: "checkbox",
- checked: _.contains(data.data, ec)
+ checked: _.contains(data.data, choice.value)
});
var row = $("<tr>");
row.append($("<td>").html(cbox));
var item = $("<td>");
- if (meta.primitive) item.text(choice);
- else item.html(
- Link.staticRender(
- join(data.meta.members.scope, choice)
- ).text(choice)
+ if (choice.path) item.html(
+ Link.staticRender(choice.value).text(choice["ui-value"])
);
+ else item.text(choice["ui-value"]);
row.append(item);
function setStatus() {
- self.setElStatus(row, data.status(ec));
+ self.setElStatus(row, data.status(choice.value));
}
setStatus();
cbox.change(function() {
(
cbox.is(":checked") ?
- data.add(ec) :
- data.delete(ec)
+ data.add(choice.value) :
+ data.delete(choice.value)
).done(function(txnValid) {
setStatus();
statusBar.validationReady(txnValid);
@@ -1009,17 +992,6 @@ $(function() {
Reference.createEl = function() { return $("<div>"); };
- Reference.requestData = function(value, meta) {
- var def = $.Deferred();
- txnMgr.query(meta.scope).done(function(data) {
- meta.choice = _.map(_.values(data.data), function(path) {
- return {value: path, "ui-value": split(path).pop()};
- });
- def.resolve(value, meta);
- });
- return def;
- };
-
Reference.render = function(value, meta) {
_.bind(ComboBox.render, this)(value, meta);