Commit 88dad9dc authored by Lu Xu's avatar Lu Xu 👀

erp5_officejs: validation_state, worklist, related query list display

parent 043ec112
......@@ -38,5 +38,10 @@
class='ui-flex-bottom'>
</div>
</form>
<div data-gadget-url="gadget_erp5_page_ojs_smart_assistant_worklist.html"
data-gadget-scope="worklist"
data-gadget-sandbox="public"
class='ui-flex-bottom'>
</div>
</body>
</html>
......@@ -2,7 +2,6 @@
/*jslint indent:2, maxlen: 80, nomen: true */
(function (window, rJS, jIO, RSVP, SimpleQuery, ComplexQuery, Query) {
"use strict";
rJS(window)
/////////////////////////////////////////////////////////////////
......@@ -156,7 +155,8 @@
return RSVP.all([
gadget.getDeclaredGadget('form_view_upload_audio'),
gadget.getDeclaredGadget('form_view_image_text'),
gadget.getDeclaredGadget('form_list'),//added
gadget.getDeclaredGadget('form_list'),
gadget.getDeclaredGadget('worklist'),
gadget.getSetting("portal_type")
]);
})
......@@ -168,6 +168,7 @@
['validation_state', 'Validation State']
],
worklist_gadget = result[3],
portal_type = ["Query"],
query = "urn:jio:allDocs?query=",
i,
......@@ -189,6 +190,8 @@
}));
return RSVP.all([
worklist_gadget.render(),
result[0].render({
erp5_document: {"_embedded": {"_view": {
"upload": {
......@@ -326,4 +329,4 @@
});
}(window, rJS, jIO, RSVP, SimpleQuery, ComplexQuery, Query));
}(window, rJS, jIO, RSVP, SimpleQuery, ComplexQuery, Query));
\ No newline at end of file
......@@ -233,7 +233,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>979.53414.12567.2201</string> </value>
<value> <string>979.64104.36174.56405</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -251,7 +251,7 @@
</tuple>
<state>
<tuple>
<float>1573817187.3</float>
<float>1574458325.45</float>
<string>UTC</string>
</tuple>
</state>
......
<!DOCTYPE html>
<html>
<!--
data-i18n=Worklist
data-i18n=All work caught up!
-->
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width" />
<title>ERP5 Page Worklist</title>
<!-- renderjs -->
<script src="rsvp.js" type="text/javascript"></script>
<script src="renderjs.js" type="text/javascript"></script>
<script src="handlebars.js" type="text/javascript"></script>
<script src="jiodev.js" type="text/javascript"></script>
<!-- custom script -->
<script src="gadget_global.js" type="text/javascript"></script>
<script src="gadget_erp5_page_ojs_smart_assistant_worklist.js" type="text/javascript"></script>
<!-- XXX must set theme here! -->
<script id="table-template" type="text/x-handlebars-template">
{{#if document_list }}
<ul data-role="listview" data-theme="c" class="document-listview ui-listview-inset ui-corner-all">
{{#each document_list}}
<li class="ui-li-has-count" data-icon="false" ><a class="ui-body-inherit" href="{{link}}">{{title}} <span class="ui-li-count">{{count}}</span></a></li>
{{/each}}
</ul>
{{else}}
<p>All work caught up!</p>
{{/if}}
</script>
</head>
<body>
<h1 data-i18n="[value]Smart Assistant WorkLists" class="ui-title ui-override-theme worklist-title">Smart Assistant WorkLists</h1>
<section class="document_list"></section>
</body>
</html>
\ No newline at end of file
/*global window, rJS, RSVP, Handlebars, URI */
/*jslint nomen: true, indent: 2, maxerr: 3 */
(function (window, rJS, RSVP, Handlebars) {
"use strict";
/////////////////////////////////////////////////////////////////
// Handlebars
/////////////////////////////////////////////////////////////////
// Precompile the templates while loading the first gadget instance
var gadget_klass = rJS(window),
source = gadget_klass.__template_element
.getElementById("table-template")
.innerHTML,
table_template = Handlebars.compile(source);
gadget_klass
/////////////////////////////////////////////////////////////////
// Acquired methods
/////////////////////////////////////////////////////////////////
.declareAcquiredMethod("jio_allDocs", "jio_allDocs")
.declareAcquiredMethod("getUrlFor", "getUrlFor")
/////////////////////////////////////////////////////////////////
// declared methods
/////////////////////////////////////////////////////////////////
.declareMethod("render", function () {
var gadget = this;
new RSVP.Queue().push(function () {
return RSVP.all([
gadget.getUrlFor({command: 'display', options: {page: "ojs_smart_assistant_document_list", extended_search: "draft"}}),
gadget.getUrlFor({command: 'display', options: {page: "ojs_smart_assistant_document_list", extended_search: "processing"}}),
gadget.jio_allDocs({"query": 'portal_type: ("Smart Assistant File" OR "Smart Assistant Image" OR "Smart Assistant Text" OR "Smart Assistant Sound") AND validation_state: "draft"'}),
gadget.jio_allDocs({"query": 'portal_type: ("Smart Assistant File" OR "Smart Assistant Image" OR "Smart Assistant Text" OR "Smart Assistant Sound") AND validation_state: "processing"'})
]);
})
.push(function (result) {
var line_list = [];
line_list.push({
link: result[0],
title: "Smart Assistant To Open",
count: result[2].data.total_rows
});
line_list.push({
link: result[1],
title: "Smart Assistant To Process",
count: result[3].data.total_rows
});
gadget.element.querySelector('.document_list').innerHTML = table_template({
document_list: line_list
});
});
});
}(window, rJS, RSVP, Handlebars));
\ No newline at end of file
......@@ -23,6 +23,7 @@
var gadget = this,
state = {
title: options.doc.title,
validation_state: options.doc.validation_state,
jio_key: options.jio_key
};
......@@ -96,6 +97,16 @@
return gadget.getDeclaredGadget('form_view')
.push(function (form_gadget) {
var column_list = [
['agent_title', 'Title'],
['description', 'Reply'],
['modification_date', 'Modification Date'],
['validation_state', 'Validation State']
],
jio_key = gadget.state.jio_key,
query = "urn:jio:allDocs?query=portal_type%3A%22Query%22" +
"%20AND%20" + "agent_relative_url%3A%22" +
jio_key + "%22";
return form_gadget.render({
erp5_document: {
"_embedded": {
......@@ -115,7 +126,7 @@
"editable": 1,
"required": 1,
"key": "",
"title": "Download actual content",
"title": "Download",
"default": {"direct_url": gadget.state.upload,
"target_type": "download",
"textContent": gadget.state.title},
......@@ -124,7 +135,7 @@
},
"my_upload": {
"description": "",
"title": "Change it",
"title": "Re-upload",
"default": "",
"css_class": "",
"required": 1,
......@@ -132,6 +143,34 @@
"key": "upload_",
"hidden": 0,
"type": "FileField"
},
"your_validation_state": {
"description": "",
"title": "State",
"default": gadget.state.validation_state,
"css_class": "",
"required": 1,
"editable": 0,
"key": "validation_state",
"hidden": 0,
"type": "StringField"
},
"listbox": {
"column_list": column_list,
"show_anchor": 0,
"default_params": {},
"editable": 0,
"editable_column_list": [],
"key": "field_listbox",
"lines": 5,
"list_method": "portal_catalog",
"query": query,
"portal_type": [],
"search_column_list": column_list,
"sort_column_list": column_list,
"sort": [['modification_date', 'descending']],
"title": "Related Queries",
"type": "ListBox"
}
}
},
......@@ -144,10 +183,15 @@
form_definition: {
group_list: [[
"left",
[["my_title"], ["my_actual_upload"], ["my_upload"]]
[["my_title"], ["my_actual_upload"],
["my_upload"], ["your_validation_state"]]
], [
"bottom",
[['listbox']]
]]
}
});
});
});
}(window, jIO, rJS, RSVP, URL));
\ No newline at end of file
......@@ -24,6 +24,7 @@
var gadget = this,
state = {
title: options.doc.title,
validation_state: options.doc.validation_state,
jio_key: options.jio_key
};
gadget.type = options.doc.type;
......@@ -94,7 +95,17 @@
})
.onStateChange(function () {
var gadget = this;
var gadget = this,
column_list = [
['agent_title', 'Title'],
['description', 'Reply'],
['modification_date', 'Modification Date'],
['validation_state', 'Validation State']
],
jio_key = gadget.state.jio_key,
query = "urn:jio:allDocs?query=portal_type%3A%22Query%22" +
"%20AND%20" + "agent_relative_url%3A%22" +
jio_key + "%22";
return gadget.getDeclaredGadget('form_view')
.push(function (form_gadget) {
......@@ -115,7 +126,7 @@
},
"my_image": {
"description": "",
"title": "Change it",
"title": "Re-upload",
"default": "",
"css_class": "",
"required": 1,
......@@ -126,9 +137,20 @@
"capture": "camera",
"type": "FileField"
},
"your_validation_state": {
"description": "",
"title": "State",
"default": gadget.state.validation_state,
"css_class": "",
"required": 1,
"editable": 0,
"key": "validation_state",
"hidden": 0,
"type": "StringField"
},
"my_image_preview": {
"description": "",
"title": "Actually",
"title": "Preview",
"default": gadget.state.image,
"css_class": "",
"height" : "10",
......@@ -137,6 +159,23 @@
"key": "image_preview",
"hidden": 0,
"type": "ImageField"
},
"listbox": {
"column_list": column_list,
"show_anchor": 0,
"default_params": {},
"editable": 0,
"editable_column_list": [],
"key": "field_listbox",
"lines": 5,
"list_method": "portal_catalog",
"query": query,
"portal_type": [],
"search_column_list": column_list,
"sort_column_list": column_list,
"sort": [['modification_date', 'descending']],
"title": "Related Queries",
"type": "ListBox"
}
}
},
......@@ -150,7 +189,11 @@
form_definition: {
group_list: [[
"left",
[["my_title"], ["my_image"], ["my_image_preview"]]
[["my_title"], ["my_image"],
["your_validation_state"], ["my_image_preview"]]
], [
"bottom",
[['listbox']]
]]
}
});
......
......@@ -31,6 +31,7 @@
description: options.doc.description,
modification_date: options.doc.modification_date,
relative_url: options.doc.agent_relative_url,
link: options.doc.link,
jio_key: options.jio_key
};
......@@ -106,7 +107,7 @@
},
"my_owner": {
"description": "",
"title": "Owner",
"title": "From: ",
"default": gadget.state.owner,
"css_class": "",
"required": 1,
......@@ -176,6 +177,21 @@
"hidden": 0,
"type": "TextAreaField"
},
"my_link": {
"editable": 1,
"required": 0,
"default": {"direct_url": gadget.state.link,
"target_type": "display",
"textContent": gadget.state.link},
"url": "gadget_erp5_page_ojs_link_field.html",
"type": "GadgetField",
"description": "",
"title": "Url",
"css_class": "",
"key": "link",
"hidden": 0,
"allow_jump": 1
},
"my_text_content": {
"description": "",
"title": "Answer",
......@@ -207,7 +223,7 @@
["my_owner"]
]], [
"center",
[["my_description"],
[["my_description"], ["my_link"],
["my_text_content"]]
]]
}
......
......@@ -23,6 +23,7 @@
var gadget = this,
state = {
title: options.doc.title,
validation_state: options.doc.validation_state,
jio_key: options.jio_key
};
......@@ -92,7 +93,17 @@
})
.onStateChange(function () {
var gadget = this;
var gadget = this,
column_list = [
['agent_title', 'Title'],
['description', 'Reply'],
['modification_date', 'Modification Date'],
['validation_state', 'Validation State']
],
jio_key = gadget.state.jio_key,
query = "urn:jio:allDocs?query=portal_type%3A%22Query%22" +
"%20AND%20" + "agent_relative_url%3A%22" +
jio_key + "%22";
return gadget.getDeclaredGadget('form_view')
.push(function (form_gadget) {
......@@ -118,7 +129,7 @@
"editable": 0,
"key": "player_content",
"hidden": 0,
"title": "Listen actual content",
"title": "Play",
"type": "GadgetField",
"renderjs_extra": '{"name": "data"}',
"url": "gadget_custom_player.html",
......@@ -136,6 +147,34 @@
"accept": "audio/*",
"capture": "microphone",
"type": "FileField"
},
"your_validation_state": {
"description": "",
"title": "State",
"default": gadget.state.validation_state,
"css_class": "",
"required": 1,
"editable": 0,
"key": "validation_state",
"hidden": 0,
"type": "StringField"
},
"listbox": {
"column_list": column_list,
"show_anchor": 0,
"default_params": {},
"editable": 0,
"editable_column_list": [],
"key": "field_listbox",
"lines": 5,
"list_method": "portal_catalog",
"query": query,
"portal_type": [],
"search_column_list": column_list,
"sort_column_list": column_list,
"sort": [['modification_date', 'descending']],
"title": "Related Queries",
"type": "ListBox"
}
}
},
......@@ -149,7 +188,11 @@
form_definition: {
group_list: [[
"left",
[["my_title"], ["my_actual_audio"], ["my_audio"]]
[["my_title"], ["my_actual_audio"],
["my_audio"], ["your_validation_state"]]
], [
"bottom",
[['listbox']]
]]
}
});
......
......@@ -23,6 +23,9 @@
var gadget = this,
state = {
title: options.doc.title,
agent_title: options.doc.agent_title,
description: options.doc.description,
validation_state: options.doc.validation_state,
jio_key: options.jio_key
};
......@@ -85,7 +88,17 @@
})
.onStateChange(function () {
var gadget = this;
var gadget = this,
column_list = [
['agent_title', 'Title'],
['description', 'Reply'],
['modification_date', 'Modification Date'],
['validation_state', 'Validation State']
],
jio_key = gadget.state.jio_key,
query = "urn:jio:allDocs?query=portal_type%3A%22Query%22" +
"%20AND%20" + "agent_relative_url%3A%22" +
jio_key + "%22";
return gadget.getDeclaredGadget('form_view')
.push(function (form_gadget) {
......@@ -115,6 +128,34 @@
"type": "GadgetField",
"url": "gadget_editor.html",
"sandbox": "public"
},
"your_validation_state": {
"description": "",
"title": "State",
"default": gadget.state.validation_state,
"css_class": "",
"required": 1,
"editable": 0,
"key": "validation_state",
"hidden": 0,
"type": "StringField"
},
"listbox": {
"column_list": column_list,
"show_anchor": 0,
"default_params": {},
"editable": 0,
"editable_column_list": [],
"key": "field_listbox",
"lines": 5,
"list_method": "portal_catalog",
"query": query,
"portal_type": [],
"search_column_list": column_list,
"sort_column_list": column_list,
"sort": [['modification_date', 'descending']],
"title": "Related Queries",
"type": "ListBox"
}
}
},
......@@ -128,10 +169,11 @@
form_definition: {
group_list: [[
"left",
[["my_title"]]
[["my_title"],
["your_validation_state"]]
], [
"bottom",
[["my_text"]]
[["listbox"], ["my_text"]]
]]
}
});
......
......@@ -128,6 +128,8 @@ gadget_erp5_page_ojs_link_field.js\n
gadget_erp5_page_ojs_link_field.html\n
gadget_erp5_page_ojs_smart_assistant_audio.js\n
gadget_erp5_page_ojs_smart_assistant_audio.html\n
gadget_erp5_page_ojs_smart_assistant_worklist.js\n
gadget_erp5_page_ojs_smart_assistant_worklist.html\n
gadget_erp5_field_image.html\n
gadget_erp5_field_image.js\n
gadget_erp5_field_file.html\n
......@@ -180,8 +182,6 @@ gadget_translation.js\n
gadget_translation_data.js\n
gadget_erp5_editor_panel.html\n
gadget_erp5_editor_panel.js\n
gadget_erp5_ojs_panel.html\n
gadget_erp5_ojs_panel.js\n
gadget_erp5_header.html\n
gadget_erp5_header.js\n
gadget_ojs_jio.html\n
......@@ -739,7 +739,7 @@ NETWORK:\n
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>980.3863.51423.55859</string> </value>
<value> <string>980.18342.59095.35771</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -757,7 +757,7 @@ NETWORK:\n
</tuple>
<state>
<tuple>
<float>1574777676.56</float>
<float>1575882641.08</float>
<string>UTC</string>
</tuple>
</state>
......
......@@ -79,6 +79,7 @@
var column_list = [
['title', 'Title'],
['modification_date', 'Modification Date'],
['validation_state', 'State'],
['portal_type', 'Smart Assistant Type']
],
......
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