diff --git a/luci-app-auth-guardian/htdocs/luci-static/resources/auth-guardian/api.js b/luci-app-auth-guardian/htdocs/luci-static/resources/auth-guardian/api.js index 3e5229fe..2a7e38b4 100644 --- a/luci-app-auth-guardian/htdocs/luci-static/resources/auth-guardian/api.js +++ b/luci-app-auth-guardian/htdocs/luci-static/resources/auth-guardian/api.js @@ -90,6 +90,7 @@ return baseclass.extend({ deleteVoucher: callDeleteVoucher, validateVoucher: callValidateVoucher, listSessions: callListSessions, + getSessions: callListSessions, // Alias for compatibility revokeSession: callRevokeSession, getLogs: callGetLogs }); diff --git a/luci-app-netdata-dashboard/root/usr/share/rpcd/acl.d/luci-app-netdata-dashboard.json b/luci-app-netdata-dashboard/root/usr/share/rpcd/acl.d/luci-app-netdata-dashboard.json index 5c9e1d1c..fb5f7605 100644 --- a/luci-app-netdata-dashboard/root/usr/share/rpcd/acl.d/luci-app-netdata-dashboard.json +++ b/luci-app-netdata-dashboard/root/usr/share/rpcd/acl.d/luci-app-netdata-dashboard.json @@ -3,14 +3,32 @@ "description": "Grant access to LuCI Netdata Dashboard", "read": { "ubus": { - "netdata": [ "stats", "cpu", "memory", "disk", "network", "processes", "sensors", "system" ], + "luci.netdata-dashboard": [ + "stats", + "cpu", + "memory", + "disk", + "network", + "processes", + "sensors", + "system", + "netdata_status", + "netdata_alarms", + "netdata_info" + ], "system": [ "info", "board" ], - "luci-rpc": [ "getNetdataStats" ], "file": [ "read", "stat" ] }, "uci": [ "netdata-dashboard" ] }, "write": { + "ubus": { + "luci.netdata-dashboard": [ + "restart_netdata", + "start_netdata", + "stop_netdata" + ] + }, "uci": [ "netdata-dashboard" ] } } diff --git a/luci-app-netifyd-dashboard/htdocs/luci-static/resources/netifyd-dashboard/api.js b/luci-app-netifyd-dashboard/htdocs/luci-static/resources/netifyd-dashboard/api.js index ee207ea7..218232ee 100644 --- a/luci-app-netifyd-dashboard/htdocs/luci-static/resources/netifyd-dashboard/api.js +++ b/luci-app-netifyd-dashboard/htdocs/luci-static/resources/netifyd-dashboard/api.js @@ -61,5 +61,22 @@ return baseclass.extend({ getHosts: callHosts, getProtocols: callProtocols, getStats: callStats, - formatBytes: formatBytes + formatBytes: formatBytes, + + // Aggregate function for overview page + getAllData: function() { + return Promise.all([ + callStatus(), + callStats(), + callFlows(), + callApplications() + ]).then(function(results) { + return { + status: results[0] || {}, + stats: results[1] || {}, + flows: results[2] || { flows: [] }, + applications: results[3] || { applications: [] } + }; + }); + } }); diff --git a/luci-app-network-modes/htdocs/luci-static/resources/network-modes/api.js b/luci-app-network-modes/htdocs/luci-static/resources/network-modes/api.js index 9b0c263d..10eea7b5 100644 --- a/luci-app-network-modes/htdocs/luci-static/resources/network-modes/api.js +++ b/luci-app-network-modes/htdocs/luci-static/resources/network-modes/api.js @@ -53,5 +53,22 @@ return baseclass.extend({ getAvailableModes: callGetAvailableModes, setMode: callSetMode, getInterfaces: callGetInterfaces, - validateConfig: callValidateConfig + validateConfig: callValidateConfig, + + // Aggregate function for overview page + getAllData: function() { + return Promise.all([ + callStatus(), + callGetCurrentMode(), + callGetAvailableModes(), + callGetInterfaces() + ]).then(function(results) { + return { + status: results[0] || {}, + current_mode: results[1] || { mode: '' }, + available_modes: results[2] || { modes: [] }, + interfaces: results[3] || { interfaces: [] } + }; + }); + } }); diff --git a/luci-app-wireguard-dashboard/htdocs/luci-static/resources/wireguard-dashboard/api.js b/luci-app-wireguard-dashboard/htdocs/luci-static/resources/wireguard-dashboard/api.js index 97c177f3..aff7355d 100644 --- a/luci-app-wireguard-dashboard/htdocs/luci-static/resources/wireguard-dashboard/api.js +++ b/luci-app-wireguard-dashboard/htdocs/luci-static/resources/wireguard-dashboard/api.js @@ -104,5 +104,22 @@ return baseclass.extend({ generateConfig: callGenerateConfig, generateQR: callGenerateQR, formatBytes: formatBytes, - formatLastHandshake: formatLastHandshake + formatLastHandshake: formatLastHandshake, + + // Aggregate function for overview page + getAllData: function() { + return Promise.all([ + callStatus(), + callGetPeers(), + callGetInterfaces(), + callGetTraffic() + ]).then(function(results) { + return { + status: results[0] || {}, + peers: results[1] || { peers: [] }, + interfaces: results[2] || { interfaces: [] }, + traffic: results[3] || {} + }; + }); + } });