MDL-66118 hub: Replace the unregister form with a confirmation
authorDavid Mudrák <david@moodle.com>
Wed, 2 Oct 2019 19:57:01 +0000 (21:57 +0200)
committerDavid Mudrák <david@moodle.com>
Fri, 4 Oct 2019 19:23:11 +0000 (21:23 +0200)
Now that unpublishalladvertisedcourses and unpublishalluploadedcourses
became irrelevant, there is no reason for an empty form.

admin/registration/index.php
lang/en/deprecated.txt
lang/en/hub.php
lib/classes/hub/site_unregistration_form.php [deleted file]

index 2b1a01f..ede6a67 100644 (file)
@@ -32,24 +32,25 @@ require_once($CFG->libdir . '/adminlib.php');
 
 admin_externalpage_setup('registrationmoodleorg');
 
-$unregistration = optional_param('unregistration', 0, PARAM_INT);
+$unregistration = optional_param('unregistration', false, PARAM_BOOL);
+$confirm = optional_param('confirm', false, PARAM_BOOL);
 
 if ($unregistration && \core\hub\registration::is_registered()) {
-    $siteunregistrationform = new \core\hub\site_unregistration_form();
+    if ($confirm) {
+        require_sesskey();
+        \core\hub\registration::unregister(false, false);
 
-    if ($siteunregistrationform->is_cancelled()) {
-        redirect(new moodle_url('/admin/registration/index.php'));
-    } else if ($data = $siteunregistrationform->get_data()) {
-        \core\hub\registration::unregister($data->unpublishalladvertisedcourses,
-            $data->unpublishalluploadedcourses);
         if (!\core\hub\registration::is_registered()) {
             redirect(new moodle_url('/admin/registration/index.php'));
         }
     }
 
     echo $OUTPUT->header();
-    echo $OUTPUT->heading(get_string('registerwithmoodleorgremove', 'core_hub'), 3, 'main');
-    $siteunregistrationform->display();
+    echo $OUTPUT->confirm(
+        get_string('registerwithmoodleorgremove', 'core_hub'),
+        new moodle_url(new moodle_url('/admin/registration/index.php', ['unregistration' => 1, 'confirm' => 1])),
+        new moodle_url(new moodle_url('/admin/registration/index.php'))
+    );
     echo $OUTPUT->footer();
     exit;
 }
@@ -119,8 +120,9 @@ $siteregistrationform->display();
 if (\core\hub\registration::is_registered()) {
     // Unregister link.
     $unregisterhuburl = new moodle_url("/admin/registration/index.php", ['unregistration' => 1]);
-    echo html_writer::div(html_writer::link($unregisterhuburl, get_string('unregister', 'hub')), 'unregister');
+    echo html_writer::div(html_writer::link($unregisterhuburl, get_string('unregister', 'hub')), 'unregister mt-2');
 } else if ($isinitialregistration) {
-    echo html_writer::div(html_writer::link(new moodle_url($returnurl), get_string('skipregistration', 'hub')), 'skipregistration');
+    echo html_writer::div(html_writer::link(new moodle_url($returnurl), get_string('skipregistration', 'hub')),
+        'skipregistration mt-2');
 }
 echo $OUTPUT->footer();
index 5f5e3fc..0595e0c 100644 (file)
@@ -114,3 +114,4 @@ registerwithmoodleorg,core_admin
 completeregistration,core_hub
 registersite,core_hub
 updatesite,core_hub
+unregisterexplained,core_hub
index 4a6edb5..3df03ba 100644 (file)
@@ -108,7 +108,7 @@ $string['registerwithmoodleorginfo'] = 'We\'d love to stay in touch and provide
 $string['registerwithmoodleorginfoapp'] = 'About the Moodle app';
 $string['registerwithmoodleorginfostats'] = 'Moodle statistics';
 $string['registerwithmoodleorginfosites'] = 'Other sites in my country';
-$string['registerwithmoodleorgremove'] = 'Unregistering your site';
+$string['registerwithmoodleorgremove'] = 'You are going to unregister your site. If you continue, you will no longer have access to important notifications and security alerts. Your users will not be able to receive push notifications from your site to their Moodle mobile app. Are you sure you want to unregister your site?';
 $string['registrationconfirmed'] = 'Site registration confirmed';
 $string['registrationconfirmedon'] = 'Thank you for registering your site. Registration information will be kept up to date by the \'Site registration\' scheduled task.';
 $string['renewregistration'] = 'Renew registration';
@@ -166,7 +166,6 @@ $string['unregistrationerror'] = 'An error occurred while attempting to unregist
 $string['update'] = 'Update';
 $string['updatesiteregistration'] = 'Update registration';
 $string['usedifferentemail'] = 'Use different email';
-$string['unregisterexplained'] = 'If the site with URL {$a} is registered, then its registration will be removed.';
 $string['urlalreadyregistered'] = 'Your site seems to be already registered, which means something has gone wrong. Please contact the sites directory administrator to reset your registration so you can try again.';
 $string['usersnumber'] = 'Number of users ({$a})';
 $string['wrongtoken'] = 'The registration failed for some unknown reason (network?). Please try again.';
@@ -233,4 +232,5 @@ $string['unpublishconfirmation'] = 'Do you really want to remove the course "{$a
 $string['unpublishcourse'] = 'Stop sharing {$a}';
 $string['updatesite'] = 'Update registration on {$a}';
 $string['updatestatus'] = 'Check it now.';
-$string['unregisterfrom'] = 'Unregister from {$a}';
\ No newline at end of file
+$string['unregisterfrom'] = 'Unregister from {$a}';
+$string['unregisterexplained'] = 'If the site with URL {$a} is registered, then its registration will be removed.';
\ No newline at end of file
diff --git a/lib/classes/hub/site_unregistration_form.php b/lib/classes/hub/site_unregistration_form.php
deleted file mode 100644 (file)
index 70fc070..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-<?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/>.
-
-/**
- * Class site_unregistration_form
- *
- * @package    core
- * @copyright  2017 Marina Glancy
- * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
- */
-
-namespace core\hub;
-defined('MOODLE_INTERNAL') || die();
-
-global $CFG;
-require_once($CFG->libdir . '/formslib.php');
-
-/**
- * This form display a unregistration form.
- *
- * @author     Jerome Mouneyrac <jerome@mouneyrac.com>
- * @package    core
- * @copyright  2017 Marina Glancy
- * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
- */
-class site_unregistration_form extends \moodleform {
-
-    /**
-     * Form definition
-     */
-    public function definition() {
-        global $CFG;
-        $mform = & $this->_form;
-        $mform->addElement('header', 'site', get_string('unregister', 'hub'));
-
-        $unregisterlabel = get_string('unregister', 'hub');
-        $mform->addElement('advcheckbox', 'unpublishalladvertisedcourses', '',
-            ' ' . get_string('unpublishalladvertisedcourses', 'hub'));
-        $mform->setType('unpublishalladvertisedcourses', PARAM_INT);
-        $mform->addElement('advcheckbox', 'unpublishalluploadedcourses', '',
-            ' ' . get_string('unpublishalluploadedcourses', 'hub'));
-        $mform->setType('unpublishalluploadedcourses', PARAM_INT);
-
-        $mform->addElement('hidden', 'unregistration', 1);
-        $mform->setType('unregistration', PARAM_INT);
-
-        $mform->addElement('static', 'explanation', '', get_string('unregisterexplained', 'hub', $CFG->wwwroot));
-
-        $this->add_action_buttons(true, $unregisterlabel);
-    }
-}