summaryrefslogtreecommitdiffhomepage
path: root/modules/luci-base
AgeCommit message (Collapse)Author
2018-06-08luci-base: add markup, JS and CSS for new dropdownJo-Philipp Wich
This commit introduces the required code for a new, markup based dropdown widget which can be used as a styleable alternative to select boxes or radio/checkbox button groups. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-06-08luci-base: support option aliases in luci.cbiJo-Philipp Wich
AbstractValue descendants may now specify a new optional property `alias` which refers to a uci option to read/write/remove that differs from the option name itself. This is mainly useful for widgets that are toggled based on dependencies, e.g. for alternating between SingleValue and MultiValue, but which are intented to write into the same uci option. Such a setup was previously possible already by overriding the .cfgvalue(), .write() and .remove() callbacks with custom implementations, but that required a lot of boiler plate code and was rather fragile. With the `alias` property, CBI now takes care of the details and tracks aliased fields within a section accordingly. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-06-06luci-base: fix some minor luci.model.uci issuesJo-Philipp Wich
- Properly serialize option delete changelogs - Do not perform a section create if a nil value is passed to set() Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-06-03luci-base: cbi: atomically reorder uci sectionsJo-Philipp Wich
Since the switch to ubus uci operations we do not have a local application- side cursor cache anymore, instead uci operations happen synchronously in the rpcd backend server. This may cause cbi section reorder operations involving multiple elements to fail, because anonymous section hashes may change due to rehashing between consecutive ubus uci reorder calls. In order to avoid that problem, use the ubus uci batch reorder extension, which allows to pass a complete (or partial) list of section ids in the desired order in one call, bypassing the volatile section id problem. Fixes #1844. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-06-01luci-base: update Japanese translationINAGAKI Hiroshi
Updated Japanese translations. Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2018-06-01luci-base: sync translationsINAGAKI Hiroshi
Synchronized translations with sources. Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2018-05-31luci-base: use common alert message markupJo-Philipp Wich
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-05-31luci-base: update coxpcall() implementation, fix runtime error reportingJo-Philipp Wich
Sync our coxpcall() implementation to the newest upstream version in order to get access to the inner backtrace information and propagate these traces to the browser in luci.dispatcher.dispatch(). This should make tracking down runtime errors much easier. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-05-31luci-base: add full page overlay during applyJo-Philipp Wich
After applying uci configuration, a full map reload is required in many cases as the anonymous section identifiers might have been rehashed, causing the rendered map to go out of sync. To avoid that, add both a full page overlay preventing further page interaction and let the apply widget forcibly reload the current view once the operation is complete. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-05-30luci-base: cbi.js: remove unused serialize functionsJo-Philipp Wich
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-05-30luci-base: cbi.js: fix cbi_row_swap() after recent table markup changesJo-Philipp Wich
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-05-28treewide: convert HTML tables to divJo-Philipp Wich
Mostly convert HTML tables to div based markup to allow for easier styling in the future. Also change JS accessor code accordingly. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-05-28luci-base: add element creation helper to cbi.jsJo-Philipp Wich
Add a new helper function `E()` to cbi.js which can be used to conveniently build HTML markup. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-05-27Merge pull request #1834 from Ansuel/fixpoHannu Nyman
luci-base: fix broken translation
2018-05-27luci-base: fix broken translationAnsuel Smith
Currently this translation refer to an old string, sync to the new one. Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2018-05-27Update base.poYusuf Soyipek
Some of the shortcomings in Turkish were added.
2018-05-25i18n: one more fix for Polish translationHannu Nyman
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2018-05-25i18n: sync, fix and cleanup translationsHannu Nyman
* sync translations (aiccu removal) * remove some other old strings * fix Polish translation Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2018-05-23luci-base: fix dispacher failAnsuel Smith
http.getenv("SCRIPT_NAME") fail if it's not provided. This can happen in the login screen when we don't have any script to load. Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2018-05-21luci-base: update Japanese translationINAGAKI Hiroshi
Updated Japanese translations. Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2018-05-21i18n: sync translationsINAGAKI Hiroshi
Synchronized translations with sources. Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2018-05-19luci-base: handle potential crash in luci.model.network.interface.get_i18n()Jo-Philipp Wich
Should prevent the crash mentioned in #1779. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-05-19luci-base: break circular luci.config <> luci.model.uci dependencyJo-Philipp Wich
On certain environments, mainly with the embedded uhttpd interpreter, the luci.config class cannot be loaded due to a circular dependency with the luci.model.uci class. Break up the dependency by deferring the loading of luci.config in luci.model.uci until it is actually needed. Fixes #1803, FS#1553. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-05-18Merge pull request #1769 from jow-/masterJo-Philipp Wich
UCI apply/rollback workflow
2018-05-18luci-base: raise maximum POST value size to 100KBJo-Philipp Wich
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-05-18Merge pull request #1748 from hnyman/wifidataHannu Nyman
luci-base: show wifi chip identification on overview
2018-05-15luci-base: update Polish translationRixerx
Signed-off-by: Rixerx <krystian.kozak20@gmail.com>
2018-05-13luci-base: harden cookie sysauth=Yousong Zhou
A simple scan of the code indicates that currently no code in the repo is accessing the sysauth= cookie Closes openwrt/luci#1555 Signed-off-by: Florian Eckert <fe@dev.tdt.de> Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
2018-05-07luci-base: reload log on uci system changeFlorian Eckert
If log configuration get changed in uci system no new values are applied until reboot. Add /etc/init.d/log reload to exec option will solve this issue. Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2018-05-07luci-base: fix i18n de typo for rc.localFlorian Eckert
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2018-05-05luci-base: add transitional /etc/init.d/ucitrackJo-Philipp Wich
Ship an /etc/init.d/ucitrack for spawning a virtual service with the sole purpose to track the configurations and dependencies formerly handled by luci-reload. Once all LuCI supported services ship with procd compatible init scripts, the uci track support can be dropped. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-05-05treewide: rework uci apply workflowJo-Philipp Wich
Switch to rpcd based uci apply/rollback workflow which helps to avoid soft- bricking devices by requiring an explicit confirmation call after config apply. When a user now clicks "Save & Apply", LuCI first issues a call to uci apply which commits and reloads configuration, then goes into a polling countdown mode where it repeatedly attempts to call uci confirm. If the committed configuration is sane, the confirm call will go through and cancel rpcd's pending rollback timer. If the configuration change leads to a loss of connectivity (e.g. due to bad firewall rules or similar), the rollback mechanism will kick in after the timeout and revert configuration files and pending changes to the pre-apply state. In order to cover such rare cases where a lost of connectivity is expected and desired, the user is offered an "unchecked" apply option after timing out, which allows committing and applying the changes anyway, without the extra safety checks. As a consequence of this change, the luci-reload mechanism is now completely unsused since rpcd uses ubus config reload signals to reload affected services, which means that only procd-enabled services will receive proper reload treatment with the new workflow. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-05-05luci-base: enable uci session isolationJo-Philipp Wich
Switch to per-session save directories to decouple LuCI configuration changes from system wide ones. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-05-05luci-base: xhr.js: fix timeout setting with IE 11Jo-Philipp Wich
Internet Explorer 11 requires the timeout to be applied after the open() call, otherwise an invlaid state exception will be raised Fixes aa6c97154 ("luci-base: extend xhr.js") Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-05-05luci-base: show wifi chip identification on overviewHannu Nyman
Show the correct wifi chip identification in case iwinfo recognises the chip. So far the wifidev.get_i18n function has practically always returned just "Generic", but use iwinfo.hardware_name to fetch the name. In case iwinfo returns the default "Generic MAC80211", there is a double 80211 in the final string, which is a cosmetic bug. Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2018-05-03luci-base: support hiding the "Back to Overview" button in cbi mapsJo-Philipp Wich
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-05-03Revert "luci-base: support hiding the "Back to Overview" button in cbi maps"Jo-Philipp Wich
This reverts commit 52cf265c9d12537d5f37043350328d30ca11bab4. I accidentally committed unrelated changes. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-05-03luci-base: support hiding the "Back to Overview" button in cbi mapsJo-Philipp Wich
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-05-02Fixing small typoRicardo Lamego
indentifies > identifies
2018-05-03luci-base: update Japanese translationINAGAKI Hiroshi
Updated Japanese translations. Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2018-05-02luci-base: sync translationsINAGAKI Hiroshi
Synchronized translations with sources. Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2018-04-26luci-base: extend xhr.jsJo-Philipp Wich
Add timeout options to get() and post() and introduce XHR.stop() to support stopping a poll operation. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-04-26luci-base: add simple CORS handling to luci.dispatcherJo-Philipp Wich
Support a new boolean property `cors` which - if set to true - causes the dispatcher to positively answer CORS OPTIONS requests after authentication without actually running the dispatching target. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-04-26luci-base: handle bodies of non-POST requests as wellJo-Philipp Wich
Decode the HTTP message bodies of any request carrying a Content-Length header, not just those in POST requests. This allows handling parameters in other methods, OPTIONS in particular. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-04-26luci-base: update japanese translationINAGAKI Hiroshi
Updated japanese translations. Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2018-04-24luci-base: additionally return error code strings in luci.util.ubus()Jo-Philipp Wich
Add a 3rd return value to luci.util.ubus() containing the string value of the error return value. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-04-24luci-base: ensure that file upload values have lengthJo-Philipp Wich
Ensure that the (table) length of a file upload value has nonzero length by initializing the first table index with the file name. This fixes tests in the form x = luci.http.formvalue(...) if x and #x > 0 then ... end Fixes #1763. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-04-22luci-base: decode plus signs in x-www-form-urlencoded POST dataJo-Philipp Wich
Depends on 5ef51b2ab ("lucihttp: update to latest HEAD"). Fixes #1755. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-04-21luci-base: ship rpcd uci access ACLJo-Philipp Wich
Ship an ACL definition for granting full read/write access to uci configuration files via ubus rpc. This is a precondition for enabling uci session isolation later on. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-04-19luci-base: properly handle repeated POST parametersJo-Philipp Wich
Restore the old luci.http behaviour of converting repeated POST params into single tables holding all values instead of letting each repeated parameter overwrite the value of the preceeding one. Fixes, among other things, the handling of CBI dynamic list values. Fixes #1752 Fixes 59dea0230 ("luci-base: switch to lucihttp based POST data processing") Signed-off-by: Jo-Philipp Wich <jo@mein.io>