From b8c70903dacd211665f190d68d2ff9c887abb761 Mon Sep 17 00:00:00 2001 From: Jared Goodwin Date: Wed, 20 Mar 2019 15:08:31 -0700 Subject: [PATCH] Bug fixes to touch events on remote control, cursor map, console results, and auto updating. --- Remotely_Agent/Services/Bash.cs | 2 +- Remotely_Agent/Services/CMD.cs | 2 +- Remotely_Agent/Services/DeviceSocket.cs | 23 +++- Remotely_Agent/Services/WindowsPS.cs | 2 +- Remotely_Desktop/app.manifest | 2 +- Remotely_Library/Models/CommandContext.cs | 2 +- Remotely_Library/Models/ConnectionInfo.cs | 2 +- Remotely_Library/Models/Drive.cs | 2 +- Remotely_Library/Models/EventLog.cs | 2 +- Remotely_Library/Models/InviteLink.cs | 2 +- Remotely_Library/Models/Organization.cs | 2 +- Remotely_Library/Models/PermissionGroup.cs | 2 +- .../Models/RemotelyUserOptions.cs | 2 +- Remotely_Library/Models/SharedFile.cs | 2 +- Remotely_Server/API/CoreVersionController.cs | 2 +- Remotely_Server/CurrentAgentVersion.txt | 1 - Remotely_Server/CurrentVersion.txt | 1 + Remotely_Server/Remotely_Server.csproj | 2 +- .../Services/RCBrowserSocketHub.cs | 1 + Remotely_Server/Services/RCDeviceSocketHub.cs | 2 +- .../wwwroot/css/remote-control.css | 1 + Remotely_Server/wwwroot/css/site.css | 5 + .../scripts/RemoteControl/CursorMap.js | 4 +- .../scripts/RemoteControl/CursorMap.js.map | 2 +- .../scripts/RemoteControl/CursorMap.ts | 4 +- .../wwwroot/scripts/RemoteControl/UI.js | 101 ++++++---------- .../wwwroot/scripts/RemoteControl/UI.js.map | 2 +- .../wwwroot/scripts/RemoteControl/UI.ts | 110 +++++++----------- .../wwwroot/scripts/ResultsParser.js | 42 ++++--- .../wwwroot/scripts/ResultsParser.js.map | 2 +- .../wwwroot/scripts/ResultsParser.ts | 44 +++---- Utilities/Publish.ps1 | 2 +- 32 files changed, 175 insertions(+), 202 deletions(-) delete mode 100644 Remotely_Server/CurrentAgentVersion.txt create mode 100644 Remotely_Server/CurrentVersion.txt diff --git a/Remotely_Agent/Services/Bash.cs b/Remotely_Agent/Services/Bash.cs index ecfb852d..c35e7523 100644 --- a/Remotely_Agent/Services/Bash.cs +++ b/Remotely_Agent/Services/Bash.cs @@ -131,7 +131,7 @@ namespace Remotely_Agent.Services CommandType = "Bash", StandardOutput = StandardOut, ErrorOutput = "WARNING: The command execution froze and was forced to return before finishing. " + - "The results may be partial, and the console process has been reset." + + "The results may be partial, and the console process has been reset. " + "Please note that interactive commands aren't supported." + Environment.NewLine + ErrorOut }; ProcessIdleTimeout_Elapsed(this, null); diff --git a/Remotely_Agent/Services/CMD.cs b/Remotely_Agent/Services/CMD.cs index 76783b05..57bebf43 100644 --- a/Remotely_Agent/Services/CMD.cs +++ b/Remotely_Agent/Services/CMD.cs @@ -132,7 +132,7 @@ namespace Remotely_Agent.Services CommandType = "CMD", StandardOutput = StandardOut, ErrorOutput = "WARNING: The command execution froze and was forced to return before finishing. " + - "The results may be partial, and the console process has been reset." + + "The results may be partial, and the console process has been reset. " + "Please note that interactive commands aren't supported." + Environment.NewLine + ErrorOut }; ProcessIdleTimeout_Elapsed(this, null); diff --git a/Remotely_Agent/Services/DeviceSocket.cs b/Remotely_Agent/Services/DeviceSocket.cs index e246f08d..08666ac6 100644 --- a/Remotely_Agent/Services/DeviceSocket.cs +++ b/Remotely_Agent/Services/DeviceSocket.cs @@ -32,11 +32,28 @@ namespace Remotely_Agent.Services HubConnection = new HubConnectionBuilder() .WithUrl(ConnectionInfo.Host + "/DeviceHub") .Build(); + HubConnection.Closed += HubConn_Closed; RegisterMessageHandlers(HubConnection); - await HubConnection.StartAsync(); + try + { + await HubConnection.StartAsync(); + } + catch (Exception ex) + { + Logger.Write(ex); + if (!ConnectionInfo.Host.StartsWith("https")) + { + Logger.Write($"Failed to connect to {ConnectionInfo.Host}. Trying with HTTPS."); + ConnectionInfo.Host = ConnectionInfo.Host.ToLower().Replace("http:", "https:"); + Utilities.SaveConnectionInfo(ConnectionInfo); + Connect(); + return; + } + throw; + } var device = Device.Create(ConnectionInfo); @@ -45,7 +62,7 @@ namespace Remotely_Agent.Services if (string.IsNullOrWhiteSpace(ConnectionInfo.ServerVerificationToken)) { IsServerVerified = true; - ConnectionInfo.ServerVerificationToken = Guid.NewGuid().ToString().Replace("-",""); + ConnectionInfo.ServerVerificationToken = Guid.NewGuid().ToString(); await HubConnection.InvokeAsync("SetServerVerificationToken", ConnectionInfo.ServerVerificationToken); Utilities.SaveConnectionInfo(ConnectionInfo); } @@ -61,8 +78,6 @@ namespace Remotely_Agent.Services HeartbeatTimer = new Timer(300000); HeartbeatTimer.Elapsed += HeartbeatTimer_Elapsed; HeartbeatTimer.Start(); - - Updater.CheckForCoreUpdates(); } public static void SendHeartbeat() diff --git a/Remotely_Agent/Services/WindowsPS.cs b/Remotely_Agent/Services/WindowsPS.cs index 10c481b6..ab17269b 100644 --- a/Remotely_Agent/Services/WindowsPS.cs +++ b/Remotely_Agent/Services/WindowsPS.cs @@ -129,7 +129,7 @@ namespace Remotely_Agent.Services CommandType = "WinPS", StandardOutput = StandardOut, ErrorOutput = "WARNING: The command execution froze and was forced to return before finishing. " + - "The results may be partial, and the console process has been reset." + + "The results may be partial, and the console process has been reset. " + "Please note that interactive commands aren't supported." + Environment.NewLine + ErrorOut }; ProcessIdleTimeout_Elapsed(this, null); diff --git a/Remotely_Desktop/app.manifest b/Remotely_Desktop/app.manifest index 169e6185..46d39598 100644 --- a/Remotely_Desktop/app.manifest +++ b/Remotely_Desktop/app.manifest @@ -16,7 +16,7 @@ Remove this element if your application requires this virtualization for backwards compatibility. --> - + diff --git a/Remotely_Library/Models/CommandContext.cs b/Remotely_Library/Models/CommandContext.cs index 6c2a9a52..311b42ca 100644 --- a/Remotely_Library/Models/CommandContext.cs +++ b/Remotely_Library/Models/CommandContext.cs @@ -9,7 +9,7 @@ namespace Remotely_Library.Models public class CommandContext { [Key] - public string ID { get; set; } = Guid.NewGuid().ToString().Replace("-", ""); + public string ID { get; set; } = Guid.NewGuid().ToString(); public string CommandMode { get; set; } public string CommandText { get; set; } public string SenderUserID { get; set; } diff --git a/Remotely_Library/Models/ConnectionInfo.cs b/Remotely_Library/Models/ConnectionInfo.cs index 525af47c..c04f7d5b 100644 --- a/Remotely_Library/Models/ConnectionInfo.cs +++ b/Remotely_Library/Models/ConnectionInfo.cs @@ -6,7 +6,7 @@ namespace Remotely_Library.Models { public class ConnectionInfo { - public string DeviceID { get; set; } = Guid.NewGuid().ToString().Replace("-", ""); + public string DeviceID { get; set; } = Guid.NewGuid().ToString(); private string host; public string Host { diff --git a/Remotely_Library/Models/Drive.cs b/Remotely_Library/Models/Drive.cs index a9cf3ec1..e5be3586 100644 --- a/Remotely_Library/Models/Drive.cs +++ b/Remotely_Library/Models/Drive.cs @@ -9,7 +9,7 @@ namespace Remotely_Library.Models public class Drive { [Key] - public string ID { get; set; } = Guid.NewGuid().ToString().Replace("-", ""); + public string ID { get; set; } = Guid.NewGuid().ToString(); public DriveType DriveType { get; set; } public string RootDirectory { get; internal set; } public string Name { get; internal set; } diff --git a/Remotely_Library/Models/EventLog.cs b/Remotely_Library/Models/EventLog.cs index 5fb775c1..46a8dc6a 100644 --- a/Remotely_Library/Models/EventLog.cs +++ b/Remotely_Library/Models/EventLog.cs @@ -9,7 +9,7 @@ namespace Remotely_Library.Models public class EventLog { [Key] - public string ID { get; set; } = Guid.NewGuid().ToString().Replace("-", ""); + public string ID { get; set; } = Guid.NewGuid().ToString(); public EventTypes EventType { get; set; } public string Message { get; set; } public string Source { get; set; } diff --git a/Remotely_Library/Models/InviteLink.cs b/Remotely_Library/Models/InviteLink.cs index 051969a9..db4d15df 100644 --- a/Remotely_Library/Models/InviteLink.cs +++ b/Remotely_Library/Models/InviteLink.cs @@ -8,7 +8,7 @@ namespace Remotely_Library.Models public class InviteLink { [Key] - public string ID { get; set; } = Guid.NewGuid().ToString().Replace("-", ""); + public string ID { get; set; } = Guid.NewGuid().ToString(); public string InvitedUser { get; set; } public bool IsAdmin { get; set; } public DateTime DateSent { get; set; } diff --git a/Remotely_Library/Models/Organization.cs b/Remotely_Library/Models/Organization.cs index 1013be02..f2f0f12b 100644 --- a/Remotely_Library/Models/Organization.cs +++ b/Remotely_Library/Models/Organization.cs @@ -8,7 +8,7 @@ namespace Remotely_Library.Models public class Organization { [Key] - public string ID { get; set; } = Guid.NewGuid().ToString().Replace("-", ""); + public string ID { get; set; } = Guid.NewGuid().ToString(); [StringLength(25)] public string OrganizationName { get; set; } diff --git a/Remotely_Library/Models/PermissionGroup.cs b/Remotely_Library/Models/PermissionGroup.cs index 93afd35c..73b247cd 100644 --- a/Remotely_Library/Models/PermissionGroup.cs +++ b/Remotely_Library/Models/PermissionGroup.cs @@ -9,7 +9,7 @@ namespace Remotely_Library.Models public class PermissionGroup { [Key] - public string ID { get; set; } = Guid.NewGuid().ToString().Replace("-", ""); + public string ID { get; set; } = Guid.NewGuid().ToString(); [StringLength(100)] public string Name { get; set; } public virtual Organization Organization { get; set; } diff --git a/Remotely_Library/Models/RemotelyUserOptions.cs b/Remotely_Library/Models/RemotelyUserOptions.cs index 155e06f6..1b0947d7 100644 --- a/Remotely_Library/Models/RemotelyUserOptions.cs +++ b/Remotely_Library/Models/RemotelyUserOptions.cs @@ -7,7 +7,7 @@ namespace Remotely_Library.Models public class RemotelyUserOptions { [Key] - public string ID { get; set; } = Guid.NewGuid().ToString().Replace("-", ""); + public string ID { get; set; } = Guid.NewGuid().ToString(); [Display(Name ="Console Prompt")] [StringLength(5)] public string ConsolePrompt { get; set; } = "~>"; diff --git a/Remotely_Library/Models/SharedFile.cs b/Remotely_Library/Models/SharedFile.cs index e0bd463b..557dd65e 100644 --- a/Remotely_Library/Models/SharedFile.cs +++ b/Remotely_Library/Models/SharedFile.cs @@ -8,7 +8,7 @@ namespace Remotely_Library.Models public class SharedFile { [Key] - public string ID { get; set; } = Guid.NewGuid().ToString().Replace("-", ""); + public string ID { get; set; } = Guid.NewGuid().ToString(); public string FileName { get; set; } public string ContentType { get; set; } public byte[] FileContents { get; set; } diff --git a/Remotely_Server/API/CoreVersionController.cs b/Remotely_Server/API/CoreVersionController.cs index 50f64636..22a4fc5e 100644 --- a/Remotely_Server/API/CoreVersionController.cs +++ b/Remotely_Server/API/CoreVersionController.cs @@ -21,7 +21,7 @@ namespace Remotely_Server.API [HttpGet()] public string Get() { - var filePath = Path.Combine(HostingEnv.ContentRootPath, "CurrentAgentVersion.txt"); + var filePath = Path.Combine(HostingEnv.ContentRootPath, "CurrentVersion.txt"); if (!System.IO.File.Exists(filePath)) { return "0.0.0.0"; diff --git a/Remotely_Server/CurrentAgentVersion.txt b/Remotely_Server/CurrentAgentVersion.txt deleted file mode 100644 index b8dcbfa2..00000000 --- a/Remotely_Server/CurrentAgentVersion.txt +++ /dev/null @@ -1 +0,0 @@ -2019.03.20.0708 diff --git a/Remotely_Server/CurrentVersion.txt b/Remotely_Server/CurrentVersion.txt new file mode 100644 index 00000000..b6a68ce4 --- /dev/null +++ b/Remotely_Server/CurrentVersion.txt @@ -0,0 +1 @@ +2019.03.20.1209 diff --git a/Remotely_Server/Remotely_Server.csproj b/Remotely_Server/Remotely_Server.csproj index ab397cf6..c6c4dafc 100644 --- a/Remotely_Server/Remotely_Server.csproj +++ b/Remotely_Server/Remotely_Server.csproj @@ -1709,7 +1709,7 @@ - + PreserveNewest diff --git a/Remotely_Server/Services/RCBrowserSocketHub.cs b/Remotely_Server/Services/RCBrowserSocketHub.cs index bafc6110..1c3f88e8 100644 --- a/Remotely_Server/Services/RCBrowserSocketHub.cs +++ b/Remotely_Server/Services/RCBrowserSocketHub.cs @@ -165,6 +165,7 @@ namespace Remotely_Server.Services $"Login ID (if logged in): {Context?.User?.Identity?.Name}. " + $"Requester IP Address: " + Context?.GetHttpContext()?.Connection?.RemoteIpAddress?.ToString() }); + ScreenCasterID = screenCasterID; Mode = (RemoteControlMode)remoteControlMode; RequesterName = requesterName; diff --git a/Remotely_Server/Services/RCDeviceSocketHub.cs b/Remotely_Server/Services/RCDeviceSocketHub.cs index 16ddfca1..a4ca619d 100644 --- a/Remotely_Server/Services/RCDeviceSocketHub.cs +++ b/Remotely_Server/Services/RCDeviceSocketHub.cs @@ -14,7 +14,7 @@ namespace Remotely_Server.Services public class RCDeviceSocketHub : Hub { public static ConcurrentDictionary AttendedSessionList { get; set; } = new ConcurrentDictionary(); - public static object SaveLock { get; } = new object(); + public RCDeviceSocketHub(DataService dataService, IHubContext browserHub, IHubContext rcBrowserHub, diff --git a/Remotely_Server/wwwroot/css/remote-control.css b/Remotely_Server/wwwroot/css/remote-control.css index 6aa9665c..f9be6cb6 100644 --- a/Remotely_Server/wwwroot/css/remote-control.css +++ b/Remotely_Server/wwwroot/css/remote-control.css @@ -117,6 +117,7 @@ button[disabled] { max-width: 99vw; max-height: 99vh; z-index: 1; + touch-action: double-tap-zoom; } #connectBox { diff --git a/Remotely_Server/wwwroot/css/site.css b/Remotely_Server/wwwroot/css/site.css index b1d72668..bc2166c8 100644 --- a/Remotely_Server/wwwroot/css/site.css +++ b/Remotely_Server/wwwroot/css/site.css @@ -62,6 +62,11 @@ a.navbar-brand { .record-row { cursor: pointer; } +.table tbody tr td { + padding: .5rem; + font-size: .9em; +} + #tabContentWrapper { overflow: auto; diff --git a/Remotely_Server/wwwroot/scripts/RemoteControl/CursorMap.js b/Remotely_Server/wwwroot/scripts/RemoteControl/CursorMap.js index e85a5cae..acb5a9ce 100644 --- a/Remotely_Server/wwwroot/scripts/RemoteControl/CursorMap.js +++ b/Remotely_Server/wwwroot/scripts/RemoteControl/CursorMap.js @@ -42,6 +42,8 @@ var cursorMap = { "567017879": "col-resize", "925305447": "row-resize", "-1670772177": "col-resize", - "6883365": "copy" + "6883365": "copy", + "852495": "col-resize", + "395343": "col-resize" }; //# sourceMappingURL=CursorMap.js.map \ No newline at end of file diff --git a/Remotely_Server/wwwroot/scripts/RemoteControl/CursorMap.js.map b/Remotely_Server/wwwroot/scripts/RemoteControl/CursorMap.js.map index 1d4b265d..e449cdbd 100644 --- a/Remotely_Server/wwwroot/scripts/RemoteControl/CursorMap.js.map +++ b/Remotely_Server/wwwroot/scripts/RemoteControl/CursorMap.js.map @@ -1 +1 @@ -{"version":3,"file":"CursorMap.js","sourceRoot":"","sources":["CursorMap.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS,CAAC,UAAkB;IACxC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE;QACxB,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,UAAU,GAAG,eAAe,CAAC,CAAC;QAC3D,OAAO,SAAS,CAAC;KACpB;IACD,OAAO,SAAS,CAAC,UAAU,CAAC,CAAC;AACjC,CAAC;AAED,IAAI,SAAS,GAAG;IACZ,OAAO,EAAE,MAAM;IACf,OAAO,EAAE,WAAW;IACpB,OAAO,EAAE,MAAM;IACf,OAAO,EAAE,MAAM;IACf,OAAO,EAAE,MAAM;IACf,OAAO,EAAE,YAAY;IACrB,OAAO,EAAE,WAAW;IACpB,OAAO,EAAE,WAAW;IACpB,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,WAAW;IACpB,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,MAAM;IACf,SAAS,EAAE,YAAY;IACvB,SAAS,EAAE,YAAY;IACvB,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,YAAY;IACtB,QAAQ,EAAE,YAAY;IACtB,QAAQ,EAAE,YAAY;IACtB,QAAQ,EAAE,YAAY;IACtB,QAAQ,EAAE,YAAY;IACtB,QAAQ,EAAE,YAAY;IACtB,QAAQ,EAAE,YAAY;IACtB,OAAO,EAAE,YAAY;IACrB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,WAAW,EAAE,YAAY;IACzB,WAAW,EAAE,YAAY;IACzB,UAAU,EAAE,YAAY;IACxB,WAAW,EAAE,YAAY;IACzB,WAAW,EAAE,YAAY;IACzB,WAAW,EAAE,YAAY;IACzB,aAAa,EAAE,YAAY;IAC3B,SAAS,EAAE,MAAM;CACpB,CAAA"} \ No newline at end of file +{"version":3,"file":"CursorMap.js","sourceRoot":"","sources":["CursorMap.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS,CAAC,UAAkB;IACxC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE;QACxB,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,UAAU,GAAG,eAAe,CAAC,CAAC;QAC3D,OAAO,SAAS,CAAC;KACpB;IACD,OAAO,SAAS,CAAC,UAAU,CAAC,CAAC;AACjC,CAAC;AAED,IAAI,SAAS,GAAG;IACZ,OAAO,EAAE,MAAM;IACf,OAAO,EAAE,WAAW;IACpB,OAAO,EAAE,MAAM;IACf,OAAO,EAAE,MAAM;IACf,OAAO,EAAE,MAAM;IACf,OAAO,EAAE,YAAY;IACrB,OAAO,EAAE,WAAW;IACpB,OAAO,EAAE,WAAW;IACpB,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,WAAW;IACpB,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,MAAM;IACf,SAAS,EAAE,YAAY;IACvB,SAAS,EAAE,YAAY;IACvB,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,YAAY;IACtB,QAAQ,EAAE,YAAY;IACtB,QAAQ,EAAE,YAAY;IACtB,QAAQ,EAAE,YAAY;IACtB,QAAQ,EAAE,YAAY;IACtB,QAAQ,EAAE,YAAY;IACtB,QAAQ,EAAE,YAAY;IACtB,OAAO,EAAE,YAAY;IACrB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,WAAW,EAAE,YAAY;IACzB,WAAW,EAAE,YAAY;IACzB,UAAU,EAAE,YAAY;IACxB,WAAW,EAAE,YAAY;IACzB,WAAW,EAAE,YAAY;IACzB,WAAW,EAAE,YAAY;IACzB,aAAa,EAAE,YAAY;IAC3B,SAAS,EAAE,MAAM;IACjB,QAAQ,EAAE,YAAY;IACtB,QAAQ,EAAE,YAAY;CACzB,CAAA"} \ No newline at end of file diff --git a/Remotely_Server/wwwroot/scripts/RemoteControl/CursorMap.ts b/Remotely_Server/wwwroot/scripts/RemoteControl/CursorMap.ts index 6641f09e..3c8793b4 100644 --- a/Remotely_Server/wwwroot/scripts/RemoteControl/CursorMap.ts +++ b/Remotely_Server/wwwroot/scripts/RemoteControl/CursorMap.ts @@ -43,5 +43,7 @@ var cursorMap = { "567017879": "col-resize", "925305447": "row-resize", "-1670772177": "col-resize", - "6883365": "copy" + "6883365": "copy", + "852495": "col-resize", + "395343": "col-resize" } diff --git a/Remotely_Server/wwwroot/scripts/RemoteControl/UI.js b/Remotely_Server/wwwroot/scripts/RemoteControl/UI.js index a21e6cdd..c310e0f4 100644 --- a/Remotely_Server/wwwroot/scripts/RemoteControl/UI.js +++ b/Remotely_Server/wwwroot/scripts/RemoteControl/UI.js @@ -17,14 +17,10 @@ export var FileTransferInput = document.getElementById("fileTransferInput"); export var FileTransferProgress = document.getElementById("fileTransferProgress"); export var KeyboardButton = document.getElementById("keyboardButton"); var lastPointerMove = Date.now(); -var lastTouchPointX; -var lastTouchPointY; -var lastTouchStart = Date.now(); -var touchList = new Array(); -var longPressTimeout; var isDragging; -var lastTouchDistanceMoved = 0; var currentPointerDevice; +var currentTouchCount; +var rightClickOpen; export function ApplyInputHandlers(sockets) { document.querySelector("#menuButton").addEventListener("click", (ev) => { HorizontalBars.forEach(x => { @@ -116,7 +112,7 @@ export function ApplyInputHandlers(sockets) { ConnectToClient(); }); ScreenViewer.addEventListener("mousemove", function (e) { - currentPointerDevice = "Touch"; + currentPointerDevice = "Mouse"; e.preventDefault(); if (Date.now() - lastPointerMove < 25) { return; @@ -151,99 +147,72 @@ export function ApplyInputHandlers(sockets) { e.preventDefault(); e.stopPropagation(); } - else if (currentPointerDevice == "Touch") { + else if (currentPointerDevice == "Touch" && currentTouchCount == 0) { var percentX = e.offsetX / ScreenViewer.clientWidth; var percentY = e.offsetY / ScreenViewer.clientHeight; sockets.SendTap(percentX, percentY); } }); - //ScreenViewer.addEventListener("dblclick", function (e) { - // if (currentPointerDevice == "Mouse") { - // e.preventDefault(); - // e.stopPropagation(); - // } - // else if (currentPointerDevice == "Touch") { - // } - //}); ScreenViewer.addEventListener("contextmenu", (ev) => { ev.preventDefault(); }); ScreenViewer.addEventListener("touchstart", function (e) { + if (rightClickOpen) { + e.preventDefault(); + e.stopPropagation(); + return; + } + isDragging = false; currentPointerDevice = "Touch"; + currentTouchCount = e.touches.length; KeyboardButton.removeAttribute("hidden"); var focusedInput = document.querySelector("input:focus"); if (focusedInput) { focusedInput.blur(); } - //touchList.push(e.changedTouches[0].identifier); - //if (e.touches.length > 1) { - // window.clearTimeout(longPressTimeout); - // return; - //} - //e.preventDefault(); - //e.stopPropagation(); - //if (Date.now() - lastTouchStart < 500) { - // sockets.SendTouchDown(); - // return; - //} - //lastTouchStart = Date.now(); - //lastTouchPointX = e.touches[0].clientX; - //lastTouchPointY = e.touches[0].clientY; - //lastTouchDistanceMoved = 0; - //longPressTimeout = window.setTimeout(() => { - // if (lastTouchStart > lastPointerMove && touchList.some(x => x == e.changedTouches[0].identifier)) { - // sockets.SendLongPress(); - // } - //}, 1500); + if (e.touches.length > 2) { + var percentX = (e.touches[0].pageX - ScreenViewer.getBoundingClientRect().left) / ScreenViewer.clientWidth; + var percentY = (e.touches[0].pageY - ScreenViewer.getBoundingClientRect().top) / ScreenViewer.clientHeight; + sockets.SendMouseDown(2, percentX, percentY); + sockets.SendMouseUp(2, percentX, percentY); + } }); ScreenViewer.addEventListener("touchmove", function (e) { + if (rightClickOpen) { + e.preventDefault(); + e.stopPropagation(); + return; + } currentPointerDevice = "Touch"; + currentTouchCount = e.touches.length; var percentX = (e.touches[0].pageX - ScreenViewer.getBoundingClientRect().left) / ScreenViewer.clientWidth; var percentY = (e.touches[0].pageY - ScreenViewer.getBoundingClientRect().top) / ScreenViewer.clientHeight; if (e.touches.length == 2) { return; } - else if (e.touches.length > 2) { - sockets.SendMouseDown(2, percentX, percentY); - } else if (isDragging) { + e.preventDefault(); + e.stopPropagation(); sockets.SendMouseDown(0, percentX, percentY); sockets.SendMouseMove(percentX, percentY); } - //lastTouchDistanceMoved = GetDistanceBetween(lastTouchPointX, lastTouchPointY, e.touches[0].clientX, e.touches[0].clientY); - //var moveX = (e.touches[0].clientX - lastTouchPointX) * 2; - //var moveY = (e.touches[0].clientY - lastTouchPointY) * 2; - //sockets.SendTouchMove(moveX, moveY); - //lastTouchPointX = e.touches[0].clientX; - //lastTouchPointY = e.touches[0].clientY; - //lastPointerMove = Date.now(); }); ScreenViewer.addEventListener("touchend", function (e) { currentPointerDevice = "Touch"; + currentTouchCount = e.touches.length; if (e.touches.length == 1) { isDragging = true; + return; } - else { - if (isDragging) { - var percentX = (e.changedTouches[0].pageX - ScreenViewer.getBoundingClientRect().left) / ScreenViewer.clientWidth; - var percentY = (e.changedTouches[0].pageY - ScreenViewer.getBoundingClientRect().top) / ScreenViewer.clientHeight; - sockets.SendMouseUp(0, percentX, percentY); - } - isDragging = false; + if (currentTouchCount == 0 && rightClickOpen) { + rightClickOpen = false; } - //var index = touchList.findIndex(x => x == e.changedTouches[0].identifier); - //touchList.splice(index, 1); - //e.preventDefault(); - //e.stopPropagation(); - //if (e.touches.length > 0) { - // return; - //} - //if (Date.now() - lastTouchStart < 500 && lastTouchDistanceMoved < 5) { - // sockets.SendTap(); - //} - //else { - // sockets.SendTouchUp(); - //} + if (isDragging) { + var percentX = (e.changedTouches[0].pageX - ScreenViewer.getBoundingClientRect().left) / ScreenViewer.clientWidth; + var percentY = (e.changedTouches[0].pageY - ScreenViewer.getBoundingClientRect().top) / ScreenViewer.clientHeight; + sockets.SendMouseUp(0, percentX, percentY); + } + isDragging = false; }); ScreenViewer.addEventListener("wheel", function (e) { e.preventDefault(); diff --git a/Remotely_Server/wwwroot/scripts/RemoteControl/UI.js.map b/Remotely_Server/wwwroot/scripts/RemoteControl/UI.js.map index 039d1412..32fafd57 100644 --- a/Remotely_Server/wwwroot/scripts/RemoteControl/UI.js.map +++ b/Remotely_Server/wwwroot/scripts/RemoteControl/UI.js.map @@ -1 +1 @@ -{"version":3,"file":"UI.js","sourceRoot":"","sources":["UI.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"UI.js","sourceRoot":"","sources":["UI.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/Remotely_Server/wwwroot/scripts/RemoteControl/UI.ts b/Remotely_Server/wwwroot/scripts/RemoteControl/UI.ts index 7e768f5c..ba2b52ac 100644 --- a/Remotely_Server/wwwroot/scripts/RemoteControl/UI.ts +++ b/Remotely_Server/wwwroot/scripts/RemoteControl/UI.ts @@ -21,14 +21,10 @@ export var FileTransferProgress = document.getElementById("fileTransferProgress" export var KeyboardButton = document.getElementById("keyboardButton") as HTMLButtonElement; var lastPointerMove = Date.now(); -var lastTouchPointX: number; -var lastTouchPointY: number; -var lastTouchStart = Date.now(); -var touchList = new Array(); -var longPressTimeout: number; var isDragging: boolean; -var lastTouchDistanceMoved = 0; var currentPointerDevice: "Mouse" | "Touch"; +var currentTouchCount: number; +var rightClickOpen: boolean; export function ApplyInputHandlers(sockets: RCBrowserSockets) { document.querySelector("#menuButton").addEventListener("click", (ev) => { @@ -123,7 +119,7 @@ export function ApplyInputHandlers(sockets: RCBrowserSockets) { ConnectToClient(); }); ScreenViewer.addEventListener("mousemove", function (e) { - currentPointerDevice = "Touch"; + currentPointerDevice = "Mouse"; e.preventDefault(); if (Date.now() - lastPointerMove < 25) { return; @@ -159,106 +155,80 @@ export function ApplyInputHandlers(sockets: RCBrowserSockets) { e.preventDefault(); e.stopPropagation(); } - else if (currentPointerDevice == "Touch") { + else if (currentPointerDevice == "Touch" && currentTouchCount == 0) { var percentX = e.offsetX / ScreenViewer.clientWidth; var percentY = e.offsetY / ScreenViewer.clientHeight; sockets.SendTap(percentX, percentY); } }); - //ScreenViewer.addEventListener("dblclick", function (e) { - // if (currentPointerDevice == "Mouse") { - // e.preventDefault(); - // e.stopPropagation(); - // } - // else if (currentPointerDevice == "Touch") { - // } - //}); ScreenViewer.addEventListener("contextmenu", (ev) => { ev.preventDefault(); }); ScreenViewer.addEventListener("touchstart", function (e) { + if (rightClickOpen) { + e.preventDefault(); + e.stopPropagation(); + return; + } + isDragging = false; currentPointerDevice = "Touch"; + currentTouchCount = e.touches.length; KeyboardButton.removeAttribute("hidden"); var focusedInput = document.querySelector("input:focus") as HTMLInputElement; if (focusedInput) { focusedInput.blur(); } - //touchList.push(e.changedTouches[0].identifier); - - //if (e.touches.length > 1) { - // window.clearTimeout(longPressTimeout); - // return; - //} - - //e.preventDefault(); - //e.stopPropagation(); - //if (Date.now() - lastTouchStart < 500) { - // sockets.SendTouchDown(); - // return; - //} - //lastTouchStart = Date.now(); - //lastTouchPointX = e.touches[0].clientX; - //lastTouchPointY = e.touches[0].clientY; - //lastTouchDistanceMoved = 0; - //longPressTimeout = window.setTimeout(() => { - // if (lastTouchStart > lastPointerMove && touchList.some(x => x == e.changedTouches[0].identifier)) { - // sockets.SendLongPress(); - // } - //}, 1500); + if (e.touches.length > 2) { + var percentX = (e.touches[0].pageX - ScreenViewer.getBoundingClientRect().left) / ScreenViewer.clientWidth; + var percentY = (e.touches[0].pageY - ScreenViewer.getBoundingClientRect().top) / ScreenViewer.clientHeight; + sockets.SendMouseDown(2, percentX, percentY); + sockets.SendMouseUp(2, percentX, percentY); + } }); ScreenViewer.addEventListener("touchmove", function (e) { + if (rightClickOpen) { + e.preventDefault(); + e.stopPropagation(); + return; + } currentPointerDevice = "Touch"; + currentTouchCount = e.touches.length; var percentX = (e.touches[0].pageX - ScreenViewer.getBoundingClientRect().left) / ScreenViewer.clientWidth; var percentY = (e.touches[0].pageY - ScreenViewer.getBoundingClientRect().top) / ScreenViewer.clientHeight; if (e.touches.length == 2) { return; } - else if (e.touches.length > 2) { - sockets.SendMouseDown(2, percentX, percentY); - } else if (isDragging) { + e.preventDefault(); + e.stopPropagation(); sockets.SendMouseDown(0, percentX, percentY); sockets.SendMouseMove(percentX, percentY); } - - //lastTouchDistanceMoved = GetDistanceBetween(lastTouchPointX, lastTouchPointY, e.touches[0].clientX, e.touches[0].clientY); - - //var moveX = (e.touches[0].clientX - lastTouchPointX) * 2; - //var moveY = (e.touches[0].clientY - lastTouchPointY) * 2; - //sockets.SendTouchMove(moveX, moveY); - //lastTouchPointX = e.touches[0].clientX; - //lastTouchPointY = e.touches[0].clientY; - //lastPointerMove = Date.now(); }); ScreenViewer.addEventListener("touchend", function (e) { currentPointerDevice = "Touch"; + currentTouchCount = e.touches.length; + if (e.touches.length == 1) { isDragging = true; + return; } - else { - if (isDragging) { - var percentX = (e.changedTouches[0].pageX - ScreenViewer.getBoundingClientRect().left) / ScreenViewer.clientWidth; - var percentY = (e.changedTouches[0].pageY - ScreenViewer.getBoundingClientRect().top) / ScreenViewer.clientHeight; - sockets.SendMouseUp(0, percentX, percentY); - } - isDragging = false; + + if (currentTouchCount == 0 && rightClickOpen) { + rightClickOpen = false; } - //var index = touchList.findIndex(x => x == e.changedTouches[0].identifier); - //touchList.splice(index, 1); - //e.preventDefault(); - //e.stopPropagation(); - //if (e.touches.length > 0) { - // return; - //} - //if (Date.now() - lastTouchStart < 500 && lastTouchDistanceMoved < 5) { - // sockets.SendTap(); - //} - //else { - // sockets.SendTouchUp(); - //} + + if (isDragging) { + var percentX = (e.changedTouches[0].pageX - ScreenViewer.getBoundingClientRect().left) / ScreenViewer.clientWidth; + var percentY = (e.changedTouches[0].pageY - ScreenViewer.getBoundingClientRect().top) / ScreenViewer.clientHeight; + sockets.SendMouseUp(0, percentX, percentY); + } + + isDragging = false; + }); ScreenViewer.addEventListener("wheel", function (e) { diff --git a/Remotely_Server/wwwroot/scripts/ResultsParser.js b/Remotely_Server/wwwroot/scripts/ResultsParser.js index 2334add6..bd5a3412 100644 --- a/Remotely_Server/wwwroot/scripts/ResultsParser.js +++ b/Remotely_Server/wwwroot/scripts/ResultsParser.js @@ -3,35 +3,37 @@ import { TabContentWrapper } from "./UI.js"; export function CreateCommandHarness(context) { var collapseClass = context.TargetDeviceIDs.length > 1 ? "collapse" : "collapse show"; var commandHarness = document.createElement("div"); - commandHarness.id = context.ID; + var contextID = "c" + context.ID; + commandHarness.id = contextID; commandHarness.classList.add("command-harness"); commandHarness.innerHTML = `
Command Type: ${context.CommandMode} | - Total Devices: ${context.TargetDeviceIDs.length} | - Completed: 0% | - Errors: 0 | - + Total Devices: ${context.TargetDeviceIDs.length} | + Completed: 0% | + Errors: 0 | + JSON XML
-
+
`; return commandHarness; } export function AddPSCoreResultsHarness(result) { + var contextID = "c" + result.CommandContextID; var deviceName = DataGrid.DataSource.find(x => x.ID == result.DeviceID).DeviceName; - var resultsWrapper = document.getElementById(result.CommandContextID + "-results"); - var totalDevices = parseInt(document.getElementById(result.CommandContextID + "-totaldevices").innerText); + var resultsWrapper = document.getElementById(contextID + "-results"); + var totalDevices = parseInt(document.getElementById(contextID + "-totaldevices").innerText); var collapseClass = totalDevices > 1 ? "collapse" : "collapse show"; var resultDiv = document.createElement("div"); resultDiv.innerHTML = `
Device: ${deviceName} | Had Errors: ${result.ErrorOutput.length > 1 ? "Yes" : "No"} | - +
-
+
Host Output:
${result.HostOutput.replace(/\n/g, "
").replace(/ /g, " ")}
Debug Output:
${result.DebugOutput.join("
").replace(/ /g, " ")}
Verbose Output:
${result.VerboseOutput.join("
").replace(/ /g, " ")}
@@ -39,7 +41,7 @@ export function AddPSCoreResultsHarness(result) {
Error Output:
${result.ErrorOutput.join("
").replace(/ /g, " ")}
`; if (result.ErrorOutput.length > 0) { - var errorSpan = document.getElementById(result.CommandContextID + "-errors"); + var errorSpan = document.getElementById(contextID + "-errors"); var currentErrors = parseInt(errorSpan.innerText); currentErrors += 1; errorSpan.innerText = String(currentErrors); @@ -48,23 +50,24 @@ export function AddPSCoreResultsHarness(result) { TabContentWrapper.scrollTop = TabContentWrapper.scrollHeight; } export function AddCommandResultsHarness(result) { + var contextID = "c" + result.CommandContextID; var deviceName = DataGrid.DataSource.find(x => x.ID == result.DeviceID).DeviceName; - var resultsWrapper = document.getElementById(result.CommandContextID + "-results"); - var totalDevices = parseInt(document.getElementById(result.CommandContextID + "-totaldevices").innerText); + var resultsWrapper = document.getElementById(contextID + "-results"); + var totalDevices = parseInt(document.getElementById(contextID + "-totaldevices").innerText); var collapseClass = totalDevices > 1 ? "collapse" : "collapse show"; var resultDiv = document.createElement("div"); resultDiv.innerHTML = `
Device: ${deviceName} | Had Errors: ${result.ErrorOutput.length > 1 ? "Yes" : "No"} | - +
-
+
Standard Output:
${result.StandardOutput.replace(/\n/g, "
").replace(/ /g, " ")}
Error Output:
${result.ErrorOutput.replace(/\n/g, "
").replace(/ /g, " ")}
`; if (result.ErrorOutput.length > 0) { - var errorSpan = document.getElementById(result.CommandContextID + "-errors"); + var errorSpan = document.getElementById(`${contextID}-errors`); var currentErrors = parseInt(errorSpan.innerText); currentErrors += 1; errorSpan.innerText = String(currentErrors); @@ -73,8 +76,9 @@ export function AddCommandResultsHarness(result) { TabContentWrapper.scrollTop = TabContentWrapper.scrollHeight; } export function UpdateResultsCount(commandContextID) { - var totalDevices = parseInt(document.getElementById(commandContextID + "-totaldevices").innerText); - var percentComplete = Math.round(document.getElementById(commandContextID + "-results").children.length / totalDevices * 100); - document.getElementById(commandContextID + "-completed").innerText = String(percentComplete) + "%"; + var contextID = "c" + commandContextID; + var totalDevices = parseInt(document.getElementById(`${contextID}-totaldevices`).innerText); + var percentComplete = Math.round(document.getElementById(`${contextID}-results`).children.length / totalDevices * 100); + document.getElementById(`${contextID}-completed`).innerText = String(percentComplete) + "%"; } //# sourceMappingURL=ResultsParser.js.map \ No newline at end of file diff --git a/Remotely_Server/wwwroot/scripts/ResultsParser.js.map b/Remotely_Server/wwwroot/scripts/ResultsParser.js.map index 3dc65507..3a7b9c4c 100644 --- a/Remotely_Server/wwwroot/scripts/ResultsParser.js.map +++ b/Remotely_Server/wwwroot/scripts/ResultsParser.js.map @@ -1 +1 @@ -{"version":3,"file":"ResultsParser.js","sourceRoot":"","sources":["ResultsParser.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ResultsParser.js","sourceRoot":"","sources":["ResultsParser.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/Remotely_Server/wwwroot/scripts/ResultsParser.ts b/Remotely_Server/wwwroot/scripts/ResultsParser.ts index f32e85cc..8297a339 100644 --- a/Remotely_Server/wwwroot/scripts/ResultsParser.ts +++ b/Remotely_Server/wwwroot/scripts/ResultsParser.ts @@ -7,27 +7,29 @@ import { ConsoleOutputDiv, TabContentWrapper } from "./UI.js"; export function CreateCommandHarness(context: CommandContext): HTMLDivElement { var collapseClass = context.TargetDeviceIDs.length > 1 ? "collapse" : "collapse show"; var commandHarness = document.createElement("div"); - commandHarness.id = context.ID; + var contextID = "c" + context.ID; + commandHarness.id = contextID; commandHarness.classList.add("command-harness"); commandHarness.innerHTML = `
Command Type: ${context.CommandMode} | - Total Devices: ${context.TargetDeviceIDs.length} | - Completed: 0% | - Errors: 0 | - + Total Devices: ${context.TargetDeviceIDs.length} | + Completed: 0% | + Errors: 0 | + JSON XML
-
+
`; return commandHarness; } export function AddPSCoreResultsHarness(result: PSCoreCommandResult) { + var contextID = "c" + result.CommandContextID; var deviceName = DataGrid.DataSource.find(x => x.ID == result.DeviceID).DeviceName; - var resultsWrapper = document.getElementById(result.CommandContextID + "-results"); - var totalDevices = parseInt(document.getElementById(result.CommandContextID + "-totaldevices").innerText); + var resultsWrapper = document.getElementById(contextID + "-results"); + var totalDevices = parseInt(document.getElementById(contextID + "-totaldevices").innerText); var collapseClass = totalDevices > 1 ? "collapse" : "collapse show"; var resultDiv = document.createElement("div"); @@ -35,9 +37,9 @@ export function AddPSCoreResultsHarness(result: PSCoreCommandResult) {
Device: ${deviceName} | Had Errors: ${result.ErrorOutput.length > 1 ? "Yes": "No"} | - +
-
+
Host Output:
${result.HostOutput.replace(/\n/g, "
").replace(/ /g, " ")}
Debug Output:
${result.DebugOutput.join("
").replace(/ /g, " ")}
Verbose Output:
${result.VerboseOutput.join("
").replace(/ /g, " ")}
@@ -45,7 +47,7 @@ export function AddPSCoreResultsHarness(result: PSCoreCommandResult) {
Error Output:
${result.ErrorOutput.join("
").replace(/ /g, " ")}
`; if (result.ErrorOutput.length > 0) { - var errorSpan = document.getElementById(result.CommandContextID + "-errors"); + var errorSpan = document.getElementById(contextID + "-errors"); var currentErrors = parseInt(errorSpan.innerText); currentErrors += 1; errorSpan.innerText = String(currentErrors); @@ -54,9 +56,10 @@ export function AddPSCoreResultsHarness(result: PSCoreCommandResult) { TabContentWrapper.scrollTop = TabContentWrapper.scrollHeight; } export function AddCommandResultsHarness(result: GenericCommandResult) { + var contextID = "c" + result.CommandContextID; var deviceName = DataGrid.DataSource.find(x => x.ID == result.DeviceID).DeviceName; - var resultsWrapper = document.getElementById(result.CommandContextID + "-results"); - var totalDevices = parseInt(document.getElementById(result.CommandContextID + "-totaldevices").innerText); + var resultsWrapper = document.getElementById(contextID + "-results"); + var totalDevices = parseInt(document.getElementById(contextID + "-totaldevices").innerText); var collapseClass = totalDevices > 1 ? "collapse" : "collapse show"; var resultDiv = document.createElement("div"); @@ -64,14 +67,14 @@ export function AddCommandResultsHarness(result: GenericCommandResult) {
Device: ${deviceName} | Had Errors: ${result.ErrorOutput.length > 1 ? "Yes" : "No"} | - +
-
+
Standard Output:
${result.StandardOutput.replace(/\n/g, "
").replace(/ /g, " ")}
Error Output:
${result.ErrorOutput.replace(/\n/g, "
").replace(/ /g, " ")}
`; if (result.ErrorOutput.length > 0) { - var errorSpan = document.getElementById(result.CommandContextID + "-errors"); + var errorSpan = document.getElementById(`${contextID}-errors`); var currentErrors = parseInt(errorSpan.innerText); currentErrors += 1; errorSpan.innerText = String(currentErrors); @@ -80,8 +83,9 @@ export function AddCommandResultsHarness(result: GenericCommandResult) { TabContentWrapper.scrollTop = TabContentWrapper.scrollHeight; } -export function UpdateResultsCount(commandContextID:string) { - var totalDevices = parseInt(document.getElementById(commandContextID + "-totaldevices").innerText); - var percentComplete = Math.round(document.getElementById(commandContextID + "-results").children.length / totalDevices * 100); - document.getElementById(commandContextID + "-completed").innerText = String(percentComplete) + "%"; +export function UpdateResultsCount(commandContextID: string) { + var contextID = "c" + commandContextID; + var totalDevices = parseInt(document.getElementById(`${contextID}-totaldevices`).innerText); + var percentComplete = Math.round(document.getElementById(`${contextID}-results`).children.length / totalDevices * 100); + document.getElementById(`${contextID}-completed`).innerText = String(percentComplete) + "%"; } \ No newline at end of file diff --git a/Utilities/Publish.ps1 b/Utilities/Publish.ps1 index 620d9c83..273b1634 100644 --- a/Utilities/Publish.ps1 +++ b/Utilities/Publish.ps1 @@ -56,7 +56,7 @@ Set-Location -Path (Get-Item -Path $PSScriptRoot).Parent.FullName if ($ArgList.Contains("c")) { # Add Current Version file to root content folder for client update checks. - Set-Content -Path ".\Remotely_Server\CurrentAgentVersion.txt" -Value $CurrentVersion.Trim() -Encoding UTF8 -Force + Set-Content -Path ".\Remotely_Server\CurrentVersion.txt" -Value $CurrentVersion.Trim() -Encoding UTF8 -Force # Copy .NET Framework ScreenCaster to Agent resources for embedding. if ((Test-Path -Path ".\Remotely_Agent\Resources") -eq $false) {