summaryrefslogtreecommitdiff
path: root/includes/planner.php
diff options
context:
space:
mode:
Diffstat (limited to 'includes/planner.php')
-rw-r--r--includes/planner.php872
1 files changed, 872 insertions, 0 deletions
diff --git a/includes/planner.php b/includes/planner.php
new file mode 100644
index 0000000..0b7604a
--- /dev/null
+++ b/includes/planner.php
@@ -0,0 +1,872 @@
+<?php
+
+$cloudburst = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/ynmuc-planner.json"), true);
+$raindrops = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/gdapd-planner.json"), true);
+
+?>
+
+<h2>Front Planner</h2>
+<table id="planner">
+ <tbody>
+ <tr class="planner-day">
+ <td colspan="4" id="planner-header-0">Today</td>
+ <?php
+
+ if (!$cloudburst[date('Y-m-d')]) $cloudburst[date('Y-m-d')] = [];
+ $dayCloudburst = $cloudburst[date('Y-m-d')];
+ if (!$raindrops[date('Y-m-d')]) $raindrops[date('Y-m-d')] = [];
+ $dayRaindrops = $raindrops[date('Y-m-d')];
+
+ $index = 0;
+ $lengthCloudburst = count($dayCloudburst);
+ $lengthRaindrops = count($dayRaindrops);
+ $biggest = max($lengthCloudburst, $lengthRaindrops);
+
+ ?>
+ </tr>
+ <tr class="planner-header">
+ <td colspan="2">Cloudburst System</td>
+ <td colspan="2">Raindrops System</td>
+ </tr>
+ <?php for ($i = 0; $i <= $biggest; $i++): ?>
+ <tr class="planner-member">
+ <?php if (isset($dayCloudburst[$index])): ?>
+ <td class="planner-member-id">
+ <?= $index + 1 ?>
+ </td>
+ <td class="planner-link">
+ <?php $member = getSystemMember("ynmuc", $dayCloudburst[$index]); ?>
+ <a class="member-link" onclick="openEditFronter('cloudburst', <?= $index ?>, '<?= date('Y-m-d') ?>')"><img src="/assets/uploads/pt<?= file_exists($_SERVER['DOCUMENT_ROOT'] . "/assets/uploads/pt-" . $member['name'] . ".png") ? "-" . $member['name'] : "" ?>.png" style="width:24px;"> <?= getMiniName($member["display_name"] ?? $member["name"]) ?></a>
+ </td>
+ <?php elseif ($index === count($dayCloudburst)): ?>
+ <td class="planner-add-inner planner-link" colspan="2">
+ <a href="#" onclick="addFronter('cloudburst', 0);" class="planner-add-link">
+ <img src="/assets/icons/add.svg" alt="" class="planner-add-icon">
+ <span class="planner-add-text">Add new fronter</span>
+ </a>
+ </td>
+ <?php else: ?>
+ <td colspan="2" class="planner-empty"></td>
+ <?php endif; ?>
+ <?php if (isset($dayRaindrops[$index])): ?>
+ <td class="planner-member-id">
+ <?= $index + 1 ?>
+ </td>
+ <?php $member = getSystemMember("gdapd", $dayRaindrops[$index]); ?>
+ <td class="planner-link">
+ <a class="member-link" onclick="openEditFronter('raindrops', <?= $index ?>, '<?= date('Y-m-d') ?>')"><img src="/assets/uploads/pt<?= file_exists($_SERVER['DOCUMENT_ROOT'] . "/assets/uploads/pt-" . $member['name'] . ".png") ? "-" . $member['name'] : "" ?>.png" style="width:24px;"> <?= getMiniName($member["display_name"] ?? $member["name"]) ?></a>
+ </td>
+ <?php elseif ($index === count($dayRaindrops)): ?>
+ <td class="planner-add-inner planner-link" colspan="2">
+ <a href="#" onclick="addFronter('raindrops', 0);" class="planner-add-link">
+ <img src="/assets/icons/add.svg" alt="" class="planner-add-icon">
+ <span class="planner-add-text">Add new fronter</span>
+ </a>
+ </td>
+ <?php else: ?>
+ <td colspan="2" class="planner-empty"></td>
+ <?php endif; ?>
+ </tr>
+ <?php $index++; endfor; ?>
+ <tr class="planner-day planner-end-of-day">
+ <td colspan="4">
+ <?php if (count($dayCloudburst) > 0 && count($dayRaindrops) > 0): ?>
+ <?= getMiniName(getSystemMember("ynmuc", $dayCloudburst[count($dayCloudburst) - 1])["display_name"] ?? getSystemMember("ynmuc", $dayCloudburst[count($dayCloudburst) - 1])["name"]) ?> will sleep with <?= getMiniName(getSystemMember("gdapd", $dayRaindrops[count($dayRaindrops) - 1])["display_name"] ?? getSystemMember("gdapd", $dayRaindrops[count($dayRaindrops) - 1])["name"]) ?>
+ <?php else: ?>
+ Unable to calculate who will sleep with who
+ <?php endif; ?>
+ </td>
+ </tr>
+ <tr class="planner-separator"></tr>
+
+ <tr class="planner-day" id="planner-header-1">
+ <td colspan="4">Tomorrow</td>
+ <?php
+
+ if (!$cloudburst[date('Y-m-d', time() + 86400)]) $cloudburst[date('Y-m-d', time() + 86400)] = [];
+ $dayCloudburst = $cloudburst[date('Y-m-d', time() + 86400)];
+ if (!$raindrops[date('Y-m-d', time() + 86400)]) $raindrops[date('Y-m-d', time() + 86400)] = [];
+ $dayRaindrops = $raindrops[date('Y-m-d', time() + 86400)];
+
+ $index = 0;
+ $lengthCloudburst = count($dayCloudburst);
+ $lengthRaindrops = count($dayRaindrops);
+ $biggest = max($lengthCloudburst, $lengthRaindrops);
+
+ ?>
+ </tr>
+ <tr class="planner-header">
+ <td colspan="2">Cloudburst System</td>
+ <td colspan="2">Raindrops System</td>
+ </tr>
+ <?php for ($i = 0; $i <= $biggest; $i++): ?>
+ <tr class="planner-member">
+ <?php if (isset($dayCloudburst[$index])): ?>
+ <td class="planner-member-id">
+ <?= $index + 1 ?>
+ </td>
+ <td class="planner-link">
+ <?php $member = getSystemMember("ynmuc", $dayCloudburst[$index]); ?>
+ <a class="member-link" onclick="openEditFronter('cloudburst', <?= $index ?>, '<?= date('Y-m-d', time() + 86400) ?>')"><img src="/assets/uploads/pt<?= file_exists($_SERVER['DOCUMENT_ROOT'] . "/assets/uploads/pt-" . $member['name'] . ".png") ? "-" . $member['name'] : "" ?>.png" style="width:24px;"> <?= getMiniName($member["display_name"] ?? $member["name"]) ?></a>
+ </td>
+ <?php elseif ($index === count($dayCloudburst)): ?>
+ <td class="planner-add-inner planner-link" colspan="2">
+ <a href="#" onclick="addFronter('cloudburst', 1);" class="planner-add-link">
+ <img src="/assets/icons/add.svg" alt="" class="planner-add-icon">
+ <span class="planner-add-text">Add new fronter</span>
+ </a>
+ </td>
+ <?php else: ?>
+ <td colspan="2" class="planner-empty"></td>
+ <?php endif; ?>
+ <?php if (isset($dayRaindrops[$index])): ?>
+ <td class="planner-member-id">
+ <?= $index + 1 ?>
+ </td>
+ <?php $member = getSystemMember("gdapd", $dayRaindrops[$index]); ?>
+ <td class="planner-link">
+ <a class="member-link" onclick="openEditFronter('raindrops', <?= $index ?>, '<?= date('Y-m-d', time() + 86400) ?>')"><img src="/assets/uploads/pt<?= file_exists($_SERVER['DOCUMENT_ROOT'] . "/assets/uploads/pt-" . $member['name'] . ".png") ? "-" . $member['name'] : "" ?>.png" style="width:24px;"> <?= getMiniName($member["display_name"] ?? $member["name"]) ?></a>
+ </td>
+ <?php elseif ($index === count($dayRaindrops)): ?>
+ <td class="planner-add-inner planner-link" colspan="2">
+ <a href="#" onclick="addFronter('raindrops', 1);" class="planner-add-link">
+ <img src="/assets/icons/add.svg" alt="" class="planner-add-icon">
+ <span class="planner-add-text">Add new fronter</span>
+ </a>
+ </td>
+ <?php else: ?>
+ <td colspan="2" class="planner-empty"></td>
+ <?php endif; ?>
+ </tr>
+ <?php $index++; endfor; ?>
+ <tr class="planner-day planner-end-of-day">
+ <td colspan="4">
+ <?php if (count($dayCloudburst) > 0 && count($dayRaindrops) > 0): ?>
+ <?= getMiniName(getSystemMember("ynmuc", $dayCloudburst[count($dayCloudburst) - 1])["display_name"] ?? getSystemMember("ynmuc", $dayCloudburst[count($dayCloudburst) - 1])["name"]) ?> will sleep with <?= getMiniName(getSystemMember("gdapd", $dayRaindrops[count($dayRaindrops) - 1])["display_name"] ?? getSystemMember("gdapd", $dayRaindrops[count($dayRaindrops) - 1])["name"]) ?>
+ <?php else: ?>
+ Unable to calculate who will sleep with who
+ <?php endif; ?>
+ </td>
+ </tr>
+ <tr class="planner-separator"></tr>
+
+ <tr class="planner-day" id="planner-header-2">
+ <td colspan="4"><?= date('l', time() + (86400 * 2)) ?></td>
+ <?php
+
+ if (!$cloudburst[date('Y-m-d', time() + (86400 * 2))]) $cloudburst[date('Y-m-d', time() + (86400 * 2))] = [];
+ $dayCloudburst = $cloudburst[date('Y-m-d', time() + (86400 * 2))];
+ if (!$raindrops[date('Y-m-d', time() + (86400 * 2))]) $raindrops[date('Y-m-d', time() + (86400 * 2))] = [];
+ $dayRaindrops = $raindrops[date('Y-m-d', time() + (86400 * 2))];
+
+ $index = 0;
+ $lengthCloudburst = count($dayCloudburst);
+ $lengthRaindrops = count($dayRaindrops);
+ $biggest = max($lengthCloudburst, $lengthRaindrops);
+
+ ?>
+ </tr>
+ <tr class="planner-header">
+ <td colspan="2">Cloudburst System</td>
+ <td colspan="2">Raindrops System</td>
+ </tr>
+ <?php for ($i = 0; $i <= $biggest; $i++): ?>
+ <tr class="planner-member">
+ <?php if (isset($dayCloudburst[$index])): ?>
+ <td class="planner-member-id">
+ <?= $index + 1 ?>
+ </td>
+ <td class="planner-link">
+ <?php $member = getSystemMember("ynmuc", $dayCloudburst[$index]); ?>
+ <a class="member-link" onclick="openEditFronter('cloudburst', <?= $index ?>, '<?= date('Y-m-d', time() + (86400 * 2)) ?>')"><img src="/assets/uploads/pt<?= file_exists($_SERVER['DOCUMENT_ROOT'] . "/assets/uploads/pt-" . $member['name'] . ".png") ? "-" . $member['name'] : "" ?>.png" style="width:24px;"> <?= getMiniName($member["display_name"] ?? $member["name"]) ?></a>
+ </td>
+ <?php elseif ($index === count($dayCloudburst)): ?>
+ <td class="planner-add-inner planner-link" colspan="2">
+ <a href="#" onclick="addFronter('cloudburst', 2);" class="planner-add-link">
+ <img src="/assets/icons/add.svg" alt="" class="planner-add-icon">
+ <span class="planner-add-text">Add new fronter</span>
+ </a>
+ </td>
+ <?php else: ?>
+ <td colspan="2" class="planner-empty"></td>
+ <?php endif; ?>
+ <?php if (isset($dayRaindrops[$index])): ?>
+ <td class="planner-member-id">
+ <?= $index + 1 ?>
+ </td>
+ <?php $member = getSystemMember("gdapd", $dayRaindrops[$index]); ?>
+ <td class="planner-link">
+ <a class="member-link" onclick="openEditFronter('raindrops', <?= $index ?>, '<?= date('Y-m-d', time() + (86400 * 2)) ?>')"><img src="/assets/uploads/pt<?= file_exists($_SERVER['DOCUMENT_ROOT'] . "/assets/uploads/pt-" . $member['name'] . ".png") ? "-" . $member['name'] : "" ?>.png" style="width:24px;"> <?= getMiniName($member["display_name"] ?? $member["name"]) ?></a>
+ </td>
+ <?php elseif ($index === count($dayRaindrops)): ?>
+ <td class="planner-add-inner planner-link" colspan="2">
+ <a href="#" onclick="addFronter('raindrops', 2);" class="planner-add-link">
+ <img src="/assets/icons/add.svg" alt="" class="planner-add-icon">
+ <span class="planner-add-text">Add new fronter</span>
+ </a>
+ </td>
+ <?php else: ?>
+ <td colspan="2" class="planner-empty"></td>
+ <?php endif; ?>
+ </tr>
+ <?php $index++; endfor; ?>
+ <tr class="planner-day planner-end-of-day">
+ <td colspan="4">
+ <?php if (count($dayCloudburst) > 0 && count($dayRaindrops) > 0): ?>
+ <?= getMiniName(getSystemMember("ynmuc", $dayCloudburst[count($dayCloudburst) - 1])["display_name"] ?? getSystemMember("ynmuc", $dayCloudburst[count($dayCloudburst) - 1])["name"]) ?> will sleep with <?= getMiniName(getSystemMember("gdapd", $dayRaindrops[count($dayRaindrops) - 1])["display_name"] ?? getSystemMember("gdapd", $dayRaindrops[count($dayRaindrops) - 1])["name"]) ?>
+ <?php else: ?>
+ Unable to calculate who will sleep with who
+ <?php endif; ?>
+ </td>
+ </tr>
+ <tr class="planner-separator"></tr>
+
+ <tr class="planner-day">
+ <td colspan="4" id="planner-header-3"><?= date('l', time() + (86400 * 3)) ?></td>
+ <?php
+
+ if (!$cloudburst[date('Y-m-d', time() + (86400 * 3))]) $cloudburst[date('Y-m-d', time() + (86400 * 3))] = [];
+ $dayCloudburst = $cloudburst[date('Y-m-d', time() + (86400 * 3))];
+ if (!$raindrops[date('Y-m-d', time() + (86400 * 3))]) $raindrops[date('Y-m-d', time() + (86400 * 3))] = [];
+ $dayRaindrops = $raindrops[date('Y-m-d', time() + (86400 * 3))];
+
+ $index = 0;
+ $lengthCloudburst = count($dayCloudburst);
+ $lengthRaindrops = count($dayRaindrops);
+ $biggest = max($lengthCloudburst, $lengthRaindrops);
+
+ ?>
+ </tr>
+ <tr class="planner-header">
+ <td colspan="2">Cloudburst System</td>
+ <td colspan="2">Raindrops System</td>
+ </tr>
+ <?php for ($i = 0; $i <= $biggest; $i++): ?>
+ <tr class="planner-member">
+ <?php if (isset($dayCloudburst[$index])): ?>
+ <td class="planner-member-id">
+ <?= $index + 1 ?>
+ </td>
+ <td class="planner-link">
+ <?php $member = getSystemMember("ynmuc", $dayCloudburst[$index]); ?>
+ <a class="member-link" onclick="openEditFronter('cloudburst', <?= $index ?>, '<?= date('Y-m-d', time() + (86400 * 3)) ?>')"><img src="/assets/uploads/pt<?= file_exists($_SERVER['DOCUMENT_ROOT'] . "/assets/uploads/pt-" . $member['name'] . ".png") ? "-" . $member['name'] : "" ?>.png" style="width:24px;"> <?= getMiniName($member["display_name"] ?? $member["name"]) ?></a>
+ </td>
+ <?php elseif ($index === count($dayCloudburst)): ?>
+ <td class="planner-add-inner planner-link" colspan="2">
+ <a href="#" onclick="addFronter('cloudburst', 3);" class="planner-add-link">
+ <img src="/assets/icons/add.svg" alt="" class="planner-add-icon">
+ <span class="planner-add-text">Add new fronter</span>
+ </a>
+ </td>
+ <?php else: ?>
+ <td colspan="2" class="planner-empty"></td>
+ <?php endif; ?>
+ <?php if (isset($dayRaindrops[$index])): ?>
+ <td class="planner-member-id">
+ <?= $index + 1 ?>
+ </td>
+ <?php $member = getSystemMember("gdapd", $dayRaindrops[$index]); ?>
+ <td class="planner-link">
+ <a class="member-link" onclick="openEditFronter('raindrops', <?= $index ?>, '<?= date('Y-m-d', time() + (86400 * 3)) ?>')"><img src="/assets/uploads/pt<?= file_exists($_SERVER['DOCUMENT_ROOT'] . "/assets/uploads/pt-" . $member['name'] . ".png") ? "-" . $member['name'] : "" ?>.png" style="width:24px;"> <?= getMiniName($member["display_name"] ?? $member["name"]) ?></a>
+ </td>
+ <?php elseif ($index === count($dayRaindrops)): ?>
+ <td class="planner-add-inner planner-link" colspan="2">
+ <a href="#" onclick="addFronter('raindrops', 3);" class="planner-add-link">
+ <img src="/assets/icons/add.svg" alt="" class="planner-add-icon">
+ <span class="planner-add-text">Add new fronter</span>
+ </a>
+ </td>
+ <?php else: ?>
+ <td colspan="2" class="planner-empty"></td>
+ <?php endif; ?>
+ </tr>
+ <?php $index++; endfor; ?>
+ <tr class="planner-day planner-end-of-day">
+ <td colspan="4">
+ <?php if (count($dayCloudburst) > 0 && count($dayRaindrops) > 0): ?>
+ <?= getMiniName(getSystemMember("ynmuc", $dayCloudburst[count($dayCloudburst) - 1])["display_name"] ?? getSystemMember("ynmuc", $dayCloudburst[count($dayCloudburst) - 1])["name"]) ?> will sleep with <?= getMiniName(getSystemMember("gdapd", $dayRaindrops[count($dayRaindrops) - 1])["display_name"] ?? getSystemMember("gdapd", $dayRaindrops[count($dayRaindrops) - 1])["name"]) ?>
+ <?php else: ?>
+ Unable to calculate who will sleep with who
+ <?php endif; ?>
+ </td>
+ </tr>
+ <tr class="planner-separator"></tr>
+
+ <tr class="planner-day">
+ <td colspan="4" id="planner-header-4"><?= date('l', time() + (86400 * 4)) ?></td>
+ <?php
+
+ if (!$cloudburst[date('Y-m-d', time() + (86400 * 4))]) $cloudburst[date('Y-m-d', time() + (86400 * 4))] = [];
+ $dayCloudburst = $cloudburst[date('Y-m-d', time() + (86400 * 4))];
+ if (!$raindrops[date('Y-m-d', time() + (86400 * 4))]) $raindrops[date('Y-m-d', time() + (86400 * 4))] = [];
+ $dayRaindrops = $raindrops[date('Y-m-d', time() + (86400 * 4))];
+
+ $index = 0;
+ $lengthCloudburst = count($dayCloudburst);
+ $lengthRaindrops = count($dayRaindrops);
+ $biggest = max($lengthCloudburst, $lengthRaindrops);
+
+ ?>
+ </tr>
+ <tr class="planner-header">
+ <td colspan="2">Cloudburst System</td>
+ <td colspan="2">Raindrops System</td>
+ </tr>
+ <?php for ($i = 0; $i <= $biggest; $i++): ?>
+ <tr class="planner-member">
+ <?php if (isset($dayCloudburst[$index])): ?>
+ <td class="planner-member-id">
+ <?= $index + 1 ?>
+ </td>
+ <td class="planner-link">
+ <?php $member = getSystemMember("ynmuc", $dayCloudburst[$index]); ?>
+ <a class="member-link" onclick="openEditFronter('cloudburst', <?= $index ?>, '<?= date('Y-m-d', time() + (86400 * 4)) ?>')"><img src="/assets/uploads/pt<?= file_exists($_SERVER['DOCUMENT_ROOT'] . "/assets/uploads/pt-" . $member['name'] . ".png") ? "-" . $member['name'] : "" ?>.png" style="width:24px;"> <?= getMiniName($member["display_name"] ?? $member["name"]) ?></a>
+ </td>
+ <?php elseif ($index === count($dayCloudburst)): ?>
+ <td class="planner-add-inner planner-link" colspan="2">
+ <a href="#" onclick="addFronter('cloudburst', 4);" class="planner-add-link">
+ <img src="/assets/icons/add.svg" alt="" class="planner-add-icon">
+ <span class="planner-add-text">Add new fronter</span>
+ </a>
+ </td>
+ <?php else: ?>
+ <td colspan="2" class="planner-empty"></td>
+ <?php endif; ?>
+ <?php if (isset($dayRaindrops[$index])): ?>
+ <td class="planner-member-id">
+ <?= $index + 1 ?>
+ </td>
+ <?php $member = getSystemMember("gdapd", $dayRaindrops[$index]); ?>
+ <td class="planner-link">
+ <a class="member-link" onclick="openEditFronter('raindrops', <?= $index ?>, '<?= date('Y-m-d', time() + (86400 * 4)) ?>')"><img src="/assets/uploads/pt<?= file_exists($_SERVER['DOCUMENT_ROOT'] . "/assets/uploads/pt-" . $member['name'] . ".png") ? "-" . $member['name'] : "" ?>.png" style="width:24px;"> <?= getMiniName($member["display_name"] ?? $member["name"]) ?></a>
+ </td>
+ <?php elseif ($index === count($dayRaindrops)): ?>
+ <td class="planner-add-inner planner-link" colspan="2">
+ <a href="#" onclick="addFronter('raindrops', 4);" class="planner-add-link">
+ <img src="/assets/icons/add.svg" alt="" class="planner-add-icon">
+ <span class="planner-add-text">Add new fronter</span>
+ </a>
+ </td>
+ <?php else: ?>
+ <td colspan="2" class="planner-empty"></td>
+ <?php endif; ?>
+ </tr>
+ <?php $index++; endfor; ?>
+ <tr class="planner-day planner-end-of-day">
+ <td colspan="4">
+ <?php if (count($dayCloudburst) > 0 && count($dayRaindrops) > 0): ?>
+ <?= getMiniName(getSystemMember("ynmuc", $dayCloudburst[count($dayCloudburst) - 1])["display_name"] ?? getSystemMember("ynmuc", $dayCloudburst[count($dayCloudburst) - 1])["name"]) ?> will sleep with <?= getMiniName(getSystemMember("gdapd", $dayRaindrops[count($dayRaindrops) - 1])["display_name"] ?? getSystemMember("gdapd", $dayRaindrops[count($dayRaindrops) - 1])["name"]) ?>
+ <?php else: ?>
+ Unable to calculate who will sleep with who
+ <?php endif; ?>
+ </td>
+ </tr>
+ <tr class="planner-separator"></tr>
+
+ <tr class="planner-day">
+ <td colspan="4" id="planner-header-5"><?= date('l', time() + (86400 * 5)) ?></td>
+ <?php
+
+ if (!$cloudburst[date('Y-m-d', time() + (86400 * 5))]) $cloudburst[date('Y-m-d', time() + (86400 * 5))] = [];
+ $dayCloudburst = $cloudburst[date('Y-m-d', time() + (86400 * 5))];
+ if (!$raindrops[date('Y-m-d', time() + (86400 * 5))]) $raindrops[date('Y-m-d', time() + (86400 * 5))] = [];
+ $dayRaindrops = $raindrops[date('Y-m-d', time() + (86400 * 5))];
+
+ $index = 0;
+ $lengthCloudburst = count($dayCloudburst);
+ $lengthRaindrops = count($dayRaindrops);
+ $biggest = max($lengthCloudburst, $lengthRaindrops);
+
+ ?>
+ </tr>
+ <tr class="planner-header">
+ <td colspan="2">Cloudburst System</td>
+ <td colspan="2">Raindrops System</td>
+ </tr>
+ <?php for ($i = 0; $i <= $biggest; $i++): ?>
+ <tr class="planner-member">
+ <?php if (isset($dayCloudburst[$index])): ?>
+ <td class="planner-member-id">
+ <?= $index + 1 ?>
+ </td>
+ <td class="planner-link">
+ <?php $member = getSystemMember("ynmuc", $dayCloudburst[$index]); ?>
+ <a class="member-link" onclick="openEditFronter('cloudburst', <?= $index ?>, '<?= date('Y-m-d', time() + (86400 * 5)) ?>')"><img src="/assets/uploads/pt<?= file_exists($_SERVER['DOCUMENT_ROOT'] . "/assets/uploads/pt-" . $member['name'] . ".png") ? "-" . $member['name'] : "" ?>.png" style="width:24px;"> <?= getMiniName($member["display_name"] ?? $member["name"]) ?></a>
+ </td>
+ <?php elseif ($index === count($dayCloudburst)): ?>
+ <td class="planner-add-inner planner-link" colspan="2">
+ <a href="#" onclick="addFronter('cloudburst', 5);" class="planner-add-link">
+ <img src="/assets/icons/add.svg" alt="" class="planner-add-icon">
+ <span class="planner-add-text">Add new fronter</span>
+ </a>
+ </td>
+ <?php else: ?>
+ <td colspan="2" class="planner-empty"></td>
+ <?php endif; ?>
+ <?php if (isset($dayRaindrops[$index])): ?>
+ <td class="planner-member-id">
+ <?= $index + 1 ?>
+ </td>
+ <?php $member = getSystemMember("gdapd", $dayRaindrops[$index]); ?>
+ <td class="planner-link">
+ <a class="member-link" onclick="openEditFronter('raindrops', <?= $index ?>, '<?= date('Y-m-d', time() + (86400 * 5)) ?>')"><img src="/assets/uploads/pt<?= file_exists($_SERVER['DOCUMENT_ROOT'] . "/assets/uploads/pt-" . $member['name'] . ".png") ? "-" . $member['name'] : "" ?>.png" style="width:24px;"> <?= getMiniName($member["display_name"] ?? $member["name"]) ?></a>
+ </td>
+ <?php elseif ($index === count($dayRaindrops)): ?>
+ <td class="planner-add-inner planner-link" colspan="2">
+ <a href="#" onclick="addFronter('raindrops', 5);" class="planner-add-link">
+ <img src="/assets/icons/add.svg" alt="" class="planner-add-icon">
+ <span class="planner-add-text">Add new fronter</span>
+ </a>
+ </td>
+ <?php else: ?>
+ <td colspan="2" class="planner-empty"></td>
+ <?php endif; ?>
+ </tr>
+ <?php $index++; endfor; ?>
+ <tr class="planner-day planner-end-of-day">
+ <td colspan="4">
+ <?php if (count($dayCloudburst) > 0 && count($dayRaindrops) > 0): ?>
+ <?= getMiniName(getSystemMember("ynmuc", $dayCloudburst[count($dayCloudburst) - 1])["display_name"] ?? getSystemMember("ynmuc", $dayCloudburst[count($dayCloudburst) - 1])["name"]) ?> will sleep with <?= getMiniName(getSystemMember("gdapd", $dayRaindrops[count($dayRaindrops) - 1])["display_name"] ?? getSystemMember("gdapd", $dayRaindrops[count($dayRaindrops) - 1])["name"]) ?>
+ <?php else: ?>
+ Unable to calculate who will sleep with who
+ <?php endif; ?>
+ </td>
+ </tr>
+ <tr class="planner-separator"></tr>
+
+ <tr class="planner-day">
+ <td colspan="4" id="planner-header-6"><?= date('l', time() + (86400 * 6)) ?></td>
+ <?php
+
+ if (!$cloudburst[date('Y-m-d', time() + (86400 * 6))]) $cloudburst[date('Y-m-d', time() + (86400 * 6))] = [];
+ $dayCloudburst = $cloudburst[date('Y-m-d', time() + (86400 * 6))];
+ if (!$raindrops[date('Y-m-d', time() + (86400 * 6))]) $raindrops[date('Y-m-d', time() + (86400 * 6))] = [];
+ $dayRaindrops = $raindrops[date('Y-m-d', time() + (86400 * 6))];
+
+ $index = 0;
+ $lengthCloudburst = count($dayCloudburst);
+ $lengthRaindrops = count($dayRaindrops);
+ $biggest = max($lengthCloudburst, $lengthRaindrops);
+
+ ?>
+ </tr>
+ <tr class="planner-header">
+ <td colspan="2">Cloudburst System</td>
+ <td colspan="2">Raindrops System</td>
+ </tr>
+ <?php for ($i = 0; $i <= $biggest; $i++): ?>
+ <tr class="planner-member">
+ <?php if (isset($dayCloudburst[$index])): ?>
+ <td class="planner-member-id">
+ <?= $index + 1 ?>
+ </td>
+ <td class="planner-link">
+ <?php $member = getSystemMember("ynmuc", $dayCloudburst[$index]); ?>
+ <a class="member-link" onclick="openEditFronter('cloudburst', <?= $index ?>, '<?= date('Y-m-d', time() + (86400 * 6)) ?>')"><img src="/assets/uploads/pt<?= file_exists($_SERVER['DOCUMENT_ROOT'] . "/assets/uploads/pt-" . $member['name'] . ".png") ? "-" . $member['name'] : "" ?>.png" style="width:24px;"> <?= getMiniName($member["display_name"] ?? $member["name"]) ?></a>
+ </td>
+ <?php elseif ($index === count($dayCloudburst)): ?>
+ <td class="planner-add-inner planner-link" colspan="2">
+ <a href="#" onclick="addFronter('cloudburst', 6);" class="planner-add-link">
+ <img src="/assets/icons/add.svg" alt="" class="planner-add-icon">
+ <span class="planner-add-text">Add new fronter</span>
+ </a>
+ </td>
+ <?php else: ?>
+ <td colspan="2" class="planner-empty"></td>
+ <?php endif; ?>
+ <?php if (isset($dayRaindrops[$index])): ?>
+ <td class="planner-member-id">
+ <?= $index + 1 ?>
+ </td>
+ <?php $member = getSystemMember("gdapd", $dayRaindrops[$index]); ?>
+ <td class="planner-link">
+ <a class="member-link" onclick="openEditFronter('raindrops', <?= $index ?>, '<?= date('Y-m-d', time() + (86400 * 6)) ?>')"><img src="/assets/uploads/pt<?= file_exists($_SERVER['DOCUMENT_ROOT'] . "/assets/uploads/pt-" . $member['name'] . ".png") ? "-" . $member['name'] : "" ?>.png" style="width:24px;"> <?= getMiniName($member["display_name"] ?? $member["name"]) ?></a>
+ </td>
+ <?php elseif ($index === count($dayRaindrops)): ?>
+ <td class="planner-add-inner planner-link" colspan="2">
+ <a href="#" onclick="addFronter('raindrops', 6);" class="planner-add-link">
+ <img src="/assets/icons/add.svg" alt="" class="planner-add-icon">
+ <span class="planner-add-text">Add new fronter</span>
+ </a>
+ </td>
+ <?php else: ?>
+ <td colspan="2" class="planner-empty"></td>
+ <?php endif; ?>
+ </tr>
+ <?php $index++; endfor; ?>
+ <tr class="planner-day planner-end-of-day">
+ <td colspan="4">
+ <?php if (count($dayCloudburst) > 0 && count($dayRaindrops) > 0): ?>
+ <?= getMiniName(getSystemMember("ynmuc", $dayCloudburst[count($dayCloudburst) - 1])["display_name"] ?? getSystemMember("ynmuc", $dayCloudburst[count($dayCloudburst) - 1])["name"]) ?> will sleep with <?= getMiniName(getSystemMember("gdapd", $dayRaindrops[count($dayRaindrops) - 1])["display_name"] ?? getSystemMember("gdapd", $dayRaindrops[count($dayRaindrops) - 1])["name"]) ?>
+ <?php else: ?>
+ Unable to calculate who will sleep with who
+ <?php endif; ?>
+ </td>
+ </tr>
+ <tr class="planner-separator"></tr>
+ </tbody>
+</table>
+
+<style>
+ #planner {
+ margin-top: 10px;
+ border-collapse: collapse;
+ width: 100%;
+ }
+
+ .planner-header {
+ font-weight: bold;
+ text-align: center;
+ }
+
+ .planner-header td {
+ width: 50%;
+ }
+
+ td {
+ border: 1px solid rgba(255, 255, 255, .25);
+ padding: 5px 10px;
+ }
+
+ .planner-day {
+ text-align: center;
+ color: rgba(255, 255, 255, .5);
+ font-weight: bold;
+ }
+
+ .planner-end-of-day {
+ font-weight: normal;
+ }
+
+ .planner-end-of-day td {
+ border-bottom-left-radius: 10px;
+ }
+
+ .planner-separator {
+ height: 20px;
+ }
+
+ .planner-member-id {
+ width: 10%;
+ text-align: right;
+ }
+
+ .planner-link {
+ padding: 0;
+ }
+
+ .planner-link a {
+ padding: 5px 10px;
+ display: block;
+ }
+
+ .planner-add-link {
+ color: rgba(255, 255, 255, .75);
+ text-decoration: none;
+ }
+
+ .planner-add-link:hover {
+ color: rgba(255, 255, 255, .75);
+ }
+
+ .planner-link:hover {
+ background-color: rgba(255, 255, 255, .125);
+ }
+
+ .planner-link:active {
+ background-color: rgba(255, 255, 255, .25);
+ }
+
+ .planner-add-icon {
+ filter: invert(1);
+ width: 24px;
+ vertical-align: middle;
+ opacity: .75;
+ }
+
+ .planner-add-text {
+ vertical-align: middle;
+ }
+
+ .modal-header {
+ border-bottom: 1px solid #353738;
+ }
+
+ .modal-content {
+ border: 1px solid rgba(255, 255, 255, .2);
+ background-color: #111;
+ }
+
+ .btn-close {
+ filter: invert(1);
+ }
+
+ .list-group-item {
+ color: #fff;
+ background-color: #222;
+ border: 1px solid rgba(255, 255, 255, .125);
+ }
+
+ .list-group-item.disabled {
+ color: #fff;
+ background-color: #222;
+ border-color: rgba(255, 255, 255, .125);
+ opacity: .75;
+ }
+
+ .list-group-item:hover {
+ background-color: #252525;
+ color: #ddd;
+ }
+
+ .list-group-item:active, .list-group-item:focus {
+ background-color: #272727;
+ color: #bbb;
+ }
+
+ .member-link, .list-group-item-action {
+ cursor: pointer !important;
+ }
+
+</style>
+
+<!--suppress JSUnresolvedVariable, JSUnresolvedFunction -->
+<script>
+ window.currentWorkingDate;
+ window.fronting = JSON.parse(window.atob(`<?= base64_encode(json_encode([
+ "raindrops" => $raindrops,
+ "cloudburst" => $cloudburst
+ ])) ?>`));
+ window.names = JSON.parse(window.atob(`<?php
+
+ $names = [];
+ foreach (json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/gdapd-members.json"), true) as $member) {
+ $names[$member['id']] = $member['display_name'] ?? $member['name'];
+ }
+ foreach (json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/ynmuc-members.json"), true) as $member) {
+ $names[$member['id']] = $member['display_name'] ?? $member['name'];
+ }
+
+ echo(base64_encode(json_encode($names))) ?>`));
+
+ function ordinal(n) {
+ let s = ["th", "st", "nd", "rd"];
+ let v = n % 100;
+ return n + (s[(v - 20) % 10] || s[v] || s[0]);
+ }
+
+ function openEditFronter(system, id, date) {
+ let display;
+
+ switch (date) {
+ case "<?= date('Y-m-d') ?>":
+ display = "today";
+ break;
+
+ case "<?= date('Y-m-d', time() + 86400) ?>":
+ display = "tomorrow";
+ break;
+
+ case "<?= date('Y-m-d', time() + (86400 * 2)) ?>":
+ display = "on <?= date('l', time() + (86400 * 2)) ?>";
+ break;
+
+ case "<?= date('Y-m-d', time() + (86400 * 3)) ?>":
+ display = "on <?= date('l', time() + (86400 * 3)) ?>";
+ break;
+
+ case "<?= date('Y-m-d', time() + (86400 * 4)) ?>":
+ display = "on <?= date('l', time() + (86400 * 4)) ?>";
+ break;
+
+ case "<?= date('Y-m-d', time() + (86400 * 5)) ?>":
+ display = "on <?= date('l', time() + (86400 * 5)) ?>";
+ break;
+
+ case "<?= date('Y-m-d', time() + (86400 * 6)) ?>":
+ display = "on <?= date('l', time() + (86400 * 6)) ?>";
+ break;
+ }
+
+ window.selectedFronting = {
+ system: system === "cloudburst" ? "ynmuc" : "gdapd",
+ date: date,
+ index: id
+ }
+
+ document.getElementById("edit-fronter-name").innerText = names[fronting[system][date][id]] ?? fronting[system][date][id];
+ document.getElementById("edit-fronter-date").innerText = display;
+ document.getElementById("edit-fronter-pos").innerText = ordinal(id + 1);
+ document.getElementById("edit-fronter-system").innerText = system === "cloudburst" ? "Cloudburst System" : "Raindrops System";
+
+ let modal = new bootstrap.Modal(document.getElementById('edit-fronter'));
+ modal.show();
+ }
+
+ function addFronter(system, offset) {
+ let date;
+ let display;
+
+ switch (offset) {
+ case 0:
+ date = "<?= date('Y-m-d') ?>";
+ display = "today";
+ break;
+
+ case 1:
+ date = "<?= date('Y-m-d', time() + 86400) ?>";
+ display = "tomorrow";
+ break;
+
+ case 2:
+ date = "<?= date('Y-m-d', time() + (86400 * 2)) ?>";
+ display = "on <?= date('l', time() + (86400 * 2)) ?>";
+ break;
+
+ case 3:
+ date = "<?= date('Y-m-d', time() + (86400 * 3)) ?>";
+ display = "on <?= date('l', time() + (86400 * 3)) ?>";
+ break;
+
+ case 4:
+ date = "<?= date('Y-m-d', time() + (86400 * 4)) ?>";
+ display = "on <?= date('l', time() + (86400 * 4)) ?>";
+ break;
+
+ case 5:
+ date = "<?= date('Y-m-d', time() + (86400 * 5)) ?>";
+ display = "on <?= date('l', time() + (86400 * 5)) ?>";
+ break;
+
+ case 6:
+ date = "<?= date('Y-m-d', time() + (86400 * 6)) ?>";
+ display = "on <?= date('l', time() + (86400 * 6)) ?>";
+ break;
+ }
+
+ window.currentWorkingDate = date;
+ document.getElementById("new-fronter-date").innerText = display;
+ document.getElementById("new-fronter-system").innerText = system === "cloudburst" ? "Cloudburst System" : "Raindrops System";
+ document.getElementById("list-" + system).style.display = "";
+ document.getElementById("list-" + (system === "cloudburst" ? "raindrops" : "cloudburst")).style.display = "none";
+
+ let modal = new bootstrap.Modal(document.getElementById('new-fronter'));
+ modal.show();
+ }
+
+ function confirmFronterAdd(system, id) {
+ Array.from(document.getElementsByClassName("new-fronter-link")).forEach((i) => {
+ i.classList.add("disabled");
+ });
+
+ document.getElementById("new-fronter-close").classList.add("disabled");
+
+ window.fetch("/api/fronter?t=add&d=" + window.currentWorkingDate + "&m=" + id + "&s=" + system).then(() => {
+ location.reload();
+ });
+ }
+
+ function deleteFronter() {
+ Array.from(document.getElementsByClassName("edit-fronter-link")).forEach((i) => {
+ i.classList.add("disabled");
+ });
+
+ document.getElementById("edit-fronter-close").classList.add("disabled");
+
+ window.fetch("/api/fronter?t=delete&d=" + window.selectedFronting["date"] + "&i=" + window.selectedFronting["index"] + "&s=" + window.selectedFronting["system"]).then(() => {
+ location.reload();
+ });
+ }
+
+ function moveFronterDown() {
+ Array.from(document.getElementsByClassName("edit-fronter-link")).forEach((i) => {
+ i.classList.add("disabled");
+ });
+
+ document.getElementById("edit-fronter-close").classList.add("disabled");
+
+ window.fetch("/api/fronter?t=down&d=" + window.selectedFronting["date"] + "&i=" + window.selectedFronting["index"] + "&s=" + window.selectedFronting["system"]).then(() => {
+ location.reload();
+ });
+ }
+
+ function moveFronterUp() {
+ Array.from(document.getElementsByClassName("edit-fronter-link")).forEach((i) => {
+ i.classList.add("disabled");
+ });
+
+ document.getElementById("edit-fronter-close").classList.add("disabled");
+
+ window.fetch("/api/fronter?t=up&d=" + window.selectedFronting["date"] + "&i=" + window.selectedFronting["index"] + "&s=" + window.selectedFronting["system"]).then(() => {
+ location.reload();
+ });
+ }
+</script>
+
+<div class="modal fade" id="new-fronter" data-bs-backdrop="static" data-bs-keyboard="false">
+ <div class="modal-dialog">
+ <div class="modal-content">
+
+ <div class="modal-header">
+ <h4 class="modal-title">Add new fronter <span id="new-fronter-date">n/a</span></h4>
+ <button id="new-fronter-close" type="button" class="btn-close" data-bs-dismiss="modal"></button>
+ </div>
+
+ <div class="modal-body">
+ <p class="text-muted">Adding for the <span id="new-fronter-system">n/a</span></p>
+
+ <div class="list-group" id="list-raindrops">
+ <?php foreach (scoreOrder(json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/gdapd-members.json"), true), "gdapd") as $member): ?>
+ <a onclick="confirmFronterAdd('gdapd', '<?= $member['id'] ?>');" class="new-fronter-link member-link list-group-item list-group-item-action" href="#"><img src="/assets/uploads/pt<?= file_exists($_SERVER['DOCUMENT_ROOT'] . "/assets/uploads/pt-" . $member['name'] . ".png") ? "-" . $member['name'] : "" ?>.png" style="width:24px;"> <?= getMiniName($member["display_name"] ?? $member["name"]) ?></a>
+ <?php endforeach; ?>
+ </div>
+
+ <div class="list-group" id="list-cloudburst">
+ <?php foreach (scoreOrder(json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/ynmuc-members.json"), true), "ynmuc") as $member): ?>
+ <a onclick="confirmFronterAdd('ynmuc', '<?= $member['id'] ?>');" class="new-fronter-link member-link list-group-item list-group-item-action" href="#"><img src="/assets/uploads/pt<?= file_exists($_SERVER['DOCUMENT_ROOT'] . "/assets/uploads/pt-" . $member['name'] . ".png") ? "-" . $member['name'] : "" ?>.png" style="width:24px;"> <?= getMiniName($member["display_name"] ?? $member["name"]) ?></a>
+ <?php endforeach; ?>
+ </div>
+ </div>
+
+ </div>
+ </div>
+</div>
+
+<div class="modal fade" id="edit-fronter" data-bs-backdrop="static" data-bs-keyboard="false">
+ <div class="modal-dialog">
+ <div class="modal-content">
+
+ <div class="modal-header">
+ <h4 class="modal-title">Edit <span id="edit-fronter-name">n/a</span> fronting in <span id="edit-fronter-pos">n/a</span> <span id="edit-fronter-date">n/a</span></h4>
+ <button id="edit-fronter-close" type="button" class="btn-close" data-bs-dismiss="modal"></button>
+ </div>
+
+ <div class="modal-body">
+ <p class="text-muted">Editing for the <span id="edit-fronter-system">n/a</span></p>
+
+ <div class="list-group" id="list-cloudburst">
+ <a class="list-group-item list-group-item-action edit-fronter-link" onclick="deleteFronter();">
+ <img src="/assets/icons/delete.svg" style="width:24px;filter:invert(1);vertical-align: middle;">
+ <span style="vertical-align: middle;">Delete</span>
+ </a>
+ <a class="list-group-item list-group-item-action edit-fronter-link" onclick="moveFronterUp();">
+ <img src="/assets/icons/up.svg" style="width:24px;filter:invert(1);vertical-align: middle;">
+ <span style="vertical-align: middle;">Move up</span>
+ </a>
+ <a class="list-group-item list-group-item-action edit-fronter-link" onclick="moveFronterDown();">
+ <img src="/assets/icons/down.svg" style="width:24px;filter:invert(1);vertical-align: middle;">
+ <span style="vertical-align: middle;">Move down</span>
+ </a>
+ </div>
+ </div>
+
+ </div>
+ </div>
+</div>
+
+<?php
+
+file_put_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/ynmuc-planner.json", json_encode($cloudburst));
+file_put_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/gdapd-planner.json", json_encode($raindrops));
+
+?> \ No newline at end of file