annotate service/collector/static/state.js @ 1451:71684fc9c692

new index page table Ignore-this: 7668675a04bd5cc03cf4e1799c54d4d1 darcs-hash:5b546637d01f1fa70134c09470007ed1251d708c
author drewp <drewp@bigasterisk.com>
date Wed, 25 Sep 2019 17:27:35 -0700
parents
children 25b418e2659e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1451
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
1 import { LitElement, TemplateResult, html, css } from '/lib/lit-element/2.2.0/lit-element-custom.js';
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
2
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
3 class CollectorState extends LitElement {
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
4 static get properties() {
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
5 return {
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
6 latestState: { type: Object }
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
7 };
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
8 }
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
9 firstUpdated() {
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
10 this.latestState = {graphClients: {}};
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
11 this.refreshLoop();
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
12 }
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
13
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
14 refreshLoop() {
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
15 setTimeout(() => {
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
16 requestAnimationFrame(() => {
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
17 this.refresh();
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
18 });
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
19 }, 5000);
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
20 }
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
21
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
22 refresh() {
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
23 fetch('state')
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
24 .then((response) => {
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
25 return response.json();
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
26 })
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
27 .then((newState) => {
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
28 this.latestState = newState;
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
29 this.refreshLoop();
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
30 });
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
31 }
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
32
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
33 static get styles() {
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
34 return css`
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
35 :host {
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
36 display: inline-block;
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
37 border: 2px solid gray;
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
38 padding: 5px;
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
39 }`;
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
40 }
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
41
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
42 render() {
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
43 const sourcesTable = (clients) => {
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
44 const clientRow = (client) => {
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
45 const d = client.reconnectedPatchSource;
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
46 return html`
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
47 <tr>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
48 <td><a href="/rdf/browse/?graph=${d.url}">[browse]</a> <a href="${d.url}">${d.url}</a></td>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
49 <td>${d.fullGraphReceived}</td>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
50 <td>${d.patchesReceived}</td>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
51 <td>${d.time.open}</td>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
52 <td>${d.time.fullGraph}</td>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
53 <td>${d.time.latestPatch}</td>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
54 </tr>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
55 `;
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
56 };
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
57
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
58 return html`
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
59 <table>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
60 <thead>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
61 <tr>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
62 <th>patch source</th>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
63 <th>full graph recv</th>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
64 <th>patches recv</th>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
65 <th>time open</th>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
66 <th>time fullGraph</th>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
67 <th>time latest patch</th>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
68 </tr>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
69 </thead>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
70 <tbody>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
71 ${clients.map(clientRow)}
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
72 </tbody>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
73 </table>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
74 `;
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
75 };
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
76
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
77 const handlersTable = (handlers) => {
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
78 const handlerRow = (d) => {
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
79 return html`
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
80 <tr>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
81 <td>${d.created}</td>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
82 <td>${d.ageHours}</td>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
83 <td><a href="/rdf/browse/?graph=/sse_collector/graph/${d.streamId}">${d.streamId}</a></td>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
84 <td>${d.foafAgent}</td>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
85 <td>${d.userAgent}</td>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
86 </tr>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
87 `;
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
88 };
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
89
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
90 return html`
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
91 <table>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
92 <thead>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
93 <tr>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
94 <th>created</th>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
95 <th>age hours</th>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
96 <th>stream</th>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
97 <th>foaf agent</th>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
98 <th>user agent</th>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
99 </tr>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
100 </thead>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
101 <tbody>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
102 ${handlers.map(handlerRow)}
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
103 </tbody>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
104 </table>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
105 `;
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
106 };
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
107
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
108 if (!this.latestState) {
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
109 return 'loading...';
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
110 }
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
111 const d = this.latestState.graphClients;
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
112 return html`
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
113 <div>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
114 <p>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
115 Graph: ${d.statements.len} statements
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
116 </p>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
117
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
118 <p>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
119 Sources:
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
120 ${sourcesTable(d.clients)}
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
121 </p>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
122
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
123 <p>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
124 Listening clients:
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
125 ${handlersTable(d.sseHandlers)}
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
126 </p>
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
127 </div>`;
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
128 }
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
129 }
71684fc9c692 new index page table
drewp <drewp@bigasterisk.com>
parents:
diff changeset
130 customElements.define('collector-state', CollectorState);