/// <summary> /// Gets the configured Field Editor options. Options determine both the look of Field Editor and the actual fields available for editing. /// </summary> /// <param name="args">The pipeline arguments. Current item URI is accessible as 'uri' parameter</param> /// <param name="form">The form values.</param> /// <returns>The options.</returns> protected override PageEditFieldEditorOptions GetOptions(ClientPipelineArgs args, NameValueCollection form) { List <FieldDescriptor> fieldDescriptors = new List <FieldDescriptor>(); Item item = Database.GetItem(ItemUri.Parse(args.Parameters["uri"])); Assert.IsNotNull(item, "item"); string fields = args.Parameters["fields"]; Assert.IsNotNullOrEmpty(fields, "Field Editor command expects 'fields' parameter"); string title = args.Parameters["title"]; Assert.IsNotNullOrEmpty(title, "Field Editor command expects 'title' parameter"); string icon = args.Parameters["icon"]; Assert.IsNotNullOrEmpty(icon, "Field Editor command expects 'icon' parameter"); foreach (string field in new ListString(fields)) { if (item.Fields[field] != null) { fieldDescriptors.Add(new FieldDescriptor(item, field)); } } PageEditFieldEditorOptions options = new PageEditFieldEditorOptions(form, fieldDescriptors); options.Title = title; options.Icon = icon; return(options); }
/// <summary> /// Sheer UI processor methods that orchestrates starting the Field Editor and processing the returned value /// </summary> /// <param name="args"> /// The arguments. /// </param> protected virtual void StartFieldEditor(ClientPipelineArgs args) { var current = HttpContext.Current; if (current == null) return; var page = current.Handler as Page; if (page == null) return; var form = page.Request.Form; if (!args.IsPostBack) { SheerResponse.ShowModalDialog(GetOptions(args, form).ToUrlString().ToString(), "720", "520", string.Empty, true); args.WaitForPostBack(); } else { if (!args.HasResult) return; var results = PageEditFieldEditorOptions.Parse(args.Result); var currentItem = CurrentItem; currentItem.Edit(options => { foreach (var field in results.Fields) { currentItem.Fields[field.FieldID].Value = field.Value; } }); PageEditFieldEditorOptions.Parse(args.Result).SetPageEditorFieldValues(); } }
public static PageEditFieldEditorOptions GetFieldEditorOptions(NameValueCollection form, string pipedFields, Item item) { var fields = pipedFields.Split('|').Where(fieldName => item.Fields[fieldName] != null).Select(fieldName => new FieldDescriptor(item, fieldName)).ToList(); var options = new PageEditFieldEditorOptions(form, fields); return(options); }
/// <summary> /// The save field editor values. /// </summary> /// <param name="args"> /// The pipeline args. /// </param> protected void SaveFieldEditorValues(ClientPipelineArgs args) { Assert.ArgumentNotNull(args, "args"); PageEditFieldEditorOptions options = PageEditFieldEditorOptions.Parse(args.Result); this.SaveFieldValues(options); }
public static PageEditFieldEditorOptions GetFieldEditorOptions(NameValueCollection form, string pipedFields, Item item) { var fields = pipedFields.Split('|').Where(fieldName => item.Fields[fieldName] != null).Select(fieldName => new FieldDescriptor(item, fieldName)).ToList(); var options = new PageEditFieldEditorOptions(form, fields) { PreserveSections = true, ShowSections = true }; return options; }
/// <summary> /// Sheer UI processor methods that orchestrates starting the Field Editor and processing the returned value /// </summary> /// <param name="args"> /// The arguments. /// </param> protected virtual void StartFieldEditor(ClientPipelineArgs args) { var current = HttpContext.Current; if (current == null) { return; } var page = current.Handler as Page; if (page == null) { return; } var form = page.Request.Form; if (!args.IsPostBack) { SheerResponse.ShowModalDialog( GetOptions(args, form).ToUrlString().ToString(), args.Parameters["width"], args.Parameters["height"], string.Empty, true); args.WaitForPostBack(); } else { if (args.HasResult) { var results = PageEditFieldEditorOptions.Parse(args.Result); var currentItem = CurrentItem; currentItem.Edit(options => { foreach (var field in results.Fields) { currentItem.Fields[field.FieldID].Value = field.Value; } }); PageEditFieldEditorOptions.Parse(args.Result).SetPageEditorFieldValues(); } var strJobId = args.Parameters["jobHandle"]; if (!String.IsNullOrEmpty(strJobId)) { var jobHandle = Handle.Parse(strJobId); var job = JobManager.GetJob(jobHandle); if (job != null) { job.MessageQueue.PutResult(args.HasResult ? "ok" : "cancel"); } } } }
private PageEditFieldEditorOptions GetOptions(ClientPipelineArgs args, NameValueCollection form) { Item item = Database.GetItem(ItemUri.Parse(args.Parameters["uri"])); List<FieldDescriptor> fieldDescriptors = new List<FieldDescriptor>(); fieldDescriptors.Add(new FieldDescriptor(item, Data.ProjectFieldId.ToString())); List<FieldDescriptor> fieldDescriptors1 = fieldDescriptors; Assert.IsNotNull(item, "item"); PageEditFieldEditorOptions pageEditFieldEditorOption = new PageEditFieldEditorOptions(form, fieldDescriptors1); pageEditFieldEditorOption.Title = "Select Project"; pageEditFieldEditorOption.Icon = ""; pageEditFieldEditorOption.DialogTitle = "Select Project"; PageEditFieldEditorOptions pageEditFieldEditorOption1 = pageEditFieldEditorOption; return pageEditFieldEditorOption1; }
protected virtual PageEditFieldEditorOptions GetOptions(ClientPipelineArgs args, NameValueCollection form) { EnsureContext(args); var settingsItem = SettingsItem; var options = new PageEditFieldEditorOptions(form, BuildListWithFieldsToShow()) { Title = settingsItem[Header], Icon = settingsItem[Icon] }; options.Parameters["contentitem"] = CurrentItemUri.ToString(); options.PreserveSections = args.Parameters[PreserveSectionsParameter] == "1"; options.DialogTitle = settingsItem[Header]; options.SaveItem = true; return options; }
protected virtual PageEditFieldEditorOptions GetOptions(ClientPipelineArgs args, NameValueCollection form) { EnsureContext(args); var options = new PageEditFieldEditorOptions(form, BuildListWithFieldsToShow(args.Parameters["fields"])) { Title = args.Parameters["section"], Icon = args.Parameters["icon"] }; options.Parameters["contentitem"] = CurrentItem.Uri.ToString(); options.PreserveSections = args.Parameters[PreserveSectionsParameter] == "1"; options.DialogTitle = args.Parameters["title"]; options.SaveItem = true; return(options); }
/// <summary> /// Sheer UI processor methods that orchestrates starting the Field Editor and processing the returned value /// </summary> /// <param name="args">The arguments.</param> protected new void StartFieldEditor(ClientPipelineArgs args) { HttpContext current = HttpContext.Current; if (current != null) { Page handler = current.Handler as Page; if (handler != null) { NameValueCollection form = handler.Request.Form; if (form != null) { if (!args.IsPostBack) { SheerResponse.ShowModalDialog(this.GetOptions(args, form).ToUrlString().ToString(), "720", "480", string.Empty, true); args.WaitForPostBack(); } else if (args.HasResult) { foreach (FieldDescriptor fd in PageEditFieldEditorOptions.Parse(args.Result).Fields) { Item item = Context.ContentDatabase.GetItem(fd.ItemUri.ToDataUri()); if (item.Fields[fd.FieldID].Name == "__Tracking") { continue; } using (new SecurityDisabler()) { using (new EditContext(item)) { item[fd.FieldID] = fd.Value; } } } } } } } }
/// <summary> /// Saves the page editor field values. /// </summary> /// <param name="options">The options.</param> protected virtual void SaveFieldValues(PageEditFieldEditorOptions options) { Item item = Database.GetItem(options.Fields.First().ItemUri); if (item == null) { AjaxScriptManager.Current.ShowError(Translate.Text(Texts.TheOrderCannotBeSaved), Translate.Text(Texts.ThisOrderDoesNotExist)); return; } using (new EditContext(item, SecurityCheck.Enable)) { foreach (FieldDescriptor descr in options.Fields) { item[descr.FieldID] = descr.Value; } } }
protected void StartFieldEditor(ClientPipelineArgs args) { NameValueCollection nameValueCollection = HttpContext.Current?.Handler is Page handler ? handler.Request.Form : null; if (nameValueCollection == null) { return; } Assert.ArgumentNotNull(args, nameof(args)); if (!args.IsPostBack) { SheerResponse.ShowModalDialog( this.GetOptions(args, nameValueCollection).ToUrlString().ToString(), "720", "520", string.Empty, true); args.WaitForPostBack(); } else { if (!args.HasResult) { return; } PageEditFieldEditorOptions .Parse(args.Result) .SetPageEditorFieldValues(nameValueCollection); SheerResponse.Eval( "ExperienceEditor.ribbonDocument().querySelector('[data-sc-id=\"QuickSave\"]').click();"); } }
/// <summary> /// Gets all option as base class, only the fields are get via private function, because /// they are not passed through pipeline. /// </summary> /// <param name="args"> /// The arguments which come from click-command in webedit button item's field "Click". /// </param> /// <param name="form"> /// The current form for the current page in which the webedit button is clicked. /// </param> /// <returns></returns> protected PageEditFieldEditorOptions GetOptions( ClientPipelineArgs args, NameValueCollection form) { Assert.ArgumentNotNull(args, nameof(args)); Assert.ArgumentNotNull(form, nameof(form)); Item datasourceItem = Database.GetItem(ItemUri.Parse(args.Parameters["uri"])); Assert.IsNotNull(datasourceItem, "item"); string commandID = args.Parameters["command"]; Assert.IsNotNullOrEmpty(commandID, "Field Editor command expects 'command' parameter"); // Optional field ID whitelist (dash separated) string fieldsParameter = args.Parameters["fields"]; List <ID> fields = this.ParseFieldsParameter(fieldsParameter); Item commandItem = Client.CoreDatabase.GetItem(commandID); Assert.IsNotNull(commandItem, "command item"); // if fields is not empty, only specified field ids are displayed List <FieldDescriptor> fieldDescriptorList = datasourceItem.CreateFieldDescriptors(fields); PageEditFieldEditorOptions fieldEditorOptions = new PageEditFieldEditorOptions( form, fieldDescriptorList); fieldEditorOptions.Title = commandItem["Title"]; fieldEditorOptions.Icon = commandItem["Icon"]; return(fieldEditorOptions); }
/// <summary> /// Gets the configured Field Editor options. Options determine both the look of Field Editor and the actual fields available for editing. /// </summary> /// <param name="args">The pipeline arguments. Current item URI is accessible as 'uri' parameter</param> /// <param name="form">The form values.</param> /// <returns>The options.</returns> protected override PageEditFieldEditorOptions GetOptions(ClientPipelineArgs args, NameValueCollection form) { List<FieldDescriptor> fieldDescriptors = new List<FieldDescriptor>(); Item item = Database.GetItem(ItemUri.Parse(args.Parameters["uri"])); Assert.IsNotNull(item, "item"); string fields = args.Parameters["fields"]; Assert.IsNotNullOrEmpty(fields, "Field Editor command expects 'fields' parameter"); string title = args.Parameters["title"]; Assert.IsNotNullOrEmpty(title, "Field Editor command expects 'title' parameter"); string icon = args.Parameters["icon"]; Assert.IsNotNullOrEmpty(icon, "Field Editor command expects 'icon' parameter"); foreach (string field in new ListString(fields)) { if (item.Fields[field] != null) { fieldDescriptors.Add(new FieldDescriptor(item, field)); } } PageEditFieldEditorOptions options = new PageEditFieldEditorOptions(form, fieldDescriptors); options.Title = title; options.Icon = icon; return options; }
public void SetPageEditorValues(string handle) { PageEditFieldEditorOptions.Parse(handle).SetPageEditorFieldValues(); }
protected virtual PageEditFieldEditorOptions GetOptions(ClientPipelineArgs args, NameValueCollection form) { EnsureContext(args); var options = new PageEditFieldEditorOptions(form, BuildListWithFieldsToShow(args.Parameters["fields"])) { Title = args.Parameters["section"], Icon = args.Parameters["icon"] }; options.Parameters["contentitem"] = CurrentItem.Uri.ToString(); options.PreserveSections = args.Parameters[PreserveSectionsParameter] == "1"; options.DialogTitle = args.Parameters["title"]; options.SaveItem = true; return options; }
public void SetPageEditorValues(string handle) { PageEditFieldEditorOptions.Parse(handle).SetPageEditorFieldValues(new NameValueCollection()); }
/// <summary> /// Saves the page editor field values. /// </summary> /// <param name="options">The options.</param> protected virtual void SaveFieldValues(PageEditFieldEditorOptions options) { Item item = Database.GetItem(options.Fields.First().ItemUri); if (item == null) { AjaxScriptManager.Current.ShowError(Translate.Text(Texts.TheOrderCannotBeSaved), Translate.Text(Texts.ThisOrderDoesNotExist)); return; } using (new EditContext(item, SecurityCheck.Enable)) { foreach (FieldDescriptor descr in options.Fields) { item[descr.FieldID] = descr.Value; } } }