From b1d62376783a9b449ad13c5000f35eaa9a87662c Mon Sep 17 00:00:00 2001 From: Zach LeBar Date: Thu, 22 Mar 2012 20:08:30 +0000 Subject: Changed apk-controller.lua to use new handle_form() functions found in acf_www-controller.lua instead of the controllerfunctions.lua version and also instead of redirect_to_referrer(). Made corresponding changes to apk-model.lua to make everything work. --- apk-available-html.lsp | 2 +- apk-controller.lua | 15 ++++---- apk-details-html.lsp | 4 +- apk-expert-html.lsp | 10 ++++- apk-loaded-html.lsp | 4 +- apk-model.lua | 102 +++++++++++++++++++++++++++++++++++++++---------- 6 files changed, 102 insertions(+), 35 deletions(-) diff --git a/apk-available-html.lsp b/apk-available-html.lsp index c2bdcb4..e298c91 100644 --- a/apk-available-html.lsp +++ b/apk-available-html.lsp @@ -19,7 +19,7 @@ <% if viewlibrary.check_permission("install") or viewlibrary.check_permission("upgrade") then %> <% if viewlibrary.check_permission("install") and not packagetable.upgrade then %> - <%= html.link{value = "install?package=" .. packagetable.name, label="Install "} %> + <%= html.link{value = "install?package=" .. packagetable.name.."&redir=available&submit=true", label="Install "} %> <% end %> <% if viewlibrary.check_permission("upgrade") and packagetable.upgrade then %> <%= html.link{value = "upgrade?package=" .. packagetable.name, label="Upgrade "} %> diff --git a/apk-controller.lua b/apk-controller.lua index eff4c8a..5945765 100644 --- a/apk-controller.lua +++ b/apk-controller.lua @@ -1,5 +1,4 @@ -- the interfaces controller -require("controllerfunctions") module (..., package.seeall) @@ -18,29 +17,29 @@ details = function(self) end delete = function(self) - return self:redirect_to_referrer(self.model.delete_package(self.clientdata.package or "", self.sessiondata)) + return self.handle_form(self, self.model.get_delete_package, self.model.delete_package, self.clientdata, "Delete", "Delete Package") end install = function(self) - return self:redirect_to_referrer(self.model.install_package(self.clientdata.package or "", self.sessiondata)) + return self.handle_form(self, self.model.get_install_package, self.model.install_package, self.clientdata, "Install", "Install Package") end upgrade = function(self) - return self:redirect_to_referrer(self.model.upgrade_package(self.clientdata.package or "", self.sessiondata)) + return self.handle_form(self, self.model.get_upgrade_package, self.model.upgrade_package, self.clientdata, "Upgrade", "Upgrade Package") end cache = function(self) - return controllerfunctions.handle_form(self, self.model.get_cache, self.model.update_cache, self.clientdata, "Save", "Edit Cache Settings", "Settings Saved") + return self.handle_form(self, self.model.get_cache, self.model.update_cache, self.clientdata, "Save", "Edit Cache Settings", "Settings Saved") end expert = function(self) - return controllerfunctions.handle_form(self, self.model.get_configfile, self.model.update_configfile, self.clientdata, "Save", "Edit Configuration", "Configuration Saved") + return self.handle_form(self, self.model.get_configfile, self.model.update_configfile, self.clientdata, "Save", "Edit Configuration", "Configuration Saved") end updateall = function(self) - return self:redirect_to_referrer(self.model.update_all()) + return self.handle_form(self, self.model.get_update_all, self.model.update_all, self.clientdata, "Update All", "Update All Packages") end upgradeall = function(self) - return self:redirect_to_referrer(self.model.upgrade_all()) + return self.handle_form(self, self.model.get_upgrade_all, self.model.upgrade_all, self.clientdata, "Upgrade All", "Upgrade All Packages") end diff --git a/apk-details-html.lsp b/apk-details-html.lsp index 8ec29c5..e3b6935 100644 --- a/apk-details-html.lsp +++ b/apk-details-html.lsp @@ -20,10 +20,10 @@ displayitem(data.value.upgrade)
Install
> -
+ <% elseif viewlibrary.check_permission("upgrade") and data.value.upgrade.value ~= "" then %>
Upgrade
> -
+ <% end %> diff --git a/apk-expert-html.lsp b/apk-expert-html.lsp index 44b4b48..735d1a5 100644 --- a/apk-expert-html.lsp +++ b/apk-expert-html.lsp @@ -14,11 +14,17 @@ func(form, viewlibrary, page_info, session)
<% if viewlibrary.check_permission("updateall") then %>
Update Index
-
+
+ + +
<% end %> <% if viewlibrary.check_permission("upgradeall") then %>
Upgrade All
-
+
+ + +
<% end %>
<% end %> diff --git a/apk-loaded-html.lsp b/apk-loaded-html.lsp index 1388ae2..18bf3c6 100644 --- a/apk-loaded-html.lsp +++ b/apk-loaded-html.lsp @@ -20,9 +20,9 @@ <% if viewlibrary.check_permission("delete") then %> - <%= html.link{value = "delete?package=" .. packagetable.name, label="Delete "} %> + <%= html.link{value = "delete?package=" .. packagetable.name.."&redir=loaded&submit=true", label="Delete "} %> <% if viewlibrary.check_permission("upgrade") and packagetable.upgrade then %> - <%= html.link{value = "upgrade?package=" .. packagetable.name, label="Upgrade "} %> + <%= html.link{value = "upgrade?package=" .. packagetable.name.."&redir=loaded&submit=true", label="Upgrade "} %> <% end %> <% end %> diff --git a/apk-model.lua b/apk-model.lua index b498802..02ffb03 100644 --- a/apk-model.lua +++ b/apk-model.lua @@ -3,8 +3,8 @@ module (..., package.seeall) require("apk") require("modelfunctions") require("posix") -require("fs") -require("format") +fs = require("acf.fs") +format = require("acf.format") local configfile = "/etc/apk/repositories" local worldfile = "/etc/apk/world" @@ -196,41 +196,103 @@ get_available_packages = function() return available end -delete_package = function(package, sessiondata) - local success, cmdresult = apk.delete(package) +get_delete_package = function(clientdata) + local result = {} + result.package = cfe({ value=clientdata.package, label="Package" }) + + return cfe({ type="group", value=result, label="Result of Delete" }) +end + +delete_package = function(deleterequest) + local success, res = apk.delete(deleterequest.value.package.value) if success then + deleterequest.descr = res -- Destroy menu and permissions info in session so recalculated - if sessiondata then sessiondata.menu = nil end - if sessiondata then sessiondata.permissions = nil end + if session then session.menu = nil end + if session then session.permissions = nil end + else + deleterequest.errtxt = "Failed to delete package." end - return cfe({ value=cmdresult, label="Result of Delete" }) + + return deleterequest +end + +get_install_package = function(clientdata) + local result = {} + result.package = cfe({ value=clientdata.package, label="Package" }) + + return cfe({ type="group", value=result, label="Result of Install" }) end -install_package = function(package,sessiondata) - local success, cmdresult = apk.install(package) +install_package = function(installrequest) + local success, res = apk.install(installrequest.value.package.value) if success then + installrequest.descr = res -- Destroy menu and permissions info in session so recalculated - if sessiondata then sessiondata.menu = nil end - if sessiondata then sessiondata.permissions = nil end + if session then session.menu = nil end + if session then session.permissions = nil end + else + installrequest.errtxt = "Failed to install package." + end + + return installrequest +end + +get_upgrade_package = function(clientdata) + local result = {} + result.package = cfe({ value=clientdata.package, label="Package" }) + + return cfe({ type="group", value=result, label="Result of Upgrade" }) +end + +upgrade_package = function(upgraderequest) + local res = run_apk_cmd("fix -u "..upgraderequest.value.package.value) + if res then + upgraderequest.descr = res + else + upgraderequest.errtxt = "Failed to upgrade package." end - return cfe({ value=cmdresult, label="Result of Install" }) + + return upgraderequest +end + +get_update_all = function(clientdata) + local result = {} + + return cfe({ type="group", value=result, label="Result of Update" }) end -upgrade_package = function(package) - return cfe({ value=run_apk_cmd("fix -u "..package), label="Result of Package Upgrade" }) +update_all = function(updaterequest) + local res = run_apk_cmd("update") + if res then + updaterequest.descr = res + else + updaterequest.errtxt = "Failed to upgrade packages." + end + + return updaterequest end -update_all = function() - return cfe({ value=run_apk_cmd("update"), label="Result of Update" }) +get_upgrade_all = function(clientdata) + local result = {} + + return cfe({ type="group", value=result, label="Result of Upgrade" }) end -upgrade_all = function() - result = {} +upgrade_all = function(upgraderequest) + local result = {} result[#result+1] = run_apk_cmd("update") result[#result+1] = run_apk_cmd("add -u apk-tools") result[#result+1] = run_apk_cmd("upgrade") - return cfe({ value=table.concat(result, ""), label="Result of Upgrade" }) --- return cfe({ value=run_apk_cmd("upgrade -U"), label="Result of Upgrade" }) + + local res = table.concat(result, "") + if res then + upgraderequest.descr = res + else + upgraderequest.errtxt = "Failed to upgrade packages." + end + + return upgraderequest end get_cache = function() -- cgit v1.2.3