Jo-Philipp Wich [Sun, 13 Apr 2014 20:50:00 +0000 (22:50 +0200)]
luci2: support placeholder attribute for L.cbi.DummyValue widgets
Jo-Philipp Wich [Sun, 13 Apr 2014 20:48:41 +0000 (22:48 +0200)]
luci2: support custom section ordering in L.cbi.TypedSection and L.cbi.TableSection
Jo-Philipp Wich [Sun, 13 Apr 2014 20:46:05 +0000 (22:46 +0200)]
luci2: support object comparisations in L.cbi.AbstractValue.changed()
Jo-Philipp Wich [Sun, 13 Apr 2014 20:44:05 +0000 (22:44 +0200)]
luci2: rework datatype validators to use new global parseIPv4(), parseIPv6() and isNetmask() helpers
Jo-Philipp Wich [Sun, 13 Apr 2014 20:42:10 +0000 (22:42 +0200)]
luci2: add L.NetworkModel.Interface.renderBadge() and use it in L.cbi.NetworkList widget
Jo-Philipp Wich [Sun, 13 Apr 2014 20:36:16 +0000 (22:36 +0200)]
luci2: add get_first(), set_first() and unset_first() helper to L.UCIContext
Jo-Philipp Wich [Sun, 13 Apr 2014 20:34:38 +0000 (22:34 +0200)]
luci2: add L.toColor(), L.parseIPv4(), L.parseIPv6() and L.isNetmask() helper
Jo-Philipp Wich [Sun, 13 Apr 2014 20:20:51 +0000 (22:20 +0200)]
luci2: revert uci changes when closing cbi.Model dialog
Jo-Philipp Wich [Sun, 13 Apr 2014 20:19:50 +0000 (22:19 +0200)]
luci2: fix save functionality on Map() objects after
1df7615
Jo-Philipp Wich [Sun, 13 Apr 2014 20:14:27 +0000 (22:14 +0200)]
luci2: always load 'none' protocol explicitely since it serves as fallback for unknown protos
Jo-Philipp Wich [Thu, 6 Feb 2014 21:13:44 +0000 (21:13 +0000)]
luci2: generalize LuCI2.cbi event handling, rework handling of created sections in LuCI2.UCIContext
Jo-Philipp Wich [Sun, 2 Feb 2014 20:04:04 +0000 (20:04 +0000)]
luci2: add menu constraints
Jo-Philipp Wich [Sun, 2 Feb 2014 18:51:16 +0000 (18:51 +0000)]
rpcd: support "files" attribute in menu json files to make menu entries depend on the existance of a specific file
Jo-Philipp Wich [Sat, 1 Feb 2014 18:35:42 +0000 (18:35 +0000)]
luci2: add network protocol support extensions
Jo-Philipp Wich [Sat, 1 Feb 2014 18:32:38 +0000 (18:32 +0000)]
luci2: rename internal '_luci2' instance reference to 'L' in order to align the code style with views
Jo-Philipp Wich [Sat, 1 Feb 2014 18:29:03 +0000 (18:29 +0000)]
luci2: move most RPC proxy function declarations into the views using them to reduce the size of the core luci2.js library
Jo-Philipp Wich [Sat, 1 Feb 2014 18:25:50 +0000 (18:25 +0000)]
luci2: Initial network interface configuration view
Jo-Philipp Wich [Sat, 1 Feb 2014 18:13:05 +0000 (18:13 +0000)]
luci2: update CSS
Jo-Philipp Wich [Sat, 1 Feb 2014 18:08:36 +0000 (18:08 +0000)]
luci2: Hide empty tabs when rendering cbi maps
Jo-Philipp Wich [Sat, 1 Feb 2014 18:07:47 +0000 (18:07 +0000)]
luci2: Implement LuCI2.cbi.DeviceList widget
Jo-Philipp Wich [Sat, 1 Feb 2014 18:06:57 +0000 (18:06 +0000)]
luci2: Do not produce uneeded anonymous arrays in LuCI2.cbi.TypedSection.sections()
Jo-Philipp Wich [Sat, 1 Feb 2014 18:05:20 +0000 (18:05 +0000)]
luci2: Fix LuCI2.cbi.AbstractValue.formvalue() for deeply nested widget markup
Jo-Philipp Wich [Sat, 1 Feb 2014 18:03:55 +0000 (18:03 +0000)]
luci2: Add missing CSS classes to LuCI2.cbi.ComboBox widget, fix attaching of event handlers
Jo-Philipp Wich [Sat, 1 Feb 2014 18:01:49 +0000 (18:01 +0000)]
luci2: Properly handle empty values in ListValue widgets
Jo-Philipp Wich [Sat, 1 Feb 2014 17:59:06 +0000 (17:59 +0000)]
luci2: Introduce 'add' option to LuCI2.cbi.AbstractValue.depends() to support incrementally adding dependencies
Jo-Philipp Wich [Fri, 31 Jan 2014 22:11:22 +0000 (22:11 +0000)]
luci2: add LuCI2.cbi.AbstractValue.on() for attaching events to widgets, various form validation fixes
Jo-Philipp Wich [Fri, 31 Jan 2014 22:06:50 +0000 (22:06 +0000)]
luci2: implement LuCI2.cbi.Modal widget
Jo-Philipp Wich [Fri, 31 Jan 2014 22:03:21 +0000 (22:03 +0000)]
luci2: add primitive initial support for applying uci changes
Jo-Philipp Wich [Fri, 31 Jan 2014 22:00:39 +0000 (22:00 +0000)]
luci2: append markup for uci change indicator when rendering main menu
Jo-Philipp Wich [Fri, 31 Jan 2014 21:58:08 +0000 (21:58 +0000)]
luci2: expose loaded views in LuCI2.view[]
Jo-Philipp Wich [Fri, 31 Jan 2014 21:54:14 +0000 (21:54 +0000)]
luci2: update ACL cache and initialize NetworkModel in LuCI2.ui.init(), bind view changes to 'hashchange' event to support browser back and forward buttons
Jo-Philipp Wich [Fri, 31 Jan 2014 21:49:54 +0000 (21:49 +0000)]
luci2: implement LuCI2.cbi.SingleSection widget
Jo-Philipp Wich [Fri, 31 Jan 2014 21:47:59 +0000 (21:47 +0000)]
luci2: expose uci reorder deltas in uci changelog view
Jo-Philipp Wich [Fri, 31 Jan 2014 21:46:46 +0000 (21:46 +0000)]
luci2: change LuCI2.cbi.NetworkList to use LuCI2.NetworkModel class
Jo-Philipp Wich [Fri, 31 Jan 2014 21:44:49 +0000 (21:44 +0000)]
luci2: implement LuCI2.cbi.ButtonValue widget
Jo-Philipp Wich [Fri, 31 Jan 2014 21:41:24 +0000 (21:41 +0000)]
luci2: ensure that loading indicator appears above modal dialogs
Jo-Philipp Wich [Fri, 31 Jan 2014 21:38:42 +0000 (21:38 +0000)]
luci2: fix typo in LuCI2.firewall.getZoneColor()
Jo-Philipp Wich [Fri, 31 Jan 2014 21:37:22 +0000 (21:37 +0000)]
luci2: change LuCI2.ui.dialog() to return the resulting element tree, implement wide option
Jo-Philipp Wich [Fri, 31 Jan 2014 21:33:04 +0000 (21:33 +0000)]
luci2: implement LuCI2.NetworkModel, LuCI2.NetworkModel.Interface, LuCI2.NetworkModel.Device and LuCI2.NetworkModel.Protocol classes
Jo-Philipp Wich [Fri, 31 Jan 2014 21:26:51 +0000 (21:26 +0000)]
luci2: drop LuCI2.uci end replace it with LuCI2.UCIContext instance, switch LuCI2.cbi.Map to LuCI2.UCIContext
Jo-Philipp Wich [Fri, 31 Jan 2014 21:30:08 +0000 (21:30 +0000)]
luci2: implement LuCI2.session.updateACLs() and LuCI2.session.hasACL()
Jo-Philipp Wich [Fri, 31 Jan 2014 21:14:30 +0000 (21:14 +0000)]
luci2: add LuCI2.UCIContext class, this proxies the remote uci state within the ui
Jo-Philipp Wich [Fri, 31 Jan 2014 21:05:12 +0000 (21:05 +0000)]
luci2: properly handle failed ubus calls in LuCI2.rpc to ensure that chained then() callbacks are invoked with the expected default values
Jo-Philipp Wich [Fri, 31 Jan 2014 21:00:53 +0000 (21:00 +0000)]
luci2: add utility functions
Jo-Philipp Wich [Fri, 31 Jan 2014 20:59:43 +0000 (20:59 +0000)]
luci2: properly handle empty hash info, fixes endless loop with expired sids
Jo-Philipp Wich [Mon, 25 Nov 2013 01:12:37 +0000 (01:12 +0000)]
rpcd: add bwmon plugin for fetching interface traffic statistics
Jo-Philipp Wich [Fri, 22 Nov 2013 16:10:05 +0000 (16:10 +0000)]
rpcd: expose interface up state in luci2.network.device_list
Jo-Philipp Wich [Tue, 12 Nov 2013 22:45:31 +0000 (22:45 +0000)]
rpcd: implement luci2.network.device_list to find names and types of all currently present network ifaces
Jo-Philipp Wich [Mon, 4 Nov 2013 23:52:13 +0000 (23:52 +0000)]
io: return JSON responses with text/plain mimetype for IE 8 / IE 9 compatibility
Jo-Philipp Wich [Mon, 4 Nov 2013 21:59:28 +0000 (21:59 +0000)]
luci2: fix various cross browser issues
- add respond.js to fix page rendering in IE 8
- fix datatype validation compiler in IE 8
- fix RPC response type checking in IE 8
- show/hide badges and labels since IE 8 does not support :empty CSS selector
- fix wrong classes for radio and checkbox items, leading to broken rendering in Chrome
- stop using deprecated arguments.callee
Jo-Philipp Wich [Mon, 4 Nov 2013 17:53:36 +0000 (17:53 +0000)]
luci2: remove dead view code
Jo-Philipp Wich [Mon, 4 Nov 2013 17:43:28 +0000 (17:43 +0000)]
luci2: convert system.cron view markup to bootstrap
Jo-Philipp Wich [Mon, 4 Nov 2013 17:42:35 +0000 (17:42 +0000)]
luci2: cleanup system.upgrade view markup, remove leftover call to jquery-ui tabs()
Jo-Philipp Wich [Mon, 4 Nov 2013 16:41:20 +0000 (16:41 +0000)]
luci2: fix rendering of LuCI2.cbi.MultiValue
Jo-Philipp Wich [Mon, 4 Nov 2013 15:17:15 +0000 (15:17 +0000)]
luci2: adapt views to changed luci2 framework
Jo-Philipp Wich [Mon, 4 Nov 2013 15:09:10 +0000 (15:09 +0000)]
luci2: switch to twitter bootstrap framework
- drop jquery-ui and old bootstrap resources
- rewrite luci2.js cbi rendering
- break down various deeply nested anonymous functions to reduce memory footprint
- add jquery.peity plugin for charting
Jo-Philipp Wich [Tue, 22 Oct 2013 19:06:22 +0000 (19:06 +0000)]
luci2: don't re-set timeout if view is finished already, re-set timeout even if the requested action failed
Jo-Philipp Wich [Tue, 22 Oct 2013 19:04:54 +0000 (19:04 +0000)]
luci2: add AbstractWidget.appendTo() to support appending widgets to a container
Jo-Philipp Wich [Tue, 22 Oct 2013 19:03:26 +0000 (19:03 +0000)]
luci2: support passing additional arguments to LuCI2.ui.renderView(), LuCI2.ui.view.render()
Jo-Philipp Wich [Tue, 22 Oct 2013 19:00:23 +0000 (19:00 +0000)]
luci2: add intial LuCI2.firewall abstraction class
Jo-Philipp Wich [Tue, 22 Oct 2013 18:59:07 +0000 (18:59 +0000)]
luci2: wrap luci2.network.ifup and luci2.network.ifdown calls as LuCI2.network.setUp() and LuCI2.network.setDown()
Jo-Philipp Wich [Tue, 22 Oct 2013 18:34:32 +0000 (18:34 +0000)]
rpcd: add luci2.network.ifup and luci2.network.ifdown calls
Jo-Philipp Wich [Tue, 15 Oct 2013 16:43:43 +0000 (16:43 +0000)]
luci2: use custom jQuery UI build with all uneeded functionality trimmed, saves 320K uncompressed
Jo-Philipp Wich [Mon, 14 Oct 2013 21:57:11 +0000 (21:57 +0000)]
luci2: remove dead code from LuCI2.cbi.Map()
Jo-Philipp Wich [Mon, 14 Oct 2013 21:55:39 +0000 (21:55 +0000)]
luci2: rework system administration view with fancier ssh pubkey handling
Jo-Philipp Wich [Sun, 13 Oct 2013 22:40:24 +0000 (22:40 +0000)]
luci2: fix interface type detection in LuCI2.ui.devicebadge()
Jo-Philipp Wich [Sun, 13 Oct 2013 22:39:42 +0000 (22:39 +0000)]
luci2: fix missing error message in ip6addr datatype validation
Jo-Philipp Wich [Sun, 13 Oct 2013 22:38:59 +0000 (22:38 +0000)]
luci2: add network routes view
Jo-Philipp Wich [Sun, 13 Oct 2013 22:36:23 +0000 (22:36 +0000)]
luci2: rename switch acl group to network as it is going to be shared with other views
Jo-Philipp Wich [Sat, 12 Oct 2013 21:02:07 +0000 (21:02 +0000)]
luci2: remove stuff left over from copy & pasting system.leds.js
Jo-Philipp Wich [Sat, 12 Oct 2013 20:47:06 +0000 (20:47 +0000)]
luci2: add network hostname view
Jo-Philipp Wich [Sat, 12 Oct 2013 20:25:45 +0000 (20:25 +0000)]
luci2: add network diagnostics view
Jo-Philipp Wich [Sat, 12 Oct 2013 20:23:30 +0000 (20:23 +0000)]
luci2: add LuCI2.network.runPing(), LuCI2.network.runPing6(), LuCI2.network.runTraceroute(), LuCI2.network.runTraceroute6() and LuCI2.network.runNslookup() rpc wrappers
Jo-Philipp Wich [Sat, 12 Oct 2013 20:21:57 +0000 (20:21 +0000)]
luci2: increase default rpc timeout to 15 seconds
Jo-Philipp Wich [Fri, 11 Oct 2013 14:57:04 +0000 (14:57 +0000)]
luci2: add port status to switch configuration view
Jo-Philipp Wich [Fri, 11 Oct 2013 12:23:42 +0000 (12:23 +0000)]
rpcd: add luci2.network.ping, luci2.network.ping6, luci2.network.tracroute, luci2.network.tracroute6, luci2.network.nslookup calls
Jo-Philipp Wich [Wed, 9 Oct 2013 22:37:56 +0000 (22:37 +0000)]
luci2: add LuCI2.ui.view.repeat() to allow implementing periodic tasks
Jo-Philipp Wich [Wed, 9 Oct 2013 20:01:27 +0000 (20:01 +0000)]
luci2: use custom object merge in LuCI2.ui.menu.firstChildView() to avoid overwriting the original title
Jo-Philipp Wich [Wed, 9 Oct 2013 18:59:58 +0000 (18:59 +0000)]
luci2: logic fix for initial state of CheckBoxValue widgets
Jo-Philipp Wich [Wed, 9 Oct 2013 18:59:34 +0000 (18:59 +0000)]
luci2: small formatting fix in uci changelog view
Jo-Philipp Wich [Wed, 9 Oct 2013 18:58:24 +0000 (18:58 +0000)]
luci2: add initial switch configuration view
Jo-Philipp Wich [Wed, 9 Oct 2013 12:35:12 +0000 (12:35 +0000)]
rpcd: list actual names in luci2.network.switch_list
Jo-Philipp Wich [Tue, 8 Oct 2013 13:56:43 +0000 (13:56 +0000)]
rpcd: add luci2.network.switch_list, luci2.network.switch_info, luci2.network.switch_status calls
Jo-Philipp Wich [Sat, 5 Oct 2013 20:18:59 +0000 (20:18 +0000)]
luci2: remove newline from generated view constructor code to make debugger line numbers match the line numbers in the actual source files
Jo-Philipp Wich [Sat, 5 Oct 2013 20:13:17 +0000 (20:13 +0000)]
luci2: various network function fixes
* fix empty device descriptions for alias interfaces in LuCI2.network.getNetworkStatus()
* fix crash with inactive interfaces in LuCI2.network.findWanInterfaces()
* fix LuCI2.network.getDeviceStatus() function name after only greedy search and replace
Jo-Philipp Wich [Thu, 3 Oct 2013 13:59:20 +0000 (13:59 +0000)]
luci2: implement uci changelog view, display pending changes in upper right corner
Jo-Philipp Wich [Wed, 2 Oct 2013 17:11:17 +0000 (17:11 +0000)]
luci2: add acl group definition and menu entry for backup / restore / flash view
Jo-Philipp Wich [Wed, 2 Oct 2013 17:09:58 +0000 (17:09 +0000)]
luci2: implement initial backup / restore / flash view. Actual firmware flashing and resetting is stubbed yet
Jo-Philipp Wich [Wed, 2 Oct 2013 17:08:26 +0000 (17:08 +0000)]
luci2: add missing template for system/users view
Jo-Philipp Wich [Wed, 2 Oct 2013 16:05:35 +0000 (16:05 +0000)]
luci2: fix package install / removal on button click in system/software view
Jo-Philipp Wich [Wed, 2 Oct 2013 15:32:34 +0000 (15:32 +0000)]
luci2: rewrite LuCI2.ui.loading(), LuCI2.ui.dialog(), LuCI2.ui.login() and LuCI2.ui.upload() to use private state objects
Jo-Philipp Wich [Wed, 2 Oct 2013 14:11:30 +0000 (14:11 +0000)]
io: use "ubus_rpc_session" attribute when querying luci-io session acls
Jo-Philipp Wich [Tue, 1 Oct 2013 16:34:04 +0000 (16:34 +0000)]
luci2: render hostname when initializing the ui
Jo-Philipp Wich [Tue, 1 Oct 2013 16:21:42 +0000 (16:21 +0000)]
luci2: fix CBI crash when deleting last remaining uci section in login management view
Jo-Philipp Wich [Tue, 1 Oct 2013 16:20:52 +0000 (16:20 +0000)]
luci2: keep scroll position when redrawing CBI forms, fix crash when deleting last uci section of a TypedSection group
Jo-Philipp Wich [Mon, 30 Sep 2013 16:51:43 +0000 (16:51 +0000)]
luci2: make login view readonly if acls are missing
Jo-Philipp Wich [Mon, 30 Sep 2013 16:48:04 +0000 (16:48 +0000)]
luci2: fix little typo in login manager
Jo-Philipp Wich [Mon, 30 Sep 2013 16:41:50 +0000 (16:41 +0000)]
luci2: add view for managing LuCI2 login accounts
Jo-Philipp Wich [Mon, 30 Sep 2013 12:28:02 +0000 (12:28 +0000)]
luci2: Switch LuCI2.ui.renderView() from new Function() to eval() and use "//@ sourceUrl" annotation to make demand-loaded views debuggable
Jo-Philipp Wich [Wed, 18 Sep 2013 11:22:06 +0000 (13:22 +0200)]
luci2: make LuCI2.cbi.AbstractSection and LuCI2.cbi.AbstractValue public