modules/admin-full: rework changes/apply/revert pages
[project/luci.git] / modules / admin-full / luasrc / view / admin_uci / changelog.htm
diff --git a/modules/admin-full/luasrc/view/admin_uci/changelog.htm b/modules/admin-full/luasrc/view/admin_uci/changelog.htm
new file mode 100644 (file)
index 0000000..13bbdff
--- /dev/null
@@ -0,0 +1,67 @@
+<%#
+LuCI - Lua Configuration Interface
+Copyright 2010 Jo-Philipp Wich <xm@subsignal.org>
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+$Id$
+
+-%>
+
+<% export("uci_changelog", function(changes) -%>
+<fieldset class="cbi-section">
+       <strong><%:Legend:%></strong>
+       <div class="uci-change-legend">
+               <div class="uci-change-legend-label"><ins>&nbsp;</ins> <%:Section added%></div>
+               <div class="uci-change-legend-label"><del>&nbsp;</del> <%:Section removed%></div>
+               <div class="uci-change-legend-label"><var><ins>&nbsp;</ins></var> <%:Option changed%></div>
+               <div class="uci-change-legend-label"><var><del>&nbsp;</del></var> <%:Option removed%></div>
+               <br style="clear:both" />
+       </div>
+       <br />
+
+       <div class="uci-change-list"><%
+               local util = luci.util
+               local ret  = { }
+
+               for r, tbl in pairs(changes) do
+                       for s, os in pairs(tbl) do
+                               -- section add
+                               if os['.type'] and os['.type'] ~= "" then
+                                       ret[#ret+1] = "<ins>%s.%s=<strong>%s</strong>" %{ r, s, os['.type'] }
+                                       for o, v in util.kspairs(os) do
+                                               if o:sub(1,1) ~= "." then
+                                                       ret[#ret+1] = "<br />%s.%s.%s=<strong>%s</strong>" %{ r, s, o, util.pcdata(v) }
+                                               end
+                                       end
+                                       ret[#ret+1] = "</ins><br />"
+
+                               -- section delete
+                               elseif os['.type'] and os['.type'] == "" then
+                                       ret[#ret+1] = "<del>%s.<strong>%s</strong></del><br />" %{ r, s }
+
+                               -- modifications
+                               else
+                                       ret[#ret+1] = "<var>%s.%s<br />" %{ r, s }
+                                       for o, v in util.kspairs(os) do
+                                               if o:sub(1,1) ~= "." then
+                                                       if v and v ~= "" then
+                                                               ret[#ret+1] = "<ins>%s.%s.%s=<strong>%s</strong><br /></ins>" %{ r, s, o, util.pcdata(v) }
+                                                       else
+                                                               ret[#ret+1] = "<del>%s.%s.<strong>%s</strong><br /></del>" %{ r, s, o }
+                                                       end
+                                               end
+                                       end
+                                       ret[#ret+1] = "</var><br />"
+                               end
+                       end
+               end
+
+               write(table.concat(ret))
+       %></div>
+</fieldset>
+<%- end) %>