<feed xmlns='http://www.w3.org/2005/Atom'>
<title>luci/modules/luci-mod-dashboard/root/usr, branch master</title>
<subtitle>Lua Configuration Interface (mirror)</subtitle>
<id>https://git.openwrt.org/project/luci/atom?h=master</id>
<link rel='self' href='https://git.openwrt.org/project/luci/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/'/>
<updated>2026-09-23T15:52:08Z</updated>
<entry>
<title>luci-mod-dashboard: add live charts and a configurable layout</title>
<updated>2026-09-23T15:52:08Z</updated>
<author>
<name>Eamon Xiong</name>
</author>
<published>2026-09-20T16:18:34Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=89764f4a69b8efa3fd3435a044c9c024d1109575'/>
<id>urn:sha1:89764f4a69b8efa3fd3435a044c9c024d1109575</id>
<content type='text'>
Add configurable dashboard cards and tabs, along with five-minute
WAN traffic, CPU and memory history charts. This includes:

- status cards for CPU, memory, load and uptime next to Internet, all
  of one shape: a title, a value and one line of text;
- charts of the WAN traffic and of CPU and memory usage over the last
  five minutes;
- a Layout tab to choose which cards, charts and tabs are shown and in
  what order, kept in UCI as dashboard.layout;
- the time a wireless client has been connected, in the tooltips of
  the wireless client data usage chart and in the client table;
- the IPv4 and the IPv6 address of the uplink on the Internet card,
  one line each, and the IPv6 address in the Internet tab.

The samples behind the charts are taken on the router by a small rpcd
ucode plugin, luci.dashboard, every five seconds whether or not
somebody is looking, so the charts are full whenever the page is
opened. It keeps the raw counters of /proc/stat, /proc/meminfo and
/proc/net/dev with the router's monotonic clock in a ring of 60
samples. The page fetches what is new since its last poll and takes
the differences, so a reload or a hidden tab leaves no gap and the
rates do not depend on the browser's timing. One pass takes 2 to 3 ms
on a quad-core IPQ60xx, about 0.07% of one core, and the ring about
360 kB of memory.

Includes declare their widgets with a slot, an order and whether they
show by default. An include with nothing on the page is not polled,
and polling stops while the page is hidden. The layout form is a
form.Map of three DynamicLists in the last tab; while it is open the
poll redraws the cards and charts only. ui.DynamicList greys out a
choice only once it is picked and always offers a custom value, so the
form marks the values a list starts out with and drops the custom
entry. All of it stays within luci-mod-dashboard.

Name the charts WAN traffic, Wireless client distribution and
Wireless client data usage to make their scope clear.

Remove &lt;code&gt; formatting for consistent data display in tab tables,
and add CPU usage breakdown tooltips to the total and per-core rows.

Signed-off-by: Eamon Xiong &lt;eamonxiong@gmail.com&gt;

</content>
</entry>
<entry>
<title>luci-mod-dashboard: use localized time</title>
<updated>2025-10-20T18:40:46Z</updated>
<author>
<name>Andy Chiang</name>
</author>
<published>2025-10-15T17:48:55Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=71ea35fc7f41e8b1c6c02e0bcc8d8bfcba3bde7f'/>
<id>urn:sha1:71ea35fc7f41e8b1c6c02e0bcc8d8bfcba3bde7f</id>
<content type='text'>
use localized time

Signed-off-by: Andy Chiang &lt;AndyChiang_git@outlook.com&gt;
</content>
</entry>
<entry>
<title>luci-mod-dashboard: initial checkin</title>
<updated>2020-09-03T20:12:44Z</updated>
<author>
<name>Zhao ZHANG</name>
</author>
<published>2020-06-09T21:25:43Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=2f32ddd6031bc9e0066478696aa2b6762c35d2b3'/>
<id>urn:sha1:2f32ddd6031bc9e0066478696aa2b6762c35d2b3</id>
<content type='text'>
Signed-off-by: ZHANG Zhao &lt;Zhao.Zhang2@etu.univ-grenoble-alpes.fr&gt;
[improve firmware version, fix dependencies, clean acls]
Signed-off-by: Paul Spooren &lt;mail@aparcar.org&gt;
[fix css for themes other than bootstrap]
Signed-off-by: Florian Eckert &lt;fe@dev.tdt.de&gt;
</content>
</entry>
</feed>
