Commit graph

311 commits

Author SHA1 Message Date
Jo-Philipp Wich
0cb0742818 [PATCH] Allow smarter node creation based on visibility during createtree
As I've brought up on the mailing list thread "High latency caused by full tree creation", there is a large amount of delay per LuCI request which is spent building the node tree in createtree(). Most nodes created aren't 
needed for the view presented to the user and only serve to consume memory and CPU time during a page load.

My idea is to provide an easy mechanism for index()ers to determine which needs to be created and what isn't. Due to the constraints of the standard LuCI web interface, this optimization needs to establish a few rules:

 * The page requested must have its node created
 * All parents of the page being requested must be created, so the children inherit the track
 * All the top-level nodes "Status", "System", "Services", "Network" (and others added by extensions) must be created in order to have their top-level tabs in the UI
 * All peers of second-level nodes need to be created as well for the same reason, to display their links on the subindexes 
                
To make this easy to implement in each controller, the attached patch adds an "inreq" field to each created node to indicate if it lies on the request path. To satisfy the "top level node" requirement, we always 
add the top level node, then check its inreq property if the top-level node is not "in request", then the controller can exit index() early.
2011-08-12 11:05:59 +00:00
Jo-Philipp Wich
b3861e0ec7 [PATCH] Wasted memory use storing path copies in node tree
When creating the node tree, every node stores a copy of its full path table. e.g. for node("admin.network.wireless"), node.path = { "admin", "network", "wireless" }

This value is not used anywhere, and likely may be from before the addition of the treecache lookup table? In any instance, I've searched high and low and see nothing ever referencing any node's path via the path member. It 
eats a good chunk of memory though and as such I believe it should be removed.

I've tested every page in the admin-full module after removing it and all seem to function properly.
2011-08-12 11:04:42 +00:00
Jo-Philipp Wich
2e618aaf29 libs/web: more verbose faults 2011-07-21 01:04:53 +00:00
Jo-Philipp Wich
d970d7bd27 libs/web: make dispatcher faults more verbose 2011-07-20 23:57:32 +00:00
Jo-Philipp Wich
253eafb577 libs/web: fix index cache rebuild triggering (#275) 2011-07-18 14:50:39 +00:00
Jo-Philipp Wich
354aeb44f6 libs/web: add new datatypes min(...), max(...) and neg_network_ip4addr 2011-06-17 10:52:49 +00:00
Jo-Philipp Wich
6e6bac2a4a libs/web: remove license comments from cbi templates, saves around 50% of their size 2011-05-04 12:56:06 +00:00
Jo-Philipp Wich
b95ec6c93a libs/web: fix another invalid entity 2011-05-03 03:31:30 +00:00
Jo-Philipp Wich
6697e282af trunk: s/ / /g 2011-05-03 03:20:15 +00:00
Manuel Munz
bb2d7517eb luci-firewall: Add support for negations for ip addresses/nets (#218) 2011-04-13 00:33:42 +00:00
Jo-Philipp Wich
8ea7eb8615 libs/web: fix "port" datatype to allow port 0 2011-03-17 17:40:40 +00:00
Jo-Philipp Wich
8cab9e2b8f libs/web: explicitely cast input value of %m pattern to float in order to avoid throwing an exception in toFixed() with very low values 2011-03-13 21:56:31 +00:00
Jo-Philipp Wich
a8688343d6 libs/web: add %m pattern to String.format() 2011-03-13 11:12:11 +00:00
Jo-Philipp Wich
1db9f295fa libs/web: repair and modernize FileBrowser widget, patches by Kevin Locke <klocke@digitalenginesoftware.com> (#207) 2011-03-05 06:35:26 +00:00
Manuel Munz
489279bb9a web: Relax hostname validation for length 2011-02-12 19:39:54 +00:00
Manuel Munz
408a58f6f6 web: Improve hostname validation 2011-02-12 11:09:13 +00:00
Jo-Philipp Wich
be5b1015b2 libs/web: improve cbi handling of Flag values, support usage of .default attribute to signalize default-on checkboxes, this helps to deal with the reversed logic of various uci bools within OpenWrt configs 2011-01-29 17:54:00 +00:00
Jo-Philipp Wich
8055a5e183 libs/web: remove a stray non breaking space in DummyValue template 2011-01-26 16:21:15 +00:00
Jo-Philipp Wich
2ae8c99606 libs/web: readd add/remove icons to dynamic list widgets 2011-01-23 18:28:35 +00:00
Jo-Philipp Wich
8193a249f1 libs/web: fix row sorting in IE 2011-01-20 12:35:42 +00:00
Jo-Philipp Wich
df5329a5cb libs/web: fix row ordering for named sections 2011-01-20 00:47:03 +00:00
Jo-Philipp Wich
a30ea6c2a3 libs/web: add missing cells to tblsection template 2011-01-20 00:19:05 +00:00
Jo-Philipp Wich
80e1900b03 libs/web: implement sortable rows for uci reordering 2011-01-20 00:01:55 +00:00
Jo-Philipp Wich
c176c70d5b libs/web: add up & down arrow icons 2011-01-19 23:57:00 +00:00
Jo-Philipp Wich
86a13c6ab9 libs/web: fix an untranslated string 2011-01-14 22:50:50 +00:00
Jo-Philipp Wich
5355d11e2c libs/web: some fixes for network_ifacelist widget 2011-01-14 19:57:30 +00:00
Jo-Philipp Wich
4bbd85fe42 libs/web: properly handle .default property for ListValue fields with integer keys 2011-01-13 20:54:57 +00:00
Jo-Philipp Wich
bd8ac05d56 libs/web: introduce width property for fields in tblsections 2011-01-13 20:02:16 +00:00
Jo-Philipp Wich
f68906c20f libs/web: fix error in wep key validation 2010-12-16 15:59:25 +00:00
Jo-Philipp Wich
39578a6b72 libs/web: change "module" variable to "modname" in dispatcher.lua, solves apidoc artefacts 2010-12-12 20:16:13 +00:00
Jo-Philipp Wich
99bf12fb63 libs/web: add field validation for add section name inputs 2010-12-05 17:37:59 +00:00
Jo-Philipp Wich
6c84824d79 libs/web: handle empty tables in Map.set() 2010-12-05 00:54:18 +00:00
Jo-Philipp Wich
090ce4f17e libs/web: add float and ufloat datatypes for field validation 2010-12-05 00:19:09 +00:00
Jo-Philipp Wich
2a0903bc50 libs/web: fix dynamic list handling 2010-12-03 12:41:12 +00:00
Jo-Philipp Wich
de3ea4e956 libs/web: remove debug code from cbi.js 2010-12-01 20:59:36 +00:00
Jo-Philipp Wich
9abe328f9a libs/web: add %t format to String.format(), fix float formatting 2010-12-01 20:53:29 +00:00
Jo-Philipp Wich
a3207ded53 libs/web: fix filtering of overlong utf8 sequences 2010-11-28 20:25:03 +00:00
Jo-Philipp Wich
34ee162976 libs/web: render aggregated messages 2010-11-27 18:18:06 +00:00
Jo-Philipp Wich
6e97be1e92 libs/web: add the ability for maps to push error messages to the global page header 2010-11-27 18:17:15 +00:00
Jo-Philipp Wich
6d02d50d46 libs/web: fix IPv6 live validation 2010-11-23 23:19:40 +00:00
Jo-Philipp Wich
9c3db58ee4 libs/web: combine apply actions of all maps on a page, prevents concurrent XHR 2010-11-22 00:32:54 +00:00
Jo-Philipp Wich
f72aa0c4c8 libs/web: implement "unspecified" option for netlist widget 2010-11-21 02:27:13 +00:00
Jo-Philipp Wich
7892bcec29 libs/web: add network_netinfo widget 2010-11-21 00:46:14 +00:00
Jo-Philipp Wich
6b3e6fb854 libs/web: add "back to overview" button to page actions if .redirect is set on the corresponding map 2010-11-21 00:21:49 +00:00
Jo-Philipp Wich
25754119d4 libs/web: expose cbi map redirect property to page templates 2010-11-21 00:14:03 +00:00
Jo-Philipp Wich
be385bfcc6 libs/web: better server side handling of DynList values 2010-11-20 18:35:44 +00:00
Jo-Philipp Wich
d79895c0c3 libs/web: fix DynList template for empty values 2010-11-20 18:24:17 +00:00
Jo-Philipp Wich
ff58e81d18 libs/web: skip empty values in DynList widget 2010-11-20 18:08:18 +00:00
Jo-Philipp Wich
7a7874d14e libs/web: give cbi tabcontainers a CSS class 2010-11-19 17:35:06 +00:00
Jo-Philipp Wich
8dde0803af libs/web: fix apply xhr for IE... 2010-11-18 03:07:21 +00:00