diff --git a/src/app/modules/admin/components/companies/companies-admin-page/companies-admin-page.component.ts b/src/app/modules/admin/components/companies/companies-admin-page/companies-admin-page.component.ts index 85dc892a..415e0b0f 100644 --- a/src/app/modules/admin/components/companies/companies-admin-page/companies-admin-page.component.ts +++ b/src/app/modules/admin/components/companies/companies-admin-page/companies-admin-page.component.ts @@ -1,12 +1,12 @@ import { Component, OnDestroy, OnInit } from "@angular/core"; import { Router } from "@angular/router"; import { Company } from "@models/companies.model"; -import { defaultPageParams, PageParams } from "@models/page-params"; +import { defaultPageParams } from "@models/page-params"; import { PaginatedList } from "@models/paginated-list"; import { CompaniesService } from "@services/companies.service"; import { TitleService } from "@services/title.service"; import { untilDestroyed } from "@shared/subscriptions/until-destroyed"; -import { EditCompanyForm } from "./edit-company-form"; +import { EditCompanyForm } from "../shared/edit-company-form"; import { AlertService } from "@shared/components/alert/services/alert.service"; import { DialogMessage } from "@shared/components/dialogs/models/dialog-message"; import { ConfirmMsg } from "@shared/components/dialogs/models/confirm-msg"; diff --git a/src/app/modules/admin/components/companies/company-admin-page/company-admin-page.component.html b/src/app/modules/admin/components/companies/company-admin-page/company-admin-page.component.html index 25ca4c2f..9f5e87a9 100644 --- a/src/app/modules/admin/components/companies/company-admin-page/company-admin-page.component.html +++ b/src/app/modules/admin/components/companies/company-admin-page/company-admin-page.component.html @@ -4,6 +4,46 @@
+
+
+ + +
+
+
Описание
@@ -204,3 +244,44 @@ *ngIf="confirmMessage" [message]="confirmMessage" > + + +
+
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ +
+
+
diff --git a/src/app/modules/admin/components/companies/company-admin-page/company-admin-page.component.ts b/src/app/modules/admin/components/companies/company-admin-page/company-admin-page.component.ts index cb018a4a..19288a3a 100644 --- a/src/app/modules/admin/components/companies/company-admin-page/company-admin-page.component.ts +++ b/src/app/modules/admin/components/companies/company-admin-page/company-admin-page.component.ts @@ -8,6 +8,7 @@ import { ConfirmMsg } from "@shared/components/dialogs/models/confirm-msg"; import { DialogMessage } from "@shared/components/dialogs/models/dialog-message"; import { ActivatedRouteExtended } from "@shared/routes/activated-route-extended"; import { untilDestroyed } from "@shared/subscriptions/until-destroyed"; +import { EditCompanyForm } from "../shared/edit-company-form"; @Component({ templateUrl: "./company-admin-page.component.html", @@ -18,6 +19,7 @@ export class CompanyAdminPageComponent implements OnInit, OnDestroy { company: Company | null = null; reviewToShow: CompanyReview | null = null; confirmMessage: DialogMessage | null = null; + editForm: EditCompanyForm | null = null; private readonly activateRoute: ActivatedRouteExtended; @@ -59,6 +61,37 @@ export class CompanyAdminPageComponent implements OnInit, OnDestroy { this.title.resetTitle(); } + openEditForm(): void { + this.editForm = new EditCompanyForm(this.company); + } + + onEditModalDlgClose(): void { + this.editForm = null; + } + + onEditFormSubmit(): void { + if (this.editForm == null || this.company == null) { + return; + } + + const editRequest = this.editForm.editRequestOrNull(); + if (editRequest == null) { + return; + } + + this.service + .update(this.company.id, editRequest) + .pipe(untilDestroyed(this)) + .subscribe(() => { + this.alertService.success("Компания была обновлена"); + this.editForm = null; + this.ngOnInit(); + }); + } + + recalculateRating(): void { + throw new Error("Not implemented"); + } onReviewModalDlgClose(): void { this.reviewToShow = null; } diff --git a/src/app/modules/admin/components/companies/companies-admin-page/edit-company-form.ts b/src/app/modules/admin/components/companies/shared/edit-company-form.ts similarity index 91% rename from src/app/modules/admin/components/companies/companies-admin-page/edit-company-form.ts rename to src/app/modules/admin/components/companies/shared/edit-company-form.ts index ac888550..ac90817a 100644 --- a/src/app/modules/admin/components/companies/companies-admin-page/edit-company-form.ts +++ b/src/app/modules/admin/components/companies/shared/edit-company-form.ts @@ -1,6 +1,6 @@ import { FormControl, FormGroup, Validators } from "@angular/forms"; import { Company } from "@models/companies.model"; -import { CompanyCreateRequest } from "@services/companies.service"; +import { CompanyEditRequest } from "@services/companies.service"; export class EditCompanyForm extends FormGroup { private static readonly URL_LINK_PATTERN = @@ -20,7 +20,7 @@ export class EditCompanyForm extends FormGroup { }); } - editRequestOrNull(): CompanyCreateRequest | null { + editRequestOrNull(): CompanyEditRequest | null { if (!this.valid) { this.markAllAsTouched(); return null; diff --git a/src/app/modules/admin/components/telegram/inline-replies-stats/inline-replies-stats.component.html b/src/app/modules/admin/components/telegram/inline-replies-stats/inline-replies-stats.component.html index 5204baf3..302b0030 100644 --- a/src/app/modules/admin/components/telegram/inline-replies-stats/inline-replies-stats.component.html +++ b/src/app/modules/admin/components/telegram/inline-replies-stats/inline-replies-stats.component.html @@ -1,4 +1,4 @@ -Использование бота +График использования бота
diff --git a/src/app/services/companies.service.ts b/src/app/services/companies.service.ts index 038b1888..fcf88c0a 100644 --- a/src/app/services/companies.service.ts +++ b/src/app/services/companies.service.ts @@ -14,7 +14,7 @@ export interface CompaniesSearchParams extends PageParams { searchQuery: string | null; } -export interface CompanyCreateRequest { +export interface CompanyEditRequest { name: string; description: string; links: string[]; @@ -46,11 +46,11 @@ export class CompaniesService { return this.api.get(this.apiUrl + id); } - update(id: string, model: CompanyCreateRequest): Observable { - throw new Error("Not implemented"); + update(id: string, model: CompanyEditRequest): Observable { + return this.api.post(this.apiUrl + id, model); } - create(model: CompanyCreateRequest): Observable { + create(model: CompanyEditRequest): Observable { return this.api.post(this.apiUrl, model); }