Files
alrahma_sunday_school/app/Controllers/View/AttendanceCommentTemplateController.php
2026-05-16 13:44:12 -04:00

79 lines
2.3 KiB
PHP
Executable File

<?php
namespace App\Controllers\View;
use App\Controllers\BaseController;
use App\Models\AttendanceCommentTemplateModel;
class AttendanceCommentTemplateController extends BaseController
{
protected $templateModel;
public function __construct()
{
$this->templateModel = new AttendanceCommentTemplateModel();
}
// Method to load configuration management page
public function index()
{
helper('url');
return view('attendance_templates/index', [
'templateEndpoint' => site_url('api/attendance-templates'),
]);
}
public function save()
{
$id = $this->request->getPost('id');
$data = [
'min_score' => $this->request->getPost('min_score'),
'max_score' => $this->request->getPost('max_score'),
'template_text' => $this->request->getPost('template_text'),
'is_active' => $this->request->getPost('is_active') === 'on' ? 1 : 0,
];
if ($id) {
$this->templateModel->update($id, $data);
} else {
$this->templateModel->insert($data);
}
return $this->response->setJSON(['status' => 'success']);
}
public function delete()
{
$id = $this->request->getPost('id');
if ($id) {
$this->templateModel->delete($id);
return $this->response->setJSON(['status' => 'success']);
}
return $this->response->setJSON(['status' => 'error', 'message' => 'ID not provided']);
}
public function listData()
{
$rows = $this->templateModel
->orderBy('min_score', 'ASC')
->findAll();
$templates = array_map(static function ($row) {
if (!is_array($row)) {
return [];
}
return [
'id' => (int) ($row['id'] ?? 0),
'min_score' => (int) ($row['min_score'] ?? 0),
'max_score' => (int) ($row['max_score'] ?? 0),
'template_text' => (string) ($row['template_text'] ?? ''),
'is_active' => (bool) ($row['is_active'] ?? false),
];
}, $rows ?? []);
return $this->response->setJSON(['templates' => $templates]);
}
}