/** * Resolve action to perform * * @param string $action * @param array $attributes * @return string $message */ private function resolveAction($action, $attributes){ $resultMessage = ""; $resultCode = 0; switch ($action){ case "delete": $succ = 0; $err = 0; for($i = 0; $i < count($attributes["ids"]); $i++){ $id = $attributes["ids"][$i]; $type = $attributes["types"][$i]; $contact = Contacts::findById($id); if (isset($contact) && $contact->canDelete(logged_user())){ try{ DB::beginWork(); $contact->trash(); DB::commit(); ApplicationLogs::createLog($contact,ApplicationLogs::ACTION_TRASH); $succ++; } catch(Exception $e){ DB::rollback(); $err++; } } else { $err++; } }; // for if ($err > 0) { $resultCode = 2; $resultMessage = lang("error delete objects", $err) . ($succ > 0 ? lang("success delete objects", $succ) : ""); } else { $resultMessage = lang("success delete objects", $succ); if ($succ > 0) ObjectController::reloadPersonsDimension(); } break; case "archive": $succ = 0; $err = 0; for($i = 0; $i < count($attributes["ids"]); $i++){ $id = $attributes["ids"][$i]; $type = $attributes["types"][$i]; $contact = Contacts::findById($id); if (isset($contact) && $contact->canEdit(logged_user())){ try{ DB::beginWork(); $contact->archive(); DB::commit(); ApplicationLogs::createLog($contact, ApplicationLogs::ACTION_ARCHIVE); $succ++; } catch(Exception $e){ DB::rollback(); $err++; } } else { $err++; } }; // for if ($err > 0) { $resultCode = 2; $resultMessage = lang("error archive objects", $err) . ($succ > 0 ? lang("success archive objects", $succ) : ""); } else { $resultMessage = lang("success archive objects", $succ); if ($succ > 0) ObjectController::reloadPersonsDimension(); } break; default: $resultMessage = lang("unimplemented action" . ": '" . $action . "'");// if $resultCode = 2; break; } // switch return array("errorMessage" => $resultMessage, "errorCode" => $resultCode); }