Skip to content

Commit 89592c4

Browse files
Gourav DwivediGourav Dwivedi
authored andcommitted
Added checkbox for Auth token textbox
1 parent 20f1527 commit 89592c4

File tree

3 files changed

+51
-21
lines changed

3 files changed

+51
-21
lines changed

Samples/AspDotCore/WebApp/WebApp/Hubs/OneHub.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,18 @@ public override Task OnConnectedAsync()
1313
return base.OnConnectedAsync();
1414
}
1515

16-
public async Task NotifySameClient(string data)
16+
public async Task TestCall(string data)
1717
{
1818
var connectionId = Context.ConnectionId;
19-
await Clients.Client(connectionId).SendAsync("ReceiveData", $"Data Received: {data}");
19+
await Clients.Client(connectionId).SendAsync("ReceiveData", $"Data Received from TestCall method: {data}");
2020
}
2121

2222
//[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
2323
[Authorize]
24-
public async Task EE(string data)
24+
public async Task TestCallWithAuth(string data)
2525
{
2626
var connectionId = Context.ConnectionId;
27-
await Clients.Client(connectionId).SendAsync("ReceiveData", $"Data Received: {data}");
27+
await Clients.Client(connectionId).SendAsync("ReceiveData", $"Data Received from TestCallWithAuth method: {data}");
2828
}
2929

3030
public async Task NotifyAllClient(string data)

src/js/components/srform.component.js

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,16 @@ class SrFormComponent extends HTMLElement {
4444
<div class="form-group row onconnect" id="auth-container">
4545
<label for="authHeader" class="col-sm-2 col-form-label">Authentication Header</label>
4646
<div class="col-sm-10 offset-sm-2">
47-
<input type="text" class="form-control" id="authHeader" placeholder="Token">
47+
<input type="text" class="form-control" id="authHeader" placeholder="Token" disabled/>
48+
</div>
49+
<div class="col-sm-10 offset-sm-2">
50+
<div class="form-check form-check-inline">
51+
<input type="checkbox" id="chk-req-token" class="form-check-input chk-req-token"/>
52+
<label class="form-check-label" for="chk-req-token">
53+
Token Required
54+
</label>
55+
56+
</div>
4857
</div>
4958
</div>
5059

src/js/components/srform.js

Lines changed: 37 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ var connection = null;
1313
var storeFunc = null;
1414
var isConnected = false;
1515
var isAdvanceView = false;
16+
var isTokenRequired = false;
1617

1718
export function Init() {
1819
//Connect Button Events
@@ -46,7 +47,18 @@ export function Init() {
4647
}
4748

4849
NotConnected();
49-
Test();
50+
RigisterNavigationTabEvent();
51+
52+
document.getElementById('chk-req-token')
53+
.addEventListener('change', (event) => {
54+
if (event.target.checked) {
55+
document.getElementById('authHeader').disabled= false;
56+
isTokenRequired = true;
57+
} else {
58+
isTokenRequired = false;
59+
document.getElementById('authHeader').disabled= true;
60+
}
61+
});
5062

5163
}
5264

@@ -70,7 +82,7 @@ eventEmitter.on('OnDisconnected', () => {
7082
} );
7183
//#endregion
7284

73-
export function Test() {
85+
export function RigisterNavigationTabEvent() {
7486

7587
var navLinkClass = document.getElementsByClassName('nav-link');
7688
for (var i = 0; i < navLinkClass.length; i++) {
@@ -85,25 +97,30 @@ export function Test() {
8597

8698
export function OnTabChange(tabName) {
8799
if (tabName == 'basic') {
88-
//document.getElementById('protocol-support').style = 'display:none';
89100
isAdvanceView = false;
90101
AdvanceViewElements(isAdvanceView);
91102
}
92103
else {
93104
isAdvanceView = true;
94105
AdvanceViewElements(isAdvanceView);
95-
// if (isConnected) {
96-
// isAdvanceView = true;
97-
// //document.getElementById('protocol-support').style = 'display:block';
98-
// AdvanceViewElements(isAdvanceView);
99-
// }
100106
}
101107
}
102108

109+
103110
export function AdvanceViewElements(enable) {
104111
if(enable === true) {
105112
document.getElementById('protocol-support').style = 'display:block';
106113
document.getElementById('auth-container').style = 'display:block';
114+
if(isConnected === true) {
115+
document.getElementById('chk-req-token').disabled = true;
116+
document.getElementById('authHeader').disabled = true;
117+
} else {
118+
document.getElementById('chk-req-token').disabled = false;
119+
if(isTokenRequired === true) {
120+
document.getElementById('authHeader').disabled = false;
121+
}
122+
123+
}
107124
}
108125
else {
109126
document.getElementById('protocol-support').style = 'display:none';
@@ -262,13 +279,13 @@ export function buildConnection(url) {
262279
// accessTokenFactory: getToken
263280
// };
264281

265-
var option = {
266-
267-
};
282+
var option = { };
268283

269-
if(isAdvanceView) {
284+
if(isAdvanceView) {
285+
if(isTokenRequired === true) {
270286
option.accessTokenFactory = () => document.getElementById('authHeader').value;
271-
}
287+
}
288+
}
272289

273290
connection = new signalR.HubConnectionBuilder()
274291
.withUrl(url, option)
@@ -303,9 +320,8 @@ export function OnConnect() {
303320
SetConnectionProtocol();
304321
}
305322

306-
var url = document.getElementById("inputUrl").value;
307-
debugger;
308-
connectToServer(url);
323+
var urlElement = document.getElementById("inputUrl");
324+
connectToServer(urlElement.value);
309325
console.log("OnConnect");
310326
isConnected = true;
311327
var onConnectClass = document.getElementsByClassName('onconnect');
@@ -330,6 +346,9 @@ export function OnConnect() {
330346

331347
eventEmitter.emit('OnConnected');
332348
AddArguments();
349+
350+
//Disable Url
351+
urlElement.disabled = true;
333352
}
334353

335354
export function SetConnectionProtocol() {
@@ -391,6 +410,8 @@ export function OnDisConnect() {
391410
EnableElementByClassName('connectbtn');
392411
NotConnected();
393412
AdvanceViewElements(isAdvanceView);
413+
//Enable URL textBix
414+
document.getElementById("inputUrl").disabled = false;
394415
}
395416

396417
export function Reset() {

0 commit comments

Comments
 (0)