summaryrefslogtreecommitdiffstats
path: root/pyserver/templates/base.html
diff options
context:
space:
mode:
authorVasilii Chernov <vchernov@inr.ru>2016-03-02 08:48:24 +0100
committerVasilii Chernov <vchernov@inr.ru>2016-03-02 08:48:24 +0100
commit8eca0564a1dd6aac125086a244687b4813a1fd86 (patch)
tree462919b3c3a3ebe833b3b7215c5a9399e5da7f60 /pyserver/templates/base.html
parent269b0985bd5830e27f6dedb04a05d76f52acb68c (diff)
parentadc657ebcd01ecc2cc5f110453ef00dffde2d5c0 (diff)
downloadpcitool-8eca0564a1dd6aac125086a244687b4813a1fd86.tar.gz
pcitool-8eca0564a1dd6aac125086a244687b4813a1fd86.tar.bz2
pcitool-8eca0564a1dd6aac125086a244687b4813a1fd86.tar.xz
pcitool-8eca0564a1dd6aac125086a244687b4813a1fd86.zip
1. Merge with http://ufo.kit.edu/ufo/log/csa/pcitool 359 revision
2. Move api_server to html server
Diffstat (limited to 'pyserver/templates/base.html')
-rw-r--r--pyserver/templates/base.html194
1 files changed, 194 insertions, 0 deletions
diff --git a/pyserver/templates/base.html b/pyserver/templates/base.html
new file mode 100644
index 0000000..a2df1e9
--- /dev/null
+++ b/pyserver/templates/base.html
@@ -0,0 +1,194 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>{% block title %}Device {{ device }}{% endblock %}</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
+ <link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='codebase/dhtmlx.css') }}"/>
+ <link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='base.css') }}"/>
+ <script type=text/javascript src="{{ url_for('static', filename='jquery-2.2.1.js') }}"></script>
+ <script src="{{ url_for('static', filename='codebase/dhtmlx.js') }}"></script>
+ <script src="{{ url_for('static', filename='check_err.js') }}"></script>
+ <script>
+ var propsTree
+ function createPropertyTree(branch, id) {
+
+ function getPropertyItemsOnLevel(branch, id) {
+ var pathToProperties = "{{ url_for('process_json_command', command = 'get_property_list') }}"
+ var completePath = pathToProperties + '?branch=' + branch
+
+ $.getJSON(completePath,
+ function(json) {
+ checkError(json)
+ parsePropertyItems(json, branch, id)
+ });
+ }
+
+ function parsePropertyItems(json, branch, id) {
+
+ checkError(json)
+ json = json.properties
+
+ function loadPropertyInfo(branch) {
+
+ var pathToProperties = "{{ url_for('get_property_list') }}"
+ var completePath = pathToProperties + '?branch=' + branch
+
+ $("#prop_info_place").load(completePath)
+ }
+
+
+ function setPropertyField(id, name, branch) {
+
+ var func = function(){loadPropertyInfo(branch)}
+ propsTree.insertNewItem(id, branch,
+ name,
+ func);
+ propsTree.closeAllItems()
+ }
+
+ for(var i = 0; i < json.length; i++) {
+
+ setPropertyField(id, json[i].name, json[i].path)
+ if(json[i].flags.indexOf("childs") != -1)
+ getPropertyItemsOnLevel(json[i].path, json[i].path)
+ }
+ }
+
+ getPropertyItemsOnLevel(branch, id)
+ }
+
+ var regTree
+ function createRegistersList() {
+ function parseJsonRegisterList(json) {
+ checkError(json)
+ json = json.registers
+
+ function loadRegistersList(bank) {
+ var pathToGetRegisterList = "{{ url_for('get_registers_list') }}"
+ var completePath = pathToGetRegisterList + '?bank=' + bank
+
+ $("#reg_info_place").load(completePath)
+ }
+
+ function loadRegisterInfo(bank, name) {
+ var pathToGetRegister = "{{ url_for('get_register_info') }}"
+ var completePath = pathToGetRegister + '?bank=' + bank +
+ '&name=' + name
+
+ $("#reg_info_place").load(completePath)
+ }
+
+ function setRegisterField(id, bank, name) {
+
+ var itemId = bank + "_" + name
+ var func = function(){loadRegisterInfo(bank, name)}
+
+ regTree.insertNewItem(id, itemId, name, func)
+ regTree.closeAllItems()
+ }
+
+ function setbankField(bank) {
+
+ var func = function(){loadRegistersList(bank)}
+ regTree.insertNewItem(0, bank, bank, func);
+ regTree.closeAllItems()
+ }
+
+ checkError(json)
+ if(json.lenght <= 0)
+ return
+
+ //sort registers by bank
+ function compareRegistersByBank(a,b) {
+ if (a.bank < b.bank)
+ return -1;
+ else if (a.bank > b.bank)
+ return 1;
+ else
+ return 0;
+ }
+ json.sort(compareRegistersByBank)
+
+
+ //create bank dirs
+ var curBankName = json[0].bank
+ var created = 0
+ for(var i = 0; i < json.length; i++) {
+
+ //create new bank tab if it has not created already
+ if(json[i].bank != curBankName) {
+ curBankName = json[i].bank
+ created = 0
+ }
+
+ if(!created) {
+ setbankField(json[i].bank )
+ created = 1
+ }
+
+
+ //insert register info to bank
+
+ setRegisterField(json[i].bank, json[i].bank, json[i].name)
+ }
+ }
+
+ //get registers json list
+ var getRegistersListPath = "{{ url_for('process_json_command', command = 'get_registers_list') }}"
+ $.getJSON(getRegistersListPath, parseJsonRegisterList);
+ }
+
+ function doOnLoad()
+ {
+ propsTree = new dhtmlXTreeObject("treeboxbox_tree","100%","100%",0);
+ propsTree.setImagePath("{{ url_for('static', filename='codebase/imgs/dhxtree_skyblue/') }}");
+ //generating properties list
+ createPropertyTree('', 0)
+
+ regTree = new dhtmlXTreeObject("treeboxbox_tree2","100%","100%",0,0,0,0,'SELECT')
+ regTree.setImagePath("{{ url_for('static', filename='codebase/imgs/dhxtree_skyblue/') }}");
+ createRegistersList()
+ }
+ </script>
+</head>
+<body onload="doOnLoad()">
+ {% block info %}
+ <div class="block1" >
+ <h2>Device {{ device }} model={{ model }} control page </h2>
+ </div>
+ {% endblock %}
+
+ <div class="tabs">
+ <input type="radio" name="current" checked="checked" id="props_id"/>
+ <label for="props_id">Properties</label>
+ <input type="radio" name="current" id="labels_id"/>
+ <label for="labels_id">Registers</label>
+ <div>
+ <table>
+ <tr>
+ <td valign="top">
+ <div id="treeboxbox_tree" class = "tree"></div>
+ </td>
+ <td valign="top" id="prop_info_place" />
+ </tr>
+ </table>
+ </div>
+ <div>
+ <table>
+ <tr>
+ <td valign="top">
+ <div id="treeboxbox_tree2" class="tree"></div>
+ </td>
+ <td valign="top" id="reg_info_place" />
+ </tr>
+ </table>
+ </div>
+ </div>
+ {% block content %}
+ {% endblock %}
+ <div class="block1" >
+ <a href="{{ url_for('process_json_command', command='help') }}">Json API usage</a>
+ </div>
+</body>
+</html>