0
0
Fork 0
mirror of https://github.com/nextcloud/server.git synced 2025-02-12 12:09:14 +00:00
nextcloud_server/apps/files/js/gotoplugin.js
Daniel Calviño Sánchez a8fea270ed Fix sidebar not automatically hidden in Files app
Although the Files app creates the legacy sidebar (details view) it is
then replaced with the newer Vue app sidebar. Due to this ".detailsView"
no longer finds an element and therefore nothing was hidden when
"hideAppSidebar($('.detailsView'))" was called (for example, when
changing to another section).

However, "OC.Apps.hideAppSidebar()" does not properly work either with
the Vue sidebar used in the Files app (once hidden the sidebar is not
shown again). For simplicity, and to avoid any possible side effect in
other apps from changing "OC.Apps.hideAppSidebar", now
"OC.Files.Sidebar.close()" is used instead.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-11-09 17:45:00 +01:00

64 lines
1.6 KiB
JavaScript

/*
* 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;
}
// lists where the "Open" default action is disabled should
// also have the goto action disabled
if (fileList._defaultFileActionsDisabled) {
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.Sidebar.close();
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);