Remove deprecated legacy file actions
Signed-off-by: Julius Härtl <jus@bitgrid.net>
This commit is contained in:
parent
b076e3a17d
commit
5e4eda1ae0
|
@ -67,16 +67,12 @@
|
||||||
var fileActions = new OCA.Files.FileActions();
|
var fileActions = new OCA.Files.FileActions();
|
||||||
// default actions
|
// default actions
|
||||||
fileActions.registerDefaultActions();
|
fileActions.registerDefaultActions();
|
||||||
// legacy actions
|
|
||||||
fileActions.merge(window.FileActions);
|
|
||||||
// regular actions
|
// regular actions
|
||||||
fileActions.merge(OCA.Files.fileActions);
|
fileActions.merge(OCA.Files.fileActions);
|
||||||
|
|
||||||
this._onActionsUpdated = _.bind(this._onActionsUpdated, this);
|
this._onActionsUpdated = _.bind(this._onActionsUpdated, this);
|
||||||
OCA.Files.fileActions.on('setDefault.app-files', this._onActionsUpdated);
|
OCA.Files.fileActions.on('setDefault.app-files', this._onActionsUpdated);
|
||||||
OCA.Files.fileActions.on('registerAction.app-files', this._onActionsUpdated);
|
OCA.Files.fileActions.on('registerAction.app-files', this._onActionsUpdated);
|
||||||
window.FileActions.on('setDefault.app-files', this._onActionsUpdated);
|
|
||||||
window.FileActions.on('registerAction.app-files', this._onActionsUpdated);
|
|
||||||
|
|
||||||
this.files = OCA.Files.Files;
|
this.files = OCA.Files.Files;
|
||||||
|
|
||||||
|
@ -150,8 +146,6 @@
|
||||||
this.files = null;
|
this.files = null;
|
||||||
OCA.Files.fileActions.off('setDefault.app-files', this._onActionsUpdated);
|
OCA.Files.fileActions.off('setDefault.app-files', this._onActionsUpdated);
|
||||||
OCA.Files.fileActions.off('registerAction.app-files', this._onActionsUpdated);
|
OCA.Files.fileActions.off('registerAction.app-files', this._onActionsUpdated);
|
||||||
window.FileActions.off('setDefault.app-files', this._onActionsUpdated);
|
|
||||||
window.FileActions.off('registerAction.app-files', this._onActionsUpdated);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
_onActionsUpdated: function(ev) {
|
_onActionsUpdated: function(ev) {
|
||||||
|
|
|
@ -409,8 +409,6 @@
|
||||||
var fileName = $file.attr('data-file');
|
var fileName = $file.attr('data-file');
|
||||||
|
|
||||||
context.fileActions.currentFile = currentFile;
|
context.fileActions.currentFile = currentFile;
|
||||||
// also set on global object for legacy apps
|
|
||||||
window.FileActions.currentFile = currentFile;
|
|
||||||
|
|
||||||
var callContext = _.extend({}, context);
|
var callContext = _.extend({}, context);
|
||||||
|
|
||||||
|
@ -480,8 +478,6 @@
|
||||||
|
|
||||||
var fileName = fileInfoModel.get('name');
|
var fileName = fileInfoModel.get('name');
|
||||||
this.currentFile = fileName;
|
this.currentFile = fileName;
|
||||||
// also set on global object for legacy apps
|
|
||||||
window.FileActions.currentFile = fileName;
|
|
||||||
|
|
||||||
if (fileList) {
|
if (fileList) {
|
||||||
// compatibility with action handlers that expect these
|
// compatibility with action handlers that expect these
|
||||||
|
@ -659,7 +655,7 @@
|
||||||
if (type === OC.dialogs.FILEPICKER_TYPE_MOVE) {
|
if (type === OC.dialogs.FILEPICKER_TYPE_MOVE) {
|
||||||
context.fileList.move(filename, targetPath, false, context.dir);
|
context.fileList.move(filename, targetPath, false, context.dir);
|
||||||
}
|
}
|
||||||
context.fileList.dirInfo.dirLastCopiedTo = targetPath;
|
context.fileList.dirInfo.dirLastCopiedTo = targetPath;
|
||||||
}, false, "httpd/unix-directory", true, actions, dialogDir);
|
}, false, "httpd/unix-directory", true, actions, dialogDir);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -814,25 +810,4 @@
|
||||||
|
|
||||||
// global file actions to be used by all lists
|
// global file actions to be used by all lists
|
||||||
OCA.Files.fileActions = new OCA.Files.FileActions();
|
OCA.Files.fileActions = new OCA.Files.FileActions();
|
||||||
OCA.Files.legacyFileActions = new OCA.Files.FileActions();
|
|
||||||
|
|
||||||
// for backward compatibility
|
|
||||||
//
|
|
||||||
// legacy apps are expecting a stateful global FileActions object to register
|
|
||||||
// their actions on. Since legacy apps are very likely to break with other
|
|
||||||
// FileList views than the main one ("All files"), actions registered
|
|
||||||
// through window.FileActions will be limited to the main file list.
|
|
||||||
// @deprecated use OCA.Files.FileActions instead
|
|
||||||
window.FileActions = OCA.Files.legacyFileActions;
|
|
||||||
window.FileActions.register = function (mime, name, permissions, icon, action, displayName) {
|
|
||||||
console.warn('FileActions.register() is deprecated, please use OCA.Files.fileActions.register() instead', arguments);
|
|
||||||
OCA.Files.FileActions.prototype.register.call(
|
|
||||||
window.FileActions, mime, name, permissions, icon, action, displayName
|
|
||||||
);
|
|
||||||
};
|
|
||||||
window.FileActions.display = function (parent, triggerEvent, fileList) {
|
|
||||||
fileList = fileList || OCA.Files.App.fileList;
|
|
||||||
console.warn('FileActions.display() is deprecated, please use OCA.Files.fileActions.register() which automatically redisplays actions', mime, name);
|
|
||||||
OCA.Files.FileActions.prototype.display.call(window.FileActions, parent, triggerEvent, fileList);
|
|
||||||
};
|
|
||||||
})();
|
})();
|
||||||
|
|
|
@ -839,8 +839,6 @@
|
||||||
var action = this.fileActions.getDefault(mime,type, permissions);
|
var action = this.fileActions.getDefault(mime,type, permissions);
|
||||||
if (action) {
|
if (action) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
// also set on global object for legacy apps
|
|
||||||
window.FileActions.currentFile = this.fileActions.currentFile;
|
|
||||||
action(filename, {
|
action(filename, {
|
||||||
$file: $tr,
|
$file: $tr,
|
||||||
fileList: this,
|
fileList: this,
|
||||||
|
@ -865,8 +863,6 @@
|
||||||
var permissions = this.fileActions.getCurrentPermissions();
|
var permissions = this.fileActions.getCurrentPermissions();
|
||||||
var action = this.fileActions.get(mime, type, permissions)['Details'];
|
var action = this.fileActions.get(mime, type, permissions)['Details'];
|
||||||
if (action) {
|
if (action) {
|
||||||
// also set on global object for legacy apps
|
|
||||||
window.FileActions.currentFile = this.fileActions.currentFile;
|
|
||||||
action(filename, {
|
action(filename, {
|
||||||
$file: $tr,
|
$file: $tr,
|
||||||
fileList: this,
|
fileList: this,
|
||||||
|
@ -1022,7 +1018,7 @@
|
||||||
if (type === OC.dialogs.FILEPICKER_TYPE_MOVE) {
|
if (type === OC.dialogs.FILEPICKER_TYPE_MOVE) {
|
||||||
self.move(files, targetPath, disableLoadingState);
|
self.move(files, targetPath, disableLoadingState);
|
||||||
}
|
}
|
||||||
self.dirInfo.dirLastCopiedTo = targetPath;
|
self.dirInfo.dirLastCopiedTo = targetPath;
|
||||||
}, false, "httpd/unix-directory", true, actions, dialogDir);
|
}, false, "httpd/unix-directory", true, actions, dialogDir);
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
},
|
},
|
||||||
|
@ -3273,7 +3269,7 @@
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Are all files selected?
|
* Are all files selected?
|
||||||
*
|
*
|
||||||
* @returns {Boolean} all files are selected
|
* @returns {Boolean} all files are selected
|
||||||
*/
|
*/
|
||||||
isAllSelected: function() {
|
isAllSelected: function() {
|
||||||
|
|
|
@ -24,7 +24,6 @@ describe('OCA.Files.App tests', function() {
|
||||||
var pushStateStub;
|
var pushStateStub;
|
||||||
var replaceStateStub;
|
var replaceStateStub;
|
||||||
var parseUrlQueryStub;
|
var parseUrlQueryStub;
|
||||||
var oldLegacyFileActions;
|
|
||||||
|
|
||||||
beforeEach(function() {
|
beforeEach(function() {
|
||||||
$('#testArea').append(
|
$('#testArea').append(
|
||||||
|
@ -43,9 +42,6 @@ describe('OCA.Files.App tests', function() {
|
||||||
'</div>'
|
'</div>'
|
||||||
);
|
);
|
||||||
|
|
||||||
oldLegacyFileActions = window.FileActions;
|
|
||||||
window.FileActions = new OCA.Files.FileActions();
|
|
||||||
OCA.Files.legacyFileActions = window.FileActions;
|
|
||||||
OCA.Files.fileActions = new OCA.Files.FileActions();
|
OCA.Files.fileActions = new OCA.Files.FileActions();
|
||||||
|
|
||||||
pushStateStub = sinon.stub(OC.Util.History, 'pushState');
|
pushStateStub = sinon.stub(OC.Util.History, 'pushState');
|
||||||
|
@ -58,8 +54,6 @@ describe('OCA.Files.App tests', function() {
|
||||||
afterEach(function() {
|
afterEach(function() {
|
||||||
App.destroy();
|
App.destroy();
|
||||||
|
|
||||||
window.FileActions = oldLegacyFileActions;
|
|
||||||
|
|
||||||
pushStateStub.restore();
|
pushStateStub.restore();
|
||||||
replaceStateStub.restore();
|
replaceStateStub.restore();
|
||||||
parseUrlQueryStub.restore();
|
parseUrlQueryStub.restore();
|
||||||
|
@ -71,66 +65,6 @@ describe('OCA.Files.App tests', function() {
|
||||||
expect(App.fileList.fileActions.actions.all).toBeDefined();
|
expect(App.fileList.fileActions.actions.all).toBeDefined();
|
||||||
expect(App.fileList.$el.is('#app-content-files')).toEqual(true);
|
expect(App.fileList.$el.is('#app-content-files')).toEqual(true);
|
||||||
});
|
});
|
||||||
it('merges the legacy file actions with the default ones', function() {
|
|
||||||
var legacyActionStub = sinon.stub();
|
|
||||||
var actionStub = sinon.stub();
|
|
||||||
// legacy action
|
|
||||||
window.FileActions.register(
|
|
||||||
'all',
|
|
||||||
'LegacyTest',
|
|
||||||
OC.PERMISSION_READ,
|
|
||||||
OC.imagePath('core', 'actions/test'),
|
|
||||||
legacyActionStub
|
|
||||||
);
|
|
||||||
// legacy action to be overwritten
|
|
||||||
window.FileActions.register(
|
|
||||||
'all',
|
|
||||||
'OverwriteThis',
|
|
||||||
OC.PERMISSION_READ,
|
|
||||||
OC.imagePath('core', 'actions/test'),
|
|
||||||
legacyActionStub
|
|
||||||
);
|
|
||||||
|
|
||||||
// regular file actions
|
|
||||||
OCA.Files.fileActions.register(
|
|
||||||
'all',
|
|
||||||
'RegularTest',
|
|
||||||
OC.PERMISSION_READ,
|
|
||||||
OC.imagePath('core', 'actions/test'),
|
|
||||||
actionStub
|
|
||||||
);
|
|
||||||
|
|
||||||
// overwrite
|
|
||||||
OCA.Files.fileActions.register(
|
|
||||||
'all',
|
|
||||||
'OverwriteThis',
|
|
||||||
OC.PERMISSION_READ,
|
|
||||||
OC.imagePath('core', 'actions/test'),
|
|
||||||
actionStub
|
|
||||||
);
|
|
||||||
|
|
||||||
App.initialize();
|
|
||||||
|
|
||||||
var actions = App.fileList.fileActions.actions;
|
|
||||||
var context = { fileActions: sinon.createStubInstance(OCA.Files.FileActions) };
|
|
||||||
actions.all.OverwriteThis.action('testFileName', context);
|
|
||||||
expect(actionStub.calledOnce).toBe(true);
|
|
||||||
expect(context.fileActions._notifyUpdateListeners.callCount).toBe(2);
|
|
||||||
expect(context.fileActions._notifyUpdateListeners.getCall(0).calledWith('beforeTriggerAction')).toBe(true);
|
|
||||||
expect(context.fileActions._notifyUpdateListeners.getCall(1).calledWith('afterTriggerAction')).toBe(true);
|
|
||||||
actions.all.LegacyTest.action('testFileName', context);
|
|
||||||
expect(legacyActionStub.calledOnce).toBe(true);
|
|
||||||
expect(context.fileActions._notifyUpdateListeners.callCount).toBe(4);
|
|
||||||
expect(context.fileActions._notifyUpdateListeners.getCall(2).calledWith('beforeTriggerAction')).toBe(true);
|
|
||||||
expect(context.fileActions._notifyUpdateListeners.getCall(3).calledWith('afterTriggerAction')).toBe(true);
|
|
||||||
actions.all.RegularTest.action('testFileName', context);
|
|
||||||
expect(actionStub.calledTwice).toBe(true);
|
|
||||||
expect(context.fileActions._notifyUpdateListeners.callCount).toBe(6);
|
|
||||||
expect(context.fileActions._notifyUpdateListeners.getCall(4).calledWith('beforeTriggerAction')).toBe(true);
|
|
||||||
expect(context.fileActions._notifyUpdateListeners.getCall(5).calledWith('afterTriggerAction')).toBe(true);
|
|
||||||
// default one still there
|
|
||||||
expect(actions.dir.Open.action).toBeDefined();
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('URL handling', function() {
|
describe('URL handling', function() {
|
||||||
|
|
|
@ -42,16 +42,6 @@ describe('OCA.Files.FavoritesPlugin tests', function() {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
describe('file actions', function() {
|
describe('file actions', function() {
|
||||||
var oldLegacyFileActions;
|
|
||||||
|
|
||||||
beforeEach(function() {
|
|
||||||
oldLegacyFileActions = window.FileActions;
|
|
||||||
window.FileActions = new OCA.Files.FileActions();
|
|
||||||
});
|
|
||||||
|
|
||||||
afterEach(function() {
|
|
||||||
window.FileActions = oldLegacyFileActions;
|
|
||||||
});
|
|
||||||
it('provides default file actions', function() {
|
it('provides default file actions', function() {
|
||||||
var fileActions = fileList.fileActions;
|
var fileActions = fileList.fileActions;
|
||||||
|
|
||||||
|
@ -78,22 +68,6 @@ describe('OCA.Files.FavoritesPlugin tests', function() {
|
||||||
|
|
||||||
expect(fileList.fileActions.actions.all.RegularTest).toBeDefined();
|
expect(fileList.fileActions.actions.all.RegularTest).toBeDefined();
|
||||||
});
|
});
|
||||||
it('does not provide legacy file actions', function() {
|
|
||||||
var actionStub = sinon.stub();
|
|
||||||
// legacy file action
|
|
||||||
window.FileActions.register(
|
|
||||||
'all',
|
|
||||||
'LegacyTest',
|
|
||||||
OC.PERMISSION_READ,
|
|
||||||
OC.imagePath('core', 'actions/shared'),
|
|
||||||
actionStub
|
|
||||||
);
|
|
||||||
|
|
||||||
Plugin.favoritesFileList = null;
|
|
||||||
fileList = Plugin.showFileList($('#app-content-favorites'));
|
|
||||||
|
|
||||||
expect(fileList.fileActions.actions.all.LegacyTest).not.toBeDefined();
|
|
||||||
});
|
|
||||||
it('redirects to files app when opening a directory', function() {
|
it('redirects to files app when opening a directory', function() {
|
||||||
var oldList = OCA.Files.App.fileList;
|
var oldList = OCA.Files.App.fileList;
|
||||||
// dummy new list to make sure it exists
|
// dummy new list to make sure it exists
|
||||||
|
|
|
@ -37,8 +37,6 @@ OCA.Sharing.PublicApp = {
|
||||||
fileActions = new OCA.Files.FileActions();
|
fileActions = new OCA.Files.FileActions();
|
||||||
// default actions
|
// default actions
|
||||||
fileActions.registerDefaultActions();
|
fileActions.registerDefaultActions();
|
||||||
// legacy actions
|
|
||||||
fileActions.merge(window.FileActions);
|
|
||||||
// regular actions
|
// regular actions
|
||||||
fileActions.merge(OCA.Files.fileActions);
|
fileActions.merge(OCA.Files.fileActions);
|
||||||
|
|
||||||
|
|
|
@ -57,16 +57,6 @@ describe('OCA.Sharing.App tests', function() {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
describe('file actions', function() {
|
describe('file actions', function() {
|
||||||
var oldLegacyFileActions;
|
|
||||||
|
|
||||||
beforeEach(function() {
|
|
||||||
oldLegacyFileActions = window.FileActions;
|
|
||||||
window.FileActions = new OCA.Files.FileActions();
|
|
||||||
});
|
|
||||||
|
|
||||||
afterEach(function() {
|
|
||||||
window.FileActions = oldLegacyFileActions;
|
|
||||||
});
|
|
||||||
it('provides default file actions', function() {
|
it('provides default file actions', function() {
|
||||||
_.each([fileListIn, fileListOut], function(fileList) {
|
_.each([fileListIn, fileListOut], function(fileList) {
|
||||||
var fileActions = fileList.fileActions;
|
var fileActions = fileList.fileActions;
|
||||||
|
@ -95,22 +85,6 @@ describe('OCA.Sharing.App tests', function() {
|
||||||
|
|
||||||
expect(fileListIn.fileActions.actions.all.RegularTest).toBeDefined();
|
expect(fileListIn.fileActions.actions.all.RegularTest).toBeDefined();
|
||||||
});
|
});
|
||||||
it('does not provide legacy file actions', function() {
|
|
||||||
var actionStub = sinon.stub();
|
|
||||||
// legacy file action
|
|
||||||
window.FileActions.register(
|
|
||||||
'all',
|
|
||||||
'LegacyTest',
|
|
||||||
OC.PERMISSION_READ,
|
|
||||||
OC.imagePath('core', 'actions/shared'),
|
|
||||||
actionStub
|
|
||||||
);
|
|
||||||
|
|
||||||
App._inFileList = null;
|
|
||||||
fileListIn = App.initSharingIn($('#app-content-sharingin'));
|
|
||||||
|
|
||||||
expect(fileListIn.fileActions.actions.all.LegacyTest).not.toBeDefined();
|
|
||||||
});
|
|
||||||
it('redirects to files app when opening a directory', function() {
|
it('redirects to files app when opening a directory', function() {
|
||||||
var oldList = OCA.Files.App.fileList;
|
var oldList = OCA.Files.App.fileList;
|
||||||
// dummy new list to make sure it exists
|
// dummy new list to make sure it exists
|
||||||
|
|
Loading…
Reference in New Issue