Resolve Issue #104

This commit is contained in:
djmaze 2021-08-09 11:13:10 +02:00
parent d2550c3139
commit fd293b723b
4 changed files with 36 additions and 26 deletions

View file

@ -85,11 +85,11 @@ class RemoteAdminFetch extends AbstractFetchRemote {
/**
* @param {?Function} fCallback
* @param {string} sName
* @param {string} sId
*/
plugin(fCallback, sName) {
plugin(fCallback, sId) {
this.defaultRequest(fCallback, 'AdminPluginLoad', {
Name: sName
Id: sId
});
}
@ -125,12 +125,12 @@ class RemoteAdminFetch extends AbstractFetchRemote {
/**
* @param {?Function} fCallback
* @param {string} sName
* @param {string} sId
* @param {boolean} bDisabled
*/
pluginDisable(fCallback, sName, bDisabled) {
pluginDisable(fCallback, sId, bDisabled) {
this.defaultRequest(fCallback, 'AdminPluginDisable', {
Name: sName,
Id: sId,
Disabled: bDisabled ? 1 : 0
});
}

View file

@ -47,7 +47,7 @@ export class PackagesAdminSettings {
// configurePlugin
let el = event.target.closestWithin('.package-configure', oDom),
data = el ? ko.dataFor(el) : 0;
data && Remote.plugin((iError, data) => iError || showScreenPopup(PluginPopupView, [data.Result]), data.name)
data && Remote.plugin((iError, data) => iError || showScreenPopup(PluginPopupView, [data.Result]), data.id)
// disablePlugin
el = event.target.closestWithin('.package-active', oDom);
data = el ? ko.dataFor(el) : 0;
@ -94,10 +94,11 @@ export class PackagesAdminSettings {
}
disablePlugin(plugin) {
let b = !plugin.enabled();
plugin.enabled(b);
let b = plugin.enabled();
plugin.enabled(!b);
Remote.pluginDisable((iError, data) => {
if (iError) {
plugin.enabled(b);
this.packagesError(
(Notification.UnsupportedPluginPackage === iError && data && data.ErrorMessage)
? data.ErrorMessage
@ -105,7 +106,7 @@ export class PackagesAdminSettings {
);
}
// PackageAdminStore.fetch();
}, plugin.name, !b);
}, plugin.id, b);
}
}

View file

@ -16,6 +16,7 @@ class PluginPopupView extends AbstractViewPopup {
this.addObservables({
saveError: '',
id: '',
name: '',
readme: ''
});
@ -36,15 +37,17 @@ class PluginPopupView extends AbstractViewPopup {
}
saveCommand() {
const list = {};
list.Name = this.name();
const list = {
Id: this.id(),
Settings: {}
};
this.configures.forEach(oItem => {
let value = oItem.value();
if (false === value || true === value) {
value = value ? '1' : '0';
value = value ? 1 : 0;
}
list['_' + oItem.Name] = value;
list.Settings[oItem.Name] = value;
});
this.saveError('');
@ -56,11 +59,13 @@ class PluginPopupView extends AbstractViewPopup {
}
onShow(oPlugin) {
this.id('');
this.name('');
this.readme('');
this.configures([]);
if (oPlugin) {
this.id(oPlugin.Id);
this.name(oPlugin.Name);
this.readme(oPlugin.Readme);

View file

@ -789,12 +789,12 @@ trait Admin
{
$this->IsAdminLoggined();
$sName = (string) $this->GetActionParam('Name', '');
$sId = (string) $this->GetActionParam('Id', '');
$bDisable = '1' === (string) $this->GetActionParam('Disabled', '1');
if (!$bDisable)
{
$oPlugin = $this->Plugins()->CreatePluginByName($sName);
$oPlugin = $this->Plugins()->CreatePluginByName($sId);
if ($oPlugin)
{
$sValue = $oPlugin->Supported();
@ -809,7 +809,7 @@ trait Admin
}
}
return $this->DefaultResponse(__FUNCTION__, $this->pluginEnable($sName, !$bDisable));
return $this->DefaultResponse(__FUNCTION__, $this->pluginEnable($sId, !$bDisable));
}
public function DoAdminPluginLoad() : array
@ -817,15 +817,16 @@ trait Admin
$this->IsAdminLoggined();
$mResult = false;
$sName = (string) $this->GetActionParam('Name', '');
$sId = (string) $this->GetActionParam('Id', '');
if (!empty($sName))
if (!empty($sId))
{
$oPlugin = $this->Plugins()->CreatePluginByName($sName);
$oPlugin = $this->Plugins()->CreatePluginByName($sId);
if ($oPlugin)
{
$mResult = array(
'Name' => $sName,
'Id' => $sId,
'Name' => $oPlugin->Name(),
'Readme' => $oPlugin->Description(),
'Config' => array()
);
@ -860,20 +861,22 @@ trait Admin
$this->IsAdminLoggined();
$mResult = false;
$sName = (string) $this->GetActionParam('Name', '');
$sId = (string) $this->GetActionParam('Id', '');
if (!empty($sName))
if (!empty($sId))
{
$oPlugin = $this->Plugins()->CreatePluginByName($sName);
$oPlugin = $this->Plugins()->CreatePluginByName($sId);
if ($oPlugin)
{
$oConfig = $oPlugin->Config();
$aMap = $oPlugin->ConfigMap();
if (is_array($aMap))
{
$aSettings = (array) $this->GetActionParam('Settings', []);
foreach ($aMap as $oItem)
{
$sValue = $this->GetActionParam('_'.$oItem->Name(), $oConfig->Get('plugin', $oItem->Name()));
$sKey = $oItem->Name();
$sValue = $aSettings[$sKey] ?? $oConfig->Get('plugin', $sKey);
if (PluginPropertyType::PASSWORD !== $oItem->Type() || APP_DUMMY !== $sValue)
{
$mResultValue = null;
@ -893,13 +896,14 @@ trait Admin
case PluginPropertyType::PASSWORD:
case PluginPropertyType::STRING:
case PluginPropertyType::STRING_TEXT:
case PluginPropertyType::URL:
$mResultValue = (string) $sValue;
break;
}
if (null !== $mResultValue)
{
$oConfig->Set('plugin', $oItem->Name(), $mResultValue);
$oConfig->Set('plugin', $sKey, $mResultValue);
}
}
}