public void JsTree_CreatesEmpty() { JsTree actual = new JsTree(); Assert.Empty(actual.Nodes); Assert.Empty(actual.SelectedIds); }
public override void Process(TagHelperContext context, TagHelperOutput output) { JsTree tree = For.Model as JsTree; output.Attributes.SetAttribute("class", (output.Attributes["class"]?.Value + " js-tree").Trim()); output.Content.AppendHtml(HiddenIdsFor(tree)); output.Content.AppendHtml(JsTreeFor(tree)); }
public override void Process(TagHelperContext context, TagHelperOutput output) { JsTree tree = ExpressionMetadataProvider.FromStringExpression(For.Name, ViewContext.ViewData, Html.MetadataProvider).Model as JsTree; output.Attributes["class"] = (output.Attributes["class"]?.Value + " js-tree").Trim(); output.Content.Append(HiddenIdsFor(tree)); output.Content.Append(JsTreeFor(tree)); }
private TagBuilder JsTreeFor(JsTree jsTree) { String name = For.Name + ".SelectedIds"; TagBuilder tree = new TagBuilder("div"); tree.MergeAttribute("for", name); tree.AddCssClass("js-tree-view"); AddNodes(tree, jsTree.Nodes); return(tree); }
private JsTreeModel ConvertToModel(JsTree jsTree) { var tempJsTreeModel = GetJsTreeNode(jsTree); tempJsTreeModel.children = new List<JsTreeModel>(); foreach (var item in jsTree.children) { tempJsTreeModel.children.Add(GetJsTreeNode(item)); } return tempJsTreeModel; }
private TagBuilder JsTreeFor(JsTree model) { var name = For.Name + ".SelectedIds"; var tree = new TagBuilder("div"); tree.AddCssClass("js-tree-view"); tree.Attributes["for"] = name; Add(tree, model.Nodes); return(tree); }
private void SeedPermissions(roleModel viewModel) { var root = new JsTreeNode(); var allList = GetAllPermissions(); var tree = new JsTree { SelectedIds = viewModel.Permissions.SelectedIds, Nodes = ToTree(allList.ToList()) }; viewModel.Permissions = tree; }
private JsTree CreatePrivilegesTree(Role role) { JsTree expectedTree = new JsTree(); expectedTree.Nodes.Add(new JsTreeNode()); JsTreeNode rootNode = expectedTree.Nodes[0]; rootNode.Name = Titles.All; expectedTree.SelectedIds = role.RolePrivileges.Select(rolePrivilege => rolePrivilege.PrivilegeId).ToList(); IEnumerable <Privilege> allPrivileges = role .RolePrivileges .Select(rolePriv => rolePriv.Privilege) .Select(privilege => new Privilege { Id = privilege.Id, Area = ResourceProvider.GetPrivilegeAreaTitle(privilege.Area), Controller = ResourceProvider.GetPrivilegeControllerTitle(privilege.Area, privilege.Controller), Action = ResourceProvider.GetPrivilegeActionTitle(privilege.Area, privilege.Controller, privilege.Action) }); foreach (IGrouping <String, Privilege> areaPrivilege in allPrivileges.GroupBy(privilege => privilege.Area).OrderBy(privilege => privilege.Key ?? privilege.FirstOrDefault().Controller)) { JsTreeNode areaNode = new JsTreeNode(areaPrivilege.Key); foreach (IGrouping <String, Privilege> controllerPrivilege in areaPrivilege.GroupBy(privilege => privilege.Controller).OrderBy(privilege => privilege.Key)) { JsTreeNode controllerNode = new JsTreeNode(controllerPrivilege.Key); foreach (IGrouping <String, Privilege> actionPrivilege in controllerPrivilege.GroupBy(privilege => privilege.Action).OrderBy(privilege => privilege.Key)) { controllerNode.Nodes.Add(new JsTreeNode(actionPrivilege.First().Id, actionPrivilege.Key)); } if (areaNode.Name == null) { rootNode.Nodes.Add(controllerNode); } else { areaNode.Nodes.Add(controllerNode); } } if (areaNode.Name != null) { rootNode.Nodes.Add(areaNode); } } return(expectedTree); }
private JsTree CreatePermissions() { JsTreeNode root = new JsTreeNode(Titles.All); JsTree expectedTree = new JsTree(); expectedTree.Nodes.Add(root); expectedTree.SelectedIds = role.Permissions.Select(rolePermission => rolePermission.PermissionId).ToList(); IEnumerable <Permission> permissions = role .Permissions .Select(rolePermission => rolePermission.Permission) .Select(permission => new Permission { Id = permission.Id, Area = ResourceProvider.GetPermissionAreaTitle(permission.Area), Controller = ResourceProvider.GetPermissionControllerTitle(permission.Area, permission.Controller), Action = ResourceProvider.GetPermissionActionTitle(permission.Area, permission.Controller, permission.Action) }); foreach (IGrouping <String, Permission> area in permissions.GroupBy(permission => permission.Area).OrderBy(permission => permission.Key ?? permission.FirstOrDefault().Controller)) { JsTreeNode areaNode = new JsTreeNode(area.Key); foreach (IGrouping <String, Permission> controller in area.GroupBy(permission => permission.Controller).OrderBy(permission => permission.Key)) { JsTreeNode controllerNode = new JsTreeNode(controller.Key); foreach (Permission permission in controller.OrderBy(permission => permission.Action)) { controllerNode.Nodes.Add(new JsTreeNode(permission.Id, permission.Action)); } if (areaNode.Title == null) { root.Nodes.Add(controllerNode); } else { areaNode.Nodes.Add(controllerNode); } } if (areaNode.Title != null) { root.Nodes.Add(areaNode); } } return(expectedTree); }
private JsTreeModel GetJsTreeNode(JsTree jsTree) { var jsTreeNodeModel = new JsTreeModel(); jsTreeNodeModel.data = jsTree.data; jsTreeNodeModel.state = jsTree.state; jsTreeNodeModel.attr = new JsTreeAttributeModel() { FolderPath = jsTree.attr.FolderPath, LibraryName = jsTree.attr.LibraryName, Name = jsTree.attr.Name, isLast = jsTree.attr.isLast, id = jsTree.attr.id }; return jsTreeNodeModel; }
public JsTreeTagHelperTests() { JsTree tree = new JsTree(); tree.SelectedIds.Add(4567); tree.SelectedIds.Add(12345); tree.Nodes.Add(new JsTreeNode("Test")); tree.Nodes[0].Nodes.Add(new JsTreeNode(12345, "Test1")); tree.Nodes[0].Nodes.Add(new JsTreeNode(23456, "Test2")); EmptyModelMetadataProvider provider = new EmptyModelMetadataProvider(); ModelExplorer explorer = new ModelExplorer(provider, provider.GetMetadataForProperty(typeof(JsTreeView), "JsTree"), tree); helper = new JsTreeTagHelper(); helper.For = new ModelExpression("JsTree", explorer); output = new TagHelperOutput("div", new TagHelperAttributeList(), (useCachedResult, encoder) => null); }
public override void Process(TagHelperContext context, TagHelperOutput output) { output.TagName = "div"; output.Content.Clear(); string id = "tree"; if (Id.IsPresent()) { id = $"tree-{Id}"; } JsTree tree = new JsTree(_dataAccessor, _rbacService, _applicationContext, id); tree.SetAsync(IsAsync); if (IsOrgdept) { tree.IsOrgDept(); } if (GetUrl.IsPresent()) { tree.SetUrl(GetUrl); } if (EditUrl.IsPresent()) { tree.SetEditUrl(EditUrl); } if (JsonData.IsPresent()) { tree.SetJsonData(JsonData); } if (TreeMode != null) { tree.SetTreeModel(TreeMode); } if (OnOpenNoded.IsPresent()) { tree.OnOpenNodedEvent(OnOpenNoded); } if (OnLoaded.IsPresent()) { tree.OnLoadedEvent(OnLoaded); } tree.SetPluginDnd(PluginDnd); tree.SetPluginCheckBox(PluginCheckbox); output.Content.AppendHtml(tree.ToString()); }
private TagBuilder HiddenIdsFor(JsTree model) { String name = For.Name + ".SelectedIds"; TagBuilder ids = new TagBuilder("div"); ids.AddCssClass("js-tree-view-ids"); foreach (Int32 id in model.SelectedIds) { TagBuilder input = new TagBuilder("input"); input.TagRenderMode = TagRenderMode.SelfClosing; input.Attributes["value"] = id.ToString(); input.Attributes["type"] = "hidden"; input.Attributes["name"] = name; ids.InnerHtml.AppendHtml(input); } return(ids); }
private TagBuilder HiddenIdsFor(JsTree jsTree) { String name = For.Name + ".SelectedIds"; TagBuilder ids = new TagBuilder("div"); ids.AddCssClass("js-tree-view-ids"); foreach (String id in jsTree.SelectedIds) { TagBuilder input = new TagBuilder("input"); input.TagRenderMode = TagRenderMode.SelfClosing; input.MergeAttribute("type", "hidden"); input.MergeAttribute("name", name); input.MergeAttribute("value", id); ids.InnerHtml.Append(input); } return(ids); }
public JsTree JsTreeWithFoldersAndGuidanceItems() { var jsTree = new JsTree(); Func <Guid, List <Folder_V3>, JsTreeNode, List <Guid> > mapFolders = null; Func <Guid, Guid, List <Guid>, JsTreeNode, List <Guid> > mapViews = null; //precalculate for performance reasons var allViews = new Dictionary <Guid, View_V3>(); foreach (var view in javascriptProxy.GetViews()) { allViews.Add(view.viewId, view); } mapViews = (libraryId, folderId, viewIds, targetNode) => { var viewsId = new List <Guid>(); foreach (var viewId in viewIds) { var view = allViews[viewId]; //GetViewById(viewId.str()); var viewNodeText = view.viewId.str(); var viewNode = targetNode.add_Node(view.caption, viewNodeText); //viewNode.state = "closed"; // views don't need this viewNode.data.icon = "/Images/ViewIcon.png"; viewsId.add(view.viewId); } return(viewsId); }; mapFolders = (libraryId, folders, targetNode) => { var folderViewsId = new List <Guid>(); foreach (var folder in folders) { var subFolderViewsId = new List <Guid>(); var folderId = folder.folderId; var folderNode = targetNode.add_Node(folder.name); folderNode.state = "closed"; folderNode.data.icon = "/Images/FolderIcon.png"; subFolderViewsId.AddRange(mapFolders(libraryId, folder.subFolders, folderNode)); var viewIds = (from view in folder.views select view.viewId).toList(); subFolderViewsId.AddRange(mapViews(libraryId, folderId, viewIds, folderNode)); folderNode.attr.id = folderId.str(); folderViewsId.AddRange(subFolderViewsId); } return(folderViewsId); }; var sessionLibraryID = GetCurrentSessionLibrary(); var libraries = (sessionLibraryID == Guid.Empty) ? javascriptProxy.GetLibraries() : javascriptProxy.GetLibraryById(sessionLibraryID).wrapOnList(); foreach (var library in libraries) { var libraryNode = jsTree.add_Node(library.Caption); var mappedFolders = new Dictionary <string, List <Folder_V3> >(); mapFolders(library.Id, javascriptProxy.GetFolders(library.Id), libraryNode); mapViews(library.Id, Guid.Empty, javascriptProxy.GetViewsInLibraryRoot(library.Id.str()).guids(), libraryNode); //libraryNode.state = "open"; libraryNode.state = "closed"; libraryNode.data.icon = "/Images/SingleLibrary.png"; var libraryNodeText = library.Id.str(); libraryNode.attr.id = libraryNodeText; } return(jsTree); }
/// <summary> /// 拉取分类树 /// </summary> /// <param name="useType"></param> /// <param name="selectIds"></param> /// <param name="serviceProvider">依赖注入</param> /// <returns></returns> public static async Task <List <Dictionary <string, object> > > PullTree( this IServiceProvider serviceProvider, int useType, params string[] selectIds) { var parentKeyList = new Dictionary <string, List <string> >(); var resultForSelectIds = await Task.WhenAll(selectIds.Select(async T => { List <string> outList = new List <string>(); await FindParent(serviceProvider, T, outList); return(T, outList); })); foreach (var resultInfo in resultForSelectIds) { if (resultInfo.T.IsNullOrEmpty()) { continue; } if (parentKeyList.ContainsKey(resultInfo.T)) { continue; } parentKeyList.TryAdd(resultInfo.T, resultInfo.outList); } var classList = await ClassificationContext.GetListPageWithUseType_ParentID( serviceProvider, new NetCore.PageInfo(0, 10000), useType, ClassificationContext.EmptyContext(serviceProvider)); List <Dictionary <string, object> > outTree = new List <Dictionary <string, object> >(); await JsTree.LoadWithzTree( serviceProvider, classList, outTree, async (treeData, itree) => { var treeId = await itree.TreeId(); if (parentKeyList.ContainsKey(treeId)) { treeData["selected"] = true; treeData["expanded"] = true; } else { treeData["selected"] = false; var result = from KV in parentKeyList where KV.Value.Exists(V => V == treeId) select true; if (result.Count() > 0) { treeData["expanded"] = true; } else { treeData["expanded"] = false; } } treeData["title"] = await itree.TreeName(); treeData["key"] = await itree.TreeId(); }, true); return(outTree); }
public JsTreeView() { JsTree = new JsTree(); }
public RoleView() { Permissions = new JsTree(); }
public RoleView() { PrivilegesTree = new JsTree(); }