/// <summary> /// External data binding handler. /// </summary> protected object gridElem_OnExternalDataBound(object sender, string sourceName, object parameter) { // Prepare variables int nodeId = 0; string culture = string.Empty; DataRowView data = null; sourceName = sourceName.ToLowerCSafe(); SiteInfo site = null; switch (sourceName) { // Edit button case EXTERNALSOURCE_EDIT: if (sender is ImageButton) { ImageButton editButton = (ImageButton)sender; data = UniGridFunctions.GetDataRowView(editButton.Parent as DataControlFieldCell); site = GetSiteFromRow(data); nodeId = ValidationHelper.GetInteger(data[SOURCE_NODEID], 0); culture = ValidationHelper.GetString(data[SOURCE_DOCUMENTCULTURE], string.Empty); string type = ValidationHelper.GetString(DataHelper.GetDataRowViewValue(data, SOURCE_TYPE), string.Empty); // Check permissions if ((site.Status != SiteStatusEnum.Running) || (!CMSMyDeskPage.IsUserAuthorizedPerContent(site.SiteName) || ((ListingType == ListingTypeEnum.All) && (type == LISTINGTYPE_RECYCLEBIN)))) { editButton.ImageUrl = GetImageUrl("Design/Controls/UniGrid/Actions/Editdisabled.png"); editButton.OnClientClick = "return false"; editButton.Style.Add(HtmlTextWriterStyle.Cursor, "default"); } else { editButton.OnClientClick = "return SelectItem(" + nodeId + ", '" + culture + "','" + ResolveSiteUrl(site) + "');"; } return(editButton); } return(sender); // Preview button case EXTERNALSOURCE_PREVIEW: if (sender is ImageButton) { ImageButton previewButton = (ImageButton)sender; data = UniGridFunctions.GetDataRowView(previewButton.Parent as DataControlFieldCell); site = GetSiteFromRow(data); string type = ValidationHelper.GetString(DataHelper.GetDataRowViewValue(data, SOURCE_TYPE), string.Empty); if ((site.Status != SiteStatusEnum.Running) || ((ListingType == ListingTypeEnum.All) && (type == LISTINGTYPE_RECYCLEBIN))) { previewButton.ImageUrl = GetImageUrl("Design/Controls/UniGrid/Actions/Viewdisabled.png"); previewButton.OnClientClick = "return false"; previewButton.Style.Add(HtmlTextWriterStyle.Cursor, "default"); } else { nodeId = ValidationHelper.GetInteger(data[SOURCE_NODEID], 0); culture = ValidationHelper.GetString(data[SOURCE_DOCUMENTCULTURE], string.Empty); string nodeAliasPath = ValidationHelper.GetString(data[SOURCE_NODEALIASPATH], string.Empty); // Generate preview URL string url = CMSContext.GetUrl(nodeAliasPath, null, site.SiteName); url = URLHelper.AddParameterToUrl(url, "viewmode", "2"); url = URLHelper.AddParameterToUrl(url, URLHelper.LanguageParameterName, culture); previewButton.OnClientClick = "window.open('" + URLHelper.ResolveUrl(url) + "','LiveSite');return false;"; } return(previewButton); } return(sender); // Document name column case EXTERNALSOURCE_DOCUMENTNAME: data = (DataRowView)parameter; string name = ValidationHelper.GetString(data[SOURCE_DOCUMENTNAME], string.Empty); nodeId = ValidationHelper.GetInteger(data[SOURCE_NODEID], 0); culture = ValidationHelper.GetString(data[SOURCE_DOCUMENTCULTURE], string.Empty); string className = ValidationHelper.GetString(data[SOURCE_CLASSNAME], string.Empty); site = GetSiteFromRow(data); if (name == string.Empty) { name = GetString("general.notspecified"); } // Add document type icon string result = string.Empty; switch (ListingType) { case ListingTypeEnum.DocTypeDocuments: break; default: result = "<img src=\"" + UIHelper.GetDocumentTypeIconUrl(Parent.Page, className, String.Empty, true) + "\" class=\"UnigridActionButton\" />"; break; } result += "<span style=\"vertical-align: bottom;\">" + HTMLHelper.HTMLEncode(TextHelper.LimitLength(name, 50)) + "</span>"; if (ListingType != ListingTypeEnum.All) { bool isLink = (data.Row.Table.Columns.Contains(SOURCE_NODELINKEDNODEID) && (data[SOURCE_NODELINKEDNODEID] != DBNull.Value)); if (isLink) { // Add link icon result += UIHelper.GetDocumentMarkImage(Parent.Page, DocumentMarkEnum.Link); } } return(result); // Class name column case EXTERNALSOURCE_CLASSDISPLAYNAME: string displayName = ValidationHelper.GetString(parameter, string.Empty); if (sourceName.ToLowerCSafe() == EXTERNALSOURCE_CLASSDISPLAYNAMETOOLTIP) { displayName = TextHelper.LimitLength(displayName, 50); } if (displayName == string.Empty) { displayName = "-"; } return(HTMLHelper.HTMLEncode(ResHelper.LocalizeString(displayName))); case EXTERNALSOURCE_DOCUMENTNAMETOOLTIP: data = (DataRowView)parameter; return(UniGridFunctions.DocumentNameTooltip(data)); case EXTERNALSOURCE_STEPDISPLAYNAME: // Step display name string stepName = ValidationHelper.GetString(parameter, string.Empty); if (stepName == string.Empty) { stepName = "-"; } return(HTMLHelper.HTMLEncode(ResHelper.LocalizeString(stepName))); case EXTERNALSOURCE_STEPNAME: // Step display name from ID int stepId = ValidationHelper.GetInteger(parameter, 0); if (stepId > 0) { WorkflowStepInfo wsi = WorkflowStepInfoProvider.GetWorkflowStepInfo(stepId); if (wsi != null) { return(HTMLHelper.HTMLEncode(ResHelper.LocalizeString(wsi.StepDisplayName))); } } return("-"); case EXTERNALSOURCE_CULTURE: data = (DataRowView)parameter; culture = ValidationHelper.GetString(data[SOURCE_DOCUMENTCULTURE], string.Empty); // Add icon if (culture != String.Empty) { return(UniGridFunctions.DocumentCultureFlag(data, Page)); } return("-"); // Version column case EXTERNALSOURCE_VERSION: if (parameter == DBNull.Value) { parameter = "-"; } parameter = HTMLHelper.HTMLEncode(parameter.ToString()); return(parameter); // Site name column case EXTERNALSOURCE_SITENAME: string siteName = ValidationHelper.GetString(parameter, string.Empty); siteInfo = SiteInfoProvider.GetSiteInfo(siteName); return(HTMLHelper.HTMLEncode(siteInfo.DisplayName)); case EXTERNALSOURCE_SITEID: int siteId = ValidationHelper.GetInteger(parameter, 0); siteInfo = SiteInfoProvider.GetSiteInfo(siteId); return(HTMLHelper.HTMLEncode(siteInfo.DisplayName)); // Document timestamp column case EXTERNALSOURCE_MODIFIEDWHEN: case EXTERNALSOURCE_MODIFIEDWHENTOOLTIP: if (string.IsNullOrEmpty(parameter.ToString())) { return(string.Empty); } else { if (currentSiteInfo == null) { currentSiteInfo = CMSContext.CurrentSite; } bool displayGMT = (sourceName == EXTERNALSOURCE_MODIFIEDWHENTOOLTIP); DateTime time = ValidationHelper.GetDateTime(parameter, DateTimeHelper.ZERO_TIME); return(TimeZoneHelper.ConvertToUserTimeZone(time, displayGMT, currentUserInfo, currentSiteInfo)); } } return(parameter); }
/// <summary> /// External data binding handler. /// </summary> private object Control_OnExternalDataBound(object sender, string sourceName, object parameter) { bool running; switch (sourceName.ToLowerCSafe()) { case "openlivesite": // Open live site action running = ValidationHelper.GetString(((DataRowView)((GridViewRow)parameter).DataItem).Row["sitestatus"], "").ToUpperCSafe() == SiteInfoProvider.SiteStatusToString(SiteStatusEnum.Running); if (!running) { var button = ((CMSGridActionButton)sender); button.Enabled = false; } break; case "sitestatus": // Colorize site status { DataRowView drv = (DataRowView)parameter; running = SiteInfoProvider.SiteStatusToEnum(ValidationHelper.GetString(drv["SiteStatus"], "")) == SiteStatusEnum.Running; bool offline = ValidationHelper.GetBoolean(drv["SiteIsOffline"], false); if (running) { if (offline) { return(UniGridFunctions.SpanMsg(ResHelper.GetString("Site_List.Offline"), "SiteStatusOffline")); } else { return(UniGridFunctions.SpanMsg(ResHelper.GetString("Site_List.Running"), "SiteStatusRunning")); } } else { return(UniGridFunctions.SpanMsg(ResHelper.GetString("Site_List.Stopped"), "SiteStatusStopped")); } } case "culture": // Culture with flag { DataRowView drv = (DataRowView)parameter; string siteName = ValidationHelper.GetString(drv["SiteName"], ""); string cultureCode = CultureHelper.GetDefaultCultureCode(siteName); return(UniGridFunctions.DocumentCultureFlag(cultureCode, null, Control.Page)); } case "start": // start action running = ValidationHelper.GetString(((DataRowView)((GridViewRow)parameter).DataItem).Row["sitestatus"], "").ToUpperCSafe() == SiteInfoProvider.SiteStatusToString(SiteStatusEnum.Running); ((CMSGridActionButton)sender).Visible = !running; break; case "stop": // stop action running = ValidationHelper.GetString(((DataRowView)((GridViewRow)parameter).DataItem).Row["sitestatus"], "").ToUpperCSafe() == SiteInfoProvider.SiteStatusToString(SiteStatusEnum.Running); ((CMSGridActionButton)sender).Visible = running; break; } return(parameter); }
protected object gridLanguages_OnExternalDataBound(object sender, string sourceName, object parameter) { TranslationStatusEnum status; DataRowView drv; sourceName = sourceName.ToLowerCSafe(); if (currentUserInfo == null) { currentUserInfo = MembershipContext.AuthenticatedUser; } if (currentSiteInfo == null) { currentSiteInfo = SiteContext.CurrentSite; } switch (sourceName) { case "translate": case "action": CMSGridActionButton img = sender as CMSGridActionButton; if (img != null) { if ((sourceName == "translate") && !TranslationEnabled) { img.Visible = false; return(img); } GridViewRow gvr = parameter as GridViewRow; if (gvr != null) { // Get datarowview drv = gvr.DataItem as DataRowView; if ((drv != null) && (drv.Row["TranslationStatus"] != DBNull.Value)) { // Get translation status status = (TranslationStatusEnum)drv.Row["TranslationStatus"]; } else { status = TranslationStatusEnum.NotAvailable; } string culture = (drv != null) ? ValidationHelper.GetString(drv.Row["DocumentCulture"], string.Empty) : string.Empty; // Set appropriate icon if (sourceName == "action") { switch (status) { case TranslationStatusEnum.NotAvailable: img.IconCssClass = "icon-plus"; img.IconStyle = GridIconStyle.Allow; img.ToolTip = GetString("transman.createnewculture"); break; default: img.IconCssClass = "icon-edit"; img.IconStyle = GridIconStyle.Allow; img.ToolTip = GetString("transman.editculture"); break; } // Register redirect script if (RequiresDialog) { if ((sourceName == "action") && (status == TranslationStatusEnum.NotAvailable)) { // New culture version img.OnClientClick = "parent.parent.parent.NewDocumentCulture(" + NodeID + ",'" + culture + "');"; } else { // Existing culture version ScriptHelper.RegisterWOpenerScript(Page); var url = ResolveUrl(DocumentURLProvider.GetUrl(Node)); url = URLHelper.AppendQuery(url, "lang=" + culture); img.OnClientClick = "window.refreshPageOnClose = true; window.reloadPageUrl = " + ScriptHelper.GetString(url) + "; if (wopener.RefreshWOpener) { wopener.RefreshWOpener(window); } CloseDialog();"; } } else { img.OnClientClick = "RedirectItem(" + NodeID + ", '" + culture + "');"; } img.ID = "imgAction"; } else { // Add parameters identifier and hash, encode query string if (LicenseHelper.CheckFeature(RequestContext.CurrentDomain, FeatureEnum.TranslationServices)) { string returnUrl = ApplicationUrlHelper.ResolveDialogUrl("~/CMSModules/Translations/Pages/TranslateDocuments.aspx") + "?targetculture=" + culture + "&dialog=1&nodeid=" + NodeID; returnUrl = URLHelper.AddParameterToUrl(returnUrl, "hash", QueryHelper.GetHash(URLHelper.GetQuery(returnUrl))); img.ToolTip = GetString("transman.translate"); img.OnClientClick = "modalDialog('" + returnUrl + "', 'TranslateDocument', 988, 634); "; } else { img.Visible = false; } break; } } } return(img); case "translationstatus": if (parameter == DBNull.Value) { status = TranslationStatusEnum.NotAvailable; } else { status = (TranslationStatusEnum)parameter; } string statusName = GetString("transman." + status); string statusHtml = "<span class=\"" + status + "\">" + statusName + "</span>"; return(statusHtml); case "documentculturedisplayname": drv = (DataRowView)parameter; // Add icon return(UniGridFunctions.DocumentCultureFlag(drv, Page)); case "documentmodifiedwhen": case "documentmodifiedwhentooltip": if (string.IsNullOrEmpty(parameter.ToString())) { return("-"); } if (sourceName.EqualsCSafe("documentmodifiedwhen", StringComparison.InvariantCultureIgnoreCase)) { DateTime modifiedWhen = ValidationHelper.GetDateTime(parameter, DateTimeHelper.ZERO_TIME); return(TimeZoneHelper.ConvertToUserTimeZone(modifiedWhen, true, currentUserInfo, currentSiteInfo)); } return(TimeZoneHelper.GetUTCLongStringOffset(CurrentUser, currentSiteInfo)); case "documentlastversionnumber": if (string.IsNullOrEmpty(parameter.ToString())) { return("-"); } break; case "documentname": if (string.IsNullOrEmpty(parameter.ToString())) { parameter = "-"; } return(HTMLHelper.HTMLEncode(parameter.ToString())); } return(parameter); }
protected object gridLanguages_OnExternalDataBound(object sender, string sourceName, object parameter) { TranslationStatusEnum status = TranslationStatusEnum.NotAvailable; DataRowView drv = null; sourceName = sourceName.ToLowerCSafe(); if (currentUserInfo == null) { currentUserInfo = CMSContext.CurrentUser; } if (currentSiteInfo == null) { currentSiteInfo = CMSContext.CurrentSite; } switch (sourceName) { case "translate": case "action": ImageButton img = sender as CMSImageButton; if (img != null) { if ((sourceName == "translate") && (!CMS.TranslationServices.TranslationServiceHelper.AnyServiceAvailable(CurrentSiteName) || !CMS.TranslationServices.TranslationServiceHelper.IsTranslationAllowed(CurrentSiteName))) { img.Visible = false; return(img); } GridViewRow gvr = parameter as GridViewRow; if (gvr != null) { // Get datarowview drv = gvr.DataItem as DataRowView; if ((drv != null) && (drv.Row["TranslationStatus"] != DBNull.Value)) { // Get translation status status = (TranslationStatusEnum)drv.Row["TranslationStatus"]; } else { status = TranslationStatusEnum.NotAvailable; } string culture = (drv != null) ? ValidationHelper.GetString(drv.Row["DocumentCulture"], string.Empty) : string.Empty; // Set appropriate icon if (sourceName == "action") { switch (status) { case TranslationStatusEnum.NotAvailable: img.ImageUrl = GetImageUrl("CMSModules/CMS_Content/Properties/addculture.png"); img.ToolTip = GetString("transman.createnewculture"); break; default: img.ImageUrl = GetImageUrl("CMSModules/CMS_Content/Properties/editculture.png"); img.ToolTip = GetString("transman.editculture"); break; } // Register redirect script if (RequiresDialog) { if ((sourceName == "action") && (status == TranslationStatusEnum.NotAvailable)) { // New culture version img.OnClientClick = "parent.parent.parent.NewDocumentCulture(" + NodeID + ",'" + culture + "');"; } else { // Existing culture version ScriptHelper.RegisterWOpenerScript(Page); string url = ResolveUrl(CMSContext.GetUrl(Node.NodeAliasPath, Node.DocumentUrlPath, currentSiteInfo.SiteName)); url = URLHelper.AppendQuery(url, "lang=" + culture); img.OnClientClick = "window.refreshPageOnClose = true; window.reloadPageUrl = " + ScriptHelper.GetString(url) + "; if (wopener.RefreshWOpener) { wopener.RefreshWOpener(window); } CloseDialog();"; } } else { img.OnClientClick = "RedirectItem(" + NodeID + ", '" + culture + "');"; } img.ID = "imgAction"; } else { // Add parameters identifier and hash, encode query string if (LicenseHelper.CheckFeature(URLHelper.GetCurrentDomain(), FeatureEnum.TranslationServices)) { string returnUrl = CMSContext.ResolveDialogUrl("~/CMSModules/Translations/Pages/TranslateDocuments.aspx") + "?targetculture=" + culture + "&modal=1&nodeid=" + NodeID; returnUrl = URLHelper.AddParameterToUrl(returnUrl, "hash", QueryHelper.GetHash(URLHelper.GetQuery(returnUrl))); img.ImageUrl = GetImageUrl("CMSModules/CMS_Content/Properties/translate.png"); img.ToolTip = GetString("transman.translate"); img.OnClientClick = "modalDialog('" + returnUrl + "', 'TranslateDocument', 550, 440); "; } else { img.Visible = false; } break; } } } return(img); case "translationstatus": if (parameter == DBNull.Value) { status = TranslationStatusEnum.NotAvailable; } else { status = (TranslationStatusEnum)parameter; } string statusName = GetString("transman." + status); string statusHtml = "<span class=\"" + status + "\">" + statusName + "</span>"; // .Outdated return(statusHtml); case "documentculturedisplayname": drv = (DataRowView)parameter; // Add icon return(UniGridFunctions.DocumentCultureFlag(drv, Page)); case "documentmodifiedwhen": case "documentmodifiedwhentooltip": if (string.IsNullOrEmpty(parameter.ToString())) { return("-"); } else { DateTime modifiedWhen = ValidationHelper.GetDateTime(parameter, DateTimeHelper.ZERO_TIME); bool displayGMT = (sourceName == "documentmodifiedwhentooltip"); return(TimeZoneHelper.ConvertToUserTimeZone(modifiedWhen, displayGMT, currentUserInfo, currentSiteInfo)); } case "versionnumber": if (string.IsNullOrEmpty(parameter.ToString())) { return("-"); } break; case "documentname": if (string.IsNullOrEmpty(parameter.ToString())) { parameter = "-"; } return(HTMLHelper.HTMLEncode(parameter.ToString())); case "published": bool published = ValidationHelper.GetBoolean(parameter, false); if (published) { return("<span class=\"DocumentPublishedYes\">" + GetString("General.Yes") + "</span>"); } else { return("<span class=\"DocumentPublishedNo\">" + GetString("General.No") + "</span>"); } } return(parameter); }
protected object gridLanguages_OnExternalDataBound(object sender, string sourceName, object parameter) { TranslationStatusEnum status = TranslationStatusEnum.NotAvailable; DataRowView drv = null; sourceName = sourceName.ToLower(); switch (sourceName) { case "action": ImageButton img = new ImageButton(); if (sender != null) { // Get datarowview drv = UniGridFunctions.GetDataRowView(sender as DataControlFieldCell); if ((drv != null) && (drv.Row["TranslationStatus"] != DBNull.Value)) { // Get translation status status = (TranslationStatusEnum)drv.Row["TranslationStatus"]; } else { status = TranslationStatusEnum.NotAvailable; } // Set appropriate icon switch (status) { case TranslationStatusEnum.NotAvailable: img.ImageUrl = GetImageUrl("CMSModules/CMS_Content/Properties/addculture.png"); img.ToolTip = GetString("transman.createnewculture"); break; default: img.ImageUrl = GetImageUrl("CMSModules/CMS_Content/Properties/editculture.png"); img.ToolTip = GetString("transman.editculture"); break; } string culture = (drv != null) ? ValidationHelper.GetString(drv.Row["DocumentCulture"], string.Empty) : string.Empty; // Register redirect script img.OnClientClick = "RedirectItem(" + nodeId + ", '" + culture + "');"; img.ID = "imgAction"; } return(img); case "translationstatus": if (parameter == DBNull.Value) { status = TranslationStatusEnum.NotAvailable; } else { status = (TranslationStatusEnum)parameter; } string statusName = GetString("transman." + status); string statusHtml = "<span class=\"" + status + "\">" + statusName + "</span>"; // .Outdated return(statusHtml); case "documentculturedisplayname": drv = (DataRowView)parameter; // Add icon return(UniGridFunctions.DocumentCultureFlag(drv, this.Page)); case "documentmodifiedwhen": case "documentmodifiedwhentooltip": if (string.IsNullOrEmpty(parameter.ToString())) { return("-"); } else { DateTime modifiedWhen = ValidationHelper.GetDateTime(parameter, DateTimeHelper.ZERO_TIME); if (currentUserInfo == null) { currentUserInfo = CMSContext.CurrentUser; } if (currentSiteInfo == null) { currentSiteInfo = CMSContext.CurrentSite; } bool displayGMT = (sourceName == "documentmodifiedwhentooltip"); return(TimeZoneHelper.ConvertToUserTimeZone(modifiedWhen, displayGMT, currentUserInfo, currentSiteInfo)); } case "versionnumber": if (string.IsNullOrEmpty(parameter.ToString())) { return("-"); } break; case "documentname": if (string.IsNullOrEmpty(parameter.ToString())) { parameter = "-"; } return(HTMLHelper.HTMLEncode(parameter.ToString())); case "published": bool published = ValidationHelper.GetBoolean(parameter, false); if (published) { return("<span class=\"DocumentPublishedYes\">" + GetString("General.Yes") + "</span>"); } else { return("<span class=\"DocumentPublishedNo\">" + GetString("General.No") + "</span>"); } } return(parameter); }
/// <summary> /// External data binding handler. /// </summary> object UniGridSites_OnExternalDataBound(object sender, string sourceName, object parameter) { bool running = true; switch (sourceName.ToLower()) { case "editcontent": // Edit content action running = ValidationHelper.GetString(((DataRowView)((GridViewRow)parameter).DataItem).Row["sitestatus"], "").ToUpper() == SiteInfoProvider.SiteStatusToString(SiteStatusEnum.Running); if (!running) { ImageButton button = ((ImageButton)sender); button.ImageUrl = GetImageUrl("Design/Controls/UniGrid/Actions/Editcontentdisabled.png"); button.Enabled = false; } break; case "openlivesite": // Open live site action running = ValidationHelper.GetString(((DataRowView)((GridViewRow)parameter).DataItem).Row["sitestatus"], "").ToUpper() == SiteInfoProvider.SiteStatusToString(SiteStatusEnum.Running); if (!running) { ImageButton button = ((ImageButton)sender); button.ImageUrl = GetImageUrl("Design/Controls/UniGrid/Actions/Livesitedisabled.png"); button.Enabled = false; } break; case "sitestatus": // Status { DataRowView drv = (DataRowView)parameter; running = SiteInfoProvider.SiteStatusToEnum(ValidationHelper.GetString(drv["SiteStatus"], "")) == SiteStatusEnum.Running; bool offline = ValidationHelper.GetBoolean(drv["SiteIsOffline"], false); if (running) { if (offline) { return(UniGridFunctions.SpanMsg(GetString("Site_List.Offline"), "SiteStatusOffline")); } else { return(UniGridFunctions.SpanMsg(GetString("Site_List.Running"), "SiteStatusRunning")); } } else { return(UniGridFunctions.SpanMsg(GetString("Site_List.Stopped"), "SiteStatusStopped")); } } case "culture": // Culture { DataRowView drv = (DataRowView)parameter; string siteName = ValidationHelper.GetString(drv["SiteName"], ""); string cultureCode = CultureHelper.GetDefaultCulture(siteName); return(UniGridFunctions.DocumentCultureFlag(cultureCode, null, Page)); } } return(parameter); }