Add updater to v0.2.0

This commit is contained in:
Jay Trees 2022-01-18 11:40:43 +01:00
parent 250c98bf79
commit 382b898009

View file

@ -11,6 +11,25 @@ use wishthis\{Page, User};
$page = new page(__FILE__, 'Update'); $page = new page(__FILE__, 'Update');
$page->header(); $page->header();
$page->navigation(); $page->navigation();
$user = new User();
/**
* Update
*/
if ('POST' === $_SERVER['REQUEST_METHOD']) {
/** Current version is below 0.1.0 */
if (-1 === version_compare($options->version, '0.2.0')) {
$database->query('ALTER TABLE `users`
ADD `last_login` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP AFTER `password`,
ADD `isAdministrator` BOOLEAN NOT NULL AFTER `last_login`
;');
$database->query('ALTER TABLE `wishlists`
ADD `url` VARCHAR(128) NOT NULL AFTER `name`
;');
}
}
?> ?>
<main> <main>
@ -18,6 +37,26 @@ $page->navigation();
<h1 class="ui header"><?= $page->title ?></h1> <h1 class="ui header"><?= $page->title ?></h1>
<?php if ($user->isLoggedIn()) { ?> <?php if ($user->isLoggedIn()) { ?>
<div class="ui segment">
<h2 class="ui header">New version detected</h2>
<p>Thank you for updating to <strong>v<?= VERSION ?></strong>!</p>
<p>There have been some changes in the database, please run the updater.</p>
<div class="ui icon warning message">
<i class="exclamation triangle icon"></i>
<div class="content">
<div class="header">
Use at own risk
</div>
<p>Be sure to make backups before proceeding.</p>
</div>
</div>
<form class="ui form" method="post">
<button class="ui orange button" type="submit">
<i class="upload icon"></i>
Run the updater
</button>
</form>
</div>
<?php } else { ?> <?php } else { ?>
<div class="ui segment"> <div class="ui segment">
<h2 class="ui header">Maintenance</h2> <h2 class="ui header">Maintenance</h2>
@ -28,7 +67,7 @@ $page->navigation();
<p> <p>
Trying again in <span id="retryIn">5</span> seconds... Trying again in <span id="retryIn">5</span> seconds...
</p> </p>
<div class="ui primary progress nolabel" data-percent="74" id="example1"> <div class="ui primary progress nolabel">
<div class="bar"></div> <div class="bar"></div>
</div> </div>
</div> </div>