diff --git a/src/app/_modules/administration/administration.module.ts b/src/app/_modules/administration/administration.module.ts index de3a9cd..3c85d69 100644 --- a/src/app/_modules/administration/administration.module.ts +++ b/src/app/_modules/administration/administration.module.ts @@ -8,10 +8,12 @@ import {AdministrateCompanyComponent} from "@app/_modules/administration/company import {AdministrateCommitteeComponent} from "@app/_modules/administration/committee/administrate-committee.component"; import {AdvisoriesModule} from "@app/_modules/advisories/advisories.module"; import {CompaniesModule} from "@app/_modules/companies/companies.module"; +import {AdministrateSitePagesComponent} from "@app/_modules/administration/site-pages/administrate-site-pages.component"; +import {PagesModule} from "@app/_modules/pages/pages.module"; type PathMatch = "full" | "prefix" | undefined; const routes = [ - {path: 'administrate', redirectTo: 'administrate/company', pathMatch: 'full' as PathMatch}, + {path: 'administrate', redirectTo: 'administrate/site-pages', pathMatch: 'full' as PathMatch}, {path: 'administrate/:tab', component: AdministrationPageComponent, canActivate: [AuthGuard]} ]; @@ -21,12 +23,14 @@ const routes = [ CommonModule, RouterModule.forRoot(routes), AdvisoriesModule, - CompaniesModule + CompaniesModule, + PagesModule, ], declarations: [ AdministrationPageComponent, AdministrateCompanyComponent, - AdministrateCommitteeComponent + AdministrateCommitteeComponent, + AdministrateSitePagesComponent ], exports: [ RouterModule diff --git a/src/app/_modules/administration/page/administration-page.component.html b/src/app/_modules/administration/page/administration-page.component.html index 024a06c..bed2527 100644 --- a/src/app/_modules/administration/page/administration-page.component.html +++ b/src/app/_modules/administration/page/administration-page.component.html @@ -2,13 +2,14 @@

Панель управления

- +
- +
+ +

Страница не найдена

diff --git a/src/app/_modules/administration/page/administration-page.component.ts b/src/app/_modules/administration/page/administration-page.component.ts index d22610c..e6a2944 100644 --- a/src/app/_modules/administration/page/administration-page.component.ts +++ b/src/app/_modules/administration/page/administration-page.component.ts @@ -1,16 +1,17 @@ import {Component} from '@angular/core'; import {ActivatedRoute, NavigationEnd, Router} from "@angular/router"; import {Subscription} from "rxjs"; +import {AuthenticationService} from "@app/_services"; @Component({ templateUrl: 'administration-page.component.html', styleUrls: ['administration-page.component.scss'] }) export class AdministrationPageComponent { - public tabs = [{name: 'company', title: 'Структура ФАУ «ФЦС»'}, {name: 'committee', title: 'Структура ТК 465'}]; + public tabs = []; routeSubscription: Subscription; - constructor(private route: ActivatedRoute, private router: Router) { + constructor(private route: ActivatedRoute, private router: Router, private authService: AuthenticationService) { this.routeSubscription = this.router.events.subscribe(event => { if (event instanceof NavigationEnd && (this.route.snapshot.paramMap.get('tab') !== this.tab?.name)) this.switchTab(this.route.snapshot.paramMap.get('tab')); }); @@ -21,13 +22,21 @@ export class AdministrationPageComponent { } ngOnInit() { - + this.authService.user.subscribe(val => { + this.makeTabs(); + }); } ngOnDestroy() { this.routeSubscription?.unsubscribe(); } + makeTabs() { + //this.tabs = [{name: 'company', title: 'Структура ФАУ «ФЦС»'}, {name: 'committee', title: 'Структура ТК 465'}]; + //if (this.authService.isSuperAdmin) this.tabs.push({name: 'site-pages', title: 'Структура сайта'}); + this.tabs = [{name: 'site-pages', title: 'Структура сайта'}]; + this.switchTab(this.route.snapshot.paramMap.get('tab')); + } switchTab(name: string) { this.tabs.map(tab => {tab.active = tab.name === name}); diff --git a/src/app/_modules/administration/site-pages/administrate-site-pages.component.html b/src/app/_modules/administration/site-pages/administrate-site-pages.component.html new file mode 100644 index 0000000..d6e71e0 --- /dev/null +++ b/src/app/_modules/administration/site-pages/administrate-site-pages.component.html @@ -0,0 +1 @@ + diff --git a/src/app/_modules/administration/site-pages/administrate-site-pages.component.scss b/src/app/_modules/administration/site-pages/administrate-site-pages.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/app/_modules/administration/site-pages/administrate-site-pages.component.ts b/src/app/_modules/administration/site-pages/administrate-site-pages.component.ts new file mode 100644 index 0000000..b391d23 --- /dev/null +++ b/src/app/_modules/administration/site-pages/administrate-site-pages.component.ts @@ -0,0 +1,15 @@ +import {Component} from '@angular/core'; + +@Component({ + selector: 'administrate-site-pages', + templateUrl: 'administrate-site-pages.component.html', + styleUrls: ['administrate-site-pages.component.scss'] +}) +export class AdministrateSitePagesComponent { + constructor() { + } + + ngOnInit() { + } + +} diff --git a/src/app/_modules/pages/home/homepage.component.ts b/src/app/_modules/pages/home/homepage.component.ts index 54175d5..0cfeec5 100644 --- a/src/app/_modules/pages/home/homepage.component.ts +++ b/src/app/_modules/pages/home/homepage.component.ts @@ -19,6 +19,7 @@ export class HomepageComponent { } ngOnInit() { + this.router.navigate(['glavnaia']); this.load(); } ngOnDestroy() { diff --git a/src/app/_modules/pages/page/breadcrumbs/page-breadcrumbs.component.html b/src/app/_modules/pages/page/breadcrumbs/page-breadcrumbs.component.html index ce4a5f6..aa15a97 100644 --- a/src/app/_modules/pages/page/breadcrumbs/page-breadcrumbs.component.html +++ b/src/app/_modules/pages/page/breadcrumbs/page-breadcrumbs.component.html @@ -1,5 +1,4 @@ diff --git a/src/app/_modules/pages/pages.module.ts b/src/app/_modules/pages/pages.module.ts index b7797df..11e36dd 100644 --- a/src/app/_modules/pages/pages.module.ts +++ b/src/app/_modules/pages/pages.module.ts @@ -13,6 +13,9 @@ import {PaginationModule} from "@app/_modules/pagination/pagination.module"; import {SearchSectionsComponent} from "@app/_modules/pages/sections/search/search-sections.component"; import {SearchSectionsItemComponent} from "@app/_modules/pages/sections/search/item/search-sections-item.component"; import {SwiperModule} from "swiper/angular"; +import {PagesTreeComponent} from "@app/_modules/pages/tree/pages-tree.component"; +import {PagesTreeItemComponent} from "@app/_modules/pages/tree/item/pages-tree-item.component"; +import {SortablejsModule} from "ngx-sortablejs"; @NgModule({ imports: [ @@ -23,20 +26,24 @@ import {SwiperModule} from "swiper/angular"; RegistriesModule, PublicationsModule, PaginationModule, - SwiperModule + SwiperModule, + SortablejsModule, ], declarations: [ PagesMenuComponent, PagesMenuItemComponent, PagesListComponent, PagesListItemComponent, + PagesTreeComponent, + PagesTreeItemComponent, SearchSectionsComponent, - SearchSectionsItemComponent + SearchSectionsItemComponent, ], exports: [ PagesMenuComponent, PagesListComponent, - SearchSectionsComponent + SearchSectionsComponent, + PagesTreeComponent, ] }) export class PagesModule {} diff --git a/src/app/_modules/pages/sections/add/add-section.component.ts b/src/app/_modules/pages/sections/add/add-section.component.ts index b339545..2c66b76 100644 --- a/src/app/_modules/pages/sections/add/add-section.component.ts +++ b/src/app/_modules/pages/sections/add/add-section.component.ts @@ -37,6 +37,7 @@ export class AddSectionComponent { return item; }); let attach = {modelType: this.modelType, modelId: this.page.id, group: 'sections', ord: this.ord}; + console.log(type); this.formsService.createObject(type, {extraProps: {attach: attach}}); this.hideDD(); } diff --git a/src/app/_modules/pages/sections/item/page-section.component.html b/src/app/_modules/pages/sections/item/page-section.component.html index 394e9d5..f008754 100644 --- a/src/app/_modules/pages/sections/item/page-section.component.html +++ b/src/app/_modules/pages/sections/item/page-section.component.html @@ -1,13 +1,6 @@
- +
@@ -21,7 +14,7 @@ - +

section {{type?.name}} is undefined

diff --git a/src/app/_modules/pages/sections/item/page-section.component.ts b/src/app/_modules/pages/sections/item/page-section.component.ts index 0c3622c..500cd89 100644 --- a/src/app/_modules/pages/sections/item/page-section.component.ts +++ b/src/app/_modules/pages/sections/item/page-section.component.ts @@ -1,5 +1,4 @@ import {Component, Input} from '@angular/core'; -import {FormsService, ListsService, ObjectsService} from "@app/_services"; @Component({ selector: 'page-section', @@ -13,7 +12,10 @@ export class PageSectionComponent { @Input() editMode = false; @Input() modelType: string; - constructor(private formsService: FormsService, private objectsService: ObjectsService, private listsService: ListsService) { + constructor() { + } + + ngOnInit() { } @@ -24,40 +26,4 @@ export class PageSectionComponent { get ord() { return this.section?.pivot?.ord; } - - get total() { - return this.page?.sections?.data?.length; - } - - get isFirst() { - return this.index === 0; - } - - get isLast() { - return (this.index + 1) === this.total; - } - - - ngOnInit() { - - } - - - edit() { - this.formsService.editObject(this.section.id); - } - - move(ord) { - this.objectsService.move(this.section.id, {modelType: this.modelType, modelId: this.page.id, ord: ord}).subscribe(res => { - this.listsService.refresh(); - }); - } - - delete() { - //r u sure? - if (confirm('Удалить этот блок?')) this.objectsService.destroy(this.section.id).subscribe(res => { - this.listsService.refresh(); - }); - } - } diff --git a/src/app/_modules/pages/sections/menu/page-menu.component.html b/src/app/_modules/pages/sections/menu/page-menu.component.html new file mode 100644 index 0000000..e25d580 --- /dev/null +++ b/src/app/_modules/pages/sections/menu/page-menu.component.html @@ -0,0 +1,8 @@ + diff --git a/src/app/_modules/pages/sections/menu/page-menu.component.scss b/src/app/_modules/pages/sections/menu/page-menu.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/app/_modules/pages/sections/menu/page-menu.component.ts b/src/app/_modules/pages/sections/menu/page-menu.component.ts new file mode 100644 index 0000000..99fc4ec --- /dev/null +++ b/src/app/_modules/pages/sections/menu/page-menu.component.ts @@ -0,0 +1,52 @@ +import {Component, Input} from '@angular/core'; +import {FormsService, ListsService, ObjectsService} from "@app/_services"; + +@Component({ + selector: 'page-menu', + templateUrl: 'page-menu.component.html', + styleUrls: ['page-menu.component.scss'] +}) +export class PageMenuComponent { + @Input() page: any; + @Input() section: any; + @Input() editMode = false; + @Input() index: number; + @Input() modelType: string; + + constructor(private formsService: FormsService, private objectsService: ObjectsService, private listsService: ListsService) { + } + + get ord() { + return this.section?.pivot?.ord; + } + + get total() { + return this.page?.sections?.data?.length || 1; + } + + get isFirst() { + return this.index === 0; + } + + get isLast() { + return (this.index + 1) === this.total; + } + + + edit() { + this.formsService.editObject(this.section.id); + } + + move(ord) { + this.objectsService.move(this.section.id, {modelType: this.modelType, modelId: this.page.id, ord: ord}).subscribe(res => { + this.listsService.refresh(); + }); + } + + delete() { + //r u sure? + if (confirm('Удалить этот блок?')) this.objectsService.destroy(this.section.id).subscribe(res => { + this.listsService.refresh(); + }); + } +} diff --git a/src/app/_modules/pages/sections/page-sections.module.ts b/src/app/_modules/pages/sections/page-sections.module.ts index 9260fce..e71f322 100644 --- a/src/app/_modules/pages/sections/page-sections.module.ts +++ b/src/app/_modules/pages/sections/page-sections.module.ts @@ -23,6 +23,7 @@ import {MapsSectionComponent} from "@app/_modules/pages/sections/types/basic/map import {MemberSectionComponent} from "@app/_modules/pages/sections/types/basic/member/member-section.component"; import {ImageSectionComponent} from "@app/_modules/pages/sections/types/basic/image/image-section.component"; import {DocumentSectionComponent} from "@app/_modules/pages/sections/types/basic/document/document-section.component"; +import {PageMenuComponent} from "@app/_modules/pages/sections/menu/page-menu.component"; @NgModule({ imports: [ @@ -33,6 +34,7 @@ import {DocumentSectionComponent} from "@app/_modules/pages/sections/types/basic SwiperModule, ], declarations: [ + PageMenuComponent, PageSectionsComponent, PageSectionComponent, HeaderSectionComponent, diff --git a/src/app/_modules/pages/sections/types/basic/member/member-section.component.html b/src/app/_modules/pages/sections/types/basic/member/member-section.component.html index 7cc45b6..66028df 100644 --- a/src/app/_modules/pages/sections/types/basic/member/member-section.component.html +++ b/src/app/_modules/pages/sections/types/basic/member/member-section.component.html @@ -1 +1,15 @@ -Member Section +
+
+
+
+
+
+
+ +
+
Давид Мерабович Гоготишвили
+
Генеральный директор ЧУ СЦ «ВНИИГАЗ-Сертификат»
+ +
+
+
diff --git a/src/app/_modules/pages/sections/types/basic/member/member-section.component.scss b/src/app/_modules/pages/sections/types/basic/member/member-section.component.scss index e69de29..8b339c8 100644 --- a/src/app/_modules/pages/sections/types/basic/member/member-section.component.scss +++ b/src/app/_modules/pages/sections/types/basic/member/member-section.component.scss @@ -0,0 +1,55 @@ +.member { + display: flex; + flex-direction: column; + width: 100%; + max-width: 900px; + .add { + padding: 16px 12px; + display: flex; + justify-content: space-between; + width: 100%; + border-top: 1px solid #C0C0C0; + border-bottom: 1px solid #C0C0C0; + .title { + color: #6C6C6C; + font-size: 20px; + font-style: normal; + font-weight: 400; + line-height: 24px; + } + .toggle { + width: 24px; + height: 24px; + cursor: pointer; + background: url('~src/assets/images/icons/add_cirle_24dp.svg') center no-repeat; + } + } + .list { + margin: 32px 0; + display: grid; + gap: 32px 40px; + width: 100%; + grid-template-columns: repeat(3, 1fr); + .item { + object-fit: cover; + .menu { + + } + .photo { + img { + width: calc(100%); + border-radius: 12px; + } + } + .name { + + } + .description { + + } + .more { + + } + } + } +} diff --git a/src/app/_modules/pages/sections/types/basic/member/member-section.component.ts b/src/app/_modules/pages/sections/types/basic/member/member-section.component.ts index 4cdd7a1..dea0d7c 100644 --- a/src/app/_modules/pages/sections/types/basic/member/member-section.component.ts +++ b/src/app/_modules/pages/sections/types/basic/member/member-section.component.ts @@ -1,4 +1,5 @@ import {Component, Input} from '@angular/core'; +import {FormsService} from "@app/_services"; @Component({ selector: 'member-section', @@ -7,12 +8,24 @@ import {Component, Input} from '@angular/core'; }) export class MemberSectionComponent { @Input() section: any; + @Input() editMode = false; - constructor( - ) { + constructor(private formsService: FormsService,) { } ngOnInit() { - console.log(this.section); + console.log(); + } + + get title() { + return this.section?.groups?.data[0]?.fields?.data[0]?.value?.data[0]; + } + + add() { + this.formsService.createObject('page-section-list-member'); + } + + getLink(slug: string) { + return '' + slug; } } 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 new file mode 100644 index 0000000..aa35fa0 --- /dev/null +++ b/src/app/_modules/pages/tree/item/pages-tree-item.component.html @@ -0,0 +1,28 @@ +
+
+
+
+
+ +
+

{{page.name}}

+

{{page.type?.title}}

+
+
+
+
+ +
+
+
+ +
+
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 new file mode 100644 index 0000000..e69de29 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 new file mode 100644 index 0000000..ce9e81f --- /dev/null +++ b/src/app/_modules/pages/tree/item/pages-tree-item.component.ts @@ -0,0 +1,76 @@ +import {Component, Input} from '@angular/core'; +import {Router} from "@angular/router"; +import {PagesService} from "@app/_services/pages.service"; +import {FormsService, ListsService} from "@app/_services"; +import {Subscription} from "rxjs"; + +@Component({ + selector: 'pages-tree-item', + templateUrl: 'pages-tree-item.component.html', + styleUrls: ['../pages-tree.component.scss', 'pages-tree-item.component.scss'] +}) +export class PagesTreeItemComponent { + @Input() page: any; + @Input() parent: any; + public active = false; + public touched = false; + public subscription: Subscription; + + constructor(private router: Router, private pagesService: PagesService, private formsService: FormsService, private listsService: ListsService) { + } + + get listId() { + return this.page.id; + } + get parentListId() { + return this.parent?.id || 'pages-tree-root'; + } + + get logo() { + return this.page?.logo?.data.links?.full; + } + get noLogoLetters() { + return this.page.name.replace(' ', '').slice(0, 2); + } + get children() { + return this.page.children?.data; + } + + + ngOnInit() { + this.subscription = this.listsService.controls(this.listId).subscribe(res => { + if (this.touched) this.fetch(); + }); + } + + + fetch() { + let include = ['children.children']; + this.pagesService.show(this.page.id, {include: include.join(',')}).subscribe(res => { + this.page = res.data; + }); + } + + add() { + this.formsService.createModel('page', {extraProps: {parent: this.page.id}}, this.listId); + this.active = true; + } + + edit() { + this.formsService.editModel('page', this.page.id, null, this.listId); + } + + delete() { + if (confirm('r u sure?')) this.pagesService.delete(this.page.id).subscribe(res => { + this.listsService.refresh(this.parentListId); + }); + } + + + toggle() { + this.active = !this.active; + if (this.active) this.fetch(); + } + + +} diff --git a/src/app/_modules/pages/tree/pages-tree.component.html b/src/app/_modules/pages/tree/pages-tree.component.html new file mode 100644 index 0000000..b269be5 --- /dev/null +++ b/src/app/_modules/pages/tree/pages-tree.component.html @@ -0,0 +1,17 @@ +
+
+
+
+ +
+
+ +
+
+
+
+ +
diff --git a/src/app/_modules/pages/tree/pages-tree.component.scss b/src/app/_modules/pages/tree/pages-tree.component.scss new file mode 100644 index 0000000..d2e26cf --- /dev/null +++ b/src/app/_modules/pages/tree/pages-tree.component.scss @@ -0,0 +1,124 @@ +.item { + .bar { + display: flex; + flex-direction: row; + align-items: center; + padding: 16px 0; + border-bottom: #E0E0E0 solid 1px; + .left { + flex-shrink: 0; + width: 40px; + height: 24px; + cursor: pointer; + .toggle { + width: 100%; + height: 100%; + background: transparent url("~src/assets/images/icons/circle_plus_24.svg") 50% 50% no-repeat; + } + } + .mid { + flex-grow: 1; + padding: 0 16px; + .info { + display: flex; + flex-direction: row; + align-items: center; + .logo { + display: flex; + align-items: center; + justify-content: center; + position: relative; + flex-shrink: 0; + width: 40px; + height: 40px; + margin-right: 16px; + border-radius: 100px; + background-color: #F9B417; + img { + width: 100%; + height: 100%; + border-radius: 100px; + object-fit: cover; + background-color: #ffffff; + } + } + .name { + p { + margin: 0; + a { + font-weight: bold; + color: var(--grey-7); + } + &.sub { + font-size: 0.875rem; + color: #7f7f7f; + } + } + } + } + } + .right { + display: flex; + flex-direction: row; + align-items: center; + flex-shrink: 0; + button { + margin-left: 24px; + &.edit { + background-image: url('~src/assets/images/icons/edit_24dp.svg'); + } + &.add { + background-image: url('~src/assets/images/icons/add_library_dark_24.svg'); + } + &.delete { + background-image: url('~src/assets/images/icons/close_24dp.svg'); + } + &.move { + background-image: url('~src/assets/images/icons/drag-n-drop_24.svg'); + cursor: move; + } + } + } + } + .items { + display: none; + padding-left: 56px; + } + &.active { + >.bar { + .left { + .toggle { + background-image: url('~src/assets/images/icons/circle_minus_24.svg'); + } + } + } + >.items { + display: block; + } + } +} + + +@media screen and (max-width: 767px) { + .item { + .bar { + .mid { + padding: 0 12px; + .info .logo { + display: none; + } + } + .right { + display: none; + } + } + .items { + padding-left: 16px; + } + &.company { + .items { + padding-left: 40px; + } + } + } +} diff --git a/src/app/_modules/pages/tree/pages-tree.component.ts b/src/app/_modules/pages/tree/pages-tree.component.ts new file mode 100644 index 0000000..4141732 --- /dev/null +++ b/src/app/_modules/pages/tree/pages-tree.component.ts @@ -0,0 +1,81 @@ +import {Component, Input} from '@angular/core'; +import {Router} from "@angular/router"; +import {PagesService} from "@app/_services/pages.service"; +import {FormsService, ListsService} from "@app/_services"; +import {Subscription} from "rxjs"; +import {SortableOptions} from "sortablejs"; + +@Component({ + selector: 'pages-tree', + templateUrl: 'pages-tree.component.html', + styleUrls: ['pages-tree.component.scss'] +}) +export class PagesTreeComponent { + @Input() parent: any; + public pages = []; + subscription: Subscription; + + public options: SortableOptions = { + group: 'site-pages', + handle: '.move', + onUpdate: (event: any) => { + this.move(event); + }, + onAdd: (event: any) => { + this.move(event); + } + }; + + + constructor(private router: Router, private pagesService: PagesService, private listsService: ListsService, private formsService: FormsService) { + } + + get listId() { + return 'pages-tree-root'; + } + + ngOnInit() { + if (!this.parent) this.subscription = this.listsService.controls(this.listId).subscribe(res => { + this.fetch(); + }); + } + + ngOnChanges() { + this.pages = this.parent?.children?.data; + } + + ngOnDestroy() { + this.subscription?.unsubscribe(); + } + + fetch() { + this.parent ? this.fetchSubpages() : this.fetchRootPages(); + } + + fetchRootPages() { + let include = ['children']; + this.pagesService.root({include: include}).subscribe(res => { + this.pages = res.data; + }); + } + + fetchSubpages() { + let include = ['children.children']; + this.pagesService.show(this.parent.id, {include: include.join(',')}).subscribe(res => { + this.pages = res.data?.children?.data; + }); + } + + + add() { + this.formsService.createModel('page', null, this.listId); + } + + + move(event: any) { + this.pagesService.move(event.item.id, {parent: this.parent?.id, ord: event.newIndex}).subscribe(res => { + }); + } + + +} diff --git a/src/app/_modules/publications/list/list.component.scss b/src/app/_modules/publications/list/list.component.scss index 5814262..da2f023 100644 --- a/src/app/_modules/publications/list/list.component.scss +++ b/src/app/_modules/publications/list/list.component.scss @@ -6,7 +6,6 @@ margin: 24px 0; width: 100%; .toggle { - .button { display: inline-block; font-size: 20px; @@ -15,18 +14,18 @@ padding-left: 8px; &:hover{ color: var(--blue-2); - } + } }; &::before{ content: ""; display: inline-block; width: 24px; height: 24px; - background: url('~src/assets/images/icons/add_cirle_24dp.svg') center no-repeat; + background: url('~src/assets/images/icons/add_cirle_24dp.svg') center no-repeat; } &:hover::before{ background: url('~src/assets/images/icons/add_cirle_hover_24dp.svg') center no-repeat; - } + } } } } diff --git a/src/app/_services/authentication.service.ts b/src/app/_services/authentication.service.ts index 6618787..8147e7e 100644 --- a/src/app/_services/authentication.service.ts +++ b/src/app/_services/authentication.service.ts @@ -19,10 +19,12 @@ export class AuthenticationService { get oauthTokenValue() { return this.token.value; } - public get privileges() { return this.user.value?.privileges; } + get isSuperAdmin() { + return this.privileges?.superAdmin; + } get isAdmin() { return this.privileges?.admin; } diff --git a/src/app/_services/pages.service.ts b/src/app/_services/pages.service.ts index a501629..463e792 100644 --- a/src/app/_services/pages.service.ts +++ b/src/app/_services/pages.service.ts @@ -33,4 +33,8 @@ export class PagesService { deleteBackground(id: string): Observable { return this.http.delete(`${environment.apiUrl}/api/pages/background/${id}`); } + + move(id: string, data: any): Observable { + return this.http.put(`${environment.apiUrl}/api/pages/${id}`, data); + } } diff --git a/src/assets/images/_remove/photo1.png b/src/assets/images/_remove/photo1.png new file mode 100644 index 0000000..58675de Binary files /dev/null and b/src/assets/images/_remove/photo1.png differ diff --git a/src/environments/environment.prod.ts b/src/environments/environment.prod.ts index d2fb6a3..be17cbb 100644 --- a/src/environments/environment.prod.ts +++ b/src/environments/environment.prod.ts @@ -1,6 +1,6 @@ export const environment = { production: true, - apiUrl: 'https://api-faufcc.testnir.ru', + apiUrl: 'https://api-vniigaz-cert-v2.testnir.ru', clientId: 2, - clientSecret: 'TyqSDTRBjmCT2n8QhcZQJ1wqM1aHDajhet9kvFIq', + clientSecret: 'DBRNWIM1QZVgNJEl5PfGZPqbeCv0irPmez7djn8h', };