📄 homeadmin.cs
字号:
//------------------------------------------------------------------------------
// <copyright company="Telligent Systems">
// Copyright (c) Telligent Systems Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
using System;
using System.Collections;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using CommunityServer.Components;
namespace CommunityServer.Controls {
/// <summary>
/// This control displays the admin section's home content.
/// </summary>
[
ParseChildren( true ),
PersistChildren( false ),
]
public class HomeAdmin : TemplatedWebControl {
protected override void OnLoad(EventArgs e) {
currentUser = CSContext.Current.User;
if ( !Page.IsPostBack ) {
this.DataBind();
}
base.OnLoad (e);
}
User currentUser = null;
protected override void AttachChildControls() {
newVersionAvailable = (Panel)this.FindControl("NewVersionAvailable");
newVersion = (Label)this.FindControl("NewVersion");
downloadVersion = (HyperLink)this.FindControl("DownloadVersion");
versionModified = (Panel)this.FindControl("VersionModified");
customVersion = (Label)this.FindControl("CustomVersion");
unableToRetrieveVersionData = (Panel)this.FindControl("UnableToRetrieveVersionData");
unknownVersion = (Label)this.FindControl("UnknownVersion");
enableRetrieval = (Label)this.FindControl("EnableRetrieval");
forumsRunning = (Literal)this.FindControl("ForumsRunning");
userWaiting = (Literal)this.FindControl("UserWaiting");
postWaiting = (Literal)this.FindControl("PostWaiting");
emailQueue = (Literal)this.FindControl("EmailQueue");
shortCutsTitle = (Label)this.FindControl("ShortCutsTitle");
shortCuts = (Label)this.FindControl("ShortCuts");
developersTitle = (Label)this.FindControl("DevelopersTitle");
developers = (Label)this.FindControl("Developers");
FindControl("AdminLinksCell").Visible = currentUser.IsAdministrator; //NEED to update this to include individual roles
}
private void SetSettings(SiteSettings siteSettings, User user)
{
if(user.IsModerator)
{
string[] userWaitingInfo = new string[2];
string[] postWaitingInfo = new string[2];
string[] emailQueueInfo = new string[1];
UserSet users = Users.GetUsers(0, 1, SortUsersBy.JoinedDate, SortOrder.Ascending, "", false, false, UserAccountStatus.ApprovalPending, true, true);
userWaitingInfo[0] = users.TotalRecords.ToString();
userWaitingInfo[1] = "<a href=\"" + Globals.GetSiteUrls().AdminManageUsersFilter(UserAccountStatus.ApprovalPending) + "\">" + ResourceManager.GetString("AccountStatus_Approved") + "</a>";
// Check how many posts are awaiting moderation approval,
// by looping through and totalling the forums to moderate.
//
// ArrayList forumsToModerate = Moderate.GetForumsToModerate();
int totalPosts = 0;
// foreach (Forum f in forumsToModerate)
// {
// totalPosts += f.PostsToModerate;
// }
postWaitingInfo[0] = totalPosts.ToString();
postWaitingInfo[1] = "<a href=\"" + Globals.GetSiteUrls().ModerationHome + "\">" + ResourceManager.GetString("Moderation") + "</a>";
// Check how many emails are in the queue.
// EAD 5/25/2004: This is costly, as it touches the
// DB on every occurance.
//
ArrayList emails = Emails.EmailsInQueue(siteSettings.SettingsID);
emailQueueInfo[0] = Convert.ToString(emails.Count);
this.userWaiting.Text = String.Format( ResourceManager.GetString("Admin_Home_UserWaiting"), userWaitingInfo);
this.postWaiting.Text = String.Format( ResourceManager.GetString("Admin_Home_PostWaiting"), postWaitingInfo);
this.emailQueue.Text = String.Format( ResourceManager.GetString("Admin_Home_EmailQueue"), emailQueueInfo) + ResourceManager.GetString("Admin_Home_EmailQueueForceSend");
}
}
private void SystemInfo(SiteSettings siteSettings, User user)
{
if(user.IsAdministrator)
{
string[] forumsRunningInfo = new string[5];
// check to see if the forums are enabled or disabled.
//
if (siteSettings.ForumsDisabled)
forumsRunningInfo[0] = ResourceManager.GetString("Disabled");
else
forumsRunningInfo[0] = ResourceManager.GetString("Enabled");
// Get the starttime of the W3CSVC service.
//
// Due to Process Model not enabled in 2003 Server by default,
// this may be blank.
try
{
ProcessInfo processInfo = ProcessModelInfo.GetCurrentProcessInfo();
forumsRunningInfo[1] = processInfo.StartTime.ToString();
forumsRunningInfo[2] = processInfo.Age.Days.ToString();
forumsRunningInfo[3] = processInfo.Age.Hours.ToString();
forumsRunningInfo[4] = processInfo.Age.Minutes.ToString();
}
catch
{
forumsRunningInfo[1] = ResourceManager.GetString("NotAvailable");
forumsRunningInfo[2] = "";
forumsRunningInfo[3] = "";
forumsRunningInfo[4] = "";
}
// Check how many users are awaiting moderation approval.
//
this.forumsRunning.Text = String.Format( ResourceManager.GetString("Admin_Home_Running"), forumsRunningInfo);
}
}
public override void DataBind() {
base.DataBind();
#region New Version
newVersion.Text = ResourceManager.GetString("Admin_Home_NewVersion");
#endregion
#region Custom Version
customVersion.Text = ResourceManager.GetString("Admin_Home_CustomVersion");
#endregion
#region Unknown Version
unknownVersion.Text = ResourceManager.GetString("Admin_Home_UnknownVersion");
enableRetrieval.Text = ResourceManager.GetString("Admin_Home_EnableRetrieval");
#endregion
#region Stats
#region Collect Info
SiteSettings siteSettings = SiteSettingsManager.GetSiteSettings(Context);
SetSettings(siteSettings,currentUser);
SystemInfo(siteSettings,currentUser);
#endregion
#endregion
#region Shortcuts
shortCutsTitle.Text = ResourceManager.GetString("Admin_Home_ShortCuts");
#endregion
#region Version
if(currentUser.IsAdministrator)
{
newVersionAvailable.Visible = false;
versionModified.Visible = false;
}
#endregion
}
#region Child Controls
Panel newVersionAvailable;
Label newVersion;
HyperLink downloadVersion;
Panel versionModified;
Label customVersion;
Panel unableToRetrieveVersionData;
Label unknownVersion;
Label enableRetrieval;
Literal forumsRunning;
Literal userWaiting;
Literal postWaiting;
Literal emailQueue;
Label shortCutsTitle;
Label shortCuts;
Label developersTitle;
Label developers;
#endregion
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -