32 newdata = json.loads(newstr) |
32 newdata = json.loads(newstr) |
33 args = newdata[u'args'] |
33 args = newdata[u'args'] |
34 range_feedback = newdata[u'range'] |
34 range_feedback = newdata[u'range'] |
35 slider_position = newdata[u'position'] |
35 slider_position = newdata[u'position'] |
36 visible = newdata[u'visible'] |
36 visible = newdata[u'visible'] |
|
37 extra = newdata[u'extra'] |
37 options = newdata[u'options'] |
38 options = newdata[u'options'] |
38 |
39 |
39 if len(options) == 2 : |
40 if len(options) == 2 : |
40 action, alarmid = options |
41 action, alarmid = options |
41 if action == "onClick[acknowledge]": |
42 if action == "onClick[acknowledge]": |
42 AlarmIndex[int(alarmid)][2] = "ack" |
43 AlarmIndex[int(alarmid)][2] = "ack" |
43 |
44 |
44 answer = self.renderTable(range_feedback, slider_position, visible) |
45 answer = self.renderTable(range_feedback, slider_position, visible, extra) |
45 janswer = json.dumps(answer) |
46 janswer = json.dumps(answer) |
46 return janswer |
47 return janswer |
47 |
48 |
48 def renderTable(self, old_range, old_position, visible): |
49 def renderTable(self, old_range, old_position, visible, extra): |
49 new_range = len(Alarms) |
50 if len(extra) > 0 and extra[0] != "": |
|
51 fAlarms = [alrm for alrm in Alarms if alrm[1].find(extra[0])!=-1] |
|
52 else: |
|
53 fAlarms = Alarms |
|
54 new_range = len(fAlarms) |
50 delta = new_range - visible |
55 delta = new_range - visible |
51 new_position = 0 if delta <= 0 else delta if old_position > delta else old_position |
56 new_position = 0 if delta <= 0 else delta if old_position > delta else old_position |
52 new_visible = new_range if delta <= 0 else visible |
57 new_visible = new_range if delta <= 0 else visible |
53 |
58 |
54 visible_alarms = [] |
59 visible_alarms = [] |
55 for ts, text, status, alarmid in Alarms[new_position:new_position + new_visible]: |
60 for ts, text, status, alarmid in fAlarms[new_position:new_position + new_visible]: |
56 visible_alarms.append({ |
61 visible_alarms.append({ |
57 "time": time.ctime(ts), |
62 "time": time.ctime(ts), |
58 "text": text, # TODO translate text |
63 "text": text, # TODO translate text |
59 "status": status, |
64 "status": status, |
60 "alarmid": alarmid |
65 "alarmid": alarmid |