luci-app-statistics: add support for sorting RRD data sources
authorJo-Philipp Wich <jow@openwrt.org>
Mon, 5 Oct 2015 17:11:13 +0000 (19:11 +0200)
committerHannu Nyman <hannu.nyman@iki.fi>
Sat, 24 Oct 2015 10:36:54 +0000 (13:36 +0300)
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
(cherry picked from commit c8c4a343c2e7ab2f7af00531d0c2fd30c33e51b4)

applications/luci-app-statistics/luasrc/statistics/rrdtool.lua

index d8317a8177f69c041c02e3a1de40c1d98d0123dc..5d4ad9859d0a1e39691fc80935f34a5b86df55e3 100644 (file)
@@ -397,6 +397,7 @@ function Graph._generic( self, opts, plugin, plugin_instance, dtype, index )
                                        transform_rpn = dopts.transform_rpn or "0,+",
                                        noarea   = dopts.noarea  or false,
                                        title    = dopts.title   or nil,
+                                       weight   = dopts.weight  or nil,
                                        ds       = dsource,
                                        type     = dtype,
                                        instance = dinst,
@@ -469,6 +470,12 @@ function Graph._generic( self, opts, plugin, plugin_instance, dtype, index )
                        for i, o in ipairs(opts.rrdopts) do _ti( _args, o ) end
                end
 
+               -- sort sources
+               table.sort(_sources, function(a, b)
+                       local x = a.weight or a.index or 0
+                       local y = b.weight or b.index or 0
+                       return x < y
+               end)
 
                -- create DEF statements for each instance
                for i, source in ipairs(_sources) do