Commit 0533c55c authored by Vivek's avatar Vivek

wip

parent a9885b4a
...@@ -105,40 +105,32 @@ ...@@ -105,40 +105,32 @@
<key> <string>text_content</string> </key> <key> <string>text_content</string> </key>
<value> <string encoding="cdata"><![CDATA[ <value> <string encoding="cdata"><![CDATA[
\n
<!DOCTYPE html>\n <!DOCTYPE html>\n
<html>\n <html>\n
<head>\n <head>\n
<meta http-equiv="X-UA-Compatible" content="IE=Edge">\n <meta http-equiv="X-UA-Compatible" content="IE=Edge">\n
<meta charset="utf-8">\n <meta charset="utf-8">\n
\n
<title>bootstrap-wysihtml5</title>\n
\n
\n \n
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css"></link>\n <title>bootstrap-wysihtml5</title>\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 \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 \n
</head>\n <link rel="http://www.renderjs.org/rel/interface" href="editor_interface.html">\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
\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 \n
<script src="wysihtml5x-toolbar.min.js"></script>\n </head>\n
<script src="jquery.js"></script>\n <body></body>\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
</html>\n </html>\n
...@@ -277,7 +269,7 @@ ...@@ -277,7 +269,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>944.56196.65369.51899</string> </value> <value> <string>945.2018.8243.11827</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -295,7 +287,7 @@ ...@@ -295,7 +287,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1438777350.44</float> <float>1439468941.87</float>
<string>GMT</string> <string>GMT</string>
</tuple> </tuple>
</state> </state>
......
...@@ -110,19 +110,21 @@ ...@@ -110,19 +110,21 @@
<html lang="en">\n <html lang="en">\n
<head>\n <head>\n
<meta charset="utf-8">\n <meta charset="utf-8">\n
<title>title</title>\n <title>bootstrap-wysiwhg</title>\n
\n \n
<link rel="stylesheet" href="bootstrap-combined.no-icons.min.css">\n <link rel="stylesheet" href="bootstrap-combined.no-icons.min.css">\n
<link rel="stylesheet" href="bootstrap-responsive.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 <link rel="stylesheet" href="https://netdna.bootstrapcdn.com/font-awesome/3.0.2/css/font-awesome.css">\n
\n \n
<script src="jquery.js"></script>\n <link rel="http://www.renderjs.org/rel/interface" href="editor_interface.html">\n
<script src="jquery.hotkeys.js"></script>\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.min.js"></script>\n
<script src="bootstrap-wysiwyg.js"></script>\n <script src="bootstrap-wysiwyg.js"></script>\n
<script src="rsvp.js"></script>\n <script src="rsvp.js"></script>\n
<script src="renderjs.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 \n
</head>\n </head>\n
<body>\n <body>\n
...@@ -333,7 +335,7 @@ ...@@ -333,7 +335,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>944.53506.33548.17937</string> </value> <value> <string>945.2156.1335.48469</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -351,7 +353,7 @@ ...@@ -351,7 +353,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1438615893.56</float> <float>1439467063.04</float>
<string>GMT</string> <string>GMT</string>
</tuple> </tuple>
</state> </state>
......
...@@ -99,7 +99,9 @@ ...@@ -99,7 +99,9 @@
</item> </item>
<item> <item>
<key> <string>text_content</string> </key> <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 /*global window, jQuery, rJS*/\n
"use strict";\n "use strict";\n
\n \n
...@@ -115,16 +117,26 @@ ...@@ -115,16 +117,26 @@
.declareMethod(\'clearContent\', function () {\n .declareMethod(\'clearContent\', function () {\n
rJS(this).editor.html(\'\');\n rJS(this).editor.html(\'\');\n
})\n })\n
.ready(function (g) {\n .declareMethod(\'setEditor\', function () {\n
g.editor = $(\'.textarea\');\n document.body.innerHTML =\'<div class="container" style=" width: 100%; height: 600px;">\'\n
g.editor.wysihtml5({\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 toolbar: {\n
fa: true\n fa: true\n
}\n }\n
});\n });\n
})\n
\n
.ready(function (g) {\n
});\n });\n
\n \n
}(window, jQuery, rJS));</string> </value> }(window, jQuery, rJS));
]]></string> </value>
</item> </item>
<item> <item>
<key> <string>title</string> </key> <key> <string>title</string> </key>
...@@ -259,7 +271,7 @@ ...@@ -259,7 +271,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>944.56186.56926.29952</string> </value> <value> <string>945.1997.11510.44544</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -277,7 +289,7 @@ ...@@ -277,7 +289,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1438777746.45</float> <float>1439471143.4</float>
<string>GMT</string> <string>GMT</string>
</tuple> </tuple>
</state> </state>
......
...@@ -157,12 +157,14 @@ ...@@ -157,12 +157,14 @@
.declareMethod(\'clearContent\', function () {\n .declareMethod(\'clearContent\', function () {\n
rJS(this).editor.html(\'\');\n rJS(this).editor.html(\'\');\n
})\n })\n
.ready(function (g) {\n .declareMethod(\'setEditor\', function () {\n
g.editor = $(\'#editor\');\n
initToolbarBootstrapBindings();\n initToolbarBootstrapBindings();\n
g.editor.wysiwyg({\n this.editor.wysiwyg({\n
fileUploadError: showErrorAlert\n fileUploadError: showErrorAlert\n
});\n });\n
})\n
.ready(function (g) {\n
g.editor = $(\'#editor\');\n
});\n });\n
\n \n
}(window, jQuery, rJS)); }(window, jQuery, rJS));
...@@ -302,7 +304,7 @@ ...@@ -302,7 +304,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>944.53151.60155.61457</string> </value> <value> <string>944.63600.63717.14984</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -320,7 +322,7 @@ ...@@ -320,7 +322,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1438594704.78</float> <float>1439467049.96</float>
<string>GMT</string> <string>GMT</string>
</tuple> </tuple>
</state> </state>
......
...@@ -112,7 +112,21 @@ ...@@ -112,7 +112,21 @@
<body>\n <body>\n
<h1>Editor Interface</h1>\n <h1>Editor Interface</h1>\n
<h3>An interface defining the methods for text editor.</h3>\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 </body>\n
</html> </html>
...@@ -251,7 +265,7 @@ ...@@ -251,7 +265,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>944.48991.52289.15735</string> </value> <value> <string>944.53144.2367.52957</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -269,7 +283,7 @@ ...@@ -269,7 +283,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1438345024.7</float> <float>1439192630.9</float>
<string>GMT</string> <string>GMT</string>
</tuple> </tuple>
</state> </state>
......
...@@ -105,7 +105,6 @@ ...@@ -105,7 +105,6 @@
<key> <string>text_content</string> </key> <key> <string>text_content</string> </key>
<value> <string encoding="cdata"><![CDATA[ <value> <string encoding="cdata"><![CDATA[
\n
<!DOCTYPE html>\n <!DOCTYPE html>\n
<html>\n <html>\n
<head>\n <head>\n
...@@ -121,46 +120,45 @@ ...@@ -121,46 +120,45 @@
<script type="text/javascript" src="jquery.js"></script>\n <script type="text/javascript" src="jquery.js"></script>\n
<script type="text/javascript" src="rsvp.js"></script>\n <script type="text/javascript" src="rsvp.js"></script>\n
<script type="text/javascript" src="renderjs.js"></script>\n <script type="text/javascript" src="renderjs.js"></script>\n
<script type="text/javascript" src="handlebars.js"></script>\n <script src="gadget_global.js" ></script>\n
<script type="text/javascript" src="gadget_global.js" ></script>\n
<script type="text/javascript" src="jquerymobile.js"></script>\n <script type="text/javascript" src="jquerymobile.js"></script>\n
<script type="text/javascript" src="i18next.js"></script>\n <script type="text/javascript" src="i18next.js"></script>\n
\n \n
<!-- specific script -->\n <!-- specific script -->\n
<script type="text/javascript" src="editor_test_gadget.js"></script>\n <script type="text/javascript" src="editor_test_gadget.js"></script>\n
\n \n
<script class="sub-gadget-template" type="text/x-handlebars-template">\n </head>\n
<body>\n
<div data-role="page" class="ui-content gadget-content">\n
<div class="ui-grid-a ui-responsive">\n <div class="ui-grid-a ui-responsive">\n
<div class="ui-block-a" style="width:60%">\n <div class="ui-block-a" style="width:60%">\n
<div class="ui-content"></div>\n <div class="ui-content"></div>\n
</div>\n </div>\n
<div class="ui-block-b" style="width:30%">\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 <div data-role="fieldcontain">\n
<label for="gadget_selector" >Main Gadget</label>\n <label for="main_gadget_selector" >Main Gadget</label>\n
<select name="gadget_selector" class="select">\n <select name="main_gadget_selector" class="select">\n
<option value="./bootstrap-wysiwyg.html">Text Editor 1</option>\n
<option value="./bootstrap3-wysiwyg.html">Text Editor 2</option>\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="similar_gadget_selector" >Similar Gadgets</label>\n
<select name="similar_gadget_selector" class="select">\n
</select>\n </select>\n
</div>\n </div>\n
<input data-inline="true" type="submit" value="Submit" data-theme="b">\n <input data-inline="true" type="submit" value="Submit" data-theme="b">\n
</form>\n </form>\n
</div>\n </div>\n
</div>\n </div>\n
</script>\n
</head>\n
\n
<body>\n
<div data-role="page">\n
<div data-role="header" data-position="fixed" class="gadget-header" data-theme="b">\n
<h1></h1>\n
</div>\n
<div role="main" class="ui-content gadget-content"></div>\n
</div>\n </div>\n
</body>\n </body>\n
\n
</html>\n </html>\n
\n
]]></string> </value> ]]></string> </value>
...@@ -298,7 +296,7 @@ ...@@ -298,7 +296,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>944.57834.1936.52684</string> </value> <value> <string>945.2226.34067.16605</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -316,7 +314,7 @@ ...@@ -316,7 +314,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1438875522.58</float> <float>1439471929.19</float>
<string>GMT</string> <string>GMT</string>
</tuple> </tuple>
</state> </state>
......
...@@ -99,48 +99,131 @@ ...@@ -99,48 +99,131 @@
</item> </item>
<item> <item>
<key> <string>text_content</string> </key> <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 /*global console, window, document, rJS, RSVP, $ */\n
(function (window, document, rJS, Handlebars, promiseEventListener) {\n (function (window, document, rJS, promiseEventListener) {\n
"use strict";\n "use strict";\n
\n \n
var DEFAULT_EDITOR_GADGET = "./bootstrap-wysiwyg.html";\n var DEFAULT_GADGET_URL = "./bootstrap3-wysiwyg.html",\n
INTERFACE_GADGET_URL = "./gadget_interfaces.html";\n
\n \n
function declareEditorGadget(gadget, editor_g) {\n function declareInterfaceGadget(gadget) {\n
console.log("inside declareEditorGadget");\n return gadget.declareGadget(INTERFACE_GADGET_URL, {\n
return gadget.declareGadget(editor_g, {\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 sandbox: \'iframe\',\n
element: document.body.querySelector("[data-role=page]"),\n element: gadget.props.content_element.querySelector("div.ui-content"),\n
scope: "editor"\n scope: "sub_gadget"\n
});\n });\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 function gadgetSwitchHandler(gadget) {\n
console.log("Listening");\n
return new RSVP.Queue()\n return new RSVP.Queue()\n
.push(function() {\n .push(function() {\n
gadget.props.content_element.innerHTML =\n return RSVP.any([\n
gadget.props.sub_gadget_template({});\n promiseEventListener(\n
return promiseEventListener(\n gadget.props.content_element.querySelector(\'form.main-gadget-select-form\'),\n
gadget.props.content_element.querySelector(\'form.gadget-select-form\'),\n \'submit\',\n
\'submit\',\n false\n
false\n ),\n
);\n promiseEventListener(\n
})\n gadget.props.content_element.querySelector(\'form.similar-gadget-select-form\'),\n
\'submit\',\n
false\n
)\n
]);\n
})\n
.push(function(submit_event) {\n .push(function(submit_event) {\n
console.log("submit_event",submit_event);\n var submit_source = submit_event.target.className;\n
gadget.props.content_element.querySelector("input[type=submit]")\n gadget.props.content_element.querySelector("input[type=submit]")\n
.disabled = true;\n .disabled = true;\n
gadget.props.content_element.querySelector("div.ui-content").innerHTML = "";\n gadget.props.content_element.querySelector("div.ui-content").innerHTML = "";\n
console.log("Selected:", submit_event.target[0].value);\n if(submit_source === \'main-gadget-select-form\') {\n
return declareEditorGadget(gadget,submit_event.target[0].value);\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 })\n
.push(function(){\n .push(function(){\n
console.log("Calling self again");\n
gadget.props.content_element.querySelector("input[type=submit]")\n gadget.props.content_element.querySelector("input[type=submit]")\n
.disabled = false;\n .disabled = false;\n
return gadgetSwitchHandler(gadget);\n return gadgetSwitchHandler(gadget);\n
});\n });\n
\n
}\n }\n
\n \n
// block JQM auto-start\n // block JQM auto-start\n
...@@ -152,54 +235,61 @@ ...@@ -152,54 +235,61 @@
rJS(window)\n rJS(window)\n
\n \n
.ready(function (g) {\n .ready(function (g) {\n
console.log("test gadget ready");\n
g.props = {};\n g.props = {};\n
return g.getElement()\n return g.getElement()\n
.push(function (element) {\n .push(function (element) {\n
$(element).trigger("create");\n $(element).trigger("create");\n
g.props.element = element;\n g.props.element = element;\n
g.props.header_element = element.querySelector(\'.gadget-header\');\n
g.props.content_element = element.querySelector(\'.gadget-content\');\n g.props.content_element = element.querySelector(\'.gadget-content\');\n
g.props.sub_gadget_template = Handlebars.compile(\n
document.querySelector(".sub-gadget-template").innerHTML\n
);\n
});\n });\n
})\n })\n
\n
.declareMethod(\'render\', function () {\n .declareMethod(\'render\', function () {\n
var gadget = this;\n var gadget = this;\n
\n
return new RSVP.Queue()\n return new RSVP.Queue()\n
.push(function() {\n .push(function() {\n
console.log("default gadget");\n return declareInterfaceGadget(gadget, DEFAULT_GADGET_URL);\n
return declareEditorGadget(gadget, DEFAULT_EDITOR_GADGET);\n })\n
.push(function() {\n
return declareSubGadget(gadget, DEFAULT_GADGET_URL);\n
})\n
.push(function() {\n
return gadget.editor_setEditor();\n
})\n })\n
.push(function(){\n .push(function(){\n
return gadgetSwitchHandler(gadget);\n return gadgetSwitchHandler(gadget);\n
});\n });\n
\n
})\n })\n
\n \n
/* ============================ EDITOR =============================== */\n /* ============================ EDITOR =============================== */\n
.declareMethod("editor_getContent", function (param_list) {\n .declareMethod("editor_getContent", function (param_list) {\n
return this.getDeclaredGadget("editor")\n return this.getDeclaredGadget("sub_gadget")\n
.then(function (editor) {\n .then(function (editor) {\n
return editor.getContent.apply(editor, param_list);\n return editor.getContent.apply(editor, param_list);\n
});\n });\n
})\n })\n
.declareMethod("editor_setContent", function (param_list) {\n .declareMethod("editor_setContent", function (param_list) {\n
return this.getDeclaredGadget("editor")\n return this.getDeclaredGadget("sub_gadget")\n
.then(function (editor) {\n .then(function (editor) {\n
return editor.setContent.apply(editor, param_list);\n return editor.setContent.apply(editor, param_list);\n
});\n });\n
})\n })\n
.declareMethod("editor_clearContent", function (param_list) {\n .declareMethod("editor_clearContent", function (param_list) {\n
return this.getDeclaredGadget("editor")\n return this.getDeclaredGadget("sub_gadget")\n
.then(function (editor) {\n .then(function (editor) {\n
return editor.clearContent.apply(editor, param_list);\n return editor.clearContent.apply(editor, param_list);\n
});\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
\n \n
}(window, document, rJS, Handlebars, promiseEventListener));</string> </value> }(window, document, rJS, promiseEventListener));
]]></string> </value>
</item> </item>
<item> <item>
<key> <string>title</string> </key> <key> <string>title</string> </key>
...@@ -334,7 +424,7 @@ ...@@ -334,7 +424,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>944.57850.5818.19541</string> </value> <value> <string>945.2225.65299.39441</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -352,7 +442,7 @@ ...@@ -352,7 +442,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1438876472.39</float> <float>1439471855.78</float>
<string>GMT</string> <string>GMT</string>
</tuple> </tuple>
</state> </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_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>
<?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>
<?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>
<?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>
<?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>
<?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>
web_page_module/editor* 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
web_site_module/editor_demo/** web_site_module/editor_demo/**
\ No newline at end of file
web_page_module/editor* 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
web_site_module/editor_demo/** web_site_module/editor_demo/**
\ No newline at end of file
web_page_module/editor* 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
web_site_module/editor_demo/** web_site_module/editor_demo/**
\ No newline at end of file
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