public override void Execute(object parameter) { var context = parameter as IItemSelectionContext; if (context == null) { return; } if (AppHost.MessageBox("Are you sure you want to remove ownership?", "Confirmation", MessageBoxButton.OKCancel, MessageBoxImage.Question) != MessageBoxResult.OK) { return; } ExecuteCompleted completed = delegate(string response, ExecuteResult result) { if (!DataService.HandleExecute(response, result)) { return; } var fieldId = IdManager.GetFieldId("/sitecore/templates/System/Templates/Sections/Security/Security/__Owner"); foreach (var item in context.Items) { var itemHeader = item as ItemTreeViewItem; if (itemHeader == null) { continue; } itemHeader.Item.Ownership = string.Empty; var fieldUri = new FieldUri(new ItemVersionUri(item.ItemUri, LanguageManager.CurrentLanguage, Version.Latest), fieldId); Notifications.RaiseFieldChanged(this, fieldUri, string.Empty); } }; var itemList = new StringBuilder(); IItem first = null; foreach (var item in context.Items) { if (first == null) { first = item; } else { itemList.Append("|"); } itemList.Append(item.ItemUri.ItemId); } if (first != null) { first.ItemUri.Site.DataService.ExecuteAsync("Security.ClearOwnership", completed, first.ItemUri.DatabaseName.Name, itemList.ToString()); } }
private void FieldChanged([NotNull] object sender, [NotNull] FieldUri fieldUri, [CanBeNull] string newValue) { Diagnostics.Debug.ArgumentNotNull(sender, nameof(sender)); Diagnostics.Debug.ArgumentNotNull(fieldUri, nameof(fieldUri)); if (fieldUri.ItemVersionUri.ItemUri != ItemUri) { return; } if (Item.SerializationStatus == SerializationStatus.Serialized) { Item.SerializationStatus = SerializationStatus.Modified; RefreshStatusIcons(); } if (fieldUri.FieldId == FieldIds.Icon && !string.IsNullOrEmpty(newValue)) { var path = @"/sitecore/shell/~/icon/" + newValue; Icon = new Icon(fieldUri.Site, path); } if (fieldUri.FieldId == FieldIds.StandardValues) { var itemId = string.IsNullOrWhiteSpace(newValue) ? ItemId.Empty : new ItemId(new Guid(newValue)); Item.StandardValuesId = itemId; Item.StandardValuesField = itemId; } }
private void FieldChanged([NotNull] object sender, FieldUri fieldUri, [NotNull] string newValue) { if (fieldUri.ItemVersionUri.ItemUri == TemplateUri && fieldUri.FieldId == FieldIds.StandardValues) { StandardValueItemId = string.IsNullOrEmpty(newValue) ? ItemId.Empty : new ItemId(new Guid(newValue)); } }
public override void Execute(object parameter) { var context = parameter as ContentTreeContext; if (context == null) { return; } foreach (var i in context.SelectedItems) { var item = i as ItemTreeViewItem; if (item == null) { continue; } ExecuteCompleted completed = delegate(string response, ExecuteResult executeResult) { if (!DataService.HandleExecute(response, executeResult)) { return; } var fieldId = IdManager.GetFieldId("/sitecore/templates/System/Templates/Sections/Appearance/Appearance/__Sortorder"); var fieldUri = new FieldUri(new ItemVersionUri(item.ItemUri, LanguageManager.CurrentLanguage, Version.Latest), fieldId); Notifications.RaiseFieldChanged(this, fieldUri, string.Empty); item.RefreshItem(); }; item.ItemUri.Site.DataService.ExecuteAsync("ResetSortOrder", completed, item.ItemUri.ItemId.ToString(), item.ItemUri.DatabaseName.Name); } }
public void Save() { Refresh(); var writer = new StringWriter(); var output = new XmlTextWriter(writer); output.WriteStartElement(@"fields"); foreach (var template in Model) { foreach (var field in template.Fields) { if (!field.Modified) { continue; } output.WriteStartElement(@"field"); output.WriteAttributeString(@"id", field.TemplateFieldId.ToString()); output.WriteAttributeString(@"sortorder", field.SortOrder.ToString()); output.WriteAttributeString(@"sectionsortorder", field.SectionSortOrder.ToString()); output.WriteEndElement(); field.Modified = false; } } output.WriteEndElement(); ExecuteCompleted completed = delegate(string response, ExecuteResult result) { if (!DataService.HandleExecute(response, result)) { return; } Modified = false; var fieldId = IdManager.GetFieldId("/sitecore/templates/System/Templates/Sections/Appearance/Appearance/__Sortorder"); foreach (var template in Model) { foreach (var field in template.Fields) { var itemVersionUri = new ItemVersionUri(new ItemUri(template.TemplateUri.DatabaseUri, field.TemplateFieldId), LanguageManager.CurrentLanguage, Data.Version.Latest); var fieldUri = new FieldUri(itemVersionUri, fieldId); Notifications.RaiseFieldChanged(this, fieldUri, field.SortOrder.ToString()); itemVersionUri = new ItemVersionUri(new ItemUri(template.TemplateUri.DatabaseUri, new ItemId(new Guid(field.SectionId))), LanguageManager.CurrentLanguage, Data.Version.Latest); fieldUri = new FieldUri(itemVersionUri, fieldId); Notifications.RaiseFieldChanged(this, fieldUri, field.SortOrder.ToString()); } } }; TemplateUri.Site.DataService.ExecuteAsync("Templates.SaveTemplateFieldSorterFields", completed, TemplateUri.DatabaseName.ToString(), writer.ToString()); }
public override void Execute(object parameter) { var context = parameter as IItemSelectionContext; if (context == null) { return; } ExecuteCompleted completed = delegate(string response, ExecuteResult result) { DataService.HandleExecute(response, result); var fieldId = IdManager.GetFieldId("/sitecore/templates/System/Templates/Sections/Workflow/Workflow/__Lock"); foreach (var i in context.Items) { var fieldUri = new FieldUri(new ItemVersionUri(i.ItemUri, LanguageManager.CurrentLanguage, Version.Latest), fieldId); Notifications.RaiseFieldChanged(this, fieldUri, string.Empty); } var item = context.Items.FirstOrDefault() as BaseTreeViewItem; if (item == null) { return; } var parent = item.GetParentTreeViewItem() as BaseTreeViewItem; if (parent == null) { return; } parent.Refresh(); }; var itemList = new StringBuilder(); IItem first = null; foreach (var item in context.Items) { if (first == null) { first = item; } else { itemList.Append("|"); } itemList.Append(item.ItemUri.ItemId); } if (first != null) { first.ItemUri.Site.DataService.ExecuteAsync("Security.Unlock", completed, first.ItemUri.DatabaseName.Name, itemList.ToString()); } }
public override void Execute(object parameter) { var context = parameter as IItemSelectionContext; if (context == null) { return; } var item = context.Items.FirstOrDefault(); if (item == null) { return; } var selectedItems = new List <ItemId>(); if (context.Items.Count() == 1) { if (!GetSelectedInsertOptions(item, selectedItems)) { return; } } var d = new SelectTemplatesDialog(); d.Initialize(Resources.SetInsertOptions_Execute_Insert_Options, item.ItemUri.DatabaseUri, selectedItems, true); if (AppHost.Shell.ShowDialog(d) != true) { return; } var value = string.Empty; foreach (var selectedItem in d.SelectedTemplates) { if (!string.IsNullOrEmpty(value)) { value += '|'; } value += selectedItem.ToString(); } var fieldId = IdManager.GetFieldId("/sitecore/templates/System/Templates/Sections/Insert Options/Insert Options/__Masters"); var fields = new List <Tuple <FieldUri, string> >(); foreach (var i in context.Items) { var fieldUri = new FieldUri(new ItemVersionUri(i.ItemUri, LanguageManager.CurrentLanguage, Data.Version.Latest), fieldId); fields.Add(new Tuple <FieldUri, string>(fieldUri, value)); } AppHost.Server.UpdateItems(fields); }
private void FieldChanged([NotNull] object sender, [NotNull] FieldUri fieldUri, [NotNull] string newValue) { Debug.ArgumentNotNull(sender, nameof(sender)); Debug.ArgumentNotNull(fieldUri, nameof(fieldUri)); Debug.ArgumentNotNull(newValue, nameof(newValue)); if (sender.Equals(this)) { return; } foreach (var field in ContentModel.Fields) { if (field.Control == null) { continue; } bool updated; if (field.Shared) { updated = field.FieldUris.Any(f => (f.ItemVersionUri.ItemUri == fieldUri.ItemVersionUri.ItemUri) && (f.FieldId == fieldUri.FieldId)); } else if (field.Unversioned) { updated = field.FieldUris.Any(f => (f.ItemVersionUri.ItemUri == fieldUri.ItemVersionUri.ItemUri) && (f.ItemVersionUri.Language == fieldUri.ItemVersionUri.Language) && (f.FieldId == fieldUri.FieldId)); } else { updated = field.FieldUris.Any(f => f == fieldUri); } if (!updated) { continue; } field.Control.SetValue(newValue); } if (fieldUri.FieldId == FieldIds.Icon && ContentModel.Fields.SelectMany(f => f.FieldUris).Any(f => f.ItemVersionUri.ItemUri == fieldUri.ItemVersionUri.ItemUri)) { var control = AppearanceOptions.Skin.GetControl(); var image = control.FindChild <Image>(@"QuickInfoIcon"); if (image == null) { return; } var path = @"/sitecore/shell/~/icon/" + newValue.Replace(@"16x16", @"16x16"); var icon = new Icon(fieldUri.Site, path); image.Source = icon.GetSource(); } }
public override void Execute(object parameter) { var context = parameter as ContentTreeContext; if (context == null) { return; } var item = context.SelectedItems.FirstOrDefault() as ItemTreeViewItem; if (item == null) { return; } var sortOrder = GetSortOrder(item); ExecuteCompleted completed = delegate(string response, ExecuteResult executeResult) { if (!DataService.HandleExecute(response, executeResult)) { return; } var fieldId = IdManager.GetFieldId("/sitecore/templates/System/Templates/Sections/Appearance/Appearance/__Sortorder"); var fieldUri = new FieldUri(new ItemVersionUri(item.ItemUri, LanguageManager.CurrentLanguage, Version.Latest), fieldId); Notifications.RaiseFieldChanged(this, fieldUri, sortOrder.ToString()); var parent = item.GetParentTreeViewItem() as BaseTreeViewItem; if (parent == null) { return; } KeyboardManager.IsActive++; try { var itemTreeViewItem = parent as ItemTreeViewItem; if (itemTreeViewItem != null) { itemTreeViewItem.RefreshPreservingSelection(); } else { parent.Refresh(); } } finally { KeyboardManager.IsActive--; } }; item.ItemUri.Site.DataService.ExecuteAsync("SetSortOrder", completed, item.ItemUri.ItemId.ToString(), item.ItemUri.DatabaseName.Name, sortOrder); }
private void LoadRows([NotNull] ResultDataTable dataTable, [NotNull] XElement element) { Debug.ArgumentNotNull(dataTable, nameof(dataTable)); Debug.ArgumentNotNull(element, nameof(element)); var itemsElement = element.Element(@"rows"); if (itemsElement == null) { return; } if (!itemsElement.Elements().Any()) { var dataRow = (ResultDataRow)dataTable.NewRow(); dataTable.Rows.Add(dataRow); return; } foreach (var item in itemsElement.Elements()) { var fieldArray = new List <FieldUri>(); var columnArray = new List <string>(); var languageName = item.GetAttributeValue("language", LanguageManager.CurrentLanguage.Name) ?? "en"; var itemUri = new ItemUri(DatabaseUri, new ItemId(new Guid(item.GetAttributeValue("id")))); var itemVersionUri = new ItemVersionUri(itemUri, new Language(languageName), Data.Version.Latest); foreach (var field in item.Elements()) { FieldUri fieldUri = null; var id = field.GetAttributeValue("id"); if (!string.IsNullOrEmpty(id)) { fieldUri = new FieldUri(itemVersionUri, new FieldId(new Guid(id))); } fieldArray.Add(fieldUri); columnArray.Add(field.Value); } var dataRow = (ResultDataRow)dataTable.NewRow(); dataRow.Name = item.GetAttributeValue("name"); dataRow.Icon = new Icon(DatabaseUri.Site, item.GetAttributeValue("icon")); dataRow.ItemUri = itemUri; dataRow.FieldArray = fieldArray.ToArray(); dataRow.ItemArray = columnArray.ToArray(); dataTable.Rows.Add(dataRow); } }
public static void RaiseFieldChanged([NotNull] object sender, [NotNull] FieldUri fieldUri, [NotNull] string newValue) { Assert.ArgumentNotNull(sender, nameof(sender)); Assert.ArgumentNotNull(fieldUri, nameof(fieldUri)); Assert.ArgumentNotNull(newValue, nameof(newValue)); var fieldChanged = FieldChanged; if (fieldChanged != null) { fieldChanged(sender, fieldUri, newValue); } }
private void FieldChanged([NotNull] object sender, [NotNull] FieldUri fieldUri, [CanBeNull] string newValue) { Debug.ArgumentNotNull(sender, nameof(sender)); Debug.ArgumentNotNull(fieldUri, nameof(fieldUri)); if (fieldUri.ItemVersionUri.ItemUri != ItemUri) { return; } if (fieldUri.FieldId == FieldIds.Icon && !string.IsNullOrEmpty(newValue)) { var path = @"/sitecore/shell/~/icon/" + newValue; Icon = new Icon(fieldUri.Site, path); } }
public override void Execute(object parameter) { var context = parameter as IItemSelectionContext; if (context == null) { return; } var firstItem = context.Items.FirstOrDefault(); if (firstItem == null) { return; } var dialog = new CreateThumbnailDialog(); dialog.Initialize(firstItem.ItemUri.DatabaseUri, firstItem.Name); if (AppHost.Shell.ShowDialog(dialog) != true) { return; } ExecuteCompleted completed = delegate(string response, ExecuteResult result) { if (!DataService.HandleExecute(response, result)) { return; } foreach (var item in context.Items) { var itemUri = item.ItemUri; var itemVersionUri = new ItemVersionUri(itemUri, LanguageManager.CurrentLanguage, Data.Version.Latest); var fieldUri = new FieldUri(itemVersionUri, new FieldId(new Guid(ThumbnailFieldId))); Notifications.RaiseFieldChanged(this, fieldUri, response); } }; firstItem.ItemUri.Site.DataService.ExecuteAsync("Items.SetThumbnail", completed, firstItem.ItemUri.DatabaseName.ToString(), firstItem.ItemUri.ItemId.ToString(), ThumbnailFieldId, dialog.FileName, "1", dialog.X, dialog.Y, true); }
public override void Execute(object parameter) { var context = parameter as IItemSelectionContext; if (context == null) { return; } var item = context.Items.First(); var d = new SetDisplayNamesDialog(item.ItemUri); if (AppHost.Shell.ShowDialog(d) != true) { return; } var values = new StringBuilder(); foreach (var displayName in d.DisplayNames) { if (values.Length > 0) { values.Append('^'); } values.Append(displayName.Item1); values.Append('|'); values.Append(displayName.Item2); } ExecuteCompleted completed = delegate(string response, ExecuteResult result) { if (!DataService.HandleExecute(response, result)) { return; } var root = response.ToXElement(); if (root == null) { return; } foreach (var element in root.Elements()) { var language = element.GetAttributeValue("l"); var version = element.GetAttributeValue("v"); var fieldId = element.GetAttributeValue("f"); var value = element.Value; var itemVersionUri = new ItemVersionUri(item.ItemUri, new Language(language), new Data.Version(int.Parse(version))); var fieldUri = new FieldUri(itemVersionUri, new FieldId(new Guid(fieldId))); Notifications.RaiseFieldChanged(this, fieldUri, value); } }; item.ItemUri.Site.DataService.ExecuteAsync("Items.SetDisplayNames", completed, item.ItemUri.ItemId.ToString(), item.ItemUri.DatabaseName.ToString(), values.ToString()); }
public override void Execute(object parameter) { var context = parameter as IItemSelectionContext; if (context == null) { return; } var item = context.Items.FirstOrDefault(); if (item == null) { return; } var itemId = IdManager.GetItemId("/sitecore/system/Workflows"); SelectItemDialog dialog; while (true) { dialog = new SelectItemDialog(); dialog.Initialize(Resources.SetWorkflowState_Execute_Select_Workflow_State, new ItemUri(item.ItemUri.DatabaseUri, itemId)); if (AppHost.Shell.ShowDialog(dialog) != true) { return; } itemId = dialog.SelectedItemUri.ItemId; if (dialog.SelectedItemTemplateId == workflowStateId) { break; } if (AppHost.MessageBox(Resources.SetWorkflowState_Execute_, Resources.Error, MessageBoxButton.OKCancel, MessageBoxImage.Question) != MessageBoxResult.OK) { return; } } var stateId = dialog.SelectedItemUri.ItemId; var itemIdList = context.GetItemIdList(); var databaseName = context.Items.First().ItemUri.DatabaseName.ToString(); ExecuteCompleted completed = delegate(string response, ExecuteResult result) { if (!DataService.HandleExecute(response, result)) { return; } var workflowFieldId = IdManager.GetFieldId("/sitecore/templates/System/Templates/Sections/Workflow/Workflow/__Workflow"); var stateFieldId = IdManager.GetFieldId("/sitecore/templates/System/Templates/Sections/Workflow/Workflow/__Workflow state"); foreach (var i in context.Items) { var itemVersionUri = new ItemVersionUri(i.ItemUri, LanguageManager.CurrentLanguage, Data.Version.Latest); var fieldUri = new FieldUri(itemVersionUri, stateFieldId); Notifications.RaiseFieldChanged(this, fieldUri, stateId.ToString()); fieldUri = new FieldUri(itemVersionUri, workflowFieldId); Notifications.RaiseFieldChanged(this, fieldUri, response); } }; item.ItemUri.Site.DataService.ExecuteAsync("Workflows.SetWorkflowState", completed, databaseName, itemIdList, stateId.ToString()); }
public static Item Call([NotNull] ItemVersionUri uri, [NotNull] XmlElement root) { Assert.ArgumentNotNull(uri, nameof(uri)); Assert.ArgumentNotNull(root, nameof(root)); var versionNumber = 0; var node = root.SelectSingleNode(@"/field"); if (node != null) { if (!int.TryParse(node.GetAttributeValue("version"), out versionNumber)) { versionNumber = 0; } } var result = new Item { Fields = new List <Field>(), Uri = new ItemVersionUri(uri.ItemUri, uri.Language, new Version(versionNumber)), Source = root.GetAttributeValue("source") }; var fields = root.SelectNodes(@"/field"); if (fields == null) { return(result); } var sections = new List <Section>(); foreach (XmlNode child in fields) { int sortOrder; if (!int.TryParse(child.GetAttributeValue("sortorder"), out sortOrder)) { sortOrder = 0; } int sectionSortOrder; if (!int.TryParse(child.GetAttributeValue("sectionsortorder"), out sectionSortOrder)) { sectionSortOrder = 0; } var sectionExpandedByDefault = true; var isSectionExpanded = child.GetAttributeValue("sectionexpandedbydefault"); if (!string.IsNullOrEmpty(isSectionExpanded)) { sectionExpandedByDefault = isSectionExpanded == "1"; } Guid sectionItemId; if (!Guid.TryParse(child.GetAttributeValue("sectionid"), out sectionItemId)) { sectionItemId = Guid.Empty; } var sectionIcon = new Icon(uri.Site, child.GetAttributeValue("sectionicon")); var templateFieldId = ItemId.Empty; var templateFieldIdString = child.GetAttributeValue("templatefieldid"); if (!string.IsNullOrEmpty(templateFieldIdString)) { templateFieldId = new ItemId(new Guid(templateFieldIdString)); } var section = GetSection(sections, child.GetAttributeValue("section"), sectionIcon, sectionSortOrder, new ItemUri(uri.ItemUri.DatabaseUri, new ItemId(sectionItemId)), sectionExpandedByDefault); var value = string.Empty; var valueElement = child.SelectSingleNode(@"value"); if (valueElement != null) { value = valueElement.InnerText; } var displayData = string.Empty; var displayDataElement = child.SelectSingleNode(@"displaydata"); if (displayDataElement != null) { displayData = displayDataElement.OuterXml; } var lookup = string.Empty; var lookupElement = child.SelectSingleNode(@"lookup"); if (lookupElement != null) { lookup = lookupElement.OuterXml; } var field = new Field { Name = child.GetAttributeValue("name"), Title = child.GetAttributeValue("title"), ToolTip = child.GetAttributeValue("tooltip"), Type = child.GetAttributeValue("type"), Source = child.GetAttributeValue("source"), Section = section, SortOrder = sortOrder, Shared = child.GetAttributeValue("shared") == @"1", IsDeclaringTemplate = child.GetAttributeValue("isdeclaringtemplate") == @"1", Unversioned = child.GetAttributeValue("unversioned") == @"1", StandardValue = child.GetAttributeValue("standardvalue") == @"1", IsBlob = child.GetAttributeValue("isblob") == @"1", TemplateFieldId = templateFieldId, Value = value, DisplayData = displayData, Lookup = lookup, HasValue = true }; var itemUri = new ItemUri(uri.ItemUri.DatabaseUri, new ItemId(new Guid(child.GetAttributeValue("itemid")))); var itemVersionUri = new ItemVersionUri(itemUri, new Language(child.GetAttributeValue("language")), new Version(int.Parse(child.GetAttributeValue("version")))); var fieldUri = new FieldUri(itemVersionUri, new FieldId(new Guid(child.GetAttributeValue("fieldid")))); field.FieldUris.Add(fieldUri); GetValueItems(child, field); GetRootItem(child, field); field.OriginalValue = field.Value; result.Fields.Add(field); } result.Fields.Sort(new FieldComparer()); var pathItem = root.SelectSingleNode(@"/path/item"); result.Name = pathItem != null?pathItem.GetAttributeValue("name") : Resources.GetItem_Call__Unknown_; GetItemVersions(root, result); GetItemLanguages(root, result); GetItemPath(root, result, uri.ItemUri.Site, uri.ItemUri.DatabaseName.Name); GetItemTemplate(root, result); GetStandardValues(root, result); GetBaseTemplates(root, result); GetItemIcon(uri.Site, root, result); GetItemWarnings(root, uri.ItemUri.Site, result); GetBreadcrumb(root, result); foreach (XmlAttribute attribute in root.Attributes) { if (attribute.LocalName.StartsWith("ex.")) { result.SetData(attribute.LocalName, attribute.Value); } } return(result); }