diff options
| -rw-r--r-- | app/controllers/calendar/schedule.php | 12 | ||||
| -rw-r--r-- | app/views/calendar/schedule/_colour_selector.php | 2 | ||||
| -rw-r--r-- | config/config.inc.php.dist | 66 | ||||
| -rw-r--r-- | resources/assets/javascripts/lib/fullcalendar.js | 11 | ||||
| -rw-r--r-- | resources/assets/stylesheets/mixins/colors.scss | 5 | ||||
| -rw-r--r-- | resources/assets/stylesheets/scss/schedule.scss | 43 | ||||
| -rw-r--r-- | resources/assets/stylesheets/scss/variables.scss | 2 |
7 files changed, 101 insertions, 40 deletions
diff --git a/app/controllers/calendar/schedule.php b/app/controllers/calendar/schedule.php index f20a640..44391c0 100644 --- a/app/controllers/calendar/schedule.php +++ b/app/controllers/calendar/schedule.php @@ -239,7 +239,7 @@ class Calendar_ScheduleController extends AuthenticatedController ] ); - $event_classes = ['schedule']; + $event_classes = ['schedule', 'course']; $event_title = $cycle_date->course->getFullName('number-name'); if ($course_membership) { @@ -264,8 +264,14 @@ class Calendar_ScheduleController extends AuthenticatedController ['course_name' => $cycle_date->course->getFullName()] ); } + // Add the room, if available: + $room_name = $cycle_date->getMostBookedRoom()?->getFullName() + ?? $cycle_date->getMostUsedFreetextRoomName(); + if ($room_name) { + $event_title .= "\n" . $room_name; + } - $event_icon = ''; + $event_icon = 'seminar'; if ($schedule_course && !$course_membership) { $event_icon = 'tag'; } elseif ($show_hidden && $is_hidden) { @@ -291,7 +297,7 @@ class Calendar_ScheduleController extends AuthenticatedController 'show' => $this->url_for('calendar/schedule/course_info/' . $cycle_date->seminar_id) ], [], - $event_icon ?: '' + Icon::create($event_icon ?: '', Icon::ROLE_INFO)->asImagePath() ); $result[] = $event->toFullcalendarEvent(); diff --git a/app/views/calendar/schedule/_colour_selector.php b/app/views/calendar/schedule/_colour_selector.php index 34758b2..c9cfec1 100644 --- a/app/views/calendar/schedule/_colour_selector.php +++ b/app/views/calendar/schedule/_colour_selector.php @@ -10,7 +10,7 @@ <?= $selected_colour_id === $colour_id ? 'checked' : '' ?> id="colour-<?= htmlReady($colour_id) ?>"> <label for="colour-<?= htmlReady($colour_id) ?>" - style="background-color: <?= htmlReady($data['bgcolor']) ?>;"> + style="background-color: <?= htmlReady($data['border_color']) ?>;"> <span class="colour-id"></span> <span class="checked-icon"><?= Icon::create('accept', Icon::ROLE_INFO) ?></span> </label> diff --git a/config/config.inc.php.dist b/config/config.inc.php.dist index 879ee20..c724ece 100644 --- a/config/config.inc.php.dist +++ b/config/config.inc.php.dist @@ -208,98 +208,98 @@ $TERMIN_TYP[7]=array("name"=>_("Vorlesung"), "sitzung"=>1); $PERS_TERMIN_KAT = [ '1' => [ 'name' => _('Sonstiges'), - 'border_color' => '#682C8B', - 'bgcolor' => '#682C8B', - 'fgcolor' => '#ffffff' + 'border_color' => '#682c8b', + 'bgcolor' => '#c2aad0', + 'fgcolor' => '#000000' ], '2' => [ 'name' => _('Sitzung'), - 'border_color' => '#B02E7C', - 'bgcolor' => '#B02E7C', + 'border_color' => '#af2d7b', + 'bgcolor' => '#dfabca', 'fgcolor' => '#000000' ], '3' => [ 'name' => _('Vorbesprechung'), - 'border_color' => '#D60000', - 'bgcolor' => '#D60000', - 'fgcolor' => '#ffffff' + 'border_color' => '#d60000', + 'bgcolor' => '#ef9999', + 'fgcolor' => '#000000' ], '4' => [ 'name' => _('Klausur'), - 'border_color' => '#F26E00', - 'bgcolor' => '#F26E00', + 'border_color' => '#f26e00', + 'bgcolor' => '#fac599', 'fgcolor' => '#000000' ], '5' => [ 'name' => _('Exkursion'), - 'border_color' => '#FFBD33', - 'bgcolor' => '#FFBD33', + 'border_color' => '#ffbd33', + 'bgcolor' => '#ffe4ad', 'fgcolor' => '#000000' ], '6' => [ 'name' => _('Sondersitzung'), - 'border_color' => '#6EAD10', - 'bgcolor' => '#6EAD10', + 'border_color' => '#6ead10', + 'bgcolor' => '#c5dea0', 'fgcolor' => '#000000' ], '7' => [ 'name' => _('Prüfung'), 'border_color' => '#008512', - 'bgcolor' => '#008512', + 'bgcolor' => '#99cea0', 'fgcolor' => '#000000' ], '8' => [ 'name' => _('Telefonat'), - 'border_color' => '#129C94', - 'bgcolor' => '#129C94', + 'border_color' => '#129c94', + 'bgcolor' => '#a0d7d4', 'fgcolor' => '#000000' ], '9' => [ 'name' => _('Besprechung'), - 'border_color' => '#A85D45', - 'bgcolor' => '#A85D45', + 'border_color' => '#a85d45', + 'bgcolor' => '#dcbeb4', 'fgcolor' => '#000000' ], '10' => [ 'name' => _('Verabredung'), - 'border_color' => '#A480B9', - 'bgcolor' => '#A480B9', + 'border_color' => '#c2aad0', + 'bgcolor' => '#e0d4e7', 'fgcolor' => '#000000' ], '11' => [ 'name' => _('Geburtstag'), - 'border_color' => '#D082B0', - 'bgcolor' => '#D082B0', + 'border_color' => '#dfabca', + 'bgcolor' => '#efd5e4', 'fgcolor' => '#000000' ], '12' => [ 'name' => _('Familie'), - 'border_color' => '#E76666', - 'bgcolor' => '#E76666', + 'border_color' => '#ef9999', + 'bgcolor' => '#f7cccc', 'fgcolor' => '#000000' ], '13' => [ 'name' => _('Urlaub'), - 'border_color' => '#F7A866', - 'bgcolor' => '#F7A866', + 'border_color' => '#fac599', + 'bgcolor' => '#fce2cc', 'fgcolor' => '#000000' ], '14' => [ 'name' => _('Reise'), - 'border_color' => '#FFD785', - 'bgcolor' => '#FFD785', + 'border_color' => '#ffe4ad', + 'bgcolor' => '#fff2d6', 'fgcolor' => '#000000' ], '15' => [ 'name' => _('Vorlesung'), - 'border_color' => '#A8CE70', - 'bgcolor' => '#A8CE70', + 'border_color' => '#c5dea0', + 'bgcolor' => '#e2efcf', 'fgcolor' => '#000000' ], '16' => [ 'name' => _('Videokonferenz'), - 'border_color' => '#8bbd40', - 'bgcolor' => '#8bbd40', + 'border_color' => '#99cea0', + 'bgcolor' => '#cce6cf', 'fgcolor' => '#000000' ] //More categories can be added here. diff --git a/resources/assets/javascripts/lib/fullcalendar.js b/resources/assets/javascripts/lib/fullcalendar.js index 6a0aea3..6633072 100644 --- a/resources/assets/javascripts/lib/fullcalendar.js +++ b/resources/assets/javascripts/lib/fullcalendar.js @@ -594,8 +594,17 @@ class Fullcalendar } if (event.extendedProps.icon) { + //Check if the icon is already an URL or just the name of an icon. + let icon_url = ''; + if (event.extendedProps.icon.includes('://')) { + //The icon already is an URL. + icon_url = event.extendedProps.icon; + } else { + //The icon is just referenced by its name. + icon_url = `${STUDIP.ASSETS_URL}images/icons/${iconColor}/${event.extendedProps.icon}.svg` + } $(eventElement).find('.fc-title').prepend( - $('<img>').attr('src', `${STUDIP.ASSETS_URL}images/icons/${iconColor}/${event.extendedProps.icon}.svg`) + $('<img>').attr('src', icon_url) .css({ verticalAlign: 'text-bottom', marginRight: '3px', diff --git a/resources/assets/stylesheets/mixins/colors.scss b/resources/assets/stylesheets/mixins/colors.scss index c1d5f96..1d94aaa 100644 --- a/resources/assets/stylesheets/mixins/colors.scss +++ b/resources/assets/stylesheets/mixins/colors.scss @@ -326,4 +326,7 @@ $color--info-alternative: mix($color--info, $color--white, 20%); $color-image-placeholder-background: $color--gray-6; -$color-header-inverted: $color--white;
\ No newline at end of file +$color-header-inverted: $color--white; + +// The colour to highlight the current day: +$color--calendar-today: mix($color--attention, $color--white, 10%); diff --git a/resources/assets/stylesheets/scss/schedule.scss b/resources/assets/stylesheets/scss/schedule.scss index 46bec19..c163f42 100644 --- a/resources/assets/stylesheets/scss/schedule.scss +++ b/resources/assets/stylesheets/scss/schedule.scss @@ -18,7 +18,48 @@ form.default.schedule-entry { } .fc.schedule { - .fc-event { + a.fc-event, + td.fc-event { border-left-width: 8px; + font-size: 12px; + + &:not(.course) { + background: none; + } + + .fc-time { + border-bottom: none; + padding-left: 6px; + background: none; + } + + .fc-title { + border-top: none; + padding-left: 6px; + padding-top: 0.25em; + font-weight: bold; + } + } + + .fc-axis.fc-time { + background-color: var(--white); + } + + .fc-day-header, + .fc-widget-header { + background-color: var(--color--table-header); + } + + .fc-day-header { + height: 40px; + vertical-align: middle; + + .fc-today { + background-color: var(--color--gray-5); + } + } + + .fc-body .fc-today { + background-color: var(--color--calendar-today); } } diff --git a/resources/assets/stylesheets/scss/variables.scss b/resources/assets/stylesheets/scss/variables.scss index 9ef3881..2a196d0 100644 --- a/resources/assets/stylesheets/scss/variables.scss +++ b/resources/assets/stylesheets/scss/variables.scss @@ -319,6 +319,8 @@ $button-icons: ( --color--header-inverted: #{$color-header-inverted}; + --color--calendar-today: #{$color--calendar-today}; + --border-radius-default: #{$border-radius}; --border-radius-avatar-menu: #{$border-radius-avatar-menu}; --border-radius-search: #{$border-radius-search}; |
