From 3c23cc64703e246f2ad57070adbdc86fd575907c Mon Sep 17 00:00:00 2001
From: Hannu Nyman
Date: Sun, 30 Oct 2016 10:10:46 +0200
Subject: [PATCH] luci-app-travelmate: user interface for Travelmate package
Create user interface for Travelmate, a new package that
helps in creating travel router functionality.
Signed-off-by: Hannu Nyman
---
applications/luci-app-travelmate/Makefile | 13 +++++
.../luasrc/controller/travelmate.lua | 11 ++++
.../luasrc/model/cbi/travelmate.lua | 53 ++++++++++++++++++
.../po/templates/travelmate.pot | 56 +++++++++++++++++++
.../root/etc/uci-defaults/40_luci-travelmate | 11 ++++
5 files changed, 144 insertions(+)
create mode 100644 applications/luci-app-travelmate/Makefile
create mode 100644 applications/luci-app-travelmate/luasrc/controller/travelmate.lua
create mode 100644 applications/luci-app-travelmate/luasrc/model/cbi/travelmate.lua
create mode 100644 applications/luci-app-travelmate/po/templates/travelmate.pot
create mode 100755 applications/luci-app-travelmate/root/etc/uci-defaults/40_luci-travelmate
diff --git a/applications/luci-app-travelmate/Makefile b/applications/luci-app-travelmate/Makefile
new file mode 100644
index 0000000000..f4b1b0a4e3
--- /dev/null
+++ b/applications/luci-app-travelmate/Makefile
@@ -0,0 +1,13 @@
+#
+# This is free software, licensed under the Apache License, Version 2.0 .
+#
+
+include $(TOPDIR)/rules.mk
+
+LUCI_TITLE:=LuCI support for Travelmate
+LUCI_DEPENDS:=+travelmate
+LUCI_PKGARCH:=all
+
+include ../../luci.mk
+
+# call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-travelmate/luasrc/controller/travelmate.lua b/applications/luci-app-travelmate/luasrc/controller/travelmate.lua
new file mode 100644
index 0000000000..27c19c4e52
--- /dev/null
+++ b/applications/luci-app-travelmate/luasrc/controller/travelmate.lua
@@ -0,0 +1,11 @@
+-- Licensed to the public under the Apache License 2.0.
+
+module("luci.controller.travelmate", package.seeall)
+
+function index()
+ if not nixio.fs.access("/etc/config/travelmate") then
+ return
+ end
+
+ entry({"admin", "services", "travelmate"}, cbi("travelmate"), _("Travelmate"), 60)
+end
diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate.lua
new file mode 100644
index 0000000000..9050ae9686
--- /dev/null
+++ b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate.lua
@@ -0,0 +1,53 @@
+-- Licensed to the public under the Apache License 2.0.
+
+m = Map("travelmate", translate("Travelmate"),
+ translate("Configuration of the Travelmate package to enable travel router functionality. ") .. [[
]] ..
+ translate("Brief advice: Create a wwan interface, configure it to use dhcp and " ..
+ "add it to the wan zone in firewall. Create the wifi interfaces to be used ('client' mode, " ..
+ "assigned to wwan network, left as disabled). Travelmate will try " ..
+ "to connect to the known wifi client interfaces in the defined order. ") ..
+ [[]]
+ .. translate("Link to detailed advice")
+ .. [[]] )
+
+-- General options
+
+s = m:section(NamedSection, "global", "travelmate", translate("Global options"))
+
+o = s:option(Flag, "trm_enabled", translate("Enable Travelmate"))
+o.rmempty = false
+o.default = 0
+
+o = s:option(Value, "trm_loop", translate("Loop timeout in seconds for wlan monitoring"),
+ translate("Default 30, range 5-60"))
+o.rmempty = false
+o.default = 30
+o.datatype = "range(5,60)"
+
+o = s:option(Value, "trm_maxretry", translate("Max. number of connection retries to an uplink"),
+ translate("Default 3, range 0-10. Set to 0 to allow unlimited retries"))
+o.rmempty = false
+o.default = 3
+o.datatype = "range(0,10)"
+
+-- Extra options
+
+e = m:section(NamedSection, "global", "travelmate", translate("Extra options"))
+
+a = e:option(Flag, "trm_debug", translate("Debug logging"))
+a.rmempty = true
+a.default = a.disabled
+
+a = e:option(Value, "trm_device", translate("Use only one radio, e.g. 'radio0'"),
+ translate("Default: empty = use all radios."))
+a.rmempty = true
+a.default = ""
+a.datatype = "uciname"
+
+a = e:option(Flag, "trm_iw", translate("Use iw for scanning"),
+ translate("Disable this if you want to use iwinfo instead of iw"))
+a.rmempty = true
+a.default = a.enabled
+
+return m
+
diff --git a/applications/luci-app-travelmate/po/templates/travelmate.pot b/applications/luci-app-travelmate/po/templates/travelmate.pot
new file mode 100644
index 0000000000..533b3e2639
--- /dev/null
+++ b/applications/luci-app-travelmate/po/templates/travelmate.pot
@@ -0,0 +1,56 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+msgid ""
+"Brief advice: Create a wwan interface, configure it to use dhcp and add it "
+"to the wan zone in firewall. Create the wifi interfaces to be used ('client' "
+"mode, assigned to wwan network, left as disabled). Travelmate will try to "
+"connect to the known wifi client interfaces in the defined order."
+msgstr ""
+
+msgid ""
+"Configuration of the Travelmate package to enable travel router "
+"functionality."
+msgstr ""
+
+msgid "Debug logging"
+msgstr ""
+
+msgid "Default 3, range 0-10. Set to 0 to allow unlimited retries"
+msgstr ""
+
+msgid "Default 30, range 5-60"
+msgstr ""
+
+msgid "Default: empty = use all radios."
+msgstr ""
+
+msgid "Disable this if you want to use iwinfo instead of iw"
+msgstr ""
+
+msgid "Enable Travelmate"
+msgstr ""
+
+msgid "Extra options"
+msgstr ""
+
+msgid "Global options"
+msgstr ""
+
+msgid "Link to detailed advice"
+msgstr ""
+
+msgid "Loop timeout in seconds for wlan monitoring"
+msgstr ""
+
+msgid "Max. number of connection retries to an uplink"
+msgstr ""
+
+msgid "Travelmate"
+msgstr ""
+
+msgid "Use iw for scanning"
+msgstr ""
+
+msgid "Use only one radio, e.g. 'radio0'"
+msgstr ""
diff --git a/applications/luci-app-travelmate/root/etc/uci-defaults/40_luci-travelmate b/applications/luci-app-travelmate/root/etc/uci-defaults/40_luci-travelmate
new file mode 100755
index 0000000000..f7676774a1
--- /dev/null
+++ b/applications/luci-app-travelmate/root/etc/uci-defaults/40_luci-travelmate
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+uci -q batch <<-EOF >/dev/null
+ delete ucitrack.@travelmate[-1]
+ add ucitrack travelmate
+ set ucitrack.@travelmate[-1].init=travelmate
+ commit ucitrack
+EOF
+
+rm -f /tmp/luci-indexcache
+exit 0
--
2.30.2