diff --git a/src/includes/api/TasksController.php b/src/includes/api/TasksController.php index 8025144..99bc452 100644 --- a/src/includes/api/TasksController.php +++ b/src/includes/api/TasksController.php @@ -658,15 +658,44 @@ class TasksController extends ApiController { $days = $oDiff->days; if ($oDiff->invert) $days *= -1; - if ($days < -7 && !$thisYear) { $a['class'] = 'past'; $a['str'] = formatDate3(Config::get('dateformat2'), $y, $m, $d, $lang); } - elseif ($days < -7) { $a['class'] = 'past'; $a['str'] = formatDate3(Config::get('dateformatshort'), $y, $m, $d, $lang); } - elseif ($days < -1) { $a['class'] = 'past'; $a['str'] = sprintf($lang->get('daysago'), abs($days)); } - elseif ($days == -1) { $a['class'] = 'past'; $a['str'] = $lang->get('yesterday'); } - elseif ($days == 0) { $a['class'] = 'today'; $a['str'] = $lang->get('today'); } - elseif ($days == 1) { $a['class'] = 'today'; $a['str'] = $lang->get('tomorrow'); } - elseif ($days <= 7) { $a['class'] = 'soon'; $a['str'] = sprintf($lang->get('indays'), $days); } - elseif ($thisYear) { $a['class'] = 'future'; $a['str'] = formatDate3(Config::get('dateformatshort'), $y, $m, $d, $lang); } - else { $a['class'] = 'future'; $a['str'] = formatDate3(Config::get('dateformat2'), $y, $m, $d, $lang); } + $exact = Config::get('exactduedate') ? true : false; + + if ($days < -7 && !$thisYear) { + $a['class'] = 'past'; + $a['str'] = formatDate3(Config::get('dateformat2'), $y, $m, $d, $lang); + } + elseif ($days < -7) { + $a['class'] = 'past'; + $a['str'] = formatDate3(Config::get('dateformatshort'), $y, $m, $d, $lang); + } + elseif ($days < -1) { + $a['class'] = 'past'; + $a['str'] = !$exact ? sprintf($lang->get('daysago'), abs($days)) : formatDate3(Config::get('dateformatshort'), $y, $m, $d, $lang); + } + elseif ($days == -1) { + $a['class'] = 'past'; + $a['str'] = !$exact ? $lang->get('yesterday') : formatDate3(Config::get('dateformatshort'), $y, $m, $d, $lang); + } + elseif ($days == 0) { + $a['class'] = 'today'; + $a['str'] = !$exact ? $lang->get('today') : formatDate3(Config::get('dateformatshort'), $y, $m, $d, $lang); + } + elseif ($days == 1) { + $a['class'] = 'today'; + $a['str'] = !$exact ? $lang->get('tomorrow') : formatDate3(Config::get('dateformatshort'), $y, $m, $d, $lang); + } + elseif ($days <= 7) { + $a['class'] = 'soon'; + $a['str'] = !$exact ? sprintf($lang->get('indays'), $days) : formatDate3(Config::get('dateformatshort'), $y, $m, $d, $lang); + } + elseif ($thisYear) { + $a['class'] = 'future'; + $a['str'] = formatDate3(Config::get('dateformatshort'), $y, $m, $d, $lang); + } + else { + $a['class'] = 'future'; + $a['str'] = formatDate3(Config::get('dateformat2'), $y, $m, $d, $lang); + } #avoid short year $fmt = str_replace('y', 'Y', Config::get('dateformat2')); diff --git a/src/includes/class.config.php b/src/includes/class.config.php index 4daaf02..bb3c82c 100644 --- a/src/includes/class.config.php +++ b/src/includes/class.config.php @@ -81,6 +81,7 @@ class Config # Show task date in list 'showdate' => array('default'=>0, 'type'=>'i'), 'showtime' => array('default'=>0, 'type'=>'i'), + 'exactduedate' => array('default'=>0, 'type'=>'i'), # Use Markdown syntax for notes. Set to 'v1' to use old v1.6 syntax. 'markup' => array('default'=>'markdown', 'type'=>'s'), diff --git a/src/includes/lang/en.json b/src/includes/lang/en.json index f02caeb..bf835ce 100644 --- a/src/includes/lang/en.json +++ b/src/includes/lang/en.json @@ -183,6 +183,7 @@ "set_cancel": "Cancel", "set_showdate": "Show task date in list", "set_showtime": "Show time", + "set_exactduedate": "Always show due date as a date", "set_appearance": "Appearance", "set_appearance_system": "Same as system", "set_appearance_light": "Light", diff --git a/src/includes/lang/ru.json b/src/includes/lang/ru.json index 94c6a02..e9e4b47 100644 --- a/src/includes/lang/ru.json +++ b/src/includes/lang/ru.json @@ -183,6 +183,7 @@ "set_cancel": "Отмена", "set_showdate": "Показывать дату создания задачи", "set_showtime": "Показывать время", + "set_exactduedate": "Показывать срок исполнения всегда датой", "set_appearance": "Тема оформления", "set_appearance_system": "Как в системе", "set_appearance_light": "Светлая", diff --git a/src/settings.php b/src/settings.php index 79a0451..c1c9337 100644 --- a/src/settings.php +++ b/src/settings.php @@ -52,6 +52,7 @@ if(isset($_POST['save'])) Config::set('title', removeNewLines(trim(_post('title'))) ); Config::set('showdate', (int)_post('showdate')); Config::set('showtime', (int)_post('showtime')); + Config::set('exactduedate', (int)_post('exactduedate')); Config::set('appearance', removeNewLines(trim(_post('appearance'))) ); Config::save(); $t['saved'] = 1; @@ -365,6 +366,13 @@ header('Content-type:text/html; charset=utf-8'); +
+
:
+
+
+ +
+
: