MDL-12861 overriding of database settings now optional when using presets; merged from MOODLE_19_STABLE
This commit is contained in:
@@ -180,6 +180,7 @@ $string['optionaldescription'] = 'Short description (optional)';
|
||||
$string['optionalfilename'] = 'Filename (optional)';
|
||||
$string['other'] = 'Other';
|
||||
$string['overwrite'] = 'Overwrite';
|
||||
$string['overwritesettings'] = 'Overwrite current settings';
|
||||
$string['pagesize'] = 'Entries per page';
|
||||
$string['participants'] = 'Participants';
|
||||
$string['picture'] = 'Picture';
|
||||
|
||||
+23
-6
@@ -1994,8 +1994,8 @@ class PresetImporter {
|
||||
|
||||
list($settings, $newfields, $currentfields) = $this->get_settings();
|
||||
|
||||
echo '<div style="text-align:center"><form action="preset.php" method="post">';
|
||||
echo '<fieldset class="invisiblefieldset">';
|
||||
echo '<div class="presetmapping"><form action="preset.php" method="post">';
|
||||
echo '<div>';
|
||||
echo '<input type="hidden" name="action" value="finishimport" />';
|
||||
echo '<input type="hidden" name="sesskey" value="'.sesskey().'" />';
|
||||
echo '<input type="hidden" name="d" value="'.$this->data->id.'" />';
|
||||
@@ -2031,11 +2031,15 @@ class PresetImporter {
|
||||
}
|
||||
echo '</table>';
|
||||
echo "<p>$strwarning</p>";
|
||||
}
|
||||
else if (empty($newfields)) {
|
||||
|
||||
} else if (empty($newfields)) {
|
||||
error("New preset has no defined fields!");
|
||||
}
|
||||
echo '<input type="submit" value="'.$strcontinue.'" /></fieldset></form></div>';
|
||||
|
||||
echo '<div class="overwritesettings"><label for="overwritesettings">'.get_string('overwritesettings', 'data').'</label>';
|
||||
echo '<input id="overwritesettings" name="overwritesettings" type="checkbox" /></label></div>';
|
||||
|
||||
echo '<input class="button" type="submit" value="'.$strcontinue.'" /></div></form></div>';
|
||||
|
||||
}
|
||||
|
||||
@@ -2045,6 +2049,8 @@ class PresetImporter {
|
||||
list($settings, $newfields, $currentfields) = $this->get_settings();
|
||||
$preservedfields = array();
|
||||
|
||||
$overwritesettings = optional_param('overwritesettings', 0, PARAM_BOOL);
|
||||
|
||||
/* Maps fields and makes new ones */
|
||||
if (!empty($newfields)) {
|
||||
/* We require an injective mapping, and need to know what to protect */
|
||||
@@ -2109,9 +2115,20 @@ class PresetImporter {
|
||||
}
|
||||
}
|
||||
|
||||
// do we want to overwrite current database settings?
|
||||
if ($overwritesettings) {
|
||||
// all settings
|
||||
$overwrite = array_keys((array)$settings);
|
||||
} else {
|
||||
// only templates
|
||||
$overwrite = array('singletemplate', 'listtemplate', 'listtemplateheader', 'listtemplatefooter',
|
||||
'addtemplate', 'rsstemplate', 'rsstitletemplate', 'csstemplate', 'jstemplate',
|
||||
'asearchtemplate');
|
||||
}
|
||||
|
||||
// existing values MUST be sent too - it can not work without them!
|
||||
foreach ($this->data as $prop=>$unused) {
|
||||
if (array_key_exists($prop, (array)$settings)) {
|
||||
if (in_array($prop, $overwrite)) {
|
||||
$this->data->$prop = $settings->$prop;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,20 @@
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
#mod-data-preset .presetmapping {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#mod-data-preset .presetmapping table {
|
||||
text-align: left;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
#mod-data-preset .overwritesettings {
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
.mod-data-field .c0 {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user