Beispiel #1
0
        /// <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();
            }
        }
Beispiel #3
0
        /// <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();
            }
        }