Пример #1
0
        public override void Execute(CommandContext context)
        {
            string scriptId = context.Parameters["script"];
            string scriptDb = context.Parameters["scriptDb"];
            Item scriptItem = Factory.GetDatabase(scriptDb).GetItem(new ID(scriptId));

            string showResults = scriptItem[ScriptItemFieldNames.ShowResults];
            string itemId = string.Empty;
            string itemDb = string.Empty;

            if (context.Items.Length > 0)
            {
                itemId = context.Items[0].ID.ToString();
                itemDb = context.Items[0].Database.Name;
            }

            var str = new UrlString(UIUtil.GetUri("control:PowerShellRunner"));
            str.Append("id", itemId);
            str.Append("db", itemDb);
            str.Append("scriptId", scriptId);
            str.Append("scriptDb", scriptDb);
            str.Append("autoClose", showResults);
            Context.ClientPage.ClientResponse.Broadcast(
                SheerResponse.ShowModalDialog(str.ToString(), "400", "220", "PowerShell Script Results", false),
                "Shell");
        }
Пример #2
0
        public void GetDestination(ClientPipelineArgs args)
        {
            Assert.ArgumentNotNull(args, "args");
            Database database = GetDatabase(args);

            if (args.Result == "undefined")
            {
                args.AbortPipeline();
            }
            else if ((args.Result != null) && (args.Result.Length > 0))
            {
                args.Parameters["target"] = args.Result;
                Item item = database.GetItem(args.Result);
                Assert.IsNotNull(item, typeof(Item), "ID: {0}", new object[] { args.Result });
                if (!item.Access.CanCreate())
                {
                    Context.ClientPage.ClientResponse.Alert("You do not have permission to create items here.");
                    args.AbortPipeline();
                }
                args.IsPostBack = false;
            }
            else
            {
                ListString str   = new ListString(args.Parameters["items"], '|');
                Item       item2 = database.Items[str[0]];
                Assert.IsNotNull(item2, typeof(Item), "ID: {0}", new object[] { str[0] });
                UrlString str2 = new UrlString("/sitecore/shell/Applications/Dialogs/SmartMoveToSubItems.aspx");
                str2.Append("fo", item2.ID.ToString());
                str2.Append("sc_content", item2.Database.Name);
                Context.ClientPage.ClientResponse.ShowModalDialog(str2.ToString(), true);
                args.WaitForPostBack();
            }
        }
        protected void Run(ClientPipelineArgs args)
        {
            Assert.ArgumentNotNull(args, "args");

            string dbName = args.Parameters["databasename"];
            string id = args.Parameters["id"];
            string lang = args.Parameters["language"];
            string ver = args.Parameters["version"];
            Database database = Factory.GetDatabase(dbName);

            Assert.IsNotNull(database, dbName);

            Item obj = database.Items[id, Language.Parse(lang), Version.Parse(ver)];
            if (obj == null)
            {
                SheerResponse.Alert("Item not found.");
            }
            else
            {
                if (!SheerResponse.CheckModified())
                    return;
                if (args.IsPostBack)
                {
                    return;
                }

                UrlString urlString = new UrlString(UIUtil.GetUri("control:SchedulePublish"));
                urlString.Append("id", obj.ID.ToString());
                urlString.Append("unpublish", args.Parameters["unpublish"]);
                SheerResponse.ShowModalDialog(urlString.ToString(), "600", "600", string.Empty, true);
                args.WaitForPostBack();
            }
        }
Пример #4
0
 protected void InsertLink(ClientPipelineArgs args)
 {
     Assert.ArgumentNotNull(args, "args");
     if (args.IsPostBack)
     {
         if (!string.IsNullOrEmpty(args.Result) && (args.Result != "undefined"))
         {
             this.XmlValue = new Sitecore.Shell.Applications.ContentEditor.XmlValue(args.Result, "link");
             this.SetValue();
             this.SetModified();
             Context.ClientPage.ClientResponse.SetAttribute(this.ID, "value", this.Value);
             SheerResponse.Eval("scContent.startValidators()");
         }
     }
     else
     {
         UrlString urlString = new UrlString(args.Parameters["url"]);
         string    width     = args.Parameters["width"];
         string    height    = args.Parameters["height"];
         this.GetHandle().Add(urlString);
         urlString.Append("ro", this.Source);
         urlString.Add("la", this.ItemLanguage);
         urlString.Append("sc_content", WebUtil.GetQueryString("sc_content"));
         Context.ClientPage.ClientResponse.ShowModalDialog(urlString.ToString(), width, height, string.Empty, true);
         args.WaitForPostBack();
     }
 }
Пример #5
0
        protected virtual void Run(ClientPipelineArgs args)
        {
            string databaseName = args.Parameters["databasename"];
             string id = args.Parameters["id"];

             Database database = Factory.GetDatabase(databaseName);
             Assert.IsNotNull(database, typeof (Database), "Database \"" + database + "\" not found.", new object[0]);
             Item item = database.Items[id];

             if (item != null)
             {
                     if (item.Fields[FieldIDs.LayoutField] != null && item.Fields[FieldIDs.LayoutField].Value != string.Empty)
            {
                  if (!args.IsPostBack)
                  {
                     UrlString url = new UrlString(UIUtil.GetUri("control:Calendar.ConfigureControls"));
                     url.Append("id", item.ID.ToString());
                     url.Append("db", item.Database.Name);

                     Windows.RunApplication("Calendar ConfigureControls", url.GetUrl());
                  }
            }
            else
            {
               Context.ClientPage.ClientResponse.Alert(ResourceManager.Localize("ITEM_HAS_NO_LAYOUT"));
            }
             }
             else
             {
            SheerResponse.Alert("Item not found.", new string[0]);
             }
        }
        }                                       // Example "|" ... originally tried adding this as input to rule, but, oddly a single pipe as a value breaks the UI

        public override void Apply(T ruleContext)
        {
            Assert.ArgumentNotNull(ruleContext, "ruleContext");
            Assert.ArgumentNotNullOrEmpty(Name, "Name");
            Assert.ArgumentNotNullOrEmpty(Term, "Term");
            // Assert.ArgumentNotNullOrEmpty(Delimiter, "Delimiter");
            Delimiter = "|"; // hard code for now

            if (string.IsNullOrWhiteSpace(ruleContext.Reference.Settings.Parameters))
            {
                ruleContext.Reference.Settings.Parameters = $"{Name}={Term ?? string.Empty}}}";
                return;
            }

            var urlString = new UrlString(ruleContext.Reference.Settings.Parameters);
            var rawValue  = urlString.Parameters[Name];

            if (string.IsNullOrWhiteSpace(rawValue))
            {
                urlString.Append(Name, Term ?? string.Empty);
                return;
            }

            if (!rawValue.EndsWith(Delimiter))
            {
                rawValue += Delimiter;
            }
            rawValue += Term;

            urlString.Append(Name, rawValue);
            ruleContext.Reference.Settings.Parameters = urlString.GetUrl();
        }
Пример #7
0
        public static ClientCommand ShowTestingModalDialog(ID pageContextItemId, Language language, PageMode pageMode)
        {
            if (pageContextItemId.IsNull)
            {
                throw new ArgumentNullException(nameof(pageContextItemId));
            }

            if (language == null)
            {
                throw new ArgumentNullException(nameof(language));
            }

            if (pageMode == PageMode.None)
            {
                throw new ArgumentException(nameof(pageMode));
            }

            var urlString = new UrlString(UIUtil.GetUri(SitecoreCommandsConstants.TestPageControl));

            urlString.Append(SitecoreCommandsConstants.PageIdArgumentKey, pageContextItemId.ToString());
            urlString.Append(SitecoreCommandsConstants.PageLangArgumentKey, language.ToString());
            urlString.Append(SitecoreCommandsConstants.PageModeArgumentKey, pageMode.ToString());
            urlString.Append(SitecoreCommandsConstants.CypressReportUrlArgumentKey, HttpUtility.UrlEncode(CypressSettings.ReportUrl));

            var clientCommand = SheerResponse.ShowModalDialog(urlString.ToString(), "800px", "800px");

            clientCommand.Load += new EventHandler(ShowLoadingDialog);

            return(clientCommand);
        }
Пример #8
0
        protected void Run(ClientPipelineArgs args)
        {
            Assert.ArgumentNotNull(args, "args");
            if (SheerResponse.CheckModified())
            {
                if (args.IsPostBack)
                {
                    var tempItem = Factory.GetDatabase(args.Parameters["database"]).GetItem(args.Parameters["id"]);

                    var searchStringModel = ExtractSearchQuery(args.Parameters["searchString"]);
                    int hitsCount;
                    var listOfItems = tempItem.Search(searchStringModel, out hitsCount).ToList();
                    Assert.IsNotNull(tempItem, "item");

                    foreach (var sitecoreItem in listOfItems)
                    {
                        var item1 = sitecoreItem.GetItem();
                        if (item1.Fields["tags"].IsNotNull())
                        {
                            item1.Editing.BeginEdit();
                            if (item1.Fields["tags"].Value == string.Empty)
                            {
                                item1.Fields["tags"].Value = args.Result;
                            }
                            else
                            {
                                item1.Fields["tags"].Value = item1.Fields["tags"].Value + "|" + args.Result;
                            }
                            item1.Editing.EndEdit();
                        }
                    }
                }
                else
                {
                    var searchStringModel = ExtractSearchQuery(args.Parameters["searchString"]);
                    var tempItem          = Factory.GetDatabase(args.Parameters["database"]).GetItem(args.Parameters["id"]);
                    int hitsCount;
                    var listOfItems = tempItem.Search(searchStringModel, out hitsCount).ToList();
                    if (hitsCount > 0)
                    {
                        var urlString = new UrlString(ItemBucket.Kernel.Util.Constants.ContentEditorRawUrlAddress);
                        var handle    = new UrlHandle();
                        handle["itemid"]       = args.Parameters["id"];
                        handle["databasename"] = args.Parameters["database"];
                        handle["la"]           = args.Parameters["language"];
                        handle.Add(urlString);
                        //SheerResponse.Input("Please enter the Tag ID", "Tag ID");

                        UrlString str2 = new UrlString("/sitecore/shell/Applications/Item browser.aspx");
                        str2.Append("ro", "/sitecore/content/Applications");
                        str2.Append("sc_content", Context.ContentDatabase.Name);

                        SheerResponse.ShowModalDialog(str2.ToString(), "1000", "700", "", true);

                        args.WaitForPostBack();
                    }
                }
            }
        }
 private void OpenNewWindow(ID id, string name)
 {
     Assert.ArgumentNotNull(id, "id");
     UrlString url = new UrlString(Constants.Url.ExportFromDataPage);
     url.Append(Constants.QueryString.Name.ItemId, HttpContext.Current.Server.UrlEncode(id.ToString()));
     url.Append(Constants.QueryString.Name.ItemName, HttpContext.Current.Server.UrlEncode(name));
     SheerResponse.Eval(string.Format("window.open('{0}');", url));
 }
        private void OpenNewWindow(ID id, string name)
        {
            Assert.ArgumentNotNull(id, "id");
            UrlString url = new UrlString(Constants.Url.ExportFromDataPage);

            url.Append(Constants.QueryString.Name.ItemId, HttpContext.Current.Server.UrlEncode(id.ToString()));
            url.Append(Constants.QueryString.Name.ItemName, HttpContext.Current.Server.UrlEncode(name));
            SheerResponse.Eval(string.Format("window.open('{0}');", url));
        }
Пример #11
0
        protected void Run(ClientPipelineArgs args)
        {
            Assert.ArgumentNotNull(args, "args");
            if (!SheerResponse.CheckModified())
            {
                return;
            }

            UrlString urlString2 = new UrlString("/sitecore/shell/Applications/Item browser.aspx");

            urlString2.Append("ro", "/sitecore");
            urlString2.Append("sc_content", Context.ContentDatabase.Name);
            urlString2.Append("filter", "AddTagDialog");

            SheerResponse.ShowModalDialog(urlString2.ToString(), "1000", "600", string.Empty, true);
            AjaxScriptManager.Current.Dispatch("item:refresh(id={0})".FormatWith(new object[]
            {
                args.Parameters["id"]
            }));
            return;

            //if (args.IsPostBack)
            //{
            //    if (Context.Page != null && Context.Page.Page != null && Context.Page.Page.Session["TrackingFieldModified"] as string == "1")
            //    {
            //        Context.Page.Page.Session["TrackingFieldModified"] = null;
            //        if (AjaxScriptManager.Current != null)
            //        {
            //            AjaxScriptManager.Current.Dispatch("analytics:trackingchanged");
            //            AjaxScriptManager.Current.Dispatch("item:refresh(id={0})".FormatWith(new object[]
            //            {
            //                args.Parameters["id"]
            //            }));
            //            return;
            //        }
            //        Context.ClientPage.SendMessage(this, "analytics:trackingchanged");
            //        Context.ClientPage.SendMessage(this, "item:refresh(id={0})".FormatWith(new object[]
            //        {
            //            args.Parameters["id"]
            //        }));
            //        return;
            //    }
            //}
            //else
            //{
            //    UrlString urlString = new UrlString("/sitecore/shell/~/xaml/Sitecore.Shell.Applications.Analytics.Personalization.ProfileCardsForm.aspx");
            //    UrlHandle expr_113 = new UrlHandle();
            //    expr_113["itemid"] = args.Parameters["id"];
            //    expr_113["databasename"] = args.Parameters["database"];
            //    expr_113["la"] = args.Parameters["language"];
            //    UrlHandle urlHandle = expr_113;
            //    urlHandle.Add(urlString);
            //    SheerResponse.ShowModalDialog(urlString.ToString(), "1000", "600", string.Empty, true);
            //    args.WaitForPostBack();
            //}
        }
Пример #12
0
        /// <summary>
        /// Inserts a new link into the link list.
        /// </summary>
        /// <param name="args">Sitecore Client arguments.</param>
        public void InsertLink(ClientPipelineArgs args)
        {
            Assert.ArgumentNotNull(args, "args");

            if (args.IsPostBack)
            {
                // Make sure that the result was not empty or undefined (result when user cancels out of link dialog)
                if (!string.IsNullOrEmpty(args.Result) && args.Result != "undefined")
                {
                    // Get the result from the link dialog
                    var result      = args.Result;
                    var xmlDocument = new XmlDocument();

                    xmlDocument.LoadXml(result);
                    var selectText   = this.GetSelectText(xmlDocument.SelectSingleNode("link"));
                    var xmlDocument2 = new XmlDocument();
                    xmlDocument2.LoadXml(this.GetValue());

                    var linksNode = xmlDocument2.SelectSingleNode("links");
                    if (linksNode != null)
                    {
                        // import the node into the document and set the value.
                        var linkNode = xmlDocument.SelectSingleNode("link");
                        if (linkNode != null)
                        {
                            linksNode.AppendChild(xmlDocument2.ImportNode(linkNode, true));
                            SetValue(xmlDocument2.OuterXml);
                            SetModified();
                        }
                    }

                    //xmlDocument2.SelectSingleNode("links").AppendChild(xmlDocument2.ImportNode(xmlDocument.SelectSingleNode("link"), true));


                    // Call Sitecore client to update the link list client side.
                    Sitecore.Context.ClientPage.ClientResponse.Eval(string.Concat(new string[]
                    {
                        "scContent.linklistInsertLink('", ID, "', {text:'", selectText, "'})"
                    }));
                }
            }
            else
            {
                // Show the dialog using ShowModalDialog.
                var       urlString = new UrlString(args.Parameters["url"]);
                UrlHandle urlHandle = new UrlHandle();
                urlHandle["ro"] = Source;
                urlHandle["db"] = Client.ContentDatabase.Name;
                urlHandle["va"] = this.XmlValue.ToString();
                urlHandle.Add(urlString);
                urlString.Append("ro", Source);
                urlString.Append("sc_content", WebUtil.GetQueryString("sc_content"));
                Sitecore.Context.ClientPage.ClientResponse.ShowModalDialog(urlString.ToString(), true);
                args.WaitForPostBack();
            }
        }
        protected void Diff(string id, string language, string version)
        {
            UrlString str = new UrlString(UIUtil.GetUri("control:Diff"));

            str.Append("id", id);
            str.Append("la", language);
            str.Append("vs", version);
            str.Append("wb", "1");
            Context.ClientPage.ClientResponse.ShowModalDialog(str.ToString());
        }
Пример #14
0
        public override void Execute(CommandContext context)
        {
            string itemId = context.Items[0].ID.ToString();
            string itemDb = context.Items[0].Database.Name;
            Item item = Factory.GetDatabase(itemDb).GetItem(new ID(itemId));

            var urlString = new UrlString();
            urlString.Append("item", item.Paths.Path.ToLower().Replace("sitecore/", ""));
            urlString.Append("db", itemDb);
            Windows.RunApplication("PowerShell/PowerShell Console", urlString.ToString());
        }
		/// <summary>
		/// Executes the command in the specified context.
		/// 
		/// </summary>
		/// <param name="context">The context.</param>
		public override void Execute(CommandContext context)
		{
			Error.AssertObject((object)context, "context");
			if (context.Items.Length != 1 || context.Items[0] == null)
				return;
			Item obj = context.Items[0];
			UrlString urlString = new UrlString(UIUtil.GetUri("control:CsvUserImport"));
			urlString.Append("id", obj.ID.ToString());
			urlString.Append("database", obj.Database.ToString());
			Context.ClientPage.ClientResponse.ShowModalDialog(urlString.ToString());
		}
        protected void Open(string id, string language, string version)
        {
            string    sectionID = RootSections.GetSectionID(id);
            UrlString str2      = new UrlString();

            str2.Append("ro", sectionID);
            str2.Append("fo", id);
            str2.Append("id", id);
            str2.Append("la", language);
            str2.Append("vs", version);
            Windows.RunApplication("Content editor", str2.ToString());
        }
Пример #17
0
        public override void Execute(CommandContext context)
        {
            var itemId = context.Items[0].ID.ToString();
            var itemDb = context.Items[0].Database.Name;
            var item   = Factory.GetDatabase(itemDb).GetItem(new ID(itemId));

            var urlString = new UrlString();

            urlString.Append("item", item.Paths.Path.ToLower().Replace("sitecore/", ""));
            urlString.Append("db", itemDb);
            Windows.RunApplication("PowerShell/PowerShell Console", urlString.ToString());
        }
Пример #18
0
        }                                       // Example "|" ... originally tried adding this as input to rule, but, oddly a single pipe as a value breaks the UI

        public override void Apply(T ruleContext)
        {
            Assert.ArgumentNotNull(ruleContext, "ruleContext");
            Assert.ArgumentNotNullOrEmpty(Name, "Name");
            Assert.ArgumentNotNullOrEmpty(Term, "Term");
            // Assert.ArgumentNotNullOrEmpty(Delimiter, "Delimiter");
            Delimiter = "|"; // hard code for now

            foreach (var rendering in ruleContext.SelectedRenderings)
            {
                // Simple case, no parameters, set our name-value directly (no conflicts)
                if (string.IsNullOrWhiteSpace(rendering.Parameters))
                {
                    rendering.Parameters        = $"{Name}={Term ?? string.Empty}";
                    ruleContext.HasLayoutChange = true;
                    BotLog.Log.Info($"UPDATED rendering {rendering.ItemID} ({rendering.Placeholder}{rendering.UniqueId}) parameter {Name} added term '{Term}'");
                    Log.Info($"DESIGNBOT:: UPDATED rendering {rendering.ItemID} ({rendering.Placeholder}{rendering.UniqueId}) parameter {Name} added term '{Term}'", this);
                    continue;
                }

                var urlString = new UrlString(rendering.Parameters);
                var rawValue  = urlString.Parameters[Name];

                // Missing parameter case, add our name-value to list
                if (string.IsNullOrWhiteSpace(rawValue))
                {
                    urlString.Append(Name, Term ?? string.Empty);
                    ruleContext.HasLayoutChange = true;
                    BotLog.Log.Info($"UPDATED rendering {rendering.ItemID} ({rendering.Placeholder}{rendering.UniqueId}) parameter {Name} added term '{Term}'");
                    Log.Info($"DESIGNBOT:: UPDATED rendering {rendering.ItemID} ({rendering.Placeholder}{rendering.UniqueId}) parameter {Name} added term '{Term}'", this);
                    continue;
                }

                if (!rawValue.EndsWith(Delimiter))
                {
                    rawValue += Delimiter;
                }

                // Case already exists
                if (string.Concat(Delimiter, HttpUtility.UrlDecode(rawValue)).Contains(string.Concat(Delimiter, HttpUtility.UrlDecode(Term), Delimiter)))
                {
                    continue;
                }

                rawValue += Term;
                urlString.Append(Name, rawValue);
                rendering.Parameters        = urlString.GetUrl();
                ruleContext.HasLayoutChange = true;
                BotLog.Log.Info($"UPDATED rendering {rendering.ItemID} ({rendering.Placeholder}{rendering.UniqueId}) parameter {Name} added term '{Term}'");
                Log.Info($"DESIGNBOT:: UPDATED rendering {rendering.ItemID} ({rendering.Placeholder}{rendering.UniqueId}) parameter {Name} added term '{Term}'", this);
            }
        }
 protected void Run(ClientPipelineArgs args)
 {
     Assert.ArgumentNotNull(args, "args");
     if (!args.IsPostBack)
     {
         var str2 = new UrlString(UIUtil.GetUri("control:DataSyncWizard"));
         str2.Append("id", args.Parameters["id"]);
         str2.Append("la", args.Parameters["language"]);
         str2.Append("vs", args.Parameters["version"]);
         SheerResponse.ShowModalDialog(str2.ToString(), "550", "500");
         args.WaitForPostBack();
     }
 }
 protected void Run(ClientPipelineArgs args)
 {
     Assert.ArgumentNotNull(args, "args");
     if (!args.IsPostBack)
     {
         var str2 = new UrlString(UIUtil.GetUri("control:DataSyncWizard"));
         str2.Append("id", args.Parameters["id"]);
         str2.Append("la", args.Parameters["language"]);
         str2.Append("vs", args.Parameters["version"]);
         SheerResponse.ShowModalDialog(str2.ToString(), "550", "500");
         args.WaitForPostBack();
     }
 }
Пример #21
0
 public override void Execute(CommandContext context)
 {
     Error.AssertObject(context, "context");
     if ((context.Items.Length == 1) && (context.Items[0] != null))
     {
         Item item = context.Items[0];
        UrlString str = new UrlString("/sitecore modules/Shell/Cloning Manager/Controls/CloningInfo.aspx");
         str.Append("id", item.ID.ToString());
         str.Append("la", item.Language.ToString());
         str.Append("vs", item.Version.ToString());
         Sitecore.Context.ClientPage.ClientResponse.ShowModalDialog(str.ToString());
     }
 }
Пример #22
0
        public void EditLink(ClientPipelineArgs args)
        {
            var index = System.Convert.ToInt32(args.Parameters["index"]);
            var node  = GetNodeByIndex(GetDocument(), index);

            if (args.IsPostBack)
            {
                if (!string.IsNullOrEmpty(args.Result) && args.Result != "undefined")
                {
                    string result = args.Result;

                    var xmlDocument = new XmlDocument();
                    xmlDocument.LoadXml(result);
                    string selectText = this.GetSelectText(xmlDocument.SelectSingleNode("link"));

                    var xmlDocument2 = new XmlDocument();
                    xmlDocument2.LoadXml(GetValue());

                    xmlDocument2.DocumentElement.ReplaceChild(
                        xmlDocument2.ImportNode(xmlDocument.SelectSingleNode("link"), true),
                        GetNodeByIndex(xmlDocument2, index)
                        );

                    SetValue(xmlDocument2.OuterXml);
                    SetModified();

                    Sitecore.Context.ClientPage.ClientResponse.Eval(
                        string.Concat(new string[]
                    {
                        "scContent.linklistUpdateLink('", ID, "', {index: " + index + ", text:'", selectText,
                        "'})"
                    })
                        );
                }
            }
            else
            {
                // Show the dialog using ShowModalDialog.
                var       urlString = new UrlString(args.Parameters["url"]);
                UrlHandle urlHandle = new UrlHandle();
                urlHandle["ro"] = Source;
                urlHandle["db"] = Client.ContentDatabase.Name;
                urlHandle["va"] = node.OuterXml;
                urlHandle.Add(urlString);
                urlString.Append("ro", Source);
                urlString.Append("sc_content", WebUtil.GetQueryString("sc_content"));
                Sitecore.Context.ClientPage.ClientResponse.ShowModalDialog(urlString.ToString(), true);
                args.WaitForPostBack();
            }
        }
Пример #23
0
        public void Run(ITaskOutput output, NameValueCollection metaData)
        {
            var attributes = new AttributesContainer(metaData["Attributes"]);
            var scriptId   = attributes.Get("scriptId")?.ToString();
            var scriptDb   = attributes.Get("scriptDb")?.ToString() ?? "master";

            var width  = attributes.Get("width")?.ToString() ?? "400";
            var height = attributes.Get("height")?.ToString() ?? "260";

            var str = new UrlString(UIUtil.GetUri("control:PowerShellRunner"));

            str.Append("scriptId", scriptId);
            str.Append("scriptDb", scriptDb);
            JobContext.ShowModalDialog(str.ToString(), width, height);
        }
Пример #24
0
        public override void Execute(CommandContext context)
        {
            var itemId = context.Items[0].ID.ToString();
            var itemDb = context.Items[0].Database.Name;
            var item = Factory.GetDatabase(itemDb).GetItem(new ID(itemId));

            var urlString = new UrlString();
            urlString.Append("id", item.ID.ToString());
            urlString.Append("db", itemDb);
            if (!string.IsNullOrEmpty(context.Parameters["frameName"]))
            {
                urlString.Add("pfn", context.Parameters["frameName"]);
            }
            Windows.RunApplication("PowerShell/PowerShellIse", urlString.ToString());
        }
        }                                       // Example "|" ... ugh this breaks the UI

        public override void Apply(T ruleContext)
        {
            Assert.ArgumentNotNull(ruleContext, "ruleContext");
            Assert.ArgumentNotNullOrEmpty(Name, "Name");
            Assert.ArgumentNotNullOrEmpty(Term, "Term");
            // Assert.ArgumentNotNullOrEmpty(Delimiter, "Delimiter");
            Delimiter = "|";

            if (string.IsNullOrWhiteSpace(ruleContext.Reference.Settings.Parameters))
            {
                return;
            }

            var urlString = new UrlString(ruleContext.Reference.Settings.Parameters);
            var rawValue  = urlString.Parameters[Name];

            if (string.IsNullOrWhiteSpace(rawValue))
            {
                return;
            }

            var valueList = rawValue.Split(new string[] { Delimiter }, StringSplitOptions.RemoveEmptyEntries);
            var newList   = string.Join(Delimiter,
                                        valueList.Where(x => x != null && !HttpUtility.UrlDecode(x).Equals(HttpUtility.UrlDecode(Term), StringComparison.OrdinalIgnoreCase))
                                        );

            urlString.Append(Name, newList ?? string.Empty);
            ruleContext.Reference.Settings.Parameters = urlString.GetUrl();
        }
    protected override void DoRender(HtmlTextWriter output) {
      var src = new UrlString("/sitecore/shell/~/xaml/Outercore.FieldTypes.Carousel.Frame.aspx");
      src.Append("s", Source);
      src.Append("id", ItemID);
      src.Append("fid", ID);
      src.Append("v", Value);
      if (Disabled) {
        src.Append("d", "1");
      }

      output.Write("<div id='{0}_pane' class='scContentControl scImageList'>".FormatWith(ID));
      output.Write("<iframe id='{0}_frame' src='{1}' frameborder='0' marginwidth='0' marginheight='0' width='100%' height='128' allowtransparency='allowtransparency'></iframe>".FormatWith(ID, src.ToString()));
      output.Write("</div>");

      output.Write("<input type='hidden' id='{0}' value='{1}' />".FormatWith(ID + "_selected", Value));
    }
Пример #27
0
        public override void Execute(CommandContext context)
        {
            var itemId = context.Items[0].ID.ToString();
            var itemDb = context.Items[0].Database.Name;
            var item   = Factory.GetDatabase(itemDb).GetItem(new ID(itemId));

            var urlString = new UrlString();

            urlString.Append("id", item.ID.ToString());
            urlString.Append("db", itemDb);
            if (!string.IsNullOrEmpty(context.Parameters["frameName"]))
            {
                urlString.Add("pfn", context.Parameters["frameName"]);
            }
            Sitecore.Shell.Framework.Windows.RunApplication("PowerShell/PowerShellIse", urlString.ToString());
        }
Пример #28
0
        public override void Apply(T ruleContext)
        {
            Assert.ArgumentNotNull(ruleContext, "ruleContext");
            Assert.ArgumentNotNullOrEmpty(Name, "Name");

            foreach (var rendering in ruleContext.SelectedRenderings)
            {
                // Simple case, no existing parameters
                if (string.IsNullOrWhiteSpace(rendering.Parameters))
                {
                    rendering.Parameters        = $"{Name}={Value ?? string.Empty}}}";
                    ruleContext.HasLayoutChange = true;
                    BotLog.Log.Info($"UPDATED rendering {rendering.ItemID} ({rendering.Placeholder}{rendering.UniqueId}) parameter {Name} to value '{Value}'");
                    Log.Info($"DESIGNBOT:: UPDATED rendering {rendering.ItemID} ({rendering.Placeholder}{rendering.UniqueId}) parameter {Name} to value '{Value}'", this);
                    continue;
                }

                // Parse case, set new value keeping other name-value pairs

                // Value matches case, exit
                var urlString = new UrlString(rendering.Parameters);
                if (!string.IsNullOrWhiteSpace(urlString[Name]) &&
                    HttpUtility.UrlDecode(urlString[Name]).Equals(HttpUtility.UrlDecode(Value)))
                {
                    continue;
                }

                urlString.Append(Name, Value ?? string.Empty);
                rendering.Parameters        = urlString.GetUrl();
                ruleContext.HasLayoutChange = true;
                BotLog.Log.Info($"UPDATED rendering {rendering.ItemID} ({rendering.Placeholder}{rendering.UniqueId}) parameter {Name} to value '{Value}'");
                Log.Info($"DESIGNBOT:: UPDATED rendering {rendering.ItemID} ({rendering.Placeholder}{rendering.UniqueId}) parameter {Name} to value '{Value}'", this);
            }
        }
Пример #29
0
 public override void Execute(CommandContext context)
 {
     try
     {
         Assert.ArgumentNotNull(context, "context");
         if (context.Items.Length == 1)
         {
             //Check if the tab is already open and refresh it is needed
             if (WebUtil.GetFormValue("scEditorTabs").Contains("ModerateContent:ModerateContentCommand"))
             {
             }
             else //Open a new tab
             {
                 UrlString urlString = new UrlString("/Admin/ContentModerator.aspx");
                 urlString.Append("itemId", context.Items[0].ID.ToString());
                 context.Items[0].Uri.AddToUrlString(urlString);
                 UIUtil.AddContentDatabaseParameter(urlString);
                 SheerResponse.Eval(new ShowEditorTab
                 {
                     Command   = "ModerateContent:ModerateContentCommand",
                     Header    = "Reviewing Content",
                     Icon      = Images.GetThemedImageSource("Applications/32x32/document_ok.png"),
                     Url       = urlString.ToString(),
                     Id        = "ModerateContent",
                     Closeable = true
                 }.ToString());
             }
         }
     }
     catch (Exception ex)
     {
         Sitecore.Diagnostics.Log.Error("Error setting context menu for moderation", ex, "ContentModerator");
     }
 }
 protected void OpenLink(ClientPipelineArgs args)
 {
     if (args.IsPostBack)
     {
         if (!string.IsNullOrEmpty(args.Result) && (args.Result != "undefined"))
         {
             Item item = this.GetContentDatabase().Items[args.Result];
             if (item != null)
             {
                 if (this.Value != item.Paths.Path)
                 {
                     this.SetModified();
                 }
                 this.Value = item.Paths.Path;
             }
             else
             {
                 if (this.Value.Length > 0)
                 {
                     this.SetModified();
                 }
                 SheerResponse.Alert("Item not found.", new string[0]);
                 this.Value = string.Empty;
             }
         }
     }
     else
     {
         UrlString str   = new UrlString("/sitecore/shell/Applications/Item browser.aspx");
         string    str2  = this.Value;
         string    str3  = this.Value;
         Item      item2 = this.GetContentDatabase().Items[str2];
         if (item2 != null)
         {
             str3 = item2.ID.ToString();
         }
         str.Append("db", this.GetContentDatabase().Name);
         str.Append("id", str3);
         str.Append("fo", str3);
         if (!string.IsNullOrEmpty(this.Source))
         {
             str.Append("ro", this.Source);
         }
         SheerResponse.ShowModalDialog(str.ToString(), true);
         args.WaitForPostBack();
     }
 }
Пример #31
0
        protected void EditWeight(string index)
        {
            int indexValue          = Int32.Parse(index);
            ClientPipelineArgs args = ContinuationManager.Current.CurrentArgs as ClientPipelineArgs;

            if (args.IsPostBack)
            {
                if (args.HasResult && args.Result != "undefined")
                {
                    if (indexValue > -1)
                    {
                        string oldValue = CategoryWeightList[indexValue];
                        string newValue = string.Format("{0}:{1}", StringUtil.GetPrefix(oldValue, ':'), args.Result);
                        Value = Value.Replace(oldValue, newValue);
                    }
                    else
                    {
                        Value += string.Format("|{0}:{1}|", Sitecore.Data.ID.Null, args.Result);
                        Value  = Value.Replace("||", "|").Trim("|".ToCharArray());
                    }
                    this.RenderTaxonomies();
                }
            }
            else
            {
                string    weightsRootID            = "{4A36115B-6120-4EDD-B6F2-E5F0EB2678EE}";
                UrlHandle handle                   = UrlHandle.Get();
                string    sourceItemId             = handle["sourceItemId"];
                Item      classificationSourceItem = Client.ContentDatabase.GetItem(new ID(sourceItemId));
                if (classificationSourceItem != null)
                {
                    Item taxonomies = classificationSourceItem.Children["Weights"];
                    if (taxonomies != null)
                    {
                        weightsRootID = taxonomies.ID.ToString();
                    }
                }

                UrlString url = new UrlString("/sitecore/shell/Applications/Item browser.aspx");
                url.Append("ro", weightsRootID);
                url.Append("id", weightsRootID);
                url.Append("sc_content", Sitecore.Context.ContentDatabase.Name);
                //url.Append("flt", "Contains('{EB06CEC0-5E2D-4DC4-875B-01ADCC577D13},{C20ED30F-D974-4C65-AE57-CE745C37940E}', @@templateid)");
                SheerResponse.ShowModalDialog(url.ToString(), "300px", "300px", string.Empty, true);
                args.WaitForPostBack();
            }
        }
        protected void PostStep(Item item)
        {
            Assert.ArgumentNotNull(item, "item");

             if (callback != null)
             {
            callback(item.ID.ToString());
             }

             UrlString url = new UrlString();
             url.Append("ro", item.ID.ToString());
             url.Append("fo", item.ID.ToString());
             url.Append("id", item.ID.ToString());
             url.Append("la", item.Language.Name);
             url.Append("vs", item.Version.Number.ToString());
             Windows.RunApplication("Content editor", url.GetUrl());
        }
        private static string GetUrl(string directory)
        {
            Assert.ArgumentNotNull(directory, "directory");
            var urlString = new UrlString(Constants.UploadFileApp);

            urlString.Append("di", ApplicationContext.StoreObject(directory));
            return(urlString.ToString());
        }
        private static string GetDialogUrl(ID id)
        {
            Assert.ArgumentCondition(!ID.IsNullOrEmpty(id), "id", "ID must be set!");
            UrlString urlString = new UrlString(Sitecore.UIUtil.GetUri("control:ItemDiff"));

            urlString.Append("id", id.ToString());
            return(urlString.ToString());
        }
Пример #35
0
        protected void Run(ClientPipelineArgs args)
        {
            Assert.ArgumentNotNull(args, "args");


            string[] uris = StringUtil.Split(args.Parameters["uris"], '|', false);
            if (args.IsPostBack)
            {
                if (args.HasResult)
                {
                    string result = args.Result;
                    if (result == "-")
                    {
                        result = string.Empty;
                    }

                    foreach (var uri in uris)
                    {
                        if (ItemUri.IsItemUri(uri))
                        {
                            Item item = Database.GetItem(ItemUri.Parse(uri));
                            item.Editing.BeginEdit();
                            item[FieldIDs.Owner] = result;
                            item.Editing.EndEdit();
                            Log.Audit(this, "Set owner: {0}", new string[] { AuditFormatter.FormatItem(item) });
                        }
                    }
                }
            }
            else
            {
                if (ItemUri.IsItemUri(uris[0]))
                {
                    ItemUri   uri  = ItemUri.Parse(uris[0]);
                    UrlString str6 = new UrlString("/sitecore/shell/~/xaml/Sitecore.Shell.Applications.Security.SetOwner.aspx");

                    str6.Append("id", uri.Path);
                    str6.Append("la", uri.Language.ToString());
                    str6.Append("vs", uri.Version.ToString());
                    str6.Append("db", uri.DatabaseName);
                    SheerResponse.ShowModalDialog(str6.ToString(), "450", "180", string.Empty, true);
                    args.WaitForPostBack();
                }
            }
        }
Пример #36
0
        public override void Execute(CommandContext context)
        {
            var scriptId = context.Parameters["scriptId"];
            var scriptDb = context.Parameters["scriptDb"];

            var itemId   = string.Empty;
            var itemDb   = string.Empty;
            var itemLang = string.Empty;
            var itemVer  = string.Empty;

            if (context.Items.Length > 0)
            {
                itemId   = context.Items[0].ID.ToString();
                itemDb   = context.Items[0].Database.Name;
                itemLang = context.Items[0].Language.Name;
                itemVer  = context.Items[0].Version.Number.ToString(CultureInfo.InvariantCulture);
            }

            var str = new UrlString(UIUtil.GetUri("control:PowerShellRunner"));

            str.Append(context.Parameters);
            str.Append("id", itemId);
            str.Append("db", itemDb);
            str.Append("lang", itemLang);
            str.Append("ver", itemVer);
            str.Append("scriptId", scriptId);
            str.Append("scriptDb", scriptDb);
            SheerResponse.ShowModalDialog(str.ToString(), "400", "260", "PowerShell Script Results", false);
        }
        protected void OpenSearch(ClientPipelineArgs args)
        {
            if (args.IsPostBack)
            {
                if (!string.IsNullOrEmpty(args.Result) && (args.Result != "undefined"))
                {
                    Item item = this.GetContentDatabase().Items[args.Result];
                    if (item != null)
                    {
                        if (this.Value != item.Paths.Path)
                        {
                            this.SetModified();
                        }
                        this.Value = item.Paths.Path;
                    }

                    else
                    {
                        this.SetModified();
                        var dirtyResult = args.Result;
                        this.Value = this.CleanResult(dirtyResult);
                    }
                }
            }
            else
            {
                UrlString str   = new UrlString("/sitecore/shell/Applications/Dialogs/Bucket Internal Link.aspx");
                string    str2  = this.Value;
                string    str3  = this.Value;
                Item      item2 = this.GetContentDatabase().Items[str2];
                if (item2 != null)
                {
                    str3 = item2.ID.ToString();
                }
                str.Append("db", this.GetContentDatabase().Name);
                str.Append("id", str3);
                str.Append("fo", str3);
                if (!string.IsNullOrEmpty(this.Source))
                {
                    str.Append("ro", this.Source);
                }
                SheerResponse.ShowModalDialog(str.ToString(), "900", "600", "", true);
                args.WaitForPostBack();
            }
        }
 protected void Process(ClientPipelineArgs args)
 {
     Assert.ArgumentNotNull(args, "args");
     if (args.IsPostBack)
     {
         Context.ClientPage.SendMessage(this, $"item:refresh(id={itemId})");
         Context.ClientPage.SendMessage(this, $"item:refreshchildren(id={itemId})");
         if (args.HasResult && !args.Result.IsNullOrEmpty())
         {
             foreach (var closeMessage in args.Result.Split('\n'))
             {
                 Context.ClientPage.ClientResponse.Timer(closeMessage, 2);
             }
         }
     }
     else
     {
         var str = new UrlString(UIUtil.GetUri("control:PowerShellRunner"));
         if (!string.IsNullOrWhiteSpace(itemId))
         {
             str.Append("id", itemId);
             str.Append("db", itemDb);
             str.Append("lang", itemLang);
             str.Append("ver", itemVer);
             if ((bool)(args.Properties["UsesBrowserWindows"] ?? false))
             {
                 str.Append("cfs", "1");
             }
         }
         str.Append("scriptId", scriptId);
         str.Append("scriptDb", scriptDb);
         SheerResponse.ShowModalDialog(str.ToString(), "400", "260", "", true);
         args.WaitForPostBack();
     }
 }
Пример #39
0
 public void GetDestination(CopyItemsArgs args)
 {
     Assert.ArgumentNotNull(args, "args");
     if (SheerResponse.CheckModified())
     {
         Database   database = GetDatabase(args);
         ListString str      = new ListString(args.Parameters["items"], '|');
         Item       item     = database.Items[str[0]];
         UrlString  str2     = new UrlString(this.GetDialogUrl());
         if (item != null)
         {
             str2.Append("fo", item.ID.ToString());
             str2.Append("sc_content", item.Database.Name);
         }
         Context.ClientPage.ClientResponse.ShowModalDialog(str2.ToString(), true);
         args.WaitForPostBack(false);
     }
 }
Пример #40
0
        protected void Run(ClientPipelineArgs args)
        {
            Assert.ArgumentNotNull(args, "args");

            string[] uris = StringUtil.Split(args.Parameters["uris"], '|', false);
            if (args.IsPostBack)
            {
                if (args.HasResult)
                {
                    string result = args.Result;
                    if (result == "-")
                    {
                        result = string.Empty;
                    }

                    foreach (var uri in uris)
                    {
                        if (ItemUri.IsItemUri(uri))
                        {
                            Item item = Database.GetItem(ItemUri.Parse(uri));
                            item.Editing.BeginEdit();
                            item[FieldIDs.Owner] = result;
                            item.Editing.EndEdit();
                            Log.Audit(this, "Set owner: {0}", new string[] { AuditFormatter.FormatItem(item) });
                        }
                    }
                }
            }
            else
            {
                if (ItemUri.IsItemUri(uris[0]))
                {
                    ItemUri uri = ItemUri.Parse(uris[0]);
                    UrlString str6 = new UrlString("/sitecore/shell/~/xaml/Sitecore.Shell.Applications.Security.SetOwner.aspx");

                    str6.Append("id", uri.Path);
                    str6.Append("la", uri.Language.ToString());
                    str6.Append("vs", uri.Version.ToString());
                    str6.Append("db", uri.DatabaseName);
                    SheerResponse.ShowModalDialog(str6.ToString(), "450", "180", string.Empty, true);
                    args.WaitForPostBack();
                }
            }
        }
Пример #41
0
        /// <summary>
        /// Handles the RunPicklistBrowser event
        /// </summary>
        protected void OnRunPicklistBrowser()
        {
            var args  = ContinuationManager.Current.CurrentArgs as ClientPipelineArgs;
            var field = this.Info[this.ActiveField.Value];

            Assert.IsNotNull(args, "args");
            if (args.IsPostBack)
            {
                if (args.HasResult)
                {
                    string result = args.Result;
                    if (result == "-")
                    {
                        return;
                    }

                    var value = CrmCampaignIntegrations.Core.LookupValue.Parse(result);

                    field.LookupValue = value;

                    this.UpdateSettings(this.ActiveField.Value, true);
                }
            }
            else
            {
                var urlString = new UrlString("/sitecore modules/shell/Web Forms for Marketers/Shell/OpenXamlModalDialog/OpenXamlModalDialog.aspx");

                urlString.Add("type", "xaml");
                urlString.Add("control", "Sitecore.CrmCampaignIntegration.Shell.UI.Dialogs.LookupRecords");

                var attribute = (ICrmLookupAttributeMetadata)this.Metadata.GetAttribute(this.ActiveField.Value);
                urlString.Append("field", this.ActiveField.Value);

                var value = attribute.Targets.ToList().IndexOf(field.EntityReference);
                urlString.Append("targets", string.Join("|", attribute.Targets));
                urlString.Append("skey", Data.ID.NewID.ToString());
                urlString.Append("w", "620px");
                urlString.Append("h", "800px");

                ModalDialog.Show(urlString);

                args.WaitForPostBack();
            }
        }
Пример #42
0
        /// <summary>
        /// Runs the specified args.
        /// </summary>
        /// <param name="args">The arguments.</param>
        protected void Run(ClientPipelineArgs args)
        {
            string   item     = args.Parameters["id"];
            string   str      = args.Parameters["language"];
            string   item1    = args.Parameters["version"];
            string   str1     = args.Parameters["database"];
            Database database = Factory.GetDatabase(str1);

            Error.Assert(database != null, string.Concat("Database \"", str1, "\" not found."));
            Item item2 = database.GetItem(ID.Parse(item), Language.Parse(str), Sitecore.Data.Version.Parse(item1));

            Error.AssertItemFound(item2);
            Item item3 = item2.Database.GetItem(ItemIDs.TemplateRoot);

            if (item3 != null && !item3.Axes.IsAncestorOf(item2))
            {
                item2 = item3;
            }
            if (!args.IsPostBack)
            {
                UrlString urlString = new UrlString("/sitecore/client/Asserts/StandardValuesTool?itemid=" + item);
                if (item2.TemplateID != TemplateIDs.Template)
                {
                    urlString.Append("fo", item2.ID.ToString());
                }
                else
                {
                    urlString.Append("fo", item2.Parent.ID.ToString());
                }
                Context.ClientPage.ClientResponse.ShowModalDialog(urlString.ToString(), true);
                args.WaitForPostBack();
            }
            else if (args.Result != null && args.Result.Length > 0 && args.Result != "undefined")
            {
                TemplateItem templateItem = Context.ContentDatabase.Templates[args.Result];
                if (templateItem != null)
                {
                    Context.ClientPage.SendMessage(this, string.Concat("template:added(id=", templateItem.ID, ")"));
                    Context.ClientPage.SendMessage(this, string.Concat("item:load(id=", templateItem.ID, ")"));
                    return;
                }
            }
        }
 protected void BrowseIconDialog(ClientPipelineArgs args)
 {
     if (args.IsPostBack)
     {
         if (args.HasResult)
         {
             Value = args.Result;
             SetModified();
         }
     }
     else
     {
         UrlString urlString = new UrlString("/sitecore/shell/Applications/Dialogs/FontIconPickerField/Browse.aspx");
         urlString.Append("source", GetViewStateString("source"));
         urlString.Append("value", Value);
         SheerResponse.ShowModalDialog(urlString.ToString(), "1120", "600", string.Empty, true);
         args.WaitForPostBack();
     }
 }
 public override void Execute(CommandContext context)
 {
     Assert.ArgumentNotNull(context, "context");
     if (context.Items.Length == 1)
     {
         UrlString parameters = new UrlString();
         parameters.Append("fo", context.Items[0].ID.ToString());
         Shell.Framework.Windows.RunApplication("Media Conversion Tool", parameters.ToString());
     }
 }
Пример #45
0
        public override void Execute(CommandContext context)
        {
            if (context.Items.Length == 1)
            {
                Item item = context.Items[0];
                UrlString str = new UrlString();
                str.Append("sc_content", item.Database.Name);
                str.Append("id", item.ID.ToString());
                str.Append("la", item.Language.ToString());
                str.Append("vs", item.Version.ToString());
                if (!string.IsNullOrEmpty(context.Parameters["frameName"]))
                {
                    str.Add("pfn", context.Parameters["frameName"]);
                }


                SheerResponse.Eval("window.open('/sitecore modules/pixlr/pixlr.aspx?" + str + "&mode=editor', 'MediaLibrary', 'location=0,resizable=1')");

            }
        }
Пример #46
0
        public override void Execute(CommandContext context)
        {
            var scriptId = context.Parameters["script"];
            var scriptDb = context.Parameters["scriptDb"];

            var itemId = string.Empty;
            var itemDb = string.Empty;
            var itemLang = string.Empty;
            var itemVer = string.Empty;

            if (context.Items.Length > 0)
            {
                itemId = context.Items[0].ID.ToString();
                itemDb = context.Items[0].Database.Name;
                itemLang = context.Items[0].Language.Name;
                itemVer = context.Items[0].Version.Number.ToString(CultureInfo.InvariantCulture);
            }

            var str = new UrlString(UIUtil.GetUri("control:PowerShellRunner"));
            str.Append("id", itemId);
            str.Append("db", itemDb);
            str.Append("lang", itemLang);
            str.Append("ver", itemVer);
            str.Append("scriptId", scriptId);
            str.Append("scriptDb", scriptDb);
            Context.ClientPage.ClientResponse.Broadcast(
                SheerResponse.ShowModalDialog(str.ToString(), "400", "260", "PowerShell Script Results", false),
                "Shell");
        }
Пример #47
0
        protected void Run(ClientPipelineArgs args)
        {
            if (args.IsPostBack)
            {
                if ((!String.IsNullOrEmpty(args.Result)) && args.Result != "undefined")
                {
                    Context.ClientPage.SendMessage(this, "item:load(id=" + args.Result + ")");

                    Item createdBlog = ItemManager.GetItem(new ID(args.Result), Sitecore.Context.Language, Sitecore.Data.Version.Latest, Factory.GetDatabase(args.Parameters["database"]));

                    string oldSiteName = Sitecore.Context.GetSiteName();
                    Sitecore.Context.SetActiveSite("website");
                    string url = LinkManager.GetItemUrl(createdBlog);
                    Sitecore.Context.SetActiveSite(oldSiteName);

                    SheerResponse.Eval("window.parent.location.href='http://" + WebUtil.GetHostName() + "/" + url + "'");
                }
            }
            else
            {
                string currentTID = args.Parameters["tid"];

                if (currentTID == Settings.BlogTemplateIDString)
                {
                    Context.ClientPage.ClientResponse.Alert("Cannot create a blog within a blog");
                }
                else if (currentTID == Sitecore.Configuration.Settings.GetSetting("Blog.EntryTemplateID"))
                {
                    Context.ClientPage.ClientResponse.Alert("Cannot create a blog within a blogentry");
                }
                else
                {
                    UrlString url = new UrlString("/sitecore modules/Blog/Admin/NewBlog.aspx");
                    url.Append("id", args.Parameters["currentid"]);
                    url.Append("database", args.Parameters["database"]);
                    Context.ClientPage.ClientResponse.ShowModalDialog(url.ToString(), true);
                    args.WaitForPostBack(true);
                }
            }
        }
Пример #48
0
        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[ScriptItemFieldNames.Script]))
            {
                return;
            }

            var scriptItem = actionItem.Database.GetItem(new ID(actionItem[ScriptItemFieldNames.Script]));

            if (RulesUtils.EvaluateRules(actionItem[ScriptItemFieldNames.EnableRule], dataItem) &&
                RulesUtils.EvaluateRules(scriptItem[ScriptItemFieldNames.EnableRule], dataItem))
            {
                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);
                Context.ClientPage.ClientResponse.Broadcast(
                    SheerResponse.ShowModalDialog(str.ToString(), "400", "220", "PowerShell Script Results", false),
                    "Shell");
            }
        }
Пример #49
0
 public static void ShowItemBrowser(string header, string text, string icon, string button, string root, string selected, string database)
 {
     UrlString str2 = new UrlString("/sitecore/shell/Applications/Item browser.aspx");
     str2.Append("db", database);
     //str2.Append("id", selected.ToString());
     str2.Append("fo", selected);
     str2.Append("ro", root);
     str2.Append("he", header);
     str2.Append("txt", text);
     str2.Append("ic", icon);
     str2.Append("btn", button);
     SheerResponse.ShowModalDialog(str2.ToString(), true);
 }
 protected void Run(ClientPipelineArgs args)
 {
     Item item = Sitecore.Context.Database.GetItem(args.Parameters["id"]);
     if (SheerResponse.CheckModified())
     {
         if (args.IsPostBack)
         {
             if (args.Result == "yes")
             {
                 Context.ClientPage.SendMessage(this, "item:templatechanged");
                 var searchStringModel = ExtractSearchQuery(args.Parameters["searchString"]);
                 var hitsCount = 0;
                 var listOfItems = item.Search(searchStringModel, out hitsCount).ToList();
                 Assert.IsNotNull(item, "item");
                 foreach (var sitecoreItem in listOfItems)
                 {
                     var item1 = sitecoreItem.GetItem();
                     item1.Editing.BeginEdit();
                     item1.ChangeTemplate(listOfItems.First().GetItem().Template);
                     item1.Editing.EndEdit();
                 }
             }
         }
         else
         {
             string str = args.Parameters["id"];
             Item item3 = Context.ContentDatabase.Items[str];
             if (item3 == null)
             {
                 SheerResponse.Alert("Item not found.", new string[0]);
             }
             else
             {
                 UrlString str2 = new UrlString("/sitecore/shell/Applications/Templates/Change template.aspx");
                 var searchStringModel = ExtractSearchQuery(args.Parameters["searchString"]);
                 var hitsCount = 0;
                 var listOfItems = item.Search(searchStringModel, out hitsCount).ToList();
                 str2.Append("id", listOfItems.First().GetItem().ID.ToString());
                 Context.ClientPage.ClientResponse.ShowModalDialog(str2.ToString(), true);
                 args.WaitForPostBack();
             }
         }
     }
 }
        protected void Open(string id, string language, string version)
        {
            Assert.ArgumentNotNull(id, "id");
            Assert.ArgumentNotNull(language, "language");
            Assert.ArgumentNotNull(version, "version");
            string sectionID = RootSections.GetSectionID(id);
            UrlString str2 = new UrlString(ItemBucket.Kernel.Util.Constants.ContentEditorRawUrlAddress);
            str2.Append("ro", sectionID);
            str2.Append("fo", id);
            str2.Append("id", id);
            str2.Append("la", language);
            str2.Append("vs", version);
            str2.Append("mo", "popup");

            SheerResponse.ShowModalDialog(str2.ToString(), "960", "600", string.Empty, false);
        }
Пример #52
0
 public static void ShowItemBrowser(string header, string text, string icon, string button, Sitecore.Data.ID root, Sitecore.Data.ID selected, string database)
 {
     //string str = selected;
     //Item item = Client.ContentDatabase.Items[selected];
     //if (item != null)
     //{
     //    selected = item.ID.ToString();
     //    if (item.Parent != null)
     //    {
     //        str = item.ParentID.ToString();
     //    }
     //}
     UrlString str2 = new UrlString("/sitecore/shell/Applications/Item browser.aspx");
     str2.Append("db", database);
     str2.Append("id", selected.ToString());
     str2.Append("fo", selected.ToString());
     str2.Append("ro", root.ToString());
     str2.Append("he", header);
     str2.Append("txt", text);
     str2.Append("ic", icon);
     str2.Append("btn", button);
     SheerResponse.ShowModalDialog(str2.ToString(), true);
 }
Пример #53
0
        private static UrlString GetItemUrl(Item item, NameValueCollection parameters)
        {
            var str = new UrlString();
            if (item != null)
            {
                str.Append("id", item.ID.ToString());
                str.Append("la", item.Language.ToString());
                str.Append("vs", item.Version.ToString());
                str.Append("db", item.Database.Name);
                str.Append("sc_content", item.Database.Name);
            }

            if (parameters != null)
            {
                foreach (string str2 in parameters)
                {
                    str.Append(str2, parameters[str2]);
                }
            }
            return str;
        }
Пример #54
0
 /// <summary>
 /// Opens the specified item.
 /// </summary>
 /// <param name="id">
 /// The id.
 /// </param>
 /// <param name="language">
 /// The language.
 /// </param>
 /// <param name="version">
 /// The version.
 /// </param>
 protected void Open(string id, string language, string version)
 {
     Assert.ArgumentNotNull(id, "id");
     Assert.ArgumentNotNull(language, "language");
     Assert.ArgumentNotNull(version, "version");
     string sectionID = RootSections.GetSectionID(id);
     UrlString urlString = new UrlString();
     urlString.Append("ro", sectionID);
     urlString.Append("fo", id);
     urlString.Append("id", id);
     urlString.Append("la", language);
     urlString.Append("vs", version);
     Windows.RunApplication("Content editor", urlString.ToString());
 }
        /// <summary>
        /// Handles the Load event of the Page control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
        /// <exception cref="ValidatorException">Order could not be created.</exception>
        protected void Page_Load(object sender, EventArgs e)
        {
            DomainModel.Carts.ShoppingCart shoppingCart = Sitecore.Ecommerce.Context.Entity.GetInstance<DomainModel.Carts.ShoppingCart>();
              if (string.IsNullOrEmpty(shoppingCart.PaymentSystem.Code))
              {
            return;
              }

              PaymentUrlResolver paymentUrlResolver = new PaymentUrlResolver();
              PaymentArgs paymentArgs = new PaymentArgs
              {
            PaymentUrls = paymentUrlResolver.Resolve(),
            ShoppingCart = shoppingCart
              };

              ITransactionData transactionData = Sitecore.Ecommerce.Context.Entity.Resolve<ITransactionData>();

              PaymentProvider paymentProvider = Sitecore.Ecommerce.Context.Entity.Resolve<PaymentProvider>(shoppingCart.PaymentSystem.Code);
              DomainModel.Payments.PaymentSystem paymentSystem = shoppingCart.PaymentSystem;

              try
              {
            paymentProvider.ProcessCallback(paymentSystem, paymentArgs);
              }
              catch (Exception exception)
              {
            IOrderManager<Order> orderManager = Sitecore.Ecommerce.Context.Entity.Resolve<IOrderManager<Order>>();
            shoppingCart.OrderNumber = orderManager.GenerateOrderNumber();
            transactionData.DeletePersistentValue(shoppingCart.OrderNumber);

            HttpContext.Current.Session["paymentErrorMessage"] = exception.Message;
            this.Response.Redirect(paymentArgs.PaymentUrls.FailurePageUrl);

            return;
              }

              switch (paymentProvider.PaymentStatus)
              {
            case PaymentStatus.Succeeded:
              {
            IOrderManager<Order> orderManager = Sitecore.Ecommerce.Context.Entity.Resolve<IOrderManager<Order>>();
            Order order = orderManager.CreateOrder(shoppingCart);

            if (order != null)
            {
              // Redirect to order confirmation page
              string orderId = shoppingCart.OrderNumber;
              ICheckOut checkOut = Sitecore.Ecommerce.Context.Entity.Resolve<ICheckOut>();
              if (checkOut is CheckOut)
              {
                ((CheckOut)checkOut).ResetCheckOut();
              }

              if (MainUtil.IsLoggedIn())
              {
                orderId = string.Format("orderid={0}", orderId);
              }
              else
              {
                string encryptKey = Crypto.EncryptTripleDES(orderId, "5dfkjek5");
                orderId = string.Format("key={0}", Uri.EscapeDataString(encryptKey));
              }

              this.StartOrderCreatedPipeline(order.OrderNumber);

              if (!string.IsNullOrEmpty(orderId))
              {
                UrlString url = new UrlString(paymentArgs.PaymentUrls.SuccessPageUrl);
                url.Append(new UrlString(orderId));
                this.Response.Redirect(url.ToString());
              }
            }
            else
            {
              IOrderManager<Order> orderProvider = Sitecore.Ecommerce.Context.Entity.Resolve<IOrderManager<Order>>();
              shoppingCart.OrderNumber = orderProvider.GenerateOrderNumber();
              transactionData.DeletePersistentValue(shoppingCart.OrderNumber);

              HttpContext.Current.Session["paymentErrorMessage"] = "Order could not be created.";
              this.Response.Redirect(paymentArgs.PaymentUrls.FailurePageUrl);
            }

            break;
              }

            case PaymentStatus.Canceled:
              {
            IOrderManager<Order> orderProvider = Sitecore.Ecommerce.Context.Entity.Resolve<IOrderManager<Order>>();
            shoppingCart.OrderNumber = orderProvider.GenerateOrderNumber();
            transactionData.DeletePersistentValue(shoppingCart.OrderNumber);

            HttpContext.Current.Session["paymentErrorMessage"] = "Payment has been aborted by user.";
            this.Response.Redirect(paymentArgs.PaymentUrls.CancelPageUrl);

            break;
              }

            case PaymentStatus.Failure:
              {
            IOrderManager<Order> orderProvider = Sitecore.Ecommerce.Context.Entity.Resolve<IOrderManager<Order>>();
            shoppingCart.OrderNumber = orderProvider.GenerateOrderNumber();
            transactionData.DeletePersistentValue(shoppingCart.OrderNumber);

            this.Response.Redirect(paymentArgs.PaymentUrls.FailurePageUrl);

            break;
              }
              }
        }
 protected void Translate(string fieldID)
 {
     Assert.ArgumentNotNull(fieldID, "fieldID");
     Item currentItem = this.GetCurrentItem(Message.Empty);
     if (currentItem != null)
     {
         Language translatingLanguage = this.GetTranslatingLanguage(currentItem);
         if (translatingLanguage != null)
         {
             Item item2 = currentItem.Database.Items[currentItem.ID, translatingLanguage];
             if (item2 != null)
             {
                 UrlString str = new UrlString(UIUtil.GetUri("control:WorldLingo"));
                 str.Append("ph", item2[fieldID]);
                 str.Append("src", item2.Language.ToString());
                 str.Append("trg", currentItem.Language.ToString());
                 SheerResponse.ShowModalDialog(str.ToString());
             }
         }
     }
 }
 private void RedirectToLoginPage()
 {
     string loginPage = this.GetLoginPage(Context.Site);
     if (loginPage.Length > 0)
     {
         Tracer.Info("Redirecting to login page \"" + loginPage + "\".");
         UrlString urlString = new UrlString(loginPage);
         if (Settings.Authentication.SaveRawUrl)
         {
             urlString.Append("url", HttpUtility.UrlEncode(Context.RawUrl));
         }
         WebUtil.Redirect(urlString.ToString(), false);
     }
     else
     {
         Tracer.Info("Redirecting to error page as no login page was found.");
         WebUtil.RedirectToErrorPage("Login is required, but no valid login page has been specified for the site (" + Context.Site.Name + ").", false);
     }
 }
Пример #58
0
 private void Current_OnExecute(object sender, AjaxCommandEventArgs args)
 {
     switch (args.Command.Name)
     {
         case "item:open":
             string itemid = args.Parameters["itemid"];
             Item item = this.Database.GetItem(itemid);
             var str2 = new UrlString();
             str2.Append("fo", itemid);
             str2.Append("id", itemid);
             str2.Append("la", item.Language.ToString());
             str2.Append("vs", item.Version.ToString());
             str2.Append("sc_content", this.Database.Name);
             Windows.RunApplication("Content Editor", str2.ToString());
             break;
         case "appshortcut:open":
             ID appId;
             if (Sitecore.Data.ID.TryParse(args.Parameters["appid"], out appId))
             {
                 Windows.RunShortcut(appId);
             }
             break;
     }
 }
Пример #59
0
        public void EditLink(ClientPipelineArgs args)
        {
            var index = System.Convert.ToInt32(args.Parameters["index"]);
            var node = GetNodeByIndex(GetDocument(), index);

            if (args.IsPostBack)
            {

                if (!string.IsNullOrEmpty(args.Result) && args.Result != "undefined")
                {
                    string result = args.Result;

                    var xmlDocument = new XmlDocument();
                    xmlDocument.LoadXml(result);
                    string selectText = this.GetSelectText(xmlDocument.SelectSingleNode("link"));

                    var xmlDocument2 = new XmlDocument();
                    xmlDocument2.LoadXml(GetValue());

                    xmlDocument2.DocumentElement.ReplaceChild(
                        xmlDocument2.ImportNode(xmlDocument.SelectSingleNode("link"), true),
                        GetNodeByIndex(xmlDocument2, index)
                        );

                    SetValue(xmlDocument2.OuterXml);
                    SetModified();

                    Sitecore.Context.ClientPage.ClientResponse.Eval(
                        string.Concat(new string[]
                            {
                                "scContent.linklistUpdateLink('", ID, "', {index: " + index + ", text:'", selectText,
                                "'})"
                            })
                        );
                }
            }
            else
            {
                var urlString = new UrlString(args.Parameters["url"]);
                urlString.Append("va", node.OuterXml);
                urlString.Append("ro", Source);
                Sitecore.Context.ClientPage.ClientResponse.ShowModalDialog(urlString.ToString(), true);
                args.WaitForPostBack();
            }
        }
Пример #60
0
        /// <summary>
        /// Inserts a new link into the link list.
        /// </summary>
        /// <param name="args">Sitecore Client arguments.</param>
        public void InsertLink(ClientPipelineArgs args)
        {
            Assert.ArgumentNotNull(args, "args");

            if (args.IsPostBack)
            {
                // Make sure that the result was not empty or undefined (result when user cancels out of link dialog)
                if (!string.IsNullOrEmpty(args.Result) && args.Result != "undefined")
                {
                    // Get the result from the link dialog
                    var result = args.Result;
                    var xmlDocument = new XmlDocument();

                    xmlDocument.LoadXml(result);
                    var selectText = this.GetSelectText(xmlDocument.SelectSingleNode("link"));
                    var xmlDocument2 = new XmlDocument();
                    xmlDocument2.LoadXml(this.GetValue());

                    var linksNode = xmlDocument2.SelectSingleNode("links");
                    if (linksNode != null)
                    {
                        // import the node into the document and set the value.
                        var linkNode = xmlDocument.SelectSingleNode("link");
                        if (linkNode != null)
                        {
                            linksNode.AppendChild(xmlDocument2.ImportNode(linkNode, true));
                            SetValue(xmlDocument2.OuterXml);
                            SetModified();
                        }
                    }

                    //xmlDocument2.SelectSingleNode("links").AppendChild(xmlDocument2.ImportNode(xmlDocument.SelectSingleNode("link"), true));
                    

                    // Call Sitecore client to update the link list client side.
                    Sitecore.Context.ClientPage.ClientResponse.Eval(string.Concat(new string[]
					{
						"scContent.linklistInsertLink('", ID, "', {text:'", selectText, "'})" }));
                }
            }
            else
            {
                // Show the dialog using ShowModalDialog.
                var urlString = new UrlString(args.Parameters["url"]);
                urlString.Append("va", XmlValue.ToString());
                urlString.Append("ro", Source);
                Sitecore.Context.ClientPage.ClientResponse.ShowModalDialog(urlString.ToString(), true);
                args.WaitForPostBack();
            }
        }