Merge pull request #21181 from owncloud/files-fixsharedrootdetection
Fix mount type root detection in web UI
This commit is contained in:
commit
db41c4f4b5
|
@ -990,14 +990,17 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fileData.mountType) {
|
if (fileData.mountType) {
|
||||||
|
// dirInfo (parent) only exist for the "real" file list
|
||||||
|
if (this.dirInfo.id) {
|
||||||
// FIXME: HACK: detect shared-root
|
// FIXME: HACK: detect shared-root
|
||||||
if (fileData.mountType === 'shared' && this.dirInfo.mountType !== 'shared') {
|
if (fileData.mountType === 'shared' && this.dirInfo.mountType !== 'shared' && this.dirInfo.mountType !== 'shared-root') {
|
||||||
// if parent folder isn't share, assume the displayed folder is a share root
|
// if parent folder isn't share, assume the displayed folder is a share root
|
||||||
fileData.mountType = 'shared-root';
|
fileData.mountType = 'shared-root';
|
||||||
} else if (fileData.mountType === 'external' && this.dirInfo.mountType !== 'external') {
|
} else if (fileData.mountType === 'external' && this.dirInfo.mountType !== 'external' && this.dirInfo.mountType !== 'external-root') {
|
||||||
// if parent folder isn't external, assume the displayed folder is the external storage root
|
// if parent folder isn't external, assume the displayed folder is the external storage root
|
||||||
fileData.mountType = 'external-root';
|
fileData.mountType = 'external-root';
|
||||||
}
|
}
|
||||||
|
}
|
||||||
tr.attr('data-mounttype', fileData.mountType);
|
tr.attr('data-mounttype', fileData.mountType);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2534,4 +2534,34 @@ describe('OCA.Files.FileList tests', function() {
|
||||||
expect(newFileMenuStub.notCalled).toEqual(true);
|
expect(newFileMenuStub.notCalled).toEqual(true);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
describe('mount type detection', function() {
|
||||||
|
function testMountType(dirInfoId, dirInfoMountType, inputMountType, expectedMountType) {
|
||||||
|
var $tr;
|
||||||
|
fileList.dirInfo.id = dirInfoId;
|
||||||
|
fileList.dirInfo.mountType = dirInfoMountType;
|
||||||
|
$tr = fileList.add({
|
||||||
|
type: 'dir',
|
||||||
|
mimetype: 'httpd/unix-directory',
|
||||||
|
name: 'test dir',
|
||||||
|
mountType: inputMountType
|
||||||
|
});
|
||||||
|
|
||||||
|
expect($tr.attr('data-mounttype')).toEqual(expectedMountType);
|
||||||
|
}
|
||||||
|
|
||||||
|
it('leaves mount type as is if no parent exists', function() {
|
||||||
|
testMountType(null, null, 'external', 'external');
|
||||||
|
testMountType(null, null, 'shared', 'shared');
|
||||||
|
});
|
||||||
|
it('detects share root if parent exists', function() {
|
||||||
|
testMountType(123, null, 'shared', 'shared-root');
|
||||||
|
testMountType(123, 'shared', 'shared', 'shared');
|
||||||
|
testMountType(123, 'shared-root', 'shared', 'shared');
|
||||||
|
});
|
||||||
|
it('detects external storage root if parent exists', function() {
|
||||||
|
testMountType(123, null, 'external', 'external-root');
|
||||||
|
testMountType(123, 'external', 'external', 'external');
|
||||||
|
testMountType(123, 'external-root', 'external', 'external');
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue