From 1c87dae035480a45bc4710f1118bd09e434b5176 Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Thu, 23 Nov 2017 17:47:47 +0400 Subject: Refactoring the service manager code --- editservice.php | 4 +- index.php | 132 ++++++++++++++++++++++++++++++++++++++++++++++++ managerservice.php | 145 ----------------------------------------------------- settings.php | 2 +- 4 files changed, 135 insertions(+), 148 deletions(-) create mode 100644 index.php delete mode 100644 managerservice.php diff --git a/editservice.php b/editservice.php index 0a8aec5..2e43e33 100644 --- a/editservice.php +++ b/editservice.php @@ -33,15 +33,15 @@ $serviceid = optional_param("serviceid", 0, PARAM_INT); /* Link generation */ $urlparameters = array("serviceid" => $serviceid); -$managerservice = new moodle_url("/local/webhooks/managerservice.php", $urlparameters); $baseurl = new moodle_url("/local/webhooks/editservice.php", $urlparameters); +$managerservice = new moodle_url("/local/webhooks/index.php", $urlparameters); /* Configure the context of the page */ admin_externalpage_setup("local_webhooks", "", null, $baseurl, array()); $context = context_system::instance(); /* Create an editing form */ -$mform = new local_webhooks\service_edit_form($PAGE->url); +$mform = new service_edit_form($PAGE->url); /* Cancel processing */ if ($mform->is_cancelled()) { diff --git a/index.php b/index.php new file mode 100644 index 0000000..6d0ef10 --- /dev/null +++ b/index.php @@ -0,0 +1,132 @@ +. + +/** + * Service Management Manager. + * + * @package local_webhooks + * @copyright 2017 "Valentin Popov" + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +require_once(__DIR__ . "/../../config.php"); +require_once(__DIR__ . "/lib.php"); + +require_once($CFG->libdir . "/adminlib.php"); +require_once($CFG->libdir . "/tablelib.php"); + +/* Optional parameters */ +$backupservices = optional_param("getbackup", 0, PARAM_BOOL); +$deleteid = optional_param("deleteid", 0, PARAM_INT); +$hideshowid = optional_param("hideshowid", 0, PARAM_INT); + +/* Link generation */ +$editservice = "/local/webhooks/editservice.php"; +$managerservice = "/local/webhooks/index.php"; +$restorebackup = "/local/webhooks/restorebackup.php"; +$baseurl = new moodle_url($managerservice); + +/* Configure the context of the page */ +admin_externalpage_setup("local_webhooks", "", null, $baseurl, array()); +$context = context_system::instance(); + +/* Delete the service */ +if (boolval($deleteid)) { + local_webhooks_remove_record($deleteid); + redirect($PAGE->url, new lang_string("eventwebserviceservicedeleted", "webservice")); +} + +/* Retrieving a list of services */ +$callbacks = local_webhooks_list_records(); + +/* Upload settings as a file */ +if (boolval($backupservices)) { + $filecontent = local_webhooks_archiving_data($callbacks); + $filename = "webhooks_" . date("U") . ".backup"; + send_file($filecontent, $filename, 0, 0, true, true); +} + +/* Switching the status of the service */ +if (boolval($hideshowid)) { + $callback = $callbacks[$hideshowid]; + + if (!empty($callback)) { + $callback->enable = !boolval($callback->enable); + local_webhooks_update_record($callback, false); + redirect($PAGE->url, new lang_string("eventwebserviceserviceupdated", "webservice")); + } +} + +/* The page title */ +$titlepage = new lang_string("pluginname", "local_webhooks"); +$PAGE->set_heading($titlepage); +$PAGE->set_title($titlepage); +echo $OUTPUT->header(); + +/* Table declaration */ +$table = new flexible_table("webhooks-service-table"); + +/* Customize the table */ +$table->define_columns(array("title", "url", "actions")); +$table->define_headers(array(new lang_string("name", "moodle"), new lang_string("url", "moodle"), new lang_string("actions", "moodle"))); +$table->define_baseurl($baseurl); +$table->setup(); + +foreach ($callbacks as $callback) { + /* Filling of information columns */ + $titlecallback = html_writer::div($callback->title, "title"); + $urlcallback = html_writer::div($callback->url, "url"); + + /* Defining service status */ + $hideshowicon = "t/show"; + $hideshowstring = new lang_string("enable", "moodle"); + if (boolval($callback->enable)) { + $hideshowicon = "t/hide"; + $hideshowstring = new lang_string("disable", "moodle"); + } + + /* Link to enable / disable the service */ + $hideshowlink = new moodle_url($managerservice, array("hideshowid" => $callback->id)); + $hideshowitem = $OUTPUT->action_icon($hideshowlink, new pix_icon($hideshowicon, $hideshowstring)); + + /* Link for editing */ + $editlink = new moodle_url($editservice, array("serviceid" => $callback->id)); + $edititem = $OUTPUT->action_icon($editlink, new pix_icon("t/edit", new lang_string("edit", "moodle"))); + + /* Link to remove */ + $deletelink = new moodle_url($managerservice, array("deleteid" => $callback->id)); + $deleteitem = $OUTPUT->action_icon($deletelink, new pix_icon("t/delete", new lang_string("delete", "moodle"))); + + /* Adding data to the table */ + $table->add_data(array($titlecallback, $urlcallback, $hideshowitem . $edititem . $deleteitem)); +} + +/* Display the table */ +$table->print_html(); + +/* Add service button */ +$addserviceurl = new moodle_url($editservice); +echo $OUTPUT->single_button($addserviceurl, new lang_string("addaservice", "webservice"), "get"); + +/* Button to get a backup */ +$backupurl = new moodle_url($managerservice, array("getbackup" => true)); +echo $OUTPUT->single_button($backupurl, new lang_string("backup", "moodle"), "get"); + +/* Button for restoring settings */ +$restorebackupurl = new moodle_url($restorebackup); +echo $OUTPUT->single_button($restorebackupurl, new lang_string("restore", "moodle"), "get"); + +echo $OUTPUT->footer(); \ No newline at end of file diff --git a/managerservice.php b/managerservice.php deleted file mode 100644 index a27db1d..0000000 --- a/managerservice.php +++ /dev/null @@ -1,145 +0,0 @@ -. - -/** - * Service Management Manager. - * - * @package local_webhooks - * @copyright 2017 "Valentin Popov" - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ - -require_once(__DIR__ . "/../../config.php"); -require_once($CFG->libdir . "/tablelib.php"); -require_once($CFG->libdir . "/adminlib.php"); - -/* Optional parameters */ -$backupservices = optional_param("getbackup", 0, PARAM_BOOL); -$deleteid = optional_param("deleteid", 0, PARAM_INT); -$hideshowid = optional_param("hideshowid", 0, PARAM_INT); - -/* Link generation */ -$editservice = "/local/webhooks/editservice.php"; -$managerservice = "/local/webhooks/managerservice.php"; -$restorebackup = "/local/webhooks/restorebackup.php"; -$baseurl = new moodle_url($managerservice); - -/* Configure the context of the page */ -admin_externalpage_setup("local_webhooks", "", null, $baseurl, array()); -$context = context_system::instance(); - -/* Delete the service */ -if (boolval($deleteid)) { - $DB->delete_records("local_webhooks_service", array("id" => $deleteid)); - - /* Run the event */ - $event = \local_webhooks\event\service_deleted::create(array("context" => $context, "objectid" => $deleteid)); - $event->trigger(); - - redirect($PAGE->url, new lang_string("eventwebserviceservicedeleted", "webservice")); -} - -/* Retrieving a list of services */ -$callbacks = $DB->get_records_select("local_webhooks_service", null, null, $DB->sql_order_by_text("id")); - -/* Upload settings as a file */ -if (boolval($backupservices)) { - $filecontent = base64_encode(gzcompress(serialize($callbacks), 9)); - $filename = "webhooks_" . date("U") . ".backup"; - - /* Run the event */ - $event = \local_webhooks\event\backup_performed::create(array("context" => $context, "objectid" => 0)); - $event->trigger(); - - send_file($filecontent, $filename, 0, 0, true, true); -} - -/* Switching the status of the service */ -if (boolval($hideshowid)) { - $callback = $callbacks[$hideshowid]; - - if (!empty($callback)) { - $callback->enable = !boolval($callback->enable); - $DB->update_record("local_webhooks_service", $callback); - - /* Run the event */ - $event = \local_webhooks\event\service_updated::create(array("context" => $context, "objectid" => $hideshowid)); - $event->trigger(); - - redirect($PAGE->url, new lang_string("eventwebserviceserviceupdated", "webservice")); - } -} - -/* The page title */ -$titlepage = new lang_string("pluginname", "local_webhooks"); -$PAGE->set_heading($titlepage); -$PAGE->set_title($titlepage); -echo $OUTPUT->header(); - -/* Table declaration */ -$table = new flexible_table("webhooks-service-table"); - -/* Customize the table */ -$table->define_columns(array("title", "url", "actions")); -$table->define_headers(array(new lang_string("name", "moodle"), new lang_string("url", "moodle"), new lang_string("actions", "moodle"))); -$table->define_baseurl($baseurl); -$table->setup(); - -foreach ($callbacks as $callback) { - /* Filling of information columns */ - $titlecallback = html_writer::div($callback->title, "title"); - $urlcallback = html_writer::div($callback->url, "url"); - - /* Defining service status */ - $hideshowicon = "t/show"; - $hideshowstring = new lang_string("enable", "moodle"); - if (boolval($callback->enable)) { - $hideshowicon = "t/hide"; - $hideshowstring = new lang_string("disable", "moodle"); - } - - /* Link to enable / disable the service */ - $hideshowlink = new moodle_url($managerservice, array("hideshowid" => $callback->id)); - $hideshowitem = $OUTPUT->action_icon($hideshowlink, new pix_icon($hideshowicon, $hideshowstring)); - - /* Link for editing */ - $editlink = new moodle_url($editservice, array("serviceid" => $callback->id)); - $edititem = $OUTPUT->action_icon($editlink, new pix_icon("t/edit", new lang_string("edit", "moodle"))); - - /* Link to remove */ - $deletelink = new moodle_url($managerservice, array("deleteid" => $callback->id)); - $deleteitem = $OUTPUT->action_icon($deletelink, new pix_icon("t/delete", new lang_string("delete", "moodle"))); - - /* Adding data to the table */ - $table->add_data(array($titlecallback, $urlcallback, $hideshowitem . $edititem . $deleteitem)); -} - -/* Display the table */ -$table->print_html(); - -/* Add service button */ -$addserviceurl = new moodle_url($editservice); -echo $OUTPUT->single_button($addserviceurl, new lang_string("addaservice", "webservice"), "get"); - -/* Button to get a backup */ -$backupurl = new moodle_url($managerservice, array("getbackup" => true)); -echo $OUTPUT->single_button($backupurl, new lang_string("backup", "moodle"), "get"); - -/* Button for restoring settings */ -$restorebackupurl = new moodle_url($restorebackup); -echo $OUTPUT->single_button($restorebackupurl, new lang_string("restore", "moodle"), "get"); - -echo $OUTPUT->footer(); \ No newline at end of file diff --git a/settings.php b/settings.php index b36c594..25e5ffd 100644 --- a/settings.php +++ b/settings.php @@ -27,6 +27,6 @@ defined("MOODLE_INTERNAL") || die(); if ($hassiteconfig) { $ADMIN->add("server", new admin_externalpage("local_webhooks", new lang_string("pluginname", "local_webhooks"), - new moodle_url("/local/webhooks/managerservice.php") + new moodle_url("/local/webhooks/index.php") )); } \ No newline at end of file -- cgit v1.2.3