I have been tasked with adding a Login page to a Kendo UI Mobile project. The Login page needs to appear first when the user opens the application. I also need to make this application an SPA application, using the router (or not using the router is easier).
Here is the existing index.html:
<!DOCTYPE HTML><html> <head> <meta charset="UTF-8"> <title>Global Client Dashboard</title> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0"> <!-- <link rel="shortcut icon" href="images/favicon.png"> <link rel="apple-touch-icon" href="images/apple-touch-icon.png"> --> <!-- CSS --> <link rel="stylesheet" href="css/main.css"> <link href="js/libs/kendoui/styles/kendo.mobile.all.min.css" rel="stylesheet" /> <!-- jQuery --> <!-- Using the jQuery in Kendo UI --> <script src="js/libs/kendoui/js/jquery.min.js"></script> <!-- Angular JS --> <script src="js/libs/kendoui/js/angular.min.js"></script> <!-- Kendo UI --> <script src="js/libs/kendoui/js/kendo.all.min.js"></script> <!-- application scripts --> <script src="js/app.js"></script> </head> <body style="display:none;" kendo-mobile-application k-hash-bang="true" ng-app="gcdApp"> <!--application UI goes here--> <!-- Accounts --> <kendo-mobile-view id="accounts" k-title="'Customer Accounts'" k-layout="'default'" ng-controller="AccountsController"> <kendo-mobile-list-view id="accountslist" class="item-list" k-template="templates.accountsTemplate" k-data-source="gcdAccounts.accountsDataSource"> </kendo-mobile-list-view> </kendo-mobile-view> <!-- Metrics - Historical Performance --> <kendo-mobile-view id="metrics" k-transition="'slide'" k-title="'Historical Performance'" k-layout="'default'" ng-controller="MetricsController" k-on-show="setCurrentItem(kendoEvent)"> <kendo-mobile-header> <kendo-mobile-nav-bar> <kendo-mobile-back-button k-align="'left'">Accounts</kendo-mobile-back-button> <kendo-view-title>Historical Performance</kendo-view-title> </kendo-mobile-nav-bar> </kendo-mobile-header> <kendo-mobile-content> <h2>{{gcdAccounts.currentItem.custname}}</h2> <!-- Client Experience Metric - Transaction --> <div style="margin-left:5px;"> <div kendo-chart class="chart-halfwidth chart-left-top" k-title="{ text: 'Client Experience Metric - Transaction' }" k-legend="{ position: 'bottom' }" k-series-defaults="{ type: 'column', stack: true, categoryField: 'month', labels: {visible: false} }" k-series="[ { field: 'q2avg', name: 'Avg', color: 'green' }, { field: 'miss', name: 'Miss', color: 'red' } ]" k-value-axis="{ min:0, max:10, plotBands: [{ from: 8.0, to: 8.05, color: 'black' }] }" k-category-axis="{ labels:{ visible:true } }" k-data-source="cexpDataSource" k-series-click="transactionClicked" > </div> </div> <!-- Hardware Billing Accuracy --> <div style="margin-left:5px;"> <div kendo-chart class="chart-halfwidth chart-right-top" k-title="{ text: 'HW Billing Accuracy' }" k-legend="{ position: 'bottom' }" k-series-defaults="{ type: 'column', stack: { type: '100%' }, categoryField: 'month', labels: {visible: false} }" k-series="[ { field: 'okcnt', name: 'Make', color: 'green' }, { field: 'defects', name: 'Miss', color: 'red' } ]" k-value-axis="{ plotBands: [{ from: 0.95, to: 0.955, color: 'black' }] }" k-category-axis="{ labels:{ visible:true } }" k-data-source="hwbillDataSource"> </div> </div> <!-- Dispute Cycle Time --> <div style="margin-left:5px;"> <div kendo-chart class="chart-halfwidth chart-left" k-title="{ text: 'Dispute Cycle Time' }" k-legend="{ position: 'bottom' }" k-series-defaults="{ type: 'column', categoryField: 'month', labels: {visible: false} }" k-series="[ { field: 'cycletime', name: 'Cycle Time', color: 'green' } ]" k-value-axis="{ min:0, max:60, plotBands: [{ from: 30, to: 30.3, color: 'black' }] }" k-category-axis="{ labels:{ visible:true } }" k-data-source="dctDataSource"> </div> </div> <!-- On Time Delivery --> <div style="margin-left:5px;"> <div kendo-chart class="chart-halfwidth chart-right" k-title="{ text: 'On Time Delivery' }" k-legend="{ position: 'bottom' }" k-series-defaults="{ type: 'column', stack: { type: '100%' }, categoryField: 'month', labels: {visible: false} }" k-series="[ { field: 'okcnt', name: 'Make', color: 'green' }, { field: 'defects', name: 'Miss', color: 'red' } ]" k-value-axis="{ plotBands: [{ from: 0.95, to: 0.955, color: 'black' }] }" k-category-axis="{ labels:{ visible:true } }" k-data-source="otdDataSource"> </div> </div> <!-- Services Billing Accuracy --> <div style="margin-left:5px;"> <div kendo-chart class="chart-halfwidth chart-left" k-title="{ text: 'Services Billing Accuracy' }" k-legend="{ position: 'bottom' }" k-series-defaults="{ type: 'column', stack: { type: '100%' }, categoryField: 'month', labels: {visible: false} }" k-series="[ { field: 'okcnt', name: 'Make', color: 'green' }, { field: 'defects', name: 'Miss', color: 'red' } ]" k-value-axis="{ plotBands: [{ from: 0.95, to: 0.955, color: 'black' }] }" k-category-axis="{ labels:{ visible:true } }" k-data-source="svcbillDataSource"> </div> </div> </kendo-mobile-content> </kendo-mobile-view> <!-- Header and Footer --> <kendo-mobile-layout k-id="'default'"> <kendo-mobile-header> <kendo-mobile-nav-bar> <kendo-view-title></kendo-view-title><!-- <kendo-mobile-button class="about-button" k-align="'right'" href="views/about.html">About</kendo-mobile-button> --> </kendo-mobile-nav-bar> </kendo-mobile-header> <kendo-mobile-footer> <kendo-mobile-tab-strip> <a href="#!accounts" data-icon="home">Home</a> <a href="views/about.html" data-icon="info">About</a> <a href="#!" data-icon="more">More</a> </kendo-mobile-tab-strip> </kendo-mobile-footer> </kendo-mobile-layout> <!-- Templates --> <!-- k-on-click="gcdAccounts.addToCart(kendoEvent, dataItem)" --> <script id="accountsTemplate" type="text/x-kendo-template"> <a class="details-link" data-role="listview-link" href="\#!metrics?id={{dataItem.id}}"> {{ dataItem.custname }} </a> </script> <!-- Standard Worklight Stuff --> <script src="js/initOptions.js"></script> <script src="js/main.js"></script> <script src="js/messages.js"></script> <script type="text/javascript"> WL.Logger.debug("Loading main page"); </script> <!-- Controllers --> <script src="js/controllers/controllers.js"></script> <script src="js/controllers/accounts.js"></script> <script src="js/controllers/metrics.js"></script> </body></html>I have a few questions:
1. What determines, in the above .html, the first page/view that will appear?
2. How do I add an existing login.html into this page?
3. If I am to use the router, how to I add this feature to the existing index.html? Does each view become a template and how would I do that?
4. Once the login page is authenticated/passes, how do I open the Accounts view? Does this need to be put into a router or not?
I have been reviewing examples online, but I don't see samples on how to accomplish what I need to do.
Thanks!
Dan