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