]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-12861 overriding of database settings now optional when using presets; merged...
authorskodak <skodak>
Sun, 20 Apr 2008 10:09:28 +0000 (10:09 +0000)
committerskodak <skodak>
Sun, 20 Apr 2008 10:09:28 +0000 (10:09 +0000)
lang/en_utf8/data.php
mod/data/lib.php
mod/data/styles.php

index 88449126bc2d39b739d0fc31d99adf08013a1ee5..b7f2b772b03a00d067aaa08b32e5251ddba6d74f 100644 (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';
index 5b45eb231bfafed5e0671c5b9af610c4b76ce067..da29b6dadfbdd51f44a98285ba8b7df57f6b164c 100755 (executable)
@@ -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;
             }
         }
index 88997fd3566c5c047201e4bfaeaa4d4fc4069527..6f64125fbd69b3342bb695f0fec3258ffee9167b 100644 (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;
 }