aboutsummaryrefslogtreecommitdiffstats
path: root/web/js/nms-ui-switch-summary.js
blob: edc6921167631829f94b289f951129762f6734a4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
"user strict";

class nmsSwitchSummary extends nmsTable {
  constructor(sw) {
    super();
    this._sw = sw;
    this._data = {};
    this.refresh();
  }

  refresh() {
    for (var h in handlers) {
      if (handlers[h].getInfo != undefined) {
        var tmp = handlers[h].getInfo(this._sw);
        if (!tmp) {
          continue;
        }
        if (this._data[h] == undefined) {
          this._data[h] = {};
        }
        for (var x in tmp.data) {
          if (this._data[h][x] == undefined) {
            this._data[h][x] = new nmsSwitchItem(
              tmp.data[x].description,
              handlers[h]
            );
            this.add(this._data[h][x]);
          }
          this._data[h][x].refresh(tmp.data[x]);
        }
      }
    }
  }
}

class nmsSwitchItem extends nmsBox {
  constructor(description, handler) {
    super("tr");
    this.add(new nmsBox("td", { html: { textContent: description } }));
    this.html.title = handler.tag;
    this._value = new nmsBox("td");
    this.add(this._value);
  }
  refresh(item) {
    if (item.value == null || item.value == undefined || item.value == "") {
      if (this._hidden == true) {
        return;
      }
      this._value_content = undefined;
      this._hidden = true;
      this.hide();
      return;
    }
    if (this._value_content != item.value) {
      this._value.html.textContent = item.value;
      this._value_content = item.value;
    }
    if (this._hidden == true) {
      this.show();
      this._hidden = false;
    }
  }
}