diff --git a/bt5/erp5_web_editor_demo/PathTemplateItem/web_page_module/editor_bootstrap3_wysiwyg_html.xml b/bt5/erp5_web_editor_demo/PathTemplateItem/web_page_module/editor_bootstrap3_wysiwyg_html.xml index e6b864696e307ac557cd78ea4300461082f5d2c9..84331e7b3a3e69a4b4cdcb9c11bd2e3909fac31d 100644 --- a/bt5/erp5_web_editor_demo/PathTemplateItem/web_page_module/editor_bootstrap3_wysiwyg_html.xml +++ b/bt5/erp5_web_editor_demo/PathTemplateItem/web_page_module/editor_bootstrap3_wysiwyg_html.xml @@ -105,40 +105,32 @@ <key> <string>text_content</string> </key> <value> <string encoding="cdata"><![CDATA[ -\n <!DOCTYPE html>\n <html>\n -<head>\n -<meta http-equiv="X-UA-Compatible" content="IE=Edge">\n -<meta charset="utf-8">\n -\n -<title>bootstrap-wysihtml5</title>\n -\n + <head>\n + <meta http-equiv="X-UA-Compatible" content="IE=Edge">\n + <meta charset="utf-8">\n \n -<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css"></link>\n -<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap-theme.min.css"></link>\n -<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css"></link>\n -<link rel="stylesheet" type="text/css" href="bootstrap3-wysihtml5.min.css"></link>\n + <title>bootstrap-wysihtml5</title>\n \n + <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css"></link>\n + <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap-theme.min.css"></link>\n + <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css"></link>\n + <link rel="stylesheet" type="text/css" href="bootstrap3-wysihtml5.min.css"></link>\n \n -</head>\n -<body>\n -<div class="container" style=" width: 100%; height: 600px;">\n - <div class="jumbotron" style="margin-left:0px; height: 600px;">\n - <textarea class="textarea" placeholder="Enter text ..." style="width: 100%; height: 400px; font-size: 14px; line-height: 18px;"></textarea>\n - </div>\n -</div>\n + <link rel="http://www.renderjs.org/rel/interface" href="editor_interface.html">\n \n + <script src="wysihtml5x-toolbar.min.js"></script>\n + <script src="jquery.js"></script>\n + <script src="bootstrap.min.js"></script>\n + <script src="handlebars.runtime.min.js"></script>\n + <script src="bootstrap3-wysihtml5.min.js"></script>\n + <script src="rsvp.js"></script>\n + <script src="renderjs.js"></script>\n + <script src="gadget_bootstrap3-wysiwyg.js" type="text/javascript"></script>\n \n -<script src="wysihtml5x-toolbar.min.js"></script>\n -<script src="jquery.js"></script>\n -<script src="bootstrap.min.js"></script>\n -<script src="handlebars.runtime.min.js"></script>\n -<script src="bootstrap3-wysihtml5.min.js"></script>\n -<script src="rsvp.js"></script>\n -<script src="renderjs.js"></script>\n -<script src="gadget_bootstrap3-wysiwyg.js"></script>\n -</body>\n + </head>\n + <body></body>\n </html>\n @@ -277,7 +269,7 @@ </item> <item> <key> <string>serial</string> </key> - <value> <string>944.56196.65369.51899</string> </value> + <value> <string>945.2018.8243.11827</string> </value> </item> <item> <key> <string>state</string> </key> @@ -295,7 +287,7 @@ </tuple> <state> <tuple> - <float>1438777350.44</float> + <float>1439468941.87</float> <string>GMT</string> </tuple> </state> diff --git a/bt5/erp5_web_editor_demo/PathTemplateItem/web_page_module/editor_bootstrap_wysiwyg_html.xml b/bt5/erp5_web_editor_demo/PathTemplateItem/web_page_module/editor_bootstrap_wysiwyg_html.xml index e0d0de6eaecde95f3c2e4751dd1407c46abdbbcc..e3a1af6ccfbfa039adf6857dda7966691cba5272 100644 --- a/bt5/erp5_web_editor_demo/PathTemplateItem/web_page_module/editor_bootstrap_wysiwyg_html.xml +++ b/bt5/erp5_web_editor_demo/PathTemplateItem/web_page_module/editor_bootstrap_wysiwyg_html.xml @@ -110,19 +110,21 @@ <html lang="en">\n <head>\n <meta charset="utf-8">\n - <title>title</title>\n + <title>bootstrap-wysiwhg</title>\n \n <link rel="stylesheet" href="bootstrap-combined.no-icons.min.css">\n <link rel="stylesheet" href="bootstrap-responsive.css">\n <link rel="stylesheet" href="https://netdna.bootstrapcdn.com/font-awesome/3.0.2/css/font-awesome.css">\n \n - <script src="jquery.js"></script>\n - <script src="jquery.hotkeys.js"></script>\n + <link rel="http://www.renderjs.org/rel/interface" href="editor_interface.html">\n +\n + <script src="jquery.js" type="text/javascript"></script>\n + <script src="jquery.hotkeys.js" type="text/javascript"></script>\n <script src="bootstrap.min.js"></script>\n <script src="bootstrap-wysiwyg.js"></script>\n <script src="rsvp.js"></script>\n <script src="renderjs.js"></script>\n - <script src="gadget_bootstrap_wysiwyg.js"></script>\n + <script src="gadget_bootstrap_wysiwyg.js" type="text/javascript"></script>\n \n </head>\n <body>\n @@ -333,7 +335,7 @@ </item> <item> <key> <string>serial</string> </key> - <value> <string>944.53506.33548.17937</string> </value> + <value> <string>945.2156.1335.48469</string> </value> </item> <item> <key> <string>state</string> </key> @@ -351,7 +353,7 @@ </tuple> <state> <tuple> - <float>1438615893.56</float> + <float>1439467063.04</float> <string>GMT</string> </tuple> </state> diff --git a/bt5/erp5_web_editor_demo/PathTemplateItem/web_page_module/editor_gadget_bootstrap3-wysiwyg.js.xml b/bt5/erp5_web_editor_demo/PathTemplateItem/web_page_module/editor_gadget_bootstrap3-wysiwyg.js.xml index c12c7073167f1f8d6aa7d7ec0149466d48239f1c..346cf3cd564efe213a7a3adc3e6e24c29022053e 100644 --- a/bt5/erp5_web_editor_demo/PathTemplateItem/web_page_module/editor_gadget_bootstrap3-wysiwyg.js.xml +++ b/bt5/erp5_web_editor_demo/PathTemplateItem/web_page_module/editor_gadget_bootstrap3-wysiwyg.js.xml @@ -99,7 +99,9 @@ </item> <item> <key> <string>text_content</string> </key> - <value> <string>/*jslint indent: 2 */\n + <value> <string encoding="cdata"><![CDATA[ + +/*jslint indent: 2 */\n /*global window, jQuery, rJS*/\n "use strict";\n \n @@ -115,16 +117,26 @@ .declareMethod(\'clearContent\', function () {\n rJS(this).editor.html(\'\');\n })\n - .ready(function (g) {\n - g.editor = $(\'.textarea\');\n - g.editor.wysihtml5({\n + .declareMethod(\'setEditor\', function () {\n + document.body.innerHTML =\'<div class="container" style=" width: 100%; height: 600px;">\'\n + +\'<div class="jumbotron" style="margin-left:0px; height: 600px;">\'\n + +\'<textarea class="textarea" placeholder="Enter text ..." \'\n + +\'style="width: 100%; height: 400px; font-size: 14px; line-height: 18px;">\'\n + +\'</textarea></div</div>\';\n + this.editor = $(\'.textarea\');\n + this.editor.wysihtml5({\n toolbar: {\n fa: true\n }\n });\n + })\n +\n + .ready(function (g) {\n });\n \n -}(window, jQuery, rJS));</string> </value> +}(window, jQuery, rJS)); + +]]></string> </value> </item> <item> <key> <string>title</string> </key> @@ -259,7 +271,7 @@ </item> <item> <key> <string>serial</string> </key> - <value> <string>944.56186.56926.29952</string> </value> + <value> <string>945.1997.11510.44544</string> </value> </item> <item> <key> <string>state</string> </key> @@ -277,7 +289,7 @@ </tuple> <state> <tuple> - <float>1438777746.45</float> + <float>1439471143.4</float> <string>GMT</string> </tuple> </state> diff --git a/bt5/erp5_web_editor_demo/PathTemplateItem/web_page_module/editor_gadget_bootstrap_wysiwyg_js.xml b/bt5/erp5_web_editor_demo/PathTemplateItem/web_page_module/editor_gadget_bootstrap_wysiwyg_js.xml index 80ac01cf004425dd8352e3755552080095986e6b..9127453dba149735d31dc7fd8fa405a3db3aa066 100644 --- a/bt5/erp5_web_editor_demo/PathTemplateItem/web_page_module/editor_gadget_bootstrap_wysiwyg_js.xml +++ b/bt5/erp5_web_editor_demo/PathTemplateItem/web_page_module/editor_gadget_bootstrap_wysiwyg_js.xml @@ -157,12 +157,14 @@ .declareMethod(\'clearContent\', function () {\n rJS(this).editor.html(\'\');\n })\n - .ready(function (g) {\n - g.editor = $(\'#editor\');\n + .declareMethod(\'setEditor\', function () {\n initToolbarBootstrapBindings();\n - g.editor.wysiwyg({\n + this.editor.wysiwyg({\n fileUploadError: showErrorAlert\n });\n + })\n + .ready(function (g) {\n + g.editor = $(\'#editor\');\n });\n \n }(window, jQuery, rJS)); @@ -302,7 +304,7 @@ </item> <item> <key> <string>serial</string> </key> - <value> <string>944.53151.60155.61457</string> </value> + <value> <string>944.63600.63717.14984</string> </value> </item> <item> <key> <string>state</string> </key> @@ -320,7 +322,7 @@ </tuple> <state> <tuple> - <float>1438594704.78</float> + <float>1439467049.96</float> <string>GMT</string> </tuple> </state> diff --git a/bt5/erp5_web_editor_demo/PathTemplateItem/web_page_module/editor_interface_html.xml b/bt5/erp5_web_editor_demo/PathTemplateItem/web_page_module/editor_interface_html.xml index 810d80a55580e98b6925093a65a01a0bd3562c6d..6177c03c39bf1e35b110dfed5a51341f75ea73bd 100644 --- a/bt5/erp5_web_editor_demo/PathTemplateItem/web_page_module/editor_interface_html.xml +++ b/bt5/erp5_web_editor_demo/PathTemplateItem/web_page_module/editor_interface_html.xml @@ -112,7 +112,21 @@ <body>\n <h1>Editor Interface</h1>\n <h3>An interface defining the methods for text editor.</h3>\n - <dl></dl>\n + <dl>\n + <dt>getContent</dt>\n + <dd>to fetch the contect from the text editor</dd>\n + <dl></dl>\n + <dt>setContent</dt>\n + <dd>to set the contect to the text editor</dd>\n + <dl>\n + <dt data-parameter-required="required" data-parameter-type="string">content</dt>\n + <dd>the content to be set in the text editor</dd>\n + </dl>\n + </dd>\n + <dt>clearContent</dt>\n + <dd>to clear the contect of the text editor</dd>\n + <dl></dl>\n + </dl>\n </body>\n </html> @@ -251,7 +265,7 @@ </item> <item> <key> <string>serial</string> </key> - <value> <string>944.48991.52289.15735</string> </value> + <value> <string>944.53144.2367.52957</string> </value> </item> <item> <key> <string>state</string> </key> @@ -269,7 +283,7 @@ </tuple> <state> <tuple> - <float>1438345024.7</float> + <float>1439192630.9</float> <string>GMT</string> </tuple> </state> diff --git a/bt5/erp5_web_editor_demo/PathTemplateItem/web_page_module/editor_test_gadget_html.xml b/bt5/erp5_web_editor_demo/PathTemplateItem/web_page_module/editor_test_gadget_html.xml index 687957de404702e5a0b7e1256d73c2662109b440..a28ca85b95dad06adeb6a1b274d4f44449b00313 100644 --- a/bt5/erp5_web_editor_demo/PathTemplateItem/web_page_module/editor_test_gadget_html.xml +++ b/bt5/erp5_web_editor_demo/PathTemplateItem/web_page_module/editor_test_gadget_html.xml @@ -105,7 +105,6 @@ <key> <string>text_content</string> </key> <value> <string encoding="cdata"><![CDATA[ -\n <!DOCTYPE html>\n <html>\n <head>\n @@ -121,6 +120,7 @@ <script type="text/javascript" src="jquery.js"></script>\n <script type="text/javascript" src="rsvp.js"></script>\n <script type="text/javascript" src="renderjs.js"></script>\n + <script src="gadget_global.js" ></script>\n <script type="text/javascript" src="jquerymobile.js"></script>\n <script type="text/javascript" src="i18next.js"></script>\n \n @@ -129,27 +129,36 @@ \n </head>\n <body>\n - <div data-role="page" id="document">\n + <div data-role="page" class="ui-content gadget-content">\n <div class="ui-grid-a ui-responsive">\n <div class="ui-block-a" style="width:60%">\n <div class="ui-content"></div>\n </div>\n <div class="ui-block-b" style="width:30%">\n - <form class="gadget-select-form">\n + <form class="main-gadget-select-form">\n + <div data-role="fieldcontain">\n + <label for="main_gadget_selector" >Main Gadget</label>\n + <select name="main_gadget_selector" class="select">\n + <option value="./bootstrap3-wysiwyg.html">Text Editor 2</option>\n + <option value="./interface_test_correct_implemented_gadget.html">Dummy Gadget 1</option>\n + <option value="./interface_test_multiple_interface_correct_gadget.html">Dummy Gadget 2</option>\n + </select>\n + </div>\n + <input data-inline="true" type="submit" value="Submit" data-theme="b">\n + </form>\n + <form class="similar-gadget-select-form">\n <div data-role="fieldcontain">\n - <label for="gadget_selector" class="select"></label>\n - <select name="gadget_selector">\n - <option value="https://softinst60317.host.vifib.net/erp5/web_site_module/editor_demo/bootstrap-wysiwyg.html">Text Editor 1</option>\n - <option value="https://softinst60317.host.vifib.net/erp5/web_site_module/editor_demo/bootstrap3-wysiwyg.html">Text Editor 2</option>\n + <label for="similar_gadget_selector" >Similar Gadgets</label>\n + <select name="similar_gadget_selector" class="select">\n </select>\n </div>\n + <input data-inline="true" type="submit" value="Submit" data-theme="b">\n </form>\n </div>\n - </div> \n + </div>\n </div>\n </body>\n </html>\n -\n ]]></string> </value> @@ -287,7 +296,7 @@ </item> <item> <key> <string>serial</string> </key> - <value> <string>944.56298.5921.30532</string> </value> + <value> <string>945.2226.34067.16605</string> </value> </item> <item> <key> <string>state</string> </key> @@ -305,7 +314,7 @@ </tuple> <state> <tuple> - <float>1438783361.36</float> + <float>1439471929.19</float> <string>GMT</string> </tuple> </state> diff --git a/bt5/erp5_web_editor_demo/PathTemplateItem/web_page_module/editor_test_gadget_js.xml b/bt5/erp5_web_editor_demo/PathTemplateItem/web_page_module/editor_test_gadget_js.xml index 09144593fd51daa5db0e9114207885e681362238..09c9851fc10119cd68dd49bc3465feae93d508a1 100644 --- a/bt5/erp5_web_editor_demo/PathTemplateItem/web_page_module/editor_test_gadget_js.xml +++ b/bt5/erp5_web_editor_demo/PathTemplateItem/web_page_module/editor_test_gadget_js.xml @@ -99,13 +99,133 @@ </item> <item> <key> <string>text_content</string> </key> - <value> <string>/*jslint indent: 2, maxlen: 80, nomen: true */\n + <value> <string encoding="cdata"><![CDATA[ + +/*jslint indent: 2, maxlen: 80, nomen: true */\n /*global console, window, document, rJS, RSVP, $ */\n -(function (window, document, rJS) {\n +(function (window, document, rJS, promiseEventListener) {\n "use strict";\n \n - var EDITOR_GADGET_1 = "./bootstrap-wysiwyg.html";\n - var EDITOR_GADGET_2 = "./bootstrap3-wysiwyg.html";\n + var DEFAULT_GADGET_URL = "./bootstrap3-wysiwyg.html",\n + INTERFACE_GADGET_URL = "./gadget_interfaces.html";\n +\n + function declareInterfaceGadget(gadget) {\n + return gadget.declareGadget(INTERFACE_GADGET_URL, {\n + element: gadget.__element,\n + scope: "interface"\n + });\n + }\n + function declareSubGadget(gadget, sub_gadget_url) {\n + return gadget.declareGadget(sub_gadget_url, {\n + sandbox: \'iframe\',\n + element: gadget.props.content_element.querySelector("div.ui-content"),\n + scope: "sub_gadget"\n + });\n + }\n + function getAvailableSubGadgetList(gadget) {\n + var main_gadget = gadget.props.content_element.querySelector(\'form.main-gadget-select-form\'),\n + gadget_option_list = main_gadget.main_gadget_selector.querySelectorAll(\'option\'),\n + gadget_list = [],\n + i;\n + for(i = 0; i < gadget_option_list.length; i += 1) {\n + gadget_list.push({\n + url: gadget_option_list[i].value,\n + display_name: gadget_option_list[i].innerText\n + });\n + }\n + return gadget_list;\n + }\n + function filterSimilarSubGadgetList(gadget, sub_gadget_url) {\n + var interface_gadget,\n + available_subgadget_list;\n + return RSVP.Queue()\n + .push(function() {\n + return gadget.getDeclaredGadget("interface");\n + })\n + .push(function(i_gadget) {\n + interface_gadget = i_gadget;\n + return interface_gadget.getVerifyGadget(sub_gadget_url);\n + })\n + .push(function(sub_gadget) {\n + return RSVP.all([\n + interface_gadget.getDeclaredGadgetInterfaceList(sub_gadget),\n + getAvailableSubGadgetList(gadget)\n + ]);\n + })\n + .push(function(result_data) {\n + var interface_url_list = result_data[0],\n + item,\n + status_list = [];\n + available_subgadget_list = result_data[1];\n + for(item in available_subgadget_list) {\n + status_list.push(interface_gadget.verifyGadgetInterfaceListImplementation(available_subgadget_list[item].url, interface_url_list));\n + }\n + return RSVP.all(status_list);\n + })\n + .push(function(result_list) {\n + return [available_subgadget_list, result_list];\n + });\n + }\n + function updateSimilarGadgetOptionList(gadget, sub_gadget_url) {\n + return RSVP.Queue()\n + .push(function() {\n + return filterSimilarSubGadgetList(gadget, sub_gadget_url);\n + })\n + .push(function(filtered_list) {\n + var select = gadget.props.content_element.querySelector(\'form.similar-gadget-select-form\').similar_gadget_selector;\n + select.innerHTML = "";\n + var i;\n + for(i = 0; i < filtered_list[1].length; i += 1) {\n + if(filtered_list[1][i]) {\n + var option = document.createElement("option");\n + option.text = filtered_list[0][i].display_name;\n + option.value = filtered_list[0][i].url;\n + select.appendChild(option);\n + }\n + }\n + return;\n + });\n + }\n + function gadgetSwitchHandler(gadget) {\n + return new RSVP.Queue()\n + .push(function() {\n + return RSVP.any([\n + promiseEventListener(\n + gadget.props.content_element.querySelector(\'form.main-gadget-select-form\'),\n + \'submit\',\n + false\n + ),\n + promiseEventListener(\n + gadget.props.content_element.querySelector(\'form.similar-gadget-select-form\'),\n + \'submit\',\n + false\n + )\n + ]);\n + })\n + .push(function(submit_event) {\n + var submit_source = submit_event.target.className;\n + gadget.props.content_element.querySelector("input[type=submit]")\n + .disabled = true;\n + gadget.props.content_element.querySelector("div.ui-content").innerHTML = "";\n + if(submit_source === \'main-gadget-select-form\') {\n + return RSVP.all([\n + declareSubGadget(gadget,submit_event.target[0].value),\n + updateSimilarGadgetOptionList(gadget, submit_event.target[0].value)\n + ]);\n + } else {\n + return declareSubGadget(gadget,submit_event.target[0].value);\n + }\n + })\n + .push(function() {\n + return gadget.editor_setEditor();\n + })\n + .push(function(){\n + gadget.props.content_element.querySelector("input[type=submit]")\n + .disabled = false;\n + return gadgetSwitchHandler(gadget);\n + });\n + }\n + \n // block JQM auto-start\n $(document)\n .on("mobileinit", function () {\n @@ -115,57 +235,61 @@ rJS(window)\n \n .ready(function (g) {\n + console.log("test gadget ready");\n + g.props = {};\n + return g.getElement()\n + .push(function (element) {\n + $(element).trigger("create");\n + g.props.element = element;\n + g.props.content_element = element.querySelector(\'.gadget-content\');\n + });\n })\n -\n .declareMethod(\'render\', function () {\n - var gadget, page_list, page;\n -\n - gadget = this;\n - page_list = document.body.querySelectorAll("[data-role=page]");\n - page = page_list[page_list.length - 1];\n -\n - // helper: declare edtior\n - function declareEditorGadget(editor_g) {\n - return gadget.declareGadget(editor_g, {\n - sandbox: \'iframe\',\n - element: page.querySelector("div.ui-content"),\n - scope: "editor"\n - });\n - }\n -\n + var gadget = this;\n return new RSVP.Queue()\n .push(function() {\n - console.log("first gadget");\n - return declareEditorGadget(EDITOR_GADGET_1);\n + return declareInterfaceGadget(gadget, DEFAULT_GADGET_URL);\n + })\n + .push(function() {\n + return declareSubGadget(gadget, DEFAULT_GADGET_URL);\n + })\n + .push(function() {\n + return gadget.editor_setEditor();\n })\n .push(function(){\n - page.querySelector("div.ui-content").innerHTML = "";\n - return declareEditorGadget(EDITOR_GADGET_2);\n + return gadgetSwitchHandler(gadget);\n });\n -\n })\n \n /* ============================ EDITOR =============================== */\n .declareMethod("editor_getContent", function (param_list) {\n - return this.getDeclaredGadget("editor")\n + return this.getDeclaredGadget("sub_gadget")\n .then(function (editor) {\n return editor.getContent.apply(editor, param_list);\n });\n })\n .declareMethod("editor_setContent", function (param_list) {\n - return this.getDeclaredGadget("editor")\n + return this.getDeclaredGadget("sub_gadget")\n .then(function (editor) {\n return editor.setContent.apply(editor, param_list);\n });\n })\n .declareMethod("editor_clearContent", function (param_list) {\n - return this.getDeclaredGadget("editor")\n + return this.getDeclaredGadget("sub_gadget")\n .then(function (editor) {\n return editor.clearContent.apply(editor, param_list);\n });\n + })\n + .declareMethod("editor_setEditor", function (param_list) {\n + return this.getDeclaredGadget("sub_gadget")\n + .then(function (editor) {\n + return editor.setEditor.apply(editor, param_list);\n + });\n });\n \n -}(window, document, rJS));</string> </value> +}(window, document, rJS, promiseEventListener)); + +]]></string> </value> </item> <item> <key> <string>title</string> </key> @@ -300,7 +424,7 @@ </item> <item> <key> <string>serial</string> </key> - <value> <string>944.56235.17061.26624</string> </value> + <value> <string>945.2225.65299.39441</string> </value> </item> <item> <key> <string>state</string> </key> @@ -318,7 +442,7 @@ </tuple> <state> <tuple> - <float>1438780043.78</float> + <float>1439471855.78</float> <string>GMT</string> </tuple> </state> diff --git a/bt5/erp5_web_editor_demo/PathTemplateItem/web_page_module/interface_gadget_interfaces_html.xml b/bt5/erp5_web_editor_demo/PathTemplateItem/web_page_module/interface_gadget_interfaces_html.xml new file mode 100644 index 0000000000000000000000000000000000000000..e5176737a406efad9732e0d6f810649fe6f020e6 --- /dev/null +++ b/bt5/erp5_web_editor_demo/PathTemplateItem/web_page_module/interface_gadget_interfaces_html.xml @@ -0,0 +1,350 @@ +<?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_interfaces.html</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>interface_gadget_interfaces_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 charset="utf-8" />\n + <meta name="viewport" content="width=device-width, user-scalable=no" />\n + <title>Interfaces Gadget</title>\n +\n + <script src="rsvp.js" type="text/javascript"></script>\n + <script src="renderjs.js" type="text/javascript"></script>\n + <script src="jquery.js" type="text/javascript"></script>\n +\n + <!-- custom script -->\n + <script src="gadget_interfaces.js" type="text/javascript"></script>\n +\n + </head>\n + <body></body>\n +</html> + +]]></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Gadget Interfaces</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>zope1</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>1436193819.91</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>zope</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>944.33146.61429.18875</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>1437729117.8</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> + <none/> + </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</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>empty</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>1436193507.57</float> + <string>GMT</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_web_editor_demo/PathTemplateItem/web_page_module/interface_gadget_interfaces_js.xml b/bt5/erp5_web_editor_demo/PathTemplateItem/web_page_module/interface_gadget_interfaces_js.xml new file mode 100644 index 0000000000000000000000000000000000000000..d85334723c866692451011f654e3ae7180c03922 --- /dev/null +++ b/bt5/erp5_web_editor_demo/PathTemplateItem/web_page_module/interface_gadget_interfaces_js.xml @@ -0,0 +1,748 @@ +<?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_interfaces.js</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>interface_gadget_interfaces_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 +/*\n + * DOMParser HTML extension\n + * 2012-09-04\n + *\n + * By Eli Grey, http://eligrey.com\n + * Public domain.\n + * NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.\n + */\n +/*! @source https://gist.github.com/1129031 */\n +(function (DOMParser) {\n + "use strict";\n + var DOMParser_proto = DOMParser.prototype,\n + real_parseFromString = DOMParser_proto.parseFromString;\n +\n + // Firefox/Opera/IE throw errors on unsupported types\n + try {\n + // WebKit returns null on unsupported types\n + if ((new DOMParser()).parseFromString("", "text/html")) {\n + // text/html parsing is natively supported\n + return;\n + }\n + } catch (ignore) {}\n +\n + DOMParser_proto.parseFromString = function (markup, type) {\n + var result, doc, doc_elt, first_elt;\n + if (/^\\s*text\\/html\\s*(?:;|$)/i.test(type)) {\n + doc = document.implementation.createHTMLDocument("");\n + doc_elt = doc.documentElement;\n +\n + doc_elt.innerHTML = markup;\n + first_elt = doc_elt.firstElementChild;\n +\n + if (doc_elt.childElementCount === 1\n + && first_elt.localName.toLowerCase() === "html") {\n + doc.replaceChild(first_elt, doc_elt);\n + }\n +\n + result = doc;\n + } else {\n + result = real_parseFromString.apply(this, arguments);\n + }\n + return result;\n + };\n +}(DOMParser));\n +\n +/*global window, rJS, RSVP */\n +/*jslint nomen: true, indent: 2, maxerr: 3 */\n +(function (window, rJS, jQuery, RSVP, DOMParser) {\n + "use strict";\n +\n + var VERIFY_GADGET_SCOPE = "verify_gadget";\n +\n + function verifyInterfaceDefinition(interface_url) {\n + //to verify if interface definition follows the correct template.\n + return RSVP.Queue()\n + .push(function () {\n + return jQuery.get(interface_url);\n + })\n + .push(function(file_data) {\n + var doc = (new DOMParser()).parseFromString(file_data, \'text/html\').body,\n + dl_list = doc.getElementsByTagName(\'dl\'),\n + next_element = dl_list[0].firstElementChild,\n + method_len = dl_list.length - 1,\n + defer = RSVP.defer(),\n + i;\n + if (dl_list[0].childElementCount !== 3*method_len) {\n + throw new Error("Interface Definition Incorrect.");\n + }\n + try {\n + for (i = 0; i < method_len; i += 1) {\n + if ((!next_element || next_element.localName.toLowerCase() !== \'dt\') ||\n + (!(next_element = next_element.nextElementSibling) || next_element.localName.toLowerCase() !== \'dd\') ||\n + (!(next_element = next_element.nextElementSibling) || next_element.localName.toLowerCase() !== \'dl\')) {\n + throw new Error("Interface Definition Incorrect.");\n + }\n + if(next_element.getElementsByTagName(\'dt\').length !== next_element.getElementsByTagName(\'dd\').length) {\n + throw new Error("Interface Definition Incorrect.");\n + }\n + var argument_len = next_element.getElementsByTagName(\'dt\').length,\n + next_child_element = next_element.firstElementChild,\n + j;\n + for (j = 0; j < argument_len; j += 1) {\n + if ((!next_child_element || next_child_element.localName.toLowerCase() !== \'dt\') ||\n + (!(next_child_element = next_child_element.nextElementSibling) || next_child_element.localName.toLowerCase() !== \'dd\')) {\n + throw new Error("Interface Definition Incorrect.");\n + }\n + next_child_element = next_child_element.nextElementSibling;\n + }\n + next_element = next_element.nextElementSibling;\n + }\n + defer.resolve("Success");\n + } catch(error) {\n + defer.reject(error);\n + }\n + return defer.promise;\n + });\n + }\n +\n + function verifyInterfaceDeclaration(interface_url, declared_interface_list) {\n + //to verify if gadget declares the interface.\n + var defer = RSVP.defer();\n + try {\n + if (declared_interface_list.indexOf(interface_url) > -1) {\n + defer.resolve("Success");\n + } else {\n + throw new Error("Interface not declared.");\n + }\n + } catch(error) {\n + defer.reject(error);\n + }\n + return defer.promise;\n + }\n +\n + function verifyAllMethod(interface_method_list, gadget_method_list) {\n + //to verify all methods of gadget and interface.\n + var defer = RSVP.defer();\n + return RSVP.Queue()\n + .push(function() {\n + return verifyAllMethodDeclared(interface_method_list, gadget_method_list[0]);\n + })\n + .push(function() {\n + return verifyAllMethodSignature(interface_method_list, gadget_method_list[1]);\n + })\n + .push (function() {\n + defer.resolve("Success");\n + return defer.promise;\n + }, function(error) {\n + defer.reject(error);\n + return defer.promise;\n + });\n + }\n +\n + function verifyAllMethodDeclared(interface_method_list, gadget_method_list) {\n + //to verify if all the interface methods are declared by the gadget.\n + var defer = RSVP.defer(),\n + gadget_method_name_list = gadget_method_list,\n + interface_method_name_list = [],\n + i, j;\n + for (i = 0; i < interface_method_list.length; i += 1) {\n + interface_method_name_list.push(interface_method_list[i].name);\n + }\n + try {\n + for (j = 0; j < interface_method_name_list.length; j += 1) {\n + if(gadget_method_name_list.indexOf(interface_method_name_list[j]) < 0) {\n + throw new Error("All methods are not declared.");\n + }\n + }\n + defer.resolve("Success");\n + } catch(error) {\n + defer.reject(error);\n + }\n + return defer.promise;\n + }\n +\n + function verifyAllMethodSignature(interface_method_list, gadget_method_list) {\n + //to verify if all the declared methods match the signature of the interface methods.\n + var defer = RSVP.defer(),\n + interface_method_dict = {},\n + gadget_method_name_list = [],\n + index,\n + item,\n + i, j;\n + for(i = 0; i < interface_method_list.length; i += 1) {\n + interface_method_dict[interface_method_list[i].name] = interface_method_list[i];\n + }\n + for(j = 0; j < gadget_method_list.length; j += 1) {\n + gadget_method_name_list.push(gadget_method_list[j].name);\n + }\n + try {\n + for(item in interface_method_dict) {\n + index = gadget_method_name_list.lastIndexOf(item);\n + if(!verifyMethodSignature(interface_method_dict[item], gadget_method_list[index])) {\n + throw new Error("All methods signature do not match.");\n + }\n + }\n + defer.resolve("Success");\n + } catch(error) {\n + defer.reject(error);\n + }\n + return defer.promise;\n + }\n +\n + function verifyMethodSignature(interface_method, gadget_method) {\n + //to verify if two methods have the same signature\n + var max_arg_len = interface_method.argument_list.length,\n + min_arg_len = 0,\n + i;\n + if (max_arg_len) {\n + var argument_list = interface_method.argument_list;\n + for (i = 0; i < argument_list.length; i += 1) {\n + if (argument_list[i].required) {\n + min_arg_len += 1;\n + }\n + }\n + }\n + return (gadget_method.arg_len >= min_arg_len && gadget_method.arg_len <= max_arg_len);\n + }\n +\n + rJS(window)\n + .ready(function (g) {\n + g.props = {};\n + })\n +\n + .declareMethod("getVerifyGadget", function (gadget_url) {\n + var interface_gadget = this;\n + return new RSVP.Queue()\n + .push(function () {\n + return interface_gadget.declareGadget(gadget_url, {\n + scope: gadget_url,\n + element: interface_gadget.__element\n + });\n + })\n + .push(function () {\n + return interface_gadget.getDeclaredGadget(gadget_url);\n + });\n + })\n +\n + .declareMethod("getDeclaredGadgetInterfaceList", function (gadget) {\n + return gadget.getInterfaceList();\n + })\n +\n + .declareMethod("getDeclaredGadgetMethodList", function (gadget) {\n + var declared_method_dict = {},\n + declared_method_list = [],\n + item;\n + for (item in gadget) {\n + if (!(/__/).test(item)) {\n + declared_method_dict[item] = gadget[item];\n + }\n + }\n + for(item in declared_method_dict) {\n + declared_method_list.push(item);\n + } \n + return RSVP.all([\n + declared_method_list,\n + gadget.getDeclaredMethodList()]); \n + })\n +\n + .declareMethod("getAbsoluteURL", function (gadget, url) {\n + return RSVP.Queue()\n + .push(function() {\n + return gadget.getPath(); \n + })\n + .push(function(base_url) {\n + return rJS.getAbsoluteURL(url, base_url);\n + });\n + })\n +\n + .declareMethod("getInterfaceData", function (interface_url) {\n + var interface_data = {\n + name: "",\n + description: "",\n + method_list: []\n + };\n + return RSVP.Queue()\n + .push(function() {\n + return jQuery.get(interface_url);\n + })\n + .push(function(file_data) {\n + var doc = (new DOMParser()).parseFromString(file_data, \'text/html\').body,\n + dl_list = doc.getElementsByTagName(\'dl\'),\n + dt_list = doc.getElementsByTagName(\'dt\'),\n + dd_list = doc.getElementsByTagName(\'dd\'),\n + method_len = dl_list.length - 1,\n + dt_count = 0,\n + dl_count = 1,\n + i;\n + interface_data.name = doc.getElementsByTagName(\'h1\')[0].innerText;\n + interface_data.description = doc.getElementsByTagName(\'h3\')[0].innerText;\n + for (i = 0; i < method_len; i += 1) {\n + var method = {\n + name: dt_list[dt_count].innerText,\n + description: dd_list[dt_count].innerText,\n + argument_list: []\n + },\n + argument_len = dl_list[dl_count].getElementsByTagName(\'dt\').length,\n + j;\n + dt_count += 1;\n + dl_count += 1;\n + for (j = 0; j < argument_len; j += 1) {\n + var argument_item = {\n + name: dt_list[dt_count].innerText,\n + description: dd_list[dt_count].innerText,\n + required: dt_list[dt_count].getAttribute("data-parameter-required") === "optional" ? false:true,\n + type: dt_list[dt_count].getAttribute("data-parameter-type")\n + };\n + dt_count += 1;\n + method.argument_list.push(argument_item);\n + }\n + interface_data.method_list.push(method);\n + }\n + return interface_data;\n + });\n + })\n +\n + .declareMethod("getDefinedInterfaceMethodList", function (interface_url) {\n + return this.getInterfaceData(interface_url)\n + .push(function(interface_data) {\n + return interface_data.method_list;\n + });\n + })\n +\n + .declareMethod("verifyGadgetInterfaceImplementation", function (gadget_url, interface_url) {\n + var interface_gadget = this,\n + absolute_interface_url;\n + return RSVP.Queue()\n + .push(function () {\n + if(!gadget_url || !interface_url) {\n + throw new Error("Invalid Inputs");\n + }\n + return interface_gadget.getVerifyGadget(gadget_url);\n + })\n + .push(function (gadget) {\n + return RSVP.all([ \n + interface_gadget.getDeclaredGadgetInterfaceList(gadget),\n + interface_gadget.getAbsoluteURL(gadget, interface_url)\n + ]);\n + })\n + .push(function (interface_detail) {\n + var declared_interface_list = interface_detail[0];\n + absolute_interface_url = interface_detail[1];\n + return verifyInterfaceDeclaration(absolute_interface_url, declared_interface_list);\n + })\n + .push(function () {\n + return verifyInterfaceDefinition(absolute_interface_url);\n + })\n + .push(function () {\n + return interface_gadget.getDeclaredGadget(gadget_url);\n + })\n + .push(function (gadget) {\n + return RSVP.all([\n + interface_gadget.getDefinedInterfaceMethodList(absolute_interface_url),\n + interface_gadget.getDeclaredGadgetMethodList(gadget)\n + ]);\n + })\n + .push(function(method_list) {\n + return verifyAllMethod(method_list[0], method_list[1]);\n + })\n + .push (function() {\n + return true;\n + }, function(error) {\n + console.log("Verified : Failure", error.message);\n + return false;\n + });\n + })\n +\n + .declareMethod("verifyGadgetAllInterfaceImplementation", function (gadget_url) {\n + var interface_gadget = this;\n + return RSVP.Queue()\n + .push(function () {\n + if(!gadget_url) {\n + throw new Error("Invalid Input");\n + }\n + return interface_gadget.getVerifyGadget(gadget_url);\n + })\n + .push(function (gadget) {\n + return interface_gadget.getDeclaredGadgetInterfaceList(gadget);\n + })\n + .push(function (declared_interface_list) {\n + var interface_url,\n + result_list = [],\n + item;\n + for (item in declared_interface_list) {\n + interface_url = declared_interface_list[item];\n + result_list.push(interface_gadget.verifyGadgetInterfaceImplementation(gadget_url, interface_url));\n + }\n + return RSVP.all(result_list);\n + })\n + .push(function(result_list) {\n + var item;\n + for(item in result_list) {\n + if (!result_list[item]) {\n + throw new Error("Interface Implementation Failure.");\n + }\n + }\n + })\n + .push (function() {\n + return true;\n + }, function(error) {\n + return false;\n + });\n + })\n +\n + .declareMethod("verifyGadgetInterfaceListImplementation", function (gadget_url, interface_url_list) {\n + var interface_gadget = this;\n + return RSVP.Queue()\n + .push(function () {\n + if(!gadget_url) {\n + throw new Error("Invalid Input");\n + }\n + return interface_gadget.getVerifyGadget(gadget_url);\n + })\n + .push(function (gadget) {\n + var interface_url,\n + result_list = [],\n + item;\n + for (item in interface_url_list) {\n + interface_url = interface_url_list[item];\n + result_list.push(interface_gadget.verifyGadgetInterfaceImplementation(gadget_url, interface_url));\n + }\n + return RSVP.all(result_list);\n + })\n + .push(function(result_list) {\n + var item;\n + for(item in result_list) {\n + if (!result_list[item]) {\n + throw new Error("Interface Implementation Failure.");\n + }\n + }\n + })\n + .push (function() {\n + return true;\n + }, function(error) {\n + return false;\n + });\n + });\n +\n +}(window, rJS, jQuery, RSVP, DOMParser)); + +]]></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Gadget Interfaces 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>zope1</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>1436193838.09</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>zope</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>945.2240.5696.46762</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>1439472007.41</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> + <none/> + </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</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>empty</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>1436191092.18</float> + <string>GMT</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_web_editor_demo/PathTemplateItem/web_page_module/interface_test_correct_implemented_gadget_html.xml b/bt5/erp5_web_editor_demo/PathTemplateItem/web_page_module/interface_test_correct_implemented_gadget_html.xml new file mode 100644 index 0000000000000000000000000000000000000000..e549344ce44cee30c2b8397832ed537567f4c7dc --- /dev/null +++ b/bt5/erp5_web_editor_demo/PathTemplateItem/web_page_module/interface_test_correct_implemented_gadget_html.xml @@ -0,0 +1,353 @@ +<?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>interface_test_correct_implemented_gadget.html</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>interface_test_correct_implemented_gadget_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 charset="utf-8" />\n + <title>Test Gadget</title>\n + <meta name="viewport" content="width=device-width, initial-scale=1" />\n +\n + <link rel="http://www.renderjs.org/rel/interface" href="demo_interface1.html">\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 + <script src="jquery.js" type="text/javascript"></script>\n +\n + <!-- custom script -->\n + <script src="interface_test_correct_implemented_gadget.js" type="text/javascript"></script>\n + </head>\n + <body> </body>\n +</html> + +]]></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Correct Implemented Test Gadget</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>zope1</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>1437492981.82</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>zope</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>944.37533.56469.39680</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>1437658341.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> + <none/> + </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</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>empty</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>1437492348.74</float> + <string>GMT</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_web_editor_demo/PathTemplateItem/web_page_module/interface_test_correct_implemented_gadget_js.xml b/bt5/erp5_web_editor_demo/PathTemplateItem/web_page_module/interface_test_correct_implemented_gadget_js.xml new file mode 100644 index 0000000000000000000000000000000000000000..b3fe950f7239e7b006ed989c172a22b832d63b3a --- /dev/null +++ b/bt5/erp5_web_editor_demo/PathTemplateItem/web_page_module/interface_test_correct_implemented_gadget_js.xml @@ -0,0 +1,349 @@ +<?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>interface_test_correct_implemented_gadget.js</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>interface_test_correct_implemented_gadget_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 */\n +/*jslint nomen: true, indent: 2, maxerr: 3 */\n +(function (window, rJS) {\n + "use strict";\n +\n + rJS(window)\n + .ready(function (g) {\n + g.props = {};\n + })\n +\n + .declareMethod("method1", function (param1, param2) {\n + return;\n + })\n + .declareMethod("method2", function (param1) {\n + return;\n + })\n + .declareMethod("method3", function () {\n + return;\n + })\n + .declareMethod("setEditor", function (param1, param2, param3) {\n + return;\n + });\n +\n +}(window, rJS));</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Correct Implemented Test Gadget 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>zope1</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>1437492985.09</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>zope</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>944.37533.46344.53879</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>1439467825.02</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> + <none/> + </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</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>empty</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>1437492774.47</float> + <string>GMT</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_web_editor_demo/PathTemplateItem/web_page_module/interface_test_multiple_interface_correct_gadget_html.xml b/bt5/erp5_web_editor_demo/PathTemplateItem/web_page_module/interface_test_multiple_interface_correct_gadget_html.xml new file mode 100644 index 0000000000000000000000000000000000000000..67da8fbb3fe405c855e0fbd5826f85118f27fe6b --- /dev/null +++ b/bt5/erp5_web_editor_demo/PathTemplateItem/web_page_module/interface_test_multiple_interface_correct_gadget_html.xml @@ -0,0 +1,354 @@ +<?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>interface_test_multiple_interface_correct_gadget.html</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>interface_test_multiple_interface_correct_gadget_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 charset="utf-8" />\n + <title>Test Gadget</title>\n + <meta name="viewport" content="width=device-width, initial-scale=1" />\n +\n + <link rel="http://www.renderjs.org/rel/interface" href="demo_interface1.html">\n + <link rel="http://www.renderjs.org/rel/interface" href="demo_interface2.html">\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 + <script src="jquery.js" type="text/javascript"></script>\n +\n + <!-- custom script -->\n + <script src="interface_test_multiple_interface_correct_gadget.js" type="text/javascript"></script>\n + </head>\n + <body> </body>\n +</html> + +]]></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Multiple Interfaces Correct Implemented Test Gadget</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>zope1</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>1436977227.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>zope</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>944.37655.14678.64614</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>1437664771.46</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> + <none/> + </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</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>empty</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>1436974282.2</float> + <string>GMT</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_web_editor_demo/PathTemplateItem/web_page_module/interface_test_multiple_interface_correct_gadget_js.xml b/bt5/erp5_web_editor_demo/PathTemplateItem/web_page_module/interface_test_multiple_interface_correct_gadget_js.xml new file mode 100644 index 0000000000000000000000000000000000000000..816918581bb9d5bc5d0ad21131e6069f48b72b0d --- /dev/null +++ b/bt5/erp5_web_editor_demo/PathTemplateItem/web_page_module/interface_test_multiple_interface_correct_gadget_js.xml @@ -0,0 +1,358 @@ +<?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>interface_test_multiple_interface_correct_gadget.js</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>interface_test_multiple_interface_correct_gadget_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 */\n +/*jslint nomen: true, indent: 2, maxerr: 3 */\n +(function (window, rJS, Handlebars, $, jQuery, RSVP) {\n + "use strict";\n +\n + rJS(window)\n + .ready(function (g) {\n + g.props = {};\n + })\n +\n + .declareMethod("method1", function (param1, param2) {\n + return;\n + })\n + .declareMethod("method2", function (param1) {\n + return;\n + })\n + .declareMethod("method3", function () {\n + return;\n + })\n + .declareMethod("testmethod1", function () {\n + return;\n + })\n + .declareMethod("testmethod2", function (param1) {\n + return;\n + })\n + .declareMethod("testmethod3", function (param1, param2) {\n + return;\n + })\n + .declareMethod("setEditor", function (param1, param2, param3) {\n + return;\n + });\n +\n +}(window, rJS, Handlebars, $, jQuery, RSVP));</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Multiple Interfaces Correct Implemented Test Gadget 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>zope1</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>1436977235.46</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>zope</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>944.37678.2686.43349</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>1439468021.82</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> + <none/> + </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</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>empty</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>1436973624.78</float> + <string>GMT</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_web_editor_demo/bt/template_keep_last_workflow_history_only_path_list b/bt5/erp5_web_editor_demo/bt/template_keep_last_workflow_history_only_path_list index 6d9b6cf0e591d24d93d9407de841b1c938e3a09f..30cbe47c8abcbdd3ef81113f8a6c38f51fc73e01 100644 --- a/bt5/erp5_web_editor_demo/bt/template_keep_last_workflow_history_only_path_list +++ b/bt5/erp5_web_editor_demo/bt/template_keep_last_workflow_history_only_path_list @@ -1,3 +1,6 @@ web_page_module/editor* +web_page_module/interface_gadget_interfaces* +web_page_module/interface_test_correct_implemented_gadget* +web_page_module/interface_test_multiple_interface_correct_gadget* web_site_module/editor_demo web_site_module/editor_demo/** \ No newline at end of file diff --git a/bt5/erp5_web_editor_demo/bt/template_keep_workflow_path_list b/bt5/erp5_web_editor_demo/bt/template_keep_workflow_path_list index 6d9b6cf0e591d24d93d9407de841b1c938e3a09f..30cbe47c8abcbdd3ef81113f8a6c38f51fc73e01 100644 --- a/bt5/erp5_web_editor_demo/bt/template_keep_workflow_path_list +++ b/bt5/erp5_web_editor_demo/bt/template_keep_workflow_path_list @@ -1,3 +1,6 @@ web_page_module/editor* +web_page_module/interface_gadget_interfaces* +web_page_module/interface_test_correct_implemented_gadget* +web_page_module/interface_test_multiple_interface_correct_gadget* web_site_module/editor_demo web_site_module/editor_demo/** \ No newline at end of file diff --git a/bt5/erp5_web_editor_demo/bt/template_path_list b/bt5/erp5_web_editor_demo/bt/template_path_list index 6d9b6cf0e591d24d93d9407de841b1c938e3a09f..30cbe47c8abcbdd3ef81113f8a6c38f51fc73e01 100644 --- a/bt5/erp5_web_editor_demo/bt/template_path_list +++ b/bt5/erp5_web_editor_demo/bt/template_path_list @@ -1,3 +1,6 @@ web_page_module/editor* +web_page_module/interface_gadget_interfaces* +web_page_module/interface_test_correct_implemented_gadget* +web_page_module/interface_test_multiple_interface_correct_gadget* web_site_module/editor_demo web_site_module/editor_demo/** \ No newline at end of file