private object GridVariants_OnExternalDataBound(object sender, string sourceName, object parameter)
    {
        if (sourceName.Equals("variantName", StringComparison.OrdinalIgnoreCase))
        {
            var drv   = UniGridFunctions.GetDataRowView(sender as DataControlFieldCell);
            var issue = new IssueInfo(drv.Row);

            string navigateUrl = EmailBuilderHelper.GetNavigationUrl(Issue.IssueNewsletterID, issue.IssueID, 2);

            return(new HyperLink
            {
                NavigateUrl = navigateUrl,
                Text = HTMLHelper.HTMLEncode(issue.GetVariantName())
            });
        }

        if (sourceName.Equals("delete", StringComparison.OrdinalIgnoreCase))
        {
            var dr           = UniGridFunctions.GetDataRowView(parameter);
            int issueId      = Convert.ToInt32(dr["IssueID"]);
            var deleteButton = (CMSGridActionButton)sender;
            deleteButton.Enabled = (OriginalVariant.IssueID != issueId) && Enabled;
        }

        return(parameter);
    }
    private void GridVariants_OnAction(string actionName, object actionArgument)
    {
        if (actionName.Equals("delete", StringComparison.OrdinalIgnoreCase))
        {
            int deletedIssueId = ValidationHelper.GetInteger(actionArgument, 0);
            EmailABTestService.DeleteVariant(deletedIssueId);

            var variants = IssueHelper.GetIssueVariants(ParentIssueId, additionalWhereCondition: null);
            int redirectToIssueId;

            // Handle the situation when deleted variant was the actually displayed variant or entire A/B test was deleted as well.
            if ((variants != null) && variants.Any())
            {
                if (Issue.IssueID != deletedIssueId)
                {
                    // Don't redirect, leave current location unchanged.
                    return;
                }

                // Switch to first available variant
                redirectToIssueId = variants.First().IssueID;
            }
            else
            {
                // Suppose the entire A/B test was removed so switch to the original issue
                redirectToIssueId = ParentIssueId;
            }

            string url = EmailBuilderHelper.GetNavigationUrl(Issue.IssueNewsletterID, redirectToIssueId, 2);
            URLHelper.Redirect(url);
        }
    }
Beispiel #3
0
    private void InitAbTestingTab()
    {
        if (issueInfo.IssueIsABTest && (issueInfo.IssueVariantOfIssueID <= 0))
        {
            // Parent issue of A/B tests cannot be modified in Email builder => redirect to the original variant
            string originalVariantUrl = EmailBuilderHelper.GetOriginalVariantIssueUrl(issueInfo);
            URLHelper.Redirect(originalVariantUrl);
        }

        if (!NewsletterHelper.IsABTestingAvailable())
        {
            lnkAbTesting.Visible    = false;
            plcAbTestingTab.Visible = false;
        }

        // Initialize A/B testing control
        abVariants.Issue   = issueInfo;
        abVariants.Enabled = EditEnabled;
    }
Beispiel #4
0
    /// <summary>
    /// Handler for email properties save action.
    /// </summary>
    private void RightPanelSave(object sender, EmailBuilderEventArgs eventArgs)
    {
        if (eventArgs.FullRefresh)
        {
            mIsFullRefresh = true;

            ScriptHelper.RegisterStartupScript(Page, typeof(string), "RefreshParent", ScriptHelper.GetScript(REFRESH_PARENT_SCRIPT));
            return;
        }

        var issueNavigationUrl = EmailBuilderHelper.GetNavigationUrl(eventArgs.NewsletterID, eventArgs.IssueID, IsInAutomation, eventArgs.SelectedTabIndex, eventArgs.SelectedTabIndex == 1);

        if (IsDialog)
        {
            issueNavigationUrl = URLHelper.PropagateUrlParameters(issueNavigationUrl, "dialog", "returnhandler");
            issueNavigationUrl = ApplicationUrlHelper.AppendDialogHash(issueNavigationUrl);
        }

        URLHelper.Redirect(issueNavigationUrl);
    }
    /// <summary>
    /// When dialog's OK button for new variant action is clicked.
    /// </summary>
    protected void btnSaveDialog_Click(object sender, EventArgs e)
    {
        if (String.IsNullOrWhiteSpace(txtVariantName.Text))
        {
            errorMessage.Text = GetString("newsletter.variantdisplaynamemissing");
            return;
        }

        try
        {
            string    variantName = txtVariantName.Text.Truncate(VARIANT_NAME_SIZE);
            IssueInfo newVariant  = EmailABTestService.CreateVariant(variantName, Issue.IssueID);

            string navigateUrl = EmailBuilderHelper.GetNavigationUrl(Issue.IssueNewsletterID, newVariant.IssueID, 2);
            URLHelper.Redirect(navigateUrl);
        }
        catch (InvalidOperationException exception)
        {
            Service.Resolve <IEventLogService>().LogException("Newsletter", "ADDVARIANT", exception);
            errorMessage.Text = GetString("emailbuilder.generalerror");
        }
    }
Beispiel #6
0
    /// <summary>
    /// Handler for email properties save action.
    /// </summary>
    private void EmailProperties_Save(object sender, EmailBuilderEventArgs eventArgs)
    {
        string issueNavigationUrl = EmailBuilderHelper.GetNavigationUrl(eventArgs.NewsletterID, eventArgs.IssueID, selectedTabIndex: 1, includeSaveMessage: true);

        URLHelper.Redirect(issueNavigationUrl);
    }