Commit bd7832e0d833844b00af037524185adf20a6dffc

Authored by Miguel Barão
1 parent 6cebde62
Exists in master and in 1 other branch dev

- changes in the looks of the admin page

Showing 2 changed files with 57 additions and 46 deletions   Show diff stats
static/js/admin.js
1 $(document).ready(function() { 1 $(document).ready(function() {
2 // button handlers (runs once) 2 // button handlers (runs once)
3 - function define_buttons_handlers() { 3 + function button_handlers() {
4 $("#allow_all").click( 4 $("#allow_all").click(
5 function() { 5 function() {
6 $(":checkbox").prop("checked", true).trigger('change'); 6 $(":checkbox").prop("checked", true).trigger('change');
@@ -13,11 +13,13 @@ $(document).ready(function() { @@ -13,11 +13,13 @@ $(document).ready(function() {
13 ); 13 );
14 $("#reset_password").click( 14 $("#reset_password").click(
15 function () { 15 function () {
16 - var number = $("#reset_number").val();  
17 $.ajax({ 16 $.ajax({
18 type: "POST", 17 type: "POST",
19 url: "/admin", 18 url: "/admin",
20 - data: {"cmd": "reset_password", "value": number} 19 + data: {
  20 + "cmd": "reset_password",
  21 + "value": $("#reset_number").val()
  22 + }
21 }); 23 });
22 } 24 }
23 ); 25 );
@@ -78,16 +80,15 @@ $(document).ready(function() { @@ -78,16 +80,15 @@ $(document).ready(function() {
78 active.sort(function(a,b){return a[2] < b[2] ? -1 : (a[2] == b[2] ? 0 : 1);}); 80 active.sort(function(a,b){return a[2] < b[2] ? -1 : (a[2] == b[2] ? 0 : 1);});
79 n = active.length; 81 n = active.length;
80 for(var i = 0; i < n; i++) { 82 for(var i = 0; i < n; i++) {
81 - rows += '<tr' + (active[i][5]? '' : ' class="danger"') + '>\ 83 + rows += '<tr' + (active[i][5]? '' : ' class="bg-danger"') + '>\
82 <td>' + active[i][0] + '</td>\ 84 <td>' + active[i][0] + '</td>\
83 <td>' + active[i][1] + '</td>\ 85 <td>' + active[i][1] + '</td>\
84 <td>' + active[i][2].slice(11,19) + '</td>\ 86 <td>' + active[i][2].slice(11,19) + '</td>\
85 - <td><div data-toggle="tooltip" data-placement="top" title="'+active[i][4]+'">' + active[i][3] + '</div></td>\  
86 - <td>' + (active[i][5]? '' : '<span class="label label-danger">unfocus</span>') + '</td>\ 87 + <td>' + (active[i][5]? '' : '<span class="label bg-danger">unfocus</span>') + '</td>\
87 </tr>'; 88 </tr>';
88 } 89 }
89 $("#online_students").html(rows); 90 $("#online_students").html(rows);
90 - $("#online-header").html(n + " Activo(s)"); 91 + $("#online-header").html(n);
91 92
92 } 93 }
93 94
@@ -111,7 +112,7 @@ $(document).ready(function() { @@ -111,7 +112,7 @@ $(document).ready(function() {
111 // ---------------------------------------------------------------------- 112 // ----------------------------------------------------------------------
112 function populateStudentsTable(students) { 113 function populateStudentsTable(students) {
113 var n = students.length; 114 var n = students.length;
114 - $("#students-header").html(n + " Inscritos") 115 + $("#students-header").html(n)
115 var rows = ""; 116 var rows = "";
116 $.each(students, function(i, d) { 117 $.each(students, function(i, d) {
117 var uid = d['uid']; 118 var uid = d['uid'];
@@ -130,8 +131,8 @@ $(document).ready(function() { @@ -130,8 +131,8 @@ $(document).ready(function() {
130 (d['start_time']=='' ? '' : ' <span class="label label-success">teste</span>') + 131 (d['start_time']=='' ? '' : ' <span class="label label-success">teste</span>') +
131 // (d['online'] ? '<span class="label label-warning">online</span>' : '') + 132 // (d['online'] ? '<span class="label label-warning">online</span>' : '') +
132 '</td>\ 133 '</td>\
133 - <td>' + uid + '</td>\  
134 - <td>' + d['name'] + (d['password_defined'] ? ' <span class="label label-default">pw</span>' : '') +'</td>\ 134 + <td>' + uid + (d['password_defined'] ? ' <i class="fa fa-key" aria-hidden="true"></i>' : '') + '</td>\
  135 + <td>' + d['name'] + '</td>\
135 <td>'; 136 <td>';
136 var g = d['grades']; 137 var g = d['grades'];
137 var glength = g.length; 138 var glength = g.length;
@@ -171,6 +172,6 @@ $(document).ready(function() { @@ -171,6 +172,6 @@ $(document).ready(function() {
171 } 172 }
172 173
173 populate(); // run once when the page is loaded 174 populate(); // run once when the page is loaded
174 - define_buttons_handlers(); 175 + button_handlers(); // assign handlers to buttons
175 setInterval(populate, 5000); // poll server on 5s interval 176 setInterval(populate, 5000); // poll server on 5s interval
176 }); 177 });
templates/admin.html
@@ -11,12 +11,11 @@ @@ -11,12 +11,11 @@
11 11
12 <!-- optional --> 12 <!-- optional -->
13 <link rel="stylesheet" href="/static/font-awesome/css/font-awesome.min.css"> 13 <link rel="stylesheet" href="/static/font-awesome/css/font-awesome.min.css">
14 - <link rel="stylesheet" href="/static/css/test.css"> 14 + <!-- <link rel="stylesheet" href="/static/css/test.css"> -->
15 15
16 <style> 16 <style>
17 body { 17 body {
18 padding-top: 100px; 18 padding-top: 100px;
19 - background: #ccc;  
20 } 19 }
21 </style> 20 </style>
22 </head> 21 </head>
@@ -24,22 +23,42 @@ @@ -24,22 +23,42 @@
24 <body> 23 <body>
25 <nav class="navbar navbar-expand-lg fixed-top navbar-dark bg-dark"> 24 <nav class="navbar navbar-expand-lg fixed-top navbar-dark bg-dark">
26 <a class="navbar-brand" href="#"> 25 <a class="navbar-brand" href="#">
27 - <i class="fa fa-clock-o" aria-hidden="true"></i> 26 + <!-- <i class="fa fa-clock-o" aria-hidden="true"></i> -->
28 <span id="clock"> --:-- </span> 27 <span id="clock"> --:-- </span>
29 </a> 28 </a>
30 - <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation"> 29 +
  30 + <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
31 <span class="navbar-toggler-icon"></span> 31 <span class="navbar-toggler-icon"></span>
32 </button> 32 </button>
33 33
34 - <div class="collapse navbar-collapse" id="navbarText">  
35 - <ul class="navbar-nav mr-auto">  
36 - </ul> 34 +<!-- <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
  35 + <span class="navbar-toggler-icon"></span>
  36 + </button>
37 37
38 - <span class="navbar-text"> 38 + -->
  39 + <div class="collapse navbar-collapse" id="navbarNavDropdown">
  40 + <ul class="navbar-nav">
  41 +<!-- <li class="nav-item">
  42 + <a class="nav-link" href="#">Features</a>
  43 + </li> -->
  44 + <li class="nav-item dropdown">
  45 + <a class="nav-link dropdown-toggle" href="#" id="navbarDropdownAluno" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
  46 + Aluno
  47 + </a>
  48 + <div class="dropdown-menu" aria-labelledby="navbarDropdownAluno">
  49 + <a class="dropdown-item" href="#" id="inserir_novo_aluno">Inserir novo...</a>
  50 + <a class="dropdown-item" href="#" id="reset_password">Reset password...</a>
  51 + <a class="dropdown-item" href="#" id="allow_all">Autorizar todos</a>
  52 + <a class="dropdown-item" href="#" id="deny_all">Desautorizar todos</a>
  53 + </div>
  54 + </li>
  55 + </ul>
  56 + <div class="navbar-nav"></div>
  57 +<!-- <span class="navbar-text">
39 <i class="fa fa-user" aria-hidden="true"></i> 58 <i class="fa fa-user" aria-hidden="true"></i>
40 <span id="name">Admin</span> 59 <span id="name">Admin</span>
41 <span class="caret"></span> 60 <span class="caret"></span>
42 - </span> 61 + </span> -->
43 </div> 62 </div>
44 </nav> 63 </nav>
45 <!-- ===================================================================== --> 64 <!-- ===================================================================== -->
@@ -49,18 +68,18 @@ @@ -49,18 +68,18 @@
49 <h3 id="title"></h3> 68 <h3 id="title"></h3>
50 Ref: <span id="ref"></span><br> 69 Ref: <span id="ref"></span><br>
51 Enunciado: <span id="filename"></span><br> 70 Enunciado: <span id="filename"></span><br>
52 - Database: <span id="database"></span><br>  
53 - Testes entregues: <span id="answers_dir"></span> 71 + Base de dados: <span id="database"></span><br>
  72 + Testes submetidos: <span id="answers_dir"></span><br>
  73 + <span class="badge badge-secondary"><span id="students-header"></span></span> inscritos<br>
  74 + <span class="badge badge-success"><span id="online-header"></span></span> online
  75 +
54 </div> <!-- jumbotron --> 76 </div> <!-- jumbotron -->
55 77
56 <!-- ===================================================================== --> 78 <!-- ===================================================================== -->
57 - <div class="card border-dark">  
58 - <div class="card-header" id="online-header">  
59 - <!-- to be populated -->  
60 - </div>  
61 - <div class="card-body"> 79 + <!-- <div class="card border-dark"> -->
  80 + <!-- <div class="card-body"> -->
62 <table class="table table-condensed noleftmargin"> 81 <table class="table table-condensed noleftmargin">
63 - <thead> 82 + <thead class="thead-default">
64 <tr> 83 <tr>
65 <th>Número</th> 84 <th>Número</th>
66 <th>Nome</th> 85 <th>Nome</th>
@@ -74,18 +93,14 @@ @@ -74,18 +93,14 @@
74 <!-- to be populated --> 93 <!-- to be populated -->
75 </tbody> 94 </tbody>
76 </table> 95 </table>
77 - </div> <!-- card-body -->  
78 - </div> <!-- card --> 96 + <!-- </div> card-body -->
  97 + <!-- </div> card -->
79 98
80 <!-- ===================================================================== --> 99 <!-- ===================================================================== -->
81 - <div class="card border-dark">  
82 - <div class="card-header" id="students-header">  
83 - <!-- to be populated -->  
84 - </div>  
85 -  
86 - <div class="card-body"> 100 + <!-- <div class="card border-dark"> -->
  101 + <!-- <div class="card-body"> -->
87 <table class="table noleftmargin"> 102 <table class="table noleftmargin">
88 - <thead> 103 + <thead class="thead-default">
89 <tr> 104 <tr>
90 <th>Perm.</th> 105 <th>Perm.</th>
91 <th>Número</th> 106 <th>Número</th>
@@ -98,16 +113,11 @@ @@ -98,16 +113,11 @@
98 <!-- to be populated --> 113 <!-- to be populated -->
99 </tbody> 114 </tbody>
100 </table> 115 </table>
101 - </div> <!-- card-body --> 116 + <!-- </div> card-body -->
102 117
103 - <div class="card-footer"> 118 + <!-- <div class="card-footer"> -->
104 <div class="row"> 119 <div class="row">
105 <div class="col-sm-4"> 120 <div class="col-sm-4">
106 - Permitir  
107 - <button id="allow_all" class="btn btn-xs btn-primary">Todos</button>  
108 - <button id="deny_all" class="btn btn-xs btn-primary">Nenhum</button>  
109 - </div>  
110 - <div class="col-sm-4">  
111 <button id="novo_aluno" class="btn btn-xs btn-primary" data-toggle="modal" data-target="#novo_aluno_modal">Inserir novo aluno</button> 121 <button id="novo_aluno" class="btn btn-xs btn-primary" data-toggle="modal" data-target="#novo_aluno_modal">Inserir novo aluno</button>
112 </div> 122 </div>
113 <div class="col-sm-4"> 123 <div class="col-sm-4">
@@ -119,8 +129,8 @@ @@ -119,8 +129,8 @@
119 </div> 129 </div>
120 </div> 130 </div>
121 </div> <!-- row --> 131 </div> <!-- row -->
122 - </div> <!-- card-footer -->  
123 - </div> <!-- card --> 132 + <!-- </div> card-footer -->
  133 + <!-- </div> card -->
124 <!-- ===================================================================== --> 134 <!-- ===================================================================== -->
125 </div> <!-- container --> 135 </div> <!-- container -->
126 <!-- ===================================================================== --> 136 <!-- ===================================================================== -->