Добавление логики
1. Получения конфигурациия с бека 2. Время закрытия задачи 3. Изменение фронта под новую локигу конфигурации 4. Обновление структуры бд
This commit is contained in:
@@ -6,6 +6,13 @@ if ($method === 'POST') {
|
||||
$data = RestApi::getInput();
|
||||
$action = $data['action'] ?? null;
|
||||
|
||||
// Получение конфигурации приложения
|
||||
if ($action === 'get_config') {
|
||||
RestApi::response(['success' => true, 'data' => [
|
||||
'COLUMN_DONE_ID' => COLUMN_DONE_ID
|
||||
]]);
|
||||
}
|
||||
|
||||
// Авторизация
|
||||
if ($action === 'auth_login') {
|
||||
$account = new Account();
|
||||
|
||||
@@ -11,6 +11,7 @@ class Task extends BaseEntity {
|
||||
public $order;
|
||||
public $column_id;
|
||||
public $date;
|
||||
public $date_closed;
|
||||
public $id_account;
|
||||
public $title;
|
||||
public $descript;
|
||||
@@ -99,15 +100,18 @@ class Task extends BaseEntity {
|
||||
return $errors;
|
||||
}
|
||||
|
||||
// Проверка что задача существует
|
||||
$task = Database::get($this->db_name, ['id'], ['id' => $this->id]);
|
||||
// Проверка что задача существует и получаем текущую колонку
|
||||
$task = Database::get($this->db_name, ['id', 'column_id'], ['id' => $this->id]);
|
||||
if (!$task) {
|
||||
$this->addError('task', 'Задача не найдена');
|
||||
return $this->getErrors();
|
||||
}
|
||||
|
||||
// Обновляем в БД
|
||||
Database::update($this->db_name, [
|
||||
$old_column_id = (int)$task['column_id'];
|
||||
$new_column_id = (int)$this->column_id;
|
||||
|
||||
// Формируем данные для обновления
|
||||
$update_data = [
|
||||
'id_department' => $this->id_department,
|
||||
'id_label' => $this->id_label,
|
||||
'order' => $this->order,
|
||||
@@ -117,7 +121,17 @@ class Task extends BaseEntity {
|
||||
'title' => $this->title,
|
||||
'descript' => $this->descript ?: null,
|
||||
'descript_full' => $this->descript_full ?: null
|
||||
], [
|
||||
];
|
||||
|
||||
// Обновляем date_closed при смене колонки
|
||||
if ($new_column_id === COLUMN_DONE_ID && $old_column_id !== COLUMN_DONE_ID) {
|
||||
$update_data['date_closed'] = date('Y-m-d H:i:s');
|
||||
} elseif ($old_column_id === COLUMN_DONE_ID && $new_column_id !== COLUMN_DONE_ID) {
|
||||
$update_data['date_closed'] = null;
|
||||
}
|
||||
|
||||
// Обновляем в БД
|
||||
Database::update($this->db_name, $update_data, [
|
||||
'id' => $this->id
|
||||
]);
|
||||
|
||||
@@ -151,7 +165,9 @@ class Task extends BaseEntity {
|
||||
public static function updateOrder($id, $column_id, $to_index) {
|
||||
|
||||
// Проверка что задача существует
|
||||
self::check_task($id);
|
||||
$task = self::check_task($id);
|
||||
$old_column_id = (int)$task['column_id'];
|
||||
$new_column_id = (int)$column_id;
|
||||
|
||||
// Получаем все карточки целевой колонки (кроме перемещаемой)
|
||||
$cards = Database::select('cards_task', ['id', 'order'], [
|
||||
@@ -165,10 +181,24 @@ class Task extends BaseEntity {
|
||||
|
||||
// Пересчитываем order для всех карточек
|
||||
foreach ($cards as $index => $card) {
|
||||
Database::update('cards_task', [
|
||||
$update_data = [
|
||||
'order' => $index,
|
||||
'column_id' => $column_id
|
||||
], [
|
||||
];
|
||||
|
||||
// Только для перемещаемой карточки обновляем date_closed
|
||||
if ($card['id'] == $id) {
|
||||
// Перемещаем В колонку "Готово" — устанавливаем дату закрытия
|
||||
if ($new_column_id === COLUMN_DONE_ID && $old_column_id !== COLUMN_DONE_ID) {
|
||||
$update_data['date_closed'] = date('Y-m-d H:i:s');
|
||||
}
|
||||
// Перемещаем ИЗ колонки "Готово" — обнуляем дату
|
||||
elseif ($old_column_id === COLUMN_DONE_ID && $new_column_id !== COLUMN_DONE_ID) {
|
||||
$update_data['date_closed'] = null;
|
||||
}
|
||||
}
|
||||
|
||||
Database::update('cards_task', $update_data, [
|
||||
'id' => $card['id']
|
||||
]);
|
||||
}
|
||||
@@ -193,6 +223,7 @@ class Task extends BaseEntity {
|
||||
'column_id',
|
||||
'date',
|
||||
'date_create',
|
||||
'date_closed',
|
||||
'file_img',
|
||||
'title',
|
||||
'descript',
|
||||
@@ -253,13 +284,13 @@ 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) {
|
||||
// Архивировать можно только задачи в колонке "Готово"
|
||||
if ($archive && (int)$task['column_id'] !== COLUMN_DONE_ID) {
|
||||
RestApi::response([
|
||||
'success' => false,
|
||||
'errors' => ['column' => 'Архивировать можно только задачи из колонки "Готово"']
|
||||
|
||||
@@ -23,12 +23,15 @@
|
||||
define('DB_PORT', 3306);
|
||||
define('DB_CHARSET', 'utf8mb4');
|
||||
|
||||
// ID колонки "Готово" (для фиксации date_closed и архивации)
|
||||
define('COLUMN_DONE_ID', 4);
|
||||
|
||||
// Инициализация подключения к БД
|
||||
Database::init();
|
||||
|
||||
$routes = [
|
||||
'/api/user' => 'api/user.php',
|
||||
'/api/task' => 'api/task.php',
|
||||
'/api/user' => __DIR__ . '/../api/user.php',
|
||||
'/api/task' => __DIR__ . '/../api/task.php',
|
||||
];
|
||||
|
||||
$publicActions = ['auth_login', 'check_session'];
|
||||
|
||||
Reference in New Issue
Block a user