From c323706a9bb37b2eb654ba26d12b29a91dd7295f Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Tue, 17 Nov 2015 14:35:13 +0100 Subject: [PATCH] Open and join collaborative sessions (T724, T725), Editing read-only documents (T757) --- plugins/kolab_files/kolab_files.js | 262 +++++++++++++----- .../kolab_files/lib/kolab_files_engine.php | 33 ++- plugins/kolab_files/localization/en_US.inc | 14 + plugins/kolab_files/skins/larry/style.css | 6 + .../skins/larry/templates/filepreview.html | 10 + .../skins/larry/templates/files.html | 4 + 6 files changed, 255 insertions(+), 74 deletions(-) diff --git a/plugins/kolab_files/kolab_files.js b/plugins/kolab_files/kolab_files.js index e2495659..6e7ca0a9 100644 --- a/plugins/kolab_files/kolab_files.js +++ b/plugins/kolab_files/kolab_files.js @@ -6,7 +6,7 @@ * @licstart The following is the entire license notice for the * JavaScript code in this file. * - * Copyright (C) 2011, Kolab Systems AG + * Copyright (C) 2011-2015, Kolab Systems AG * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as @@ -125,6 +125,14 @@ window.rcmail && window.files_api && rcmail.addEventListener('init', function() display_message: function(label, type) { return rcmail.display_message('kolab_files.' + label, type); }, gettext: function(label) { return rcmail.get_label('kolab_files.' + label); } }); + + if (rcmail.env.action == 'open') { + // initialize folders list (for dialogs) + file_api.folder_list(); + + // get ongoing sessions + file_api.request('folder_info', {folder: file_api.file_path(rcmail.env.file), sessions: 1}, 'folder_info_response'); + } } else { file_api.folder_list(); @@ -395,7 +403,7 @@ function kolab_files_folder_create_dialog() $('form', dialog).submit(kolab_dialog_submit_handler); // build parent selector - kolab_files_folder_select_element(select, {empty: true}); + file_api.folder_select_element(select, {empty: true, writable: true}); }; // folder edit dialog @@ -440,7 +448,7 @@ function kolab_files_folder_edit_dialog() $('form', dialog).submit(kolab_dialog_submit_handler); // build parent selector - kolab_files_folder_select_element(select, {selected: path, empty: true}); + file_api.folder_select_element(select, {selected: path, empty: true}); }; // folder mounting dialog @@ -504,6 +512,92 @@ function kolab_files_folder_mount_dialog() }); }; +// file edit dialog +function kolab_files_file_edit_dialog(file, sessions, readonly) +{ + var content = [], items = [], height = 300; + dialog = $('#files-file-edit-dialog'), + buttons = {}, name = file_api.file_name(file), + title = rcmail.gettext('kolab_files.editfiledialog'), + mainaction = rcmail.gettext('kolab_files.select'), + item_fn = function(id, txt, classes) { + return $('