From 004671c006ebdcd2de34f761d366799e5f806594 Mon Sep 17 00:00:00 2001 From: Polianin Nikita Date: Mon, 3 Feb 2025 03:37:30 +0300 Subject: [PATCH] feat: add support for the new api --- src/api/v1/configuration/schedule.service.ts | 4 ++-- .../schedule-file-upload.component.html | 18 +++++++++++++----- .../schedule-file-upload.component.ts | 19 +++++++++++++++---- 3 files changed, 30 insertions(+), 11 deletions(-) diff --git a/src/api/v1/configuration/schedule.service.ts b/src/api/v1/configuration/schedule.service.ts index d1e1def..bee14f8 100644 --- a/src/api/v1/configuration/schedule.service.ts +++ b/src/api/v1/configuration/schedule.service.ts @@ -74,14 +74,14 @@ export class ScheduleService extends ApiService { return this.addAuth(request).post(request); } - public uploadScheduleFile(files: File[], force: boolean) { + public uploadScheduleFile(files: File[], campus: string[], force: boolean) { const formData = new FormData(); files.forEach(file => formData.append('files', file, file.name)); const request = this.createRequestBuilder() .setEndpoint('Upload') .setData(formData) - .setQueryParams({force: force}) + .setQueryParams({force: force, defaultCampus: campus}) .build; return this.addAuth(request).post(request); diff --git a/src/components/admin/schedule-file-upload/schedule-file-upload.component.html b/src/components/admin/schedule-file-upload/schedule-file-upload.component.html index 7ed596e..bc7e156 100644 --- a/src/components/admin/schedule-file-upload/schedule-file-upload.component.html +++ b/src/components/admin/schedule-file-upload/schedule-file-upload.component.html @@ -18,11 +18,19 @@ @if (selectedFiles.length > 0) {

Выбранные файлы:

-
    - @for (file of selectedFiles; track $index) { -
  • {{ file.name }}
  • - } -
+ @for (item of selectedFiles; track $index) { +
+

+ {{ item.file.name }} +

+ + + Кампус по умолчанию + + + +
+ }
} diff --git a/src/components/admin/schedule-file-upload/schedule-file-upload.component.ts b/src/components/admin/schedule-file-upload/schedule-file-upload.component.ts index b1aad49..e04e9c0 100644 --- a/src/components/admin/schedule-file-upload/schedule-file-upload.component.ts +++ b/src/components/admin/schedule-file-upload/schedule-file-upload.component.ts @@ -9,6 +9,9 @@ import {MatButtonModule} from "@angular/material/button"; import {MatIcon} from "@angular/material/icon"; import {ScheduleService} from "@api/v1/configuration/schedule.service"; import {DataSpinnerComponent} from "@component/common/data-spinner/data-spinner.component"; +import {MatFormFieldModule} from "@angular/material/form-field"; +import {FormsModule} from "@angular/forms"; +import {MatInput} from "@angular/material/input"; @Component({ selector: 'app-schedule-file-upload', @@ -16,13 +19,16 @@ import {DataSpinnerComponent} from "@component/common/data-spinner/data-spinner. ConfigurationCardComponent, MatButtonModule, MatIcon, - DataSpinnerComponent + DataSpinnerComponent, + MatFormFieldModule, + FormsModule, + MatInput ], templateUrl: './schedule-file-upload.component.html', providers: [ScheduleService] }) export class ScheduleFileUploadComponent { - selectedFiles: File[] = []; + selectedFiles: { file: File, campus: string }[] = []; fileLoading: boolean = false; @ViewChild('fileInput') input!: ElementRef; @@ -34,7 +40,10 @@ export class ScheduleFileUploadComponent { const dialogRef = this.dialog.open(ConfirmDeleteScheduleDialogComponent); return dialogRef.afterClosed().pipe(switchMap(result => { - return this.api.uploadScheduleFile(this.selectedFiles, result); + return this.api.uploadScheduleFile( + this.selectedFiles.map(x => x.file), + this.selectedFiles.map(x => x.campus), + result); })); }; } @@ -46,7 +55,9 @@ export class ScheduleFileUploadComponent { onFileSelected(event: any): void { this.fileLoading = false; - this.selectedFiles = Array.from(event.target.files); + console.log(Array.from(event.target.files)); + this.selectedFiles = Array.from(event.target.files) + .map(x => <{file: File, campus: string}>{file: x, campus: ''}); } onUpload(data: Observable): void {