|
1 | 1 | <!DOCTYPE html>
|
2 | 2 | <html lang="en">
|
3 | 3 |
|
4 |
| -<head> |
5 |
| - <meta charset="utf-8"> |
6 |
| - <meta http-equiv="X-UA-Compatible" content="IE=edge"> |
7 |
| - <meta name="viewport" content="width=device-width, initial-scale=1"> |
8 |
| - <meta name="description" content=""> |
9 |
| - <meta name="author" content=""> |
10 |
| - |
11 |
| - <link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon" /> |
12 |
| - <link rel="stylesheet" type="text/css" href="js/styles/font-awesome.min.css"> |
13 |
| - <link rel="stylesheet" type="text/css" href="js/styles/bootstrap.min.css"> |
14 |
| - <link rel="stylesheet" type="text/css" href="js/styles/bootstrap-theme.min.css"> |
15 |
| - <link rel="stylesheet" type="text/css" href="https://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css" /> |
16 |
| - <link rel="stylesheet" type="text/css" href="js/styles/jquery.dataTables.min.css"> |
17 |
| - <link rel="stylesheet" type="text/css" href="js/styles/buttons.dataTables.min.css"> |
18 |
| - <link rel="stylesheet" type="text/css" href="js/styles/atlas.css"> |
19 |
| - <link rel="stylesheet" type="text/css" href="js/styles/chart.css"> |
20 |
| - <link rel="stylesheet" type="text/css" href="js/styles/achilles.css"> |
21 |
| - |
22 |
| - <title data-bind="text: pageTitle">ATLAS</title> |
23 |
| -</head> |
24 |
| - |
25 |
| -<body> |
| 4 | + <head> |
| 5 | + <meta charset="utf-8"> |
| 6 | + <meta http-equiv="X-UA-Compatible" content="IE=edge"> |
| 7 | + <meta name="viewport" content="width=device-width, initial-scale=1"> |
| 8 | + <meta name="description" content=""> |
| 9 | + <meta name="author" content=""> |
| 10 | + |
| 11 | + <link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon" /> |
| 12 | + <link rel="stylesheet" href="js/styles/splash.css" /> |
| 13 | + |
| 14 | + <title data-bind="text: pageTitle">ATLAS</title> |
| 15 | + </head> |
| 16 | + |
| 17 | + <body class="app"> |
26 | 18 | <div id="splash" data-bind="if:!initializationComplete()">
|
27 | 19 | <div id="stage">
|
28 | 20 | <img src="images/atlas_loading.svg" />
|
|
33 | 25 | <div data-bind="text:applicationStatus" id="status"></div>
|
34 | 26 | </div>
|
35 | 27 |
|
36 |
| - <div id="wrapperLeftMenu" style="display:none;" data-bind="visible:initializationComplete()"> |
| 28 | + <div style="display:none;" data-bind="visible: initializationComplete(), css: classes('menu-container')"> |
37 | 29 | <div id="wrapperLogo">
|
38 | 30 | <a href="#/home">ATLAS</a>
|
39 | 31 | </div>
|
40 | 32 |
|
41 |
| - <div class="list-group"> |
42 |
| - <a class="list-group-item" href="#/home"><i class="fa fa-fw fa-home" aria-hidden="true"></i> Home</a> |
43 |
| - <a class="list-group-item" href="#/datasources"><i class="fa fa-fw fa-database" aria-hidden="true"></i> Data Sources</a> |
44 |
| - <a class="list-group-item" href="#/search"><i class="fa fa-fw fa-search" aria-hidden="true"></i> Vocabulary</a> |
45 |
| - <a class="list-group-item" href="#/conceptsets"><i class="fa fa-fw fa-shopping-cart" aria-hidden="true"></i> Concept Sets</a> |
46 |
| - <a class="list-group-item" href="#/cohortdefinitions"><i class="fa fa-fw fa-users" aria-hidden="true"></i> Cohort Definitions</a> |
47 |
| - <a class="list-group-item" data-bind="css: irStatusCss, attr: {href: irAnalysisURL}"><i class="fa fa-fw fa-bolt" aria-hidden="true"></i> Incidence Rates</a> |
48 |
| - <a class="list-group-item" href="#/profiles"><i class="fa fa-fw fa-user" aria-hidden="true"></i> Profiles</a> |
49 |
| - <a class="list-group-item" data-bind="css: ccaCss, attr: {href: ccaURL}"><i class="fa fa-fw fa-balance-scale" aria-hidden="true"></i> Estimation</a> |
50 |
| - <a class="list-group-item" data-bind="css: plpCss, attr: {href: plpURL}"><i class="fa fa-fw fa-heartbeat" aria-hidden="true"></i> Prediction</a> |
51 |
| - <a class="list-group-item" href="#/jobs"><i class="fa fa-fw fa-tasks" aria-hidden="true"></i> Jobs</a> |
52 |
| - <a class="list-group-item" href="#/configure"><i class="fa fa-fw fa-cogs" aria-hidden="true"></i> Configuration</a> |
53 |
| - <a class="list-group-item" data-bind="attr: {href: supportURL, target: targetSupportURL}" aria-hidden="true"><i class="fa fa-fw fa-comment"></i> Feedback</a> |
| 33 | + <div class="app__menu"> |
| 34 | + <!-- ko foreach: router.pages --> |
| 35 | + <a data-bind="attr: {href: navUrl()}, css: $parent.classes({ element: 'menu-item', modifiers: $parent.activePage() === $data.title ? 'selected' : '', extra: statusCss() })"> |
| 36 | + <i data-bind="css: $parent.classes({ element: 'menu-icon', extra: `fa fa-fw fa-${icon}`})" aria-hidden="true"></i> |
| 37 | + <span data-bind="text: $data.title, css: $parent.classes('menu-title')"></span> |
| 38 | + </a> |
| 39 | + <!-- /ko --> |
54 | 40 | </div>
|
55 | 41 |
|
56 | 42 | <div id="wrapper_ohdsi">
|
|
65 | 51 |
|
66 | 52 | <div id="wrapperMainWindow" style="display:none;" data-bind="visible:initializationComplete()">
|
67 | 53 | <div id="wrapperMainWindowContainer">
|
68 |
| - <user-bar params="{model: pageModel}"></user-bar> |
69 |
| - <div data-bind="if:sharedState.appInitializationStatus() == 'failed'"> |
| 54 | + <user-bar params="{model: $data}"></user-bar> |
| 55 | + <div data-bind="if: appInitializationStatus() == 'failed'"> |
70 | 56 | <div style="width:100px;margin-left:auto;margin-right:auto;">
|
71 | 57 | <svg width="100" height="100" viewBox="0 -200 400 400">
|
72 | 58 | <g id="rings">
|
|
90 | 76 | </div>
|
91 | 77 | </div>
|
92 | 78 |
|
93 |
| - <div data-bind="if:sharedState.appInitializationStatus() == 'no-sources-available'"> |
| 79 | + <div data-bind="if: noSourcesAvailable && !currentViewAccessible()"> |
94 | 80 | <div style="width:100px;margin-left:auto;margin-right:auto;">
|
95 | 81 | <svg width="100" height="100" viewBox="0 -200 400 400">
|
96 | 82 | <g id="rings">
|
|
110 | 96 | <div class="error">application initialization failed</div>
|
111 | 97 | <div class="error">
|
112 | 98 | <p>the current webapi has no sources defined.</p>
|
113 |
| - <p>please contact your administrator to resolve this issue.</p> |
| 99 | + <p>please add one or more on <a href="#/configure">configuration</a> page.</p> |
114 | 100 | </div>
|
115 | 101 | </div>
|
116 | 102 |
|
117 |
| - <!-- ko if: pageModel.currentCohortDefinition() || pageModel.currentConceptSet() --> |
118 |
| - <!-- ko if: pageModel.currentCohortDefinition() != null && pageModel.currentView() !='cohort-definition-manager' && pageModel.currentView() != 'loading' --> |
| 103 | + <!-- ko if: $data.currentCohortDefinition() || $data.currentConceptSet() --> |
| 104 | + <!-- ko if: $data.currentCohortDefinition() != null && $data.currentView() !='cohort-definition-manager' && $data.currentView() != 'loading' --> |
119 | 105 | <div class="breadcrumb-container">
|
120 | 106 | <i class="fa fa-arrow-left"></i>
|
121 |
| - <a data-bind="attr: { href: '#/cohortdefinition/' + pageModel.currentCohortDefinition().id()}, text: pageModel.currentCohortDefinition().name"></a> |
122 |
| - <!-- ko if: pageModel.currentConceptSet() != null && pageModel.currentConceptSetSource() == 'cohort' --> |
| 107 | + <a data-bind="attr: { href: '#/cohortdefinition/' + $data.currentCohortDefinition().id()}, text: $data.currentCohortDefinition().name"></a> |
| 108 | + <!-- ko if: $data.currentConceptSet() != null && $data.currentConceptSetSource() == 'cohort' --> |
123 | 109 | <i class="fa fa-chevron-right"></i>
|
124 |
| - <a data-bind="attr: { href: '#/cohortdefinition/' + pageModel.currentCohortDefinition().id() + '/conceptsets/' + pageModel.currentConceptSet().id + '/details'}, text:pageModel.currentConceptSet().name()"></a> |
| 110 | + <a data-bind="attr: { href: '#/cohortdefinition/' + $data.currentCohortDefinition().id() + '/conceptsets/' + $data.currentConceptSet().id + '/details'}, text:$data.currentConceptSet().name()"></a> |
125 | 111 | <!-- /ko -->
|
126 | 112 | </div>
|
127 | 113 | <!-- /ko -->
|
128 |
| - <!-- ko if: pageModel.currentConceptSet() && pageModel.currentConceptSetSource() == 'repository' && pageModel.currentView() != 'conceptset-manager' --> |
| 114 | + <!-- ko if: $data.currentConceptSet() && $data.currentConceptSetSource() == 'repository' && $data.currentView() != 'conceptset-manager' --> |
129 | 115 | <div class="breadcrumb-container">
|
130 | 116 | <i class="fa fa-arrow-left"></i>
|
131 |
| - <a data-bind="attr: { href: '#/conceptset/' + pageModel.currentConceptSet().id + '/details'}, text:pageModel.currentConceptSet().name"></a> |
| 117 | + <a data-bind="attr: { href: '#/conceptset/' + $data.currentConceptSet().id + '/details'}, text:$data.currentConceptSet().name"></a> |
132 | 118 | </div>
|
133 | 119 | <!-- /ko -->
|
134 | 120 | <!-- /ko -->
|
135 | 121 |
|
136 |
| - <!-- ko if: pageModel.currentView && (sharedState.appInitializationStatus() != 'failed' && sharedState.appInitializationStatus() != 'no-sources-available') --> |
137 |
| - <div id="currentComponent" class="flexed" data-bind='component: {name: pageModel.currentView,params: pageModel.componentParams}'></div> |
138 |
| - <!-- /ko --> |
| 122 | + <div data-bind="if: currentViewAccessible" class="flexed"> |
| 123 | + <div id="currentComponent" class="flexed" data-bind='component: {name: $data.currentView, params: { routerParams: routerParams, model: $data } }'></div> |
| 124 | + </div> |
139 | 125 | </div>
|
140 | 126 | </div>
|
| 127 | + <!-- ko if: appInitializationStatus() === 'running' --> |
| 128 | + <terms-and-conditions params="model: $data"></terms-and-conditions> |
| 129 | + <!-- /ko --> |
141 | 130 | <script data-main="js/main" src="js/require.js"></script>
|
142 | 131 | </body>
|
143 | 132 |
|
|
0 commit comments