Skip to content
Snippets Groups Projects
Verified Commit 01cee55f authored by Jonathan Weth's avatar Jonathan Weth :keyboard:
Browse files

Merge branch 'master' into 1107-vue-rework-person-create-edit

parents a74b4067 1cedb62c
Branches
Tags
1 merge request!1594Resolve "Vue: Rework Person Create / Edit"
Pipeline #194992 failed
Showing
with 47 additions and 28 deletions
...@@ -61,6 +61,7 @@ Added ...@@ -61,6 +61,7 @@ Added
* Make configurable which weekdays appear in the calendar * Make configurable which weekdays appear in the calendar
* Introduce .well-known urlpatterns for apps * Introduce .well-known urlpatterns for apps
* Global school term select for limiting data to a specific school term. * Global school term select for limiting data to a specific school term.
* [Dev] Notifications based on calendar alarms.
Changed Changed
~~~~~~~ ~~~~~~~
...@@ -74,7 +75,8 @@ Changed ...@@ -74,7 +75,8 @@ Changed
* Move "Invite person" to persons page * Move "Invite person" to persons page
* Replace all mentions of Redis with Valkey where possible * Replace all mentions of Redis with Valkey where possible
* Show avatars of groups in all places. * Show avatars of groups in all places.
* Use new auth rate limiting settings * Use new auth rate limiting settings
* Bump Python version to 3.10
Fixed Fixed
~~~~~ ~~~~~
......
...@@ -73,7 +73,6 @@ RUN set -e; \ ...@@ -73,7 +73,6 @@ RUN set -e; \
# Define entrypoint, volumes and uWSGI running on port 8000 # Define entrypoint, volumes and uWSGI running on port 8000
EXPOSE 8000 EXPOSE 8000
VOLUME ${ALEKSIS_media__root} ${ALEKSIS_backup__location}
COPY docker-startup.sh /usr/local/bin/aleksis-docker-startup COPY docker-startup.sh /usr/local/bin/aleksis-docker-startup
ENTRYPOINT ["/usr/bin/dumb-init", "--"] ENTRYPOINT ["/usr/bin/dumb-init", "--"]
CMD ["/usr/local/bin/aleksis-docker-startup"] CMD ["/usr/local/bin/aleksis-docker-startup"]
...@@ -111,6 +110,7 @@ RUN chown -R www-data:www-data \ ...@@ -111,6 +110,7 @@ RUN chown -R www-data:www-data \
${ALEKSIS_media__root} \ ${ALEKSIS_media__root} \
${ALEKSIS_backup__location} ${ALEKSIS_backup__location}
USER 33:33 USER 33:33
VOLUME ${ALEKSIS_media__root} ${ALEKSIS_backup__location}
# Additional steps # Additional steps
ONBUILD ARG APPS ONBUILD ARG APPS
......
{ query installedApps {
installedApps { installedApps {
name name
verboseName verboseName
......
query ($name: String!) { query customMenu($name: String!) {
customMenuByName(name: $name) { customMenuByName(name: $name) {
name name
items { items {
......
{ query dynamicRoutes {
dynamicRoutes { dynamicRoutes {
parentRouteName parentRouteName
......
{ query messages {
messages { messages {
tags tags
message message
......
query Ping($payload: String) { query ping($payload: String) {
ping(payload: $payload) ping(payload: $payload)
} }
{ query systemProperties {
systemProperties { systemProperties {
availableLanguages { availableLanguages {
code code
......
{ query oauthAccessTokens {
accessTokens: oauthAccessTokens { accessTokens: oauthAccessTokens {
id id
created created
......
mutation ($ids: [ID]!) { mutation revokeOauthTokens($ids: [ID]!) {
revokeOauthTokens(ids: $ids) { revokeOauthTokens(ids: $ids) {
revokationCount revokationCount
} }
......
query { query calendarFeeds {
calendar { calendar {
allFeedsUrl allFeedsUrl
calendarFeeds { calendarFeeds {
......
mutation ($calendars: [String]!) { mutation setCalendarStatus($calendars: [String]!) {
setCalendarStatus(calendars: $calendars) { setCalendarStatus(calendars: $calendars) {
ok ok
} }
......
query ($taskId: String!) { query celeryProgress($taskId: String!) {
celeryProgressByTaskId(taskId: $taskId) { celeryProgressByTaskId(taskId: $taskId) {
state state
success success
......
{ query celeryProgressByUser {
celeryProgressByUser { celeryProgressByUser {
state state
success success
......
mutation ($taskId: String!) { mutation celeryProgressFetched($taskId: String!) {
celeryProgressFetched(taskId: $taskId) { celeryProgressFetched(taskId: $taskId) {
celeryProgress { celeryProgress {
state state
......
...@@ -59,9 +59,12 @@ import { DateTime } from "luxon"; ...@@ -59,9 +59,12 @@ import { DateTime } from "luxon";
ref="days" ref="days"
> >
<v-list-item-content> <v-list-item-content>
<v-subheader class="text-h6">{{ <v-subheader
$d(date, "dateWithWeekday") class="text-h5 px-2 hover-hash"
}}</v-subheader> @click="gotoDate(date.toISODate())"
>
{{ $d(date, "dateWithWeekday") }}
</v-subheader>
<v-list max-width="100%" class="pt-0 mt-n1"> <v-list max-width="100%" class="pt-0 mt-n1">
<v-list-item <v-list-item
class="px-1" class="px-1"
...@@ -126,6 +129,13 @@ import { DateTime } from "luxon"; ...@@ -126,6 +129,13 @@ import { DateTime } from "luxon";
}} }}
</CRUDIteratorEmptyMessage> </CRUDIteratorEmptyMessage>
</slot> </slot>
<date-select-footer
:value="currentDate"
@input="gotoDate"
@prev="gotoPrev"
@next="gotoNext"
/>
</template> </template>
<template #no-results> <template #no-results>
...@@ -577,12 +587,11 @@ export default { ...@@ -577,12 +587,11 @@ export default {
this.gotoDate(next.toISODate()); this.gotoDate(next.toISODate());
} }
}, },
focus(element, how) { focus(element, how = "smooth") {
// Helper function used to scroll to day group. // Helper function used to scroll to day group.
element.$el.scrollIntoView({ this.$vuetify.goTo(element, {
behavior: how, duration: how === "instant" ? 0 : 400,
block: "start", offset: this.topMargin,
inline: "nearest",
}); });
}, },
}, },
...@@ -601,3 +610,11 @@ export default { ...@@ -601,3 +610,11 @@ export default {
}, },
}; };
</script> </script>
<style scoped>
.hover-hash:hover::before {
position: absolute;
left: -1ch;
content: "#";
}
</style>
mutation ($id: ID!) { mutation markNotificationRead($id: ID!) {
markNotificationRead(id: $id) { markNotificationRead(id: $id) {
notification { notification {
id id
......
{ query myNotifications {
myNotifications: whoAmI { myNotifications: whoAmI {
id id
person { person {
......
query ($id: ID!) { query pdf($id: ID!) {
pdf: pdfById(id: $id) { pdf: pdfById(id: $id) {
file { file {
url url
......
...@@ -101,7 +101,7 @@ ...@@ -101,7 +101,7 @@
</template> </template>
<script> <script>
import { actions, deletePersons } from "./personActions.graphql"; import { personActions, deletePersons } from "./personActions.graphql";
import DeleteDialog from "../generic/dialogs/DeleteDialog.vue"; import DeleteDialog from "../generic/dialogs/DeleteDialog.vue";
export default { export default {
...@@ -115,7 +115,7 @@ export default { ...@@ -115,7 +115,7 @@ export default {
}, },
apollo: { apollo: {
person: { person: {
query: actions, query: personActions,
variables() { variables() {
return { return {
id: this.id, id: this.id,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment