-
Notifications
You must be signed in to change notification settings - Fork 0
/
appController.js
91 lines (82 loc) · 3.86 KB
/
appController.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
/**
* @license
* Copyright (c) 2014, 2019, Oracle and/or its affiliates.
* The Universal Permissive License (UPL), Version 1.0
*/
/*
* Your application specific code will go here
*/
define(['knockout', 'ojs/ojmodule-element-utils', 'ojs/ojresponsiveutils', 'ojs/ojresponsiveknockoututils', 'ojs/ojrouter', 'ojs/ojarraydataprovider', 'ojs/ojknockouttemplateutils', 'ojs/ojmodule-element', 'ojs/ojknockout'],
function(ko, moduleUtils, ResponsiveUtils, ResponsiveKnockoutUtils, Router, ArrayDataProvider, KnockoutTemplateUtils) {
function ControllerViewModel() {
var self = this;
self.KnockoutTemplateUtils = KnockoutTemplateUtils;
// Media queries for repsonsive layouts
var smQuery = ResponsiveUtils.getFrameworkQuery(ResponsiveUtils.FRAMEWORK_QUERY_KEY.SM_ONLY);
self.smScreen = ResponsiveKnockoutUtils.createMediaQueryObservable(smQuery);
// Router setup
self.router = Router.rootInstance;
self.router.configure({
'dashboard': {label: 'Dashboard', isDefault: true},
'incidents': {label: 'Incidents'},
'customers': {label: 'Customers'},
'about': {label: 'About'},
'epsilon': {label: 'Epsilon'},
'curd': {label: 'Curd'}
});
Router.defaults['urlAdapter'] = new Router.urlParamAdapter();
self.moduleConfig = ko.observable({'view':[], 'viewModel':null});
self.loadModule = function() {
ko.computed(function() {
var name = self.router.moduleConfig.name();
var viewPath = 'views/' + name + '.html';
var modelPath = 'viewModels/' + name;
var masterPromise = Promise.all([
moduleUtils.createView({'viewPath':viewPath}),
moduleUtils.createViewModel({'viewModelPath':modelPath})
]);
masterPromise.then(
function(values){
self.moduleConfig({'view':values[0],'viewModel':values[1]});
}
);
});
};
// Navigation setup
var navData = [
{name: 'Dashboard', id: 'dashboard',
iconClass: 'oj-navigationlist-item-icon demo-icon-font-24 demo-chart-icon-24'},
{name: 'Incidents', id: 'incidents',
iconClass: 'oj-navigationlist-item-icon demo-icon-font-24 demo-fire-icon-24'},
{name: 'Customers', id: 'customers',
iconClass: 'oj-navigationlist-item-icon demo-icon-font-24 demo-people-icon-24'},
{name: 'About', id: 'about',
iconClass: 'oj-navigationlist-item-icon demo-icon-font-24 demo-info-icon-24'},
{name: 'Epsilon', id: 'epsilon',
iconClass: 'oj-navigationlist-item-icon demo-icon-font-24 demo-info-icon-24'},
{name: 'Curd', id: 'curd',
iconClass: 'oj-navigationlist-item-icon demo-icon-font-24 demo-info-icon-24'}
];
self.navDataProvider = new ArrayDataProvider(navData, {keyAttributes: 'id'});
// Header
// Application Name used in Branding Area
self.appName = ko.observable("Subrat Demo Name");
// User Info used in Global Navigation area
self.userLogin = ko.observable("subrata.parida@epsilon.com");
// Footer
function footerLink(name, id, linkTarget) {
this.name = name;
this.linkId = id;
this.linkTarget = linkTarget;
}
self.footerLinks = ko.observableArray([
new footerLink('About Oracle', 'aboutOracle', 'http://www.oracle.com/us/corporate/index.html#menu-about'),
new footerLink('Contact Us', 'contactUs', 'http://www.oracle.com/us/corporate/contact/index.html'),
new footerLink('Legal Notices', 'legalNotices', 'http://www.oracle.com/us/legal/index.html'),
new footerLink('Terms Of Use', 'termsOfUse', 'http://www.oracle.com/us/legal/terms/index.html'),
new footerLink('Your Privacy Rights', 'yourPrivacyRights', 'http://www.oracle.com/us/legal/privacy/index.html')
]);
}
return new ControllerViewModel();
}
);