Jo-Philipp Wich [Mon, 5 Nov 2018 17:07:42 +0000 (18:07 +0100)]
luci-theme-bootstrap: z-index fixes
Lower z-index of header bar to allow tooltips and dropdowns to overlap it,
also increase the z-index of open dropdowns to ensure that they cover
active tooltip bubbles.
Jo-Philipp Wich [Mon, 5 Nov 2018 15:52:05 +0000 (16:52 +0100)]
luci-base: cbi.js: set .value property of cbi dropdown elements
In order to make cbi dropdowns usable for validation and other code
expecting native form elements, set the .value DOM property on the
dropdown parent element whenever the selection is changed.
Jo-Philipp Wich [Mon, 5 Nov 2018 15:44:20 +0000 (16:44 +0100)]
luci-base: cbi.js: avoid using .form property directly
In order to prepare support for calling cbi validation on non-native form
widgets, remove direct usages of the node.form property and lookup the
containing form using findParent() instead.
Jo-Philipp Wich [Mon, 5 Nov 2018 15:35:36 +0000 (16:35 +0100)]
luci-base: rework dynamic list template
Commit 7c7821833 ("luci-base, themes: rework dynlist and dropdown widgets")
changed the way we initialize dynamic lists on client side, avoiding the
need for pre-rendering the items on the server side.
Florian Eckert [Tue, 16 Oct 2018 10:43:18 +0000 (12:43 +0200)]
luci-app-mwan3: add rt_table_lookup option
Make list option rt_table_lookup configurable in luci.
With this option we could define additional routing tables which get
scanned by mwan3 and then get added to the connected ipset.
The entries will be treated as connected network and will not get
mangeld by mwan3.
Florian Eckert [Tue, 16 Oct 2018 07:45:41 +0000 (09:45 +0200)]
luci-app-mwan3: add rtmon interval option
Add the configuration option rtmon to luci.
With this parameter we could adjust how often the routing table get
synced between main routing table and the interface routing table.
Ansuel Smith [Wed, 24 Oct 2018 17:19:58 +0000 (19:19 +0200)]
luci-mod-system: add support for additional filesystem
The filesystem option doesn't include additional filesystem included with /etc/filesystems, this is usefull if someone have ntfs-3g installed and wants to force use the external utility to mount partition instead of the default present in the kernel (if it's supported)
'non-wildcard' interfaces enables dnsmasq's '--bind-dynamic' mode.
This binds dynamically to interfaces rather than wildcard addresses
*and* keeps track of interface comings/goings via a unique Linux api.
Quoting dnsmasq's author "bind-dynamic (bind individual addresses,
keep up with changes in interface config) ... On linux, there's actually
no sane reason not to use --bind-dynamic, and it's only not the default
for historical reasons."
listen/exclude interfaces may be used independently of bind dynamic mode
so removed the bogus dependency of 'nonwildcard' enabling access to
'listen/exclude' interfaces - they may be used in any mode.. In fact
the dnsmasq init script takes notice of include/exclude interfaces
irrespective of the 'nonwildcard' parameter.
Florian Eckert [Fri, 9 Nov 2018 10:03:36 +0000 (11:03 +0100)]
luci-mod-system: add user defined interface to netdev trigger
Give the user the possibility to define and interface for the netdev
trigger which is not available at the moment. This is usefull if a
interface is not presented on configuration time.
Thanks to a recent commit, the translation files will now
have info about locations where the string is used. That
can help is deciding the correct translation, as all contexts
are more easily found.
Jo-Philipp Wich [Sat, 20 Oct 2018 08:06:57 +0000 (10:06 +0200)]
luci-base: cbi.js: rework dropdown implementation
- Refactor event handler closures into class methods and bind them instead
- Fix quirk in dropdown placement calculation
- Different dropdown placement strategy on touch devices
- Broadcast custom "cbi-dropdown-change" event when value is changed
- Implement setValues() method to alter dropdown selection
- Prevent creating empty custom values
Jo-Philipp Wich [Fri, 19 Oct 2018 06:39:23 +0000 (08:39 +0200)]
luci-base: cbi.js: rework client side input validation
- Refactor and fix datatype validation functions
- Turn the type compilation and validation into a proper class
- Display tooltip with error hint on invalid inputs
Jo-Philipp Wich [Thu, 18 Oct 2018 11:48:05 +0000 (13:48 +0200)]
luci-base: cbi.js: add client side translation infrastructure
Implement the string hash algorithm used by LuCI's translation system in
JavaScript and provide a `_()` translation wrapper function to lookup
messages in the global string table.
Once client side translation loading is activated in a later commit,
JavaScript code can use the same string translation mechanism as server
side Lua code, e.g. `_("Static Routes")` would yield "Statische Routen"
when the German translation is loaded.
Jo-Philipp Wich [Thu, 18 Oct 2018 11:32:52 +0000 (13:32 +0200)]
luci-base: remove unused i18n functions
Drop load(), loadc(), string() and stringf() from the luci.i18n class since
these functions are either no longer unused or were never used to begin with.
Also slightly rework the module to only use local symbols and unify the
module require style.
Jo-Philipp Wich [Thu, 18 Oct 2018 07:52:07 +0000 (09:52 +0200)]
luci-base: fix luci.i18n.setlanguage()
Rework the setlanguage() implementation to actually switch catalogues
if another language has been loaded previously and change it to return
the effectively loaded language tag.
Also improve input parameter validation and accept tags in both lower
or upper case.
Jo-Philipp Wich [Wed, 17 Oct 2018 10:57:34 +0000 (12:57 +0200)]
luci-base: template: add translation iterator function
Introduce a new luci.template.parser.get_translations() function which will
iterate all loaded translation entries and pass the to the given callback
function.
This is useful to expose the loaded translations in other formats, e.g. for
wrapping them into JSON feeds.
Extend i18n-scan.pl to scan JavaScript files for translation strings as
well and annotate produced *.po template files with source code location
markers.