116 lines
2.6 KiB
JavaScript
116 lines
2.6 KiB
JavaScript
/**=========================================================
|
|
* Module: home-page.js
|
|
* Page Controller
|
|
=========================================================*/
|
|
|
|
app.controller('PageCtrl', [
|
|
'$scope',
|
|
'$timeout',
|
|
'$mdSidenav',
|
|
'menu',
|
|
'$rootScope',
|
|
function($scope, $timeout, $mdSidenav, menu, $rootScope) {
|
|
$scope.menu = menu;
|
|
|
|
$scope.path = path;
|
|
$scope.goHome = goHome;
|
|
$scope.openMenu = openMenu;
|
|
$rootScope.openMenu = openMenu;
|
|
$scope.closeMenu = closeMenu;
|
|
$scope.isSectionSelected = isSectionSelected;
|
|
|
|
$rootScope.$on('$locationChangeSuccess', openPage);
|
|
|
|
// Methods used by menuLink and menuToggle directives
|
|
this.isOpen = isOpen;
|
|
this.isSelected = isSelected;
|
|
this.toggleOpen = toggleOpen;
|
|
this.shouldLockOpen = shouldLockOpen;
|
|
$scope.toggleKubernetesUiMenu = toggleKubernetesUiMenu;
|
|
|
|
var mainContentArea = document.querySelector("[role='main']");
|
|
var kubernetesUiMenu = document.querySelector("[role='kubernetes-ui-menu']");
|
|
|
|
// *********************
|
|
// Internal methods
|
|
// *********************
|
|
|
|
var _t = false;
|
|
|
|
$scope.showKubernetesUiMenu = false;
|
|
|
|
function shouldLockOpen() {
|
|
return _t;
|
|
}
|
|
|
|
function toggleKubernetesUiMenu() {
|
|
$scope.showKubernetesUiMenu = !$scope.showKubernetesUiMenu;
|
|
}
|
|
|
|
function closeMenu() {
|
|
$timeout(function() {
|
|
$mdSidenav('left').close();
|
|
});
|
|
}
|
|
|
|
function openMenu() {
|
|
$timeout(function() {
|
|
_t = !$mdSidenav('left').isOpen();
|
|
$mdSidenav('left').toggle();
|
|
});
|
|
}
|
|
|
|
function path() {
|
|
return $location.path();
|
|
}
|
|
|
|
function goHome($event) {
|
|
menu.selectPage(null, null);
|
|
$location.path( '/' );
|
|
}
|
|
|
|
function openPage() {
|
|
$scope.closeMenu();
|
|
mainContentArea.focus();
|
|
}
|
|
|
|
function isSelected(page) {
|
|
return menu.isPageSelected(page);
|
|
}
|
|
|
|
function isSectionSelected(section) {
|
|
var selected = false;
|
|
var openedSection = menu.openedSection;
|
|
if(openedSection === section){
|
|
selected = true;
|
|
}
|
|
else if(section.children) {
|
|
section.children.forEach(function(childSection) {
|
|
if(childSection === openedSection){
|
|
selected = true;
|
|
}
|
|
});
|
|
}
|
|
return selected;
|
|
}
|
|
|
|
function isOpen(section) {
|
|
return menu.isSectionSelected(section);
|
|
}
|
|
|
|
function toggleOpen(section) {
|
|
menu.toggleSelectSection(section);
|
|
}
|
|
|
|
}
|
|
]).filter('humanizeDoc', function() {
|
|
return function(doc) {
|
|
if (!doc) return;
|
|
if (doc.type === 'directive') {
|
|
return doc.name.replace(/([A-Z])/g, function($1) {
|
|
return '-'+$1.toLowerCase();
|
|
});
|
|
}
|
|
return doc.label || doc.name;
|
|
}; });
|