Commit 6455fd01 authored by Romain Courteaud's avatar Romain Courteaud Committed by Sebastien Robin

New navigation pattern for ERP5 JS.

Display document as read only by default.
Ease navigation on small screen.

Thx to Sven Franck for the UI and Thierry Brettnacher for the UX.
parent 14768f82
......@@ -99,10 +99,19 @@
</item>
<item>
<key> <string>text_content</string> </key>
<value> <string>CACHE MANIFEST\n
# generated on Thu, 18 Sep 2014 12:48:25 +0000\n
<value> <string encoding="cdata"><![CDATA[
CACHE MANIFEST\n
# generated on Mon, 29 Sep 2014 14:23:16 +0000\n
# XXX + fonts\n
# images/ajax-loader.gif\n
CACHE:\n
images/ajax-loader.gif\n
https://netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.min.css\n
https://netdna.bootstrapcdn.com/font-awesome/4.0.3/fonts/fontawesome-webfont.eot?v=4.0.3\n
https://netdna.bootstrapcdn.com/font-awesome/4.0.3/fonts/fontawesome-webfont.eot?#iefix&v=4.0.3\n
https://netdna.bootstrapcdn.com/font-awesome/4.0.3/fonts/fontawesome-webfont.woff?v=4.0.3\n
https://netdna.bootstrapcdn.com/font-awesome/4.0.3/fonts/fontawesome-webfont.ttf?v=4.0.3\n
https://netdna.bootstrapcdn.com/font-awesome/4.0.3/fonts/fontawesome-webfont.svg?v=4.0.3#fontawesomeregular\n
RSVP.js\n
URI.js\n
codemirror.css\n
......@@ -117,6 +126,7 @@ codemirror_keymap_vim.js\n
codemirror_mode_clike.js\n
codemirror_mode_javascript.js\n
codemirror_theme_solarized.css\n
dygraph.js\n
gadget_bin.css\n
gadget_bin.html\n
gadget_bin.js\n
......@@ -126,36 +136,45 @@ gadget_codemirror.js\n
gadget_erp5.css\n
gadget_erp5.html\n
gadget_erp5.js\n
gadget_erp5_breadcrumb.html\n
gadget_erp5_breadcrumb.js\n
gadget_erp5_floatfield.html\n
gadget_erp5_floatfield.js\n
gadget_erp5_field_float.html\n
gadget_erp5_field_float.js\n
gadget_erp5_field_list.html\n
gadget_erp5_field_list.js\n
gadget_erp5_field_listbox.html\n
gadget_erp5_field_listbox.js\n
gadget_erp5_field_readonly.html\n
gadget_erp5_field_readonly.js\n
gadget_erp5_field_string.html\n
gadget_erp5_field_string.js\n
gadget_erp5_field_textarea.html\n
gadget_erp5_field_textarea.js\n
gadget_erp5_form.html\n
gadget_erp5_form.js\n
gadget_erp5_listbox.html\n
gadget_erp5_listbox.js\n
gadget_erp5_listfield.html\n
gadget_erp5_listfield.js\n
gadget_erp5_header.html\n
gadget_erp5_header.js\n
gadget_erp5_latest.css\n
gadget_erp5_page_action.html\n
gadget_erp5_page_action.js\n
gadget_erp5_page_breadcrumb.html\n
gadget_erp5_page_breadcrumb.js\n
gadget_erp5_page_form.html\n
gadget_erp5_page_form.js\n
gadget_erp5_page_front.html\n
gadget_erp5_page_front.js\n
gadget_erp5_page_login.html\n
gadget_erp5_page_login.js\n
gadget_erp5_page_tab.html\n
gadget_erp5_page_tab.js\n
gadget_erp5_pt_form_dialog.html\n
gadget_erp5_pt_form_dialog.js\n
gadget_erp5_pt_form_list.html\n
gadget_erp5_pt_form_list.js\n
gadget_erp5_pt_form_view.html\n
gadget_erp5_pt_form_view.js\n
gadget_erp5_pt_frontpage.html\n
gadget_erp5_pt_frontpage.js\n
gadget_erp5_pt_loginform.html\n
gadget_erp5_pt_loginform.js\n
gadget_erp5_readonlyfield.html\n
gadget_erp5_readonlyfield.js\n
gadget_erp5_pt_form_view_editable.html\n
gadget_erp5_pt_form_view_editable.js\n
gadget_erp5_searchfield.html\n
gadget_erp5_searchfield.js\n
gadget_erp5_stringfield.html\n
gadget_erp5_stringfield.js\n
gadget_erp5_tab_list.html\n
gadget_erp5_tab_list.js\n
gadget_erp5_textareafield.html\n
gadget_erp5_textareafield.js\n
gadget_global.js\n
gadget_jio.html\n
gadget_jio.js\n
......@@ -172,7 +191,9 @@ jquerymobile.js\n
renderjs.js\n
uritemplate.js\n
NETWORK:\n
*</string> </value>
*
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
......@@ -301,7 +322,7 @@ NETWORK:\n
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>937.42655.40265.30037</string> </value>
<value> <string>937.58588.9950.37290</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -319,7 +340,7 @@ NETWORK:\n
</tuple>
<state>
<tuple>
<float>1411044505.47</float>
<float>1412000596.45</float>
<string>GMT</string>
</tuple>
</state>
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -75,7 +75,7 @@
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_erp5_floatfield.html</string> </value>
<value> <string>gadget_erp5_field_float.html</string> </value>
</item>
<item>
<key> <string>description</string> </key>
......@@ -116,7 +116,7 @@
<script src="RSVP.js" type="text/javascript"></script>\n
<script src="renderjs.js" type="text/javascript"></script>\n
<!-- custom script -->\n
<script src="gadget_erp5_floatfield.js" type="text/javascript"></script>\n
<script src="gadget_erp5_field_float.js" type="text/javascript"></script>\n
\n
</head>\n
<body>\n
......@@ -259,7 +259,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>936.53479.26332.17100</string> </value>
<value> <string>937.51521.250.37802</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -277,7 +277,7 @@
</tuple>
<state>
<tuple>
<float>1407762037.69</float>
<float>1411576768.35</float>
<string>GMT</string>
</tuple>
</state>
......
......@@ -71,7 +71,7 @@
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_erp5_floatfield.js</string> </value>
<value> <string>gadget_erp5_field_float.js</string> </value>
</item>
<item>
<key> <string>description</string> </key>
......@@ -122,6 +122,7 @@
input.setAttribute(\'title\', field_json.title);\n
if (field_json.editable !== 1) {\n
input.setAttribute(\'readonly\', \'readonly\');\n
input.setAttribute(\'data-wrapper-class\', \'ui-state-disabled ui-state-readonly\');\n
input.setAttribute(\'disabled\', \'disabled\');\n
\n
}\n
......@@ -255,7 +256,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>romain</string> </value>
<value> <string>sven</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -269,7 +270,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>937.42715.45132.18756</string> </value>
<value> <string>937.48460.49347.43246</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -287,7 +288,7 @@
</tuple>
<state>
<tuple>
<float>1411053203.71</float>
<float>1411576355.41</float>
<string>GMT</string>
</tuple>
</state>
......
......@@ -161,7 +161,8 @@
queue\n
.push(function () {\n
var j,\n
fieldset_element = document.createElement("fieldset"),\n
// XXX: > Romain: fieldset will be needed later for menus\n
fieldset_element = document.createElement("div"),\n
group_queue = new RSVP.Queue();\n
\n
function addField(field) {\n
......@@ -169,15 +170,17 @@
if (rendered_form.hasOwnProperty(field[0])) {\n
// Field is enabled in this context\n
var field_queue = new RSVP.Queue(),\n
field_url = \'gadget_erp5_readonlyfield.html\',\n
sandbox = "public",\n
field_url = \'gadget_erp5_field_readonly.html\',\n
field_element = document.createElement("div"),\n
gadget_element = document.createElement("div"),\n
label_element = document.createElement("label"),\n
renderered_field = rendered_form[field[0]];\n
\n
field_element.className = "ui-field-contain";\n
if (renderered_field.hidden === 1) {\n
// Hide field\n
field_element.setAttribute("class", "ui-screen-hidden");\n
field_element.className = field_element.className + " ui-screen-hidden";\n
}\n
// field_element.setAttribute(\'data-role\', \'fieldcontain\');\n
label_element.setAttribute(\'for\', renderered_field.key);\n
......@@ -187,27 +190,30 @@
}\n
field_element.appendChild(gadget_element);\n
fieldset_element.appendChild(field_element);\n
if ((renderered_field.type === \'ListField\') ||\n
(renderered_field.type === \'ParallelListField\') ||\n
(renderered_field.type === \'MultiListField\')) {\n
field_url = \'gadget_erp5_listfield.html\';\n
if (renderered_field.type === \'ListField\') {\n
// (renderered_field.type === \'ParallelListField\') ||\n
// (renderered_field.type === \'MultiListField\')) {\n
field_url = \'gadget_erp5_field_list.html\';\n
} else if (renderered_field.type === \'StringField\') {\n
field_url = \'gadget_erp5_stringfield.html\';\n
field_url = \'gadget_erp5_field_string.html\';\n
} else if (renderered_field.type === \'TextAreaField\') {\n
field_url = \'gadget_erp5_textareafield.html\';\n
field_url = \'gadget_erp5_field_textarea.html\';\n
} else if (renderered_field.type === \'FloatField\') {\n
field_url = \'gadget_erp5_floatfield.html\';\n
field_url = \'gadget_erp5_field_float.html\';\n
} else if (renderered_field.type === \'ListBox\') {\n
field_url = \'gadget_erp5_listbox.html\';\n
field_url = \'gadget_erp5_field_listbox.html\';\n
} else if (renderered_field.type === \'EditorField\') {\n
field_url = \'gadget_codemirror.html\';\n
field_url = \'gadget_erp5_field_textarea.html\';\n
// field_url = \'gadget_codemirror.html\';\n
// sandbox = \'iframe\';\n
}\n
\n
return field_queue\n
.push(function () {\n
return form_gadget.declareGadget(field_url, {\n
scope: renderered_field.key,\n
element: gadget_element\n
element: gadget_element,\n
sandbox: sandbox\n
});\n
})\n
.push(function (field_gadget) {\n
......@@ -418,7 +424,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>937.42816.54745.57241</string> </value>
<value> <string>937.58318.16438.37768</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -436,7 +442,7 @@
</tuple>
<state>
<tuple>
<float>1411054146.03</float>
<float>1411999896.88</float>
<string>GMT</string>
</tuple>
</state>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Web Page" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Anonymous</string>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Anonymous</string>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_erp5_header.html</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>rjs_gadget_erp5_header_html</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>en</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Page</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>text_content</string> </key>
<value> <string encoding="cdata"><![CDATA[
<!DOCTYPE html>\n
<html>\n
<head>\n
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />\n
<meta name="viewport" content="width=device-width, user-scalable=no" />\n
<title>ERP5 Header</title>\n
\n
<!-- renderjs -->\n
<script src="RSVP.js" type="text/javascript"></script>\n
<script src="renderjs.js" type="text/javascript"></script>\n
<script src="handlebars.js" type="text/javascript"></script>\n
\n
<!-- custom script -->\n
<script src="gadget_erp5_header.js" type="text/javascript"></script>\n
\n
<script id="header-title-link-template" type="text/x-handlebars-template"><a href="{{url}}">{{title}}</a></script>\n
<script id="header-title-template" type="text/x-handlebars-template">{{title}}</script>\n
\n
<script id="header-link-template" type="text/x-handlebars-template">\n
<a role="button" href="{{url}}" class="responsive ui-btn ui-icon-{{icon}} ui-btn-icon-left ui-first-child ui-last-child {{class}}">{{title}}</a>\n
</script>\n
\n
<script id="sub-header-template" type="text/x-handlebars-template">\n
{{#each sub_header_list}}\n
<li class="ui-block-{{block}}"><a href="{{url}}" class="ui-btn ui-btn-icon-top ui-icon-{{icon}} {{class}}">{{title}}</a></li>\n
{{/each}}\n
</script>\n
\n
</head>\n
<body>\n
\n
<!-- data-position="fixed" -->\n
<div data-role="header"data-theme="a" class="custom-headroom-header ui-header ui-bar-a">\n
\n
<div class="ui-controlgroup ui-controlgroup-horizontal ui-btn-left">\n
<div class="ui-controlgroup-controls">\n
</div>\n
</div>\n
\n
<h1 class="ui-title">ERP5</h1>\n
\n
<div class="ui-controlgroup ui-controlgroup-horizontal ui-btn-right">\n
<div class="ui-controlgroup-controls">\n
</div>\n
</div>\n
\n
<div class="ui-navbar ui-subheader ui-grid-container ui-body-a" role="navigation">\n
\t\t\t<ul class="ui-grid-d">\n
\t\t\t</ul>\n
\t\t</div>\n
</div>\n
\n
<!-- First navigation line -->\n
<!--header data-role="header">\n
<div><a href="#leftpanel" class="responsive ui-btn ui-icon-bars ui-btn-icon-left">Menu</a></div>\n
<div data-gadget-url="gadget_erp5_breadcrumb.html"\n
data-gadget-scope="breadcrumb"\n
data-gadget-sandbox="public"></div>\n
<div><a class="responsive ui-btn ui-icon-plus ui-btn-icon-left ui-disabled" role="button" data-role="button">New</a></div>\n
</header>\n
<div>\n
</div-->\n
\n
</body>\n
</html>
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Gadget ERP5 Header</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>001</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>edit_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>processing_status_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>publish_alive</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>romain</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1411375779.88</float>
<string>GMT</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>published_alive</string> </value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>romain</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>937.54262.65313.31897</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1411993212.79</float>
<string>GMT</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>romain</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_processing_state</string> </key>
<value> <string>converted</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1411375660.35</float>
<string>GMT</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Web Script" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Anonymous</string>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Anonymous</string>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_erp5_header.js</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>rjs_gadget_erp5_header_js</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>en</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Script</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>text_content</string> </key>
<value> <string encoding="cdata"><![CDATA[
/*jslint nomen: true, indent: 2, maxerr: 3 */\n
/*global window, rJS, Handlebars, document */\n
(function (window, rJS, Handlebars, document) {\n
"use strict";\n
\n
/////////////////////////////////////////////////////////////////\n
// Handlebars\n
/////////////////////////////////////////////////////////////////\n
// Precompile the templates while loading the first gadget instance\n
var gadget_klass = rJS(window),\n
\n
header_title_source = gadget_klass.__template_element\n
.getElementById("header-title-template")\n
.innerHTML,\n
header_title_template = Handlebars.compile(header_title_source),\n
\n
header_title_link_source = gadget_klass.__template_element\n
.getElementById("header-title-link-template")\n
.innerHTML,\n
header_title_link_template = Handlebars.compile(header_title_link_source),\n
\n
\n
sub_header_source = gadget_klass.__template_element\n
.getElementById("sub-header-template")\n
.innerHTML,\n
sub_header_template = Handlebars.compile(sub_header_source),\n
header_link_source = gadget_klass.__template_element\n
.getElementById("header-link-template")\n
.innerHTML,\n
header_link_template = Handlebars.compile(header_link_source);\n
\n
gadget_klass\n
/////////////////////////////////////////////////////////////////\n
// ready\n
/////////////////////////////////////////////////////////////////\n
// Init local properties\n
.ready(function (g) {\n
g.props = {};\n
})\n
\n
// Assign the element to a variable\n
.ready(function (g) {\n
return g.getElement()\n
.push(function (element) {\n
g.props.element = element;\n
g.props.sub_header_element = element.querySelector(".ui-subheader");\n
g.props.sub_header_ul = g.props.sub_header_element.querySelector("ul");\n
g.props.left_link = element.querySelector(".ui-btn-left > div");\n
g.props.right_link = element.querySelector(".ui-btn-right > div");\n
g.props.title_element = element.querySelector("h1");\n
});\n
})\n
\n
.declareAcquiredMethod("whoWantToDisplayThis", "whoWantToDisplayThis")\n
.declareAcquiredMethod("jio_get", "jio_get")\n
/////////////////////////////////////////////////////////////////\n
// declared methods\n
/////////////////////////////////////////////////////////////////\n
.declareMethod(\'render\', function (options) {\n
var gadget = this,\n
possible_left_link_list = [\n
// [\'menu_url\', \'Menu\', \'bars\'],\n
[\'selection_url\', \'Select\', \'rotate-left\'],\n
[\'view_url\', \'View\', \'check\'],\n
[\'cancel_url\', \'Cancel\', \'times\'],\n
[\'back_url\', \'Back\', \'arrow-left\']\n
],\n
possible_right_link_list = [\n
[\'edit_url\', \'Edit\', \'edit\']\n
],\n
possible_sub_header_list = [\n
[\'tab_url\', \'Tabs\', \'eye\'],\n
[\'jump_url\', \'Jump\', \'plane\'],\n
[\'cut_url\', \'Cut\', \'scissors\'],\n
[\'export_url\', \'Export\', \'share-square-o\'],\n
[\'actions_url\', \'Actions\', \'cogs\'],\n
[\'delete_url\', \'Delete\', \'times\'],\n
[\'add_url\', \'Add\', \'plus\'],\n
[\'previous_url\', \'Previous\', \'carat-l\'],\n
[\'next_url\', \'Next\', \'carat-r\']\n
],\n
i,\n
klass,\n
count = 0,\n
left_link,\n
right_link,\n
title_link = {title: "ERP5"},\n
sub_header_list = [],\n
alphabet = "abcdefghijklmnopqrstuvwxyz";\n
\n
// Handle main title\n
if (options.hasOwnProperty("page_title")) {\n
title_link.title = options.page_title;\n
}\n
// Updating globally the page title. Does not follow RenderJS philosophy, but, it is enough for now\n
document.title = title_link.title;\n
if (options.hasOwnProperty("breadcrumb_url")) {\n
title_link.url = options.breadcrumb_url;\n
gadget.props.title_element.innerHTML = header_title_link_template(title_link);\n
} else {\n
gadget.props.title_element.innerHTML = header_title_template(title_link);\n
}\n
\n
// Handle left link\n
for (i = 0; i < possible_left_link_list.length; i += 1) {\n
if (options.hasOwnProperty(possible_left_link_list[i][0])) {\n
klass = "";\n
if (!options[possible_left_link_list[i][0]]) {\n
klass = "ui-disabled";\n
}\n
left_link = {\n
title: possible_left_link_list[i][1],\n
icon: possible_left_link_list[i][2],\n
url: options[possible_left_link_list[i][0]],\n
class: klass\n
};\n
count += 1;\n
}\n
}\n
if (left_link === undefined) {\n
gadget.props.left_link.innerHTML = "";\n
} else {\n
gadget.props.left_link.innerHTML = header_link_template(left_link);\n
}\n
\n
// Handle right link\n
for (i = 0; i < possible_right_link_list.length; i += 1) {\n
if (options.hasOwnProperty(possible_right_link_list[i][0])) {\n
klass = "";\n
if (!options[possible_right_link_list[i][0]]) {\n
klass = "ui-disabled";\n
}\n
right_link = {\n
title: possible_right_link_list[i][1],\n
icon: possible_right_link_list[i][2],\n
url: options[possible_right_link_list[i][0]],\n
class: klass\n
};\n
count += 1;\n
}\n
}\n
if (right_link === undefined) {\n
gadget.props.right_link.innerHTML = "";\n
} else {\n
gadget.props.right_link.innerHTML = header_link_template(right_link);\n
}\n
\n
// Handle sub header\n
for (i = 0; i < possible_sub_header_list.length; i += 1) {\n
if (options.hasOwnProperty(possible_sub_header_list[i][0])) {\n
klass = "";\n
if (!options[possible_sub_header_list[i][0]]) {\n
klass = "ui-disabled";\n
}\n
sub_header_list.push({\n
title: possible_sub_header_list[i][1],\n
icon: possible_sub_header_list[i][2],\n
url: options[possible_sub_header_list[i][0]],\n
class: klass,\n
block: alphabet.charAt(count)\n
});\n
count += 1;\n
}\n
}\n
\n
if (sub_header_list.length !== 0) {\n
sub_header_list[0].class += " ui-first-child";\n
sub_header_list[sub_header_list.length - 1].class += " ui-last-child";\n
}\n
// gadget.props.sub_header_ul.textContent = JSON.stringify(options);\n
gadget.props.sub_header_ul.innerHTML = sub_header_template({\n
sub_header_list: sub_header_list\n
});\n
\n
});\n
\n
}(window, rJS, Handlebars, document));
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Gadget ERP5 Header JS</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>001</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>edit_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>processing_status_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>publish_alive</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>romain</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1411375841.62</float>
<string>GMT</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>published_alive</string> </value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>romain</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>937.58590.25550.25514</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1412000590.73</float>
<string>GMT</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>romain</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_processing_state</string> </key>
<value> <string>converted</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1411375820.35</float>
<string>GMT</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
......@@ -108,9 +108,10 @@
<head>\n
<meta charset="utf-8">\n
<meta name="viewport" content="width=device-width, initial-scale=1">\n
<title>RenderJS Bin</title>\n
<title>ERP5</title>\n
<link rel="shortcut icon" href="favicon.ico">\n
\n
<link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.min.css" rel="stylesheet" type="text/css" />\n
<link rel="stylesheet" href="jquerymobile.css">\n
<link rel="stylesheet" href="gadget_erp5.css">\n
<script src="RSVP.js" type="text/javascript"></script>\n
......@@ -135,15 +136,11 @@
\n
<div data-role="panel" id="leftpanel" data-display="overlay"></div>\n
\n
<header data-role="header">\n
<a href="#leftpanel" class="responsive ui-btn ui-icon-bars ui-btn-icon-left">Menu</a>\n
<div data-gadget-url="gadget_erp5_breadcrumb.html"\n
data-gadget-scope="breadcrumb"\n
<div data-gadget-url="gadget_erp5_header.html"\n
data-gadget-scope="header"\n
data-gadget-sandbox="public"></div>\n
<a class="responsive ui-btn ui-icon-plus ui-btn-icon-left ui-disabled" role="button" data-role="button">New</a>\n
</header>\n
\n
<article></article>\n
<article class="ui-content"></article>\n
\n
<section data-gadget-url="gadget_jio.html"\n
data-gadget-scope="jio_gadget"\n
......@@ -286,7 +283,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>937.43906.3473.2406</string> </value>
<value> <string>937.58476.63930.3566</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -304,7 +301,7 @@
</tuple>
<state>
<tuple>
<float>1411130950.24</float>
<float>1412000194.01</float>
<string>GMT</string>
</tuple>
</state>
......
......@@ -101,9 +101,9 @@
<key> <string>text_content</string> </key>
<value> <string encoding="cdata"><![CDATA[
/*global window, document, rJS, RSVP, jQuery, URI, console, jQuery */\n
/*global window, rJS, RSVP, jQuery, console, jQuery, XMLHttpRequest */\n
/*jslint nomen: true, indent: 2, maxerr: 3 */\n
(function (window, document, rJS, RSVP, $, URI, console) {\n
(function (window, rJS, RSVP, $, XMLHttpRequest, console) {\n
"use strict";\n
\n
/////////////////////////////////////////////////////////////////\n
......@@ -127,122 +127,28 @@
});\n
}\n
\n
function renderFrontpage(gadget) {\n
return gadget.props.breadcrumb_gadget.render({title: "ERP5"})\n
.push(function () {\n
return gadget.declareGadget(gadget.props.frontpage_gadget, {\n
scope: "frontpage_gadget"\n
});\n
})\n
.push(function (sub_gadget) {\n
return RSVP.all([\n
sub_gadget.render(),\n
sub_gadget.getElement()\n
]);\n
});\n
}\n
\n
function renderLoginForm(gadget) {\n
return gadget.props.breadcrumb_gadget.render({title: "Login"})\n
.push(function () {\n
return gadget.declareGadget("gadget_erp5_pt_loginform.html", {\n
scope: "login_gadget"\n
});\n
})\n
.push(function (sub_gadget) {\n
return RSVP.all([\n
sub_gadget.render(),\n
sub_gadget.getElement()\n
]);\n
});\n
}\n
\n
function renderJioDocument(gadget, options) {\n
var sub_options,\n
breadcrumb_options = {};\n
\n
return gadget.getDeclaredGadget("jio_gadget")\n
.push(function (jio_gadget) {\n
var jio_key = options.jio_key,\n
view = options.view;\n
\n
gadget.props.jio_key = jio_key;\n
///////////////////////////////////////////////\n
// Display erp5 document view\n
///////////////////////////////////////////////\n
return jio_gadget.get({"_id": jio_key}, {"_view": view});\n
})\n
.push(function (result) {\n
var uri;\n
\n
breadcrumb_options.title = result.data.title ||\n
result.data.reference || options.jio_key;\n
\n
breadcrumb_options.parent_link = result.data._links.parent || "#";\n
\n
uri = new URI(\n
result.data._embedded._view._links.form_definition.href\n
);\n
// if ((uri.scheme() === "urn") &&\n
// (uri.segment(0) === "jio") &&\n
// (uri.segment(1) === "get")) {\n
// }\n
return RSVP.all([\n
result,\n
gadget.getDeclaredGadget("jio_gadget")\n
.push(function (jio_gadget) {\n
return jio_gadget.get(\n
{"_id": uri.segment(2)},\n
{"_view": "view"}\n
);\n
})\n
]);\n
})\n
.push(function (result) {\n
\n
sub_options = options.form_gadget || {};\n
sub_options.erp5_document = result[0].data;\n
sub_options.form_definition = result[1].data;\n
sub_options.view = options.view;\n
sub_options.action_view = gadget.props.action_view;\n
\n
return RSVP.all([\n
gadget.declareGadget("gadget_erp5_pt_" + sub_options.form_definition.pt + ".html", {\n
scope: "form_gadget"\n
})\n
]);\n
})\n
.push(function (gadget_list) {\n
var form_gadget = gadget_list[0],\n
new_content_action = sub_options.erp5_document._links.action_object_new_content_action,\n
plus_queue,\n
new_element;\n
\n
if (new_content_action === undefined) {\n
new_element = gadget.__element.querySelector(".ui-icon-plus");\n
new_element.href = "";\n
if (!new_element.classList.contains("ui-disabled")) {\n
new_element.classList.add("ui-disabled");\n
function renderPage(gadget, page_name, options) {\n
return gadget.declareGadget("gadget_erp5_page_" + page_name + ".html", {\n
scope: "pg"\n
})\n
.push(function (page_gadget) {\n
var sub_options = options.pg || {},\n
key;\n
delete options.pg;\n
for (key in options) {\n
if (options.hasOwnProperty(key)) {\n
sub_options[key] = options[key];\n
}\n
} else {\n
// XXX copied from whoWantToDisplayThisPage\n
plus_queue = gadget.aq_pleasePublishMyState({jio_key: gadget.props.jio_key, view: new_content_action.name})\n
.push(function (hash) {\n
new_element = gadget.__element.querySelector(".ui-icon-plus");\n
new_element.href = hash;\n
new_element.classList.remove("ui-disabled");\n
});\n
}\n
\n
return RSVP.all([\n
form_gadget.render(sub_options),\n
form_gadget.getElement(),\n
gadget.props.breadcrumb_gadget.render(breadcrumb_options),\n
plus_queue\n
page_gadget,\n
page_gadget.render(sub_options)\n
]);\n
})\n
.push(function (all_result) {\n
return all_result[0];\n
});\n
}\n
\n
\n
/////////////////////////////////////////////////////////////////\n
// Gadget behaviour\n
......@@ -260,10 +166,10 @@
action_view: "action_object_view",\n
default_view_reference: "view"\n
};\n
return g.getDeclaredGadget("breadcrumb")\n
.push(function (sub_gadget) {\n
g.props.breadcrumb_gadget = sub_gadget;\n
});\n
// return g.getDeclaredGadget("breadcrumb")\n
// .push(function (sub_gadget) {\n
// g.props.breadcrumb_gadget = sub_gadget;\n
// });\n
})\n
\n
// Configure jIO to use localstorage\n
......@@ -271,6 +177,24 @@
.ready(function (g) {\n
return createJio(g);\n
})\n
\n
.ready(function (g) {\n
return g.getElement()\n
.push(function (element) {\n
g.props.element = element;\n
g.props.article = element.querySelector("article");\n
});\n
})\n
\n
.ready(function (g) {\n
return g.getDeclaredGadget("header")\n
.push(function (header_gadget) {\n
return header_gadget.getElement();\n
})\n
.push(function (element) {\n
$(element).trigger("create");\n
});\n
})\n
\n
/////////////////////////////////////////////////////////////////\n
// handle acquisition\n
......@@ -289,50 +213,40 @@
return jio_gadget.ajax.apply(jio_gadget, param_list);\n
});\n
})\n
.allowPublicAcquisition("jio_post", function (param_list) {\n
return this.getDeclaredGadget("jio_gadget")\n
.push(function (jio_gadget) {\n
return jio_gadget.post.apply(jio_gadget, param_list);\n
});\n
})\n
.allowPublicAcquisition("jio_put", function (param_list) {\n
return this.getDeclaredGadget("jio_gadget")\n
.push(function (jio_gadget) {\n
return jio_gadget.put.apply(jio_gadget, param_list);\n
});\n
})\n
.allowPublicAcquisition("jio_remove", function (param_list) {\n
return this.getDeclaredGadget("jio_gadget")\n
.push(function (jio_gadget) {\n
return jio_gadget.remove.apply(jio_gadget, param_list);\n
});\n
})\n
.allowPublicAcquisition("jio_get", function (param_list) {\n
return this.getDeclaredGadget("jio_gadget")\n
.push(function (jio_gadget) {\n
return jio_gadget.get.apply(jio_gadget, param_list);\n
});\n
})\n
.allowPublicAcquisition("jio_putAttachment", function (param_list) {\n
return this.getDeclaredGadget("jio_gadget")\n
.push(function (jio_gadget) {\n
return jio_gadget.putAttachment.apply(jio_gadget, param_list);\n
});\n
})\n
.allowPublicAcquisition("jio_getAttachment", function (param_list) {\n
return this.getDeclaredGadget("jio_gadget")\n
.push(function (jio_gadget) {\n
return jio_gadget.getAttachment.apply(jio_gadget, param_list);\n
});\n
})\n
\n
.allowPublicAcquisition("whoWantToDisplayThis", function (param_list) {\n
// Hey, I want to display some URL\n
return this.aq_pleasePublishMyState({jio_key: param_list[0]});\n
return this.aq_pleasePublishMyState({jio_key: param_list[0], view: this.props.default_view_reference});\n
})\n
.allowPublicAcquisition("whoWantToDisplayThisPage", function (param_list) {\n
// Hey, I want to display some URL\n
return this.aq_pleasePublishMyState({jio_key: this.props.jio_key, view: param_list[0].name});\n
var options = {\n
jio_key: this.state_parameter_dict.jio_key,\n
view: param_list[0].name || this.props.default_view_reference\n
};\n
if (param_list[0].editable !== undefined) {\n
options.editable = param_list[0].editable;\n
}\n
if (param_list[0].page !== undefined) {\n
options.page = param_list[0].page;\n
}\n
return this.aq_pleasePublishMyState(options);\n
})\n
\n
.allowPublicAcquisition("renderPageHeader", function (param_list) {\n
this.props.header_argument_list = param_list;\n
})\n
\n
/////////////////////////////////////////////////////////////////\n
......@@ -352,76 +266,89 @@
// Render the page\n
.declareMethod(\'render\', function (options) {\n
var gadget = this,\n
new_element,\n
queue;\n
main_gadget;\n
return new RSVP.Queue()\n
.push(function () {\n
$.mobile.loading(\'show\');\n
\n
if (options.jio_key === undefined) {\n
new_element = gadget.__element.querySelector(".ui-icon-plus");\n
new_element.href = "";\n
if (!new_element.classList.contains("ui-disabled")) {\n
new_element.classList.add("ui-disabled");\n
}\n
\n
if (options.page === "login") {\n
queue = renderLoginForm(gadget, options);\n
} else if (options.page === undefined) {\n
queue = renderFrontpage(gadget, options);\n
} else {\n
throw new Error("Unknown page: " + options.page);\n
}\n
} else {\n
if (options.view === undefined) {\n
// Redirect to the default view\n
return gadget.aq_pleasePublishMyState({jio_key: options.jio_key, view: gadget.props.default_view_reference})\n
.push(gadget.pleaseRedirectMyHash.bind(gadget));\n
}\n
queue = renderJioDocument(gadget, options);\n
}\n
gadget.state_parameter_dict = {\n
jio_key: options.jio_key,\n
view: options.view\n
};\n
// By default, init the header options to be empty (ERP5 title by default + sidebar)\n
gadget.props.header_argument_list = [{}];\n
\n
$.mobile.loading(\'show\');\n
return queue\n
.push(function (response_list) {\n
var element = document.querySelector("article"),\n
fragment = document.createDocumentFragment(),\n
i,\n
len,\n
item;\n
options.action_view = gadget.props.action_view;\n
gadget.state_parameter_dict = {\n
jio_key: options.jio_key,\n
view: options.view\n
};\n
\n
// add all HTML nodes to fragment\n
for (i = 0, len = response_list.length; i < len; i += 1) {\n
item = response_list[i] || {};\n
if (item.nodeType && item.nodeType === 1) {\n
fragment.appendChild(item);\n
}\n
if ((options.jio_key !== undefined) && (options.page === undefined)) {\n
options.page = "form";\n
}\n
\n
// Clear first to DOM, append after to reduce flickering/manip\n
while (element.firstChild) {\n
element.removeChild(element.firstChild);\n
if (options.page === undefined) {\n
// Not rendering a jio document and not page requested.\n
// URL is probably empty: redirect to the frontpage\n
return gadget.aq_pleasePublishMyState({page: \'front\'})\n
.push(gadget.pleaseRedirectMyHash.bind(gadget));\n
}\n
element.appendChild(fragment);\n
return renderPage(gadget, options.page, options);\n
})\n
\n
$.mobile.loading(\'hide\');\n
return $(element).trigger("create");\n
.push(function (result) {\n
main_gadget = result;\n
return gadget.getDeclaredGadget("header");\n
})\n
.push(function (header_gadget) {\n
return header_gadget.render.apply(header_gadget, gadget.props.header_argument_list);\n
})\n
.push(function () {\n
// Append loaded gadget in the page\n
if (main_gadget !== undefined) {\n
return main_gadget.getElement()\n
.push(function (fragment) {\n
var element = gadget.props.article;\n
\n
// Clear first to DOM, append after to reduce flickering/manip\n
while (element.firstChild) {\n
element.removeChild(element.firstChild);\n
}\n
element.appendChild(fragment);\n
$.mobile.loading(\'hide\');\n
return $(element).trigger("create");\n
});\n
}\n
})\n
\n
.push(undefined, function (error) {\n
$.mobile.loading(\'hide\');\n
// Do not break the application in case of errors.\n
// Display it to the user for now, and allow user to go back to the frontpage\n
var error_text = "";\n
if (error.status === 401) {\n
// Redirect to the login view\n
return gadget.aq_pleasePublishMyState({page: "login"})\n
.push(gadget.pleaseRedirectMyHash.bind(gadget));\n
}\n
if (error instanceof RSVP.CancellationError) {\n
return;\n
}\n
\n
if (error instanceof XMLHttpRequest) {\n
error_text = error.toString() + " " +\n
error.status + " " +\n
error.statusText;\n
} else if (error instanceof Error) {\n
error_text = error.toString();\n
} else {\n
error_text = JSON.stringify(error);\n
}\n
\n
console.error(error);\n
console.error(error.stack);\n
throw error;\n
// XXX Improve error rendering\n
gadget.props.article.textContent = "Error: " + error_text;\n
$.mobile.loading(\'hide\');\n
});\n
});\n
\n
}(window, document, rJS, RSVP, jQuery, URI, console));
}(window, rJS, RSVP, jQuery, XMLHttpRequest, console));
]]></string> </value>
</item>
......@@ -558,7 +485,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>937.44173.5242.20019</string> </value>
<value> <string>937.58323.33142.30617</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -576,7 +503,7 @@
</tuple>
<state>
<tuple>
<float>1411135519.91</float>
<float>1412000231.85</float>
<string>GMT</string>
</tuple>
</state>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Web Style" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Anonymous</string>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Anonymous</string>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_erp5_latest.css</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>rjs_gadget_erp5_latest_css</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>en</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Style</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>text_content</string> </key>
<value> <string encoding="cdata"><![CDATA[
/* ------------------------------ Global Font ---------------------------- */\n
/* NOTE: family/size should only be set here! */\n
input, select, textarea, button, p, h1, h2, h3, h4, h5, h6, table,\n
.ui-header h1.ui-title,\n
html.ui-mobile legend, .ui-btn, .ui-li-static, html.ui-mobile body form label {\n
font-family: Helvetica, Arial, sans-serif;\n
font-size: 90%;\n
}\n
html body .ui-controlgroup.ui-btn-right,\n
html body .ui-header .ui-btn,\n
html body .ui-navbar li .ui-btn {\n
font-size: 90%;\n
}\n
/* fix font-size on notext buttons, so icons don\'t zoom, JQMs-px font-size */\n
html body .ui-header .ui-controlgroup .ui-btn,\n
html body .ui-footer .ui-controlgroup .ui-btn {\n
font-size: 100%;\n
}\n
\n
\n
/* ========================== Overrides Themes ============================ */\n
/* JQM custom themes */\n
/* a */\n
/*--------------------------------------------------------------------------*/\n
\n
/* Bar: Toolbars, dividers, slider track */\n
.ui-bar-a,\n
.ui-page-theme-a .ui-bar-inherit,\n
html .ui-bar-a .ui-bar-inherit,\n
html .ui-body-a .ui-bar-inherit,\n
html body .ui-group-theme-a .ui-bar-inherit {\n
background: 0 none;\n
background-color: #fff;\n
color: rgb(115, 115, 115); /* IE8 */\n
color: rgba(0, 0, 0, 0.55);\n
text-shadow: none;\n
border-color: #aaa;\n
font-weight: normal;\n
}\n
.ui-bar-a {\n
border-width: 1px;\n
border-style: solid;\n
}\n
/* tables & controlbar & tabs & labels */\n
html .ui-overlay-a fieldset label,\n
html .ui-overlay-a fieldset legend,\n
html .ui-page-theme-a .ui-collapsible h1 a.ui-btn,\n
html .ui-page-theme-a .ui-collapsible-set .ui-collapsible h1 a.ui-btn,\n
html .ui-page-theme-a .document-table thead a.ui-btn,\n
html .ui-page-theme-a .document-table thead label,\n
html .ui-page-theme-a .document-table thead tr th {\n
color: rgb(115, 115, 115); /* IE8 */\n
color: rgba(0, 0, 0, 0.55);\n
text-shadow: #FFFFFF 0px 1px 0px;\n
}\n
html body .ui-page-theme-a table.document-table,\n
html .document-table thead tr th {\n
background-color: #fff;\n
border-color: #aaa;\n
}\n
html .ui-page-theme-a .ui-popup .ui-header,\n
html .ui-page-theme-a .ui-popup .ui-footer,\n
html .ui-page-theme-a .ui-collapsible h1 a.ui-btn,\n
html .ui-page-theme-a .ui-collapsible-set .ui-collapsible h1 a.ui-btn {\n
background-image: -webkit-gradient(linear, left top, left bottom, from( #fff ), to( #f1f1f1 ));\n
background-image: -webkit-linear-gradient( #fff , #f1f1f1 );\n
background-image: -moz-linear-gradient( #fff , #f1f1f1 );\n
background-image: -ms-linear-gradient( #fff , #f1f1f1 );\n
background-image: -o-linear-gradient( #fff , #f1f1f1 );\n
background-image: linear-gradient( #fff , #f1f1f1 );\n
border-color: #aaa;\n
}\n
\n
/* Page: background */\n
.ui-page-theme-a,\n
.ui-page-theme-a .ui-panel-wrapper {\n
color: #333;\n
text-shadow: none;\n
background: #f9f9f9;\n
background-image: -webkit-gradient(linear, left top, left bottom, from( #f9f9f9), to( #eee ));\n
background-image: -webkit-linear-gradient( #f9f9f9, #eee );\n
background-image: -moz-linear-gradient( #f9f9f9, #eee );\n
background-image: -ms-linear-gradient( #f9f9f9, #eee );\n
background-image: -o-linear-gradient( #f9f9f9, #eee );\n
background-image: linear-gradient( #f9f9f9, #eee );\n
}\n
/* Body: Read-only lists, text inputs, collapsible content */\n
.ui-body-a,\n
.ui-page-theme-a .ui-body-inherit,\n
.ui-page-theme-a .ui-content-element,\n
html .ui-bar-a .ui-body-inherit,\n
html .ui-body-a .ui-body-inherit,\n
html body .ui-group-theme-a .ui-body-inherit,\n
.ui-overlay-a {\n
background-image: none;\n
background: #fff;\n
border-color: #aaa;\n
color: #111;\n
text-shadow: none;\n
}\n
.ui-body-a {\n
border-width: 1px;\n
border-style: solid;\n
}\n
\n
/* Links */\n
.ui-page-theme-a a,\n
html .ui-bar-a a,\n
html .ui-body-a a\n
/* visited */\n
.ui-page-theme-a a:visited,\n
html body.ui-overlay-a .ui-btn:visited,\n
html body.ui-overlay-a a:visited,\n
html .ui-bar-a a:visited,\n
html .ui-body-a a:visited,\n
html body .ui-group-theme-a a:visited,\n
/* hover */\n
html body.ui-overlay-a a:hover,\n
html body.ui-overlay-a .ui-btn:hover,\n
.ui-page-theme-a a:hover,\n
html .ui-bar-a a:hover,\n
html .ui-body-a a:hover,\n
html body .ui-group-theme-a a:hover,\n
html body.ui-overlay-a .ui-btn:hover,\n
.ui-page-theme-a .ui-btn:hover,\n
html .ui-bar-a .ui-btn:hover,\n
html .ui-body-a .ui-btn:hover,\n
html body .ui-group-theme-a .ui-btn:hover,\n
/* texts */\n
html body .ui-group-theme-a p, /* overwritten by ui-btn */\n
html body .ui-group-theme-a h1,\n
html body .ui-group-theme-a h2,\n
html body .ui-group-theme-a h3,\n
html body .ui-group-theme-a h4,\n
html body .ui-group-theme-a h5,\n
html body .ui-group-theme-a h6,\n
html .ui-page-theme-a .ui-content-element {\n
color: rgb(115, 115, 115); /* IE8 */\n
color: rgba(0, 0, 0, 0.55);\n
border-color: #aaa;\n
text-shadow: none;\n
}\n
\n
.ui-page-theme-a .ui-btn:active,\n
html .ui-bar-a .ui-btn:active,\n
html .ui-body-a .ui-btn:active,\n
html body .ui-group-theme-a .ui-btn:active {\n
color: #fff;\n
}\n
\n
/* Button up */\n
.ui-page-theme-a .ui-btn,\n
html .ui-bar-a .ui-btn,\n
html .ui-body-a .ui-btn,\n
html body .ui-btn.ui-btn-a,\n
html body .ui-group-theme-a .ui-btn,\n
[class*="ui-group-theme-"] .ui-btn.ui-btn-a,\n
.ui-page-theme-a .ui-bar-plain,\n
/* Button visited */\n
.ui-page-theme-a .ui-btn:visited,\n
html .ui-bar-a .ui-btn:visited,\n
html .ui-body-a .ui-btn:visited,\n
html body .ui-btn.ui-btn-a:visited,\n
html body .ui-group-theme-a .ui-btn:visited,\n
[class*="ui-group-theme-"] .ui-btn.ui-btn-a:visited,\n
/* table */\n
html .ui-page-theme-a .document-table tr td a:visited {\n
background: #fff;\n
color: rgb(115, 115, 115); /* IE8 */\n
color: rgba(0, 0, 0, 0.55);\n
text-shadow: none;\n
border-color: #aaa;\n
}\n
html .ui-page-theme-a .ui-input-clear:active,\n
html .ui-page-theme-a .ui-input-clear.ui-btn-active,\n
html .ui-page-theme-a .ui-input-action:active,\n
html .ui-page-theme-a .ui-input-action.ui-btn-active {\n
background: #fff !important;\n
}\n
\n
/* ------------------------- Header Buttons ------------------------------- */\n
.ui-page-theme-a .ui-header .ui-btn,\n
html .ui-bar-a .ui-header .ui-btn,\n
html .ui-bar-a.ui-header .ui-btn,\n
html .ui-body-a .ui-header .ui-btn,\n
html body .ui-header .ui-btn.ui-btn-a,\n
html body .ui-header .ui-group-theme-a .ui-btn,\n
.ui-header [class*="ui-group-theme-"] .ui-btn.ui-btn-a,\n
/* Button visited */\n
.ui-page-theme-a .ui-header .ui-btn:visited,\n
html .ui-bar-a .ui-header .ui-btn:visited,\n
html .ui-body-a .ui-header .ui-btn:visited,\n
html body .ui-header .ui-btn.ui-btn-a:visited,\n
html body .ui-header .ui-group-theme-a .ui-btn:visited,\n
.ui-header [class*="ui-group-theme-"] .ui-btn.ui-btn-a:visited,\n
.ui-page-theme-a .ui-header a:visited,\n
html .ui-bar-a .ui-header a:visited,\n
html .ui-body-a .ui-header a:visited,\n
html body .ui-header a.ui-btn-a:visited,\n
html body .ui-header .ui-group-theme-a a:visited,\n
.ui-header [class*="ui-group-theme-"] a.ui-btn-a:visited {\n
background: none repeat scroll 0 center transparent;\n
border: 0 none;\n
-webkit-border-radius: 0 0 0 0 /* iOS3 */ !important;\n
border-radius: 0 0 0 0 /* iOS3 */ !important;\n
-webkit-box-shadow: none /* iOS3 */ !important;\n
box-shadow: none /* iOS3 */ !important;\n
color: rgb(115, 115, 115); /* IE8 */\n
color: rgba(0, 0, 0, 0.55);\n
text-shadow: none;\n
font-weight: normal;\n
line-height: 3em; /* IE cannot take 300% */\n
}\n
/* Button special handling: panel listitems */\n
.ui-page-theme-a .ui-panel-inner li .ui-btn,\n
html .ui-bar-a .ui-panel-inner li .ui-btn,\n
html .ui-body-a .ui-panel-inner li .ui-btn,\n
html .ui-body-a .ui-panel-inner li.ui-li-static,\n
html body .ui-panel-inner li .ui-btn.ui-btn-a,\n
html body .ui-panel-inner li .ui-group-theme-a .ui-btn,\n
[class*="ui-group-theme-"] .ui-panel-inner li .ui-btn.ui-btn-a,\n
/* Button visited */\n
.ui-page-theme-a .ui-panel-inner li .ui-btn:visited,\n
html .ui-bar-a .ui-panel-inner li .ui-btn:visited,\n
html .ui-body-a .ui-panel-inner li .ui-btn:visited,\n
html body .ui-panel-inner li .ui-btn.ui-btn-a:visited,\n
html body .ui-panel-inner li .ui-group-theme-a .ui-btn:visited,\n
[class*="ui-group-theme-"] .ui-panel-inner li .ui-btn.ui-btn-a:visited,\n
/* table */\n
html .ui-page-theme-a .document-table,\n
html .ui-page-theme-a .document-table {\n
background: none repeat scroll 0 0 transparent;\n
border-color: rgb(232, 232, 232);\n
border-color: rgba(255,255,255,.3);\n
}\n
/* dropshadow */\n
html body .ui-group-theme-a li {\n
border-top: 1px solid #111;\n
}\n
html body .ui-group-theme-a li.ui-last-child {\n
border-top: 1px solid #111;\n
border-bottom: 1px solid #111;\n
}\n
html body .ui-group-theme-b li.ui-last-child a.ui-btn {\n
border-bottom: none\n
}\n
/* Button background hover */\n
.ui-page-theme-a .ui-btn:hover,\n
html .ui-bar-a .ui-btn:hover,\n
html .ui-body-a .ui-btn:hover,\n
html body .ui-btn.ui-btn-a:hover,\n
html body .ui-group-theme-a .ui-btn:hover,\n
[class*="ui-group-theme-"] .ui-btn.ui-btn-a:hover,\n
/* table rows */\n
html .ui-page-theme-a .document-table tr th:hover ~ td,\n
/* controlbars */\n
html .ui-page-theme-a .ui-controlbar .ui-btn:hover,\n
/* tabs */\n
html .ui-page-theme-a .ui-collapsible-set .ui-collapsible h1 a.ui-btn:hover,\n
html .ui-page-theme-a .ui-collapsible h1 a.ui-btn:hover{\n
background-color: #e8e8e8;\n
background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#fff), to(#e8e8e8));\n
background: -webkit-linear-gradient(bottom, #fff, #e8e8e8);\n
background: -moz-linear-gradient(bottom, #fff, #e8e8e8);\n
background: -o-linear-gradient(bottom, #fff, #e8e8e8);\n
background: -ms-linear-gradient(bottom, #fff, #e8e8e8);\n
background: linear-gradient(bottom, #fff, #e8e8e8);\n
}\n
\n
/* b */\n
/*--------------------------------------------------------------------------*/\n
/* Bar: Toolbars, dividers, slider track */\n
.ui-bar-b,\n
.ui-page-theme-b .ui-bar-inherit,\n
html .ui-bar-b .ui-bar-inherit,\n
html .ui-body-b .ui-bar-inherit,\n
html body .ui-group-theme-b .ui-bar-inherit {\n
background: 0 none;\n
background: #222;\n
color: #fff;\n
text-shadow: 0 1px 0 #111111;\n
font-weight: normal;\n
}\n
.ui-bar-b {\n
border-width: 1px;\n
border-style: solid;\n
}\n
/* tables & controlbar & tabs & labels */\n
html .ui-overlay-b fieldset label,\n
html .ui-overlay-b fieldset legend,\n
html .ui-page-theme-b .ui-controlbar .ui-btn,\n
html .ui-page-theme-b .ui-controlbar ~ .ui-controlgroup .ui-btn,\n
html .ui-page-theme-b .ui-collapsible h1 a.ui-btn,\n
html .ui-page-theme-b .ui-collapsible-set .ui-collapsible h1 a.ui-btn,\n
html .ui-page-theme-b .document-table thead a.ui-btn,\n
html .ui-page-theme-b .document-table thead label {\n
color: #444;\n
text-shadow: 0 1px 0 #111111;\n
}\n
/* tables & controlbars */\n
.ui-page-theme-b .document-table {\n
background-color: #222;\n
border-color: rgb(232, 232, 232); /* IE8 */\n
border-color: rgba(255,255,255,.3);\n
}\n
html .ui-page-theme-b .ui-popup .ui-header,\n
html .ui-page-theme-b .ui-popup .ui-footer,\n
html .ui-page-theme-b .ui-collapsible h1 a.ui-btn\n
html .ui-page-theme-b .ui-collapsible-set .ui-collapsible h1 a.ui-btn {\n
background-image: -webkit-gradient(linear, left top, left bottom, from( #444 ), to( #222 ));\n
background-image: -webkit-linear-gradient( #444 , #222 );\n
background-image: -moz-linear-gradient( #444 , #222 );\n
background-image: -ms-linear-gradient( #444 , #222 );\n
background-image: -o-linear-gradient( #444 , #222 );\n
background-image: linear-gradient( #444 , #222 );\n
border-color: #444;\n
}\n
\n
/* Page background */\n
.ui-page-theme-b,\n
.ui-page-theme-b .ui-panel-wrapper {\n
color: #fff;\n
text-shadow: 0 1px 0 #111111;\n
background: #222;\n
border-color: #444;\n
background-image: -webkit-gradient(linear, left top, left bottom, from( #444 ), to( #222 ));\n
background-image: -webkit-linear-gradient( #444 , #222 );\n
background-image: -moz-linear-gradient( #444 , #222 );\n
background-image: -ms-linear-gradient( #444 , #222 );\n
background-image: -o-linear-gradient( #444 , #222 );\n
background-image: linear-gradient( #444 , #222 );\n
}\n
/* Body: Read-only lists, text inputs, collapsible content */\n
.ui-body-b,\n
.ui-page-theme-b .ui-body-inherit,\n
.ui-page-theme-b .ui-content-element,\n
html .ui-bar-b .ui-body-inherit,\n
html .ui-body-b .ui-body-inherit,\n
html body .ui-group-theme-b .ui-body-inherit,\n
.ui-overlay-b {\n
color: #fff;\n
text-shadow: 0 1px 0 #111111;\n
background: #222;\n
border-color: #444;\n
background-image: -webkit-gradient(linear, left top, left bottom, from( #444 ), to( #222 ));\n
background-image: -webkit-linear-gradient( #444 , #222 );\n
background-image: -moz-linear-gradient( #444 , #222 );\n
background-image: -ms-linear-gradient( #444 , #222 );\n
background-image: -o-linear-gradient( #444 , #222 );\n
background-image: linear-gradient( #444 , #222 );\n
}\n
.ui-body-b {\n
border-width: 1px;\n
border-style: solid;\n
}\n
/* Input filterable */\n
html .ui-body-b .ui-body-inherit.ui-input-search {\n
background-image: none;\n
}\n
\n
/* Links */\n
.ui-page-theme-b a,\n
html .ui-bar-b a,\n
html .ui-body-b a,\n
html body .ui-group-theme-b a,\n
/* visited */\n
.ui-page-theme-b a:visited,\n
html body.ui-overlay-b a:visited,\n
html body.ui-overlay-b .ui-btn:visited,\n
html .ui-bar-b a:visited,\n
html .ui-body-b a:visited,\n
html body .ui-group-theme-b a:visited,\n
/* hover */\n
html body.ui-overlay-b .ui-btn:hover,\n
html body.ui-overlay-b a:hover,\n
.ui-page-theme-b a:hover,\n
html .ui-bar-b a:hover,\n
html .ui-body-b a:hover,\n
html body .ui-group-theme-a a:hover,\n
.ui-overlay-b .ui-btn:hover,\n
.ui-page-theme-b .ui-btn:hover,\n
html .ui-page-theme-b .ui-btn:hover,\n
html .ui-page-theme-b .ui-btn:hover,\n
html body .ui-group-theme-b .ui-btn:hover,\n
/* active */\n
.ui-page-theme-b .ui-btn:active,\n
html .ui-bar-b .ui-btn:active,\n
html .ui-body-b .ui-btn:active,\n
html body .ui-group-theme-b .ui-btn:active,\n
/* Texts */\n
html body .ui-group-theme-b p,\n
html body .ui-group-theme-b h1,\n
html body .ui-group-theme-b h2,\n
html body .ui-group-theme-b h3,\n
html body .ui-group-theme-b h4,\n
html body .ui-group-theme-b h5,\n
html body .ui-group-theme-b h6,\n
html .ui-page-theme-b .ui-content-element {\n
color: #fff;\n
border-color: auto;\n
text-shadow: none;\n
}\n
/* Button up */\n
.ui-page-theme-b .ui-btn,\n
html .ui-bar-b .ui-btn,\n
html .ui-body-b .ui-btn,\n
html body .ui-btn.ui-btn-b,\n
html body .ui-group-theme-b .ui-btn,\n
[class*="ui-group-theme-"] .ui-btn.ui-btn-b,\n
.ui-page-theme-b .ui-bar-plain,\n
/* Button visited */\n
.ui-page-theme-b .ui-btn:visited,\n
html .ui-bar-b .ui-btn:visited,\n
html .ui-body-b .ui-btn:visited,\n
html body .ui-btn.ui-btn-b:visited,\n
html body .ui-group-theme-b .ui-btn:visited,\n
[class*="ui-group-theme-"] a.ui-btn-b:visited,\n
.ui-page-theme-b a:visited,\n
html .ui-bar-b a:visited,\n
html .ui-body-b a:visited,\n
html body a.ui-btn-b:visited,\n
html body .ui-group-theme-b a:visited,\n
[class*="ui-group-theme-"] a.ui-btn-b:visited,\n
html .ui-page-theme-b table tr td a:visited,\n
/* table */\n
html .ui-page-theme-b .document-table,\n
html .ui-page-theme-b .document-table {\n
background: #222;\n
background-image: -webkit-gradient(linear, left top, left bottom, from( #444 ), to( #222 ));\n
background-image: -webkit-linear-gradient( #444 , #222 );\n
background-image: -moz-linear-gradient( #444 , #222 );\n
background-image: -ms-linear-gradient( #444 , #222 );\n
background-image: -o-linear-gradient( #444 , #222 );\n
background-image: linear-gradient( #444 , #222 );\n
border-color: #444;\n
color: #fff;\n
text-shadow: 0px 1px 0px #111;\n
}\n
html .ui-page-theme-b .ui-input-clear:active,\n
html .ui-page-theme-b .ui-input-clear.ui-btn-active,\n
html .ui-page-theme-b .ui-input-action:active,\n
html .ui-page-theme-b .ui-input-action.ui-btn-active {\n
background: #222 !important;\n
}\n
/* Header Buttons */\n
.ui-page-theme-b .ui-header .ui-btn,\n
html .ui-bar-b.ui-header .ui-btn,\n
html .ui-bar-b .ui-header .ui-btn,\n
html .ui-body-b .ui-header .ui-btn,\n
html body .ui-header .ui-btn.ui-btn-b,\n
html body .ui-header .ui-group-theme-b .ui-btn,\n
.ui-header [class*="ui-group-theme-"] .ui-btn.ui-btn-b,\n
/* Button visited */\n
.ui-page-theme-b .ui-header .ui-btn:visited,\n
html .ui-bar-b .ui-header .ui-btn:visited,\n
html .ui-body-b .ui-header .ui-btn:visited,\n
html body .ui-header .ui-btn.ui-btn-b:visited,\n
html body .ui-header .ui-group-theme-b .ui-btn:visited,\n
.ui-header [class*="ui-group-theme-"] .ui-btn.ui-btn-b:visited,\n
/* ADD also not on :hover */\n
.ui-page-theme-b .ui-header .ui-btn:hover,\n
html .ui-bar-b .ui-header .ui-btn:hover,\n
html .ui-body-b .ui-header .ui-btn:hover,\n
html body .ui-header .ui-btn.ui-btn-b:hover,\n
html body .ui-header .ui-group-theme-b .ui-btn:hover,\n
.ui-header [class*="ui-group-theme-"] .ui-btn.ui-btn-b:hover {\n
background: none repeat scroll 0 center transparent;\n
-webkit-border-radius: 0 0 0 0 /* iOS3 */ !important;\n
border-radius: 0 0 0 0 /* iOS3 */ !important;\n
-webkit-box-shadow: none /* iOS3 */ !important;\n
box-shadow: none /* iOS3 */ !important;\n
color: #fff;\n
text-shadow: none;\n
font-weight: normal;\n
line-height: 3.25em; /* IE cannot take 325% */\n
}\n
/* Button special handling: listitem , collapsibles */\n
.ui-page-theme-b .ui-panel-inner li .ui-btn,\n
html .ui-bar-b .ui-panel-inner li .ui-btn,\n
html .ui-body-b .ui-panel-inner li .ui-btn,\n
html .ui-body-b .ui-panel-inner li.ui-li-static,\n
html body .ui-panel-inner .ui-collapsible .ui-collapsible-heading a.ui-btn.ui-collapsible-heading-toggle,\n
html body .ui-panel-inner .ui-group-theme-b .ui-collapsible .ui-collapsible-heading a.ui-btn.ui-collapsible-heading-toggle,\n
html body .ui-panel-inner li .ui-btn.ui-btn-b,\n
html body .ui-panel-inner li .ui-group-theme-b .ui-btn,\n
[class*="ui-group-theme-"] .ui-panel-inner li .ui-btn.ui-btn-b,\n
/* Button visited */\n
.ui-page-theme-b .ui-panel-inner li .ui-btn:visited,\n
html .ui-bar-b .ui-panel-inner li .ui-btn:visited,\n
html .ui-body-b .ui-panel-inner li .ui-btn:visited,\n
html body .ui-panel-inner .ui-collapsible .ui-collapsible-heading a.ui-btn.ui-collapsible-heading-toggle:visited,\n
html body .ui-panel-inner .ui-group-theme-b .ui-collapsible .ui-collapsible-heading a.ui-btn.ui-collapsible-heading-toggle:visited\n
html body .ui-panel-inner li .ui-btn.ui-btn-b:visited,\n
html body .ui-panel-inner li .ui-group-theme-b .ui-btn:visited,\n
[class*="ui-group-theme-"] .ui-panel-inner li .ui-btn.ui-btn-b:visited {\n
background: none repeat scroll 0 0 transparent;\n
border-color: rgb(232, 232, 232); /* IE8 */\n
border-color: rgba(255,255,255,.3);\n
}\n
/* dropshadow */\n
html body .ui-group-theme-b li {\n
border-top: 1px solid #111;\n
}\n
html body .ui-group-theme-b li.ui-last-child {\n
border-bottom: 1px solid #111;\n
}\n
html body .ui-group-theme-b li.ui-last-child a.ui-btn {\n
border-bottom: none\n
}\n
\n
/* Button hover */\n
.ui-page-theme-b .ui-btn:hover,\n
html .ui-bar-b .ui-btn:hover,\n
html .ui-body-b .ui-btn:hover,\n
html body .ui-btn.ui-btn-b:hover,\n
html body .ui-group-theme-b .ui-btn:hover,\n
[class*="ui-group-theme-"] .ui-btn.ui-btn-b:hover,\n
/* table rows */\n
html .ui-page-theme-b .document-table tr th:hover ~ td,\n
/* controlbars */\n
html .ui-page-theme-b .ui-controlbar .ui-btn:hover,\n
/* tabs */\n
html .ui-page-theme-b .ui-collapsible h1 a.ui-btn:hover\n
html .ui-page-theme-b .ui-collapsible-set .ui-collapsible h1 a.ui-btn:hover {\n
background: #222;\n
background-image: -webkit-gradient(linear, left top, left bottom, from( #444 ), to( #222 ));\n
background-image: -webkit-linear-gradient( #444 , #222 );\n
background-image: -moz-linear-gradient( #444 , #222 );\n
background-image: -ms-linear-gradient( #444 , #222 );\n
background-image: -o-linear-gradient( #444 , #222 );\n
background-image: linear-gradient( #444 , #222 );\n
border-color: rgb(232, 232, 232); /* IE8 */\n
border-color: rgba(255,255,255,.3);\n
/* border-color: #444 */\n
color: #fff;\n
text-shadow: 0px 1px 0px #111;\n
}\n
\n
\n
\n
\n
\n
/* swatch "active" - need this for every swatch!!! */\n
/*--------------------------------------------------------------------------*/\n
\n
/* Button down */\n
html .ui-page-theme-a .ui-bar-active, /* if we do more like this, we need to have a proper theme */\n
.ui-page-theme-a .ui-btn:active,\n
html .ui-bar-a .ui-btn:active,\n
html .ui-body-a .ui-btn:active,\n
html body .ui-btn.ui-btn-a:active,\n
html body .ui-group-theme-a .ui-btn:active,\n
[class*="ui-group-theme-"] .ui-btn.ui-btn-a:active,\n
/* Active button */\n
.ui-page-theme-a .ui-btn.ui-btn-active,\n
html .ui-bar-a .ui-btn.ui-btn-active,\n
html .ui-body-a .ui-btn.ui-btn-active,\n
html body .ui-btn.ui-btn-a.ui-btn-active,\n
html body .ui-group-theme-a .ui-btn.ui-btn-active,\n
[class*="ui-group-theme-"] .ui-btn.ui-btn-a.ui-btn-active,\n
/* radio button */\n
.ui-page-theme-a .ui-btn.ui-radio-on,\n
html .ui-bar-a .ui-btn.ui-radio-on,\n
html .ui-body-a .ui-btn.ui-radio-on,\n
html body .ui-group-theme-a .ui-btn.ui-radio-on,\n
.ui-btn.ui-radio-on.ui-btn-a,\n
/* Active flipswitch background */\n
.ui-page-theme-a .ui-flipswitch-active,\n
html .ui-bar-a .ui-flipswitch-active,\n
html .ui-body-a .ui-flipswitch-active,\n
html body .ui-group-theme-a .ui-flipswitch-active,\n
html body .ui-flipswitch.ui-bar-a.ui-flipswitch-active,\n
/* Active slider track */\n
.ui-page-theme-a .ui-slider-track .ui-btn-active,\n
html .ui-bar-a .ui-slider-track .ui-btn-active,\n
html .ui-body-a .ui-slider-track .ui-btn-active,\n
html body .ui-group-theme-a .ui-slider-track .ui-btn-active,\n
html body div.ui-slider-track.ui-body-a .ui-btn-active,\n
/* Controlbar */\n
html .ui-page-theme-a .ui-controlbar .ui-btn:active,\n
html .ui-page-theme-a .ui-controlbar .ui-btn.ui-btn-active,\n
/* Tab Buttons */\n
html .ui-page-theme-a .ui-collapsible h1 a.ui-btn:active,\n
html .ui-page-theme-a .ui-collapsible h1 a.ui-btn.ui-btn-active,\n
html .ui-page-theme-a .ui-collapsible-set .ui-collapsible h1 a.ui-btn:active,\n
html .ui-page-theme-a .ui-collapsible-set .ui-collapsible h1 a.ui-btn.ui-btn-active,\n
/* black */\n
html .ui-page-theme-b .ui-bar-active,\n
.ui-page-theme-b .ui-btn:active,\n
html .ui-bar-b .ui-btn:active,\n
html .ui-body-b .ui-btn:active,\n
html body .ui-btn.ui-btn-b:active,\n
html body .ui-group-theme-b .ui-btn:active,\n
[class*="ui-group-theme-"] .ui-btn.ui-btn-b:active,\n
/* Active button */\n
.ui-page-theme-b .ui-btn.ui-btn-active,\n
html .ui-bar-b .ui-btn.ui-btn-active,\n
html .ui-body-b .ui-btn.ui-btn-active,\n
html body .ui-btn.ui-btn-b.ui-btn-active,\n
html body .ui-group-theme-b .ui-btn.ui-btn-active,\n
[class*="ui-group-theme-"] .ui-btn.ui-btn-b.ui-btn-active,\n
/* radio on */\n
.ui-page-theme-b .ui-btn.ui-radio-on,\n
html .ui-bar-b .ui-btn.ui-radio-on,\n
html .ui-body-b .ui-btn.ui-radio-on,\n
html body .ui-group-theme-b .ui-btn.ui-radio-on,\n
.ui-btn.ui-radio-on.ui-btn-b ,\n
/* Active flipswitch background */\n
.ui-page-theme-b .ui-flipswitch-active,\n
html .ui-bar-b .ui-flipswitch-active,\n
html .ui-body-b .ui-flipswitch-active,\n
html body .ui-group-theme-b .ui-flipswitch-active,\n
html body .ui-flipswitch.ui-bar-b.ui-flipswitch-active,\n
/* Active slider track */\n
.ui-page-theme-b .ui-slider-track .ui-btn-active,\n
html .ui-bar-b .ui-slider-track .ui-btn-active,\n
html .ui-body-b .ui-slider-track .ui-btn-active,\n
html body .ui-group-theme-b .ui-slider-track .ui-btn-active,\n
html body div.ui-slider-track.ui-body-b .ui-btn-active,\n
/* Table rows on hover */\n
html .document-table tbody tr.linkable:hover td:not(.ui-no-result),\n
html .document-table tbody tr.linkable:hover th:not(.ui-no-result),\n
/* Controlbar */\n
html .ui-page-theme-b .ui-controlbar .ui-btn:active,\n
html .ui-page-theme-b .ui-controlbar .ui-btn.ui-btn-active,\n
/* Tab Buttons */\n
html .ui-page-theme-b .ui-collapsible h1 a.ui-btn:active,\n
html .ui-page-theme-b .ui-collapsible h1 a.ui-btn.ui-btn-active\n
html .ui-page-theme-b .ui-collapsible-set .ui-collapsible h1 a.ui-btn:active,\n
html .ui-page-theme-b .ui-collapsible-set .ui-collapsible h1 a.ui-btn.ui-btn-active,\n
/* LOADER */\n
html .ui-loader.ui-body-loader-active {\n
background-color: #94f2f1;\n
background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#0fbabd), to(#94f2f1));\n
background: -webkit-linear-gradient(bottom, #0fbabd, #94f2f1);\n
background: -moz-linear-gradient(bottom, #0fbabd, #94f2f1);\n
background: -o-linear-gradient(bottom, #0fbabd, #94f2f1);\n
background: -ms-linear-gradient(bottom, #0fbabd, #94f2f1);\n
background: linear-gradient(bottom, #0fbabd, #94f2f1);\n
color: #fff !important;\n
text-shadow: none;\n
cursor: pointer;\n
}\n
/* Table rows ,no pointer... */\n
html .document-table tbody tr:hover td {\n
cursor: default;\n
}\n
\n
/* Active radio button */\n
/* white */\n
.ui-page-theme-a .ui-btn.ui-radio-on:after,\n
html .ui-bar-a .ui-btn.ui-radio-on:after,\n
html .ui-body-a .ui-btn.ui-radio-on:after,\n
html body .ui-group-theme-a .ui-btn.ui-radio-on:after,\n
.ui-btn.ui-radio-on.ui-btn-a:after,\n
/* black */\n
.ui-page-theme-b .ui-btn.ui-radio-on:after,\n
html .ui-bar-b .ui-btn.ui-radio-on:after,\n
html .ui-body-b .ui-btn.ui-radio-on:after,\n
html body .ui-group-theme-b .ui-btn.ui-radio-on:after,\n
.ui-btn.ui-radio-on.ui-btn-b:after {\n
border-color: #fff;\n
}\n
\n
/* Focus */\n
/* white */\n
.ui-overlay-a .ui-btn:focus,\n
.ui-page-theme-a .ui-btn:focus,\n
html .ui-bar-a .ui-btn:focus,\n
html .ui-body-a .ui-btn:focus,\n
html body .ui-group-theme-a .ui-btn:focus,\n
html head + body .ui-btn.ui-btn-a:focus,\n
/* Focus buttons and text inputs with div wrap */\n
.ui-overlay-a .ui-focus,\n
.ui-page-theme-a .ui-focus,\n
html .ui-bar-a .ui-focus,\n
html .ui-body-a .ui-focus,\n
html body .ui-group-theme-a .ui-focus,\n
html head + body .ui-btn-a.ui-focus,\n
html head + body .ui-body-a.ui-focus,\n
/* black */\n
.ui-overlay-b .ui-btn:focus,\n
.ui-page-theme-b .ui-btn:focus,\n
html .ui-bar-b .ui-btn:focus,\n
html .ui-body-b .ui-btn:focus,\n
html body .ui-group-theme-b .ui-btn:focus,\n
html head + body .ui-btn.ui-btn-b:focus,\n
/* Focus buttons and text inputs with div wrap */\n
.ui-overlay-b .ui-focus,\n
.ui-page-theme-b .ui-focus,\n
html .ui-bar-b .ui-focus,\n
html .ui-body-b .ui-focus,\n
html body .ui-group-theme-b .ui-focus,\n
html head + body .ui-btn-b.ui-focus,\n
html head + body .ui-body-b.ui-focus{\n
-webkit-box-shadow: 0 0 6px #0fbabd;\n
box-shadow: 0 0 6px #0fbabd;\n
}\n
\n
\n
/* =========================== Override Widgets =========================== */\n
\n
/* ------------------------ Toolbar (header/footer) ----------------------- */\n
.ui-header, .ui-footer {\n
border-width: 1px 0;\n
}\n
/* position */\n
.ui-header .ui-btn-left,\n
.ui-header .ui-btn-right {\n
top: 0;\n
position: absolute;\n
bottom: 0;\n
}\n
.ui-header .ui-btn-left {\n
left: 0;\n
}\n
.ui-header .ui-btn-right {\n
right: 0;\n
}\n
/* fix controlgroups in header font-size */\n
.ui-header .ui-controlgroup.ui-btn-left,\n
.ui-header .ui-controlgroup.ui-btn-right {\n
font-size: auto;\n
}\n
/* double borders */\n
html .ui-header .ui-btn-left.ui-btn,\n
html .ui-header .ui-btn-left .ui-btn {\n
border-right: 1px solid rgb(232, 232, 232); /* IE8 */\n
border-right: 1px solid rgba(232, 232, 232, 0.5);\n
}\n
html .ui-header .ui-btn-right.ui-btn,\n
html .ui-header .ui-btn-right .ui-btn {\n
border-left: 1px solid rgb(115, 115, 115); /* IE8 */\n
border-left: 1px solid rgba(0, 0, 0, 0.55);\n
}\n
/* blank JQM icons for font-awesome, remove icon borders/background */\n
.ui-header .ui-btn:before {\n
content: "";\n
height: 100%;\n
position: absolute;\n
width: 0;\n
bottom: 0;\n
top: 0;\n
}\n
.ui-header .ui-btn-left .ui-btn:before,\n
.ui-header .ui-btn-left.ui-btn:before {\n
right: 0px;\n
border-right: 1px solid rgb(115, 115, 115); /* IE8 */\n
border-right: 1px solid rgba(0, 0, 0, 0.55);\n
}\n
.ui-header .ui-btn-right .ui-btn:before,\n
.ui-header .ui-btn-right.ui-btn:before {\n
left: 0px;\n
border-left: 1px solid rgb(232, 232, 232); /* IE8 */\n
border-left: 1px solid rgba(232, 232, 232, 0.5);\n
}\n
\n
/* hide button text on small screens, if button has class "responsive" */\n
@media (max-width: 40em) {\n
.responsive.ui-btn,\n
.ui-select span.responsive {\n
text-indent: -9999px;\n
white-space: nowrap !important;\n
}\n
.responsive.ui-btn:after {\n
text-indent: 0px;\n
left: .6em;\n
}\n
/* center select(!) icons on responsive layouts */\n
.ui-mini.ui-btn-icon-left:after,\n
.ui-mini .ui-btn-icon-left:after,\n
.ui-header .ui-btn-icon-left:after,\n
.ui-footer .ui-btn-icon-left:after {\n
left: .6em;\n
}\n
}\n
/* stretch */\n
html body .ui-header a.ui-btn,\n
html body .ui-header .ui-controlgroup div.ui-select .ui-btn {\n
-webkit-border-radius: 0;\n
border-radius: 0;\n
-webkit-box-shadow: none;\n
box-shadow: none;\n
height: 100%;\n
margin: 0;\n
padding-bottom: 0;\n
padding-top: 0;\n
}\n
/* =============================== SELECT ================================= */\n
/* align with height of inputs */\n
html body div.ui-select div {\n
height: 22px;\n
line-height: 1.7em;\n
padding-bottom: 5px;\n
padding-top: 5px;\n
}\n
html body div.ui-select div span {\n
color: #000;\n
}\n
/* =============================== BUTTON ================================= */\n
/* unbold */\n
html .ui-btn, label.ui-btn {\n
font-weight: normal;\n
}\n
/* fix svg icon positioning */\n
.ui-btn-icon-notext:after,\n
.ui-btn-icon-left:after,\n
.ui-btn-icon-top:after,\n
.ui.btn-icon-bottom:after,\n
.ui-btn-icon-right:after,\n
.ui-listview > li > .ui-btn[class*="ui-icon-"]:after {\n
margin-top: -11px;\n
top: 50%;\n
}\n
\n
/* fix text-indent when trying to use custom icons on iconpos-notext buttons */\n
.ui-btn-icon-notext {\n
text-indent: -9999px;\n
}\n
.ui-btn-icon-notext:after {\n
text-indent: 0;\n
}\n
\n
/* ---------------------------- TABLE ------------------------------------ */\n
/* NOTE: since the table widget is not used, JQM CSS is added hard coded */\n
/* default table styles */\n
.document-table {\n
border-collapse: separate;\n
border-spacing: 0;\n
padding: 0;\n
width: 100%;\n
}\n
.document-table th,\n
.document-table td {\n
line-height: 1.5em;\n
text-align: left;\n
padding: .4em .5em;\n
vertical-align:top;\n
}\n
.document-table th .ui-btn,\n
.document-table td .ui-btn {\n
line-height: normal;\n
}\n
.document-table th {\n
font-weight: bold;\n
}\n
.document-table caption {\n
text-align: left;\n
margin-bottom: 1.4em;\n
opacity: .5;\n
}\n
\n
/* radius */\n
.ui-table-inset {\n
-webkit-border-radius: .3125em;\n
border-radius: .3125em;\n
}\n
.ui-table-inset thead,\n
.ui-table-inset thead tr:first-child {\n
-webkit-border-top-left-radius: inherit;\n
border-top-left-radius: inherit;\n
-webkit-border-top-right-radius: inherit;\n
border-top-right-radius: inherit;\n
}\n
.ui-table-inset thead tr:first-child td:first-child,\n
.ui-table-inset thead tr:first-child th:first-child{\n
-webkit-border-top-left-radius: inherit;\n
border-top-left-radius: inherit;\n
}\n
.ui-table-inset thead tr:first-child td:last-child,\n
.ui-table-inset thead tr:first-child th:last-child{\n
-webkit-border-top-right-radius: inherit;\n
border-top-right-radius: inherit;\n
}\n
.ui-table-inset tbody tr:last-child td:first-child,\n
.ui-table-inset tbody tr:last-child th:first-child {\n
-webkit-border-bottom-left-radius: inherit;\n
border-bottom-left-radius: inherit;\n
}\n
.ui-table-inset tbody tr:last-child td:last-child,\n
.ui-table-inset tbody tr:last-child th:last-child {\n
-webkit-border-bottom-right-radius: inherit;\n
border-bottom-right-radius: inherit;\n
}\n
\n
/* format header cells (partially overwriting theme css) */\n
html .document-table thead th,\n
html .document-table thead td {\n
padding: 0;\n
text-shadow: none;\n
font-weight: normal;\n
vertical-align: middle;\n
text-align: center;\n
padding: 0 .25em;\n
-webkit-box-sizing: border-box;\n
-moz-box-sizing: border-box;\n
box-sizing: border-box;\n
}\n
/* set same padding everywhere */\n
html .document-table tbdoy th,\n
html .document-table tbody td {\n
padding: 0 1em;\n
vertical-align: middle;\n
}\n
@media (max-width: 20em) {\n
html .document-table tbdoy th,\n
html .document-table tbody td {\n
padding: 0;\n
height: 2.125em; /* mh... */\n
}\n
}\n
/* uncss table body links */\n
html .document-table tbody td a,\n
html .document-table tbody th a {\n
text-decoration: none;\n
font-weight: normal;\n
}\n
html .document-table tbody td:hover a,\n
html .document-table tbody th:hover a {\n
text-decoration: none;\n
}\n
\n
/* override JQM default format */\n
html .document-table {\n
border: 1px solid;\n
}\n
/* alignment */\n
html .document-table thead th .ui-btn,\n
html .document-table thead td .ui-btn {\n
text-align: left;\n
}\n
/* table strokes/stripe */\n
html .document-table thead th,\n
html .document-table thead th,\n
html .document-table tbody tr:last-child {\n
border-bottom: 1px solid #d6d6d6; /* non-RGBA fallback */\n
border-bottom: 1px solid rgba(0,0,0,.1);\n
}\n
html .document-table tbody th,\n
html .document-table tbody td {\n
border-bottom: 1px solid #e6e6e6; /* non-RGBA fallback */\n
border-bottom: 1px solid rgba(0,0,0,.05);\n
}\n
html .document-table tbody tr:last-child th,\n
html .document-table tbody tr:last-child td {\n
border-bottom: 0;\n
}\n
html .document-table tbody tr:nth-child(odd) td,\n
html .document-table tbody tr:nth-child(odd) th {\n
background-color: #eeeeee; /* non-RGBA fallback */\n
background-color: rgba(0,0,0,.04);\n
}\n
\n
/* ------------------------ TABS/GRID ------------------------------------ */\n
/* copy JQM grid CSS without width (set below) */\n
ul.grid-items, ul.grid-items li {\n
list-style: none outside none;\n
margin-left: 0;\n
margin-right: 0;\n
padding: 0;\n
}\n
ul.grid-items {\n
overflow: hidden;\n
}\n
ul.grid-items li {\n
float: left;\n
}\n
.grid-container ul li:first-child {\n
clear: left;\n
}\n
/*\n
* Width:\n
* default all in one line (as for tabs)\n
* > add .line-[x] to .grid-container = force [x] items/line\n
* > add .ui-responsive to .grid-container = force ONE item/line on smartphone\n
*/\n
\n
/* thx: Lea Verou - http://bit.ly/1rAhqzm */\n
.grid-container li a {\n
border-top: 0px;\n
}\n
.grid-container li.ui-block-a,\n
.grid-container li.ui-block-b {\n
clear: none;\n
}\n
.grid-container ul li:first-child:nth-last-child(1),\n
div.grid-container ul.grid-items.line-1 li,\n
div.grid-container ul.grid-items.line-1 li ~ li {\n
width: 100%;\n
}\n
.grid-container ul li:first-child:nth-last-child(2),\n
.grid-container ul li:first-child:nth-last-child(2) ~ li,\n
div.grid-container ul.grid-items.line-2 li,\n
div.grid-container ul.grid-items.line-2 li ~ li {\n
width: 50%;\n
}\n
.grid-container ul li:first-child:nth-last-child(3),\n
.grid-container ul li:first-child:nth-last-child(3) ~ li,\n
div.grid-container ul.grid-items.line-3 li,\n
div.grid-container ul.grid-items.line-3 li ~ li {\n
width: 33.3333%;\n
}\n
.grid-container ul li:first-child:nth-last-child(4),\n
.grid-container ul li:first-child:nth-last-child(4) ~ li,\n
div.grid-container ul.grid-items.line-4 li,\n
div.grid-container ul.grid-items.line-4 li ~ li {\n
width: 25%;\n
}\n
.grid-container ul li:first-child:nth-last-child(5),\n
.grid-container ul li:first-child:nth-last-child(5) ~ li,\n
div.grid-container ul.grid-items.line-5 li,\n
div.grid-container ul.grid-items.line-5 li ~ li {\n
width: 20%;\n
}\n
.grid-container ul li:first-child:nth-last-child(6),\n
.grid-container ul li:first-child:nth-last-child(6) ~ li,\n
div.grid-container ul.grid-items.line-6 li,\n
div.grid-container ul.grid-items.line-6 li ~ li {\n
width: 16.667%;\n
}\n
.grid-container ul li:first-child:nth-last-child(7),\n
.grid-container ul li:first-child:nth-last-child(7) ~ li,\n
div.grid-container ul.grid-items.line-7 li,\n
div.grid-container ul.grid-items.line-7 li ~ li {\n
width: 14,285714286%;\n
}\n
.grid-container ul li:first-child:nth-last-child(8),\n
.grid-container ul li:first-child:nth-last-child(8) ~ li,\n
div.grid-container ul.grid-items.line-8 li,\n
div.grid-container ul.grid-items.line-8 li ~ li {\n
width: 12.5%;\n
}\n
.grid-container ul li:first-child:nth-last-child(9),\n
.grid-container ul li:first-child:nth-last-child(9) ~ li,\n
div.grid-container ul.grid-items.line-9 li,\n
div.grid-container ul.grid-items.line-9 li ~ li {\n
width: 11.112%;\n
}\n
.grid-container ul li:first-child:nth-last-child(10),\n
.grid-container ul li:first-child:nth-last-child(10) ~ li,\n
div.grid-container ul.grid-items.line-10 li,\n
div.grid-container ul.grid-items.line-10 li ~ li {\n
width: 10%;\n
}\n
\n
@media (max-width: 40em) {\n
div.grid-container.ui-responsive ul.grid-items li,\n
div.grid-container.ui-responsive ul.grid-items li ~ li {\n
width: 100%;\n
}\n
}\n
/* ----------------------------- FORM LAYOUT ------------------------------ */\n
/* Romain */\n
iframe {\n
width: 95%;\n
height: 500px;\n
}\n
\n
/* XXX still terrilble */\n
/* mimic ui-content */\n
section.document_list,\n
section.document_table,\n
form.save_form {\n
border-width: 0;\n
overflow: visible;\n
overflow-x: hidden;\n
padding: 1em;\n
}\n
form.save_form section.document_table {\n
padding: 0;\n
}\n
section.document_table thead tr th {\n
height: 2.25em;\n
}\n
/* inset + listview|table|form */\n
.document-listview,\n
.document-table {\n
margin: -1em;\n
}\n
.document-listview.ui-listview-inset,\n
.document-table.ui-table-inset {\n
margin: 1em 0;\n
}\n
\n
/* action menu */\n
.action_list {\n
display: inline-block;\n
}\n
/* override default page wrapping */\n
.ui-mobile .ui-page-active {\n
overflow: hidden;\n
}\n
\n
/* readonly */\n
.custom-readonly {\n
opacity: 1;\n
}\n
/* padding and overall width */\n
html .left, html .right, html .center, html .bottom {\n
vertical-align: top;\n
padding: 0 2%;\n
}\n
html .center, html .bottom {\n
display: block;\n
width: 96%;\n
}\n
html .left, html .right {\n
display: inline-block;\n
width: 45%;\n
}\n
html .left textarea, html .right textarea {\n
width: 100%;\n
display: inline-block;\n
vertical-align: midle;\n
}\n
/* override border-radius for all inputs to match buttons */\n
html form .ui-input-text.ui-corner-all {\n
-webkit-border-radius: .325em;\n
border-radius: .325em;\n
}\n
\n
/* set line height on forms*/\n
html.ui-mobile body form label {\n
line-height: 1em;\n
}\n
\n
/* fix relation of label/legend to input to display side-by-side */\n
.field_container fieldset label:not(.ui-btn),\n
.field_container fieldset div.ui-controlgroup-label {\n
max-width: 30%;\n
min-width: 30%;\n
}\n
.field_container .left label:not(.ui-btn) ~ *,\n
.field_container .left div.ui-controlgroup-label ~ *,\n
.field_container .right label:not(.ui-btn) ~ * ,\n
.field_container .right div.ui-controlgroup-label ~ * {\n
width: 70%;\n
}\n
.field_container .center label:not(.ui-btn) ~ *,\n
.field_container .center div.ui-controlgroup-label ~ * {\n
width: 68%;\n
}\n
\n
@media (max-width: 40em) {\n
html .center, html .bottom, html .left, html .right {\n
width: auto;\n
display: block;\n
}\n
\n
html .left textarea,\n
html .right textarea,\n
html.ui-mobile body .field_container fieldset.left div label,\n
html.ui-mobile body .field_container fieldset.left div label ~ *,\n
html.ui-mobile body .field_container fieldset.right div label,\n
html.ui-mobile body .field_container fieldset.right div label ~ *,\n
html.ui-mobile body .field_container fieldset.center div label,\n
html.ui-mobile body .field_container fieldset.center div label ~ * {\n
width: auto;\n
}\n
html.ui-mobile body .field_container fieldset.left div label,\n
html.ui-mobile body .field_container fieldset.right div label,\n
html.ui-mobile body .field_container fieldset.center div label {\n
min-width: none;\n
max-width: none;\n
margin-bottom: -.5em;\n
}\n
html .left textarea,\n
html .right textarea {\n
min-width: 100%;\n
}\n
}\n
/* --------------------------- FORM INPUTS -------------------------------- */\n
\n
/* set field and input side by side */\n
.field_container fieldset label:not(.ui-btn),\n
.field_container fieldset div.ui-controlgroup-label,\n
.field_container fieldset label:not(.ui-btn) ~ *,\n
.field_container fieldset div.ui-controlgroup-label ~ * {\n
display: inline-block;\n
vertical-align: middle;\n
}\n
@media (max-width: 40em) {\n
.field_container fieldset label:not(.ui-btn),\n
.field_container fieldset div.ui-controlgroup-label,\n
.field_container fieldset label:not(.ui-btn) ~ *,\n
.field_container fieldset div.ui-controlgroup-label ~ * {\n
display: block;\n
vertical-align: top;\n
}\n
}\n
/* --------------------------- CARD -------------------------------- */\n
html .ui-card {\n
border: 1px solid;\n
max-width: 35%;\n
margin-left: auto;\n
margin-right: auto;\n
margin-top: 10%;\n
}\n
@media (max-width: 40em) {\n
html .ui-card {\n
max-width: none;\n
margin-top: 30%;\n
}\n
}\n
/* -------------------- BREADCRUMB ----------------------------- */\n
html.ui-mobile body nav.ui-title {\n
padding: 0;\n
}\n
.breadcrumb_container {\n
float: left;\n
}
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>RenderJS Gadget ERP5 CSS</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>001</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>edit_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>processing_status_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>publish_alive</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>sven</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1411390496.99</float>
<string>GMT</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>published_alive</string> </value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>sven</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>937.48419.62008.14711</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1411390338.58</float>
<string>GMT</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>sven</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_processing_state</string> </key>
<value> <string>converted</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1411390316.76</float>
<string>GMT</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
......@@ -75,7 +75,7 @@
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_erp5_listbox.html</string> </value>
<value> <string>gadget_erp5_field_listbox.html</string> </value>
</item>
<item>
<key> <string>description</string> </key>
......@@ -119,16 +119,19 @@
\n
\n
<!-- custom script -->\n
<script src="gadget_erp5_listbox.js" type="text/javascript"></script>\n
<script src="gadget_erp5_field_listbox.js" type="text/javascript"></script>\n
\n
</head>\n
<body>\n
\n
<!-- XXX must set a theme here -->\n
<section class="document_table">\n
<table class="document-table ui-table-inset">\n
<thead>\n
</thead>\n
<table class="ui-responsive ui-body-c ui-table-inset">\n
<thead class="ui-bar-inherit"></thead>\n
<tfoot class="ui-bar-inherit"></tfoot>\n
</table>\n
</section>\n
\n
</body>\n
</html>
......@@ -267,7 +270,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>936.33436.2727.34850</string> </value>
<value> <string>937.51306.4912.34986</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -285,7 +288,7 @@
</tuple>
<state>
<tuple>
<float>1406559285.77</float>
<float>1411576737.72</float>
<string>GMT</string>
</tuple>
</state>
......
......@@ -71,7 +71,7 @@
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_erp5_listbox.js</string> </value>
<value> <string>gadget_erp5_field_listbox.js</string> </value>
</item>
<item>
<key> <string>description</string> </key>
......@@ -101,7 +101,7 @@
<key> <string>text_content</string> </key>
<value> <string encoding="cdata"><![CDATA[
/*jslint indent: 2, maxerr: 3 */\n
/*jslint indent: 2, maxerr: 3, nomen: true */\n
/*global window, document, rJS, URI, RSVP */\n
(function (window, document, rJS, URI, RSVP) {\n
"use strict";\n
......@@ -216,6 +216,7 @@
th = document.createElement("th");\n
a = document.createElement("a");\n
a.href = tmp_url;\n
a.className = "ui-link";\n
a.textContent = (result.data.rows[i]\n
.value[field_json.column_list[j][0]] || "");\n
th.appendChild(a);\n
......@@ -248,7 +249,8 @@
\n
}).push(function (url_list) {\n
var fragment = document.createDocumentFragment(),\n
tfoot = document.createElement("tfoot"),\n
tfoot = gadget.__element.querySelector("tfoot"),\n
//tfoot = document.createElement("tfoot"),\n
tr = document.createElement("tr"),\n
th = document.createElement("th"),\n
paging_prev = document.createElement("a"),\n
......@@ -435,7 +437,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>937.42823.42032.43861</string> </value>
<value> <string>937.51222.46996.32273</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -453,7 +455,7 @@
</tuple>
<state>
<tuple>
<float>1411054572.53</float>
<float>1411984629.48</float>
<string>GMT</string>
</tuple>
</state>
......
......@@ -75,7 +75,7 @@
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_erp5_listfield.html</string> </value>
<value> <string>gadget_erp5_field_list.html</string> </value>
</item>
<item>
<key> <string>description</string> </key>
......@@ -117,7 +117,7 @@
<script src="renderjs.js" type="text/javascript"></script>\n
<script src="handlebars.js" type="text/javascript"></script>\n
<!-- custom script -->\n
<script src="gadget_erp5_listfield.js" type="text/javascript"></script>\n
<script src="gadget_erp5_field_list.js" type="text/javascript"></script>\n
\n
<script id="option-template" type="text/x-handlebars-template">\n
<option value="{{value}}">{{text}}</option>\n
......@@ -254,7 +254,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
<value> <string>sven</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -268,7 +268,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>936.14639.2726.21299</string> </value>
<value> <string>937.51428.60613.12390</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -286,7 +286,7 @@
</tuple>
<state>
<tuple>
<float>1405933454.94</float>
<float>1411576752.72</float>
<string>GMT</string>
</tuple>
</state>
......
......@@ -71,7 +71,7 @@
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_erp5_listfield.js</string> </value>
<value> <string>gadget_erp5_field_list.js</string> </value>
</item>
<item>
<key> <string>description</string> </key>
......@@ -128,7 +128,7 @@
});\n
})\n
.declareMethod(\'render\', function (options) {\n
var select = this.element.getElementsByTagName(\'select\')[0],\n
var select = this.element.querySelector(\'select\'),\n
i,\n
template,\n
field_json = options.field_json,\n
......@@ -146,6 +146,12 @@
});\n
}\n
select.innerHTML += tmp;\n
if (field_json.editable !== 1) {\n
select.setAttribute(\'readonly\', \'readonly\');\n
select.setAttribute(\'data-wrapper-class\', \'ui-state-readonly\');\n
// select.setAttribute(\'disabled\', \'disabled\');\n
\n
}\n
})\n
\n
.declareMethod(\'getContent\', function () {\n
......@@ -278,7 +284,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>romain</string> </value>
<value> <string>sven</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -292,7 +298,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>937.42824.63714.12373</string> </value>
<value> <string>937.51405.48576.10854</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -310,7 +316,7 @@
</tuple>
<state>
<tuple>
<float>1411054676.69</float>
<float>1411570828.74</float>
<string>GMT</string>
</tuple>
</state>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Web Page" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Anonymous</string>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Anonymous</string>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_erp5_page_action.html</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>rjs_gadget_erp5_pt_actionpage_html</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>en</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Page</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>text_content</string> </key>
<value> <string encoding="cdata"><![CDATA[
<!DOCTYPE html>\n
<html>\n
<head>\n
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />\n
<meta name="viewport" content="width=device-width, user-scalable=no" />\n
<title>ERP5 Page Action</title>\n
\n
<!-- renderjs -->\n
<script src="RSVP.js" type="text/javascript"></script>\n
<script src="renderjs.js" type="text/javascript"></script>\n
\n
<script src="handlebars.js" type="text/javascript"></script>\n
\n
<!-- custom script -->\n
<script src="gadget_global.js" type="text/javascript"></script>\n
<script src="gadget_erp5_page_action.js" type="text/javascript"></script>\n
\n
<script id="table-template" type="text/x-handlebars-template">\n
<ul data-role="listview" data-theme="c" data-inset="true" class="document-listview">\n
<li data-role="list-divider"><h1>{{definition_title}}</h1></li>\n
{{#each documentlist}}\n
<li><a class="ui-body-inherit" href="{{link}}">{{title}}</a></li>\n
{{/each}}\n
</ul>\n
</script>\n
\n
</head>\n
<body>\n
</body>\n
</html>
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Gadget ERP5 Action</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>001</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>edit_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>processing_status_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>publish_alive</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>romain</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1411734064.61</float>
<string>GMT</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>published_alive</string> </value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>romain</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>937.54148.37538.12919</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1411734053.92</float>
<string>GMT</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>romain</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_processing_state</string> </key>
<value> <string>converted</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1411734015.66</float>
<string>GMT</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Web Script" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Anonymous</string>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Anonymous</string>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_erp5_page_action.js</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>rjs_gadget_erp5_pt_actionpage_js</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>en</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Script</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>text_content</string> </key>
<value> <string encoding="cdata"><![CDATA[
/*global window, rJS, RSVP, Handlebars */\n
/*jslint nomen: true, indent: 2, maxerr: 3 */\n
(function (window, rJS, RSVP, Handlebars) {\n
"use strict";\n
\n
/////////////////////////////////////////////////////////////////\n
// Handlebars\n
/////////////////////////////////////////////////////////////////\n
// Precompile the templates while loading the first gadget instance\n
var gadget_klass = rJS(window),\n
source = gadget_klass.__template_element\n
.getElementById("table-template")\n
.innerHTML,\n
table_template = Handlebars.compile(source);\n
\n
gadget_klass\n
/////////////////////////////////////////////////////////////////\n
// ready\n
/////////////////////////////////////////////////////////////////\n
// Init local properties\n
.ready(function (g) {\n
g.props = {};\n
})\n
\n
// Assign the element to a variable\n
.ready(function (g) {\n
return g.getElement()\n
.push(function (element) {\n
g.props.element = element;\n
});\n
})\n
\n
/////////////////////////////////////////////////////////////////\n
// Acquired methods\n
/////////////////////////////////////////////////////////////////\n
.declareAcquiredMethod("jio_get", "jio_get")\n
.declareAcquiredMethod("whoWantToDisplayThisPage", "whoWantToDisplayThisPage")\n
.declareAcquiredMethod("renderPageHeader", "renderPageHeader")\n
\n
/////////////////////////////////////////////////////////////////\n
// declared methods\n
/////////////////////////////////////////////////////////////////\n
.declareMethod("render", function (options) {\n
var gadget = this,\n
erp5_document,\n
view_list;\n
\n
return gadget.jio_get({"_id": options.jio_key})\n
.push(function (result) {\n
var i,\n
promise_list = [\n
gadget.whoWantToDisplayThisPage({name: options.view, editable: options.editable}),\n
gadget.whoWantToDisplayThisPage({name: options.view, editable: options.editable, page: "breadcrumb"})\n
];\n
erp5_document = result.data;\n
view_list = erp5_document._links.action_workflow || [];\n
\n
if (view_list.constructor !== Array) {\n
view_list = [view_list];\n
}\n
\n
for (i = 0; i < view_list.length; i += 1) {\n
promise_list.push(gadget.whoWantToDisplayThisPage({\n
name: view_list[i].name\n
}));\n
}\n
return RSVP.all(promise_list);\n
})\n
.push(function (all_result) {\n
var i,\n
tab_list = [];\n
\n
for (i = 2; i < all_result.length; i += 1) {\n
tab_list.push({\n
title: view_list[i - 2].title,\n
link: all_result[i]\n
});\n
}\n
\n
\n
gadget.props.element.innerHTML = table_template({\n
definition_title: "Workflow Transitions",\n
documentlist: tab_list\n
});\n
\n
return gadget.renderPageHeader({\n
back_url: all_result[0],\n
page_title: erp5_document.title,\n
breadcrumb_url: all_result[1]\n
});\n
});\n
\n
});\n
\n
}(window, rJS, RSVP, Handlebars));
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Gadget ERP5 Action JS</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>001</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>edit_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>processing_status_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>publish_alive</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>romain</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1411734193.12</float>
<string>GMT</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>published_alive</string> </value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>romain</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>937.58328.20811.57019</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1411984843.95</float>
<string>GMT</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>romain</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_processing_state</string> </key>
<value> <string>converted</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1411734095.88</float>
<string>GMT</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
......@@ -75,7 +75,7 @@
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_erp5_breadcrumb.html</string> </value>
<value> <string>gadget_erp5_page_breadcrumb.html</string> </value>
</item>
<item>
<key> <string>description</string> </key>
......@@ -85,7 +85,7 @@
</item>
<item>
<key> <string>id</string> </key>
<value> <string>rjs_gadget_erp5_breadcrumb_html</string> </value>
<value> <string>rjs_gadget_erp5_pt_breadcrumbpage_html</string> </value>
</item>
<item>
<key> <string>language</string> </key>
......@@ -110,34 +110,29 @@
<head>\n
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />\n
<meta name="viewport" content="width=device-width, user-scalable=no" />\n
<title>ERP5 Breadcrumb</title>\n
<title>ERP5 Page Tab</title>\n
\n
<!-- renderjs -->\n
<script src="RSVP.js" type="text/javascript"></script>\n
<script src="renderjs.js" type="text/javascript"></script>\n
<script src="URI.js" type="text/javascript"></script>\n
\n
<script src="handlebars.js" type="text/javascript"></script>\n
\n
<!-- custom script -->\n
<script src="gadget_erp5_breadcrumb.js" type="text/javascript"></script>\n
\n
<script id="breadcrumb-template" type="text/x-handlebars-template">\n
<p>\n
{{#each parentlist}}\n
<a href="{{link}}">{{title}}</a> >\n
<script src="gadget_global.js" type="text/javascript"></script>\n
<script src="gadget_erp5_page_breadcrumb.js" type="text/javascript"></script>\n
\n
<script id="table-template" type="text/x-handlebars-template">\n
<ul data-role="listview" data-theme="c" data-inset="true" class="document-listview">\n
<li data-role="list-divider"><h1>{{definition_title}}</h1></li>\n
{{#each documentlist}}\n
<li><a class="ui-body-inherit" href="{{link}}">{{title}}</a></li>\n
{{/each}}\n
<a class="responsive ui-btn ui-icon-carat-d ui-btn-icon-right" data-role="button" role="button">{{title}}</a>\n
</p>\n
</ul>\n
</script>\n
\n
\n
</head>\n
<body>\n
<nav class="ui-title">\n
<p>\n
<a class="responsive ui-btn ui-icon-carat-d ui-btn-icon-right" data-role="button" role="button">ERP5</a>\n
</p>\n
</nav>\n
</body>\n
</html>
......@@ -231,7 +226,7 @@
</tuple>
<state>
<tuple>
<float>1407249185.95</float>
<float>1411741130.71</float>
<string>GMT</string>
</tuple>
</state>
......@@ -276,7 +271,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>937.44124.45260.39765</string> </value>
<value> <string>937.54266.11951.14011</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -294,7 +289,7 @@
</tuple>
<state>
<tuple>
<float>1411132836.24</float>
<float>1411741122.87</float>
<string>GMT</string>
</tuple>
</state>
......@@ -351,7 +346,7 @@
</tuple>
<state>
<tuple>
<float>1407246316.11</float>
<float>1411741075.58</float>
<string>GMT</string>
</tuple>
</state>
......
......@@ -71,7 +71,7 @@
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_erp5_breadcrumb.js</string> </value>
<value> <string>gadget_erp5_page_breadcrumb.js</string> </value>
</item>
<item>
<key> <string>description</string> </key>
......@@ -81,7 +81,7 @@
</item>
<item>
<key> <string>id</string> </key>
<value> <string>rjs_gadget_erp5_breadcrumb_js</string> </value>
<value> <string>rjs_gadget_erp5_pt_breadcrumbpage_js</string> </value>
</item>
<item>
<key> <string>language</string> </key>
......@@ -99,9 +99,9 @@
</item>
<item>
<key> <string>text_content</string> </key>
<value> <string>/*jslint nomen: true, indent: 2, maxerr: 3 */\n
/*global URI, window, rJS, Handlebars, RSVP */\n
(function (URI, window, rJS, Handlebars, RSVP) {\n
<value> <string>/*global window, rJS, RSVP, Handlebars, URI */\n
/*jslint nomen: true, indent: 2, maxerr: 3 */\n
(function (window, rJS, RSVP, Handlebars, URI) {\n
"use strict";\n
\n
/////////////////////////////////////////////////////////////////\n
......@@ -110,9 +110,9 @@
// Precompile the templates while loading the first gadget instance\n
var gadget_klass = rJS(window),\n
source = gadget_klass.__template_element\n
.getElementById("breadcrumb-template")\n
.getElementById("table-template")\n
.innerHTML,\n
breadcrumb_template = Handlebars.compile(source);\n
table_template = Handlebars.compile(source);\n
\n
gadget_klass\n
/////////////////////////////////////////////////////////////////\n
......@@ -128,18 +128,25 @@
return g.getElement()\n
.push(function (element) {\n
g.props.element = element;\n
g.props.nav_element = element.querySelector("nav");\n
});\n
})\n
\n
.declareAcquiredMethod("whoWantToDisplayThis", "whoWantToDisplayThis")\n
/////////////////////////////////////////////////////////////////\n
// Acquired methods\n
/////////////////////////////////////////////////////////////////\n
.declareAcquiredMethod("jio_get", "jio_get")\n
.declareAcquiredMethod("whoWantToDisplayThisPage", "whoWantToDisplayThisPage")\n
.declareAcquiredMethod("whoWantToDisplayThis", "whoWantToDisplayThis")\n
.declareAcquiredMethod("renderPageHeader", "renderPageHeader")\n
\n
/////////////////////////////////////////////////////////////////\n
// declared methods\n
/////////////////////////////////////////////////////////////////\n
.declareMethod(\'render\', function (options) {\n
.declareMethod("render", function (options) {\n
var gadget = this,\n
parent_queue = new RSVP.Queue(),\n
erp5_document,\n
header_options = {},\n
parent_queue,\n
parent_list = [];\n
\n
function handleParent(parent_link) {\n
......@@ -151,7 +158,7 @@
jio_key = uri.segment(2);\n
if (jio_key === undefined) {\n
// Parent is the ERP5 site\n
parent_list.splice(0, 0, {\n
parent_list.push({\n
title: "ERP5",\n
link: "#"\n
});\n
......@@ -159,14 +166,13 @@
// Parent is an ERP5 document\n
return gadget.whoWantToDisplayThis(jio_key)\n
.push(function (parent_href) {\n
parent_list.splice(0, 0, {\n
parent_list.push({\n
title: parent_link.name,\n
link: parent_href\n
});\n
return gadget.jio_get({"_id": jio_key});\n
})\n
.push(function (result) {\n
// XXX Copy/pasted from gadget_erp5.js\n
handleParent(result.data._links.parent || "#");\n
});\n
}\n
......@@ -175,21 +181,33 @@
});\n
}\n
\n
handleParent(options.parent_link);\n
return gadget.whoWantToDisplayThisPage({name: options.view, editable: options.editable})\n
.push(function (back_url) {\n
header_options.back_url = back_url;\n
return gadget.jio_get({"_id": options.jio_key});\n
})\n
.push(function (result) {\n
erp5_document = result.data;\n
header_options.page_title = erp5_document.title;\n
parent_queue = new RSVP.Queue();\n
\n
handleParent(erp5_document._links.parent || "#");\n
\n
return new RSVP.Queue()\n
.push(function () {\n
return parent_queue;\n
})\n
.push(function () {\n
gadget.props.nav_element.innerHTML = breadcrumb_template({\n
title: options.title || "ERP5",\n
parentlist: parent_list\n
gadget.props.element.innerHTML = table_template({\n
definition_title: "Breadcrumb",\n
documentlist: parent_list\n
});\n
\n
return gadget.renderPageHeader(header_options);\n
\n
});\n
\n
});\n
\n
}(URI, window, rJS, Handlebars, RSVP));</string> </value>
}(window, rJS, RSVP, Handlebars, URI));</string> </value>
</item>
<item>
<key> <string>title</string> </key>
......@@ -279,7 +297,7 @@
</tuple>
<state>
<tuple>
<float>1407255095.32</float>
<float>1411741191.74</float>
<string>GMT</string>
</tuple>
</state>
......@@ -324,7 +342,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>937.44174.27024.38451</string> </value>
<value> <string>937.58290.6512.49237</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -342,7 +360,7 @@
</tuple>
<state>
<tuple>
<float>1411135730.1</float>
<float>1411984884.71</float>
<string>GMT</string>
</tuple>
</state>
......@@ -399,7 +417,7 @@
</tuple>
<state>
<tuple>
<float>1407246316.1</float>
<float>1411741169.32</float>
<string>GMT</string>
</tuple>
</state>
......
......@@ -124,14 +124,15 @@
</head>\n
<body>\n
\n
<h1></h1>\n
<!-- XXX action, method, fieldset -->\n
<form class="dialog_form">\n
<div data-gadget-url="gadget_erp5_form.html"\n
data-gadget-scope="erp5_form"\n
data-gadget-sandbox="public">\n
</div>\n
<button type="submit" class="ui-btn ui-btn-b ui-btn-inline\n
ui-icon-action ui-btn-icon-right"></button>\n
<!--button type="submit" class="ui-btn ui-btn-b ui-btn-inline\n
ui-icon-action ui-btn-icon-right"></button-->\n
</form>\n
</body>\n
</html>
......@@ -271,7 +272,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>936.43469.1612.61132</string> </value>
<value> <string>937.54178.14656.62515</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -289,7 +290,7 @@
</tuple>
<state>
<tuple>
<float>1407333743.03</float>
<float>1411735830.16</float>
<string>GMT</string>
</tuple>
</state>
......
......@@ -102,8 +102,8 @@
<value> <string encoding="cdata"><![CDATA[
/*jslint nomen: true, indent: 2, maxerr: 3 */\n
/*global window, rJS, RSVP, FormData, jIO*/\n
(function (window, rJS, RSVP, FormData, jIO) {\n
/*global window, rJS, RSVP, FormData, jIO, URI, loopEventListener */\n
(function (window, rJS, RSVP, FormData, jIO, URI, loopEventListener) {\n
"use strict";\n
\n
/////////////////////////////////////////////////////////////////\n
......@@ -136,6 +136,7 @@
.declareAcquiredMethod("pleaseRedirectMyHash", "pleaseRedirectMyHash")\n
.declareAcquiredMethod("whoWantToDisplayThisPage", "whoWantToDisplayThisPage")\n
.declareAcquiredMethod("whoWantToDisplayThis", "whoWantToDisplayThis")\n
.declareAcquiredMethod("renderPageHeader", "renderPageHeader")\n
\n
/////////////////////////////////////////////////////////////////\n
// declared methods\n
......@@ -163,13 +164,24 @@
title = view_list[i].title;\n
}\n
}\n
form_gadget.__element.querySelector("button").textContent = title;\n
form_gadget.__element.querySelector("h1").textContent = title;\n
\n
form_options.erp5_document = options.erp5_document;\n
form_options.form_definition = options.form_definition;\n
form_options.view = options.view;\n
\n
return erp5_form.render(form_options);\n
return RSVP.all([\n
erp5_form.render(form_options),\n
form_gadget.whoWantToDisplayThis(options.jio_key),\n
form_gadget.whoWantToDisplayThisPage({page: "breadcrumb"})\n
]);\n
})\n
.push(function (all_result) {\n
return form_gadget.renderPageHeader({\n
cancel_url: all_result[1],\n
page_title: options.erp5_document.title,\n
breadcrumb_url: all_result[2]\n
});\n
});\n
})\n
\n
......@@ -184,7 +196,7 @@
})\n
.push(function (content_dict) {\n
var data = new FormData(),\n
key;\n
key;\n
\n
data.append(form_gadget.props.form_id.key,\n
form_gadget.props.form_id[\'default\']);\n
......@@ -211,9 +223,8 @@
if (location === undefined) {\n
// No redirection, stay on the same document\n
return form_gadget.whoWantToDisplayThisPage({name: "view"});\n
} else {\n
return form_gadget.whoWantToDisplayThis(new URI(location).segment(2));\n
}\n
return form_gadget.whoWantToDisplayThis(new URI(location).segment(2));\n
})\n
.push(function (url) {\n
return form_gadget.pleaseRedirectMyHash(url);\n
......@@ -227,9 +238,9 @@
false,\n
formSubmit\n
);\n
});\n
});\n
\n
}(window, rJS, RSVP, FormData, jIO));
}(window, rJS, RSVP, FormData, jIO, URI, loopEventListener));
]]></string> </value>
</item>
......@@ -366,7 +377,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>937.42828.64511.54152</string> </value>
<value> <string>937.58416.46801.34491</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -384,7 +395,7 @@
</tuple>
<state>
<tuple>
<float>1411054893.66</float>
<float>1411990143.42</float>
<string>GMT</string>
</tuple>
</state>
......
......@@ -105,6 +105,13 @@
"use strict";\n
\n
rJS(window)\n
\n
/////////////////////////////////////////////////////////////////\n
// Acquired methods\n
/////////////////////////////////////////////////////////////////\n
.declareAcquiredMethod("renderPageHeader", "renderPageHeader")\n
.declareAcquiredMethod("whoWantToDisplayThisPage", "whoWantToDisplayThisPage")\n
\n
/////////////////////////////////////////////////////////////////\n
// declared methods\n
/////////////////////////////////////////////////////////////////\n
......@@ -126,13 +133,24 @@
.push(function () {\n
return RSVP.all([\n
gadget.getDeclaredGadget("erp5_searchfield"),\n
gadget.getDeclaredGadget("erp5_form")\n
gadget.getDeclaredGadget("erp5_form"),\n
gadget.whoWantToDisplayThisPage({name: options.view, page: "breadcrumb"})\n
]);\n
})\n
.push(function (all_gadget) {\n
return RSVP.all([\n
all_gadget[0].render(search_options),\n
all_gadget[1].render(form_options)\n
all_gadget[1].render(form_options),\n
gadget.renderPageHeader({\n
jump_url: "",\n
cut_url: "",\n
actions_url: "",\n
export_url: "",\n
add_url: "",\n
page_title: options.erp5_document.title,\n
breadcrumb_url: all_gadget[2]\n
})\n
\n
]);\n
});\n
\n
......@@ -273,7 +291,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>937.42830.22069.25770</string> </value>
<value> <string>937.54284.12675.3652</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -291,7 +309,7 @@
</tuple>
<state>
<tuple>
<float>1411054986.85</float>
<float>1411742227.2</float>
<string>GMT</string>
</tuple>
</state>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Web Page" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Anonymous</string>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Anonymous</string>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_erp5_pt_form_view_editable.html</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>rjs_gadget_erp5_pt_form_view_editable_html</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>en</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Page</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>text_content</string> </key>
<value> <string encoding="cdata"><![CDATA[
<!DOCTYPE html>\n
<html>\n
<head>\n
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />\n
<meta name="viewport" content="width=device-width, user-scalable=no" />\n
<title>ERP5 PT Form View</title>\n
\n
<!-- renderjs -->\n
<script src="RSVP.js" type="text/javascript"></script>\n
<script src="renderjs.js" type="text/javascript"></script>\n
\n
<!-- custom script -->\n
<script src="gadget_global.js" type="text/javascript"></script>\n
<script src="gadget_erp5_pt_form_view_editable.js" type="text/javascript"></script>\n
\n
</head>\n
<body>\n
\n
<!--div data-gadget-url="gadget_erp5_tab_list.html"\n
data-gadget-scope="erp5_tab"\n
data-gadget-sandbox="public">\n
</div-->\n
\n
<!-- XXX action, method, fieldset -->\n
<!-- XXX needs a theme -->\n
<form class="save_form ui-body-c">\n
<!--button type="submit" class="ui-btn ui-btn-b ui-btn-inline\n
ui-icon-edit ui-btn-icon-right">Save</button-->\n
\n
<!--div class="action_list ui-controlgroup ui-controlgroup-horizontal ui-corner-all">\n
<div class="ui-controlgroup-controls">\n
</div>\n
</div-->\n
\n
<div data-gadget-url="gadget_erp5_form.html"\n
data-gadget-scope="erp5_form"\n
data-gadget-sandbox="public">\n
</div>\n
</form>\n
</body>\n
</html>
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Gadget ERP5 Form View Editable</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>001</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>edit_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>processing_status_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>publish_alive</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>romain</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1411482970.08</float>
<string>GMT</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>published_alive</string> </value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>romain</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>937.51523.55.16605</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1411991218.07</float>
<string>GMT</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>romain</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_processing_state</string> </key>
<value> <string>converted</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1411482795.75</float>
<string>GMT</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Web Script" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Anonymous</string>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Anonymous</string>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_erp5_pt_form_view_editable.js</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>rjs_gadget_erp5_pt_form_view_editable_js</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>en</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Script</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>text_content</string> </key>
<value> <string>/*global window, rJS, RSVP, loopEventListener */\n
/*jslint nomen: true, indent: 2, maxerr: 3 */\n
(function (window, rJS, RSVP, loopEventListener) {\n
"use strict";\n
\n
rJS(window)\n
/////////////////////////////////////////////////////////////////\n
// ready\n
/////////////////////////////////////////////////////////////////\n
// Init local properties\n
.ready(function (g) {\n
g.props = {};\n
})\n
/////////////////////////////////////////////////////////////////\n
// ready\n
/////////////////////////////////////////////////////////////////\n
// Init local properties\n
.ready(function (g) {\n
g.props = {};\n
})\n
\n
// Assign the element to a variable\n
.ready(function (g) {\n
return g.getElement()\n
.push(function (element) {\n
g.props.element = element;\n
});\n
})\n
\n
.declareAcquiredMethod("aq_put", "jio_put")\n
.declareAcquiredMethod("whoWantToDisplayThisPage", "whoWantToDisplayThisPage")\n
.declareAcquiredMethod("whoWantToDisplayThis", "whoWantToDisplayThis")\n
.declareAcquiredMethod("renderPageHeader", "renderPageHeader")\n
/////////////////////////////////////////////////////////////////\n
// declared methods\n
/////////////////////////////////////////////////////////////////\n
.declareMethod(\'render\', function (options) {\n
var erp5_document = options.erp5_document,\n
form_gadget = this;\n
\n
form_gadget.props.id = erp5_document._id;\n
form_gadget.props.view = options.view;\n
\n
return form_gadget.getDeclaredGadget("erp5_form")\n
.push(function (erp5_form) {\n
var form_options = options.erp5_form || {};\n
\n
form_options.erp5_document = options.erp5_document;\n
form_options.form_definition = options.form_definition;\n
form_options.view = options.view;\n
\n
return RSVP.all([\n
erp5_form.render(form_options),\n
form_gadget.whoWantToDisplayThis(options.jio_key),\n
form_gadget.whoWantToDisplayThisPage({page: "tab", name: options.view}),\n
form_gadget.whoWantToDisplayThisPage({page: "action", name: options.view, editable: true}),\n
form_gadget.whoWantToDisplayThisPage({page: "breadcrumb", name: options.view, editable: true})\n
]);\n
})\n
.push(function (all_result) {\n
\n
return form_gadget.renderPageHeader({\n
tab_url: all_result[2],\n
cut_url: "",\n
actions_url: all_result[3],\n
delete_url: "",\n
add_url: "",\n
view_url: all_result[1],\n
page_title: options.erp5_document.title,\n
breadcrumb_url: all_result[4]\n
});\n
});\n
\n
})\n
\n
\n
.declareService(function () {\n
var form_gadget = this;\n
\n
function formSubmit() {\n
return form_gadget.getDeclaredGadget("erp5_form")\n
.push(function (erp5_form) {\n
return erp5_form.getContent();\n
})\n
.push(function (data) {\n
data._id = form_gadget.props.id;\n
return form_gadget.aq_put(data, {"_view": form_gadget.props.view});\n
});\n
}\n
\n
// Listen to form submit\n
return loopEventListener(\n
form_gadget.props.element.querySelector(\'form\'),\n
\'submit\',\n
false,\n
formSubmit\n
);\n
});\n
\n
}(window, rJS, RSVP, loopEventListener));</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Gadget ERP5 Form View Editable JS</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>001</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>edit_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>processing_status_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>publish_alive</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>romain</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1411482769.55</float>
<string>GMT</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>published_alive</string> </value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>romain</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>937.58431.61718.64460</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1411991083.0</float>
<string>GMT</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>romain</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_processing_state</string> </key>
<value> <string>converted</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1411482646.52</float>
<string>GMT</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
......@@ -115,41 +115,23 @@
<!-- renderjs -->\n
<script src="RSVP.js" type="text/javascript"></script>\n
<script src="renderjs.js" type="text/javascript"></script>\n
<script src="handlebars.js" type="text/javascript"></script>\n
\n
<!-- custom script -->\n
<script src="gadget_global.js" type="text/javascript"></script>\n
<script src="gadget_erp5_pt_form_view.js" type="text/javascript"></script>\n
\n
<script id="workflow-template" type="text/x-handlebars-template">\n
{{#each actionlist}}\n
<a class="{{class}}" href="{{link}}">{{title}}</a>\n
{{/each}}\n
</script>\n
\n
</head>\n
<body>\n
\n
<div data-gadget-url="gadget_erp5_tab_list.html"\n
data-gadget-scope="erp5_tab"\n
data-gadget-sandbox="public">\n
</div>\n
\n
<!-- XXX action, method, fieldset -->\n
<form class="save_form">\n
<button type="submit" class="ui-btn ui-btn-b ui-btn-inline\n
ui-icon-edit ui-btn-icon-right">Save</button>\n
\n
<div class="action_list ui-controlgroup ui-controlgroup-horizontal ui-corner-all">\n
<div class="ui-controlgroup-controls">\n
</div>\n
</div>\n
\n
<!-- XXX this is a form replacement -->\n
<div class="ui-body-c">\n
\n
<div data-gadget-url="gadget_erp5_form.html"\n
data-gadget-scope="erp5_form"\n
data-gadget-sandbox="public">\n
</div>\n
</form>\n
\n
\n
</div>\n
</body>\n
</html>
......@@ -288,7 +270,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>937.22212.34746.7150</string> </value>
<value> <string>937.49983.23949.119</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -306,7 +288,7 @@
</tuple>
<state>
<tuple>
<float>1409817872.15</float>
<float>1411576583.27</float>
<string>GMT</string>
</tuple>
</state>
......
......@@ -101,21 +101,13 @@
<key> <string>text_content</string> </key>
<value> <string encoding="cdata"><![CDATA[
/*global window, document, rJS, RSVP, Handlebars, loopEventListener */\n
/*global window, rJS, RSVP */\n
/*jslint nomen: true, indent: 2, maxerr: 3 */\n
(function (window, document, rJS, RSVP, Handlebars, loopEventListener) {\n
(function (window, rJS, RSVP) {\n
"use strict";\n
\n
/////////////////////////////////////////////////////////////////\n
// Handlebars\n
/////////////////////////////////////////////////////////////////\n
// Precompile the templates while loading the first gadget instance\n
var gadget_klass = rJS(window),\n
workflow_template = Handlebars.compile(\n
gadget_klass.__template_element\n
.getElementById("workflow-template")\n
.innerHTML\n
);\n
var gadget_klass = rJS(window);\n
\n
gadget_klass\n
/////////////////////////////////////////////////////////////////\n
......@@ -125,125 +117,65 @@
.ready(function (g) {\n
g.props = {};\n
})\n
\n
/////////////////////////////////////////////////////////////////\n
// ready\n
// Acquired methods\n
/////////////////////////////////////////////////////////////////\n
// Init local properties\n
.ready(function (g) {\n
g.props = {};\n
})\n
\n
// Assign the element to a variable\n
.ready(function (g) {\n
return g.getElement()\n
.push(function (element) {\n
g.props.element = element;\n
});\n
})\n
\n
.declareAcquiredMethod("aq_put", "jio_put")\n
.declareAcquiredMethod("renderPageHeader", "renderPageHeader")\n
.declareAcquiredMethod("whoWantToDisplayThisPage", "whoWantToDisplayThisPage")\n
\n
/////////////////////////////////////////////////////////////////\n
// declared methods\n
/////////////////////////////////////////////////////////////////\n
.declareMethod(\'render\', function (options) {\n
var erp5_document = options.erp5_document,\n
action_list = erp5_document._links.action_workflow || [],\n
fragment = document.createDocumentFragment(),\n
form_gadget = this,\n
promise_list = [],\n
i;\n
\n
for (i = 0; i < action_list.length; i += 1) {\n
promise_list.push(this.whoWantToDisplayThisPage({\n
name: action_list[i].name\n
}));\n
}\n
\n
form_gadget.props.id = erp5_document._id;\n
form_gadget.props.view = options.view;\n
\n
return new RSVP.Queue()\n
.push(function () {\n
return RSVP.all([\n
form_gadget.getDeclaredGadget("erp5_tab"),\n
form_gadget.getDeclaredGadget("erp5_form"),\n
RSVP.all(promise_list)\n
]);\n
})\n
.push(function (all_gadget) {\n
var gadget = this;\n
return this.getDeclaredGadget("erp5_form")\n
.push(function (form_gadget) {\n
var form_options = options.erp5_form || {},\n
tab_options = options.erp5_tag || {},\n
all_result = all_gadget[2],\n
actionlist = [],\n
class_list,\n
j;\n
\n
form_options.erp5_document = options.erp5_document;\n
form_options.form_definition = options.form_definition;\n
form_options.view = options.view;\n
rendered_form = options.erp5_document._embedded._view,\n
rendered_field,\n
key;\n
\n
tab_options.erp5_document = options.erp5_document;\n
tab_options.form_definition = options.form_definition;\n
tab_options.view = options.view;\n
tab_options.action_view = options.action_view;\n
\n
for (j = 0; j < all_result.length; j += 1) {\n
switch (j) {\n
case 0:\n
class_list = "ui-btn ui-first-child";\n
break;\n
case (all_result.length - 1):\n
class_list = "ui-btn ui-last-child";\n
break;\n
default:\n
class_list = "ui-btn";\n
break;\n
// Remove all empty fields, and mark all others as non editable\n
for (key in rendered_form) {\n
if (rendered_form.hasOwnProperty(key) && (key[0] !== "_")) {\n
rendered_field = rendered_form[key];\n
if ((rendered_field.type !== "ListBox") && ((!rendered_field.default) || (rendered_field.hidden === 1) || (rendered_field.default.length === 0))) {\n
delete rendered_form[key];\n
} else {\n
rendered_field.editable = 0;\n
}\n
}\n
actionlist.push({\n
class: class_list,\n
title: action_list[j].title,\n
link: all_result[j]\n
});\n
}\n
form_gadget.__element.appendChild(fragment);\n
form_gadget.__element.querySelector("div.ui-controlgroup-controls")\n
.innerHTML = workflow_template({actionlist: actionlist});\n
\n
form_options.erp5_document = options.erp5_document;\n
form_options.form_definition = options.form_definition;\n
form_options.view = options.view;\n
\n
return RSVP.all([\n
all_gadget[0].render(tab_options),\n
all_gadget[1].render(form_options)\n
form_gadget.render(form_options),\n
gadget.whoWantToDisplayThisPage({name: options.view, editable: true}),\n
gadget.whoWantToDisplayThisPage({page: "action", name: options.view}),\n
gadget.whoWantToDisplayThisPage({page: "breadcrumb", name: options.view})\n
]);\n
});\n
\n
})\n
\n
\n
.declareService(function () {\n
var form_gadget = this;\n
})\n
.push(function (all_result) {\n
\n
function formSubmit() {\n
return form_gadget.getDeclaredGadget("erp5_form")\n
.push(function (erp5_form) {\n
return erp5_form.getContent();\n
})\n
.push(function (data) {\n
data._id = form_gadget.props.id;\n
return form_gadget.aq_put(data, {"_view": form_gadget.props.view});\n
return gadget.renderPageHeader({\n
jump_url: "",\n
actions_url: all_result[2],\n
previous_url: "",\n
next_url: "",\n
export_url: "",\n
edit_url: all_result[1],\n
selection_url: "",\n
page_title: options.erp5_document.title,\n
breadcrumb_url: all_result[3]\n
});\n
}\n
\n
// Listen to form submit\n
return loopEventListener(\n
form_gadget.props.element.querySelector(\'form\'),\n
\'submit\',\n
false,\n
formSubmit\n
);\n
});\n
});\n
\n
}(window, document, rJS, RSVP, Handlebars, loopEventListener));
}(window, rJS, RSVP));
]]></string> </value>
</item>
......@@ -380,7 +312,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>937.42837.59193.40226</string> </value>
<value> <string>937.58419.29836.39389</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -398,7 +330,7 @@
</tuple>
<state>
<tuple>
<float>1411055410.1</float>
<float>1411990309.14</float>
<string>GMT</string>
</tuple>
</state>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Web Page" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Anonymous</string>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Anonymous</string>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_erp5_page_form.html</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>rjs_gadget_erp5_pt_formpage_html</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>en</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Page</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>text_content</string> </key>
<value> <string encoding="cdata"><![CDATA[
<!DOCTYPE html>\n
<html>\n
<head>\n
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />\n
<meta name="viewport" content="width=device-width, user-scalable=no" />\n
<title>ERP5 Page Document</title>\n
\n
<!-- renderjs -->\n
<script src="RSVP.js" type="text/javascript"></script>\n
<script src="renderjs.js" type="text/javascript"></script>\n
\n
<!-- custom script -->\n
<script src="gadget_global.js" type="text/javascript"></script>\n
<script src="gadget_erp5_page_form.js" type="text/javascript"></script>\n
\n
</head>\n
<body>\n
</body>\n
</html>
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Gadget ERP5 Doc</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>001</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>edit_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>processing_status_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>publish_alive</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>romain</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1411464794.23</float>
<string>GMT</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>published_alive</string> </value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>romain</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>937.49661.35517.47837</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1411465614.17</float>
<string>GMT</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>romain</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_processing_state</string> </key>
<value> <string>converted</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1411464736.26</float>
<string>GMT</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Web Script" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Anonymous</string>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Anonymous</string>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_erp5_page_form.js</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>rjs_gadget_erp5_pt_formpage_js</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>en</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Script</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>text_content</string> </key>
<value> <string encoding="cdata"><![CDATA[
/*global window, rJS, URI */\n
/*jslint nomen: true, indent: 2, maxerr: 3 */\n
(function (window, rJS, URI) {\n
"use strict";\n
\n
var gadget_klass = rJS(window);\n
gadget_klass\n
/////////////////////////////////////////////////////////////////\n
// ready\n
/////////////////////////////////////////////////////////////////\n
// Init local properties\n
.ready(function (g) {\n
g.props = {};\n
})\n
\n
// Assign the element to a variable\n
.ready(function (g) {\n
return g.getElement()\n
.push(function (element) {\n
g.props.element = element;\n
});\n
})\n
\n
/////////////////////////////////////////////////////////////////\n
// Acquired methods\n
/////////////////////////////////////////////////////////////////\n
.declareAcquiredMethod("jio_get", "jio_get")\n
\n
/////////////////////////////////////////////////////////////////\n
// declared methods\n
/////////////////////////////////////////////////////////////////\n
.declareMethod("render", function (options) {\n
var gadget = this,\n
element = gadget.props.element,\n
erp5_document,\n
erp5_form,\n
form_gadget;\n
\n
return gadget.jio_get({"_id": options.jio_key}, {"_view": options.view})\n
.push(function (result) {\n
var uri = new URI(result.data._embedded._view._links.form_definition.href);\n
erp5_document = result.data;\n
return gadget.jio_get({"_id": uri.segment(2)}, {"_view": "view"});\n
})\n
.push(function (result) {\n
erp5_form = result.data;\n
\n
var url = "gadget_erp5_pt_" + erp5_form.pt;\n
// XXX Hardcoded specific behaviour for form_view\n
if ((options.editable !== undefined) && (erp5_form.pt === "form_view")) {\n
url += "_editable";\n
}\n
url += ".html";\n
\n
return gadget.declareGadget(url, {\n
scope: "fg"\n
});\n
})\n
.push(function (result) {\n
var sub_options = options.fg || {};\n
sub_options.erp5_document = erp5_document;\n
sub_options.form_definition = erp5_form;\n
sub_options.view = options.view;\n
sub_options.action_view = options.action_view;\n
sub_options.jio_key = options.jio_key;\n
\n
form_gadget = result;\n
return form_gadget.render(sub_options);\n
})\n
.push(function () {\n
return form_gadget.getElement();\n
})\n
.push(function (fragment) {\n
// Clear first to DOM, append after to reduce flickering/manip\n
while (element.firstChild) {\n
element.removeChild(element.firstChild);\n
}\n
element.appendChild(fragment);\n
});\n
});\n
\n
}(window, rJS, URI));
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Gadget ERP5 Doc JS</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>001</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>edit_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>processing_status_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>publish_alive</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>romain</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1411464845.21</float>
<string>GMT</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>published_alive</string> </value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>romain</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>937.58334.39803.33518</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1411985226.68</float>
<string>GMT</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>romain</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_processing_state</string> </key>
<value> <string>converted</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1411464822.6</float>
<string>GMT</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
......@@ -75,7 +75,7 @@
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_erp5_pt_frontpage.html</string> </value>
<value> <string>gadget_erp5_page_front.html</string> </value>
</item>
<item>
<key> <string>description</string> </key>
......@@ -120,15 +120,16 @@
\n
<!-- custom script -->\n
<script src="gadget_global.js" type="text/javascript"></script>\n
<script src="gadget_erp5_pt_frontpage.js" type="text/javascript"></script>\n
<script src="gadget_erp5_page_front.js" type="text/javascript"></script>\n
\n
<!-- XXX must set theme here! -->\n
<script id="table-template" type="text/x-handlebars-template">\n
<dl data-role="listview" data-inset="true" class="document-listview">\n
<dt>{{definition_title}}</dt>\n
<ul data-role="listview" data-theme="c" data-inset="true" class="document-listview">\n
<li data-role="list-divider"><h1>{{definition_title}}</h1></li>\n
{{#each documentlist}}\n
<dd><a href="{{link}}">{{title}}</a></dd>\n
<li><a class="ui-body-inherit" href="{{link}}">{{title}}</a></li>\n
{{/each}}\n
</dl>\n
</ul>\n
</script>\n
\n
</head>\n
......@@ -258,7 +259,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>romain</string> </value>
<value> <string>sven</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -272,7 +273,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>937.42724.27724.55893</string> </value>
<value> <string>937.51130.19006.10035</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -290,7 +291,7 @@
</tuple>
<state>
<tuple>
<float>1411117135.09</float>
<float>1411573263.53</float>
<string>GMT</string>
</tuple>
</state>
......
......@@ -71,7 +71,7 @@
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_erp5_pt_frontpage.js</string> </value>
<value> <string>gadget_erp5_page_front.js</string> </value>
</item>
<item>
<key> <string>description</string> </key>
......@@ -362,7 +362,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>937.43884.286.40960</string> </value>
<value> <string>937.43885.22553.46165</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -380,7 +380,7 @@
</tuple>
<state>
<tuple>
<float>1411118240.63</float>
<float>1411461029.62</float>
<string>GMT</string>
</tuple>
</state>
......
......@@ -75,7 +75,7 @@
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_erp5_pt_loginform.html</string> </value>
<value> <string>gadget_erp5_page_login.html</string> </value>
</item>
<item>
<key> <string>description</string> </key>
......@@ -118,7 +118,7 @@
\n
<!-- custom script -->\n
<script src="gadget_global.js" type="text/javascript"></script>\n
<script src="gadget_erp5_pt_loginform.js" type="text/javascript"></script>\n
<script src="gadget_erp5_page_login.js" type="text/javascript"></script>\n
\n
</head>\n
<body>\n
......@@ -274,7 +274,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>sven</string> </value>
<value> <string>romain</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -288,7 +288,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>936.43465.53884.35976</string> </value>
<value> <string>937.49599.22266.28279</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -306,7 +306,7 @@
</tuple>
<state>
<tuple>
<float>1407162740.16</float>
<float>1411461090.07</float>
<string>GMT</string>
</tuple>
</state>
......
......@@ -71,7 +71,7 @@
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_erp5_pt_loginform.js</string> </value>
<value> <string>gadget_erp5_page_login.js</string> </value>
</item>
<item>
<key> <string>description</string> </key>
......@@ -291,7 +291,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>937.42844.47051.28194</string> </value>
<value> <string>937.49597.63791.22067</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -309,7 +309,7 @@
</tuple>
<state>
<tuple>
<float>1411055816.03</float>
<float>1411461067.42</float>
<string>GMT</string>
</tuple>
</state>
......
......@@ -75,7 +75,7 @@
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_erp5_tab_list.html</string> </value>
<value> <string>gadget_erp5_page_tab.html</string> </value>
</item>
<item>
<key> <string>description</string> </key>
......@@ -85,7 +85,7 @@
</item>
<item>
<key> <string>id</string> </key>
<value> <string>rjs_gadget_erp5_tab_list_html</string> </value>
<value> <string>rjs_gadget_erp5_pt_tabpage_html</string> </value>
</item>
<item>
<key> <string>language</string> </key>
......@@ -110,29 +110,29 @@
<head>\n
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />\n
<meta name="viewport" content="width=device-width, user-scalable=no" />\n
<title>ERP5 Tab List</title>\n
<title>ERP5 Page Tab</title>\n
\n
<!-- renderjs -->\n
<script src="RSVP.js" type="text/javascript"></script>\n
<script src="renderjs.js" type="text/javascript"></script>\n
\n
<script src="handlebars.js" type="text/javascript"></script>\n
\n
<!-- custom script -->\n
<script src="gadget_erp5_tab_list.js" type="text/javascript"></script>\n
\n
<script id="active-navigation-template" type="text/x-handlebars-template">\n
<li><a class="ui-btn-active ui-state-persist" href="{{link}}">{{title}}</a></li>\n
</script>\n
<script src="gadget_global.js" type="text/javascript"></script>\n
<script src="gadget_erp5_page_tab.js" type="text/javascript"></script>\n
\n
<script id="navigation-template" type="text/x-handlebars-template">\n
<li><a href="{{link}}">{{title}}</a></li>\n
<script id="table-template" type="text/x-handlebars-template">\n
<ul data-role="listview" data-theme="c" data-inset="true" class="document-listview">\n
<li data-role="list-divider"><h1>{{definition_title}}</h1></li>\n
{{#each documentlist}}\n
<li><a class="ui-body-inherit" href="{{link}}">{{title}}</a></li>\n
{{/each}}\n
</ul>\n
</script>\n
\n
</head>\n
<body>\n
\n
<div class="grid-container"></div>\n
\n
</body>\n
</html>
......@@ -140,7 +140,7 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Gadget ERP5 Tab List</string> </value>
<value> <string>Gadget ERP5 Tab</string> </value>
</item>
<item>
<key> <string>version</string> </key>
......@@ -226,7 +226,7 @@
</tuple>
<state>
<tuple>
<float>1406898405.75</float>
<float>1411723432.92</float>
<string>GMT</string>
</tuple>
</state>
......@@ -257,7 +257,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>sven</string> </value>
<value> <string>romain</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -271,7 +271,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>936.46254.12819.56183</string> </value>
<value> <string>937.54015.61486.15872</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -289,7 +289,7 @@
</tuple>
<state>
<tuple>
<float>1407329213.15</float>
<float>1411726096.57</float>
<string>GMT</string>
</tuple>
</state>
......@@ -346,7 +346,7 @@
</tuple>
<state>
<tuple>
<float>1406015645.23</float>
<float>1411723386.46</float>
<string>GMT</string>
</tuple>
</state>
......
......@@ -71,7 +71,7 @@
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_erp5_tab_list.js</string> </value>
<value> <string>gadget_erp5_page_tab.js</string> </value>
</item>
<item>
<key> <string>description</string> </key>
......@@ -81,7 +81,7 @@
</item>
<item>
<key> <string>id</string> </key>
<value> <string>rjs_gadget_erp5_tab_list_js</string> </value>
<value> <string>rjs_gadget_erp5_pt_tabpage_js</string> </value>
</item>
<item>
<key> <string>language</string> </key>
......@@ -101,9 +101,9 @@
<key> <string>text_content</string> </key>
<value> <string encoding="cdata"><![CDATA[
/*global window, rJS, Handlebars, RSVP */\n
/*global window, rJS, RSVP, Handlebars */\n
/*jslint nomen: true, indent: 2, maxerr: 3 */\n
(function (window, rJS, Handlebars, RSVP) {\n
(function (window, rJS, RSVP, Handlebars) {\n
"use strict";\n
\n
/////////////////////////////////////////////////////////////////\n
......@@ -111,16 +111,10 @@
/////////////////////////////////////////////////////////////////\n
// Precompile the templates while loading the first gadget instance\n
var gadget_klass = rJS(window),\n
navigation_template = Handlebars.compile(\n
gadget_klass.__template_element\n
.getElementById("navigation-template")\n
.innerHTML\n
),\n
active_navigation_template = Handlebars.compile(\n
gadget_klass.__template_element\n
.getElementById("active-navigation-template")\n
.innerHTML\n
);\n
source = gadget_klass.__template_element\n
.getElementById("table-template")\n
.innerHTML,\n
table_template = Handlebars.compile(source);\n
\n
gadget_klass\n
/////////////////////////////////////////////////////////////////\n
......@@ -139,67 +133,76 @@
});\n
})\n
\n
/////////////////////////////////////////////////////////////////\n
// Acquired methods\n
/////////////////////////////////////////////////////////////////\n
.declareAcquiredMethod("jio_get", "jio_get")\n
.declareAcquiredMethod("whoWantToDisplayThisPage", "whoWantToDisplayThisPage")\n
.declareAcquiredMethod("renderPageHeader", "renderPageHeader")\n
\n
/////////////////////////////////////////////////////////////////\n
// declared methods\n
/////////////////////////////////////////////////////////////////\n
.declareMethod(\'render\', function (options) {\n
var tab_gadget = this,\n
nav_element = tab_gadget.props.element.querySelector(".grid-container"),\n
erp5_document = options.erp5_document,\n
view_list = erp5_document._links[options.action_view],\n
nav_html = \'<nav data-role="navbar"><ul class="grid-items">\',\n
promise_list = [],\n
i;\n
.declareMethod("render", function (options) {\n
var gadget = this,\n
matching,\n
view_list;\n
\n
// XXX return if no views - do this on the parent gadget\n
if (view_list === undefined) {\n
return;\n
}\n
return gadget.jio_get({"_id": options.jio_key})\n
.push(function (result) {\n
var erp5_document = result.data,\n
i,\n
promise_list = [];\n
view_list = erp5_document._links[options.action_view];\n
\n
if (view_list.constructor !== Array) {\n
view_list = [view_list];\n
}\n
// All ERP5 document should at least have one view.\n
// So, no need normally to test undefined\n
if (view_list.constructor !== Array) {\n
view_list = [view_list];\n
}\n
\n
for (i = 0; i < view_list.length; i += 1) {\n
promise_list.push(this.whoWantToDisplayThisPage({\n
name: view_list[i].name\n
}));\n
}\n
return new RSVP.Queue()\n
.push(function () {\n
for (i = 0; i < view_list.length; i += 1) {\n
if (options.view === view_list[i].name) {\n
matching = i;\n
}\n
promise_list.push(gadget.whoWantToDisplayThisPage({\n
name: view_list[i].name,\n
editable: true\n
}));\n
}\n
return RSVP.all(promise_list);\n
})\n
.push(function (all_result) {\n
for (i = 0; i < all_result.length; i += 1) {\n
if (view_list[i].name === options.view) {\n
nav_html += active_navigation_template({\n
title: view_list[i].title,\n
link: all_result[i]\n
});\n
} else {\n
nav_html += navigation_template({\n
title: view_list[i].title,\n
link: all_result[i]\n
});\n
}\n
var i,\n
tab_list = [];\n
\n
for (i = 0; i < all_result.length; i += 1) {\n
tab_list.push({\n
title: view_list[i].title,\n
link: all_result[i]\n
});\n
}\n
nav_html += \'</ul></nav>\';\n
nav_element.innerHTML = nav_html;\n
\n
return tab_gadget;\n
\n
gadget.props.element.innerHTML = table_template({\n
definition_title: "Views",\n
documentlist: tab_list\n
});\n
\n
return gadget.renderPageHeader({\n
cancel_url: tab_list[matching].link\n
});\n
});\n
\n
});\n
\n
}(window, rJS, Handlebars, RSVP));
}(window, rJS, RSVP, Handlebars));
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Gadget ERP5 Tab List JS</string> </value>
<value> <string>Gadget ERP5 Tab JS</string> </value>
</item>
<item>
<key> <string>version</string> </key>
......@@ -285,7 +288,7 @@
</tuple>
<state>
<tuple>
<float>1406898405.76</float>
<float>1411723496.44</float>
<string>GMT</string>
</tuple>
</state>
......@@ -330,7 +333,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>937.42853.28217.34935</string> </value>
<value> <string>937.54023.36332.45994</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -348,7 +351,7 @@
</tuple>
<state>
<tuple>
<float>1411056327.35</float>
<float>1411726674.75</float>
<string>GMT</string>
</tuple>
</state>
......@@ -405,7 +408,7 @@
</tuple>
<state>
<tuple>
<float>1406015645.22</float>
<float>1411723463.29</float>
<string>GMT</string>
</tuple>
</state>
......
......@@ -75,7 +75,7 @@
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_erp5_readonlyfield.html</string> </value>
<value> <string>gadget_erp5_field_readonly.html</string> </value>
</item>
<item>
<key> <string>description</string> </key>
......@@ -116,7 +116,7 @@
<script src="RSVP.js" type="text/javascript"></script>\n
<script src="renderjs.js" type="text/javascript"></script>\n
<!-- custom script -->\n
<script src="gadget_erp5_readonlyfield.js" type="text/javascript"></script>\n
<script src="gadget_erp5_field_readonly.js" type="text/javascript"></script>\n
\n
</head>\n
<body>\n
......@@ -259,7 +259,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>936.36002.54037.20104</string> </value>
<value> <string>937.48463.61692.15325</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -277,7 +277,7 @@
</tuple>
<state>
<tuple>
<float>1406713188.74</float>
<float>1411392972.05</float>
<string>GMT</string>
</tuple>
</state>
......
......@@ -71,7 +71,7 @@
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_erp5_readonlyfield.js</string> </value>
<value> <string>gadget_erp5_field_readonly.js</string> </value>
</item>
<item>
<key> <string>description</string> </key>
......@@ -256,7 +256,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>937.42715.45132.18756</string> </value>
<value> <string>937.42845.63862.35925</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -274,7 +274,7 @@
</tuple>
<state>
<tuple>
<float>1411055878.45</float>
<float>1411392995.5</float>
<string>GMT</string>
</tuple>
</state>
......
......@@ -123,17 +123,19 @@
</head>\n
<body>\n
\n
<fieldset class="center">\n
<form class="save_form document_form">\n
<div class="ui-input-text ui-body-inherit ui-corner-all ui-shadow-inset ui-input-has-clear">\n
<input type="text" data-enhanced="true" value="" name="search" />\n
<div class="ui-btn ui-input-clear ui-input-btn ui-corner-all ui-icon-search ui-btn-icon-notext">\n
Submit<input data-enhanced="true" type="submit" value="Submit">\n
<form class="save_form document_form">\n
<div class="center">\n
<div class="ui-field-contain">\n
<!-- XXX needs a theme set -->\n
<div class="ui-input-text ui-body-c ui-corner-all ui-shadow-inset ui-input-has-clear">\n
<input type="text" data-enhanced="true" value="" name="search" />\n
<div class="ui-btn ui-input-clear ui-input-btn ui-corner-all ui-icon-search ui-btn-icon-notext">\n
Submit<input data-enhanced="true" type="submit" value="Submit">\n
</div>\n
</div>\n
</div>\n
</form>\n
</fieldset>\n
\n
</div>\n
</form>\n
</body>\n
</html>
......@@ -272,7 +274,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>937.12497.8425.63641</string> </value>
<value> <string>937.51294.57239.19217</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -290,7 +292,7 @@
</tuple>
<state>
<tuple>
<float>1409235470.51</float>
<float>1411563524.79</float>
<string>GMT</string>
</tuple>
</state>
......
......@@ -75,7 +75,7 @@
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_erp5_stringfield.html</string> </value>
<value> <string>gadget_erp5_field_string.html</string> </value>
</item>
<item>
<key> <string>description</string> </key>
......@@ -116,11 +116,11 @@
<script src="RSVP.js" type="text/javascript"></script>\n
<script src="renderjs.js" type="text/javascript"></script>\n
<!-- custom script -->\n
<script src="gadget_erp5_stringfield.js" type="text/javascript"></script>\n
<script src="gadget_erp5_field_string.js" type="text/javascript"></script>\n
\n
</head>\n
<body>\n
<input type=\'text\' />\n
<input type=\'text\' />\n
</body>\n
</html>
......@@ -259,7 +259,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>936.39270.57647.44612</string> </value>
<value> <string>937.51417.2754.60177</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -277,7 +277,7 @@
</tuple>
<state>
<tuple>
<float>1407159850.2</float>
<float>1411576712.22</float>
<string>GMT</string>
</tuple>
</state>
......
......@@ -71,7 +71,7 @@
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_erp5_stringfield.js</string> </value>
<value> <string>gadget_erp5_field_string.js</string> </value>
</item>
<item>
<key> <string>description</string> </key>
......@@ -122,7 +122,8 @@
input.setAttribute(\'title\', field_json.title);\n
if (field_json.editable !== 1) {\n
input.setAttribute(\'readonly\', \'readonly\');\n
input.setAttribute(\'disabled\', \'disabled\');\n
input.setAttribute(\'data-wrapper-class\', \'ui-state-readonly\');\n
// input.setAttribute(\'disabled\', \'disabled\');\n
\n
}\n
})\n
......@@ -255,7 +256,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>romain</string> </value>
<value> <string>sven</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -269,7 +270,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>937.42715.45132.18756</string> </value>
<value> <string>937.51382.41153.54784</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -287,7 +288,7 @@
</tuple>
<state>
<tuple>
<float>1411056143.98</float>
<float>1411568284.24</float>
<string>GMT</string>
</tuple>
</state>
......
......@@ -75,7 +75,7 @@
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_erp5_textareafield.html</string> </value>
<value> <string>gadget_erp5_field_textarea.html</string> </value>
</item>
<item>
<key> <string>description</string> </key>
......@@ -116,7 +116,7 @@
<script src="RSVP.js" type="text/javascript"></script>\n
<script src="renderjs.js" type="text/javascript"></script>\n
<!-- custom script -->\n
<script src="gadget_erp5_textareafield.js" type="text/javascript"></script>\n
<script src="gadget_erp5_field_textarea.js" type="text/javascript"></script>\n
\n
</head>\n
<body>\n
......@@ -259,7 +259,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>936.56148.49103.23756</string> </value>
<value> <string>937.51416.42743.7714</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -277,7 +277,7 @@
</tuple>
<state>
<tuple>
<float>1407921908.85</float>
<float>1411576663.75</float>
<string>GMT</string>
</tuple>
</state>
......
......@@ -71,7 +71,7 @@
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_erp5_textareafield.js</string> </value>
<value> <string>gadget_erp5_field_textarea.js</string> </value>
</item>
<item>
<key> <string>description</string> </key>
......@@ -121,7 +121,8 @@
\n
if (field_json.editable !== 1) {\n
textarea.setAttribute(\'readonly\', \'readonly\');\n
textarea.setAttribute(\'disabled\', \'disabled\');\n
textarea.className += "ui-state-readonly";\n
// textarea.setAttribute(\'disabled\', \'disabled\');\n
}\n
})\n
\n
......@@ -253,7 +254,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>romain</string> </value>
<value> <string>sven</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -267,7 +268,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>937.42715.45132.18756</string> </value>
<value> <string>937.51406.65298.39270</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -285,7 +286,7 @@
</tuple>
<state>
<tuple>
<float>1411056379.61</float>
<float>1411570045.73</float>
<string>GMT</string>
</tuple>
</state>
......
......@@ -68,8 +68,7 @@ response.setHeader("X-Frame-Options", "SAMEORIGIN")\n
response.setHeader("X-Content-Type-Options", "nosniff")\n
\n
# Only fetch code (html, js, css, image) and data from this ERP5, to prevent any data leak as the web site do not control the gadget\'s code\n
response.setHeader("Content-Security-Policy", "default-src \'none\'; img-src \'self\' data:; media-src \'self\'; connect-src \'self\'; script-src \'self\' \'unsafe-eval\'; style-src \'self\' \'unsafe-inline\' data:; frame-src \'self\' data:")\n
\n
response.setHeader("Content-Security-Policy", "default-src \'none\'; img-src \'self\' data:; media-src \'self\'; connect-src \'self\'; script-src \'self\' \'unsafe-eval\'; font-src netdna.bootstrapcdn.com; style-src \'self\' netdna.bootstrapcdn.com \'unsafe-inline\' data:; frame-src \'self\' data:")\n
\n
response.setHeader(\'Content-Type\', \'text/html\')\n
return js_content\n
......
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