Project import generated by Copybara.
GitOrigin-RevId: 63746295f1a5ab5a619056791995793d65529e62
diff --git a/src/inc/listings.php b/src/inc/listings.php
new file mode 100644
index 0000000..b3aa258
--- /dev/null
+++ b/src/inc/listings.php
@@ -0,0 +1,102 @@
+<?php
+class listings {
+ public static function renderFilterDialog($form, $select) {
+ global $_GET;
+ ?>
+ <dialog class="mdl-dialog" id="filter">
+ <form action="<?=$form?>" method="GET" enctype="multipart/form-data">
+ <h4 class="mdl-dialog__title">Filtrar lista</h4>
+ <div class="mdl-dialog__content">
+ <h5>Categorías</h5>
+ <label class="mdl-checkbox mdl-js-checkbox mdl-js-ripple-effect" for="cat-1">
+ <input type="checkbox" id="cat-1" name="categories[-1]" class="mdl-checkbox__input" value="1"<?=(($select["enabled"]["categories"] && in_array(-1, $select["selected"]["categories"])) ? " checked" : "")?>>
+ <span class="mdl-checkbox__label">Sin categoría</span>
+ </label>
+ <?php
+ foreach (categories::getAll(false, false, true) as $c) {
+ $haschilds = (count($c["childs"]) > 0);
+ if ($haschilds) {
+ $subcategories_arr = [];
+ foreach ($c["childs"] as $child) {
+ $subcategories_arr[] = "“".security::htmlsafe($child["name"])."”";
+ }
+ $subcategories = implode(", ", $subcategories_arr);
+ }
+ ?>
+ <label class="mdl-checkbox mdl-js-checkbox mdl-js-ripple-effect" for="cat<?=(int)$c["id"]?>">
+ <input type="checkbox" id="cat<?=(int)$c["id"]?>" name="categories[<?=(int)$c["id"]?>]" class="mdl-checkbox__input" value="1"<?=(($select["enabled"]["categories"] && in_array($c["id"], $select["selected"]["categories"])) ? " checked" : "")?>>
+ <span class="mdl-checkbox__label"><?=security::htmlsafe($c["name"])?> <?php if ($haschilds) { ?><i id="haschilds<?=(int)$c["id"]?>" class="material-icons help">info</i><?php } ?></span>
+ </label>
+ <?php
+ if ($haschilds) {
+ ?>
+ <div class="mdl-tooltip" for="haschilds<?=(int)$c["id"]?>">Esta categoría incluye la<?=(count($c["childs"]) == 1 ? "" : "s")?> subcategoría<?=(count($c["childs"]) == 1 ? "" : "s")?> <?=$subcategories?></div>
+ <?php
+ }
+ }
+ ?>
+ <h5>Empresas</h5>
+ <?php
+ foreach (companies::getAll() as $id => $company) {
+ ?>
+ <label class="mdl-checkbox mdl-js-checkbox mdl-js-ripple-effect" for="comp<?=(int)$id?>">
+ <input type="checkbox" id="comp<?=(int)$id?>" name="companies[<?=(int)$id?>]" class="mdl-checkbox__input" value="1"<?=(($select["enabled"]["companies"] && in_array($id, $select["selected"]["companies"])) ? " checked" : "")?>>
+ <span class="mdl-checkbox__label"><?=security::htmlsafe($company)?></span>
+ </label>
+ <?php
+ }
+ ?>
+ <h5>Tipos de usuario</h5>
+ <?php
+ foreach (security::$types as $id => $type) {
+ ?>
+ <label class="mdl-checkbox mdl-js-checkbox mdl-js-ripple-effect" for="type<?=(int)$id?>">
+ <input type="checkbox" id="type<?=(int)$id?>" name="types[<?=(int)$id?>]" class="mdl-checkbox__input" value="1"<?=(($select["enabled"]["types"] && in_array($id, $select["selected"]["types"])) ? " checked" : "")?>>
+ <span class="mdl-checkbox__label"><?=security::htmlsafe($type)?></span>
+ </label>
+ <?php
+ }
+
+ if ($form == "workers.php") {
+ echo "<h5>Horario actual</h5>";
+ foreach (schedules::$workerScheduleStatusShort as $id => $type) {
+ ?>
+ <label class="mdl-checkbox mdl-js-checkbox mdl-js-ripple-effect" for="schedulesstatus<?=(int)$id?>">
+ <input type="checkbox" id="schedulesstatus<?=(int)$id?>" name="schedulesstatus[<?=(int)$id?>]" class="mdl-checkbox__input" value="1"<?=(isset($_GET["schedulesstatus"][(int)$id]) ? " checked" : "")?>>
+ <span class="mdl-checkbox__label mdl-color-text--<?=security::htmlsafe(schedules::$workerScheduleStatusColors[$id])?>"><?=security::htmlsafe($type)?></span>
+ </label>
+ <?php
+ }
+ }
+ ?>
+ </div>
+ <div class="mdl-dialog__actions">
+ <button type="submit" class="mdl-button mdl-js-button mdl-js-ripple-effect mdl-button--accent">Filtrar</button>
+ <button onclick="event.preventDefault(); document.querySelector('#filter').close();" class="mdl-button mdl-js-button mdl-js-ripple-effect cancel">Cancelar</button>
+ </div>
+ </form>
+ </dialog>
+ <?php
+ }
+
+ public static function buildSelect($form) {
+ global $select, $selectedSchedulesStatus, $_GET;
+
+ $select = array("enabled" => [], "selected" => []);
+
+ foreach (people::$filters as $f) {
+ $select["enabled"][$f] = isset($_GET[$f]);
+ if ($select["enabled"][$f]) {
+ $select["selected"][$f] = (isset($_GET[$f]) ? array_keys($_GET[$f]) : []);
+ }
+ }
+
+ if ($form == "workers.php") {
+ if (isset($_GET["schedulesstatus"]) && is_array($_GET["schedulesstatus"]) && count($_GET["schedulesstatus"])) {
+ $selectedSchedulesStatus = array_keys($_GET["schedulesstatus"]);
+ } else {
+ $selectedSchedulesStatus = false;
+ }
+ }
+ }
+}