mirror of
				https://gitlab.com/Chill-Projet/chill-bundles.git
				synced 2025-11-04 03:08:25 +00:00 
			
		
		
		
	Merge branch '377-document-file-name' into 'master'
377 - add the document filename to document title when uploading a new document Closes #377 See merge request Chill-Projet/chill-bundles!821
This commit is contained in:
		
							
								
								
									
										7
									
								
								.changes/unreleased/Feature-20250424-142211.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								.changes/unreleased/Feature-20250424-142211.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
			
		||||
kind: Feature
 | 
			
		||||
body: Add the document file name to the document title when a user upload a document,
 | 
			
		||||
  unless there is already a document title.
 | 
			
		||||
time: 2025-04-24T14:22:11.800975422+02:00
 | 
			
		||||
custom:
 | 
			
		||||
  Issue: "377"
 | 
			
		||||
  SchemaChange: No schema change
 | 
			
		||||
@@ -10,6 +10,9 @@ const startApp = (
 | 
			
		||||
    collectionEntry: null | HTMLLIElement,
 | 
			
		||||
): void => {
 | 
			
		||||
    console.log("app started", divElement);
 | 
			
		||||
 | 
			
		||||
    const inputTitle = collectionEntry?.querySelector("input[type='text']");
 | 
			
		||||
 | 
			
		||||
    const input_stored_object: HTMLInputElement | null =
 | 
			
		||||
        divElement.querySelector("input[data-stored-object]");
 | 
			
		||||
    if (null === input_stored_object) {
 | 
			
		||||
@@ -26,9 +29,10 @@ const startApp = (
 | 
			
		||||
    const app = createApp({
 | 
			
		||||
        template:
 | 
			
		||||
            '<drop-file-widget :existingDoc="this.$data.existingDoc" :allowRemove="true" @addDocument="this.addDocument" @removeDocument="removeDocument"></drop-file-widget>',
 | 
			
		||||
        data(vm) {
 | 
			
		||||
        data() {
 | 
			
		||||
            return {
 | 
			
		||||
                existingDoc: existingDoc,
 | 
			
		||||
                inputTitle: inputTitle,
 | 
			
		||||
            };
 | 
			
		||||
        },
 | 
			
		||||
        components: {
 | 
			
		||||
@@ -38,10 +42,13 @@ const startApp = (
 | 
			
		||||
            addDocument: function ({
 | 
			
		||||
                stored_object,
 | 
			
		||||
                stored_object_version,
 | 
			
		||||
                file_name,
 | 
			
		||||
            }: {
 | 
			
		||||
                stored_object: StoredObject;
 | 
			
		||||
                stored_object_version: StoredObjectVersion;
 | 
			
		||||
                file_name: string;
 | 
			
		||||
            }): void {
 | 
			
		||||
                stored_object.title = file_name;
 | 
			
		||||
                console.log("object added", stored_object);
 | 
			
		||||
                console.log("version added", stored_object_version);
 | 
			
		||||
                this.$data.existingDoc = stored_object;
 | 
			
		||||
@@ -49,6 +56,11 @@ const startApp = (
 | 
			
		||||
                input_stored_object.value = JSON.stringify(
 | 
			
		||||
                    this.$data.existingDoc,
 | 
			
		||||
                );
 | 
			
		||||
                if (this.$data.inputTitle) {
 | 
			
		||||
                    if (!this.$data.inputTitle?.value) {
 | 
			
		||||
                        this.$data.inputTitle.value = file_name;
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            },
 | 
			
		||||
            removeDocument: function (object: StoredObject): void {
 | 
			
		||||
                console.log("catch remove document", object);
 | 
			
		||||
 
 | 
			
		||||
@@ -23,6 +23,7 @@ const emit =
 | 
			
		||||
            {
 | 
			
		||||
                stored_object_version: StoredObjectVersionCreated,
 | 
			
		||||
                stored_object: StoredObject,
 | 
			
		||||
                file_name: string,
 | 
			
		||||
            },
 | 
			
		||||
        ) => void
 | 
			
		||||
    >();
 | 
			
		||||
@@ -114,7 +115,21 @@ const handleFile = async (file: File): Promise<void> => {
 | 
			
		||||
        persisted: false,
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    emit("addDocument", { stored_object, stored_object_version });
 | 
			
		||||
    const fileName = file.name;
 | 
			
		||||
    let file_name = "Nouveau document";
 | 
			
		||||
    const file_name_split = fileName.split(".");
 | 
			
		||||
    if (file_name_split.length > 1) {
 | 
			
		||||
        const extension = file_name_split
 | 
			
		||||
            ? file_name_split[file_name_split.length - 1]
 | 
			
		||||
            : "";
 | 
			
		||||
        file_name = fileName.replace(extension, "").slice(0, -1);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    emit("addDocument", {
 | 
			
		||||
        stored_object,
 | 
			
		||||
        stored_object_version,
 | 
			
		||||
        file_name: file_name,
 | 
			
		||||
    });
 | 
			
		||||
    uploading.value = false;
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
 
 | 
			
		||||
@@ -20,6 +20,7 @@ const emit = defineEmits<{
 | 
			
		||||
        {
 | 
			
		||||
            stored_object: StoredObject,
 | 
			
		||||
            stored_object_version: StoredObjectVersion,
 | 
			
		||||
            file_name: string,
 | 
			
		||||
        },
 | 
			
		||||
    ): void;
 | 
			
		||||
    (e: "removeDocument"): void;
 | 
			
		||||
@@ -42,14 +43,16 @@ const buttonState = computed<"add" | "replace">(() => {
 | 
			
		||||
function onAddDocument({
 | 
			
		||||
    stored_object,
 | 
			
		||||
    stored_object_version,
 | 
			
		||||
    file_name,
 | 
			
		||||
}: {
 | 
			
		||||
    stored_object: StoredObject;
 | 
			
		||||
    stored_object_version: StoredObjectVersion;
 | 
			
		||||
    file_name: string;
 | 
			
		||||
}): void {
 | 
			
		||||
    const message =
 | 
			
		||||
        buttonState.value === "add" ? "Document ajouté" : "Document remplacé";
 | 
			
		||||
    $toast.success(message);
 | 
			
		||||
    emit("addDocument", { stored_object_version, stored_object });
 | 
			
		||||
    emit("addDocument", { stored_object_version, stored_object, file_name });
 | 
			
		||||
    state.showModal = false;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -19,6 +19,7 @@ const emit = defineEmits<{
 | 
			
		||||
        {
 | 
			
		||||
            stored_object: StoredObject,
 | 
			
		||||
            stored_object_version: StoredObjectVersion,
 | 
			
		||||
            file_name: string,
 | 
			
		||||
        },
 | 
			
		||||
    ): void;
 | 
			
		||||
    (e: "removeDocument"): void;
 | 
			
		||||
@@ -53,11 +54,13 @@ const dav_link_href = computed<string | undefined>(() => {
 | 
			
		||||
const onAddDocument = ({
 | 
			
		||||
    stored_object,
 | 
			
		||||
    stored_object_version,
 | 
			
		||||
    file_name,
 | 
			
		||||
}: {
 | 
			
		||||
    stored_object: StoredObject;
 | 
			
		||||
    stored_object_version: StoredObjectVersion;
 | 
			
		||||
    file_name: string;
 | 
			
		||||
}): void => {
 | 
			
		||||
    emit("addDocument", { stored_object, stored_object_version });
 | 
			
		||||
    emit("addDocument", { stored_object, stored_object_version, file_name });
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const onRemoveDocument = (e: Event): void => {
 | 
			
		||||
 
 | 
			
		||||
@@ -535,11 +535,11 @@ export default {
 | 
			
		||||
        title: title,
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
    addDocument({ stored_object, stored_object_version }) {
 | 
			
		||||
    addDocument({ stored_object, stored_object_version, file_name }) {
 | 
			
		||||
      let document = {
 | 
			
		||||
        type: "accompanying_period_work_evaluation_document",
 | 
			
		||||
        storedObject: stored_object,
 | 
			
		||||
        title: "Nouveau document",
 | 
			
		||||
        title: file_name,
 | 
			
		||||
      };
 | 
			
		||||
      this.$store.commit("addDocument", {
 | 
			
		||||
        key: this.evaluation.key,
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user