/// <summary> /// Creates the menu. /// </summary> /// <param name="langName">Name of the lang.</param> /// <param name="langId">The lang id.</param> private void CreateMenu(string langName, int langId) { //create menu TableCell cellMenu = new TableCell(); cellMenu.Style.Add("border-left", "solid 1px silver"); cellMenu.Style.Add("width", "12px"); System.Web.UI.WebControls.Menu menuLang = new System.Web.UI.WebControls.Menu(); //set style menuLang.StaticMenuItemStyle.CssClass = menuPattern.StaticMenuItemStyle.CssClass; menuLang.DynamicMenuStyle.CssClass = menuPattern.DynamicMenuStyle.CssClass; //set templates menuLang.DynamicItemTemplate = menuPattern.DynamicItemTemplate; //disable default popup image menuLang.StaticEnableDefaultPopOutImage = false; //set orientation menuLang.Orientation = Orientation.Horizontal; System.Web.UI.WebControls.MenuItem root = new System.Web.UI.WebControls.MenuItem(); root.Selectable = false; menuLang.Items.Add(root); //add other version //get archive status id int archiveStatusId = WorkflowStatus.GetArcStatus(0); //get allowed statusId ArrayList allowedStatusId = WorkflowAccess.LoadListByRoleId(ProfileContext.Current.User.ProviderUserKey.ToString()); using (IDataReader reader = PageVersion.GetVersionByLangId(PageId, langId)) { while (reader.Read()) { int statusId = (int)reader["StatusId"]; string statusName = string.Empty; using (IDataReader status = WorkflowStatus.LoadById(statusId)) { if (status.Read()) { if (statusId != archiveStatusId && allowedStatusId.Contains(statusId)) { statusName = status["FriendlyName"].ToString(); } } status.Close(); } //add user draft Guid UserKey = (Guid)ProfileContext.Current.User.ProviderUserKey; Guid OwnerKey = new Guid(reader["EditorUID"].ToString()); if (statusId == WorkflowStatus.DraftId && UserKey == OwnerKey) { statusName = "draft"; } if (statusName != string.Empty) { System.Web.UI.WebControls.MenuItem newItem = new System.Web.UI.WebControls.MenuItem(); newItem.Text = "Version #" + reader["VersionId"] + "(" + statusName + ")"; NameValueCollection vals = new NameValueCollection(); vals.Add("lang", langName); vals.Add("VersionId", reader["VersionId"].ToString()); newItem.NavigateUrl = CommonHelper.FormatQueryString(CMSContext.Current.CurrentUrl, vals); /* * newItem.NavigateUrl = "~" + PageOutline + "?VersionId=" + reader["VersionId"].ToString() + * "&UserId=" + Membership.GetUser().ProviderUserKey.ToString() + * "&lang=" + langName; * */ root.ChildItems.Add(newItem); } } reader.Close(); } if (root.ChildItems.Count > 0) { //add menu to cell cellMenu.Controls.Add(menuLang); //add cell to row trLanguageMenu.Cells.Add(cellMenu); } }
/// <summary> /// Creates the menu. /// </summary> /// <param name="langId">The lang id.</param> private void CreateMenu(int langId) { //create menu TableCell cellMenu = new TableCell(); //cellMenu.Style.Add("border-left", "solid 1px silver"); cellMenu.Style.Add("width", "12px"); System.Web.UI.WebControls.Menu menuLang = new System.Web.UI.WebControls.Menu(); //set style menuLang.StaticMenuItemStyle.CssClass = menuPattern.StaticMenuItemStyle.CssClass; menuLang.DynamicMenuStyle.CssClass = menuPattern.DynamicMenuStyle.CssClass; //set templates //menuLang.StaticItemTemplate = menuPattern.StaticItemTemplate; menuLang.DynamicItemTemplate = menuPattern.DynamicItemTemplate; //disable default popup image menuLang.StaticEnableDefaultPopOutImage = false; //set orientation menuLang.Orientation = Orientation.Horizontal; System.Web.UI.WebControls.MenuItem root = new System.Web.UI.WebControls.MenuItem(); root.Selectable = false; menuLang.Items.Add(root); //add other version //get archive status id int archiveStatusId = WorkflowStatus.GetArcStatus(0); //get allowed statusId ArrayList allowedStatusId = WorkflowAccess.LoadListByRoleId(Membership.GetUser().ProviderUserKey.ToString()); using (IDataReader reader = PageVersion.GetVersionByLangId(PageId, langId)) { while (reader.Read()) { int statusId = (int)reader["StatusId"]; string statusName = string.Empty; using (IDataReader status = WorkflowStatus.LoadById(statusId)) { if (status.Read()) { if (statusId != archiveStatusId && allowedStatusId.Contains(statusId)) { statusName = status["FriendlyName"].ToString(); } } status.Close(); } //add user draft Guid UserKey = (Guid)Membership.GetUser().ProviderUserKey; Guid OwnerKey = new Guid(reader["EditorUID"].ToString()); if (statusId == WorkflowStatus.DraftId && UserKey == OwnerKey) { statusName = "draft"; } //TODO: for refactoring if (statusName != string.Empty) { System.Web.UI.WebControls.MenuItem newItem = new System.Web.UI.WebControls.MenuItem(); newItem.Text = "Version #" + reader["VersionId"] + "(" + statusName + ")"; newItem.Target = "_blank"; newItem.NavigateUrl = "http://" + Mediachase.Cms.GlobalVariable.GetVariable("url", SiteId) + PageOutline + "?VersionId=" + reader["VersionId"].ToString() + "&UserId=" + Membership.GetUser().ProviderUserKey.ToString(); root.ChildItems.Add(newItem); } } reader.Close(); } if (root.ChildItems.Count > 0) { //add menu to cell cellMenu.Controls.Add(menuLang); } //add cell to row trLanguageMenu.Cells.Add(cellMenu); }