diff --git a/src/app/_modules/pages/tree/item/pages-tree-item.component.html b/src/app/_modules/pages/tree/item/pages-tree-item.component.html index c1c5004..3b97980 100644 --- a/src/app/_modules/pages/tree/item/pages-tree-item.component.html +++ b/src/app/_modules/pages/tree/item/pages-tree-item.component.html @@ -1,7 +1,7 @@ -
+
- +
@@ -12,9 +12,10 @@
diff --git a/src/app/_modules/pages/tree/item/pages-tree-item.component.scss b/src/app/_modules/pages/tree/item/pages-tree-item.component.scss index fe51608..9a5373e 100644 --- a/src/app/_modules/pages/tree/item/pages-tree-item.component.scss +++ b/src/app/_modules/pages/tree/item/pages-tree-item.component.scss @@ -1,2 +1,2 @@ -.red {color: #ff0000;} +.deleted {opacity: 0.5;} .hidden {display: none;} diff --git a/src/app/_modules/pages/tree/item/pages-tree-item.component.ts b/src/app/_modules/pages/tree/item/pages-tree-item.component.ts index 6d7749a..0044012 100644 --- a/src/app/_modules/pages/tree/item/pages-tree-item.component.ts +++ b/src/app/_modules/pages/tree/item/pages-tree-item.component.ts @@ -52,14 +52,21 @@ export class PagesTreeItemComponent { get isDeleted() { return !!this.page.deletedAt; } + get isHidden() { + return this.isDeleted && !this.showDeleted; + } get showDeleted() { return this.pagesService.showDeleted; } + get hasChildren() { + return this.showDeleted ? this.children?.length : this.children?.filter(page => {return !page.deletedAt}).length; + } + fetch() { let include = ['children']; - this.pagesService.show(this.page.id, {include: include.join(',')}).subscribe(res => { + this.pagesService.show(this.page.id, {include: include.join(','), withTrashed: true}).subscribe(res => { this.page = res.data; }); } @@ -79,6 +86,12 @@ export class PagesTreeItemComponent { }); } + restore() { + if (confirm(`Восстановить страницу ${this.page.name}?`)) this.pagesService.restore(this.page.id, {}).subscribe(res => { + this.listsService.refresh(this.parentListId); + }); + } + clone() { if (confirm(`Копировать страницу ${this.page.name}?`)) this.pagesService.clone(this.page.id, {recursive: true}).subscribe(res => { this.listsService.refresh(this.parentListId); diff --git a/src/app/_modules/pages/tree/pages-tree.component.scss b/src/app/_modules/pages/tree/pages-tree.component.scss index 98705c7..ec08638 100644 --- a/src/app/_modules/pages/tree/pages-tree.component.scss +++ b/src/app/_modules/pages/tree/pages-tree.component.scss @@ -124,6 +124,10 @@ width: 24px; background-color: #dedede; } + &.restore { + width: 24px; + background-color: #dedede; + } } .orphan{ margin-right: 48px; diff --git a/src/app/_modules/pages/tree/pages-tree.component.ts b/src/app/_modules/pages/tree/pages-tree.component.ts index 0581df4..548d55d 100644 --- a/src/app/_modules/pages/tree/pages-tree.component.ts +++ b/src/app/_modules/pages/tree/pages-tree.component.ts @@ -50,14 +50,14 @@ export class PagesTreeComponent { } fetchRootPages() { - let include = ['children']; + let include = ['children.children']; this.pagesService.root({include: include.join(','), withTrashed: true}).subscribe(res => { this.pages = res.data; }); } fetchSubpages() { - let include = ['children']; + let include = ['children.children']; this.pagesService.show(this.parent.id, {include: include.join(','), withTrashed: true}).subscribe(res => { this.pages = res.data?.children?.data; }); diff --git a/src/app/_services/pages.service.ts b/src/app/_services/pages.service.ts index 30c519c..9a6293e 100644 --- a/src/app/_services/pages.service.ts +++ b/src/app/_services/pages.service.ts @@ -69,6 +69,10 @@ export class PagesService { return this.http.delete(`${environment.apiUrl}/api/pages/${id}`); } + restore(id: string, data: any): Observable { + return this.http.patch(`${environment.apiUrl}/api/pages/restore/${id}`, data); + } + deleteBackground(id: string): Observable { return this.http.delete(`${environment.apiUrl}/api/pages/background/${id}`); }