Speedup CheckableFolders

This commit is contained in:
the-djmaze 2023-03-13 12:04:09 +01:00
parent f8b794ec1c
commit 1923d5cb4b

View file

@ -151,26 +151,17 @@ trait Folders
$oSettingsLocal = $this->SettingsProvider(true)->Load($oAccount); $oSettingsLocal = $this->SettingsProvider(true)->Load($oAccount);
$aCheckableFolder = \json_decode($oSettingsLocal->GetConf('CheckableFolder', '[]')); $aCheckableFolder = \json_decode($oSettingsLocal->GetConf('CheckableFolder', '[]'));
if (!\is_array($aCheckableFolder)) { if (!\is_array($aCheckableFolder)) {
$aCheckableFolder = array(); $aCheckableFolder = array();
} }
if (!empty($this->GetActionParam('checkable', '0'))) { if (!empty($this->GetActionParam('checkable', '0'))) {
$aCheckableFolder[] = $sFolderFullName; $aCheckableFolder[] = $sFolderFullName;
} else { } else if (($key = \array_search($sFolderFullName, $aCheckableFolder)) !== false) {
$aCheckableFolderNew = array(); \array_splice($aCheckableFolder, $key, 1);
foreach ($aCheckableFolder as $sFolder) {
if ($sFolder !== $sFolderFullName) {
$aCheckableFolderNew[] = $sFolder;
}
}
$aCheckableFolder = $aCheckableFolderNew;
} }
$aCheckableFolder = \array_unique($aCheckableFolder); $oSettingsLocal->SetConf('CheckableFolder', \json_encode(\array_unique($aCheckableFolder)));
$oSettingsLocal->SetConf('CheckableFolder', \json_encode($aCheckableFolder));
return $this->DefaultResponse($this->SettingsProvider(true)->Save($oAccount, $oSettingsLocal)); return $this->DefaultResponse($this->SettingsProvider(true)->Save($oAccount, $oSettingsLocal));
} }