[Pkg-owncloud-commits] [owncloud] 02/24: Fix parsing of sharetime as string

David Prévot taffit at moszumanska.debian.org
Wed Sep 2 13:30:13 UTC 2015


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to annotated tag v8.0.7RC1
in repository owncloud.

commit 47d25989dc974879827925f72d904548785a1828
Author: Morris Jobke <hey at morrisjobke.de>
Date:   Wed Jul 8 15:23:01 2015 +0200

    Fix parsing of sharetime as string
    
    In some cases the ajax/share.php will return the share time as string.
    If this is the case it would get parsed completely wrong and cause the
    share dropdown to not work anymore. This change will properly cast the
    string to an interger and also fallback if this is not possible.
---
 core/js/share.js                 | 17 +++++++++++++++++
 core/js/tests/specs/shareSpec.js | 14 ++++++++++++++
 2 files changed, 31 insertions(+)

diff --git a/core/js/share.js b/core/js/share.js
index d893072..94833a8 100644
--- a/core/js/share.js
+++ b/core/js/share.js
@@ -765,6 +765,21 @@ OC.Share={
 		return path.replace(/\\/g,'/').replace(/\/[^\/]*$/, '');
 	},
 	/**
+	 * Parses a string to an valid integer (unix timestamp)
+	 * @param time
+	 * @returns {*}
+	 * @internal Only used to work around a bug in the backend
+	 */
+	_parseTime: function(time) {
+		if (_.isString(time)) {
+			time = parseInt(time, 10);
+			if(isNaN(time)) {
+				time = null;
+			}
+		}
+		return time;
+	},
+	/**
 	 * Displays the expiration date field
 	 *
 	 * @param {Date} date current expiration date
@@ -779,6 +794,8 @@ OC.Share={
 			minDate: minDate,
 			maxDate: null
 		};
+		// TODO: hack: backend returns string instead of integer
+		shareTime = OC.Share._parseTime(shareTime);
 		if (_.isNumber(shareTime)) {
 			shareTime = new Date(shareTime * 1000);
 		}
diff --git a/core/js/tests/specs/shareSpec.js b/core/js/tests/specs/shareSpec.js
index ffde885..22632a2b 100644
--- a/core/js/tests/specs/shareSpec.js
+++ b/core/js/tests/specs/shareSpec.js
@@ -836,5 +836,19 @@ describe('OC.Share tests', function() {
 		});
 		// TODO: add unit tests for share recipients
 	});
+	describe('OC.Share utils', function() {
+		it('parseTime should properly parse strings', function() {
+
+			_.each([
+				[ '123456', 123456],
+				[  123456 , 123456],
+				['0123456', 123456],
+				['abcdefg',   null],
+			], function(value) {
+				expect(OC.Share._parseTime(value[0])).toEqual(value[1]);
+			});
+
+		});
+	});
 });
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud.git



More information about the Pkg-owncloud-commits mailing list