diff --git a/plugins/kolab_files/kolab_files.js b/plugins/kolab_files/kolab_files.js index 62404bed..4ecdb2b4 100644 --- a/plugins/kolab_files/kolab_files.js +++ b/plugins/kolab_files/kolab_files.js @@ -151,10 +151,11 @@ function kolab_files_init() 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&_email=%email', + photo_url: '?_task=addressbook&_action=photo&_error=1&_email=%email', photo_default_url: rcmail.env.photo_placeholder, // events - ready: function(data) { manticore_init(); } + ready: function(data) { manticore_init(); }, + sessionClosed: function(data) { return manticore_close(); } }; if (rcmail.env.file_data.writable) @@ -1165,6 +1166,25 @@ function manticore_init() rcmail.enable_command('document-close', 'document-editors', true); }; +// executed on editing session termination +function manticore_close() +{ + $('
').addClass('popupdialog').attr('role', 'alertdialog') + .html($('').text(rcmail.gettext('kolab_files.sessionterminated'))) + .dialog({ + resizable: false, + closeOnEscape: true, + dialogClass: 'popupmessage error', + title: rcmail.gettext('kolab_files.sessionterminatedtitle'), + close: function() { window.close(); }, + position: ['center', 'center'], + width: 420, + minHeight: 90 + }).show(); + + return false; // skip Chwala's error message +}; + rcube_webmail.prototype.document_save = function() { manticore.save(function(data) { diff --git a/plugins/kolab_files/lib/kolab_files_engine.php b/plugins/kolab_files/lib/kolab_files_engine.php index 1982a05e..2118a6d1 100644 --- a/plugins/kolab_files/lib/kolab_files_engine.php +++ b/plugins/kolab_files/lib/kolab_files_engine.php @@ -960,7 +960,7 @@ class kolab_files_engine protected function action_edit() { $this->plugin->add_label('sessionterminating', 'unsavedchanges', 'documentinviting', - 'documentcancelling', 'removeparticipant'); + 'documentcancelling', 'removeparticipant', 'sessionterminated', 'sessionterminatedtitle'); $this->file_opener(intval($_GET['_viewer'])); } diff --git a/plugins/kolab_files/localization/en_US.inc b/plugins/kolab_files/localization/en_US.inc index 3e242c07..5c187d48 100644 --- a/plugins/kolab_files/localization/en_US.inc +++ b/plugins/kolab_files/localization/en_US.inc @@ -103,6 +103,8 @@ $labels['editfilero'] = 'This file is read-only. Do you want to create and edit $labels['editfilerotitle'] = 'Read-only file'; $labels['select'] = 'Select'; $labels['terminatesession'] = 'Terminate the session'; +$labels['sessionterminatedtitle'] = 'Session terminated'; +$labels['sessionterminated'] = 'The session has been terminated. The window will be closed.'; $labels['terminate'] = 'Terminate'; $labels['sessionterminating'] = 'Terminating the session...'; $labels['unsavedchanges'] = 'There are unsaved changes in the document that will be lost. Do you want to terminate the session anyway?';