Commit be0c98c3 authored by Boris Kocherov's avatar Boris Kocherov

erp5_officejs: schema editor: make dynamic panel

parent dec0dcce
......@@ -41,10 +41,11 @@
</script>
<script id="panel-template-body-list" type="text/x-handlebars-template">
<li class="ui-first-child"><a href="{{document_list_href}}" class="ui-btn ui-btn-icon-left ui-icon-search" data-i18n="Schemas" accesskey="s">Schemas</a></li>
<li><a href="{{sync_href}}" class="ui-btn ui-btn-icon-left ui-icon-refresh" data-i18n="Synchronize">Synchronize</a></li>
<li class="ui-last-child"><a href="{{storage_href}}" class="ui-btn ui-btn-icon-left ui-icon-dropbox" data-i18n="Storages">Storages</a></li>
<li class="ui-last-child"><a href="{{multi_upload_href}}" class="ui-btn ui-btn-icon-left ui-icon-upload" data-i18n="Upload">Upload</a></li>
<li><a href="{{document_list_href}}" class="ui-btn ui-btn-icon-left ui-icon-search" data-i18n="Schemas" accesskey="s">Schemas</a></li>
{{list}}
<li><a href="{{sync_href}}" class="ui-btn ui-btn-icon-left ui-icon-refresh" data-i18n="Synchronize">Synchronize</a></li>
<li><a href="{{storage_href}}" class="ui-btn ui-btn-icon-left ui-icon-dropbox" data-i18n="Storages">Storages</a></li>
<li><a href="{{multi_upload_href}}" class="ui-btn ui-btn-icon-left ui-icon-upload" data-i18n="Upload">Upload</a></li>
</script>
<script id="panel-template-body-desktop" type="text/x-handlebars-template">
......
......@@ -22,6 +22,20 @@
.getElementById("panel-template-body-desktop")
.innerHTML);
function createElement(type, props, innerText) {
var element = document.createElement(type),
key;
for (key in props) {
if (props.hasOwnProperty(key)) {
element.setAttribute(key, props[key]);
}
}
if (innerText) {
element.innerText = innerText;
}
return element;
}
gadget_klass
.setState({
visible: false,
......@@ -35,6 +49,7 @@
.declareAcquiredMethod("translate", "translate")
.declareAcquiredMethod("redirect", "redirect")
.declareAcquiredMethod("getUrlParameter", "getUrlParameter")
.declareAcquiredMethod("jio_allDocs", "jio_allDocs")
/////////////////////////////////////////////////////////////////
// declared methods
......@@ -132,17 +147,58 @@
queue
// Update the global links
.push(function () {
return RSVP.all([
context.getUrlFor({command: 'display', options: {page: "ojs_schema_document_list"}}),
context.getUrlFor({command: 'display', options: {page: "ojs_configurator"}}),
context.getUrlFor({command: 'display', options: {page: "ojs_sync", 'auto_repair': true}}),
context.getUrlFor({command: 'index', options: {page: "ojs_multi_upload"}})
]);
return context.jio_allDocs({
"query": 'portal_type:"Json Schema"',
"limit": [0, 31],
"select_list": ["title", "reference"],
"sort_on": [["title", "descending"]]
});
})
.push(function (result) {
return result.data.rows;
})
.push(undefined, function () {
return [];
})
.push(function (result) {
function gen_element(row, css) {
return context.getUrlFor({command: 'display', options: {
page: "ojs_schema_document_list",
portal_type: "JSON Document",
schema: row.id,
schema_title: row.value.title
}})
.push(function (url) {
var element = createElement("li");
element.appendChild(createElement("a", {
href: url,
class: "ui-btn ui-btn-icon-left " + css
}, row.value.title));
return element.outerHTML;
});
}
var i,
tasks = [
context.getUrlFor({command: 'display', options: {page: "ojs_schema_document_list"}}),
context.getUrlFor({command: 'display', options: {page: "ojs_configurator"}}),
context.getUrlFor({command: 'display', options: {page: "ojs_sync", 'auto_repair': true}}),
context.getUrlFor({command: 'index', options: {page: "ojs_multi_upload"}})
];
for (i = 0; i < result.length; i += 1) {
tasks.push(gen_element(result[i], "ui-icon-search"));
}
return RSVP.all(tasks);
})
.push(function (result_list) {
var i,
html = "";
for (i = 4; i < result_list.length; i += 1 ) {
html += result_list[i];
}
return context.translateHtml(
panel_template_body_list({
"document_list_href": result_list[0],
"list": new Handlebars.SafeString(html),
"storage_href": result_list[1],
"sync_href": result_list[2],
"multi_upload_href": result_list[3]
......
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