diff options
author | Robin Appelman <icewind@owncloud.com> | 2016-07-05 15:05:01 +0200 |
---|---|---|
committer | Robin Appelman <icewind@owncloud.com> | 2016-07-05 22:22:55 +0200 |
commit | d623763aac3c1c4c0480f0d3ca7182dd2eb68357 (patch) | |
tree | e6c54d251b39a05d42ebc79595d7f43180cd63ff /apps/files | |
parent | 3ffe424985e345d1979c5c8ccbe1b11dc212c67d (diff) | |
download | nextcloud-server-d623763aac3c1c4c0480f0d3ca7182dd2eb68357.tar.gz nextcloud-server-d623763aac3c1c4c0480f0d3ca7182dd2eb68357.zip |
Add "goto" links for files in non-default file lists
Diffstat (limited to 'apps/files')
-rw-r--r-- | apps/files/js/filelist.js | 2 | ||||
-rw-r--r-- | apps/files/js/gotoplugin.js | 58 | ||||
-rw-r--r-- | apps/files/lib/Controller/ViewController.php | 1 |
3 files changed, 60 insertions, 1 deletions
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 593f182cf73..24a6f4ec6e2 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -1387,7 +1387,7 @@ return; } this._setCurrentDir(targetDir, changeUrl, fileId); - this.reload().then(function(success){ + return this.reload().then(function(success){ if (!success) { self.changeDirectory(currentDir, true); } diff --git a/apps/files/js/gotoplugin.js b/apps/files/js/gotoplugin.js new file mode 100644 index 00000000000..69ec64b0266 --- /dev/null +++ b/apps/files/js/gotoplugin.js @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2016 Robin Appelman <robin@icewind.nl> + * + * This file is licensed under the Affero General Public License version 3 + * or later. + * + * See the COPYING-README file. + * + */ + + +(function (OCA) { + + OCA.Files = OCA.Files || {}; + + /** + * @namespace OCA.Files.GotoPlugin + * + */ + OCA.Files.GotoPlugin = { + name: 'Goto', + + disallowedLists: [ + 'files', + 'trashbin' + ], + + attach: function (fileList) { + if (this.disallowedLists.indexOf(fileList.id) !== -1) { + return; + } + var fileActions = fileList.fileActions; + + fileActions.registerAction({ + name: 'Goto', + displayName: t('files', 'View in folder'), + mime: 'all', + permissions: OC.PERMISSION_ALL, + iconClass: 'icon-goto nav-icon-extstoragemounts', + type: OCA.Files.FileActions.TYPE_DROPDOWN, + actionHandler: function (fileName, context) { + var fileModel = context.fileInfoModel; + OCA.Files.App.setActiveView('files', {silent: true}); + OCA.Files.App.fileList.changeDirectory(fileModel.get('path'), true, true).then(function() { + OCA.Files.App.fileList.scrollTo(fileModel.get('name')); + }); + }, + render: function (actionSpec, isDefault, context) { + return fileActions._defaultRenderAction.call(fileActions, actionSpec, isDefault, context) + .removeClass('permanent'); + } + }); + } + }; +})(OCA); + +OC.Plugins.register('OCA.Files.FileList', OCA.Files.GotoPlugin); + diff --git a/apps/files/lib/Controller/ViewController.php b/apps/files/lib/Controller/ViewController.php index 30d5bb87f13..1137f47c6d2 100644 --- a/apps/files/lib/Controller/ViewController.php +++ b/apps/files/lib/Controller/ViewController.php @@ -171,6 +171,7 @@ class ViewController extends Controller { \OCP\Util::addScript('files', 'favoritesfilelist'); \OCP\Util::addScript('files', 'tagsplugin'); + \OCP\Util::addScript('files', 'gotoplugin'); \OCP\Util::addScript('files', 'favoritesplugin'); \OCP\Util::addScript('files', 'detailfileinfoview'); |