modules/admin-full: improve opkg error reporting
[project/luci.git] / modules / admin-full / luasrc / view / admin_system / packages.htm
index d28b60c..b52529e 100644 (file)
@@ -13,31 +13,44 @@ $Id$
 
 -%>
 <%-
+local bit = require "bit"
 local rowcnt = 1
+
 function rowstyle()
        rowcnt = rowcnt + 1
        return (rowcnt % 2) + 1
 end
+
+function opkg_error(code)
+       code = bit.rshift(tonumber(code), 8)
+       return translate(
+               'a_s_packages_code%i' % code,
+               translate(
+                       'a_s_packages_code%i' % code,
+                       '%s %i' % { translate('code'), code }
+               )
+       )
+end
 -%>
 <%+header%>
-<h1><%:system%></h1>
-<h2><%:a_s_packages%></h2>
+<h2><a id="content" name="content"><%:system%></a></h2>
+<h3><%:a_s_packages%></h3>
 
 <br />
 
 <% if install or remove or update or upgrade then %>
 <div class="code"><strong><%:status%>:</strong><br />
 <% if update then %>
-       <%:a_s_packages_update%>: <% if update == 0 then %><span class="ok"><%:ok%></span><% else %><span class="error"><%:error%> (<%:code%> <%=update%>)</span><% end %><br />
+       <%:a_s_packages_update%>: <% if update == 0 then %><span class="ok"><%:ok%></span><% else %><span class="error"><%:error%> (<%=opkg_error(update)%>)</span><% end %><br />
 <% end %>
 <% if upgrade then%>
-       <%:a_s_packages_upgrade%>: <% if upgrade == 0 then %><span class="ok"><%:ok%></span><% else %><span class="error"><%:error%> (<%:code%> <%=upgrade%>)</span><% end %><br />
+       <%:a_s_packages_upgrade%>: <% if upgrade == 0 then %><span class="ok"><%:ok%></span><% else %><span class="error"><%:error%> (<%=opkg_error(upgrade)%>)</span><% end %><br />
 <% end %>
 <% if install then for k,v in pairs(install) do %>
-       <%:a_s_packages_install%> '<%=k%>': <% if v == 0 then %><span class="ok"><%:ok%></span><% else %><span class="error"><%:error%> (<%:code%> <%=v%>)</span><% end %><br />
+       <%:a_s_packages_install%> '<%=k%>': <% if v == 0 then %><span class="ok"><%:ok%></span><% else %><span class="error"><%:error%> (<%=opkg_error(v)%>)</span><% end %><br />
 <% end end %>
 <% if remove then for k,v in pairs(remove) do %>
-       <%:a_s_packages_remove%> '<%=k%>': <% if v == 0 then %><span class="ok"><%:ok%></span><% else %><span class="error"><%:error%> (<%:code%> <%=v%>)</span><% end %><br />
+       <%:a_s_packages_remove%> '<%=k%>': <% if v == 0 then %><span class="ok"><%:ok%></span><% else %><span class="error"><%:error%> (<%=opkg_error(v)%>)</span><% end %><br />
 <% end end %>
 </div>
 <br />
@@ -49,7 +62,6 @@ end
                        <ul>
                                <li><a href="<%=REQUEST_URI%>/ipkg"><%:a_s_packages_ipkg%></a></li>
                                <li><a href="<%=REQUEST_URI%>?update=1"><%:a_s_packages_updatelist%></a></li>
-                               <li><a href="<%=REQUEST_URI%>?upgrade=1"><%:a_s_packages_upgrade%></a></li>
                        </ul>
                        <br />
                        <fieldset class="cbi-section-node">
@@ -60,7 +72,7 @@ end
                                        <input class="cbi-input-save" type="submit" name="submit" value="<%:ok%>" />
                                </div>
                        </div>
-               
+
                        <div class="cbi-value">
                                <label class="cbi-value-title"><%:filter%>:</label>
                                <div class="cbi-value-field">
@@ -68,7 +80,7 @@ end
                                        <input type="submit" class="cbi-input-find" name="search" value="<%:a_s_packages_search%>" />
                                </div>
                        </div>
-                       
+
                        <table class="cbi-section-table">
                                <tr class="cbi-section-table-titles">
                                        <th class="cbi-section-table-cell"><%:a_s_packages_name%></th>
@@ -77,23 +89,23 @@ end
                                        <th class="cbi-section-table-cell"><%:delete%></th>
                                        <th class="cbi-section-table-cell"><%:descr%></th>
                                </tr>
-                               <% for k, pkg in pairs(pkgs) do %>      
+                               <% for k, pkg in pairs(pkgs) do %>
                                <tr class="cbi-section-table-row cbi-rowstyle-<%=rowstyle()%>">
-                                       <td><%=pkg.Package%></td>
-                                       <td><%=pkg.Version%></td>
+                                       <td><%=luci.util.pcdata(pkg.Package)%></td>
+                                       <td><%=luci.util.pcdata(pkg.Version)%></td>
                                        <td><% if not pkg.Status or not pkg.Status.installed then %><input type="checkbox" name="install.<%=pkg.Package%>" value="1" /><% else %><%:installed%><% end %></td>
                                        <td><% if pkg.Status and pkg.Status.installed then %><input type="checkbox" name="remove.<%=pkg.Package%>" value="1" /><% else %><%:notinstalled%><% end %></td>
-                                       <td><%=pkg.Description%></td>
+                                       <td><%=luci.util.pcdata(pkg.Description)%></td>
                                </tr>
                                <% end %>
                        </table>
-                       
+
                        <br />
-                       
+
                        <div style="text-align: right">
                                <input type="submit" class="cbi-input-apply" name="submit" value="<%:a_s_packages_do%>" />
                        </div>
                </fieldset></fieldset>
        </div>
 </form>
-<%+footer%>
\ No newline at end of file
+<%+footer%>