blob: faeb753e0161e145d8e6abccd7eae8ab5b451500 [file] [log] [blame]
Copybara botbe50d492023-11-30 00:16:42 +01001<?php
2require_once("core.php");
3security::checkType(security::ADMIN);
4
5$mdHeaderRowBefore = visual::backBtn("settings.php");
6?>
7<!DOCTYPE html>
8<html>
9<head>
10 <title><?php echo $conf["appName"]; ?></title>
11 <?php visual::includeHead(); ?>
12 <link rel="stylesheet" href="css/dashboard.css">
13
14 <style>
15 .addincident {
16 position: fixed;
17 bottom: 16px;
18 right: 16px;
19 z-index: 1000;
20 }
21
22 @media (max-width: 655px) {
23 .extra {
24 display: none;
25 }
26 }
27 </style>
28</head>
29<?php visual::printBodyTag(); ?>
30 <div class="mdl-layout mdl-js-layout mdl-layout--fixed-header mdl-layout--fixed-drawer">
31 <?php visual::includeNav(); ?>
32 <button class="addincident mdl-button md-js-button mdl-button--fab mdl-js-ripple-effect mdl-button--accent"><i class="material-icons">add</i><span class="mdl-ripple"></span></button>
33 <main class="mdl-layout__content">
34 <div class="page-content">
35 <div class="main mdl-shadow--4dp">
36 <h2>Tipos de incidencias</h2>
37 <?php
38 $incidents = incidents::getTypes();
39 if (count($incidents)) {
40 ?>
41 <div class="overflow-wrapper overflow-wrapper--for-table">
42 <table class="mdl-data-table mdl-js-data-table mdl-shadow--2dp">
43 <thead>
44 <tr>
45 <?php
46 if ($conf["debug"]) {
47 ?>
48 <th class="extra">ID</th>
49 <?php
50 }
51 ?>
52 <th class="mdl-data-table__cell--non-numeric">Nombre</th>
53 <th class="mdl-data-table__cell--centered"><i id="tt_present" class="material-icons help">business</i></th>
54 <th class="mdl-data-table__cell--centered"><i id="tt_paid" class="material-icons help">euro_symbol</i></th>
55 <th class="mdl-data-table__cell--centered"><i id="tt_workerfill" class="material-icons help">face</i></th>
56 <th class="mdl-data-table__cell--centered"><i id="tt_notifies" class="material-icons help">email</i></th>
57 <th class="mdl-data-table__cell--centered"><i id="tt_autovalidates" class="material-icons help">verified_user</i></th>
58 <th class="mdl-data-table__cell--non-numeric"></th>
59 </tr>
60 </thead>
61 <tbody>
62 <?php
63 foreach ($incidents as $t) {
64 ?>
65 <tr<?=($t["hidden"] == 1 ? " class='mdl-color-text--grey-600'" : "")?>>
66 <?php
67 if ($conf["debug"]) {
68 ?>
69 <td class="extra"><?=(int)$t["id"]?></td>
70 <?php
71 }
72 ?>
73 <td class="mdl-data-table__cell--non-numeric"><?=security::htmlsafe($t["name"])?></td>
74 <td class="mdl-data-table__cell--centered"><?=($t["present"] == 1 ? visual::YES : "")?></td>
75 <td class="mdl-data-table__cell--centered"><?=($t["paid"] == 1 ? visual::YES : "")?></td>
76 <td class="mdl-data-table__cell--centered"><?=($t["workerfill"] == 1 ? visual::YES : "")?></td>
77 <td class="mdl-data-table__cell--centered"><?=($t["notifies"] == 1 ? visual::YES : "")?></td>
78 <td class="mdl-data-table__cell--centered"><?=($t["autovalidates"] == 1 ? visual::YES : "")?></td>
79 <td class='mdl-data-table__cell--non-numeric'><a href='dynamic/editincidenttype.php?id=<?=security::htmlsafe($t["id"])?>' data-dyndialog-href='dynamic/editincidenttype.php?id=<?=security::htmlsafe($t["id"])?>' title='Editar tipo de incidencia'><i class='material-icons icon'>edit</i></a></td>
80 </tr>
81 <?php
82 }
83 ?>
84 </tbody>
85 </table>
86 </div>
87 <?php
88 visual::addTooltip("tt_present", "Indica si el trabajador está físicamente presente en el espacio de trabajo durante la incidencia (es la opción que indica si las horas cuentan como positivas o negativas).");
89 visual::addTooltip("tt_paid", "Indica si el trabajador es remunerado las horas que dura la incidencia.");
90 visual::addTooltip("tt_workerfill", "Indica si se permite que el trabajador pueda rellenar una incidencia de este tipo él mismo (con la posterior verificación por parte de un administrador).");
91 visual::addTooltip("tt_notifies", "Indica si la introducción de una incidencia de este tipo notifica por correo electrónico a las personas especificadas en la categoría del trabajador.");
92 visual::addTooltip("tt_autovalidates", "Indica si al introducir una incidencia de este tipo se autovalida sin necesidad de ser validada posteriormente por el trabajador.");
93 } else {
94 ?>
95 <p>Todavía no hay definido ningún tipo de incidencia.</p>
96 <p>Puedes añadir uno haciendo clic en el botón de la esquina inferior derecha de la página.</p>
97 <?php
98 }
99 ?>
100
101 <?php visual::printDebug("incidents::getTypes()", $incidents); ?>
102 </div>
103 </div>
104 </main>
105 </div>
106
107 <dialog class="mdl-dialog" id="addincident">
108 <form action="doaddincidenttype.php" method="POST" autocomplete="off">
109 <h4 class="mdl-dialog__title">Añade un tipo de incidencia</h4>
110 <div class="mdl-dialog__content">
111 <div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
112 <input class="mdl-textfield__input" type="text" name="name" id="name" autocomplete="off" data-required>
113 <label class="mdl-textfield__label" for="name">Nombre del tipo de incidencia</label>
114 </div>
115 <p>
116 <label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="present">
117 <input type="checkbox" id="present" name="present" value="1" class="mdl-switch__input">
118 <span class="mdl-switch__label">Presente <i class="material-icons help" id="add_present">help</i></span>
119 </label>
120 <div class="mdl-tooltip" for="add_present">Márquese si el trabajador está físicamente presente en el espacio de trabajo durante la incidencia.</div>
121 </p>
122 <p>
123 <label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="paid">
124 <input type="checkbox" id="paid" name="paid" value="1" class="mdl-switch__input">
125 <span class="mdl-switch__label">Remunerada <i class="material-icons help" id="add_paid">help</i></span>
126 </label>
127 <div class="mdl-tooltip" for="add_paid">Márquese si el trabajador es remunerado las horas que dura la incidencia.</div>
128 </p>
129 <p>
130 <label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="workerfill">
131 <input type="checkbox" id="workerfill" name="workerfill" value="1" class="mdl-switch__input">
132 <span class="mdl-switch__label">Puede autorrellenarse <i class="material-icons help" id="add_workerfill">help</i></span>
133 </label>
134 </p>
135 <div class="mdl-tooltip" for="add_workerfill">Márquese si se permite que el trabajador pueda rellenar una incidencia de este tipo él mismo (con la posterior verificación por parte de un administrador).</div>
136 <p>
137 <label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="notifies">
138 <input type="checkbox" id="notifies" name="notifies" value="1" class="mdl-switch__input">
139 <span class="mdl-switch__label">Notifica <i class="material-icons help" id="add_notifies">help</i></span>
140 </label>
141 <div class="mdl-tooltip" for="add_notifies">Márquese si la introducción de una incidencia de este tipo se quiere que se notifique por correo electrónico a las personas especificadas en la categoría del trabajador.</div>
142 </p>
143 <p>
144 <label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="autovalidates">
145 <input type="checkbox" id="autovalidates" name="autovalidates" value="1" class="mdl-switch__input">
146 <span class="mdl-switch__label">Se autovalida <i class="material-icons help" id="add_autovalidates">help</i></span>
147 </label>
148 <div class="mdl-tooltip" for="add_autovalidates">Márquese si al introducir una incidencia de este tipo se quiere que se autovalide sin necesidad de ser validada posteriormente por el trabajador.</div>
149 </p>
150 <p>
151 <label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="hidden">
152 <input type="checkbox" id="hidden" name="hidden" value="1" class="mdl-switch__input">
153 <span class="mdl-switch__label">Oculto</span>
154 </label>
155 </p>
156 </div>
157 <div class="mdl-dialog__actions">
158 <button type="submit" class="mdl-button mdl-js-button mdl-js-ripple-effect mdl-button--accent">Añadir</button>
159 <button onclick="event.preventDefault(); document.querySelector('#addincident').close();" class="mdl-button mdl-js-button mdl-js-ripple-effect cancel">Cancelar</button>
160 </div>
161 </form>
162 </dialog>
163
164 <?php
165 visual::renderTooltips();
166
167 visual::smartSnackbar([
168 ["added", "Se ha añadido el tipo de incidencia correctamente."],
169 ["modified", "Se ha modificado el tipo de incidencia correctamente."],
170 ["empty", "Faltan datos por introducir en el formulario."],
171 ["unexpected", "Ha ocurrido un error inesperado. Inténtelo de nuevo en unos segundos."]
172 ]);
173 ?>
174
175 <script src="js/incidenttypes.js"></script>
176</body>
177</html>