protected void Page_Load(object sender, EventArgs e)
    {
        IssueInfo issue = EditedObject as IssueInfo;

        if (issue == null)
        {
            RedirectToAccessDenied(GetString("general.invalidparameters"));
        }

        if (!issue.CheckPermissions(PermissionsEnum.Read, CurrentSiteName, CurrentUser))
        {
            RedirectToAccessDenied(issue.TypeInfo.ModuleName, "AuthorIssues");
        }

        var subscriber = GetSubscriber(NewsletterInfoProvider.GetNewsletterInfo(issue.IssueNewsletterID));

        // Switch culture to the site culture, so the e-mail isn't rendered in the editor's culture
        string culture = CultureHelper.GetDefaultCultureCode(SiteContext.CurrentSiteName);

        using (new CMSActionContext {
            ThreadCulture = CultureHelper.GetCultureInfo(culture)
        })
        {
            string htmlPage = NewsletterHelper.GetPreviewHTML(issue, subscriber);
            Response.Clear();
            Response.Write(htmlPage);
        }

        RequestHelper.EndResponse();
    }
Esempio n. 2
0
    protected void Page_Load(object sender, EventArgs e)
    {
        issueInfo = EditedObject as IssueInfo;

        if (issueInfo == null)
        {
            RedirectToAccessDenied(GetString("general.invalidparameters"));
        }

        if (!issueInfo.CheckPermissions(PermissionsEnum.Read, CurrentSiteName, CurrentUser))
        {
            RedirectToAccessDenied(issueInfo.TypeInfo.ModuleName, "Read");
        }

        InitAbTestingTab();

        rptEmailWidgets.DataSource = GetAvailableWidgets(issueInfo.IssueTemplateID);
        rptEmailWidgets.DataBind();

        alNoRecords.Visible = !rptEmailWidgets.HasData();

        // Set builder iframe
        builderIframe.Src = URLHelper.ResolveUrl($"~/CMSPages/Newsletters/GetEmailBuilderContent.ashx?issueid={issueInfo.IssueID}");

        // Initialize email properties control
        emailProperties.Enabled      = EditEnabled;
        emailProperties.IssueID      = issueInfo.IssueID;
        emailProperties.NewsletterID = issueInfo.IssueNewsletterID;
        emailProperties.Save        += EmailProperties_Save;

        if (!RequestHelper.IsAsyncPostback())
        {
            string moduleId             = "CMS.Newsletter/emailbuilder";
            var    zonesConfiguration   = Service.Resolve <IZonesConfigurationServiceFactory>().Create(issueInfo);
            var    localizationProvider = Service.Resolve <IClientLocalizationProvider>();
            var    newsletter           = NewsletterInfoProvider.GetNewsletterInfo(issueInfo.IssueNewsletterID);
            var    filter = new EmailBuilderContentFilter(issueInfo, newsletter);

            ScriptHelper.RegisterModule(this, "CMS/RegisterClientLocalization", localizationProvider.GetClientLocalization(moduleId));
            ScriptHelper.RegisterModule(this, "CMS.Newsletter/EmailBuilder", new
            {
                issueId = issueInfo.IssueID,
                enableWidgetManipulation = EditEnabled,
                emailContent             = zonesConfiguration.GetEmailContent(filter)
            });

            ScriptHelper.HideVerticalTabs(this);
            ScriptHelper.RefreshTabHeader(Page, issueInfo.Generalized.ObjectDisplayName);

            InitHeaderActions();
        }

        SetClientApplicationData();
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        MessagesPlaceHolder = plcMess;

        // Get newsletter issue and check its existence
        mIssue = EditedObject as IssueInfo;

        if (mIssue == null)
        {
            RedirectToAccessDenied(GetString("general.invalidparameters"));
        }

        if (!mIssue.CheckPermissions(PermissionsEnum.Read, CurrentSiteName, CurrentUser))
        {
            RedirectToAccessDenied(mIssue.TypeInfo.ModuleName, "AuthorIssues");
        }

        mNewsletter = NewsletterInfoProvider.GetNewsletterInfo(mIssue.IssueNewsletterID);

        string infoMessage;

        if (mIssue.IssueIsABTest)
        {
            InitSendVariant(mIssue);
            infoMessage = sendVariant.InfoMessage;
        }
        else
        {
            InitSendElem(mIssue);
            infoMessage = GetInfoMessage(mIssue.IssueStatus);
        }

        // Display additional information
        if (!String.IsNullOrEmpty(infoMessage))
        {
            ShowInformationInternal(infoMessage);
        }

        string scriptBlock = @"function RefreshPage() {{ document.location.replace(document.location); }}";

        ScriptHelper.RegisterClientScriptBlock(this, GetType(), "RefreshActions", scriptBlock, true);

        if (!RequestHelper.IsPostBack() && (QueryHelper.GetInteger("sent", 0) == 1))
        {
            ShowConfirmation(GetString("Newsletter_Send.SuccessfullySent"));
        }

        AddBrokenEmailUrlNotifier(mNewsletter, lblUrlWarning);
    }
Esempio n. 4
0
    protected void Page_Load(object sender, EventArgs e)
    {
        // Get edited issue object and check its existence
        IssueInfo issue = EditedObject as IssueInfo;

        if (issue == null)
        {
            RedirectToAccessDenied(GetString("general.invalidparameters"));
        }

        if (!issue.CheckPermissions(PermissionsEnum.Modify, CurrentSiteName, CurrentUser))
        {
            RedirectToAccessDenied(issue.TypeInfo.ModuleName, "AuthorIssues");
        }

        // Reset master page content CSS class
        CurrentMaster.PanelContent.CssClass = string.Empty;

        // Ensure correct padding
        CurrentMaster.MessagesPlaceHolder.OffsetX = 16;
        CurrentMaster.MessagesPlaceHolder.OffsetY = 8;

        // Get newsletter and check its existence
        newsletter = NewsletterInfoProvider.GetNewsletterInfo(issue.IssueNewsletterID);
        if ((newsletter != null) && (newsletter.NewsletterType == NewsletterType.Dynamic))
        {
            ShowError(GetString("Newsletter_Issue_Edit.CannotBeEdited"));
            editElem.StopProcessing = true;
            editElem.Visible        = false;
            return;
        }

        // Get variant issue ID if A/B testing is ON
        int issueId = InitVariantSlider(issue.IssueID);

        // Initialize edit control
        editElem.IssueID      = issueId;
        editElem.NewsletterID = issue.IssueNewsletterID;
        editElem.IsDialogMode = false;

        InitHeaderActions(issueId);
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        // Normal messages must be bellow the information label
        MessagesPlaceHolder = plcMess;

        // Get newsletter issue and check its existence
        IssueInfo issue = EditedObject as IssueInfo;

        if (issue == null)
        {
            RedirectToAccessDenied(GetString("general.invalidparameters"));
        }

        if (!issue.CheckPermissions(PermissionsEnum.Read, CurrentSiteName, CurrentUser))
        {
            RedirectToAccessDenied(issue.TypeInfo.ModuleName, "AuthorIssues");
        }

        string infoMessage;
        bool   isABTest            = issue.IssueIsABTest;
        bool   sendingIssueAllowed = false;

        sendElem.Visible    = !isABTest;
        sendVariant.Visible = isABTest;

        if (!isABTest)
        {
            sendElem.IssueID      = issue.IssueID;
            sendElem.NewsletterID = issue.IssueNewsletterID;
            bool isSent = (issue.IssueMailoutTime != DateTimeHelper.ZERO_TIME) && (issue.IssueMailoutTime < DateTime.Now);
            infoMessage = (isSent ? GetString("Newsletter_Issue_Header.AlreadySent") : GetString("Newsletter_Issue_Header.NotSentYet"));

            // If resending is disabled check that the issue has 'Idle' status
            newsletter = NewsletterInfoProvider.GetNewsletterInfo(issue.IssueNewsletterID);
            if (newsletter != null)
            {
                sendingIssueAllowed = newsletter.NewsletterEnableResending || (issue.IssueStatus == IssueStatusEnum.Idle) || (issue.IssueStatus == IssueStatusEnum.ReadyForSending);
            }
        }
        else
        {
            sendVariant.StopProcessing = (issue.IssueID <= 0);
            sendVariant.IssueID        = issue.IssueID;
            sendVariant.OnChanged     -= sendVariant_OnChanged;
            sendVariant.OnChanged     += sendVariant_OnChanged;
            sendVariant.ReloadData(!RequestHelper.IsPostBack());
            infoMessage         = sendVariant.InfoMessage;
            sendingIssueAllowed = sendVariant.SendingAllowed;
        }

        // Display additional information
        if (!String.IsNullOrEmpty(infoMessage))
        {
            ShowInformationInternal(infoMessage);
        }

        InitHeaderActions(isABTest && (issue.IssueStatus != IssueStatusEnum.Finished), sendingIssueAllowed);

        string scriptBlock = @"function RefreshPage() {{ document.location.replace(document.location); }}";

        ScriptHelper.RegisterClientScriptBlock(this, GetType(), "RefreshActions", scriptBlock, true);

        if (!RequestHelper.IsPostBack() && (QueryHelper.GetInteger("sent", 0) == 1))
        {
            ShowConfirmation(GetString("Newsletter_Send.SuccessfullySent"));
        }
    }