Skip to content

Commit

Permalink
backup MDL-23563 numerous minor backup changes
Browse files Browse the repository at this point in the history
* Root settings are now check boxes rather than selects
* Language strings adjusted as requested
* Final continue on backup now redirecteds to restore pre ui
  • Loading branch information
Sam Hemelryk committed Jul 29, 2010
1 parent 5c40dc5 commit 573cdf8
Show file tree
Hide file tree
Showing 7 changed files with 102 additions and 59 deletions.
22 changes: 11 additions & 11 deletions backup/moodle2/backup_root_task.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -54,64 +54,64 @@ protected function define_settings() {

// 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);
}
Expand Down
70 changes: 40 additions & 30 deletions backup/moodle2/restore_root_task.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -81,118 +81,128 @@ protected function define_settings() {
$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);
}
Expand Down
2 changes: 1 addition & 1 deletion backup/restore.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@

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');

Expand Down
33 changes: 31 additions & 2 deletions backup/util/ui/backup_ui_setting.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -225,7 +225,7 @@ public function get_label(base_task $task=null) {
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;
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -346,6 +350,27 @@ public function get_static_value() {
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);
}
}

/**
Expand Down Expand Up @@ -465,7 +490,11 @@ public function set_values(array $values) {
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;
Expand Down
17 changes: 5 additions & 12 deletions backup/util/ui/backup_ui_stage.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,7 @@ protected function initialise_stage_form() {
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
Expand Down Expand Up @@ -346,7 +346,7 @@ protected function initialise_stage_form() {
$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
Expand Down Expand Up @@ -450,19 +450,12 @@ public function display() {
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();
}
}
2 changes: 1 addition & 1 deletion backup/util/ui/renderer.php
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ public function backup_details($details, $nextstageurl) {
$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');

Expand Down
Loading

0 comments on commit 573cdf8

Please sign in to comment.