Rebased from upstream / out of band repository.
[librecmc/librecmc.git] / package / luci / modules / luci-base / luasrc / view / admin_uci / changelog.htm
1 <%#
2  Copyright 2010 Jo-Philipp Wich <jo@mein.io>
3  Licensed to the public under the Apache License 2.0.
4 -%>
5
6 <% export("uci_changelog", function(changes) -%>
7 <div 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 tpl = {
21                         ["add-3"] = "<ins>uci add %0 <strong>%3</strong> # =%2</ins>",
22                         ["set-3"] = "<ins>uci set %0.<strong>%2</strong>=%3</ins>",
23                         ["set-4"] = "<var><ins>uci set %0.%2.%3=<strong>%4</strong></ins></var>",
24                         ["remove-2"] = "<del>uci del %0.<strong>%2</strong></del>",
25                         ["remove-3"] = "<var><del>uci del %0.%2.<strong>%3</strong></del></var>",
26                         ["order-3"] = "<var>uci reorder %0.%2=<strong>%3</strong></var>",
27                         ["list-add-4"] = "<var><ins>uci add_list %0.%2.%3=<strong>%4</strong></ins></var>",
28                         ["list-del-4"] = "<var><del>uci del_list %0.%2.%3=<strong>%4</strong></del></var>",
29                         ["rename-3"] = "<var>uci rename %0.%2=<strong>%3</strong></var>",
30                         ["rename-4"] = "<var>uci rename %0.%2.%3=<strong>%4</strong></var>"
31                 }
32
33                 local conf, deltas
34                 for conf, deltas in util.kspairs(changes) do
35                         write("<h3># /etc/config/%s</h3>" % conf)
36
37                         local _, delta, added
38                         for _, delta in pairs(deltas) do
39                                 local t = tpl["%s-%d" %{ delta[1], #delta }]
40
41                                 write(t:gsub("%%(%d)", function(n)
42                                         if n == "0" then
43                                                 return conf
44                                         elseif n == "2" then
45                                                 if added and delta[2] == added[1] then
46                                                         return "@%s[-1]" % added[2]
47                                                 else
48                                                         return delta[2]
49                                                 end
50                                         elseif n == "4" then
51                                                 return util.shellquote(delta[4])
52                                         else
53                                                 return delta[tonumber(n)]
54                                         end
55                                 end))
56
57                                 if delta[1] == "add" then
58                                         added = { delta[2], delta[3] }
59                                 end
60                         end
61
62                         write("<br />")
63                 end
64         %></div>
65 </div>
66 <%- end) %>