MDL-12861 overriding of database settings now optional when using presets; merged from MOODLE_19_STABLE

This commit is contained in:
skodak
2008-04-20 10:09:28 +00:00
parent 2dc6be3f77
commit 8528bf260b
3 changed files with 38 additions and 6 deletions
+1
View File
@@ -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
View File
@@ -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;
}
}
+14
View File
@@ -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;
}