importPackage(Packages.de.elo.ix.client); importPackage(Packages.de.elo.ix.jscript); //@include lib_Class.js //@include lib_sol.common.Config.js //@include lib_sol.common.JsonUtils.js //@include lib_sol.common.SordUtils.js //@include lib_sol.common.IxUtils.js //@include lib_sol.common.WfUtils.js //@include lib_sol.common.CounterUtils.js //@include lib_sol.common.AclUtils.js //@include lib_sol.common.RepoUtils.js //@include lib_sol.common.Template.js //@include lib_sol.common.TranslateTerms.js //@include lib_sol.common.ix.RfUtils.js //@include lib_sol.common.ix.ActionBase.js //@include lib_sol.common.ix.FunctionBase.js //@include lib_sol.common.ExceptionUtils.js //@include lib_sol.dev.ix.ActionUtils.js var logger = sol.create("sol.Logger", { scope: "sol.dev.ix.actions.Deploy" }); /** * Deploys / Undeploys a package. * * @eloix * @requires sol.common.Config * @requires sol.common.JsonUtils * @requires sol.common.SordUtils * @requires sol.common.IxUtils * @requires sol.common.CounterUtils * @requires sol.common.AclUtils * @requires sol.common.RepoUtils * @requires sol.common.Template * @requires sol.common.TranslateTerms * @requires sol.common.WfUtils * @requires sol.common.ix.RfUtils * @requires sol.common.ix.ActionBase * @requires sol.common.ix.FunctionBase * @requires sol.common.ix.functions.CopyFolderContents * @requires sol.common.ix.functions.CopySordData * @requires sol.common.ActionUtils */ sol.define("sol.dev.ix.actions.Deploy", { extend: "sol.common.ix.ActionBase", requiredConfig: ["ci", "user", "objId", "mode"], /** * @cfg {de.elo.ix.client.ClientInfo} ci (required) */ /** * @cfg {de.elo.ix.client.UserInfo} user (required) */ /** * @cfg {String} objId (required) * Object ID of the selected package */ /** * @cfg {String} mode (required) * Deploy or undeploy selected package */ initialize: function (config) { var me = this; me.$super("sol.common.ix.ActionBase", "initialize", [config]); me.config = sol.dev.ix.ActionUtils.loadConfigDev(); }, getName: function () { return "Deploy"; }, process: function () { var me = this, name, flowId, wfTemplate, sord; if ((!me.objId) || (!me.isPackage(me.objId))) { if (me.mode == "deploy") { me.addErrorEvent("sol.dev.ix.actions.Deploy.error.target", null, null, me.ci); } else { me.addErrorEvent("sol.dev.ix.actions.Undeploy.error.target", null, null, me.ci); } return; } if (me.mode == "undeploy") { sord = sol.common.RepoUtils.getSord(me.objId); if (sord.name.indexOf("undeployed") > -1) { me.addErrorEvent("sol.dev.ix.actions.Undeploy.error.target", null, null, me.ci); return; } } name = me.buildElementName(me.mode); wfTemplate = me.getWfTemplate(me.mode); flowId = me.startWorkflow(me.objId, wfTemplate, name); if (flowId) { me.addWfDialogEvent(flowId, { objId: me.objId, title: name, dialogId: me.getName() }); me.addRefreshEvent(me.objId); } }, isPackage: function (objId) { var sord; sord = sol.common.RepoUtils.getSord(objId); return sol.common.SordUtils.hasDocMask(sord, "ELO Business Solution"); }, /** * @private * @param {String} mode * @return {String} */ getWfTemplate: function (mode) { var me = this, wfTemplate; switch (mode) { case "deploy": wfTemplate = me.config.workflows.Deploy.workflowTemplateName; break; case "undeploy": wfTemplate = me.config.workflows.Undeploy.workflowTemplateName; break; default: wfTemplate = me.config.workflows.Deploy.workflowTemplateName; } return wfTemplate; }, /** * @private * @return {Object} */ buildElementName: function (mode) { var me = this, prefix, wfName; switch (mode) { case "deploy": prefix = me.getLocalizedString(me.ci, me.config.workflows.Deploy.workflowPrefixKey); wfName = sol.create("sol.common.Template", { source: me.config.workflows.Deploy.workflowNameTemplate }).apply({ wfPrefix: prefix, mode: me.mode }); break; case "undeploy": prefix = me.getLocalizedString(me.ci, me.config.workflows.Undeploy.workflowPrefixKey); wfName = sol.create("sol.common.Template", { source: me.config.workflows.Undeploy.workflowNameTemplate }).apply({ wfPrefix: prefix, mode: me.mode }); break; default: prefix = me.getLocalizedString(me.ci, me.config.workflows.Undeploy.workflowPrefixKey); wfName = sol.create("sol.common.Template", { source: me.config.workflows.Undeploy.workflowNameTemplate }).apply({ wfPrefix: prefix, mode: me.mode }); } return wfName; } }); /** * @member sol.dev.ix.actions.Deploy * @method RF_sol_dev_action_Deploy * @static * @inheritdoc sol.common.ix.FunctionBase#RF_FunctionName */ function RF_sol_dev_action_Deploy(ec, configAny) { logger.enter("RF_sol_dev_action_Deploy", configAny); var rfUtils = sol.common.ix.RfUtils, config = rfUtils.parseAndCheckParams(ec, arguments.callee.name, configAny, "objId", "mode"), Deploy, result; config.ci = ec.ci; config.user = ec.user; Deploy = sol.create("sol.dev.ix.actions.Deploy", config); result = Deploy.execute(); logger.exit("RF_sol_dev_action_Deploy", result); return result; }