diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_js.js b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_js.js index 53e9ce253fb2f513816b724d8eac0f6ea79fc878..84be8fd9261a71126e09059af072f9197f28caf8 100644 --- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_js.js +++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_js.js @@ -13,6 +13,15 @@ $.mobile.hashListeningEnabled = false; $.mobile.pushStateEnabled = false; + /* + if (navigator.hasOwnProperty('serviceWorker')) { + // Check if a ServiceWorker already controls the site on load + if (!navigator.serviceWorker.controller) { + // Register the ServiceWorker + navigator.serviceWorker.register('gadget_erp5_serviceworker.js'); + } + } + */ var MAIN_SCOPE = "m"; function renderMainGadget(gadget, url, options) { diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_js.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_js.xml index d37ac35657d1d7bfed106c584bccf9a166e4c24f..51090454fbe30e2e686416deef6219a9df33bf30 100644 --- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_js.xml +++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_js.xml @@ -230,7 +230,7 @@ </item> <item> <key> <string>serial</string> </key> - <value> <string>949.35490.40299.23381</string> </value> + <value> <string>950.1266.16388.62907</string> </value> </item> <item> <key> <string>state</string> </key> @@ -248,7 +248,7 @@ </tuple> <state> <tuple> - <float>1456908114.56</float> + <float>1458731136.97</float> <string>UTC</string> </tuple> </state> diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_serviceworker.js b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_serviceworker.js new file mode 100644 index 0000000000000000000000000000000000000000..30da01ad221fbb6020df167fda92ac6ccb0c1b3b --- /dev/null +++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_serviceworker.js @@ -0,0 +1,192 @@ +/*jslint indent: 2*/ +/*global self, caches, fetch*/ +(function (self, caches, fetch) { + "use strict"; + + var CACHE_NAME = 'Mon, 23 Mar 2016 08:35:00 GMT', + // Files required to make this app work offline + REQUIRED_FILES = [ + './', + 'https://netdna.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css', + 'https://netdna.bootstrapcdn.com/font-awesome/4.2.0/fonts/fontawesome-webfont.eot?v=4.2.0', + 'https://netdna.bootstrapcdn.com/font-awesome/4.2.0/fonts/fontawesome-webfont.eot?#iefix&v=4.2.0', + 'https://netdna.bootstrapcdn.com/font-awesome/4.2.0/fonts/fontawesome-webfont.woff?v=4.2.0', + 'https://netdna.bootstrapcdn.com/font-awesome/4.2.0/fonts/fontawesome-webfont.ttf?v=4.2.0', + 'https://netdna.bootstrapcdn.com/font-awesome/4.2.0/fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular', + 'URI.js', + 'erp5_launcher.html', + 'erp5_launcher.js', + 'gadget_erp5.css', + 'gadget_erp5_editor_panel.html', + 'gadget_erp5_editor_panel.js', + 'gadget_erp5_field_checkbox.html', + 'gadget_erp5_field_checkbox.js', + 'gadget_erp5_field_datetime.html', + 'gadget_erp5_field_datetime.js', + 'gadget_erp5_field_email.html', + 'gadget_erp5_field_email.js', + 'gadget_erp5_field_file.html', + 'gadget_erp5_field_file.js', + 'gadget_erp5_field_float.html', + 'gadget_erp5_field_float.js', + 'gadget_erp5_field_gadget.html', + 'gadget_erp5_field_gadget.js', + 'gadget_erp5_field_image.html', + 'gadget_erp5_field_image.js', + 'gadget_erp5_field_integer.html', + 'gadget_erp5_field_integer.js', + 'gadget_erp5_field_list.html', + 'gadget_erp5_field_list.js', + 'gadget_erp5_field_listbox.html', + 'gadget_erp5_field_listbox.js', + 'gadget_erp5_field_multicheckbox.html', + 'gadget_erp5_field_multicheckbox.js', + 'gadget_erp5_field_multilist.html', + 'gadget_erp5_field_multilist.js', + 'gadget_erp5_field_multirelationstring.html', + 'gadget_erp5_field_multirelationstring.js', + 'gadget_erp5_field_radio.html', + 'gadget_erp5_field_radio.js', + 'gadget_erp5_field_readonly.html', + 'gadget_erp5_field_readonly.js', + 'gadget_erp5_field_relationstring.html', + 'gadget_erp5_field_relationstring.js', + 'gadget_erp5_field_string.html', + 'gadget_erp5_field_string.js', + 'gadget_erp5_field_password.html', + 'gadget_erp5_field_password.js', + 'gadget_erp5_field_textarea.html', + 'gadget_erp5_field_textarea.js', + 'gadget_erp5_form.html', + 'gadget_erp5_form.js', + 'gadget_erp5_header.html', + 'gadget_erp5_header.js', + 'gadget_erp5_jio.html', + 'gadget_erp5_jio.js', + 'gadget_erp5_latest.css', + 'gadget_erp5_page_action.html', + 'gadget_erp5_page_action.js', + 'gadget_erp5_page_breadcrumb.html', + 'gadget_erp5_page_breadcrumb.js', + 'gadget_erp5_page_form.html', + 'gadget_erp5_page_form.js', + 'gadget_erp5_page_front.html', + 'gadget_erp5_page_front.js', + 'gadget_erp5_page_history.html', + 'gadget_erp5_page_history.js', + 'gadget_erp5_page_jump.html', + 'gadget_erp5_page_jump.js', + 'gadget_erp5_page_logout.html', + 'gadget_erp5_page_logout.js', + 'gadget_erp5_page_preference.html', + 'gadget_erp5_page_preference.js', + 'gadget_erp5_page_search.html', + 'gadget_erp5_page_search.js', + 'gadget_erp5_page_tab.html', + 'gadget_erp5_page_tab.js', + 'gadget_erp5_page_worklist.html', + 'gadget_erp5_page_worklist.js', + 'gadget_erp5_panel.html', + 'gadget_erp5_panel.js', + 'gadget_erp5_panel_configuration.html', + 'gadget_erp5_pt_form_dialog.html', + 'gadget_erp5_pt_form_dialog.js', + 'gadget_erp5_pt_form_list.html', + 'gadget_erp5_pt_form_list.js', + 'gadget_erp5_pt_form_view.html', + 'gadget_erp5_pt_form_view.js', + 'gadget_erp5_pt_form_view_editable.html', + 'gadget_erp5_pt_form_view_editable.js', + 'gadget_erp5_pt_report_view.html', + 'gadget_erp5_pt_report_view.js', + 'gadget_erp5_router.html', + 'gadget_erp5_router.js', + 'gadget_erp5_search_editor.html', + 'gadget_erp5_search_editor.js', + 'gadget_erp5_searchfield.html', + 'gadget_erp5_searchfield.js', + 'gadget_erp5_sort_editor.html', + 'gadget_erp5_sort_editor.js', + 'gadget_global.js', + 'gadget_jio.html', + 'gadget_jio.js', + 'gadget_translation.html', + 'gadget_translation.js', + 'gadget_translation_data.js', + 'handlebars.js', + 'i18next.js', + 'jiodev.js', + 'jquery.js', + 'jquerymobile.css', + 'jquerymobile.js', + 'renderjs.js', + 'rsvp.js' + ]; + + self.addEventListener('install', function (event) { + // Perform install step: loading each required file into cache + event.waitUntil( + caches.open(CACHE_NAME) + .then(function (cache) { + // Add all offline dependencies to the cache + return cache.addAll(REQUIRED_FILES); + }) + .then(function () { + // At this point everything has been cached + return self.skipWaiting(); + }) + ); + }); + + self.addEventListener('fetch', function (event) { + event.respondWith( + caches.match(event.request) + .then(function (response) { + // Cache hit - return the response from the cached version + if (response) { + return response; + } + + // Not in cache - return the result from the live server + // `fetch` is essentially a "fallback" + return fetch(event.request); + }) + ); + }); + + self.addEventListener("activate", function (event) { + /* Just like with the install event, event.waitUntil blocks activate on a promise. + Activation will fail unless the promise is fulfilled. + */ + event.waitUntil( + caches + /* This method returns a promise which will resolve to an array of available + cache keys. + */ + .keys() + .then(function (keys) { + // We return a promise that settles when all outdated caches are deleted. + return Promise.all( + keys + .filter(function (key) { + // Filter by keys that don't start with the latest version prefix. + // return !key.startsWith(version); + return key !== CACHE_NAME; + }) + .map(function (key) { + /* Return a promise that's fulfilled + when each outdated cache is deleted. + */ + return caches.delete(key); + }) + ); + }) + .then(function () { + self.clients.claim(); + }) + ); + }); + + + +}(self, caches, fetch)); diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_serviceworker.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_serviceworker.xml new file mode 100644 index 0000000000000000000000000000000000000000..994f91daeb7af00517ca10f2ba7ecb8da1f05af3 --- /dev/null +++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_serviceworker.xml @@ -0,0 +1,320 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Script" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Access_contents_information_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Change_local_roles_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_View_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>content_md5</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>default_reference</string> </key> + <value> <string>gadget_erp5_serviceworker.js</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>rjs_gadget_erp5_serviceworker</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>title</string> </key> + <value> <string>ERP5 ServiceWorker</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>1458658259.73</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>950.1305.47246.56337</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>1458731244.21</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>1458654672.71</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData>