/// <summary> /// Loads summary box in the right upper corner. /// </summary> private void LoadSummaryBox() { var selectionParameters = new NodeSelectionParameters { AliasPath = ABTest.ABTestOriginalPage, CultureCode = ABTest.ABTestCulture, SiteName = SiteContext.CurrentSiteName, SelectOnlyPublished = true, CombineWithDefaultCulture = false }; var node = new TreeProvider().SelectSingleNode(selectionParameters); var shortUrl = ShortenUrl(ABTest.ABTestOriginalPage); var encodedShortUrl = HTMLHelper.HTMLEncode(shortUrl); if (node == null) { lblTest.Text = encodedShortUrl; lblTest.Visible = true; } else { lnkTest.HRef = DocumentURLProvider.GetAbsoluteLiveSiteURL(node); lnkTest.InnerText = encodedShortUrl; lnkTest.Target = "_blank"; lnkTest.Visible = true; } // If Visitors conversion methodology selected, use "Visitors" instead of "Visits" if (drpCountingMethodology.SelectedValue == ABTestConstants.ABSESSIONCONVERSION_FIRST) { lblVisits.ResourceString = "abtesting.overview.summary.visitors"; } lblStatus.Text = ABTestStatusEvaluator.GetFormattedStatus(TestStatus).ToString(); int visits = VariantsStatisticsData.Sum(d => d.Value.Visits); int conversions = VariantsStatisticsData.Sum(d => d.Value.ConversionsCount); lblTotalVisitors.Text = String.Format("{0:N0}", visits); lblTotalConversions.Text = String.Format("{0:N0}", conversions); if (TestStatus == ABTestStatusEnum.Finished) { txtDuration.ResourceString = "abtesting.daysrun"; } DateTime start = ABTest.ABTestOpenFrom; DateTime finish = GetFinishDate(); lblDuration.Text = (finish - start).Days.ToString(); }
private void GeneratePageVisitActivity(TreeNode document, ContactInfo contact) { var nameBuilder = new ActivityTitleBuilder(); var hashService = Service.Resolve <IActivityUrlHashService>(); var url = DocumentURLProvider.GetAbsoluteLiveSiteURL(document); var activity = new ActivityInfo { ActivityContactID = contact.ContactID, ActivitySiteID = currentSite.SiteID, ActivityTitle = nameBuilder.CreateTitle(PredefinedActivityType.PAGE_VISIT, document.GetDocumentName()), ActivityType = PredefinedActivityType.PAGE_VISIT, ActivityURL = url, ActivityURLHash = hashService.GetActivityUrlHash(url) }; ActivityInfoProvider.SetActivityInfo(activity); }
private void CreateFormSubmission(TreeNode document, string formName, ContactInfo contact) { var form = BizFormInfoProvider.GetBizFormInfo(formName, currentSite.SiteID); var classInfo = DataClassInfoProvider.GetDataClassInfo(form.FormClassID); var formItem = new BizFormItem(classInfo.ClassName); var url = DocumentURLProvider.GetAbsoluteLiveSiteURL(document); CopyDataFromContactToForm(contact, classInfo, formItem); SetFormSpecificData(formName, contact, formItem); formItem.Insert(); var activity = new ActivityInfo { ActivityContactID = contact.ContactID, ActivityItemID = form.FormID, ActivityItemDetailID = formItem.ItemID, ActivitySiteID = currentSite.SiteID, ActivityTitle = nameBuilder.CreateTitle(PredefinedActivityType.BIZFORM_SUBMIT, form.FormDisplayName), ActivityType = PredefinedActivityType.BIZFORM_SUBMIT, ActivityURL = url }; ActivityInfoProvider.SetActivityInfo(activity); }
private void ReloadData() { if (Node != null) { // Hide parts which are not relevant to content only nodes if (ShowContentOnlyProperties) { pnlUIAdvanced.Visible = false; pnlUICache.Visible = false; pnlUIDesign.Visible = false; plcPermanent.Visible = false; pnlUIOnlineMarketing.Visible = false; } // Log activities checkboxes if (!RequestHelper.IsPostBack()) { bool?logVisit = Node.DocumentLogVisitActivity; chkLogPageVisit.Checked = (logVisit == true); if (Node.NodeParentID > 0) // Init "inherit" option for child nodes (and hide option for root) { chkPageVisitInherit.Checked = (logVisit == null); if (logVisit == null) { chkPageVisitInherit_CheckedChanged(null, EventArgs.Empty); } } chkLogPageVisit.Enabled = !chkPageVisitInherit.Checked; } // Check modify permission canEdit = (MembershipContext.AuthenticatedUser.IsAuthorizedPerDocument(Node, NodePermissionsEnum.Modify) != AuthorizationResultEnum.Denied); // Show document group owner selector if (ModuleEntryManager.IsModuleLoaded(ModuleName.COMMUNITY) && canEditOwner && LicenseHelper.CheckFeature(RequestContext.CurrentDomain, FeatureEnum.Groups)) { plcOwnerGroup.Controls.Clear(); // Initialize panel content Panel rowWrapperPanel = new Panel(); rowWrapperPanel.CssClass = "form-group"; Panel lblPanel = new Panel(); lblPanel.CssClass = "editing-form-label-cell"; Panel ctrlPanel = new Panel(); ctrlPanel.CssClass = "editing-form-value-cell"; // Initialize caption LocalizedLabel lblOwnerGroup = new LocalizedLabel(); lblOwnerGroup.EnableViewState = false; lblOwnerGroup.ResourceString = "community.group.documentowner"; lblOwnerGroup.ID = "lblOwnerGroup"; lblOwnerGroup.CssClass = "control-label"; lblPanel.Controls.Add(lblOwnerGroup); // Initialize selector fcDocumentGroupSelector = (FormEngineUserControl)Page.LoadUserControl("~/CMSAdminControls/UI/Selectors/DocumentGroupSelector.ascx"); fcDocumentGroupSelector.ID = "fcDocumentGroupSelector"; fcDocumentGroupSelector.StopProcessing = pnlUIOwner.IsHidden; ctrlPanel.Controls.Add(fcDocumentGroupSelector); fcDocumentGroupSelector.Value = ValidationHelper.GetInteger(Node.GetValue("NodeGroupID"), 0); fcDocumentGroupSelector.SetValue("siteid", SiteContext.CurrentSiteID); fcDocumentGroupSelector.SetValue("nodeid", Node.NodeID); // Add controls to containers rowWrapperPanel.Controls.Add(lblPanel); rowWrapperPanel.Controls.Add(ctrlPanel); plcOwnerGroup.Controls.Add(rowWrapperPanel); plcOwnerGroup.Visible = true; } // Show owner editing only when authorized to change the permissions if (canEditOwner) { lblOwner.Visible = false; usrOwner.Visible = true; usrOwner.SetValue("AdditionalUsers", new[] { Node.NodeOwner }); } else { usrOwner.Visible = false; } if (!RequestHelper.IsPostBack()) { if (canEditOwner) { usrOwner.Value = Node.GetValue("NodeOwner"); } } // Load the data lblName.Text = HttpUtility.HtmlEncode(Node.GetDocumentName()); lblNamePath.Text = HttpUtility.HtmlEncode(Convert.ToString(Node.GetValue("DocumentNamePath"))); lblAliasPath.Text = Convert.ToString(Node.NodeAliasPath); string typeName = DataClassInfoProvider.GetDataClassInfo(Node.NodeClassName).ClassDisplayName; lblType.Text = HttpUtility.HtmlEncode(ResHelper.LocalizeString(typeName)); lblNodeID.Text = Convert.ToString(Node.NodeID); // Modifier SetUserLabel(lblLastModifiedBy, "DocumentModifiedByUserId"); // Get modified time TimeZoneInfo usedTimeZone; DateTime lastModified = ValidationHelper.GetDateTime(Node.GetValue("DocumentModifiedWhen"), DateTimeHelper.ZERO_TIME); lblLastModified.Text = TimeZoneHelper.GetCurrentTimeZoneDateTimeString(lastModified, MembershipContext.AuthenticatedUser, SiteContext.CurrentSite, out usedTimeZone); ScriptHelper.AppendTooltip(lblLastModified, TimeZoneHelper.GetUTCLongStringOffset(usedTimeZone), "help"); if (!canEditOwner) { // Owner SetUserLabel(lblOwner, "NodeOwner"); } // Creator SetUserLabel(lblCreatedBy, "DocumentCreatedByUserId"); DateTime createdWhen = ValidationHelper.GetDateTime(Node.GetValue("DocumentCreatedWhen"), DateTimeHelper.ZERO_TIME); lblCreated.Text = TimeZoneHelper.GetCurrentTimeZoneDateTimeString(createdWhen, MembershipContext.AuthenticatedUser, SiteContext.CurrentSite, out usedTimeZone); ScriptHelper.AppendTooltip(lblCreated, TimeZoneHelper.GetUTCLongStringOffset(usedTimeZone), "help"); // URL if (plcPermanent.Visible) { string permanentUrl = DocumentURLProvider.GetPermanentDocUrl(Node.NodeGUID, Node.NodeAlias, Node.NodeSiteName, extension: ".aspx"); permanentUrl = URLHelper.ResolveUrl(permanentUrl); lnkPermanentURL.HRef = permanentUrl; lnkPermanentURL.InnerText = permanentUrl; } string liveUrl = DocumentURLProvider.GetAbsoluteLiveSiteURL(Node); lnkLiveURL.HRef = liveUrl; lnkLiveURL.InnerText = liveUrl; bool isRoot = Node.IsRoot(); // Hide preview URL for root node if (!isRoot) { plcPreview.Visible = true; btnResetPreviewGuid.ToolTip = GetString("GeneralProperties.InvalidatePreviewURL"); btnResetPreviewGuid.Click += btnResetPreviewGuid_Click; btnResetPreviewGuid.OnClientClick = "if(!confirm(" + ScriptHelper.GetLocalizedString("GeneralProperties.GeneratePreviewURLConf") + ")){return false;}"; InitPreviewUrl(); } lblGUID.Text = Convert.ToString(Node.NodeGUID); lblDocGUID.Text = (Node.DocumentGUID == Guid.Empty) ? ResHelper.Dash : Node.DocumentGUID.ToString(); lblDocID.Text = Convert.ToString(Node.DocumentID); // Culture CultureInfo ci = CultureInfoProvider.GetCultureInfo(Node.DocumentCulture); lblCulture.Text = ((ci != null) ? ResHelper.LocalizeString(ci.CultureName) : Node.DocumentCulture); if (Node.IsPublished) { lblPublished.Text = GetString("General.Yes"); lblPublished.CssClass += " DocumentPublishedYes"; } else { lblPublished.CssClass += " DocumentPublishedNo"; lblPublished.Text = GetString("General.No"); } // Load page info for inherited cache settings currentPage = PageInfoProvider.GetPageInfo(Node.NodeSiteName, Node.NodeAliasPath, Node.DocumentCulture, null, Node.NodeID, false); if (!RequestHelper.IsPostBack()) { // Init radio buttons for cache settings if (isRoot) { radInherit.Visible = false; radFSInherit.Visible = false; chkCssStyle.Visible = false; } else { // Show what is inherited value radInherit.Text = GetString("GeneralProperties.radInherit") + " (" + GetInheritedCacheCaption("NodeCacheMinutes") + ")"; radFSInherit.Text = GetString("GeneralProperties.radInherit") + " (" + GetInheritedCacheCaption("NodeAllowCacheInFileSystem") + ")"; } string cacheMinutes = ""; switch (Node.NodeCacheMinutes) { case null: // Cache setting is inherited { radNo.Checked = true; radYes.Checked = false; radInherit.Checked = false; if (!isRoot) { radInherit.Checked = true; radNo.Checked = false; if ((currentPage != null) && (currentPage.NodeCacheMinutes > 0)) { cacheMinutes = currentPage.NodeCacheMinutes.ToString(); } } } break; case 0: // Cache is off radNo.Checked = true; radYes.Checked = false; radInherit.Checked = false; break; default: // Cache is enabled radNo.Checked = false; radYes.Checked = true; radInherit.Checked = false; cacheMinutes = Node.NodeCacheMinutes.ToString(); break; } // Set secured radio buttons switch (Node.NodeAllowCacheInFileSystem) { case false: radFSNo.Checked = true; break; case true: radFSYes.Checked = true; break; default: if (!isRoot) { radFSInherit.Checked = true; } else { radFSYes.Checked = true; } break; } txtCacheMinutes.Text = cacheMinutes; if (!radYes.Checked) { txtCacheMinutes.Enabled = false; } var defaultStylesheet = GetDefaultStylesheet(); if (Node.DocumentInheritsStylesheet && !isRoot) { chkCssStyle.Checked = true; // Get stylesheet from the parent node string value = GetStylesheetParentValue(); ctrlSiteSelectStyleSheet.Value = String.IsNullOrEmpty(value) ? defaultStylesheet : value; } else { // Get stylesheet from the current node var stylesheetId = Node.DocumentStylesheetID; ctrlSiteSelectStyleSheet.Value = (stylesheetId == 0) ? defaultStylesheet : stylesheetId.ToString(); } } // Disable new button if document inherit stylesheet bool disableCssSelector = (!isRoot && chkCssStyle.Checked); ctrlSiteSelectStyleSheet.Enabled = !disableCssSelector; ctrlSiteSelectStyleSheet.ButtonNewEnabled = !disableCssSelector; // Initialize Rating control RefreshCntRatingResult(); double rating = 0.0f; if (Node.DocumentRatings > 0) { rating = Node.DocumentRatingValue / Node.DocumentRatings; } ratingControl.MaxRating = 10; ratingControl.CurrentRating = rating; ratingControl.Visible = true; ratingControl.Enabled = false; // Initialize Reset button for rating btnResetRating.OnClientClick = "if (!confirm(" + ScriptHelper.GetString(GetString("GeneralProperties.ResetRatingConfirmation")) + ")) return false;"; object[] param = new object[1]; param[0] = Node.DocumentID; plcAdHocForums.Visible = hasAdHocForum; plcAdHocBoards.Visible = hasAdHocBoard; if (!canEdit) { // Disable form editing DisableFormEditing(); } } else { btnResetRating.Visible = false; } }
private IEnumerable <CampaignConversionData> PrepareCafeSamplePromotionConversions() { var pageCoffeeSamples = CampaignDataGeneratorHelpers.GetDocument(PAGE_PATH_COFFEE_SAMPLES); var formCoffeeSampleList = BizFormInfoProvider.GetBizFormInfo(COFFEE_SAMPLE_LIST_FORM_CODE_NAME, mSite.SiteID); var liveUrl = DocumentURLProvider.GetAbsoluteLiveSiteURL(pageCoffeeSamples); return(new List <CampaignConversionData> { /* Campaign conversions. */ new CampaignConversionData { ConversionName = "coffee_samples", ConversionDisplayName = pageCoffeeSamples.DocumentName, ConversionActivityType = PredefinedActivityType.PAGE_VISIT, ConversionItemID = null, ConversionOrder = 1, ConversionIsFunnelStep = false, ConversionUrl = liveUrl }, new CampaignConversionData { ConversionName = "coffee_sample_list", ConversionDisplayName = CONVERSION_FORMSUBMISSION_COFFEE_SAMPLE_LIST, ConversionActivityType = PredefinedActivityType.BIZFORM_SUBMIT, ConversionItemID = formCoffeeSampleList.FormID, ConversionOrder = 2, ConversionIsFunnelStep = false }, /* Campaign journey steps. */ new CampaignConversionData { ConversionName = "coffee_samples_1", ConversionDisplayName = pageCoffeeSamples.DocumentName, ConversionActivityType = PredefinedActivityType.PAGE_VISIT, ConversionItemID = null, ConversionOrder = 1, ConversionIsFunnelStep = true, ConversionUrl = liveUrl }, new CampaignConversionData { ConversionName = "coffee_sample_list_1", ConversionDisplayName = CONVERSION_FORMSUBMISSION_COFFEE_SAMPLE_LIST, ConversionActivityType = PredefinedActivityType.BIZFORM_SUBMIT, ConversionItemID = formCoffeeSampleList.FormID, ConversionOrder = 2, ConversionIsFunnelStep = true }, new CampaignConversionData { ConversionName = "purchase", ConversionDisplayName = CONVERSION_PURCHASE, ConversionActivityType = PredefinedActivityType.PURCHASE, ConversionItemID = 0, ConversionOrder = 3, ConversionIsFunnelStep = true } }); }
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); }
/// <summary> /// Handles Unigrid's OnExternalDataBound event. /// </summary> protected object gridElem_OnExternalDataBound(object sender, string sourceName, object parameter) { switch (sourceName.ToLowerInvariant()) { case "status": { if (Enum.TryParse(parameter.ToString(), out ABTestStatusEnum status)) { return(ABTestStatusEvaluator.GetFormattedStatus(status)); } break; } case "page": { var dataRowView = parameter as DataRowView; if (dataRowView == null) { return(String.Empty); } var abTestInfo = new ABTestInfo(dataRowView.Row); var selectionParameters = new NodeSelectionParameters { AliasPath = abTestInfo.ABTestOriginalPage, CultureCode = abTestInfo.ABTestCulture, SiteName = SiteContext.CurrentSiteName, SelectOnlyPublished = true, CombineWithDefaultCulture = !SiteContext.CurrentSite.SiteIsContentOnly }; var node = new TreeProvider().SelectSingleNode(selectionParameters); var encodedTestPage = HTMLHelper.HTMLEncode(abTestInfo.ABTestOriginalPage); return(node == null ? (object)encodedTestPage : new HyperLink { NavigateUrl = DocumentURLProvider.GetAbsoluteLiveSiteURL(node), Text = encodedTestPage, Target = "_blank" }); } case "visitors": case "conversions": { string statisticsCodeName = (sourceName.ToLowerInvariant() == "visitors" ? "abvisitfirst" : "absessionconversionfirst"); var dataRowView = parameter as DataRowView; if (dataRowView == null) { return(0); } var abTestInfo = new ABTestInfo(dataRowView.Row); return(ValidationHelper.GetInteger(HitsInfoProvider.GetAllHitsInfo(SiteContext.CurrentSiteID, HitsIntervalEnum.Year, statisticsCodeName + ";" + abTestInfo.ABTestName + ";%", "SUM(HitsCount)", abTestInfo.ABTestCulture).Tables[0].Rows[0][0], 0)); } case "delete": CMSGridActionButton btn = (CMSGridActionButton)sender; btn.Enabled = IsAuthorizedToManage; if (!IsAuthorizedToManage) { btn.ToolTip = permissionsRequiredTooltip; } break; } return(null); }