diff --git a/config.cfg b/config.cfg index b538d36..7d8b423 100644 --- a/config.cfg +++ b/config.cfg @@ -10,7 +10,8 @@ size_openStreet_pannel_perc = 55 size_world_pannel_perc = 35 [Log] -fieldname_order=["id", "category", "type", "value"] +fieldname_order=["id", "category", "type", ["value", "comment"]] +char_separator=|| [RedisLog] host=localhost diff --git a/server.py b/server.py index 9c0d006..e1cf69d 100755 --- a/server.py +++ b/server.py @@ -32,8 +32,14 @@ eventNumber = 0 class LogItem(): FIELDNAME_ORDER = [] + FIELDNAME_ORDER_HEADER = [] FIELDNAME_ORDER.append("time") + FIELDNAME_ORDER_HEADER.append("time") for item in json.loads(cfg.get('Log', 'fieldname_order')): + if type(item) is list: + FIELDNAME_ORDER_HEADER.append(" | ".join(item)) + else: + FIELDNAME_ORDER_HEADER.append(item) FIELDNAME_ORDER.append(item) def __init__(self, feed): @@ -46,18 +52,18 @@ class LogItem(): def get_head_row(self): to_ret = [] - for fn in LogItem.FIELDNAME_ORDER: + for fn in LogItem.FIELDNAME_ORDER_HEADER: to_ret.append(fn[0].upper()+fn[1:]) return to_ret def get_row(self): to_ret = {} #Number to keep them sorted (jsonify sort keys) - for i in range(len(LogItem.FIELDNAME_ORDER)): + for item in range(len(LogItem.FIELDNAME_ORDER)): try: - to_ret[i] = self.fields[i] + to_ret[item] = self.fields[item] except IndexError: # not enough field in rcv item - to_ret[i] = '' + to_ret[item] = '' return to_ret @@ -91,6 +97,7 @@ def index(): return render_template('index.html', pannelSize=pannelSize, graph_log_refresh_rate=cfg.getint('Dashboard' ,'graph_log_refresh_rate'), + char_separator=cfg.get('Log', 'char_separator'), rotation_wait_time=cfg.getint('Dashboard' ,'rotation_wait_time'), max_img_rotation=cfg.getint('Dashboard' ,'max_img_rotation'), hours_spanned=cfg.getint('Dashboard' ,'hours_spanned'), diff --git a/static/js/index/index.js b/static/js/index/index.js index ce70bbe..f8f9e02 100644 --- a/static/js/index/index.js +++ b/static/js/index/index.js @@ -224,12 +224,16 @@ function slideAndMax(orig, newData) { function createRow(tableBody, log) { var tr = document.createElement('TR'); - //var action = document.createElement('TD'); for (var key in log) { if (log.hasOwnProperty(key)) { var td = document.createElement('TD'); - td.appendChild(document.createTextNode(log[key])); + var textToAddArray = log[key].split(char_separator); + for(var i in textToAddArray){ + if (i > 0) + td.appendChild(document.createElement("br")); + td.appendChild(document.createTextNode(textToAddArray[i])); + } tr.appendChild(td); } } @@ -245,10 +249,6 @@ function createRow(tableBody, log) { tr.className = "danger" } - // action - //action.appendChild(document.createTextNode("ACTION")); - //tr.appendChild(action); - tableBody.appendChild(tr); } diff --git a/templates/index.html b/templates/index.html index ce1e163..7454b46 100644 --- a/templates/index.html +++ b/templates/index.html @@ -234,6 +234,7 @@ small { /* DATA FROM CONF */ var graph_log_refresh_rate = {{ graph_log_refresh_rate }}; + var char_separator = "{{ char_separator }}"; var rotation_wait_time = {{ rotation_wait_time }}; var max_img_rotation = {{ max_img_rotation }}; var hours_spanned = {{ hours_spanned }}; diff --git a/zmq_subscriber.py b/zmq_subscriber.py index 1998cf7..1980072 100755 --- a/zmq_subscriber.py +++ b/zmq_subscriber.py @@ -104,8 +104,11 @@ def handler_attribute(jsonattr): jsonattr = jsonattr['Attribute'] to_push = [] for field in json.loads(cfg.get('Log', 'fieldname_order')): - to_push.append(jsonattr[field]) - to_push.append("blabla") + if type(field) is list: + to_add = cfg.get('Log', 'char_separator').join([ jsonattr[subField] for subField in field ]) + else: + to_add = jsonattr[field] + to_push.append(to_add) #try to get coord if jsonattr['category'] == "Network activity":