Skip to content
  1. Sep 19, 2018
    • Jo-Philipp Wich's avatar
      luci-base: switch admin category node to firstnode() action · 0f91ef83
      Jo-Philipp Wich authored
      
      
      After this change, luci-base will render the first module or application
      page installed on the system, instead of rendering a "Component not found"
      message when the status category is unavailable.
      
      This allows for single-purpose LuCI installations like e.g. luci-base with
      luci-app-travelmate which only presents application specific views without
      any of the standard system pages.
      
      Signed-off-by: default avatarJo-Philipp Wich <jo@mein.io>
      0f91ef83
    • Jo-Philipp Wich's avatar
      luci-base: dispatcher: introduce firstnode() dispatching target · 11f7817d
      Jo-Philipp Wich authored
      
      
      The firstnode target will dispatch the request to the first eligible menu
      subtree node that is not a redirect to another node, a special action or
      post security enabled page.
      
      That action is specifically useful for global category toplevel nodes like
      "admin" which are supposed to simply direct access to the first installed
      page node without having to hardcode specific choices.
      
      Signed-off-by: default avatarJo-Philipp Wich <jo@mein.io>
      11f7817d
    • Daniel F. Dickinson's avatar
      modules: Split luci-mod-full · 58d97b5e
      Daniel F. Dickinson authored
      
      
      Move some common elements to luci-base, and otherwise make three
      packages out of status, system, and network.  They were mostly
      separated already, but there were some shared elements between
      status and network that are now in luci-base.
      
      Signed-off-by: default avatarDaniel F. Dickinson <cshored@thecshore.com>
      58d97b5e
    • Daniel F. Dickinson's avatar
      modules: Make luci-base sufficient to use luci apps · 6ec03532
      Daniel F. Dickinson authored
      
      
      Per the discussion in https://github.com/openwrt/luci/issues/869, make
      luci-base sufficient to login, logout, and review and apply or revert
      uci changes.  This allows most luci-app-xxx to work without having
      luci-mod-admin-full installed.
      
      It has been tested with some apps and not luci-mod-admin-full, as well
      as with luci-mod-admin-full (to make sure the usual case doesn't break).
      
      Instead of creating a new module namespace (e.g. 'Base') we reduce the
      opportunities for breakage by having luci-base take over the 'shell' of
      the 'Administration' (admin/....) namespace.
      
      Since admin is assumed by all current building LuCI components (including
      Freifunk), this doesn't introduce the 'Administration' tab into any
      situation where it would not already be present (but includes it where it
      was before).
      
      We also add a "Component not installed" page to avoid fatal errors and
      backtrace when e.g. luci-mod-admin-full is not installed.
      
      Signed-off-by: default avatarDaniel F. Dickinson <cshored@thecshore.com>
      6ec03532
    • Kristian Evensen's avatar
      luci-base: Show multiple upstream interface · a13748d4
      Kristian Evensen authored
      
      
      Several devices have multiple upstream interfaces, for example a fixed
      and a mobile broadband connection. Currently, only one upstream
      interface is shown per address family in Luci. So in my example, one of
      the interfaces would not appear on the Status-page.
      
      This PR introduces support for showing multiple upstream interfaces on
      the Status-page. The code is not very complicated. get_status_by_route()
      has been extended to return a list of all routes, and
      get_wannet()/get_wan6net() now returns all upstream interfaces.
      
      I could not find any other (active) users of these three functions than
      calls triggered from the Status-page, so changing the default behavior
      should be fine. get_wandev()/get_wan6dev() called get_status_by_route(),
      but I could not find any place where those functions were called. I
      removed the dev-functions instead of keeping the old
      get_status_by_route().
      
      On the status page, the wan/wan6-variables have been replaced with
      arrays. When populating the html, we now iterate through these arrays
      and create one element for each interface.
      
      I have tested the code with different interface types, v4, v6, as well as
      disconnecting and connecting interfaces. The status is updated and the
      correct interfaces (or sometimes none at all) are shown.
      
      Signed-off-by: default avatarKristian Evensen <kristian.evensen@gmail.com>
      a13748d4
  2. Sep 13, 2018
  3. Sep 12, 2018
  4. Sep 08, 2018
  5. Sep 06, 2018
  6. Sep 02, 2018
  7. Sep 01, 2018
  8. Aug 31, 2018
  9. Aug 17, 2018
  10. Aug 16, 2018
  11. Aug 15, 2018
  12. Aug 13, 2018
    • Jo-Philipp Wich's avatar
      treewide: rework uci change display · 849d1538
      Jo-Philipp Wich authored
      
      
       - Use native rpcd uci changes format instead of incompletely converting
         back and forth between the old and the new format
       - Rework uci changelog template to print the equivalent uci commands
         for the various changes
       - Rework theme headers to properly count the uncomitted changes
       - Rework theme CSS to properly style new changelog
      
      Signed-off-by: default avatarJo-Philipp Wich <jo@mein.io>
      849d1538
  13. Aug 10, 2018
  14. Aug 07, 2018
  15. Aug 05, 2018
  16. Jul 30, 2018
  17. Jul 28, 2018
  18. Jul 27, 2018
    • Krystian Kozak's avatar
      luci-base: update Polish translation · 6dbdc2ca
      Krystian Kozak authored
      
      
      Updated Polish translations.
      
      Signed-off-by: default avatarKrystian Kozak <krystian.kozak20@gmail.com>
      6dbdc2ca
    • Jo-Philipp Wich's avatar
      treewide: rework rollback/apply workflow · e5a1ac02
      Jo-Philipp Wich authored
      
      
      Rework the apply confirmation mechanism to be session agnostic in order to
      circumvent cross domain restrictions which prevent the JS code from issuing
      apply confirm requests in some cases, e.g. when changing the LAN IP.
      
      Confirmation calls may now be done from unauthenticated pages, as long as a
      matching confirmation token is sent along with the request.
      
      The reasoning behind this is that there is little security impact in
      confirming pending apply sessions, especially since those sessions can only
      be initiated while being authenticated.
      
      After this change, LuCI will now launch a confirmation process on every
      rendered page when a rollback is pending. The confirmation will happen
      regardless of whether the user is logged in or not, or if the current page
      is a CBI form or static template.
      
      A confirmation request now also requires a random one-time token which is
      rendered along with the confirmation JavaScript code in order to succeed.
      
      This token is not meant to provide security but to ensure that the confirm
      was triggered from an interactive browser session and not some background
      HTTP requests that happened to end up in the admin ui.
      
      As a consequence, the different apply/confirm/rollback code paths in CBI
      maps and the UCI change/revert pages have been consolidated into one common
      implementation residing in the common global theme agnostic footer template.
      
      Signed-off-by: default avatarJo-Philipp Wich <jo@mein.io>
      e5a1ac02
    • Jo-Philipp Wich's avatar
    • Jo-Philipp Wich's avatar
      luci-base: utils: support multiple return values in util.ubus() · 9ead1e29
      Jo-Philipp Wich authored
      
      
      This is needed to deal with ubus methods that return multiple results,
      e.g. session/list
      
      Signed-off-by: default avatarJo-Philipp Wich <jo@mein.io>
      9ead1e29
  19. Jul 25, 2018
  20. Jul 23, 2018
  21. Jul 22, 2018
  22. Jul 21, 2018
  23. Jul 20, 2018