mirror of
https://github.com/moodle/moodle.git
synced 2025-08-05 17:06:53 +02:00
Merge branch 'wip-mdl-33618' of https://github.com/rajeshtaneja/moodle
This commit is contained in:
commit
06ef842707
6 changed files with 117 additions and 20 deletions
|
@ -41,6 +41,15 @@ if (($form = data_submitted()) && confirm_sesskey()) {
|
|||
// Prepare default message outputs settings
|
||||
foreach ( $providers as $provider) {
|
||||
$componentproviderbase = $provider->component.'_'.$provider->name;
|
||||
$disableprovidersetting = $componentproviderbase.'_disable';
|
||||
$providerdisabled = false;
|
||||
if (!isset($form->$disableprovidersetting)) {
|
||||
$providerdisabled = true;
|
||||
$preferences[$disableprovidersetting] = 1;
|
||||
} else {
|
||||
$preferences[$disableprovidersetting] = 0;
|
||||
}
|
||||
|
||||
foreach (array('permitted', 'loggedin', 'loggedoff') as $setting){
|
||||
$value = null;
|
||||
$componentprovidersetting = $componentproviderbase.'_'.$setting;
|
||||
|
@ -56,13 +65,13 @@ if (($form = data_submitted()) && confirm_sesskey()) {
|
|||
}
|
||||
// Ensure that loggedin loggedoff options are set correctly
|
||||
// for this permission
|
||||
if ($value == 'forced') {
|
||||
$form->{$componentproviderbase.'_loggedin'}[$processor->name] = 1;
|
||||
$form->{$componentproviderbase.'_loggedoff'}[$processor->name] = 1;
|
||||
} else if ($value == 'disallowed') {
|
||||
if (($value == 'disallowed') || $providerdisabled) {
|
||||
// It might be better to unset them, but I can't figure out why that cause error
|
||||
$form->{$componentproviderbase.'_loggedin'}[$processor->name] = 0;
|
||||
$form->{$componentproviderbase.'_loggedoff'}[$processor->name] = 0;
|
||||
} else if ($value == 'forced') {
|
||||
$form->{$componentproviderbase.'_loggedin'}[$processor->name] = 1;
|
||||
$form->{$componentproviderbase.'_loggedoff'}[$processor->name] = 1;
|
||||
}
|
||||
// record the site preference
|
||||
$preferences[$processor->name.'_provider_'.$componentprovidersetting] = $value;
|
||||
|
|
|
@ -54,6 +54,12 @@ M.core_message.init_defaultoutputs = function(Y) {
|
|||
// set initial layout
|
||||
node.simulate("change");
|
||||
}, this);
|
||||
|
||||
Y.all('#defaultmessageoutputs input.messagedisable').each(function(node) {
|
||||
// Attach event listener
|
||||
node.on('change', defaultoutputs.changeProviderState);
|
||||
node.simulate("change");
|
||||
}, this);
|
||||
},
|
||||
|
||||
changeState : function(e) {
|
||||
|
@ -83,6 +89,26 @@ M.core_message.init_defaultoutputs = function(Y) {
|
|||
node.setAttribute('checked', 1)
|
||||
}
|
||||
}, this);
|
||||
},
|
||||
|
||||
changeProviderState : function(e) {
|
||||
var isenabled = e.target.get('checked') || undefined;
|
||||
var parentnode = e.target.ancestor('tr');
|
||||
if (!isenabled) {
|
||||
parentnode.all('select').each(function(node) {
|
||||
node.set('value', 'disallowed');
|
||||
node.setAttribute('disabled', 1);
|
||||
defaultoutputs.updateCheckboxes(node.ancestor('td'), 1, 0);
|
||||
}, this);
|
||||
parentnode.addClass('dimmed_text');
|
||||
} else {
|
||||
parentnode.all('select').each(function(node) {
|
||||
node.removeAttribute('disabled');
|
||||
node.set('value', 'permitted');
|
||||
defaultoutputs.updateCheckboxes(node.ancestor('td'), 0, 0);
|
||||
}, this);
|
||||
parentnode.removeClass('dimmed_text');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -134,6 +134,9 @@ class core_message_renderer extends plugin_renderer_base {
|
|||
foreach ($processors as $processor) {
|
||||
$table->head[] = get_string('pluginname', 'message_'.$processor->name);
|
||||
}
|
||||
// Add enable/disable to head
|
||||
$table->head[] = get_string('enabled', 'core_message');
|
||||
|
||||
// Generate the matrix of settings for each provider and processor
|
||||
foreach ($providers as $provider) {
|
||||
$row = new html_table_row();
|
||||
|
@ -143,14 +146,16 @@ class core_message_renderer extends plugin_renderer_base {
|
|||
// Provider Name
|
||||
$providername = get_string('messageprovider:'.$provider->name, $provider->component);
|
||||
$row->cells[] = new html_table_cell($providername);
|
||||
|
||||
$providersettingprefix = $provider->component.'_'.$provider->name.'_';
|
||||
$disableprovidersetting = $providersettingprefix.'disable';
|
||||
$providerdisabled = !empty($preferences->$disableprovidersetting);
|
||||
// Settings for each processor
|
||||
foreach ($processors as $processor) {
|
||||
$cellcontent = '';
|
||||
foreach (array('permitted', 'loggedin', 'loggedoff') as $setting) {
|
||||
// pepare element and preference names
|
||||
$elementname = $provider->component.'_'.$provider->name.'_'.$setting.'['.$processor->name.']';
|
||||
$preferencebase = $provider->component.'_'.$provider->name.'_'.$setting;
|
||||
$elementname = $providersettingprefix.$setting.'['.$processor->name.']';
|
||||
$preferencebase = $providersettingprefix.$setting;
|
||||
// prepare language bits
|
||||
$processorname = get_string('pluginname', 'message_'.$processor->name);
|
||||
$statename = get_string($setting, 'message');
|
||||
|
@ -164,7 +169,9 @@ class core_message_renderer extends plugin_renderer_base {
|
|||
// determine the current setting or use default
|
||||
$select = MESSAGE_DEFAULT_PERMITTED;
|
||||
$preference = $processor->name.'_provider_'.$preferencebase;
|
||||
if (array_key_exists($preference, $preferences)) {
|
||||
if ($providerdisabled) {
|
||||
$select = MESSAGE_DISALLOWED;
|
||||
} else if (array_key_exists($preference, $preferences)) {
|
||||
$select = $preferences->{$preference};
|
||||
}
|
||||
// dropdown menu
|
||||
|
@ -193,6 +200,10 @@ class core_message_renderer extends plugin_renderer_base {
|
|||
}
|
||||
$row->cells[] = new html_table_cell($cellcontent);
|
||||
}
|
||||
$disableprovider = html_writer::checkbox($disableprovidersetting, 1, !$providerdisabled, '',
|
||||
array('id' => $disableprovidersetting, 'class' => 'messagedisable'));
|
||||
$disableprovider = html_writer::tag('div', $disableprovider);
|
||||
$row->cells[] = new html_table_cell($disableprovider);
|
||||
$table->data[] = $row;
|
||||
}
|
||||
|
||||
|
@ -240,6 +251,7 @@ class core_message_renderer extends plugin_renderer_base {
|
|||
$numprocs = count($processors);
|
||||
// Display the messaging options table(s)
|
||||
foreach ($components as $component) {
|
||||
$provideradded = false;
|
||||
$table = new html_table();
|
||||
$table->attributes['class'] = 'generaltable';
|
||||
$table->data = array();
|
||||
|
@ -249,18 +261,18 @@ class core_message_renderer extends plugin_renderer_base {
|
|||
$componentname = get_string('coresystem');
|
||||
}
|
||||
$table->head = array($componentname);
|
||||
|
||||
foreach ($readyprocessors as $processor) {
|
||||
$table->head[] = get_string('pluginname', 'message_'.$processor->name);
|
||||
}
|
||||
|
||||
// Populate the table with rows
|
||||
foreach ( $providers as $provider) {
|
||||
if( $provider->component != $component) {
|
||||
foreach ($providers as $provider) {
|
||||
$preferencebase = $provider->component.'_'.$provider->name;
|
||||
// If provider component is not same or provider disabled then don't show.
|
||||
if (($provider->component != $component) ||
|
||||
(!empty($defaultpreferences->{$preferencebase.'_disable'}))) {
|
||||
continue;
|
||||
}
|
||||
$preferencebase = $provider->component.'_'.$provider->name;
|
||||
|
||||
$provideradded = true;
|
||||
$headerrow = new html_table_row();
|
||||
$providername = get_string('messageprovider:'.$provider->name, $provider->component);
|
||||
$providercell = new html_table_cell($providername);
|
||||
|
@ -331,9 +343,12 @@ class core_message_renderer extends plugin_renderer_base {
|
|||
$table->data[] = $optionrow;
|
||||
}
|
||||
}
|
||||
$output .= html_writer::start_tag('div', array('class' => 'messagesettingcomponent'));
|
||||
$output .= html_writer::table($table);
|
||||
$output .= html_writer::end_tag('div');
|
||||
// Add settings only if provider added for component.
|
||||
if ($provideradded) {
|
||||
$output .= html_writer::start_tag('div', array('class' => 'messagesettingcomponent'));
|
||||
$output .= html_writer::table($table);
|
||||
$output .= html_writer::end_tag('div');
|
||||
}
|
||||
}
|
||||
|
||||
$output .= html_writer::end_tag('fieldset');
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue