From 36f6390692d360366eba6df516af885f9dabaedb Mon Sep 17 00:00:00 2001 From: Shamim Rezaie Date: Thu, 20 Oct 2022 14:20:01 +1100 Subject: [PATCH] MDL-75423 gradereport_singleview: Replace grade analysis icon with menu --- grade/lib.php | 29 +++++++++++++++++++ .../classes/local/screen/tablelike.php | 2 +- grade/report/singleview/styles.css | 4 --- theme/boost/scss/moodle/grade.scss | 15 ++++++++-- theme/boost/style/moodle.css | 13 +++++++-- theme/classic/style/moodle.css | 13 +++++++-- 6 files changed, 65 insertions(+), 11 deletions(-) diff --git a/grade/lib.php b/grade/lib.php index 72a0cf451d3..9312a832610 100644 --- a/grade/lib.php +++ b/grade/lib.php @@ -1716,6 +1716,35 @@ class grade_structure { ['title' => $title, 'aria-label' => $title]); } + /** + * Returns an action menu for the grade. + * + * @param grade_grade $grade A grade_grade object + * @return string + */ + public function get_grade_action_menu(grade_grade $grade) { + global $OUTPUT; + + $menuitems = []; + + $url = $this->get_grade_analysis_url($grade); + if ($url) { + $title = get_string('gradeanalysis', 'core_grades'); + $menuitems[] = new action_menu_link_secondary($url, null, $title); + } + + if ($menuitems) { + $menu = new action_menu($menuitems); + $icon = $OUTPUT->pix_icon('i/dropdown', get_string('actions')); + $menu->set_menu_trigger($icon, 'btn btn-icon icon-size-2 bg-secondary d-flex align-items-center justify-content-center'); + $menu->set_menu_left(); + + return $OUTPUT->render($menu); + } else { + return ''; + } + } + /** * Returns the grade eid - the grade may not exist yet. * diff --git a/grade/report/singleview/classes/local/screen/tablelike.php b/grade/report/singleview/classes/local/screen/tablelike.php index 87e6586a122..da21784ce4c 100644 --- a/grade/report/singleview/classes/local/screen/tablelike.php +++ b/grade/report/singleview/classes/local/screen/tablelike.php @@ -145,7 +145,7 @@ abstract class tablelike extends screen { $html = new $classname($grade, $tab); if ($field == 'finalgrade' and !empty($this->structure)) { - $html .= $this->structure->get_grade_analysis_icon($grade); + $html .= $this->structure->get_grade_action_menu($grade); } // Singleview users without proper permissions should be presented diff --git a/grade/report/singleview/styles.css b/grade/report/singleview/styles.css index 72aa63f3ec1..5427356fc77 100644 --- a/grade/report/singleview/styles.css +++ b/grade/report/singleview/styles.css @@ -35,10 +35,6 @@ text-align: center; } -.path-grade-report-singleview input[name^="finalgrade"] { - width: 50px; -} - .path-grade-report-singleview .reporttable tbody th, .path-grade-report-singleview .reporttable tbody td.range { white-space: nowrap; diff --git a/theme/boost/scss/moodle/grade.scss b/theme/boost/scss/moodle/grade.scss index 0a6f2fa4f79..6204aaf48ee 100644 --- a/theme/boost/scss/moodle/grade.scss +++ b/theme/boost/scss/moodle/grade.scss @@ -515,8 +515,19 @@ /** * Single view. */ -.path-grade-report-singleview input[name^="finalgrade"] { - width: 80px; +.path-grade-report-singleview .reporttable { + input[name^="finalgrade"] { + width: 80px; + display: inline-block; + } + .action-menu { + display: inline-block; + margin-left: 0.5rem; + float: right; + } + .dropdown-toggle::after { + display: none; + } } .searchresultitemscontainer { diff --git a/theme/boost/style/moodle.css b/theme/boost/style/moodle.css index 1e1bd167ea8..1b17675b013 100644 --- a/theme/boost/style/moodle.css +++ b/theme/boost/style/moodle.css @@ -19702,8 +19702,17 @@ p.arrow_button { /** * Single view. */ -.path-grade-report-singleview input[name^="finalgrade"] { - width: 80px; } +.path-grade-report-singleview .reporttable input[name^="finalgrade"] { + width: 80px; + display: inline-block; } + +.path-grade-report-singleview .reporttable .action-menu { + display: inline-block; + margin-left: 0.5rem; + float: right; } + +.path-grade-report-singleview .reporttable .dropdown-toggle::after { + display: none; } .searchresultitemscontainer { max-height: 150px; diff --git a/theme/classic/style/moodle.css b/theme/classic/style/moodle.css index 0b5b30d126a..90111568f02 100644 --- a/theme/classic/style/moodle.css +++ b/theme/classic/style/moodle.css @@ -19702,8 +19702,17 @@ p.arrow_button { /** * Single view. */ -.path-grade-report-singleview input[name^="finalgrade"] { - width: 80px; } +.path-grade-report-singleview .reporttable input[name^="finalgrade"] { + width: 80px; + display: inline-block; } + +.path-grade-report-singleview .reporttable .action-menu { + display: inline-block; + margin-left: 0.5rem; + float: right; } + +.path-grade-report-singleview .reporttable .dropdown-toggle::after { + display: none; } .searchresultitemscontainer { max-height: 150px;