示例#1
0
        protected string GetFilterSectionHtml([NotNull] XElement filter, bool fillVisitorCount)
        {
            Assert.ArgumentNotNull(filter, "filter");

            var writer = new HtmlTextWriter(new StringWriter(CultureInfo.CurrentCulture));
            var id     = ShortID.Parse(filter.GetAttributeValue("uid")).ToString();

            writer.Write("<table id='{ID}_body' cellspacing='0' cellpadding='0' class='rule-body'>");
            writer.Write("<tbody>");
            writer.Write("<tr>");

            writer.Write("<td class='left-column'>");
            RenderRuleConditions(filter, writer);
            writer.Write("</td>");

            writer.Write("<td class='right-column'>");
            writer.Write(string.Format(CultureInfo.InvariantCulture, "<span>{0}</span>", HttpUtility.HtmlEncode(Translate.Text(SB.Texts.ContactsThatMatchThisRule))));
            if (fillVisitorCount)
            {
                XElement rule;
                var      number = GetVisitorsCount(GetFilterPosition(id), out rule);
                writer.Write(string.Format(CultureInfo.InvariantCulture, "<span class='value' id='{1}ID{2}_count'>{0}</span>", number, "{", "}"));
            }
            else
            {
                writer.Write(string.Format(CultureInfo.InvariantCulture, "<span class='value'>{0}</span>", HttpUtility.HtmlEncode(Translate.Text(SB.Texts.Calculating))));
            }
            writer.Write("</td>");

            writer.Write("</tr>");
            writer.Write("</tbody>");
            writer.Write("</table>");

            var panelHtml      = writer.InnerWriter.ToString().Replace("{ID}", id);
            var actionsContext = new CollapsiblePanelRenderer.ActionsContext
            {
                IsVisible     = true,
                OnActionClick = "javascript:return Sitecore.CollapsiblePanel.showActionsMenu(this,event)",
                Menu          = GetActionsMenu(id)
            };

            var name = Translate.Text(SB.Texts.SpecifyName);

            if (!string.IsNullOrEmpty(filter.GetAttributeValue("name")))
            {
                name = filter.GetAttributeValue("name");
            }

            var nameContext = new CollapsiblePanelRenderer.NameContext(name)
            {
                Editable      = true,
                OnNameChanged = "javascript:return Sitecore.CollapsiblePanel.renameComplete(this,event)"
            };

            var panelRenderer = new CollapsiblePanelRenderer();

            panelRenderer.CssClass = "rule-container";
            return(Assert.ResultNotNull(panelRenderer.Render(id, panelHtml, nameContext, actionsContext)));
        }
        private string GetRuleSectionHtml(XElement rule)
        {
            Assert.ArgumentNotNull(rule, "rule");
            HtmlTextWriter htmlTextWriter = new HtmlTextWriter(new StringWriter());
            string         str            = ShortID.Parse(rule.GetAttributeValue("uid")).ToString();

            htmlTextWriter.Write("<table id='{ID}_body' cellspacing='0' cellpadding='0' class='rule-body'>");
            htmlTextWriter.Write("<tbody>");
            htmlTextWriter.Write("<tr>");
            htmlTextWriter.Write("<td class='left-column'>");
            this.RenderRuleConditions(rule, htmlTextWriter);
            htmlTextWriter.Write("</td>");
            htmlTextWriter.Write("<td class='right-column'>");
            this.RenderRuleActions(rule, htmlTextWriter);
            htmlTextWriter.Write("</td>");
            htmlTextWriter.Write(this.RenderRulePlaceholder("afterAction", rule));
            htmlTextWriter.Write("</tr>");
            htmlTextWriter.Write("</tbody>");
            htmlTextWriter.Write("</table>");
            string str1 = htmlTextWriter.InnerWriter.ToString().Replace("{ID}", str);
            bool   flag = PersonalizationFormWithActions.IsDefaultCondition(rule);

            CollapsiblePanelRenderer.ActionsContext actionsMenu = new CollapsiblePanelRenderer.ActionsContext()
            {
                IsVisible = !flag
            };
            if (!flag)
            {
                actionsMenu.OnActionClick = "javascript:return Sitecore.CollapsiblePanel.showActionsMenu(this,event)";
                actionsMenu.Menu          = this.GetActionsMenu(str);
            }
            string attributeValue = "Default";

            if (!flag || !string.IsNullOrEmpty(rule.GetAttributeValue("name")))
            {
                attributeValue = rule.GetAttributeValue("name");
            }
            CollapsiblePanelRenderer.NameContext nameContext = new CollapsiblePanelRenderer.NameContext(attributeValue)
            {
                Editable      = !flag,
                OnNameChanged = "javascript:return Sitecore.CollapsiblePanel.renameComplete(this,event)"
            };
            CollapsiblePanelRenderer.NameContext nameContext1             = nameContext;
            CollapsiblePanelRenderer             collapsiblePanelRenderer = new CollapsiblePanelRenderer()
            {
                CssClass = "rule-container"
            };

            return(collapsiblePanelRenderer.Render(str, str1, nameContext1, actionsMenu));
        }