Repository navigation
Expand file tree
/
Copy pathadmin-page-scripts.js
More file actions
121 lines (110 loc) · 3.65 KB
/
Copy pathadmin-page-scripts.js
File metadata and controls
121 lines (110 loc) · 3.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
var main = function() {
Parse.initialize("xnGjRzHyGsIRQu1YYvlKOl6tWUi492IEYRSeJz4v",
"eQfDDqUmQPpY85rOVvzFSuqLqeHPBtENaKm9mSoA");
var firstName = Parse.User.current().get("firstName");
var lastName = Parse.User.current().get("lastName");
var username = Parse.User.current().get("username");
var userRole = "Admin";
//Since this is the admin page, we should implement functionality to verify
//this user is an admin. Modify below method to do that.
var Person = Parse.Object.extend("Person");
var query = new Parse.Query(Person);
query.equalTo("username", username);
query.first({
success: function(result){
if(result != null) {
userRole = result.get("role");
// Redirect for incorrect user roles on this page
if(userRole === "Team Member") {
window.location = "landing-page.html";
}
else if(userRole === "Team Leader") {
window.location = "leader-page.html";
}
else if(userRole != "Admin") {
window.location = "index.html";
}
}
else {
alert("This user does not exist.");
}
}
});
// Display the user's credentials on the page
$('#name').text(firstName + " " + lastName);
$('#user-role').text(userRole);
// Logout functionality
$('#logoutbutton').click(function() {
Parse.User.logOut();
window.location = "index.html";
return false;
});
// Update the page to show the latest fields for a project
// This is important to do whenever changes are made
updatePage();
// Update the user role
$('#changeuserrolebutton').click(function() {
if(confirm("Are you sure you want to promote or demote this user?")) {
var username = $('#usernametopromoteordemoteselector').val();
var Person = Parse.Object.extend("Person");
var query = new Parse.Query(Person);
query.equalTo("username", username);
query.first({
success: function(result){
if(result != null) {
if(result.get("role") == "Team Member"){
result.set("role", "Team Leader");
result.save();
}
else if(result.get("role") == "Team Leader"){
result.set("role", "Team Member");
result.save();
}
}
else {
alert("This user does not exist.");
}
location.reload();
},
error: function(error) {
alert("The role could not be updated.");
}
});
// updatePage();
}
});
}
$(document).ready(main);
function updatePage() {
// empty the select of usernames to promote/demote
$("#usernametopromoteordemoteselector").empty();
// Populate the promotion select
var Person = Parse.Object.extend("Person");
var query = new Parse.Query(Person);
query.notContainedIn("role", ["Admin"]);
query.find({
success: function(results) {
for(var i = 0; i < results.length; i++) {
var object = results[i];
var userTeam = object.get('teamName');
var role = object.get('role');
var firstName = object.get('firstName');
var lastName = object.get('lastName');
var username = object.get('username');
var promoteDemoteUserSelect = document.getElementById("usernametopromoteordemoteselector");
var optionPromoteDemote = document.createElement("option");
if(role == "Team Member"){
optionPromoteDemote.text = firstName + " " + lastName + " " + "(" + username + ")" + " " + "(Role: Team Member)";
}
else if(role == "Team Leader"){
optionPromoteDemote.text = firstName + " " + lastName + " " + "(" + username + ")" + " " + "(Role: Team Leader)";
}
else{
optionPromoteDemote.text = firstName + " " + lastName + " " + "(" + username + ")" + " " + "(Role not found)";
}
optionPromoteDemote.value = username;
promoteDemoteUserSelect.add(optionPromoteDemote);
}
}
});
}