dashboard.html 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  6. <meta name="description" content="">
  7. <meta name="author" content="">
  8. <title>Data Value Visualisation</title>
  9. <!-- Bootstrap core CSS -->
  10. <link href="vendor/fontawesome-free/css/all.min.css" rel="stylesheet" type="text/css">
  11. <link href="https://fonts.googleapis.com/css?family=Nunito:200,200i,300,300i,400,400i,600,600i,700,700i,800,800i,900,900i" rel="stylesheet">
  12. <link href="vendor/sb-admin-2/sb-admin-2.css" rel="stylesheet">
  13. <link href="vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
  14. <link href="vendor/bootstrap-slider/css/bootstrap-slider.css" rel="stylesheet">
  15. <style>
  16. .slider-selection {
  17. background: #1cc88a;
  18. }
  19. .row {
  20. display: -webkit-box;
  21. display: -webkit-flex;
  22. display: -ms-flexbox;
  23. display: flex;
  24. }
  25. .row > [class*='col-'] {
  26. display: flex;
  27. flex-direction: column;
  28. }
  29. </style>
  30. </head>
  31. <body>
  32. <!-- Navigation -->
  33. <nav class="navbar navbar-expand-lg navbar-dark bg-dark static-top">
  34. <div class="container">
  35. <a class="navbar-brand" href="index.html">Data Value Visualisation</a>
  36. <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
  37. <span class="navbar-toggler-icon"></span>
  38. </button>
  39. <div class="collapse navbar-collapse" id="navbarResponsive">
  40. <ul class="navbar-nav ml-auto">
  41. <li class="nav-item active">
  42. <a class="nav-link" href="#">Home
  43. <span class="sr-only">(current)</span>
  44. </a>
  45. </li>
  46. </ul>
  47. </div>
  48. </div>
  49. </nav>
  50. <!-- Page Content -->
  51. <div class="container">
  52. <div class="row" style="margin-top:10px; margin-bottom:10px;"> <!-- row title -->
  53. <div class="col-lg-9">
  54. <h3 id="projectTitle"></h3>
  55. <p id="projectDescription"></p>
  56. </div>
  57. <div class="col-lg-3">
  58. <a onclick="updateProject()" href="#" class="btn btn-sm btn-success" style="margin-bottom:5px"><i id="updateFA" class="fas fa-sync-alt fa-sm text-white-50"></i> Update Data Asset Readings</a>
  59. <a href="#" class="btn btn-sm btn-primary"><i class="fas fa-download fa-sm text-white-50"></i> Generate Report</a>
  60. </div>
  61. </div>
  62. <div class="row"> <!-- 2nd level row -->
  63. <div class="col-lg-4 mb-4">
  64. <div class="card mb-4 h-100">
  65. <div class="card-header py-3">
  66. <h6 class="m-0 font-weight-bold">Set Data Value Weights</h6>
  67. </div>
  68. <div class="card-body">
  69. <form>
  70. <div class="form-group">
  71. <h4 class="small font-weight-bold">Data Dimension <span class="float-right">%</span><span class="float-right" id="dataDimensionValue">100</span></h4>
  72. <input id="dataDimension" data-slider-id='dataDimensionSlider' type="text" data-slider-min="0" data-slider-max="100" data-slider-step="1" data-slider-value="100"/>
  73. </div>
  74. <div class="form-group">
  75. <h4 class="small font-weight-bold">Usage Dimension <span class="float-right">%</span><span class="float-right" id="usageDimensionValue">100</span></h4>
  76. <input id="usageDimension" data-slider-id='usageDimensionSlider' type="text" data-slider-min="0" data-slider-max="100" data-slider-step="1" data-slider-value="100"/>
  77. </div>
  78. <div class="form-group">
  79. <h4 class="small font-weight-bold">Infrastructure Dimension <span class="float-right">%</span><span class="float-right" id="technicalDimensionValue">100</span></h4>
  80. <input id="technicalDimension" data-slider-id='technicalDimensionSlider' type="text" data-slider-min="0" data-slider-max="100" data-slider-step="1" data-slider-value="100"/>
  81. </div>
  82. <div class="form-group">
  83. <h4 class="small font-weight-bold">Quality Dimension <span class="float-right">%</span><span class="float-right" id="qualityDimensionValue">100</span></h4>
  84. <input id="qualityDimension" data-slider-id='qualityDimensionSlider' type="text" data-slider-min="0" data-slider-max="100" data-slider-step="1" data-slider-value="100"/>
  85. </div>
  86. </form>
  87. <div style="display: flex; justify-content: center;"><button type="submit" class="btn btn-success" onclick="refreshWeights()">Refresh Weights</button></div>
  88. <small class="text-muted">Please note that these are importance weights and the values will be normalised to a relative value between 0 and 100 for the data value calculation.</small>
  89. </div>
  90. </div>
  91. </div>
  92. <div class="col-lg-8 mb-4">
  93. <div class="card mb-4 h-100">
  94. <div class="card-header py-3">
  95. <h6 class="m-0 font-weight-bold">Project Aggregated Data Value</h6>
  96. </div>
  97. <div class="card-body" id="aggregatedDataValue">
  98. <canvas id="radar_chart"></canvas>
  99. </div>
  100. </div>
  101. </div>
  102. </div> <!-- 2nd level row -->
  103. <div class="row">
  104. <div class="col-lg-12 mb-4">
  105. <div class="card mb-4">
  106. <div class="card-header py-3">
  107. <h6 class="m-0 font-weight-bold">Data Assets</h6>
  108. </div>
  109. <div class="card-body">
  110. <div class="dropdown">
  111. <button value=-1 class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
  112. Choose Asset
  113. </button>
  114. <div class="dropdown-menu" aria-labelledby="dropdownMenuButton" id="asset-dropdown"></div>
  115. </div>
  116. <br/>
  117. <!-- card for asset charts -->
  118. <div class="card">
  119. <div class="card-header">
  120. <ul class="nav nav-tabs card-header-tabs">
  121. <li class="nav-item">
  122. <a class="nav-link active" href="#overview" data-toggle="tab" id="overview-tab" role="tab" aria-controls="overview" aria-selected="true"><i class="far fa-dot-circle"></i> Asset's Value Overview</a>
  123. </li>
  124. <li class="nav-item">
  125. <a class="nav-link" href="#latest" data-toggle="tab" id="latest-tab" role="tab" aria-controls="latest" aria-selected="false"><i class="fas fa-balance-scale"></i> Latest Value</a>
  126. </li>
  127. <li class="nav-item">
  128. <a class="nav-link" href="#historical" data-toggle="tab" id="historical-tab" role="tab" aria-controls="historical" aria-selected="false"><i class="fas fa-history"></i> Historical Value</a>
  129. </li>
  130. </ul>
  131. </div>
  132. <div class="card-body">
  133. <div class="tab-content" id="myTabContent">
  134. <div class="tab-pane fade show active" id="overview" role="tabpanel" aria-labelledby="overview-tab">
  135. <div class="row" id="assetOverviewText">
  136. <div class="col-lg-9">
  137. <h5 class="card-title" id="chosenDatasetTitle"></h5>
  138. <p class="card-text">
  139. Dataset ID: <span id="chosenAssetID"></span><br/>
  140. Last Observed: <span id="assetObservationValueDate"></span><br/>
  141. Current Data Value (based on assigned weights): <b><span id="assetObservationValue"></span></b><br/><br/>
  142. <label for="overall_pb">Data Value Distribution:</label>
  143. <!-- <div class="col-lg-6"> -->
  144. <div class="progress" id="overall_pb" style="height: 30px;">
  145. <div class="progress-bar bg-success" role="progressbar" id="data-dimension-pb"><small id="data-dimension-age"></small></div>
  146. <div class="progress-bar bg-warning" role="progressbar" id="technical-dimension-pb"><small id="technical-dimension-age"></small></div>
  147. <div class="progress-bar bg-danger" role="progressbar" id="usage-dimension-pb"><small id="usage-dimension-age"></small></div>
  148. <div class="progress-bar bg-primary" role="progressbar" id="quality-dimension-pb"><small id="quality-dimension-age"></small></div>
  149. </div>
  150. <!-- </div> -->
  151. <br/>
  152. </p>
  153. </div>
  154. <div class="col-lg-3">
  155. <div class="card mb-4">
  156. <div class="card-header py-3">
  157. <h6 class="m-0 font-weight-bold">Legend</h6>
  158. </div>
  159. <div class="card-body">
  160. <div class="progress" style="height: 30px;">
  161. <div class="progress-bar bg-success" role="progressbar" style="width: 100%;">Data Dimension</div>
  162. </div> <br/>
  163. <div class="progress" style="height: 30px;">
  164. <div class="progress-bar bg-warning" role="progressbar" style="width: 100%;">Infrastructure Dimension</div>
  165. </div> <br/>
  166. <div class="progress" style="height: 30px;">
  167. <div class="progress-bar bg-danger" role="progressbar" style="width: 100%;">Usage Dimension</div>
  168. </div> <br/>
  169. <div class="progress" style="height: 30px;">
  170. <div class="progress-bar bg-primary" role="progressbar" style="width: 100%;">Quality Dimension</div>
  171. </div>
  172. </div>
  173. </div>
  174. </div>
  175. </div>
  176. </div>
  177. <div class="tab-pane fade" id="latest" role="tabpanel" aria-labelledby="latest-tab">
  178. <canvas id="latest_chart"></canvas>
  179. </div>
  180. <div class="tab-pane fade" id="historical" role="tabpanel" aria-labelledby="historical-tab">
  181. <canvas id="historical_chart"></canvas>
  182. </div>
  183. </div>
  184. </div>
  185. </div>
  186. <!-- end of card for asset charts -->
  187. </div>
  188. </div>
  189. </div>
  190. </div>
  191. <!-- <div class="row">
  192. <div class="col-lg-12 mb-4">
  193. <h3 class="mt-5">JSON Response</h3>
  194. <pre id="json-response" style="font-size:9px;"></pre>
  195. </div>
  196. </div> -->
  197. </div>
  198. <!-- Bootstrap core JavaScript -->
  199. <script src="vendor/jquery/jquery.min.js"></script>
  200. <script src="vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
  201. <script type="text/javascript" src="vendor/bootstrap-slider/bootstrap-slider.js"></script>
  202. <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.3/Chart.bundle.js"></script>
  203. <script src="script.js"></script>
  204. </body>
  205. </html>