|
|
@@ -1,50 +1,63 @@ |
|
|
|
import './legacy/filemimetypeplugin' |
|
|
|
import './legacy/filenameplugin' |
|
|
|
import './legacy/filesizeplugin' |
|
|
|
import './legacy/filesystemtagsplugin' |
|
|
|
import './legacy/requestremoteaddressplugin' |
|
|
|
import './legacy/requesttimeplugin' |
|
|
|
import './legacy/requesturlplugin' |
|
|
|
import './legacy/requestuseragentplugin' |
|
|
|
import './legacy/usergroupmembershipplugin' |
|
|
|
|
|
|
|
import Vue from 'vue' |
|
|
|
import Vuex from 'vuex' |
|
|
|
|
|
|
|
import store from './store' |
|
|
|
|
|
|
|
import Settings from './components/Workflow' |
|
|
|
import FileMimeType from './components/Values/FileMimeType'; |
|
|
|
import FileValues from './components/Values/file' |
|
|
|
|
|
|
|
/** |
|
|
|
* A plugin for displaying a custom value field for checks |
|
|
|
* |
|
|
|
* @typedef {Object} CheckPlugin |
|
|
|
* @property {string} class - The PHP class name of the check |
|
|
|
* @property {Comparison[]} operators - A list of possible comparison operations running on the check |
|
|
|
* @property {Vue} component - A vue component to handle the rendering of options |
|
|
|
* The component should handle the v-model directive properly, |
|
|
|
* so it needs a value property to receive data and emit an input |
|
|
|
* event once the data has changed |
|
|
|
**/ |
|
|
|
|
|
|
|
/** |
|
|
|
* A plugin for extending the admin page repesentation of a operator |
|
|
|
* |
|
|
|
* @typedef {Object} OperatorPlugin |
|
|
|
* @property {string} class - The PHP class name of the check |
|
|
|
* @property {string} operation - Default value for the operation field |
|
|
|
* @property {string} color - Custom color code to be applied for the operator selector |
|
|
|
* @property {Vue} component - A vue component to handle the rendering of options |
|
|
|
* The component should handle the v-model directive properly, |
|
|
|
* so it needs a value property to receive data and emit an input |
|
|
|
* event once the data has changed |
|
|
|
*/ |
|
|
|
|
|
|
|
/** |
|
|
|
* @typedef {Object} Comparison |
|
|
|
* @property {string} operator - value the comparison should have, e.g. !less, greater |
|
|
|
* @property {string} name - Translated readable text, e.g. less or equals |
|
|
|
**/ |
|
|
|
|
|
|
|
/** |
|
|
|
* Public javascript api for apps to register custom plugins |
|
|
|
*/ |
|
|
|
window.OCA.WorkflowEngine = Object.assign({}, OCA.WorkflowEngine, { |
|
|
|
/** |
|
|
|
* |
|
|
|
* @param {CheckPlugin} Plugin |
|
|
|
*/ |
|
|
|
registerCheck: function (Plugin) { |
|
|
|
store.commit('addPluginCheck', Plugin) |
|
|
|
}, |
|
|
|
/** |
|
|
|
* |
|
|
|
* @param {OperatorPlugin} Plugin |
|
|
|
*/ |
|
|
|
registerOperator: function (Plugin) { |
|
|
|
store.commit('addPluginOperator', Plugin) |
|
|
|
} |
|
|
|
}) |
|
|
|
|
|
|
|
// Load legacy plugins for now and register them in the new plugin system |
|
|
|
Object.values(OCA.WorkflowEngine.Plugins).map((plugin) => { |
|
|
|
if (plugin.component) { |
|
|
|
return { ...plugin.getCheck(), component: plugin.component() } |
|
|
|
} |
|
|
|
return plugin.getCheck() |
|
|
|
}).forEach((legacyCheckPlugin) => window.OCA.WorkflowEngine.registerCheck(legacyCheckPlugin)) |
|
|
|
|
|
|
|
// new way of registering checks |
|
|
|
window.OCA.WorkflowEngine.registerCheck({ |
|
|
|
class: 'OCA\\WorkflowEngine\\Check\\FileMimeType', |
|
|
|
name: t('workflowengine', 'File MIME type'), |
|
|
|
operators: [ |
|
|
|
{ operator: 'is', name: t('workflowengine', 'is') }, |
|
|
|
{ operator: '!is', name: t('workflowengine', 'is not') }, |
|
|
|
{ operator: 'matches', name: t('workflowengine', 'matches') }, |
|
|
|
{ operator: '!matches', name: t('workflowengine', 'does not match') } |
|
|
|
], |
|
|
|
component: FileMimeType |
|
|
|
}) |
|
|
|
// Register shipped checks for file entity |
|
|
|
FileValues.forEach((checkPlugin) => window.OCA.WorkflowEngine.registerCheck(checkPlugin)) |
|
|
|
|
|
|
|
Vue.use(Vuex) |
|
|
|
Vue.prototype.t = t |