From 13efdf6aa7d8c957f5898726725f2e2ed5c61a59 Mon Sep 17 00:00:00 2001 From: Robin Appelman <icewind1991@gmail.com> Date: Mon, 18 Oct 2010 20:58:51 +0000 Subject: [PATCH] plugin manager --- inc/templates/pluginform.php | 77 ++++++++++++++++++++++++++++++++++++ js/lib_ajax.js | 2 +- 2 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 inc/templates/pluginform.php diff --git a/inc/templates/pluginform.php b/inc/templates/pluginform.php new file mode 100644 index 0000000000..dccc74dae8 --- /dev/null +++ b/inc/templates/pluginform.php @@ -0,0 +1,77 @@ +<?php +$action=$WEBROOT.'/settings/#plugin_managment'; +if(isset($_POST['plugin_disable_id'])){ + $id=$_POST['plugin_disable_id']; + $disable=$_POST['plugin_disable']; + if($disable=='true'){ + OC_PLUGIN::addToBlacklist($id); + }else{ + OC_PLUGIN::removeFromBlacklist($id); + } + header('location: '.$action); + die(); +} + +if(isset($_POST['install_plugin']) and $_POST['install_plugin']=='true'){ + $file=$_FILES['plugin_file']['tmp_name']; + OC_PLUGIN::installPlugin($file); + header('location: '.$action); + die(); +} +$plugins=OC_PLUGIN::listPlugins(); +$blacklist=OC_PLUGIN::loadBlackList(); +?> +<script type="text/javascript"> +<?php + echo('var plugins='.json_encode($plugins).";\n"); + echo('var blacklist='.json_encode($blacklist).";\n"); +?> + +disablePlugin=function(id,disable){ + var form=document.getElementById('disableForm'); + var input=document.getElementById('plugin_disable_name'); + input.value=id; + var input=document.getElementById('plugin_disable'); + input.value=disable; + form.submit(); +} +</script> +<p class='description'>Plugin List</p> +<form id='disableForm' action='<?php echo($action);?>' method="post" enctype="multipart/form-data"> +<input id='plugin_disable_name' type='hidden' name='plugin_disable_id' value=''/> +<input id='plugin_disable' type='hidden' name='plugin_disable' value=''/> +</form> +<table class='pluginlist'> + <thead> + <tr> + <td colspan='2'>Id</td> + <td>Version</td> + <td>Description</td> + <td>Author</td> + </tr> + </thead> + <tbody> + <?php + foreach($plugins as $plugin){ + $pluginData=OC_PLUGIN::getPluginData($plugin); + $enabled=(array_search($plugin,$blacklist)===false); + $enabledString=($enabled)?'enabled':'disabled'; + $enabledStringOther=(!$enabled)?'enable':'disable'; + $enabled=($enabled)?'true':'false'; + echo("<tr class='$enabledString'>\n"); + echo("<td class='name'>$plugin</td>"); + echo("<td class='disable'>(<a href='$action' onclick='disablePlugin(\"$plugin\",$enabled)'>$enabledStringOther</a>)</td>"); + echo("<td class='version'>{$pluginData['info']['version']}</td>"); + echo("<td>{$pluginData['info']['name']}</td>"); + echo("<td>{$pluginData['info']['author']}</td>"); + echo("</tr>\n"); + } + ?> + </tbody> +</table> +<p class='description'>Install Plugin</p> +<form action='<?php echo($action);?>' method="post" enctype="multipart/form-data"> + <input class='formstyle' type='file' name='plugin_file'/> + <input type='hidden' name='install_plugin' value='true'/> + <input class='formstyle' type='submit'/> +</form> \ No newline at end of file diff --git a/js/lib_ajax.js b/js/lib_ajax.js index a76460632d..297f612252 100644 --- a/js/lib_ajax.js +++ b/js/lib_ajax.js @@ -67,7 +67,7 @@ OC_onload.run=function(){ } } for(index in OC_onload.items){ - if(OC_onload.items[index].call){ + if(OC_onload.items[index]&&OC_onload.items[index].call){ OC_onload.items[index].call(); } } -- GitLab