Exemplo n.º 1
0
    /// <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);
        }
    }
Exemplo n.º 2
0
        /// <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);
        }