2017-10-22 14:10:07 +04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								<?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/>.
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								/**
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								 * Service Management Manager.
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								 *
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								 * @package   local_webhooks
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								 * @copyright 2017 "Valentin Popov" <info@valentineus.link>
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								 * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								 */
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								require_once(__DIR__ . "/../../config.php");
							 | 
						
					
						
							
								
									
										
										
										
											2017-12-19 14:39:40 +04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								require_once(__DIR__ . "/classes/webhooks_table.php");
							 | 
						
					
						
							
								
									
										
										
										
											2017-11-23 17:47:47 +04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								require_once(__DIR__ . "/lib.php");
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2017-10-26 18:18:31 +04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								require_once($CFG->libdir . "/adminlib.php");
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2017-11-18 06:31:25 +04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								/* Optional parameters */
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								$backupservices = optional_param("getbackup", 0, PARAM_BOOL);
							 | 
						
					
						
							
								
									
										
										
										
											2017-12-19 14:39:40 +04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								$deleteall      = optional_param("deleteall", 0, PARAM_INT);
							 | 
						
					
						
							
								
									
										
										
										
											2017-11-18 06:31:25 +04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								$deleteid       = optional_param("deleteid", 0, PARAM_INT);
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								$hideshowid     = optional_param("hideshowid", 0, PARAM_INT);
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2017-11-22 13:59:02 +04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								/* Link generation */
							 | 
						
					
						
							
								
									
										
										
										
											2017-11-17 19:58:45 +04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								$editservice    = "/local/webhooks/editservice.php";
							 | 
						
					
						
							
								
									
										
										
										
											2017-11-23 17:47:47 +04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								$managerservice = "/local/webhooks/index.php";
							 | 
						
					
						
							
								
									
										
										
										
											2017-11-17 19:58:45 +04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								$restorebackup  = "/local/webhooks/restorebackup.php";
							 | 
						
					
						
							
								
									
										
										
										
											2017-11-22 13:59:02 +04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								$baseurl        = new moodle_url($managerservice);
							 | 
						
					
						
							
								
									
										
										
										
											2017-10-22 14:10:07 +04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2017-10-24 05:01:07 +04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								/* Configure the context of the page */
							 | 
						
					
						
							
								
									
										
										
										
											2017-11-22 13:59:02 +04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								admin_externalpage_setup("local_webhooks", "", null, $baseurl, array());
							 | 
						
					
						
							
								
									
										
										
										
											2017-10-22 14:10:07 +04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								$context = context_system::instance();
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								/* Delete the service */
							 | 
						
					
						
							
								
									
										
										
										
											2017-12-19 14:39:40 +04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								if (!empty($deleteid) && confirm_sesskey()) {
							 | 
						
					
						
							
								
									
										
										
										
											2017-12-21 10:01:37 +04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    local_webhooks_delete_record($deleteid);
							 | 
						
					
						
							
								
									
										
										
										
											2017-12-19 14:39:40 +04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    redirect($PAGE->url, new lang_string("deleted", "moodle"));
							 | 
						
					
						
							
								
									
										
										
										
											2017-10-22 14:10:07 +04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								}
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2017-12-19 14:39:40 +04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								/* Switching the status of the service */
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								if (!empty($hideshowid) && confirm_sesskey()) {
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    local_webhooks_change_status($hideshowid);
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    redirect($PAGE->url, new lang_string("changessaved", "moodle"));
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								}
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								/* Deletes all data */
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								if (boolval($deleteall) && confirm_sesskey()) {
							 | 
						
					
						
							
								
									
										
										
										
											2017-12-21 10:01:37 +04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    local_webhooks_delete_all_records();
							 | 
						
					
						
							
								
									
										
										
										
											2017-12-19 14:39:40 +04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    redirect($PAGE->url, new lang_string("deleted", "moodle"));
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								}
							 | 
						
					
						
							
								
									
										
										
										
											2017-10-26 17:09:15 +04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2017-11-17 18:24:59 +04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								/* Upload settings as a file */
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								if (boolval($backupservices)) {
							 | 
						
					
						
							
								
									
										
										
										
											2017-11-23 18:42:47 +04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    $filecontent = local_webhooks_create_backup();
							 | 
						
					
						
							
								
									
										
										
										
											2017-11-17 20:14:01 +04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    $filename    = "webhooks_" . date("U") . ".backup";
							 | 
						
					
						
							
								
									
										
										
										
											2017-11-17 18:24:59 +04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    send_file($filecontent, $filename, 0, 0, true, true);
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								}
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2017-11-22 13:59:02 +04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								/* The page title */
							 | 
						
					
						
							
								
									
										
										
										
											2017-11-18 06:31:25 +04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								$titlepage = new lang_string("pluginname", "local_webhooks");
							 | 
						
					
						
							
								
									
										
										
										
											2017-10-22 14:10:07 +04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								$PAGE->set_heading($titlepage);
							 | 
						
					
						
							
								
									
										
										
										
											2017-11-22 13:59:02 +04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								$PAGE->set_title($titlepage);
							 | 
						
					
						
							
								
									
										
										
										
											2017-10-22 14:10:07 +04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								echo $OUTPUT->header();
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2017-12-19 14:39:40 +04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								/* Adds the add button */
							 | 
						
					
						
							
								
									
										
										
										
											2018-01-04 15:38:55 +04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								$addserviceurl = new moodle_url($editservice, array("sesskey" => sesskey()));
							 | 
						
					
						
							
								
									
										
										
										
											2017-12-22 18:58:27 +04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								echo $OUTPUT->single_button($addserviceurl, new lang_string("add", "moodle"));
							 | 
						
					
						
							
								
									
										
										
										
											2017-10-22 14:10:07 +04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2017-12-19 14:39:40 +04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								/* Adds a delete button */
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								$deleteallurl = new moodle_url($managerservice, array("deleteall" => true, "sesskey" => sesskey()));
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								echo $OUTPUT->single_button($deleteallurl, new lang_string("deleteall", "moodle"), "get");
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								/* Adds a backup button */
							 | 
						
					
						
							
								
									
										
										
										
											2017-11-18 06:31:25 +04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								$backupurl = new moodle_url($managerservice, array("getbackup" => true));
							 | 
						
					
						
							
								
									
										
										
										
											2017-11-17 18:24:59 +04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								echo $OUTPUT->single_button($backupurl, new lang_string("backup", "moodle"), "get");
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2017-12-19 14:39:40 +04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								/* Adds a restore button */
							 | 
						
					
						
							
								
									
										
										
										
											2017-11-22 13:59:02 +04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								$restorebackupurl = new moodle_url($restorebackup);
							 | 
						
					
						
							
								
									
										
										
										
											2017-12-19 14:39:40 +04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								echo $OUTPUT->single_button($restorebackupurl, new lang_string("restore", "moodle"));
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								/* Displays the table */
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								$table = new local_webhooks_table("local-webhooks-table");
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								$table->define_baseurl($baseurl);
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								$table->out(25, true);
							 | 
						
					
						
							
								
									
										
										
										
											2017-11-17 19:58:45 +04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2017-12-19 14:39:40 +04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								/* Footer */
							 | 
						
					
						
							
								
									
										
										
										
											2017-10-22 14:10:07 +04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								echo $OUTPUT->footer();
							 |