status.html 42 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>{{ data['title'] }} Status display</title>
  6. <meta name="description"
  7. content="Status display generated by BORA.">
  8. <link rel="stylesheet" href="{{ static_url("style.css") }}">
  9. <link rel="stylesheet" href="{{ static_url("jquery-ui.min.css") }}">
  10. <!--[if IE]>
  11. <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
  12. <![endif]-->
  13. </head>
  14. <body>
  15. <div id="page_info">{{ data['title'] }} data monitoring. Last refreshed</div>
  16. <div id="page_title_cache" style="display:none;">{{ data['title'] }}</div>
  17. {% if data['style'] %}
  18. {% for key in data['style'] %}
  19. {% if data['style'][key]['type'] == "calc" %}
  20. <div style='position: absolute; top: {{ data['style'][key]['top'] }}; left:{{
  21. data['style'][key]['left'] }}; width:{{ data['style'][key]['width'] }}px;
  22. height:{{ data['style'][key]['height'] }}px;
  23. {% if "background_color" in data['style'][key] %}
  24. background-color:{{ data['style'][key]['background_color'] }}'
  25. {% else%}
  26. {% end %}
  27. {% if "condition" in data['style'][key] %}
  28. data-cond="{{ data['style'][key]['condition'] }}"
  29. {% else%}position
  30. {% end%}
  31. {% if "formula" in data['style'][key] %}
  32. data-formula="{{ data['style'][key]['formula'] }}"
  33. {% else %}
  34. {% end %}
  35. {% if "lesser" in data['style'][key] %}
  36. data-lesser="{{ data['style'][key]['lesser'] }}"
  37. {% else %}
  38. {% end %}
  39. {% if "larger" in data['style'][key] %}
  40. data-larger="{{ data['style'][key]['larger'] }}"
  41. {% else %}
  42. {% end %}
  43. {% if "decimal" in data['style'][key] %}
  44. data-decimal="{{ data['style'][key]['decimal'] }}"
  45. {% else %}
  46. {% end %}
  47. data-type="{{ data['style'][key]['type'] }}" class='databox' id="{{ key }}">
  48. <p><span style="color: #000; font-size: {{ data['style'][key]['header']['size'] }}px; font-weight: {{ data['style'][key]['header']['weight'] }};" class="title">{{ data['style'][key]['header']['title'] }} </span><span style="color: #000; font-size: {{ data['style'][key]['unit']['size'] }}px; font-weight: {{ data['style'][key]['unit']['weight'] }};" class="varval"> --- </span><span class='unit_title' style="color: #000; font-size: {{ data['style'][key]['unit']['size'] }}px; font-weight: {{ data['style'][key]['unit']['weight'] }};" > {{ data['style'][key]['unit']['title'] }}</span></p>
  49. </div>
  50. {% else %}
  51. {% end %}
  52. {% if data['style'][key]['type'] == "data" %}
  53. {% if "ref" in data['style'][key] %}
  54. <div tooltip="{{ data['style'][key]['ref'] }}"
  55. {% else %}
  56. <div tooltip="{{ key }}"
  57. {% end %}
  58. class="databox" style='position: absolute; top: {{ data['style'][key]['top'] }}; left:{{ data['style'][key]['left'] }}; width:{{ data['style'][key]['width'] }}px; height:{{ data['style'][key]['height'] }}px;
  59. {% if "background_color" in data['style'][key] %}
  60. background-color:{{ data['style'][key]['background_color'] }};'
  61. {% else%}
  62. {% end%}
  63. {% if "condition" in data['style'][key] %}
  64. data-cond="{{ data['style'][key]['condition'] }}"
  65. {% else%}
  66. {% end%}
  67. {% if "formula" in data['style'][key] %}
  68. data-formula="{{ data['style'][key]['formula'] }}"
  69. {% else %}
  70. {% end %}
  71. {% if "lesser" in data['style'][key] %}
  72. data-lesser="{{ data['style'][key]['lesser'] }}"
  73. {% else %}
  74. {% end %}
  75. {% if "larger" in data['style'][key] %}
  76. data-larger="{{ data['style'][key]['larger'] }}"
  77. {% else %}
  78. {% end %}
  79. {% if "decimal" in data['style'][key] %}
  80. data-decimal="{{ data['style'][key]['decimal'] }}"
  81. {% else %}
  82. {% end %}
  83. {% if "exponential" in data['style'][key] %}
  84. data-exponential="{{ data['style'][key]['exponential'] }}"
  85. {% else %}
  86. {% end %}
  87. {% if "trend" in data['style'][key] %}
  88. data-trend="{{ data['style'][key]['trend'] }}"
  89. {% else %}
  90. {% end %}
  91. {% if "linkhtml" in data['style'][key] %}
  92. {% if data['style'][key]['linkhtml'] == 'true' %}
  93. {% if "server" in data %}
  94. {% if data['style'][key]['ref'] in data['varname'] %}
  95. onclick="window.open( '{{ data["server"] }}#module=graph&{{ data['varname'][data['style'][key]['ref']] }}&experiment=-&window=86400&module=graph&virtual=srctree&srctree=&infomod=legend', '_blank');"
  96. {% else %}
  97. {% end %}
  98. {% else %}
  99. {% end %}
  100. {% else %}
  101. {% end %}
  102. {% else %}
  103. {% end %}
  104. data-adei="{{ data['server'] }}"
  105. {% if data['style'][key]['ref'] in data['varname'] %}
  106. data-query="{{ data['varname'][data['style'][key]['ref']] }}"
  107. {% else %}
  108. {% end %}
  109. {% if "ref" in data['style'][key] %}
  110. data-type="{{ data['style'][key]['type'] }}" id="{{ key }}">
  111. <p><span style="color: #000; font-size: {{ data['style'][key]['header']['size'] }}px; font-weight: {{ data['style'][key]['header']['weight'] }};" class="title">{{ data['style'][key]['header']['title'] }} </span><span style="color: #000; font-size: {{ data['style'][key]['unit']['size'] }}px; font-weight: {{ data['style'][key]['unit']['weight'] }};" class="varval"> --- </span><span class='unit_title' style="color: #000; font-size: {{ data['style'][key]['unit']['size'] }}px; font-weight: {{ data['style'][key]['unit']['weight'] }};"> {{ data['style'][key]['unit']['title'] }}</span>
  112. {% if "trend" in data['style'][key] %}
  113. {% if data['style'][key]['trend'] == 'true' %}
  114. </p>
  115. {% else %}
  116. {% end %}
  117. {% else %}
  118. {% end %}
  119. </div>
  120. {% else %}
  121. data-type="{{ data['style'][key]['type'] }}" id="{{ key }}">
  122. <p><span style="color: #000; font-size: {{ data['style'][key]['header']['size'] }}px; font-weight: {{ data['style'][key]['header']['weight'] }};" class="title">{{ data['style'][key]['header']['title'] }} </span><span style="color: #000; font-size: {{ data['style'][key]['unit']['size'] }}px; font-weight: {{ data['style'][key]['unit']['weight'] }};" class="varval"> --- </span><span class='unit_title' style="color: #000; font-size: {{ data['style'][key]['unit']['size'] }}px; font-weight: {{ data['style'][key]['unit']['weight'] }};"> {{ data['style'][key]['unit']['title'] }}</span>
  123. {% if "trend" in data['style'][key] %}
  124. {% if data['style'][key]['trend'] == 'true' %}
  125. </p>
  126. {% else %}
  127. {% end %}
  128. {% else %}
  129. {% end %}
  130. </div>
  131. {% end %}
  132. {% else %}
  133. {% end %}
  134. {% if data['style'][key]['type'] == "icon" %}
  135. {% if data['style'][key]['icon'] == "valve" %}
  136. {% if "ref" in data['style'][key] %}
  137. <div tooltip="{{ data['style'][key]['ref'] }}"
  138. {% else %}
  139. <div tooltip="{{ key }}"
  140. {% end %}
  141. style='position: absolute; top: {{ data['style'][key]['top'] }}; left:{{ data['style'][key]['left'] }}; width:{{ data['style'][key]['width'] }}px; height:{{ data['style'][key]['height'] }}px;
  142. {% if "background_color" in data['style'][key] %}
  143. background-color:{{ data['style'][key]['background_color'] }};'
  144. {% else%}
  145. {% end%}
  146. {% if "trend" in data['style'][key] %}
  147. data-trend="{{ data['style'][key]['trend'] }}"
  148. {% else %}
  149. {% end %}
  150. {% if data['style'][key]['linkhtml'] == 'true' %}
  151. {% if "server" in data %}
  152. onclick="window.open( '{{ data["server"] }}#module=graph&{{ data['varname'][data['style'][key]['ref']] }}&experiment=-&window=86400&module=graph&virtual=srctree&srctree=&infomod=legend', '_blank');"
  153. {% else %}
  154. {% end %}
  155. {% else %}
  156. {% end %}
  157. {% if "ref" in data['style'][key] %}
  158. data-type="{{ data['style'][key]['type'] }}" data-icon="{{ data['style'][key]['icon'] }}" data-off="{{ data['style'][key]['off'] }}" data-offexpression="{{ data['style'][key]['off_condition'] }}" data-on="{{ data['style'][key]['on'] }}" data-onexpression="{{ data['style'][key]['on_condition'] }}" class='databox' id="{{ key }}">
  159. {% if "trend" in data['style'][key] %}
  160. {% if data['style'][key]['trend'] == 'true' %}
  161. {% else %}
  162. {% end %}
  163. {% else %}
  164. {% end %}
  165. <div class="icon">
  166. <img width="{{ data['style'][key]['width'] }}px" height="{{ data['style'][key]['height'] }}px" style='transform: {{ data['style'][key]['rotate'] }}' src='{{ static_url("valve_inactive.png") }}'></img>
  167. </div>
  168. </div>
  169. {% else %}
  170. data-type="{{ data['style'][key]['type'] }}" data-icon="{{ data['style'][key]['icon'] }}" data-off="{{ data['style'][key]['off'] }}" data-offexpression="{{ data['style'][key]['off_condition'] }}" data-on="{{ data['style'][key]['on'] }}" data-onexpression="{{ data['style'][key]['on_condition'] }}" class='databox' id="{{ key }}">
  171. {% if data['style'][key]['trend'] == 'true' %}
  172. {% else %}
  173. {% end %}
  174. <div class="icon">
  175. <img width="{{ data['style'][key]['width'] }}px" height="{{ data['style'][key]['height'] }}px" style='transform: {{ data['style'][key]['rotate'] }}' src='{{ static_url("valve_inactive.png") }}'></img>
  176. </div>
  177. </div>
  178. {% end %}
  179. {% else %}
  180. {% end %}
  181. {% if data['style'][key]['icon'] == "commbit" %}
  182. {% if "ref" in data['style'][key] %}
  183. <div tooltip="{{ data['style'][key]['ref'] }}"
  184. {% else %}
  185. <div tooltip="{{ key }}"
  186. {% end %}
  187. style='position: absolute; top: {{ data['style'][key]['top'] }}; left:{{ data['style'][key]['left'] }}; width:{{ data['style'][key]['width'] }}px; height:{{ data['style'][key]['height'] }}px;
  188. {% if "background_color" in data['style'][key] %}
  189. background-color:{{ data['style'][key]['background_color'] }};'
  190. {% else%}
  191. {% end%}
  192. {% if "trend" in data['style'][key] %}
  193. data-trend="{{ data['style'][key]['trend'] }}"
  194. {% else %}
  195. {% end %}
  196. {% if data['style'][key]['linkhtml'] == 'true' %}
  197. {% if "server" in data %}
  198. onclick="window.open( '{{ data["server"] }}#module=graph&{{ data['varname'][data['style'][key]['ref']] }}&experiment=-&window=86400&module=graph&virtual=srctree&srctree=&infomod=legend', '_blank');"
  199. {% else %}
  200. {% end %}
  201. {% else %}
  202. {% end %}
  203. {% if "ref" in data['style'][key] %}
  204. data-type="{{ data['style'][key]['type'] }}" data-icon="{{ data['style'][key]['icon'] }}" data-off="{{ data['style'][key]['off'] }}" data-offexpression="{{ data['style'][key]['off_condition'] }}" data-on="{{ data['style'][key]['on'] }}" data-onexpression="{{ data['style'][key]['on_condition'] }}" class='databox' id="{{ key }}">
  205. {% if data['style'][key]['trend'] == 'true' %}
  206. {% else %}
  207. {% end %}
  208. <div class="icon">
  209. <img width="{{ data['style'][key]['width'] }}px" height="{{ data['style'][key]['height'] }}px" style='transform: {{ data['style'][key]['rotate'] }}' src='{{ static_url("commbit_inactive.svg") }}'></img>
  210. </div>
  211. </div>
  212. {% else %}
  213. data-type="{{ data['style'][key]['type'] }}" data-icon="{{ data['style'][key]['icon'] }}" data-off="{{ data['style'][key]['off'] }}" data-offexpression="{{ data['style'][key]['off_condition'] }}" data-on="{{ data['style'][key]['on'] }}" data-onexpression="{{ data['style'][key]['on_condition'] }}" class='databox' id="{{ key }}">
  214. {% if data['style'][key]['trend'] == 'true' %}
  215. {% else %}
  216. {% end %}
  217. <div class="icon">
  218. <img width="{{ data['style'][key]['width'] }}px" height="{{ data['style'][key]['height'] }}px" style='transform: {{ data['style'][key]['rotate'] }}' src='{{ static_url("commbit_inactive.svg") }}'></img>
  219. </div>
  220. </div>
  221. {% end %}
  222. {% else %}
  223. {% end %}
  224. {% if data['style'][key]['icon'] == "alarm" %}
  225. {% if "ref" in data['style'][key] %}
  226. <div tooltip="{{ data['style'][key]['ref'] }}"
  227. {% else %}
  228. <div tooltip="{{ key }}"
  229. {% end %}
  230. style='position: absolute; top: {{ data['style'][key]['top'] }}; left:{{ data['style'][key]['left'] }}; width:{{ data['style'][key]['width'] }}px; height:{{ data['style'][key]['height'] }}px;
  231. {% if "background_color" in data['style'][key] %}
  232. background-color:{{ data['style'][key]['background_color'] }};'
  233. {% else%}
  234. {% end%}
  235. {% if "trend" in data['style'][key] %}
  236. data-trend="{{ data['style'][key]['trend'] }}"
  237. {% else %}
  238. {% end %}
  239. {% if data['style'][key]['linkhtml'] == 'true' %}
  240. {% if "server" in data %}
  241. onclick="window.open( '{{ data["server"] }}#module=graph&{{ data['varname'][data['style'][key]['ref']] }}&experiment=-&window=86400&module=graph&virtual=srctree&srctree=&infomod=legend', '_blank');"
  242. {% else %}
  243. {% end %}
  244. {% else %}
  245. {% end %}
  246. {% if "ref" in data['style'][key] %}
  247. data-type="{{ data['style'][key]['type'] }}" data-icon="{{ data['style'][key]['icon'] }}" data-off="{{ data['style'][key]['off'] }}" data-offexpression="{{ data['style'][key]['off_condition'] }}" data-on="{{ data['style'][key]['on'] }}" data-onexpression="{{ data['style'][key]['on_condition'] }}" class='databox' id="{{ key }}">
  248. {% if data['style'][key]['trend'] == 'true' %}
  249. {% else %}
  250. {% end %}
  251. <div class="icon">
  252. <img width="{{ data['style'][key]['width'] }}px" height="{{ data['style'][key]['height'] }}px" style='transform: {{ data['style'][key]['rotate'] }}' src='{{ static_url("alarm_inactive.svg") }}'></img>
  253. </div>
  254. </div>
  255. {% else %}
  256. data-type="{{ data['style'][key]['type'] }}" data-icon="{{ data['style'][key]['icon'] }}" data-off="{{ data['style'][key]['off'] }}" data-offexpression="{{ data['style'][key]['off_condition'] }}" data-on="{{ data['style'][key]['on'] }}" data-onexpression="{{ data['style'][key]['on_condition'] }}" class='databox' id="{{ key }}">
  257. {% if data['style'][key]['trend'] == 'true' %}
  258. {% else %}
  259. {% end %}
  260. <div class="icon">
  261. <img width="{{ data['style'][key]['width'] }}px" height="{{ data['style'][key]['height'] }}px" style='transform: {{ data['style'][key]['rotate'] }}' src='{{ static_url("alarm_inactive.svg") }}'></img>
  262. </div>
  263. </div>
  264. {% end %}
  265. {% else %}
  266. {% end %}
  267. {% if data['style'][key]['icon'] == "TMP" %}
  268. {% if "ref" in data['style'][key] %}
  269. <div tooltip="{{ data['style'][key]['ref'] }}"
  270. {% else %}
  271. <div tooltip="{{ key }}"
  272. {% end %}
  273. style='position: absolute; top: {{ data['style'][key]['top'] }}; left:{{ data['style'][key]['left'] }}; width:{{ data['style'][key]['width'] }}px; height:{{ data['style'][key]['height'] }}px;
  274. {% if "background_color" in data['style'][key] %}
  275. background-color:{{ data['style'][key]['background_color'] }};'
  276. {% else%}
  277. {% end%}
  278. {% if "trend" in data['style'][key] %}
  279. data-trend="{{ data['style'][key]['trend'] }}"
  280. {% else %}
  281. {% end %}
  282. {% if data['style'][key]['linkhtml'] == 'true' %}
  283. {% if "server" in data %}
  284. onclick="window.open( '{{ data["server"] }}#module=graph&{{ data['varname'][data['style'][key]['ref']] }}&experiment=-&window=86400&module=graph&virtual=srctree&srctree=&infomod=legend', '_blank');"
  285. {% else %}
  286. {% end %}
  287. {% else %}
  288. {% end %}
  289. {% if "ref" in data['style'][key] %}
  290. data-type="{{ data['style'][key]['type'] }}" data-icon="{{ data['style'][key]['icon'] }}" data-off="{{ data['style'][key]['off'] }}" data-offexpression="{{ data['style'][key]['off_condition'] }}" data-on="{{ data['style'][key]['on'] }}" data-onexpression="{{ data['style'][key]['on_condition'] }}" class='databox' id="{{ key }}">
  291. {% if data['style'][key]['trend'] == 'true' %}
  292. {% else %}
  293. {% end %}
  294. <div class="icon">
  295. <img width="{{ data['style'][key]['width'] }}px" height="{{ data['style'][key]['height'] }}px" style='transform: {{ data['style'][key]['rotate'] }}' src='{{ static_url("TMP_inactive.svg") }}'></img>
  296. </div>
  297. </div>
  298. {% else %}
  299. data-type="{{ data['style'][key]['type'] }}" data-icon="{{ data['style'][key]['icon'] }}" data-off="{{ data['style'][key]['off'] }}" data-offexpression="{{ data['style'][key]['off_condition'] }}" data-on="{{ data['style'][key]['on'] }}" data-onexpression="{{ data['style'][key]['on_condition'] }}" class='databox' id="{{ key }}">
  300. {% if data['style'][key]['trend'] == 'true' %}
  301. {% else %}
  302. {% end %}
  303. <div class="icon">
  304. <img width="{{ data['style'][key]['width'] }}px" height="{{ data['style'][key]['height'] }}px" style='transform: {{ data['style'][key]['rotate'] }}' src='{{ static_url("TMP_inactive.svg") }}'></img>
  305. </div>
  306. </div>
  307. {% end %}
  308. {% else %}
  309. {% end %}
  310. {% if data['style'][key]['icon'] == "relay" %}
  311. {% if "ref" in data['style'][key] %}
  312. <div tooltip="{{ data['style'][key]['ref'] }}"
  313. {% else %}
  314. <div tooltip="{{ key }}"
  315. {% end %}
  316. style='position: absolute; top: {{ data['style'][key]['top'] }}; left:{{ data['style'][key]['left'] }}; width:{{ data['style'][key]['width'] }}px; height:{{ data['style'][key]['height'] }}px;
  317. {% if "background_color" in data['style'][key] %}
  318. background-color:{{ data['style'][key]['background_color'] }};'
  319. {% else%}
  320. {% end%}
  321. {% if "trend" in data['style'][key] %}
  322. data-trend="{{ data['style'][key]['trend'] }}"
  323. {% else %}
  324. {% end %}
  325. {% if data['style'][key]['linkhtml'] == 'true' %}
  326. {% if "server" in data %}
  327. onclick="window.open( '{{ data["server"] }}#module=graph&{{ data['varname'][data['style'][key]['ref']] }}&experiment=-&window=86400&module=graph&virtual=srctree&srctree=&infomod=legend', '_blank');"
  328. {% else %}
  329. {% end %}
  330. {% else %}
  331. {% end %}
  332. {% if "ref" in data['style'][key] %}
  333. data-type="{{ data['style'][key]['type'] }}" data-icon="{{ data['style'][key]['icon'] }}" data-off="{{ data['style'][key]['off'] }}" data-offexpression="{{ data['style'][key]['off_condition'] }}" data-on="{{ data['style'][key]['on'] }}" data-onexpression="{{ data['style'][key]['on_condition'] }}" class='databox' id="{{ key }}">
  334. {% if data['style'][key]['trend'] == 'true' %}
  335. {% else %}
  336. {% end %}
  337. <div class="icon">
  338. <img width="{{ data['style'][key]['width'] }}px" height="{{ data['style'][key]['height'] }}px" style='transform: {{ data['style'][key]['rotate'] }}' src='{{ static_url("relay_inactive.svg") }}'></img>
  339. </div>
  340. </div>
  341. {% else %}
  342. data-type="{{ data['style'][key]['type'] }}" data-icon="{{ data['style'][key]['icon'] }}" data-off="{{ data['style'][key]['off'] }}" data-offexpression="{{ data['style'][key]['off_condition'] }}" data-on="{{ data['style'][key]['on'] }}" data-onexpression="{{ data['style'][key]['on_condition'] }}" class='databox' id="{{ key }}">
  343. {% if data['style'][key]['trend'] == 'true' %}
  344. {% else %}
  345. {% end %}
  346. <div class="icon">
  347. <img width="{{ data['style'][key]['width'] }}px" height="{{ data['style'][key]['height'] }}px" style='transform: {{ data['style'][key]['rotate'] }}' src='{{ static_url("relay_inactive.svg") }}'></img>
  348. </div>
  349. </div>
  350. {% end %}
  351. {% else %}
  352. {% end %}
  353. {% if data['style'][key]['icon'] == "switch" %}
  354. {% if "ref" in data['style'][key] %}
  355. <div tooltip="{{ data['style'][key]['ref'] }}"
  356. {% else %}
  357. <div tooltip="{{ key }}"
  358. {% end %}
  359. style='position: absolute; top: {{ data['style'][key]['top'] }}; left:{{ data['style'][key]['left'] }}; width:{{ data['style'][key]['width'] }}px; height:{{ data['style'][key]['height'] }}px;
  360. {% if "background_color" in data['style'][key] %}
  361. background-color:{{ data['style'][key]['background_color'] }};'
  362. {% else%}
  363. {% end%}
  364. {% if "trend" in data['style'][key] %}
  365. data-trend="{{ data['style'][key]['trend'] }}"
  366. {% else %}
  367. {% end %}
  368. {% if data['style'][key]['linkhtml'] == 'true' %}
  369. {% if "server" in data %}
  370. onclick="window.open( '{{ data["server"] }}#module=graph&{{ data['varname'][data['style'][key]['ref']] }}&experiment=-&window=86400&module=graph&virtual=srctree&srctree=&infomod=legend', '_blank');"
  371. {% else %}
  372. {% end %}
  373. {% else %}
  374. {% end %}
  375. {% if "ref" in data['style'][key] %}
  376. data-type="{{ data['style'][key]['type'] }}" data-icon="{{ data['style'][key]['icon'] }}" data-off="{{ data['style'][key]['off'] }}" data-offexpression="{{ data['style'][key]['off_condition'] }}" data-on="{{ data['style'][key]['on'] }}" data-onexpression="{{ data['style'][key]['on_condition'] }}" class='databox' id="{{ key }}">
  377. {% if data['style'][key]['trend'] == 'true' %}
  378. {% else %}
  379. {% end %}
  380. <div class="icon">
  381. <img width="{{ data['style'][key]['width'] }}px" height="{{ data['style'][key]['height'] }}px" style='transform: {{ data['style'][key]['rotate'] }}' src='{{ static_url("switch_inactive.svg") }}'></img>
  382. </div>
  383. </div>
  384. {% else %}
  385. data-type="{{ data['style'][key]['type'] }}" data-icon="{{ data['style'][key]['icon'] }}" data-off="{{ data['style'][key]['off'] }}" data-offexpression="{{ data['style'][key]['off_condition'] }}" data-on="{{ data['style'][key]['on'] }}" data-onexpression="{{ data['style'][key]['on_condition'] }}" class='databox' id="{{ key }}">
  386. {% if data['style'][key]['trend'] == 'true' %}
  387. {% else %}
  388. {% end %}
  389. <div class="icon">
  390. <img width="{{ data['style'][key]['width'] }}px" height="{{ data['style'][key]['height'] }}px" style='transform: {{ data['style'][key]['rotate'] }}' src='{{ static_url("switch_inactive.svg") }}'></img>
  391. </div>
  392. </div>
  393. {% end %}
  394. {% else %}
  395. {% end %}
  396. {% if data['style'][key]['icon'] == "bottle" %}
  397. {% if "ref" in data['style'][key] %}
  398. <div tooltip="{{ data['style'][key]['ref'] }}"
  399. {% else %}
  400. <div tooltip="{{ key }}"
  401. {% end %}
  402. style='position: absolute; top: {{ data['style'][key]['top'] }}; left:{{ data['style'][key]['left'] }}; width:{{ data['style'][key]['width'] }}px; height:{{ data['style'][key]['height'] }}px;
  403. {% if "background_color" in data['style'][key] %}
  404. background-color:{{ data['style'][key]['background_color'] }};'
  405. {% else%}
  406. {% end%}
  407. {% if "trend" in data['style'][key] %}
  408. data-trend="{{ data['style'][key]['trend'] }}"
  409. {% else %}
  410. {% end %}
  411. {% if data['style'][key]['linkhtml'] == 'true' %}
  412. {% if "server" in data %}
  413. onclick="window.open( '{{ data["server"] }}#module=graph&{{ data['varname'][data['style'][key]['ref']] }}&experiment=-&window=86400&module=graph&virtual=srctree&srctree=&infomod=legend', '_blank');"
  414. {% else %}
  415. {% end %}
  416. {% else %}
  417. {% end %}
  418. {% if "ref" in data['style'][key] %}
  419. data-type="{{ data['style'][key]['type'] }}" data-icon="{{ data['style'][key]['icon'] }}" data-off="{{ data['style'][key]['off'] }}" data-offexpression="{{ data['style'][key]['off_condition'] }}" data-on="{{ data['style'][key]['on'] }}" data-onexpression="{{ data['style'][key]['on_condition'] }}" class='databox' id="{{ key }}">
  420. {% if data['style'][key]['trend'] == 'true' %}
  421. {% else %}
  422. {% end %}
  423. <div class="icon">
  424. <img width="{{ data['style'][key]['width'] }}px" height="{{ data['style'][key]['height'] }}px" style='transform: {{ data['style'][key]['rotate'] }}' src='{{ static_url("bottle_inactive.svg") }}'></img>
  425. </div>
  426. </div>
  427. {% else %}
  428. data-type="{{ data['style'][key]['type'] }}" data-icon="{{ data['style'][key]['icon'] }}" data-off="{{ data['style'][key]['off'] }}" data-offexpression="{{ data['style'][key]['off_condition'] }}" data-on="{{ data['style'][key]['on'] }}" data-onexpression="{{ data['style'][key]['on_condition'] }}" class='databox' id="{{ key }}">
  429. {% if data['style'][key]['trend'] == 'true' %}
  430. {% else %}
  431. {% end %}
  432. <div class="icon">
  433. <img width="{{ data['style'][key]['width'] }}px" height="{{ data['style'][key]['height'] }}px" style='transform: {{ data['style'][key]['rotate'] }}' src='{{ static_url("bottle_inactive.svg") }}'></img>
  434. </div>
  435. </div>
  436. {% end %}
  437. {% else %}
  438. {% end %}
  439. {% else %}
  440. {% end %}
  441. {% if data['style'][key]['type'] == "integer-to-string" %}
  442. <div tooltip="{{ key }}" style='position: absolute; top: {{
  443. data['style'][key]['top'] }}; left:{{ data['style'][key]['left'] }};
  444. width:{{ data['style'][key]['width'] }}px; height:{{
  445. data['style'][key]['height'] }}px;
  446. {% if "background_color" in data['style'][key] %}
  447. background-color:{{ data['style'][key]['background_color'] }};'
  448. {% else%}
  449. '
  450. {% end%}
  451. {% if "cond" in data['style'][key] %}
  452. data-cond="{{ data['style'][key]['cond'] }}"
  453. {% else %}
  454. {% end %}
  455. {% if "trend" in data['style'][key] %}
  456. data-trend="{{ data['style'][key]['trend'] }}"
  457. {% else %}
  458. {% end %}
  459. data-adei="{{ data['server'] }}"
  460. {% if data['style'][key]['ref'] in data['varname'] %}
  461. data-query="{{ data['varname'][data['style'][key]['ref']] }}"
  462. {% else %}
  463. {% end %}
  464. {% if "linkhtml" in data['style'][key] %}
  465. {% if data['style'][key]['linkhtml'] == 'true' %}
  466. {% if "server" in data %}
  467. onclick="window.open( '{{ data["server"] }}#module=graph&{{ data['varname'][data['style'][key]['ref']] }}&experiment=-&window=86400&module=graph&virtual=srctree&srctree=&infomod=legend', '_blank');"
  468. {% else %}
  469. {% end %}
  470. {% else %}
  471. {% end %}
  472. {% else %}
  473. {% end %}
  474. data-dict="{{ data['style'][key]['dict'] }}" data-type="{{ data['style'][key]['type'] }}" class='databox' id="{{ key }}">
  475. <p><span style="color: #000; font-size: {{ data['style'][key]['header']['size'] }}px; font-weight: {{ data['style'][key]['header']['weight'] }};" class="title">{{ data['style'][key]['header']['title'] }} </span><br /><span style="color: #000; font-size: {{ data['style'][key]['unit']['size'] }}px; font-weight: {{ data['style'][key]['unit']['weight'] }};" class="varval">--- </span>
  476. {% if "trend" in data['style'][key] %}
  477. {% if data['style'][key]['trend'] == 'true' %}
  478. {% else %}
  479. {% end %}
  480. {% else %}
  481. {% end %}
  482. </p>
  483. </div>
  484. {% else %}
  485. {% end %}
  486. {% if data['style'][key]['type'] == "header" %}
  487. <div style='position: absolute; top: {{ data['style'][key]['top'] }}; left:{{
  488. data['style'][key]['left'] }}; width:{{ data['style'][key]['width'] }}px;
  489. height:{{ data['style'][key]['height'] }}px;
  490. {% if "background_color" in data['style'][key] %}
  491. background-color:{{ data['style'][key]['background_color'] }};'
  492. {% else %}
  493. {% end %}
  494. {% if "titlelink" in data['style'][key] %}
  495. onclick="window.open( '{{ data['style'][key]['titlelink'] }}' );"
  496. {% else %}
  497. {% end %}
  498. data-type="{{
  499. data['style'][key]['type'] }}" class='databox' id="{{ key }}">
  500. <p><span style="color: #000; font-size: {{ data['style'][key]['header']['size'] }}px; font-weight: {{ data['style'][key]['header']['weight'] }};" class="title">{{ data['style'][key]['header']['title'] }} </span></p>
  501. </div>
  502. {% else %}
  503. {% end %}
  504. {% end %}
  505. {% else %}
  506. {% end %}
  507. <img src="{{ static_url( 'background.png' ) }}"></img>
  508. <!-- java script -->
  509. <script src="{{ static_url("jquery-1.12.3.min.js") }}"></script>
  510. <script src="{{ static_url("jquery-ui.min.js") }}"></script>
  511. <script src="{{ static_url("math.min.js") }}"></script>
  512. <script>
  513. jQuery(window).load(function () {
  514. var win_width = $(document).width();
  515. var win_height = $(document).height();
  516. $(".databox").hover(function(){
  517. var trend_time_end = Math.floor(Date.now() / 1000);
  518. var trend_time_start = trend_time_end - 3600;
  519. var key = $(this).attr('id');
  520. var data_adei = $("#" + key).attr('data-adei');
  521. var data_query = $("#" + key).attr('data-query');
  522. if ($("#" + key).attr('data-trend') == "true") {
  523. $('#'+ key).append('<span class="popup" style="top:0; left:250px;"><img src="' + data_adei + '/services/getimage.php?' + data_query + '&window='+ trend_time_start.toString() +'-'+ trend_time_end.toString() + '&frame_width=600&frame_height=400" width="600px" height="400px"/></span>');
  524. var key_left = parseInt($("#" + key).css("left"));
  525. var pos_left = key_left + 850;
  526. var key_top = parseInt($("#" + key).css("top"));
  527. var pos_top = key_top + 400;
  528. if(pos_left > win_width) {
  529. $("#" + key + " .popup").css({
  530. 'right':'250px',
  531. 'left': ''
  532. });
  533. }
  534. if(pos_top > win_height) {
  535. $("#" + key + " .popup").css({
  536. 'bottom':'0px',
  537. 'top': ''
  538. });
  539. }
  540. }
  541. });
  542. myTimer();
  543. var myVar = setInterval(myTimer, 10000);
  544. function myTimer() {
  545. var dataToSend = {};
  546. $.ajax({
  547. url: '/getdata/',
  548. //url: '/wgts/getabcddata/',
  549. type: 'GET',
  550. data: dataToSend,
  551. success: function (response) {
  552. //var objresponse = JSON.parse(response);
  553. console.log(response);
  554. for (var key in response) {
  555. //console.log(key, response[key]);
  556. data_type = $("#" + key).attr('data-type');
  557. if($("#" + key).length > 0) {
  558. if (data_type == "data") {
  559. //console.log("data");
  560. var datavalue, set_color, formula;
  561. var formula_attr = $("#" + key).attr('data-formula');
  562. var delta = (new Date().getTime()/1000.0) - response[key]["timestamp"];
  563. var dateTime = new Date( response[key]["timestamp"]*1000.0 );
  564. $("#"+key).attr('tooltip', key + "\nDeltaTime: " + parseFloat(delta).toFixed(3) + " s (" + parseFloat(delta / 60.0).toFixed(3) + " min)");
  565. if (response[key]["value"]) {
  566. if (formula_attr) {
  567. datavalue = parseFloat(response[key]["value"]).toFixed($("#" + key).attr('data-decimal'));
  568. formula = formula_attr.replace("x", datavalue.toString());
  569. datavalue = math.round(math.eval(formula),2);
  570. datavalue = datavalue.toFixed($("#" + key).attr('data-decimal'));
  571. } else {
  572. if ( ($("#" + key).attr('data-exponential')) == "True" || ($("#" + key).attr('data-exponential')) == "true" ) {
  573. datavalue = parseFloat(response[key]["value"]);
  574. datavalue = datavalue.toExponential(2)
  575. } else {
  576. datavalue = parseFloat(response[key]["value"]).toFixed($("#" + key).attr('data-decimal'));
  577. }
  578. }
  579. set_color = "green";
  580. } else {
  581. datavalue = "---";
  582. set_color = "black";
  583. }
  584. $(".varval", "#" + key).text(datavalue);
  585. var condition_attr = $("#" + key).attr('data-cond');
  586. var lesser_attr = $("#" + key).attr('data-lesser');
  587. var larger_attr = $("#" + key).attr('data-larger');
  588. //console.log(condition_attr);
  589. if (condition_attr) {
  590. if (response[key]["value"] == condition_attr) {
  591. set_color = "red";
  592. }
  593. }
  594. if (lesser_attr) {
  595. if (parseFloat(response[key]["value"]) < parseFloat(lesser_attr)) {
  596. set_color = "red";
  597. }
  598. }
  599. if (larger_attr) {
  600. if (parseFloat(response[key]["value"]) > parseFloat(larger_attr)) {
  601. set_color = "red";
  602. }
  603. }
  604. $(".varval", "#" + key).css("color", set_color);
  605. $(".unit_title", "#" + key).css("color", set_color);
  606. } else if (data_type == "icon") {
  607. //console.log("ventil");
  608. var delta = (new Date().getTime()/1000.0) - response[key]["timestamp"];
  609. var dateTime = new Date( response[key]["timestamp"]*1000.0 );
  610. $("#"+key).attr('tooltip', key + "\nDeltaTime: " + parseFloat(delta).toFixed(3) + " s (" + parseFloat(delta / 60.0).toFixed(3) + " min)");
  611. var on_attr = $("#" + key).attr('data-on');
  612. var off_attr = $("#" + key).attr('data-off');
  613. var on_condition = $("#" + key).attr('data-onexpression');
  614. var off_condition = $("#" + key).attr('data-offexpression');
  615. if (on_condition == 'onequal'){
  616. if (parseFloat(response[key]["value"]) == parseFloat(on_attr)) {
  617. $("img", "#" + key).attr("src", "/static/" + $("#" + key).attr('data-icon') + "_green.svg");
  618. }
  619. } else if (on_condition == 'onsmaller'){
  620. if (parseFloat(response[key]["value"]) < parseFloat(on_attr)) {
  621. $(".icon img", "#" + key).attr("src", "/static/" + $("#" + key).attr('data-icon') + "_green.svg");
  622. }
  623. } else if (on_condition == 'ongreater'){
  624. if (parseFloat(response[key]["value"]) > parseFloat(on_attr)) {
  625. $(".icon img", "#" + key).attr("src", "/static/" + $("#" + key).attr('data-icon') + "_green.svg");
  626. }
  627. }
  628. if (off_condition == 'offequal'){
  629. if (parseFloat(response[key]["value"]) == parseFloat(off_attr)) {
  630. $(".icon img", "#" + key).attr("src", "/static/" + $("#" + key).attr('data-icon') + "_red.svg");
  631. }
  632. } else if (off_condition == 'offsmaller'){
  633. if (parseFloat(response[key]["value"]) < parseFloat(off_attr)) {
  634. $(".icon img", "#" + key).attr("src", "/static/" + $("#" + key).attr('data-icon') + "_red.svg");
  635. }
  636. } else if (off_condition == 'offgreater'){
  637. if (parseFloat(response[key]["value"]) > parseFloat(off_attr)) {
  638. $(".icon img", "#" + key).attr("src", "/static/" + $("#" + key).attr('data-icon') + "_red.svg");
  639. }
  640. }
  641. } else if (data_type == "integer-to-string") {
  642. //console.log("integer-to-string");
  643. var delta = (new Date().getTime()/1000.0) - response[key]["timestamp"];
  644. var dateTime = new Date( response[key]["timestamp"]*1000.0 );
  645. $("#"+key).attr('tooltip', key + "\nDeltaTime: " + parseFloat(delta).toFixed(3) + " s (" + parseFloat(delta / 60.0).toFixed(3) + " min)");
  646. var dict_attr = JSON.parse($("#" + key).attr('data-dict'));
  647. var dict_cond;
  648. if ($("#"+key).attr("data-cond")) {
  649. dict_cond = JSON.parse($("#" + key).attr('data-cond'));
  650. } else {
  651. dict_cond = {};
  652. }
  653. var dict_color = "";
  654. if (key in response) {
  655. var token = response[key]["value"];
  656. if (token in dict_cond) {
  657. dict_color = dict_cond[token];
  658. }
  659. }
  660. $(".varval", "#" + key).css("color", dict_color);
  661. $(".varval", "#" + key).text(dict_attr[response[key]["value"]]);
  662. }
  663. }
  664. }
  665. $('[id^=virtual_]').each(function( index ) {
  666. var key = this.id;
  667. var ref = key.split("_");
  668. ref.shift();
  669. ref.pop();
  670. ref = ref.join("_");
  671. //ref = ref[1];
  672. //console.log(ref, key);
  673. data_type = $("#" + key).attr('data-type');
  674. if($("#" + key).length > 0) {
  675. if (data_type == "data") {
  676. //console.log(key);
  677. var datavalue, set_color, formula;
  678. var formula_attr = $("#" + key).attr('data-formula');
  679. var delta = (new Date().getTime()/1000.0) - response[ref]["timestamp"];
  680. var dateTime = new Date( response[ref]["timestamp"]*1000.0 );
  681. $("#"+ref).attr('tooltip', key + "\nDeltaTime: " + parseFloat(delta).toFixed(3) + " s (" + parseFloat(delta / 60.0).toFixed(3) + " min)");
  682. if (response[ref]["value"]) {
  683. if (formula_attr) {
  684. datavalue = parseFloat(response[ref]["value"]).toFixed($("#" + key).attr('data-decimal'));
  685. formula = formula_attr.replace("x", datavalue.toString());
  686. datavalue = math.round(math.eval(formula),2);
  687. datavalue = datavalue.toFixed($("#" + key).attr('data-decimal'));
  688. } else {
  689. datavalue = parseFloat(response[ref]["value"]).toFixed($("#" + key).attr('data-decimal'));
  690. }
  691. set_color = "green";
  692. } else {
  693. datavalue = "---";
  694. set_color = "black";
  695. }
  696. $(".varval", "#" + key).text(datavalue);
  697. var condition_attr = $("#" + key).attr('data-cond');
  698. var lesser_attr = $("#" + key).attr('data-lesser');
  699. var larger_attr = $("#" + key).attr('data-larger');
  700. //console.log(condition_attr);
  701. if (condition_attr) {
  702. if (response[ref]["value"] == condition_attr) {
  703. set_color = "red";
  704. }
  705. }
  706. if (lesser_attr) {
  707. if (parseFloat(response[ref]["value"]) < parseFloat(lesser_attr)) {
  708. set_color = "red";
  709. }
  710. }
  711. if (larger_attr) {
  712. if (parseFloat(response[ref]["value"]) > parseFloat(larger_attr)) {
  713. set_color = "red";
  714. }
  715. }
  716. $(".varval", "#" + key).css("color", set_color);
  717. $(".unit_title", "#" + key).css("color", set_color);
  718. } else if (data_type == "icon") {
  719. var on_attr = $("#" + key).attr('data-on');
  720. var off_attr = $("#" + key).attr('data-off');
  721. var on_condition = $("#" + key).attr('data-onexpression');
  722. var off_condition = $("#" + key).attr('data-offexpression');
  723. var delta = (new Date().getTime()/1000.0) - response[ref]["timestamp"];
  724. var dateTime = new Date( response[ref]["timestamp"]*1000.0 );
  725. $("#"+key).attr('tooltip', key + "\nDeltaTime: " + parseFloat(delta).toFixed(3) + " s (" + parseFloat(delta / 60.0).toFixed(3) + " min)");
  726. if (on_condition == 'onequal'){
  727. if (parseFloat(response[ref]["value"]) == parseFloat(on_attr)) {
  728. $("img", "#" + key).attr("src", "/static/" + $("#" + key).attr('data-icon') + "_green.svg");
  729. }
  730. } else if (on_condition == 'onsmaller'){
  731. if (parseFloat(response[ref]["value"]) < parseFloat(on_attr)) {
  732. $("img", "#" + key).attr("src", "/static/" + $("#" + key).attr('data-icon') + "_green.svg");
  733. }
  734. } else if (on_condition == 'ongreater'){
  735. if (parseFloat(response[ref]["value"]) > parseFloat(on_attr)) {
  736. $("img", "#" + key).attr("src", "/static/" + $("#" + key).attr('data-icon') + "_green.svg");
  737. }
  738. }
  739. if (off_condition == 'offequal'){
  740. if (parseFloat(response[ref]["value"]) == parseFloat(off_attr)) {
  741. $("img", "#" + key).attr("src", "/static/" + $("#" + key).attr('data-icon') + "_red.svg");
  742. }
  743. } else if (off_condition == 'offsmaller'){
  744. if (parseFloat(response[ref]["value"]) < parseFloat(off_attr)) {
  745. $("img", "#" + key).attr("src", "/static/" + $("#" + key).attr('data-icon') + "_red.svg");
  746. }
  747. } else if (off_condition == 'offgreater'){
  748. if (parseFloat(response[ref]["value"]) > parseFloat(off_attr)) {
  749. $("img", "#" + key).attr("src", "/static/" + $("#" + key).attr('data-icon') + "_red.svg");
  750. }
  751. }
  752. } else if (data_type == "integer-to-string") {
  753. var delta = (new Date().getTime()/1000.0) - response[key]["timestamp"];
  754. var dateTime = new Date( response[key]["timestamp"]*1000.0 );
  755. $("#"+key).attr('tooltip', key + "\nDeltaTime: " + parseFloat(delta).toFixed(3) + " s (" + parseFloat(delta / 60.0).toFixed(3) + " min)");
  756. var dict_attr = JSON.parse($("#" + key).attr('data-dict'));
  757. var dict_cond;
  758. if ($("#"+key).attr("data-cond")) {
  759. dict_cond = JSON.parse($("#" + key).attr('data-cond'));
  760. } else {
  761. dict_cond = {};
  762. }
  763. var dict_color = "";
  764. if (ref in response) {
  765. var token = response[ref]["value"];
  766. if (token in dict_cond) {
  767. dict_color = dict_cond[token];
  768. }
  769. }
  770. $(".varval", "#" + key).css("color", dict_color);
  771. $(".varval", "#" + key).text(dict_attr[response[ref]["value"]]);
  772. }
  773. }
  774. });
  775. $('[id^=calc_]').each(function( index ) {
  776. //console.log(this.id);
  777. //console.log($(this).attr('data-formula'));
  778. if (typeof $(this).attr('data-formula') != "undefined") {
  779. var myformula = $(this).attr('data-formula').trim();
  780. /*
  781. myformula = myformula.replace(/\[.*?\]/g, '__');
  782. console.log(myformula);
  783. */
  784. var data = myformula;
  785. var re= /\[(.*?)\]/g;
  786. var buffer = []
  787. for(m = re.exec(data); m; m = re.exec(data)){
  788. buffer.push(m[1]);
  789. }
  790. //console.log("Debug:");
  791. //console.log(buffer);
  792. var finalstring = "";
  793. var pattern = /\[(.*?)\]/g;
  794. var teststring = myformula.split(/[\[\]]+/);
  795. //console.log(teststring);
  796. //console.log(finalstring);
  797. for (var i = 0; i < teststring.length; i++) {
  798. var val = "";
  799. if (teststring[i] in response) {
  800. val = response[teststring[i]]["value"];
  801. } else {
  802. val = teststring[i];
  803. }
  804. finalstring += val;
  805. finalstring += " ";
  806. }
  807. finalstring = finalstring.trim();
  808. //console.log(finalstring);
  809. var myvalue = math.round(math.eval(finalstring),2);
  810. myvalue = myvalue.toFixed($("#" + this.id).attr('data-decimal'));
  811. set_color = "green";
  812. console.log(myvalue);
  813. $(".varval", "#" + this.id).text(myvalue);
  814. var condition_attr = $("#" + this.id).attr('data-cond');
  815. var lesser_attr = $("#" + this.id).attr('data-lesser');
  816. var larger_attr = $("#" + this.id).attr('data-larger');
  817. //console.log(condition_attr);
  818. if (condition_attr) {
  819. if (myvalue == condition_attr) {
  820. set_color = "red";
  821. }
  822. }
  823. if (lesser_attr) {
  824. if (parseFloat(myvalue) < parseFloat(lesser_attr)) {
  825. set_color = "red";
  826. }
  827. }
  828. if (larger_attr) {
  829. if (parseFloat(myvalue) > parseFloat(larger_attr)) {
  830. set_color = "red";
  831. }
  832. }
  833. $(".varval", "#" + this.id).css("color", set_color);
  834. $(".unit_title", "#" + this.id).css("color", set_color);
  835. }
  836. });
  837. var page_title_cache = $("#page_title_cache").text();
  838. var datetime = page_title_cache + " data monitoring page. Last Sync: " + response["time"];
  839. $("#page_info").text(datetime + " UTC");
  840. console.log(datetime);
  841. },
  842. error: function () {
  843. console.log("Error.")
  844. }
  845. });
  846. }
  847. });
  848. </script>
  849. </body>
  850. </html>