@@ -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);
}