Commit 296c157f authored by Boris Kocherov's avatar Boris Kocherov

erp5_officejs: remove OnlyOffice installation from router

parent a7617e07
/*global window, rJS, jIO, URI, location, console, document, RSVP, loopEventListener, navigator, XMLHttpRequest, ProgressEvent*/ /*global window, rJS, RSVP, loopEventListener, document, navigator */
/*jslint nomen: true, indent: 2*/ /*jslint nomen: true, indent: 2, maxerr: 3*/
(function (window, rJS) { (function (window, rJS) {
"use strict"; "use strict";
var gadget_klass = rJS(window), var gadget_klass = rJS(window),
NAME,
MAIN_PAGE_PREFIX = "gadget_officejs_", MAIN_PAGE_PREFIX = "gadget_officejs_",
DEFAULT_PAGE = "document_list", DEFAULT_PAGE = "document_list",
REDIRECT_TIMEOUT = 5000; REDIRECT_TIMEOUT = 5000;
function get_jio_cache_storage(name) {
return {
type: "uuid",
sub_storage: {
type: "indexeddb",
database: 'officejs_' + name + '_cache_erp5'
}
};
}
function get_jio_replicate_storage(name, modification_date) {
var erp5_query,
sdk_name;
erp5_query = [
"ooffice/apps/common/%",
"ooffice/vendor/%",
"ooffice/sdkjs/common/%"
];
switch (name) {
case "spreadsheet":
sdk_name = "cell";
erp5_query.push("ooffice/apps/" + name + "editor/main/%");
erp5_query.push("ooffice/sdkjs/word/%");
break;
case "text":
sdk_name = "word";
erp5_query.push("ooffice/apps/documenteditor/main/%");
erp5_query.push("ooffice/sdkjs/cell/model/%");
erp5_query.push("ooffice/sdkjs/cell/utils/%");
break;
case "presentation":
sdk_name = "slide";
erp5_query.push("ooffice/apps/" + name + "editor/main/%");
erp5_query.push("ooffice/sdkjs/word/%");
erp5_query.push("ooffice/sdkjs/cell/%");
break;
}
erp5_query.push("ooffice/sdkjs/" + sdk_name + "/%");
erp5_query = erp5_query.map(function (currentValue) {
return 'url_string: "' + currentValue + '"';
}).join(' OR ');
erp5_query = erp5_query + ' OR ' + [
"ooffice/gadget_ooffice.js",
"ooffice/gadget_ooffice.html",
"ooffice/apps/require.js",
"ooffice/apps/css.js",
"ooffice/apps/underscore.js",
"ooffice/apps/backbone.js",
"ooffice/apps/bootstrap.js",
"ooffice/apps/text.js",
"ooffice/apps/xregexp-all-min.js",
"ooffice/apps/jquery.mousewheel.js"
].map(function (currentValue) {
return 'url_string: ="' + currentValue + '"';
}).join(' OR ');
erp5_query = erp5_query + ' OR ' + [
"gadget_officejs_" + name + "_router.html",
"gadget_officejs_router.js",
"gadget_officejs_page_document_list.html",
"gadget_officejs_page_document_list.js",
"gadget_officejs_jio_" + name + "_view.html",
"gadget_officejs_jio_onlyoffice_view.js",
"gadget_officejs_page_add_document.html",
"gadget_officejs_page_add_document.js",
"gadget_erp5_editor_panel.html",
"gadget_erp5_editor_panel.js",
"URI.js",
"dygraph.js",
"gadget_erp5.css",
"gadget_global.js",
"gadget_jio.html",
"gadget_jio.js",
"gadget_translate.html",
"gadget_translate.js",
"i18next.js",
"jiodev.js",
"zipfilestorage-with-jszip.js",
"jquery.js",
"jquerymobile.css",
"jquerymobile.js",
"renderjs.js",
"rsvp.js",
"gadget_officejs_header.html",
"gadget_officejs_jio.html",
"gadget_officejs_page_add_document.html",
"gadget_officejs_page_jio_configurator.html",
"gadget_officejs_page_jio_dav_configurator.html",
"gadget_officejs_page_login.html",
"gadget_officejs_page_logout.html",
"gadget_officejs_page_share_webrtc_jio.html",
"gadget_officejs_page_sync.html",
"gadget_translation.html",
"gadget_officejs_webrtc_jio.html",
"gadget_officejs_widget_listbox.html",
"gadget_officejs_header.js",
"gadget_officejs_jio.js",
"gadget_officejs_page_add_document.js",
"gadget_officejs_page_jio_configurator.js",
"gadget_officejs_page_jio_dav_configurator.js",
"gadget_officejs_page_login.js",
"gadget_officejs_page_logout.js",
"gadget_officejs_page_share_webrtc_jio.js",
"gadget_officejs_page_sync.js",
"gadget_officejs_application_panel.html",
"gadget_officejs_application_panel.js",
"gadget_translation.js",
"gadget_translation_data.js",
"gadget_officejs_webrtc_jio.js",
"gadget_officejs_widget_listbox.js",
"erp5_launcher.js",
"erp5_launcher.html"
].map(function (currentValue) {
return '(reference: ="' + currentValue + '")';
}).join(' OR ');
erp5_query = "(" + erp5_query + ")";
if (modification_date) {
modification_date = ' AND modification_date:>="'
+ modification_date + '" ';
} else {
modification_date = "";
}
return jIO.createJIO({
type: "replicate",
query: {
query: 'reference: "%" AND (portal_type: ("Web Style", "Web Page", "Web Script")) AND ' +
erp5_query + modification_date,
select_list: ["url_string"],
limit: [0, 1234567890]
},
use_remote_post: true,
conflict_handling: 2,
check_local_modification: false,
check_local_creation: false,
check_local_deletion: false,
check_remote_modification: true,
check_remote_creation: true,
check_remote_deletion: true,
use_bulk_get: true,
use_bulk: true,
attachment_list: [],
signature_storage: get_jio_cache_storage(name + "_hash"),
local_sub_storage: {
type: "mapping",
map_all_property: true,
map_id: ["equalSubProperty", "relative_url"],
mapping_dict: {
"url_string": ["equalSubId"]
},
sub_storage: {
type: "query",
sub_storage: get_jio_cache_storage(name)
}
},
remote_sub_storage: {
type: "erp5",
url: (new URI("hateoasnoauth"))
.absoluteTo(location.href)
.toString(),
default_view_reference: "jio_view"
}
});
}
function listenHashChange(gadget) { function listenHashChange(gadget) {
function extractHashAndDispatch(evt) { function extractHashAndDispatch(evt) {
var hash = (evt.newURL || window.location.toString()).split('#')[1], var hash = (evt.newURL || window.location.toString()).split('#')[1],
...@@ -231,7 +63,7 @@ ...@@ -231,7 +63,7 @@
} }
var result = loopEventListener(window, 'hashchange', false, var result = loopEventListener(window, 'hashchange', false,
extractHashAndDispatch), extractHashAndDispatch),
event = document.createEvent("Event"); event = document.createEvent("Event");
event.initEvent('hashchange', true, true); event.initEvent('hashchange', true, true);
event.newURL = window.location.toString(); event.newURL = window.location.toString();
...@@ -251,8 +83,6 @@ ...@@ -251,8 +83,6 @@
}); });
}) })
.declareAcquiredMethod('getSetting', 'getSetting')
.declareAcquiredMethod('setSetting', 'setSetting')
.declareMethod("getCommandUrlFor", function (options) { .declareMethod("getCommandUrlFor", function (options) {
var prefix = '', var prefix = '',
result, result,
...@@ -335,9 +165,6 @@ ...@@ -335,9 +165,6 @@
function push(a, b) { function push(a, b) {
queue.push(function () { queue.push(function () {
if (a === "portal_type") {
NAME = b.toLowerCase();
}
return gadget.setSetting(a, b); return gadget.setSetting(a, b);
}); });
} }
...@@ -355,63 +182,6 @@ ...@@ -355,63 +182,6 @@
.push(function () { .push(function () {
return gadget.props.start_deferred.promise; return gadget.props.start_deferred.promise;
}) })
.push(function () {
if ((navigator.serviceWorker !== undefined) && (NAME !== "web page")) {
return gadget.getSetting('jio_' + NAME + '_modification_date')
.push(function (modification_date) {
return gadget.getSetting('jio_' + NAME + '_cache_description')
.push(function (query) {
var jio_store = get_jio_replicate_storage(NAME);
if (jio_store.__storage._query_options.query === query && modification_date) {
return get_jio_replicate_storage(NAME, modification_date).repair();
}
return gadget.setSetting(
'jio_' + NAME + '_cache_description',
jio_store.__storage._query_options.query
)
.push(function () {
return jio_store.repair();
});
})
.push(undefined, function (error) {
// fix offline mode bypass network errors
if (error instanceof ProgressEvent &&
error.srcElement instanceof XMLHttpRequest &&
error.type === "error") {
return {};
}
throw error;
})
.push(function () {
jIO.createJIO(get_jio_cache_storage(NAME)).allDocs({
query: '',
sort_on: [
['modification_date', 'descending']
],
limit: [0, 1],
select_list: ['modification_date']
})
.push(function (data) {
if (data.data.total_rows === 1) {
return gadget.setSetting('jio_' + NAME + '_modification_date',
data.data.rows[0].value.modification_date);
}
});
navigator.serviceWorker.register('gadget_officejs_' + NAME + '_serviceworker.js')
.then(function (reg) {
// registration worked
console.log('Registration succeeded. Scope is ' + reg.scope);
})
.then(undefined, function (error) {
// registration failed
console.log('Registration failed with ' + error);
});
return {};
});
});
}
return {};
})
.push(function () { .push(function () {
return listenHashChange(gadget); return listenHashChange(gadget);
}); });
......
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