diff options
Diffstat (limited to 'Core/web_manageplugins.lua')
-rw-r--r-- | Core/web_manageplugins.lua | 157 |
1 files changed, 0 insertions, 157 deletions
diff --git a/Core/web_manageplugins.lua b/Core/web_manageplugins.lua deleted file mode 100644 index 543638183..000000000 --- a/Core/web_manageplugins.lua +++ /dev/null @@ -1,157 +0,0 @@ -local function Button_RemovePlugin( Name, Index ) - return "<form method='POST'><input type='hidden' name='PluginName' value='"..Name.."'><input type='hidden' name='PluginIndex' value='"..Index.."'><input type='submit' name='RemovePlugin' value='Remove'></form>" -end - -local function Button_EnablePlugin( Name ) - return [[<form method="POST"><input type="hidden" name="PluginName", value="]].. Name ..[["><input type="submit" name="EnablePlugin" value="Enable"></form>]] -end - -local function Button_DisablePlugin( Name ) - return [[<form method="POST"><input type="hidden" name="PluginName", value="]].. Name ..[["><input type="submit" name="DisablePlugin" value="Disable"></form>]] -end - -local function FindPluginID( SettingsIni, PluginName ) - local KeyIdx = SettingsIni:FindKey("Plugins") - local NumValues = SettingsIni:GetNumValues( KeyIdx ) - - for i = 0, NumValues-1 do - LOGINFO( SettingsIni:GetValue(KeyIdx, i) ) - if( SettingsIni:GetValue(KeyIdx, i) == PluginName ) then - return i - end - end - - return nil -end - -local function RemovePluginFromIni( SettingsIni, PluginName ) - local KeyIdx = SettingsIni:FindKey("Plugins") - local PluginIdx = FindPluginID( SettingsIni, PluginName ) - - if( PluginIdx == nil ) then - LOGINFO("Got nil! NOOOO") - return false - end - - local Name = SettingsIni:GetValue( KeyIdx, PluginIdx ) - if( Name ~= PluginName ) then - LOGINFO("not the same name T_T '" .. Name .. "' '" .. PluginName .. "'") - end - if( (Name == PluginName) and (SettingsIni:DeleteValueByID( KeyIdx, PluginIdx ) == true) ) then - return SettingsIni:WriteFile() - end - - return false -end - -local function AddPluginToIni( SettingsIni, PluginName ) - RemovePluginFromIni( SettingsIni, PluginName ) -- Make sure there are no duplicates - - if( SettingsIni:SetValue("Plugins", "Plugin", PluginName, true ) == true ) then - return SettingsIni:WriteFile() - end - - return false -end - -local function HandlePluginListChanges( Request, SettingsIni ) - local Content = "" - - if( Request.PostParams["EnablePlugin"] ~= nil - and Request.PostParams["PluginName"] ~= nil ) then - - local PluginName = Request.PostParams["PluginName"] - - local PM = cRoot:Get():GetPluginManager() - if( PM:LoadPlugin( PluginName ) == false ) then - Content = "Could not enable '".. PluginName .."'!" - end - - if( AddPluginToIni( SettingsIni, PluginName ) == true ) then - Content = "Enabled plugin '".. PluginName .."'" - else - Content = "Enabled plugin '".. PluginName .."' but could not add it to settings.ini" - end - - - elseif( Request.PostParams["DisablePlugin"] ~= nil - and Request.PostParams["PluginName"] ~= nil ) then - - local PluginName = Request.PostParams["PluginName"] - - local PM = cRoot:Get():GetPluginManager() - PM:DisablePlugin( PluginName ) - - if( RemovePluginFromIni( SettingsIni, PluginName ) == true ) then - Content = "Disabled plugin '".. PluginName .."'" - else - Content = "Disabled plugin '".. PluginName .."' but could not remove it from settings.ini" - end - - - - end - - if( #Content > 0 ) then - return "<p><font color='red'><strong>INFO: " .. Content .. "</strong></font></p>" - else - return "" - end -end - -function HandleRequest_ManagePlugins( Request ) - local Content = "" - - if( Request.PostParams["reload"] ~= nil ) then - Content = Content .. "<head><meta http-equiv=\"refresh\" content=\"2;\"></head>" - Content = Content .. "<p>Reloading plugins... This can take a while depending on the plugins you're using.</p>" - cRoot:Get():GetPluginManager():ReloadPlugins() - return Content - end - - local SettingsIni = cIniFile("settings.ini") - if( SettingsIni:ReadFile() == true ) then - Content = Content .. HandlePluginListChanges( Request, SettingsIni ) - else - Content = Content .. "Cannot find/modify settings.ini" - end - - local PluginManager = cRoot:Get():GetPluginManager() - PluginManager:FindPlugins() -- Refreshes the plugin list - local PluginList = PluginManager:GetAllPlugins() - - Content = Content .. "<h4>Currently installed plugins</h4>" - Content = Content .. "<table>" - ActivePluginsName = {} - ActivePluginVersion = {} - InactivePlugins = {} - for k, Plugin in pairs(PluginList) do - if( Plugin ) then - table.insert( ActivePluginsName, k ) - table.insert( ActivePluginVersion, Plugin:GetVersion() ) - else - table.insert( InactivePlugins, k ) - end - end - table.sort( ActivePluginsName ) - table.sort( InactivePlugins ) - for i = 1, #ActivePluginsName do - Content = Content .. "<tr><td>".. ActivePluginsName[i] .."</td>" - Content = Content .. "<td>" .. ActivePluginsName[i] .. " V. " .. ActivePluginVersion[i] .. "</td><td>" .. Button_DisablePlugin(ActivePluginsName[i]) .. "</td>" - Content = Content .. "</tr>" - end - for i = 1, #InactivePlugins do - Content = Content .. "<tr><td>".. InactivePlugins[i] .."</td>" - Content = Content .. "<td></td><td>" .. Button_EnablePlugin(InactivePlugins[i]) .. "</td>" - Content = Content .. "</tr>" - end - Content = Content .. "</table>" - - Content = Content .. "<h4>Reload</h4>" - Content = Content .. "<form method='POST'>" - Content = Content .. "<p>Click the reload button to reload all plugins according to <strong>settings.ini</strong>!" - Content = Content .. "<input type='submit' name='reload' value='Reload!'></p>" - Content = Content .. "</form>" - - return Content -end
\ No newline at end of file |