Merge pull request #21181 from owncloud/files-fixsharedrootdetection
Fix mount type root detection in web UI
This commit is contained in:
commit
db41c4f4b5
|
@ -990,13 +990,16 @@
|
|||
}
|
||||
|
||||
if (fileData.mountType) {
|
||||
// FIXME: HACK: detect shared-root
|
||||
if (fileData.mountType === 'shared' && this.dirInfo.mountType !== 'shared') {
|
||||
// if parent folder isn't share, assume the displayed folder is a share root
|
||||
fileData.mountType = 'shared-root';
|
||||
} else if (fileData.mountType === 'external' && this.dirInfo.mountType !== 'external') {
|
||||
// if parent folder isn't external, assume the displayed folder is the external storage root
|
||||
fileData.mountType = 'external-root';
|
||||
// dirInfo (parent) only exist for the "real" file list
|
||||
if (this.dirInfo.id) {
|
||||
// FIXME: HACK: detect shared-root
|
||||
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
|
||||
fileData.mountType = 'shared-root';
|
||||
} 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
|
||||
fileData.mountType = 'external-root';
|
||||
}
|
||||
}
|
||||
tr.attr('data-mounttype', fileData.mountType);
|
||||
}
|
||||
|
|
|
@ -2534,4 +2534,34 @@ describe('OCA.Files.FileList tests', function() {
|
|||
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