Skip to content

Commit fb1a7b4

Browse files
authored
Merge pull request #11 from dokun1/issue10
Updated web UI, ensured form data is used
2 parents b9e5969 + 9f10b5a commit fb1a7b4

File tree

3 files changed

+39
-19
lines changed

3 files changed

+39
-19
lines changed

Sources/Application/Routes/WebClientRoutes.swift

+4-2
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,6 @@ func handleWebClient(request: RouterRequest, response: RouterResponse, next: @es
5454
slackRequestGroup.notify(queue: DispatchQueue.global(qos: .default), execute: {
5555
serveClientPage(channels: storedChannels, team: storedTeam, users: storedUserCount, response: response)
5656
})
57-
// slackRequestGroup.notify(queue: DispatchQueue.global(qos: .default), work: serveClientPage(channels: storedChannels, team: storedTeam, users: storedUserCount, response: response))
5857
} catch let error {
5958
Log.error(error.localizedDescription)
6059
try! response.status(.internalServerError).render("error", context: ["error": "uncaught exception: \(error.localizedDescription)"])
@@ -71,11 +70,14 @@ private func serveClientPage(channels: [SlackChannel]?, team: SlackTeam?, users:
7170
try response.status(.internalServerError).render("error", context: ["error": "could not load team info"])
7271
return
7372
}
73+
var newUsers = (5, 40)
74+
if let users = users {
75+
newUsers = users
76+
}
7477
// guard let users = users else {
7578
// try response.status(.internalServerError).render("Error", context: ["error": "could not load available user list"])
7679
// return
7780
// }
78-
let newUsers = (5, 40)
7981
let validList = channels.contains { element in
8082
return element.name == "general"
8183
}

Views/home.stencil

+21-6
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@
1818
<p class="text2"><b style="color:#DE1E64">{{ usersOnline }}</b> users online now out of <b>{{ usersRegistered }}</b> registered.</p>
1919
</div>
2020
<div class="menu-add">
21-
<input id="emailField" class="acronym-field" name="email" placeholder="[email protected]" />
21+
<input id="emailField" class="email-field" name="email" placeholder="[email protected]"/>
2222
</div>
2323
<div class="menu-add">
24-
<input class="button-primary" type="submit" value="GET MY INVITE" onClick="submitEmail()">
24+
<input id="submitButton" class="button-primary" type="submit" value="GET MY INVITE" onClick="submitEmail(this.id)">
2525
</div>
2626
<div class="menu-add">
2727
<center>
@@ -36,26 +36,41 @@
3636
</footer>
3737
</div>
3838
<script type="text/javascript">
39-
function submitEmail() {
39+
function submitEmail(btn) {
4040
var email = document.getElementById("emailField").value;
41+
var button = document.getElementById(btn);
4142
if (email == "") {
42-
alert("Email not entered!");
43+
button.style.backgroundColor = "#EE1632";
44+
button.value = "No email provided";
4345
return;
4446
}
4547
var xhr = new XMLHttpRequest();
4648
xhr.open("GET", "/api/invite/" + email);
4749
xhr.onreadystatechange = function() {
50+
button.disabled = false;
4851
if (xhr.readyState === 4) {
4952
if (xhr.status === 200) {
50-
alert("User invited!!")
53+
button.style.backgroundColor = "#6EBE32";
54+
button.value = "W00T! Check your email";
5155
} else {
52-
alert("Something went wrong. Error code: " + xhr.status);
56+
button.style.backgroundColor = "#EE1632";
57+
if (xhr.status === 400) {
58+
button.value = "You have already been invited to Slack. Check for an email from [email protected].";
59+
} else {
60+
button.value = ("Unexpected error: " + xhr.statusText);
61+
}
5362
}
5463
}
5564
}
65+
button.disabled = true;
66+
button.style.backgroundColor = "#153BE6";
67+
button.value = "Please wait...";
5668
xhr.send();
5769
}
5870
</script>
5971
</div>
6072
</body>
6173
</html>
74+
75+
76+

public/css/index.css

+14-11
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
.menu-container {
77
background-color: white;
88
color: #000;
9-
padding-left: 200px 0;
9+
padding-left: 200px 0;
1010
display: flex;
1111
justify-content: center;
1212
font-family: 'Open Sans', 'helvetica Neue', 'Helvetica', 'Arial', "Lucida Grande", sans-serif;
@@ -24,33 +24,36 @@
2424
justify-content: space-around;
2525
font-family: "Helvetica Neue", Helvetica, Arial;
2626
font-size:x-small;
27-
27+
text-align: center;
2828

2929
}
3030
.menu-add-component {
3131
color: #000;
3232
display: flex;
3333
justify-content: space-around;
3434
width: 300px;
35-
35+
max-width: 300px;
3636
font-family: "Helvetica Neue", Helvetica, Arial;
3737
}
3838

3939
input.button-primary {
40-
background-color: #DE1E64;
40+
background-color: #E01563;
4141
color: #FFF;
4242
margin-bottom: 10px;
43-
padding:10px 128px 10px 128px;
44-
43+
padding:10px 10px 10px 10px;
44+
min-width: 100px;
45+
width: 320px;
46+
max-width: 350px;
47+
white-space: normal;
4548
font-family: 'Open Sans', 'Arial', sans-serif;
4649
}
47-
input.acronym-field {
50+
input.email-field {
4851
font-family: 'Open Sans', 'Arial', sans-serif;
4952
border-color: rgb(214,214,214);
50-
51-
padding:10px 100px 10px 100px;
53+
text-align: center;
54+
padding:10px 10px 10px 10px;
5255
margin: 4px;
53-
56+
width: 320px;
5457
}
5558
::-webkit-input-placeholder {
5659
font-family: 'Open Sans', 'Arial', sans-serif;
@@ -90,6 +93,6 @@ input.acronym-field {
9093
margin-bottom:16px;
9194
font-size:medium;
9295
}
93-
.acronym-field{
96+
.email-field{
9497
border:1px solid rgb(214, 214, 214);
9598
}

0 commit comments

Comments
 (0)