⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 grouptreeviewcontrol.ascx

📁 community server 源码
💻 ASCX
📖 第 1 页 / 共 2 页
字号:
<%@ Control Language="c#" AutoEventWireup="false" Codebehind="GroupTreeViewControl.ascx.cs" Inherits="CommunityServer.ControlPanel.BlogAdmin.GroupTreeViewControl" TargetSchema="http://schemas.microsoft.com/intellisense/ie5" %>
<%@ Register TagPrefix="CS" Namespace="CommunityServer.Controls" Assembly="CommunityServer.Controls" %>
<%@ Register TagPrefix="CP" Namespace="CommunityServer.ControlPanel.Controls" Assembly="CommunityServer.Web" %>
<%@ Register TagPrefix="CA" Namespace="ComponentArt.Web.UI" Assembly="ComponentArt.Web.UI" %>
<script language="javascript">
<!--
var nodeLastSelected = null;
var nodeMoved = null;
var nodeNeedsResorted = false;
var newSectionNode;
var groupNodeSelected = null;
var newNodeSeq = 0;
var newNodeGroupID = 0;
window.top.location

// Splits the node's value and returns the GroupID part
function getGroupID(node)
{
	splits = node.GetProperty('Value').split(":");
	return splits[0];
}

// Splits the node's value and returns the SectionID part
function getSectionID(node)
{
	splits = node.GetProperty('Value').split(":");
	return splits[1];
}
function updateGroupNode(newName)
{
	var updateNode = window.<%=this.Tree.ClientObjectId%>.SelectedNode
	if(updateNode == null)
		window.location = window.location;
		
	updateNode.SetProperty('Text',newName);
	//updateNode.SaveState();
	window.<%=this.Tree.ClientObjectId%>.Render();
}
function updateSectionNode(newName, isActive)
{
	var updateNode = window.<%=this.Tree.ClientObjectId%>.SelectedNode
	if(updateNode == null)
		window.location = window.location;
	
	if(isActive == 'True') //used for enabled
	{
		//updateNode.ImageUrl = "notes.gif";
		//updateNode.Checked = 1;
		updateNode.SetProperty('ImageUrl', "notes.gif");
		updateNode.SetProperty('Checked', 1);
	}
	else
	{
		//updateNode.ImageUrl = "notesdisabled.gif";
		//updateNode.Checked = null;
		updateNode.SetProperty('ImageUrl', "notesdisabled.gif");
		updateNode.SetProperty('Checked', null);
	}
	
	updateNode.SetProperty('Text',newName);
	//updateNode.SaveState();
	window.<%=this.Tree.ClientObjectId%>.Render();
}
function treeContextMenu(treeNode, e)
{
	nodeLastSelected = treeNode;
	groupID = getGroupID(treeNode);
	sectionID = getSectionID(treeNode);
	
	// Determine whether to call Group or Section context menu
	if (sectionID > 0)
	{
		if(treeNode.Checked == 1) //used for enabled
			window.<%=this.SectionEnabledContextMenu.ClientID%>.ShowContextMenu(treeNode, e, groupID, sectionID);
		else
			window.<%=this.SectionDisabledContextMenu.ClientID%>.ShowContextMenu(treeNode, e, groupID, sectionID);
	}
	else
		window.<%=this.GroupContextMenu.ClientID%>.ShowContextMenu(treeNode, e, groupID, sectionID);
		
	return true;
}

function nodeSelect(node)
{
	nodeLastSelected = node;
	if (getSectionID(node) < 0)
	{
		groupNodeSelected = node;
		window.frames["sectionEditFrame"].location  = "IFrameHost.aspx?SectionID=0&GroupID=" + getGroupID(node);
	}
	else
	{
		window.frames["sectionEditFrame"].location  = "IFrameHost.aspx?SectionID=" + getSectionID(node) + "&GroupID=" + getGroupID(node);
	}
}

function nodeRename(sourceNode, newName)
{ 
	newName = newName.replace(/^\s*|\s*$/g,"");
	if(newName.length == 0)
	{
		alert('<%= CommunityServer.ControlPanel.Components.ResourceManager.GetString("CP_Forums_TreeView_BlankGroupName") %>');
		return false;
	}

	window.<%=this.Tree.ClientObjectId%>.SelectedNode.SetProperty('Text', newName);
	
	// Determine whether this is a new node (doesn't exist server-side yet) or an existing one
	var groupID = getGroupID(sourceNode);
	var sectionID = getSectionID(sourceNode);
	
	//CA is allowing the user to edit the new section node so trap it here
	if (sectionID > 0)
	{
		window.location = window.location;
	}
	if (sectionID == 0)
	{
		window.<%=this.Tree.ClientObjectId%>.Render();
		GroupTreeViewControl.AddSection('<%= this.ClientID %>', groupID, newName, AddSectionCallBack);
		return false;
	}
	if (groupID > 0)
	{
		// Existing Node - just rename
		RenameGroup(groupID, newName);
	}
	else
	{
		// New node - add it to the Groups collection server-side
	  	AddGroup(newName);
	}


  return true; 
}

function checkNodeIndex(node)
{
	if (nodeNeedsResorted == true && nodeMoved != null)
	{
		nodeNeedsResorted = false;
		index = nodeMoved.GetCurrentIndex();
		groupID = getGroupID(nodeMoved);
		sectionID = getSectionID(nodeMoved);
		nodeMoved = null;
		
		ReorderForumOrGroup(groupID, sectionID, index);
	}
}



function UpdateGroupNode(name)
{
	if (groupNodeSelected != null)
	{
		//groupNodeSelected.Text = name;
		groupNodeSelected.SetProperty('Text', name);
		//groupNodeSelected.SaveState();
		groupNodeSelected.ParentTreeView.Render();
	}
}

//function UpdateSectionNode(groupID, sectionID, name)
//{
//	if (newSectionNode != null)
//	{
//		newSectionNode.Text = name;
//		newSectionNode.Value = groupID + ":" + sectionID;
//		newSectionNode.NavigateUrl = "IFrameHost.aspx?GroupID=" + groupID + "&SectionID=" + sectionID;
//		newSectionNode.Target = "sectionEditFrame";
//		newSectionNode.SaveState();
//		newSectionNode.ParentTreeView.Render();
//	}
//}

//## MOVE ##

function nodeMove(sourceNode, targetNode)
{
	nodeMoved = sourceNode;
	nodeNeedsResorted = false;

	sourceSectionID = getSectionID(sourceNode);
	sourceGroupID = getGroupID(sourceNode);
	targetGroupID = getGroupID(targetNode);
	targetSectionID = getSectionID(targetNode);
	
	//alert(sourceGroupID + ':' + sourceSectionID + ':' + targetGroupID + ':' + targetSectionID);
	
	// Check if user is trying to drop a group inside a group or forum
	if (sourceSectionID < 0)
	{
		if (targetGroupID > 0)
		{
			//dragging a group into a group or section
			alert("<%= CommunityServer.ControlPanel.Components.ResourceManager.GetString("CP_BlogAdmin_GroupManager_NestGroupError") %>");
			return false;
		}
		
		nodeNeedsResorted = true;
	}

	if (sourceSectionID > 0)
	{
		if (targetNode == null || targetNode.ID == "RootNode")
		{
			//dragging a section to the root
			alert('<%= CommunityServer.ControlPanel.Components.ResourceManager.GetString("CP_BlogAdmin_GroupManager_FolderToRootError") %>');
			return false;
		}
	
		//check if the user is trying to drop a section in a section
		//(it might be safe just to assume the selected group andpass in -1 for the section id)
		if (targetSectionID != -1)
		{
			alert('<%= CommunityServer.ControlPanel.Components.ResourceManager.GetString("CP_Forums_TreeView_NodeMoveError") %>');
			return false;
		}
		MoveSection(sourceGroupID, sourceSectionID, targetGroupID, targetSectionID);
	}
	

	return true; 
}
function MoveSection(groupID ,sectionID, targetGroupID, targetSectionID)
{
	GroupTreeViewControl.MoveSection('<%= this.ClientID %>',groupID ,sectionID, targetGroupID, targetSectionID, MoveSectionCallBack);
}
function MoveSectionCallBack(res)
{
	// Check if this is a section that needs the sort order changed
	if (res.value == "-1")
	{
		if (nodeMoved != null)
		{
			index = nodeMoved.GetCurrentIndex();
			groupID = getGroupID(nodeMoved);
			sectionID = getSectionID(nodeMoved);
			nodeMoved = null;
		
			ReorderForumOrGroup(groupID, sectionID, index);
		}
	}
	else
	{
		var retVals = res.value.split("^");
		var groupID = retVals[0];
		var newGroupID = retVals[1];
		var sectionID = retVals[2];
		var newSectionID = retVals[3];
		
		var nodeMoved = window.<%=this.Tree.ClientObjectId%>.FindNodeById(groupID + ":" + sectionID);
		
		//nodeMoved.Value = newGroupID + ":" + sectionID;
		//nodeMoved.ID = newGroupID + ":" + sectionID;
		//nodeMoved.NavigateUrl = 'IFrameHost.aspx?GroupID=' + newGroupID + '&SectionID=' + sectionID;
		//nodeMoved.Target = "sectionEditFrame";

		nodeMoved.SetProperty('Value', newGroupID + ":" + sectionID);
		nodeMoved.SetProperty('ID', newGroupID + ":" + sectionID);
		nodeMoved.SetProperty('NavigateUrl', 'IFrameHost.aspx?GroupID=' + newGroupID + '&SectionID=' + sectionID);
		nodeMoved.SetProperty('Target', "sectionEditFrame");

		window.<%=this.Tree.ClientObjectId%>.Render();
		
		var selectedNode = window.<%=this.Tree.ClientObjectId%>.SelectedNode;
		if (selectedNode != null && getSectionID(selectedNode) == sectionID)
		{
			nodeSelect(nodeMoved);
		}
	}
}

//## MOVE REORDER ##
function ReorderForumOrGroup(groupID, sectionID, index)
{
	GroupTreeViewControl.ReorderForumOrGroup('<%= this.ClientID %>', groupID, sectionID, index, NoResponseCallBack);
}
function NoResponseCallBack(res)
{
	// Do Nothing
}
//## END MOVE REORDER ##

//## END MOVE ##

function RenameGroup(groupID, newName)
{
	GroupTreeViewControl.RenameGroup('<%= this.ClientID %>',groupID, newName, RenameGroupCallBack);
}

function RenameGroupCallBack(res)
{
	// Reload group edit control
	groupID = res.value;
	if (groupID > 0)
	{
		window.frames["sectionEditFrame"].location  = "IFrameHost.aspx?SectionID=0&GroupID=" + groupID;
	}
	else
	{
		alert('<%= CommunityServer.ControlPanel.Components.ResourceManager.GetString("CP_Forums_TreeView_DuplicateGroupName") %>');
		//refresh the page
		window.location = window.location;
	}
}

//## ADD ##

//## ADD GROUP ##
function AddGroup()
{
	toggleButtons();
	GroupTreeViewControl.AddGroup('<%= this.ClientID %>', AddGroupCallBack);
}
       
function AddGroupCallBack(res)
{
	var retVals = res.value.split("^");
	var groupID = retVals[0];
	var groupName = retVals[1];

	if (groupID == '-1')
	{
		alert('<%= CommunityServer.ControlPanel.Components.ResourceManager.GetString("CP_Forums_TreeView_DuplicateGroupName") %>');
	}
	else
	{
		AddGroupNode(groupID, groupName)
		toggleButtons();
		window.frames["sectionEditFrame"].location  = "IFrameHost.aspx?SectionID=0&GroupID=" + groupID;
	}
	return;
}

function AddGroupNode(groupID, groupName)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -