trigger column (cross-cutting) + move-mode; move relocates instead of copies (v1.9)

This commit is contained in:
2026-07-10 23:04:51 -03:00
parent 9b486970d3
commit fc1f38fb30
7 changed files with 115 additions and 5 deletions

View File

@@ -34,6 +34,7 @@ class RecurrenceController extends BaseController
'values' => $values,
'errors' => $errors,
'columns_list' => $columns,
'all_columns' => $this->columnModel->getList($task['project_id']),
'frequency_list' => $this->getFrequencyList(),
'has_due_date' => ! empty($task['date_due']),
'is_native' => $task['recurrence_status'] != TaskModel::RECURRING_STATUS_NONE,
@@ -98,6 +99,16 @@ class RecurrenceController extends BaseController
$values['recoreco_count'] = (isset($input['recoreco_count']) && ctype_digit((string) $input['recoreco_count']) && (int) $input['recoreco_count'] >= 1) ? (int) $input['recoreco_count'] : 1;
}
// Trigger column + move-mode (v1.9).
$allColumns = $this->columnModel->getList($task['project_id']);
$trig = isset($input['recoreco_trigger_column']) ? (string) $input['recoreco_trigger_column'] : 'any';
$values['recoreco_trigger_column'] = ($trig !== 'any' && array_key_exists((int) $trig, $allColumns)) ? (int) $trig : 'any';
$values['recoreco_trigger_invert'] = isset($input['recoreco_trigger_invert']) ? 1 : 0;
$values['recoreco_move'] = isset($input['recoreco_move']) ? 1 : 0;
if ($values['recoreco_move'] === 1) {
$values['recoreco_follow_finance'] = 0; // Follow-FinanceBuddy is N/A in move-mode
}
$this->taskMetadataModel->save($task['id'], $values);
// Reconcile the template's duplicate links with the setting right away.
@@ -145,6 +156,9 @@ class RecurrenceController extends BaseController
'recoreco_follow_finance' => isset($meta['recoreco_follow_finance']) ? (int) $meta['recoreco_follow_finance'] : ($fb_enabled ? 1 : 0),
'recoreco_limit' => isset($meta['recoreco_limit']) ? (int) $meta['recoreco_limit'] : 0,
'recoreco_count' => isset($meta['recoreco_count']) ? (int) $meta['recoreco_count'] : 1,
'recoreco_move' => isset($meta['recoreco_move']) ? (int) $meta['recoreco_move'] : 0,
'recoreco_trigger_column' => isset($meta['recoreco_trigger_column']) ? $meta['recoreco_trigger_column'] : 'any',
'recoreco_trigger_invert' => isset($meta['recoreco_trigger_invert']) ? (int) $meta['recoreco_trigger_invert'] : 0,
);
}