summaryrefslogtreecommitdiffstats
path: root/apps/files
diff options
context:
space:
mode:
authorVincent Petry <pvince81@owncloud.com>2016-03-04 10:48:08 +0100
committerVincent Petry <pvince81@owncloud.com>2016-03-04 10:48:08 +0100
commit3a36163e9187d7a65418350371c7b20303cae671 (patch)
tree294924352b210df35f4a7d459e6ce96d889dce94 /apps/files
parentbcc200cf9bb18ecb385ef617488555bdcc598312 (diff)
downloadnextcloud-server-3a36163e9187d7a65418350371c7b20303cae671.tar.gz
nextcloud-server-3a36163e9187d7a65418350371c7b20303cae671.zip
Fix download spinner to work with CSS styles
A recent change replaced img elements with CSS icons for file actions. This fix adjusts the logic to work properly with CSS icons instead of images.
Diffstat (limited to 'apps/files')
-rw-r--r--apps/files/css/files.css13
-rw-r--r--apps/files/js/fileactions.js19
-rw-r--r--apps/files/tests/js/fileactionsSpec.js20
3 files changed, 42 insertions, 10 deletions
diff --git a/apps/files/css/files.css b/apps/files/css/files.css
index b65af1fa0f3..bfa5340fe09 100644
--- a/apps/files/css/files.css
+++ b/apps/files/css/files.css
@@ -793,6 +793,19 @@ html.ie8 #controls .button.new {
background-size: 16px 16px;
}
+#filestable .filename .action .icon.hidden,
+#filestable .selectedActions a .icon.hidden,
+#controls .actions .button .icon.hidden {
+ display: none;
+}
+
+#filestable .filename .action .icon.loading,
+#filestable .selectedActions a .icon.loading,
+#controls .actions .button .icon.loading {
+ width: 15px;
+ height: 15px;
+}
+
.app-files .actions .button.new .icon {
margin-bottom: 2px;
}
diff --git a/apps/files/js/fileactions.js b/apps/files/js/fileactions.js
index 05ff2f0cbfa..69e32d500c4 100644
--- a/apps/files/js/fileactions.js
+++ b/apps/files/js/fileactions.js
@@ -659,19 +659,18 @@
* Replaces the download icon with a loading spinner and vice versa
* - also adds the class disabled to the passed in element
*
- * @param downloadButtonElement download fileaction
+ * @param {jQuery} $downloadButtonElement download fileaction
* @param {boolean} showIt whether to show the spinner(true) or to hide it(false)
*/
- OCA.Files.FileActions.updateFileActionSpinner = function(downloadButtonElement, showIt) {
- var icon = downloadButtonElement.find('img'),
- sourceImage = icon.attr('src');
-
- if(showIt) {
- downloadButtonElement.addClass('disabled');
- icon.attr('src', sourceImage.replace('actions/download.svg', 'loading-small.gif'));
+ OCA.Files.FileActions.updateFileActionSpinner = function($downloadButtonElement, showIt) {
+ var $icon = $downloadButtonElement.find('.icon');
+ if (showIt) {
+ var $loadingIcon = $('<span class="icon loading"></span>');
+ $icon.after($loadingIcon);
+ $icon.addClass('hidden');
} else {
- downloadButtonElement.removeClass('disabled');
- icon.attr('src', sourceImage.replace('loading-small.gif', 'actions/download.svg'));
+ $downloadButtonElement.find('.loading').remove();
+ $downloadButtonElement.find('.icon').removeClass('hidden');
}
};
diff --git a/apps/files/tests/js/fileactionsSpec.js b/apps/files/tests/js/fileactionsSpec.js
index 470f2854f43..3f46a27d1f9 100644
--- a/apps/files/tests/js/fileactionsSpec.js
+++ b/apps/files/tests/js/fileactionsSpec.js
@@ -656,4 +656,24 @@ describe('OCA.Files.FileActions tests', function() {
});
});
});
+ describe('download spinner', function() {
+ var FileActions = OCA.Files.FileActions;
+ var $el;
+
+ beforeEach(function() {
+ $el = $('<a href="#"><span class="icon icon-download"></span><span>Download</span></a>');
+ });
+
+ it('replaces download icon with spinner', function() {
+ FileActions.updateFileActionSpinner($el, true);
+ expect($el.find('.icon.loading').length).toEqual(1);
+ expect($el.find('.icon.icon-download').hasClass('hidden')).toEqual(true);
+ });
+ it('replaces spinner back with download icon with spinner', function() {
+ FileActions.updateFileActionSpinner($el, true);
+ FileActions.updateFileActionSpinner($el, false);
+ expect($el.find('.icon.loading').length).toEqual(0);
+ expect($el.find('.icon.icon-download').hasClass('hidden')).toEqual(false);
+ });
+ });
});