GetControlByID("literalSpotTimer"); if (file_exists("/etc/mocha/suvstart")) { $suv_start_time = trim(file_get_contents("/etc/mocha/suvstart")); $suv_start_time_d = new \DateTime($suv_start_time); $suv_start_time_d->setTimezone(new \DateTimeZone("UTC")); // this can be adjusted? $suv_end_time_d = $suv_start_time_d->add(new \DateInterval("PT10H")); $suv_end_time_d->setTimezone(new \DateTimeZone("UTC")); $suv_end_time = $suv_end_time_d->format('Y-m-d\TH:i:s\Z'); $suv_current_time_d = new \DateTime(); $interval = $suv_end_time_d->diff($suv_current_time_d); $literalSpotTimer->Content = $interval->h . ":" . $interval->i; $spotTimerInitializationScript = $pg->Page->GetControlByID("spotTimerInitializationScript"); $spotTimerInitializationScript->Content = << var spot_end_time = new Date('$suv_end_time'); window.datediff = function(earlierDate, laterDate) { var interval = { }; var a = earlierDate, b = laterDate; console.log(earlierDate); console.log(laterDate); const _MS_PER_DAY = 1000 * 60 * 60 * 24; // Discard the time and time-zone information. const utc1 = Date.UTC(a.getFullYear(), a.getMonth(), a.getDate(), a.getHours(), a.getMinutes(), a.getSeconds()); const utc2 = Date.UTC(b.getFullYear(), b.getMonth(), b.getDate(), b.getHours(), b.getMinutes(), b.getSeconds()); console.log(utc2); console.log(utc1); var diffMS = (utc2 - utc1); console.log(diffMS); var secs = (diffMS / 1000) % 60; var mins = (diffMS / (1000 * 60)) % 60; var hrs = (diffMS / (1000 * 60 * 60)) % 24; interval = { "raw": diffMS, "seconds": Math.floor(secs), "minutes": Math.floor(mins), "hours": Math.floor(hrs) }; return interval; }; window.spot_timer_tick = function() { var spot_cur_time = new Date(); var diff = datediff(spot_cur_time, spot_end_time); console.log(diff); document.getElementById('spot_timer').innerHTML = diff.hours + ':' + diff.minutes.toString().padStart(2, '0'); window.setTimeout(spot_timer_tick, 60000); }; window.addEventListener("load", function() { spot_timer_tick(); }); EOT; } } System::$BeforeGetTenantNameHandler = function() { $path = System::GetVirtualPath(false); if ($path[0] === "madi") { return $path[2]; } return $path[0]; }; function requiresLogin($path) { if ($path != null) { if ($path == "ots/{tenant}/services/{serviceName}/{version}/{command}") { return false; } } /* if (count($path) > 0) { if ($path[0] == "ots" || $path[0] == "suv" || $path[0] == "ccx") { echo("no"); return false; } } */ return true; } System::$BeforeLaunchEventHandler = function($path) { /** * @var MySQLDatabaseOms */ $oms = mocha_get_oms(); if (count($path) >= 1) { if ($path[0] == "suv") { if (count($path) == 2 && ($path[1] == "suvinfo.html" || $path[1] == "phpinfo.html")) { // return true; } else { header("HTTP/1.1 404 Not Found"); echo ("Not Found"); return false; } } else if ($path[0] == "scripts") { return true; } } if (count($path) == 0) { System::Redirect("~/" . System::$Configuration["Application.DefaultTenant"], true); return false; } if (count($path) == 1) { if ($path[0] != "invalid-url") { System::Redirect("~/" . $path[0] . "/d/home.htmld", true); return false; } else { return true; } } if ($path[0] == "madi") { $currentTenantName = $path[2]; } else if ($path[0] == "ots") { $currentTenantName = $path[1]; } else { $currentTenantName = $path[0]; } $currentTenant = $oms->getTenantByName($currentTenantName); if ($currentTenant == null) { System::Redirect("~/invalid-url", true); return false; } else { $oms->setTenant($currentTenant); } $currentUser = null; if (isset($_SESSION["user_token_" . $currentTenant->ID])) { // SELECT FROM `Users` WHERE `Token` = $_SESSION["user_token"] $insts = $oms->getInstancesByAttributes(array ( KnownAttributeGuids::Token => $_SESSION["user_token_" . $currentTenant->ID] )); $currentUser = null; $loginEntry = null; if (count($insts) == 1) { $loginEntry = $insts[0]; if ($loginEntry != null) { $users = $oms->getRelatedInstances($loginEntry, $oms->getInstanceByGlobalIdentifier(KnownRelationshipGuids::User_Login__has__User)); if (count($users) == 1) { $currentUser = $users[0]; } } if ($currentUser === null) { echo("returned null"); die(); } } } $page = null; $pathVars = null; System::ParsePathVariablesIntoPage($page, $pathVars); if ($currentUser === null) { if (count($path) >= 4) { if ($path[0] == "madi" && $path[1] == "authgwy") { return true; } } if ($page != null) { if (requiresLogin($page->FileName)) { echo($page->FileName); $_SESSION["login_return"] = $path; System::RedirectToLoginPage(true); return false; } } } return true; }; ?>