UI changes
This commit is contained in:
parent
1567ef9f15
commit
d063e2ce2d
12 changed files with 139 additions and 101 deletions
|
@ -12,5 +12,6 @@ namespace WebsitePanel.Providers.RemoteDesktopServices
|
|||
public string UnifiedSessionId { get; set; }
|
||||
public string SessionState { get; set; }
|
||||
public string HostServer { get; set; }
|
||||
public string DomainName { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
|
@ -33,5 +33,6 @@ namespace WebsitePanel.Providers.RemoteDesktopServices
|
|||
public string DisplayName { get; set; }
|
||||
public string FilePath { get; set; }
|
||||
public string FileVirtualPath { get; set; }
|
||||
public string RequiredCommandLine { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1739,8 +1739,6 @@ namespace WebsitePanel.Providers.RemoteDesktopServices
|
|||
cmd.Parameters.Add("CollectionName", collectionName);
|
||||
cmd.Parameters.Add("ConnectionBroker", ConnectionBroker);
|
||||
var userSessions = ExecuteShellCommand(runSpace, cmd, false, out errors);
|
||||
|
||||
//var userSessions = ExecuteShellCommand(runSpace, scripts, out errors);
|
||||
var properties = typeof(RdsUserSession).GetProperties();
|
||||
|
||||
foreach(var userSession in userSessions)
|
||||
|
|
|
@ -147,4 +147,7 @@
|
|||
<data name="cmdLogOff.ToolTip" xml:space="preserve">
|
||||
<value>Log Off</value>
|
||||
</data>
|
||||
<data name="btnRefresh.Text" xml:space="preserve">
|
||||
<value>Refresh</value>
|
||||
</data>
|
||||
</root>
|
|
@ -23,50 +23,57 @@
|
|||
<div class="FormBody">
|
||||
<wsp:CollectionTabs id="tabs" runat="server" SelectedTab="rds_collection_user_sessions" />
|
||||
<wsp:SimpleMessageBox id="messageBox" runat="server" />
|
||||
|
||||
<wsp:CollapsiblePanel id="secRdsUserSessions" runat="server"
|
||||
TargetControlID="panelRdsUserSessions" meta:resourcekey="secRdsUserSessions" Text="">
|
||||
</wsp:CollapsiblePanel>
|
||||
|
||||
<asp:Panel runat="server" ID="panelRdsUserSessions">
|
||||
<div style="padding: 10px;">
|
||||
<asp:GridView ID="gvRDSUserSessions" runat="server" AutoGenerateColumns="False" EnableViewState="true"
|
||||
Width="100%" EmptyDataText="gvRDSUserSessions" CssSelectorClass="NormalGridView"
|
||||
OnRowCommand="gvRDSCollections_RowCommand" AllowPaging="True" AllowSorting="True">
|
||||
<Columns>
|
||||
<asp:TemplateField meta:resourcekey="gvUserName" HeaderText="gvUserName">
|
||||
<ItemStyle Width="30%" Wrap="false"/>
|
||||
<ItemTemplate>
|
||||
<asp:Literal ID="litUserName" runat="server" Text='<%# Eval("UserName") %>'/>
|
||||
<asp:HiddenField ID="hfUnifiedSessionId" runat="server" Value='<%# Eval("UnifiedSessionId") %>'/>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField meta:resourcekey="gvHostServer" HeaderText="gvHostServer">
|
||||
<ItemStyle Width="30%" Wrap="false"/>
|
||||
<ItemTemplate>
|
||||
<asp:Literal ID="litHostServer" runat="server" Text='<%# Eval("HostServer") %>'/>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField meta:resourcekey="gvSessionState" HeaderText="gvSessionState">
|
||||
<ItemStyle Width="30%" Wrap="false"/>
|
||||
<ItemTemplate>
|
||||
<asp:Literal ID="litSessionState" runat="server" Text='<%# Eval("SessionState") %>'/>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField>
|
||||
<ItemTemplate>
|
||||
<asp:LinkButton ID="lnkLogOff" runat="server" Text="Log Off" CommandName="LogOff" CommandArgument='<%# Eval("UnifiedSessionId") + ";" + Eval("HostServer") %>'
|
||||
meta:resourcekey="cmdLogOff" OnClientClick="return confirm('Are you sure you want to log off selected user?')"></asp:LinkButton>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
</Columns>
|
||||
</asp:GridView>
|
||||
</div>
|
||||
</asp:Panel>
|
||||
<div class="FormFooterClean">
|
||||
<wsp:ItemButtonPanel id="buttonPanel" runat="server" ValidationGroup="SaveRDSCollection"
|
||||
OnSaveClick="btnSave_Click" OnSaveExitClick="btnSaveExit_Click" />
|
||||
</div>
|
||||
<asp:UpdatePanel ID="RDAppsUpdatePanel" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
|
||||
<ContentTemplate>
|
||||
<div class="FormButtonsBarCleanRight">
|
||||
<div class="FormButtonsBarClean">
|
||||
<asp:Button ID="btnRefresh" runat="server" Text="Refresh" CssClass="Button1" OnClick="btnRefresh_Click" OnClientClick="ShowProgressDialog('Loading'); return true;" meta:resourcekey="btnRefresh" />
|
||||
</div>
|
||||
</div>
|
||||
<wsp:CollapsiblePanel id="secRdsUserSessions" runat="server"
|
||||
TargetControlID="panelRdsUserSessions" meta:resourcekey="secRdsUserSessions" Text="">
|
||||
</wsp:CollapsiblePanel>
|
||||
<asp:Panel runat="server" ID="panelRdsUserSessions">
|
||||
<div style="padding: 10px;">
|
||||
<asp:GridView ID="gvRDSUserSessions" runat="server" AutoGenerateColumns="False" EnableViewState="true"
|
||||
Width="100%" EmptyDataText="gvRDSUserSessions" CssSelectorClass="NormalGridView"
|
||||
OnRowCommand="gvRDSCollections_RowCommand" AllowPaging="True" AllowSorting="True">
|
||||
<Columns>
|
||||
<asp:TemplateField meta:resourcekey="gvUserName" HeaderText="gvUserName">
|
||||
<ItemStyle Width="30%" Wrap="false"/>
|
||||
<ItemTemplate>
|
||||
<asp:Literal ID="litUserName" runat="server" Text='<%# string.Format("{0}\\{1}", Eval("DomainName"), Eval("UserName")) %>'/>
|
||||
<asp:HiddenField ID="hfUnifiedSessionId" runat="server" Value='<%# Eval("UnifiedSessionId") %>'/>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField meta:resourcekey="gvHostServer" HeaderText="gvHostServer">
|
||||
<ItemStyle Width="30%" Wrap="false"/>
|
||||
<ItemTemplate>
|
||||
<asp:Literal ID="litHostServer" runat="server" Text='<%# Eval("HostServer") %>'/>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField meta:resourcekey="gvSessionState" HeaderText="gvSessionState">
|
||||
<ItemStyle Width="30%" Wrap="false"/>
|
||||
<ItemTemplate>
|
||||
<asp:Literal ID="litSessionState" runat="server" Text='<%# Eval("SessionState") %>'/>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField>
|
||||
<ItemTemplate>
|
||||
<asp:LinkButton ID="lnkLogOff" runat="server" Text="Log Off" CommandName="LogOff" CommandArgument='<%# Eval("UnifiedSessionId") + ";" + Eval("HostServer") %>'
|
||||
meta:resourcekey="cmdLogOff" OnClientClick="return confirm('Are you sure you want to log off selected user?')"></asp:LinkButton>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
</Columns>
|
||||
</asp:GridView>
|
||||
</div>
|
||||
</asp:Panel>
|
||||
<div class="FormFooterClean">
|
||||
<wsp:ItemButtonPanel id="buttonPanel" runat="server" ValidationGroup="SaveRDSCollection"
|
||||
OnSaveClick="btnSave_Click" OnSaveExitClick="btnSaveExit_Click" />
|
||||
</div>
|
||||
</ContentTemplate>
|
||||
</asp:UpdatePanel>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
using System;
|
||||
using AjaxControlToolkit;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
|
@ -17,7 +18,7 @@ namespace WebsitePanel.Portal.RDS
|
|||
if (!IsPostBack)
|
||||
{
|
||||
var collection = ES.Services.RDS.GetRdsCollection(PanelRequest.CollectionID);
|
||||
litCollectionName.Text = collection.Name;
|
||||
litCollectionName.Text = collection.DisplayName;
|
||||
BindGrid();
|
||||
}
|
||||
}
|
||||
|
@ -34,7 +35,7 @@ namespace WebsitePanel.Portal.RDS
|
|||
{
|
||||
ES.Services.RDS.LogOffRdsUser(PanelRequest.ItemID, unifiedSessionId, hostServer);
|
||||
BindGrid();
|
||||
|
||||
((ModalPopupExtender)asyncTasks.FindControl("ModalPopupProperties")).Hide();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
@ -49,6 +50,8 @@ namespace WebsitePanel.Portal.RDS
|
|||
{
|
||||
return;
|
||||
}
|
||||
|
||||
BindGrid();
|
||||
}
|
||||
|
||||
protected void btnSaveExit_Click(object sender, EventArgs e)
|
||||
|
@ -61,6 +64,17 @@ namespace WebsitePanel.Portal.RDS
|
|||
Response.Redirect(EditUrl("ItemID", PanelRequest.ItemID.ToString(), "rds_collections", "SpaceID=" + PanelSecurity.PackageId));
|
||||
}
|
||||
|
||||
protected void btnRefresh_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!Page.IsValid)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
BindGrid();
|
||||
((ModalPopupExtender)asyncTasks.FindControl("ModalPopupProperties")).Hide();
|
||||
}
|
||||
|
||||
private void BindGrid()
|
||||
{
|
||||
var userSessions = new List<RdsUserSession>();
|
||||
|
@ -74,6 +88,16 @@ namespace WebsitePanel.Portal.RDS
|
|||
ShowErrorMessage("REMOTE_DESKTOP_SERVICES_USER_SESSIONS", ex);
|
||||
}
|
||||
|
||||
foreach(var userSession in userSessions)
|
||||
{
|
||||
var states = userSession.SessionState.Split('_');
|
||||
|
||||
if (states.Length == 2)
|
||||
{
|
||||
userSession.SessionState = states[1];
|
||||
}
|
||||
}
|
||||
|
||||
gvRDSUserSessions.DataSource = userSessions;
|
||||
gvRDSUserSessions.DataBind();
|
||||
}
|
||||
|
|
|
@ -66,6 +66,24 @@ namespace WebsitePanel.Portal.RDS {
|
|||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.UserControls.SimpleMessageBox messageBox;
|
||||
|
||||
/// <summary>
|
||||
/// RDAppsUpdatePanel control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.UpdatePanel RDAppsUpdatePanel;
|
||||
|
||||
/// <summary>
|
||||
/// btnRefresh control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Button btnRefresh;
|
||||
|
||||
/// <summary>
|
||||
/// secRdsUserSessions control.
|
||||
/// </summary>
|
||||
|
|
|
@ -138,9 +138,6 @@
|
|||
<data name="btnDelete.Text" xml:space="preserve">
|
||||
<value>Delete</value>
|
||||
</data>
|
||||
<data name="btnFullDesktopConnection.Text" xml:space="preserve">
|
||||
<value>Add Full Desktop Connection</value>
|
||||
</data>
|
||||
<data name="gvAppName.HeaderText" xml:space="preserve">
|
||||
<value>Remote Application Name</value>
|
||||
</data>
|
||||
|
|
|
@ -6,7 +6,6 @@
|
|||
<div class="FormButtonsBarClean">
|
||||
<asp:Button ID="btnAdd" runat="server" Text="Add..." CssClass="Button1" OnClick="btnAdd_Click" meta:resourcekey="btnAdd" />
|
||||
<asp:Button ID="btnDelete" runat="server" Text="Delete" CssClass="Button1" OnClick="btnDelete_Click" meta:resourcekey="btnDelete"/>
|
||||
<asp:Button ID="btnFullDesktopConnection" runat="server" Text="" CssClass="Button1" OnClick="btnFullDesktopConnection_Click" meta:resourcekey="btnFullDesktopConnection"/>
|
||||
</div>
|
||||
<asp:GridView ID="gvApps" runat="server" meta:resourcekey="gvApps" AutoGenerateColumns="False"
|
||||
Width="600px" CssSelectorClass="NormalGridView"
|
||||
|
@ -76,6 +75,7 @@
|
|||
<ItemTemplate>
|
||||
<asp:Literal ID="litName" runat="server" Text='<%# Eval("DisplayName") %>'></asp:Literal>
|
||||
<asp:HiddenField ID="hfFilePathPopup" runat="server" Value='<%# Eval("FilePath") %>'/>
|
||||
<asp:HiddenField ID="hfRequiredCommandLinePopup" runat="server" Value='<%# Eval("RequiredCommandLine") %>'/>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
</Columns>
|
||||
|
|
|
@ -106,37 +106,43 @@ namespace WebsitePanel.Portal.RDS.UserControls
|
|||
BindApps(selectedApps.ToArray(), true);
|
||||
}
|
||||
|
||||
protected void btnFullDesktopConnection_Click(object sender, EventArgs e)
|
||||
{
|
||||
var newApps = new RemoteApplication[]
|
||||
{
|
||||
new RemoteApplication
|
||||
{
|
||||
DisplayName = "Session Host",
|
||||
FilePath = "%SystemRoot%\\system32\\mstsc.exe",
|
||||
Alias = "mstsc",
|
||||
RequiredCommandLine = "/v:",
|
||||
ShowInWebAccess = true
|
||||
}
|
||||
};
|
||||
|
||||
BindApps(newApps, true);
|
||||
}
|
||||
|
||||
protected void BindPopupApps()
|
||||
{
|
||||
RdsCollection collection = ES.Services.RDS.GetRdsCollection(PanelRequest.CollectionID);
|
||||
StartMenuApp[] apps = ES.Services.RDS.GetAvailableRemoteApplications(PanelRequest.ItemID, collection.Name);
|
||||
List<StartMenuApp> apps = ES.Services.RDS.GetAvailableRemoteApplications(PanelRequest.ItemID, collection.Name).ToList();
|
||||
|
||||
var fullRemote = new StartMenuApp
|
||||
{
|
||||
DisplayName = "Session Host",
|
||||
FilePath = "%SystemRoot%\\system32\\mstsc.exe",
|
||||
RequiredCommandLine = string.Format("/v:{0}", collection.Servers.First().FqdName)
|
||||
};
|
||||
|
||||
var displayNames = GetApps().Select(p => p.DisplayName);
|
||||
apps = apps.Where(x => !displayNames.Contains(x.DisplayName)).ToList();
|
||||
|
||||
apps = apps.Where(x => !GetApps().Select(p => p.DisplayName).Contains(x.DisplayName)).ToArray();
|
||||
Array.Sort(apps, CompareAccount);
|
||||
if (Direction == SortDirection.Ascending)
|
||||
{
|
||||
Array.Reverse(apps);
|
||||
apps = apps.OrderBy(a => a.DisplayName).ToList();
|
||||
Direction = SortDirection.Descending;
|
||||
}
|
||||
else
|
||||
{
|
||||
apps = apps.OrderByDescending(a => a.DisplayName).ToList();
|
||||
Direction = SortDirection.Ascending;
|
||||
}
|
||||
|
||||
if (!displayNames.Contains(fullRemote.DisplayName))
|
||||
{
|
||||
if (apps.Count > 0)
|
||||
{
|
||||
apps.Insert(0, fullRemote);
|
||||
}
|
||||
else
|
||||
{
|
||||
apps.Add(fullRemote);
|
||||
}
|
||||
}
|
||||
|
||||
gvPopupApps.DataSource = apps;
|
||||
gvPopupApps.DataBind();
|
||||
|
@ -172,15 +178,6 @@ namespace WebsitePanel.Portal.RDS.UserControls
|
|||
}
|
||||
}
|
||||
|
||||
if (apps.Any(a => a.DisplayName.Equals("session host", StringComparison.CurrentCultureIgnoreCase)))
|
||||
{
|
||||
btnFullDesktopConnection.Enabled = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
btnFullDesktopConnection.Enabled = true;
|
||||
}
|
||||
|
||||
gvApps.DataSource = apps;
|
||||
gvApps.DataBind();
|
||||
}
|
||||
|
@ -226,7 +223,8 @@ namespace WebsitePanel.Portal.RDS.UserControls
|
|||
{
|
||||
Alias = (string)gvPopupApps.DataKeys[i][0],
|
||||
DisplayName = ((Literal)row.FindControl("litName")).Text,
|
||||
FilePath = ((HiddenField)row.FindControl("hfFilePathPopup")).Value
|
||||
FilePath = ((HiddenField)row.FindControl("hfFilePathPopup")).Value,
|
||||
RequiredCommandLine = ((HiddenField)row.FindControl("hfRequiredCommandLinePopup")).Value
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -39,15 +39,6 @@ namespace WebsitePanel.Portal.RDS.UserControls {
|
|||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Button btnDelete;
|
||||
|
||||
/// <summary>
|
||||
/// btnFullDesktopConnection control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Button btnFullDesktopConnection;
|
||||
|
||||
/// <summary>
|
||||
/// gvApps control.
|
||||
/// </summary>
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
<ItemStyle Width="10px" />
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField meta:resourcekey="gvUsersAccount" HeaderText="gvUsersAccount">
|
||||
<ItemStyle Width="60%" Wrap="false">
|
||||
<ItemStyle Width="96%" Wrap="false" HorizontalAlign="Left">
|
||||
</ItemStyle>
|
||||
<ItemTemplate>
|
||||
<asp:Literal ID="litAccount" runat="server" Text='<%# Eval("DisplayName") %>'></asp:Literal>
|
||||
|
@ -75,14 +75,14 @@
|
|||
<ItemStyle Width="10px" />
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField meta:resourcekey="gvAccountsDisplayName">
|
||||
<ItemStyle Width="50%"></ItemStyle>
|
||||
<ItemStyle Width="50%" HorizontalAlign="Left"></ItemStyle>
|
||||
<ItemTemplate>
|
||||
<asp:Image ID="imgAccount" runat="server" ImageUrl='<%# GetAccountImage((int)Eval("AccountType")) %>' ImageAlign="AbsMiddle" />
|
||||
<asp:Literal ID="litDisplayName" runat="server" Text='<%# Eval("DisplayName") %>'></asp:Literal>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField meta:resourcekey="gvAccountsEmail">
|
||||
<ItemStyle Width="50%"></ItemStyle>
|
||||
<ItemStyle Width="50%" HorizontalAlign="Left"></ItemStyle>
|
||||
<ItemTemplate>
|
||||
<asp:Literal ID="litPrimaryEmailAddress" runat="server" Text='<%# Eval("PrimaryEmailAddress") %>'></asp:Literal>
|
||||
</ItemTemplate>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue