Do not register sidebar panels when no sidebar

This commit is contained in:
Vincent Petry 2015-10-15 16:30:50 +02:00
parent b876f8b2a7
commit 204b3ca189
3 changed files with 49 additions and 6 deletions

View File

@ -2614,15 +2614,19 @@
* Register a tab view to be added to all views * Register a tab view to be added to all views
*/ */
registerTabView: function(tabView) { registerTabView: function(tabView) {
if (this._detailsView) {
this._detailsView.addTabView(tabView); this._detailsView.addTabView(tabView);
}
}, },
/** /**
* Register a detail view to be added to all views * Register a detail view to be added to all views
*/ */
registerDetailView: function(detailView) { registerDetailView: function(detailView) {
if (this._detailsView) {
this._detailsView.addDetailView(detailView); this._detailsView.addDetailView(detailView);
} }
}
}; };
/** /**

View File

@ -65,10 +65,10 @@
this._fileList = options.fileList; this._fileList = options.fileList;
this._fileActions = options.fileActions; this._fileActions = options.fileActions;
if (!this._fileList) { if (!this._fileList) {
throw 'Missing requird parameter "fileList"'; throw 'Missing required parameter "fileList"';
} }
if (!this._fileActions) { if (!this._fileActions) {
throw 'Missing requird parameter "fileActions"'; throw 'Missing required parameter "fileActions"';
} }
}, },

View File

@ -1879,15 +1879,54 @@ describe('OCA.Files.FileList tests', function() {
$tr2.find('td.filename .name').trigger(e); $tr2.find('td.filename .name').trigger(e);
expect(fileList.getSelectedFiles().length).toEqual(0); expect(fileList.getSelectedFiles().length).toEqual(0);
}); });
}) });
}); });
describe('Details sidebar', function() { describe('Details sidebar', function() {
beforeEach(function() { beforeEach(function() {
fileList.setFiles(testFiles); fileList.setFiles(testFiles);
fileList.showDetailsView('Two.jpg'); fileList.showDetailsView('Two.jpg');
}); });
describe('registering', function() {
var addTabStub;
var addDetailStub;
beforeEach(function() {
addTabStub = sinon.stub(OCA.Files.DetailsView.prototype, 'addTabView');
addDetailStub = sinon.stub(OCA.Files.DetailsView.prototype, 'addDetailView');
});
afterEach(function() {
addTabStub.restore();
addDetailStub.restore();
});
it('forward the registered views to the underlying DetailsView', function() {
fileList.destroy();
fileList = new OCA.Files.FileList($('#app-content-files'), {
detailsViewEnabled: true
});
fileList.registerTabView(new OCA.Files.DetailTabView());
fileList.registerDetailView(new OCA.Files.DetailFileInfoView());
expect(addTabStub.calledOnce).toEqual(true);
// twice because the filelist already registers one by default
expect(addDetailStub.calledTwice).toEqual(true);
});
it('does not error when registering panels when not details view configured', function() {
fileList.destroy();
fileList = new OCA.Files.FileList($('#app-content-files'), {
detailsViewEnabled: false
});
fileList.registerTabView(new OCA.Files.DetailTabView());
fileList.registerDetailView(new OCA.Files.DetailFileInfoView());
expect(addTabStub.notCalled).toEqual(true);
expect(addDetailStub.notCalled).toEqual(true);
});
});
it('triggers file action when clicking on row if no details view configured', function() { it('triggers file action when clicking on row if no details view configured', function() {
fileList._detailsView = null; fileList.destroy();
fileList = new OCA.Files.FileList($('#app-content-files'), {
detailsViewEnabled: false
});
var updateDetailsViewStub = sinon.stub(fileList, '_updateDetailsView'); var updateDetailsViewStub = sinon.stub(fileList, '_updateDetailsView');
var actionStub = sinon.stub(); var actionStub = sinon.stub();
fileList.setFiles(testFiles); fileList.setFiles(testFiles);