From 8a10209bd428c61babc4bf6c14b4a037ffb66349 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Tue, 16 Oct 2018 11:25:23 +0200 Subject: [PATCH] Support Download/Upload Link tabs in seafile sharing dialog --- plugins/kolab_files/kolab_files.js | 78 +++++++++++++------ .../kolab_files/lib/kolab_files_engine.php | 65 ++++++++++++---- plugins/kolab_files/localization/en_US.inc | 4 + 3 files changed, 112 insertions(+), 35 deletions(-) diff --git a/plugins/kolab_files/kolab_files.js b/plugins/kolab_files/kolab_files.js index 3e10e599..2ba32d16 100644 --- a/plugins/kolab_files/kolab_files.js +++ b/plugins/kolab_files/kolab_files.js @@ -1327,7 +1327,10 @@ function kolab_files_progress_str(param) function kolab_files_share_form_init() { $('fieldset > table', rcmail.gui_objects.shareform).each(function() { - var mode = $(this).data('mode'); + var cnt = 0, + mode = $(this).data('mode'), + single = $(this).data('single'); + $('tbody > tr', this).each(function(i, row) { if (!i) { $('button.submit', row).on('click', function() { file_api.sharing_submit(rcmail.env.folder, row, mode); }); @@ -1368,10 +1371,15 @@ function kolab_files_share_form_init() }); } else { + cnt++; $('button.delete', row).on('click', function() { file_api.sharing_delete(rcmail.env.folder, row, mode); }); $('select,input[type=text]', row).on('change', function() { file_api.sharing_update(rcmail.env.folder, row, mode); }); } }); + + if (single && cnt) { + $('tbody > tr:first', this).find('button.submit, input, select').prop('disabled', true); + } }); }; @@ -2106,8 +2114,8 @@ function kolab_files_ui() var root = folder.split(this.env.directory_separator)[0], caps = this.env.caps; - if (root != folder && this.env.caps.MOUNTPOINTS && this.env.caps.MOUNTPOINTS[root]) - caps = this.env.caps.MOUNTPOINTS[root]; + if (this.env.caps.MOUNTPOINTS && this.env.caps.MOUNTPOINTS[root]) + caps = root != folder ? this.env.caps.MOUNTPOINTS[root] : {}; return !!caps.ACL; }; @@ -2749,6 +2757,9 @@ function kolab_files_ui() { var post = this.sharing_data(row, {action: 'submit', folder: folder, mode: mode}); + if (post === false) + return; + this.sharing_submit_post = post; this.sharing_submit_row = row; this.req = this.set_busy(true, 'kolab_files.updatingfolder' + mode); @@ -2764,32 +2775,38 @@ function kolab_files_ui() $(this.sharing_submit_row).find('input[type=text]').val(''); var hidden = [], - post = $.extend({}, this.sharing_submit_post, response.data || {}), + post = $.extend({}, this.sharing_submit_post, response.result || {}), form_info = rcmail.env.form_info[post.mode], + table = $(this.sharing_submit_row).closest('table'), row = $(''), - btn = $('