From 07e7024ab0b09351ede7782321c88824d06596e5 Mon Sep 17 00:00:00 2001 From: Ted Trask Date: Mon, 30 Jun 2014 18:59:29 +0000 Subject: Temporary workaround to make viewtable show the previously selected table if none specified --- kamailio-model.lua | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) (limited to 'kamailio-model.lua') diff --git a/kamailio-model.lua b/kamailio-model.lua index fe7d378..4d31093 100644 --- a/kamailio-model.lua +++ b/kamailio-model.lua @@ -367,6 +367,15 @@ function mymodule.list_table_entries(self, clientdata) retval.table = cfe({ value=table or "", label="Table", key=true }) retval.fields = cfe({ type="list", value={}, label="List of Table Fields" }) retval.entries = cfe({ type="structure", value={}, label="List of Database Entries" }) + + -- This is a temporary workaround due to redirect_to_referrer not including clientdata + if self.sessiondata and self.sessiondata.keydata and self.sessiondata.keydata[self.conf.prefix..self.conf.controller.."/"..self.conf.action] then + keydata = self.sessiondata.keydata[self.conf.prefix..self.conf.controller.."/"..self.conf.action] + if retval.table.value == "" and keydata.table then + retval.table.value = keydata.table + end + end + local errtxt local res, err = pcall(function() local db = databasecreate() @@ -375,11 +384,11 @@ function mymodule.list_table_entries(self, clientdata) retval.table.errtxt = "Table does not exist" errtxt = "Table does not exist" for i,t in ipairs(tables) do - if t == table then + if t == retval.table.value then retval.table.errtxt = nil errtxt = nil - retval.entries.value = db.getselectresponse("SELECT * FROM "..db.escape(table).." ORDER BY id ASC") or {} - retval.fields.value = db.listcolumns(table) or {} + retval.entries.value = db.getselectresponse("SELECT * FROM "..db.escape(retval.table.value).." ORDER BY id ASC") or {} + retval.fields.value = db.listcolumns(retval.table.value) or {} end end if connected then db.databasedisconnect() end @@ -387,7 +396,13 @@ function mymodule.list_table_entries(self, clientdata) if not res and err then errtxt = err end - + + -- This is a temporary workaround due to redirect_to_referrer not including clientdata + if retval.table.value ~= "" and not errtxt and self.sessiondata then + self.sessiondata.keydata = self.sessiondata.keydata or {} + self.sessiondata.keydata[self.conf.prefix..self.conf.controller.."/"..self.conf.action] = {table=retval.table.value} + end + return cfe({ type="group", value=retval, label="Database Table Entries", errtxt=errtxt }) end -- cgit v1.2.3