Commit 6b072483 authored by Boris Kocherov's avatar Boris Kocherov

[erp5_json_form] update from https://lab.nexedi.com/bk/rjs_json_form

parent fd261ee0
......@@ -305,7 +305,8 @@
property_name,
parent_path,
scope;
return RSVP.Queue()
.push(function () {
scope = generateUid(g);
parent_path = options.parent_path;
if (options.parent_type !== "array") {
......@@ -314,21 +315,18 @@
property_name = input_element.value;
}
if (!property_name) {
// XXX notify user
// you can't create property without property_name
return RSVP.Queue();
throw new Error("can't create property without name");
}
if (g.props.objects[parent_path].hasOwnProperty(property_name) && g.props.objects[parent_path][property_name] !== "") {
// XXX notify user
// you can't create property with existed property_name
return RSVP.Queue();
throw new Error("you can't create property with existed name");
}
if (input_element) {
input_element.value = "";
}
}
return g.declareGadget('gadget_json_generated_form_child.html', {scope: scope})
return g.declareGadget('gadget_json_generated_form_child.html', {scope: scope});
})
.push(function (form_gadget) {
form_gadget.element.setAttribute("data-gadget-parent-scope",
g.element.getAttribute("data-gadget-scope"));
......@@ -663,6 +661,9 @@
return event(schema_alternatives[value[scope]].value);
})
.push(function (v) {
if (v) {
return RSVP.Queue()
.push(function () {
notify.scope = v.scope;
notify.path = v.path;
if (rerender) {
......@@ -676,6 +677,8 @@
.push(function () {
return gadget.rootNotifyChange(notify);
});
}
});
},
rerender: function () {
return RSVP.Queue()
......@@ -722,6 +725,9 @@
};
return event(schema_alternatives[0].value)
.push(function (v) {
if (v) {
return RSVP.Queue()
.push(function () {
notify.scope = v.scope;
notify.path = v.path;
if (rerender) {
......@@ -737,6 +743,8 @@
}
return gadget.rootNotifyChange(notify);
});
}
});
},
rerender: function () {
return RSVP.Queue()
......@@ -1269,7 +1277,11 @@
type: value.type,
schema_arr: [value]
})
.push(element_append);
.push(element_append)
.push(undefined, function (err) {
// XXX notify user
console.error(err);
});
});
});
return queue;
......
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