コード例 #1
0
ファイル: SiteMenu.cs プロジェクト: vdandrade/Plato
        public void BuildNavigation(string name, INavigationBuilder builder)
        {
            if (!String.Equals(name, "site", StringComparison.OrdinalIgnoreCase))
            {
                return;
            }


            builder
            .Add(T["Docs"], 2, discuss => discuss
                 .IconCss("fal fa-book-open")
                 .Action("Index", "Home", "Plato.Docs")
                 .Attributes(new Dictionary <string, object>()
            {
                { "data-provide", "tooltip" },
                { "data-placement", "bottom" },
                { "title", T["Docs"] }
            })
                 .LocalNav(),
                 new List <string>()
            {
                "docs", "text-hidden"
            }
                 );
        }
コード例 #2
0
ファイル: EditProfileMenu.cs プロジェクト: radtek/Plato
        public void BuildNavigation(string name, INavigationBuilder builder)
        {
            if (!String.Equals(name, "edit-profile", StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            builder
            .Add(T["Profile"], 1, profile => profile
                 .Action("EditProfile", "Home", "Plato.Users")
                 //.Permission(Permissions.ManageUsers)
                 .LocalNav()
                 ).Add(T["Account"], 2, profile => profile
                       .Action("EditAccount", "Home", "Plato.Users")
                       //.Permission(Permissions.ManageUsers)
                       .LocalNav()
                       ).Add(T["Signature"], int.MaxValue, signature => signature
                             .Action("EditSignature", "Home", "Plato.Users")
                             //.Permission(Permissions.ManageUsers)
                             .LocalNav()
                             ).Add(T["Settings"], int.MaxValue, profile => profile
                                   .Action("EditSettings", "Home", "Plato.Users")
                                   //.Permission(Permissions.ManageUsers)
                                   .LocalNav()
                                   );
        }
コード例 #3
0
ファイル: IdeaFooterMenu.cs プロジェクト: vdandrade/Plato
        public void BuildNavigation(string name, INavigationBuilder builder)
        {
            if (!String.Equals(name, "idea-footer", StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            // Get model from navigation builder
            var entity = builder.ActionContext.HttpContext.Items[typeof(Idea)] as Idea;

            if (entity == null)
            {
                return;
            }

            builder
            .Add(T["Reactions"], int.MaxValue, react => react
                 .View("ReactionList", new
            {
                model = new ReactionListViewModel()
                {
                    Entity     = entity,
                    Permission = Permissions.ReactToIdeas
                }
            })
                 .Permission(Permissions.ViewIdeaReactions)
                 );
        }
コード例 #4
0
ファイル: ProfileMenu.cs プロジェクト: vdandrade/Plato
        public void BuildNavigation(string name, INavigationBuilder builder)
        {
            // Ensure correct provider
            if (!String.Equals(name, "profile", StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            // Get user from context
            var user = builder.ActionContext.HttpContext.Items[typeof(User)] as User;

            if (user == null)
            {
                return;
            }

            // Build menu
            builder.Add(T["Badges"], 1, topics => topics
                        .Action("Index", "Profile", "Plato.Users.Badges", new RouteValueDictionary()
            {
                ["opts.id"]    = user.Id.ToString(),
                ["opts.alias"] = user.Alias.ToString()
            })
                        //.Permission(Permissions.ManageRoles)
                        .LocalNav()
                        );
        }
コード例 #5
0
        /// <summary>重新加载</summary>
        private void Reload()
        {
            this.configuration = WebConfigurationView.Instance.Configuration;

            this.m_CustomizeManagement  = new CustomizeManagement();
            this.m_NavigationManagement = new NavigationManagement();
            this.m_MenuManagement       = new MenuManagement();

            if (WebConfigurationView.Instance.Layout == "EnterprisePortalPlatform")
            {
                // 自定义页面
                m_CustomizeBuilder = new Layouts.EnterprisePortalPlatform.CustomizeBuilder();
                // 导航
                m_NavigationBuilder = new Layouts.EnterprisePortalPlatform.NavigationBuilder();
                // 菜单
                m_MenuBuilder = new Layouts.EnterprisePortalPlatform.MenuBuilder();
            }
            else
            {
                // 自定义页面
                m_CustomizeBuilder = new Layouts.CollaborationPlatform.CustomizeBuilder();
                // 导航
                m_NavigationBuilder = new Layouts.CollaborationPlatform.NavigationBuilder();
                // 菜单
                m_MenuBuilder = new Layouts.CollaborationPlatform.MenuBuilder();
            }
        }
コード例 #6
0
ファイル: PostMenu.cs プロジェクト: radtek/Plato
        public void BuildNavigation(string name, INavigationBuilder builder)
        {
            if (!String.Equals(name, "post", StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            // Get action name
            var actionName = string.Empty;

            if (builder.ActionContext.RouteData.Values.ContainsKey("action"))
            {
                actionName = builder.ActionContext.RouteData.Values["action"].ToString();
            }

            // No need to display the menu when editing entities
            if (actionName.IndexOf("Edit", StringComparison.OrdinalIgnoreCase) >= 0)
            {
                return;
            }

            builder
            .Add(T["New"], 1, create => create
                 .IconCss("fal fa-plus")
                 .Attributes(new Dictionary <string, object>()
            {
                ["data-display"] = "static"
            })
                 .Add(T["Issue"], 7, article => article
                      .Action("Create", "Home", "Plato.Issues", new RouteValueDictionary())
                      .Permission(Permissions.PostIssues)
                      .LocalNav()
                      ));
        }
コード例 #7
0
        public void BuildNavigation(string name, INavigationBuilder builder)
        {
            if (!String.Equals(name, "article-footer", StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            // Get model from navigation builder
            var entity = builder.ActionContext.HttpContext.Items[typeof(Article)] as Article;
            var reply  = builder.ActionContext.HttpContext.Items[typeof(Comment)] as Comment;

            // Add reaction list to navigation
            builder
            .Add(T["Reactions"], int.MaxValue, react => react
                 .View("ReactionList", new
            {
                model = new ReactionListViewModel()
                {
                    Entity     = entity,
                    Reply      = reply,
                    Permission = Permissions.ReactToArticles
                }
            })
                 .Permission(Permissions.ViewArticleReactions)
                 );
        }
コード例 #8
0
ファイル: TopicFooterMenu.cs プロジェクト: vdandrade/Plato
        public void BuildNavigation(string name, INavigationBuilder builder)
        {
            if (!String.Equals(name, "topic-footer", StringComparison.OrdinalIgnoreCase))
            {
                return;
            }


            return;

            //// Get model from navigation builder
            //var entity = builder.ActionContext.HttpContext.Items[typeof(Topic)] as Topic;

            //// We always need a topic
            //if (entity == null)
            //{
            //    return;
            //}

            //// Replies are options
            //var reply = builder.ActionContext.HttpContext.Items[typeof(Reply)] as Reply;

            //builder
            //    .Add(T["Labels"], react => react
            //        .View("TopicLabels", new
            //        {
            //            entity
            //        })
            //        .Order(0)
            //    );
        }
コード例 #9
0
ファイル: SiteMenu.cs プロジェクト: vdandrade/Plato
        public void BuildNavigation(string name, INavigationBuilder builder)
        {
            if (!String.Equals(name, "site", StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            builder
            .Add(T["More"], int.MaxValue - 5, nav => nav
                 .IconCss("fal fa-bars")
                 .Attributes(new Dictionary <string, object>()
            {
                { "data-provide", "tooltip" },
                { "data-placement", "bottom" },
                { "title", T["More"] }
            })
                 .Add(T["Search"], 0, search => search
                      .Action("Index", "Home", "Plato.Search")
                      .IconCss("fal fa-search mr-2")
                      //.Permission(Permissions.ManageRoles)
                      .LocalNav()
                      ).Add(T["Divider"], 1, divider => divider
                            //.Permission(deletePermission)
                            .DividerCss("dropdown-divider").LocalNav()
                            )

                 , new List <string>()
            {
                "dropdown-toggle-no-caret", "navigation", "text-hidden"
            }
                 );
        }
コード例 #10
0
ファイル: SearchMenu.cs プロジェクト: radtek/Plato
        public void BuildNavigation(string name, INavigationBuilder builder)
        {
            if (!String.Equals(name, "search", StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            // Get view model from context
            var indexViewModel = builder.ActionContext.HttpContext.Items[typeof(EntityIndexViewModel <Entity>)] as EntityIndexViewModel <Entity>;

            if (indexViewModel == null)
            {
                return;
            }

            // Get metrics from context
            var model =
                builder.ActionContext.HttpContext.Items[typeof(FeatureEntityCounts)] as
                FeatureEntityCounts;

            // Get feature metrics
            var total = model?.Total() ?? 0;

            builder
            .Add(T["All"], 0, f => f
                 .Badge(total > 0 ? total.ToPrettyInt() : string.Empty, "badge badge-primary float-right")
                 .Action("Index", "Home", "Plato.Search", new RouteValueDictionary()
            {
                ["opts.featureId"] = null,
                ["opts.search"]    = indexViewModel.Options.Search
            })
                 .LocalNav(), indexViewModel.Options.FeatureId == null
                        ? new string[] { "active" }
                        : null);
        }
コード例 #11
0
        public void BuildNavigation(string name, INavigationBuilder builder)
        {
            if (!String.Equals(name, "article-footer", StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            // Get model from navigation builder
            var entity = builder.ActionContext.HttpContext.Items[typeof(Article)] as Article;

            // We always need a topic
            if (entity == null)
            {
                return;
            }

            // Replies are options
            var reply = builder.ActionContext.HttpContext.Items[typeof(Comment)] as Comment;

            builder
            .Add(T["Attachments"], react => react
                 .View("EntityAttachments", new
            {
                entity,
                reply
            })
                 );
        }
コード例 #12
0
ファイル: AdminMenu.cs プロジェクト: radtek/Plato
        public void BuildNavigation(string name, INavigationBuilder builder)
        {
            if (!String.Equals(name, "admin", StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            // Ensure host
            if (!_shellSettings.IsDefaultShell())
            {
                return;
            }

            builder
            .Add(T["Tenants"], int.MaxValue - 8, tenants => tenants
                 .IconCss("fal fa-browser")
                 .Add(T["Manage"], 3, manage => manage
                      .Action("Index", "Admin", "Plato.Tenants")
                      .Permission(Permissions.ManageTenants)
                      .LocalNav())
                 .Add(T["Add"], 4, create => create
                      .Action("Create", "Admin", "Plato.Tenants")
                      .Permission(Permissions.AddTenants)
                      .LocalNav())
                 .Add(T["Settings"], 5, settings => settings
                      .Action("Settings", "Admin", "Plato.Tenants")
                      .Permission(Permissions.EditSettings)
                      .LocalNav())
                 );
        }
コード例 #13
0
        public void BuildNavigation(string name, INavigationBuilder builder)
        {
            if (!String.Equals(name, "issue-comment-footer", StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            // Get model from navigation builder
            var entity = builder.ActionContext.HttpContext.Items[typeof(Issue)] as Issue;

            // We need an entity
            if (entity == null)
            {
                return;
            }

            // Replies are optional
            var reply = builder.ActionContext.HttpContext.Items[typeof(Comment)] as Comment;

            builder
            .Add(T["Tags"], react => react
                 .View("IssueTags", new
            {
                entity,
                reply
            })
                 );
        }
コード例 #14
0
        public void BuildNavigation(string name, INavigationBuilder builder)
        {
            if (!String.Equals(name, "topic-details", StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            // Get model from navigation builder
            var entity = builder.ActionContext.HttpContext.Items[typeof(Topic)] as Topic;

            if (entity == null)
            {
                return;
            }

            // Add reaction menu view to navigation
            builder
            .Add(T["Vote"], react => react
                 .View("VoteToggle", new
            {
                model = new VoteToggleViewModel()
                {
                    Entity     = entity,
                    Permission = Permissions.VoteTopics,
                    ApiUrl     = "api/discuss/vote/post"
                }
            })
                 );
        }
コード例 #15
0
ファイル: SiteMenu.cs プロジェクト: tchigher/plato
        public void BuildNavigation(string name, INavigationBuilder builder)
        {
            if (!String.Equals(name, "site", StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            builder
            .Add(T["More"], int.MaxValue - 5, nav => nav
                 .IconCss("fal fa-bars")
                 .Attributes(new Dictionary <string, object>()
            {
                { "data-provide", "tooltip" },
                { "data-placement", "bottom" },
                { "title", T["More"] }
            })
                 .Add(T["Users"], int.MaxValue - 1, installed => installed
                      .Action("Index", "Home", "Plato.Users")
                      .IconCss("fal fa-user mr-2")
                      .Permission(Permissions.ViewUsers)
                      .LocalNav()
                      ), new List <string>()
            {
                "dropdown-toggle-no-caret", "navigation", "text-hidden"
            }
                 );
        }
コード例 #16
0
        public void BuildNavigation(string name, INavigationBuilder builder)
        {
            if (!String.Equals(name, "question-answer-footer", StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            // Get model from navigation builder
            var entity = builder.ActionContext.HttpContext.Items[typeof(Question)] as Question;

            // We need an entity
            if (entity == null)
            {
                return;
            }

            // Replies are optional
            var reply = builder.ActionContext.HttpContext.Items[typeof(Answer)] as Answer;

            builder
            .Add(T["Tags"], react => react
                 .View("QuestionTags", new
            {
                entity,
                reply
            })
                 );
        }
コード例 #17
0
        public void BuildNavigation(string name, INavigationBuilder builder)
        {
            if (!String.Equals(name, "topic-reply-footer", StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            // Get model from navigation builder
            var entity = builder.ActionContext.HttpContext.Items[typeof(Topic)] as Topic;

            // We need an entity
            if (entity == null)
            {
                return;
            }

            // Replies are optional
            var reply = builder.ActionContext.HttpContext.Items[typeof(Reply)] as Reply;

            // Add reaction list to topic reply footer navigation
            builder
            .Add(T["Tags"], react => react
                 .View("TopicTags", new
            {
                entity,
                reply
            })
                 .Order(1)
                 );
        }
コード例 #18
0
        public static void Register(INavigationBuilder builder)
        {
            var convention = builder.GetTemplateConvention(@"View\{vm}\dist\index.HTML");

            typeof(RoutingConfiguration).GetTypesFromSameAssembly()
            .InNamespace("NeutroniumDemo.ViewModel")
            .Except(typeof(ApplicationMenuViewModel))
            .Register(convention);
        }
コード例 #19
0
        public void BuildNavigation(string name, INavigationBuilder builder)
        {
            if (!String.Equals(name, "site", StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            // Removed
        }
コード例 #20
0
ファイル: NavigationProvider.cs プロジェクト: wolfweb/Ww
 public void GetNavigation(INavigationBuilder navigationBuilder) {
     navigationBuilder
         .Add("缩略图尺寸管理", PermissionProvider.Thumbnail, builder => builder.Action("Index", "Thumbnail", new { area = "Admin" }))
         .Add("角色管理", PermissionProvider.Role, builder => builder.Action("Index", "Role", new { area = "Admin" }))
         .Add("用户管理", PermissionProvider.Account, builder => builder.Action("Index", "Account", new { area = "Admin" }))
         .Add("系统信息管理", PermissionProvider.SysSetting, builder => builder.Action("Index", "Setting", new { area = "Admin" }), 100)
         .Add("导航管理", PermissionProvider.Navigation, builder => builder.Action("Index", "Navigation", new { area = "Admin" }))
         .Add("分类管理", PermissionProvider.Category, builder => builder.Action("Index", "Category", new { area = "Admin" }))
         .Add("控制台", PermissionProvider.Dashboard, builder => builder.Action("Index", "Dashboard", new { area = "Admin" }));
 }
コード例 #21
0
ファイル: Navigation.cs プロジェクト: monankov/Structr
        public Navigation(INavigationBuilder <TNavigationItem> builder)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            _items = builder.BuildNavigation();
            Active = _items.FirstOrDefault(x => x.IsActive)
                     ?? _items.SelectMany(x => x.Descendants).FirstOrDefault(x => x.IsActive);
        }
コード例 #22
0
ファイル: QuestionAnswerMenu.cs プロジェクト: vdandrade/Plato
        public void BuildNavigation(string name, INavigationBuilder builder)
        {
            if (!String.Equals(name, "question-answer", StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            // Get model from navigation builder
            var reply = builder.ActionContext.HttpContext.Items[typeof(Answer)] as Answer;

            if (reply == null)
            {
                return;
            }

            // Get model from navigation builder
            var entity = builder.ActionContext.HttpContext.Items[typeof(Question)] as Question;

            if (entity == null)
            {
                return;
            }

            // Options
            builder
            .Add(T["Options"], int.MaxValue, options => options
                 .IconCss("fa fa-ellipsis-h")
                 .Attributes(new Dictionary <string, object>()
            {
                { "data-provide", "tooltip" },
                { "title", T["Options"] }
            })
                 .Add(T["Share"], int.MaxValue - 3, share => share
                      .Action("Index", "Home", "Plato.Questions.Share", new RouteValueDictionary()
            {
                ["opts.id"]      = entity.Id.ToString(),
                ["opts.alias"]   = entity.Alias,
                ["opts.replyId"] = reply.Id.ToString()
            })
                      .Attributes(new Dictionary <string, object>()
            {
                { "data-provide", "dialog" },
                { "data-dialog-id", "shareDialog" },
                { "data-dialog-modal-css", "modal fade" },
                { "data-dialog-css", "modal-dialog modal-lg" }
            })
                      .Permission(Permissions.ShareComments)
                      .LocalNav()
                      ), new List <string>()
            {
                "question-options", "text-muted", "dropdown-toggle-no-caret", "text-hidden"
            }
                 );
        }
コード例 #23
0
        public void BuildNavigation(string name, INavigationBuilder builder)
        {
            if (!String.Equals(name, "user", StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            builder
            .Add(T["User"], user => user
                 .View("UserMenu", new {})
                 );
        }
コード例 #24
0
        /// <summary>
        /// Builds the action link.
        /// </summary>
        public static INavigationBuilder BuildActionLink(this HtmlHelper htmlHelper,
                                                         string linkText,
                                                         Action <INavigationBuilder> builderExpression)
        {
            INavigationBuilder builder = htmlHelper.BuildActionLink(linkText);

            if (builderExpression != null)
            {
                builderExpression.Invoke(builder);
            }
            return(builder);
        }
コード例 #25
0
        public void BuildNavigation(string name, INavigationBuilder builder)
        {
            if (!String.Equals(name, "question-answer", StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            // Get entity from context
            var entity = builder.ActionContext.HttpContext.Items[typeof(Question)] as Question;

            if (entity == null)
            {
                return;
            }

            // Get reply from context
            var reply = builder.ActionContext.HttpContext.Items[typeof(Answer)] as Answer;

            if (reply == null)
            {
                return;
            }

            // If the entity if flagged as spam display additional options
            if (reply.IsSpam)
            {
                builder
                .Add(T["StopForumSpam"], int.MinValue, options => options
                     .IconCss("fal fa-hand-paper")
                     .Attributes(new Dictionary <string, object>()
                {
                    { "data-toggle", "tooltip" },
                    { "title", T["Spam Options"] },
                    { "data-provide", "dialog" },
                    { "data-dialog-modal-css", "modal fade" },
                    { "data-dialog-css", "modal-dialog modal-lg" }
                })
                     .Action("Index", "Home", "Plato.Questions.StopForumSpam",
                             new RouteValueDictionary()
                {
                    ["opts.id"]      = entity.Id.ToString(),
                    ["opts.alias"]   = entity.Alias,
                    ["opts.replyId"] = reply.Id.ToString()
                })
                     .Permission(Permissions.ViewStopForumSpam)
                     .LocalNav()
                     , new List <string>()
                {
                    "topic-stop-forum-spam", "text-muted", "text-hidden"
                }
                     );
            }
        }
コード例 #26
0
        public void BuildNavigation(string name, INavigationBuilder builder)
        {
            if (!String.Equals(name, "question-answer-details", StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            // Get model from navigation builder
            var entity = builder.ActionContext.HttpContext.Items[typeof(Question)] as Question;

            if (entity == null)
            {
                return;
            }

            var reply = builder.ActionContext.HttpContext.Items[typeof(Answer)] as Answer;

            // No reply found on context
            if (reply == null)
            {
                return;
            }

            // Not marked as answer no need to continue
            if (!reply.IsAnswer)
            {
                return;
            }

            // Add reaction menu view to navigation
            builder
            .Add(T["Answer"], int.MinValue, options => options
                 .IconCss("fa fa-check")
                 .Attributes(new Dictionary <string, object>()
            {
                { "data-toggle", "tooltip" },
                { "title", T["Accepted Answer"] }
            })
                 .Action("Reply", "Home", "Plato.Questions",
                         new RouteValueDictionary()
            {
                ["opts.id"]      = entity.Id,
                ["opts.alias"]   = entity.Alias,
                ["opts.replyId"] = reply.Id
            })
                 .LocalNav()
                 , new List <string>()
            {
                "accepted-answer"
            }
                 );
        }
コード例 #27
0
ファイル: SearchMenu.cs プロジェクト: vdandrade/Plato
        public void BuildNavigation(string name, INavigationBuilder builder)
        {
            if (!String.Equals(name, "search", StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            // Get view model from context
            var indexViewModel =
                builder.ActionContext.HttpContext.Items[typeof(EntityIndexViewModel <Entity>)] as EntityIndexViewModel <Entity>;

            if (indexViewModel == null)
            {
                return;
            }

            var feature = _featureFacade.GetFeatureByIdAsync("Plato.Discuss")
                          .GetAwaiter()
                          .GetResult();

            if (feature == null)
            {
                return;
            }

            // Get metrics from context
            var model =
                builder.ActionContext.HttpContext.Items[typeof(FeatureEntityCounts)] as
                FeatureEntityCounts;

            // Current area name
            var areaName = "Plato.Discuss";

            // Get feature metrics
            var metric = model?.Features?.FirstOrDefault(m => m.ModuleId.Equals(areaName, StringComparison.OrdinalIgnoreCase));

            builder
            .Add(T["Topics"], 1, topics => topics
                 .Badge(metric != null ? metric.Count.ToPrettyInt() : string.Empty,
                        "badge badge-primary float-right")
                 .Action("Index", "Home", "Plato.Search", new RouteValueDictionary()
            {
                ["opts.featureId"] = feature.Id,
                ["opts.search"]    = indexViewModel.Options.Search
            })
                 //.Permission(Permissions.ManageRoles)
                 .LocalNav(),
                 indexViewModel.Options.FeatureId == feature.Id
                        ? new string[] { "active" }
                        : null
                 );
        }
コード例 #28
0
ファイル: SiteMenu.cs プロジェクト: radtek/Plato
        public void BuildNavigation(string name, INavigationBuilder builder)
        {
            if (!String.Equals(name, "site", StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            // We need an empty anonymous type to invoke as as ViewComponent
            builder
            .Add(T["Notifications"], int.MaxValue, notifications => notifications
                 .View("NotificationMenu", new {})
                 );
        }
コード例 #29
0
ファイル: PageTitleBuilder.cs プロジェクト: somaraj/plato
        public IPageTitleBuilder FromNavigationBuilder(INavigationBuilder builder)
        {
            _title = null;
            foreach (var item in builder.Build())
            {
                _parts.Add(new PageTitlePart
                {
                    Value = item.Text
                });
            }

            return(this);
        }
コード例 #30
0
ファイル: UserEntitiesMenu.cs プロジェクト: vdandrade/Plato
        public void BuildNavigation(string name, INavigationBuilder builder)
        {
            if (!String.Equals(name, "user-entities", StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            // Get metrics from context
            var model =
                builder.ActionContext.HttpContext.Items[typeof(FeatureEntityCounts)] as
                FeatureEntityCounts;

            // Current area name
            var areaName = "Plato.Issues";

            // Get feature metrics
            var metric = model?.Features?.FirstOrDefault(m => m.ModuleId.Equals(areaName, StringComparison.OrdinalIgnoreCase));

            // Get route values
            var    context = builder.ActionContext;
            object id      = context.RouteData.Values["opts.createdByUserId"],
                   alias   = context.RouteData.Values["opts.alias"];
            var isArea     = context.RouteData.Values["area"].ToString()
                             .Equals(areaName, StringComparison.OrdinalIgnoreCase);
            var isController = context.RouteData.Values["controller"].ToString()
                               .Equals("User", StringComparison.OrdinalIgnoreCase);
            var isAction = context.RouteData.Values["action"].ToString()
                           .Equals("Index", StringComparison.OrdinalIgnoreCase);

            var css = "";

            if (isArea && isController && isAction)
            {
                css = "active";
            }

            builder.Add(T["Issues"], 7, articles => articles
                        .Badge(metric != null ? metric.Count.ToPrettyInt() : string.Empty,
                               "badge badge-primary float-right")
                        .Action("Index", "User", "Plato.Issues", new RouteValueDictionary()
            {
                ["opts.createdByUserId"] = id?.ToString(),
                ["opts.alias"]           = alias?.ToString()
            })
                        //.Permission(Permissions.ManageRoles)
                        .LocalNav(), new List <string>()
            {
                css
            }
                        );
        }
コード例 #31
0
ファイル: DocCommentMenu.cs プロジェクト: vdandrade/Plato
        public void BuildNavigation(string name, INavigationBuilder builder)
        {
            if (!String.Equals(name, "doc-comment", StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            // Get model from navigation builder
            var entity = builder.ActionContext.HttpContext.Items[typeof(Doc)] as Doc;
            var reply  = builder.ActionContext.HttpContext.Items[typeof(DocComment)] as DocComment;

            // We need an entity
            if (entity == null)
            {
                return;
            }

            // We need a reply
            if (reply == null)
            {
                return;
            }

            // No need to show reactions if entity is hidden
            if (entity.IsHidden())
            {
                return;
            }

            // No need to show reactions if reply is hidden
            if (reply.IsHidden())
            {
                return;
            }

            // Add reaction menu view to navigation
            builder
            .Add(T["React"], react => react
                 .View("ReactionMenu", new
            {
                model = new ReactionMenuViewModel()
                {
                    ModuleId   = "Plato.Docs.Reactions",
                    Entity     = entity,
                    Reply      = reply,
                    Permission = Permissions.ReactToDocComments
                }
            })
                 );
        }
コード例 #32
0
 private void SetUpRoute(INavigationBuilder iNavigationBuilder)
 {
     iNavigationBuilder.Register<Person>("HTMLUI\\index_one.html");
     iNavigationBuilder.Register<Couple>("HTMLUI\\index_couple.html");
 }
コード例 #33
0
 private void SetUpRoute(INavigationBuilder iNavigationBuilder)
 {
     iNavigationBuilder.Register<MVVMAwesomium.ViewModel.Example.ForNavigation.Person>("HTMLUI\\index_one.html");
     iNavigationBuilder.Register<MVVMAwesomium.ViewModel.Example.ForNavigation.Couple>("HTMLUI\\index_couple.html");
 }
コード例 #34
0
ファイル: NavigationProvider.cs プロジェクト: wolfweb/Ww
 public void GetNavigation(INavigationBuilder navigationBuilder)
 {
     navigationBuilder
         .Add("微信管理", PermissionProvider.WeChat, builder => builder.Action("Index", "WeChat", new { area = "WeChat" }), 10)
         .Add("微信菜单管理", PermissionProvider.WeChatMenus, builder => builder.Action("WechatMenus", "WeChat", new { area = "WeChat" }), 11);
 }
コード例 #35
0
 private void SetUpRoute(INavigationBuilder builder)
 {
     builder.Register<A1>("javascript\\navigation_1.html");
     builder.Register<AA1>("javascript\\navigation_1.html");
     builder.Register<A2>("javascript\\navigation_2.html");
 }
コード例 #36
0
 private void SetUpRoute(INavigationBuilder iNavigationBuilder)
 { 
     iNavigationBuilder.Register<Nav>("HTML\\index.html");
 }