Commit a4bf0acc authored by Romain Courteaud's avatar Romain Courteaud

[erp5_officejs] Drop not used launcher gadget

parent f873d8ff
......@@ -140,7 +140,6 @@ gadget_officejs_page_share_webrtc_jio.html\n
gadget_officejs_page_sync.html\n
gadget_officejs_page_text_editor_list.html\n
gadget_officejs_router.html\n
gadget_officejs_text_editor_application.html\n
gadget_officejs_text_editor_application_panel.html\n
gadget_translation.html\n
gadget_officejs_webrtc_jio.html\n
......@@ -159,7 +158,6 @@ gadget_officejs_page_share_webrtc_jio.js\n
gadget_officejs_page_sync.js\n
gadget_officejs_page_text_editor_list.js\n
gadget_officejs_router.js\n
gadget_officejs_text_editor_application.js\n
gadget_officejs_text_editor_application_panel.js\n
gadget_translation.js\n
gadget_translation_data.js\n
......@@ -287,7 +285,7 @@ NETWORK:\n
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>cedric.le.ninivin</string> </value>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -301,7 +299,7 @@ NETWORK:\n
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>948.17599.60668.4096</string> </value>
<value> <string>949.23979.35291.18500</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -319,7 +317,7 @@ NETWORK:\n
</tuple>
<state>
<tuple>
<float>1452017315.91</float>
<float>1456912025.89</float>
<string>UTC</string>
</tuple>
</state>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Web Page" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Anonymous</string>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Anonymous</string>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>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>creators</string> </key>
<value>
<tuple>
<string>zope</string>
</tuple>
</value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_officejs_text_editor_application.html</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>gadget_officejs_text_editor_application_html</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>en</string> </value>
</item>
<item>
<key> <string>modification_date</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1433262375.42</float>
<string>GMT</string>
</tuple>
</state>
</object>
</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
\n
<head>\n
<meta charset="utf-8">\n
<meta name="viewport" content="width=device-width, initial-scale=1">\n
\n
<title>OfficeJS Text Editor Application</title>\n
\n
<link href="//netdna.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet" type="text/css" />\n
<link rel="stylesheet" href="jquerymobile.css">\n
<link rel="stylesheet" href="gadget_erp5.css">\n
\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_officejs_text_editor_application.js"></script>\n
\n
<script class="edit-template" type="text/x-handlebars-template">\n
<h1 class="ui-title">{{title}}</h1>\n
<div class="ui-controlgroup ui-controlgroup-horizontal ui-btn-right">\n
<div class="ui-controlgroup-controls">\n
<form class="edit-form">\n
<button type="submit" class="responsive ui-btn ui-first-child ui-last-child ">{{right_url}}</button>\n
</form>\n
</div>\n
</div>\n
</script>\n
\n
<script class="header-template" type="text/x-handlebars-template">\n
<h1 class="ui-title">{{title}}</h1> {{#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> {{/if}}\n
</script>\n
\n
<script class="sync-loader-template" type="text/x-handlebars-template">\n
<h1 class="ui-title">{{title}}</h1>\n
<a role="button" href="" class="responsive ui-btn ui-btn-right ui-icon-spinner ui-btn-icon-left ui-first-child ui-last-child ui-disabled ui-icon-spin">{{loading_title}}</a>\n
</script>\n
\n
<script class="panel-template" type="text/x-handlebars-template">\n
<div class="ui-content">\n
<ul data-role="listview" class="ui-listview">\n
<li><a href="#page=text_editor_list" data-i18n="Text Documents">Text Documents</a></li>\n
<li><a href="#page=sync" data-i18n="Sync">Sync</a></li>\n
<li class="ui-last-child"><a href="#page=logout" data-i18n="Logout">Logout</a></li>\n
</ul>\n
</div>\n
</script>\n
</head>\n
\n
<body>\n
<div data-role="page">\n
\n
<div data-role="panel" id="mypanel" data-position="left" data-display="overlay" data-theme="d">\n
</div>\n
\n
<div data-role="header" class="gadget-header" data-theme="a">\n
<a href="#mypanel" class="ui-btn-left ui-btn ui-btn-inline ui-mini ui-corner-all"></a>\n
<div>\n
<h1 class="ui-title"></h1></div>\n
</div>\n
\n
<div data-gadget-url="gadget_jio.html" data-gadget-scope="jio_gadget" data-gadget-sandbox="public"></div>\n
\n
<div data-gadget-url="gadget_officejs_translation.html" data-gadget-scope="translation_gadget" data-gadget-sandbox="public"></div>\n
\n
<div role="main" class="ui-content gadget-content"></div>\n
</div>\n
\n
</body>\n
\n
</html>
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>OfficeJS Text Editor Application</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>002</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>cedric.le.ninivin</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>1440078908.9</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>946.59107.19807.14882</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>1446741174.99</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>cedric.le.ninivin</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>1440068937.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 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>creators</string> </key>
<value>
<tuple>
<string>zope</string>
</tuple>
</value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_officejs_text_editor_application.js</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>gadget_officejs_text_editor_application_js</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>en</string> </value>
</item>
<item>
<key> <string>modification_date</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1433408510.77</float>
<string>GMT</string>
</tuple>
</state>
</object>
</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[
/*globals window, document, RSVP, rJS, Handlebars,\n
loopEventListener, jQuery, URI, location, XMLHttpRequest, console*/\n
/*jslint indent: 2, maxlen: 80*/\n
(function (window, document, RSVP, rJS, Handlebars, loopEventListener,\n
$, XMLHttpRequest, location, console) {\n
"use strict";\n
\n
$.mobile.ajaxEnabled = false;\n
$.mobile.linkBindingEnabled = false;\n
$.mobile.hashListeningEnabled = false;\n
$.mobile.pushStateEnabled = false;\n
\n
var hateoas_url = "hateoas/",\n
MAIN_SCOPE = "m",\n
MAIN_PAGE_PREFIX = "gadget_officejs_";\n
\n
function updateHeader(gadget) {\n
if (gadget.props.header_argument_list === undefined) {\n
gadget.props.header_argument_list = {};\n
}\n
if (gadget.props.loading_counter === 0) {\n
gadget.props.header_element.innerHTML =\n
gadget.props.header_template(\n
gadget.props.header_argument_list\n
);\n
} else {\n
gadget.props.header_argument_list.loading_title =\n
gadget.props.loading_title;\n
gadget.props.header_element.innerHTML =\n
gadget.props.sync_loader_template(\n
gadget.props.header_argument_list\n
);\n
}\n
}\n
\n
function increaseLoadingCounter(gadget) {\n
return new RSVP.Queue()\n
.push(function () {\n
gadget.props.loading_counter += 1;\n
if (gadget.props.loading_counter === 1) {\n
return updateHeader(gadget);\n
}\n
});\n
}\n
\n
function decreaseLoadingCounter(gadget) {\n
return new RSVP.Queue()\n
.push(function () {\n
gadget.props.loading_counter -= 1;\n
if (gadget.props.loading_counter < 0) {\n
gadget.props.loading_counter = 0;\n
// throw new Error("Unexpected negative loading counter");\n
}\n
if (gadget.props.loading_counter === 0) {\n
return updateHeader(gadget);\n
}\n
});\n
}\n
\n
function callJioGadget(gadget, method, param_list) {\n
var called = false,\n
jiogadget = null;\n
return new RSVP.Queue()\n
.push(function () {\n
called = true;\n
return increaseLoadingCounter(gadget);\n
})\n
.push(function () {\n
return gadget.getDeclaredGadget("jio_gadget");\n
})\n
.push(function (jio_gadget) {\n
jiogadget = jio_gadget;\n
return jio_gadget[method].apply(jio_gadget, param_list);\n
})\n
.push(function (result) {\n
if (method === "repair") {\n
jiogadget.post({\n
portal_type: "Sync Log",\n
result: 1,\n
time: new Date().getTime()\n
});\n
}\n
return decreaseLoadingCounter(gadget)\n
.push(function () {\n
return result;\n
});\n
}, function (error) {\n
if (method === "repair") {\n
jiogadget.post({\n
portal_type: "Sync Log",\n
result: 0,\n
time: new Date().getTime()\n
});\n
}\n
if (called) {\n
return decreaseLoadingCounter(gadget)\n
.push(function () {\n
throw error;\n
});\n
}\n
throw error;\n
});\n
}\n
\n
function renderMainGadget(gadget, url, options) {\n
return gadget.declareGadget(url, {\n
scope: MAIN_SCOPE\n
})\n
.push(function (page_gadget) {\n
var sub_options = options[MAIN_SCOPE] || {};\n
delete options[MAIN_SCOPE];\n
if (page_gadget.render === undefined) {\n
return [page_gadget];\n
}\n
return RSVP.all([\n
page_gadget,\n
page_gadget.render(sub_options)\n
]);\n
})\n
.push(function (all_result) {\n
return all_result[0];\n
});\n
}\n
\n
function renderPage(gadget, options) {\n
options[MAIN_SCOPE] = {\n
jio_key: options.jio_key,\n
search: options.search,\n
page: options.page\n
};\n
return renderMainGadget(gadget,\n
MAIN_PAGE_PREFIX + "page_" + options.page + ".html",\n
options);\n
}\n
\n
function renderJioPage(gadget, options) {\n
return gadget.getDeclaredGadget("jio_gadget")\n
.push(function (jio_gadget) {\n
return jio_gadget.get(options.jio_key);\n
})\n
.push(undefined, function (error) {\n
// User has to initialize the app on the first access.\n
if (error.status_code === 404) {\n
if (/_module$/.test(options.jio_key)) {\n
return gadget.aq_pleasePublishMyState({page: "sync"})\n
.push(gadget.pleaseRedirectMyHash.bind(gadget));\n
}\n
}\n
throw error;\n
})\n
.push(function (doc) {\n
var sub_options = {},\n
base_portal_type = doc.portal_type.toLowerCase().replace(/\\s/g, "_");\n
sub_options[MAIN_SCOPE] = {\n
doc: doc,\n
jio_key: options.jio_key,\n
search: options.search\n
};\n
if (base_portal_type.search(/_temp$/) >= 0) {\n
//Remove "_temp"\n
base_portal_type = base_portal_type.substr(\n
0,\n
base_portal_type.length - 5\n
);\n
}\n
return renderMainGadget(\n
gadget,\n
MAIN_PAGE_PREFIX + "jio_"\n
+ base_portal_type\n
+ "_" + options.page + ".html",\n
sub_options\n
);\n
});\n
}\n
\n
function displayErrorContent(gadget, error) {\n
// Do not break the application in case of errors.\n
// Display it to the user for now,\n
// and allow user to go back to the frontpage\n
var error_text = "";\n
if ((error.target !== undefined) && (error.target.status === 401)) {\n
// Redirect to the login view\n
return gadget.aq_pleasePublishMyState({page: "login"})\n
.push(gadget.pleaseRedirectMyHash.bind(gadget));\n
}\n
if (error instanceof RSVP.CancellationError) {\n
return;\n
}\n
\n
if (error instanceof XMLHttpRequest) {\n
error_text = error.toString() + " " +\n
error.status + " " +\n
error.statusText;\n
} else if (error instanceof Error) {\n
error_text = error.toString();\n
} else {\n
error_text = JSON.stringify(error);\n
}\n
\n
console.error(error);\n
console.error(error.stack);\n
// XXX Improve error rendering\n
gadget.props.content_element.innerHTML = "<br/><br/><br/><pre></pre>";\n
gadget.props.content_element.querySelector(\'pre\').textContent =\n
"Error: " + error_text;\n
// XXX Notify error\n
}\n
\n
function displayError(gadget, error) {\n
return new RSVP.Queue()\n
.push(function () {\n
return displayErrorContent(gadget, error);\n
})\n
.push(function () {\n
return gadget.dropGadget("pg")\n
.push(undefined, function () {\n
// Do not crash the app if the pg gadget in not defined\n
// ie, keep the original error on screen\n
return;\n
});\n
});\n
}\n
\n
\n
//////////////////////////////////////////\n
// History Support with Jio\n
//////////////////////////////////////////\n
function createJio(gadget) {\n
return gadget.getDeclaredGadget("jio_gadget")\n
.push(function (jio_gadget) {\n
/*\n
return jio_gadget.createJio({\n
type: "erp5",\n
url: (new URI(hateoas_url)).absoluteTo(location.href).toString(),\n
default_view_reference: "jio_view"\n
});\n
*/\n
return jio_gadget.createJio({\n
type: "replicate",\n
// XXX This drop the signature lists...\n
query: {\n
query: \'portal_type:"Web Page"\',\n
// Broken \'portal_type:"Web Page" AND NOT reference:"%.html"\',\n
/*{\n
type: \'complex\',\n
operator: \'AND\',\n
query_list: [{\n
type: \'simple\',\n
key: \'portal_type\',\n
value: \'Web Page\'\n
}, {\n
type: \'complex\',\n
operator: \'NOT\',\n
query_list: [{\n
type: \'simple\',\n
key: \'reference\',\n
value: \'%.html\'\n
}]\n
}]\n
}, */\n
limit: [0, 1234567890]\n
},\n
use_remote_post: true,\n
conflict_handling: 2,\n
check_local_modification: true,\n
check_local_creation: true,\n
check_local_deletion: true,\n
check_remote_modification: true,\n
check_remote_creation: true,\n
check_remote_deletion: true,\n
local_sub_storage: {\n
type: "query",\n
sub_storage: {\n
type: "uuid",\n
sub_storage: {\n
type: "indexeddb",\n
database: "erp5js_test"\n
}\n
}\n
},\n
remote_sub_storage: {\n
type: "erp5",\n
url: (new URI(hateoas_url)).absoluteTo(location.href).toString(),\n
default_view_reference: "jio_view"\n
}\n
});\n
\n
});\n
}\n
\n
//////////////////////////////////////////\n
// Page rendering\n
//////////////////////////////////////////\n
function redirectToDefaultPage(gadget) {\n
// Redirect to expected page by default\n
return gadget.aq_pleasePublishMyState({\n
page: "text_editor_list"\n
})\n
.push(gadget.pleaseRedirectMyHash.bind(gadget));\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.loading_counter = 0;\n
g.props.element = element;\n
g.props.header_element = element.querySelector(\'.gadget-header\')\n
.querySelector(\'div\');\n
g.props.content_element = element.querySelector(\'.gadget-content\');\n
g.props.panel_element = element.querySelector(\'#mypanel\');\n
\n
g.props.edit_template = Handlebars.compile(\n
document.querySelector(".edit-template").innerHTML\n
);\n
g.props.header_template = Handlebars.compile(\n
document.querySelector(".header-template").innerHTML\n
);\n
g.props.sync_loader_template = Handlebars.compile(\n
document.querySelector(".sync-loader-template").innerHTML\n
);\n
g.props.panel_template = Handlebars.compile(\n
document.querySelector(".panel-template").innerHTML\n
);\n
});\n
})\n
// Configure jIO storage\n
.ready(function (g) {\n
return createJio(g);\n
})\n
.ready(function (g) {\n
return g.getDeclaredGadget(\'translation_gadget\')\n
.push(function (translation_gadget) {\n
return RSVP.all([\n
translation_gadget.translate(\'Loading\'),\n
translation_gadget.translate(\'Menu\'),\n
translation_gadget.translateHtml(g.props.panel_template())\n
]);\n
})\n
.push(function (string_list) {\n
g.props.loading_title = string_list[0];\n
g.props.header_element.parentElement.querySelector(\'a\').textContent =\n
string_list[1];\n
g.props.panel_element.innerHTML = string_list[2];\n
$(g.props.panel_element).enhanceWithin();\n
});\n
})\n
\n
//////////////////////////////////////////\n
// Acquired method\n
//////////////////////////////////////////\n
.declareAcquiredMethod(\'pleaseRedirectMyHash\', \'pleaseRedirectMyHash\')\n
\n
//////////////////////////////////////////\n
// Allow Acquisition\n
//////////////////////////////////////////\n
.allowPublicAcquisition("translateHtml", function (argument_list) {\n
return this.getDeclaredGadget("translation_gadget")\n
.push(function (translation_gadget) {\n
return translation_gadget.translateHtml(argument_list[0]);\n
});\n
})\n
.allowPublicAcquisition("translate", function (argument_list) {\n
return this.getDeclaredGadget("translation_gadget")\n
.push(function (translation_gadget) {\n
return translation_gadget.translate(argument_list[0]);\n
});\n
})\n
.allowPublicAcquisition("redirect", function (param_list) {\n
var gadget = this;\n
return gadget.aq_pleasePublishMyState.apply(gadget, param_list)\n
.push(gadget.pleaseRedirectMyHash.bind(gadget));\n
})\n
.allowPublicAcquisition("getUrlFor", function (param_list) {\n
return this.aq_pleasePublishMyState.apply(this, param_list);\n
})\n
.allowPublicAcquisition("updateHeader", function (param_list) {\n
var gadget = this;\n
return this.getDeclaredGadget("translation_gadget")\n
.push(function (translation_gadget) {\n
var promise_list = [];\n
gadget.props.header_argument_list = param_list[0];\n
\n
promise_list.push(translation_gadget.translate(\n
gadget.props.header_argument_list.title\n
));\n
if (gadget.props.header_argument_list.hasOwnProperty(\'right_title\')) {\n
promise_list.push(translation_gadget.translate(\n
gadget.props.header_argument_list.right_title\n
));\n
}\n
return RSVP.all(promise_list);\n
})\n
.push(function (result_list) {\n
gadget.props.header_argument_list.title = result_list[0];\n
if (result_list.length === 2) {\n
gadget.props.header_argument_list.right_title = result_list[1];\n
}\n
});\n
})\n
.allowPublicAcquisition("jio_allDocs", function (param_list) {\n
return callJioGadget(this, "allDocs", param_list);\n
})\n
.allowPublicAcquisition("jio_post", function (param_list) {\n
return callJioGadget(this, "post", param_list);\n
})\n
.allowPublicAcquisition("jio_put", function (param_list) {\n
return callJioGadget(this, "put", param_list);\n
})\n
.allowPublicAcquisition("jio_get", function (param_list) {\n
return callJioGadget(this, "get", param_list);\n
})\n
.allowPublicAcquisition("jio_repair", function (param_list) {\n
return callJioGadget(this, "repair", param_list);\n
})\n
/////////////////////////////////////////////////////////////////\n
// declared methods\n
/////////////////////////////////////////////////////////////////\n
// Render the page\n
.declareMethod(\'render\', function (options) {\n
var gadget = this;\n
\n
gadget.props.options = options;\n
// Reinitialize the loading counter\n
gadget.props.loading_counter = 0;\n
return new RSVP.Queue()\n
.push(function () {\n
return increaseLoadingCounter(gadget);\n
})\n
.push(function () {\n
// By default, init the header options to be empty\n
// (ERP5 title by default + sidebar)\n
gadget.props.header_argument_list = [{\n
title: gadget.props.application_title || "OfficeJS Text Editor"\n
}];\n
\n
if (options.jio_key === undefined || options.jio_key === \'\') {\n
if (options.page === undefined || options.page === \'\') {\n
redirectToDefaultPage(gadget);\n
} else {\n
return renderPage(gadget, options);\n
}\n
} else {\n
return renderJioPage(gadget, options);\n
}\n
})\n
\n
.push(function (main_gadget) {\n
var input;\n
// Append loaded gadget in the page\n
if (main_gadget !== undefined) {\n
return main_gadget.getElement()\n
.push(function (fragment) {\n
var element = gadget.props.content_element,\n
content_container = document.createElement("div");\n
content_container.className = "ui-content " +\n
(gadget.props.sub_header_class || "");\n
// reset subheader indicator\n
delete gadget.props.sub_header_class;\n
\n
// go to the top of the page\n
window.scrollTo(0, 0);\n
\n
updateHeader(gadget);\n
\n
// Clear first to DOM, append after to reduce flickering/manip\n
while (element.firstChild) {\n
element.removeChild(element.firstChild);\n
}\n
content_container.appendChild(fragment);\n
element.appendChild(content_container);\n
\n
$(element).trigger("create");\n
\n
input = element.querySelector("input");\n
if (input !== null) {\n
input.focus();\n
input.select();\n
}\n
// XXX Drop notification\n
// return header_gadget.notifyLoaded();\n
});\n
}\n
})\n
.push(function () {\n
return decreaseLoadingCounter(gadget);\n
}, function (error) {\n
return decreaseLoadingCounter(gadget)\n
.push(function () {\n
throw error;\n
});\n
})\n
.push(undefined, function (error) {\n
return displayError(gadget, error);\n
});\n
})\n
\n
/////////////////////////////////\n
// Handle sub gadgets services\n
/////////////////////////////////\n
.allowPublicAcquisition(\'reportServiceError\', function (param_list,\n
gadget_scope) {\n
if (gadget_scope === undefined) {\n
// don\'t fail in case of dropped subgadget (like previous page)\n
return;\n
}\n
return displayError(this, param_list[0]);\n
})\n
\n
.declareService(function () {\n
////////////////////////////////////\n
// Form submit listening. Prevent browser to automatically\n
// handle the form submit in case of a bug\n
////////////////////////////////////\n
var gadget = this;\n
\n
function catchFormSubmit() {\n
return displayError(gadget, new Error("Unexpected form submit"));\n
}\n
\n
// Listen to form submit\n
return loopEventListener(\n
gadget.props.element,\n
\'submit\',\n
false,\n
catchFormSubmit\n
);\n
});\n
\n
}(window, document, RSVP, rJS, Handlebars, loopEventListener, jQuery,\n
XMLHttpRequest, location, console));
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>OfficeJS Text Editor Application JS</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>002</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>cedric.le.ninivin</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>1440093776.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>cedric.le.ninivin</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>945.18277.37508.63027</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>1440436769.66</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>cedric.le.ninivin</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>1440082527.5</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
web_page_module/gadget_ckeditor_*
web_page_module/gadget_officejs_*
web_page_module/gadget_ooffice_*
web_page_module/officejs_launcher_*
web_site_module/officejs_text_editor
web_site_module/officejs_text_editor/**
web_site_module/officejs_spreadsheet
......
web_page_module/gadget_ckeditor_*
web_page_module/gadget_officejs_*
web_page_module/gadget_ooffice_*
web_page_module/officejs_launcher_*
web_site_module/officejs_text_editor
web_site_module/officejs_text_editor/**
web_site_module/officejs_spreadsheet
......
web_page_module/gadget_ckeditor_*
web_page_module/gadget_officejs_*
web_page_module/gadget_ooffice_*
web_page_module/officejs_launcher_*
web_site_module/officejs_spreadsheet
web_site_module/officejs_spreadsheet/**
web_site_module/officejs_text_editor
......
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