Commit 630c7fb3 authored by Boris Kocherov's avatar Boris Kocherov

demo: fix demo to work with latest version gadget

parent a1c09cf7
......@@ -47,6 +47,35 @@
});
}
function updateTextContent(g) {
return g.getDeclaredGadget("form_view")
.push(function (form_view) {
return form_view.getContent();
})
.push(function (ret) {
var valid = g.state.valid,
changed = g.state.changed;
if (typeof valid === "boolean") {
if (valid) {
valid = "form filed valid";
} else {
valid = "form filed invalid";
}
} else {
valid = "valid status unknown";
}
if (changed) {
changed = 'changed\n';
} else {
changed = '';
}
document.getElementById("json_document_content").textContent =
valid + '\n' +
changed +
JSON.stringify(ret, null, 2);
});
}
rJS(window)
.ready(function (g) {
g.props = {};
......@@ -85,11 +114,19 @@
]);
});
})
.allowPublicAcquisition("notifyValid", function () {
return;
.allowPublicAcquisition("notifyValid", function (arr, scope) {
if (scope === "form_view") {
this.changeState({
valid: true
});
}
})
.allowPublicAcquisition("notifyInvalid", function () {
return;
.allowPublicAcquisition("notifyInvalid", function (arr, scope) {
if (scope === "form_view") {
this.changeState({
valid: false
});
}
})
.allowPublicAcquisition("notifyChange", function (arr, scope) {
var gadget = this;
......@@ -99,12 +136,11 @@
return g.getContent();
})
.push(function (ret) {
if (ret !== gadget.props.schemas[0]) {
if (ret !== gadget.props.schemas[0] &&
ret !== gadget.state.schema_url) {
return gadget.changeState({
schema_url: ret,
json_document: JSON.parse(
document.getElementById("json_document_content").textContent
)
json_document: gadget.state.json_document
});
}
});
......@@ -134,46 +170,48 @@
json_document: json_document
}));
return RSVP.all(tasks);
})
.push(function () {
return render_document_selection_form(gadget);
});
}
if (scope === "form_view") {
return this.getDeclaredGadget("form_view")
.push(function (g) {
return g.getContent();
return gadget.changeState({
changed: true
})
.push(function (ret) {
if (ret === undefined) {
ret = {};
}
document.getElementById("json_document_content").textContent =
JSON.stringify(ret, null, " ");
.push(function () {
return updateTextContent(gadget);
});
}
return;
})
.onStateChange(function () {
var g = this;
return g.getDeclaredGadget("form_view")
.onStateChange(function (modification) {
var g = this,
queue = RSVP.Queue();
if (modification.hasOwnProperty('json_document') ||
modification.hasOwnProperty('schema') ||
modification.hasOwnProperty('schema_url')) {
queue
.push(function () {
return g.getDeclaredGadget("form_view");
})
.push(function (form_view) {
return form_view.render({
value: g.state.json_document,
schema: g.state.schema,
schema_url: g.state.schema_url
});
})
.push(function () {
return form_view.getContent();
.push(undefined, function (error) {
console.log(error);
})
.push(function (ret) {
if (ret === undefined) {
ret = {};
}
g.state.json_document = ret;
document.getElementById("json_document_content").textContent =
JSON.stringify(ret, null, " ");
.push(function () {
return updateTextContent(g);
});
}
if (modification.hasOwnProperty('valid')) {
queue
.push(function () {
return updateTextContent(g);
});
}
return queue;
});
}(window, rJS, jIO));
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment