-
diff --git a/src/app/_modules/pages/page/page.component.ts b/src/app/_modules/pages/page/page.component.ts
index 2421246..7e52410 100644
--- a/src/app/_modules/pages/page/page.component.ts
+++ b/src/app/_modules/pages/page/page.component.ts
@@ -44,8 +44,10 @@ export class PageComponent {
ngAfterContentInit() {
this.listsService.controls().subscribe(res => {
this.inited ? this.fetch() : this.inited = true;
-
- });
+ });
+ this.pagesService.editMode.subscribe(
+ mode=>this.editMode = mode
+ )
}
ngOnDestroy() {
@@ -102,22 +104,5 @@ export class PageComponent {
}
- toggleEditMode() {
- this.editMode = !this.editMode;
- }
- editBackground() {
- this.formsService.createModel('page-background', {extraProps: {attach: {pageId: this.page.id}}});
- }
-
- itemSelect(event){
-
- }
-
- removeBackground() {
- if (confirm('Вы деествительно хотите удалить этот фон?')) {
- this.pagesService.deleteBackground(this.page.id).subscribe(res => {
- });
- }
- }
}
diff --git a/src/app/_modules/pages/pages-routing.module.ts b/src/app/_modules/pages/pages-routing.module.ts
index 451cd60..3981825 100644
--- a/src/app/_modules/pages/pages-routing.module.ts
+++ b/src/app/_modules/pages/pages-routing.module.ts
@@ -14,7 +14,6 @@ import {RegistriesModule} from "@app/_modules/registries/registries.module";
import {PublicationsModule} from "@app/_modules/publications/publications.module";
import {TkStructurePageComponent} from "@app/_modules/pages/page/types/tk-structure/tk-structure-page.component";
import {HomepageModule} from "@app/_modules/pages/home/homepage.module";
-import { PagesMenuModule } from './menu/pages-menu.module';
const routes: Routes = [
{path: '', component: HomepageComponent},
@@ -29,8 +28,7 @@ const routes: Routes = [
PageSectionsModule,
PageSidebarsModule,
RegistriesModule,
- PublicationsModule,
- PagesMenuModule
+ PublicationsModule
],
declarations: [
PageComponent,
diff --git a/src/app/_modules/pages/pages.module.ts b/src/app/_modules/pages/pages.module.ts
index a0263ef..dde7b48 100644
--- a/src/app/_modules/pages/pages.module.ts
+++ b/src/app/_modules/pages/pages.module.ts
@@ -6,6 +6,8 @@ import {RegistriesModule} from "@app/_modules/registries/registries.module";
import {PublicationsModule} from "@app/_modules/publications/publications.module";
import {PagesListComponent} from "@app/_modules/pages/list/pages-list.component";
import {PagesListItemComponent} from "@app/_modules/pages/list/item/pages-list-item.component";
+import {PagesMenuComponent} from "@app/_modules/pages/menu/pages-menu.component";
+import {PagesMenuItemComponent} from "@app/_modules/pages/menu/item/pages-menu-item.component";
import {RouterModule} from "@angular/router";
import {PaginationModule} from "@app/_modules/pagination/pagination.module";
import {SearchSectionsComponent} from "@app/_modules/pages/sections/search/search-sections.component";
@@ -14,6 +16,8 @@ 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";
+import { VigetModule } from '../viget/viget.module';
+import { SliderMenuComponent } from './menu/slider-menu/slider-menu.component';
@NgModule({
imports: [
@@ -26,20 +30,24 @@ import {SortablejsModule} from "ngx-sortablejs";
PaginationModule,
SwiperModule,
SortablejsModule,
+ VigetModule
],
declarations: [
+ PagesMenuComponent,
+ PagesMenuItemComponent,
PagesListComponent,
PagesListItemComponent,
PagesTreeComponent,
PagesTreeItemComponent,
SearchSectionsComponent,
SearchSectionsItemComponent,
+ SliderMenuComponent,
],
exports: [
+ PagesMenuComponent,
PagesListComponent,
SearchSectionsComponent,
PagesTreeComponent,
- PagesTreeItemComponent,
]
})
export class PagesModule {}
diff --git a/src/app/_modules/viget/switch/switch.component.scss b/src/app/_modules/viget/switch/switch.component.scss
index 6f068f6..c8982e8 100644
--- a/src/app/_modules/viget/switch/switch.component.scss
+++ b/src/app/_modules/viget/switch/switch.component.scss
@@ -1,7 +1,7 @@
-$bull: 12px;
+$bull: 18px;
$offset: 2px;
-$track: 14px;
+$track: 20px;
div{
border: 1px solid var(--second);
display: inline-flex;
@@ -9,7 +9,7 @@ div{
div{
width: $bull;
height: $bull;
- background-color: var(--second);
+ background-color: var(--second-dis);
border-radius: 50%;
margin: $offset $track $offset $offset;
border: none;
@@ -30,18 +30,21 @@ div.off{
animation: switch-off 0.1s;
}
}
+::ng-deep .switch-host{
+ cursor: pointer;
+}
:host-context(.switch-host:hover){
div.on{
- background-color: var(--active);
+ background-color: var(--prime-act);
div{
background-color: var(--white);
border: none;
}
}
div{
- border-color: var(--active);
+ border-color: var(--prime-act);
div{
- background-color: var(--active);
+ background-color: var(--prime-act);
border: none;
}
}
diff --git a/src/app/_services/pages.service.ts b/src/app/_services/pages.service.ts
index 463e792..c536f8e 100644
--- a/src/app/_services/pages.service.ts
+++ b/src/app/_services/pages.service.ts
@@ -1,13 +1,27 @@
import {Injectable} from '@angular/core';
import {HttpClient} from '@angular/common/http';
import {environment} from '@environments/environment';
-import {Observable} from "rxjs";
+import {Observable, BehaviorSubject} from "rxjs";
+
@Injectable({providedIn: 'root'})
export class PagesService {
constructor(private http: HttpClient) {
+ this.pagesTree = new BehaviorSubject({data:[]})
+ this.changedPages()
}
+ public pagesTree: BehaviorSubject
+ public editMode = new BehaviorSubject(false);
+
+ changedPages(){
+ let include = ['children.children.children.children.children.children.children'];
+ this.root({include: include.join(',')}).subscribe(res => {
+ this.pagesTree.next(res)
+ });
+ }
+
+
root(params?: {}): Observable {
return this.http.get(`${environment.apiUrl}/api/pages/root`, {params: params});
}
diff --git a/src/assets/css/basics.scss b/src/assets/css/basics.scss
index 733b348..bd6a6fb 100644
--- a/src/assets/css/basics.scss
+++ b/src/assets/css/basics.scss
@@ -14,6 +14,8 @@
--prime-act: #004077;
--prime-dis: #A1CAE5;
+
+
--second: #6C6C6C;
--second-hov: #4D4D4D;
--second-act: #2D2D2D;
@@ -77,6 +79,82 @@ body {
margin: 0;
color: var(--second-act);
background-color: var(--light);
+ .wrapper {
+ width: 100%;
+ min-height: 100%;
+ display: flex;
+ flex-direction: column;
+
+ .content {
+ display: flex;
+ flex-direction: row;
+ flex-wrap: wrap;
+ justify-content: center;
+ left-content{
+ flex-basis: 100%;
+ background-color: var(--second);
+ .background{
+ width: 100%;
+ height: 400px;
+ background-size: cover;
+ background-position: center;
+ display: flex;
+ align-items: center;
+ flex-direction: column;
+ border-bottom: 1px solid var(--second-dis);
+ border-top: 1px solid var(--second-dis);
+ .left-content{
+ width: 100%;
+ height: 100%;
+ max-width: 900px;
+ margin: 0 40px;
+ position: relative;
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ .h1-jumbotron{
+ display: inline-block;
+ border-bottom: 12px solid var(--blue-0);
+ font-family: PT Sans Narrow;
+ font-size: 76px;
+ font-weight: 700;
+ line-height:100%;
+ letter-spacing: 0.76px;
+ color: white;
+ }
+ header-user-bar{
+ position: absolute;
+ right: 0;
+ top: 32px;
+ }
+ .menu{
+ position: absolute;
+ left: 0px;
+ top: 32px;
+ }
+ }
+ }
+ .edit-field{
+ height: 58px;
+ width: 100%;
+ background-color: var(--white);
+ display: flex;
+ justify-content: center;
+ .edit-field-row{
+ width: 100%;
+ max-width: 900px;
+ margin: 0 40px;
+ display: flex;
+ justify-content: right;
+ align-items: center;
+ font-size: 20px;
+ gap: 8px;
+ }
+
+ }
+ }
+ }
+ }
}
.limiter {
diff --git a/src/assets/css/main-menu.scss b/src/assets/css/main-menu.scss
index 41d5c94..3804b11 100644
--- a/src/assets/css/main-menu.scss
+++ b/src/assets/css/main-menu.scss
@@ -1,247 +1,81 @@
+header{
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ background-color: var(--white);
+ .header{
+ width: 1360px;
+ height: 80px;
+ margin: 12px 40px;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+
+
+ }
+};
+
+
+
+a.logo{
+ img{
+ width:114px;
+ height: 80px;
+ }
+}
+
+
+
+
+
@media screen and (max-width: 1330px){
-
- .sub-menu{ display: none};
-
- .grid-menu {
- a{
- color: #FFF;
- font-size: 20px;
- font-weight: 700;
+ .header{
+ >pages-menu.top-menu, >a.vnii{
+ display: none;
}
+ }
+
+}
- // level 1
- pages-menu{
- display: flex;
- flex-direction: column;
- flex-wrap: nowrap;
- align-items: stretch;
- align-content: normal;
- grid-gap: 20px;
- margin-top: 20px;
-
-
- pages-menu-item {
- display: flex;
- flex-direction: row;
- flex-wrap: wrap;
- justify-content: flex-start;
- align-items: flex-start;
- align-content: flex-start;
- a {
- flex-basis:50%;
- flex-grow: 1;
- flex-grow: 1;
- flex-shrink: 1;
- align-self: auto;
- order: 0;
+@media screen and (min-width: 1330px){
+ .header{
+ .burger{
+ display: none;
+ }
+ >pages-menu.top-menu{
+ flex-direction: row;
+ gap:24px;
+ pages-menu-item{
+ font-size: 20px;
+ .item{
+ drop-down{
+ display: none;
+ }
}
-
pages-menu{
- padding-left: 40px;
- flex-basis: 100%;
- &.hide-children{display: none;}
- pages-menu-item {
-
- a{
- font-weight: 400;
-
- }
+ position: absolute;
+ height: 68px;
+ width: 100vw;
+ background-color: var(--white);
+ left: 0px;
+ top: 104px;
+ flex-direction: row;
+ gap:24px;
+ align-items: top;
+ justify-content: center;
+ pages-menu-item{
pages-menu{
- pages-menu-item {
- a{
- color: rgba(255, 255, 255, 0.63);
- }
- }
+ display: none;
}
}
-
- }
-
-
-
- .expand{
- flex-shrink: 0;
- flex-basis:24px;
- height: 24px;
- display: inline-block;
- margin-right: 16px;
- }
- .toggle{
- background: url('~src/assets/images/icons/chevron_cirle_right_24dp.svg') center no-repeat;
- transition: transform 0.3s;
- }
- .open {
- transform: rotateZ(90deg);
- }
-
-
- a.current-item span{
- border-bottom: 2px solid rgba(255, 255, 255, 0.63);
}
}
}
}
}
-
-
-@media screen and (min-width: 1330px){
- pages-menu {
- display: none;
- }
-
- // level 1
- .grid-menu>pages-menu {
- width: 100%;
- display: flex;
- align-items: stretch;
- overflow: hidden;
- flex-grow: 0;
- flex-shrink: 0;
- margin: 0;
-
- >pages-menu-item {
- animation: slide-from-top-and-fade-in 0.2s;
- padding: 0 20px;
- margin: 0 -4px;
- display: flex;
- flex-direction: row;
- flex-wrap: nowrap;
- align-items: center;
-
- a {
- color: var(--prime);
- font-size: 20px;
- font-style: normal;
- font-weight: 400;
- line-height: 32px;
- &.parent-item{
- >span{
- display: inline-block;
- border-bottom: 2px solid var(--prime);
- }
- }
- }
-
- // level 2
-
- &.depth{
- >a::after{
- content:"";
- display: inline-block;
- width: 24px;
- height: 24px;
- background-image: url('~src/assets/images/icons/chevron_right_24dp.svg');
- transform: rotateZ(90deg);
- transition: transform 0.3s;
- vertical-align: -6px;
- margin-left: 4px;
- }
- &.opened{
- >a::after{
- transform: rotateZ(-90deg);
- }
- >pages-menu {
- position:absolute ;
- height: 68px;
- background-color: #FFF;
- top:104px;
- left: 0;
- width: 100%;
- display: flex;
- align-items: flex-start;
- justify-content: center;
- overflow: hidden;
- flex-grow: 0;
- flex-shrink: 0;
- >pages-menu-item{
- animation: slide-from-top-and-fade-in 0.2s;
- padding: 0 20px;
- margin: 0 -4px;
- display: flex;
- flex-direction: row;
- flex-wrap: nowrap;
- align-items: center;
- }
- }
- }
- }
-
-
- }
- }
-
- .sub-menu{
- a{
- display: block;
- padding: 10px 20px;
- }
-
- >pages-menu{
- display: block;
- padding: 20px;
- border-radius: 8px;
- background: #FFF;
- box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.27);
-
-
- >pages-menu-item{
-
-
-
- >a.active>span{
- color: var(--prime)
- }
-
- a{
- span{
- color: var(--second);
- font-family: PT Sans Narrow;
- font-size: 24px;
- font-style: normal;
- font-weight: 700;
- line-height: 32px; /* 133.333% */
- letter-spacing: 0.24px;
- }
- }
-
- :hover{
- color:var(--prime-hov)
- }
- .current-item{
- color:var(--prime)
- }
-
- >pages-menu.parent-item{ //second level
- display: block;
- >pages-menu-item{
- >a{
-
- >span{
- font-size: 20px;
- font-family: PT Sans;
- font-style: normal;
- font-weight: 400;
- line-height: 24px;
- }
- }
- >a.active{
- background-color: #EDEDED;
- border-radius: 8px;
- span{
- color:var(--second-act)
- }
- }
- }
- }
- }
- }
-
-
- }
-}
\ No newline at end of file
diff --git a/src/assets/images/ico/burger_blue_40dp.svg b/src/assets/images/ico/burger_blue_40dp.svg
new file mode 100644
index 0000000..0f58fbc
--- /dev/null
+++ b/src/assets/images/ico/burger_blue_40dp.svg
@@ -0,0 +1,5 @@
+