Fix empty details view after renaming a file
"FileList._updateDetailsView" expects either a file name (as a string) or a file model (as an "OCA.File.FileInfoModel"), but when called through "updateInList" an "OC.Files.FileInfo" object was given instead. As the given attribute was not a model "_updateDetailsView" treated it as a file name and tried to get the model for that file, which failed and caused the details view to be emptied. Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
This commit is contained in:
parent
7a088cfcf5
commit
f29c1cf13a
2 changed files with 31 additions and 1 deletions
|
@ -2266,7 +2266,7 @@
|
||||||
|
|
||||||
function updateInList(fileInfo) {
|
function updateInList(fileInfo) {
|
||||||
self.updateRow(tr, fileInfo);
|
self.updateRow(tr, fileInfo);
|
||||||
self._updateDetailsView(fileInfo, false);
|
self._updateDetailsView(fileInfo.name, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: too many nested blocks, move parts into functions
|
// TODO: too many nested blocks, move parts into functions
|
||||||
|
|
|
@ -674,6 +674,36 @@ describe('OCA.Files.FileList tests', function() {
|
||||||
|
|
||||||
expect(notificationStub.calledOnce).toEqual(true);
|
expect(notificationStub.calledOnce).toEqual(true);
|
||||||
});
|
});
|
||||||
|
it('Shows renamed file details if rename ajax call suceeded', function() {
|
||||||
|
fileList.showDetailsView('One.txt');
|
||||||
|
|
||||||
|
expect($('#app-sidebar').hasClass('disappear')).toEqual(false);
|
||||||
|
expect(fileList._detailsView.getFileInfo().get('id')).toEqual(1);
|
||||||
|
expect(fileList._detailsView.getFileInfo().get('name')).toEqual('One.txt');
|
||||||
|
|
||||||
|
doRename();
|
||||||
|
|
||||||
|
deferredRename.resolve(201);
|
||||||
|
|
||||||
|
expect($('#app-sidebar').hasClass('disappear')).toEqual(false);
|
||||||
|
expect(fileList._detailsView.getFileInfo().get('id')).toEqual(1);
|
||||||
|
expect(fileList._detailsView.getFileInfo().get('name')).toEqual('Tu_after_three.txt');
|
||||||
|
});
|
||||||
|
it('Shows again file details if rename ajax call failed', function() {
|
||||||
|
fileList.showDetailsView('One.txt');
|
||||||
|
|
||||||
|
expect($('#app-sidebar').hasClass('disappear')).toEqual(false);
|
||||||
|
expect(fileList._detailsView.getFileInfo().get('id')).toEqual(1);
|
||||||
|
expect(fileList._detailsView.getFileInfo().get('name')).toEqual('One.txt');
|
||||||
|
|
||||||
|
doRename();
|
||||||
|
|
||||||
|
deferredRename.reject(403);
|
||||||
|
|
||||||
|
expect($('#app-sidebar').hasClass('disappear')).toEqual(false);
|
||||||
|
expect(fileList._detailsView.getFileInfo().get('id')).toEqual(1);
|
||||||
|
expect(fileList._detailsView.getFileInfo().get('name')).toEqual('One.txt');
|
||||||
|
});
|
||||||
it('Correctly updates file link after rename', function() {
|
it('Correctly updates file link after rename', function() {
|
||||||
var $tr;
|
var $tr;
|
||||||
doRename();
|
doRename();
|
||||||
|
|
Loading…
Reference in a new issue