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),
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';
}
@ -753,12 +757,21 @@
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;

View 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 = {

View 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;