summaryrefslogtreecommitdiffstats
path: root/apps/files
diff options
context:
space:
mode:
authorRobin Appelman <icewind@owncloud.com>2016-07-05 15:05:01 +0200
committerRobin Appelman <icewind@owncloud.com>2016-07-05 22:22:55 +0200
commitd623763aac3c1c4c0480f0d3ca7182dd2eb68357 (patch)
treee6c54d251b39a05d42ebc79595d7f43180cd63ff /apps/files
parent3ffe424985e345d1979c5c8ccbe1b11dc212c67d (diff)
downloadnextcloud-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.js2
-rw-r--r--apps/files/js/gotoplugin.js58
-rw-r--r--apps/files/lib/Controller/ViewController.php1
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');