Most of the member tree working, have the member editor rendering data

This commit is contained in:
Shannon
2013-09-27 15:19:39 +10:00
parent 30095000e6
commit 82c784d560
17 changed files with 541 additions and 85 deletions

View File

@@ -1,8 +1,11 @@
using System;
using System.Globalization;
using System.Linq;
using System.Net;
using System.Net.Http.Formatting;
using System.Web;
using System.Web.Http;
using System.Web.Security;
using Umbraco.Core;
using Umbraco.Core.Models;
using Umbraco.Core.Services;
@@ -11,9 +14,86 @@ using Umbraco.Web.Trees.Menu;
using umbraco;
using umbraco.BusinessLogic.Actions;
using Constants = Umbraco.Core.Constants;
using LegacyMember = umbraco.cms.businesslogic.member.Member;
namespace Umbraco.Web.Trees
{
[LegacyBaseTree(typeof (loadMembers))]
[Tree(Constants.Applications.Members, Constants.Trees.Members, "Members")]
[PluginController("UmbracoTrees")]
public class MemberTreeController : TreeController
{
protected override TreeNodeCollection GetTreeNodes(string id, FormDataCollection queryStrings)
{
var nodes = new TreeNodeCollection();
if (id == Constants.System.Root.ToInvariantString())
{
//list out all the letters
for (var i = 97; i < 123; i++)
{
var charString = ((char) i).ToString(CultureInfo.InvariantCulture);
nodes.Add(CreateTreeNode(charString, queryStrings, charString, "icon-folder-close", true));
}
//list out 'Others' if the membership provider is umbraco
if (LegacyMember.InUmbracoMemberMode())
{
nodes.Add(CreateTreeNode("others", queryStrings, "Others", "icon-folder-close", true));
}
}
else
{
//if it is a letter
if (id.Length == 1 && char.IsLower(id, 0))
{
if (LegacyMember.InUmbracoMemberMode())
{
//get the members from our member data layer
nodes.AddRange(
LegacyMember.getMemberFromFirstLetter(id.ToCharArray()[0])
.Select(m => CreateTreeNode(m.LoginName, queryStrings, m.Text, "icon-user")));
}
else
{
//get the members from the provider
int total;
nodes.AddRange(
Membership.Provider.FindUsersByName(id + "%", 0, 9999, out total).Cast<MembershipUser>()
.Select(m => CreateTreeNode(m.UserName, queryStrings, m.UserName, "icon-user")));
}
}
else if (id == "others")
{
//others will only show up when in umbraco membership mode
nodes.AddRange(
LegacyMember.getAllOtherMembers()
.Select(m => CreateTreeNode(m.Id.ToInvariantString(), queryStrings, m.Text, "icon-user")));
}
}
return nodes;
}
protected override MenuItemCollection GetMenuForNode(string id, FormDataCollection queryStrings)
{
var menu = new MenuItemCollection();
if (id == Constants.System.Root.ToInvariantString())
{
//set default
menu.DefaultMenuAlias = ActionNew.Instance.Alias;
// root actions
menu.AddMenuItem<ActionNew>();
menu.AddMenuItem<RefreshNode, ActionRefresh>(true);
return menu;
}
menu.AddMenuItem<ActionDelete>();
return menu;
}
}
[LegacyBaseTree(typeof(loadMedia))]
[Tree(Constants.Applications.Media, Constants.Trees.Media, "Media")]
[PluginController("UmbracoTrees")]