mirror of
https://github.com/Ysurac/openmptcprouter-feeds.git
synced 2025-03-09 15:40:03 +00:00
Convert luci-app-macvlan to client side rendering
This commit is contained in:
parent
7953a89337
commit
c8be607e09
9 changed files with 60 additions and 115 deletions
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# Copyright (C) 2017-2019 Chen Minqiang <ptpt52@gmail.com>
|
||||
# Copyright (C) 2020 Ycarus (Yannick Chabanois) <ycarus@zugaina.org> for OpeenMPTCProuter
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v3.
|
||||
# See /LICENSE for more information.
|
||||
|
@ -7,72 +7,10 @@
|
|||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=luci-app-macvlan
|
||||
PKG_VERSION:=1.0.0
|
||||
PKG_RELEASE:=1
|
||||
LUCI_TITLE:=LuCI Support for macvlan
|
||||
LUC_PKGARCH:=all
|
||||
LUCI_DEPENDS:=+kmod-macvlan +busybox +@BUSYBOX_CUSTOM +@BUSYBOX_CONFIG_VCONFIG
|
||||
|
||||
PKG_LICENSE:=GPLv3
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
PKG_MAINTAINER:=Chen Minqiang <ptpt52@gmail.com>
|
||||
include $(TOPDIR)/feeds/luci/luci.mk
|
||||
|
||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/luci-app-macvlan
|
||||
CATEGORY:=OpenMPTCProuter
|
||||
SUBMENU:=Macvlan
|
||||
TITLE:=LuCI Support for macvlan
|
||||
PKGARCH:=all
|
||||
DEPENDS:=+kmod-macvlan +busybox +@BUSYBOX_CUSTOM +@BUSYBOX_CONFIG_VCONFIG
|
||||
endef
|
||||
|
||||
define Package/luci-app-macvlan/description
|
||||
LuCI Support for macvlan.
|
||||
endef
|
||||
|
||||
define Build/Prepare
|
||||
$(foreach po,$(wildcard ${CURDIR}/files/luci/i18n/*.po), \
|
||||
po2lmo $(po) $(PKG_BUILD_DIR)/$(patsubst %.po,%.lmo,$(notdir $(po)));)
|
||||
endef
|
||||
|
||||
define Build/Configure
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
endef
|
||||
|
||||
define Package/luci-app-macvlan/postinst
|
||||
#!/bin/sh
|
||||
if [ -z "$${IPKG_INSTROOT}" ]; then
|
||||
rm -rf /tmp/luci-indexcache /tmp/luci-modulecache
|
||||
fi
|
||||
|
||||
if [ -z "$$IPKG_INSTROOT" ]; then
|
||||
( . /etc/uci-defaults/40_luci-app-macvlan )
|
||||
rm -f /etc/uci-defaults/40_luci-app-macvlan
|
||||
fi
|
||||
|
||||
exit 0
|
||||
endef
|
||||
|
||||
define Package/luci-app-macvlan/conffiles
|
||||
/etc/config/macvlan
|
||||
endef
|
||||
|
||||
define Package/luci-app-macvlan/install
|
||||
$(INSTALL_DIR) $(1)/usr/lib/lua/luci/i18n
|
||||
$(INSTALL_DATA) $(PKG_BUILD_DIR)/macvlan.*.lmo $(1)/usr/lib/lua/luci/i18n/
|
||||
$(INSTALL_DIR) $(1)/usr/lib/lua/luci/controller
|
||||
$(INSTALL_DATA) ./files/luci/controller/*.lua $(1)/usr/lib/lua/luci/controller/
|
||||
$(INSTALL_DIR) $(1)/usr/lib/lua/luci/model/cbi/macvlan
|
||||
$(INSTALL_DATA) ./files/luci/model/cbi/macvlan/*.lua $(1)/usr/lib/lua/luci/model/cbi/macvlan/
|
||||
$(INSTALL_DIR) $(1)/etc/config
|
||||
$(INSTALL_DATA) ./files/root/etc/config/macvlan $(1)/etc/config/macvlan
|
||||
$(INSTALL_DIR) $(1)/etc/init.d
|
||||
$(INSTALL_BIN) ./files/root/etc/init.d/macvlan $(1)/etc/init.d/macvlan
|
||||
$(INSTALL_DIR) $(1)/etc/uci-defaults
|
||||
$(INSTALL_DATA) ./files/root/etc/uci-defaults/40_luci-app-macvlan $(1)/etc/uci-defaults/40_luci-app-macvlan
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,luci-app-macvlan))
|
||||
# call BuildPackage - OpenWrt buildroot signature
|
|
@ -1,10 +0,0 @@
|
|||
-- Copyright (C) 2019 X-WRT <dev@x-wrt.com>
|
||||
|
||||
module("luci.controller.macvlan", package.seeall)
|
||||
|
||||
function index()
|
||||
local page
|
||||
|
||||
page = entry({"admin", "network", "macvlan"}, cbi("macvlan/macvlan"), _("Macvlan"))
|
||||
page.leaf = true
|
||||
end
|
|
@ -1,14 +0,0 @@
|
|||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
||||
msgid "Macvlan"
|
||||
msgstr "Macvlan"
|
||||
|
||||
msgid "Macvlan Settings"
|
||||
msgstr "Macvlan设置"
|
||||
|
||||
msgid "Interface"
|
||||
msgstr "网络接口"
|
||||
|
||||
msgid "Index"
|
||||
msgstr "序号"
|
|
@ -1,22 +0,0 @@
|
|||
-- Copyright (C) 2019 X-WRT <dev@x-wrt.com>
|
||||
|
||||
local net = require "luci.model.network".init()
|
||||
local ifaces = net:get_interfaces() or { net:get_interface() }
|
||||
|
||||
m = Map("macvlan", translate("Macvlan"), translate("You can configure Macvlan virtual interfaces base on the real itnerface you want."))
|
||||
|
||||
s = m:section(TypedSection, "macvlan", translate("Macvlan Settings"))
|
||||
s.addremove = true
|
||||
s.anonymous = false
|
||||
s.template = "cbi/tblsection"
|
||||
|
||||
hn = s:option(Value, "ifname", translate("Interface"))
|
||||
hn.rmempty = false
|
||||
|
||||
for _, iface in ipairs(ifaces) do
|
||||
if iface:type() ~= "macvlan" then
|
||||
hn:value(iface:name(),"%s" % iface:name())
|
||||
end
|
||||
end
|
||||
|
||||
return m
|
|
@ -0,0 +1,35 @@
|
|||
'use strict';
|
||||
'require rpc';
|
||||
'require form';
|
||||
'require tools.widgets as widgets';
|
||||
|
||||
return L.view.extend({
|
||||
callHostHints: rpc.declare({
|
||||
object: 'luci-rpc',
|
||||
method: 'getHostHints',
|
||||
expect: { '': {} }
|
||||
}),
|
||||
|
||||
load: function() {
|
||||
return this.callHostHints();
|
||||
},
|
||||
|
||||
render: function(hosts) {
|
||||
var m, s, o;
|
||||
|
||||
m = new form.Map('macvlan', _('Macvlan'));
|
||||
|
||||
s = m.section(form.GridSection, 'macvlan', _('Interfaces'));
|
||||
s.addremove = true;
|
||||
s.anonymous = true;
|
||||
|
||||
o = s.option(form.Value, 'name', _('Name'));
|
||||
o.datatype = 'uciname';
|
||||
o.rmempty = false;
|
||||
|
||||
o = s.option(widgets.DeviceSelect, 'ifname', _('Interface'));
|
||||
o.rmempty = false;
|
||||
|
||||
return m.render();
|
||||
}
|
||||
});
|
|
@ -36,7 +36,15 @@ _save_macaddr() {
|
|||
|
||||
_create_interface() {
|
||||
local _masterifname
|
||||
local _ifname=$1
|
||||
config_get _ifname "$1" name
|
||||
# Convert from old config without name defined
|
||||
[ -z "$_ifname" ] && {
|
||||
uci batch <<-EOF
|
||||
set macvlan.$1.name=$1
|
||||
commit macvlan
|
||||
EOF
|
||||
_ifname=$1
|
||||
}
|
||||
config_get _masterifname "$1" ifname
|
||||
uci batch <<-EOF
|
||||
set network.$_ifname=interface
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"admin/network/macvlan": {
|
||||
"title": "Macvlan",
|
||||
"order": 60,
|
||||
"action": {
|
||||
"type": "view",
|
||||
"path": "network/macvlan"
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue