Commit Graph

72 Commits

Author SHA1 Message Date
Oliver Gerlich bd7cef3f00 socket: don't notify user on every failed connection attempt
Only notify user if the websocket connection was already established and is
now closed.
2018-07-22 21:45:36 +02:00
Oliver Gerlich 2fca4b49fe fix exception in list.renderView() introduced by adding debouncer.run()
Use arrow function to keep "this" at the same value it has in render().
2018-07-19 22:48:40 +02:00
Martin/Geno 141c8b798e
fix travis builds 2018-07-19 02:04:13 +02:00
Oliver Gerlich e77e94ef85 list perf: limit list to 20 nodes by default
Also add links to bottom of list to select how many nodes shall be
displayed, and store the selection in localStorage.

The shorter list has much better performance. A long list is not really
useful anyway; rather let the user filter/sort it to display interesting
nodes only.
2018-07-19 02:00:39 +02:00
Oliver Gerlich 885b3232c3 move debouncing logic to separate Debouncer class, and use it for list view
While the normal GUI is re-rendered at most every 100 msec, the list is
re-rendered at most every second (since it is very expensive to render).
2018-07-19 01:51:21 +02:00
Oliver Gerlich 67dd56d71d call render() again after render bouncer timer has elapsed
This is necessary so that the GUI really shows the latest data from server
after the timer has elapsed.

Also add some other minor fixes.
2018-07-19 01:51:21 +02:00
Martin/Geno ba1045aacd render bouncer 2018-07-19 01:51:21 +02:00
Martin/Geno af80ade82b
Disable notification of successful node update 2018-07-17 23:37:03 +02:00
Martin/Geno 140f11257a
implement full yanic (to run freifunkmanager at his own) 2018-07-17 23:36:57 +02:00
Oliver Gerlich b97ac6ea43 node page: display GPS coordinates next to toggle button 2018-07-17 22:51:41 +02:00
Oliver Gerlich fb0f2f054d node page: some fixes for GPS-following
- rename storePosition to gpsPosition
- don't check for btnGPS.innerHTML contents (this is fragile); check for
  this.gpsPosition instead
- fix call to updatePosition() when clicking "Stop following"
2018-07-17 22:51:41 +02:00
Oliver Gerlich ad7cc8d0aa node page: fix bug if navigator.geolocation.watchPosition() returns 0 as id 2018-07-17 22:51:41 +02:00
Oliver Gerlich 7f498b4a6e node page: set node details (hostname/owner etc.) also if location is unknown 2018-07-17 22:51:41 +02:00
Oliver Gerlich 2417bc3ae0 extend README file 2018-07-17 22:36:32 +02:00
Oliver Gerlich b3b8d1f53f menu: rename "Statistics" to "Stats" to save some space on phone screens 2018-07-17 22:36:32 +02:00
Oliver Gerlich 043e7225fd list perf: use documentFragment to add all rows to table in one operation 2018-07-17 22:31:29 +02:00
Oliver Gerlich 66d8951ad9 list perf: use textContent instead of innerHTML 2018-07-17 22:31:29 +02:00
Oliver Gerlich 10a717f558 list: fix exception when typing in list filter fields 2018-07-17 22:31:29 +02:00
Martin/Geno 485ecc13c6
default channel on create node + send callback 2018-07-15 22:47:05 +02:00
Martin/Geno 63f77d87c7
fix statistics channel view 2018-07-15 21:55:31 +02:00
Oliver Gerlich cd511dce8e web: rework store.js and interaction with view/node.js
- store.getNode() no longer adds new node to the list
- instead, store.createNode() can be used to create an empty new node
- view/node.js now now transfer a local copy of the node object it wants to
  modify, rather then modifying the real object from store.list. If the
  change is accepted by server, the server will send the new values for the
  changed object anyway.

Previously, if the user visited the node page for a nonexistent node but
didn't make any changes, the list view would always throw an exception
because an incomplete node object was contained in the list.
2018-07-15 21:51:11 +02:00
Martin/Geno 393caf55f8
announce useable channels + fix tests 2018-07-15 21:04:37 +02:00
Martin/Geno ca1835fcac
switch channel by ubus -> without restart 2018-07-15 20:00:18 +02:00
Martin/Geno 82270e6fa3
cleanup and migrate to newer libraries (use NEW Javascript env) + add secret 2018-06-30 17:22:20 +02:00
Martin/Geno a86ac56b75
cleanup 2018-06-30 01:58:09 +02:00
Martin Geno 37cf186d32
add micro controller for clients - right interface 2017-07-08 20:04:13 +02:00
Martin Geno a683b6b1ac
mux fix 2017-07-08 19:24:08 +02:00
Martin Geno c477cfabc6
ssh exit code to debug 2017-07-08 18:50:46 +02:00
Martin Geno c704b08d5c
add micro controller for clients 2017-07-08 18:42:03 +02:00
Martin Geno c28a14010d
enable updater + some mutex 2017-07-07 10:06:26 +02:00
Martin Geno 87a2f08c85
Fix ssh commands for wifi 2017-07-06 19:08:37 +02:00
Martin Geno 17ccb2c4ff
channel used stats 2017-07-06 14:25:24 +02:00
Martin Geno b921e6cdee
fix some nil basic on connect 2017-07-06 12:17:10 +02:00
Martin Geno fbd01cf7ab
mux on ssh 2017-07-06 09:57:25 +02:00
Martin Geno 3540b638f6
fix ssh update 2017-07-06 09:17:19 +02:00
Martin Geno 1a7989a24e
ssh update on connect + web: define unseen before offline 2017-07-06 08:54:27 +02:00
Martin Geno e02273e0ef
[TASK] autoselect https websocket (wss) 2017-07-01 02:10:56 +02:00
Martin Geno 75f3bae1f4
[BUGFIX] update vendor 2017-06-30 22:39:06 +02:00
Geno f9e219ba20 Create LICENSE.md 2017-06-13 00:49:42 +02:00
Martin Geno d4ef66028d
[TASK] logo 2017-05-30 22:49:16 +02:00
Martin Geno 3b74ddbf6a
[BUGFIX] consoleView 2017-05-30 18:56:52 +02:00
Martin Geno 7aa5896c4f
[TASK] add console to backend 2017-05-30 16:39:14 +02:00
Martin Geno 2e5873a541
[TASK] add consoleView 2017-05-30 15:36:51 +02:00
Martin Geno 6046e7dd95
[TASK] add ssh List for handling result of everywhere run 2017-05-30 11:17:16 +02:00
Martin Geno f3e9b6c0db
[TASK] add functions to listView + allow unlearn nodes 2017-05-30 02:16:46 +02:00
Martin Geno f48aaf3236
[TASK] add hostname to nodeView 2017-05-29 23:39:49 +02:00
Martin Geno 75ffdbeefe
[TASK] add tests for webserver (for coveralls) 2017-05-29 23:04:29 +02:00
Martin Geno c82a07d3fe
[TASK] extract lib package 2017-05-29 22:55:38 +02:00
Martin Geno 376afc7494
[TASK] add vendor for yanic client 2017-05-29 22:37:44 +02:00
Martin Geno c1d9386698
[TASK] use yanic client from package 2017-05-29 22:28:24 +02:00