Browse Source

Improve mobile integration, add autocorrect etc. flags to login fields

tags/v1.0
Skylar Ittner 2 years ago
parent
commit
1fb4afc6aa
8 changed files with 105 additions and 8 deletions
  1. 1
    1
      api.php
  2. 1
    1
      app.php
  3. 3
    3
      index.php
  4. 1
    0
      mobile/index.php
  5. 13
    0
      pages.php
  6. 67
    0
      pages/shifts.php
  7. 16
    0
      static/css/app.css
  8. 3
    3
      static/js/home.js

+ 1
- 1
api.php View File

@@ -14,7 +14,7 @@ header("Content-Type: application/json");

$username = $VARS['username'];
$password = $VARS['password'];
if (user_exists($username) !== true || authenticate_user($username, $password, $errmsg) !== true) {
if (user_exists($username) !== true || authenticate_user($username, $password, $errmsg) !== true || account_has_permission($username, "QWIKCLOCK") !== true) {
header("HTTP/1.1 403 Unauthorized");
die("\"403 Unauthorized\"");
}

+ 1
- 1
app.php View File

@@ -53,7 +53,7 @@ if (!is_empty($_GET['page'])) {
?>
</div>
</div>
<nav class="navbar navbar-inverse navbar-<?php echo MENU_BAR_STYLE; ?>-top">
<nav class="navbar navbar-inverse navbar-blue navbar-<?php echo MENU_BAR_STYLE; ?>-top">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse">

+ 3
- 3
index.php View File

@@ -122,8 +122,8 @@ if (checkLoginServer()) {

if ($multiauth != true) {
?>
<input type="text" class="form-control" name="username" placeholder="<?php lang("username"); ?>" required="required" autofocus /><br />
<input type="password" class="form-control" name="password" placeholder="<?php lang("password"); ?>" required="required" /><br />
<input type="text" class="form-control" name="username" placeholder="<?php lang("username"); ?>" required="required" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" autofocus /><br />
<input type="password" class="form-control" name="password" placeholder="<?php lang("password"); ?>" required="required" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" /><br />
<?php if (RECAPTCHA_ENABLED) { ?>
<div class="g-recaptcha" data-sitekey="<?php echo RECAPTCHA_SITE_KEY; ?>"></div>
<br />
@@ -135,7 +135,7 @@ if (checkLoginServer()) {
<div class="alert alert-info">
<?php lang("2fa prompt"); ?>
</div>
<input type="text" class="form-control" name="authcode" placeholder="<?php lang("authcode"); ?>" required="required" autocomplete="off" autofocus /><br />
<input type="text" class="form-control" name="authcode" placeholder="<?php lang("authcode"); ?>" required="required" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" autofocus /><br />
<input type="hidden" name="progress" value="2" />
<input type="hidden" name="username" value="<?php echo $VARS['username']; ?>" />
<?php

+ 1
- 0
mobile/index.php View File

@@ -9,6 +9,7 @@ require __DIR__ . "/../required.php";
require __DIR__ . "/../lib/login.php";

header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');

// Allow ping check without authentication
if ($VARS['action'] == "ping") {

+ 13
- 0
pages.php View File

@@ -26,4 +26,17 @@ define("PAGES", [
"static/js/punches.js"
]
],
"shifts" => [
"title" => "shifts",
"navbar" => true,
"icon" => "calendar",
"styles" => [
"static/css/datatables.min.css",
"static/css/tables.css"
],
"scripts" => [
"static/js/datatables.min.js",
"static/js/shifts.js"
]
],
]);

+ 67
- 0
pages/shifts.php View File

@@ -0,0 +1,67 @@
<?php
require_once __DIR__ . '/../required.php';

redirectifnotloggedin();


require_once __DIR__ . "/../lib/dates.php";
$weekstart = sqldatetime(getstartofweek(WEEK_START));
$punches = $database->select('punches', ['in', 'out'], ['AND' => ['uid' => $_SESSION['uid'], 'in[>]' => $weekstart]]);
$punchtimes = [];
foreach ($punches as $p) {
$punchtimes[] = [$p['in'], $p['out']];
}
$totalseconds = sumelapsedtimearray($punchtimes);
$totalpunches = count($punches);
?>
<p class="page-header h5"><i class="fa fa-calendar fa-fw"></i> <?php lang("this week") ?></p>
<div class="row">

<div class="col-xs-12 col-sm-6 col-md-4 col-md-offset-2">
<div class="panel panel-blue">
<div class="panel-body">
<h4>
<?php
lang2("x on the clock", ["time" => seconds2string($totalseconds, false)]);
?>
</h4>
</div>
</div>
</div>
<div class="col-xs-12 col-sm-6 col-md-4">
<div class="panel panel-blue">
<div class="panel-body">
<h4>
<?php
lang2("x punches", ["count" => $totalpunches]);
?>
</h4>
</div>
</div>
</div>
</div>

<a id="punches" style="height: 0px; width: 0px;">&nbsp;</a>

<p class="page-header h5"><i class="fa fa-clock-o fa-fw"></i> <?php lang("punch card") ?></p>
<table id="punchtable" class="table table-bordered table-striped">
<thead>
<tr>
<th data-priority="0"></th>
<th data-priority="1"><i class="fa fa-fw fa-play"></i> <?php lang('in'); ?></th>
<th data-priority="1"><i class="fa fa-fw fa-stop"></i> <?php lang('out'); ?></th>
<th data-priority="2"><i class="fa fa-fw fa-sticky-note-o"></i> <?php lang('notes'); ?></th>
</tr>
</thead>
<tbody>

</tbody>
<tfoot>
<tr>
<th data-priority="0"></th>
<th data-priority="1"><i class="fa fa-fw fa-play"></i> <?php lang('in'); ?></th>
<th data-priority="1"><i class="fa fa-fw fa-stop"></i> <?php lang('out'); ?></th>
<th data-priority="2"><i class="fa fa-fw fa-sticky-note-o"></i> <?php lang('notes'); ?></th>
</tfoot>
</table>

+ 16
- 0
static/css/app.css View File

@@ -55,4 +55,20 @@ file and add a .navbar-[color] class to the navbar in app.php.

.navbar-inverse .navbar-link {
color: white;
}


@media screen and (max-width: 767px) {
button.navbar-toggle[data-toggle="collapse"] {
float: left;
margin-left: 15px;
}

.navbar-header .navbar-brand {
margin-left: -20px;
}

.navbar-header .navbar-brand img {
display: none;
}
}

+ 3
- 3
static/js/home.js View File

@@ -7,12 +7,12 @@ function setClock() {
$('#server_date').text(resp.date);
var seconds = resp.seconds * 1;
var interval = 60 - seconds;
console.log(interval);
//console.log(interval);
if (interval > 5) {
interval = 5;
}
console.log(interval);
console.log((((seconds + interval) / 60) * 100));
//console.log(interval);
//console.log((((seconds + interval) / 60) * 100));

$('#seconds_bar div').animate({
width: (((seconds + interval) / 60) * 100) + "%"

Loading…
Cancel
Save