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.
|
# This is free software, licensed under the GNU General Public License v3.
|
||||||
# See /LICENSE for more information.
|
# See /LICENSE for more information.
|
||||||
|
@ -7,72 +7,10 @@
|
||||||
|
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=luci-app-macvlan
|
LUCI_TITLE:=LuCI Support for macvlan
|
||||||
PKG_VERSION:=1.0.0
|
LUC_PKGARCH:=all
|
||||||
PKG_RELEASE:=1
|
LUCI_DEPENDS:=+kmod-macvlan +busybox +@BUSYBOX_CUSTOM +@BUSYBOX_CONFIG_VCONFIG
|
||||||
|
|
||||||
PKG_LICENSE:=GPLv3
|
include $(TOPDIR)/feeds/luci/luci.mk
|
||||||
PKG_LICENSE_FILES:=LICENSE
|
|
||||||
PKG_MAINTAINER:=Chen Minqiang <ptpt52@gmail.com>
|
|
||||||
|
|
||||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
|
# call BuildPackage - OpenWrt buildroot signature
|
||||||
|
|
||||||
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))
|
|
|
@ -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() {
|
_create_interface() {
|
||||||
local _masterifname
|
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
|
config_get _masterifname "$1" ifname
|
||||||
uci batch <<-EOF
|
uci batch <<-EOF
|
||||||
set network.$_ifname=interface
|
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