From 0d8ab19f835c27999f99e983e78b5c67a81e480d Mon Sep 17 00:00:00 2001 From: Daniel Thee Roperto Date: Mon, 12 Sep 2016 11:28:56 +1000 Subject: [PATCH] Issue #11 - Renderer refactored. --- classes/tables/manage.php | 34 ++++++++++++++++++++-------------- manage.php | 4 +--- renderer.php | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 54 insertions(+), 17 deletions(-) diff --git a/classes/tables/manage.php b/classes/tables/manage.php index a34e32b..da5fd11 100644 --- a/classes/tables/manage.php +++ b/classes/tables/manage.php @@ -54,26 +54,32 @@ class manage extends \flexible_table { public function set_data(array $outages) { global $OUTPUT; foreach ($outages as $outage) { - $buttons = ''; + $buttons = \html_writer::link( + new \moodle_url('/auth/outage/edit.php', ['id' => $outage->id]), + \html_writer::empty_tag('img', [ + 'src' => $OUTPUT->pix_url('t/edit'), + 'alt' => get_string('edit'), + 'class' => 'iconsmall' + ]), + ['title' => get_string('edit')] + ) + . \html_writer::link( + new \moodle_url('/auth/outage/delete.php', ['id' => $outage->id]), + \html_writer::empty_tag('img', [ + 'src' => $OUTPUT->pix_url('t/delete'), + 'alt' => get_string('delete'), + 'class' => 'iconsmall' + ]), + ['title' => get_string('delete')] + ); - $url = new \moodle_url('/auth/outage/edit.php', ['id' => $outage->id]); - $html = \html_writer::empty_tag('img', array('src' => $OUTPUT->pix_url('t/edit'), 'alt' => get_string('edit'), 'class' => 'iconsmall')); - $buttons .= \html_writer::link($url, $html, array('title' => get_string('edit'))); - - $url = new \moodle_url('/auth/outage/delete.php', ['id' => $outage->id]); - $html = \html_writer::empty_tag('img', array('src' => $OUTPUT->pix_url('t/delete'), 'alt' => get_string('delete'), 'class' => 'iconsmall')); - $buttons .= \html_writer::link($url, $html, array('title' => get_string('delete'))); - - // Table columns 'name', 'action', 'role', 'parent', 'continue', 'priority', 'data'. - $values = [ + $this->add_data([ userdate($outage->starttime, get_string('tablerowstarts', 'auth_outage')), $outage->get_duration_string(), $outage->get_warning_duration_string(), $outage->get_title(), $buttons, - ]; - - $this->add_data($values); + ]); } } } \ No newline at end of file diff --git a/manage.php b/manage.php index f695786..d2e103a 100644 --- a/manage.php +++ b/manage.php @@ -33,8 +33,6 @@ $renderer = outagelib::pagesetup(); echo $OUTPUT->header(); -$table = new \auth_outage\tables\manage(); -$table->set_data(outagedb::get_all()); -echo $table->finish_output(); +$renderer->renderoutagelist(outagedb::get_all()); echo $OUTPUT->footer(); diff --git a/renderer.php b/renderer.php index dfb8b9c..e563b8c 100644 --- a/renderer.php +++ b/renderer.php @@ -43,6 +43,33 @@ class auth_outage_renderer extends plugin_renderer_base { . $this->renderoutage($outage, false); } + /** + * Outputs the HTML data listing all given outages. + * @param array $outages Outages to list. + */ + public function renderoutagelist(array $outages) { + global $OUTPUT; + + echo $this->rendersubtitle('outageslist'); + + // Generate list of outages. + $table = new \auth_outage\tables\manage(); + $table->set_data($outages); + $table->finish_output(); // It will output HTML. + + // Add 'add' button. + $url = new moodle_url('/auth/outage/new.php'); + $img = html_writer::empty_tag('img', + ['src' => $OUTPUT->pix_url('t/add'), 'alt' => get_string('create'), 'class' => 'iconsmall']); + echo html_writer::tag('p', + html_writer::link( + $url, + $img . ' ' . get_string('outagecreate', 'auth_outage'), + ['title' => get_string('delete')] + ) + ); + } + private function renderoutage(outage $outage, $buttons) { global $OUTPUT; @@ -126,6 +153,12 @@ class auth_outage_renderer extends plugin_renderer_base { ); } + /** + * Renders the warning bar. + * @param outage $outage The outage to show in the warning bar. + * @return string HTML of the warning bar. + * @SuppressWarnings("unused") because $message is used inside require(...) + */ public function renderoutagebar(outage $outage) { global $CFG;