aboutsummaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorJohn Molakvoæ <skjnldsv@protonmail.com>2023-06-30 11:19:21 +0200
committerJohn Molakvoæ <skjnldsv@protonmail.com>2023-07-05 16:20:34 +0200
commite3bac437c225f28bc6a9ca34c4fc33c936b00513 (patch)
treed58c9153cff230cf4850092f84aeafa19de448ed /apps
parent7929ad4a9303d4f184e56f95fc89347519a164e4 (diff)
downloadnextcloud-server-e3bac437c225f28bc6a9ca34c4fc33c936b00513.tar.gz
nextcloud-server-e3bac437c225f28bc6a9ca34c4fc33c936b00513.zip
chore: remove old favorites view
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
Diffstat (limited to 'apps')
-rw-r--r--apps/files/appinfo/routes.php5
-rw-r--r--apps/files/js/favoritesfilelist.js102
-rw-r--r--apps/files/js/favoritesplugin.js120
-rw-r--r--apps/files/js/merged-index.json2
-rw-r--r--apps/files/js/navigation.js347
-rw-r--r--apps/files/js/tagsplugin.js78
-rw-r--r--apps/files/lib/AppInfo/Application.php9
-rw-r--r--apps/files/lib/Controller/ApiController.php14
-rw-r--r--apps/files/lib/Controller/ViewController.php29
-rw-r--r--apps/files/tests/Controller/ViewControllerTest.php79
-rw-r--r--apps/files/tests/js/favoritesfilelistspec.js116
-rw-r--r--apps/files/tests/js/favoritespluginspec.js119
12 files changed, 0 insertions, 1020 deletions
diff --git a/apps/files/appinfo/routes.php b/apps/files/appinfo/routes.php
index a97c631d896..05d0a37fd70 100644
--- a/apps/files/appinfo/routes.php
+++ b/apps/files/appinfo/routes.php
@@ -129,11 +129,6 @@ $application->registerRoutes(
'verb' => 'GET'
],
[
- 'name' => 'Api#getNodeType',
- 'url' => '/api/v1/quickaccess/get/NodeType',
- 'verb' => 'GET',
- ],
- [
'name' => 'DirectEditingView#edit',
'url' => '/directEditing/{token}',
'verb' => 'GET'
diff --git a/apps/files/js/favoritesfilelist.js b/apps/files/js/favoritesfilelist.js
deleted file mode 100644
index 2c6b3c63e15..00000000000
--- a/apps/files/js/favoritesfilelist.js
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright (c) 2014 Vincent Petry <pvince81@owncloud.com>
- *
- * This file is licensed under the Affero General Public License version 3
- * or later.
- *
- * See the COPYING-README file.
- *
- */
-
-// HACK: this piece needs to be loaded AFTER the files app (for unit tests)
-window.addEventListener('DOMContentLoaded', function() {
- (function(OCA) {
- /**
- * @class OCA.Files.FavoritesFileList
- * @augments OCA.Files.FavoritesFileList
- *
- * @classdesc Favorites file list.
- * Displays the list of files marked as favorites
- *
- * @param $el container element with existing markup for the .files-controls
- * and a table
- * @param [options] map of options, see other parameters
- */
- var FavoritesFileList = function($el, options) {
- this.initialize($el, options);
- };
- FavoritesFileList.prototype = _.extend({}, OCA.Files.FileList.prototype,
- /** @lends OCA.Files.FavoritesFileList.prototype */ {
- id: 'favorites',
- appName: t('files','Favorites'),
-
- _clientSideSort: true,
- _allowSelection: false,
-
- /**
- * @private
- */
- initialize: function($el, options) {
- OCA.Files.FileList.prototype.initialize.apply(this, arguments);
- if (this.initialized) {
- return;
- }
- OC.Plugins.attach('OCA.Files.FavoritesFileList', this);
- },
-
- updateEmptyContent: function() {
- var dir = this.getCurrentDirectory();
- if (dir === '/') {
- // root has special permissions
- this.$el.find('.emptyfilelist.emptycontent').toggleClass('hidden', !this.isEmpty);
- this.$el.find('.files-filestable thead th').toggleClass('hidden', this.isEmpty);
- }
- else {
- OCA.Files.FileList.prototype.updateEmptyContent.apply(this, arguments);
- }
- },
-
- getDirectoryPermissions: function() {
- return OC.PERMISSION_READ | OC.PERMISSION_DELETE;
- },
-
- updateStorageStatistics: function() {
- // no op because it doesn't have
- // storage info like free space / used space
- },
-
- reload: function() {
- this.showMask();
- if (this._reloadCall?.abort) {
- this._reloadCall.abort();
- }
-
- // there is only root
- this._setCurrentDir('/', false);
-
- this._reloadCall = this.filesClient.getFilteredFiles(
- {
- favorite: true
- },
- {
- properties: this._getWebdavProperties()
- }
- );
- var callBack = this.reloadCallback.bind(this);
- return this._reloadCall.then(callBack, callBack);
- },
-
- reloadCallback: function(status, result) {
- if (result) {
- // prepend empty dir info because original handler
- result.unshift({});
- }
-
- return OCA.Files.FileList.prototype.reloadCallback.call(this, status, result);
- },
- });
-
- OCA.Files.FavoritesFileList = FavoritesFileList;
- })(OCA);
-});
-
diff --git a/apps/files/js/favoritesplugin.js b/apps/files/js/favoritesplugin.js
deleted file mode 100644
index 5964d71a469..00000000000
--- a/apps/files/js/favoritesplugin.js
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * Copyright (c) 2014 Vincent Petry <pvince81@owncloud.com>
- *
- * This file is licensed under the Affero General Public License version 3
- * or later.
- *
- * See the COPYING-README file.
- *
- */
-
-(function(OCA) {
- /**
- * Registers the favorites file list from the files app sidebar.
- *
- * @namespace OCA.Files.FavoritesPlugin
- */
- OCA.Files.FavoritesPlugin = {
- name: 'Favorites',
-
- /**
- * @type OCA.Files.FavoritesFileList
- */
- favoritesFileList: null,
-
- attach: function() {
- var self = this;
- $('#app-content-favorites').on('show.plugin-favorites', function(e) {
- self.showFileList($(e.target));
- });
- $('#app-content-favorites').on('hide.plugin-favorites', function() {
- self.hideFileList();
- });
- },
-
- detach: function() {
- if (this.favoritesFileList) {
- this.favoritesFileList.destroy();
- OCA.Files.fileActions.off('setDefault.plugin-favorites', this._onActionsUpdated);
- OCA.Files.fileActions.off('registerAction.plugin-favorites', this._onActionsUpdated);
- $('#app-content-favorites').off('.plugin-favorites');
- this.favoritesFileList = null;
- }
- },
-
- showFileList: function($el) {
- if (!this.favoritesFileList) {
- this.favoritesFileList = this._createFavoritesFileList($el);
- }
- return this.favoritesFileList;
- },
-
- hideFileList: function() {
- if (this.favoritesFileList) {
- this.favoritesFileList.$fileList.empty();
- }
- },
-
- /**
- * Creates the favorites file list.
- *
- * @param $el container for the file list
- * @return {OCA.Files.FavoritesFileList} file list
- */
- _createFavoritesFileList: function($el) {
- var fileActions = this._createFileActions();
- // register favorite list for sidebar section
- return new OCA.Files.FavoritesFileList(
- $el, {
- fileActions: fileActions,
- // The file list is created when a "show" event is handled,
- // so it should be marked as "shown" like it would have been
- // done if handling the event with the file list already
- // created.
- shown: true
- }
- );
- },
-
- _createFileActions: function() {
- // inherit file actions from the files app
- var fileActions = new OCA.Files.FileActions();
- // note: not merging the legacy actions because legacy apps are not
- // compatible with the sharing overview and need to be adapted first
- fileActions.registerDefaultActions();
- fileActions.merge(OCA.Files.fileActions);
-
- if (!this._globalActionsInitialized) {
- // in case actions are registered later
- this._onActionsUpdated = _.bind(this._onActionsUpdated, this);
- OCA.Files.fileActions.on('setDefault.plugin-favorites', this._onActionsUpdated);
- OCA.Files.fileActions.on('registerAction.plugin-favorites', this._onActionsUpdated);
- this._globalActionsInitialized = true;
- }
-
- // when the user clicks on a folder, redirect to the corresponding
- // folder in the files app instead of opening it directly
- fileActions.register('dir', 'Open', OC.PERMISSION_READ, '', function (filename, context) {
- OCA.Files.App.setActiveView('files', {silent: true});
- OCA.Files.App.fileList.changeDirectory(OC.joinPaths(context.$file.attr('data-path'), filename), true, true);
- });
- fileActions.setDefault('dir', 'Open');
- return fileActions;
- },
-
- _onActionsUpdated: function(ev) {
- if (ev.action) {
- this.favoritesFileList.fileActions.registerAction(ev.action);
- } else if (ev.defaultAction) {
- this.favoritesFileList.fileActions.setDefault(
- ev.defaultAction.mime,
- ev.defaultAction.name
- );
- }
- }
- };
-
-})(OCA);
-
-OC.Plugins.register('OCA.Files.App', OCA.Files.FavoritesPlugin);
-
diff --git a/apps/files/js/merged-index.json b/apps/files/js/merged-index.json
index 2b7d6ec7d6d..38b36c16896 100644
--- a/apps/files/js/merged-index.json
+++ b/apps/files/js/merged-index.json
@@ -4,8 +4,6 @@
"detailfileinfoview.js",
"detailsview.js",
"detailtabview.js",
- "favoritesfilelist.js",
- "favoritesplugin.js",
"file-upload.js",
"fileactions.js",
"fileactionsmenu.js",
diff --git a/apps/files/js/navigation.js b/apps/files/js/navigation.js
deleted file mode 100644
index d7ae7dd7fee..00000000000
--- a/apps/files/js/navigation.js
+++ /dev/null
@@ -1,347 +0,0 @@
-/*
- * @Copyright 2014 Vincent Petry <pvince81@owncloud.com>
- *
- * @author Vincent Petry
- * @author Felix Nüsse <felix.nuesse@t-online.de>
- *
- *
- * This file is licensed under the Affero General Public License version 3
- * or later.
- *
- * See the COPYING-README file.
- *
- */
-
-(function () {
-
- /**
- * @class OCA.Files.Navigation
- * @classdesc Navigation control for the files app sidebar.
- *
- * @param $el element containing the navigation
- */
- var Navigation = function ($el) {
- this.initialize($el);
- };
-
- /**
- * @memberof OCA.Files
- */
- Navigation.prototype = {
-
- /**
- * Currently selected item in the list
- */
- _activeItem: null,
-
- /**
- * Currently selected container
- */
- $currentContent: null,
-
- /**
- * Key for the quick-acces-list
- */
- $quickAccessListKey: 'sublist-favorites',
- /**
- * Initializes the navigation from the given container
- *
- * @private
- * @param $el element containing the navigation
- */
- initialize: function ($el) {
- this.$el = $el;
- this._activeItem = null;
- this.$currentContent = null;
- this._setupEvents();
-
- this.setInitialQuickaccessSettings();
- },
-
- /**
- * Setup UI events
- */
- _setupEvents: function () {
- this.$el.on('click', 'li a', _.bind(this._onClickItem, this));
- this.$el.on('click', 'li button', _.bind(this._onClickMenuButton, this));
-
- var trashBinElement = $('.nav-trashbin');
- trashBinElement.droppable({
- over: function (event, ui) {
- trashBinElement.addClass('dropzone-background');
- },
- out: function (event, ui) {
- trashBinElement.removeClass('dropzone-background');
- },
- activate: function (event, ui) {
- var element = trashBinElement.find('a').first();
- element.addClass('nav-icon-trashbin-starred').removeClass('nav-icon-trashbin');
- },
- deactivate: function (event, ui) {
- var element = trashBinElement.find('a').first();
- element.addClass('nav-icon-trashbin').removeClass('nav-icon-trashbin-starred');
- },
- drop: function (event, ui) {
- trashBinElement.removeClass('dropzone-background');
-
- var $selectedFiles = $(ui.draggable);
-
- // FIXME: when there are a lot of selected files the helper
- // contains only a subset of them; the list of selected
- // files should be gotten from the file list instead to
- // ensure that all of them are removed.
- var item = ui.helper.find('tr');
- for (var i = 0; i < item.length; i++) {
- $selectedFiles.trigger('droppedOnTrash', item[i].getAttribute('data-file'), item[i].getAttribute('data-dir'));
- }
- }
- });
- },
-
- /**
- * Returns the container of the currently active app.
- *
- * @return app container
- */
- getActiveContainer: function () {
- return this.$currentContent;
- },
-
- /**
- * Returns the currently active item
- *
- * @return item ID
- */
- getActiveItem: function () {
- return this._activeItem;
- },
-
- /**
- * Switch the currently selected item, mark it as selected and
- * make the content container visible, if any.
- *
- * @param string itemId id of the navigation item to select
- * @param array options "silent" to not trigger event
- */
- setActiveItem: function (itemId, options) {
- var currentItem = this.$el.find('li[data-id="' + itemId + '"]');
- var itemDir = currentItem.data('dir');
- var itemView = currentItem.data('view');
- var oldItemId = this._activeItem;
- if (itemId === this._activeItem) {
- if (!options || !options.silent) {
- this.$el.trigger(
- new $.Event('itemChanged', {
- itemId: itemId,
- previousItemId: oldItemId,
- dir: itemDir,
- view: itemView
- })
- );
- }
- return;
- }
- this.$el.find('li a').removeClass('active').removeAttr('aria-current');
- if (this.$currentContent) {
- this.$currentContent.addClass('hidden');
- this.$currentContent.trigger(jQuery.Event('hide'));
- }
- this._activeItem = itemId;
- currentItem.children('a').addClass('active').attr('aria-current', 'page');
- this.$currentContent = $('#app-content-' + (typeof itemView === 'string' && itemView !== '' ? itemView : itemId));
- this.$currentContent.removeClass('hidden');
- if (!options || !options.silent) {
- this.$currentContent.trigger(jQuery.Event('show', {
- itemId: itemId,
- previousItemId: oldItemId,
- dir: itemDir,
- view: itemView
- }));
- this.$el.trigger(
- new $.Event('itemChanged', {
- itemId: itemId,
- previousItemId: oldItemId,
- dir: itemDir,
- view: itemView
- })
- );
- }
- },
-
- /**
- * Returns whether a given item exists
- */
- itemExists: function (itemId) {
- return this.$el.find('li[data-id="' + itemId + '"]').length;
- },
-
- /**
- * Event handler for when clicking on an item.
- */
- _onClickItem: function (ev) {
- var $target = $(ev.target);
- var itemId = $target.closest('li').attr('data-id');
- if (!_.isUndefined(itemId)) {
- this.setActiveItem(itemId);
- }
- ev.preventDefault();
- },
-
- /**
- * Event handler for clicking a button
- */
- _onClickMenuButton: function (ev) {
- var $target = $(ev.target);
- var $menu = $target.parent('li');
- var itemId = $target.closest('button').attr('id');
-
- var collapsibleToggles = [];
- var dotmenuToggles = [];
-
- if ($menu.hasClass('collapsible') && $menu.data('expandedstate')) {
- $menu.toggleClass('open');
- var targetAriaExpanded = $target.attr('aria-expanded');
- if (targetAriaExpanded === 'false') {
- $target.attr('aria-expanded', 'true');
- } else if (targetAriaExpanded === 'true') {
- $target.attr('aria-expanded', 'false');
- }
- $menu.toggleAttr('data-expanded', 'true', 'false');
- var show = $menu.hasClass('open') ? 1 : 0;
- var key = $menu.data('expandedstate');
- $.post(OC.generateUrl("/apps/files/api/v1/toggleShowFolder/" + key), {show: show});
- }
-
- dotmenuToggles.forEach(function foundToggle (item) {
- if (item[0] === ("#" + itemId)) {
- document.getElementById(item[1]).classList.toggle('open');
- }
- });
-
- ev.preventDefault();
- },
-
- /**
- * Sort initially as setup of sidebar for QuickAccess
- */
- setInitialQuickaccessSettings: function () {
- var quickAccessKey = this.$quickAccessListKey;
- var quickAccessMenu = document.getElementById(quickAccessKey);
- if (quickAccessMenu) {
- var list = quickAccessMenu.getElementsByTagName('li');
- this.QuickSort(list, 0, list.length - 1);
- }
-
- var favoritesListElement = $(quickAccessMenu).parent();
- favoritesListElement.droppable({
- over: function (event, ui) {
- favoritesListElement.addClass('dropzone-background');
- },
- out: function (event, ui) {
- favoritesListElement.removeClass('dropzone-background');
- },
- activate: function (event, ui) {
- var element = favoritesListElement.find('a').first();
- element.addClass('nav-icon-favorites-starred').removeClass('nav-icon-favorites');
- },
- deactivate: function (event, ui) {
- var element = favoritesListElement.find('a').first();
- element.addClass('nav-icon-favorites').removeClass('nav-icon-favorites-starred');
- },
- drop: function (event, ui) {
- favoritesListElement.removeClass('dropzone-background');
-
- var $selectedFiles = $(ui.draggable);
-
- if (ui.helper.find('tr').size() === 1) {
- var $tr = $selectedFiles.closest('tr');
- if ($tr.attr("data-favorite")) {
- return;
- }
- $selectedFiles.trigger('droppedOnFavorites', $tr.attr('data-file'));
- } else {
- // FIXME: besides the issue described for dropping on
- // the trash bin, for favoriting it is not possible to
- // use the data from the helper; due to some bugs the
- // tags are not always added to the selected files, and
- // thus that data can not be accessed through the helper
- // to prevent triggering the favorite action on an
- // already favorited file (which would remove it from
- // favorites).
- OC.Notification.showTemporary(t('files', 'You can only favorite a single file or folder at a time'));
- }
- }
- });
- },
-
- /**
- * Sorting-Algorithm for QuickAccess
- */
- QuickSort: function (list, start, end) {
- var lastMatch;
- if (list.length > 1) {
- lastMatch = this.quicksort_helper(list, start, end);
- if (start < lastMatch - 1) {
- this.QuickSort(list, start, lastMatch - 1);
- }
- if (lastMatch < end) {
- this.QuickSort(list, lastMatch, end);
- }
- }
- },
-
- /**
- * Sorting-Algorithm-Helper for QuickAccess
- */
- quicksort_helper: function (list, start, end) {
- var pivot = Math.floor((end + start) / 2);
- var pivotElement = this.getCompareValue(list, pivot);
- var i = start;
- var j = end;
-
- while (i <= j) {
- while (this.getCompareValue(list, i) < pivotElement) {
- i++;
- }
- while (this.getCompareValue(list, j) > pivotElement) {
- j--;
- }
- if (i <= j) {
- this.swap(list, i, j);
- i++;
- j--;
- }
- }
- return i;
- },
-
- /**
- * Sorting-Algorithm-Helper for QuickAccess
- * This method allows easy access to the element which is sorted by.
- */
- getCompareValue: function (nodes, int, strategy) {
- return nodes[int].getElementsByTagName('a')[0].innerHTML.toLowerCase();
- },
-
- /**
- * Sorting-Algorithm-Helper for QuickAccess
- * This method allows easy swapping of elements.
- */
- swap: function (list, j, i) {
- var before = function(node, insertNode) {
- node.parentNode.insertBefore(insertNode, node);
- }
- before(list[i], list[j]);
- before(list[j], list[i]);
- }
-
- };
-
- OCA.Files.Navigation = Navigation;
-
-})();
-
-
-
-
-
diff --git a/apps/files/js/tagsplugin.js b/apps/files/js/tagsplugin.js
index cda188803db..78bd7eec557 100644
--- a/apps/files/js/tagsplugin.js
+++ b/apps/files/js/tagsplugin.js
@@ -52,82 +52,6 @@
$favoriteMarkEl.toggleClass('permanent', state);
}
- /**
- * Remove Item from Quickaccesslist
- *
- * @param {String} appfolder folder to be removed
- */
- function removeFavoriteFromList (appfolder) {
- var quickAccessList = 'sublist-favorites';
- var listULElements = document.getElementById(quickAccessList);
- if (!listULElements) {
- return;
- }
-
- var apppath=appfolder;
- if(appfolder.startsWith("//")){
- apppath=appfolder.substring(1, appfolder.length);
- }
-
- $(listULElements).find('[data-dir="' + _.escape(apppath) + '"]').remove();
-
- if (listULElements.childElementCount === 0) {
- var collapsibleButton = $(listULElements).parent().find('button.collapse');
- collapsibleButton.hide();
- $("#button-collapse-parent-favorites").removeClass('collapsible');
- }
- }
-
- /**
- * Add Item to Quickaccesslist
- *
- * @param {String} appfolder folder to be added
- */
- function addFavoriteToList (appfolder) {
- var quickAccessList = 'sublist-favorites';
- var listULElements = document.getElementById(quickAccessList);
- if (!listULElements) {
- return;
- }
- var listLIElements = listULElements.getElementsByTagName('li');
-
- var appName = appfolder.substring(appfolder.lastIndexOf("/") + 1, appfolder.length);
- var apppath = appfolder;
-
- if(appfolder.startsWith("//")){
- apppath = appfolder.substring(1, appfolder.length);
- }
- var url = OC.generateUrl('/apps/files/?dir=' + apppath + '&view=files');
-
- var innerTagA = document.createElement('A');
- innerTagA.setAttribute("href", url);
- innerTagA.setAttribute("class", "nav-icon-files svg");
- innerTagA.innerHTML = _.escape(appName);
-
- var length = listLIElements.length + 1;
- var innerTagLI = document.createElement('li');
- innerTagLI.setAttribute("data-id", apppath.replace('/', '-'));
- innerTagLI.setAttribute("data-dir", apppath);
- innerTagLI.setAttribute("data-view", 'files');
- innerTagLI.setAttribute("class", "nav-" + appName);
- innerTagLI.setAttribute("folderpos", length.toString());
- innerTagLI.appendChild(innerTagA);
-
- $.get(OC.generateUrl("/apps/files/api/v1/quickaccess/get/NodeType"),{folderpath: apppath}, function (data, status) {
- if (data === "dir") {
- if (listULElements.childElementCount <= 0) {
- listULElements.appendChild(innerTagLI);
- var collapsibleButton = $(listULElements).parent().find('button.collapse');
- collapsibleButton.show();
- $(listULElements).parent().addClass('collapsible');
- } else {
- listLIElements[listLIElements.length - 1].after(innerTagLI);
- }
- }
- }
- );
- }
-
OCA.Files = OCA.Files || {};
/**
@@ -205,12 +129,10 @@
if (isFavorite) {
// remove tag from list
tags = _.without(tags, OC.TAG_FAVORITE);
- removeFavoriteFromList(dir + '/' + fileName);
// vue compatibility
window._nc_event_bus.emit('files:favorites:removed', node)
} else {
tags.push(OC.TAG_FAVORITE);
- addFavoriteToList(dir + '/' + fileName);
// vue compatibility
window._nc_event_bus.emit('files:favorites:added', node)
}
diff --git a/apps/files/lib/AppInfo/Application.php b/apps/files/lib/AppInfo/Application.php
index 0d366e66fe8..7021769752e 100644
--- a/apps/files/lib/AppInfo/Application.php
+++ b/apps/files/lib/AppInfo/Application.php
@@ -172,15 +172,6 @@ class Application extends App implements IBootstrap {
'name' => $l10n->t('Recent')
];
});
- \OCA\Files\App::getNavigationManager()->add(function () use ($l10n) {
- return [
- 'id' => 'favorites',
- 'appname' => 'files',
- 'script' => 'simplelist.php',
- 'order' => 5,
- 'name' => $l10n->t('Favorites'),
- ];
- });
}
private function registerHooks(): void {
diff --git a/apps/files/lib/Controller/ApiController.php b/apps/files/lib/Controller/ApiController.php
index fd0f3bdf261..f8911c4d104 100644
--- a/apps/files/lib/Controller/ApiController.php
+++ b/apps/files/lib/Controller/ApiController.php
@@ -384,20 +384,6 @@ class ApiController extends Controller {
}
/**
- * Get sorting-order for custom sorting
- *
- * @NoAdminRequired
- *
- * @param string $folderpath
- * @return string
- * @throws \OCP\Files\NotFoundException
- */
- public function getNodeType($folderpath) {
- $node = $this->userFolder->get($folderpath);
- return $node->getType();
- }
-
- /**
* @NoAdminRequired
* @NoCSRFRequired
*/
diff --git a/apps/files/lib/Controller/ViewController.php b/apps/files/lib/Controller/ViewController.php
index 149ce242502..43be43aa116 100644
--- a/apps/files/lib/Controller/ViewController.php
+++ b/apps/files/lib/Controller/ViewController.php
@@ -202,37 +202,8 @@ class ViewController extends Controller {
$favElements['folders'] = [];
}
- $collapseClasses = '';
- if (count($favElements['folders']) > 0) {
- $collapseClasses = 'collapsible';
- }
-
- $favoritesSublistArray = [];
-
- $navBarPositionPosition = 6;
- foreach ($favElements['folders'] as $favElement) {
- $element = [
- 'id' => str_replace('/', '-', $favElement),
- 'dir' => $favElement,
- 'order' => $navBarPositionPosition,
- 'name' => basename($favElement),
- 'icon' => 'folder',
- 'params' => [
- 'view' => 'files',
- 'dir' => $favElement,
- ],
- ];
-
- array_push($favoritesSublistArray, $element);
- $navBarPositionPosition++;
- }
-
$navItems = \OCA\Files\App::getNavigationManager()->getAll();
- // add the favorites entry in menu
- $navItems['favorites']['sublist'] = $favoritesSublistArray;
- $navItems['favorites']['classes'] = $collapseClasses;
-
// parse every menu and add the expanded user value
foreach ($navItems as $key => $item) {
$navItems[$key]['expanded'] = $this->config->getUserValue($userId, 'files', 'show_' . $item['id'], '0') === '1';
diff --git a/apps/files/tests/Controller/ViewControllerTest.php b/apps/files/tests/Controller/ViewControllerTest.php
index 64f0f10671c..daafb92e322 100644
--- a/apps/files/tests/Controller/ViewControllerTest.php
+++ b/apps/files/tests/Controller/ViewControllerTest.php
@@ -199,65 +199,6 @@ class ViewControllerTest extends TestCase {
'expanded' => false,
'unread' => 0,
],
- 'favorites' => [
- 'id' => 'favorites',
- 'appname' => 'files',
- 'script' => 'simplelist.php',
- 'order' => 5,
- 'name' => \OC::$server->getL10N('files')->t('Favorites'),
- 'active' => false,
- 'icon' => '',
- 'type' => 'link',
- 'classes' => 'collapsible',
- 'sublist' => [
- [
- 'id' => '-test1',
- 'dir' => '/test1',
- 'order' => 6,
- 'name' => 'test1',
- 'icon' => 'folder',
- 'params' => [
- 'view' => 'files',
- 'dir' => '/test1',
- ],
- ],
- [
- 'name' => 'test2',
- 'id' => '-test2-',
- 'dir' => '/test2/',
- 'order' => 7,
- 'icon' => 'folder',
- 'params' => [
- 'view' => 'files',
- 'dir' => '/test2/',
- ],
- ],
- [
- 'name' => 'sub4',
- 'id' => '-test3-sub4',
- 'dir' => '/test3/sub4',
- 'order' => 8,
- 'icon' => 'folder',
- 'params' => [
- 'view' => 'files',
- 'dir' => '/test3/sub4',
- ],
- ],
- [
- 'name' => 'sub6',
- 'id' => '-test5-sub6-',
- 'dir' => '/test5/sub6/',
- 'order' => 9,
- 'icon' => 'folder',
- 'params' => [
- 'view' => 'files',
- 'dir' => '/test5/sub6/',
- ],
- ],
- ],
- 'expanded' => false,
- 'unread' => 0,
- ],
'systemtagsfilter' => [
'id' => 'systemtagsfilter',
'appname' => 'systemtags',
@@ -347,10 +288,6 @@ class ViewControllerTest extends TestCase {
'id' => 'recent',
'content' => null,
],
- 'favorites' => [
- 'id' => 'favorites',
- 'content' => null,
- ],
'systemtagsfilter' => [
'id' => 'systemtagsfilter',
'content' => null,
@@ -379,22 +316,6 @@ class ViewControllerTest extends TestCase {
'id' => 'shareoverview',
'content' => null,
],
- '-test1' => [
- 'id' => '-test1',
- 'content' => '',
- ],
- '-test2-' => [
- 'id' => '-test2-',
- 'content' => '',
- ],
- '-test3-sub4' => [
- 'id' => '-test3-sub4',
- 'content' => '',
- ],
- '-test5-sub6-' => [
- 'id' => '-test5-sub6-',
- 'content' => '',
- ],
],
'hiddenFields' => [],
'showgridview' => null
diff --git a/apps/files/tests/js/favoritesfilelistspec.js b/apps/files/tests/js/favoritesfilelistspec.js
deleted file mode 100644
index 5d1ad2312f2..00000000000
--- a/apps/files/tests/js/favoritesfilelistspec.js
+++ /dev/null
@@ -1,116 +0,0 @@
-/**
- * Copyright (c) 2014 Vincent Petry <pvince81@owncloud.com>
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Jan-Christoph Borchardt <hey@jancborchardt.net>
- * @author Vincent Petry <vincent@nextcloud.com>
- *
- * @license AGPL-3.0-or-later
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-
-describe('OCA.Files.FavoritesFileList tests', function() {
- var fileList;
-
- beforeEach(function() {
- // init parameters and test table elements
- $('#testArea').append(
- '<div id="app-content">' +
- // init horrible parameters
- '<input type="hidden" id="permissions" value="31"></input>' +
- // dummy controls
- '<div class="files-controls">' +
- ' <div class="actions creatable"></div>' +
- ' <div class="notCreatable"></div>' +
- '</div>' +
- // dummy table
- // TODO: at some point this will be rendered by the fileList class itself!
- '<table class="files-filestable list-container view-grid">' +
- '<thead><tr>' +
- '<th class="hidden column-name">' +
- '<a class="name columntitle" data-sort="name"><span>Name</span><span class="sort-indicator"></span></a>' +
- '</th>' +
- '<th class="hidden column-mtime">' +
- '<a class="columntitle" data-sort="mtime"><span class="sort-indicator"></span></a>' +
- '</th>' +
- '</tr></thead>' +
- '<tbody class="files-fileList"></tbody>' +
- '<tfoot></tfoot>' +
- '</table>' +
- '<div class="emptyfilelist emptycontent">Empty content message</div>' +
- '</div>'
- );
- });
-
- describe('loading file list', function() {
- var fetchStub;
-
- beforeEach(function() {
- fileList = new OCA.Files.FavoritesFileList(
- $('#app-content')
- );
- OCA.Files.FavoritesPlugin.attach(fileList);
-
- fetchStub = sinon.stub(fileList.filesClient, 'getFilteredFiles');
- });
- afterEach(function() {
- fetchStub.restore();
- fileList.destroy();
- fileList = undefined;
- });
- it('render files', function(done) {
- var deferred = $.Deferred();
- fetchStub.returns(deferred.promise());
-
- fileList.reload();
-
- expect(fetchStub.calledOnce).toEqual(true);
-
- deferred.resolve(207, [{
- id: 7,
- name: 'test.txt',
- path: '/somedir',
- size: 123,
- mtime: 11111000,
- tags: [OC.TAG_FAVORITE],
- permissions: OC.PERMISSION_ALL,
- mimetype: 'text/plain'
- }]);
-
- setTimeout(function() {
- var $rows = fileList.$el.find('tbody tr');
- var $tr = $rows.eq(0);
- expect($rows.length).toEqual(1);
- expect($tr.attr('data-id')).toEqual('7');
- expect($tr.attr('data-type')).toEqual('file');
- expect($tr.attr('data-file')).toEqual('test.txt');
- expect($tr.attr('data-path')).toEqual('/somedir');
- expect($tr.attr('data-size')).toEqual('123');
- expect(parseInt($tr.attr('data-permissions'), 10))
- .toEqual(OC.PERMISSION_ALL);
- expect($tr.attr('data-mime')).toEqual('text/plain');
- expect($tr.attr('data-mtime')).toEqual('11111000');
- expect($tr.find('a.name').attr('href')).toEqual(
- OC.getRootPath() +
- '/remote.php/webdav/somedir/test.txt'
- );
- expect($tr.find('.nametext').text().trim()).toEqual('test.txt');
-
- done();
- }, 0);
- });
- });
-});
diff --git a/apps/files/tests/js/favoritespluginspec.js b/apps/files/tests/js/favoritespluginspec.js
deleted file mode 100644
index ca0cea8b29a..00000000000
--- a/apps/files/tests/js/favoritespluginspec.js
+++ /dev/null
@@ -1,119 +0,0 @@
-/**
- * Copyright (c) 2014 Vincent Petry <pvince81@owncloud.com>
- *
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- * @author Vincent Petry <vincent@nextcloud.com>
- *
- * @license AGPL-3.0-or-later
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-
-describe('OCA.Files.FavoritesPlugin tests', function() {
- var Plugin = OCA.Files.FavoritesPlugin;
- var fileList;
-
- beforeEach(function() {
- $('#testArea').append(
- '<div id="content">' +
- '<div id="app-navigation">' +
- '<ul><li data-id="files"><a>Files</a></li>' +
- '<li data-id="sharingin"><a></a></li>' +
- '<li data-id="sharingout"><a></a></li>' +
- '</ul></div>' +
- '<div id="app-content">' +
- '<div id="app-content-files" class="hidden">' +
- '</div>' +
- '<div id="app-content-favorites" class="hidden">' +
- '</div>' +
- '</div>' +
- '</div>' +
- '</div>'
- );
- OC.Plugins.attach('OCA.Files.App', Plugin);
- fileList = Plugin.showFileList($('#app-content-favorites'));
- });
- afterEach(function() {
- OC.Plugins.detach('OCA.Files.App', Plugin);
- });
-
- describe('initialization', function() {
- it('inits favorites list on show', function() {
- expect(fileList).toBeDefined();
- });
- });
- describe('file actions', function() {
- it('provides default file actions', function() {
- var fileActions = fileList.fileActions;
-
- expect(fileActions.actions.all).toBeDefined();
- expect(fileActions.actions.all.Delete).toBeDefined();
- expect(fileActions.actions.all.Rename).toBeDefined();
- expect(fileActions.actions.all.Download).toBeDefined();
-
- expect(fileActions.defaults.dir).toEqual('Open');
- });
- it('provides custom file actions', function() {
- var actionStub = sinon.stub();
- // regular file action
- OCA.Files.fileActions.register(
- 'all',
- 'RegularTest',
- OC.PERMISSION_READ,
- OC.imagePath('core', 'actions/shared'),
- actionStub
- );
-
- Plugin.favoritesFileList = null;
- fileList = Plugin.showFileList($('#app-content-favorites'));
-
- expect(fileList.fileActions.actions.all.RegularTest).toBeDefined();
- });
- it('redirects to files app when opening a directory', function() {
- var oldList = OCA.Files.App.fileList;
- // dummy new list to make sure it exists
- OCA.Files.App.fileList = new OCA.Files.FileList($('<table><thead></thead><tbody></tbody></table>'));
-
- var setActiveViewStub = sinon.stub(OCA.Files.App, 'setActiveView');
- // create dummy table so we can click the dom
- var $table = '<table><thead></thead><tbody class="files-fileList"></tbody></table>';
- $('#app-content-favorites').append($table);
-
- Plugin.favoritesFileList = null;
- fileList = Plugin.showFileList($('#app-content-favorites'));
-
- fileList.setFiles([{
- name: 'testdir',
- type: 'dir',
- path: '/somewhere/inside/subdir',
- counterParts: ['user2'],
- shareOwner: 'user2'
- }]);
-
- fileList.findFileEl('testdir').find('td .nametext').click();
-
- expect(OCA.Files.App.fileList.getCurrentDirectory()).toEqual('/somewhere/inside/subdir/testdir');
-
- expect(setActiveViewStub.calledOnce).toEqual(true);
- expect(setActiveViewStub.calledWith('files')).toEqual(true);
-
- setActiveViewStub.restore();
-
- // restore old list
- OCA.Files.App.fileList = oldList;
- });
- });
-});
-