blob: ddb81a97b568ca400234bac6cf4458d47b62d7a7 [file] [log] [blame]
// Copyright 2015 The Vanadium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
import { Logger } from 'libs/logs/logger'
import { registerNavigateHomePageAction, navigateHomePage } from 'actions/navigate-home-page'
import { registerDisplayErrorAction } from 'actions/display-error'
import { registerAddPipeViewerAction } from 'actions/add-pipe-viewer'
import { registerNavigatePipesPageAction, navigatePipesPage } from 'actions/navigate-pipes-page'
import { registerNavigateNeigbourhoodAction, navigateNeigbourhood } from 'actions/navigate-neighborhood'
import { registerHelpAction, navigateHelp } from 'actions/navigate-help'
import { registerRedirectPipeAction } from 'actions/redirect-pipe'
import { SubPageItem } from 'views/page/view'
import { page } from 'runtime/context'
var log = new Logger('app');
export function start() {
log.debug('start called');
// Initialize a new page, sets up toolbar and action bar for the app
initPageView();
// Register the action handlers for the application
registerActions();
// Start by triggering the home action
navigateHomePage();
}
/*
* Registers the action handlers for the application.
* Actions are cohesive pieces of functionality that can be triggered from
* any other action in a decoupled way by just using the action name.
*
* @private
*/
function registerActions() {
log.debug('registering actions');
registerNavigateHomePageAction();
registerDisplayErrorAction();
registerAddPipeViewerAction();
registerNavigatePipesPageAction();
registerNavigateNeigbourhoodAction();
registerRedirectPipeAction();
registerHelpAction();
}
/*
* Constructs a new page, sets up toolbar and action bar for the app
*
* @private
*/
function initPageView() {
// Home, Pipes and Help are top level sub-pages
var homeSubPageItem = new SubPageItem('home');
homeSubPageItem.name = 'Home';
homeSubPageItem.icon = 'home';
homeSubPageItem.onActivate = navigateHomePage;
page.subPages.push(homeSubPageItem);
var pipesSubPageItem = new SubPageItem('pipes');
pipesSubPageItem.name = 'Pipes';
pipesSubPageItem.icon = 'arrow-forward';
pipesSubPageItem.onActivate = navigatePipesPage;
page.subPages.push(pipesSubPageItem);
var neighborhoodSubPageItem = new SubPageItem('neighborhood');
neighborhoodSubPageItem.name = 'Neighborhood';
neighborhoodSubPageItem.icon = 'social:circles-extended';
neighborhoodSubPageItem.onActivate = navigateNeigbourhood;
page.subPages.push(neighborhoodSubPageItem);
var helpSubPageItem = new SubPageItem('help');
helpSubPageItem.name = 'Help';
helpSubPageItem.icon = 'help';
helpSubPageItem.onActivate = navigateHelp;
page.subPages.push(helpSubPageItem);
document.body.appendChild(page.element);
}