diff options
| author | David Siegfried <david.siegfried@uni-vechta.de> | 2022-09-30 08:29:51 +0000 |
|---|---|---|
| committer | David Siegfried <david.siegfried@uni-vechta.de> | 2022-09-30 08:29:51 +0000 |
| commit | ff24292c8f72dfba0c8e7c5bf275c82f5901008d (patch) | |
| tree | ec8c0befcdee69059a2555176a5eb38a2ab8eff3 /lib/classes/sidebar/CourseManagementSelectWidget.php | |
| parent | e6fea248e6b166bff7811a2dd4f0a836c3fbf3b6 (diff) | |
replace course-filter in course-management and add order function, closes #1583
Closes #1583
Merge request studip/studip!1013
Diffstat (limited to 'lib/classes/sidebar/CourseManagementSelectWidget.php')
| -rw-r--r-- | lib/classes/sidebar/CourseManagementSelectWidget.php | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/lib/classes/sidebar/CourseManagementSelectWidget.php b/lib/classes/sidebar/CourseManagementSelectWidget.php new file mode 100644 index 0000000..3973502 --- /dev/null +++ b/lib/classes/sidebar/CourseManagementSelectWidget.php @@ -0,0 +1,47 @@ +<?php + +class CourseManagementSelectWidget extends SelectWidget +{ + public $course = null; + public $order_by_field; + + public function __construct() + { + parent::__construct(_('Veranstaltungen'), '?#admin_top_links', 'cid'); + + $this->course = Course::findCurrent(); + $this->order_by_field = UserConfig::get($GLOBALS['user']->id)->COURSE_MANAGEMENT_SELECTOR_ORDER_BY ?? 'name'; + } + + public function render($variables = []) + { + $extra = sprintf( + '<a href="%s" title="%s" data-dialog="size=auto">%s</a>', + URLHelper::getURL('dispatch.php/course/management/order_settings', ['cid' => $this->course->id, 'from' => Request::url()]), + _('Sortiereinstellungen'), + Icon::create('settings') + ); + $this->setExtra($extra); + $this->class = 'nested-select'; + $this->setDropdownAutoWidth(true); + $seminars = AdminCourseFilter::get()->getCoursesForAdminWidget($this->order_by_field); + foreach ($seminars as $seminar) { + if ($this->order_by_field === 'number') { + $seminar_name = trim($seminar['VeranstaltungsNummer'] . ' ' . $seminar['Name']); + } else { + $seminar_name = $seminar['Name']; + + if ($seminar['VeranstaltungsNummer']) { + $seminar_name .= sprintf(' (%s)', trim($seminar['VeranstaltungsNummer'])); + } + } + $this->addElement(new SelectElement( + $seminar['Seminar_id'], + $seminar_name, + $seminar['Seminar_id'] === $this->course->id, + trim($seminar['VeranstaltungsNummer'] . ' ' . $seminar['Name']) + )); + } + return parent::render($variables); + } +} |
