Add support for showing network interfaces on Dashboard https://github.com/authentic-theme/authentic-theme/issues/1453

This commit is contained in:
Ilia Rostovtsev
2020-05-20 23:41:08 +03:00
parent 562dd4bf26
commit 68f1f5750e
49 changed files with 141 additions and 7 deletions

View File

@ -70,6 +70,10 @@ print &ui_table_row($text{'acl_hosts'},
print &ui_table_row($text{'acl_apply'},
&ui_radio("apply", $_[0]->{'apply'},
[ [ 1, $text{'yes'} ], [ 0, $text{'no'} ] ]));
print &ui_table_row($text{'acl_sysinfo'},
&ui_radio("sysinfo", $_[0]->{'sysinfo'},
[ [ 1, $text{'yes'} ], [ 0, $text{'no'} ] ]));
}
# acl_security_save(&options)
@ -91,5 +95,6 @@ $_[0]->{'up'} = $in{'up'};
$_[0]->{'virt'} = $in{'virt'};
$_[0]->{'delete'} = $in{'delete'};
$_[0]->{'hide'} = $in{'hide'};
$_[0]->{'sysinfo'} = $in{'sysinfo'};
}

View File

@ -1,2 +1,3 @@
hosts_file=/etc/hosts
def_netmask=255.255.255.0
sysinfo=1

View File

@ -3,3 +3,4 @@ ipnodes_file=File listing IPv6 hosts and addresses,0
def_netmask=Default netmask,0
def_broadcast=Default broadcast address,0
def_mtu=Default MTU,0
sysinfo=Show available network interfaces on Dashboard,1,1-Yes,0-No

View File

@ -11,3 +11,4 @@ up=1
virt=1
delete=1
hide=0
sysinfo=1

View File

@ -272,6 +272,7 @@ acl_up=Kan die aktiewe toestand verander?
acl_virt=Kan virtuele koppelvlakke bygevoeg word?
acl_delete=Kan koppelvlakke verwyder word?
acl_hide=Versteek nie-bewerkbare koppelvlakke?
acl_sysinfo=Wys beskikbare netwerk-koppelvlakke op Dashboard
interfaces_title1=Kies koppelvlakke. ..
interfaces_all=Alle koppelvlakke. ..
interfaces_sel=Geselekteerde koppelvlakke

View File

@ -272,6 +272,7 @@ acl_up=يمكن تعديل الدولة النشطة؟
acl_virt=يمكن إضافة واجهات افتراضية؟
acl_delete=يمكن حذف واجهات؟
acl_hide=إخفاء واجهات غير قابلة للتحرير؟
acl_sysinfo=إظهار واجهات الشبكة المتاحة على لوحة المعلومات
interfaces_title1=اختيار واجهات. ..
interfaces_all=جميع واجهات. ..
interfaces_sel=واجهات مختارة

View File

@ -272,6 +272,7 @@ acl_up=Ці можаце рэдагаваць актыўны стан?
acl_virt=Ці можна дадаць віртуальныя інтэрфейсы?
acl_delete=Ці можна выдаляць інтэрфейсы?
acl_hide=Схаваць не рэдагуемыя інтэрфейсы?
acl_sysinfo=Пакажыце наяўныя сеткавыя інтэрфейсы на прыборнай панэлі
interfaces_title1=Абярыце інтэрфейсы. ..
interfaces_all=Усе інтэрфейсы. ..
interfaces_sel=Выбраныя інтэрфейсы

View File

@ -272,6 +272,7 @@ acl_up=Може ли да редактирате активно състояни
acl_virt=Може ли да добавите виртуални интерфейси?
acl_delete=Може ли да изтриете интерфейси?
acl_hide=Скриване на нередактируеми интерфейси?
acl_sysinfo=Показване на наличните мрежови интерфейси на таблото за управление
interfaces_title1=Изберете интерфейси. ..
interfaces_all=Всички интерфейси. ..
interfaces_sel=Избрани интерфейси

View File

@ -1,2 +1,3 @@
ifcs_static2=Configuració estàtica
hosts_active=Està activat?
acl_sysinfo=Mostra les interfícies de xarxa disponibles al Tauler de control

View File

@ -52,6 +52,7 @@ hosts_active=Povoleno?
ipnodes_none=Zatím nebyly definovány žádné adresy hostitelů IPv6.
ipnodes_delete=Odstranění vybraných adres hostitele IPv6
log_delete_ipnodes=Byly odstraněny adresy hostitele IPv6 $1
acl_sysinfo=Zobrazit dostupná síťová rozhraní na hlavním panelu
hdelete_err=Odstranění adres hostitele se nezdařilo
hdelete_enone=Nebyl vybrán žádný
idelete_err=Odstranění adres hostitele IPv6 se nezdařilo

View File

@ -272,6 +272,7 @@ acl_up=Kan redigere aktiv tilstand?
acl_virt=Kan tilføje virtuelle grænseflader?
acl_delete=Kan slette grænseflader?
acl_hide=Skjul ikke-redigerbare grænseflader?
acl_sysinfo=Vis tilgængelige netværksgrænseflader på Dashboard
interfaces_title1=Vælg grænseflader. ..
interfaces_all=Alle grænseflader. ..
interfaces_sel=Valgte grænseflader

1
net/lang/de.auto Normal file
View File

@ -0,0 +1 @@
acl_sysinfo=Verfügbare Netzwerkschnittstellen im Dashboard anzeigen

View File

@ -272,6 +272,7 @@ acl_up=Μπορεί να επεξεργαστεί την ενεργή κατάσ
acl_virt=Μπορεί να προσθέσει εικονικές διεπαφές;
acl_delete=Μπορούν να διαγραφούν διεπαφές;
acl_hide=Απόκρυψη μη επεξεργάσιμων διεπαφών;
acl_sysinfo=Εμφάνιση διαθέσιμων διεπαφών δικτύου στον πίνακα ελέγχου
interfaces_title1=Επιλέξτε διεπαφές. ..
interfaces_all=Όλες οι διεπαφές. ..
interfaces_sel=Επιλεγμένες διεπαφές

View File

@ -284,6 +284,7 @@ acl_up=Can edit active state?
acl_virt=Can add virtual interfaces?
acl_delete=Can delete interfaces?
acl_hide=Hide non-editable interfaces?
acl_sysinfo=Show available network interfaces on Dashboard
interfaces_title1=Choose Interfaces...
interfaces_all=All Interfaces...

View File

@ -105,6 +105,7 @@ log_apply_bfics=Interfaces $1 de tiempo de arranque activadas
log_create_route=Ruta activa creada para $1
log_create_defroute=Ruta activa activa predeterminada
log_delete_routes=Rutas activas $1 eliminadas
acl_sysinfo=Mostrar las interfaces de red disponibles en el Tablero
mod_virtualmin=el servidor Virtualmin <tt>$1</tt>
mod_reseller=el revendedor de Virtualmin <tt>$1</tt>
dafics_err=Error al desactivar las interfaces

View File

@ -272,6 +272,7 @@ acl_up=Editatu al dezake egoera aktiboa?
acl_virt=Interfaze birtualak gehi ditzakezu?
acl_delete=Interfazeak ezaba al ditzake?
acl_hide=Editatu gabeko interfazeak ezkutatu?
acl_sysinfo=Erakutsi sareko interfaze erabilgarriak Arbelean
interfaces_title1=Aukeratu interfazeak. ..
interfaces_all=Interfaze guztiak. ..
interfaces_sel=Aukeratutako interfazeak

View File

@ -107,6 +107,7 @@ log_apply_bfics=رابط$1 بوت زمان فعال شده است
log_create_route=مسیر فعال برای$1 ایجاد شد
log_create_defroute=مسیر پیش فرض فعال ایجاد شده است
log_delete_routes=مسیرهای فعال$1 حذف شد
acl_sysinfo=رابط های شبکه موجود را در داشبورد نشان دهید
mod_virtualmin=سرور Virtualmin <tt>$1</tt>
mod_reseller=فروشنده مجازی Virtualmin <tt>$1</tt>
dafics_err=غیرفعال کردن رابط ها انجام نشد

View File

@ -272,6 +272,7 @@ acl_up=Voiko aktiivista tilaa muokata?
acl_virt=Voiko lisätä virtuaalisia rajapintoja?
acl_delete=Voiko rajapintoja poistaa?
acl_hide=Piilota muokkaamattomat rajapinnat?
acl_sysinfo=Näytä käytettävissä olevat verkkoliitännät hallintapaneelissa
interfaces_title1=Valitse käyttöliittymät. ..
interfaces_all=Kaikki rajapinnat. ..
interfaces_sel=Valitut rajapinnat

View File

@ -146,6 +146,7 @@ acl_up=Peut modifier l'état actif?
acl_virt=Peut ajouter des interfaces virtuelles?
acl_delete=Peut supprimer des interfaces?
acl_hide=Masquer les interfaces non modifiables?
acl_sysinfo=Afficher les interfaces réseau disponibles sur Dashboard
interfaces_title1=Choisissez les interfaces. ..
interfaces_all=Toutes les interfaces. ..
interfaces_sel=Interfaces sélectionnées

View File

@ -272,6 +272,7 @@ acl_up=האם ניתן לערוך מצב פעיל?
acl_virt=האם ניתן להוסיף ממשקים וירטואליים?
acl_delete=האם ניתן למחוק ממשקים?
acl_hide=להסתיר ממשקים לא ניתנים לעריכה?
acl_sysinfo=הצג ממשקי רשת זמינים בלוח המחוונים
interfaces_title1=בחר ממשקים. ..
interfaces_all=כל הממשקים. ..
interfaces_sel=ממשקים נבחרים

View File

@ -272,6 +272,7 @@ acl_up=Može li se uređivati aktivno stanje?
acl_virt=Mogu li dodati virtualna sučelja?
acl_delete=Mogu li izbrisati sučelja?
acl_hide=Sakriti sučelja koja ne mogu uređivati?
acl_sysinfo=Prikažite raspoloživa mrežna sučelja na nadzornoj ploči
interfaces_title1=Odaberite sučelja. ..
interfaces_all=Sva sučelja. ..
interfaces_sel=Odabrana sučelja

View File

@ -9,3 +9,4 @@ bonding_primary=Elsődleges interfész
bonding_primarydesc=Csak aktív biztonsági mentés, balance-tlb vagy balance-alb csoportosítási módok esetén alkalmazható
bonding_miimondesc=(Hagyja üresen a link figyelésének letiltását)
hosts_active=Engedélyezve van?
acl_sysinfo=Mutassa a rendelkezésre álló hálózati interfészeket az irányítópulton

View File

@ -142,6 +142,7 @@ acl_up=È possibile modificare lo stato attivo?
acl_virt=È possibile aggiungere interfacce virtuali?
acl_delete=È possibile eliminare le interfacce?
acl_hide=Nascondere interfacce non modificabili?
acl_sysinfo=Mostra le interfacce di rete disponibili su Dashboard
apply_ecannot=Non è consentito applicare la configurazione
mod_egone=L'interfaccia non è più attiva!
mod_title=Interfaccia attiva

View File

@ -122,6 +122,7 @@ acl_up=アクティブ状態を編集できますか?
acl_virt=仮想インターフェイスを追加できますか?
acl_delete=インターフェイスを削除できますか?
acl_hide=編集不可能なインターフェースを非表示にしますか?
acl_sysinfo=ダッシュボードに利用可能なネットワークインターフェイスを表示する
mod_zones=ゾーン<tt>$1</tt>の仮想インターフェイス
mod_virtualmin=Virtualminサーバー<tt>$1</tt>
mod_reseller=Virtualminリセラー<tt>$1</tt>

View File

@ -163,6 +163,7 @@ acl_up=활성 상태를 편집 할 수 있습니까?
acl_virt=가상 인터페이스를 추가 할 수 있습니까?
acl_delete=인터페이스를 삭제할 수 있습니까?
acl_hide=편집 불가능한 인터페이스를 숨기시겠습니까?
acl_sysinfo=대시 보드에 사용 가능한 네트워크 인터페이스 표시
interfaces_title1=인터페이스 선택. ..
interfaces_all=모든 인터페이스. ..
interfaces_sel=선택된 인터페이스

View File

@ -272,6 +272,7 @@ acl_up=Ar galima redaguoti aktyvią būseną?
acl_virt=Ar galite pridėti virtualių sąsajų?
acl_delete=Ar galima ištrinti sąsajas?
acl_hide=Slėpti neredaguojamas sąsajas?
acl_sysinfo=Rodyti galimas tinklo sąsajas informacijos suvestinėje
interfaces_title1=Pasirinkite sąsajas. ..
interfaces_all=Visos sąsajos. ..
interfaces_sel=Pasirinktos sąsajos

View File

@ -272,6 +272,7 @@ acl_up=Vai var rediģēt aktīvo stāvokli?
acl_virt=Vai var pievienot virtuālās saskarnes?
acl_delete=Vai var izdzēst saskarnes?
acl_hide=Vai paslēpt rediģējamās saskarnes?
acl_sysinfo=Rādīt pieejamās tīkla saskarnes informācijas panelī
interfaces_title1=Izvēlieties saskarnes. ..
interfaces_all=Visas saskarnes. ..
interfaces_sel=Atlasītās saskarnes

View File

@ -272,6 +272,7 @@ acl_up=Boleh mengedit keadaan aktif?
acl_virt=Bolehkah menambah antara muka maya?
acl_delete=Boleh memadamkan antara muka?
acl_hide=Sembunyikan antara muka yang tidak boleh diedit?
acl_sysinfo=Tunjukkan antara muka rangkaian yang tersedia di Dashboard
interfaces_title1=Pilih antara muka. ..
interfaces_all=Semua Interface. ..
interfaces_sel=Antara muka yang dipilih

View File

@ -272,6 +272,7 @@ acl_up=Tista 'teditja stat attiv?
acl_virt=Tista 'żżid interfaces virtwali?
acl_delete=Tista 'tħassar l-interfaces?
acl_hide=Aħbi interfejs li ma jistgħux jeditjaw?
acl_sysinfo=Uri l-interfejs tan-netwerk disponibbli fid-Dashboard
interfaces_title1=Agħżel Interfaces. ..
interfaces_all=L-Interfaces kollha. ..
interfaces_sel=Interfaces magħżula

View File

@ -9,3 +9,4 @@ bonding_primary=Primaire interface
bonding_primarydesc=Alleen van toepassing met actieve back-up-, balans-tlb- of balans-alb teaming-modi
bonding_miimondesc=(Leeg laten om linkbewaking uit te schakelen)
hosts_active=Ingeschakeld?
acl_sysinfo=Toon beschikbare netwerkinterfaces op Dashboard

View File

@ -1 +1,2 @@
hosts_active=Aktivert?
acl_sysinfo=Vis tilgjengelige nettverksgrensesnitt på dashbordet

View File

@ -9,3 +9,4 @@ bonding_updelay=Aktualizacja
bonding_downdelay=Downdelay
routes_gwmetric=Interfejs metryczny
hosts_active=Włączony?
acl_sysinfo=Pokaż dostępne interfejsy sieciowe na pulpicie nawigacyjnym

View File

@ -178,6 +178,7 @@ acl_up=Pode editar o estado ativo?
acl_virt=Pode adicionar interfaces virtuais?
acl_delete=Pode excluir interfaces?
acl_hide=Ocultar interfaces não editáveis?
acl_sysinfo=Mostrar interfaces de rede disponíveis no painel
interfaces_title1=Escolha Interfaces. ..
interfaces_all=Todas as interfaces. ..
interfaces_sel=Interfaces Selecionadas

View File

@ -41,3 +41,4 @@ routes_defaults6=Roteadores IPv6 padrão
routes_eclash6=Somente uma rota padrão para qualquer interface IPv6 pode ser definida
routes_def6=Rota IPv6 padrão
hosts_active=Ativado?
acl_sysinfo=Mostrar interfaces de rede disponíveis no painel

View File

@ -272,6 +272,7 @@ acl_up=Poate edita starea activă?
acl_virt=Poate adăuga interfețe virtuale?
acl_delete=Poate șterge interfețe?
acl_hide=Ascundeți interfețele care nu pot fi modificate?
acl_sysinfo=Afișează interfețele de rețea disponibile pe Panoul de bord
interfaces_title1=Alegeți Interfețe. ..
interfaces_all=Toate interfețele. ..
interfaces_sel=Interfețe selectate

View File

@ -41,3 +41,4 @@ routes_defaults6=Маршрутизаторы IPv6 по умолчанию
routes_eclash6=Можно определить только один маршрут по умолчанию для любого интерфейса IPv6.
routes_def6=Маршрут IPv6 по умолчанию
hosts_active=Включено?
acl_sysinfo=Показывать доступные сетевые интерфейсы на панели инструментов

View File

@ -41,3 +41,4 @@ routes_defaults6=Predvolené smerovače IPv6
routes_eclash6=Pre každé rozhranie IPv6 je možné definovať iba jednu predvolenú trasu
routes_def6=Predvolená trasa IPv6
hosts_active=Povolené?
acl_sysinfo=Zobraziť dostupné sieťové rozhrania na informačnom paneli

View File

@ -272,6 +272,7 @@ acl_up=Ali lahko urejate aktivno stanje?
acl_virt=Ali lahko dodate navidezne vmesnike?
acl_delete=Ali lahko izbrišete vmesnike?
acl_hide=Skriti vmesnike, ki jih ni mogoče urejati?
acl_sysinfo=Pokažite razpoložljive omrežne vmesnike na nadzorni plošči
interfaces_title1=Izberite vmesnike. ..
interfaces_all=Vsi vmesniki. ..
interfaces_sel=Izbrani vmesniki

View File

@ -163,6 +163,7 @@ acl_up=Kan redigera aktivt tillstånd?
acl_virt=Kan läggas till virtuella gränssnitt?
acl_delete=Kan ta bort gränssnitt?
acl_hide=Dölja gränssnitt som inte kan redigeras?
acl_sysinfo=Visa tillgängliga nätverksgränssnitt på instrumentpanelen
interfaces_title1=Välj gränssnitt. ..
interfaces_all=Alla gränssnitt. ..
interfaces_sel=Valda gränssnitt

View File

@ -272,6 +272,7 @@ acl_up=สามารถแก้ไขสถานะที่ใช้งา
acl_virt=สามารถเพิ่มอินเตอร์เฟสเสมือนได้หรือไม่
acl_delete=สามารถลบส่วนต่อประสานได้หรือไม่
acl_hide=ซ่อนส่วนต่อประสานที่ไม่สามารถแก้ไขได้?
acl_sysinfo=แสดงอินเตอร์เฟสเครือข่ายที่พร้อมใช้งานบนแดชบอร์ด
interfaces_title1=เลือกการเชื่อมต่อ. ..
interfaces_all=การเชื่อมต่อทั้งหมด. ..
interfaces_sel=อินเทอร์เฟซที่เลือก

View File

@ -108,6 +108,7 @@ log_create_route=$1 için etkin rota oluşturuldu
log_create_defroute=Aktif varsayılan rota oluşturuldu
log_delete_routes=$1 etkin rota silindi
acl_hide=Düzenlenemeyen arayüzler gizlensin mi?
acl_sysinfo=Gösterge Tablosunda kullanılabilir ağ arayüzlerini göster
mod_zones=<tt>$1</tt> bölgesi için sanal arabirim
mod_virtualmin=Virtualmin sunucusu <tt>$1</tt>
mod_reseller=Virtualmin satıcısı <tt>$1</tt>

View File

@ -142,6 +142,7 @@ acl_up=Чи можна редагувати активний стан?
acl_virt=Можна додати віртуальні інтерфейси?
acl_delete=Чи можна видалити інтерфейси?
acl_hide=Сховати інтерфейси, які не можна редагувати?
acl_sysinfo=Показати доступні мережеві інтерфейси на приладовій панелі
apply_ecannot=Вам заборонено застосовувати конфігурацію
mod_egone=Інтерфейс більше не активний!
mod_title=Активний інтерфейс

View File

@ -272,6 +272,7 @@ acl_up=فعال حالت میں ترمیم کرسکتے ہیں؟
acl_virt=ورچوئل انٹرفیس شامل کر سکتے ہیں؟
acl_delete=انٹرفیس کو خارج کر سکتے ہیں؟
acl_hide=غیر قابل تدوین انٹرفیس کو چھپائیں؟
acl_sysinfo=ڈیش بورڈ پر دستیاب نیٹ ورک انٹرفیس دکھائیں
interfaces_title1=انٹرفیس کا انتخاب کریں. ..
interfaces_all=تمام انٹرفیس. ..
interfaces_sel=منتخب کردہ انٹرفیس

View File

@ -272,6 +272,7 @@ acl_up=Có thể chỉnh sửa trạng thái hoạt động?
acl_virt=Có thể thêm giao diện ảo?
acl_delete=Có thể xóa giao diện?
acl_hide=Ẩn giao diện không thể chỉnh sửa?
acl_sysinfo=Hiển thị giao diện mạng khả dụng trên Bảng điều khiển
interfaces_title1=Chọn Giao diện. ..
interfaces_all=Tất cả các giao diện. ..
interfaces_sel=Giao diện được chọn

View File

@ -165,6 +165,7 @@ acl_up=可以编辑活动状态吗?
acl_virt=可以添加虚拟接口吗?
acl_delete=可以删除接口吗?
acl_hide=隐藏不可编辑的界面?
acl_sysinfo=在仪表板上显示可用的网络接口
interfaces_title1=选择接口. ..
interfaces_all=所有接口. ..
interfaces_sel=选定的接口

View File

@ -122,6 +122,7 @@ acl_up=可以編輯活動狀態嗎?
acl_virt=可以添加虛擬接口嗎?
acl_delete=可以刪除接口嗎?
acl_hide=隱藏不可編輯的界面?
acl_sysinfo=在儀表板上顯示可用的網絡接口
mod_zones=<tt>$1</tt>的虛擬接口
mod_virtualmin=Virtualmin服務器<tt>$1</tt>
mod_reseller=Virtualmin經銷商<tt>$1</tt>

View File

@ -245,10 +245,3 @@ print &ui_tabs_end(1);
&ui_print_footer("", $text{'index_return'});
sub iface_sort
{
return $a->{'name'} cmp $b->{'name'} if ($a->{'name'} cmp $b->{'name'});
return $a->{'virtual'} eq '' ? -1 :
$b->{'virtual'} eq '' ? 1 : $a->{'virtual'} <=> $b->{'virtual'};
}

View File

@ -458,5 +458,12 @@ foreach my $w (@w) {
return lc(join(":", @w));
}
sub iface_sort
{
return $a->{'name'} cmp $b->{'name'} if ($a->{'name'} cmp $b->{'name'});
return $a->{'virtual'} eq '' ? -1 :
$b->{'virtual'} eq '' ? 1 : $a->{'virtual'} <=> $b->{'virtual'};
}
1;

84
net/system_info.pl Normal file
View File

@ -0,0 +1,84 @@
do 'net-lib.pl';
sub list_system_info
{
my $can = &foreign_available($module_name) && $access{'sysinfo'};
if ((length($config{'sysinfo'}) && !$config{'sysinfo'}) || !$can) {
return ();
}
my %net_text = &load_language($module_name);
my @net = defined(&net::active_interfaces) ? net::active_interfaces() : ();
my $desc = ucwords($text{'ifcs_title'});
my ($html, $html_start, $html_rows, $html_end);
my ($is_speed, $is_ipv6);
my $ipv6t = $text{'ifcs_ip6'};
my $open = 0;
if (@net) {
@net = sort iface_sort @net;
&load_theme_library();
foreach $a (@net) {
next if ($a->{'fullname'} eq 'lo');
my $name = &html_escape($a->{'fullname'});
if ($a->{'virtual'} ne "") {
$name = "&nbsp;&nbsp;" . $name;
}
my $type = &net::iface_type($a->{'name'});
my $speed = $a->{'speed'};
$is_speed = 1 if ($speed);
my $ip = &html_escape($a->{'address'}) || $net_text{'ifcs_noaddress'};
my $ipv6 = '';
if (&net::supports_address6()) {
$ipv6 = join("<br>\n", map {&html_escape($_)} @{ $a->{'address6'} });
$is_ipv6 = 1 if ($ipv6);
$ipv6t = $text{'ifcs_mode6'} if ($ipv6 =~ /<br>/);
}
my $mask = &html_escape($a->{'netmask'}) || $net_text{'ifcs_nonetmask'};
my $broad = &html_escape($a->{'broadcast'}) || "";
my $status = $a->{'up'} ? ui_text_color($net_text{'ifcs_act'}, 'success', 1) :
ui_text_color($net_text{'ifcs_down'}, 'danger', 1);
if (!$a->{'up'}) {
$open = 1;
}
$html_rows .= ui_columns_row([$name, $type, $speed, $ip, $ipv6, $mask, $broad, $status]);
}
$html_start = ui_columns_start(
[ucwords($text{'ifcs_name'}),
ucwords($text{'ifcs_type'}),
$is_speed && ucwords($text{'ifcs_speed'}),
ucwords($text{'ifcs_ip'}),
$is_ipv6 && ucwords($ipv6t),
ucwords($text{'ifcs_mask'}),
ucwords($text{'ifcs_broad'}),
ucwords($text{'ifcs_act'}),
],
undef,
undef,
undef,
undef,
# Make the table sortable
1);
$html_end .= ui_columns_end();
$html = ($html_start . $html_rows . $html_end) if ($html_rows);
}
return (
{ 'type' => 'html',
'desc' => $desc,
'open' => $open,
'id' => $module_name . '_net_info',
'html' => $html
});
}
sub ucwords
{
$_[0] =~ s/(\w+)/\u$1/g;
return $_[0];
}