private void RenderInput(XmlNode element)
        {
            Assert.ArgumentNotNull(element, "element");
            string attribute = XmlUtil.GetAttribute("section", element);

            if (!string.IsNullOrEmpty(attribute))
            {
                Editor.Section sectionByName = this.Sections.GetSectionByName(attribute);
                if (sectionByName != null)
                {
                    this.RenderFields(sectionByName);
                }
            }
            else
            {
                string str2 = XmlUtil.GetAttribute("id", element);
                if (!string.IsNullOrEmpty(str2))
                {
                    Editor.Field fieldByID = this.Sections.GetFieldByID(str2);
                    if (fieldByID != null)
                    {
                        this.RenderInput(fieldByID);
                    }
                }
            }
        }
        private void RenderMarker(XmlNode element)
        {
            Assert.ArgumentNotNull(element, "element");
            string attribute = XmlUtil.GetAttribute("id", element);

            if (!string.IsNullOrEmpty(attribute))
            {
                Editor.Field fieldByID = this.Sections.GetFieldByID(attribute);
                if (fieldByID != null)
                {
                    Editor.Field field2 = this._currentField;
                    this._currentField = fieldByID;
                    if (!UserOptions.View.UseSmartTags)
                    {
                        this.Args.EditorFormatter.RenderMarkerBegin(this.Args.Parent, fieldByID.ControlID);
                    }
                    this.RenderChildElements(element);
                    if (!UserOptions.View.UseSmartTags)
                    {
                        this.Args.EditorFormatter.RenderMarkerEnd(this.Args.Parent);
                    }
                    else
                    {
                        this.Args.EditorFormatter.AddLiteralControl(this.Args.Parent, "<div class=\"scEditorFieldSpacer\">" + Images.GetSpacer(1, 1) + "</div>");
                    }
                    this._currentField = field2;
                }
            }
        }
Ejemplo n.º 3
0
        public virtual void RenderField(Control parent, Editor.Field field, bool readOnly)
        {
            var itemField = field.ItemField;
            var fieldType = GetFieldType(itemField);

            if (fieldType == null)
            {
                return;
            }

            if (!itemField.CanWrite)
            {
                readOnly = true;
            }

            RenderMarkerBegin(parent, field.ControlID);
            var typeKey = itemField.TypeKey;

            if (!string.IsNullOrEmpty(typeKey) && typeKey.Equals("checkbox") && !UserOptions.ContentEditor.ShowRawValues)
            {
                RenderField(parent, field, fieldType, readOnly);
                RenderLabel(parent, field, fieldType, readOnly);
                RenderMenuButtons(parent, field, fieldType, readOnly);
            }
            else
            {
                RenderLabel(parent, field, fieldType, readOnly);
                RenderMenuButtons(parent, field, fieldType, readOnly);
                RenderField(parent, field, fieldType, readOnly);
            }

            RenderMarkerEnd(parent);
        }
Ejemplo n.º 4
0
        private void RenderResizable(Control parent, Editor.Field field)
        {
            var type = field.TemplateField.Type;

            if (string.IsNullOrEmpty(type))
            {
                return;
            }

            var fieldType = FieldTypeManager.GetFieldType(type);

            if (fieldType == null || !fieldType.Resizable)
            {
                return;
            }

            var text1 =
                "<div style=\"cursor:row-resize; position: relative; height: 5px; width: 100%; top: 0px; left: 0px;\" onmousedown=\"scContent.fieldResizeDown(this, event)\" onmousemove=\"scContent.fieldResizeMove(this, event)\" onmouseup=\"scContent.fieldResizeUp(this, event, '" +
                field.TemplateField.ID.ToShortID() + "')\">" + Images.GetSpacer(1, 4) + "</div>";

            AddLiteralControl(parent, text1);
            var text2 = "<div class style=\"display:none\" \">" + Images.GetSpacer(1, 4) + "</div>";

            AddLiteralControl(parent, text2);
        }
Ejemplo n.º 5
0
 private Item GetTemplateFieldItem(Editor.Field field, Database database)
 {
     try
     {
         return(database.GetItem(field.TemplateField.ID));
     }
     catch
     {
         return(null);
     }
 }
Ejemplo n.º 6
0
 public static void SetProperties(Control editor, Editor.Field field, bool readOnly)
 {
     ReflectionUtil.SetProperty(editor, "ID", field.ControlID);
     ReflectionUtil.SetProperty(editor, "ItemID", field.ItemField.Item.ID.ToString());
     ReflectionUtil.SetProperty(editor, "ItemVersion", field.ItemField.Item.Version.ToString());
     ReflectionUtil.SetProperty(editor, "ItemLanguage", field.ItemField.Item.Language.ToString());
     ReflectionUtil.SetProperty(editor, "FieldID", field.ItemField.ID.ToString());
     ReflectionUtil.SetProperty(editor, "Source", field.ItemField.Source);
     ReflectionUtil.SetProperty(editor, "ReadOnly", readOnly ? 1 : 0);
     ReflectionUtil.SetProperty(editor, "Disabled", readOnly ? 1 : 0);
 }
        private void RenderLabel(XmlNode element)
        {
            Assert.ArgumentNotNull(element, "element");
            string attribute = XmlUtil.GetAttribute("id", element);

            if (!string.IsNullOrEmpty(attribute))
            {
                Editor.Field fieldByID = this.Sections.GetFieldByID(attribute);
                if (fieldByID != null)
                {
                    this.RenderLabel(fieldByID);
                }
            }
        }
Ejemplo n.º 8
0
        private string RenderMenuButtons(Editor.Field field, Item menu, bool readOnly)
        {
            var htmlTextWriter = new HtmlTextWriter(new StringWriter());

            htmlTextWriter.Write("<div class=\"scContentButtons\">");
            var flag1 = true;

            foreach (Item button in menu.Children)
            {
                if (!IsFieldEditor || MainUtil.GetBool(button["Show In Field Editor"], false))
                {
                    var str1    = button["Message"];
                    var flag2   = false;
                    var flag3   = false;
                    var command = CommandManager.GetCommand(str1);
                    if (command != null)
                    {
                        var commandState = CommandManager.QueryState(command,
                                                                     new CommandContext(Arguments.Item));
                        flag2 = commandState == CommandState.Hidden;
                        flag3 = commandState == CommandState.Disabled;
                    }
                    if (!flag2)
                    {
                        if (!flag1)
                        {
                            htmlTextWriter.Write("");
                        }
                        flag1 = false;
                        var str2 = Context.ClientPage.GetClientEvent(str1).Replace("$Target", field.ControlID);
                        if (readOnly || DisableAssignSecurityButton(button) || flag3)
                        {
                            htmlTextWriter.Write("<span class=\"scContentButtonDisabled\">");
                            htmlTextWriter.Write(button["Display Name"]);
                            htmlTextWriter.Write("</span>");
                        }
                        else
                        {
                            htmlTextWriter.Write("<a href=\"#\" class=\"scContentButton\" onclick=\"" + str2 + "\">");
                            htmlTextWriter.Write(button["Display Name"]);
                            htmlTextWriter.Write("</a>");
                        }
                    }
                }
            }

            htmlTextWriter.Write("</div>");
            return(htmlTextWriter.InnerWriter.ToString());
        }
Ejemplo n.º 9
0
        public virtual void RenderField(Control parent, Editor.Field field, Item fieldType, bool readOnly)
        {
            var str = string.Empty;

            if (field.ItemField.IsBlobField && !Arguments.ShowInputBoxes)
            {
                readOnly = true;
                str      = Translate.Text("[Blob Value]");
            }
            else
            {
                str = field.Value;
            }

            RenderField(parent, field, fieldType, readOnly, str);
        }
        private void RenderInput(Editor.Field field)
        {
            Assert.ArgumentNotNull(field, "field");
            bool  readOnly  = this.Args.ReadOnly;
            Field itemField = field.ItemField;
            Item  fieldType = this.Args.EditorFormatter.GetFieldType(itemField);

            if (fieldType != null)
            {
                if (!itemField.CanWrite)
                {
                    readOnly = true;
                }
                this.Args.EditorFormatter.RenderField(this.Args.Parent, field, fieldType, readOnly);
            }
        }
Ejemplo n.º 11
0
        public static void SetStyle(Control editor, Editor.Field field)
        {
            if (string.IsNullOrEmpty(field.ItemField.Style))
            {
                return;
            }

            var css = ReflectionUtil.GetProperty(editor, "Style") as CssStyleCollection;

            if (css == null)
            {
                return;
            }

            UIUtil.ParseStyle(css, field.ItemField.Style);
        }
        private void RenderLabel(Editor.Field field)
        {
            Assert.ArgumentNotNull(field, "field");
            Field itemField = field.ItemField;
            Item  fieldType = Args.EditorFormatter.GetFieldType(itemField);

            if (fieldType != null)
            {
                bool readOnly = Args.ReadOnly;
                if (!itemField.CanWrite)
                {
                    readOnly = true;
                }
                RenderLabel(Args.Parent, field, fieldType, readOnly);
            }
        }
Ejemplo n.º 13
0
        public virtual void RenderMenuButtons(Control parent, Editor.Field field, Item fieldType,
                                              bool readOnly)
        {
            if (!Arguments.ShowInputBoxes || UserOptions.ContentEditor.ShowRawValues)
            {
                return;
            }

            var menu = fieldType.Children["Menu"];

            if (menu == null || !menu.HasChildren)
            {
                return;
            }

            AddLiteralControl(parent, RenderMenuButtons(field, menu, readOnly));
        }
Ejemplo n.º 14
0
        public void AddEditorControl(Control parent, Control editor, Editor.Field field,
                                     bool hasRibbon, bool readOnly, string value)
        {
            SetProperties(editor, field, readOnly);
            SetValue(editor, value);

            var editorFieldContainer = new EditorFieldContainer(editor);

            editorFieldContainer.ID = field.ControlID + "_container";
            var control = (Control)editorFieldContainer;

            Context.ClientPage.AddControl(parent, control);
            SetProperties(editor, field, readOnly);
            SetAttributes(editor, field, hasRibbon);
            SetStyle(editor, field);

            SetValue(editor, value);
        }
Ejemplo n.º 15
0
        public static void SetAttributes(Control editor, Editor.Field field, bool hasRibbon)
        {
            var attributeCollection = ReflectionUtil.GetProperty(editor, "Attributes") as AttributeCollection;

            if (attributeCollection == null)
            {
                return;
            }

            var str = field.ItemField.Item.Uri + "&fld=" + field.ItemField.ID + "&ctl=" + field.ControlID;

            if (hasRibbon)
            {
                str += "&rib=1";
            }

            attributeCollection["onfocus"] = $"javascript:return scContent.activate(this,event,'{str}')";
            attributeCollection["onblur"]  = $"javascript:return scContent.deactivate(this,event,'{str}')";
        }
        private void RenderButtons(Editor.Field field)
        {
            Assert.ArgumentNotNull(field, "field");
            bool  readOnly  = this.Args.ReadOnly;
            Field itemField = field.ItemField;
            Item  fieldType = this.Args.EditorFormatter.GetFieldType(itemField);

            if (fieldType != null)
            {
                if (!itemField.CanWrite)
                {
                    readOnly = true;
                }
                if (!UserOptions.View.UseSmartTags)
                {
                    this.Args.EditorFormatter.RenderMenuButtons(this.Args.Parent, field, fieldType, readOnly);
                }
            }
        }
Ejemplo n.º 17
0
        public override void RenderField(Control parent, Editor.Field field, bool readOnly)
        {
            Assert.ArgumentNotNull(parent, "parent");
            Assert.ArgumentNotNull(field, "field");
            Field itemField = field.ItemField;
            Item  fieldType = GetFieldType(itemField);

            if (fieldType != null)
            {
                if (!itemField.CanWrite)
                {
                    readOnly = true;
                }
                RenderMarkerBegin(parent, field.ControlID);
                RenderMenuButtons(parent, field, fieldType, readOnly);
                RenderLabel(parent, field, fieldType, readOnly);
                RenderField(parent, field, fieldType, readOnly);
                RenderMarkerEnd(parent);
            }
        }
Ejemplo n.º 18
0
        private bool FieldIsVisible(Editor.Field field)
        {
            try
            {
                Item templateFieldItem = GetTemplateFieldItem(field, args.Item.Database);

                if (templateFieldItem == null)
                {
                    return(true);
                }

                ShowField showField = ShowField.Always;

                try
                {
                    showField = ParseShowField(new ID(templateFieldItem.Fields[Items.ShowField].Value));
                }
                catch { }

                if (showField.Equals(ShowField.Always))
                {
                    return(true);
                }
                if (showField.Equals(ShowField.Never))
                {
                    return(false);
                }
                if (showField.Equals(ShowField.WhenShowingStandardFields) && (!UserOptions.ContentEditor.ShowSystemFields))
                {
                    return(false);
                }
            }
            catch { }

            return(true);
        }
Ejemplo n.º 19
0
        public void RenderLabel(Control parent, Editor.Field field, Item fieldType, bool readOnly)
        {
            var itemField          = field.ItemField;
            var language           = Arguments.Language;
            var customFieldMapping = false;
            var s = field.TemplateField.GetTitle(language);

            if (string.IsNullOrEmpty(s))
            {
                s = field.TemplateField.IgnoreDictionaryTranslations ? itemField.Name : Translate.Text(itemField.Name);
            }
            var template = field.ItemField.Item.TemplateName;
            var item     =
                YmlSettingsReader.TemplateMap.TemplateItem.FirstOrDefault(a => a.TemplateName == template)?
                .MapItems.FirstOrDefault(a => a.FieldName == s);

            if (item != null)
            {
                s = $"<b>[Ignition-{s}]</b>: <span style=\"font-style: italic\">{item.MapTo}</span>";
                customFieldMapping = true;
            }

            var toolTip = itemField.ToolTip;

            if (!string.IsNullOrEmpty(toolTip))
            {
                var text = Translate.Text(toolTip);
                if (text.EndsWith(".", StringComparison.InvariantCulture))
                {
                    text = StringUtil.Left(text, text.Length - 1);
                }
                s = (customFieldMapping && !string.IsNullOrEmpty(item.ShortDescription)) ? $"{s} - <span style=\"font-style: italic\">{item.ShortDescription}</span>" : $"{s} - {text}";
            }

            var str1 = customFieldMapping ? s : HttpUtility.HtmlEncode(s);

            var label = field.ItemField.GetLabel(Arguments.IsAdministrator || Settings.ContentEditor.ShowFieldSharingLabels);

            if (!string.IsNullOrEmpty(label))
            {
                str1 = str1 + "<span class=\"scEditorFieldLabelAdministrator\"> [" + label + "]</span>";
            }
            var typeKey = itemField.TypeKey;

            if (!string.IsNullOrEmpty(typeKey) && typeKey != "checkbox")
            {
                str1 += ":";
            }
            if (readOnly)
            {
                str1 = "<span class=\"scEditorFieldLabelDisabled\">" + str1 + "</span>";
            }
            var str2 = HttpUtility.HtmlAttributeEncode(itemField.HelpLink);

            if (str2.Length > 0)
            {
                str1 = "<a class=\"scEditorFieldLabelLink\" href=\"" + str2 + "\" target=\"__help\">" + str1 + "</a>";
            }
            var str3 = string.Empty;

            if (itemField.Description.Length > 0)
            {
                str3 = " title=\"" + HttpUtility.HtmlAttributeEncode(itemField.Description) + "\"";
            }
            var text1 = "<div class=\"" + "scEditorFieldLabel" + "\"" + str3 + ">" + str1 + "</div>";

            AddLiteralControl(parent, text1);
        }
Ejemplo n.º 20
0
        public virtual void RenderField(Control parent, Editor.Field field, Item fieldType, bool readOnly,
                                        string value)
        {
            var hasRibbon = false;
            var text      = string.Empty;
            var editor    = GetEditor(fieldType);

            if (Arguments.ShowInputBoxes)
            {
                hasRibbon = !UserOptions.ContentEditor.ShowRawValues && fieldType.Children["Ribbon"] != null;
                var typeKey = field.TemplateField.TypeKey;

                if (typeKey == "rich text" || typeKey == "html")
                {
                    hasRibbon = hasRibbon &&
                                UserOptions.HtmlEditor.ContentEditorMode != UserOptions.HtmlEditor.Mode.Preview;
                }
            }

            var str1 = string.Empty;
            var str2 = string.Empty;
            var @int = Registry.GetInt("/Current_User/Content Editor/Field Size/" + field.TemplateField.ID.ToShortID(),
                                       -1);

            if (@int != -1)
            {
                str1 = $" height:{@int}px";
                var control = editor as Sitecore.Web.UI.HtmlControls.Control;

                if (control != null)
                {
                    control.Height = new Unit(@int, UnitType.Pixel);
                }
                else
                {
                    var webControl = editor as WebControl;

                    if (webControl != null)
                    {
                        webControl.Height = new Unit(@int, UnitType.Pixel);
                    }
                }
            }
            else if (editor is Frame)
            {
                var style = field.ItemField.Style;
                if (string.IsNullOrEmpty(style) || !style.ToLowerInvariant().Contains("height"))
                {
                    str2 = " class='defaultFieldEditorsFrameContainer'";
                }
            }
            else if (editor is MultilistEx)
            {
                var style = field.ItemField.Style;
                if (string.IsNullOrEmpty(style) || !style.ToLowerInvariant().Contains("height"))
                {
                    str2 = " class='defaultFieldEditorsMultilistContainer'";
                }
            }
            else
            {
                var typeKey = field.ItemField.TypeKey;
                if (!string.IsNullOrEmpty(typeKey) && typeKey.Equals("checkbox") &&
                    !UserOptions.ContentEditor.ShowRawValues)
                {
                    str2 = "class='scCheckBox'";
                }
            }

            AddLiteralControl(parent, "<div style='" + str1 + "' " + str2 + ">");
            AddLiteralControl(parent, text);
            AddEditorControl(parent, editor, field, hasRibbon, readOnly, value);
            AddLiteralControl(parent, "</div>");
            RenderResizable(parent, field);
        }
Ejemplo n.º 21
0
        public new void RenderLabel(Control parent, Editor.Field field, Item fieldType, bool readOnly)
        {
            Assert.ArgumentNotNull(parent, "parent");
            Assert.ArgumentNotNull(field, "field");
            Assert.ArgumentNotNull(fieldType, "fieldType");

            if (Arguments.Item != null)
            {
                Field itemField = Arguments.Item.Fields[field.ItemField.ID];

                Language language = Arguments.Item.Language;

                Assert.IsNotNull(language, "language");
                if (itemField.Language != language)
                {
                    Item item = ItemManager.GetItem(field.ItemField.Item.ID, language, Version.Latest, field.ItemField.Item.Database);
                    if (item != null)
                    {
                        itemField = item.Fields[itemField.ID];
                    }
                }
                string name = itemField.Name;
                if (!string.IsNullOrEmpty(itemField.DisplayName))
                {
                    name = itemField.DisplayName;
                }
                name = Translate.Text(name);
                string toolTip = itemField.ToolTip;
                if (!string.IsNullOrEmpty(toolTip))
                {
                    toolTip = Translate.Text(toolTip);
                    if (toolTip.EndsWith("."))
                    {
                        toolTip = Sitecore.StringUtil.Left(toolTip, toolTip.Length - 1);
                    }
                    name = name + " - " + toolTip;
                }
                name = HttpUtility.HtmlEncode(name);
                bool          flag    = false;
                StringBuilder builder = new StringBuilder(200);
                if (this.Arguments.IsAdministrator && (itemField.Unversioned || itemField.Shared))
                {
                    builder.Append("<span class=\"scEditorFieldLabelAdministrator\"> [");
                    if (itemField.Unversioned)
                    {
                        builder.Append(Translate.Text("unversioned"));
                        flag = true;
                    }
                    if (itemField.Shared)
                    {
                        if (flag)
                        {
                            builder.Append(", ");
                        }
                        builder.Append(Translate.Text("shared"));
                        flag = true;
                    }
                }



                if (itemField.InheritsValueFromOtherItem)
                {
                    if (flag)
                    {
                        builder.Append(", ");
                    }
                    else
                    {
                        builder.Append("<span class=\"scEditorFieldLabelAdministrator\"> [");
                    }
                    builder.Append(Translate.Text("original value"));
                    flag = true;
                }
                if (FallbackValuesManager.Provider.FieldContainsFallbackValue(itemField, Arguments.Item.Language))
                {
                    if (flag)
                    {
                        builder.Append(", ");
                    }
                    else
                    {
                        builder.Append("<span class=\"scEditorFieldLabelAdministrator\"> [");
                    }
                    builder.Append(Translate.Text("fallback value"));
                }
                else if (itemField.ContainsStandardValue)
                {
                    if (flag)
                    {
                        builder.Append(", ");
                    }
                    else
                    {
                        builder.Append("<span class=\"scEditorFieldLabelAdministrator\"> [");
                    }
                    builder.Append(Translate.Text("standard value"));
                }

                if (builder.Length > 0)
                {
                    builder.Append("]</span>");
                }
                name = name + builder.ToString() + ":";
                if (readOnly)
                {
                    name = "<span class=\"scEditorFieldLabelDisabled\">" + name + "</span>";
                }
                string helpLink = itemField.HelpLink;
                if (helpLink.Length > 0)
                {
                    name = "<a class=\"scEditorFieldLabelLink\" href=\"" + helpLink + "\" target=\"__help\">" + name + "</a>";
                }
                string str4 = string.Empty;
                if (itemField.Description.Length > 0)
                {
                    str4 = " title=\"" + itemField.Description + "\"";
                }
                string str5 = "scEditorFieldLabel";
                if ((UserOptions.View.UseSmartTags && !readOnly) && !UserOptions.ContentEditor.ShowRawValues)
                {
                    Item item2 = fieldType.Children["Menu"];
                    if (item2 != null)
                    {
                        ChildList children = item2.Children;
                        int       count    = children.Count;
                        if (count > 0)
                        {
                            string text = children[0]["Display Name"];
                            name = (string.Concat(new object[] { "<span id=\"SmartTag_", field.ControlID, "\" onmouseover='javascript:scContent.smartTag(this, event, \"", field.ControlID, "\", ", Sitecore.StringUtil.EscapeJavascriptString(text), ",\"", count, "\")'>" }) + Images.GetImage("Images/SmartTag.png", 11, 11, "middle", "0px 4px 0px 0px")) + "</span>" + name;
                        }
                    }
                }
                name = "<div class=\"" + str5 + "\"" + str4 + ">" + name + "</div>";
                this.AddLiteralControl(parent, name);
            }
            else
            {
                base.RenderLabel(parent, field, fieldType, readOnly);
            }
        }