diff --git a/luci-app-fchomo/htdocs/luci-static/resources/fchomo.js b/luci-app-fchomo/htdocs/luci-static/resources/fchomo.js index 71ad85f87..f47480e91 100644 --- a/luci-app-fchomo/htdocs/luci-static/resources/fchomo.js +++ b/luci-app-fchomo/htdocs/luci-static/resources/fchomo.js @@ -130,10 +130,10 @@ const proxy_group_type = [ const routing_port_type = [ ['all', _('All ports')], - ['common_tcpport', _('Common ports only (bypass P2P traffic)')], - ['common_udpport', _('Common ports only (bypass P2P traffic)')], - ['stun_port', _('STUN ports')], - ['turn_port', _('TURN ports')], + ['common_tcpport', _('Common ports only (bypass P2P traffic)'), uci.get('fchomo', 'routing', 'common_tcpport') || '20-21,22,53,80,110,143,443,465,853,873,993,995,5222,8080,8443,9418'], + ['common_udpport', _('Common ports only (bypass P2P traffic)'), uci.get('fchomo', 'routing', 'common_udpport') || '20-21,22,53,80,110,143,443,853,993,995,8080,8443,9418'], + ['stun_port', _('STUN ports'), uci.get('fchomo', 'routing', 'stun_port') || '3478,19302'], + ['turn_port', _('TURN ports'), uci.get('fchomo', 'routing', 'turn_port') || '5349'], ]; const rules_type = [ @@ -292,6 +292,12 @@ const CBIListValue = form.ListValue.extend({ } }); +const CBIRichMultiValue = form.MultiValue.extend({ + __name__: 'CBI.RichMultiValue', + + value: (form.RichListValue || form.MultiValue).prototype.value +}); + const CBIStaticList = form.DynamicList.extend({ __name__: 'CBI.StaticList', @@ -1153,6 +1159,7 @@ return baseclass.extend({ DynamicList: CBIDynamicList, GenValue: CBIGenValue, ListValue: CBIListValue, + RichMultiValue: CBIRichMultiValue, StaticList: CBIStaticList, TextValue: CBITextValue, diff --git a/luci-app-fchomo/htdocs/luci-static/resources/view/fchomo/global.js b/luci-app-fchomo/htdocs/luci-static/resources/view/fchomo/global.js index 9485b2b19..c898713f5 100644 --- a/luci-app-fchomo/htdocs/luci-static/resources/view/fchomo/global.js +++ b/luci-app-fchomo/htdocs/luci-static/resources/view/fchomo/global.js @@ -726,7 +726,7 @@ return view.extend({ /* Routing control */ ss.tab('routing_control', _('Routing Control')); - so = ss.taboption('routing_control', form.MultiValue, 'routing_tcpport', _('Routing ports') + ' (TCP)', + so = ss.taboption('routing_control', hm.RichMultiValue, 'routing_tcpport', _('Routing ports') + ' (TCP)', _('Specify target ports to be proxied. Multiple ports must be separated by commas.')); so.create = true; hm.routing_port_type.forEach((res) => { @@ -735,7 +735,7 @@ return view.extend({ }) so.validate = L.bind(hm.validateCommonPort, so); - so = ss.taboption('routing_control', form.MultiValue, 'routing_udpport', _('Routing ports') + ' (UDP)', + so = ss.taboption('routing_control', hm.RichMultiValue, 'routing_udpport', _('Routing ports') + ' (UDP)', _('Specify target ports to be proxied. Multiple ports must be separated by commas.')); so.create = true; hm.routing_port_type.forEach((res) => { diff --git a/luci-app-store/Makefile b/luci-app-store/Makefile index 53b069522..690593a9c 100644 --- a/luci-app-store/Makefile +++ b/luci-app-store/Makefile @@ -11,7 +11,7 @@ LUCI_DEPENDS:=+curl +opkg +luci-base +tar +libuci-lua +mount-utils +luci-lib-tas LUCI_EXTRA_DEPENDS:=luci-lib-taskd (>=1.0.19) LUCI_PKGARCH:=all -PKG_VERSION:=0.1.27-3 +PKG_VERSION:=0.1.27-4 # PKG_RELEASE MUST be empty for luci.mk PKG_RELEASE:= diff --git a/luci-app-store/luasrc/view/store/main.htm b/luci-app-store/luasrc/view/store/main.htm index 091d5f074..2e6f3329d 100644 --- a/luci-app-store/luasrc/view/store/main.htm +++ b/luci-app-store/luasrc/view/store/main.htm @@ -36,6 +36,7 @@