aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/controllers/calendar/schedule.php12
-rw-r--r--app/views/calendar/schedule/_colour_selector.php2
-rw-r--r--config/config.inc.php.dist66
-rw-r--r--resources/assets/javascripts/lib/fullcalendar.js11
-rw-r--r--resources/assets/stylesheets/mixins/colors.scss5
-rw-r--r--resources/assets/stylesheets/scss/schedule.scss43
-rw-r--r--resources/assets/stylesheets/scss/variables.scss2
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};