diff --git a/.gitmodules b/.gitmodules index 0ee8b37b0..348dffdb3 100644 --- a/.gitmodules +++ b/.gitmodules @@ -133,31 +133,6 @@ url = https://github.com/status-im/nim-snappy.git ignore = untracked branch = master -[submodule "vendor/asynctools"] - path = vendor/asynctools - url = https://github.com/cheatfate/asynctools.git - ignore = untracked - branch = master -[submodule "vendor/karax"] - path = vendor/karax - url = https://github.com/pragmagic/karax.git - ignore = untracked - branch = master -[submodule "vendor/jswebsockets"] - path = vendor/jswebsockets - url = https://github.com/stisa/jswebsockets.git - ignore = untracked - branch = master -[submodule "vendor/websocket.nim"] - path = vendor/websocket.nim - url = https://github.com/niv/websocket.nim.git - ignore = untracked - branch = master -[submodule "vendor/nim-chronicles-tail"] - path = vendor/nim-chronicles-tail - url = https://github.com/status-im/nim-chronicles-tail.git - ignore = untracked - branch = master [submodule "vendor/nimbus-security-resources"] path = vendor/nimbus-security-resources url = https://github.com/status-im/nimbus-security-resources.git diff --git a/tests/simulation/dashboard/chronicles_tail_p2p_plugin.nim b/tests/simulation/dashboard/chronicles_tail_p2p_plugin.nim deleted file mode 100644 index d81612215..000000000 --- a/tests/simulation/dashboard/chronicles_tail_p2p_plugin.nim +++ /dev/null @@ -1,189 +0,0 @@ -import - strformat, jsconsole, jsffi, - karax/[karax, kdom, karaxdsl, vdom], - chronicles_tail/jsplugins - -# Make sure that the Karax instance in the plugin is the same one -# as the Karax instance in the enclosing chronicle-tail page. -kxi = getKarax() - -type EventsTable = ref object of VComponent - -proc renderNetworkEvents(page: VComponent): VNode = - result = buildHtml: - table: - tr: - th: text "Time" - th: text "Nodes" - -const - columnWidth = 320 - timestampsHeight = 50 - eventsMargin = 10 - -var - eventsTable = newComponent(EventsTable, renderNetworkEvents) - protocolMessages = newJsAssoc[cstring, JsAssoc[cstring, cstring]]() - - pendingEvents = newSeq[TailEvent]() - freedColumns = newSeq[int]() - columnBottoms = newSeq[int]() - peerToColumnTable = newJsAssoc[cstring, int]() - lastTimestampBottom = timestampsHeight - -proc startsWith*(a, b: cstring): bool {.importcpp: "startsWith", nodecl.} - -proc getMsgName(protocol: cstring, msgId: int): cstring = - protocolMessages[protocol][cast[cstring](msgId)] - -proc renderEvent(ev: TailEvent): cstring = - var res = newStringOfCap(1024) - let eventType = ev.msg - - res.add &"""
""" - - template addField(class, value) = - res.add "
" - res.addEscaped $value - res.add "
" - - if eventType.startsWith(cstring("peer_")): - addField "peer", ev.peer - addField "port", ev.port - else: - addField "msgName", getMsgName(ev.protocol, ev.msgId) - res.addAsHtml ev.data - - res.add """
""" - return cstring(res) - -proc selectColumn(ev: TailEvent): int = - let key = cast[cstring](ev.port)# & ev.peer - kout ev.msg, key - - if ev.msg in [cstring"peer_accepted", "peer_connected"]: - if freedColumns.len > 0: - result = freedColumns.pop() - else: - result = columnBottoms.len - columnBottoms.add(timestampsHeight) - peerToColumnTable[key] = result - - elif ev.msg == cstring("peer_disconnected"): - result = peerToColumnTable[key] - discard jsDelete peerToColumnTable[key] - freedColumns.add result - - else: - result = peerToColumnTable[key] - -template pixels(n: int): cstring = - cast[cstring](n) & "px" - -proc addEvent(ev: TailEvent) = - var - row = document.createElement("tr") - timeElem = document.createElement("td") - eventElem = document.createElement("td") - eventsTable = eventsTable.dom - eventsCount = eventsTable.children.len - lastEventRow = eventsTable.children[eventsCount - 1] - - row.class = if eventsCount mod 2 == 0: "even" else: "odd" - - # Hide the element initially, so we can safely measure its size. - # It has to be added to the DOM before it can be measured. - row.style.visibility = "hidden" - row.appendChild(timeElem) - row.appendChild(eventElem) - - timeElem.innerHtml = ev.ts - timeElem.class = "time" - - eventElem.innerHTML = renderEvent(ev) - - eventsTable.appendChild(row) - let rowHeight = row.offsetHeight - let eventColumn = selectColumn(ev) - let timestampOffset = max(lastTimestampBottom, columnBottoms[eventColumn]) - let prevTimestampOffset = lastTimestampBottom - timestampsHeight - - lastTimestampBottom = timestampOffset + timestampsHeight - columnBottoms[eventColumn] += rowHeight + eventsMargin - - # Make sure the event data is in the right column and that it - # can overflow past the row height: - eventElem.style.paddingLeft = pixels(eventColumn * columnWidth) - - # Position the row in its right place and show it: - lastEventRow.style.height = pixels(timestampOffset - prevTimestampOffset) - row.style.top = pixels(timestampOffset) - row.style.visibility = "" - -proc networkSectionContent: VNode = - result = buildHtml(tdiv(id = "network")): - text "Network section" - eventsTable - -proc tailEventFilter(ev: TailEvent): bool = - if ev.topics != "p2pdump": - return false - - if ev.msg == "p2p_protocols": - protocolMessages = cast[type(protocolMessages)](ev.data) - else: - if eventsTable.dom == nil: - pendingEvents.add ev - else: - addEvent ev - - return true - -proc addPending = - if eventsTable.dom != nil and pendingEvents.len > 0: - defer: pendingEvents.setLen(0) - for ev in pendingEvents: - addEvent ev - -let interval = window.setInterval(addPending, 1000) - -proc addStyles(styles: cstring) = - var s = document.createElement("style") - s.appendChild document.createTextNode(styles) - document.head.appendChild(s) - -once: - addStyles cstring""" - #network > table { - position: relative; - } - - #network .event { - border: 1px solid blue; - } - - #network .event table { - width: 100%; - } - - #network > table > tr { - position: absolute; - display: flex; - flex-direction: row; - border-left: 1px solid red; - } - - #network .time { - width: 160px; - } - - #network .event { - width: 320px; - } - """ - - addSection("Network", networkSectionContent) - addEventFilter(tailEventFilter) - -kxi.redraw() - diff --git a/vendor/asynctools b/vendor/asynctools deleted file mode 160000 index c478bb742..000000000 --- a/vendor/asynctools +++ /dev/null @@ -1 +0,0 @@ -Subproject commit c478bb74268c65e7400e81f49d26f82d20f1f57a diff --git a/vendor/jswebsockets b/vendor/jswebsockets deleted file mode 160000 index ff0ceecc4..000000000 --- a/vendor/jswebsockets +++ /dev/null @@ -1 +0,0 @@ -Subproject commit ff0ceecc4c071fa8aecbf223d678ac54af120f8d diff --git a/vendor/karax b/vendor/karax deleted file mode 160000 index 32de20284..000000000 --- a/vendor/karax +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 32de202845762607a55332c2d138aca1327bf37b diff --git a/vendor/nim-chronicles-tail b/vendor/nim-chronicles-tail deleted file mode 160000 index 2139c6c3d..000000000 --- a/vendor/nim-chronicles-tail +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 2139c6c3d6820997a8dd1ea9af7c175efdef5401 diff --git a/vendor/websocket.nim b/vendor/websocket.nim deleted file mode 160000 index 28cc44c8d..000000000 --- a/vendor/websocket.nim +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 28cc44c8defc0b248b3abbc8205759b69a98f7f6