blob: e2a5b942b53e8f07a164340a87c98aed5ac3fbe5 [file] [log] [blame]
Copybara botbe50d492023-11-30 00:16:42 +01001<?php
2require_once("core.php");
3security::checkType(security::ADMIN);
4
5security::changeActiveView(visual::VIEW_ADMIN);
6
7$tips = array(
8 "companies" => "<a href='companies.php'>Añade una o más empresas</a> antes de empezar. Esta utilidad te permite organizar el horario de trabajadores de varias empresas en la misma aplicación.",
9 "categories" => "Opcionalmente, puedes <a href='categories.php'>crear categorías</a> para clasificar tus trabajadores, si te es conveniente.",
10 "typesincidents" => "Para poder rellenar incidencias, es necesario que <a href='incidenttypes.php'>crees tipos de incidencias</a>. Estos sirven para determinar si una incidencia de ese tipo significa que se han trabajado horas extra o por si lo contrario el trabajador se auyenta del centro de trabajo, o si las horas de incidencia están remuneradas, etc.",
11 "calendars" => "<a href='calendars.php'>Configura los calendarios</a> de días laborables, lectivos y festivos."
12);
13
14$checkEmptiness = ["companies", "categories", "typesincidents", "calendars"];
15$isEmpty = [];
16
17foreach ($checkEmptiness as $table) {
18 if (db::numRows($table) == 0) $isEmpty[] = $table;
19}
20
21?>
22<!DOCTYPE html>
23<html>
24<head>
25 <title><?php echo $conf["appName"]; ?></title>
26 <?php visual::includeHead(); ?>
27 <link rel="stylesheet" href="css/dashboard.css">
28 <style>
29 .tip {
30 border-radius: 4px;
31 border: solid 1px #45b9dc;
32 padding: 22px 16px;
33 }
34
35 .tip p:last-child {
36 margin-bottom: 0;
37 }
38
39 li {
40 margin-bottom: 0.5em;
41 }
42
43 li.done {
44 color: #777;
45 }
46
47 li.done a {
48 color: #555;
49 }
50 </style>
51</head>
52<?php visual::printBodyTag(); ?>
53 <div class="mdl-layout mdl-js-layout mdl-layout--fixed-header mdl-layout--fixed-drawer">
54 <?php visual::includeNav(); ?>
55 <main class="mdl-layout__content">
56 <div class="page-content">
57 <div class="main mdl-shadow--4dp">
58 <h2>Bienvenido</h2>
59 <?php
60 if (count($isEmpty)) {
61 ?>
62 <p>¡Hola <?=people::userData("name")?>! Antes de empezar a sacarle todo el jugo a la aplicación, nos gustaría sugerirte algunas acciones para empezar a configurarla:</p>
63 <ol>
64 <?php
65 foreach ($checkEmptiness as $t) {
66 $strike = !in_array($t, $isEmpty);
67 echo "<li".($strike ? " class='done'" : "").">".$tips[$t]."</li>";
68 }
69 ?>
70 </ol>
71 <p>Después de realizar estas acciones, te sugerimos añadir trabajadores y configurar sus horarios desde la sección <a href="users.php">Trabajadores</a>. También te puede interesar acceder a la sección <a href="scheduletemplates.php">Plantillas de horarios</a> si vas a configurar el mismo horario múltiples veces a varias personas.</p>
72 <?php
73 } else {
74 ?>
75 <p>¡Hola <?=people::userData("name")?>! Bienvenido a tu Panel de Control.</p>
76 <?php
77 if (!secondFactor::isEnabled()) {
78 ?>
79 <hr>
80 <div class="tip mdl-color--blue-100 mdl-shadow--2dp">
81 <p><b>Consejo:</b> debido a que eres un <?=security::htmlsafe(strtolower(security::$types[people::userData("type")]))?> y por lo tanto tu usuario tiene acceso ilimitado a todos los datos del aplicativo, para evitar que estos caigan en manos de un agente malicioso, te recomendamos que actives la <span class="highlighted">verificación en dos pasos</span>.</p>
82 <p>La verificación en dos pasos consiste en la obligación de usar un segundo factor (como un código generado en tu móvil o tu huella dactilar) para iniciar sesión a parte de tu usuario y contraseña. <span class="highlighted">Mientras que una contraseña es relativamente fácil de obtener, para acceder al segundo factor el atacante debe tener acceso físico a un dispositivo tuyo, lo que disminuye el riesgo de sufrir un ataque.</span></p>
83 <p>Puedes aprender más sobre la verificación en dos pasos en <a href="https://avm99963.github.io/hores-external/trabajadores/verificacion-en-dos-pasos/" target="_blank" rel="noopener noreferrer">este artículo de ayuda</a>.</p>
84 </div>
85 <?php
86 }
87 }
88 ?>
89 </div>
90 </div>
91 </main>
92 </div>
93</body>
94</html>