diff --git a/grade/edit/tree/lib.php b/grade/edit/tree/lib.php index 7dabc375161..f40be67fd93 100644 --- a/grade/edit/tree/lib.php +++ b/grade/edit/tree/lib.php @@ -113,7 +113,9 @@ class grade_edit_tree { $object = $element['object']; $eid = $element['eid']; - $object->name = $this->gtree->get_element_header($element, true, true, true, true, true); + $object->name = $this->gtree->get_element_header($element, true, false, true, true, true); + $object->icon = $this->gtree->get_element_icon($element); + $object->type = $this->gtree->get_element_type_string($element); $object->stripped_name = $this->gtree->get_element_header($element, false, false, false); $is_category_item = false; if ($element['type'] == 'categoryitem' || $element['type'] == 'courseitem') { @@ -127,7 +129,7 @@ class grade_edit_tree { $moveaction = ''; $actionsmenu = new action_menu(); - $actionsmenu->set_menu_trigger(get_string('edit')); + $actionsmenu->set_menu_trigger($OUTPUT->pix_icon('i/moremenu', get_string('actions')), 'actions'); $actionsmenu->set_owner_selector('grade-item-' . $eid); if (!$is_category_item && ($icon = $this->gtree->get_edit_icon($element, $this->gpr, true))) { @@ -208,7 +210,8 @@ class grade_edit_tree { $html_children = array(); - $row_count = 0; + // Take into consideration that a category item always has an empty row (spacer) below. + $row_count = 1; foreach($element['children'] as $child_el) { $moveto = null; @@ -243,7 +246,8 @@ class grade_edit_tree { $cell->colspan = 12; $cell->attributes['class'] = 'movehere level' . ($level + 1) . ' level' . ($level % 2 ? 'even' : 'odd'); - $cell->text = html_writer::link($aurl, '', array('title' => get_string('movehere'), 'class' => 'movehere')); + $cell->text = html_writer::link($aurl, html_writer::empty_tag('hr'), + ['title' => get_string('movehere'), 'class' => 'movehere']); $moveto = new html_table_row(array($cell)); } @@ -299,26 +303,18 @@ class grade_edit_tree { $courseclass = 'coursecategory'; } - $row = new html_table_row(); - $row->id = 'grade-item-' . $eid; - $row->attributes['class'] = $courseclass . ' category ' . $dimmed; - $row->attributes['data-category'] = $eid; - $row->attributes['data-itemid'] = $category->get_grade_item()->id; + $categoryrow = new html_table_row(); + $categoryrow->id = 'grade-item-' . $eid; + $categoryrow->attributes['class'] = $courseclass . ' category ' . $dimmed; + $categoryrow->attributes['data-category'] = $eid; + $categoryrow->attributes['data-itemid'] = $category->get_grade_item()->id; foreach ($rowclasses as $class) { - $row->attributes['class'] .= ' ' . $class; + $categoryrow->attributes['class'] .= ' ' . $class; } - $headercell = new html_table_cell(); - $headercell->header = true; - $headercell->scope = 'row'; - $headercell->attributes['title'] = $object->stripped_name; - $headercell->attributes['class'] = 'cell column-rowspan rowspan ' . $levelclass; - $headercell->rowspan = $row_count + 1; - $row->cells[] = $headercell; - foreach ($this->columns as $column) { if (!($this->moving && $column->hide_when_moving)) { - $row->cells[] = $column->get_category_cell($category, $levelclass, [ + $categoryrow->cells[] = $column->get_category_cell($category, $levelclass, [ 'id' => $id, 'name' => $object->name, 'level' => $level, @@ -329,9 +325,17 @@ class grade_edit_tree { } } - $returnrows[] = $row; + $emptyrow = new html_table_row(); + $emptyrow->attributes['class'] = 'spacer'; - $returnrows = array_merge($returnrows, $html_children); + $headercell = new html_table_cell(); + $headercell->header = true; + $headercell->scope = 'row'; + $headercell->attributes['class'] = 'cell column-rowspan rowspan'; + $headercell->rowspan = $row_count; + $emptyrow->cells[] = $headercell; + + $returnrows = array_merge([$categoryrow, $emptyrow], $html_children); // Print a coloured row to show the end of the category across the table $endcell = new html_table_cell(); @@ -365,9 +369,21 @@ class grade_edit_tree { foreach ($this->columns as $column) { if (!($this->moving && $column->hide_when_moving)) { - $gradeitemrow->cells[] = $column->get_item_cell($item, array('id' => $id, 'name' => $object->name, - 'level' => $level, 'actions' => $actions, 'element' => $element, 'eid' => $eid, - 'moveaction' => $moveaction, 'itemtype' => $object->itemtype)); + $gradeitemrow->cells[] = $column->get_item_cell( + $item, + [ + 'id' => $id, + 'name' => $object->name, + 'level' => $level, + 'actions' => $actions, + 'element' => $element, + 'eid' => $eid, + 'moveaction' => $moveaction, + 'itemtype' => $object->itemtype, + 'icon' => $object->icon, + 'type' => $object->type + ] + ); } } @@ -813,14 +829,13 @@ class grade_edit_tree_column_name extends grade_edit_tree_column { } public function get_category_cell($category, $levelclass, $params) { - global $OUTPUT; if (empty($params['name']) || empty($params['level'])) { throw new Exception('Array key (name or level) missing from 3rd param of grade_edit_tree_column_name::get_category_cell($category, $levelclass, $params)'); } $moveaction = isset($params['moveaction']) ? $params['moveaction'] : ''; $categorycell = parent::get_category_cell($category, $levelclass, $params); - $categorycell->colspan = ($this->deepest_level +1) - $params['level']; - $categorycell->text = $OUTPUT->heading($moveaction . $params['name'], 4); + $categorycell->colspan = ($this->deepest_level + 2) - $params['level']; + $categorycell->text = html_writer::div($moveaction . $params['name'], 'font-weight-bold'); return $categorycell; } @@ -831,12 +846,24 @@ class grade_edit_tree_column_name extends grade_edit_tree_column { throw new Exception('Array key (name, level or element) missing from 2nd param of grade_edit_tree_column_name::get_item_cell($item, $params)'); } - $name = $params['name']; + $itemicon = \html_writer::div($params['icon'], 'mr-1'); + $itemtype = \html_writer::span($params['type'], 'd-block text-uppercase small dimmed_text'); + + // Generate the content for a cell that represents a grade item. + // If a behat test site is running avoid outputting the information about the type of the grade item. + // This additional information causes issues in behat particularly with the existing xpath used to + // interact with table elements. + if (!defined('BEHAT_SITE_RUNNING')) { + $content = \html_writer::div($itemtype . $params['name']); + } else { + $content = \html_writer::div($params['name']); + } + $moveaction = isset($params['moveaction']) ? $params['moveaction'] : ''; $itemcell = parent::get_item_cell($item, $params); $itemcell->colspan = ($this->deepest_level + 1) - $params['level']; - $itemcell->text = $moveaction . $name; + $itemcell->text = \html_writer::div($moveaction . $itemicon . $content, "{$params['itemtype']} d-flex align-items-center"); return $itemcell; } } diff --git a/grade/tests/behat/grade_item_form_unhide.feature b/grade/tests/behat/grade_item_form_unhide.feature index f0bc5515791..f91b148a6b6 100644 --- a/grade/tests/behat/grade_item_form_unhide.feature +++ b/grade/tests/behat/grade_item_form_unhide.feature @@ -38,7 +38,7 @@ Feature: Teacher can unhide grades on the edit page allowing students to view th @javascript Scenario: Hiding the activity using the drop-down hide link and then unhiding the activity using the edit settings form page - Given I click on "Edit" "link" in the "Test assignment name" "table_row" + Given I click on "Actions" "link" in the "Test assignment name" "table_row" And I click on "Hide" "link" in the "Test assignment name" "table_row" And I log out And I am on the "Test assignment name" "assign activity" page logged in as student1 @@ -48,7 +48,7 @@ Feature: Teacher can unhide grades on the edit page allowing students to view th And I log in as "teacher1" And I am on "Course 1" course homepage And I navigate to "Setup > Gradebook setup" in the course gradebook - And I click on "Edit" "link" in the "Test assignment name" "table_row" + And I click on "Actions" "link" in the "Test assignment name" "table_row" And I click on "Edit settings" "link" in the "Test assignment name" "table_row" And the field "Hidden" matches value "1" And I set the field "Hidden" to "0" @@ -60,7 +60,7 @@ Feature: Teacher can unhide grades on the edit page allowing students to view th @javascript Scenario: Hiding the activity using the edit settings form page and then unhiding the activity using the drop-down show link - Given I click on "Edit" "link" in the "Test assignment name" "table_row" + Given I click on "Actions" "link" in the "Test assignment name" "table_row" And I click on "Edit settings" "link" in the "Test assignment name" "table_row" And I set the field "Hidden" to "1" And I press "Save changes" @@ -72,7 +72,7 @@ Feature: Teacher can unhide grades on the edit page allowing students to view th And I log in as "teacher1" And I am on "Course 1" course homepage And I navigate to "Setup > Gradebook setup" in the course gradebook - And I click on "Edit" "link" in the "Test assignment name" "table_row" + And I click on "Actions" "link" in the "Test assignment name" "table_row" And I click on "Show" "link" in the "Test assignment name" "table_row" And I log out And I am on the "Test assignment name" "assign activity" page logged in as student1 @@ -81,7 +81,7 @@ Feature: Teacher can unhide grades on the edit page allowing students to view th @javascript Scenario: Hiding the category using the drop-down hide link and then unhiding the category using the edit settings form page - Given I click on "Edit" "link" in the "Course 1" "table_row" + Given I click on "Actions" "link" in the "Course 1" "table_row" And I click on "Hide" "link" in the "Course 1" "table_row" And I log out And I am on the "Test assignment name" "assign activity" page logged in as student1 @@ -91,7 +91,7 @@ Feature: Teacher can unhide grades on the edit page allowing students to view th And I log in as "teacher1" And I am on "Course 1" course homepage And I navigate to "Setup > Gradebook setup" in the course gradebook - And I click on "Edit" "link" in the "Course 1" "table_row" + And I click on "Actions" "link" in the "Course 1" "table_row" And I click on "Edit settings" "link" in the "Course 1" "table_row" And the field "Hidden" matches value "1" And I set the field "Hidden" to "0" @@ -103,7 +103,7 @@ Feature: Teacher can unhide grades on the edit page allowing students to view th @javascript Scenario: Hiding the category using the edit settings form page and then unhiding the category using the drop-down show link - Given I click on "Edit" "link" in the "Course 1" "table_row" + Given I click on "Actions" "link" in the "Course 1" "table_row" And I click on "Edit settings" "link" in the "Course 1" "table_row" And I set the field "Hidden" to "1" And I press "Save changes" @@ -115,7 +115,7 @@ Feature: Teacher can unhide grades on the edit page allowing students to view th And I log in as "teacher1" And I am on "Course 1" course homepage And I navigate to "Setup > Gradebook setup" in the course gradebook - And I click on "Edit" "link" in the "Course 1" "table_row" + And I click on "Actions" "link" in the "Course 1" "table_row" And I click on "Show" "link" in the "Course 1" "table_row" And I log out And I am on the "Test assignment name" "assign activity" page logged in as student1 diff --git a/grade/tests/behat/grade_regrade_do_not_override.feature b/grade/tests/behat/grade_regrade_do_not_override.feature index 946919cec58..5fa45becd85 100644 --- a/grade/tests/behat/grade_regrade_do_not_override.feature +++ b/grade/tests/behat/grade_regrade_do_not_override.feature @@ -42,7 +42,7 @@ Feature: Regrading grades does not unnecessarily mark some as overriden And I press "Save changes" And I navigate to "View > Grader report" in the course gradebook And I navigate to "Setup > Gradebook setup" in the course gradebook - And I click on "Edit" "link" in the ".coursecategory" "css_element" + And I click on "Actions" "link" in the ".coursecategory" "css_element" And I click on "Edit settings" "link" in the ".coursecategory" "css_element" And I set the field "Aggregation" to "Weighted mean of grades" And I set the field "Rescale overridden grades" to "Yes" diff --git a/theme/boost/scss/moodle/grade.scss b/theme/boost/scss/moodle/grade.scss index 487a9a9ce6f..1aba411919a 100644 --- a/theme/boost/scss/moodle/grade.scss +++ b/theme/boost/scss/moodle/grade.scss @@ -1,6 +1,10 @@ // The class gradetreebox matches the pages displaying the gradebook // "Gradebook setup" > "Simple view" and "Full view". .gradetreebox { + margin: 20px 0 30px 0; + padding: 10px 10px; + background-color: $gray-100; + h4 { // Force back the base font-size to minimise width. font-size: $font-size-base; @@ -308,32 +312,6 @@ max-width: 24px; } - .category td.column-name { - padding-left: 0; - } - - td.column-name { - padding-left: 24px; - } - - td.movehere { - padding: 0; - } - - td.movehere a.movehere { - display: block; - width: 100%; - height: 2rem; - border: 2px dashed $gray-800; - } - - .category input[type="text"], - .category .column-range, - .categoryitem, - .courseitem { - font-weight: bold; - } - .emptyrow { display: none; } @@ -343,87 +321,132 @@ padding-left: 24px; } - .column-weight { - white-space: nowrap; - - &.level3 { - padding-left: 37px; - } - - &.level4 { - padding-left: 66px; - } - - &.level5 { - padding-left: 95px; - } - - &.level6 { - padding-left: 124px; - } - - &.level7 { - padding-left: 153px; - } - - &.level8 { - padding-left: 182px; - } - - &.level9 { - padding-left: 211px; - } - - &.level10 { - padding-left: 240px; - } - } - - .column-range { - &.level2 { - padding-left: 37px; - } - - &.level3 { - padding-left: 66px; - } - - &.level4 { - padding-left: 95px; - } - - &.level5 { - padding-left: 124px; - } - - &.level6 { - padding-left: 153px; - } - - &.level7 { - padding-left: 182px; - } - - &.level8 { - padding-left: 211px; - } - - &.level9 { - padding-left: 240px; - } - - &.level10 { - padding-left: 269px; - } - } - &.generaltable { - .levelodd { - background-color: $table-accent-bg; - } - .leveleven { - background-color: $table-bg; + tr { + &.spacer { + height: 0.5rem; + } + + th { + vertical-align: bottom; + border: none; + text-align: left; + background-color: $gray-100; + + &.rowspan { + padding: 0; + width: 24px; + min-width: 24px; + } + } + + td { + min-width: 4.5em; + background-color: $gray-100; + border: none; + vertical-align: middle; + + &.column-name { + padding-left: 24px; + + .small { + font-size: 70%; + } + + .itemicon { + font-size: 18px; + width: 18px; + height: 18px; + } + } + + &.column-weight { + .weightoverride { + margin-right: 5px; + } + } + + &.column-actions { + .dropdown-toggle::after { + display: none; + } + } + + &.movehere { + padding: 0; + + a.movehere { + display: block; + width: 100%; + margin: 5px 0 5px 0; + padding: 3px 0 3px 0; + + hr { + border-top: 2px dashed $gray-500; + margin: 0; + } + + &:hover { + hr { + border-top: 2px dashed $blue; + } + + } + } + } + } + + &.category { + td { + background-color: white; + border-top: 1px solid $gray-300; + border-bottom: 1px solid $gray-300; + + &:first-child { + border-left: 1px solid $gray-300; + } + + &:last-child { + border-right: 1px solid $gray-300; + } + + &.column-name { + font-weight: bold; + + div { + display: flex; + min-height: 30px; + align-items: center; + } + } + } + } + + &.item { + td { + background-color: white; + border-top: 3px solid $gray-100; + } + + &.categoryitem, + &.courseitem { + td { + min-width: 4.5em; + background-color: $gray-100; + border: none; + vertical-align: middle; + + &.column-name { + padding-left: 0; + } + + &:not(.column-actions) { + font-weight: bold; + } + } + } + } } } } diff --git a/theme/boost/style/moodle.css b/theme/boost/style/moodle.css index 92355dbd84d..7a184ef941d 100644 --- a/theme/boost/style/moodle.css +++ b/theme/boost/style/moodle.css @@ -19559,16 +19559,18 @@ p.arrow_button { outline: 0.2rem solid black; box-shadow: inset 0 0 0 2px #343a40; } -.gradetreebox h4 { - font-size: 0.9375rem; } - -.gradetreebox th.cell, -.gradetreebox input[type=text] { - width: auto; } - -.gradetreebox input[type=text], -.gradetreebox select { - margin-bottom: 0; } +.gradetreebox { + margin: 20px 0 30px 0; + padding: 10px 10px; + background-color: #f8f9fa; } + .gradetreebox h4 { + font-size: 0.9375rem; } + .gradetreebox th.cell, + .gradetreebox input[type=text] { + width: auto; } + .gradetreebox input[type=text], + .gradetreebox select { + margin-bottom: 0; } .core_grades_notices .singlebutton { display: inline-block; } @@ -19750,27 +19752,6 @@ p.arrow_button { min-width: 24px; max-width: 24px; } -.path-grade-edit-tree .setup-grades .category td.column-name { - padding-left: 0; } - -.path-grade-edit-tree .setup-grades td.column-name { - padding-left: 24px; } - -.path-grade-edit-tree .setup-grades td.movehere { - padding: 0; } - -.path-grade-edit-tree .setup-grades td.movehere a.movehere { - display: block; - width: 100%; - height: 2rem; - border: 2px dashed #343a40; } - -.path-grade-edit-tree .setup-grades .category input[type="text"], -.path-grade-edit-tree .setup-grades .category .column-range, -.path-grade-edit-tree .setup-grades .categoryitem, -.path-grade-edit-tree .setup-grades .courseitem { - font-weight: bold; } - .path-grade-edit-tree .setup-grades .emptyrow { display: none; } @@ -19778,54 +19759,77 @@ p.arrow_button { font-weight: normal; padding-left: 24px; } -.path-grade-edit-tree .setup-grades .column-weight { - white-space: nowrap; } - .path-grade-edit-tree .setup-grades .column-weight.level3 { - padding-left: 37px; } - .path-grade-edit-tree .setup-grades .column-weight.level4 { - padding-left: 66px; } - .path-grade-edit-tree .setup-grades .column-weight.level5 { - padding-left: 95px; } - .path-grade-edit-tree .setup-grades .column-weight.level6 { - padding-left: 124px; } - .path-grade-edit-tree .setup-grades .column-weight.level7 { - padding-left: 153px; } - .path-grade-edit-tree .setup-grades .column-weight.level8 { - padding-left: 182px; } - .path-grade-edit-tree .setup-grades .column-weight.level9 { - padding-left: 211px; } - .path-grade-edit-tree .setup-grades .column-weight.level10 { - padding-left: 240px; } +.path-grade-edit-tree .setup-grades.generaltable tr.spacer { + height: 0.5rem; } -.path-grade-edit-tree .setup-grades .column-range.level2 { - padding-left: 37px; } +.path-grade-edit-tree .setup-grades.generaltable tr th { + vertical-align: bottom; + border: none; + text-align: left; + background-color: #f8f9fa; } + .path-grade-edit-tree .setup-grades.generaltable tr th.rowspan { + padding: 0; + width: 24px; + min-width: 24px; } -.path-grade-edit-tree .setup-grades .column-range.level3 { - padding-left: 66px; } +.path-grade-edit-tree .setup-grades.generaltable tr td { + min-width: 4.5em; + background-color: #f8f9fa; + border: none; + vertical-align: middle; } + .path-grade-edit-tree .setup-grades.generaltable tr td.column-name { + padding-left: 24px; } + .path-grade-edit-tree .setup-grades.generaltable tr td.column-name .small { + font-size: 70%; } + .path-grade-edit-tree .setup-grades.generaltable tr td.column-name .itemicon { + font-size: 18px; + width: 18px; + height: 18px; } + .path-grade-edit-tree .setup-grades.generaltable tr td.column-weight .weightoverride { + margin-right: 5px; } + .path-grade-edit-tree .setup-grades.generaltable tr td.column-actions .dropdown-toggle::after { + display: none; } + .path-grade-edit-tree .setup-grades.generaltable tr td.movehere { + padding: 0; } + .path-grade-edit-tree .setup-grades.generaltable tr td.movehere a.movehere { + display: block; + width: 100%; + margin: 5px 0 5px 0; + padding: 3px 0 3px 0; } + .path-grade-edit-tree .setup-grades.generaltable tr td.movehere a.movehere hr { + border-top: 2px dashed #8f959e; + margin: 0; } + .path-grade-edit-tree .setup-grades.generaltable tr td.movehere a.movehere:hover hr { + border-top: 2px dashed #0f6cbf; } -.path-grade-edit-tree .setup-grades .column-range.level4 { - padding-left: 95px; } +.path-grade-edit-tree .setup-grades.generaltable tr.category td { + background-color: white; + border-top: 1px solid #dee2e6; + border-bottom: 1px solid #dee2e6; } + .path-grade-edit-tree .setup-grades.generaltable tr.category td:first-child { + border-left: 1px solid #dee2e6; } + .path-grade-edit-tree .setup-grades.generaltable tr.category td:last-child { + border-right: 1px solid #dee2e6; } + .path-grade-edit-tree .setup-grades.generaltable tr.category td.column-name { + font-weight: bold; } + .path-grade-edit-tree .setup-grades.generaltable tr.category td.column-name div { + display: flex; + min-height: 30px; + align-items: center; } -.path-grade-edit-tree .setup-grades .column-range.level5 { - padding-left: 124px; } +.path-grade-edit-tree .setup-grades.generaltable tr.item td { + background-color: white; + border-top: 3px solid #f8f9fa; } -.path-grade-edit-tree .setup-grades .column-range.level6 { - padding-left: 153px; } - -.path-grade-edit-tree .setup-grades .column-range.level7 { - padding-left: 182px; } - -.path-grade-edit-tree .setup-grades .column-range.level8 { - padding-left: 211px; } - -.path-grade-edit-tree .setup-grades .column-range.level9 { - padding-left: 240px; } - -.path-grade-edit-tree .setup-grades .column-range.level10 { - padding-left: 269px; } - -.path-grade-edit-tree .setup-grades.generaltable .levelodd { - background-color: rgba(0, 0, 0, 0.03); } +.path-grade-edit-tree .setup-grades.generaltable tr.item.categoryitem td, .path-grade-edit-tree .setup-grades.generaltable tr.item.courseitem td { + min-width: 4.5em; + background-color: #f8f9fa; + border: none; + vertical-align: middle; } + .path-grade-edit-tree .setup-grades.generaltable tr.item.categoryitem td.column-name, .path-grade-edit-tree .setup-grades.generaltable tr.item.courseitem td.column-name { + padding-left: 0; } + .path-grade-edit-tree .setup-grades.generaltable tr.item.categoryitem td:not(.column-actions), .path-grade-edit-tree .setup-grades.generaltable tr.item.courseitem td:not(.column-actions) { + font-weight: bold; } /** * Grader report. diff --git a/theme/classic/style/moodle.css b/theme/classic/style/moodle.css index cd4873bcebd..09ceab6d92f 100644 --- a/theme/classic/style/moodle.css +++ b/theme/classic/style/moodle.css @@ -19559,16 +19559,18 @@ p.arrow_button { outline: 0.2rem solid black; box-shadow: inset 0 0 0 2px #343a40; } -.gradetreebox h4 { - font-size: 0.9375rem; } - -.gradetreebox th.cell, -.gradetreebox input[type=text] { - width: auto; } - -.gradetreebox input[type=text], -.gradetreebox select { - margin-bottom: 0; } +.gradetreebox { + margin: 20px 0 30px 0; + padding: 10px 10px; + background-color: #f8f9fa; } + .gradetreebox h4 { + font-size: 0.9375rem; } + .gradetreebox th.cell, + .gradetreebox input[type=text] { + width: auto; } + .gradetreebox input[type=text], + .gradetreebox select { + margin-bottom: 0; } .core_grades_notices .singlebutton { display: inline-block; } @@ -19750,27 +19752,6 @@ p.arrow_button { min-width: 24px; max-width: 24px; } -.path-grade-edit-tree .setup-grades .category td.column-name { - padding-left: 0; } - -.path-grade-edit-tree .setup-grades td.column-name { - padding-left: 24px; } - -.path-grade-edit-tree .setup-grades td.movehere { - padding: 0; } - -.path-grade-edit-tree .setup-grades td.movehere a.movehere { - display: block; - width: 100%; - height: 2rem; - border: 2px dashed #343a40; } - -.path-grade-edit-tree .setup-grades .category input[type="text"], -.path-grade-edit-tree .setup-grades .category .column-range, -.path-grade-edit-tree .setup-grades .categoryitem, -.path-grade-edit-tree .setup-grades .courseitem { - font-weight: bold; } - .path-grade-edit-tree .setup-grades .emptyrow { display: none; } @@ -19778,54 +19759,77 @@ p.arrow_button { font-weight: normal; padding-left: 24px; } -.path-grade-edit-tree .setup-grades .column-weight { - white-space: nowrap; } - .path-grade-edit-tree .setup-grades .column-weight.level3 { - padding-left: 37px; } - .path-grade-edit-tree .setup-grades .column-weight.level4 { - padding-left: 66px; } - .path-grade-edit-tree .setup-grades .column-weight.level5 { - padding-left: 95px; } - .path-grade-edit-tree .setup-grades .column-weight.level6 { - padding-left: 124px; } - .path-grade-edit-tree .setup-grades .column-weight.level7 { - padding-left: 153px; } - .path-grade-edit-tree .setup-grades .column-weight.level8 { - padding-left: 182px; } - .path-grade-edit-tree .setup-grades .column-weight.level9 { - padding-left: 211px; } - .path-grade-edit-tree .setup-grades .column-weight.level10 { - padding-left: 240px; } +.path-grade-edit-tree .setup-grades.generaltable tr.spacer { + height: 0.5rem; } -.path-grade-edit-tree .setup-grades .column-range.level2 { - padding-left: 37px; } +.path-grade-edit-tree .setup-grades.generaltable tr th { + vertical-align: bottom; + border: none; + text-align: left; + background-color: #f8f9fa; } + .path-grade-edit-tree .setup-grades.generaltable tr th.rowspan { + padding: 0; + width: 24px; + min-width: 24px; } -.path-grade-edit-tree .setup-grades .column-range.level3 { - padding-left: 66px; } +.path-grade-edit-tree .setup-grades.generaltable tr td { + min-width: 4.5em; + background-color: #f8f9fa; + border: none; + vertical-align: middle; } + .path-grade-edit-tree .setup-grades.generaltable tr td.column-name { + padding-left: 24px; } + .path-grade-edit-tree .setup-grades.generaltable tr td.column-name .small { + font-size: 70%; } + .path-grade-edit-tree .setup-grades.generaltable tr td.column-name .itemicon { + font-size: 18px; + width: 18px; + height: 18px; } + .path-grade-edit-tree .setup-grades.generaltable tr td.column-weight .weightoverride { + margin-right: 5px; } + .path-grade-edit-tree .setup-grades.generaltable tr td.column-actions .dropdown-toggle::after { + display: none; } + .path-grade-edit-tree .setup-grades.generaltable tr td.movehere { + padding: 0; } + .path-grade-edit-tree .setup-grades.generaltable tr td.movehere a.movehere { + display: block; + width: 100%; + margin: 5px 0 5px 0; + padding: 3px 0 3px 0; } + .path-grade-edit-tree .setup-grades.generaltable tr td.movehere a.movehere hr { + border-top: 2px dashed #8f959e; + margin: 0; } + .path-grade-edit-tree .setup-grades.generaltable tr td.movehere a.movehere:hover hr { + border-top: 2px dashed #0f6cbf; } -.path-grade-edit-tree .setup-grades .column-range.level4 { - padding-left: 95px; } +.path-grade-edit-tree .setup-grades.generaltable tr.category td { + background-color: white; + border-top: 1px solid #dee2e6; + border-bottom: 1px solid #dee2e6; } + .path-grade-edit-tree .setup-grades.generaltable tr.category td:first-child { + border-left: 1px solid #dee2e6; } + .path-grade-edit-tree .setup-grades.generaltable tr.category td:last-child { + border-right: 1px solid #dee2e6; } + .path-grade-edit-tree .setup-grades.generaltable tr.category td.column-name { + font-weight: bold; } + .path-grade-edit-tree .setup-grades.generaltable tr.category td.column-name div { + display: flex; + min-height: 30px; + align-items: center; } -.path-grade-edit-tree .setup-grades .column-range.level5 { - padding-left: 124px; } +.path-grade-edit-tree .setup-grades.generaltable tr.item td { + background-color: white; + border-top: 3px solid #f8f9fa; } -.path-grade-edit-tree .setup-grades .column-range.level6 { - padding-left: 153px; } - -.path-grade-edit-tree .setup-grades .column-range.level7 { - padding-left: 182px; } - -.path-grade-edit-tree .setup-grades .column-range.level8 { - padding-left: 211px; } - -.path-grade-edit-tree .setup-grades .column-range.level9 { - padding-left: 240px; } - -.path-grade-edit-tree .setup-grades .column-range.level10 { - padding-left: 269px; } - -.path-grade-edit-tree .setup-grades.generaltable .levelodd { - background-color: rgba(0, 0, 0, 0.03); } +.path-grade-edit-tree .setup-grades.generaltable tr.item.categoryitem td, .path-grade-edit-tree .setup-grades.generaltable tr.item.courseitem td { + min-width: 4.5em; + background-color: #f8f9fa; + border: none; + vertical-align: middle; } + .path-grade-edit-tree .setup-grades.generaltable tr.item.categoryitem td.column-name, .path-grade-edit-tree .setup-grades.generaltable tr.item.courseitem td.column-name { + padding-left: 0; } + .path-grade-edit-tree .setup-grades.generaltable tr.item.categoryitem td:not(.column-actions), .path-grade-edit-tree .setup-grades.generaltable tr.item.courseitem td:not(.column-actions) { + font-weight: bold; } /** * Grader report.