summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorryanwr <ryantwr@gmail.com>2016-10-22 21:26:21 +0100
committerryanwr <ryantwr@gmail.com>2016-10-24 17:55:47 +0100
commit3e96f33995c522106b645908b4537b25536b8a7d (patch)
treec39d09a2e2ddfdc32e0bdba2fffa449055692f38
parent9965a95e3b9aff118fa7a34102e5ac31367ac7e2 (diff)
downloadnextcloud-server-3e96f33995c522106b645908b4537b25536b8a7d.tar.gz
nextcloud-server-3e96f33995c522106b645908b4537b25536b8a7d.zip
Sort favorite files first Issue #1802
Signed-off-by: Ryan Welch <ryantwr@gmail.com>
-rw-r--r--apps/files/js/filelist.js14
-rw-r--r--core/js/files/client.js7
-rw-r--r--core/js/files/fileinfo.js7
3 files changed, 21 insertions, 7 deletions
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js
index 159d008e6e6..53ad8eafeef 100644
--- a/apps/files/js/filelist.js
+++ b/apps/files/js/filelist.js
@@ -1500,13 +1500,15 @@
var comparator = FileList.Comparators[sort] || FileList.Comparators.name;
this._sort = sort;
this._sortDirection = (direction === 'desc')?'desc':'asc';
- this._sortComparator = comparator;
+ this._sortComparator = function(fileInfo1, fileInfo2) {
+ if(fileInfo1.isFavorite && !fileInfo2.isFavorite) {
+ return -1;
+ } else if(!fileInfo1.isFavorite && fileInfo2.isFavorite) {
+ return 1;
+ }
+ return direction === 'asc' ? comparator(fileInfo1, fileInfo2) : -comparator(fileInfo1, fileInfo2);
+ };
- if (direction === 'desc') {
- this._sortComparator = function(fileInfo1, fileInfo2) {
- return -comparator(fileInfo1, fileInfo2);
- };
- }
this.$el.find('thead th .sort-indicator')
.removeClass(this.SORT_INDICATOR_ASC_CLASS)
.removeClass(this.SORT_INDICATOR_DESC_CLASS)
diff --git a/core/js/files/client.js b/core/js/files/client.js
index 572f7879e17..ee3efbd5517 100644
--- a/core/js/files/client.js
+++ b/core/js/files/client.js
@@ -287,6 +287,13 @@
data.hasPreview = true;
}
+ var isFavorite = props['{' + Client.NS_OWNCLOUD + '}favorite'];
+ if (!_.isUndefined(isFavorite)) {
+ data.isFavorite = isFavorite === '1';
+ } else {
+ data.isFavorite = false;
+ }
+
var contentType = props['{' + Client.NS_DAV + '}getcontenttype'];
if (!_.isUndefined(contentType)) {
data.mimetype = contentType;
diff --git a/core/js/files/fileinfo.js b/core/js/files/fileinfo.js
index 1fc239da47a..7c8e4586448 100644
--- a/core/js/files/fileinfo.js
+++ b/core/js/files/fileinfo.js
@@ -132,7 +132,12 @@
/**
* @type boolean
*/
- hasPreview: true
+ hasPreview: true,
+
+ /**
+ * @type boolean
+ */
+ isFavorite: false
};
if (!OC.Files) {