mirror of https://github.com/akveo/blur-admin
sidebar refactoring, fix amcharts pie chart on small screens, fix top right dashboard widget, etc.
parent
d4a61e2052
commit
f3d20d65e7
|
@ -15,7 +15,6 @@
|
||||||
"tests"
|
"tests"
|
||||||
],
|
],
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"AngularHammer": "ryanmullins-angular-hammer#~2.1.10",
|
|
||||||
"Chart.js": "~1.0.2",
|
"Chart.js": "~1.0.2",
|
||||||
"Ionicons": "ionicons#~2.0.1",
|
"Ionicons": "ionicons#~2.0.1",
|
||||||
"amcharts": "~3.15.2",
|
"amcharts": "~3.15.2",
|
||||||
|
@ -26,6 +25,7 @@
|
||||||
"angular-slimscroll": "~1.1.5",
|
"angular-slimscroll": "~1.1.5",
|
||||||
"angular-smart-table": "~2.1.3",
|
"angular-smart-table": "~2.1.3",
|
||||||
"angular-toastr": "~1.5.0",
|
"angular-toastr": "~1.5.0",
|
||||||
|
"angular-touch": "~1.4.6",
|
||||||
"angular-ui-sortable": "~0.13.4",
|
"angular-ui-sortable": "~0.13.4",
|
||||||
"animate.css": "~3.4.0",
|
"animate.css": "~3.4.0",
|
||||||
"bootstrap": "~3.3.5",
|
"bootstrap": "~3.3.5",
|
||||||
|
@ -34,7 +34,6 @@
|
||||||
"bootstrap-tagsinput": "~0.5.0",
|
"bootstrap-tagsinput": "~0.5.0",
|
||||||
"font-awesome": "fontawesome#~4.4.0",
|
"font-awesome": "fontawesome#~4.4.0",
|
||||||
"fullcalendar": "~2.4.0",
|
"fullcalendar": "~2.4.0",
|
||||||
"hammerjs": "hammer.js#~2.0.4",
|
|
||||||
"highlight": "~8.8.0",
|
"highlight": "~8.8.0",
|
||||||
"jquery": "~2.1.4",
|
"jquery": "~2.1.4",
|
||||||
"jquery-ui": "~1.11.4",
|
"jquery-ui": "~1.11.4",
|
||||||
|
|
|
@ -81,6 +81,7 @@ gulp.task('js', function () {
|
||||||
'bower_components/angular/angular.min.js',
|
'bower_components/angular/angular.min.js',
|
||||||
'src/assets/js/global-variables.js',
|
'src/assets/js/global-variables.js',
|
||||||
'bower_components/angular-route/angular-route.min.js',
|
'bower_components/angular-route/angular-route.min.js',
|
||||||
|
'bower_components/angular-touch/angular-touch.min.js',
|
||||||
'bower_components/jquery-ui/jquery-ui.min.js',
|
'bower_components/jquery-ui/jquery-ui.min.js',
|
||||||
'bower_components/bootstrap/dist/js/bootstrap.min.js',
|
'bower_components/bootstrap/dist/js/bootstrap.min.js',
|
||||||
'bower_components/highlight/src/highlight.js',
|
'bower_components/highlight/src/highlight.js',
|
||||||
|
@ -89,7 +90,7 @@ gulp.task('js', function () {
|
||||||
'bower_components/bootstrap-tagsinput/dist/bootstrap-tagsinput.min.js',
|
'bower_components/bootstrap-tagsinput/dist/bootstrap-tagsinput.min.js',
|
||||||
'bower_components/moment/min/moment.min.js',
|
'bower_components/moment/min/moment.min.js',
|
||||||
'bower_components/amcharts/dist/amcharts/amcharts.js',
|
'bower_components/amcharts/dist/amcharts/amcharts.js',
|
||||||
'bower_components/amcharts/dist/amcharts/plugins/responsive/responsive.js',
|
'bower_components/amcharts/dist/amcharts/plugins/responsive/responsive.min.js',
|
||||||
'bower_components/amcharts/dist/amcharts/serial.js',
|
'bower_components/amcharts/dist/amcharts/serial.js',
|
||||||
'bower_components/amcharts/dist/amcharts/funnel.js',
|
'bower_components/amcharts/dist/amcharts/funnel.js',
|
||||||
'bower_components/amcharts/dist/amcharts/pie.js',
|
'bower_components/amcharts/dist/amcharts/pie.js',
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
var blurAdminApp = angular.module('BlurAdmin', [
|
var blurAdminApp = angular.module('BlurAdmin', [
|
||||||
'ui.sortable',
|
'ui.sortable',
|
||||||
'ngRoute',
|
'ngRoute',
|
||||||
|
'ngTouch',
|
||||||
'BlurAdmin.dashboard',
|
'BlurAdmin.dashboard',
|
||||||
'BlurAdmin.buttonsPage',
|
'BlurAdmin.buttonsPage',
|
||||||
'BlurAdmin.chartsPage',
|
'BlurAdmin.chartsPage',
|
||||||
|
@ -16,8 +17,7 @@ var blurAdminApp = angular.module('BlurAdmin', [
|
||||||
'BlurAdmin.typographyPage',
|
'BlurAdmin.typographyPage',
|
||||||
'toastr',
|
'toastr',
|
||||||
'smart-table',
|
'smart-table',
|
||||||
'ui.slimscroll',
|
'ui.slimscroll'
|
||||||
'hmTouchEvents'
|
|
||||||
]).config(['$routeProvider', 'toastrConfig', function ($routeProvider, toastrConfig) {
|
]).config(['$routeProvider', 'toastrConfig', function ($routeProvider, toastrConfig) {
|
||||||
$routeProvider.otherwise({redirectTo: '/dashboard'});
|
$routeProvider.otherwise({redirectTo: '/dashboard'});
|
||||||
|
|
||||||
|
|
|
@ -8,4 +8,6 @@ blurAdminApp.controller('mainCtrl', ['$scope', '$timeout', function ($scope, $ti
|
||||||
$timeout(function () {
|
$timeout(function () {
|
||||||
pageLoaded = true;
|
pageLoaded = true;
|
||||||
}, 4000);
|
}, 4000);
|
||||||
|
|
||||||
|
$scope.isMenuCollapsed = window.innerWidth <= resWidthCollapseSidebar;
|
||||||
}]);
|
}]);
|
|
@ -116,11 +116,6 @@ a.al-sidebar-list-link {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.sidebar-overlap {
|
|
||||||
background: rgba(0, 0, 0, .75);
|
|
||||||
@extend .sidebar-full-width;
|
|
||||||
}
|
|
||||||
|
|
||||||
.slimScrollBar, .slimScrollRail {
|
.slimScrollBar, .slimScrollRail {
|
||||||
border-radius: 0px !important;
|
border-radius: 0px !important;
|
||||||
width: 4px !important;
|
width: 4px !important;
|
||||||
|
@ -157,6 +152,20 @@ a.al-sidebar-list-link {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@mixin layout-collapsed() {
|
||||||
|
.al-main {
|
||||||
|
margin-left: 70px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.al-footer {
|
||||||
|
padding-left: 83px
|
||||||
|
}
|
||||||
|
|
||||||
|
.back-top {
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@mixin default-sublist() {
|
@mixin default-sublist() {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
|
@ -299,66 +308,84 @@ a.al-sidebar-list-link {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.collapsed-sidebar {
|
@mixin sidebar-overlap() {
|
||||||
@include layout-collapsed();
|
.al-sidebar {
|
||||||
@include sidebar-collapsed();
|
width: $sidebar-width;
|
||||||
|
background: rgba(0, 0, 0, .75);
|
||||||
|
a.al-logo {
|
||||||
|
display: block;
|
||||||
|
span {
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
a.al-logo-small-rez {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.fa-angle-down, .fa-angle-up {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.al-sidebar-list-block {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.al-sidebar-sublist {
|
||||||
|
@include default-sublist();
|
||||||
|
top: auto;
|
||||||
|
left: auto;
|
||||||
|
background: none;
|
||||||
|
width: auto;
|
||||||
|
overflow: visible;
|
||||||
|
transition: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.collapse-menu-link {
|
||||||
|
@include bg-translucent-dark(0.75);
|
||||||
|
i {
|
||||||
|
transform: rotate(0deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar-hover-elem, .sidebar-select-elem {
|
||||||
|
left: $sidebar-width - 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search {
|
||||||
|
width: 162px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 1120px) {
|
||||||
|
.menu-collapsed {
|
||||||
|
@include layout-collapsed();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: $resXS) {
|
||||||
|
.menu-collapsed {
|
||||||
|
@include sidebar-collapsed();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (max-width: 1120px) and (min-width: $resXS) {
|
@media (max-width: 1120px) and (min-width: $resXS) {
|
||||||
body {
|
@include layout-collapsed();
|
||||||
@include layout-collapsed();
|
}
|
||||||
|
|
||||||
|
@media (max-width: 1120px) {
|
||||||
|
.menu-expand {
|
||||||
|
@include sidebar-overlap();
|
||||||
}
|
}
|
||||||
@include sidebar-collapsed();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (max-width: $resXS) {
|
@media (max-width: $resXS) {
|
||||||
@include sidebar-hidden();
|
.menu-collapsed {
|
||||||
.collapsed-sidebar {
|
|
||||||
@include sidebar-hidden();
|
@include sidebar-hidden();
|
||||||
}
|
}
|
||||||
}
|
.al-main {
|
||||||
|
margin-left: 0;
|
||||||
.sidebar-full-width {
|
|
||||||
width: $sidebar-width;
|
|
||||||
a.al-logo {
|
|
||||||
display: block;
|
|
||||||
span {
|
|
||||||
padding-left: 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
a.al-logo-small-rez {
|
.al-footer {
|
||||||
display: none;
|
padding-left: 0;
|
||||||
}
|
|
||||||
.fa-angle-down, .fa-angle-up {
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.al-sidebar-list-block {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
.al-sidebar-sublist {
|
|
||||||
@include default-sublist();
|
|
||||||
top: auto;
|
|
||||||
left: auto;
|
|
||||||
background: none;
|
|
||||||
width: auto;
|
|
||||||
overflow: visible;
|
|
||||||
transition: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.collapse-menu-link {
|
|
||||||
@include bg-translucent-dark(0.75);
|
|
||||||
i {
|
|
||||||
transform: rotate(0deg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.sidebar-hover-elem, .sidebar-select-elem {
|
|
||||||
left: $sidebar-width - 4;
|
|
||||||
}
|
|
||||||
|
|
||||||
.search {
|
|
||||||
width: 162px;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,16 +1,15 @@
|
||||||
<aside class="al-sidebar" ng-class="{'sidebar-overlap': showSidebar}">
|
<aside class="al-sidebar" ng-swipe-right="menuExpand()" ng-swipe-left="menuCollapse()">
|
||||||
<a href="#/dashboard" class="al-logo clearfix">
|
<a href="#/dashboard" class="al-logo clearfix">
|
||||||
B<span>lur Admin</span>
|
B<span>lur Admin</span>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<a href class="collapse-menu-link clearfix" ng-click="menuExpand()">
|
<a href class="collapse-menu-link clearfix" ng-click="menuToggle()">
|
||||||
<i class="fa fa-angle-double-left"></i>
|
<i class="fa fa-angle-double-left"></i>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<div class="search">
|
<div class="search">
|
||||||
<!--<label for="searchInput" ng-click="openSidebar()"><i class="ion-ios-search-strong"></i></label>-->
|
|
||||||
<i class="ion-ios-search-strong" ng-click="startSearch()"></i>
|
<i class="ion-ios-search-strong" ng-click="startSearch()"></i>
|
||||||
<input id="searchInput" type="text" placeholder="Search for..." ng-keypress="search($event)" ng-blur="collapseSidebar()">
|
<input id="searchInput" type="text" placeholder="Search for..." ng-keypress="search($event)" ng-blur="collapseSidebarIfSmallRes()">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="al-sidebar-list-block" ng-mouseleave="hideHoverElement()">
|
<div class="al-sidebar-list-block" ng-mouseleave="hideHoverElement()">
|
||||||
|
@ -18,7 +17,7 @@
|
||||||
<li ng-repeat="item in menuItems" class="al-sidebar-list-item"
|
<li ng-repeat="item in menuItems" class="al-sidebar-list-item"
|
||||||
ng-class="{'selected': item.selected, 'with-sub-menu': item.subMenu}" ng-mouseover="hoverItem($event, item)">
|
ng-class="{'selected': item.selected, 'with-sub-menu': item.subMenu}" ng-mouseover="hoverItem($event, item)">
|
||||||
|
|
||||||
<a href="{{ item.root }}" ng-if="!item.subMenu" class="al-sidebar-list-link" ng-click="collapseSidebar()">
|
<a href="{{ item.root }}" ng-if="!item.subMenu" class="al-sidebar-list-link" ng-click="collapseSidebarIfSmallRes()">
|
||||||
<i class="{{ item.icon }}"></i><span>{{ item.title }}</span>
|
<i class="{{ item.icon }}"></i><span>{{ item.title }}</span>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
|
@ -31,7 +30,7 @@
|
||||||
|
|
||||||
<ul ng-if="item.subMenu" class="al-sidebar-sublist" ng-class="{expanded: item.selected, 'slide-right': item.slideRight}">
|
<ul ng-if="item.subMenu" class="al-sidebar-sublist" ng-class="{expanded: item.selected, 'slide-right': item.slideRight}">
|
||||||
<li ng-repeat="subitem in item.subMenu" ng-class="{selected: subitem.selected}">
|
<li ng-repeat="subitem in item.subMenu" ng-class="{selected: subitem.selected}">
|
||||||
<a href="{{ subitem.root }}" ng-click="collapseSidebar()">{{ subitem.title }}</a>
|
<a href="{{ subitem.root }}" ng-click="collapseSidebarIfSmallRes()">{{ subitem.title }}</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
|
|
@ -4,13 +4,10 @@ blurAdminApp.directive('sidebar', function () {
|
||||||
return {
|
return {
|
||||||
restrict: 'E',
|
restrict: 'E',
|
||||||
templateUrl: 'app/components/sidebar/sidebar.html',
|
templateUrl: 'app/components/sidebar/sidebar.html',
|
||||||
|
scope: {
|
||||||
|
isMenuCollapsed: '='
|
||||||
|
},
|
||||||
controller: ['$scope', '$element', '$window', '$timeout', '$location', function ($scope, $element, $window, $timeout, $location) {
|
controller: ['$scope', '$element', '$window', '$timeout', '$location', function ($scope, $element, $window, $timeout, $location) {
|
||||||
|
|
||||||
var resWidthCollapseSidebar = 1120;
|
|
||||||
var resWidthHideSidebar = 500;
|
|
||||||
var body = $('body');
|
|
||||||
var collapsedClass = 'collapsed-sidebar';
|
|
||||||
|
|
||||||
$scope.menuItems = [
|
$scope.menuItems = [
|
||||||
{
|
{
|
||||||
title: 'Dashboard',
|
title: 'Dashboard',
|
||||||
|
@ -118,34 +115,33 @@ blurAdminApp.directive('sidebar', function () {
|
||||||
selectMenuItem();
|
selectMenuItem();
|
||||||
});
|
});
|
||||||
|
|
||||||
$scope.menuExpand = function () {
|
$scope.menuExpand = function() {
|
||||||
if (window.innerWidth > resWidthCollapseSidebar) {
|
$scope.isMenuCollapsed = false;
|
||||||
body.toggleClass(collapsedClass);
|
};
|
||||||
$scope.showSidebar = false;
|
|
||||||
} else {
|
|
||||||
body.removeClass(collapsedClass);
|
|
||||||
if (!$scope.selectElemTop) {
|
|
||||||
changeSelectElemTopValue();
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($scope.showSidebar) {
|
$scope.menuCollapse = function() {
|
||||||
$scope.showSidebar = false;
|
$scope.isMenuCollapsed = true;
|
||||||
} else {
|
};
|
||||||
$timeout(function () {
|
|
||||||
$scope.showSidebar = true;
|
$scope.menuToggle = function () {
|
||||||
}, 20);
|
$scope.isMenuCollapsed = !$scope.isMenuCollapsed;
|
||||||
}
|
|
||||||
|
if (!$scope.isMenuCollapsed && !$scope.selectElemTop) {
|
||||||
|
changeSelectElemTopValue();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
function isSidebarCollapsed() {
|
// watch window resize to change menu collapsed state if needed
|
||||||
return body.hasClass(collapsedClass) || (!$scope.showSidebar && window.innerWidth <= resWidthCollapseSidebar && window.innerWidth > resWidthHideSidebar);
|
$(window).resize(function(){
|
||||||
}
|
$scope.$apply(function(){
|
||||||
|
$scope.isMenuCollapsed = $(window).width() <= resWidthCollapseSidebar;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
$scope.toggleSubMenu = function ($event, item) {
|
$scope.toggleSubMenu = function ($event, item) {
|
||||||
var submenu = $($event.currentTarget).next();
|
var submenu = $($event.currentTarget).next();
|
||||||
|
|
||||||
if (isSidebarCollapsed()) {
|
if ($scope.isMenuCollapsed) {
|
||||||
if (!item.slideRight) {
|
if (!item.slideRight) {
|
||||||
$timeout(function () {
|
$timeout(function () {
|
||||||
item.slideRight = true;
|
item.slideRight = true;
|
||||||
|
@ -181,9 +177,9 @@ blurAdminApp.directive('sidebar', function () {
|
||||||
$scope.showHoverElem = false;
|
$scope.showHoverElem = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
$scope.collapseSidebar = function() {
|
$scope.collapseSidebarIfSmallRes = function() {
|
||||||
if (window.innerWidth <= resWidthCollapseSidebar) {
|
if (window.innerWidth <= resWidthCollapseSidebar) {
|
||||||
$scope.showSidebar = false;
|
$scope.isMenuCollapsed = true;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -192,26 +188,19 @@ blurAdminApp.directive('sidebar', function () {
|
||||||
}
|
}
|
||||||
|
|
||||||
$scope.startSearch = function() {
|
$scope.startSearch = function() {
|
||||||
if (window.innerWidth <= resWidthCollapseSidebar && window.innerWidth > resWidthHideSidebar) {
|
if ($scope.isMenuCollapsed) {
|
||||||
$scope.showSidebar = true;
|
$scope.isMenuCollapsed = false;
|
||||||
$timeout(function(){
|
$timeout(function(){
|
||||||
focusSearchInput();
|
focusSearchInput();
|
||||||
}, 900);
|
}, 900);
|
||||||
} else {
|
} else {
|
||||||
if (body.hasClass(collapsedClass)) {
|
focusSearchInput();
|
||||||
body.removeClass(collapsedClass);
|
|
||||||
$timeout(function(){
|
|
||||||
focusSearchInput();
|
|
||||||
}, 900);
|
|
||||||
} else {
|
|
||||||
focusSearchInput();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
$scope.search = function(event) {
|
$scope.search = function(event) {
|
||||||
if (event.which === 13) {
|
if (event.which === 13) {
|
||||||
$scope.collapseSidebar();
|
$scope.collapseSidebarIfSmallRes();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}]
|
}]
|
||||||
|
|
|
@ -13,12 +13,9 @@
|
||||||
height: 360px;
|
height: 360px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#pieChart {
|
|
||||||
height: 400px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pieChart {
|
#pieChart {
|
||||||
max-width: 1120px;
|
max-width: 1120px;
|
||||||
|
height: 400px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.amcharts-pie-slice {
|
.amcharts-pie-slice {
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
<div id="pieChart" class="admin-chart" ng-controller="pieChartCtrl"></div>
|
<div id="pieChart" class="admin-chart" ng-controller="pieChartCtrl"></div>
|
||||||
|
|
|
@ -85,7 +85,35 @@ blurAdminApp.controller('pieChartCtrl', ['$scope', '$timeout', '$element', funct
|
||||||
marginLeft: 0,
|
marginLeft: 0,
|
||||||
marginRight: 0,
|
marginRight: 0,
|
||||||
pullOutRadius: 0,
|
pullOutRadius: 0,
|
||||||
pathToImages: 'img/'
|
pathToImages: 'img/',
|
||||||
|
responsive: {
|
||||||
|
enabled: true,
|
||||||
|
rules: [
|
||||||
|
// at 900px wide, we hide legend
|
||||||
|
{
|
||||||
|
maxWidth: 900,
|
||||||
|
overrides: {
|
||||||
|
legend: {
|
||||||
|
enabled: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// at 200 px we hide value axis labels altogether
|
||||||
|
{
|
||||||
|
maxWidth: 200,
|
||||||
|
overrides: {
|
||||||
|
valueAxes: {
|
||||||
|
labelsEnabled: false
|
||||||
|
},
|
||||||
|
marginTop: 30,
|
||||||
|
marginBottom: 30,
|
||||||
|
marginLeft: 30,
|
||||||
|
marginRight: 30
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
pieChart.addListener('init', handleInit);
|
pieChart.addListener('init', handleInit);
|
||||||
|
|
|
@ -7,12 +7,18 @@
|
||||||
width: 100%;
|
width: 100%;
|
||||||
float: left;
|
float: left;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
margin-top: -23px;
|
margin-top: -11px;
|
||||||
& > div {
|
& > div {
|
||||||
padding: 0 0 0 540px;
|
padding: 0 0 0 540px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.channels-info-item {
|
||||||
|
margin-bottom: 19px;
|
||||||
|
p {
|
||||||
|
margin-bottom: 9px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.traffic-chart {
|
.traffic-chart {
|
||||||
width: 500px;
|
width: 500px;
|
||||||
|
@ -67,13 +73,14 @@
|
||||||
|
|
||||||
.channel-change {
|
.channel-change {
|
||||||
display: block;
|
display: block;
|
||||||
margin-bottom: 8px;
|
margin-bottom: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.channel-progress {
|
.channel-progress {
|
||||||
height: 16px;
|
height: 16px;
|
||||||
border-radius: 0;
|
border-radius: 0;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
margin-bottom: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@mixin doughnut-center() {
|
@mixin doughnut-center() {
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<div class="channels-info">
|
<div class="channels-info">
|
||||||
<div>
|
<div>
|
||||||
<div class="channels-info-item">
|
<div class="channels-info-item">
|
||||||
<h5>Direct Traffic</h5>
|
<p>Direct Traffic</p>
|
||||||
<span class="text-muted channel-change">70% growth in last mont</span>
|
<span class="text-muted channel-change">70% growth in last mont</span>
|
||||||
<div class="progress progress-sm channel-progress">
|
<div class="progress progress-sm channel-progress">
|
||||||
<div class="progress-bar progress-bar-success" role="progressbar"
|
<div class="progress-bar progress-bar-success" role="progressbar"
|
||||||
|
@ -13,7 +13,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="channels-info-item">
|
<div class="channels-info-item">
|
||||||
<h5>Search engines</h5>
|
<p>Search engines</p>
|
||||||
<span class="text-muted channel-change">42% growth in last month</span>
|
<span class="text-muted channel-change">42% growth in last month</span>
|
||||||
<div class="progress progress-sm channel-progress">
|
<div class="progress progress-sm channel-progress">
|
||||||
<div class="progress-bar progress-bar-danger" role="progressbar"
|
<div class="progress-bar progress-bar-danger" role="progressbar"
|
||||||
|
@ -23,7 +23,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="channels-info-item">
|
<div class="channels-info-item">
|
||||||
<h5>Ad Campaigns</h5>
|
<p>Ad Campaigns</p>
|
||||||
<span class="text-muted channel-change">87% growth in last mont</span>
|
<span class="text-muted channel-change">87% growth in last mont</span>
|
||||||
<div class="progress progress-sm channel-progress">
|
<div class="progress progress-sm channel-progress">
|
||||||
<div class="progress-bar progress-bar-primary" role="progressbar"
|
<div class="progress-bar progress-bar-primary" role="progressbar"
|
||||||
|
|
|
@ -209,15 +209,4 @@ a.al-logo-small-rez {
|
||||||
float: none;
|
float: none;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
@media (max-width: $resXS) {
|
|
||||||
body, .collapsed-sidebar {
|
|
||||||
.al-main {
|
|
||||||
margin-left: 0;
|
|
||||||
}
|
|
||||||
.al-footer {
|
|
||||||
padding-left: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
|
@ -43,18 +43,4 @@
|
||||||
&:-ms-input-placeholder {
|
&:-ms-input-placeholder {
|
||||||
color: $color;
|
color: $color;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
@mixin layout-collapsed() {
|
|
||||||
.al-main {
|
|
||||||
margin-left: 70px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.al-footer {
|
|
||||||
padding-left: 83px
|
|
||||||
}
|
|
||||||
|
|
||||||
.back-top {
|
|
||||||
left: 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
|
@ -20,4 +20,7 @@ var colorDangerBg = '#E1C8DD';
|
||||||
|
|
||||||
var colorDefaultText = '#585858';
|
var colorDefaultText = '#585858';
|
||||||
|
|
||||||
var pageLoaded = false;
|
var pageLoaded = false;
|
||||||
|
|
||||||
|
var resWidthCollapseSidebar = 1120;
|
||||||
|
var resWidthHideSidebar = 500;
|
|
@ -16,9 +16,9 @@
|
||||||
</head>
|
</head>
|
||||||
<body ng-controller="mainCtrl">
|
<body ng-controller="mainCtrl">
|
||||||
|
|
||||||
<main ng-if="finishLoading">
|
<main ng-if="finishLoading" ng-class="{'menu-collapsed': isMenuCollapsed, 'menu-expand': !isMenuCollapsed}">
|
||||||
<a href="#/dashboard" class="al-logo al-logo-small-rez">Blur Admin</a>
|
<a href="#/dashboard" class="al-logo al-logo-small-rez">Blur Admin</a>
|
||||||
<sidebar></sidebar>
|
<sidebar is-menu-collapsed="isMenuCollapsed"></sidebar>
|
||||||
|
|
||||||
<div class="al-main">
|
<div class="al-main">
|
||||||
<page-top></page-top>
|
<page-top></page-top>
|
||||||
|
|
Loading…
Reference in New Issue