edit switch

master
Boris Voropaev 2023-11-03 14:59:43 +03:00
parent 57797b191f
commit e3a84efda8
20 changed files with 77 additions and 55 deletions

View File

@ -127,3 +127,7 @@
} }
.main-content edit-switch{
display: none;
}

View File

@ -12,9 +12,4 @@
</div> </div>
</div> </div>
</div> </div>
<div class="edit-field" *ngIf="editable"> <edit-switch></edit-switch>
<div class="edit-field-row switch-host" (click)="toggleEditMode()">
Режим редактирования
<switch [val]="editMode"></switch>
</div>
</div>

View File

@ -21,7 +21,6 @@ export class HeaderUserBarComponent {
private router: Router, private router: Router,
private pagesService: PagesService) { private pagesService: PagesService) {
this.subscriptionUser = this.authService.user.subscribe(user => { this.subscriptionUser = this.authService.user.subscribe(user => {
console.log(user)
this.user = user; this.user = user;
}); });
} }

View File

@ -31,38 +31,18 @@ export class LeftContentComponent {
} }
ngOnInit(){ ngOnInit(){
this.routeSubscription = this.router.events.subscribe(event => {
if (event instanceof NavigationEnd) this.onNavigationEnd(event);
});
this.pagesService.editMode.subscribe( this.pagesService.editMode.subscribe(
mode => { mode => {
this.editMode = mode; this.editMode = mode;
} }
) )
} this.pagesService.currentPage.subscribe(
page => {
onNavigationEnd(event: NavigationEnd) {
let url = event.url.split('(')[0];
url = url.split('?')[0];
if (url !== this.url) {
this.url = url;
this.fetch()
}
}
fetch(){
let include = [
'permissions',
'parents'
];
this.pagesService.find(this.url, {include: include.join(',')}).subscribe(
resp => {
let page = resp?.data;
if (page){ if (page){
this.background = page.image?.data?.links?.full; this.background = page.image?.data?.links?.full;
if (this.background) this.background = `url(${this.background})`; if (this.background) this.background = `url(${this.background})`;
this.pageName = (page.parents.data[2]||page).name; this.pageName = (page.parents?.data[2]||page).name;
this.editable = page.permissions.edit || page.permissions.anything; this.editable = page.permissions?.edit || page.permissions?.anything;
this.pageID = page.id this.pageID = page.id
}else{ }else{
this.pageName = null; this.pageName = null;
@ -73,10 +53,6 @@ export class LeftContentComponent {
) )
} }
toggleEditMode(){
this.pagesService.editMode.next(!this.editMode)
}
editBackground() { editBackground() {
this.formsService.createModel('page-background', {extraProps: {attach: {pageId: this.pageID}}}); this.formsService.createModel('page-background', {extraProps: {attach: {pageId: this.pageID}}});
} }

View File

@ -1,10 +1,13 @@
<div class="content" *ngIf="page"> <div class="content" *ngIf="page">
<div class="nav-info switch-host" *ngIf="isEditable"> <!-- <div class="nav-info switch-host" *ngIf="isEditable">
<div class="toggle" (click)="toggleEditMode()"> <div class="toggle" (click)="toggleEditMode()">
<div class="label">Режим редактирования</div> <div class="label">Режим редактирования</div>
<switch [val]="editMode"></switch> <switch [val]="editMode"></switch>
</div> </div>
</div> </div> -->
<edit-switch></edit-switch>
<div class="limiter"> <div class="limiter">
<page-breadcrumbs [page]="page"></page-breadcrumbs> <page-breadcrumbs [page]="page"></page-breadcrumbs>

View File

@ -45,6 +45,11 @@ export class PageComponent {
this.listsService.controls().subscribe(res => { this.listsService.controls().subscribe(res => {
this.inited ? this.fetch() : this.inited = true; this.inited ? this.fetch() : this.inited = true;
}); });
this.pagesService.editMode.subscribe(
mode => {
this.editMode = mode;
}
)
} }
ngOnDestroy() { ngOnDestroy() {
@ -75,16 +80,13 @@ export class PageComponent {
]; ];
this.pagesService.find(this.url, {include: include.join(',')}).subscribe(res => { this.pagesService.find(this.url, {include: include.join(',')}).subscribe(res => {
this.page = res?.data; this.page = res?.data;
this.pagesService.currentPage.next(this.page)
this.loading = false; this.loading = false;
}, error => { }, error => {
this.loading = false; this.loading = false;
}); });
} }
toggleEditMode() {
this.editMode = !this.editMode;
}
editBackground() { editBackground() {
this.formsService.createModel('page-background', {extraProps: {attach: {pageId: this.page.id}}}); this.formsService.createModel('page-background', {extraProps: {attach: {pageId: this.page.id}}});
} }

View File

@ -34,7 +34,7 @@ const routes: Routes = [
PageSidebarsModule, PageSidebarsModule,
RegistriesModule, RegistriesModule,
PublicationsModule, PublicationsModule,
VigetModule VigetModule,
], ],
declarations: [ declarations: [
PageComponent, PageComponent,
@ -43,10 +43,10 @@ const routes: Routes = [
ContentPageComponent, ContentPageComponent,
PublicationsPageComponent, PublicationsPageComponent,
RegistryPageComponent, RegistryPageComponent,
TkStructurePageComponent TkStructurePageComponent,
], ],
exports: [ exports: [
RouterModule RouterModule,
] ]
}) })
export class PagesRoutingModule {} export class PagesRoutingModule {}

View File

@ -19,6 +19,7 @@ import {SortablejsModule} from "@dustfoundation/ngx-sortablejs";
import { VigetModule } from '../viget/viget.module'; import { VigetModule } from '../viget/viget.module';
import { SliderMenuComponent } from './menu/slider-menu/slider-menu.component'; import { SliderMenuComponent } from './menu/slider-menu/slider-menu.component';
@NgModule({ @NgModule({
imports: [ imports: [
CommonModule, CommonModule,
@ -41,13 +42,13 @@ import { SliderMenuComponent } from './menu/slider-menu/slider-menu.component';
PagesTreeItemComponent, PagesTreeItemComponent,
SearchSectionsComponent, SearchSectionsComponent,
SearchSectionsItemComponent, SearchSectionsItemComponent,
SliderMenuComponent, SliderMenuComponent
], ],
exports: [ exports: [
PagesMenuComponent, PagesMenuComponent,
PagesListComponent, PagesListComponent,
SearchSectionsComponent, SearchSectionsComponent,
PagesTreeComponent, PagesTreeComponent
] ]
}) })
export class PagesModule {} export class PagesModule {}

View File

@ -18,7 +18,7 @@ export class PageMenuComponent {
} }
ngOnInit() { ngOnInit() {
//console.log(this.section)
} }

View File

@ -13,7 +13,6 @@ export class DocumentSectionComponent {
} }
ngOnInit() { ngOnInit() {
// console.log(this.section);
} }
get title(){ get title(){

View File

@ -15,7 +15,7 @@ export class ImageGroupSectionComponent {
} }
ngOnInit() { ngOnInit() {
// console.log(this.section);
} }

View File

@ -30,7 +30,6 @@ export class MemberSectionListComponent {
} }
}) })
}) })
console.log(fields['member-doc'].links.download);
return fields return fields
} }

View File

@ -23,7 +23,7 @@ export class PublicationsListItemMenuComponent {
} }
ngOnInit() { ngOnInit() {
//console.log(this.data);
} }
edit(id: string) { edit(id: string) {

View File

@ -0,0 +1,6 @@
<div class="edit-field" *ngIf="editable">
<div class="edit-field-row switch-host" (click)="toggle()">
Режим редактирования
<switch [val]="editMode"></switch>
</div>
</div>

View File

@ -0,0 +1,36 @@
import {Component,OnInit} from '@angular/core';
import {PagesService} from "@app/_services/pages.service";
import {Subscription} from "rxjs";
@Component({
selector: 'edit-switch',
templateUrl: 'edit-switch.component.html',
styleUrls: ['edit-switch.component.scss']
})
export class EditSwitch implements OnInit {
public editMode = false;
public editable:string;
constructor(
private pagesService: PagesService,
// private subscription: Subscription
) {}
ngOnInit(){
console.log('es',this.pagesService.currentPage)
this.pagesService.currentPage.subscribe( page =>{
console.log('PAGE',page)
this.editable = page.permissions?.edit || page.permissions?.anything;
});
this.pagesService.editMode.subscribe(
editMode => this.editMode = editMode
)
}
toggle(){
this.pagesService.editMode.next(!this.editMode)
}
}

View File

@ -6,6 +6,7 @@ import { QRCodeModule } from "angularx-qrcode";
import {DropDownComponent } from "./drop-down/drop-down.component"; import {DropDownComponent } from "./drop-down/drop-down.component";
import { SliderComponent } from './slider/slider.component'; import { SliderComponent } from './slider/slider.component';
import { SwitchComponent } from './switch/switch.component'; import { SwitchComponent } from './switch/switch.component';
import { EditSwitch } from "./edit-switch/edit-switch.component";
@NgModule({ @NgModule({
@ -19,13 +20,15 @@ import { SwitchComponent } from './switch/switch.component';
DropDownComponent, DropDownComponent,
SliderComponent, SliderComponent,
SwitchComponent, SwitchComponent,
EditSwitch
], ],
exports: [ exports: [
IcoComponent, IcoComponent,
QRCodeComponent, QRCodeComponent,
DropDownComponent, DropDownComponent,
SliderComponent, SliderComponent,
SwitchComponent SwitchComponent,
EditSwitch
] ]
}) })
export class VigetModule { export class VigetModule {

View File

@ -50,10 +50,8 @@ export class AuthenticationService {
} }
checkUser(params?: any) { checkUser(params?: any) {
console.log('checkUser',params)
if (this.token.value) { if (this.token.value) {
if (!params) params = {include: 'avatar,privileges'}; if (!params) params = {include: 'avatar,privileges'};
console.log('URL',environment.apiUrl)
this.http.get(`${environment.apiUrl}/api/me`, {params: params}).subscribe((res: any) => { this.http.get(`${environment.apiUrl}/api/me`, {params: params}).subscribe((res: any) => {
this.user.next(res?.data); this.user.next(res?.data);
}); });

View File

@ -13,6 +13,7 @@ export class PagesService {
public pagesTree: BehaviorSubject<any> public pagesTree: BehaviorSubject<any>
public editMode = new BehaviorSubject<boolean>(false); public editMode = new BehaviorSubject<boolean>(false);
public currentPage = new BehaviorSubject<any>({data:[]})
changedPages(){ changedPages(){
let include = ['children.children.children.children.children.children.children']; let include = ['children.children.children.children.children.children.children'];