private void LoadItem(string db, string id) { Assert.ArgumentNotNull(id, "id"); Assert.ArgumentNotNull(db, "db"); var scriptItem = Factory.GetDatabase(db).GetItem(id); if (!scriptItem.IsPowerShellScript()) { SessionElevationErrors.OperationFailedWrongDataTemplate(); return; } if (scriptItem[Templates.Script.Fields.ScriptBody] != null) { Editor.Value = scriptItem[Templates.Script.Fields.ScriptBody]; SheerResponse.Eval("spe.updateEditor();"); ScriptItemId = scriptItem.ID.ToString(); ScriptItemDb = scriptItem.Database.Name; MruUpdate(scriptItem); UpdateRibbon(); } else { SheerResponse.Alert(Texts.PowerShellIse_LoadItem_The_item_is_not_a_script_, true); } }
public void Process(WorkflowPipelineArgs args) { Assert.ArgumentNotNull(args, "args"); var processorItem = args.ProcessorItem; if (processorItem == null) { return; } var actionItem = processorItem.InnerItem; var dataItem = args.DataItem; if (string.IsNullOrEmpty(actionItem[Templates.ScriptWorkflowAction.Fields.ScriptBody])) { return; } var scriptItem = actionItem.Database.GetItem(new ID(actionItem[Templates.ScriptWorkflowAction.Fields.ScriptBody])); if (!scriptItem.IsPowerShellScript()) { Context.ClientPage.ClientResponse.Broadcast(SessionElevationErrors.OperationFailedWrongDataTemplate(), "Shell"); return; } if (!RulesUtils.EvaluateRules(actionItem[Templates.ScriptWorkflowAction.Fields.EnableRule], dataItem) || !RulesUtils.EvaluateRules(scriptItem[Templates.Script.Fields.ShowRule], dataItem)) { return; } var str = new UrlString(UIUtil.GetUri("control:PowerShellRunner")); str.Append("id", dataItem.ID.ToString()); str.Append("db", dataItem.Database.Name); str.Append("lang", dataItem.Language.Name); str.Append("ver", dataItem.Version.Number.ToString(CultureInfo.InvariantCulture)); str.Append("scriptId", scriptItem.ID.ToString()); str.Append("scriptDb", scriptItem.Database.Name); if (Context.ClientPage.Application != null) { Context.ClientPage.ClientResponse.Broadcast(SheerResponse.ShowModalDialog(str.ToString(), "400", "220", "PowerShell Script Results", false), "Shell"); } else { SheerResponse.ShowModalDialog(str.ToString(), "400", "220"); } }
private void ExecuteScriptJob(Item scriptItem, ScriptSession scriptSession, Message message, bool autoDispose) { if (!scriptItem.IsPowerShellScript()) { SessionElevationErrors.OperationFailedWrongDataTemplate(); return; } var script = scriptItem[Templates.Script.Fields.ScriptBody] ?? string.Empty; SetVariables(scriptSession, message); scriptSession.SetExecutedScript(scriptItem); scriptSession.Interactive = true; ScriptSessionId = scriptSession.ID; var progressBoxRunner = new ScriptRunner(ExecuteInternal, scriptSession, script, autoDispose); Monitor.Start($"SPE - \"{ListViewer?.Data?.Title}\" - \"{scriptItem?.Name}\"", "UI", progressBoxRunner.Run); LvProgressOverlay.Visible = false; Monitor.SessionID = scriptSession.ID; }
public void Process(WorkflowPipelineArgs args) { Assert.ArgumentNotNull(args, "args"); ProcessorItem processorItem = args.ProcessorItem; if (processorItem != null) { Item innerItem = processorItem.InnerItem; Item dataItem = args.DataItem; if (!string.IsNullOrEmpty(innerItem[Templates.ScriptWorkflowAction.Fields.ScriptBody])) { Item item = innerItem.Database.GetItem(new ID(innerItem[Templates.ScriptWorkflowAction.Fields.ScriptBody])); if (!ItemExtensions.IsPowerShellScript(item)) { Context.ClientPage.ClientResponse.Broadcast(SessionElevationErrors.OperationFailedWrongDataTemplate(), "Shell"); } else if ((!RulesUtils.EvaluateRules(innerItem[Templates.ScriptWorkflowAction.Fields.EnableRule], dataItem, false) ? false : RulesUtils.EvaluateRules(item[Templates.Script.Fields.ShowRule], dataItem, false))) { UrlString urlString = new UrlString(UIUtil.GetUri("control:PowerShellRunner")); urlString.Append("id", dataItem.ID.ToString()); urlString.Append("db", dataItem.Database.Name); urlString.Append("lang", dataItem.Language.Name); int number = dataItem.Version.Number; urlString.Append("ver", number.ToString(CultureInfo.InvariantCulture)); urlString.Append("scriptId", item.ID.ToString()); urlString.Append("scriptDb", item.Database.Name); if (Context.ClientPage.Application == null) { SheerResponse.ShowModalDialog(urlString.ToString(), "400", "220"); } else { Context.ClientPage.ClientResponse.Broadcast(SheerResponse.ShowModalDialog(urlString.ToString(), "400", "220", "PowerShell Script Results", false), "Shell"); } } } } }