8648f7c81e5f17147885c19b43415651bc811060
[project/luci.git] / modules / luci-mod-admin-full / luasrc / view / admin_uci / changelog.htm
1 <%#
2  Copyright 2010 Jo-Philipp Wich <xm@subsignal.org>
3  Licensed to the public under the Apache License 2.0.
4 -%>
5
6 <% export("uci_changelog", function(changes) -%>
7 <fieldset class="cbi-section">
8         <strong><%:Legend:%></strong>
9         <div class="uci-change-legend">
10                 <div class="uci-change-legend-label"><ins>&#160;</ins> <%:Section added%></div>
11                 <div class="uci-change-legend-label"><del>&#160;</del> <%:Section removed%></div>
12                 <div class="uci-change-legend-label"><var><ins>&#160;</ins></var> <%:Option changed%></div>
13                 <div class="uci-change-legend-label"><var><del>&#160;</del></var> <%:Option removed%></div>
14                 <br style="clear:both" />
15         </div>
16         <br />
17
18         <div class="uci-change-list"><%
19                 local util = luci.util
20                 local ret  = { }
21
22                 for r, tbl in pairs(changes) do
23                         for s, os in pairs(tbl) do
24                                 -- section add
25                                 if os['.type'] and os['.type'] ~= "" then
26                                         ret[#ret+1] = "<ins>%s.%s=<strong>%s</strong>" %{ r, s, os['.type'] }
27                                         for o, v in util.kspairs(os) do
28                                                 if o:sub(1,1) ~= "." then
29                                                         if type(v) == "table" then
30                                                                 local i
31                                                                 for i = 1, #v do
32                                                                         ret[#ret+1] = "<br />%s.%s.%s+=<strong>%s</strong>"
33                                                                                 %{ r, s, o, util.pcdata(v[i]) }
34                                                                 end
35                                                         else
36                                                                 ret[#ret+1] = "<br />%s.%s.%s=<strong>%s</strong>"
37                                                                         %{ r, s, o, util.pcdata(v) }
38                                                         end
39                                                 end
40                                         end
41                                         ret[#ret+1] = "</ins><br />"
42
43                                 -- section delete
44                                 elseif os['.type'] and os['.type'] == "" then
45                                         ret[#ret+1] = "<del>%s.<strong>%s</strong></del><br />" %{ r, s }
46
47                                 -- modifications
48                                 else
49                                         ret[#ret+1] = "<var>%s.%s<br />" %{ r, s }
50                                         for o, v in util.kspairs(os) do
51                                                 if o:sub(1,1) ~= "." then
52                                                         if v and #v > 0 then
53                                                                 ret[#ret+1] = "<ins>"
54                                                                 if type(v) == "table" then
55                                                                         local i
56                                                                         for i = 1, #v do
57                                                                                 ret[#ret+1] = "%s.%s.%s+=<strong>%s</strong><br />"
58                                                                                         %{ r, s, o, util.pcdata(v[i]) }
59                                                                         end
60                                                                         
61                                                                 else
62                                                                         ret[#ret+1] = "%s.%s.%s=<strong>%s</strong><br />"
63                                                                                 %{ r, s, o, util.pcdata(v) }
64                                                                 end
65                                                                 ret[#ret+1] = "</ins>"
66                                                         else
67                                                                 ret[#ret+1] = "<del>%s.%s.<strong>%s</strong><br /></del>" %{ r, s, o }
68                                                         end
69                                                 end
70                                         end
71                                         ret[#ret+1] = "</var><br />"
72                                 end
73                         end
74                 end
75
76                 write(table.concat(ret))
77         %></div>
78 </fieldset>
79 <%- end) %>