From af8c96026d458481543ead176bd15651857826bd Mon Sep 17 00:00:00 2001 From: Mattes D Date: Wed, 2 Mar 2016 10:05:10 +0100 Subject: Removed cWebPlugin, WebAdmin uses cLuaState::cCallback. --- Server/webadmin/template.lua | 62 +++++++++++++++++++++++++++++--------------- 1 file changed, 41 insertions(+), 21 deletions(-) (limited to 'Server/webadmin') diff --git a/Server/webadmin/template.lua b/Server/webadmin/template.lua index d80ca5f74..168f87993 100644 --- a/Server/webadmin/template.lua +++ b/Server/webadmin/template.lua @@ -20,7 +20,7 @@ end -function GetDefaultPage() +local function GetDefaultPage() local PM = cRoot:Get():GetPluginManager() local SubTitle = "Current Game" @@ -55,30 +55,31 @@ end function ShowPage(WebAdmin, TemplateRequest) SiteContent = {} - local BaseURL = WebAdmin:GetBaseURL(TemplateRequest.Request.Path) + local BaseURL = cWebAdmin:GetBaseURL(TemplateRequest.Request.Path) local Title = "Cuberite WebAdmin" local NumPlayers = cRoot:Get():GetServer():GetNumPlayers() local MemoryUsageKiB = cRoot:GetPhysicalRAMUsage() local NumChunks = cRoot:Get():GetTotalChunkCount() - local PluginPage = WebAdmin:GetPage(TemplateRequest.Request) + local PluginPage = cWebAdmin:GetPage(TemplateRequest.Request) local PageContent = PluginPage.Content - local SubTitle = PluginPage.PluginName - if (PluginPage.TabName ~= "") then - SubTitle = PluginPage.PluginName .. " - " .. PluginPage.TabName + local SubTitle = PluginPage.PluginFolder + if (PluginPage.UrlPath ~= "") then + SubTitle = PluginPage.PluginFolder .. " - " .. PluginPage.TabTitle end if (PageContent == "") then PageContent, SubTitle = GetDefaultPage() end + --[[ + -- 2016-01-15 Mattes: This wasn't used anywhere in the code, no idea what it was supposed to do local reqParamsClass = "" - - for key,value in pairs(TemplateRequest.Request.Params) do + for key, value in pairs(TemplateRequest.Request.Params) do reqParamsClass = reqParamsClass .. " param-" .. string.lower(string.gsub(key, "[^a-zA-Z0-9]+", "-") .. "-" .. string.gsub(value, "[^a-zA-Z0-9]+", "-")) end - if (string.gsub(reqParamsClass, "%s", "") == "") then reqParamsClass = " no-param" end + --]] Output([[ @@ -133,20 +134,39 @@ function ShowPage(WebAdmin, TemplateRequest) ]]) - - local AllPlugins = WebAdmin:GetPlugins() - for key,value in pairs(AllPlugins) do - local PluginWebTitle = value:GetWebTitle() - local TabNames = value:GetTabNames() - if (GetTableSize(TabNames) > 0) then - Output("
"..PluginWebTitle.."
\n"); - - for webname,prettyname in pairs(TabNames) do - Output("
" .. prettyname .. "
\n") + -- Get all tabs: + local perPluginTabs = {} + for _, tab in ipairs(cWebAdmin:GetAllWebTabs()) do + local pluginTabs = perPluginTabs[tab.PluginName] or {}; + perPluginTabs[tab.PluginName] = pluginTabs + table.insert(pluginTabs, tab) + end + + -- Sort by plugin: + local pluginNames = {} + for pluginName, pluginTabs in pairs(perPluginTabs) do + table.insert(pluginNames, pluginName) + end + table.sort(pluginNames) + + -- Output by plugin, then alphabetically: + for _, pluginName in ipairs(pluginNames) do + local pluginTabs = perPluginTabs[pluginName] + table.sort(pluginTabs, + function(a_Tab1, a_Tab2) + return ((a_Tab1.Title or "") < (a_Tab2.Title or "")) end - - Output("
\n"); + ) + + -- Translate the plugin name into the folder name (-> title) + local pluginWebTitle = cPluginManager:Get():GetPluginFolderName(pluginName) or pluginName + Output("
" .. pluginWebTitle .. "
\n"); + + -- Output each tab: + for _, tab in pairs(pluginTabs) do + Output("
" .. tab.Title .. "
\n") end + Output("
\n"); end -- cgit v1.2.3