Exemple #1
0
        private void GenerateCampaignObjective(
            string campaignName,
            string conversionName,
            int objectiveValue)
        {
            var campaignInfo = CampaignInfoProvider.GetCampaignInfo(campaignName, _mSite.SiteName);

            if (campaignInfo == null)
            {
                return;
            }

            var campaignConversionInfo = CampaignConversionInfoProvider.GetCampaignConversions()
                                         .WhereEquals("CampaignConversionDisplayName", conversionName)
                                         .WhereEquals("CampaignConversionCampaignID", campaignInfo.CampaignID)
                                         .FirstOrDefault();

            if (campaignConversionInfo == null)
            {
                return;
            }

            CampaignObjectiveInfoProvider.SetCampaignObjectiveInfo(new CampaignObjectiveInfo
            {
                CampaignObjectiveCampaignID           = campaignInfo.CampaignID,
                CampaignObjectiveCampaignConversionID = campaignConversionInfo.CampaignConversionID,
                CampaignObjectiveValue = objectiveValue
            });
        }
Exemple #2
0
        public void Generate()
        {
            CampaignInfoProvider.GetCampaigns().WhereStartsWith("CampaignName", "DancingGoat.")
            .OnSite(_mSite.SiteID).ToList()
            .ForEach(CampaignInfoProvider.DeleteCampaignInfo);

            GenerateCoffeeClubMembershipCampaign();
            GenerateCafePromotionSampleCampaign();

            GenerateCampaignObjective(CampaignCafeSamplePromotionRunning, ConversionFormsubmissionTryFreeSample, 600);
            GenerateCampaignObjective(CampaignCafeSamplePromotionFinished, ConversionFormsubmissionTryFreeSample, 50);

            GenerateActivities(CampaignCafeSamplePromotionRunning, _campaignCafeSamplePromotionRunningHits, CampaignCafeSamplePromotionRunningContactsCount);
            GenerateActivities(CampaignCafeSamplePromotionFinished, _campaignCafeSamplePromotionFinishedHits, CampaignCafeSamplePromotionFinishedContactsCount);

            var result = new CalculateCampaignConversionReportTask().Execute(new TaskInfo
            {
                TaskSiteID = _mSite.SiteID
            });

            if (!string.IsNullOrEmpty(result))
            {
                throw new InvalidOperationException($"Exception message: '{result}'");
            }
        }
Exemple #3
0
        private void GenerateActivities(
            string campaignName,
            IReadOnlyDictionary <string, IEnumerable <ActivityDataParameters> > conversionHits,
            int contactsCount)
        {
            var siteName     = _mSite.SiteName;
            var campaignInfo = CampaignInfoProvider.GetCampaignInfo(campaignName, siteName);
            var posterPath   = CampaignDataGeneratorHelpers.GetDocument(PagePathAmericasCoffeePoster);
            var colombiaPath = CampaignDataGeneratorHelpers.GetDocument(PagePathColombia);
            var bizFormInfo  = BizFormInfoProvider.GetBizFormInfo(TryFreeSampleFormCodeName, _mSite.SiteID);

            CampaignDataGeneratorHelpers.DeleteOldActivities(campaignInfo.CampaignUTMCode);
            var contactsIDs = new ContactsIdData(_contactEmailPostfix, contactsCount);

            CampaignDataGeneratorHelpers.GenerateActivities(conversionHits[ConversionPagevisitColombia], campaignInfo,
                                                            "pagevisit",
                                                            contactsIDs, colombiaPath.NodeID);

            CampaignDataGeneratorHelpers.GenerateActivities(conversionHits[ConversionPagevisitAmericasCoffeePoster],
                                                            campaignInfo,
                                                            "pagevisit", contactsIDs, posterPath.NodeID);

            CampaignDataGeneratorHelpers.GenerateActivities(conversionHits[ConversionUserregistration], campaignInfo,
                                                            "userregistration", contactsIDs);

            CampaignDataGeneratorHelpers.GenerateActivities(conversionHits[ConversionFormsubmissionTryFreeSample],
                                                            campaignInfo,
                                                            "bizformsubmit", contactsIDs, bizFormInfo.FormID);
        }
Exemple #4
0
    /// <summary>
    /// Reload data from node to controls.
    /// </summary>
    private void ReloadData()
    {
        ucConversionSelector.Value = Node.DocumentTrackConversionName;
        txtConversionValue.Value   = Node.DocumentConversionValue;

        var campaignsListWithNameAndLink = CampaignInfoProvider.GetCampaigns()
                                           .Source(s => s.Join <CampaignAssetInfo>("CampaignID", "CampaignAssetCampaignID"))
                                           .WhereEquals("CampaignAssetAssetGuid", Node.NodeGUID)
                                           .WhereEquals("CampaignAssetType", TreeNode.OBJECT_TYPE)
                                           .Columns("CampaignDisplayName", "CampaignID")
                                           .Select(campaign => new
        {
            EncodedCampaignDisplayName = HTMLHelper.HTMLEncode(campaign.CampaignDisplayName),
            CampaignEditLink           = URLHelper.GetAbsoluteUrl(Service.Entry <IUILinkProvider>().GetSingleObjectLink(CampaignInfo.TYPEINFO.ModuleName, CAMPAIGN_ELEMENT_CODENAME,
                                                                                                                        new ObjectDetailLinkParameters
            {
                ObjectIdentifier         = campaign.CampaignID,
                AllowNavigationToListing = true
            }))
        });

        if (campaignsListWithNameAndLink.Any())
        {
            listViewCampaings.DataSource = campaignsListWithNameAndLink;
            listViewCampaings.DataBind();
            ucConversionSelector.Enabled = false;
            txtConversionValue.Enabled   = false;
            smrtpEditInCampaign.Visible  = true;
            smrtpEditInCampaign.Content  = GetString("om.analyticSettings.editInCampain");
        }
        else
        {
            pnlTrackedCampaigns.Visible = false;
        }
    }
    private string GetUtmCampaignNameHtmlOutput()
    {
        CampaignInfo campaign = CampaignInfoProvider.GetCampaignByUTMCode(mIssue.IssueUTMCampaign, CurrentSiteName);

        // Is issue linked to an existing campaign
        if (campaign != null)
        {
            var campaignDetailUrl = Service.Resolve <IUILinkProvider>().GetSingleObjectLink(CampaignInfo.TYPEINFO.ModuleName, CAMPAIGN_ELEMENT_CODENAME,
                                                                                            new ObjectDetailLinkParameters
            {
                ObjectIdentifier         = campaign.CampaignID,
                AllowNavigationToListing = true
            });
            var hyperLink = new HyperLink
            {
                NavigateUrl = URLHelper.GetAbsoluteUrl(campaignDetailUrl),
                Text        = HTMLHelper.HTMLEncode(campaign.CampaignDisplayName),
                Target      = "_top",
            };

            return(hyperLink.GetRenderedHTML());
        }

        return(mIssue.IssueUTMCampaign);
    }
    /// <summary>
    /// Test if campaign is valid.
    /// </summary>
    public override bool IsValid()
    {
        String value = ValidationHelper.GetString(usCampaign.Value, String.Empty).Trim();

        if (value != String.Empty && value != UniSelector.US_NONE_RECORD.ToString())
        {
            String domain = RequestContext.CurrentDomain;
            if (DataHelper.GetNotEmpty(domain, "") != "")
            {
                string parsedDomain = LicenseKeyInfoProvider.ParseDomainName(domain);
                if (!LicenseKeyInfoProvider.IsFeatureAvailable(parsedDomain, FeatureEnum.CampaignAndConversions))
                {
                    ValidationError = GetString("campaignselector.nolicence");
                    return(false);
                }
            }

            if (!ValidationHelper.IsCodeName(value))
            {
                ValidationError = GetString("campaign.validcodename");
                return(false);
            }

            // If campaign object not found
            CampaignInfo ci = CampaignInfoProvider.GetCampaignInfo(value, SiteInfoProvider.GetSiteName(SiteID));

            // Handle info not found
            if (ci == null)
            {
                if (!CreateOnUnknownName)
                {
                    // Selector is not set to create new campaigns so error out
                    ValidationError = GetString("campaign.validcodename");
                    return(false);
                }

                // Or check permissions ..
                if (!MembershipContext.AuthenticatedUser.IsAuthorizedPerResource("CMS.WebAnalytics", "ManageCampaigns"))
                {
                    ValidationError = GetString("campaign.notallowedcreate");
                    return(false);
                }

                // .. and try to create a new one.
                ci = new CampaignInfo();
                ci.CampaignName        = value;
                ci.CampaignUTMCode     = value;
                ci.CampaignDisplayName = value;
                ci.CampaignEnabled     = true;
                ci.CampaignSiteID      = SiteID;

                CampaignInfoProvider.SetCampaignInfo(ci);
            }
        }

        return(true);
    }
Exemple #7
0
    void EditForm_OnAfterSave(object sender, EventArgs e)
    {
        CampaignInfo ci = EditForm.EditedObject as CampaignInfo;

        // If code name has changed (on existing object) => Rename all analytics statistics data.
        if ((ci != null) && (ci.CampaignName != formerCodeName) && (formerCodeName != String.Empty))
        {
            CampaignInfoProvider.RenameCampaignStatistics(formerCodeName, ci.CampaignName, CMSContext.CurrentSiteID);
        }
    }
Exemple #8
0
    private static IList <CampaignListItemViewModel> GetCampaigns()
    {
        var now = DateTime.Now;

        return(CampaignInfoProvider.GetCampaigns()
               .OnSite(SiteContext.CurrentSiteID)
               .ToList()
               .OrderBy(campaign => (int)campaign.GetCampaignStatus(now))
               .ThenBy(campaign => campaign.CampaignDisplayName)
               .Select(campaign => CreateCampaignViewModel(campaign, now))
               .ToList());
    }
Exemple #9
0
    protected void Page_Init(object sender, EventArgs e)
    {
        // Checks all permissions for web analytics
        CheckAllPermissions();

        CampaignInfo ci = EditedObject as CampaignInfo;

        string campaignName = QueryHelper.GetString("campaignName", String.Empty);

        if (campaignName != String.Empty)
        {
            // Try to check dialog mode
            ci = CampaignInfoProvider.GetCampaignInfo(campaignName, SiteContext.CurrentSiteName);
        }

        if ((campaignName != String.Empty) && (ci == null))
        {
            // Set warning text
            infoText = String.Format(GetString("campaign.editedobjectnotexits"), HTMLHelper.HTMLEncode(campaignName));

            // Create campaign info based on campaign name
            ci = new CampaignInfo();
            ci.CampaignDisplayName = campaignName;
            ci.CampaignName        = campaignName;
        }

        // Validate SiteID for non administrators
        if (ci != null)
        {
            if (!ci.CheckPermissions(PermissionsEnum.Read, CurrentSiteName, CurrentUser))
            {
                RedirectToAccessDenied(ci.TypeInfo.ModuleName, "Read");
            }
        }

        if (modalDialog)
        {
            if (ci != null)
            {
                PageTitle.TitleText = GetString("analytics.campaign");
            }
            else
            {
                PageTitle.TitleText = GetString("campaign.campaign.new");
            }
        }

        if (ci != null)
        {
            EditedObject = ci;
        }
    }
        /// <summary>
        /// Generates campaign.
        /// </summary>
        /// <param name="campaignData">Campaign data for generating.</param>
        private void GenerateCampaign(CampaignData campaignData)
        {
            var siteName = mSite.SiteName;
            var campaign = CampaignInfoProvider.GetCampaignInfo(campaignData.CampaignName, siteName);

            if (campaign != null)
            {
                return;
            }

            campaign = new CampaignInfo
            {
                CampaignName         = campaignData.CampaignName,
                CampaignDisplayName  = campaignData.CampaignDisplayName,
                CampaignDescription  = campaignData.CampaignDescription,
                CampaignOpenFrom     = campaignData.CampaignOpenFrom,
                CampaignCalculatedTo = campaignData.CampaignOpenFrom,
                CampaignOpenTo       = campaignData.CampaignOpenTo,
                CampaignSiteID       = mSite.SiteID,
                CampaignUTMCode      = campaignData.CampaignUTMCode
            };

            CampaignInfoProvider.SetCampaignInfo(campaign);

            /* Add email to campaign promotion section  */
            CampaignDataGeneratorHelpers.AddNewsletterAsset(campaign, campaignData.CampaignEmailPromotion);
            var issue = ProviderHelper.GetInfoByGuid(PredefinedObjectType.NEWSLETTERISSUE, campaignData.CampaignEmailPromotion, campaign.CampaignSiteID);

            if (issue != null)
            {
                issue.SetValue("IssueStatus", 5);
                issue.SetValue("IssueMailoutTime", campaignData.CampaignOpenFrom);

                issue.Update();
            }

            /* Add page assets to campaign content inventory section */
            foreach (var assetUrlGuid in campaignData.CampaignContentInventory)
            {
                CampaignDataGeneratorHelpers.AddPageAsset(campaign.CampaignID, assetUrlGuid);
            }

            /* Add conversions to campaign report setup section */
            foreach (var conversion in campaignData.CampaignReportSetup)
            {
                CampaignDataGeneratorHelpers.CreateConversion(campaign.CampaignID, conversion);
            }
        }
Exemple #11
0
    /// <summary>
    /// Replace value in ActivityCampaign field where <see cref="CampaignInfo.CampaignName"/> is stored by <see cref="CampaignInfo.CampaignID"/>.
    /// </summary>
    /// <param name="step">Step to be replaced.</param>
    private static void UpdateCustomActivityStep(WorkflowStepInfo step)
    {
        var parameters   = step.StepActionParameters;
        var campaignName = parameters.GetValue("ActivityCampaign");
        var campaign     = CampaignInfoProvider.GetCampaigns()
                           .WhereEquals("CampaignName", campaignName)
                           .FirstOrDefault();

        if (campaign == null)
        {
            return;
        }

        parameters.SetValue("ActivityCampaign", campaign.CampaignID);
        WorkflowStepInfoProvider.SetWorkflowStepInfo(step);
    }
        private void GenerateActivities(string campaignName, Dictionary <string, IEnumerable <ActivityDataParameters> > conversionHits, int contactsCount)
        {
            var siteName = mSite.SiteName;
            var campaignCafePromotion = CampaignInfoProvider.GetCampaignInfo(campaignName, siteName);

            var pageVisitColombia = CampaignDataGeneratorHelpers.GetDocument(PAGE_PATH_COFFEE_SAMPLES);
            var formFreeSample    = BizFormInfoProvider.GetBizFormInfo(COFFEE_SAMPLE_LIST_FORM_CODE_NAME, mSite.SiteID);

            /* Generate activities for campaign */
            CampaignDataGeneratorHelpers.DeleteOldActivities(campaignCafePromotion.CampaignUTMCode);
            var campaignContactsIDs = new ContactsIDData(mContactFirstNamePrefix, contactsCount);

            CampaignDataGeneratorHelpers.GenerateActivities(conversionHits[CONVERSION_PAGEVISIT_COFFEE_SAMPLES], campaignCafePromotion, PredefinedActivityType.PAGE_VISIT, campaignContactsIDs, activityUrl: DocumentURLProvider.GetAbsoluteLiveSiteURL(pageVisitColombia));
            CampaignDataGeneratorHelpers.GenerateActivities(conversionHits[CONVERSION_FORMSUBMISSION_COFFEE_SAMPLE_LIST], campaignCafePromotion, PredefinedActivityType.BIZFORM_SUBMIT, campaignContactsIDs, formFreeSample.FormID);
            CampaignDataGeneratorHelpers.GenerateActivities(conversionHits[CONVERSION_PURCHASE], campaignCafePromotion, PredefinedActivityType.PURCHASE, campaignContactsIDs);
        }
    protected void Page_Load(object sender, EventArgs e)
    {
        usSelectConversion.SelectionMode = SelectionModeEnum.SingleDropDownList;
        usSite.UserId   = MembershipContext.AuthenticatedUser.UserID;
        usSite.AllowAll = MembershipContext.AuthenticatedUser.IsGlobalAdministrator;

        string campaignName = ValidationHelper.GetString(ucSelectCampaign.Value, String.Empty);

        if (campaignName != ucSelectCampaign.AllRecordValue)
        {
            CampaignInfo ci = CampaignInfoProvider.GetCampaignInfo(campaignName, SiteContext.CurrentSiteName);
            if ((ci != null) && (!ci.CampaignUseAllConversions))
            {
                usSelectConversion.WhereCondition = "ConversionID  IN (SELECT ConversionID FROM Analytics_ConversionCampaign WHERE CampaignID =" + ci.CampaignID + ")";
            }
        }

        if (!URLHelper.IsPostback())
        {
            if (ShowVisitsInGoalSelector)
            {
                drpGoals.Items.Add(new ListItem(GetString("analytics.view"), "view"));
            }

            drpGoals.Items.Add(new ListItem(GetString("conversion.count"), "count"));
            drpGoals.Items.Add(new ListItem(GetString("om.trackconversionvalue"), "value"));
            usSite.SiteID = SiteContext.CurrentSiteID;
        }

        // Filter conversions for selected site  (current is site selector not visible)
        int siteID = SiteContext.CurrentSiteID;

        if (pnlSite.Visible)
        {
            siteID = usSite.SiteID;
        }

        // Filter conversions only if not all sites selected
        if (!pnlSite.Visible || (siteID.ToString() != usSite.AllRecordValue))
        {
            usSelectConversion.WhereCondition = SqlHelper.AddWhereCondition(usSelectConversion.WhereCondition, "ConversionSiteID =" + siteID);
        }

        usSelectConversion.ReloadData(true);
        drpGoals.AutoPostBack = true;
    }
Exemple #14
0
        private void GenerateCampaign(CampaignData campaignData)
        {
            var siteName = _mSite.SiteName;

            if (CampaignInfoProvider.GetCampaignInfo(campaignData.CampaignName, siteName) != null)
            {
                return;
            }

            var campaignInfo = new CampaignInfo
            {
                CampaignName         = campaignData.CampaignName,
                CampaignDisplayName  = campaignData.CampaignDisplayName,
                CampaignDescription  = campaignData.CampaignDescription,
                CampaignOpenFrom     = campaignData.CampaignOpenFrom,
                CampaignCalculatedTo = campaignData.CampaignOpenFrom,
                CampaignOpenTo       = campaignData.CampaignOpenTo,
                CampaignSiteID       = _mSite.SiteID,
                CampaignUTMCode      = campaignData.CampaignUtmCode
            };

            CampaignInfoProvider.SetCampaignInfo(campaignInfo);
            CampaignDataGeneratorHelpers.AddNewsletterAsset(campaignInfo, campaignData.CampaignEmailPromotion);
            var infoByGuid = ProviderHelper.GetInfoByGuid("newsletter.issue", campaignData.CampaignEmailPromotion,
                                                          campaignInfo.CampaignSiteID);

            if (infoByGuid != null)
            {
                infoByGuid.SetValue("IssueStatus", 5);
                infoByGuid.SetValue("IssueMailoutTime", campaignData.CampaignOpenFrom);
                infoByGuid.Update();
            }

            foreach (var pagePath in campaignData.CampaignContentInventory)
            {
                CampaignDataGeneratorHelpers.AddPageAsset(campaignInfo.CampaignID, pagePath);
            }

            foreach (var conversionData in campaignData.CampaignReportSetup)
            {
                CampaignDataGeneratorHelpers.CreateConversion(campaignInfo.CampaignID, conversionData);
            }
        }
    protected void ConversionsSelection_changed(object sender, EventArgs ea)
    {
        // Check "modify" permission
        if (!CMSContext.CurrentUser.IsAuthorizedPerResource("CMS.WebAnalytics", "ManageCampaigns"))
        {
            RedirectToAccessDenied("CMS.WebAnalytics", "Manage campaigns");
        }

        if (ci != null)
        {
            ci.CampaignUseAllConversions = rbAllConversions.Checked;
            if (ci.CampaignUseAllConversions)
            {
                CampaignInfoProvider.RemoveAllConversionsFromCampaign(campaignID);
            }

            CampaignInfoProvider.SetCampaignInfo(ci);

            ShowChangesSaved();
        }
    }
Exemple #16
0
    /// <summary>
    /// Loads data from post info object into the dialog.
    /// </summary>
    /// <param name="post">Facebook post info object.</param>
    private void LoadPostIntoDialog(FacebookPostInfo post)
    {
        if ((post == null) || (post.FacebookPostSiteID != SiteContext.CurrentSiteID))
        {
            pnlPostDetail.Visible = false;
            ShowError(GetString("sm.facebook.posts.msg.postnotexist"));
            return;
        }

        lblPostStatus.Text         = FacebookPostInfoProvider.GetPostPublishStateMessage(post, MembershipContext.AuthenticatedUser, SiteContext.CurrentSite, true);
        lblPeopleReachedValue.Text = ValidationHelper.GetString(post.FacebookPostInsightPeopleReached, String.Empty);
        if (post.FacebookPostCampaignID.HasValue)
        {
            CampaignInfo campaign = CampaignInfoProvider.GetCampaignInfo(post.FacebookPostCampaignID.Value);
            if (campaign != null)
            {
                lblCampaign.Text = HTMLHelper.HTMLEncode(campaign.CampaignDisplayName);
            }
        }
        else
        {
            pnlCampaign.Visible = false;
        }

        lblPostText.Text          = GetPostTextHTML(post.FacebookPostText);
        lblPostLikesValue.Text    = ValidationHelper.GetString(post.FacebookPostInsightLikesFromPage, String.Empty);
        lblPostCommentsValue.Text = ValidationHelper.GetString(post.FacebookPostInsightCommentsFromPage, String.Empty);
        lblPostSharesValue.Text   = ValidationHelper.GetString(post.FacebookPostInsightSharesFromPage, String.Empty);

        lblTotalLikesValue.Text    = ValidationHelper.GetString(post.FacebookPostInsightLikesTotal, String.Empty);
        lblTotalCommentsValue.Text = ValidationHelper.GetString(post.FacebookPostInsightCommentsTotal, String.Empty);

        lblHidePostValue.Text     = ValidationHelper.GetString(post.FacebookPostInsightNegativeHidePost, String.Empty);
        lblHideAllPostsValue.Text = ValidationHelper.GetString(post.FacebookPostInsightNegativeHideAllPosts, String.Empty);
        lblReportSpamValue.Text   = ValidationHelper.GetString(post.FacebookPostInsightNegativeReportSpam, String.Empty);
        lblUnlikePageValue.Text   = ValidationHelper.GetString(post.FacebookPostInsightNegativeUnlikePage, String.Empty);
    }
        /// <summary>
        /// Performs campaigns sample data generating.
        /// </summary>
        public void Generate()
        {
            CampaignInfoProvider.GetCampaigns()
            .WhereStartsWith("CampaignName", "DancingGoatMVC.")
            .OnSite(mSite.SiteID)
            .ToList()
            .ForEach(CampaignInfoProvider.DeleteCampaignInfo);

            /* Generate campaigns. */
            GenerateCafePromotionSampleCampaign();

            /* Generate campaign objectives */
            GenerateCampaignObjective(CAMPAIGN_CAFE_SAMPLE_PROMOTION_RUNNING, CONVERSION_FORMSUBMISSION_COFFEE_SAMPLE_LIST, 600);
            GenerateCampaignObjective(CAMPAIGN_CAFE_SAMPLE_PROMOTION_FINISHED, CONVERSION_FORMSUBMISSION_COFFEE_SAMPLE_LIST, 50);

            /* Generate activities */
            GenerateActivities(CAMPAIGN_CAFE_SAMPLE_PROMOTION_RUNNING, CAMPAIGN_CAFE_SAMPLE_PROMOTION_RUNNING_HITS, CAMPAIGN_CAFE_SAMPLE_PROMOTION_RUNNING_CONTACTS_COUNT);
            GenerateActivities(CAMPAIGN_CAFE_SAMPLE_PROMOTION_FINISHED, CAMPAIGN_CAFE_SAMPLE_PROMOTION_FINISHED_HITS, CAMPAIGN_CAFE_SAMPLE_PROMOTION_FINISHED_CONTACTS_COUNT);

            new CalculateCampaignConversionReportTask().Execute(new TaskInfo()
            {
                TaskSiteID = mSite.SiteID
            });
        }
Exemple #18
0
    /// <summary>
    /// Reloads control data.
    /// </summary>
    /// <param name="forceReload">Indicates if force reload should be used</param>
    public override void ReloadData(bool forceReload)
    {
        var isABTest = false;

        if (!mLoaded || forceReload)
        {
            IssueInfo issue = null;
            if (IssueID > 0)
            {
                // Get issue object
                issue = IssueInfoProvider.GetIssueInfo(IssueID);
                if (issue != null)
                {
                    if (NewsletterID == 0)
                    {
                        // Set newsletter ID
                        NewsletterID = issue.IssueNewsletterID;
                    }

                    if (string.IsNullOrEmpty(txtSubject.Text) || forceReload)
                    {
                        txtSubject.Text          = issue.IssueSubject;
                        chkShowInArchive.Checked = issue.IssueShowInNewsletterArchive;
                        chkIssueUseUTM.Checked   = issue.IssueUseUTM;
                    }

                    isABTest = issue.IssueIsABTest;
                }
            }

            // Get newsletter object
            if (Newsletter != null)
            {
                // Modify where condition of template selector if issue exists
                string issueTemplateWhere = (issue != null) ? string.Format(" OR TemplateID IN (SELECT IssueTemplateID From Newsletter_NewsletterIssue WHERE IssueID={0})", issue.IssueID) : string.Empty;

                // Initialize template selector
                issueTemplate.WhereCondition = String.Format("(TemplateType='{0}') AND (TemplateID IN (SELECT NewsletterTemplateID FROM Newsletter_Newsletter WHERE NewsletterID={1})" +
                                                             " OR TemplateID IN (SELECT TemplateID FROM Newsletter_EmailTemplateNewsletter WHERE NewsletterID={1}){2}) AND (TemplateSiteID={3})",
                                                             EmailTemplateType.Issue, NewsletterID, issueTemplateWhere, Newsletter.NewsletterSiteID);

                if (TemplateID > 0)
                {
                    // Set selected value
                    issueTemplate.Value = TemplateID;
                }

                if ((forceReload || (TemplateID <= 0)) && (issue != null) && (issue.IssueTemplateID != TemplateID))
                {
                    // Change selected value
                    issueTemplate.Value = TemplateID = issue.IssueTemplateID;

                    issueTemplate.Reload(forceReload);
                }

                if (TemplateID <= 0)
                {
                    // Get ID of default template
                    issueTemplate.Value = TemplateID = Newsletter.NewsletterTemplateID;
                }

                // Prevent selecting none value in campaign selector if there is no campaign
                if (CampaignInfoProvider.GetCampaigns().OnSite(SiteContext.CurrentSiteID).Count == 0)
                {
                    radUTMCampaignExisting.Checked = false;
                    radUTMCampaignExisting.Enabled = false;
                    selectorUTMCampaign.Enabled    = false;
                    radUTMCampaignNew.Checked      = true;
                    txtIssueUTMCampaign.Enabled    = true;
                }

                // Initialize inputs and content controls
                if (!RequestHelper.IsPostBack() || forceReload)
                {
                    txtSenderName.Text     = (issue != null ? issue.IssueSenderName : Newsletter.NewsletterSenderName);
                    txtSenderEmail.Text    = (issue != null ? issue.IssueSenderEmail : Newsletter.NewsletterSenderEmail);
                    txtIssueUTMSource.Text = (issue != null ? issue.IssueUTMSource : string.Empty);

                    if (issue != null)
                    {
                        if (CampaignInfoProvider.GetCampaignByUTMCode(issue.IssueUTMCampaign, SiteContext.CurrentSiteName) != null)
                        {
                            selectorUTMCampaign.Value = issue.IssueUTMCampaign;
                            selectorUTMCampaign.Reload(forceReload);

                            selectorUTMCampaign.Enabled = true;

                            radUTMCampaignExisting.Checked = true;
                            radUTMCampaignNew.Checked      = false;
                            txtIssueUTMCampaign.Enabled    = false;
                        }
                        else
                        {
                            txtIssueUTMCampaign.Text    = issue.IssueUTMCampaign;
                            txtIssueUTMCampaign.Enabled = true;

                            radUTMCampaignExisting.Checked = false;
                            radUTMCampaignNew.Checked      = true;
                            selectorUTMCampaign.Enabled    = false;
                        }
                    }
                }
                else
                {
                    if (issue != null)
                    {
                        if (string.IsNullOrEmpty(txtIssueUTMSource.Text.Trim()))
                        {
                            txtIssueUTMSource.Text = Normalize(Newsletter.NewsletterName + "_" + txtSubject.Text.Trim());
                        }

                        if (string.IsNullOrEmpty(txtIssueUTMCampaign.Text.Trim()))
                        {
                            txtIssueUTMCampaign.Text = Newsletter.NewsletterName.ToLower();
                        }
                    }
                }

                contentBody.NewsletterID = NewsletterID;
                contentBody.IssueID      = IssueID;
                contentBody.TemplateID   = TemplateID;
                contentBody.Enabled      = Enabled;
                contentBody.ReloadData(forceReload);

                // Set simple/advanced options visibility
                InitSimpleAdvancedOptions();

                txtIssueUTMCampaign.Attributes["placeholder"] = Newsletter.NewsletterName.ToLower();

                // Set flag
                mLoaded = true;
            }
        }

        txtIssueUTMMedium.Text   = DEFAULT_UTM_MEDIUM;
        chkShowInArchive.Enabled = txtSubject.Enabled = txtSenderEmail.Enabled = txtSenderName.Enabled = issueTemplate.Enabled = Enabled;
        chkIssueUseUTM.Enabled   = pnlIssueUTMCampaign.Enabled = pnlIssueUTMMedium.Enabled = pnlIssueUTMSource.Enabled = Enabled;
        pnlUTMParameters.Visible = chkIssueUseUTM.Checked;

        InitTooltips(isABTest);
    }
Exemple #19
0
    protected void Page_Load(object sender, EventArgs e)
    {
        ucDisplayReport = LoadControl("~/CMSModules/Reporting/Controls/DisplayReport.ascx") as IDisplayReport;
        pnlContent.Controls.Add((Control)ucDisplayReport);

        CurrentMaster.PanelContent.CssClass = "";
        UIHelper.AllowUpdateProgress        = false;
        ScriptHelper.RegisterDialogScript(Page);

        // Campaign Info
        int campaignID = QueryHelper.GetInteger("campaignID", 0);

        campaignInfo = CampaignInfoProvider.GetCampaignInfo(campaignID);
        if (campaignInfo == null)
        {
            return;
        }

        // Validate SiteID for non administrators
        if (!CMSContext.CurrentUser.IsGlobalAdministrator)
        {
            if (campaignInfo.CampaignSiteID != CMSContext.CurrentSiteID)
            {
                RedirectToAccessDenied(GetString("cmsmessages.accessdenied"));
            }
        }

        campaignName = campaignInfo.CampaignName;

        // Text for menu
        mSave       = GetString("general.save");
        mPrint      = GetString("Analytics_Report.Print");
        mDeleteData = GetString("Analytics_Report.ManageData");

        // Images for menu buttons
        imgSave.ImageUrl       = GetImageUrl("CMSModules/CMS_Content/EditMenu/save_small.png");
        imgPrint.ImageUrl      = GetImageUrl("General/printSmall.png");
        imgManageData.ImageUrl = GetImageUrl("CMSModules/CMS_Reporting/managedataSmall.png");

        // Check 'ManageData' permission
        if (CMSContext.CurrentUser.IsAuthorizedPerResource("CMS.WebAnalytics", "ManageData"))
        {
            this.lnkDeleteData.OnClientClick = "modalDialog('" +
                                               ResolveUrl("~/CMSModules/Reporting/WebAnalytics/Analytics_ManageData.aspx") +
                                               "?statcodename=singlecampaign;" + campaignName + "', 'AnalyticsManageData', " + AnalyticsHelper.MANAGE_WINDOW_WIDTH + ", " + AnalyticsHelper.MANAGE_WINDOW_HEIGHT + "); return false; ";
            this.lnkDeleteData.Visible = true;
        }

        ScriptHelper.RegisterClientScriptBlock(this, typeof(string), "myModalDialog",
                                               ScriptHelper.GetScript("function myModalDialog(url, name, width, height) { " +
                                                                      "win = window; " +
                                                                      "var dHeight = height; var dWidth = width; " +
                                                                      "if (( document.all )&&(navigator.appName != 'Opera')) { " +
                                                                      "try { win = wopener.window; } catch (e) {} " +
                                                                      "if ( parseInt(navigator.appVersion.substr(22, 1)) < 7 ) { dWidth += 4; dHeight += 58; }; " +
                                                                      "dialog = win.showModalDialog(url, this, 'dialogWidth:' + dWidth + 'px;dialogHeight:' + dHeight + 'px;resizable:yes;scroll:yes'); " +
                                                                      "} else { " +
                                                                      "oWindow = win.open(url, name, 'height=' + dHeight + ',width=' + dWidth + ',toolbar=no,directories=no,menubar=no,modal=yes,dependent=yes,resizable=yes,scroll=yes,scrollbars=yes'); oWindow.opener = this; oWindow.focus(); } } "));

        ucGraphType.ProcessChartSelectors(false);

        // Enables/disables radio buttons (based on UI elements)
        CurrentUserInfo ui            = CMSContext.CurrentUser;
        bool            checkedButton = false;

        if (!RequestHelper.IsPostBack())
        {
            if (!ui.IsGlobalAdministrator)
            {
                rbCount.Enabled           = ui.IsAuthorizedPerUIElement("cms.WebAnalytics", "CampaignConversionCount");
                rbDetail.Enabled          = ui.IsAuthorizedPerUIElement("cms.WebAnalytics", "CampaignDetails");
                rbGoalCount.Enabled       = ui.IsAuthorizedPerUIElement("cms.WebAnalytics", "goals.numberofconversions");
                rbGoalValue.Enabled       = ui.IsAuthorizedPerUIElement("cms.WebAnalytics", "goals.totalvalueofconversions");
                rbGoalView.Enabled        = ui.IsAuthorizedPerUIElement("cms.WebAnalytics", "goals.numberofvisitors");
                rbValue.Enabled           = ui.IsAuthorizedPerUIElement("cms.WebAnalytics", "campaignsConversionValue");
                rbValuePerVisitor.Enabled = ui.IsAuthorizedPerUIElement("cms.WebAnalytics", "valuepervisitor");
                rbViews.Enabled           = ui.IsAuthorizedPerUIElement("cms.WebAnalytics", "campaign.overview");

                // Check first enabled button
                foreach (Control ctrl in pnlRadios.Controls)
                {
                    RadioButton rb = ctrl as RadioButton;
                    if (rb != null)
                    {
                        if (rb.Enabled)
                        {
                            rb.Checked    = true;
                            checkedButton = true;
                            break;
                        }
                    }
                }

                // No report avaible -> redirect to access denied
                if (!checkedButton)
                {
                    RedirectToAccessDenied(GetString("campaign.noreportavaible"));
                }
            }
            else
            {
                // Admin check first radio button
                rbViews.Checked = true;
            }
        }
    }
Exemple #20
0
    /// <summary>
    /// Loads form data.
    /// </summary>
    private void LoadForm()
    {
        var       isABTest = false;
        IssueInfo issue    = null;

        if (IssueID > 0)
        {
            // Get issue object
            issue = IssueInfoProvider.GetIssueInfo(IssueID);
            if (issue != null)
            {
                if (NewsletterID == 0)
                {
                    // Set newsletter ID
                    NewsletterID = issue.IssueNewsletterID;
                }

                if (!RequestHelper.IsPostBack())
                {
                    txtDisplayName.Text    = issue.IssueDisplayName;
                    txtSubject.Text        = issue.IssueSubject;
                    chkIssueUseUTM.Checked = issue.IssueUseUTM;
                }

                isABTest = issue.IssueIsABTest;
            }
        }

        // Get newsletter object
        if (Newsletter != null)
        {
            issueTemplate.WhereCondition = GetAvailableEmailTemplatesWhere(issue);

            if (TemplateID > 0)
            {
                // Set selected value
                issueTemplate.Value = TemplateID;
            }

            if ((TemplateID <= 0) && (issue != null) && (issue.IssueTemplateID != TemplateID))
            {
                // Change selected value
                issueTemplate.Value = TemplateID = issue.IssueTemplateID;
                issueTemplate.Reload(false);
            }

            // Prevent selecting none value in campaign selector if there is no campaign
            if (mAreCampaignsAvailable && CampaignInfoProvider.GetCampaigns().OnSite(SiteContext.CurrentSiteID).Count == 0)
            {
                radUTMCampaignExisting.Checked = false;
                radUTMCampaignExisting.Enabled = false;
                selectorUTMCampaign.Enabled    = false;
                radUTMCampaignNew.Checked      = true;
                mUTMCampaignTextBox.Enabled    = true;
            }

            // Initialize inputs and content controls
            if (!RequestHelper.IsPostBack())
            {
                txtSenderName.Text     = issue != null ? issue.IssueSenderName : Newsletter.NewsletterSenderName;
                txtSenderEmail.Text    = issue != null ? issue.IssueSenderEmail : Newsletter.NewsletterSenderEmail;
                txtIssueUTMSource.Text = issue != null ? issue.IssueUTMSource : string.Empty;
                txtPreheader.Text      = issue != null ? issue.IssuePreheader : string.Empty;

                if (issue != null)
                {
                    if (mAreCampaignsAvailable && (CampaignInfoProvider.GetCampaignByUTMCode(issue.IssueUTMCampaign, SiteContext.CurrentSiteName) != null))
                    {
                        selectorUTMCampaign.Value = issue.IssueUTMCampaign;
                        selectorUTMCampaign.Reload(false);
                        selectorUTMCampaign.Enabled = true;

                        radUTMCampaignExisting.Checked = true;
                        radUTMCampaignNew.Checked      = false;
                        mUTMCampaignTextBox.Enabled    = false;
                    }
                    else
                    {
                        mUTMCampaignTextBox.Text    = issue.IssueUTMCampaign;
                        mUTMCampaignTextBox.Enabled = true;

                        radUTMCampaignExisting.Checked = false;
                        radUTMCampaignNew.Checked      = true;
                        selectorUTMCampaign.Enabled    = false;
                    }
                }
            }
            else
            {
                if (issue != null && !pnlUTMParameters.Visible)
                {
                    if (string.IsNullOrEmpty(txtIssueUTMSource.Text.Trim()))
                    {
                        txtIssueUTMSource.Text = Normalize(Newsletter.NewsletterName + "_" + txtSubject.Text.Trim());
                    }

                    if (string.IsNullOrEmpty(mUTMCampaignTextBox.Text.Trim()))
                    {
                        mUTMCampaignTextBox.Text = Newsletter.NewsletterName.ToLower(CultureInfo.CurrentCulture);
                    }
                }
            }

            mUTMCampaignTextBox.Attributes["placeholder"] = Newsletter.NewsletterName.ToLower(CultureInfo.CurrentCulture);
        }

        txtIssueUTMMedium.Text   = DEFAULT_UTM_MEDIUM;
        btnSubmit.Enabled        = Enabled;
        txtDisplayName.Enabled   = Enabled && IsDisplayNameFieldEnabled(issue);
        txtPreheader.Enabled     = Enabled;
        chkIssueUseUTM.Enabled   = pnlIssueUTMCampaign.Enabled = pnlIssueUTMMedium.Enabled = pnlIssueUTMSource.Enabled = Enabled;
        txtSubject.Enabled       = txtSenderEmail.Enabled = txtSenderName.Enabled = issueTemplate.Enabled = Enabled;
        pnlUTMParameters.Visible = chkIssueUseUTM.Checked;

        InitTooltips(isABTest);
    }
Exemple #21
0
    protected override void OnPreInit(EventArgs e)
    {
        // Checks all permissions for web analytics
        CMSWebAnalyticsPage.CheckAllPermissions();

        string       campaignName = QueryHelper.GetString("campaignName", String.Empty);
        int          campaignID   = QueryHelper.GetInteger("campaignID", 0);
        CampaignInfo ci           = null;

        if (campaignName != String.Empty)
        {
            // Try to check dialog mode
            ci = CampaignInfoProvider.GetCampaignInfo(campaignName, CMSContext.CurrentSiteName);
        }

        if ((campaignName != String.Empty) && (ci == null))
        {
            // Set warning text
            infoText = String.Format(GetString("campaign.editedobjectnotexits"), campaignName);

            // Create campaign info based on campaign name
            ci = new CampaignInfo();
            ci.CampaignDisplayName = campaignName;
            ci.CampaignName        = campaignName;
        }

        if (campaignID != 0)
        {
            ci = CampaignInfoProvider.GetCampaignInfo(campaignID);
        }

        // Validate SiteID for non administrators
        if ((ci != null) && (!CMSContext.CurrentUser.IsGlobalAdministrator))
        {
            if (ci.CampaignSiteID != CMSContext.CurrentSiteID)
            {
                RedirectToAccessDenied(GetString("cmsmessages.accessdenied"));
            }
        }

        modalDialog = QueryHelper.GetBoolean("modalDialog", false);
        if (modalDialog)
        {
            MasterPageFile = "~/CMSMasterPages/UI/Dialogs/ModalDialogPage.master";
            if (ci != null)
            {
                this.CurrentMaster.Title.TitleText  = GetString("analytics.campaign");
                this.CurrentMaster.Title.TitleImage = GetImageUrl("Objects/Analytics_Campaign/object.png");
            }
            else
            {
                this.CurrentMaster.Title.TitleText  = GetString("campaign.campaign.new");
                this.CurrentMaster.Title.TitleImage = GetImageUrl("Objects/Analytics_Campaign/new.png");
            }
            SetDialogButtons();
        }

        if (ci != null)
        {
            EditedObject = ci;
        }

        CurrentMaster.Title.HelpTopicName = "campaign_general";
        CurrentMaster.Title.HelpName      = "helpTopic";

        base.OnPreInit(e);
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        reportHeaderActions.ActionPerformed += HeaderActions_ActionPerformed;
        ucDisplayReport = this.LoadUserControl("~/CMSModules/Reporting/Controls/DisplayReport.ascx") as IDisplayReport;
        pnlContent.Controls.Add((Control)ucDisplayReport);

        CurrentMaster.PanelContent.CssClass = string.Empty;
        UIHelper.AllowUpdateProgress        = false;
        ScriptHelper.RegisterDialogScript(Page);

        // Campaign Info
        int campaignID = QueryHelper.GetInteger("campaignID", 0);

        campaignInfo = CampaignInfoProvider.GetCampaignInfo(campaignID);
        if (campaignInfo == null)
        {
            return;
        }

        // Validate SiteID for non administrators
        if (!CMSContext.CurrentUser.IsGlobalAdministrator)
        {
            if (campaignInfo.CampaignSiteID != CMSContext.CurrentSiteID)
            {
                RedirectToAccessDenied(GetString("cmsmessages.accessdenied"));
            }
        }

        campaignName = campaignInfo.CampaignName;

        ScriptHelper.RegisterPrintDialogScript(this);
        ucGraphType.ProcessChartSelectors(false);

        // Enables/disables radio buttons (based on UI elements)
        CurrentUserInfo ui            = CMSContext.CurrentUser;
        bool            checkedButton = false;

        if (!RequestHelper.IsPostBack())
        {
            if (!ui.IsGlobalAdministrator)
            {
                rbCount.Enabled           = ui.IsAuthorizedPerUIElement("cms.WebAnalytics", "CampaignConversionCount");
                rbDetail.Enabled          = ui.IsAuthorizedPerUIElement("cms.WebAnalytics", "CampaignDetails");
                rbGoalCount.Enabled       = ui.IsAuthorizedPerUIElement("cms.WebAnalytics", "goals.numberofconversions");
                rbGoalValue.Enabled       = ui.IsAuthorizedPerUIElement("cms.WebAnalytics", "goals.totalvalueofconversions");
                rbGoalView.Enabled        = ui.IsAuthorizedPerUIElement("cms.WebAnalytics", "goals.numberofvisitors");
                rbValue.Enabled           = ui.IsAuthorizedPerUIElement("cms.WebAnalytics", "campaignsConversionValue");
                rbValuePerVisitor.Enabled = ui.IsAuthorizedPerUIElement("cms.WebAnalytics", "valuepervisitor");
                rbViews.Enabled           = ui.IsAuthorizedPerUIElement("cms.WebAnalytics", "campaign.overview");

                // Check first enabled button
                foreach (Control ctrl in pnlRadios.Controls)
                {
                    RadioButton rb = ctrl as RadioButton;
                    if (rb != null)
                    {
                        if (rb.Enabled)
                        {
                            rb.Checked    = true;
                            checkedButton = true;
                            break;
                        }
                    }
                }

                // No report avaible -> redirect to access denied
                if (!checkedButton)
                {
                    RedirectToAccessDenied(GetString("campaign.noreportavaible"));
                }
            }
            else
            {
                // Admin check first radio button
                rbViews.Checked = true;
            }
        }
    }