]> source.dussan.org Git - nextcloud-server.git/commitdiff
Return ? if mtime is 0 or -1
authorRobin McCorkell <rmccorkell@karoshi.org.uk>
Fri, 5 Dec 2014 13:54:43 +0000 (13:54 +0000)
committerRobin McCorkell <rmccorkell@karoshi.org.uk>
Fri, 12 Dec 2014 23:54:18 +0000 (23:54 +0000)
Tooltip contains 'Unable to determine date'. Fixes #6395

apps/files/js/filelist.js
apps/files/tests/js/filelistSpec.js
lib/private/files/storage/common.php

index 6ffc10cdcbdbed96cca4dfa429e75632336e4a4a..f4b45fc58bf65526c5f718f8049b19507c0e9b12 100644 (file)
                                icon = OC.Util.replaceSVGIcon(fileData.icon),
                                name = fileData.name,
                                type = fileData.type || 'file',
-                               mtime = parseInt(fileData.mtime, 10) || new Date().getTime(),
+                               mtime = parseInt(fileData.mtime, 10),
                                mime = fileData.mimetype,
                                path = fileData.path,
                                linkUrl;
                        options = options || {};
 
+                       if (isNaN(mtime)) {
+                               mtime = new Date().getTime()
+                       }
+
                        if (type === 'dir') {
                                mime = mime || 'httpd/unix-directory';
                        }
                        if (modifiedColor >= '160') {
                                modifiedColor = 160;
                        }
+                       var formatted;
+                       var text;
+                       if (mtime > 0) {
+                               formatted = formatDate(mtime);
+                               text = OC.Util.relativeModifiedDate(mtime);
+                       } else {
+                               formatted = t('files', 'Unable to determine date');
+                               text = '?';
+                       }
                        td = $('<td></td>').attr({ "class": "date" });
                        td.append($('<span></span>').attr({
                                "class": "modified",
-                               "title": formatDate(mtime),
+                               "title": formatted,
                                "style": 'color:rgb('+modifiedColor+','+modifiedColor+','+modifiedColor+')'
-                       }).text(OC.Util.relativeModifiedDate(mtime)));
+                       }).text(text));
                        tr.find('.filesize').text(simpleSize);
                        tr.append(td);
                        return tr;
index 21f8a12f4b5f0e5ef17ca56bee6764b26f1b0648..d7a1433485d510fb6d3802b2b1dccf5e12142921 100644 (file)
@@ -183,6 +183,7 @@ describe('OCA.Files.FileList tests', function() {
                        expect($tr.find('.nametext').text().trim()).toEqual('testName.txt');
 
                        expect($tr.find('.filesize').text()).toEqual('1 kB');
+                       expect($tr.find('.date').text()).not.toEqual('?');
                        expect(fileList.findFileEl('testName.txt')[0]).toEqual($tr[0]);
                });
                it('generates dir element with correct attributes when calling add() with dir data', function() {
@@ -209,6 +210,7 @@ describe('OCA.Files.FileList tests', function() {
                        expect($tr.attr('data-mtime')).toEqual('123456');
 
                        expect($tr.find('.filesize').text()).toEqual('1 kB');
+                       expect($tr.find('.date').text()).not.toEqual('?');
 
                        expect(fileList.findFileEl('testFolder')[0]).toEqual($tr[0]);
                });
@@ -233,6 +235,7 @@ describe('OCA.Files.FileList tests', function() {
                        expect($tr.attr('data-mtime')).toEqual('123456');
 
                        expect($tr.find('.filesize').text()).toEqual('Pending');
+                       expect($tr.find('.date').text()).not.toEqual('?');
                });
                it('generates dir element with default attributes when calling add() with minimal data', function() {
                        var fileData = {
@@ -254,6 +257,7 @@ describe('OCA.Files.FileList tests', function() {
                        expect($tr.attr('data-mtime')).toEqual('123456');
 
                        expect($tr.find('.filesize').text()).toEqual('Pending');
+                       expect($tr.find('.date').text()).not.toEqual('?');
                });
                it('generates file element with zero size when size is explicitly zero', function() {
                        var fileData = {
@@ -264,6 +268,15 @@ describe('OCA.Files.FileList tests', function() {
                        var $tr = fileList.add(fileData);
                        expect($tr.find('.filesize').text()).toEqual('0 kB');
                });
+               it('generates file element with unknown date when mtime invalid', function() {
+                       var fileData = {
+                               type: 'dir',
+                               name: 'testFolder',
+                               mtime: -1
+                       };
+                       var $tr = fileList.add(fileData);
+                       expect($tr.find('.date').text()).toEqual('?');
+               });
                it('adds new file to the end of the list', function() {
                        var $tr;
                        var fileData = {
index d76c6aa031b7b8be330f7748dfa53cd9d2a168f0..b3eda1165ab62b80c9d29b2cff97522738a2f3a3 100644 (file)
@@ -132,7 +132,7 @@ abstract class Common implements \OC\Files\Storage\Storage {
 
        public function filemtime($path) {
                $stat = $this->stat($path);
-               if (isset($stat['mtime'])) {
+               if (isset($stat['mtime']) && $stat['mtime'] > 0) {
                        return $stat['mtime'];
                } else {
                        return 0;