summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZach LeBar <zach@zachlebar.com>2012-03-22 20:08:30 +0000
committerZach LeBar <zach@zachlebar.com>2012-03-22 20:08:30 +0000
commitb1d62376783a9b449ad13c5000f35eaa9a87662c (patch)
treec16296229b41ce14626425843ebc3397b35c901b
parentd6df1a0c206b2f2f979f15b2619a6e221ff39019 (diff)
downloadacf-apk-tools-b1d62376783a9b449ad13c5000f35eaa9a87662c.tar.bz2
acf-apk-tools-b1d62376783a9b449ad13c5000f35eaa9a87662c.tar.xz
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.
-rw-r--r--apk-available-html.lsp2
-rw-r--r--apk-controller.lua15
-rw-r--r--apk-details-html.lsp4
-rw-r--r--apk-expert-html.lsp10
-rw-r--r--apk-loaded-html.lsp4
-rw-r--r--apk-model.lua102
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 %>
<TD style="padding-right:20px;white-space:nowrap;">
<% 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)
<DT>Install</DT>
<DD><form action="install" method="POST">
<input class="hidden" type="hidden" name="package" value=<%= data.value.package.value %>>
-<input class="submit" type="submit" value="Install"></form></DD>
+<input class="submit" type="submit" name="submit" value="Install"></form></DD>
<% elseif viewlibrary.check_permission("upgrade") and data.value.upgrade.value ~= "" then %>
<DT>Upgrade</DT>
<DD><form action="upgrade" method="POST">
<input class="hidden" type="hidden" name="package" value=<%= data.value.package.value %>>
-<input class="submit" type="submit" value="Upgrade"></form></DD>
+<input class="submit" type="submit" name="submit" value="Upgrade"></form></DD>
<% end %></DL>
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)
<DL>
<% if viewlibrary.check_permission("updateall") then %>
<DT>Update Index</DT>
- <DD><form action="updateall" method="POST"><input class="submit" type="submit" value="Update"></form></DD>
+ <DD><form action="updateall" method="POST">
+ <input class="hidden" type="hidden" name="redir" value="<%= html.html_escape(page_info.orig_action) %>" >
+ <input class="submit" type="submit" name="submit" value="Update">
+ </form></DD>
<% end %>
<% if viewlibrary.check_permission("upgradeall") then %>
<DT>Upgrade All</DT>
- <DD><form action="upgradeall" method="POST"><input class="submit" type="submit" value="Upgrade"></form></DD>
+ <DD><form action="upgradeall" method="POST">
+ <input class="hidden" type="hidden" name="redir" value="<%= html.html_escape(page_info.orig_action) %>" >
+ <input class="submit" type="submit" name="submit" value="Upgrade">
+ </form></DD>
<% end %>
</DL>
<% 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 @@
<TR>
<% if viewlibrary.check_permission("delete") then %>
<TD style="padding-right:20px;white-space:nowrap;">
- <%= 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 %>
</TD>
<% 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()