Procházet zdrojové kódy

WIP - do not update yet!
remove plugin work

causefx před 7 roky
rodič
revize
651420a413
2 změnil soubory, kde provedl 45 přidání a 11 odebrání
  1. 23 1
      api/functions/plugin-functions.php
  2. 22 10
      js/functions.js

+ 23 - 1
api/functions/plugin-functions.php

@@ -50,10 +50,32 @@ function removePlugin($plugin)
 			'to' => str_replace(array('/', '\\'), DIRECTORY_SEPARATOR, $GLOBALS['root'] . $v['path'] . $v['fileName']),
 			'path' => str_replace(array('/', '\\'), DIRECTORY_SEPARATOR, $GLOBALS['root'] . $v['path'])
 		);
-		if (!rrmdir($file['to'])) {
+		/*if (!rrmdir($file['to'])) {
 			writeLog('error', 'Plugin Function -  Remove File Failed  for: ' . $v['githubPath'], $GLOBALS['organizrUser']['username']);
 			return false;
+		}*/
+	}
+	if ($GLOBALS['installedPlugins'] !== '') {
+		$installedPlugins = explode('|', $GLOBALS['installedPlugins']);
+		foreach ($installedPlugins as $k => $v) {
+			$plugins = explode(':', $v);
+			$installedPluginsList[$plugins[0]] = $plugins[1];
 		}
+		if (isset($installedPluginsList[$name])) {
+			$installedPluginsNew = '';
+			foreach ($installedPluginsList as $k => $v) {
+				if ($k !== $name) {
+					if ($installedPluginsNew == '') {
+						$installedPluginsNew .= $k . ':' . $v;
+					} else {
+						$installedPluginsNew .= '|' . $k . ':' . $v;
+					}
+				}
+			}
+		}
+	} else {
+		$installedPluginsNew = '';
 	}
+	//updateConfig(array('installedPlugins' => $installedPluginsNew));
 	return true;
 }

+ 22 - 10
js/functions.js

@@ -970,22 +970,27 @@ function removePlugin(plugin=null){
         var html = JSON.parse(data);
         console.log(html);
         if(html.data == true){
-            /*if(activeInfo.settings.misc.installedPlugins !== ''){
+            if(activeInfo.settings.misc.installedPlugins !== ''){
                 installedPlugins = activeInfo.settings.misc.installedPlugins.split("|");
                 $.each(installedPlugins, function(i,v) {
                     var plugin = v.split(":");
                     installedPluginsList[plugin[0]] = plugin[1];
                 });
                 if(typeof installedPluginsList[plugin.name] !== 'undefined'){
-                    console.log(plugin.version);
-                    installedPluginsList[plugin.name] = plugin.version;
-                    activeInfo.settings.misc.installedPlugins = installedPlugins.toString().replace(/,/g , "|");
-                }else{
-                    activeInfo.settings.misc.installedPlugins = activeInfo.settings.misc.installedPlugins + '|' + plugin.name + ':' + plugin.version;
+                    $.each(installedPluginsList, function(i,v) {
+                        if(i !== plugin.name){
+                            if(installedPluginsListNew == ''){
+                                installedPluginsListNew += i+':'+v;
+                            }else{
+                                installedPluginsListNew += '|'+i+':'+v;
+                            }
+                        }
+                    });
+                    activeInfo.settings.misc.installedPlugins = installedPluginsListNew;
                 }
             }else{
-                activeInfo.settings.misc.installedPlugins = plugin.name + ':' + plugin.version;
-            }*/
+                activeInfo.settings.misc.installedPlugins = '';
+            }
             loadMarketplace('plugins');
             message('Plugin Removed',plugin.name,activeInfo.settings.notifications.position,"#FFF","success","5000");
         }else{
@@ -1003,6 +1008,7 @@ function installPlugin(plugin=null){
     message('Installing Plugin',plugin.name,activeInfo.settings.notifications.position,"#FFF","success","5000");
     console.log(plugin);
     var installedPluginsList = [];
+    var installedPluginsListNew = '';
     var installedPlugins = [];
     plugin.downloadList = pluginFileList(plugin.files,plugin.github_folder);
     organizrAPI('POST','api/?v1/plugin/install',{plugin:plugin}).success(function(data) {
@@ -1016,9 +1022,15 @@ function installPlugin(plugin=null){
                     installedPluginsList[plugin[0]] = plugin[1];
                 });
                 if(typeof installedPluginsList[plugin.name] !== 'undefined'){
-                    console.log(plugin.version);
                     installedPluginsList[plugin.name] = plugin.version;
-                    activeInfo.settings.misc.installedPlugins = installedPlugins.toString().replace(/,/g , "|");
+                    $.each(installedPluginsList, function(i,v) {
+                        if(installedPluginsListNew == ''){
+                            installedPluginsListNew += i+':'+v;
+                        }else{
+                            installedPluginsListNew += '|'+i+':'+v;
+                        }
+                    });
+                    activeInfo.settings.misc.installedPlugins = installedPluginsListNew;
                 }else{
                     activeInfo.settings.misc.installedPlugins = activeInfo.settings.misc.installedPlugins + '|' + plugin.name + ':' + plugin.version;
                 }