Issue #23 - Generate a static template page every time an outage is created, updated or deleted.

This commit is contained in:
Daniel Thee Roperto
2016-09-20 14:54:24 +10:00
parent edbbc2dd83
commit 6824127624
10 changed files with 375 additions and 28 deletions

View File

@@ -39,7 +39,7 @@ if (!defined('MOODLE_INTERNAL')) {
</div>
<div class="auth_outage_info_description"><?php echo $outage->get_description(); ?></div>
<?php if (is_siteadmin()): ?>
<?php if (!$static && is_siteadmin()): ?>
<div class="auth_outage_info_adminlinks">
<b><?php echo get_string('preview'); ?>:</b>
<?php echo implode(' | ', $adminlinks); ?><br />

64
views/infopagestatic.php Normal file
View File

@@ -0,0 +1,64 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* View included by the renderer to output the static outage information page.
*
* @package auth_outage
* @author Daniel Thee Roperto <daniel.roperto@catalyst-au.net>
* @copyright Catalyst IT
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
global $SITE;
?>
<!DOCTYPE html>
<html data-outage-id="<?php echo $outage->id; ?>">
<head>
<title><?php echo strip_tags($SITE->fullname); ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
body {
font-family: sans-serif;
}
</style>
</head>
<body>
<?php require('warningbar.php'); ?>
<header>
<h1><?php echo strip_tags($SITE->fullname); ?></h1>
</header>
<section>
<h2><?php echo $outage->get_title(); ?></h2>
<?php require('infopage.php'); ?>
</section>
<!-- <?php echo
get_string(
'infopagestaticgenerated',
'auth_outage',
['time' => userdate(time(), get_string('datetimeformat', 'auth_outage'))]
);
?> -->
</body>
</html>

View File

@@ -25,13 +25,21 @@
use auth_outage\outagelib;
if (!defined('MOODLE_INTERNAL')) {
die('Direct access to this script is forbidden.'); // It must be included from a Moodle page.
}
defined('MOODLE_INTERNAL') || die();
global $OUTPUT;
$infolink = new moodle_url('/auth/outage/info.php', ['id' => $outage->id]);
if (!isset($static)) {
$static = true;
}
if ($static) {
$start = userdate($outage->starttime, get_string('datetimeformat', 'auth_outage'));
$stop = userdate($outage->stoptime, get_string('datetimeformat', 'auth_outage'));
$countdown = get_string('messageoutageongoing', 'auth_outage', ['start' => $start, 'stop' => $stop]);
} else {
$infolink = new moodle_url('/auth/outage/info.php', ['id' => $outage->id]);
}
echo html_writer::tag('style', outagelib::get_config()->css);
?>
@@ -41,13 +49,17 @@ echo html_writer::tag('style', outagelib::get_config()->css);
<div id="auth_outage_warningbar_countdown"><?php echo $countdown; ?></div>
<div>
<?php
echo html_writer::link(
$infolink,
$outage->get_title(),
['target' => '_blank', 'class' => 'auth_outage_warningbar_box_title']
);
if ($static) {
echo $outage->get_title();
} else {
echo html_writer::link(
$infolink,
$outage->get_title(),
['target' => '_blank', 'class' => 'auth_outage_warningbar_box_title']
);
}
if (is_siteadmin() && $outage->is_ongoing()) {
if (!$static && is_siteadmin() && $outage->is_ongoing()) {
$url = new moodle_url('/auth/outage/finish.php', ['id' => $outage->id]);
$text = html_writer::empty_tag('img', [
'src' => $OUTPUT->pix_url('t/check'),
@@ -65,7 +77,7 @@ echo html_writer::tag('style', outagelib::get_config()->css);
</div>
</div>
<?php if (!$outage->is_ongoing($time)): ?>
<?php if (!$static && !$outage->is_ongoing($time)): ?>
<script>
<?php require($CFG->dirroot . '/auth/outage/views/warningbar.js'); ?>
auth_outage_countdown.init(