diff --git a/plugins/kolab_files/kolab_files.js b/plugins/kolab_files/kolab_files.js
index 5fb6ca6d..b513cd9c 100644
--- a/plugins/kolab_files/kolab_files.js
+++ b/plugins/kolab_files/kolab_files.js
@@ -142,7 +142,7 @@ function kolab_files_init()
if (window.file_api)
return;
- var manticore_config = {};
+ var editor_config = {};
// Initialize application object (don't change var name!)
file_api = $.extend(new files_api(), new kolab_files_ui());
@@ -161,22 +161,29 @@ function kolab_files_init()
file_api.translations = rcmail.labels;
if (rcmail.task == 'files') {
- if (rcmail.env.action == 'edit' && rcmail.env.file_data.viewer && rcmail.env.file_data.viewer.manticore) {
- manticore_config = {
+ if (rcmail.env.action == 'edit' && rcmail.env.editor_type) {
+ // Extract the domain here, it can't be done by Chwala
+ // when using WOPI, which does not set iframe src attribute
+ var domain, href = rcmail.env.file_data.viewer.href;
+ if (href && /^(https?:\/\/[^/]+)/i.test(href))
+ domain = RegExp.$1;
+
+ editor_config = {
// UI elements
iframe: $('#fileframe').get(0),
+ domain: domain,
export_menu: rcmail.gui_objects.exportmenu ? $('ul', rcmail.gui_objects.exportmenu).get(0) : null,
title_input: $('#document-title').get(0),
members_list: $('#members').get(0),
photo_url: '?_task=addressbook&_action=photo&_error=1&_email=%email',
photo_default_url: rcmail.env.photo_placeholder,
// events
- ready: function(data) { manticore_init(); },
- sessionClosed: function(data) { return manticore_close(); }
+ ready: function(data) { document_editor_init(); },
+ sessionClosed: function(data) { return document_editor_close(); }
};
if (rcmail.env.file_data.writable)
- manticore_config.documentChanged = function(data) { rcmail.enable_command('document-save', true); };
+ editor_config.documentChanged = function(data) { rcmail.enable_command('document-save', true); };
}
else if (rcmail.env.action == 'open') {
// initialize folders list (for dialogs)
@@ -191,17 +198,17 @@ function kolab_files_init()
}
}
- if (rcmail.env.files_caps && rcmail.env.files_caps.MANTICORE && !rcmail.env.framed)
- $.extend(manticore_config, {
+ if (rcmail.env.files_caps && !rcmail.env.framed && rcmail.env.files_caps.DOCEDIT)
+ $.extend(editor_config, {
// invitation notifications
api: file_api,
owner: rcmail.env.files_user,
interval: rcmail.env.files_interval || 60,
invitationMore: true,
- invitationChange: manticore_invitation_handler
+ invitationChange: document_editor_invitation_handler
});
- $.extend(manticore_config, {
+ $.extend(editor_config, {
// notifications/alerts
gettext: function(label) { return rcmail.get_label('kolab_files.' + label); },
set_busy: function(state, message) { return rcmail.set_busy(state, message ? 'kolab_files.' + message : ''); },
@@ -213,7 +220,10 @@ function kolab_files_init()
}
});
- manticore = new manticore_api(manticore_config);
+ if (window.document_editor_api)
+ document_editor = new document_editor_api(editor_config);
+ else
+ document_editor = new manticore_api(editor_config);
};
// returns API authorization token
@@ -577,7 +587,7 @@ function kolab_files_file_edit_dialog(file, sessions, readonly)
kolab_dialog_close(dlg);
if (id && input.parent().is('.session.request')) {
- manticore.invitation_request({session_id: id});
+ document_editor.invitation_request({session_id: id});
return;
}
@@ -799,7 +809,7 @@ function kolab_files_session_dialog(session)
buttons[rcmail.gettext('kolab_files.request')] = function() {
kolab_dialog_close(this);
// @TODO: Add comment field to the dialog
- manticore.invitation_request({session_id: session.id});
+ document_editor.invitation_request({session_id: session.id});
};
}
@@ -1175,7 +1185,7 @@ function kolab_files_frame_load(frame)
rcmail.files_edit();
rcmail.enable_command('files-edit', (rcmail.file_editor && rcmail.file_editor.editable)
- || (info && info.viewer && (info.viewer.manticore || info.viewer.wopi))
+ || rcmail.env.editor_type
|| (file_api.file_type_supported(rcmail.env.file_data.type, rcmail.env.files_caps) & 4));
rcmail.enable_command('files-print', (rcmail.file_editor && rcmail.file_editor.printable)
@@ -1274,11 +1284,11 @@ function kolab_files_progress_str(param)
/**********************************************************/
-/********* Manticore editor functionality **********/
+/********* document editor functionality **********/
/**********************************************************/
// Initialize document toolbar functionality
-function manticore_init()
+function document_editor_init()
{
var info = rcmail.env.file_data;
@@ -1289,7 +1299,7 @@ function manticore_init()
};
// executed on editing session termination
-function manticore_close()
+function document_editor_close()
{
$('
').addClass('popupdialog').attr('role', 'alertdialog')
.html($('
').text(rcmail.gettext('kolab_files.sessionterminated')))
@@ -1308,14 +1318,14 @@ function manticore_close()
rcube_webmail.prototype.document_save = function()
{
- manticore.save(function(data) {
+ document_editor.save(function(data) {
rcmail.enable_command('document-save', false);
});
};
rcube_webmail.prototype.document_export = function(type)
{
- manticore.export(type || 'odt');
+ document_editor.export(type || 'odt');
};
rcube_webmail.prototype.document_editors = function()
@@ -1461,7 +1471,7 @@ function kolab_files_attendee_record(user, status, username)
select = $('