You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
102 lines
2.6 KiB
102 lines
2.6 KiB
/* |
|
* 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) |
|
$(document).ready(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 #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('#emptycontent').toggleClass('hidden', !this.isEmpty); |
|
this.$el.find('#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) { |
|
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); |
|
}); |
|
|
|
|