Rework LuCI build system
[project/luci.git] / modules / luci-mod-admin-full / luasrc / view / admin_uci / changelog.htm
diff --git a/modules/luci-mod-admin-full/luasrc/view/admin_uci/changelog.htm b/modules/luci-mod-admin-full/luasrc/view/admin_uci/changelog.htm
new file mode 100644 (file)
index 0000000..e195bef
--- /dev/null
@@ -0,0 +1,88 @@
+<%#
+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>&#160;</ins> <%:Section added%></div>
+               <div class="uci-change-legend-label"><del>&#160;</del> <%:Section removed%></div>
+               <div class="uci-change-legend-label"><var><ins>&#160;</ins></var> <%:Option changed%></div>
+               <div class="uci-change-legend-label"><var><del>&#160;</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
+                                                       if type(v) == "table" then
+                                                               local i
+                                                               for i = 1, #v do
+                                                                       ret[#ret+1] = "<br />%s.%s.%s+=<strong>%s</strong>"
+                                                                               %{ r, s, o, util.pcdata(v[i]) }
+                                                               end
+                                                       else
+                                                               ret[#ret+1] = "<br />%s.%s.%s=<strong>%s</strong>"
+                                                                       %{ r, s, o, util.pcdata(v) }
+                                                       end
+                                               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 > 0 then
+                                                               ret[#ret+1] = "<ins>"
+                                                               if type(v) == "table" then
+                                                                       local i
+                                                                       for i = 1, #v do
+                                                                               ret[#ret+1] = "%s.%s.%s+=<strong>%s</strong><br />"
+                                                                                       %{ r, s, o, util.pcdata(v[i]) }
+                                                                       end
+                                                                       
+                                                               else
+                                                                       ret[#ret+1] = "%s.%s.%s=<strong>%s</strong><br />"
+                                                                               %{ r, s, o, util.pcdata(v) }
+                                                               end
+                                                               ret[#ret+1] = "</ins>"
+                                                       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) %>