/////////////////////////////////////////////////////////////////////////////// function OnInit(data){ data.name = "Command.Generic: SetVar"; data.desc = "Set, toggle, delete variables from buttons, scripts or external applications."; data.copyright = "tbone in o9/2o14"; data.version = "0.1"; data.min_version = "11.7.1"; data.default_enable = true; var cmd = data.AddCommand(); cmd.name = "SetVar"; cmd.method = "Command_SetVar"; cmd.desc = data.desc; cmd.label = "Set Var"; cmd.template = "SET/S,DELETE/S,TOGGLE/S,EXISTS/S,NAME/K,PERSIST/S,DEPERSIST/S,NOCREATE/S,NOSET/S,TOGGLEHIGH/K,TOGGLELOW/K,TOGGLEDEL/S,VALUE/R,"; data.config["DebugOutput"] = false; } /////////////////////////////////////////////////////////////////////////////// var COMMAND_ABORTED = false; //==0 var COMMAND_SUCCEEDED = true; //!=0 /////////////////////////////////////////////////////////////////////////////// function Command_SetVar(data) { Debug("SetVar(): "); var commandResult = COMMAND_SUCCEEDED; var operation = "SET"; var params = { opSet : GetParameter(data, "SET", null, true), opDelete : GetParameter(data, "DELETE", null, false), opToggle : GetParameter(data, "TOGGLE", null, false), opExists : GetParameter(data, "EXISTS", null, false), varName : GetParameter(data, "NAME", null, ""), varValue : GetParameter(data, "VALUE", null, ""), varPers : GetParameter(data, "PERSIST", null, false), varDePers : GetParameter(data, "DEPERSIST", null, false), varNoCreate : GetParameter(data, "NOCREATE", null, false), varNoSet : GetParameter(data, "NOSET", null, false), varTogLow : GetParameter(data, "TOGGLELOW", null, 0), varTogDel : GetParameter(data, "TOGGLEDEL", null, false), varTogHigh : GetParameter(data, "TOGGLEHIGH", null, 1) } if (params.opDelete) operation = "DELETE"; if (params.opToggle) operation = "TOGGLE"; if (params.opExists) operation = "EXISTS"; Debug(" Operation : " + operation); Debug(" NAME : " + params.varName); Debug(" VALUE : " + params.varValue); Debug(" PERSIST : " + params.varPers); Debug(" DEPERSIST : " + params.varDePers); Debug(" NOCRETE : " + params.varNoCreate); Debug(" NOSET : " + params.varNoSet); Debug(" TOGGLEHIGH: " + params.varTogLow); Debug(" TOGGLELOW : " + params.varTogHigh); Debug(" TOGGLEDEL : " + params.varTogDel); if (params.varName==""){ Debug("E No variable name given."); operation = "NONE"; commandResult = COMMAND_ABORTED; } switch(operation){ case "SET": commandResult = Set(params); break; case "TOGGLE": commandResult = Toggle(params); break; case "DELETE": commandResult = Delete(params); break; case "EXISTS": if(!DOpus.vars.Exists(params.varName)) commandResult = COMMAND_ABORTED; else commandResult = COMMAND_SUCCEEDED; break; case "NONE": default: Debug(" Do nothing.."); break; } DOpus.Create.Command.UpdateToggle(); return commandResult; } /////////////////////////////////////////////////////////////////////////////// function Set(params){ Debug(" Set variable ["+params.varName+"]"); var proceed = true; if (params.varValue==="") Debug("W No value given ["+params.varValue+"]."); if(!DOpus.vars.Exists(params.varName)){ Debug("I Variable ["+params.varName+"] did not exist yet."); if (!params.varNoCreate){ Debug(" Creating variable"); DOpus.vars.Set(params.varName,""); } else { Debug(" Creation skipped (NOCREATE)"); proceed = false; } } if (proceed){ var variable = DOpus.vars(params.varName); if (!params.varNoSet){ Debug(" Setting value ["+params.varValue+"]"); variable.value = params.varValue; } else { Debug(" Setting value skipped (NOSET)"); } if(params.varPers){ Debug(" Persisting variable"); variable.persist = true; } if(params.varDePers){ Debug(" DePersisting variable"); variable.persist = false; } } return COMMAND_SUCCEEDED; } /////////////////////////////////////////////////////////////////////////////// function Toggle(params){ Debug(" Toggle variable ["+params.varName+"]"); if(!DOpus.vars.Exists(params.varName)){ params.varValue=params.varTogHigh; Set(params); } else { var variable = DOpus.vars(params.varName); Debug(" Current toggle value ["+variable.value+"]"); if ( variable.value=="" || variable.value=="0" || !variable.value || variable.value=="false" || variable.value==params.varTogLow){ Debug(" Toggling to ["+params.varTogHigh+"]"); params.varValue=params.varTogHigh; Set(params); } else { if (params.varTogDel){ Debug(" Toggling to "); Delete(params); } else { Debug(" Toggling to ["+params.varTogLow+"]"); params.varValue=params.varTogLow; Set(params); } } } return COMMAND_SUCCEEDED; } /////////////////////////////////////////////////////////////////////////////// function Delete(params){ Debug(" Delete variable ["+params.varName+"]"); if(!DOpus.vars.Exists(params.varName)){ Debug("I Variable ["+params.varName+"] did not exist"); return COMMAND_ABORTED; } else { DOpus.vars.Delete(params.varName); } return COMMAND_SUCCEEDED; } /////////////////////////////////////////////////////////////////////////////// function Debug(text) { try{ if(Script); if (0 || Script.config.DebugOutput) DOpus.Output(text); } catch(e){ DOpus.Output(text); } } /////////////////////////////////////////////////////////////////////////////// function GetParameter( data, templateName, configName, defaultValue){ // v0.8 function VectorToArray(vector){ var a = new Array(); for(var v=0;v