Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/gallery.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOlivier Paroz <github@oparoz.com>2015-06-25 21:37:59 +0300
committerOlivier Paroz <github@oparoz.com>2015-09-15 17:55:28 +0300
commit4acd294da3bb4694b5209d7dbf6e32307949ac3b (patch)
treef88b792cf937866ebdf9b3b803972167cd98b0ea /js/galleryview.js
parentf743188645f840b049101b64793471435a6b2112 (diff)
Add flip effect to sorting buttons
We can't use CSS3 because of IE
Diffstat (limited to 'js/galleryview.js')
-rw-r--r--js/galleryview.js69
1 files changed, 48 insertions, 21 deletions
diff --git a/js/galleryview.js b/js/galleryview.js
index fc5397f9..5216ceb4 100644
--- a/js/galleryview.js
+++ b/js/galleryview.js
@@ -119,30 +119,16 @@
/**
* Manages the sorting interface
*
- * @param {string} sortType
- * @param {string} sortOrder
+ * @param {string} sortType name or date
+ * @param {string} sortOrder asc or des
*/
sortControlsSetup: function (sortType, sortOrder) {
- var sortNameButton = $('#sort-name-button');
- var sortDateButton = $('#sort-date-button');
- // namedes, dateasc etc.
- var icon = sortType + sortOrder;
-
- var setButton = function (button, icon, active) {
- button.removeClass('active-button');
- if (active) {
- button.addClass('active-button');
- }
- button.find('img').attr('src', OC.imagePath(Gallery.appName, icon));
- };
-
- if (sortType === 'name') {
- setButton(sortNameButton, icon, true);
- setButton(sortDateButton, 'dateasc', false); // default icon
- } else {
- setButton(sortDateButton, icon, true);
- setButton(sortNameButton, 'nameasc', false); // default icon
+ var reverseSortType = 'date';
+ if (sortType === 'date') {
+ reverseSortType = 'name';
}
+ this._setSortButton(sortType, sortOrder, true);
+ this._setSortButton(reverseSortType, 'asc', false); // default icon
},
/**
@@ -307,6 +293,47 @@
} else {
wrapper.css('background-color', '#fff');
}
+ },
+
+ /**
+ * Picks the image which matches the sort order
+ *
+ * @param {string} sortType name or date
+ * @param {string} sortOrder asc or des
+ * @param {bool} active determines if we're setting up the active sort button
+ * @private
+ */
+ _setSortButton: function (sortType, sortOrder, active) {
+ var button = $('#sort-' + sortType + '-button');
+ // Removing all the classes which control the image in the button
+ button.removeClass('active-button');
+ button.find('img').removeClass('front');
+ button.find('img').removeClass('back');
+
+ // We need to determine the reverse order in order to send that image to the back
+ var reverseSortOrder = 'des';
+ if (sortOrder === 'des') {
+ reverseSortOrder = 'asc';
+ }
+
+ // We assign the proper order to the button images
+ button.find('img.' + sortOrder).addClass('front');
+ button.find('img.' + reverseSortOrder).addClass('back');
+
+ // The active button needs a hover action for the flip effect
+ if (active) {
+ button.addClass('active-button');
+ if (button.is(":hover")) {
+ button.removeClass('hover');
+ }
+ // We can't use a toggle here
+ button.hover(function () {
+ $(this).addClass('hover');
+ },
+ function () {
+ $(this).removeClass('hover');
+ });
+ }
}
};