Project import generated by Copybara.

GitOrigin-RevId: 63746295f1a5ab5a619056791995793d65529e62
diff --git a/src/calendars.php b/src/calendars.php
new file mode 100644
index 0000000..bc4e908
--- /dev/null
+++ b/src/calendars.php
@@ -0,0 +1,111 @@
+<?php
+require_once("core.php");
+security::checkType(security::ADMIN);
+
+$mdHeaderRowBefore = visual::backBtn("settings.php");
+?>
+<!DOCTYPE html>
+<html>
+<head>
+  <title><?php echo $conf["appName"]; ?></title>
+  <?php visual::includeHead(); ?>
+  <link rel="stylesheet" href="css/dashboard.css">
+
+  <style>
+  .add-calendar, .category {
+    vertical-align: middle;
+  }
+  </style>
+</head>
+<?php visual::printBodyTag(); ?>
+  <div class="mdl-layout mdl-js-layout mdl-layout--fixed-header mdl-layout--fixed-drawer">
+    <?php visual::includeNav(); ?>
+    <main class="mdl-layout__content">
+      <div class="page-content">
+        <div class="main mdl-shadow--4dp">
+          <h2>Calendarios</h2>
+          <?php
+          $calendars_response = calendars::getAll();
+
+          foreach ($calendars_response as $ccs) {
+            ?>
+            <h4><span class="category"><?=security::htmlsafe($ccs["category"])?></span> <a href="addcalendar.php?id=<?=(int)$ccs["categoryid"]?>" class="mdl-button mdl-js-button mdl-button--icon mdl-button--accent add-calendar" id="cat<?=(int)$ccs["categoryid"]?>"><i class="material-icons">add</i></a></h4>
+            <?php visual::addTooltip("cat".(int)$ccs["categoryid"], "Añadir un calendario a esta categoría"); ?>
+            <?php
+            if (count($ccs["calendars"])) {
+              ?>
+              <div class="overflow-wrapper overflow-wrapper--for-table">
+                <table class="mdl-data-table mdl-js-data-table mdl-shadow--2dp datatable">
+                  <thead>
+                    <tr>
+                      <?php
+                      if ($conf["debug"]) {
+                        ?>
+                        <th class="extra">ID</th>
+                        <?php
+                      }
+                      ?>
+                      <th class="mdl-data-table__cell--non-numeric">Fecha inicio</th>
+                      <th class="mdl-data-table__cell--non-numeric">Fecha fin</th>
+                      <th class="mdl-data-table__cell--non-numeric"></th>
+                    </tr>
+                  </thead>
+                  <tbody>
+                    <?php
+                    foreach ($ccs["calendars"] as $c) {
+                      ?>
+                      <tr>
+                        <?php
+                        if ($conf["debug"]) {
+                          ?>
+                          <td class="extra"><?=(int)$c["id"]?></td>
+                          <?php
+                        }
+                        ?>
+                        <td class="mdl-data-table__cell--non-numeric"><?=security::htmlsafe(date("d/m/Y", $c["begins"]))?></td>
+                        <td class="mdl-data-table__cell--non-numeric"><?=security::htmlsafe(date("d/m/Y", $c["ends"]))?></td>
+                        <td class='mdl-data-table__cell--non-numeric'>
+                          <a href='editcalendar.php?id=<?=(int)$c['id']?>&view=1' title='Ver calendario'><i class='material-icons icon'>open_in_new</i></a>
+                          <a href='editcalendar.php?id=<?=(int)$c['id']?>' title='Editar calendario'><i class='material-icons icon'>edit</i></a>
+                          <a href='dynamic/deletecalendar.php?id=<?=(int)$c['id']?>' data-dyndialog-href='dynamic/deletecalendar.php?id=<?=(int)$c['id']?>' title='Eliminar calendario'><i class='material-icons icon'>delete</i></a>
+                          <a href='dynamic/exportcalendar.php?id=<?=(int)$c['id']?>' data-dyndialog-href='dynamic/exportcalendar.php?id=<?=(int)$c['id']?>' title='Exportar calendario'><i class='material-icons icon'>code</i></a>
+                        </td>
+                      </tr>
+                      <?php
+                    }
+                    ?>
+                  </tbody>
+                </table>
+              </div>
+              <?php
+            } else {
+              echo "<p>No se ha configurado ningún calendario todavía.</p>";
+            }
+          }
+          ?>
+
+          <?php visual::printDebug("calendars::getAll()", $calendars_response); ?>
+        </div>
+      </div>
+    </main>
+  </div>
+
+  <div class="mdl-snackbar mdl-js-snackbar">
+    <div class="mdl-snackbar__text"></div>
+    <button type="button" class="mdl-snackbar__action"></button>
+  </div>
+
+  <?php
+  visual::renderTooltips();
+
+  visual::smartSnackbar([
+    ["added", "Se ha añadido el calendario correctamente."],
+    ["modified", "Se ha modificado el calendario correctamente."],
+    ["deleted", "Se ha eliminado el calendario correctamente."],
+    ["empty", "Faltan datos por introducir en el formulario o el correo electrónico es incorrecto."],
+    ["unexpected", "Ha ocurrido un error inesperado. Inténtelo de nuevo en unos segundos."],
+    ["overlap", "El calendario que intentabas añadir se solapa con uno ya existente, así que no se ha añadido."]
+  ], 10000, false);
+  ?>
+</body>
+</html>