Commit c8f3e826 authored by Romain Courteaud's avatar Romain Courteaud

[erp5_web_jabber_client] Use erp5_launcher as top gadget

Split each page into a separate gadget.
Stop using patched renderjs.
parent 4c986964
......@@ -99,14 +99,27 @@
</item>
<item>
<key> <string>text_content</string> </key>
<value> <string>CACHE MANIFEST\n
<value> <string encoding="cdata"><![CDATA[
CACHE MANIFEST\n
# generated on Mon, 2 Mar 2016 09:00:00 +0000\n
\n
CACHE:\n
https://netdna.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css\n
https://netdna.bootstrapcdn.com/font-awesome/4.2.0/fonts/fontawesome-webfont.eot?v=4.2.0\n
https://netdna.bootstrapcdn.com/font-awesome/4.2.0/fonts/fontawesome-webfont.eot?#iefix&v=4.2.0\n
https://netdna.bootstrapcdn.com/font-awesome/4.2.0/fonts/fontawesome-webfont.woff?v=4.2.0\n
https://netdna.bootstrapcdn.com/font-awesome/4.2.0/fonts/fontawesome-webfont.ttf?v=4.2.0\n
https://netdna.bootstrapcdn.com/font-awesome/4.2.0/fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular\n
URI.js\n
i18next.js\n
gadget_translation.html\n
gadget_translation.js\n
gadget_translation_data.js\n
erp5_launcher.html\n
erp5_launcher.js\n
gadget_erp5.css\n
gadget_global.js\n
gadget_jabberclient.js\n
gadget_jabberclient.html\n
gadget_jabberconnection.html\n
gadget_jabberconnection.js\n
gadget_jio.js\n
gadget_jio.html\n
handlebars.js\n
......@@ -116,9 +129,38 @@ jquerymobile.css\n
jquerymobile.js\n
renderjs.js\n
rsvp.js\n
\n
gadget_erp5_editor_panel.html\n
gadget_erp5_editor_panel.js\n
gadget_erp5_form.html\n
gadget_erp5_form.js\n
gadget_erp5_header.html\n
gadget_erp5_header.js\n
gadget_erp5_field_string.html\n
gadget_erp5_field_string.js\n
gadget_erp5_field_password.html\n
gadget_erp5_field_password.js\n
gadget_jabberclient_page_dialog.html\n
gadget_jabberclient_page_dialog.js\n
gadget_jabberclient_router.html\n
gadget_jabberclient_router.js\n
gadget_jabberclient_page_password.html\n
gadget_jabberclient_page_password.js\n
gadget_jabberclient_page_connect.html\n
gadget_jabberclient_page_connect.js\n
gadget_jabberclient_page_subscribe.js\n
gadget_jabberclient_page_subscribe.html\n
gadget_jabberclient_panel.html\n
gadget_jabberclient_panel.js\n
gadget_jabberclient_page_contact.js\n
gadget_jabberclient_page_contact.html\n
gadget_jabberclient_jio.html\n
gadget_jabberclient_jio.js\n
favicon.ico\n
connection/\n
NETWORK:\n
*</string> </value>
*
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
......@@ -239,7 +281,7 @@ NETWORK:\n
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>normie</string> </value>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -253,7 +295,7 @@ NETWORK:\n
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>945.44005.30137.52718</string> </value>
<value> <string>949.35452.57030.13636</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -271,7 +313,7 @@ NETWORK:\n
</tuple>
<state>
<tuple>
<float>1442825498.81</float>
<float>1456907697.62</float>
<string>UTC</string>
</tuple>
</state>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Web Manifest" 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_jabberconnection.appcache</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>jabber_gadget_jabberconnection_appcache</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 Manifest</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>text_content</string> </key>
<value> <string>CACHE MANIFEST\n
# generated on Mon, 1 Mar 2016 16:00:00 +0000\n
\n
CACHE:\n
gadget_global.js\n
gadget_jabberconnection.js\n
strophe.js\n
renderjs.js\n
rsvp.js\n
NETWORK:\n
*</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>RenderJS Gadget Jabber Connection AppCache</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>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>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1456847828.72</float>
<string>UTC</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>949.35449.64836.37666</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>1456847750.65</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>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>converted</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1456847558.56</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
......@@ -104,7 +104,7 @@
<value> <string encoding="cdata"><![CDATA[
<!doctype html>\n
<html>\n
<html manifest="gadget_jabberconnection.appcache">\n
<head>\n
<meta charset="utf-8">\n
<title>Connection</title>\n
......@@ -242,7 +242,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>romain</string> </value>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -256,7 +256,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>939.33860.38910.29713</string> </value>
<value> <string>949.35389.52548.34798</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -274,8 +274,8 @@
</tuple>
<state>
<tuple>
<float>1418214410.97</float>
<string>GMT</string>
<float>1456847737.11</float>
<string>UTC</string>
</tuple>
</state>
</object>
......
......@@ -101,8 +101,8 @@
<key> <string>text_content</string> </key>
<value> <string encoding="cdata"><![CDATA[
/*jslint nomen: true*/\n
/*global window, rJS, Strophe, $iq, $pres, $msg, RSVP*/\n
/*jslint indent: 2, maxerr: 3, nomen: true */\n
\n
(function (window, rJS, Strophe, $iq, $pres, $msg, RSVP) {\n
"use strict";\n
......@@ -117,7 +117,7 @@
this.errors += 1;\n
Strophe.warn("request errored, status: " + reqStatus +\n
", number of errors: " + this.errors);\n
if (this.errors > 4) {\n
if (this.errors > 2) {\n
this._onDisconnectTimeout();\n
this._conn._changeConnectStatus(\n
Strophe.Status.ERROR,\n
......@@ -222,9 +222,9 @@
result = gadget.notifyXMPPAttached();\n
} else {\n
if (status === Strophe.Status.ERROR) {\n
throw new Error("XMPP Connection Error");\n
result = gadget.notifyXMPPConnectionError();\n
}\n
throw new Error("Unknown connection status: " + status);\n
result = gadget.notifyXMPPError(status);\n
}\n
return result;\n
});\n
......@@ -302,6 +302,10 @@
\'notifyXMPPDisconnected\')\n
.declareAcquiredMethod(\'notifyXMPPDisconnecting\',\n
\'notifyXMPPDisconnecting\')\n
.declareAcquiredMethod(\'notifyXMPPConnectionError\',\n
\'notifyXMPPConnectionError\')\n
.declareAcquiredMethod(\'notifyXMPPError\',\n
\'notifyXMPPError\')\n
.declareAcquiredMethod(\'notifyXMPPAttached\',\n
\'notifyXMPPAttached\')\n
.declareAcquiredMethod(\'notifyXMPPMessageTextReceived\',\n
......@@ -348,68 +352,68 @@
})\n
\n
.declareMethod(\'fetchRoster\', function () {\n
var defer = RSVP.defer();\n
function jsonifyResponse(domElt) {\n
try {\n
var result = [],\n
elt,\n
json_elt,\n
len,\n
i,\n
len2,\n
j,\n
item_list = domElt.querySelectorAll("item");\n
len = item_list.length;\n
for (i = 0; i < len; i += 1) {\n
elt = item_list[i];\n
len2 = elt.attributes.length;\n
json_elt = {};\n
for (j = 0; j < len2; j += 1) {\n
json_elt[elt.attributes[j].name] = elt.attributes[j].value;\n
}\n
result.push(json_elt);\n
var defer = RSVP.defer();\n
function jsonifyResponse(domElt) {\n
try {\n
var result = [],\n
elt,\n
json_elt,\n
len,\n
i,\n
len2,\n
j,\n
item_list = domElt.querySelectorAll("item");\n
len = item_list.length;\n
for (i = 0; i < len; i += 1) {\n
elt = item_list[i];\n
len2 = elt.attributes.length;\n
json_elt = {};\n
for (j = 0; j < len2; j += 1) {\n
json_elt[elt.attributes[j].name] = elt.attributes[j].value;\n
}\n
defer.resolve(result);\n
} catch (error) {\n
defer.reject(error);\n
result.push(json_elt);\n
}\n
}\n
this.props.connection.sendIQ(\n
$iq({type: "get"}).c("query", {xmlns: Strophe.NS.ROSTER}),\n
jsonifyResponse,\n
defer.reject\n
);\n
return defer.promise;\n
})\n
defer.resolve(result);\n
} catch (error) {\n
defer.reject(error);\n
}\n
}\n
this.props.connection.sendIQ(\n
$iq({type: "get"}).c("query", {xmlns: Strophe.NS.ROSTER}),\n
jsonifyResponse,\n
defer.reject\n
);\n
return defer.promise;\n
})\n
\n
.declareMethod(\'resetPassword\', function (server, new_passwd) {\n
var defer = RSVP.defer();\n
function jsonifyResponse(domElt) {\n
try {\n
var result = [],\n
type = domElt.getAttribute(\'type\');\n
if(type === "result") {\n
result.push("Password Reset Success.");\n
}\n
else {\n
throw new Error("Password Reset Failure.");\n
}\n
defer.resolve(result);\n
} catch (error) {\n
defer.reject(error);\n
var defer = RSVP.defer(),\n
uid;\n
function jsonifyResponse(domElt) {\n
try {\n
var result = [],\n
type = domElt.getAttribute(\'type\');\n
if (type === "result") {\n
result.push("Password Reset Success.");\n
} else {\n
throw new Error("Password Reset Failure.");\n
}\n
defer.resolve(result);\n
} catch (error) {\n
defer.reject(error);\n
}\n
var uid = this.props.jid.split(\'@\')[0];\n
this.props.connection.sendIQ(\n
$iq({to: server, type: "set"})\n
}\n
uid = this.props.jid.split(\'@\')[0];\n
this.props.connection.sendIQ(\n
$iq({to: server, type: "set"})\n
.c("query", {xmlns: "jabber:iq:register"})\n
.c("username").t(uid).up()\n
.c("password").t(new_passwd).up(),\n
jsonifyResponse,\n
defer.reject\n
);\n
return defer.promise;\n
})\n
jsonifyResponse,\n
defer.reject\n
);\n
return defer.promise;\n
})\n
.declareMethod(\'sendPresence\', function () {\n
this.props.connection.send(\n
$pres().tree()\n
......@@ -583,7 +587,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>944.7242.54723.60006</string> </value>
<value> <string>949.35404.19073.41659</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -601,8 +605,8 @@
</tuple>
<state>
<tuple>
<float>1436191748.38</float>
<string>GMT</string>
<float>1456844917.63</float>
<string>UTC</string>
</tuple>
</state>
</object>
......
<?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_jabberclient_jio.html</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>Jio access</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>jabber_gadget_jio_html</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>en</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Page</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>text_content</string> </key>
<value> <string encoding="cdata"><![CDATA[
<!DOCTYPE html>\n
<html>\n
<head>\n
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />\n
<meta name="viewport" content="width=device-width, user-scalable=no" />\n
<title>Jio Gadget</title>\n
\n
<!-- renderjs -->\n
<script src="rsvp.js" type="text/javascript"></script>\n
<script src="renderjs.js" type="text/javascript"></script>\n
\n
<script src="jiodev.js" type="text/javascript"></script>\n
\n
<!-- custom script -->\n
<script src="gadget_jabberclient_jio.js" type="text/javascript"></script>\n
\n
</head>\n
<body>\n
<div class="ui-hidden-accessible connection-gadget-container"></div>\n
<div data-gadget-url=\'gadget_jio.html\' data-gadget-scope=\'persistent_jio\'></div>\n
\n
</body>\n
</html>
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>JabberClient Gadget jIO</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>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>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1456334377.77</float>
<string>UTC</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>949.35373.28357.37512</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>1456843116.28</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>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>converted</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1456334320.92</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
......@@ -63,12 +63,6 @@
</tuple>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value>
......@@ -77,7 +71,7 @@
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_jabberclient.js</string> </value>
<value> <string>gadget_jabberclient_jio.js</string> </value>
</item>
<item>
<key> <string>description</string> </key>
......@@ -87,7 +81,7 @@
</item>
<item>
<key> <string>id</string> </key>
<value> <string>jabber_gadget_jabberclient_js</string> </value>
<value> <string>jabber_gadget_jio_js</string> </value>
</item>
<item>
<key> <string>language</string> </key>
......@@ -107,124 +101,22 @@
<key> <string>text_content</string> </key>
<value> <string encoding="cdata"><![CDATA[
/*globals window, document, RSVP, rJS, Handlebars, promiseEventListener,\n
loopEventListener, jQuery*/\n
/*jslint indent: 2*/\n
(function (window, document, RSVP, rJS, Handlebars, promiseEventListener,\n
loopEventListener, $) {\n
/*global window, rJS, RSVP, jIO, document, loopEventListener */\n
/*jslint indent: 2, maxerr: 3, nomen: true */\n
(function (window, rJS, RSVP, jIO, document, loopEventListener) {\n
"use strict";\n
\n
$.mobile.ajaxEnabled = false;\n
$.mobile.linkBindingEnabled = false;\n
$.mobile.hashListeningEnabled = false;\n
$.mobile.pushStateEnabled = false;\n
\n
var PAGE_CONTACT = "contact",\n
PAGE_CONNECTION = "connect",\n
PAGE_DIALOG = "dialog",\n
PAGE_HISTORY = "history",\n
PAGE_NEW_CONTACT = "subscribe",\n
PAGE_PASSWORD = "password",\n
DEFAULT_PAGE = PAGE_CONTACT,\n
CONNECTION_GADGET_URL = "./gadget_jabberconnection.html",\n
CONNECTION_GADGET_SCOPE = "connection",\n
ATTACHMENT_ID = "enclosure",\n
JIO_STORAGE_TYPE = "indexeddb",\n
DAV_URL = "",\n
DAV_USER = "",\n
DAV_PASSWORD = "";\n
\n
function compareContact(a, b) {\n
var result;\n
if (a.new_message && (!b.new_message)) {\n
result = -1;\n
} else if (b.new_message && (!a.new_message)) {\n
result = 1;\n
} else if (a.status && (!b.status)) {\n
result = -1;\n
} else if (b.status && (!a.status)) {\n
result = 1;\n
} else if (b.jid < a.jid) {\n
result = 1;\n
} else if (a.jid < b.jid) {\n
result = -1;\n
} else {\n
result = 0;\n
}\n
return result;\n
}\n
\n
function validatePassword(password1, password2) {\n
if(password1 === password2) {\n
return true;\n
} else {\n
return false;\n
}\n
}\n
function initializeContact(gadget, jid) {\n
if (!(gadget.props.contact_dict.hasOwnProperty(jid))) {\n
gadget.props.contact_dict[jid] = {\n
offline: true,\n
conversation_element: document.createElement("ul"),\n
read: true\n
};\n
gadget.props.contact_dict[jid].conversation_element.setAttribute(\n
"data-role",\n
"listview"\n
);\n
}\n
}\n
\n
//////////////////////////////////////////\n
// History Support with Jio\n
//////////////////////////////////////////\n
function createJio_indexeddb(gadget) {\n
return gadget.getDeclaredGadget("jio_gadget")\n
.push(function (jio_gadget) {\n
return jio_gadget.createJio({\n
type: "indexeddb",\n
database: "jabberclient"\n
});\n
});\n
}\n
\n
function createJio_local(gadget) {\n
return gadget.getDeclaredGadget("jio_gadget")\n
.push(function (jio_gadget) {\n
return jio_gadget.createJio({\n
type: "query",\n
sub_storage: {\n
type: "document",\n
document_id: "/",\n
sub_storage: { type: "local" }\n
}\n
});\n
});\n
}\n
var CONNECTION_GADGET_SCOPE = "connection",\n
CONNECTION_GADGET_URL = "connection/",\n
JIO_GADGET_URL = "gadget_jio.html";\n
\n
function createJio_dav(gadget) {\n
return gadget.getDeclaredGadget("jio_gadget")\n
.push(function (jio_gadget) {\n
return jio_gadget.createJio({\n
type: "drivetojiomapping",\n
sub_storage: {\n
type: "dav",\n
url: DAV_URL,\n
basic_login: btoa(DAV_USER + ":" + DAV_PASSWORD)\n
}\n
});\n
});\n
function dropNotification() {\n
document.querySelector("link[rel=\'shortcut icon\']").setAttribute("href", "data:image/x-icon;base64,AAABAAEAEBAQAAEABAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAgAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAADf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAERAAAAAAAAEQEAAAAAAAEQARAAAAAAARAAEQAAAAARAAARAAAAABAAAAEQAAAAAAAAABEAAAAAAAAAEQAAAAAAAAABEAAAAAAAAAARAAAAAAAAABEAAAAAAAAAAQAAAAAAAAAAD//wAA//8AAP7/AAD8fwAA+X8AAPM/AADznwAA558AAO/PAAD/5wAA/+cAAP/zAAD/+QAA//kAAP/9AAD//wAA");\n
}\n
\n
function createJio(gadget) {\n
switch (JIO_STORAGE_TYPE) {\n
case "indexeddb":\n
return createJio_indexeddb(gadget);\n
case "local":\n
return createJio_local(gadget);\n
case "dav":\n
return createJio_dav(gadget);\n
}\n
function wrapJioCall(gadget, method_name, argument_list) {\n
var storage = gadget.state_parameter_dict.persistent_jio;\n
return storage[method_name].apply(storage, argument_list);\n
}\n
\n
function zfill(s, size) {\n
......@@ -251,455 +143,214 @@
}\n
\n
function getStorageIdFromJid(gadget, jid) {\n
return gadget.props.my_jid + \'-\' + jid;\n
return gadget.state_parameter_dict.my_jid + \'-\' + jid;\n
}\n
\n
function loadHistory(gadget, jid) {\n
var jio;\n
return gadget.getDeclaredGadget("jio_gadget")\n
.push(function (jio_gadget) {\n
jio = jio_gadget;\n
return jio.getAttachment(getStorageIdFromJid(gadget, jid), ATTACHMENT_ID);\n
})\n
.push(function (attachment) {\n
return jIO.util.readBlobAsText(attachment);\n
})\n
.push(\n
function (e) {\n
return {\n
\'history\': e.target.result,\n
\'jio\': jio\n
};\n
},\n
function (error) {\n
var my_message = "Cannot find ";\n
if ((error instanceof Error) &&\n
(error.message.substring(0, my_message.length) === my_message)) {\n
return {\n
\'history\': \'\',\n
\'jio\': jio\n
};\n
}\n
throw error;\n
function getLog(gadget, jid, options) {\n
return wrapJioCall(gadget, \'getAttachment\', [getStorageIdFromJid(gadget, jid), \'enclosure\', options])\n
.push(undefined, function (error) {\n
if ((error instanceof jIO.util.jIOError) &&\n
(error.status_code === 404)) {\n
return \'\';\n
}\n
);\n
throw error;\n
});\n
}\n
\n
function addLog(gadget, jid, text, is_incomming) {\n
return loadHistory(gadget, jid)\n
function addLog(gadget, jid, text, is_incoming) {\n
return getLog(gadget, jid, {format: \'text\'})\n
.push(function (result) {\n
var id = getStorageIdFromJid(gadget, jid),\n
new_history = result.history + getLogString(text, is_incomming);\n
return result.jio.putAttachment(id, ATTACHMENT_ID, new_history);\n
var new_history = result + getLogString(text, is_incoming);\n
return wrapJioCall(gadget, \'putAttachment\', [getStorageIdFromJid(gadget, jid), \'enclosure\', new_history]);\n
});\n
}\n
\n
//////////////////////////////////////////\n
// Page rendering\n
//////////////////////////////////////////\n
function redirectToDefaultPage(gadget) {\n
// Redirect to expected page by default\n
return gadget.aq_pleasePublishMyState({page: DEFAULT_PAGE})\n
.push(gadget.pleaseRedirectMyHash.bind(gadget));\n
}\n
\n
function renderContactPage(gadget, connection_gadget) {\n
var contact_dict = gadget.props.contact_dict;\n
return RSVP.Queue()\n
function dropConnectionGadget(gadget) {\n
gadget.state_parameter_dict.connection_element.innerHTML = "";\n
gadget.state_parameter_dict.connected = false;\n
delete gadget.state_parameter_dict.my_jid;\n
return gadget.dropGadget(CONNECTION_GADGET_SCOPE)\n
.push(function () {\n
var promise_list = [\n
gadget.aq_pleasePublishMyState({page: PAGE_PASSWORD}),\n
gadget.aq_pleasePublishMyState({page: PAGE_NEW_CONTACT})\n
],\n
key;\n
for (key in contact_dict) {\n
promise_list.push(\n
gadget.aq_pleasePublishMyState({page: PAGE_DIALOG, jid: key})\n
);\n
}\n
return RSVP.all(promise_list);\n
})\n
.push(function (result_list) {\n
var i = 2,\n
parameter = {contact: []},\n
key2;\n
for (key2 in contact_dict) {\n
parameter.contact.push({\n
jid: key2,\n
url: result_list[i],\n
new_message: !contact_dict[key2].read,\n
status: !contact_dict[key2].offline\n
});\n
i += 1;\n
}\n
parameter.contact.sort(compareContact);\n
gadget.props.header_element.innerHTML = gadget.props.header_template({\n
left_url: result_list[0],\n
left_title: "Reset Password",\n
title: "Contact",\n
right_url: result_list[1],\n
right_title: "New"\n
});\n
gadget.props.content_element.innerHTML =\n
gadget.props.contact_template(parameter);\n
$(gadget.props.element).trigger("create");\n
gadget.state_parameter_dict.connection_defer.cancel("Drop previous connection");\n
});\n
}\n
\n
function updateConversation(gadget, jid, text, is_incoming) {\n
initializeContact(gadget, jid);\n
\n
var new_element = document.createElement(\'div\'),\n
theme = "a",\n
style = "padding-right: 5em;";\n
if (!is_incoming) {\n
style = "text-align: right; padding-left: 5em;";\n
}\n
new_element.innerHTML = gadget.props.message_template({\n
theme: theme,\n
style: style,\n
text: text\n
});\n
gadget.props.contact_dict[jid].conversation_element\n
.appendChild(new_element.firstChild);\n
gadget.props.contact_dict[jid].read = false;\n
\n
if ((gadget.props.options !== undefined) &&\n
(gadget.props.options.page === PAGE_DIALOG) &&\n
(gadget.props.options.jid === jid)) {\n
gadget.props.contact_dict[jid].read = true;\n
$(gadget.props.contact_dict[jid].conversation_element)\n
.listview("refresh")\n
.trigger("updatelayout");\n
// window.scroll(0, document.body.scrollHeight);\n
document.querySelector(".ui-last-child").scrollIntoView();\n
}\n
\n
return RSVP.all([\n
function () {\n
if ((gadget.props.options !== undefined) &&\n
(gadget.props.options.page === PAGE_CONTACT)) {\n
return gadget.getDeclaredGadget(CONNECTION_GADGET_SCOPE)\n
.push(function (connection_gadget) {\n
return renderContactPage(gadget, connection_gadget);\n
});\n
}\n
}(),\n
addLog(gadget, jid, text, is_incoming)\n
]);\n
}\n
\n
function renderHistoryPage(gadget) {\n
var jid,\n
dialog_url;\n
return RSVP.Queue()\n
.push(function () {\n
jid = gadget.props.options.jid;\n
return gadget.aq_pleasePublishMyState({page: PAGE_DIALOG, jid: jid});\n
function initConnectionGadget(gadget, data) {\n
// Always kill the previous connection gadget to ensure disconnection\n
return dropConnectionGadget(gadget)\n
.push(undefined, function () {\n
// Do not crash if connection gadget was not yet instanciated\n
return;\n
})\n
.push(function (dialog) {\n
dialog_url = dialog;\n
return loadHistory(gadget, jid);\n
.push(function () {\n
return gadget.declareGadget(JIO_GADGET_URL);\n
})\n
.push(function (result) {\n
gadget.props.header_element.innerHTML = gadget.props.header_template({\n
left_url: dialog_url,\n
left_title: "Back",\n
title: "History of " + jid\n
});\n
gadget.props.content_element.innerHTML = gadget.props.history_template({\n
text: result.history\n
.push(function (volatile_jio) {\n
gadget.state_parameter_dict.volatile_jio = volatile_jio;\n
return volatile_jio.createJio({\n
type: "query",\n
sub_storage: {\n
type: "document",\n
document_id: "/",\n
sub_storage: {\n
type: "local",\n
sessiononly: true\n
}\n
}\n
});\n
$(gadget.props.element).trigger("create");\n
});\n
}\n
\n
function renderDialogPage(gadget, connection_gadget) {\n
var jid,\n
contact_url;\n
return RSVP.Queue()\n
.push(function () {\n
return gadget.aq_pleasePublishMyState({page: PAGE_CONTACT});\n
})\n
.push(function (contact) {\n
jid = gadget.props.options.jid;\n
contact_url = contact;\n
return gadget.aq_pleasePublishMyState({page: PAGE_HISTORY, jid: jid});\n
.push(function () {\n
// Mark all contacts as offline\n
return gadget.state_parameter_dict.volatile_jio.allDocs();\n
})\n
.push(function (history_url) {\n
var last_child;\n
gadget.props.header_element.innerHTML = gadget.props.header_template({\n
left_url: contact_url,\n
left_title: "Back",\n
title: jid,\n
right_url: history_url,\n
right_title: "History"\n
});\n
gadget.props.content_element.innerHTML =\n
gadget.props.dialog_template({});\n
$(gadget.props.element).trigger("create");\n
.push(function (result) {\n
var i, promise_list = [];\n
\n
gadget.props.content_element.querySelector(".discussion-content")\n
.appendChild(\n
gadget.props.contact_dict[jid].conversation_element\n
);\n
$(gadget.props.contact_dict[jid].conversation_element).listview();\n
last_child = document.querySelector(".ui-last-child");\n
if (last_child !== null) {\n
last_child.scrollIntoView();\n
function markOffline(key) {\n
return gadget.state_parameter_dict.volatile_jio.get(key)\n
.push(function (doc) {\n
doc.offline = true;\n
return gadget.state_parameter_dict.volatile_jio.put(key, doc);\n
});\n
}\n
gadget.props.contact_dict[jid].read = true;\n
\n
function sendMessageHandler(submit_event) {\n
var text = submit_event.target[0].value;\n
submit_event.target[0].value = "";\n
return RSVP.all([\n
connection_gadget.sendMessage(jid, text),\n
updateConversation(gadget, jid, text, false)\n
]);\n
for (i = 0; i < result.data.rows.length; i += 1) {\n
promise_list.push(markOffline(result.data.rows[i].id));\n
}\n
\n
return loopEventListener(\n
gadget.props.content_element.querySelector(\'form.message-form\'),\n
\'submit\',\n
false,\n
sendMessageHandler\n
);\n
});\n
}\n
\n
function renderConnectPage(gadget, display_message) {\n
// Always flush the contact list\n
gadget.props.contact_dict = {};\n
gadget.props.my_server = \'\',\n
gadget.props.my_jid = \'\';\n
gadget.props.my_password = \'\';\n
gadget.props.connected = false;\n
// Always kill the previous connection gadget to ensure disconnection\n
gadget.props.connection_element.innerHTML = "";\n
return gadget.dropGadget(CONNECTION_GADGET_SCOPE)\n
.push(undefined, function () {\n
// Do not crash if connection gadget was not yet instanciated\n
return;\n
return RSVP.all(promise_list);\n
})\n
.push(function () {\n
return gadget.declareGadget(CONNECTION_GADGET_URL, {\n
scope: CONNECTION_GADGET_SCOPE,\n
sandbox: \'iframe\',\n
element: gadget.props.connection_element\n
});\n
})\n
.push(function () {\n
gadget.props.header_element.innerHTML = gadget.props.header_template({\n
title: "Connect"\n
});\n
gadget.props.content_element.innerHTML =\n
gadget.props.login_template({\n
message: display_message || ""\n
});\n
$(gadget.props.element).trigger("create");\n
gadget.props.content_element.querySelector("input[name=jid]")\n
.focus();\n
return promiseEventListener(\n
gadget.props.content_element.querySelector(\'form.login-form\'),\n
\'submit\',\n
false\n
);\n
})\n
.push(function (submit_event) {\n
gadget.props.content_element.querySelector("input[type=submit]")\n
.disabled = true;\n
return RSVP.all([\n
gadget.getDeclaredGadget(CONNECTION_GADGET_SCOPE),\n
submit_event\n
]);\n
})\n
.push(function (result_list) {\n
var connection_gadget = result_list[0],\n
submit_event = result_list[1];\n
gadget.props.my_server = submit_event.target[0].value;\n
gadget.props.my_jid = submit_event.target[1].value;\n
gadget.props.my_password = submit_event.target[2].value;\n
return connection_gadget.connect(\n
submit_event.target[0].value,\n
submit_event.target[1].value,\n
submit_event.target[2].value\n
);\n
});\n
}\n
\n
function renderNewContactPage(gadget, connection_gadget) {\n
var contact_url;\n
return new RSVP.Queue()\n
.push(function () {\n
return gadget.aq_pleasePublishMyState({page: PAGE_CONTACT});\n
})\n
.push(function (contact) {\n
contact_url = contact;\n
gadget.props.header_element.innerHTML = gadget.props.header_template({\n
left_url: contact_url,\n
left_title: "Back",\n
title: "New Contact"\n
element: gadget.state_parameter_dict.connection_element\n
});\n
gadget.props.content_element.innerHTML =\n
gadget.props.new_contact_template({});\n
$(gadget.props.element).trigger("create");\n
\n
gadget.props.content_element.querySelector("input[type=text]")\n
.focus();\n
gadget.props.content_element.querySelector("input[type=text]")\n
.select();\n
return promiseEventListener(\n
gadget.props.content_element.querySelector(\'form.new-contact-form\'),\n
\'submit\',\n
false\n
);\n
})\n
.push(function (submit_event) {\n
gadget.props.content_element.querySelector("input[type=submit]")\n
.disabled = true;\n
return connection_gadget.requestSubscribe(\n
submit_event.target[0].value\n
);\n
.push(function (connect_gadget) {\n
gadget.state_parameter_dict.connection_defer = RSVP.defer();\n
gadget.state_parameter_dict.server = data.server;\n
gadget.state_parameter_dict.jio = data.jid;\n
gadget.state_parameter_dict.passwd = data.passwd;\n
return connect_gadget.connect(data.server, data.jid, data.passwd);\n
})\n
.push(function () {\n
return redirectToDefaultPage(gadget);\n
gadget.state_parameter_dict.my_jid = data.jid;\n
return gadget.state_parameter_dict.connection_defer.promise;\n
});\n
}\n
\n
function renderResetPasswordPage(gadget, connection_gadget, display_message) {\n
var new_password = \'\';\n
return new RSVP.Queue()\n
.push(function () {\n
return gadget.aq_pleasePublishMyState({page: PAGE_CONTACT});\n
function initializeContact(gadget, jid) {\n
var doc;\n
return gadget.state_parameter_dict.volatile_jio.get(jid)\n
.push(undefined, function (error) {\n
if ((error instanceof jIO.util.jIOError) &&\n
(error.status_code === 404)) {\n
return {\n
jid: jid,\n
offline: true,\n
read: true\n
};\n
}\n
throw error;\n
})\n
.push(function (contact_url) {\n
gadget.props.header_element.innerHTML = gadget.props.header_template({\n
left_url: contact_url,\n
left_title: "Back",\n
title: "Reset Password"\n
});\n
gadget.props.content_element.innerHTML =\n
gadget.props.reset_password_template({\n
message: display_message || ""\n
});\n
$(gadget.props.element).trigger("create");\n
gadget.props.content_element.querySelector("input[type=submit]")\n
.disabled = false;\n
gadget.props.content_element.querySelector("input[name=new_passwd]")\n
.value = "";\n
gadget.props.content_element.querySelector("input[name=repeat_passwd]")\n
.value = "";\n
gadget.props.content_element.querySelector("input[name=new_passwd]")\n
.focus();\n
return promiseEventListener(\n
gadget.props.content_element.querySelector(\'form.reset-password-form\'),\n
\'submit\',\n
false\n
);\n
.push(function (result) {\n
doc = result;\n
return gadget.state_parameter_dict.volatile_jio.put(jid, doc);\n
})\n
.push(function (submit_event) {\n
var validated = false;\n
new_password = submit_event.target[1].value;\n
gadget.props.content_element.querySelector("input[type=submit]")\n
.disabled = true;\n
validated = validatePassword(\n
submit_event.target[1].value,\n
submit_event.target[2].value\n
);\n
if(validated) {\n
return connection_gadget.resetPassword(\n
submit_event.target[0].value,\n
submit_event.target[1].value\n
)\n
.push(function (status) {\n
gadget.props.my_password = new_password;\n
return renderResetPasswordPage(gadget, connection_gadget, status);\n
}, function (error) {\n
var message = "Password Reset Failed.";\n
return renderResetPasswordPage(gadget, connection_gadget, message);\n
});\n
} else {\n
var message = "Password does not match.";\n
return renderResetPasswordPage(gadget, connection_gadget, message);\n
}\n
.push(function () {\n
return doc;\n
});\n
}\n
\n
rJS(window)\n
.ready(function (g) {\n
g.props = {};\n
return g.getElement()\n
.push(function (element) {\n
$(element).trigger("create");\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.connection_element =\n
element.querySelector(\'.connection-gadget-container\');\n
g.props.new_contact_template = Handlebars.compile(\n
document.querySelector(".new-contact-template").innerHTML\n
);\n
g.props.login_template = Handlebars.compile(\n
document.querySelector(".login-template").innerHTML\n
);\n
g.props.contact_template = Handlebars.compile(\n
document.querySelector(".contact-list-template").innerHTML\n
);\n
g.props.dialog_template = Handlebars.compile(\n
document.querySelector(".dialog-template").innerHTML\n
);\n
g.props.history_template = Handlebars.compile(\n
document.querySelector(".history-template").innerHTML\n
);\n
g.props.reset_password_template = Handlebars.compile(\n
document.querySelector(".reset-password-template").innerHTML\n
);\n
g.props.message_template = Handlebars.compile(\n
document.querySelector(".message-template").innerHTML\n
);\n
g.props.header_template = Handlebars.compile(\n
document.querySelector(".header-template").innerHTML\n
);\n
});\n
\n
.allowPublicAcquisition("notifyXMPPConnecting", function () {\n
return;\n
})\n
// Configure jIO storage\n
.ready(function (g) {\n
return createJio(g);\n
\n
.allowPublicAcquisition("notifyXMPPConnectingFail", function () {\n
this.state_parameter_dict.connection_defer.reject(\'Connection Failed. Please login again.\');\n
})\n
\n
//////////////////////////////////////////\n
// Connection information\n
//////////////////////////////////////////\n
.allowPublicAcquisition("notifyXMPPConnected", function () {\n
var gadget = this;\n
gadget.props.connected = true;\n
// gadget.props.connected = true;\n
return gadget.getDeclaredGadget(CONNECTION_GADGET_SCOPE)\n
.push(function (connection_gadget) {\n
return connection_gadget.sendPresence();\n
})\n
.push(function (){\n
return gadget.getDeclaredGadget(CONNECTION_GADGET_SCOPE);\n
})\n
.push(function (connection_gadget) {\n
return connection_gadget.fetchRoster();\n
return RSVP.all([\n
connection_gadget.sendPresence(),\n
connection_gadget.fetchRoster()\n
]);\n
})\n
.push(function(all_contacts){\n
var key;\n
for (key in all_contacts) {\n
initializeContact(gadget, all_contacts[key].jid);\n
.push(function (result_list) {\n
var key,\n
contact_list = result_list[1],\n
promise_list = [];\n
for (key in contact_list) {\n
if (contact_list.hasOwnProperty(key)) {\n
promise_list.push(\n
initializeContact(gadget, contact_list[key].jid)\n
);\n
}\n
}\n
return RSVP.all(promise_list);\n
})\n
.push(function() {\n
return redirectToDefaultPage(gadget);\n
}, function (error) {\n
var error_text = "Contact List Update Failed. Please login again.";\n
return renderConnectPage(gadget, error_text);\n
.push(function () {\n
gadget.state_parameter_dict.connected = true;\n
gadget.state_parameter_dict.connection_defer.resolve();\n
});\n
})\n
.allowPublicAcquisition("notifyXMPPConnecting", function () {\n
\n
.allowPublicAcquisition("notifyXMPPAuthenticatingFailed", function () {\n
this.state_parameter_dict.connection_defer.reject(\'Authentication Failed. Please try again.\');\n
})\n
\n
.allowPublicAcquisition("notifyXMPPDisconnecting", function () {\n
return;\n
})\n
\n
.allowPublicAcquisition("notifyXMPPPresence", function (argument_list) {\n
var gadget = this,\n
from = argument_list[0],\n
type = argument_list[2];\n
\n
return initializeContact(gadget, from)\n
.push(function (doc) {\n
if ((type === "unavailable") || (type === "unsubscribed")) {\n
// Bye dear contact\n
doc.offline = true;\n
} else {\n
doc.offline = false;\n
}\n
return gadget.state_parameter_dict.volatile_jio.put(from, doc);\n
})\n
.push(function () {\n
return gadget.refresh();\n
});\n
})\n
\n
.allowPublicAcquisition("notifyXMPPMessageTextReceived",\n
function (argument_list) {\n
\n
if (!document.hasFocus()) {\n
// Only notify when page has no focused.\n
// It simplifies a lot notification status\n
document.querySelector("link[rel=\'shortcut icon\']").setAttribute("href", "data:image/x-icon;base64,AAABAAEAEBAQAAEABAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAgAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEREAAAAAAAAREQAAAAAAABERAAAAAAAAEREAAAAAAAAAAAAAAAAAABERAAAAAAAAEREAAAAAAAAREQAAAAAAABERAAAAAAAAEREAAAAAAAAREQAAAAAAABERAAAAAAAAEREAAAAAAAAREQAAAAAAABERAAAAAAAAEREAAAD8PwAA/D8AAPw/AAD8PwAA//8AAPw/AAD8PwAA/D8AAPw/AAD8PwAA/D8AAPw/AAD8PwAA/D8AAPw/AAD8PwAA");\n
}\n
\n
var gadget = this;\n
return addLog(this, argument_list[0], argument_list[2], true)\n
.push(function () {\n
return initializeContact(gadget, argument_list[0]);\n
})\n
.push(function (doc) {\n
doc.read = false;\n
return gadget.state_parameter_dict.volatile_jio.put(argument_list[0], doc);\n
})\n
.push(function () {\n
return gadget.refresh();\n
});\n
})\n
\n
.allowPublicAcquisition("notifyXMPPSubscribe", function (argument_list) {\n
var gadget = this,\n
......@@ -739,149 +390,166 @@
});\n
})\n
\n
.allowPublicAcquisition("notifyXMPPPresence", function (argument_list) {\n
var gadget = this,\n
from = argument_list[0],\n
type = argument_list[2];\n
.allowPublicAcquisition("notifyXMPPDisconnected", function () {\n
var gadget = this;\n
// Notify about disconnection\n
document.querySelector("link[rel=\'shortcut icon\']").setAttribute("href", "data:image/x-icon;base64,AAABAAEAEBAQAAEABAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAgAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEREAAAAAAAAREQAAAAAAABERAAAAAAAAEREAAAAAAAAAAAAAAAAAABERAAAAAAAAEREAAAAAAAAREQAAAAAAABERAAAAAAAAEREAAAAAAAAREQAAAAAAABERAAAAAAAAEREAAAAAAAAREQAAAAAAABERAAAAAAAAEREAAAD8PwAA/D8AAPw/AAD8PwAA//8AAPw/AAD8PwAA/D8AAPw/AAD8PwAA/D8AAPw/AAD8PwAA/D8AAPw/AAD8PwAA");\n
return dropConnectionGadget(gadget)\n
.push(function () {\n
return this.redirect({command: \'display\', options: {page: \'connect\'}});\n
});\n
})\n
\n
.allowPublicAcquisition("notifyXMPPConnectionError", function () {\n
var gadget = this;\n
// Notify about disconnection\n
document.querySelector("link[rel=\'shortcut icon\']").setAttribute("href", "data:image/x-icon;base64,AAABAAEAEBAQAAEABAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAgAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEREAAAAAAAAREQAAAAAAABERAAAAAAAAEREAAAAAAAAAAAAAAAAAABERAAAAAAAAEREAAAAAAAAREQAAAAAAABERAAAAAAAAEREAAAAAAAAREQAAAAAAABERAAAAAAAAEREAAAAAAAAREQAAAAAAABERAAAAAAAAEREAAAD8PwAA/D8AAPw/AAD8PwAA//8AAPw/AAD8PwAA/D8AAPw/AAD8PwAA/D8AAPw/AAD8PwAA/D8AAPw/AAD8PwAA");\n
\n
return dropConnectionGadget(gadget)\n
.push(function () {\n
return this.redirect({command: \'display\', options: {page: \'connect\'}});\n
});\n
})\n
\n
.allowPublicAcquisition("notifyXMPPError", function () {\n
var gadget = this;\n
// Notify about disconnection\n
document.querySelector("link[rel=\'shortcut icon\']").setAttribute("href", "data:image/x-icon;base64,AAABAAEAEBAQAAEABAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAgAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEREAAAAAAAAREQAAAAAAABERAAAAAAAAEREAAAAAAAAAAAAAAAAAABERAAAAAAAAEREAAAAAAAAREQAAAAAAABERAAAAAAAAEREAAAAAAAAREQAAAAAAABERAAAAAAAAEREAAAAAAAAREQAAAAAAABERAAAAAAAAEREAAAD8PwAA/D8AAPw/AAD8PwAA//8AAPw/AAD8PwAA/D8AAPw/AAD8PwAA/D8AAPw/AAD8PwAA/D8AAPw/AAD8PwAA");\n
\n
return dropConnectionGadget(gadget)\n
.push(function () {\n
return this.redirect({command: \'display\', options: {page: \'connect\'}});\n
});\n
})\n
\n
.ready(function (gadget) {\n
gadget.state_parameter_dict = {\n
connected: false,\n
server: \'https://mail.tiolive.com/chat/http-bind/\',\n
jio: \'\',\n
passwd: \'\'\n
};\n
dropNotification();\n
})\n
.ready(function (gadget) {\n
return gadget.getDeclaredGadget(\'persistent_jio\')\n
.push(function (jio_gadget) {\n
// Initialize the gadget local parameters\n
gadget.state_parameter_dict.persistent_jio = jio_gadget;\n
});\n
})\n
.ready(function (gadget) {\n
return gadget.getElement()\n
.push(function (element) {\n
gadget.state_parameter_dict.connection_element = element.querySelector(\'.connection-gadget-container\');\n
});\n
})\n
\n
.declareAcquiredMethod(\'getSetting\', \'getSetting\')\n
.declareAcquiredMethod(\'redirect\', \'redirect\')\n
.declareAcquiredMethod(\'getUrlFor\', \'getUrlFor\')\n
.declareAcquiredMethod(\'refresh\', \'refresh\')\n
\n
.declareMethod(\'createJio\', function () {\n
return this.state_parameter_dict.persistent_jio.createJio({\n
type: "indexeddb",\n
database: "jabberclient"\n
});\n
})\n
\n
.declareMethod(\'get\', function (id) {\n
if (id === \'CONNECTION\') {\n
return {\n
server: this.state_parameter_dict.server,\n
jid: this.state_parameter_dict.jid,\n
passwd: this.state_parameter_dict.passwd\n
};\n
}\n
throw new Error(\'Unsupported get: \' + id);\n
})\n
\n
initializeContact(gadget, from);\n
if ((type === "unavailable") || (type === "unsubscribed")) {\n
// Bye dear contact\n
gadget.props.contact_dict[from].offline = true;\n
} else {\n
// Bye dear contact\n
gadget.props.contact_dict[from].offline = false;\n
.declareMethod(\'put\', function (id, data) {\n
if (id === \'CONNECTION\') {\n
return initConnectionGadget(this, data);\n
}\n
if (id === \'SUBSCRIBE\') {\n
return this.getDeclaredGadget(CONNECTION_GADGET_SCOPE)\n
.push(function (connection_gadget) {\n
return connection_gadget.requestSubscribe(data.jid);\n
});\n
}\n
if ((gadget.props.options !== undefined) &&\n
(gadget.props.options.page === PAGE_CONTACT)) {\n
return gadget.getDeclaredGadget(CONNECTION_GADGET_SCOPE)\n
if (id === \'PASSWORD\') {\n
return this.getDeclaredGadget(CONNECTION_GADGET_SCOPE)\n
.push(function (connection_gadget) {\n
return renderContactPage(gadget, connection_gadget);\n
return connection_gadget.resetPassword(data.server, data.new_passwd);\n
});\n
}\n
throw new Error(\'Unsupported put: \' + id);\n
})\n
\n
.allowPublicAcquisition("notifyXMPPMessageTextReceived",\n
function (argument_list) {\n
if (!document.hasFocus()) {\n
// Only notify when page has no focused.\n
// It simplifies a lot notification status\n
$("#favicon").attr("href", "data:image/x-icon;base64,AAABAAEAEBAQAAEABAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAgAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEREAAAAAAAAREQAAAAAAABERAAAAAAAAEREAAAAAAAAAAAAAAAAAABERAAAAAAAAEREAAAAAAAAREQAAAAAAABERAAAAAAAAEREAAAAAAAAREQAAAAAAABERAAAAAAAAEREAAAAAAAAREQAAAAAAABERAAAAAAAAEREAAAD8PwAA/D8AAPw/AAD8PwAA//8AAPw/AAD8PwAA/D8AAPw/AAD8PwAA/D8AAPw/AAD8PwAA/D8AAPw/AAD8PwAA");\n
}\n
return updateConversation(this, argument_list[0],\n
argument_list[2], true);\n
})\n
\n
.allowPublicAcquisition("notifyXMPPConnectingFail", function () {\n
var gadget = this,\n
error_text = \'Connection Failed. Please login again.\';\n
return renderConnectPage(gadget, error_text);\n
})\n
.allowPublicAcquisition("notifyXMPPDisconnecting", function () {\n
return;\n
.declareMethod(\'allDocs\', function (options) {\n
if (!this.state_parameter_dict.connected) {\n
return this.redirect({command: \'display\', options: {page: \'connect\'}});\n
}\n
return this.state_parameter_dict.volatile_jio.allDocs(options);\n
})\n
.allowPublicAcquisition("notifyXMPPDisconnected", function () {\n
\n
.declareMethod(\'getAttachment\', function (id, name, options) {\n
var gadget = this,\n
error_text = \'Session Disconnected. Please login again.\';\n
if(!gadget.props.connected) {\n
return renderConnectPage(gadget, error_text);\n
} else {\n
gadget.props.connected = false;\n
gadget.props.contact_dict = {};\n
return gadget.getDeclaredGadget(CONNECTION_GADGET_SCOPE)\n
.push(function (connection_gadget) {\n
return connection_gadget.connect(\n
gadget.props.my_server, \n
gadget.props.my_jid,\n
gadget.props.my_password\n
);\n
result;\n
if (!this.state_parameter_dict.connected) {\n
return this.redirect({command: \'display\', options: {page: \'connect\'}});\n
}\n
if (name === \'enclosure\') {\n
return getLog(this, id, options)\n
.push(function (text) {\n
result = text;\n
return initializeContact(gadget, id);\n
})\n
.push(function (doc) {\n
doc.read = true;\n
return gadget.state_parameter_dict.volatile_jio.put(id, doc);\n
})\n
.push(function () {\n
return redirectToDefaultPage(gadget);\n
return result;\n
});\n
}\n
throw new Error(\'Unsupported getAttachment: \' + id + \' \' + name);\n
})\n
.allowPublicAcquisition("notifyXMPPAuthenticatingFailed", function (error_data) {\n
var gadget = this,\n
error_text = \'Authentication Failed. Please try again.\';\n
return renderConnectPage(gadget, error_text);\n
})\n
.declareService(function () {\n
\n
function dropNotification() {\n
$("#favicon").attr("href", "data:image/x-icon;base64,AAABAAEAEBAQAAEABAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAgAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAADf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAERAAAAAAAAEQEAAAAAAAEQARAAAAAAARAAEQAAAAARAAARAAAAABAAAAEQAAAAAAAAABEAAAAAAAAAEQAAAAAAAAABEAAAAAAAAAARAAAAAAAAABEAAAAAAAAAAQAAAAAAAAAAD//wAA//8AAP7/AAD8fwAA+X8AAPM/AADznwAA558AAO/PAAD/5wAA/+cAAP/zAAD/+QAA//kAAP/9AAD//wAA");\n
.declareMethod(\'putAttachment\', function (id, name, blob) {\n
var gadget = this;\n
if (!this.state_parameter_dict.connected) {\n
return this.redirect({command: \'display\', options: {page: \'connect\'}});\n
}\n
if (name === \'MESSAGE\') {\n
return this.getDeclaredGadget(CONNECTION_GADGET_SCOPE)\n
.push(function (connection_gadget) {\n
return connection_gadget.sendMessage(id, blob);\n
})\n
.push(function () {\n
return addLog(gadget, id, blob, false);\n
});\n
}\n
throw new Error(\'Unsupported putAttachment: \' + id + \' \' + name);\n
})\n
\n
.declareService(function () {\n
return loopEventListener(\n
window,\n
\'focus\',\n
false,\n
dropNotification\n
);\n
})\n
\n
//////////////////////////////////////////\n
// Acquired method\n
//////////////////////////////////////////\n
.declareAcquiredMethod(\'pleaseRedirectMyHash\', \'pleaseRedirectMyHash\')\n
\n
//////////////////////////////////////////\n
// Declare method\n
//////////////////////////////////////////\n
.declareMethod(\'render\', function (options) {\n
var result,\n
method,\n
gadget = this;\n
\n
gadget.props.options = options;\n
\n
if (options.page === undefined) {\n
result = redirectToDefaultPage(this);\n
} else if (options.page === PAGE_CONNECTION) {\n
result = renderConnectPage(this);\n
} else {\n
if (options.page === PAGE_CONTACT) {\n
method = renderContactPage;\n
} else if (options.page === PAGE_NEW_CONTACT) {\n
method = renderNewContactPage;\n
} else if (options.page === PAGE_DIALOG) {\n
method = renderDialogPage;\n
} else if (options.page === PAGE_HISTORY) {\n
method = renderHistoryPage;\n
} else if (options.page === PAGE_PASSWORD) {\n
method = renderResetPasswordPage;\n
} else {\n
throw new Error("not implemented page " + options.page);\n
}\n
result = gadget.getDeclaredGadget(CONNECTION_GADGET_SCOPE)\n
.push(function (connection_gadget) {\n
return method(gadget, connection_gadget);\n
});\n
}\n
return result\n
.push(undefined, function (error) {\n
// XXX Improve renderJS error class\n
if ((error instanceof Error) &&\n
(error.message === "Gadget scope \'" +\n
CONNECTION_GADGET_SCOPE +\n
"\' is not known.")) {\n
// Connection gadget not instanciated.\n
// Redirect to connection page\n
return gadget.aq_pleasePublishMyState({page: PAGE_CONNECTION})\n
.push(gadget.pleaseRedirectMyHash.bind(gadget));\n
}\n
throw error;\n
});\n
});\n
\n
}(window, document, RSVP, rJS, Handlebars, promiseEventListener,\n
loopEventListener, jQuery));
}(window, rJS, RSVP, jIO, document, loopEventListener));
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>RenderJS Gadget JabberClient JS</string> </value>
<value> <string>JabberClient Gadget jIO JS</string> </value>
</item>
<item>
<key> <string>version</string> </key>
......@@ -945,7 +613,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>romain</string> </value>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -967,8 +635,8 @@
</tuple>
<state>
<tuple>
<float>1418207784.67</float>
<string>GMT</string>
<float>1456334409.75</float>
<string>UTC</string>
</tuple>
</state>
</object>
......@@ -1012,7 +680,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>944.63442.46785.34730</string> </value>
<value> <string>949.36450.33692.8430</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -1030,8 +698,8 @@
</tuple>
<state>
<tuple>
<float>1439212776.16</float>
<string>GMT</string>
<float>1456908380.9</float>
<string>UTC</string>
</tuple>
</state>
</object>
......@@ -1057,7 +725,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>romain</string> </value>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -1087,8 +755,8 @@
</tuple>
<state>
<tuple>
<float>1418207285.72</float>
<string>GMT</string>
<float>1456334320.9</float>
<string>UTC</string>
</tuple>
</state>
</object>
......
<?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_jabberclient_page_connect.html</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>jabber_gadget_page_connect_html</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>en</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Page</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>text_content</string> </key>
<value> <string encoding="cdata"><![CDATA[
<!DOCTYPE html>\n
<html>\n
<head>\n
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />\n
<meta name="viewport" content="width=device-width, user-scalable=no" />\n
<title>JabberClient Gadget Page Connect</title>\n
\n
<!-- renderjs -->\n
<script src="rsvp.js" type="text/javascript"></script>\n
<script src="renderjs.js" type="text/javascript"></script>\n
\n
<!-- custom script -->\n
<script src="gadget_global.js" type="text/javascript"></script>\n
<script src="gadget_jabberclient_page_connect.js" type="text/javascript"></script>\n
</head>\n
<body>\n
<pre></pre>\n
<form class="dialog_form">\n
<button type="submit" data-i18n="Submit" class="ui-btn ui-btn-b ui-btn-inline\n
ui-icon-action ui-btn-icon-right ui-screen-hidden">Submit</button>\n
<div data-gadget-url="gadget_erp5_form.html"\n
data-gadget-scope="erp5_form"\n
data-gadget-sandbox="public">\n
</div>\n
</form>\n
</body>\n
</html>
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>JabberClient Gadget Page Connect</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>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>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1456389322.55</float>
<string>UTC</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>949.25270.37532.52872</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>1456843234.23</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>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>converted</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1456389199.53</float>
<string>UTC</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_jabberclient_page_connect.js</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>jabber_gadget_page_connect_js</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>en</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Script</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>text_content</string> </key>
<value> <string>/*global window, rJS, RSVP, loopEventListener*/\n
/*jslint nomen: true, indent: 2, maxerr: 3 */\n
(function (window, rJS, RSVP, loopEventListener) {\n
"use strict";\n
\n
rJS(window)\n
/////////////////////////////////////////////////////////////////\n
// ready\n
/////////////////////////////////////////////////////////////////\n
// Init local properties\n
.ready(function (g) {\n
g.props = {};\n
})\n
\n
// Assign the element to a variable\n
.ready(function (g) {\n
return g.getElement()\n
.push(function (element) {\n
g.props.element = element;\n
});\n
})\n
\n
/////////////////////////////////////////////////////////////////\n
// Acquired methods\n
/////////////////////////////////////////////////////////////////\n
.declareAcquiredMethod("updateHeader", "updateHeader")\n
.declareAcquiredMethod("notifySubmitting", "notifySubmitting")\n
.declareAcquiredMethod("notifySubmitted", "notifySubmitted")\n
.declareAcquiredMethod("jio_put", "jio_put")\n
.declareAcquiredMethod("jio_get", "jio_get")\n
.declareAcquiredMethod("redirect", "redirect")\n
\n
/////////////////////////////////////////////////////////////////\n
// declared methods\n
/////////////////////////////////////////////////////////////////\n
.declareMethod(\'triggerSubmit\', function () {\n
this.props.element.querySelector(\'button\').click();\n
})\n
.declareMethod("render", function () {\n
var page_gadget = this,\n
data;\n
return page_gadget.updateHeader({\n
page_title: \'Connect to a Jabber server\',\n
submit_action: true\n
})\n
.push(function () {\n
return page_gadget.jio_get("CONNECTION");\n
})\n
.push(function (result) {\n
data = result;\n
return page_gadget.getDeclaredGadget("erp5_form");\n
})\n
.push(function (form_gadget) {\n
return form_gadget.render({\n
erp5_document: {"_embedded": {"_view": {\n
"server": {\n
"description": "",\n
"title": "Server URL",\n
"default": data.server,\n
"css_class": "",\n
"required": 1,\n
"editable": 1,\n
"key": "server",\n
"hidden": 0,\n
"type": "StringField"\n
},\n
"jid": {\n
"description": "",\n
"title": "Jabber ID",\n
"default": data.jid,\n
"css_class": "",\n
"required": 1,\n
"editable": 1,\n
"key": "jid",\n
"hidden": 0,\n
"type": "StringField"\n
},\n
"passwd": {\n
"description": "",\n
"title": "Password",\n
"default": data.passwd,\n
"css_class": "",\n
"required": 1,\n
"editable": 1,\n
"key": "passwd",\n
"hidden": 0,\n
"type": "PasswordField"\n
}\n
}}},\n
form_definition: {\n
group_list: [[\n
"center",\n
[["server"], ["jid"], ["passwd"]]\n
]]\n
}\n
});\n
});\n
})\n
\n
.declareService(function () {\n
var form_gadget = this;\n
\n
function formSubmit() {\n
return form_gadget.notifySubmitting()\n
.push(function () {\n
return form_gadget.getDeclaredGadget("erp5_form");\n
})\n
.push(function (erp5_form) {\n
return erp5_form.getContent();\n
})\n
.push(function (content_dict) {\n
return form_gadget.jio_put(\n
\'CONNECTION\',\n
content_dict\n
);\n
})\n
.push(function () {\n
return RSVP.all([\n
form_gadget.notifySubmitted(),\n
form_gadget.redirect({command: \'display\', options: {page: \'contact\'}})\n
]);\n
})\n
.push(undefined, function (error) {\n
return form_gadget.notifySubmitted()\n
.push(function () {\n
form_gadget.props.element.querySelector(\'pre\').textContent = error;\n
});\n
});\n
}\n
\n
// Listen to form submit\n
return loopEventListener(\n
form_gadget.props.element.querySelector(\'form\'),\n
\'submit\',\n
false,\n
formSubmit\n
);\n
});\n
\n
}(window, rJS, RSVP, loopEventListener));</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>JabberClient Gadget Page Connect 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>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>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1456389329.61</float>
<string>UTC</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>949.35328.64444.1843</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>1456843227.61</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>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>converted</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1456389199.52</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
......@@ -63,12 +63,6 @@
</tuple>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value>
......@@ -81,15 +75,17 @@
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_jabberclient.html</string> </value>
<value> <string>gadget_jabberclient_page_contact.html</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>Starting Point</string> </value>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>jabber_gadget_jabberclient_html</string> </value>
<value> <string>jabber_gadget_page_contact_html</string> </value>
</item>
<item>
<key> <string>language</string> </key>
......@@ -109,29 +105,14 @@
<key> <string>text_content</string> </key>
<value> <string encoding="cdata"><![CDATA[
<!doctype html>\n
<html manifest="./gadget_jabberclient.appcache">\n
<!DOCTYPE html>\n
<html>\n
<head>\n
<meta charset="utf-8">\n
<meta name="viewport" content="width=device-width, initial-scale=1">\n
\n
<title>Simple Jabber Client</title>\n
<link id="favicon" rel="shortcut icon" href="data:image/x-icon;base64,AAABAAEAEBAQAAEABAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAgAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAADf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAERAAAAAAAAEQEAAAAAAAEQARAAAAAAARAAEQAAAAARAAARAAAAABAAAAEQAAAAAAAAABEAAAAAAAAAEQAAAAAAAAABEAAAAAAAAAARAAAAAAAAABEAAAAAAAAAAQAAAAAAAAAAD//wAA//8AAP7/AAD8fwAA+X8AAPM/AADznwAA558AAO/PAAD/5wAA/+cAAP/zAAD/+QAA//kAAP/9AAD//wAA">\n
\n
<link rel="stylesheet" href="jquerymobile.css">\n
\n
<script src="jquery.js"></script>\n
<script src="jquerymobile.js"></script>\n
<script src="rsvp.js"></script>\n
<script src="renderjs.js"></script>\n
<script src="handlebars.js"></script>\n
<script src="gadget_global.js" ></script>\n
<script src="gadget_jabberclient.js"></script>\n
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />\n
<meta name="viewport" content="width=device-width, user-scalable=no" />\n
<title>JabberClient Gadget Page Contact</title>\n
\n
<script class="contact-list-template" type="text/x-handlebars-template">\n
<div class="ui-grid-b ui-responsive">\n
<div class="ui-block-a"></div>\n
<div class="ui-block-b">\n
<script id="contact-list-template" type="text/x-handlebars-template">\n
<ul data-role="listview" data-inset="true">\n
{{#each contact}}\n
<li>\n
......@@ -159,132 +140,26 @@
</li>\n
{{/each}}\n
</ul>\n
</div>\n
<div class="ui-block-c"></div>\n
</div>\n
</script>\n
\n
<script class="new-contact-template" type="text/x-handlebars-template">\n
<div class="ui-grid-b ui-responsive">\n
<div class="ui-block-a"></div>\n
<div class="ui-block-b">\n
<form class="new-contact-form">\n
<div class="ui-field-contain">\n
<label>Jabber ID</label>\n
<input type="text" name="jid" placeholder="Jabber ID" value="" required>\n
</div>\n
<input data-inline="true" type="submit" value="Add" data-theme="b">\n
</form>\n
</div>\n
<div class="ui-block-c"></div>\n
</div>\n
</script>\n
\n
<script class="login-template" type="text/x-handlebars-template">\n
<div class="ui-grid-b ui-responsive">\n
<div class="ui-block-a"></div>\n
<div class="ui-block-b">\n
<h2>Jabber Client</h2>\n
<form class="login-form">\n
<div class="ui-field-contain">\n
<label>Server URL</label>\n
<input type="text" name="server" placeholder="Server URL" value="https://mail.tiolive.com/chat/http-bind/" required>\n
</div>\n
<div class="ui-field-contain">\n
<label>Jabber ID</label>\n
<input type="text" name="jid" placeholder="Jabber ID" value="" required>\n
</div>\n
<div class="ui-field-contain">\n
<label>Password</label>\n
<input type="password" name="passwd" placeholder="Password" value="" required>\n
</div>\n
<input data-inline="true" type="submit" value="Log In" data-theme="b">\n
</form>\n
<pre style="white-space: pre-wrap;">{{message}}</pre>\n
</div>\n
<div class="ui-block-c"></div>\n
</div>\n
</script>\n
\n
<script class="dialog-template" type="text/x-handlebars-template">\n
<div class="discussion-content"></div>\n
<div data-role="footer" data-position="fixed" data-tap-toggle="false">\n
<form class="message-form">\n
<div class="ui-input-text ui-corner-all ui-body-inherit ui-shadow-inset ui-input-has-clear">\n
<input type="text" data-enhanced="true" name="content" placeholder="Write something..." value="" required>\n
<div class="ui-btn ui-input-clear ui-input-btn ui-corner-all ui-icon-edit ui-btn-icon-notext">\n
<input data-enhanced="true" type="submit" value="Send">\n
</div>\n
</div>\n
</form>\n
</div>\n
</script>\n
\n
<script class="reset-password-template" type="text/x-handlebars-template">\n
<div class="ui-grid-b ui-responsive">\n
<div class="ui-block-a"></div>\n
<div class="ui-block-b">\n
<h2>Reset Password</h2>\n
<form class="reset-password-form">\n
<div class="ui-field-contain">\n
<label>Server URL</label>\n
<input type="text" name="server" placeholder="Server URL" value="tiolive.com" required>\n
</div>\n
<div class="ui-field-contain">\n
<label>New Password</label>\n
<input type="password" name="new_passwd" placeholder="New Password" value="" required>\n
</div>\n
<div class="ui-field-contain">\n
<label>Repeat Password</label>\n
<input type="password" name="repeat_passwd" placeholder="Repeat Password" value="" required>\n
</div>\n
<input data-inline="true" type="submit" value="Submit" data-theme="b">\n
</form>\n
<pre style="white-space: pre-wrap;">{{message}}</pre>\n
</div>\n
<div class="ui-block-c">\n
</div>\n
</div>\n
</script>\n
<script class="message-template" type="text/x-handlebars-template"><li data-theme="{{theme}}" style="{{style}}"><pre style="white-space: pre-wrap;">{{text}}</pre></li></script>\n
\n
<script class="history-template" type="text/x-handlebars-template"><pre style="white-space: pre-wrap;">{{text}}</pre></script>\n
<!-- renderjs -->\n
<script src="rsvp.js" type="text/javascript"></script>\n
<script src="renderjs.js" type="text/javascript"></script>\n
\n
<script class="header-template" type="text/x-handlebars-template">\n
{{#if left_url}}\n
<a href="{{left_url}}" class="ui-btn-left ui-btn ui-btn-inline ui-mini ui-corner-all">{{left_title}}</a>\n
{{/if}}\n
<h1 class="ui-title">{{title}}</h1>\n
{{#if right_url}}\n
<a href="{{right_url}}" class="ui-btn-right ui-btn ui-btn-inline ui-mini ui-corner-all">{{right_title}}</a>\n
{{/if}}\n
</script>\n
<!-- custom script -->\n
<script src="gadget_global.js" type="text/javascript"></script>\n
<script src="gadget_jabberclient_page_contact.js" type="text/javascript"></script>\n
</head>\n
\n
<body>\n
<div class="ui-hidden-accessible connection-gadget-container"></div>\n
\n
<div data-role="page">\n
\n
<div data-role="header" data-position="fixed" class="gadget-header" data-theme="b">\n
<h1></h1>\n
</div>\n
<div data-gadget-url="gadget_jio.html"\n
data-gadget-scope="jio_gadget"\n
data-gadget-sandbox="public"></div>\n
\n
<div role="main" class="ui-content gadget-content"></div>\n
</div>\n
\n
</body>\n
</html>\n
</html>
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>RenderJS Gadget JabberClient</string> </value>
<value> <string>JabberClient Gadget Page Contact</string> </value>
</item>
<item>
<key> <string>version</string> </key>
......@@ -327,12 +202,6 @@
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
<item>
<key> <string>publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAY=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
......@@ -354,7 +223,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>romain</string> </value>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -376,8 +245,8 @@
</tuple>
<state>
<tuple>
<float>1418206089.73</float>
<string>GMT</string>
<float>1456413771.86</float>
<string>UTC</string>
</tuple>
</state>
</object>
......@@ -407,7 +276,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope1</string> </value>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -421,7 +290,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>944.54830.54261.27972</string> </value>
<value> <string>949.26690.60508.50432</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -439,8 +308,8 @@
</tuple>
<state>
<tuple>
<float>1438695309.09</float>
<string>GMT</string>
<float>1456843145.34</float>
<string>UTC</string>
</tuple>
</state>
</object>
......@@ -466,7 +335,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>romain</string> </value>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -496,8 +365,8 @@
</tuple>
<state>
<tuple>
<float>1418205650.36</float>
<string>GMT</string>
<float>1456413379.25</float>
<string>UTC</string>
</tuple>
</state>
</object>
......@@ -508,59 +377,4 @@
</tuple>
</pickle>
</record>
<record id="6" aka="AAAAAAAAAAY=">
<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>romain</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1418205650.35</float>
<string>GMT</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>draft</string> </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_jabberclient_page_contact.js</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>jabber_gadget_page_contact_js</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>en</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Script</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>text_content</string> </key>
<value> <string encoding="cdata"><![CDATA[
/*global window, rJS, RSVP, Handlebars*/\n
/*jslint nomen: true, indent: 2, maxerr: 3 */\n
(function (window, rJS, RSVP, Handlebars) {\n
"use strict";\n
\n
function compareContact(a, b) {\n
var result;\n
if (a.new_message && (!b.new_message)) {\n
result = -1;\n
} else if (b.new_message && (!a.new_message)) {\n
result = 1;\n
} else if (a.status && (!b.status)) {\n
result = -1;\n
} else if (b.status && (!a.status)) {\n
result = 1;\n
} else if (b.jid < a.jid) {\n
result = 1;\n
} else if (a.jid < b.jid) {\n
result = -1;\n
} else {\n
result = 0;\n
}\n
return result;\n
}\n
\n
/////////////////////////////////////////////////////////////////\n
// Handlebars\n
/////////////////////////////////////////////////////////////////\n
// Precompile the templates while loading the first gadget instance\n
var gadget_klass = rJS(window),\n
source = gadget_klass.__template_element\n
.getElementById("contact-list-template")\n
.innerHTML,\n
table_template = Handlebars.compile(source);\n
\n
gadget_klass\n
/////////////////////////////////////////////////////////////////\n
// ready\n
/////////////////////////////////////////////////////////////////\n
// Init local properties\n
.ready(function (g) {\n
g.props = {};\n
})\n
\n
// Assign the element to a variable\n
.ready(function (g) {\n
return g.getElement()\n
.push(function (element) {\n
g.props.element = element;\n
});\n
})\n
\n
/////////////////////////////////////////////////////////////////\n
// Acquired methods\n
/////////////////////////////////////////////////////////////////\n
.declareAcquiredMethod("updateHeader", "updateHeader")\n
.declareAcquiredMethod("jio_allDocs", "jio_allDocs")\n
.declareAcquiredMethod("getUrlFor", "getUrlFor")\n
\n
/////////////////////////////////////////////////////////////////\n
// declared methods\n
/////////////////////////////////////////////////////////////////\n
.declareMethod("render", function () {\n
var page_gadget = this,\n
contact_list = [],\n
gadget = this;\n
\n
return page_gadget.updateHeader({\n
page_title: \'Contact\'\n
})\n
.push(function () {\n
return page_gadget.jio_allDocs({select_list: [\'jid\', \'read\', \'offline\']});\n
})\n
.push(function (result) {\n
var i,\n
contact,\n
promise_list = [];\n
for (i = 0; i < result.data.total_rows; i += 1) {\n
contact = result.data.rows[i].value;\n
contact_list.push({\n
jid: contact.jid,\n
new_message: !contact.read,\n
status: !contact.offline\n
});\n
promise_list.push(gadget.getUrlFor({command: \'display\', options: {page: \'dialog\', jid: contact.jid}}));\n
}\n
return RSVP.all(promise_list);\n
})\n
.push(function (url_list) {\n
var i;\n
for (i = 0; i < url_list.length; i += 1) {\n
contact_list[i].url = url_list[i];\n
}\n
contact_list.sort(compareContact);\n
gadget.props.element.innerHTML =\n
table_template({\n
contact: contact_list\n
});\n
});\n
});\n
\n
}(window, rJS, RSVP, Handlebars));
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>JabberClient Gadget Page Contact 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>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>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1456413787.96</float>
<string>UTC</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>949.36448.18833.13141</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>1456907564.65</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>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>converted</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1456413379.27</float>
<string>UTC</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>gadget_jabberclient_page_dialog.html</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>jabber_gadget_page_dialog_html</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>en</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Page</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>text_content</string> </key>
<value> <string encoding="cdata"><![CDATA[
<!DOCTYPE html>\n
<html>\n
<head>\n
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />\n
<meta name="viewport" content="width=device-width, user-scalable=no" />\n
<title>JabberClient Gadget Page Dialog</title>\n
\n
<!-- renderjs -->\n
<script src="rsvp.js" type="text/javascript"></script>\n
<script src="renderjs.js" type="text/javascript"></script>\n
\n
<!-- custom script -->\n
<script src="gadget_global.js" type="text/javascript"></script>\n
<script src="gadget_jabberclient_page_dialog.js" type="text/javascript"></script>\n
</head>\n
<body>\n
<div class="discussion-content"></div>\n
<div data-role="footer" data-position="fixed" data-tap-toggle="false">\n
<form class="message-form">\n
<div class="ui-input-text ui-corner-all ui-body-inherit ui-shadow-inset ui-input-has-clear">\n
<input type="text" data-enhanced="true" name="content" placeholder="Write something..." value="" required>\n
<div class="ui-btn ui-input-clear ui-input-btn ui-corner-all ui-icon-edit ui-btn-icon-notext">\n
<input data-enhanced="true" type="submit" value="Send">\n
</div>\n
</div>\n
</form>\n
</div>\n
</body>\n
</html>
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>JabberClient Gadget Page Dialog</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>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>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1456478686.7</float>
<string>UTC</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>949.30780.1199.42069</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>1456843290.96</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>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>converted</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1456478477.14</float>
<string>UTC</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_jabberclient_page_dialog.js</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>jabber_gadget_page_dialog_js</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>en</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Script</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>text_content</string> </key>
<value> <string encoding="cdata"><![CDATA[
/*global window, document, rJS, RSVP, loopEventListener*/\n
/*jslint nomen: true, indent: 2, maxerr: 3 */\n
(function (window, document, rJS, RSVP, loopEventListener) {\n
"use strict";\n
\n
function scroll() {\n
RSVP.Queue()\n
.push(function () {\n
return RSVP.delay(0);\n
})\n
.push(function () {\n
window.scrollTo(0, document.body.scrollHeight || document.documentElement.scrollHeight);\n
});\n
}\n
\n
rJS(window)\n
/////////////////////////////////////////////////////////////////\n
// ready\n
/////////////////////////////////////////////////////////////////\n
// Init local properties\n
.ready(function (g) {\n
g.props = {};\n
})\n
\n
// Assign the element to a variable\n
.ready(function (g) {\n
return g.getElement()\n
.push(function (element) {\n
g.props.element = element;\n
});\n
})\n
\n
/////////////////////////////////////////////////////////////////\n
// Acquired methods\n
/////////////////////////////////////////////////////////////////\n
.declareAcquiredMethod("updateHeader", "updateHeader")\n
.declareAcquiredMethod("notifySubmitting", "notifySubmitting")\n
.declareAcquiredMethod("notifySubmitted", "notifySubmitted")\n
.declareAcquiredMethod("refresh", "refresh")\n
.declareAcquiredMethod("jio_putAttachment", "jio_putAttachment")\n
.declareAcquiredMethod("jio_getAttachment", "jio_getAttachment")\n
\n
/////////////////////////////////////////////////////////////////\n
// declared methods\n
/////////////////////////////////////////////////////////////////\n
.declareMethod("render", function (options) {\n
var gadget = this,\n
ul = document.createElement("ul");\n
ul.setAttribute("data-role", "listview");\n
gadget.props.jid = options.jid;\n
return gadget.updateHeader({\n
page_title: options.jid\n
})\n
.push(function () {\n
return gadget.jio_getAttachment(options.jid, "enclosure", {format: \'text\'});\n
})\n
.push(function (text) {\n
var line_list = text.split(\'\\n\'),\n
line,\n
tmp_line,\n
i,\n
index,\n
displayed_text = \'\',\n
is_incoming = true,\n
is_handled;\n
\n
function appendText(txt, incoming) {\n
var li, pre;\n
if (txt) {\n
li = document.createElement("li");\n
if (incoming) {\n
li.setAttribute("style", "padding-right: 5em;");\n
} else {\n
li.setAttribute("style", "text-align: right; padding-left: 5em;");\n
}\n
pre = document.createElement("pre");\n
pre.setAttribute("style", "white-space: pre-wrap;");\n
pre.textContent = txt;\n
li.appendChild(pre);\n
ul.appendChild(li);\n
}\n
}\n
\n
for (i = 0; i < line_list.length - 1; i += 1) {\n
line = line_list[i];\n
is_handled = false;\n
\n
if (line.indexOf(\'[\') === 0) {\n
index = line.indexOf(\'] \');\n
if (index !== -1) {\n
// Check direction\n
tmp_line = line.substring(index + 2);\n
if (tmp_line.indexOf(\'> \') === 0) {\n
line = tmp_line.substring(2);\n
// Outgoing\n
if (is_incoming) {\n
appendText(displayed_text, is_incoming);\n
is_incoming = false;\n
displayed_text = line + \'\\n\';\n
is_handled = true;\n
}\n
} else if (tmp_line.indexOf(\'< \') === 0) {\n
line = tmp_line.substring(2);\n
// Incoming\n
if (!is_incoming) {\n
appendText(displayed_text, is_incoming);\n
is_incoming = true;\n
displayed_text = line + \'\\n\';\n
is_handled = true;\n
}\n
}\n
}\n
}\n
\n
if (!is_handled) {\n
displayed_text += line + \'\\n\';\n
}\n
}\n
appendText(displayed_text, is_incoming);\n
\n
gadget.props.element.querySelector(".discussion-content").innerHTML = "";\n
gadget.props.element.querySelector(".discussion-content").appendChild(ul);\n
scroll();\n
});\n
})\n
\n
.declareService(function () {\n
var form_gadget = this;\n
\n
function formSubmit(submit_event) {\n
return form_gadget.notifySubmitting()\n
.push(function () {\n
var text = submit_event.target[0].value;\n
submit_event.target[0].value = "";\n
return form_gadget.jio_putAttachment(\n
form_gadget.props.jid,\n
\'MESSAGE\',\n
text\n
);\n
})\n
.push(function () {\n
return form_gadget.refresh();\n
})\n
.push(function () {\n
return form_gadget.notifySubmitted();\n
})\n
.push(undefined, function (error) {\n
return form_gadget.notifySubmitted()\n
.push(function () {\n
throw error;\n
});\n
});\n
}\n
\n
// Listen to form submit\n
return loopEventListener(\n
form_gadget.props.element.querySelector(\'form\'),\n
\'submit\',\n
false,\n
formSubmit\n
);\n
})\n
\n
.declareService(function () {\n
scroll();\n
});\n
\n
}(window, document, rJS, RSVP, loopEventListener));
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>JabberClient Gadget Page Dialog 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>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>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1456478769.39</float>
<string>UTC</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>949.36447.38496.63744</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>1456908330.96</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>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>converted</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1456478477.12</float>
<string>UTC</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>gadget_jabberclient_page_password.html</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>jabber_gadget_page_password_html</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>en</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Page</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>text_content</string> </key>
<value> <string encoding="cdata"><![CDATA[
<!DOCTYPE html>\n
<html>\n
<head>\n
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />\n
<meta name="viewport" content="width=device-width, user-scalable=no" />\n
<title>JabberClient Gadget Page Password</title>\n
\n
<!-- renderjs -->\n
<script src="rsvp.js" type="text/javascript"></script>\n
<script src="renderjs.js" type="text/javascript"></script>\n
\n
<!-- custom script -->\n
<script src="gadget_global.js" type="text/javascript"></script>\n
<script src="gadget_jabberclient_page_password.js" type="text/javascript"></script>\n
</head>\n
<body>\n
<pre></pre>\n
<form class="dialog_form">\n
<button type="submit" data-i18n="Submit" class="ui-btn ui-btn-b ui-btn-inline\n
ui-icon-action ui-btn-icon-right ui-screen-hidden">Submit</button>\n
<div data-gadget-url="gadget_erp5_form.html"\n
data-gadget-scope="erp5_form"\n
data-gadget-sandbox="public">\n
</div>\n
</form>\n
</body>\n
</html>
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>JabberClient Gadget Page Password</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>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>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1456504628.78</float>
<string>UTC</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>949.26853.9657.64102</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>1456843254.57</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>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>converted</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1456503870.54</float>
<string>UTC</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_jabberclient_page_password.js</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>jabber_gadget_page_password_js</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>en</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Script</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>text_content</string> </key>
<value> <string>/*global window, rJS, RSVP, loopEventListener*/\n
/*jslint nomen: true, indent: 2, maxerr: 3 */\n
(function (window, rJS, RSVP, loopEventListener) {\n
"use strict";\n
\n
function validatePassword(password1, password2) {\n
return (password1 === password2);\n
}\n
\n
rJS(window)\n
/////////////////////////////////////////////////////////////////\n
// ready\n
/////////////////////////////////////////////////////////////////\n
// Init local properties\n
.ready(function (g) {\n
g.props = {};\n
})\n
\n
// Assign the element to a variable\n
.ready(function (g) {\n
return g.getElement()\n
.push(function (element) {\n
g.props.element = element;\n
});\n
})\n
\n
/////////////////////////////////////////////////////////////////\n
// Acquired methods\n
/////////////////////////////////////////////////////////////////\n
.declareAcquiredMethod("updateHeader", "updateHeader")\n
.declareAcquiredMethod("notifySubmitting", "notifySubmitting")\n
.declareAcquiredMethod("notifySubmitted", "notifySubmitted")\n
.declareAcquiredMethod("jio_put", "jio_put")\n
.declareAcquiredMethod("jio_allDocs", "jio_allDocs")\n
.declareAcquiredMethod("redirect", "redirect")\n
\n
/////////////////////////////////////////////////////////////////\n
// declared methods\n
/////////////////////////////////////////////////////////////////\n
.declareMethod(\'triggerSubmit\', function () {\n
this.props.element.querySelector(\'button\').click();\n
})\n
.declareMethod("render", function () {\n
var page_gadget = this;\n
return page_gadget.updateHeader({\n
page_title: \'Reset Password\',\n
submit_action: true\n
})\n
.push(function () {\n
// Ensure user is connected...\n
return page_gadget.jio_allDocs();\n
})\n
.push(function () {\n
return page_gadget.getDeclaredGadget("erp5_form");\n
})\n
.push(function (form_gadget) {\n
return form_gadget.render({\n
erp5_document: {"_embedded": {"_view": {\n
"server": {\n
"description": "",\n
"title": "Server URL",\n
"default": "tiolive.com",\n
"css_class": "",\n
"required": 1,\n
"editable": 1,\n
"key": "server",\n
"hidden": 0,\n
"type": "StringField"\n
},\n
"new_passwd": {\n
"description": "",\n
"title": "New Password",\n
"default": "",\n
"css_class": "",\n
"required": 1,\n
"editable": 1,\n
"key": "new_passwd",\n
"hidden": 0,\n
"type": "PasswordField"\n
},\n
"repeat_passwd": {\n
"description": "",\n
"title": "Repeat Password",\n
"default": "",\n
"css_class": "",\n
"required": 1,\n
"editable": 1,\n
"key": "repeat_passwd",\n
"hidden": 0,\n
"type": "PasswordField"\n
}\n
}}},\n
form_definition: {\n
group_list: [[\n
"center",\n
[["server"], ["new_passwd"], ["repeat_passwd"]]\n
]]\n
}\n
});\n
});\n
})\n
\n
.declareService(function () {\n
var form_gadget = this;\n
\n
function formSubmit() {\n
return form_gadget.notifySubmitting()\n
.push(function () {\n
return form_gadget.getDeclaredGadget("erp5_form");\n
})\n
.push(function (erp5_form) {\n
return erp5_form.getContent();\n
})\n
.push(function (content_dict) {\n
if (validatePassword(content_dict.new_passwd, content_dict.repeat_passwd)) {\n
return form_gadget.jio_put(\n
\'PASSWORD\',\n
content_dict\n
);\n
}\n
// XXX Uses field validation instead...\n
throw new Error(\'Password does not match.\');\n
})\n
.push(function () {\n
return RSVP.all([\n
form_gadget.notifySubmitted(),\n
form_gadget.redirect({command: \'display\', options: {page: \'contact\'}})\n
]);\n
})\n
.push(undefined, function (error) {\n
return form_gadget.notifySubmitted()\n
.push(function () {\n
throw error;\n
});\n
});\n
}\n
\n
// Listen to form submit\n
return loopEventListener(\n
form_gadget.props.element.querySelector(\'form\'),\n
\'submit\',\n
false,\n
formSubmit\n
);\n
});\n
\n
}(window, rJS, RSVP, loopEventListener));</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>JabberClient Gadget Page Password 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>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>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1456504700.43</float>
<string>UTC</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>949.26900.6119.6246</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>1456843245.07</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>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>converted</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1456503870.52</float>
<string>UTC</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>gadget_jabberclient_page_subscribe.html</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>jabber_gadget_page_subscribe_html</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>en</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Page</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>text_content</string> </key>
<value> <string encoding="cdata"><![CDATA[
<!DOCTYPE html>\n
<html>\n
<head>\n
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />\n
<meta name="viewport" content="width=device-width, user-scalable=no" />\n
<title>JabberClient Gadget Page Subscribe</title>\n
\n
<!-- renderjs -->\n
<script src="rsvp.js" type="text/javascript"></script>\n
<script src="renderjs.js" type="text/javascript"></script>\n
\n
<!-- custom script -->\n
<script src="gadget_global.js" type="text/javascript"></script>\n
<script src="gadget_jabberclient_page_subscribe.js" type="text/javascript"></script>\n
</head>\n
<body>\n
<pre></pre>\n
<form class="dialog_form">\n
<button type="submit" data-i18n="Submit" class="ui-btn ui-btn-b ui-btn-inline\n
ui-icon-action ui-btn-icon-right ui-screen-hidden">Submit</button>\n
<div data-gadget-url="gadget_erp5_form.html"\n
data-gadget-scope="erp5_form"\n
data-gadget-sandbox="public">\n
</div>\n
</form>\n
</body>\n
</html>
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>JabberClient Gadget Page Subscribe</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>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>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1456502869.85</float>
<string>UTC</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>949.26823.54523.58094</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>1456843200.45</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>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>converted</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1456502801.64</float>
<string>UTC</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_jabberclient_page_subscribe.js</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>jabber_gadget_page_subscribe_js</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>en</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Script</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>text_content</string> </key>
<value> <string>/*global window, rJS, RSVP, loopEventListener*/\n
/*jslint nomen: true, indent: 2, maxerr: 3 */\n
(function (window, rJS, RSVP, loopEventListener) {\n
"use strict";\n
\n
rJS(window)\n
/////////////////////////////////////////////////////////////////\n
// ready\n
/////////////////////////////////////////////////////////////////\n
// Init local properties\n
.ready(function (g) {\n
g.props = {};\n
})\n
\n
// Assign the element to a variable\n
.ready(function (g) {\n
return g.getElement()\n
.push(function (element) {\n
g.props.element = element;\n
});\n
})\n
\n
/////////////////////////////////////////////////////////////////\n
// Acquired methods\n
/////////////////////////////////////////////////////////////////\n
.declareAcquiredMethod("updateHeader", "updateHeader")\n
.declareAcquiredMethod("notifySubmitting", "notifySubmitting")\n
.declareAcquiredMethod("notifySubmitted", "notifySubmitted")\n
.declareAcquiredMethod("jio_put", "jio_put")\n
.declareAcquiredMethod("jio_allDocs", "jio_allDocs")\n
.declareAcquiredMethod("redirect", "redirect")\n
\n
/////////////////////////////////////////////////////////////////\n
// declared methods\n
/////////////////////////////////////////////////////////////////\n
.declareMethod(\'triggerSubmit\', function () {\n
this.props.element.querySelector(\'button\').click();\n
})\n
.declareMethod("render", function () {\n
var page_gadget = this;\n
return page_gadget.updateHeader({\n
page_title: \'New Contact\',\n
submit_action: true\n
})\n
.push(function () {\n
// Ensure user is connected...\n
return page_gadget.jio_allDocs();\n
})\n
.push(function () {\n
return page_gadget.getDeclaredGadget("erp5_form");\n
})\n
.push(function (form_gadget) {\n
return form_gadget.render({\n
erp5_document: {"_embedded": {"_view": {\n
"jid": {\n
"description": "",\n
"title": "Jabber ID",\n
"default": "",\n
"css_class": "",\n
"required": 1,\n
"editable": 1,\n
"key": "jid",\n
"hidden": 0,\n
"type": "StringField"\n
}\n
}}},\n
form_definition: {\n
group_list: [[\n
"center",\n
[["jid"]]\n
]]\n
}\n
});\n
});\n
})\n
\n
.declareService(function () {\n
var form_gadget = this;\n
\n
function formSubmit() {\n
return form_gadget.notifySubmitting()\n
.push(function () {\n
return form_gadget.getDeclaredGadget("erp5_form");\n
})\n
.push(function (erp5_form) {\n
return erp5_form.getContent();\n
})\n
.push(function (content_dict) {\n
return form_gadget.jio_put(\n
\'SUBSCRIBE\',\n
content_dict\n
);\n
})\n
.push(function () {\n
return RSVP.all([\n
form_gadget.notifySubmitted(),\n
form_gadget.redirect({command: \'display\', options: {page: \'contact\'}})\n
]);\n
})\n
.push(undefined, function (error) {\n
return form_gadget.notifySubmitted()\n
.push(function () {\n
throw error;\n
});\n
});\n
}\n
\n
// Listen to form submit\n
return loopEventListener(\n
form_gadget.props.element.querySelector(\'form\'),\n
\'submit\',\n
false,\n
formSubmit\n
);\n
});\n
\n
}(window, rJS, RSVP, loopEventListener));</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>JabberClient Gadget Page Subscribe 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>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>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1456502884.09</float>
<string>UTC</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>949.26838.22974.62054</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>1456843207.84</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>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>converted</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1456502801.66</float>
<string>UTC</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>gadget_jabberclient_panel.html</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>jabber_gadget_panel_html</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>en</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Page</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>text_content</string> </key>
<value> <string encoding="cdata"><![CDATA[
<!DOCTYPE html>\n
<html>\n
<head>\n
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />\n
<meta name="viewport" content="width=device-width, user-scalable=no" />\n
<title>ERP5 Panel</title>\n
\n
<!-- renderjs -->\n
<script src="rsvp.js" type="text/javascript"></script>\n
<script src="renderjs.js" type="text/javascript"></script>\n
<script src="handlebars.js" type="text/javascript"></script>\n
<script src="gadget_global.js" type="text/javascript"></script>\n
<script src="jquery.js" type="text/javascript"></script>\n
<script src="jquerymobile.js" type="text/javascript"></script>\n
\n
<script id="panel-template-header" type="text/x-handlebars-template">\n
<div data-role="header" class="ui-bar-inherit">\n
<div class="ui-controlgroup ui-controlgroup-horizontal ui-btn-left">\n
<div class="ui-controlgroup-controls">\n
<form action="#" method="post">\n
<input type="submit" data-i18n="[value]Close" data-icon="delete" data-iconpos="notext" value="Close" />\n
</form>\n
</div>\n
</div>\n
<div class="ui-controlgroup ui-controlgroup-horizontal ui-btn-right">\n
<div class="ui-controlgroup-controls">\n
<a href="#" class="ui-btn ui-btn-icon-notext ui-icon-home" data-i18n="Home">Home</a>\n
</div>\n
</div>\n
</div>\n
</script>\n
\n
<script id="panel-template-body" type="text/x-handlebars-template">\n
<div class="ui-content">\n
<ul data-role="listview" class="ui-listview" data-enhanced="true">\n
<li class="ui-first-child"><a href="{{contact_href}}" class="ui-btn ui-btn-icon-left ui-icon-puzzle-piece" data-i18n="Contacts">Contacts</a></li>\n
<li><a href="{{subscribe_href}}" class="ui-btn ui-btn-icon-left ui-icon-gear" data-i18n="New Contact">New Contact</a></li>\n
<li class="ui-last-child"><a href="{{password_href}}" class="ui-btn ui-btn-icon-left ui-icon-power-off" data-i18n="Password">Password</a></li>\n
</ul>\n
</div>\n
</script>\n
\n
<!-- custom script -->\n
<script src="gadget_jabberclient_panel.js" type="text/javascript"></script>\n
\n
</head>\n
<body>\n
\n
<div class="jqm-navmenu-panel"></div>\n
\n
</body>\n
</html>
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Gadget JabberClient Panel</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>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>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1456492679.45</float>
<string>UTC</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>949.35375.42111.29422</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>1456843184.4</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>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>converted</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1456492557.98</float>
<string>UTC</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_jabberclient_panel.js</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>jabber_gadget_panel_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>/*jslint nomen: true, indent: 2, maxerr: 3 */\n
/*global window, rJS, Handlebars, jQuery, RSVP, loopEventListener */\n
(function (window, rJS, Handlebars, $, RSVP, loopEventListener) {\n
"use strict";\n
\n
/////////////////////////////////////////////////////////////////\n
// temlates\n
/////////////////////////////////////////////////////////////////\n
// Precompile templates while loading the first gadget instance\n
var gadget_klass = rJS(window),\n
source_header = gadget_klass.__template_element\n
.getElementById("panel-template-header")\n
.innerHTML,\n
panel_template_header = Handlebars.compile(source_header),\n
source_body = gadget_klass.__template_element\n
.getElementById("panel-template-body")\n
.innerHTML,\n
panel_template_body = Handlebars.compile(source_body);\n
\n
gadget_klass\n
/////////////////////////////////////////////////////////////////\n
// ready\n
/////////////////////////////////////////////////////////////////\n
// Init local properties\n
.ready(function (g) {\n
g.props = {};\n
})\n
\n
//////////////////////////////////////////////\n
// acquired method\n
//////////////////////////////////////////////\n
.declareAcquiredMethod("translateHtml", "translateHtml")\n
.declareAcquiredMethod("getUrlFor", "getUrlFor")\n
\n
// Assign the element to a variable\n
.ready(function (g) {\n
return g.getElement()\n
.push(function (element) {\n
g.props.element = element;\n
g.props.jelement = $(element.querySelector("div"));\n
g.props.render_deferred = RSVP.defer();\n
});\n
})\n
\n
.ready(function (g) {\n
g.props.jelement.panel({\n
display: "overlay",\n
position: "left",\n
theme: "d"\n
// animate: false\n
});\n
})\n
\n
/////////////////////////////////////////////////////////////////\n
// declared methods\n
/////////////////////////////////////////////////////////////////\n
.declareMethod(\'toggle\', function () {\n
this.props.jelement.panel("toggle");\n
})\n
.declareMethod(\'close\', function () {\n
this.props.jelement.panel("close");\n
})\n
\n
.declareMethod(\'render\', function () {\n
var g = this;\n
return new RSVP.Queue()\n
.push(function () {\n
return RSVP.all([\n
g.getUrlFor({command: \'display\', options: {page: "contact"}}),\n
g.getUrlFor({command: \'display\', options: {page: "subscribe"}}),\n
g.getUrlFor({command: \'display\', options: {page: "password"}})\n
]);\n
})\n
.push(function (all_result) {\n
// XXX: Customize panel header!\n
var tmp = panel_template_header();\n
tmp += panel_template_body({\n
"contact_href": all_result[0],\n
"subscribe_href": all_result[1],\n
"password_href": all_result[2]\n
});\n
return tmp;\n
})\n
.push(function (my_translated_or_plain_html) {\n
g.props.jelement.html(my_translated_or_plain_html);\n
g.props.jelement.trigger("create");\n
g.props.render_deferred.resolve();\n
});\n
})\n
\n
/////////////////////////////////////////////////////////////////\n
// declared services\n
/////////////////////////////////////////////////////////////////\n
.declareService(function () {\n
var panel_gadget = this;\n
\n
function formSubmit() {\n
panel_gadget.toggle();\n
}\n
return new RSVP.Queue()\n
.push(function () {\n
return panel_gadget.props.render_deferred.promise;\n
})\n
.push(function () {\n
return loopEventListener(\n
panel_gadget.props.element.querySelector(\'form\'),\n
\'submit\',\n
false,\n
formSubmit\n
);\n
});\n
\n
});\n
\n
}(window, rJS, Handlebars, jQuery, RSVP, loopEventListener));</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Gadget JabberClient Panel 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>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>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1456492692.96</float>
<string>UTC</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>949.26657.64277.54118</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>1456843167.64</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>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>converted</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1456492557.96</float>
<string>UTC</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>categories</string> </key>
<value>
<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_jabberclient_router.html</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>jabber_gadget_router_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>Router Gadget</title>\n
\n
<!-- renderjs -->\n
<script src="rsvp.js" type="text/javascript"></script>\n
<script src="renderjs.js" type="text/javascript"></script>\n
\n
<script src="gadget_jabberclient_router.js" type="text/javascript"></script>\n
\n
</head>\n
<body>\n
</body>\n
</html>\n
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>JabberClient Gadget Router</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>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>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1456334074.25</float>
<string>UTC</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>949.24010.37433.15462</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>1456843272.44</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>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>converted</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1456333611.93</float>
<string>UTC</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>categories</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_jabberclient_router.js</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>jabber_gadget_router_js</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>en</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Script</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>text_content</string> </key>
<value> <string encoding="cdata"><![CDATA[
/*global window, rJS, RSVP, loopEventListener, document, URL */\n
/*jslint nomen: true, indent: 2 */\n
(function (window, rJS, RSVP, loopEventListener, document, URL) {\n
"use strict";\n
\n
// Keep reference of the latest allDocs params which reach to this view\n
// var SELECTION_KEY = "s",\n
// Keep reference in the global navigation pattern\n
// HISTORY KEY = "h"\n
// Current display parameter\n
// DISPLAY KEY = "d"\n
var PREVIOUS_KEY = "p",\n
NEXT_KEY = "n",\n
DROP_KEY = "u",\n
PREFIX_DISPLAY = "/",\n
PREFIX_COMMAND = "!",\n
// PREFIX_ERROR = "?",\n
COMMAND_DISPLAY_STATE = "display",\n
COMMAND_LOGIN = "login",\n
COMMAND_RAW = "raw",\n
COMMAND_RELOAD = "reload",\n
COMMAND_DISPLAY_STORED_STATE = "display_stored_state",\n
COMMAND_CHANGE_STATE = "change",\n
COMMAND_STORE_AND_CHANGE_STATE = "store_and_change",\n
COMMAND_INDEX_STATE = "index",\n
COMMAND_SELECTION_PREVIOUS = "selection_previous",\n
COMMAND_SELECTION_NEXT = "selection_next",\n
COMMAND_HISTORY_PREVIOUS = "history_previous",\n
COMMAND_PUSH_HISTORY = "push_history",\n
REDIRECT_TIMEOUT = 5000,\n
VALID_URL_COMMAND_DICT = {};\n
VALID_URL_COMMAND_DICT[COMMAND_DISPLAY_STATE] = null;\n
VALID_URL_COMMAND_DICT[COMMAND_DISPLAY_STORED_STATE] = null;\n
VALID_URL_COMMAND_DICT[COMMAND_CHANGE_STATE] = null;\n
VALID_URL_COMMAND_DICT[COMMAND_STORE_AND_CHANGE_STATE] = null;\n
VALID_URL_COMMAND_DICT[COMMAND_INDEX_STATE] = null;\n
VALID_URL_COMMAND_DICT[COMMAND_SELECTION_PREVIOUS] = null;\n
VALID_URL_COMMAND_DICT[COMMAND_SELECTION_NEXT] = null;\n
VALID_URL_COMMAND_DICT[COMMAND_HISTORY_PREVIOUS] = null;\n
VALID_URL_COMMAND_DICT[COMMAND_PUSH_HISTORY] = null;\n
VALID_URL_COMMAND_DICT[COMMAND_LOGIN] = null;\n
VALID_URL_COMMAND_DICT[COMMAND_RAW] = null;\n
VALID_URL_COMMAND_DICT[COMMAND_RELOAD] = null;\n
\n
\n
function endsWith(str, suffix) {\n
return str.indexOf(suffix, str.length - suffix.length) !== -1;\n
}\n
\n
//////////////////////////////////////////////////////////////////\n
// Change URL functions\n
//////////////////////////////////////////////////////////////////\n
function changeState(hash) {\n
// window.location = hash;\n
return window.location.replace(hash);\n
}\n
\n
function synchronousChangeState(hash) {\n
changeState(hash);\n
// prevent returning unexpected response\n
// wait for the hash change to occur\n
// fail if nothing happens\n
return RSVP.timeout(REDIRECT_TIMEOUT);\n
}\n
\n
//////////////////////////////////////////////////////////////////\n
// Build URL functions\n
//////////////////////////////////////////////////////////////////\n
function getCommandUrlFor(gadget, command, options) {\n
if (command === COMMAND_RAW) {\n
return options.url;\n
}\n
var result = "#" + PREFIX_COMMAND + (command || ""),\n
prefix = "?",\n
key,\n
tmp,\n
tmp_dict;\n
tmp_dict = gadget.props.options;\n
for (key in tmp_dict) {\n
if (tmp_dict.hasOwnProperty(key) && (tmp_dict[key] !== undefined)) {\n
tmp = tmp_dict[key];\n
if (endsWith(key, ":json")) {\n
tmp = JSON.stringify(tmp);\n
}\n
result += prefix + PREVIOUS_KEY + "." + encodeURIComponent(key) + "=" + encodeURIComponent(tmp);\n
prefix = "&";\n
}\n
}\n
for (key in options) {\n
if (options.hasOwnProperty(key)) {\n
tmp = options[key];\n
if (tmp === undefined) {\n
// Key should be dropped from the URL\n
result += prefix + DROP_KEY + "." + encodeURIComponent(key) + "=";\n
} else {\n
if (endsWith(key, ":json")) {\n
tmp = JSON.stringify(tmp);\n
}\n
result += prefix + NEXT_KEY + "." + encodeURIComponent(key) + "=" + encodeURIComponent(tmp);\n
}\n
prefix = "&";\n
}\n
}\n
if (command === COMMAND_LOGIN) {\n
// Build URL template to allow getting user information\n
result += \'{\' + prefix + \'n.me}\';\n
}\n
return result;\n
}\n
\n
function getDisplayUrlFor(jio_key, options) {\n
var prefix = \'?\',\n
result,\n
tmp,\n
key;\n
result = "#" + PREFIX_DISPLAY + (jio_key || "");\n
for (key in options) {\n
if (options.hasOwnProperty(key) && options[key] !== undefined) {\n
// Don\'t keep empty values\n
tmp = options[key];\n
if (endsWith(key, ":json")) {\n
tmp = JSON.stringify(tmp);\n
}\n
result += prefix + encodeURIComponent(key) + "=" + encodeURIComponent(tmp);\n
prefix = \'&\';\n
}\n
}\n
return result;\n
}\n
\n
//////////////////////////////////////////////////////////////////\n
// exec command functions\n
//////////////////////////////////////////////////////////////////\n
function execDisplayCommand(next_options) {\n
// console.warn(command_options);\n
var jio_key = next_options.jio_key,\n
hash;\n
delete next_options.jio_key;\n
\n
hash = getDisplayUrlFor(jio_key, next_options);\n
return new RSVP.Queue()\n
.push(function () {\n
return synchronousChangeState(hash);\n
});\n
}\n
\n
//////////////////////////////////////////////////////////////////\n
// Command URL functions\n
//////////////////////////////////////////////////////////////////\n
function routeMethodLess() {\n
// Nothing. Go to front page\n
return synchronousChangeState(\n
getDisplayUrlFor(undefined, {page: \'contact\'})\n
);\n
}\n
\n
function routeDisplay(command_options) {\n
if (command_options.args.page === undefined) {\n
return routeMethodLess();\n
}\n
\n
return {\n
url: "gadget_jabberclient_page_" + command_options.args.page + ".html",\n
options: command_options.args\n
};\n
\n
}\n
\n
function routeCommand(command_options) {\n
var args = command_options.args,\n
key,\n
split_list,\n
previous_options = {},\n
next_options = {},\n
drop_options = {},\n
valid = true;\n
// Rebuild the previous and next parameter dict\n
for (key in args) {\n
if (args.hasOwnProperty(key)) {\n
split_list = key.split(\'.\', 2);\n
if (split_list.length !== 2) {\n
valid = false;\n
break;\n
}\n
if (split_list[0] === PREVIOUS_KEY) {\n
previous_options[split_list[1]] = args[key];\n
} else if (split_list[0] === NEXT_KEY) {\n
next_options[split_list[1]] = args[key];\n
} else if (split_list[0] === DROP_KEY) {\n
drop_options[split_list[1]] = args[key];\n
} else {\n
valid = false;\n
break;\n
}\n
}\n
}\n
if (!valid) {\n
throw new Error(\'Unsupported parameters: \' + key);\n
}\n
\n
if (command_options.path === COMMAND_DISPLAY_STATE) {\n
return execDisplayCommand(next_options);\n
}\n
throw new Error(\'Unsupported command \' + command_options.path);\n
\n
}\n
\n
function listenHashChange(gadget) {\n
// Handle hash in this format: #$path1/path2?a=b&c=d\n
function extractHashAndDispatch(evt) {\n
var hash = (evt.newURL || window.location.toString()).split(\'#\')[1],\n
split,\n
command = "",\n
query = "",\n
subhashes,\n
subhash,\n
keyvalue,\n
index,\n
key,\n
tmp,\n
args = {};\n
if (hash !== undefined) {\n
split = hash.split(\'?\');\n
command = split[0] || "";\n
query = split[1] || "";\n
}\n
subhashes = query.split(\'&\');\n
for (index in subhashes) {\n
if (subhashes.hasOwnProperty(index)) {\n
subhash = subhashes[index];\n
if (subhash !== \'\') {\n
keyvalue = subhash.split(\'=\');\n
if (keyvalue.length === 2) {\n
key = decodeURIComponent(keyvalue[0]);\n
tmp = decodeURIComponent(keyvalue[1]);\n
if (endsWith(key, ":json")) {\n
tmp = JSON.parse(tmp);\n
}\n
args[key] = tmp;\n
}\n
}\n
}\n
}\n
\n
return gadget.renderApplication({\n
method: command[0],\n
path: command.substr(1),\n
args: args\n
});\n
\n
}\n
var result = loopEventListener(window, \'hashchange\', false,\n
extractHashAndDispatch),\n
event = document.createEvent("Event");\n
event.initEvent(\'hashchange\', true, true);\n
event.newURL = window.location.toString();\n
window.dispatchEvent(event);\n
return result;\n
}\n
\n
\n
rJS(window)\n
.ready(function (gadget) {\n
gadget.props = {\n
options: {},\n
start_deferred: RSVP.defer()\n
};\n
})\n
\n
.declareMethod(\'getCommandUrlFor\', function (options) {\n
var command = options.command,\n
absolute_url = options.absolute_url,\n
hash,\n
args = options.options,\n
valid = true,\n
key;\n
// Only authorize \'command\', \'options\', \'absolute_url\' keys\n
// Drop all other kind of parameters, to detect issue more easily\n
for (key in options) {\n
if (options.hasOwnProperty(key)) {\n
if ((key !== \'command\') && (key !== \'options\') && (key !== \'absolute_url\')) {\n
valid = false;\n
}\n
}\n
}\n
if (valid && (options.command) && (VALID_URL_COMMAND_DICT.hasOwnProperty(options.command))) {\n
hash = getCommandUrlFor(this, command, args);\n
} else {\n
hash = getCommandUrlFor(this, \'error\', options);\n
}\n
\n
if (absolute_url) {\n
hash = new URL(hash, window.location.href).href;\n
}\n
return hash;\n
})\n
\n
.declareMethod(\'redirect\', function (options) {\n
return this.getCommandUrlFor(options)\n
.push(function (hash) {\n
window.location.replace(hash);\n
\n
// prevent returning unexpected response\n
// wait for the hash change to occur\n
// fail if nothing happens\n
return RSVP.timeout(REDIRECT_TIMEOUT);\n
});\n
})\n
\n
.declareMethod(\'getUrlParameter\', function (key) {\n
return this.props.options[key];\n
})\n
\n
.declareMethod(\'route\', function (command_options) {\n
if (command_options.method === PREFIX_DISPLAY) {\n
return routeDisplay(command_options);\n
}\n
if (command_options.method === PREFIX_COMMAND) {\n
return routeCommand(command_options);\n
}\n
if (command_options.method) {\n
throw new Error(\'Unsupported hash method: \' + command_options.method);\n
}\n
return routeMethodLess();\n
})\n
\n
.declareMethod(\'start\', function () {\n
this.props.start_deferred.resolve();\n
})\n
\n
.declareAcquiredMethod(\'renderApplication\', \'renderApplication\')\n
\n
.declareService(function () {\n
var gadget = this;\n
return new RSVP.Queue()\n
.push(function () {\n
return gadget.props.start_deferred.promise;\n
})\n
.push(function () {\n
// console.info(\'router service: listen to hash change\');\n
return listenHashChange(gadget);\n
});\n
});\n
\n
}(window, rJS, RSVP, loopEventListener, document, URL));\n
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>JabberClient Gadget Router 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>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>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1456334186.39</float>
<string>UTC</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>949.35416.23201.12748</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>1456845631.45</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>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>converted</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1456333611.91</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
......@@ -167,6 +167,83 @@
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
<item>
<key> <string>_local_properties</string> </key>
<value>
<tuple>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>configuration_content_security_policy</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>configuration_translation_gadget_url</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>configuration_application_title</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>configuration_router_gadget_url</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>configuration_manifest_url</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>configuration_jio_gadget_url</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>configuration_panel_gadget_url</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
</tuple>
</value>
</item>
<item>
<key> <string>_mt_index</string> </key>
<value>
......@@ -197,10 +274,39 @@
<key> <string>categories</string> </key>
<value>
<tuple>
<string>aggregate/web_page_module/jabber_gadget_jabberclient_html</string>
<string>caching_policy/must-revalidate</string>
<string>aggregate/web_page_module/rjs_gadget_erp5_html</string>
</tuple>
</value>
</item>
<item>
<key> <string>configuration_application_title</string> </key>
<value> <string>Jabber Client</string> </value>
</item>
<item>
<key> <string>configuration_content_security_policy</string> </key>
<value> <string>default-src \'none\'; img-src \'self\' data:; media-src \'self\' blob:; connect-src \'self\' data:; script-src \'self\' \'unsafe-eval\'; font-src netdna.bootstrapcdn.com; style-src \'self\' netdna.bootstrapcdn.com \'unsafe-inline\' data:; frame-src \'self\' data:</string> </value>
</item>
<item>
<key> <string>configuration_jio_gadget_url</string> </key>
<value> <string>gadget_jabberclient_jio.html</string> </value>
</item>
<item>
<key> <string>configuration_manifest_url</string> </key>
<value> <string>gadget_jabberclient.appcache</string> </value>
</item>
<item>
<key> <string>configuration_panel_gadget_url</string> </key>
<value> <string>gadget_jabberclient_panel.html</string> </value>
</item>
<item>
<key> <string>configuration_router_gadget_url</string> </key>
<value> <string>gadget_jabberclient_router.html</string> </value>
</item>
<item>
<key> <string>configuration_translation_gadget_url</string> </key>
<value> <string>gadget_translation.html</string> </value>
</item>
<item>
<key> <string>container_layout</string> </key>
<value> <string>WebSection_renderDefaultPageAsGadget</string> </value>
......@@ -225,9 +331,7 @@
</item>
<item>
<key> <string>layout_configuration_form_id</string> </key>
<value>
<none/>
</value>
<value> <string>WebSection_viewRenderJSPreference</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
......@@ -428,7 +532,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>romain</string> </value>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -442,7 +546,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>939.33823.21257.56849</string> </value>
<value> <string>949.24016.56134.48605</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -460,8 +564,8 @@
</tuple>
<state>
<tuple>
<float>1418206071.42</float>
<string>GMT</string>
<float>1456492716.38</float>
<string>UTC</string>
</tuple>
</state>
</object>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Web Section" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_folders_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Copy_or_Move_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Delete_objects_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>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>__before_publishing_traverse__</string> </key>
<value>
<object>
<klass>
<global name="MultiHook" module="ZPublisher.BeforeTraverse"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_defined_in_class</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>_hookname</string> </key>
<value> <string>__before_publishing_traverse__</string> </value>
</item>
<item>
<key> <string>_list</string> </key>
<value>
<list>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</list>
</value>
</item>
<item>
<key> <string>_prior</string> </key>
<value>
<none/>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>__before_traverse__</string> </key>
<value>
<dictionary>
<item>
<key>
<tuple>
<int>99</int>
<string>ERP5 Web Section/connection</string>
</tuple>
</key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>_identity_criterion</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>_local_properties</string> </key>
<value>
<tuple>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>configuration_content_security_policy</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
</tuple>
</value>
</item>
<item>
<key> <string>_range_criterion</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>caching_policy/must-revalidate</string>
<string>aggregate/web_page_module/jabber_gadget_jabberconnection_html</string>
</tuple>
</value>
</item>
<item>
<key> <string>configuration_content_security_policy</string> </key>
<value> <string>default-src \'none\'; connect-src *; script-src \'self\'</string> </value>
</item>
<item>
<key> <string>custom_render_method_id</string> </key>
<value> <string>WebSection_renderDefaultPageAsGadget</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>empty_criterion_valid</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>connection</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Section</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>skin_selection_name</string> </key>
<value> <string>RJS</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Connection Gadget</string> </value>
</item>
<item>
<key> <string>visible</string> </key>
<value> <int>1</int> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="WebSectionTraversalHook" module="Products.ERP5.Document.WebSection"/>
</pickle>
<pickle>
<dictionary/>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
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