Skip to content

Commit

Permalink
Merge pull request #246 from oxmap/242
Browse files Browse the repository at this point in the history
242: Sidebar collapse.
  • Loading branch information
nkmdev committed Jul 17, 2018
2 parents 5f7b755 + 0d30a61 commit 847d3cb
Show file tree
Hide file tree
Showing 6 changed files with 100 additions and 18 deletions.
54 changes: 39 additions & 15 deletions src/app/layout/components/sidebar/sidebar.component.html
@@ -1,50 +1,70 @@
<nav class="sidebar" [ngClass]="{sidebarPushRight: isActive}">
<nav class="sidebar" [ngClass]="{sidebarPushRight: isActive, collapsed: collapsed}">
<div class="list-group">
<a routerLink="/dashboard" [routerLinkActive]="['router-link-active']" class="list-group-item">
<i class="fa fa-fw fa-dashboard"></i>&nbsp;{{ 'Dashboard' | translate }}
<i class="fa fa-fw fa-dashboard"></i>&nbsp;
<span>{{ 'Dashboard' | translate }}</span>
</a>
<a [routerLink]="['/charts']" [routerLinkActive]="['router-link-active']" class="list-group-item">
<i class="fa fa-fw fa-bar-chart-o"></i>&nbsp;{{ 'Charts' | translate }}
<i class="fa fa-fw fa-bar-chart-o"></i>&nbsp;
<span>{{ 'Charts' | translate }}</span>
</a>
<a [routerLink]="['/tables']" [routerLinkActive]="['router-link-active']" class="list-group-item">
<i class="fa fa-fw fa-table"></i>&nbsp;{{ 'Tables' | translate }}
<i class="fa fa-fw fa-table"></i>&nbsp;
<span>{{ 'Tables' | translate }}</span>
</a>
<a [routerLink]="['/forms']" [routerLinkActive]="['router-link-active']" class="list-group-item">
<i class="fa fa-fw fa-edit"></i>&nbsp;{{ 'Forms' | translate }}
<i class="fa fa-fw fa-edit"></i>&nbsp;
<span>{{ 'Forms' | translate }}</span>
</a>
<a [routerLink]="['/bs-element']" [routerLinkActive]="['router-link-active']" class="list-group-item">
<i class="fa fa-fw fa-desktop"></i>&nbsp;{{ 'Bootstrap Element' | translate }}
<i class="fa fa-fw fa-desktop"></i>&nbsp;
<span>{{ 'Bootstrap Element' | translate }}</span>
</a>
<a [routerLink]="['/grid']" [routerLinkActive]="['router-link-active']" class="list-group-item">
<i class="fa fa-fw fa-wrench"></i>&nbsp;{{ 'Bootstrap Grid' | translate }}
<i class="fa fa-fw fa-wrench"></i>&nbsp;
<span>{{ 'Bootstrap Grid' | translate }}</span>
</a>
<a [routerLink]="['/components']" [routerLinkActive]="['router-link-active']" class="list-group-item">
<i class="fa fa-th-list"></i>&nbsp;{{ 'Component' | translate }}
<i class="fa fa-th-list"></i>&nbsp;
<span>{{ 'Component' | translate }}</span>
</a>
<div class="nested-menu">
<a class="list-group-item" (click)="addExpandClass('pages')">
<span><i class="fa fa-plus"></i>&nbsp; {{ 'Menu' | translate }}</span>
<i class="fa fa-plus"></i>&nbsp;
<span>{{ 'Menu' | translate }}</span>
</a>
<li class="nested" [class.expand]="showMenu === 'pages'">
<ul class="submenu">
<li>
<a href="javascript:void(0)"><span>{{ 'Submenu' | translate }}</span></a>
<a href="javascript:void(0)">
<i class="fa fa-monument"></i>&nbsp;
<span>{{ 'Submenu' | translate }}</span>
</a>
</li>
<li>
<a href="javascript:void(0)"><span>{{ 'Submenu' | translate }}</span></a>
<a href="javascript:void(0)">
<i class="fa fa-monument"></i>&nbsp;
<span>{{ 'Submenu' | translate }}</span>
</a>
</li>
<li>
<a href="javascript:void(0)"><span>{{ 'Submenu' | translate }}</span></a>
<a href="javascript:void(0)">
<i class="fa fa-monument"></i>&nbsp;
<span>{{ 'Submenu' | translate }}</span>
</a>
</li>
</ul>
</li>
</div>
<a [routerLink]="['/blank-page']" [routerLinkActive]="['router-link-active']" class="list-group-item">
<i class="fa fa-file-o"></i>&nbsp;{{ 'Blank Page' | translate }}
<i class="fa fa-file-o"></i>&nbsp;
<span>{{ 'Blank Page' | translate }}</span>
</a>
<a class="list-group-item more-themes" href="http://www.strapui.com/" >
{{ 'More Theme' | translate }}
<a href="http://www.strapui.com/" class="list-group-item">
<i class="fa fa-caret-down"></i>&nbsp;
<span>{{ 'More Themes' | translate }}</span>
</a>

<div class="header-fields">
<a (click)="rltAndLtr()" class="list-group-item">
<span><i class="fa fa-arrows-h"></i>&nbsp; RTL/LTR</span>
Expand Down Expand Up @@ -124,4 +144,8 @@
</div>
</div>
</div>
<div class="toggle-button" [ngClass]="{collapsed: collapsed}" (click)="toggleCollapsed()">
<i class="fa fa-fw fa-angle-double-left"></i>&nbsp;
<span>{{ 'Collapse Sidebar' | translate }}</span>
</div>
</nav>
33 changes: 33 additions & 0 deletions src/app/layout/components/sidebar/sidebar.component.scss
Expand Up @@ -7,13 +7,15 @@ $topnav-background-color: #222;
left: 235px;
width: 235px;
margin-left: -235px;
margin-bottom: 48px;
border: none;
border-radius: 0;
overflow-y: auto;
background-color: $topnav-background-color;
bottom: 0;
overflow-x: hidden;
padding-bottom: 40px;
white-space: nowrap;
-webkit-transition: all 0.2s ease-in-out;
-moz-transition: all 0.2s ease-in-out;
-ms-transition: all 0.2s ease-in-out;
Expand Down Expand Up @@ -100,6 +102,7 @@ $topnav-background-color: #222;
}
}
}

.nested-menu {
.list-group-item {
cursor: pointer;
Expand Down Expand Up @@ -156,3 +159,33 @@ $topnav-background-color: #222;
border-radius: 3px;
-webkit-box-shadow: inset 0 0 3px rgba(255, 255, 255, 1);
}

.toggle-button {
position: fixed;
width: 236px;
cursor: pointer;
padding: 12px;
bottom: 0;
color: #999;
background: #212529;
i {
font-size: 23px;
}
&:hover {
background: darken($topnav-background-color, 5%);
color: #fff;
}
border-top: 1px solid #999;
-webkit-transition: all 0.2s ease-in-out;
-moz-transition: all 0.2s ease-in-out;
-ms-transition: all 0.2s ease-in-out;
-o-transition: all 0.2s ease-in-out;
transition: all 0.2s ease-in-out;
}

.collapsed {
width: 50px;
span {
display: none;
}
}
10 changes: 9 additions & 1 deletion src/app/layout/components/sidebar/sidebar.component.ts
@@ -1,4 +1,4 @@
import { Component, OnInit } from '@angular/core';
import { Component, Output, EventEmitter, OnInit } from '@angular/core';
import { Router, NavigationEnd } from '@angular/router';
import { TranslateService } from '@ngx-translate/core';

Expand All @@ -9,9 +9,12 @@ import { TranslateService } from '@ngx-translate/core';
})
export class SidebarComponent {
isActive: boolean = false;
collapsed: boolean = false;
showMenu: string = '';
pushRightClass: string = 'push-right';

@Output() collapsedEvent = new EventEmitter<boolean>();

constructor(private translate: TranslateService, public router: Router) {
this.translate.addLangs(['en', 'fr', 'ur', 'es', 'it', 'fa', 'de']);
this.translate.setDefaultLang('en');
Expand Down Expand Up @@ -41,6 +44,11 @@ export class SidebarComponent {
}
}

toggleCollapsed() {
this.collapsed = !this.collapsed;
this.collapsedEvent.emit(this.collapsed);
}

isToggled(): boolean {
const dom: Element = document.querySelector('body');
return dom.classList.contains(this.pushRightClass);
Expand Down
4 changes: 2 additions & 2 deletions src/app/layout/layout.component.html
@@ -1,5 +1,5 @@
<app-header></app-header>
<app-sidebar></app-sidebar>
<section class="main-container">
<app-sidebar (collapsedEvent)="receiveCollapsed($event)"></app-sidebar>
<section class="main-container" [ngClass]="{collapsed: collapedSideBar}">
<router-outlet></router-outlet>
</section>
10 changes: 10 additions & 0 deletions src/app/layout/layout.component.scss
@@ -1,3 +1,10 @@
* {
-webkit-transition: margin-left 0.2s ease-in-out;
-moz-transition: margin-left 0.2s ease-in-out;
-ms-transition: margin-left 0.2s ease-in-out;
-o-transition: margin-left 0.2s ease-in-out;
transition: margin-left 0.2s ease-in-out;
}
.main-container {
margin-top: 56px;
margin-left: 235px;
Expand All @@ -8,6 +15,9 @@
position: relative;
overflow: hidden;
}
.collapsed {
margin-left: 100px;
}
@media screen and (max-width: 992px) {
.main-container {
margin-left: 0px !important;
Expand Down
7 changes: 7 additions & 0 deletions src/app/layout/layout.component.ts
Expand Up @@ -6,7 +6,14 @@ import { Component, OnInit } from '@angular/core';
styleUrls: ['./layout.component.scss']
})
export class LayoutComponent implements OnInit {

collapedSideBar: boolean;

constructor() {}

ngOnInit() {}

receiveCollapsed($event) {
this.collapedSideBar = $event;
}
}

0 comments on commit 847d3cb

Please sign in to comment.