From 6143123eb99ab2a114dba27da8eb10faa7af30ae Mon Sep 17 00:00:00 2001
From: Julian Leucker <leuckerj@gmail.com>
Date: Mon, 1 Jul 2024 16:41:29 +0200
Subject: [PATCH] Remove tardiness note

---
 .../personal_notes/TardinessNote.vue          | 173 ------------------
 1 file changed, 173 deletions(-)
 delete mode 100644 aleksis/apps/alsijil/frontend/components/coursebook/personal_notes/TardinessNote.vue

diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/personal_notes/TardinessNote.vue b/aleksis/apps/alsijil/frontend/components/coursebook/personal_notes/TardinessNote.vue
deleted file mode 100644
index 5b9afc789..000000000
--- a/aleksis/apps/alsijil/frontend/components/coursebook/personal_notes/TardinessNote.vue
+++ /dev/null
@@ -1,173 +0,0 @@
-<script>
-import {
-  createPersonalNotes,
-  deletePersonalNotes,
-  updatePersonalNotes,
-} from "./personal_notes.graphql";
-import { DateTime } from "luxon";
-import personalNoteRelatedMixin from "./personalNoteRelatedMixin";
-import mutateMixin from "aleksis.core/mixins/mutateMixin.js";
-import DeleteDialog from "aleksis.core/components/generic/dialogs/DeleteDialog.vue";
-import PositiveSmallIntegerField from "aleksis.core/components/generic/forms/PositiveSmallIntegerField.vue";
-
-export default {
-  name: "TardinessNote",
-  components: { DeleteDialog, PositiveSmallIntegerField },
-  mixins: [mutateMixin, personalNoteRelatedMixin],
-  computed: {
-    value() {
-      return this.participation.noteWithTardiness;
-    },
-    lessonLength() {
-      const lessonStart = DateTime.fromISO(this.documentation.datetimeStart);
-      const lessonEnd = DateTime.fromISO(this.documentation.datetimeEnd);
-
-      let diff = lessonEnd.diff(lessonStart, "minutes");
-      return diff.toObject().minutes;
-    },
-    model: {
-      get() {
-        return this.value?.tardiness;
-      },
-      set(newValue) {
-        if (!newValue) {
-          // this is a DELETE action, show the dialog, ...
-          this.showDeleteConfirm = true;
-          return;
-        }
-        const create = !this.value?.id;
-
-        this.mutate(
-          create ? createPersonalNotes : updatePersonalNotes,
-          this.getInput(
-            newValue,
-            create
-              ? {
-                  documentation: this.documentation.id,
-                  person: this.participation.person.id,
-                }
-              : {
-                  id: this.value.id,
-                },
-          ),
-          this.getUpdater(create ? "create" : "update"),
-        );
-      },
-    },
-  },
-  methods: {
-    getInput(newValue, extras) {
-      return {
-        input: [
-          {
-            tardiness: newValue,
-            ...extras,
-          },
-        ],
-      };
-    },
-    getUpdater(mode) {
-      return (storedDocumentations, incomingPersonalNotes) => {
-        const note = incomingPersonalNotes?.[0] || undefined;
-        const documentation = storedDocumentations.find(
-          (doc) => doc.id === this.documentation.id,
-        );
-        const participationStatus = documentation.participations.find(
-          (part) => part.id === this.participation.id,
-        );
-        switch (mode.toLowerCase()) {
-          case "update": {
-            const oldNote = participationStatus.noteWithTardiness;
-            participationStatus.noteWithTardiness = {
-              ...oldNote,
-              ...note,
-            };
-            break;
-          }
-          case "delete": {
-            participationStatus.noteWithTardiness = null;
-            break;
-          }
-
-          case "create":
-            participationStatus.noteWithTardiness = note;
-            break;
-
-          default:
-            console.error("Invalid mode in getUpdater():", mode);
-            break;
-        }
-
-        return storedDocumentations;
-      };
-    },
-    lessonLengthRule(time) {
-      return (
-        time == null ||
-        time <= this.lessonLength ||
-        this.$t("alsijil.personal_notes.lesson_length_exceeded")
-      );
-    },
-  },
-  data() {
-    return {
-      showDeleteConfirm: false,
-      deletePersonalNotes,
-    };
-  },
-};
-</script>
-
-<template>
-  <positive-small-integer-field
-    outlined
-    class="mt-1"
-    prepend-inner-icon="mdi-clock-alert-outline"
-    :suffix="$t('time.minutes')"
-    :label="$t('alsijil.personal_notes.tardiness')"
-    :rules="[lessonLengthRule]"
-    :value="model"
-    @change="model = $event"
-    :loading="loading"
-  >
-    <template #append>
-      <v-slide-x-reverse-transition>
-        <v-btn
-          v-if="!!model"
-          icon
-          @click="showDeleteConfirm = true"
-          class="mt-n1-5"
-        >
-          <v-icon> $deleteContent </v-icon>
-        </v-btn>
-      </v-slide-x-reverse-transition>
-
-      <delete-dialog
-        v-model="showDeleteConfirm"
-        :gql-delete-mutation="deletePersonalNotes"
-        :affected-query="affectedQuery"
-        item-attribute="fullName"
-        :items="[value]"
-        :custom-update="getUpdater('delete')"
-      >
-        <template #title>
-          {{ $t("alsijil.personal_notes.confirm_delete") }}
-        </template>
-        <template #body>
-          {{
-            $t("alsijil.personal_notes.confirm_delete_tardiness", {
-              tardiness: value?.tardiness,
-              name: participation.person.fullName,
-            })
-          }}
-        </template>
-      </delete-dialog>
-    </template>
-  </positive-small-integer-field>
-</template>
-
-<style scoped>
-.mt-n1-5 {
-  margin-top: -6px;
-}
-</style>
-- 
GitLab