Return ? if mtime is 0 or -1

Tooltip contains 'Unable to determine date'. Fixes #6395
This commit is contained in:
Robin McCorkell 2014-12-05 13:54:43 +00:00
parent 5f66cb3250
commit fdbb68a3c3
3 changed files with 30 additions and 4 deletions

View File

@ -637,12 +637,16 @@
icon = OC.Util.replaceSVGIcon(fileData.icon), icon = OC.Util.replaceSVGIcon(fileData.icon),
name = fileData.name, name = fileData.name,
type = fileData.type || 'file', type = fileData.type || 'file',
mtime = parseInt(fileData.mtime, 10) || new Date().getTime(), mtime = parseInt(fileData.mtime, 10),
mime = fileData.mimetype, mime = fileData.mimetype,
path = fileData.path, path = fileData.path,
linkUrl; linkUrl;
options = options || {}; options = options || {};
if (isNaN(mtime)) {
mtime = new Date().getTime()
}
if (type === 'dir') { if (type === 'dir') {
mime = mime || 'httpd/unix-directory'; mime = mime || 'httpd/unix-directory';
} }
@ -753,12 +757,21 @@
if (modifiedColor >= '160') { if (modifiedColor >= '160') {
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 = $('<td></td>').attr({ "class": "date" });
td.append($('<span></span>').attr({ td.append($('<span></span>').attr({
"class": "modified", "class": "modified",
"title": formatDate(mtime), "title": formatted,
"style": 'color:rgb('+modifiedColor+','+modifiedColor+','+modifiedColor+')' "style": 'color:rgb('+modifiedColor+','+modifiedColor+','+modifiedColor+')'
}).text(OC.Util.relativeModifiedDate(mtime))); }).text(text));
tr.find('.filesize').text(simpleSize); tr.find('.filesize').text(simpleSize);
tr.append(td); tr.append(td);
return tr; return tr;

View File

@ -183,6 +183,7 @@ describe('OCA.Files.FileList tests', function() {
expect($tr.find('.nametext').text().trim()).toEqual('testName.txt'); expect($tr.find('.nametext').text().trim()).toEqual('testName.txt');
expect($tr.find('.filesize').text()).toEqual('1 kB'); expect($tr.find('.filesize').text()).toEqual('1 kB');
expect($tr.find('.date').text()).not.toEqual('?');
expect(fileList.findFileEl('testName.txt')[0]).toEqual($tr[0]); expect(fileList.findFileEl('testName.txt')[0]).toEqual($tr[0]);
}); });
it('generates dir element with correct attributes when calling add() with dir data', function() { 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.attr('data-mtime')).toEqual('123456');
expect($tr.find('.filesize').text()).toEqual('1 kB'); expect($tr.find('.filesize').text()).toEqual('1 kB');
expect($tr.find('.date').text()).not.toEqual('?');
expect(fileList.findFileEl('testFolder')[0]).toEqual($tr[0]); 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.attr('data-mtime')).toEqual('123456');
expect($tr.find('.filesize').text()).toEqual('Pending'); 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() { it('generates dir element with default attributes when calling add() with minimal data', function() {
var fileData = { var fileData = {
@ -254,6 +257,7 @@ describe('OCA.Files.FileList tests', function() {
expect($tr.attr('data-mtime')).toEqual('123456'); expect($tr.attr('data-mtime')).toEqual('123456');
expect($tr.find('.filesize').text()).toEqual('Pending'); 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() { it('generates file element with zero size when size is explicitly zero', function() {
var fileData = { var fileData = {
@ -264,6 +268,15 @@ describe('OCA.Files.FileList tests', function() {
var $tr = fileList.add(fileData); var $tr = fileList.add(fileData);
expect($tr.find('.filesize').text()).toEqual('0 kB'); 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() { it('adds new file to the end of the list', function() {
var $tr; var $tr;
var fileData = { var fileData = {

View File

@ -132,7 +132,7 @@ abstract class Common implements \OC\Files\Storage\Storage {
public function filemtime($path) { public function filemtime($path) {
$stat = $this->stat($path); $stat = $this->stat($path);
if (isset($stat['mtime'])) { if (isset($stat['mtime']) && $stat['mtime'] > 0) {
return $stat['mtime']; return $stat['mtime'];
} else { } else {
return 0; return 0;