private static string GetCommunicationColumnValue(Entity contact, EmailTemplateMacros macros)
 {
     if (!_currentUserAccountCommunication.ContainsKey(macros.AccountCommunicationTypeId))
     {
         return(string.Empty);
     }
     return(_currentUserAccountCommunication[macros.AccountCommunicationTypeId]);
 }
 private static Guid GetRootNodeId(EmailTemplateMacros macros)
 {
     if (macros.ParentId.Equals(Guid.Empty))
     {
         return(macros.Id);
     }
     return(GetRootNodeId(GetMacros(macros.ParentId)));
 }
    private static string GetFullTag(EmailTemplateMacros macros)
    {
        var result = string.Empty;

        if (!macros.ParentId.Equals(Guid.Empty))
        {
            result = string.Format("{0}.", GetFullTag(GetMacros(macros.ParentId)));
        }
        return(string.Concat(result, macros.Name));
    }
    /// <summary>
    /// Handles the UniGrid's external data bound event.
    /// </summary>
    /// <param name="sender">Sender</param>
    /// <param name="sourceName">Source name</param>
    /// <param name="parameter">Parameter</param>
    object gridElem_OnExternalDataBound(object sender, string sourceName, object parameter)
    {
        switch (sourceName.ToLowerCSafe())
        {
        case "type":
            string type = ValidationHelper.GetString(parameter, string.Empty);
            if (string.IsNullOrEmpty(type))
            {
                type = EmailTemplateMacros.GetEmailTypeString(EmailTemplateMacros.EmailType.General);
            }

            return(HTMLHelper.HTMLEncode(ResHelper.GetString("emailtemplate.type." + type)));
        }

        return(parameter);
    }
    /// <summary>
    /// Page load event.
    /// </summary>
    protected void Page_Load(object sender, EventArgs e)
    {
        usTemplate.WhereCondition = SqlHelperClass.AddWhereCondition(usTemplate.WhereCondition, (SiteId > 0) ? "EmailTemplateSiteID = " + SiteId : "EmailTemplateSiteID IS NULL");

        // Filter type
        if (TemplateType.HasValue)
        {
            usTemplate.WhereCondition = SqlHelperClass.AddWhereCondition(usTemplate.WhereCondition, "EmailTemplateType = '" + SqlHelperClass.GetSafeQueryString(EmailTemplateMacros.GetEmailTypeString(TemplateType.Value)) + "'");
        }

        // Edit button initialization
        if (CMSContext.CurrentUser.IsAuthorizedPerResource("CMS.EmailTemplates", "Modify"))
        {
            string templateType = null;
            if (TemplateType != null)
            {
                templateType = "&templatetype=" + EmailTemplateMacros.GetEmailTypeString(TemplateType.Value);
            }

            if (!String.IsNullOrEmpty(EditDialogUrl))
            {
                string url = EditDialogUrl + "?name=##ITEMID##&tabmode=1&editonlycode=1" + templateType;
                url = URLHelper.AddParameterToUrl(url, "hash", QueryHelper.GetHash("?editonlycode=1" + templateType));
                usTemplate.EditItemPageUrl = url;
            }

            if (!String.IsNullOrEmpty(NewDialogUrl))
            {
                string url = NewDialogUrl + "?editonlycode=1" + templateType;
                url = URLHelper.AddParameterToUrl(url, "hash", QueryHelper.GetHash("?editonlycode=1" + templateType));
                usTemplate.NewItemPageUrl = url;
            }
        }

        usTemplate.ButtonClear.Visible = false;
        usTemplate.ReturnColumnName    = ReturnColumnName;
        CheckRegularExpression         = true;
    }
Example #6
0
    protected void Page_Load(object sender, EventArgs e)
    {
        // Initialize HTML editor
        this.txtText.Editor.EnableViewState = false;
        this.txtText.Editor.EditorMode      = EditorModeEnum.Advanced;
        this.txtText.Editor.Language        = LanguageEnum.HTMLMixed;
        this.txtText.Editor.Height          = new Unit("400px");
        this.txtText.Editor.Width           = new Unit("100%");

        // Initialize Plain Text editor
        this.txtPlainText.Editor.EnableViewState = false;
        this.txtPlainText.Editor.EditorMode      = EditorModeEnum.Advanced;
        this.txtPlainText.Editor.Language        = LanguageEnum.Text;
        this.txtPlainText.Editor.Height          = new Unit("400px");
        this.txtPlainText.Editor.Width           = new Unit("100%");

        // Fill the e-mail type enumeration
        if (!RequestHelper.IsPostBack())
        {
            DataHelper.FillWithEnum <EmailTemplateMacros.EmailType>(drpEmailType, "emailtemplate.type.", EmailTemplateMacros.GetEmailTypeString, true);
        }

        // Initialize required field validators
        RequiredFieldValidatorDisplayName.ErrorMessage = GetString("EmailTemplate_Edit.FillDisplayNameField");
        RequiredFieldValidatorCodeName.ErrorMessage    = GetString("EmailTemplate_Edit.FillCodeNameField");

        // Initialize other controls
        AttachmentTitle.TitleText = GetString("general.attachments");

        // Register save button handler
        CMSPage.CurrentPage.CurrentMaster.HeaderActions.ActionPerformed += HeaderActions_ActionPerformed;

        if (EmailTemplateID > 0)
        {
            // Get email template info of specified 'templateid'
            EmailTemplateInfo templateInfo = EmailTemplateProvider.GetEmailTemplate(EmailTemplateID);
            EditedObject = templateInfo;
            // Get SiteID of the template
            SiteID = templateInfo.TemplateSiteID;

            // Check if user is assigned to web site
            if (!CMSContext.CurrentUser.IsGlobalAdministrator)
            {
                if (!CMSContext.CurrentUser.IsInSite(SiteInfoProvider.GetSiteName(SiteID)))
                {
                    // Disable object for user
                    EditedObject = null;
                }
            }

            // Fill the form
            if (!RequestHelper.IsPostBack())
            {
                // Load data to the form.
                LoadData(templateInfo);
                // Show message that the email template was created or updated successfully.
                if (QueryHelper.GetBoolean("saved", false))
                {
                    lblInfo.Visible = true;

                    // Reload header if changes were saved

                    if ((Page is CMSPage) && ((CMSPage)Page).TabMode)
                    {
                        ScriptHelper.RefreshTabHeader(Page, null);
                    }
                }

                // Show attachment list
                AttachmentList.Visible  = true;
                AttachmentTitle.Visible = true;
            }
        }

        // Get correct MacroResolver
        MacroResolver resolver = EmailTemplateMacros.GetEmailTemplateResolver(EmailTemplateMacros.GetEmailTypeEnum(drpEmailType.SelectedValue));

        txtText.Resolver      = resolver;
        txtPlainText.Resolver = resolver;

        macroSelectorElm.Resolver             = resolver;
        macroSelectorElm.ShowMacroTreeAbove   = true;
        macroSelectorElm.ExtendedTextAreaElem = this.txtText.Editor.EditorID;
        macroSelectorElm.TextAreaID           = this.txtText.Editor.ClientID;

        macroSelectorPlain.Resolver             = resolver;
        macroSelectorPlain.ShowMacroTreeAbove   = true;
        macroSelectorPlain.ExtendedTextAreaElem = this.txtPlainText.Editor.EditorID;
        macroSelectorPlain.TextAreaID           = this.txtPlainText.Editor.ClientID;
    }
Example #7
0
    private void RedirectOnSave(EmailTemplateInfo templateInfo, bool closeOnSave)
    {
        StringBuilder redirectUrl = new StringBuilder();

        redirectUrl.Append(URLHelper.ResolveUrl(RefreshPageURL), "?saved=1&tabmode=", QueryHelper.GetInteger("tabmode", 0));

        if (GlobalTemplate)
        {
            redirectUrl.Append("&selectedsiteid=0");
        }
        else if (QueryHelper.GetInteger("selectedsiteid", 0) != 0)
        {
            redirectUrl.Append("&selectedsiteid=", QueryHelper.GetInteger("selectedsiteid", 0));
        }
        else if (SiteID > 0)
        {
            redirectUrl.Append("&siteid=" + SiteID);
        }

        // Selector ID in query means dialog mode
        string selector = QueryHelper.GetString("selectorid", string.Empty);

        if (!string.IsNullOrEmpty(selector))
        {
            // Add dialog specific query parameters
            redirectUrl.Append("&editonlycode=1");
            redirectUrl.Append("&name=", templateInfo.TemplateName, "&selectorid=", selector);

            string type = null;
            if (TemplateType != null)
            {
                type = "&templatetype=" + EmailTemplateMacros.GetEmailTypeString(TemplateType.Value);
                redirectUrl.Append(type);
            }
            redirectUrl.Append("&hash=", QueryHelper.GetHash("?editonlycode=1" + type));

            ScriptHelper.RegisterWOpenerScript(Page);

            StringBuilder script = new StringBuilder();
            if (!EditMode)
            {
                // Add selector refresh
                script.Append(@"
if (wopener) {{                        
    wopener.US_SelectNewValue_", selector, "('", templateInfo.TemplateName, @"');
}}");
            }

            if (closeOnSave)
            {
                script.AppendLine("CloseDialog();");
            }
            else
            {
                script.Append(@"
window.name = '", selector, @"';
window.open('", URLHelper.UrlEncodeQueryString(redirectUrl.ToString()), "', window.name);");
            }

            ScriptHelper.RegisterStartupScript(this, GetType(), "UpdateSelector", script.ToString(), true);
        }
        else if (DialogMode)
        {
            if (closeOnSave)
            {
                ScriptHelper.RegisterWOpenerScript(Page);
                ScriptHelper.RegisterStartupScript(this, GetType(), "closeDialog", ScriptHelper.GetScript("CloseDialog();"));
            }
            else
            {
                ShowChangesSaved();
            }
        }
        else
        {
            // Add UI specific query parameters
            redirectUrl.Append("&templateid=", templateInfo.TemplateID);
            URLHelper.Redirect(URLHelper.UrlEncodeQueryString(redirectUrl.ToString()));
        }
    }
Example #8
0
    protected void Page_Load(object sender, EventArgs e)
    {
        // Initialize HTML editor
        txtText.Editor.EnableViewState = false;
        txtText.Editor.EditorMode      = EditorModeEnum.Advanced;
        txtText.Editor.Language        = LanguageEnum.HTMLMixed;
        txtText.Editor.Height          = new Unit("400px");
        txtText.Editor.Width           = new Unit("100%");

        // Initialize Plain Text editor
        txtPlainText.Editor.EnableViewState = false;
        txtPlainText.Editor.EditorMode      = EditorModeEnum.Advanced;
        txtPlainText.Editor.Language        = LanguageEnum.Text;
        txtPlainText.Editor.Height          = new Unit("400px");
        txtPlainText.Editor.Width           = new Unit("100%");

        txtPlainText.Editor.FullScreenParentElementID = txtText.Editor.FullScreenParentElementID = "divContent";

        if (TemplateType == null)
        {
            drpEmailType.DropDown.AutoPostBack = true;
        }
        else
        {
            drpEmailType.DropDown.Enabled = false;
            drpEmailType.Value            = EmailTemplateMacros.GetEmailTypeString(TemplateType.Value);
        }

        // Initialize required field validators
        RequiredFieldValidatorDisplayName.ErrorMessage = GetString("EmailTemplate_Edit.FillDisplayNameField");
        RequiredFieldValidatorCodeName.ErrorMessage    = GetString("EmailTemplate_Edit.FillCodeNameField");

        // Register save button handler
        pnlObjectLocking.ObjectManager.OnSaveData    += new EventHandler <SimpleObjectManagerEventArgs>(ObjectManager_OnSaveData);
        pnlObjectLocking.ObjectManager.OnAfterAction += new EventHandler <SimpleObjectManagerEventArgs>(ObjectManager_OnAfterAction);

        if (EmailTemplateID > 0)
        {
            // Get email template info of specified 'templateid'
            templateInfo = EmailTemplateProvider.GetEmailTemplate(EmailTemplateID);
            EditedObject = templateInfo;

            // Get SiteID of the template
            SiteID = templateInfo.TemplateSiteID;

            // Check if user is assigned to web site
            if (!CMSContext.CurrentUser.IsGlobalAdministrator)
            {
                if (!CMSContext.CurrentUser.IsInSite(SiteInfoProvider.GetSiteName(SiteID)))
                {
                    // Disable object for user
                    EditedObject = null;
                }
            }

            // Fill the form
            if (!RequestHelper.IsPostBack())
            {
                // Load data to the form
                LoadData(templateInfo);

                // Show message that the email template was created or updated successfully.
                if (QueryHelper.GetBoolean("saved", false))
                {
                    ShowChangesSaved();

                    // Reload header if changes were saved
                    if ((Page is CMSPage) && ((CMSPage)Page).TabMode)
                    {
                        ScriptHelper.RefreshTabHeader(Page, null);
                    }
                }
            }

            // Register paste attachment script
            RegisterPasteScript();
        }
        else
        {
            pnlObjectLocking.ObjectManager.ObjectType = PredefinedObjectType.EMAILTEMPLATE;
        }

        // Get correct MacroResolver
        ContextResolver resolver = EmailTemplateMacros.GetEmailTemplateResolver(EmailTemplateMacros.GetEmailTypeEnum(ValidationHelper.GetString(drpEmailType.Value, "")));

        txtText.Resolver      = resolver;
        txtPlainText.Resolver = resolver;

        // Disable display name and code name editation when editing item from selector
        txtDisplayName.Enabled = txtCodeName.Enabled = !EditMode || !DialogMode;

        macroSelectorElm.Resolver             = resolver;
        macroSelectorElm.ShowMacroTreeAbove   = true;
        macroSelectorElm.ExtendedTextAreaElem = txtText.Editor.EditorID;
        macroSelectorElm.TextAreaID           = txtText.Editor.ClientID;

        macroSelectorPlain.Resolver             = resolver;
        macroSelectorPlain.ShowMacroTreeAbove   = true;
        macroSelectorPlain.ExtendedTextAreaElem = txtPlainText.Editor.EditorID;
        macroSelectorPlain.TextAreaID           = txtPlainText.Editor.ClientID;

        InitHeaderActions(EmailTemplateID, SiteID);
    }
Example #9
0
    protected void Page_Load(object sender, EventArgs e)
    {
        // Initializes page title breadcrumbs
        int    siteId = SiteID;
        string emailTemplateListUrl = "~/CMSModules/EmailTemplates/Pages/List.aspx";

        if (siteId != 0)
        {
            emailTemplateListUrl += "?siteid=" + siteId;
        }
        else
        {
            siteId = SelectedSiteID;
            emailTemplateListUrl += "?selectedsiteid=" + SelectedSiteID;
        }

        // Get edited template
        EmailTemplateInfo templateInfo = null;

        int templateId = QueryHelper.GetInteger("templateid", 0);

        if (templateId > 0)
        {
            templateInfo = EmailTemplateProvider.GetEmailTemplate(templateId);
        }
        else
        {
            string templateName = QueryHelper.GetString("name", String.Empty);
            templateInfo = EmailTemplateProvider.GetEmailTemplate(templateName, siteId);
            if (templateInfo != null)
            {
                templateId = templateInfo.TemplateID;
            }
        }

        if (templateInfo != null)
        {
            // Check that edited template belongs to selected site
            if ((siteId > 0) && (templateInfo != null) && (templateInfo.TemplateSiteID != siteId))
            {
                RedirectToAccessDenied(null);
            }

            SetEditedObject(templateInfo, "Frameset.aspx");


            CurrentMaster.Title.TitleText  = GetString("EmailTemplate_Edit.Title");
            CurrentMaster.Title.TitleImage = GetImageUrl("Objects/CMS_EmailTemplate/object.png");
        }
        else
        {
            CurrentMaster.Title.TitleText  = GetString("EmailTemplate_Edit.TitleNew");
            CurrentMaster.Title.TitleImage = GetImageUrl("Objects/CMS_EmailTemplate/new.png");
        }

        // Initialize the editing control
        emailTemplateEditElem.EmailTemplateID = templateId;
        emailTemplateEditElem.DialogMode      = mDialog;

        if ((siteId == 0) && CMSContext.CurrentUser.UserSiteManagerAdmin)
        {
            emailTemplateEditElem.GlobalTemplate = true;
        }

        emailTemplateEditElem.SiteID              = siteId;
        emailTemplateEditElem.OnCheckPermissions += emailTemplateEditElem_OnCheckPermissions;

        if (mDialog)
        {
            // Make sure user can't change template type to some that is not allowed in selector
            string templateType = QueryHelper.GetString("templatetype", null);
            if (!String.IsNullOrEmpty(templateType))
            {
                emailTemplateEditElem.TemplateType = EmailTemplateMacros.GetEmailTypeEnum(templateType);
            }

            // Other dialog specific initialization
            RegisterModalPageScripts();
            CreateFooterButtons();
        }
        else
        {
            string[,] pageTitleTabs = new string[2, 3];
            pageTitleTabs[0, 0]     = GetString("EmailTemplate_Edit.EmailTemplates");
            pageTitleTabs[0, 1]     = emailTemplateListUrl;

            pageTitleTabs[1, 0] = (templateInfo != null) ? templateInfo.TemplateDisplayName : GetString("EmailTemplate_Edit.CurrentTemplate");

            pageTitleTabs[1, 1] = string.Empty;
            pageTitleTabs[1, 2] = string.Empty;

            CurrentMaster.Title.Breadcrumbs = pageTitleTabs;
        }

        // Pagetitle
        CurrentMaster.Title.HelpTopicName = "newedit_e-mail_template";
        CurrentMaster.Title.HelpName      = "helpTopic";
    }
    private static string GetColumnValue(Entity contact, EmailTemplateMacros macros, Dictionary <string, string> columnMap)
    {
        object result = contact.GetColumnValue(columnMap[macros.ColumnPath]);

        return(Convert.ToString(result));
    }
 private static string GetRecipientUserContactColumnValue(Entity contact, EmailTemplateMacros macros)
 {
     return(GetColumnValue(contact, macros, _recipientUserContact_ColumnNameList));
 }