* can enable/disable showing a time of task date in tasklist (disabled by default)

This commit is contained in:
maxpozdeev 2022-09-15 16:03:47 +03:00
parent e8a07a034c
commit 87beb74321
10 changed files with 38 additions and 20 deletions

View file

@ -1230,13 +1230,16 @@ _mtt.prepareDueDate = prepareDueDate;
function prepareInlineDate(item)
{
var inlineDate = item.dateInlineTitle;
var title = item.dateFull;
if (item.compl) {
inlineDate = item.dateCompletedInlineTitle;
title = item.dateCompletedFull;
}
else if ( item.isEdited && (curList.sort == 4 || curList.sort == 104) ) {
inlineDate = item.dateEditedInlineTitle;
title = item.dateEditedFull;
}
return '<span class="task-id">#' + item.id + '</span> ' + inlineDate;
return '<span class="task-id">#' + item.id + '</span> <span title="' + title +'">' + inlineDate + '</span>';
}
_mtt.prepareInlineDate = prepareInlineDate;
@ -1683,16 +1686,16 @@ function editTask(id)
form.duedate.value = item.duedate;
form.prio.value = item.prio;
$('#taskedit_id').text('#' + item.id);
$('#taskedit_info .date-created-value').text(item.date);
$('#taskedit_info .date-created-value').text(item.date).attr('title', item.dateFull);;
if (item.isEdited && !item.compl) {
$('#taskedit_info .date-edited-value').text(item.dateEdited);
$('#taskedit_info .date-edited-value').text(item.dateEdited).attr('title', item.dateEditedFull);
$('#taskedit_info .date-edited').show()
}
else {
$('#taskedit_info .date-edited').hide();
}
if (item.compl) {
$('#taskedit_info .date-completed-value').text(item.dateCompleted);
$('#taskedit_info .date-completed-value').text(item.dateCompleted).attr('title', item.dateCompletedFull);;
$('#taskedit_info .date-completed').show()
}
else {

View file

@ -930,6 +930,9 @@ li.mtt-item-hidden { display:none; }
color:var(--color-text-reduced);
padding-top: 4px;
}
.mtt-settings-table .td {
line-height: 1.5em;
}
.mtt-settings-table .in350 { min-width:350px; }
.mtt-settings-table textarea.in350 { height:400px; }
.mtt-settings-table input,

View file

@ -455,9 +455,19 @@ class TasksController extends ApiController {
$lang = Lang::instance();
$dueA = $this->prepareDuedate($r['duedate']);
$dCreated = timestampToDatetime($r['d_created']);
$isEdited = $r['d_edited'] != $r['d_created'];
$isEdited = ($r['d_edited'] != $r['d_created']);
$dEdited = $isEdited ? timestampToDatetime($r['d_edited']) : '';
$dCompleted = $r['d_completed'] ? timestampToDatetime($r['d_completed']) : '';
if (!Config::get('showtime')) {
$dCreatedFull = timestampToDatetime($r['d_created'], true);
$dEditedFull = $isEdited ? timestampToDatetime($r['d_edited'], true) : '';
$dCompletedFull = $r['d_completed'] ? timestampToDatetime($r['d_completed'], true) : '';
}
else {
$dCreatedFull = $dCreated;
$dEditedFull = $dEdited;
$dCompletedFull = $dCompleted;
}
return array(
'id' => $r['id'],
@ -466,12 +476,15 @@ class TasksController extends ApiController {
'listId' => $r['list_id'],
'date' => htmlarray($dCreated),
'dateInt' => (int)$r['d_created'],
'dateFull' => htmlarray($dCreatedFull),
'dateInlineTitle' => htmlarray(sprintf($lang->get('taskdate_inline_created'), $dCreated)),
'dateEdited' => htmlarray($dEdited),
'dateEditedInt' => (int)$r['d_edited'],
'dateEditedFull' => htmlarray($dEditedFull),
'dateEditedInlineTitle' => htmlarray(sprintf($lang->get('taskdate_inline_edited'), $dEdited)),
'isEdited' => (bool)$isEdited,
'dateCompleted' => htmlarray($dCompleted),
'dateCompletedFull' => htmlarray($dCompletedFull),
'dateCompletedInlineTitle' => htmlarray(sprintf($lang->get('taskdate_inline_completed'), $dCompleted)),
'compl' => (int)$r['compl'],
'prio' => $r['prio'],

View file

@ -80,6 +80,7 @@ class Config
# Show task date in list
'showdate' => array('default'=>0, 'type'=>'i'),
'showtime' => 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'),

View file

@ -103,7 +103,7 @@ class Lang
}
/* minimal number of translated strings to use in js front-end */
function jsStrings()
function jsStrings(bool $escape = true)
{
$a = array();
$a['daysMin'] = $this->get('days_min');
@ -137,17 +137,7 @@ class Lang
]);
$a['_rtl'] = $this->rtl() ? 1 : 0;
return $a;
}
function makeJS($pretty = 0)
{
$a = $this->jsStrings();
$opts = JSON_UNESCAPED_UNICODE;
if ($pretty) {
$opts |= JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES;
}
return json_encode($a, $opts);
return ($escape ? htmlarray($a) : $a);
}
protected function fillWithValues(array &$a, array $keys)

View file

@ -177,6 +177,7 @@
"set_submit": "Submit changes",
"set_cancel": "Cancel",
"set_showdate": "Show task date in list",
"set_showtime": "Show time",
"set_appearance": "Appearance",
"set_appearance_system": "Same as system",
"set_appearance_light": "Light theme",

View file

@ -177,6 +177,7 @@
"set_submit": "Сохранить изменения",
"set_cancel": "Отмена",
"set_showdate": "Показывать дату создания задачи",
"set_showtime": "Показывать время",
"set_appearance": "Тема оформления",
"set_appearance_system": "Как в системе",
"set_appearance_light": "Светлая",

View file

@ -76,6 +76,7 @@ function js_options()
"needAuth" => need_auth() ? true : false,
"isLogged" => is_logged() ? true : false,
"showdate" => Config::get('showdate') ? true : false,
"showtime" => Config::get('showtime') ? true : false,
"duedatepickerformat" => htmlspecialchars(Config::get('dateformat2')),
"firstdayofweek" => (int) Config::get('firstdayofweek'),
"calendarIcon" => get_mttinfo('theme_url'). 'images/calendar.svg',

View file

@ -220,9 +220,12 @@ function setup_and_start_session()
session_start();
}
function timestampToDatetime($timestamp) : string
function timestampToDatetime($timestamp, $forceTime = false) : string
{
$format = Config::get('dateformat') .' '. (Config::get('clock') == 12 ? 'g:i A' : 'H:i');
$format = Config::get('dateformat');
if ($forceTime || Config::get('showtime')) {
$format .= ' '. (Config::get('clock') == 12 ? 'g:i A' : 'H:i');
}
return formatTime($format, $timestamp);
}

View file

@ -51,6 +51,7 @@ if(isset($_POST['save']))
Config::set('dateformatshort', removeNewLines(_post('dateformatshort')) );
Config::set('title', removeNewLines(trim(_post('title'))) );
Config::set('showdate', (int)_post('showdate'));
Config::set('showtime', (int)_post('showtime'));
Config::set('appearance', removeNewLines(trim(_post('appearance'))) );
Config::save();
$t['saved'] = 1;
@ -341,7 +342,8 @@ header('Content-type:text/html; charset=utf-8');
<div class="th"><?php _e('set_showdate');?>:</div>
<div class="td">
<label><input type="radio" name="showdate" value="1" <?php if(_c('showdate')) echo 'checked="checked"'; ?> /><?php _e('set_enabled');?></label> <br/>
<label><input type="radio" name="showdate" value="0" <?php if(!_c('showdate')) echo 'checked="checked"'; ?> /><?php _e('set_disabled');?></label>
<label><input type="radio" name="showdate" value="0" <?php if(!_c('showdate')) echo 'checked="checked"'; ?> /><?php _e('set_disabled');?></label> <br/>
<label><input type="checkbox" name="showtime" value="1" <?php if(_c('showtime')) echo 'checked="checked"'; ?> /><?php _e('set_showtime');?></label>
</div>
</div>