From 4d64f23395324ec2add6a179286df0c933bdd0b7 Mon Sep 17 00:00:00 2001 From: "Shamiso.Jaravaza" <33659194+ssj365@users.noreply.github.com> Date: Wed, 30 Nov 2022 11:42:28 -0700 Subject: [PATCH] MDL-75604 mod_bigbluebuttonbn: Fix welcome section * Removed welcome message from General settings * Cleaned settings.php file to remove hardcoded add($item) after adding conditional element --- .../classes/setting_validator.php | 14 +++- mod/bigbluebuttonbn/classes/settings.php | 81 +++++++++++-------- 2 files changed, 62 insertions(+), 33 deletions(-) diff --git a/mod/bigbluebuttonbn/classes/setting_validator.php b/mod/bigbluebuttonbn/classes/setting_validator.php index 04042827383..014f036cba7 100644 --- a/mod/bigbluebuttonbn/classes/setting_validator.php +++ b/mod/bigbluebuttonbn/classes/setting_validator.php @@ -37,7 +37,19 @@ class setting_validator { public static function section_general_shown() { global $CFG; return (!isset($CFG->bigbluebuttonbn['server_url']) || - !isset($CFG->bigbluebuttonbn['shared_secret'])); + !isset($CFG->bigbluebuttonbn['shared_secret']) + ); + } + + /** + * Validate if default messages section will be shown. + * + * @return bool + */ + public static function section_default_messages_shown() { + global $CFG; + return (!isset($CFG->bigbluebuttonbn['welcome_default']) || + !isset($CFG->bigbluebuttonbn['welcome_editable'])); } /** diff --git a/mod/bigbluebuttonbn/classes/settings.php b/mod/bigbluebuttonbn/classes/settings.php index 2d05b4f9ee7..325ea23123b 100644 --- a/mod/bigbluebuttonbn/classes/settings.php +++ b/mod/bigbluebuttonbn/classes/settings.php @@ -85,8 +85,9 @@ class settings { * Add all settings. */ public function add_all_settings(): void { + // Renders settings for welcome messages. + $this->add_defaultmessages_settings(); // Evaluates if recordings are enabled for the Moodle site. - // Renders settings for record feature. $this->add_record_settings(); // Renders settings for import recordings. @@ -188,37 +189,6 @@ class settings { $item, $settingsgeneral ); - $settingsgeneral->add($item); - $item = new admin_setting_heading( - 'bigbluebuttonbn_config_default_messages', - get_string('config_default_messages', 'bigbluebuttonbn'), - get_string('config_default_messages_description', 'bigbluebuttonbn') - ); - $settingsgeneral->add($item); - $item = new admin_setting_configtextarea( - 'bigbluebuttonbn_welcome_default', - get_string('config_welcome_default', 'bigbluebuttonbn'), - get_string('config_welcome_default_description', 'bigbluebuttonbn'), - '', - PARAM_TEXT - ); - $this->add_conditional_element( - 'welcome_default', - $item, - $settingsgeneral - ); - $settingsgeneral->add($item); - $item = new admin_setting_configcheckbox( - 'bigbluebuttonbn_welcome_editable', - get_string('config_welcome_editable', 'bigbluebuttonbn'), - get_string('config_welcome_editable_description', 'bigbluebuttonbn'), - 1, - ); - $this->add_conditional_element( - 'welcome_editable', - $item, - $settingsgeneral - ); $item = new admin_setting_configtext( 'bigbluebuttonbn_poll_interval', get_string('config_poll_interval', 'bigbluebuttonbn'), @@ -235,6 +205,53 @@ class settings { return $settingsgeneral; } + /** + * Helper function renders default messages settings if the feature is enabled. + */ + protected function add_defaultmessages_settings(): void { + // Configuration for 'default messages' feature. + $defaultmessagessetting = new admin_settingpage( + "{$this->sectionnameprefix}_default_messages", + get_string('config_default_messages', 'bigbluebuttonbn'), + 'moodle/site:config', + !((boolean) setting_validator::section_default_messages_shown()) && ($this->moduleenabled) + ); + + if ($this->admin->fulltree) { + $item = new admin_setting_heading( + 'bigbluebuttonbn_config_default_messages', + '', + get_string('config_default_messages_description', 'bigbluebuttonbn') + ); + $defaultmessagessetting->add($item); + $item = new admin_setting_configtextarea( + 'bigbluebuttonbn_welcome_default', + get_string('config_welcome_default', 'bigbluebuttonbn'), + get_string('config_welcome_default_description', 'bigbluebuttonbn'), + '', + PARAM_TEXT + ); + $this->add_conditional_element( + 'welcome_default', + $item, + $defaultmessagessetting + ); + $item = new admin_setting_configcheckbox( + 'bigbluebuttonbn_welcome_editable', + get_string('config_welcome_editable', 'bigbluebuttonbn'), + get_string('config_welcome_editable_description', 'bigbluebuttonbn'), + 1, + ); + $this->add_conditional_element( + 'welcome_editable', + $item, + $defaultmessagessetting + ); + } + $this->admin->add($this->parent, $defaultmessagessetting); + + } + /** * Helper function renders record settings if the feature is enabled. */