diff --git a/backup/moodle2/backup_root_task.class.php b/backup/moodle2/backup_root_task.class.php index 91fa0f59d6c..b634f254e67 100644 --- a/backup/moodle2/backup_root_task.class.php +++ b/backup/moodle2/backup_root_task.class.php @@ -54,64 +54,64 @@ class backup_root_task extends backup_task { // Define users setting (keeping it on hand to define dependencies) $users = new backup_users_setting('users', base_setting::IS_BOOLEAN, true); - $users->set_ui(new backup_setting_ui_select($users, $users->get_name(), array(1=>get_string('yes'), 0=>get_string('no')))); + $users->set_ui(new backup_setting_ui_checkbox($users, get_string('rootsettingusers', 'backup'))); $this->add_setting($users); // Define anonymize (dependent of users) $anonymize = new backup_anonymize_setting('anonymize', base_setting::IS_BOOLEAN, false); - $anonymize->set_ui(new backup_setting_ui_select($anonymize, $anonymize->get_name(), array(1=>get_string('yes'), 0=>get_string('no')))); + $anonymize->set_ui(new backup_setting_ui_checkbox($anonymize, get_string('rootsettinganonymize', 'backup'))); $this->add_setting($anonymize); $users->add_dependency($anonymize); // Define role_assignments (dependent of users) $roleassignments = new backup_role_assignments_setting('role_assignments', base_setting::IS_BOOLEAN, true); - $roleassignments->set_ui(new backup_setting_ui_select($roleassignments, $roleassignments->get_name(), array(1=>get_string('yes'), 0=>get_string('no')))); + $roleassignments->set_ui(new backup_setting_ui_checkbox($roleassignments, get_string('rootsettingroleassignments', 'backup'))); $this->add_setting($roleassignments); $users->add_dependency($roleassignments); // Define user_files (dependent of users and anonymize) $userfiles = new backup_user_files_setting('user_files', base_setting::IS_BOOLEAN, true); - $userfiles->set_ui(new backup_setting_ui_select($userfiles, $userfiles->get_name(), array(1=>get_string('yes'), 0=>get_string('no')))); + $userfiles->set_ui(new backup_setting_ui_checkbox($userfiles, get_string('rootsettinguserfiles', 'backup'))); $this->add_setting($userfiles); $users->add_dependency($userfiles); $anonymize->add_dependency($userfiles, setting_dependency::DISABLED_TRUE); // Define activities $activities = new backup_activities_setting('activities', base_setting::IS_BOOLEAN, true); - $activities->set_ui(new backup_setting_ui_select($activities, $activities->get_name(), array(1=>get_string('yes'), 0=>get_string('no')))); + $activities->set_ui(new backup_setting_ui_checkbox($activities, get_string('rootsettingactivities', 'backup'))); $this->add_setting($activities); // Define blocks $blocks = new backup_generic_setting('blocks', base_setting::IS_BOOLEAN, true); - $blocks->set_ui(new backup_setting_ui_select($blocks, $blocks->get_name(), array(1=>get_string('yes'), 0=>get_string('no')))); + $blocks->set_ui(new backup_setting_ui_checkbox($blocks, get_string('rootsettingblocks', 'backup'))); $this->add_setting($blocks); // Define filters $filters = new backup_generic_setting('filters', base_setting::IS_BOOLEAN, true); - $filters->set_ui(new backup_setting_ui_select($filters, $filters->get_name(), array(1=>get_string('yes'), 0=>get_string('no')))); + $filters->set_ui(new backup_setting_ui_checkbox($filters, get_string('rootsettingfilters', 'backup'))); $this->add_setting($filters); // Define comments (dependent of users) $comments = new backup_comments_setting('comments', base_setting::IS_BOOLEAN, true); - $comments->set_ui(new backup_setting_ui_select($comments, $comments->get_name(), array(1=>get_string('yes'), 0=>get_string('no')))); + $comments->set_ui(new backup_setting_ui_checkbox($comments, get_string('rootsettingcomments', 'backup'))); $this->add_setting($comments); $users->add_dependency($comments); // Define completion (dependent of users) $completion = new backup_userscompletion_setting('userscompletion', base_setting::IS_BOOLEAN, true); - $completion->set_ui(new backup_setting_ui_select($completion, $completion->get_name(), array(1=>get_string('yes'), 0=>get_string('no')))); + $completion->set_ui(new backup_setting_ui_checkbox($completion, get_string('rootsettinguserscompletion', 'backup'))); $this->add_setting($completion); $users->add_dependency($completion); // Define logs (dependent of users) $logs = new backup_logs_setting('logs', base_setting::IS_BOOLEAN, true); - $logs->set_ui(new backup_setting_ui_select($logs, $logs->get_name(), array(1=>get_string('yes'), 0=>get_string('no')))); + $logs->set_ui(new backup_setting_ui_checkbox($logs, get_string('rootsettinglogs', 'backup'))); $this->add_setting($logs); $users->add_dependency($logs); // Define grade_histories (dependent of users) $gradehistories = new backup_generic_setting('grade_histories', base_setting::IS_BOOLEAN, true); - $gradehistories->set_ui(new backup_setting_ui_select($gradehistories, $gradehistories->get_name(), array(1=>get_string('yes'), 0=>get_string('no')))); + $gradehistories->set_ui(new backup_setting_ui_checkbox($gradehistories, get_string('rootsettinggradehistories', 'backup'))); $this->add_setting($gradehistories); $users->add_dependency($gradehistories); } diff --git a/backup/moodle2/restore_root_task.class.php b/backup/moodle2/restore_root_task.class.php index 5c3012b4919..239d20bd82c 100644 --- a/backup/moodle2/restore_root_task.class.php +++ b/backup/moodle2/restore_root_task.class.php @@ -81,118 +81,128 @@ class restore_root_task extends restore_task { $rootsettings = $this->get_info()->root_settings; // Define users setting (keeping it on hand to define dependencies) - $selectvalues = array(0=>get_string('no')); // Safer options $defaultvalue = false; // Safer default + $changeable = false; if (isset($rootsettings['users']) && $rootsettings['users']) { // Only enabled when available - $selectvalues = array(1=>get_string('yes'), 0=>get_string('no')); $defaultvalue = true; + $changeable = true; } $users = new restore_users_setting('users', base_setting::IS_BOOLEAN, $defaultvalue); - $users->set_ui(new backup_setting_ui_select($users, $users->get_name(), $selectvalues)); + $users->set_ui(new backup_setting_ui_checkbox($users, get_string('rootsettingusers', 'backup'))); + $users->get_ui()->set_changeable($changeable); $this->add_setting($users); // Define role_assignments (dependent of users) - $selectvalues = array(0=>get_string('no')); // Safer options $defaultvalue = false; // Safer default + $changeable = false; if (isset($rootsettings['role_assignments']) && $rootsettings['role_assignments']) { // Only enabled when available - $selectvalues = array(1=>get_string('yes'), 0=>get_string('no')); $defaultvalue = true; + $changeable = true; } $roleassignments = new restore_role_assignments_setting('role_assignments', base_setting::IS_BOOLEAN, $defaultvalue); - $roleassignments->set_ui(new backup_setting_ui_select($roleassignments, $roleassignments->get_name(), $selectvalues)); + $roleassignments->set_ui(new backup_setting_ui_checkbox($roleassignments,get_string('rootsettingroleassignments', 'backup'))); + $roleassignments->get_ui()->set_changeable($changeable); $this->add_setting($roleassignments); $users->add_dependency($roleassignments); // Define user_files (dependent of users) - $selectvalues = array(0=>get_string('no')); // Safer options $defaultvalue = false; // Safer default + $changeable = false; if (isset($rootsettings['user_files']) && $rootsettings['user_files']) { // Only enabled when available - $selectvalues = array(1=>get_string('yes'), 0=>get_string('no')); $defaultvalue = true; + $changeable = true; } $userfiles = new restore_user_files_setting('user_files', base_setting::IS_BOOLEAN, $defaultvalue); - $userfiles->set_ui(new backup_setting_ui_select($userfiles, $userfiles->get_name(), $selectvalues)); + $userfiles->set_ui(new backup_setting_ui_checkbox($userfiles, get_string('rootsettinguserfiles', 'backup'))); + $userfiles->get_ui()->set_changeable($changeable); $this->add_setting($userfiles); $users->add_dependency($userfiles); // Define activitites - $selectvalues = array(0=>get_string('no')); // Safer options $defaultvalue = false; // Safer default + $changeable = false; if (isset($rootsettings['activities']) && $rootsettings['activities']) { // Only enabled when available - $selectvalues = array(1=>get_string('yes'), 0=>get_string('no')); $defaultvalue = true; + $changeable = true; } $activities = new restore_activities_setting('activities', base_setting::IS_BOOLEAN, $defaultvalue); - $activities->set_ui(new backup_setting_ui_select($activities, $activities->get_name(), $selectvalues)); + $activities->set_ui(new backup_setting_ui_checkbox($activities, get_string('rootsettingactivities', 'backup'))); + $activities->get_ui()->set_changeable($changeable); $this->add_setting($activities); // Define blocks - $selectvalues = array(0=>get_string('no')); // Safer options $defaultvalue = false; // Safer default + $changeable = false; if (isset($rootsettings['blocks']) && $rootsettings['blocks']) { // Only enabled when available - $selectvalues = array(1=>get_string('yes'), 0=>get_string('no')); $defaultvalue = true; + $changeable = true; } $blocks = new restore_generic_setting('blocks', base_setting::IS_BOOLEAN, $defaultvalue); - $blocks->set_ui(new backup_setting_ui_select($blocks, $blocks->get_name(), $selectvalues)); + $blocks->set_ui(new backup_setting_ui_checkbox($blocks, get_string('rootsettingblocks', 'backup'))); + $blocks->get_ui()->set_changeable($changeable); $this->add_setting($blocks); // Define filters - $selectvalues = array(0=>get_string('no')); // Safer options $defaultvalue = false; // Safer default + $changeable = false; if (isset($rootsettings['filters']) && $rootsettings['filters']) { // Only enabled when available - $selectvalues = array(1=>get_string('yes'), 0=>get_string('no')); $defaultvalue = true; + $changeable = true; } $filters = new restore_generic_setting('filters', base_setting::IS_BOOLEAN, $defaultvalue); - $filters->set_ui(new backup_setting_ui_select($filters, $filters->get_name(), $selectvalues)); + $filters->set_ui(new backup_setting_ui_checkbox($filters, get_string('rootsettingfilters', 'backup'))); + $filters->get_ui()->set_changeable($changeable); $this->add_setting($filters); // Define comments (dependent of users) - $selectvalues = array(0=>get_string('no')); // Safer options $defaultvalue = false; // Safer default + $changeable = false; if (isset($rootsettings['comments']) && $rootsettings['comments']) { // Only enabled when available - $selectvalues = array(1=>get_string('yes'), 0=>get_string('no')); $defaultvalue = true; + $changeable = true; } $comments = new restore_comments_setting('comments', base_setting::IS_BOOLEAN, $defaultvalue); - $comments->set_ui(new backup_setting_ui_select($comments, $comments->get_name(), $selectvalues)); + $comments->set_ui(new backup_setting_ui_checkbox($comments, get_string('rootsettingcomments', 'backup'))); + $comments->get_ui()->set_changeable($changeable); $this->add_setting($comments); $users->add_dependency($comments); // Define completion (dependent of users) - $selectvalues = array(0=>get_string('no')); // Safer options $defaultvalue = false; // Safer default + $changeable = false; if (isset($rootsettings['userscompletion']) && $rootsettings['userscompletion']) { // Only enabled when available - $selectvalues = array(1=>get_string('yes'), 0=>get_string('no')); $defaultvalue = true; + $changeable = true; } $completion = new restore_userscompletion_setting('userscompletion', base_setting::IS_BOOLEAN, $defaultvalue); - $completion->set_ui(new backup_setting_ui_select($completion, $completion->get_name(), $selectvalues)); + $completion->set_ui(new backup_setting_ui_checkbox($completion, get_string('rootsettinguserscompletion', 'backup'))); + $completion->get_ui()->set_changeable($changeable); $this->add_setting($completion); $users->add_dependency($completion); // Define logs (dependent of users) - $selectvalues = array(0=>get_string('no')); // Safer options $defaultvalue = false; // Safer default + $changeable = false; if (isset($rootsettings['logs']) && $rootsettings['logs']) { // Only enabled when available - $selectvalues = array(1=>get_string('yes'), 0=>get_string('no')); $defaultvalue = true; + $changeable = true; } $logs = new restore_logs_setting('logs', base_setting::IS_BOOLEAN, $defaultvalue); - $logs->set_ui(new backup_setting_ui_select($logs, $logs->get_name(), $selectvalues)); + $logs->set_ui(new backup_setting_ui_checkbox($logs, get_string('rootsettinglogs', 'backup'))); + $logs->get_ui()->set_changeable($changeable); $this->add_setting($logs); $users->add_dependency($logs); // Define grade_histories (dependent of users) - $selectvalues = array(0=>get_string('no')); // Safer options $defaultvalue = false; // Safer default + $changeable = false; if (isset($rootsettings['grade_histories']) && $rootsettings['grade_histories']) { // Only enabled when available - $selectvalues = array(1=>get_string('yes'), 0=>get_string('no')); $defaultvalue = true; + $changeable = true; } $gradehistories = new restore_grade_histories_setting('grade_histories', base_setting::IS_BOOLEAN, $defaultvalue); - $gradehistories->set_ui(new backup_setting_ui_select($gradehistories, $gradehistories->get_name(), $selectvalues)); + $gradehistories->set_ui(new backup_setting_ui_checkbox($gradehistories, get_string('rootsettinggradehistories', 'backup'))); + $gradehistories->get_ui()->set_changeable($changeable); $this->add_setting($gradehistories); $users->add_dependency($gradehistories); } diff --git a/backup/restore.php b/backup/restore.php index e473a56124f..313e6b2bbdc 100644 --- a/backup/restore.php +++ b/backup/restore.php @@ -9,8 +9,8 @@ $stage = optional_param('stage', restore_ui::STAGE_CONFIRM, PARAM_INT); list($context, $course, $cm) = get_context_info_array($contextid); +navigation_node::override_active_url(new moodle_url('/backup/restorefile.php', array('contextid'=>$contextid))); $PAGE->set_url(new moodle_url('/backup/restore.php', array('contextid'=>$contextid))); -navigation_node::override_active_url(new moodle_url('/backup/restore.php', array('contextid'=>$contextid))); $PAGE->set_context($context); $PAGE->set_pagelayout('standard'); diff --git a/backup/util/ui/backup_ui_setting.class.php b/backup/util/ui/backup_ui_setting.class.php index feb8a3cda25..3bca0e2cd07 100644 --- a/backup/util/ui/backup_ui_setting.class.php +++ b/backup/util/ui/backup_ui_setting.class.php @@ -225,7 +225,7 @@ abstract class backup_setting_ui extends base_setting_ui { if ($this->setting->get_level() == backup_setting::SECTION_LEVEL) { $this->label = get_string('includesection', 'backup', $task->get_name()); } else if ($this->setting->get_level() == backup_setting::ACTIVITY_LEVEL) { - $this->label = get_string('includeother', 'backup', $task->get_name()); + $this->label = $task->get_name(); } } return $this->label; @@ -301,6 +301,10 @@ class backup_setting_ui_checkbox extends backup_setting_ui { * @var int */ protected $type = backup_setting::UI_HTML_CHECKBOX; + /** + * @var bool + */ + protected $changeable = true; /** * The text to show next to the checkbox * @var string @@ -346,6 +350,27 @@ class backup_setting_ui_checkbox extends backup_setting_ui { return get_string('no'); } } + + /** + * Returns true if the setting is changeable + * @return bool + */ + public function is_changeable() { + if ($this->changeable===false) { + return false; + } else { + return parent::is_changeable(); + } + } + + /** + * Sets whether the setting is changeable, + * Note dependencies can still mark this setting changeable or not + * @param bool $newvalue + */ + public function set_changeable($newvalue) { + $this->changeable = ($newvalue); + } } /** @@ -465,7 +490,11 @@ class backup_setting_ui_select extends backup_setting_ui { public function get_static_value() { return $this->values[$this->get_value()]; } - + /** + * Returns true if the setting is changeable, false otherwise + * + * @return bool + */ public function is_changeable() { if (count($this->values) == 1) { return false; diff --git a/backup/util/ui/backup_ui_stage.class.php b/backup/util/ui/backup_ui_stage.class.php index 6dbcf750dd3..9386c7bd676 100644 --- a/backup/util/ui/backup_ui_stage.class.php +++ b/backup/util/ui/backup_ui_stage.class.php @@ -230,7 +230,7 @@ class backup_ui_stage_schema extends backup_ui_stage { if (!($task instanceof backup_root_task)) { if (!$courseheading) { // If we havn't already display a course heading to group nicely - $form->add_heading('coursesettings', get_string('coursesettings', 'backup')); + $form->add_heading('coursesettings', get_string('includeactivities', 'backup')); $courseheading = true; } // First add each setting @@ -346,7 +346,7 @@ class backup_ui_stage_confirmation extends backup_ui_stage { $form->add_heading('rootsettings', get_string('rootsettings', 'backup')); } else if (!$courseheading) { // we havn't already add a course heading - $form->add_heading('coursesettings', get_string('coursesettings', 'backup')); + $form->add_heading('coursesettings', get_string('includeactivities', 'backup')); $courseheading = true; } // Iterate all settings, doesnt need to happen by reference @@ -450,19 +450,12 @@ class backup_ui_stage_complete extends backup_ui_stage_final { global $OUTPUT; // Get the resulting stored_file record - $file = $this->results['backup_destination']; - // Turn it into a url for the file browser - $fileurl = new moodle_url('/files/index.php', array( - 'contextid' => $file->get_contextid(), - 'component' => $file->get_component(), - 'filearea' => $file->get_filearea(), - 'itemid' => $file->get_itemid(), - 'filepath' => $file->get_filepath() - )); + $coursecontext = get_context_instance(CONTEXT_COURSE, $this->get_ui()->get_controller()->get_courseid()); + $restorerul = new moodle_url('/backup/restorefile.php', array('contextid'=>$coursecontext->id)); echo $OUTPUT->box_start(); echo $OUTPUT->notification(get_string('executionsuccess', 'backup'), 'notifysuccess'); - echo $OUTPUT->continue_button($fileurl); + echo $OUTPUT->continue_button($restorerul); echo $OUTPUT->box_end(); } } diff --git a/backup/util/ui/renderer.php b/backup/util/ui/renderer.php index 93286f7d958..65a89505def 100644 --- a/backup/util/ui/renderer.php +++ b/backup/util/ui/renderer.php @@ -91,7 +91,7 @@ class core_backup_renderer extends plugin_renderer_base { $html .= $this->output->heading(get_string('backupsettings', 'backup'), 2, array('class'=>'header')); foreach ($details->root_settings as $label=>$value) { if ($label == 'filename') continue; - $html .= $this->backup_detail_pair(get_string('general'.str_replace('_','',$label), 'backup'), $value?$yestick:$notick); + $html .= $this->backup_detail_pair(get_string('rootsetting'.str_replace('_','',$label), 'backup'), $value?$yestick:$notick); } $html .= html_writer::end_tag('div'); diff --git a/lang/en/backup.php b/lang/en/backup.php index 5664c4a2d10..73d9209f855 100644 --- a/lang/en/backup.php +++ b/lang/en/backup.php @@ -72,7 +72,7 @@ $string['errorfilenamerequired'] = 'You must enter a valid filename for this bac $string['errorfilenamemustbezip'] = 'The filename you enter must be a ZIP file and have the .zip extension'; $string['errorminbackup20version'] = 'This backup file has been created with one development version of Moodle backup ({$a->backup}). Minimum required is {$a->min}. Cannot be restored.'; $string['errorrestorefrontpage'] = 'Restoring over front page is not allowed.'; -$string['executionsuccess'] = 'Your backup completed successfully, clicking the continue button below will take you to view your backup file.'; +$string['executionsuccess'] = 'The backup file was successfully created.'; $string['filename'] = 'Filename'; $string['generalactivities'] = 'Include activities'; $string['generalanonymize'] = 'Anonymise information'; @@ -88,8 +88,8 @@ $string['generaluserscompletion'] = 'Include user completion information'; $string['generaluserfiles'] = 'Include user files'; $string['generalusers'] = 'Include users'; $string['importfile'] = 'Import a backup file'; +$string['includeactivities'] = 'Choose activities to include'; $string['includesection'] = 'Include section {$a}'; -$string['includeother'] = 'Include {$a}'; $string['includeuserinfo'] = 'Include user information'; $string['locked'] = 'Locked'; $string['lockedbypermission'] = 'You don\'t have sufficient permissions to change this setting'; @@ -135,6 +135,17 @@ $string['restoringcourse'] = 'Course restoration in progress'; $string['restoringcourseshortname'] = 'restoring'; $string['restorerolemappings'] = 'Restore role mappings'; $string['rootsettings'] = 'Backup settings'; +$string['rootsettingusers'] = 'Include enrolled users'; +$string['rootsettinganonymize'] = 'Anonymize user information'; +$string['rootsettingroleassignments'] = 'Include user role assignments'; +$string['rootsettinguserfiles'] = 'Include user files'; +$string['rootsettingactivities'] = 'Include activities'; +$string['rootsettingblocks'] = 'Include blocks'; +$string['rootsettingfilters'] = 'Include filters'; +$string['rootsettingcomments'] = 'Include comments'; +$string['rootsettinguserscompletion'] = 'Include user completion details'; +$string['rootsettinglogs'] = 'Include course logs'; +$string['rootsettinggradehistories'] = 'Include grade history'; $string['scheduledsettings'] = 'Scheduled backup settings'; $string['sectionincanduser'] = 'Included in backup along with user information'; $string['sectioninc'] = 'Included in backup (no user information)';