[Common mobile] Add load and register plugins
This commit is contained in:
parent
85d76282c1
commit
6d517a28f9
|
@ -57,6 +57,8 @@ define([
|
||||||
var modal;
|
var modal;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
configPlugins: {autostart:[]},// {config: 'from editor config', plugins: 'loaded plugins', UIplugins: 'loaded customization plugins', autostart: 'autostart guids'}
|
||||||
|
serverPlugins: {autostart:[]},
|
||||||
models: [],
|
models: [],
|
||||||
collections: [],
|
collections: [],
|
||||||
views: [
|
views: [
|
||||||
|
@ -71,9 +73,11 @@ define([
|
||||||
this.api.asc_registerCallback("asc_onPluginShow", _.bind(this.showPluginModal, this));
|
this.api.asc_registerCallback("asc_onPluginShow", _.bind(this.showPluginModal, this));
|
||||||
this.api.asc_registerCallback("asc_onPluginClose", _.bind(this.pluginClose, this));
|
this.api.asc_registerCallback("asc_onPluginClose", _.bind(this.pluginClose, this));
|
||||||
this.api.asc_registerCallback("asc_onPluginResize", _.bind(this.pluginResize, this));
|
this.api.asc_registerCallback("asc_onPluginResize", _.bind(this.pluginResize, this));
|
||||||
|
this.loadPlugins();
|
||||||
},
|
},
|
||||||
|
|
||||||
onLaunch: function () {
|
onLaunch: function () {
|
||||||
|
Common.Gateway.on('init', this.loadConfig.bind(this));
|
||||||
},
|
},
|
||||||
|
|
||||||
setMode: function(mode) {
|
setMode: function(mode) {
|
||||||
|
@ -173,6 +177,84 @@ define([
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
loadConfig: function(data) {
|
||||||
|
this.configPlugins.config = data.config.plugins;
|
||||||
|
},
|
||||||
|
|
||||||
|
loadPlugins: function() {
|
||||||
|
var me = this;
|
||||||
|
if (me.configPlugins.config) {
|
||||||
|
me.configPlugins.plugins = me.getPlugins(me.configPlugins.config);
|
||||||
|
me.registerPlugins();
|
||||||
|
} else {
|
||||||
|
me.configPlugins.plugins = false;
|
||||||
|
}
|
||||||
|
var server_plugins_url = '../../../../plugins.json';
|
||||||
|
Common.Utils.loadConfig(server_plugins_url, function (obj) {
|
||||||
|
if ( obj != 'error' ) {
|
||||||
|
me.serverPlugins.config = obj;
|
||||||
|
me.serverPlugins.plugins = me.getPlugins(me.serverPlugins.config);
|
||||||
|
me.registerPlugins();
|
||||||
|
} else
|
||||||
|
me.serverPlugins.config = false;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
registerPlugins: function() {
|
||||||
|
var me = this;
|
||||||
|
if (me.serverPlugins.plugins && me.configPlugins.plugins) {
|
||||||
|
var arr = me.configPlugins.plugins;
|
||||||
|
arr = arr.concat(me.serverPlugins.plugins);
|
||||||
|
me.api.asc_pluginsRegister('', arr);
|
||||||
|
} else if (me.serverPlugins.plugins) {
|
||||||
|
me.api.asc_pluginsRegister('', me.serverPlugins.plugins);
|
||||||
|
} else {
|
||||||
|
me.api.asc_pluginsRegister('', me.configPlugins.plugins);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
getPlugins: function(pluginsConfig) {
|
||||||
|
var arrPluginsConfigs = [];
|
||||||
|
pluginsConfig.pluginsData.forEach(function(item) {
|
||||||
|
var value = window["Asc"].loadConfigAsInterface(item);
|
||||||
|
value["baseUrl"] = item.substring(0, item.lastIndexOf("config.json"));
|
||||||
|
arrPluginsConfigs.push(value);
|
||||||
|
});
|
||||||
|
var arrPlugins = [];
|
||||||
|
arrPluginsConfigs.forEach(function (item) {
|
||||||
|
var plugin = new Asc.CPlugin();
|
||||||
|
plugin["set_Name"](item["name"]);
|
||||||
|
plugin["set_Guid"](item["guid"]);
|
||||||
|
plugin["set_BaseUrl"](item["baseUrl"]);
|
||||||
|
var variations = item["variations"];
|
||||||
|
var variationsArr = [];
|
||||||
|
variations.forEach(function (itemVar) {
|
||||||
|
var variation = new Asc.CPluginVariation();
|
||||||
|
variation["set_Description"](itemVar["description"]);
|
||||||
|
variation["set_Url"](itemVar["url"]);
|
||||||
|
variation["set_Icons"](itemVar["icons"]);
|
||||||
|
variation["set_Visual"](itemVar["isVisual"]);
|
||||||
|
variation["set_CustomWindow"](itemVar["'isCustomWindow"]);
|
||||||
|
variation["set_System"](itemVar["isSystem"]);
|
||||||
|
variation["set_Viewer"](itemVar["isViewer"]);
|
||||||
|
variation["set_EditorsSupport"](itemVar["EditorsSupport"]);
|
||||||
|
variation["set_Modal"](itemVar["isModal"]);
|
||||||
|
variation["set_InsideMode"](itemVar["isInsideMode"]);
|
||||||
|
variation["set_InitDataType"](itemVar["initDataType"]);
|
||||||
|
variation["set_InitData"](itemVar["initData"]);
|
||||||
|
variation["set_UpdateOleOnResize"](itemVar["isUpdateOleOnResize"]);
|
||||||
|
variation["set_Buttons"](itemVar["buttons"]);
|
||||||
|
variation["set_Size"](itemVar["size"]);
|
||||||
|
variation["set_InitOnSelectionChanged"](itemVar["initOnSelectionChanged"]);
|
||||||
|
variation["set_Events"](itemVar["events"]);
|
||||||
|
variationsArr.push(variation);
|
||||||
|
});
|
||||||
|
plugin["set_Variations"](variationsArr);
|
||||||
|
arrPlugins.push(plugin);
|
||||||
|
});
|
||||||
|
return arrPlugins;
|
||||||
|
},
|
||||||
|
|
||||||
textCancel: 'Cancel',
|
textCancel: 'Cancel',
|
||||||
textLoading: 'Loading'
|
textLoading: 'Loading'
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue