Added working plugin store prototype

- Added plugin install and remove api
This commit is contained in:
Toby Chui
2025-04-24 21:19:16 +08:00
parent 6750c7fe3d
commit ffc67ede12
6 changed files with 362 additions and 32 deletions

View File

@@ -186,7 +186,7 @@
</tbody>
</table>
<br>
<button class="ui violet button" onclick="openPluginStore();"><i class="cart arrow down icon"></i>Get More Plugins!</button>
<button class="ui basic violet button" onclick="openPluginStore();"><i class="download icon"></i>Plugin Store (Experimental)</button>
</div>
<script>
@@ -482,7 +482,10 @@ function initiatePluginList(){
<a href="${plugin.Spec.url}" target="_blank">${plugin.Spec.url}</a></td>
<td data-label="Category">${plugin.Spec.type==0?"Router":"Utilities"}</td>
<td data-label="Action">
<button onclick="getPluginInfo('${plugin.Spec.id}', this);" class="ui basic icon button" pluginid="${plugin.Spec.id}">
<button onclick="uninstallPlugin('${plugin.Spec.id}', '${plugin.Spec.name}', this);" class="ui basic red icon button">
<i class="trash icon"></i>
</button>
<button onclick="getPluginInfo('${plugin.Spec.id}', this);" class="ui basic icon button" pluginid="${plugin.Spec.id}">
<i class="info circle icon"></i>
</button>
<button onclick="stopPlugin('${plugin.Spec.id}', this);" class="ui basic button pluginEnableButton" pluginid="${plugin.Spec.id}" ${plugin.Enabled ? '' : 'style="display:none;"'}>
@@ -511,9 +514,6 @@ function initiatePluginList(){
initiatePluginList();
/* Tag Assignment */
/* Plugin Lifecycle */
@@ -570,6 +570,28 @@ function openPluginStore(){
showSideWrapper("snippet/pluginstore.html?t=" + Date.now(), true);
}
function uninstallPlugin(pluginId, pluginName, btn=undefined) {
if (confirm("Are you sure you want to remove " + pluginName + " plugin?")) {
if (btn) {
$(btn).html('<i class="spinner loading icon"></i>');
$(btn).addClass('disabled');
}
$.cjax({
url: '/api/plugins/store/uninstall',
type: 'POST',
data: { "pluginID": pluginId },
success: function(data) {
if (data.error != undefined) {
msgbox(data.error, false);
} else {
msgbox(pluginName + " uninstalled successfully", true);
initiatePluginList();
}
}
});
}
}
</script>