public static Checkbox CreateSitecoreControl(string name, bool visible, bool readOnly, bool add, bool check, string text, ControlCollection controls, string idFromName, bool trackModified, bool disabled) { var control = new Checkbox { ID = idFromName, TrackModified = trackModified, Disabled = disabled, Visible = visible, ReadOnly = readOnly, EnableViewState = true }; if (add) { controls.Add(control); } if (!string.IsNullOrEmpty(text)) { CreateLitertal(string.Format(" <label for='{0}'>{1}</label>", idFromName, text), controls); } control.Checked = check; return(control); }
protected override void ActivePageChanged(string page, string oldPage) { Assert.ArgumentNotNull(page, "page"); Assert.ArgumentNotNull(oldPage, "oldPage"); if (page == "FieldPage") { TemplateItem templateItem = new TemplateItem(Sitecore.Context.ContentDatabase.GetItem(template.Value)); foreach (TemplateFieldItem tfi in templateItem.Fields) { Sitecore.Web.UI.HtmlControls.Checkbox cb = new Sitecore.Web.UI.HtmlControls.Checkbox(); cb.Value = tfi.Name; FieldTreeListPanel.Controls.Add(cb); } } if (page == "GenerateFile") { base.NextButton.Disabled = true; base.BackButton.Disabled = true; base.CancelButton.Disabled = true; Context.ClientPage.ClientResponse.Timer("GenerateExportFile", 500); } if (page == "LastPage") { base.BackButton.Visible = false; base.NextButton.Visible = false; } base.ActivePageChanged(page, oldPage); }
private Control GetVariableEditor(IDictionary variable) { var value = variable["Value"]; var name = (string) variable["Name"]; var editor = variable["Editor"] as string; var type = value.GetType(); if (type == typeof (DateTime) || (!string.IsNullOrEmpty(editor) && (editor.IndexOf("date", StringComparison.OrdinalIgnoreCase) > -1 || editor.IndexOf("time", StringComparison.OrdinalIgnoreCase) > -1))) { var dateTimePicker = new DateTimePicker { ID = Sitecore.Web.UI.HtmlControls.Control.GetUniqueID("variable_" + name + "_"), ShowTime = (variable["ShowTime"] != null && (bool) variable["ShowTime"]) || (!string.IsNullOrEmpty(editor) && editor.IndexOf("time", StringComparison.OrdinalIgnoreCase) > -1) }; if (value is DateTime) { var date = (DateTime) value; if (date != DateTime.MinValue && date != DateTime.MaxValue) { dateTimePicker.Value = (date.Kind != DateTimeKind.Utc) ? DateUtil.ToIsoDate(TypeResolver.Resolve<IDateConverter>("IDateConverter").ToServerTime(date)) : DateUtil.ToIsoDate(date); } } else { dateTimePicker.Value = value as string ?? string.Empty; } return dateTimePicker; } if (!string.IsNullOrEmpty(editor) && editor.IndexOf("rule", StringComparison.OrdinalIgnoreCase) > -1) { string editorId = Sitecore.Web.UI.HtmlControls.Control.GetUniqueID("variable_" + name+"_"); Sitecore.Context.ClientPage.ServerProperties[editorId] = value; var rulesBorder = new Border { Class = "rulesWrapper", ID = editorId }; Button rulesEditButton = new Button { Header = "Edit rule", Class = "scButton edit-button rules-edit-button", Click = "EditConditionClick(\\\"" + editorId + "\\\")" }; rulesBorder.Controls.Add(rulesEditButton); var rulesRender = new Literal { ID = editorId + "_renderer", Text = GetRuleConditionsHtml( string.IsNullOrEmpty(value as string) ? "<ruleset />" : value as string) }; rulesRender.Class = rulesRender.Class + " varRule"; rulesBorder.Controls.Add(rulesRender); return rulesBorder; } if (!string.IsNullOrEmpty(editor) && (editor.IndexOf("treelist", StringComparison.OrdinalIgnoreCase) > -1 || (editor.IndexOf("multilist", StringComparison.OrdinalIgnoreCase) > -1) || (editor.IndexOf("droplist", StringComparison.OrdinalIgnoreCase) > -1))) { Item item = null; var strValue = string.Empty; if (value is Item) { item = (Item) value; strValue = item.ID.ToString(); } else if (value is IEnumerable<object>) { List<Item> items = (value as IEnumerable<object>).Cast<Item>().ToList(); item = items.FirstOrDefault(); strValue = string.Join("|", items.Select(i => i.ID.ToString()).ToArray()); } var dbName = item == null ? Sitecore.Context.ContentDatabase.Name : item.Database.Name; if (editor.IndexOf("multilist", StringComparison.OrdinalIgnoreCase) > -1) { var multiList = new MultilistExtended { ID = Sitecore.Web.UI.HtmlControls.Control.GetUniqueID("variable_" + name + "_"), Value = strValue, Database = dbName, ItemID = "{11111111-1111-1111-1111-111111111111}", Source = variable["Source"] as string ?? "/sitecore", }; multiList.SetLanguage(Sitecore.Context.Language.Name); multiList.Class += " treePicker"; return multiList; } if (editor.IndexOf("droplist", StringComparison.OrdinalIgnoreCase) > -1) { var lookup = new LookupEx { ID = Sitecore.Web.UI.HtmlControls.Control.GetUniqueID("variable_" + name + "_"), Database = dbName, ItemID = (item != null ? item.ID.ToString() : "{11111111-1111-1111-1111-111111111111}"), Source = variable["Source"] as string ?? "/sitecore", ItemLanguage = Sitecore.Context.Language.Name, Value = (item != null ? item.ID.ToString() : "{11111111-1111-1111-1111-111111111111}") }; lookup.Class += " textEdit"; return lookup; } var treeList = new TreeList { ID = Sitecore.Web.UI.HtmlControls.Control.GetUniqueID("variable_" + name + "_"), Value = strValue, AllowMultipleSelection = true, DatabaseName = dbName, Database = dbName, Source = variable["Source"] as string ?? "/sitecore", DisplayFieldName = variable["DisplayFieldName"] as string ?? "__DisplayName" }; treeList.Class += " treePicker"; return treeList; } if (type == typeof (Item) || (!string.IsNullOrEmpty(editor) && (editor.IndexOf("item", StringComparison.OrdinalIgnoreCase) > -1))) { var item = value as Item; var source = variable["Source"] as string; var root = variable["Root"] as string; var sourceRoot = string.IsNullOrEmpty(source) ? "/sitecore" : StringUtil.ExtractParameter("DataSource", source); var dataContext = item != null ? new DataContext { DefaultItem = item.Paths.Path, ID = Sitecore.Web.UI.HtmlControls.Control.GetUniqueID("dataContext"), Parameters = string.IsNullOrEmpty(source) ? "databasename=" + item.Database.Name : source, DataViewName = "Master", Root = string.IsNullOrEmpty(root) ? sourceRoot : root, Database = item.Database.Name, Selected = new[] {new DataUri(item.ID, item.Language, item.Version)}, Folder = item.ID.ToString(), Language = item.Language, Version = item.Version } : new DataContext { ID = Sitecore.Web.UI.HtmlControls.Control.GetUniqueID("dataContext"), Parameters = string.IsNullOrEmpty(source) ? "databasename=master" : source, DataViewName = "Master", Root = string.IsNullOrEmpty(root) ? sourceRoot : root }; DataContextPanel.Controls.Add(dataContext); var treePicker = new TreePicker { ID = Sitecore.Web.UI.HtmlControls.Control.GetUniqueID("variable_" + name + "_"), Value = item != null ? item.ID.ToString() : string.Empty, DataContext = dataContext.ID, AllowNone = !string.IsNullOrEmpty(editor) && (editor.IndexOf("allownone", StringComparison.OrdinalIgnoreCase) > -1) }; treePicker.Class += " treePicker"; return treePicker; } if (type == typeof (bool) || (!string.IsNullOrEmpty(editor) && (editor.IndexOf("bool", StringComparison.OrdinalIgnoreCase) > -1))) { var checkboxBorder = new Border { Class = "checkBoxWrapper", ID = Sitecore.Web.UI.HtmlControls.Control.GetUniqueID("variable_" + name + "_") }; var checkBox = new Checkbox { ID = Sitecore.Web.UI.HtmlControls.Control.GetUniqueID("variable_" + name + "_"), Header = (string) variable["Title"], HeaderStyle = "display:inline-block;", Checked = (bool) value, Class = "varCheckbox" }; checkboxBorder.Controls.Add(checkBox); return checkboxBorder; } if (!string.IsNullOrEmpty(editor)) { var showRoles = editor.IndexOf("role", StringComparison.OrdinalIgnoreCase) > -1; var showUsers = editor.IndexOf("user", StringComparison.OrdinalIgnoreCase) > -1; var multiple = editor.IndexOf("multiple", StringComparison.OrdinalIgnoreCase) > -1; if (showRoles || showUsers) { var picker = new UserPicker(); picker.Style.Add("float", "left"); picker.ID = Sitecore.Web.UI.HtmlControls.Control.GetUniqueID("variable_" + name + "_"); picker.Class += " scContentControl textEdit clr" + value.GetType().Name; picker.Value = (value is IEnumerable<object>) ? String.Join("|", ((IEnumerable<object>)value).Select(x => x.ToString()).ToArray()) : value.ToString(); picker.ExcludeRoles = !showRoles; picker.ExcludeUsers = !showUsers; picker.DomainName = variable["Domain"] as string ?? variable["DomainName"] as string; picker.Multiple = multiple; picker.Click = "UserPickerClick(" + picker.ID + ")"; return picker; } } Sitecore.Web.UI.HtmlControls.Control edit; if (!string.IsNullOrEmpty(editor) && editor.IndexOf("info", StringComparison.OrdinalIgnoreCase) > -1) { return new Literal {Text = value.ToString(), Class = "varHint"}; } if (variable["lines"] != null && ((int) variable["lines"] > 1)) { edit = new Memo(); edit.Attributes.Add("rows", variable["lines"].ToString()); } else if (variable["Options"] != null) { var psOptions = variable["Options"].BaseObject(); var options = new OrderedDictionary(); if (psOptions is OrderedDictionary) { options = psOptions as OrderedDictionary; } else if (psOptions is string) { var strOptions = ((string) variable["Options"]).Split('|'); var i = 0; while (i < strOptions.Length) { options.Add(strOptions[i++], strOptions[i++]); } } else if (psOptions is Hashtable) { var hashOptions = variable["Options"] as Hashtable; foreach (var key in hashOptions.Keys) { options.Add(key, hashOptions[key]); } } else { throw new Exception("Checklist options format unrecognized."); } if (!string.IsNullOrEmpty(editor)) { if (editor.IndexOf("radio", StringComparison.OrdinalIgnoreCase) > -1) { var radioList = new Groupbox { ID = Sitecore.Web.UI.HtmlControls.Control.GetUniqueID("variable_" + name + "_"), // Header = (string) variable["Title"], Class = "scRadioGroup" }; foreach (var option in options.Keys) { var optionName = option.ToString(); var optionValue = options[optionName].ToString(); var item = new Radiobutton { Header = optionName, Value = optionValue, ID = Sitecore.Web.UI.HtmlControls.Control.GetUniqueID(radioList.ID), Name = radioList.ID, Checked = optionValue == value.ToString() }; radioList.Controls.Add(item); radioList.Controls.Add(new Literal("<br/>")); } return radioList; } if (editor.IndexOf("check", StringComparison.OrdinalIgnoreCase) > -1) { var checkList = new PSCheckList { ID = Sitecore.Web.UI.HtmlControls.Control.GetUniqueID("variable_" + name + "_"), HeaderStyle = "margin-top:20px; display:inline-block;", ItemID = "{11111111-1111-1111-1111-111111111111}" }; checkList.SetItemLanguage(Sitecore.Context.Language.Name); string[] values; if (value is string) { values = value.ToString().Split('|'); } else if (value is IEnumerable) { values = ((value as IEnumerable).Cast<object>().Select(s => s == null ? "" : s.ToString())).ToArray(); } else { values = new[] {value.ToString()}; } foreach (var item in from object option in options.Keys select option.ToString() into optionName let optionValue = options[optionName].ToString() select new ChecklistItem { ID = Sitecore.Web.UI.HtmlControls.Control.GetUniqueID(checkList.ID), Header = optionName, Value = optionValue, Checked = values.Contains(optionValue, StringComparer.OrdinalIgnoreCase) }) { checkList.Controls.Add(item); } checkList.TrackModified = false; checkList.Disabled = false; return checkList; } } edit = new Combobox(); var placeholder = variable["Placeholder"]; if (placeholder is string) { var option = new ListItem { Header = placeholder.ToString(), Value = "", Selected = true }; edit.Controls.Add(option); } foreach (var option in options.Keys) { var optionName = option.ToString(); var optionValue = options[optionName].ToString(); var item = new ListItem { Header = optionName, Value = optionValue }; edit.Controls.Add(item); } } else { var placeholder = variable["Placeholder"]; if (!string.IsNullOrEmpty(editor) && editor.IndexOf("pass", StringComparison.OrdinalIgnoreCase) > -1) { edit = new PasswordExtended(); if (placeholder is string) { ((PasswordExtended)edit).PlaceholderText = placeholder.ToString(); } } else { edit = new EditExtended(); if (placeholder is string) { ((EditExtended)edit).PlaceholderText = placeholder.ToString(); } } } var tip = (variable["Tooltip"] as string); if (!String.IsNullOrEmpty(tip)) { edit.ToolTip = tip.RemoveHtmlTags(); } edit.Style.Add("float", "left"); edit.ID = Sitecore.Web.UI.HtmlControls.Control.GetUniqueID("variable_" + name + "_"); edit.Class += " scContentControl textEdit clr" + value.GetType().Name; edit.Value = value.ToString(); return edit; }
private Control GetVariableEditor(IDictionary variable) { var value = variable["Value"]; var name = (string)variable["Name"]; var editor = variable["Editor"] as string; var type = value.GetType(); if (type == typeof(DateTime) || (!string.IsNullOrEmpty(editor) && (editor.IndexOf("date", StringComparison.OrdinalIgnoreCase) > -1 || editor.IndexOf("time", StringComparison.OrdinalIgnoreCase) > -1))) { var dateTimePicker = new DateTimePicker { ID = Sitecore.Web.UI.HtmlControls.Control.GetUniqueID("variable_" + name + "_"), ShowTime = (variable["ShowTime"] != null && (bool)variable["ShowTime"]) || (!string.IsNullOrEmpty(editor) && editor.IndexOf("time", StringComparison.OrdinalIgnoreCase) > -1) }; if (value is DateTime) { var date = (DateTime)value; if (date != DateTime.MinValue && date != DateTime.MaxValue) { dateTimePicker.Value = date.Kind != DateTimeKind.Utc ? DateUtil.ToIsoDate(TypeResolver.Resolve <IDateConverter>().ToServerTime(date)) : DateUtil.ToIsoDate(date); } } else { dateTimePicker.Value = value as string ?? string.Empty; } return(dateTimePicker); } if (!string.IsNullOrEmpty(editor) && editor.IndexOf("rule", StringComparison.OrdinalIgnoreCase) > -1) { var editorId = Sitecore.Web.UI.HtmlControls.Control.GetUniqueID("variable_" + name + "_"); Sitecore.Context.ClientPage.ServerProperties[editorId] = value; var rulesBorder = new Border { Class = "rulesWrapper", ID = editorId }; var rulesEditButton = new Button { Header = Texts.PowerShellMultiValuePrompt_GetVariableEditor_Edit_rule, Class = "scButton edit-button rules-edit-button", Click = "EditConditionClick(\\\"" + editorId + "\\\")" }; rulesBorder.Controls.Add(rulesEditButton); var rulesRender = new Literal { ID = editorId + "_renderer", Text = GetRuleConditionsHtml( string.IsNullOrEmpty(value as string) ? "<ruleset />" : value as string) }; rulesRender.Class = rulesRender.Class + " varRule"; rulesBorder.Controls.Add(rulesRender); return(rulesBorder); } if (!string.IsNullOrEmpty(editor) && (editor.IndexOf("treelist", StringComparison.OrdinalIgnoreCase) > -1 || (editor.IndexOf("multilist", StringComparison.OrdinalIgnoreCase) > -1) || (editor.IndexOf("droplist", StringComparison.OrdinalIgnoreCase) > -1) || (editor.IndexOf("droptree", StringComparison.OrdinalIgnoreCase) > -1))) { Item item = null; var strValue = string.Empty; if (value is Item) { item = (Item)value; strValue = item.ID.ToString(); } else if (value is IEnumerable <object> ) { var items = (value as IEnumerable <object>).Cast <Item>().ToList(); item = items.FirstOrDefault(); strValue = string.Join("|", items.Select(i => i.ID.ToString()).ToArray()); } var dbName = item == null ? Sitecore.Context.ContentDatabase.Name : item.Database.Name; if (editor.IndexOf("multilist", StringComparison.OrdinalIgnoreCase) > -1) { var multiList = new MultilistExtended { ID = Sitecore.Web.UI.HtmlControls.Control.GetUniqueID("variable_" + name + "_"), Value = strValue, Database = dbName, ItemID = ItemIDs.RootID.ToString(), Source = variable["Source"] as string ?? "/sitecore", }; multiList.SetLanguage(Sitecore.Context.Language.Name); multiList.Class += " treePicker"; return(multiList); } if (editor.IndexOf("droplist", StringComparison.OrdinalIgnoreCase) > -1) { if (Sitecore.Context.ContentDatabase?.Name != dbName) { // this control will crash if if content database is different than the items fed to it. return(new Literal { Text = "<span style='color: red'>" + Translate.Text( Texts .PowerShellMultiValuePrompt_GetVariableEditor_DropList_control_cannot_render_items_from_the_database___0___because_it_its_not_the_same_as___1___which_is_the_current_content_database__, dbName, Sitecore.Context.ContentDatabase?.Name) + "</span>", Class = "varHint" }); } var lookup = new LookupEx { ID = Sitecore.Web.UI.HtmlControls.Control.GetUniqueID("variable_" + name + "_"), Database = dbName, ItemID = item?.ID.ToString() ?? ItemIDs.RootID.ToString(), Source = variable["Source"] as string ?? "/sitecore", ItemLanguage = Sitecore.Context.Language.Name, Value = item?.ID.ToString() ?? ItemIDs.RootID.ToString() }; lookup.Class += " textEdit"; return(lookup); } if (editor.IndexOf("droptree", StringComparison.OrdinalIgnoreCase) > -1) { var tree = new Tree { ID = Sitecore.Web.UI.HtmlControls.Control.GetUniqueID("variable_" + name + "_"), Database = dbName, ItemID = item?.ID.ToString() ?? ItemIDs.Null.ToString(), Source = variable["Source"] as string ?? "", ItemLanguage = Sitecore.Context.Language.Name, Value = item?.ID.ToString() ?? "" }; tree.Class += " textEdit"; return(tree); } var treeList = new TreeList { ID = Sitecore.Web.UI.HtmlControls.Control.GetUniqueID("variable_" + name + "_"), Value = strValue, AllowMultipleSelection = true, DatabaseName = dbName, Database = dbName, Source = variable["Source"] as string ?? "/sitecore", DisplayFieldName = variable["DisplayFieldName"] as string ?? "__DisplayName" }; treeList.Class += " treePicker"; return(treeList); } if (type == typeof(Item) || (!string.IsNullOrEmpty(editor) && (editor.IndexOf("item", StringComparison.OrdinalIgnoreCase) > -1))) { var item = value as Item; var source = variable["Source"] as string; var root = variable["Root"] as string; var sourceRoot = string.IsNullOrEmpty(source) ? "/sitecore" : StringUtil.ExtractParameter("DataSource", source); var dataContext = item != null ? new DataContext { DefaultItem = item.Paths.Path, ID = Sitecore.Web.UI.HtmlControls.Control.GetUniqueID("dataContext"), Parameters = string.IsNullOrEmpty(source) ? "databasename=" + item.Database.Name : source, DataViewName = "Master", Root = string.IsNullOrEmpty(root) ? sourceRoot : root, Database = item.Database.Name, Selected = new[] { new DataUri(item.ID, item.Language, item.Version) }, Folder = item.ID.ToString(), Language = item.Language, Version = item.Version } : new DataContext { ID = Sitecore.Web.UI.HtmlControls.Control.GetUniqueID("dataContext"), Parameters = string.IsNullOrEmpty(source) ? "databasename=master" : source, DataViewName = "Master", Root = string.IsNullOrEmpty(root) ? sourceRoot : root }; DataContextPanel.Controls.Add(dataContext); var treePicker = new TreePicker { ID = Sitecore.Web.UI.HtmlControls.Control.GetUniqueID("variable_" + name + "_"), Value = item != null?item.ID.ToString() : string.Empty, DataContext = dataContext.ID, AllowNone = !string.IsNullOrEmpty(editor) && (editor.IndexOf("allownone", StringComparison.OrdinalIgnoreCase) > -1) }; treePicker.Class += " treePicker"; return(treePicker); } if (type == typeof(bool) || (!string.IsNullOrEmpty(editor) && (editor.IndexOf("bool", StringComparison.OrdinalIgnoreCase) > -1))) { var checkboxBorder = new Border { Class = "checkBoxWrapper", ID = Sitecore.Web.UI.HtmlControls.Control.GetUniqueID("variable_" + name + "_") }; var checkBox = new Checkbox { ID = Sitecore.Web.UI.HtmlControls.Control.GetUniqueID("variable_" + name + "_"), Header = (string)variable["Title"], HeaderStyle = "display:inline-block;", Checked = (bool)value, Class = "varCheckbox" }; checkboxBorder.Controls.Add(checkBox); return(checkboxBorder); } if (!string.IsNullOrEmpty(editor)) { var showRoles = editor.IndexOf("role", StringComparison.OrdinalIgnoreCase) > -1; var showUsers = editor.IndexOf("user", StringComparison.OrdinalIgnoreCase) > -1; var multiple = editor.IndexOf("multiple", StringComparison.OrdinalIgnoreCase) > -1; if (showRoles || showUsers) { var picker = new UserPicker(); picker.Style.Add("float", "left"); picker.ID = Sitecore.Web.UI.HtmlControls.Control.GetUniqueID("variable_" + name + "_"); picker.Class += " scContentControl textEdit clr" + value.GetType().Name; picker.Value = value is IEnumerable <object> ?string.Join("|", ((IEnumerable <object>)value).Select(x => x.ToString()).ToArray()) : value.ToString(); picker.ExcludeRoles = !showRoles; picker.ExcludeUsers = !showUsers; picker.DomainName = variable["Domain"] as string ?? variable["DomainName"] as string; picker.Multiple = multiple; picker.Click = "UserPickerClick(" + picker.ID + ")"; return(picker); } } Sitecore.Web.UI.HtmlControls.Control edit; if (!string.IsNullOrEmpty(editor) && editor.IndexOf("info", StringComparison.OrdinalIgnoreCase) > -1) { return(new Literal { Text = value.ToString(), Class = "varHint" }); } if (variable["lines"] != null && ((int)variable["lines"] > 1)) { edit = new Memo(); edit.Attributes.Add("rows", variable["lines"].ToString()); var placeholder = variable["Placeholder"]; if (placeholder is string) { edit.Attributes.Add("Placeholder", placeholder.ToString()); } } else if (variable["Options"] != null) { var psOptions = variable["Options"].BaseObject(); var options = new OrderedDictionary(); if (psOptions is OrderedDictionary) { options = psOptions as OrderedDictionary; } else if (psOptions is string) { var strOptions = ((string)variable["Options"]).Split('|'); var i = 0; while (i < strOptions.Length) { options.Add(strOptions[i++], strOptions[i++]); } } else if (psOptions is Hashtable) { var hashOptions = variable["Options"] as Hashtable; foreach (var key in hashOptions.Keys) { options.Add(key, hashOptions[key]); } } else { throw new Exception("Checklist options format unrecognized."); } if (!string.IsNullOrEmpty(editor)) { if (editor.IndexOf("radio", StringComparison.OrdinalIgnoreCase) > -1) { var radioList = new Groupbox { ID = Sitecore.Web.UI.HtmlControls.Control.GetUniqueID("variable_" + name + "_"), // Header = (string) variable["Title"], Class = "scRadioGroup" }; foreach (var option in options.Keys) { var optionName = option.ToString(); var optionValue = options[optionName].ToString(); var item = new Radiobutton { Header = optionName, Value = optionValue, ID = Sitecore.Web.UI.HtmlControls.Control.GetUniqueID(radioList.ID), Name = radioList.ID, Checked = optionValue == value.ToString() }; radioList.Controls.Add(item); radioList.Controls.Add(new Literal("<br/>")); } return(radioList); } if (editor.IndexOf("check", StringComparison.OrdinalIgnoreCase) > -1) { var checkBorder = new Border { Class = "checkListWrapper", ID = Sitecore.Web.UI.HtmlControls.Control.GetUniqueID("variable_" + name + "_") }; var editorId = Sitecore.Web.UI.HtmlControls.Control.GetUniqueID("variable_" + name + "_"); var link = new Literal( @"<div class='checkListActions'>" + @"<a href='#' class='scContentButton' onclick=""javascript:return scForm.postEvent(this,event,'checklist:checkall(id=" + editorId + @")')"">" + Translate.Text("Select all") + "</a> | " + @"<a href='#' class='scContentButton' onclick=""javascript:return scForm.postEvent(this,event,'checklist:uncheckall(id=" + editorId + @")')"">" + Translate.Text("Unselect all") + "</a> | " + @"<a href='#' class='scContentButton' onclick=""javascript:return scForm.postEvent(this,event,'checklist:invert(id=" + editorId + @")')"">" + Translate.Text("Invert selection") + "</a>" + @"</div>"); checkBorder.Controls.Add(link); var checkList = new PSCheckList { ID = editorId, HeaderStyle = "margin-top:20px; display:inline-block;", ItemID = ItemIDs.RootID.ToString() }; checkList.SetItemLanguage(Sitecore.Context.Language.Name); string[] values; if (value is string) { values = value.ToString().Split('|'); } else if (value is IEnumerable) { values = (value as IEnumerable).Cast <object>() .Select(s => s == null ? "" : s.ToString()) .ToArray(); } else { values = new[] { value.ToString() }; } foreach (var item in from object option in options.Keys select option.ToString() into optionName let optionValue = options[optionName].ToString() select new ChecklistItem { ID = Sitecore.Web.UI.HtmlControls.Control.GetUniqueID(checkList.ID), Header = optionName, Value = optionValue, Checked = values.Contains(optionValue, StringComparer.OrdinalIgnoreCase) }) { checkList.Controls.Add(item); } checkList.TrackModified = false; checkList.Disabled = false; checkBorder.Controls.Add(checkList); return(checkBorder); } } edit = new Combobox(); var placeholder = variable["Placeholder"]; if (placeholder is string) { var option = new ListItem { Header = placeholder.ToString(), Value = "", Selected = true }; edit.Controls.Add(option); } foreach (var option in options.Keys) { var optionName = option.ToString(); var optionValue = options[optionName].ToString(); var item = new ListItem { Header = optionName, Value = optionValue }; edit.Controls.Add(item); } } else { var placeholder = variable["Placeholder"]; if (!string.IsNullOrEmpty(editor) && editor.IndexOf("pass", StringComparison.OrdinalIgnoreCase) > -1) { edit = new PasswordExtended(); if (placeholder is string) { ((PasswordExtended)edit).PlaceholderText = placeholder.ToString(); } } else { edit = new EditExtended(); if (placeholder is string) { ((EditExtended)edit).PlaceholderText = placeholder.ToString(); } } } var tip = variable["Tooltip"] as string; if (!string.IsNullOrEmpty(tip)) { edit.ToolTip = tip.RemoveHtmlTags(); } edit.Style.Add("float", "left"); edit.ID = Sitecore.Web.UI.HtmlControls.Control.GetUniqueID("variable_" + name + "_"); edit.Class += " scContentControl textEdit clr" + value.GetType().Name; edit.Value = value.ToString(); return(edit); }