MDL-36638 usability: Core changes for new quiz/question icons

This commit is contained in:
Frederic Massart 2012-11-27 16:52:13 +08:00
parent 5644415789
commit c384744304
18 changed files with 49 additions and 44 deletions

View File

@ -400,9 +400,9 @@ class backup_setting_ui_checkbox extends backup_setting_ui {
global $OUTPUT;
// Checkboxes are always yes or no
if ($this->get_value()) {
return $OUTPUT->pix_icon('i/tick_green_big', get_string('yes'));
return $OUTPUT->pix_icon('i/valid', get_string('yes'));
} else {
return $OUTPUT->pix_icon('i/cross_red_big', get_string('no'));
return $OUTPUT->pix_icon('i/invalid', get_string('no'));
}
}

View File

@ -72,8 +72,8 @@ class core_backup_renderer extends plugin_renderer_base {
* @return string
*/
public function backup_details($details, $nextstageurl) {
$yestick = $this->output->pix_icon('i/tick_green_big', get_string('yes'));
$notick = $this->output->pix_icon('i/cross_red_big', get_string('no'));
$yestick = $this->output->pix_icon('i/valid', get_string('yes'));
$notick = $this->output->pix_icon('i/valid', get_string('no'));
$html = html_writer::start_tag('div', array('class'=>'backup-restore'));

View File

@ -81,9 +81,9 @@ if (!empty($blogs)) {
foreach ($blogs as $blog) {
if ($blog->failedlastsync) {
$validicon = $OUTPUT->pix_icon('i/cross_red_big', get_string('feedisinvalid', 'blog'));
$validicon = $OUTPUT->pix_icon('i/invalid', get_string('feedisinvalid', 'blog'));
} else {
$validicon = $OUTPUT->pix_icon('i/tick_green_big', get_string('feedisvalid', 'blog'));
$validicon = $OUTPUT->pix_icon('i/valid', get_string('feedisvalid', 'blog'));
}
$editurl = new moodle_url('/blog/external_blog_edit.php', array('id' => $blog->id));

6
cache/renderer.php vendored
View File

@ -101,7 +101,7 @@ class core_cache_renderer extends plugin_renderer_base {
$row = new html_table_row(array(
$storename,
get_string('pluginname', 'cachestore_'.$store['plugin']),
($store['isready'] && $store['requirementsmet']) ? $this->output->pix_icon('i/tick_green_small', '1') : '',
($store['isready'] && $store['requirementsmet']) ? $this->output->pix_icon('i/valid', '1') : '',
$store['mappings'],
join(', ', $modes),
join(', ', $supports),
@ -171,7 +171,7 @@ class core_cache_renderer extends plugin_renderer_base {
$row = new html_table_row(array(
$plugin['name'],
($plugin['requirementsmet']) ? $this->output->pix_icon('i/tick_green_small', '1') : '',
($plugin['requirementsmet']) ? $this->output->pix_icon('i/valid', '1') : '',
$plugin['instances'],
join(', ', $modes),
join(', ', $supports),
@ -321,7 +321,7 @@ class core_cache_renderer extends plugin_renderer_base {
// Useful later: get_string('actions', 'cache').
);
$table->data = array();
$tick = $this->output->pix_icon('i/tick_green_big', '');
$tick = $this->output->pix_icon('i/valid', '');
foreach ($locks as $lock) {
$table->data[] = new html_table_row(array(
new html_table_cell($lock['name']),

View File

@ -201,7 +201,7 @@ class mod_lti_mod_form extends moodleform_mod {
'edit_icon_url' => (string)$OUTPUT->pix_url('t/edit'),
'add_icon_url' => (string)$OUTPUT->pix_url('t/add'),
'delete_icon_url' => (string)$OUTPUT->pix_url('t/delete'),
'green_check_icon_url' => (string)$OUTPUT->pix_url('i/tick_green_small'),
'green_check_icon_url' => (string)$OUTPUT->pix_url('i/valid'),
'warning_icon_url' => (string)$OUTPUT->pix_url('warning', 'lti'),
'instructor_tool_type_edit_url' => $editurl->out(false),
'ajax_url' => $ajaxurl->out(true),

View File

@ -1648,7 +1648,7 @@ function quiz_extend_settings_navigation($settings, $quiznode) {
array('cmid'=>$PAGE->cm->id, 'sesskey'=>sesskey()));
$node = navigation_node::create(get_string('preview', 'quiz'), $url,
navigation_node::TYPE_SETTING, null, 'mod_quiz_preview',
new pix_icon('t/preview', ''));
new pix_icon('i/preview', ''));
$quiznode->add_node($node, $beforekey);
}

View File

@ -590,7 +590,7 @@ class mod_quiz_renderer extends plugin_renderer_base {
$flag = '';
if ($attemptobj->is_question_flagged($slot)) {
$flag = html_writer::empty_tag('img', array('src' => $this->pix_url('i/flagged'),
'alt' => get_string('flagged', 'question'), 'class' => 'questionflag'));
'alt' => get_string('flagged', 'question'), 'class' => 'questionflag icon-post'));
}
if ($attemptobj->can_navigate_to($slot)) {
$row = array(html_writer::link($attemptobj->attempt_url($slot),

View File

@ -242,18 +242,17 @@ abstract class quiz_attempts_report_table extends table_sql {
$flag = '';
if ($stepdata->flagged) {
$flag = ' ' . $OUTPUT->pix_icon('i/flagged', get_string('flagged', 'question'),
$flag = $OUTPUT->pix_icon('i/flagged', get_string('flagged', 'question'),
'moodle', array('class' => 'questionflag'));
}
$feedbackimg = '';
if ($state->is_finished() && $state != question_state::$needsgrading) {
$feedbackimg = ' ' . $this->icon_for_fraction($stepdata->fraction);
$feedbackimg = $this->icon_for_fraction($stepdata->fraction);
}
$output = html_writer::tag('span', html_writer::tag('span',
$data . $feedbackimg . $flag,
array('class' => $state->get_state_class(true))), array('class' => 'que'));
$output = html_writer::tag('span', $feedbackimg . html_writer::tag('span',
$data, array('class' => $state->get_state_class(true))) . $flag, array('class' => 'que'));
$url = new moodle_url('/mod/quiz/reviewquestion.php',
array('attempt' => $attempt->attempt, 'slot' => $slot));
@ -275,11 +274,11 @@ abstract class quiz_attempts_report_table extends table_sql {
$state = question_state::graded_state_for_fraction($fraction);
if ($state == question_state::$gradedright) {
$icon = 'i/tick_green_big';
$icon = 'i/grade_correct';
} else if ($state == question_state::$gradedpartial) {
$icon = 'i/tick_amber_big';
$icon = 'i/grade_partiallycorrect';
} else {
$icon = 'i/cross_red_big';
$icon = 'i/grade_incorrect';
}
return $OUTPUT->pix_icon($icon, get_string($state->get_feedback_class(), 'question'),

View File

@ -127,7 +127,7 @@ table.quizattemptsummary .noreviewmessage {color: gray;}
/** Mod quiz summary **/
#page-mod-quiz-summary #content {text-align: center;}
#page-mod-quiz-summary .questionflag {width: 16px;height: 16px;vertical-align: middle;}
#page-mod-quiz-summary .questionflag { vertical-align: text-bottom; }
#page-mod-quiz-summary #quiz-timer {text-align: center; margin-top: 1em;}
#page-mod-quiz-summary .submitbtns {margin-top: 1.5em;}
@media print {
@ -170,7 +170,8 @@ table.quizreviewsummary td.cell {padding: 1px 1em 1px 0.5em;text-align: left;bac
#page-mod-quiz-report table#attempts.grades span.que,
#page-mod-quiz-report table#attempts span.avgcell {white-space: nowrap;}
#page-mod-quiz-report table#attempts span.que .requiresgrading {white-space: normal;}
#page-mod-quiz-report table#attempts .questionflag {width: 16px; height: 16px; vertical-align: middle;}
#page-mod-quiz-report table#attempts .questionflag { vertical-align: text-bottom; padding-left: 6px; }
.dir-rtl#page-mod-quiz-report table#attempts .questionflag { padding-right: 6px; padding-left: 0; }
#page-mod-quiz-report .graph.flexible-wrap {text-align:center; overflow:auto;}

View File

@ -249,7 +249,7 @@ function resource_get_coursemodule_info($coursemodule) {
}
if ($resource->tobemigrated) {
$info->icon ='i/cross_red_big';
$info->icon ='i/invalid';
return $info;
}
$fs = get_file_storage();

View File

@ -64,23 +64,23 @@ class workshop_scheduled_allocator_form extends workshop_random_allocator_form {
if ($current === false) {
$mform->addElement('static', 'infostatus', get_string('currentstatusexecution', 'workshopallocation_scheduled'),
get_string('resultdisabled', 'workshopallocation_scheduled').' '.
html_writer::empty_tag('img', array('src' => $OUTPUT->pix_url('t/block'))));
html_writer::empty_tag('img', array('src' => $OUTPUT->pix_url('i/invalid'))));
} else {
if (!empty($current->timeallocated)) {
$mform->addElement('static', 'infostatus', get_string('currentstatusexecution', 'workshopallocation_scheduled'),
get_string('currentstatusexecution1', 'workshopallocation_scheduled', $strtimeexecuted).' '.
html_writer::empty_tag('img', array('src' => $OUTPUT->pix_url('i/tick_green_big'))));
html_writer::empty_tag('img', array('src' => $OUTPUT->pix_url('i/valid'))));
if ($current->resultstatus == workshop_allocation_result::STATUS_EXECUTED) {
$strstatus = get_string('resultexecuted', 'workshopallocation_scheduled').' '.
html_writer::empty_tag('img', array('src' => $OUTPUT->pix_url('i/tick_green_big')));
html_writer::empty_tag('img', array('src' => $OUTPUT->pix_url('i/valid')));
} else if ($current->resultstatus == workshop_allocation_result::STATUS_FAILED) {
$strstatus = get_string('resultfailed', 'workshopallocation_scheduled').' '.
html_writer::empty_tag('img', array('src' => $OUTPUT->pix_url('i/cross_red_big')));
html_writer::empty_tag('img', array('src' => $OUTPUT->pix_url('i/invalid')));
} else {
$strstatus = get_string('resultvoid', 'workshopallocation_scheduled').' '.
html_writer::empty_tag('img', array('src' => $OUTPUT->pix_url('i/cross_red_big')));
html_writer::empty_tag('img', array('src' => $OUTPUT->pix_url('i/invalid')));
}
if (!empty($current->resultmessage)) {
@ -91,7 +91,7 @@ class workshop_scheduled_allocator_form extends workshop_random_allocator_form {
if ($current->timeallocated < $workshop->submissionend) {
$mform->addElement('static', 'infoexpected', get_string('currentstatusnext', 'workshopallocation_scheduled'),
get_string('currentstatusexecution2', 'workshopallocation_scheduled', $strtimeexpected).' '.
html_writer::empty_tag('img', array('src' => $OUTPUT->pix_url('i/tick_amber_big'))));
html_writer::empty_tag('img', array('src' => $OUTPUT->pix_url('i/caution'))));
$mform->addHelpButton('infoexpected', 'currentstatusnext', 'workshopallocation_scheduled');
} else {
$mform->addElement('checkbox', 'reenablescheduled', get_string('currentstatusreset', 'workshopallocation_scheduled'),
@ -102,19 +102,19 @@ class workshop_scheduled_allocator_form extends workshop_random_allocator_form {
} else if (empty($current->enabled)) {
$mform->addElement('static', 'infostatus', get_string('currentstatusexecution', 'workshopallocation_scheduled'),
get_string('resultdisabled', 'workshopallocation_scheduled').' '.
html_writer::empty_tag('img', array('src' => $OUTPUT->pix_url('t/block'))));
html_writer::empty_tag('img', array('src' => $OUTPUT->pix_url('i/invalid'))));
} else if ($workshop->phase != workshop::PHASE_SUBMISSION) {
$mform->addElement('static', 'infostatus', get_string('currentstatusexecution', 'workshopallocation_scheduled'),
get_string('resultfailed', 'workshopallocation_scheduled').' '.
html_writer::empty_tag('img', array('src' => $OUTPUT->pix_url('t/block'))).
html_writer::empty_tag('img', array('src' => $OUTPUT->pix_url('i/invalid'))).
html_writer::empty_tag('br').
get_string('resultfailedphase', 'workshopallocation_scheduled'));
} else if (empty($workshop->submissionend)) {
$mform->addElement('static', 'infostatus', get_string('currentstatusexecution', 'workshopallocation_scheduled'),
get_string('resultfailed', 'workshopallocation_scheduled').' '.
html_writer::empty_tag('img', array('src' => $OUTPUT->pix_url('t/block'))).
html_writer::empty_tag('img', array('src' => $OUTPUT->pix_url('i/invalid'))).
html_writer::empty_tag('br').
get_string('resultfaileddeadline', 'workshopallocation_scheduled'));
@ -122,12 +122,12 @@ class workshop_scheduled_allocator_form extends workshop_random_allocator_form {
// next cron will execute it
$mform->addElement('static', 'infostatus', get_string('currentstatusexecution', 'workshopallocation_scheduled'),
get_string('currentstatusexecution4', 'workshopallocation_scheduled').' '.
html_writer::empty_tag('img', array('src' => $OUTPUT->pix_url('i/tick_amber_big'))));
html_writer::empty_tag('img', array('src' => $OUTPUT->pix_url('i/caution'))));
} else {
$mform->addElement('static', 'infostatus', get_string('currentstatusexecution', 'workshopallocation_scheduled'),
get_string('currentstatusexecution3', 'workshopallocation_scheduled', $strtimeexpected).' '.
html_writer::empty_tag('img', array('src' => $OUTPUT->pix_url('i/tick_amber_big'))));
html_writer::empty_tag('img', array('src' => $OUTPUT->pix_url('i/caution'))));
}
}

View File

Before

Width:  |  Height:  |  Size: 313 B

After

Width:  |  Height:  |  Size: 313 B

View File

Before

Width:  |  Height:  |  Size: 777 B

After

Width:  |  Height:  |  Size: 777 B

View File

@ -704,7 +704,7 @@ class question_bank_preview_action_column extends question_bank_action_column_ba
global $OUTPUT;
if (question_has_capability_on($question, 'use')) {
// Build the icon.
$image = $OUTPUT->pix_icon('t/preview', $this->strpreview);
$image = $OUTPUT->pix_icon('t/preview', $this->strpreview, '', array('class' => 'iconsmall'));
$link = $this->qbank->preview_question_url($question);
$action = new popup_action('click', $link, 'questionpreview',

View File

@ -300,7 +300,7 @@ class core_question_renderer extends plugin_renderer_base {
$editurl = new moodle_url('/question/question.php', $params);
return html_writer::tag('div', html_writer::link(
$editurl, $this->pix_icon('i/edit', get_string('edit')) .
$editurl, $this->pix_icon('t/edit', get_string('edit'), '', array('class' => 'iconsmall')) .
get_string('editquestion', 'question')),
array('class' => 'editquestion'));
}

View File

@ -229,16 +229,11 @@ abstract class qtype_renderer extends plugin_renderer_base {
$state = question_state::graded_state_for_fraction($fraction);
if ($state == question_state::$gradedright) {
$icon = 'tick_green';
$icon = 'grade_correct';
} else if ($state == question_state::$gradedpartial) {
$icon = 'tick_amber';
$icon = 'grade_partiallycorrect';
} else {
$icon = 'cross_red';
}
if ($selected) {
$icon .= '_big';
} else {
$icon .= '_small';
$icon = 'grade_incorrect';
}
$attributes = array(

View File

@ -87,6 +87,10 @@
.que .history table {width: 100%;margin: 0;}
.que .history .current {font-weight: bold;}
.que .questioncorrectnessicon { vertical-align: text-bottom; }
.que input.questionflagimage { padding-right: 3px; }
.dir-rtl .que input.questionflagimage { padding-left: 3px; padding-right: 0; }
.importerror {margin-top: 10px;border-bottom: 1px solid #555;}
.mform .que.comment .fitemtitle {width: 20%;}

View File

@ -17,6 +17,10 @@ deprecation:
* c/site: Use i/siteevent instead
* c/user: Use i/userevent instead
* t/clear: Use t/check instead
* i/cross_red_big: Use i/invalid or i/grade_incorrect
* i/tick_green_big: Use i/valid or i/grade_correct
* i/tick_amber_big: Use i/caution or i/grade_partiallycorrect
* No more small versions of i/cross_red_small, i/tick_green_small and i/tick_amber_small, use their big equivalent.
optional changes:
* new optional boolean parameter $withlinks for public function login_info() in lib/outputrenderers.php (MDL-31365)
@ -37,6 +41,8 @@ optional changes:
* new icon t/markasread (12x12) to replace t/clear used in forums.
* new icon t/check (12x12) to replace t/clear which name does not reflect the icon meaning.
* new classes 'icon-pre' and 'icon-post' supposedly to be used when the icon is positioned before or after the text. This is not really used yet, but it's a start towards some standardisation of the icon selectors.
* new icons i/valid, i/caution and i/invalid for generic statuses.
* new icons i/grade_correct, i/grade_partiallycorrect and i/grade_incorrect for grades.
=== 2.3 ===