Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Changes from our SA #90

Merged
merged 40 commits into from
Jan 29, 2025
Merged
Show file tree
Hide file tree
Changes from 25 commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
e2b5ab8
Update ci.yml
StefanieJaeger Sep 18, 2024
ed4dbbc
Update CNAME
StefanieJaeger Sep 18, 2024
ab4d4da
Merge branch 'lost-university:main' into main
StefanieJaeger Nov 15, 2024
c0a3184
Add link to Studienordnung (#3)
StefanieJaeger Nov 20, 2024
98f9d5e
Show other number or check (#4)
StefanieJaeger Nov 20, 2024
6926cbe
Always show semester number (#5)
captainwuushuu Nov 20, 2024
4562300
Use tailwind classes for modules and categories (#6)
StefanieJaeger Nov 20, 2024
78cffba
Add Module from Focus or Category (#2)
StefanieJaeger Nov 20, 2024
025d8b5
Add plan validation (#7)
StefanieJaeger Nov 29, 2024
3b50fd1
Enrich search with more styling (#8)
StefanieJaeger Nov 29, 2024
740d4f0
Give option to add accredited modules outside a semester (#9)
StefanieJaeger Dec 4, 2024
480fc76
Fix bug (#12)
StefanieJaeger Dec 6, 2024
6da4af7
Fix search problem with duplicate module names (#11)
StefanieJaeger Dec 6, 2024
6f11517
Fix styling of global validation info (#14)
StefanieJaeger Dec 6, 2024
6d2518f
Improve modal for Übertrittsmodule
StefanieJaeger Jan 4, 2025
f7fb0d6
Show duplicate error for successor or predecessor
StefanieJaeger Jan 4, 2025
827cf48
Show successor in tooltip for inactive module
StefanieJaeger Jan 4, 2025
01ba005
Use new data
StefanieJaeger Jan 4, 2025
344c369
Handle unknown term
StefanieJaeger Jan 4, 2025
b237c02
Disable inactive modules for future semesters in search
StefanieJaeger Jan 15, 2025
fd43fb0
Show only available modules for focus
StefanieJaeger Jan 15, 2025
5e2e4ff
Lint
StefanieJaeger Jan 15, 2025
ad62365
Move toggle on mobile
StefanieJaeger Jan 15, 2025
8ca1220
Fix display of toggle on mobile
StefanieJaeger Jan 15, 2025
3315ca2
Update type of successorModuleId and predecessorModuleId
StefanieJaeger Jan 15, 2025
514fdfa
Revert changes to CI config
StefanieJaeger Jan 18, 2025
91a96dc
Fix typo
StefanieJaeger Jan 18, 2025
4bdf214
Add Laura Thoma to footer
StefanieJaeger Jan 18, 2025
d1f60fd
Remove forced width
StefanieJaeger Jan 25, 2025
85b58a9
Make hover-title visible on mobile
StefanieJaeger Jan 25, 2025
0368f62
Add footer
StefanieJaeger Jan 25, 2025
b757063
Run linter
StefanieJaeger Jan 25, 2025
dd64037
Improve hover effects in module search
jeremystucki Jan 25, 2025
82c1d24
Lint
StefanieJaeger Jan 29, 2025
cfe5cb4
Update data base-url
jeremystucki Jan 29, 2025
9743056
Update banner formatting
jeremystucki Jan 29, 2025
fb4c1f6
Work on making the categories more responsive
jeremystucki Jan 29, 2025
0ef6a4a
Adjust width
StefanieJaeger Jan 29, 2025
12fe531
Fix structure of categories
StefanieJaeger Jan 29, 2025
80e64b7
Reduce padding on categories
StefanieJaeger Jan 29, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: CI
on: [push, pull_request]
on: [push, pull_request, workflow_dispatch]
jobs:

build:
Expand Down
2 changes: 1 addition & 1 deletion CNAME
Original file line number Diff line number Diff line change
@@ -1 +1 @@
lost.university
sa.lost.university
57 changes: 56 additions & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 4 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,15 @@
"@fortawesome/fontawesome-free": "^6.5.1",
"@fortawesome/fontawesome-svg-core": "^6.5.1",
"@fortawesome/free-brands-svg-icons": "^6.5.1",
"@fortawesome/free-solid-svg-icons": "^6.5.1",
"@fortawesome/free-regular-svg-icons": "^6.5.1",
"@fortawesome/free-solid-svg-icons": "^6.5.1",
"@fortawesome/vue-fontawesome": "^3.0.5",
"@headlessui/vue": "^1.7.23",
"bulma": "^0.9.3",
"vue": "^3.2.47",
"vue-router": "^4.1.6",
"vuedraggable": "^4.1.0"
"vuedraggable": "^4.1.0",
"vuex": "^4.0.2"
},
"devDependencies": {
"@types/node": "^20.3.3",
Expand Down
71 changes: 71 additions & 0 deletions src/components/AccreditedModuleBadge.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
<template>
<div
class="relative flex justify-between px-4 rounded text-white group/module"
:class="computedClasses"
:title="tooltip"
>
<div class="grid grid-cols-[minmax(0,_auto)_auto_auto] gap-2">
<span class="">{{ accreditedModule.name }}</span>
<span>-</span>
<span>{{ accreditedModule.ects }}</span>
</div>
<div>
<button
class="absolute opacity-0 touch-only:opacity-75 group-hover/module:opacity-75
hover:!opacity-100 right-2 transition-opacity duration-75"
type="button"
@click="removeModule"
>
<font-awesome-icon
:icon="['fa', 'circle-xmark']"
size="lg"
/>
</button>
</div>
</div>
</template>

<script lang="ts">
import { defineComponent, type PropType } from 'vue';
import type { AccreditedModule } from '../helpers/types';
import { getColorClassForPrioritizedCategory } from '../helpers/color-helper';
import { store } from '../helpers/store';

export default defineComponent({
name: 'AccreditedModuleBadge',
props: {
accreditedModule: {
type: Object as PropType<AccreditedModule>,
required: true,
}
},
emits: ['on-remove-clicked'],
computed: {
computedClasses() {
const classes = [this.getColorClassForPrioritizedCategory(this.accreditedModule.categoryIds)];
if(this.accreditedModule.validationInfo) {
classes.push(...['border-red-500', 'border-4']);
} else {
classes.push('p-[4px]');
}
return classes;
},
tooltip() {
if(this.accreditedModule.validationInfo) {
return this.accreditedModule.validationInfo.tooltip;
}

const categoryNames = this.accreditedModule.categoryIds
.map(id => store.getters.categories.find(c => c.id === id)?.name)
.join(', ');
return `${this.accreditedModule.name} - ${this.accreditedModule.ects} - ${categoryNames}`;
}
},
methods: {
getColorClassForPrioritizedCategory,
removeModule() {
this.$emit('on-remove-clicked');
}
}
});
</script>
54 changes: 54 additions & 0 deletions src/components/AccreditedModules.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
<template>
<div class="grid grid-cols-[min-content_auto] gap-2">
<div class="grid grid-rows-2">
<div class="flex">
Übertrittsmodule
<font-awesome-icon
:icon="['fa', 'circle-question']"
class="ml-2"
title="Für im SLCM als 'Übertritt' gekennzeichnete Module"
/>
</div>
<AccreditedModulesModal />
</div>
<div
v-if="accreditedModules.length"
class="flex flex-wrap"
>
<div
v-for="accreditedModule in accreditedModules"
:key="accreditedModule"
class="mr-2 mb-2"
>
<AccreditedModuleBadge
:accredited-module="accreditedModule"
@on-remove-clicked="removeAccreditedModule(accreditedModule)"
/>
</div>
</div>
</div>
</template>

<script lang="ts">
import { defineComponent } from 'vue';
import { mapGetters } from 'vuex';
import AccreditedModulesModal from './AccreditedModulesModal.vue';
import AccreditedModuleBadge from './AccreditedModuleBadge.vue';
import { store } from '../helpers/store';
import { StorageHelper } from '../helpers/storage-helper';
import type { AccreditedModule } from '../helpers/types';

export default defineComponent({
name: 'AccreditedModules',
components: { AccreditedModulesModal, AccreditedModuleBadge },
computed: {
...mapGetters(['accreditedModules']),
},
methods: {
removeAccreditedModule(accreditedModule: AccreditedModule) {
store.commit('removeAccreditedModule', accreditedModule);
StorageHelper.updateUrlFragment();
}
}
});
</script>
Loading
Loading