mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-11-02 04:33:56 +08:00
🚀 Sync 2026-04-23 08:34:28
This commit is contained in:
1 parent
b86d032e91
commit
d0ae20b31e
11 files changed
+149
-24
No files matched your search
@@ -2,10 +2,8 @@ include $(TOPDIR)/rules.mk
|
|||||||
|
|
||||||
PKG_NAME:=luci-app-pingcontrol
|
PKG_NAME:=luci-app-pingcontrol
|
||||||
LUCI_DEPENDS:=+pingcontrol
|
LUCI_DEPENDS:=+pingcontrol
|
||||||
|
|
||||||
PKG_VERSION:=1
|
PKG_VERSION:=1
|
||||||
|
PKG_RELEASE:=3
|
||||||
PKG_RELEASE:=2
|
|
||||||
|
|
||||||
LUCI_TITLE:=LuCI network interface control
|
LUCI_TITLE:=LuCI network interface control
|
||||||
|
|
||||||
|
|||||||
@@ -43,6 +43,9 @@ return view.extend({
|
|||||||
o = s.taboption('general',form.DynamicList, 'testip', _('IP address or hostname of test servers'));
|
o = s.taboption('general',form.DynamicList, 'testip', _('IP address or hostname of test servers'));
|
||||||
o.datatype = 'or(hostname,ipaddr("nomask"))';
|
o.datatype = 'or(hostname,ipaddr("nomask"))';
|
||||||
|
|
||||||
|
o = s.taboption('general',form.Flag, 'ping_silent', _('Silent mode'), _('Do not log success ping'));
|
||||||
|
|
||||||
|
|
||||||
o = s.taboption('general',form.Value, 'check_period', _('Period of check, sec'));
|
o = s.taboption('general',form.Value, 'check_period', _('Period of check, sec'));
|
||||||
o.rmempty = false;
|
o.rmempty = false;
|
||||||
o.datatype = 'and(uinteger,min(20))';
|
o.datatype = 'and(uinteger,min(20))';
|
||||||
|
|||||||
@@ -10,6 +10,12 @@ msgstr "Интерфейс для ping-запросов"
|
|||||||
msgid "IP address or hostname of test servers"
|
msgid "IP address or hostname of test servers"
|
||||||
msgstr "IP-адрес или имя хоста тестовых серверов"
|
msgstr "IP-адрес или имя хоста тестовых серверов"
|
||||||
|
|
||||||
|
msgid "Silent mode"
|
||||||
|
msgstr "Тихий режим"
|
||||||
|
|
||||||
|
msgid "Do not log success ping"
|
||||||
|
msgstr "Не журналировать успешные попытки"
|
||||||
|
|
||||||
msgid "Failed attempts before iface up/down"
|
msgid "Failed attempts before iface up/down"
|
||||||
msgstr "Количество неудачных попыток до переподключения интерфейса"
|
msgstr "Количество неудачных попыток до переподключения интерфейса"
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
{
|
{
|
||||||
"admin/services/pingcontrol": {
|
"admin/services/pingcontrol": {
|
||||||
"title": "Pingcontrol",
|
"title": "Pingcontrol",
|
||||||
"order": 30,
|
|
||||||
"action": {
|
"action": {
|
||||||
"type": "view",
|
"type": "view",
|
||||||
"path": "pingcontrol/pingcontrol"
|
"path": "pingcontrol/pingcontrol"
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
LUCI_TITLE:=Bootstrap Teleofis Theme
|
LUCI_TITLE:=Bootstrap Teleofis Theme
|
||||||
LUCI_DEPENDS:=
|
LUCI_DEPENDS:= +luci-lua-runtime
|
||||||
|
|
||||||
PKG_LICENSE:=Apache-2.0
|
PKG_LICENSE:=Apache-2.0
|
||||||
|
|
||||||
|
|||||||
@@ -14,6 +14,109 @@
|
|||||||
* Props to Eric Meyer (meyerweb.com) for his CSS reset file. We're using an adapted version here that cuts out some of the reset HTML elements we will never need here (i.e., dfn, samp, etc).
|
* Props to Eric Meyer (meyerweb.com) for his CSS reset file. We're using an adapted version here that cuts out some of the reset HTML elements we will never need here (i.e., dfn, samp, etc).
|
||||||
* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- */
|
* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
:root {
|
||||||
|
--background-color-delta-l-sign: -1;
|
||||||
|
--background-color-h: 0;
|
||||||
|
--background-color-s: 0%;
|
||||||
|
--background-color-l: 100%;
|
||||||
|
|
||||||
|
--background-color-high-hsl:
|
||||||
|
var(--background-color-h),
|
||||||
|
var(--background-color-s),
|
||||||
|
var(--background-color-l);
|
||||||
|
--background-color-high: hsl(var(--background-color-high-hsl));
|
||||||
|
|
||||||
|
--background-color-medium-hsl:
|
||||||
|
var(--background-color-h),
|
||||||
|
var(--background-color-s),
|
||||||
|
calc(var(--background-color-l) + var(--background-color-delta-l-sign) * calc(6 / 255 * 100%));
|
||||||
|
--background-color-medium: hsl(var(--background-color-medium-hsl));
|
||||||
|
|
||||||
|
--background-color-low-hsl:
|
||||||
|
var(--background-color-h),
|
||||||
|
var(--background-color-s),
|
||||||
|
calc(var(--background-color-l) + var(--background-color-delta-l-sign) * calc(10 / 255 * 100%));
|
||||||
|
--background-color-low: hsl(var(--background-color-low-hsl));
|
||||||
|
|
||||||
|
--text-color-delta-l-sign: 1;
|
||||||
|
--text-color-h: 0;
|
||||||
|
--text-color-s: 0%;
|
||||||
|
--text-color-l: 0%;
|
||||||
|
|
||||||
|
--text-color-highest-hsl:
|
||||||
|
var(--text-color-h),
|
||||||
|
var(--text-color-s),
|
||||||
|
var(--text-color-l);
|
||||||
|
--text-color-highest: hsl(var(--text-color-highest-hsl));
|
||||||
|
|
||||||
|
--text-color-high-hsl:
|
||||||
|
var(--text-color-h),
|
||||||
|
var(--text-color-s),
|
||||||
|
calc(var(--text-color-l) + var(--text-color-delta-l-sign) * calc(64 / 255 * 100%));
|
||||||
|
--text-color-high: hsl(var(--text-color-high-hsl));
|
||||||
|
|
||||||
|
--text-color-medium-hsl:
|
||||||
|
var(--text-color-h),
|
||||||
|
var(--text-color-s),
|
||||||
|
calc(var(--text-color-l) + var(--text-color-delta-l-sign) * calc(128 / 255 * 100%));
|
||||||
|
--text-color-medium: hsl(var(--text-color-medium-hsl));
|
||||||
|
|
||||||
|
--text-color-low-hsl:
|
||||||
|
var(--text-color-h),
|
||||||
|
var(--text-color-s),
|
||||||
|
calc(var(--text-color-l) + var(--text-color-delta-l-sign) * calc(191 / 255 * 100%));
|
||||||
|
--text-color-low: hsl(var(--text-color-low-hsl));
|
||||||
|
|
||||||
|
--border-color-delta-l-sign: -1;
|
||||||
|
--border-color-h: var(--background-color-h);
|
||||||
|
--border-color-s: var(--background-color-s);
|
||||||
|
--border-color-l: var(--background-color-l);
|
||||||
|
|
||||||
|
--border-color-high-hsl:
|
||||||
|
var(--border-color-h),
|
||||||
|
var(--border-color-s),
|
||||||
|
calc(var(--border-color-l) + var(--border-color-delta-l-sign) * calc(51 / 255 * 100%));
|
||||||
|
--border-color-high: hsl(var(--border-color-high-hsl));
|
||||||
|
|
||||||
|
--border-color-medium-hsl:
|
||||||
|
var(--border-color-h),
|
||||||
|
var(--border-color-s),
|
||||||
|
calc(var(--border-color-l) + var(--border-color-delta-l-sign) * calc(34 / 255 * 100%));
|
||||||
|
--border-color-medium: hsl(var(--border-color-medium-hsl));
|
||||||
|
|
||||||
|
--border-color-low-hsl:
|
||||||
|
var(--border-color-h),
|
||||||
|
var(--border-color-s),
|
||||||
|
calc(var(--border-color-l) + var(--border-color-delta-l-sign) * calc(17 / 255 * 100%));
|
||||||
|
--border-color-low: hsl(var(--border-color-low-hsl));
|
||||||
|
|
||||||
|
--primary-color-high: #1976d2;
|
||||||
|
--primary-color-medium: #1564c0;
|
||||||
|
--primary-color-low: #b00000;
|
||||||
|
--on-primary-color: var(--background-color-high);
|
||||||
|
|
||||||
|
--error-color-high-rgb: 246, 43, 18;
|
||||||
|
--error-color-high: rgb(var(--error-color-high-rgb));
|
||||||
|
--error-color-medium: #e8210d;
|
||||||
|
--error-color-low: #d00000;
|
||||||
|
--on-error-color: var(--background-color-high);
|
||||||
|
|
||||||
|
--success-color-high-rgb: 0, 172, 89;
|
||||||
|
--success-color-high: rgb(var(--success-color-high-rgb));
|
||||||
|
--success-color-medium: #009a4c;
|
||||||
|
--success-color-low: #007936;
|
||||||
|
--on-success-color: var(--background-color-high);
|
||||||
|
|
||||||
|
--warn-color-high: #efbd0b;
|
||||||
|
--warn-color-medium: #f0c629;
|
||||||
|
--warn-color-low: #f2d24f;
|
||||||
|
--on-warn-color: var(--text-color-highest);
|
||||||
|
|
||||||
|
--disabled-opacity: .7;
|
||||||
|
|
||||||
|
color-scheme: light;
|
||||||
|
}
|
||||||
|
|
||||||
* {
|
* {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
@@ -1657,14 +1760,15 @@ input[type="text"] + .cbi-button-remove {
|
|||||||
transition: opacity .25s ease-in;
|
transition: opacity .25s ease-in;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.cbi-progressbar {
|
.cbi-progressbar {
|
||||||
border: 1px solid #ccc;
|
border: 1px solid var(--border-color-high);
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
position: relative;
|
position: relative;
|
||||||
min-width: 170px;
|
min-width: 170px;
|
||||||
height: 20px;
|
height: 8px;
|
||||||
margin: 4px 0;
|
margin: 1.4em 0 4px 0;
|
||||||
background: #f9f9f9;
|
background: #fcfcfc;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cbi-progressbar > div {
|
.cbi-progressbar > div {
|
||||||
@@ -1672,16 +1776,13 @@ input[type="text"] + .cbi-button-remove {
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
transition: width .25s ease-in;
|
transition: width .25s ease-in;
|
||||||
width: 0%;
|
width: 0%;
|
||||||
|
border-radius: 2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cbi-progressbar::after {
|
.cbi-progressbar::before {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
bottom: 0;
|
top: -1.4em;
|
||||||
top: 0;
|
|
||||||
right: 0;
|
|
||||||
left: 0;
|
left: 0;
|
||||||
text-align: center;
|
|
||||||
text-shadow: 0 0 2px #fff;
|
|
||||||
content: attr(title);
|
content: attr(title);
|
||||||
white-space: pre;
|
white-space: pre;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
@@ -2316,7 +2417,7 @@ html body.apply-overlay-active {
|
|||||||
bottom: 0;
|
bottom: 0;
|
||||||
width: 32px;
|
width: 32px;
|
||||||
content: " ";
|
content: " ";
|
||||||
background: url(../resources/icons/loading.gif) no-repeat center;
|
background: url(../resources/icons/loading.svg) no-repeat center;
|
||||||
background-size: 16px;
|
background-size: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
<% local ver = require "luci.version" %>
|
<% local ver = require "luci.version" %>
|
||||||
|
|
||||||
<footer>
|
<footer>
|
||||||
<div style="height:40px;font-size:95%;color:#999;font-family: Arial,sans-serif;">© TELEOFIS 2004-2025 </div>
|
<div style="height:40px;font-size:95%;color:#999;font-family: Arial,sans-serif;">© TELEOFIS 2004-2022 </div>
|
||||||
<ul class="breadcrumb pull-right" id="modemenu" style="display:none"></ul>
|
<ul class="breadcrumb pull-right" id="modemenu" style="display:none"></ul>
|
||||||
</footer>
|
</footer>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
|
:
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=pingcontrol
|
PKG_NAME:=pingcontrol
|
||||||
PKG_VERSION:=1
|
PKG_VERSION:=1
|
||||||
PKG_RELEASE:=2
|
PKG_RELEASE:=3
|
||||||
PKG_BUILD_DIR:=$(BUILD_DIR)/pingcontrol
|
PKG_BUILD_DIR:=$(BUILD_DIR)/pingcontrol
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ SW_BEFORE_MODRES=$(uci -q get pingcontrol.$1.sw_before_modres)
|
|||||||
SW_BEFORE_SYSRES=$(uci -q get pingcontrol.$1.sw_before_sysres)
|
SW_BEFORE_SYSRES=$(uci -q get pingcontrol.$1.sw_before_sysres)
|
||||||
|
|
||||||
PING_OK=$(uci -q get pingcontrol.$1.ping_ok)
|
PING_OK=$(uci -q get pingcontrol.$1.ping_ok)
|
||||||
|
SILENT=$(uci -q get pingcontrol.$1.ping_silent)
|
||||||
PING_LOST=$(uci -q get pingcontrol.$1.ping_lost)
|
PING_LOST=$(uci -q get pingcontrol.$1.ping_lost)
|
||||||
PING_RESTORED=$(uci -q get pingcontrol.$1.ping_restored)
|
PING_RESTORED=$(uci -q get pingcontrol.$1.ping_restored)
|
||||||
BEFORE_IFACE_DOWN=$(uci -q get pingcontrol.$1.before_iface_down)
|
BEFORE_IFACE_DOWN=$(uci -q get pingcontrol.$1.before_iface_down)
|
||||||
@@ -34,8 +35,15 @@ done
|
|||||||
while true; do
|
while true; do
|
||||||
for IP in $TESTIP
|
for IP in $TESTIP
|
||||||
do
|
do
|
||||||
/bin/ping -w5 -c1 -s8 -I $IFNAME $IP &> /dev/null
|
[ -n $IFNAME ] && {
|
||||||
if [[ "$?" -eq "0" ]]; then
|
/bin/ping -w5 -c1 -s8 -I $IFNAME $IP &> /dev/null
|
||||||
|
STATUS=$?
|
||||||
|
} || {
|
||||||
|
/bin/ping -w5 -c1 -s8 $IP &> /dev/null
|
||||||
|
STATUS=$?
|
||||||
|
}
|
||||||
|
|
||||||
|
if [[ "${STATUS}" -eq "0" ]]; then
|
||||||
let host_up_count++
|
let host_up_count++
|
||||||
else
|
else
|
||||||
logger -t pingcontrol "$INSTANCE: Ping to host $IP lost"
|
logger -t pingcontrol "$INSTANCE: Ping to host $IP lost"
|
||||||
@@ -50,7 +58,9 @@ while true; do
|
|||||||
done
|
done
|
||||||
|
|
||||||
if [[ "$host_up_count" -gt "0" ]]; then
|
if [[ "$host_up_count" -gt "0" ]]; then
|
||||||
logger -t pingcontrol "$INSTANCE: Ping OK, reset counters"
|
[ "${SILENT}" != "1" ] && {
|
||||||
|
logger -t pingcontrol "$INSTANCE: Ping OK, reset counters"
|
||||||
|
}
|
||||||
if [[ "$lost_flag" -eq "1" ]]; then
|
if [[ "$lost_flag" -eq "1" ]]; then
|
||||||
if [[ -n "$PING_RESTORED" ]]; then
|
if [[ -n "$PING_RESTORED" ]]; then
|
||||||
logger -t pingcontrol "$INSTANCE: Execute $PING_RESTORED"
|
logger -t pingcontrol "$INSTANCE: Execute $PING_RESTORED"
|
||||||
@@ -58,8 +68,10 @@ while true; do
|
|||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
if [[ -n "$PING_OK" ]]; then
|
if [[ -n "$PING_OK" ]]; then
|
||||||
logger -t pingcontrol "$INSTANCE: Execute $PING_OK"
|
[ "${SILENT}" != "1" ] && {
|
||||||
eval $PING_OK
|
logger -t pingcontrol "$INSTANCE: Execute $PING_OK"
|
||||||
|
}
|
||||||
|
eval $PING_OK
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
host_up_count=0
|
host_up_count=0
|
||||||
|
|||||||
@@ -3,5 +3,6 @@ config pingcontrol 'pingcontrol'
|
|||||||
option check_period '30'
|
option check_period '30'
|
||||||
option iface 'internet'
|
option iface 'internet'
|
||||||
option testip '8.8.8.8'
|
option testip '8.8.8.8'
|
||||||
|
option ping_silent '1'
|
||||||
option sw_before_modres '3'
|
option sw_before_modres '3'
|
||||||
option sw_before_sysres '0'
|
option sw_before_sysres '0'
|
||||||
@@ -42,3 +42,8 @@ service_triggers() {
|
|||||||
procd_add_reload_trigger 'pingcontrol'
|
procd_add_reload_trigger 'pingcontrol'
|
||||||
procd_add_validation validate_pingcontrol_section
|
procd_add_validation validate_pingcontrol_section
|
||||||
}
|
}
|
||||||
|
|
||||||
|
reload_service() {
|
||||||
|
stop
|
||||||
|
start
|
||||||
|
}
|
||||||
Reference in new issue
Block a user