/// <summary> /// Updates the controls /// </summary> private void UpdateControls() { pnlTemplateLogo.Visible = CommunicationTemplateHelper.HasTemplateLogo(ceEmailTemplate.Text); imgTemplateLogo.Help = CommunicationTemplateHelper.GetTemplateLogoHelpText(ceEmailTemplate.Text); var lavaFieldsTemplateDictionaryFromControls = hfLavaFieldsState.Value.FromJsonOrNull <Dictionary <string, string> >() ?? new Dictionary <string, string>(); lavaFieldsTemplateDictionaryFromControls = CommunicationTemplateHelper.UpdateLavaFieldsTemplateDictionaryFromControls(phLavaFieldsControls, lavaFieldsTemplateDictionaryFromControls); // dictionary of keys and default values from Lava Fields KeyValueList control var lavaFieldsDefaultDictionary = kvlMergeFields.Value.AsDictionary(); ceEmailTemplate.Text = CommunicationTemplateHelper.GetUpdatedTemplateHtml(ceEmailTemplate.Text, imgTemplateLogo.BinaryFileId, lavaFieldsTemplateDictionaryFromControls, lavaFieldsDefaultDictionary); var lavaFieldsTemplateDictionary = CommunicationTemplateHelper.GetLavaFieldsTemplateDictionaryFromTemplateHtml(ceEmailTemplate.Text); hfLavaFieldsState.Value = lavaFieldsTemplateDictionary.ToJson(indentOutput: false); btnUpdateTemplatePreview.Visible = lavaFieldsTemplateDictionary.Any(); CommunicationTemplateHelper.CreateDynamicLavaValueControls(lavaFieldsTemplateDictionary, lavaFieldsDefaultDictionary, phLavaFieldsControls); var mergeFields = Rock.Lava.LavaHelper.GetCommonMergeFields(RockPage); string resolvedPreviewHtml = ceEmailTemplate.Text.ResolveMergeFields(mergeFields); if (cbCssInliningEnabled.Checked) { resolvedPreviewHtml = resolvedPreviewHtml.ConvertHtmlStylesToInlineAttributes(); } ifEmailPreview.Attributes["srcdoc"] = resolvedPreviewHtml; pnlEmailPreview.Visible = true; upnlEmailPreview.Update(); }
/// <summary> /// Raises the <see cref="E:System.Web.UI.Control.Load" /> event. /// </summary> /// <param name="e">The <see cref="T:System.EventArgs" /> object that contains the event data.</param> protected override void OnLoad(EventArgs e) { base.OnLoad(e); if (!Page.IsPostBack) { // Get the CommunicationId if it is specified as a parameter. // If not found, check for the legacy parameter "EmailId". var communicationIdentifier = PageParameter(PageParameterKey.CommunicationId); if (string.IsNullOrEmpty(communicationIdentifier)) { communicationIdentifier = PageParameter("emailId"); } ShowEdit(communicationIdentifier.AsInteger()); } else { // Create Controls for LavaFields Values var lavaFieldsTemplateDictionary = hfLavaFieldsState.Value.FromJsonOrNull <Dictionary <string, string> >() ?? new Dictionary <string, string>(); // dictionary of keys and default values from Lava Fields KeyValueList control var lavaFieldsDefaultDictionary = kvlMergeFields.Value.AsDictionary(); CommunicationTemplateHelper.CreateDynamicLavaValueControls(lavaFieldsTemplateDictionary, lavaFieldsDefaultDictionary, phLavaFieldsControls); btnUpdateTemplatePreview.Visible = lavaFieldsTemplateDictionary.Any(); } }
/// <summary> /// Raises the <see cref="E:System.Web.UI.Control.Load" /> event. /// </summary> /// <param name="e">The <see cref="T:System.EventArgs" /> object that contains the event data.</param> protected override void OnLoad(EventArgs e) { base.OnLoad(e); if (!Page.IsPostBack) { ShowDetail(PageParameter("TemplateId").AsInteger()); } else { // Create Controls for LavaFields Values var lavaFieldsTemplateDictionary = hfLavaFieldsState.Value.FromJsonOrNull <Dictionary <string, string> >() ?? new Dictionary <string, string>(); // dictionary of keys and default values from Lava Fields KeyValueList control var lavaFieldsDefaultDictionary = kvlMergeFields.Value.AsDictionary(); CommunicationTemplateHelper.CreateDynamicLavaValueControls(lavaFieldsTemplateDictionary, lavaFieldsDefaultDictionary, phLavaFieldsControls); btnUpdateTemplatePreview.Visible = lavaFieldsTemplateDictionary.Any(); } }