diff options
-rw-r--r-- | apps/files/js/fileactions.js | 24 | ||||
-rw-r--r-- | apps/files/js/filelist.js | 9 |
2 files changed, 33 insertions, 0 deletions
diff --git a/apps/files/js/fileactions.js b/apps/files/js/fileactions.js index f342f21a4fb..4525da876e3 100644 --- a/apps/files/js/fileactions.js +++ b/apps/files/js/fileactions.js @@ -711,6 +711,30 @@ }); this.registerAction({ + name: 'EditLocally', + displayName: function(context) { + var locked = context.$file.data('locked'); + if (!locked) { + return t('files', 'Edit locally'); + } + }, + mime: 'all', + order: -23, + iconClass: function(filename, context) { + var locked = context.$file.data('locked'); + if (!locked) { + return 'icon-rename'; + } + }, + permissions: OC.PERMISSION_UPDATE, + actionHandler: function (filename, context) { + var dir = context.dir || context.fileList.getCurrentDirectory(); + var path = dir === '/' ? dir + filename : dir + '/' + filename; + context.fileList.openLocalClient(path); + }, + }); + + this.registerAction({ name: 'Open', mime: 'dir', permissions: OC.PERMISSION_READ, diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index ee596dd417e..fff704b9283 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -2807,6 +2807,15 @@ }); }, + openLocalClient: function(path) { + var scheme = 'nc://'; + var command = 'open'; + var uid = OC.getCurrentUser().uid; + var url = scheme + command + '/' + uid + '@' + window.location.host + (window.location.port ? `:${window.location.port}` : '') + OC.encodePath(path); + + window.location.href = url; + }, + /** * Updates the given row with the given file info * |