Добавление в Архив + Фронт
1. Переписал модуль выпадающего слева меню 2. Добавил механику Архивации задач 3. Запоминания выбранного отдела
This commit is contained in:
@@ -95,6 +95,14 @@ if ($method === 'POST') {
|
||||
RestApi::response($result);
|
||||
}
|
||||
|
||||
// Установка статуса архивации задачи
|
||||
if ($action === 'set_archive') {
|
||||
$id = $data['id'] ?? null;
|
||||
$archive = $data['archive'] ?? 1;
|
||||
$result = Task::setArchive($id, $archive);
|
||||
RestApi::response($result);
|
||||
}
|
||||
|
||||
// Метод не указан
|
||||
if (!$action) {
|
||||
RestApi::response(['success' => false, 'error' => 'Укажите метод'], 400);
|
||||
@@ -103,8 +111,16 @@ if ($method === 'POST') {
|
||||
|
||||
if ($method === 'GET') {
|
||||
// Получение всех задач
|
||||
// ?archive=0 (неархивные, по умолчанию), ?archive=1 (архивные), ?archive=all (все)
|
||||
$archive = $_GET['archive'] ?? 0;
|
||||
if ($archive === 'all') {
|
||||
$archive = null;
|
||||
} else {
|
||||
$archive = (int)$archive;
|
||||
}
|
||||
|
||||
$task = new Task();
|
||||
$tasks = $task->getAll();
|
||||
$tasks = $task->getAll($archive);
|
||||
|
||||
RestApi::response(['success' => true, 'data' => $tasks]);
|
||||
}
|
||||
|
||||
@@ -15,6 +15,7 @@ class Task extends BaseEntity {
|
||||
public $title;
|
||||
public $descript;
|
||||
public $descript_full;
|
||||
public $archive;
|
||||
|
||||
// Валидация данных
|
||||
protected function validate() {
|
||||
@@ -65,6 +66,7 @@ class Task extends BaseEntity {
|
||||
'title' => $this->title,
|
||||
'descript' => $this->descript ?: null,
|
||||
'descript_full' => $this->descript_full ?: null,
|
||||
'archive' => 0,
|
||||
'date_create' => date('Y-m-d H:i:s'),
|
||||
'file_img' => '[]'
|
||||
]);
|
||||
@@ -175,7 +177,13 @@ class Task extends BaseEntity {
|
||||
}
|
||||
|
||||
// Получение всех задач
|
||||
public function getAll() {
|
||||
// $archive: 0 = неархивные, 1 = архивные, null = все
|
||||
public function getAll($archive = 0) {
|
||||
$where = [];
|
||||
if ($archive !== null) {
|
||||
$where['archive'] = $archive ? 1 : 0;
|
||||
}
|
||||
|
||||
$tasks = Database::select($this->db_name, [
|
||||
'id',
|
||||
'id_department',
|
||||
@@ -188,8 +196,9 @@ class Task extends BaseEntity {
|
||||
'file_img',
|
||||
'title',
|
||||
'descript',
|
||||
'descript_full'
|
||||
]);
|
||||
'descript_full',
|
||||
'archive'
|
||||
], $where);
|
||||
|
||||
// Декодируем JSON и получаем avatar_url из accounts
|
||||
return array_map(function($task) {
|
||||
@@ -243,6 +252,29 @@ class Task extends BaseEntity {
|
||||
}
|
||||
return $task;
|
||||
}
|
||||
|
||||
// Установка статуса архивации задачи (только для задач в колонке 4)
|
||||
public static function setArchive($id, $archive = 1) {
|
||||
// Проверка что задача существует
|
||||
$task = self::check_task($id);
|
||||
|
||||
// Архивировать можно только задачи в колонке 4
|
||||
if ($archive && $task['column_id'] != 4) {
|
||||
RestApi::response([
|
||||
'success' => false,
|
||||
'errors' => ['column' => 'Архивировать можно только задачи из колонки "Готово"']
|
||||
], 400);
|
||||
}
|
||||
|
||||
// Обновляем archive
|
||||
Database::update('cards_task', [
|
||||
'archive' => $archive ? 1 : 0
|
||||
], [
|
||||
'id' => $id
|
||||
]);
|
||||
|
||||
return ['success' => true, 'archive' => $archive ? 1 : 0];
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
Reference in New Issue
Block a user