Skip to content

Commit 256ff9f

Browse files
committed
Changing tc_details page to look more like v2 interface of details page
* resolved conflicts * add EEE format into date * make modified date look like disabled
2 parents 5708634 + 7ec5070 commit 256ff9f

File tree

2 files changed

+37
-20
lines changed

2 files changed

+37
-20
lines changed

lib/app/modules/taskc_details/controllers/taskc_details_controller.dart

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -107,8 +107,9 @@ class TaskcDetailsController extends GetxController {
107107
if (date == null) return '-';
108108
// If date is epoch seconds as int
109109
bool is24hrFormat = AppSettings.use24HourFormatRx.value;
110-
final pattern =
111-
is24hrFormat ? 'yyyy-MM-dd HH:mm:ss' : 'yyyy-MM-dd hh:mm:ss a';
110+
final pattern = is24hrFormat
111+
? 'EEE, yyyy-MM-dd HH:mm:ss'
112+
: 'EEE, yyyy-MM-dd hh:mm:ss a';
112113

113114
if (date == null) return '-';
114115

@@ -138,7 +139,7 @@ class TaskcDetailsController extends GetxController {
138139
final parsedDate = DateTime.parse(dateString).toLocal();
139140
return DateFormat(pattern).format(parsedDate);
140141
} catch (e) {
141-
debugPrint('Error parsing date: $dateString');
142+
debugPrint('Error parsing date: $dateString $e');
142143
return '-';
143144
}
144145
}
@@ -227,6 +228,11 @@ class TaskcDetailsController extends GetxController {
227228
}
228229

229230
Future<void> saveTask() async {
231+
bool is24hrFormat = AppSettings.use24HourFormatRx.value;
232+
final datePattern = is24hrFormat
233+
? 'EEE, yyyy-MM-dd HH:mm:ss'
234+
: 'EEE, yyyy-MM-dd hh:mm:ss a';
235+
230236
if (tags.length == 1 && tags[0] == "") {
231237
tags.clear();
232238
}
@@ -262,7 +268,7 @@ class TaskcDetailsController extends GetxController {
262268
due: () {
263269
if (due.string == '-' || due.string.isEmpty) return null;
264270
try {
265-
final parsed = DateFormat('yyyy-MM-dd HH:mm:ss').parse(due.string);
271+
final parsed = DateFormat(datePattern).parse(due.string);
266272
return parsed.toUtc().toIso8601String();
267273
} catch (e) {
268274
try {
@@ -278,8 +284,7 @@ class TaskcDetailsController extends GetxController {
278284
start: () {
279285
if (start.string == '-' || start.string.isEmpty) return null;
280286
try {
281-
final parsed =
282-
DateFormat('yyyy-MM-dd HH:mm:ss').parse(start.string);
287+
final parsed = DateFormat(datePattern).parse(start.string);
283288
return parsed.toUtc().toIso8601String();
284289
} catch (e) {
285290
try {
@@ -295,7 +300,7 @@ class TaskcDetailsController extends GetxController {
295300
wait: () {
296301
if (wait.string == '-' || wait.string.isEmpty) return null;
297302
try {
298-
final parsed = DateFormat('yyyy-MM-dd HH:mm:ss').parse(wait.string);
303+
final parsed = DateFormat(datePattern).parse(wait.string);
299304
return parsed.toUtc().toIso8601String();
300305
} catch (e) {
301306
try {

lib/app/modules/taskc_details/views/taskc_details_view.dart

Lines changed: 25 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -68,12 +68,21 @@ class TaskcDetailsView extends GetView<TaskcDetailsController> {
6868
),
6969
// Start / Wait: editable date pickers for replica tasks, read-only otherwise
7070
if (controller.isReplicaTask) ...[
71-
_buildDatePickerDetail(
72-
context,
73-
'${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.detailPageStart}:',
74-
controller.start.value,
75-
() => controller.pickDateTime(controller.start),
76-
),
71+
controller.start.value == '-'
72+
? _buildDatePickerDetail(
73+
context,
74+
'${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.detailPageStart}:',
75+
controller.start.value,
76+
() => controller.updateField(
77+
controller.start,
78+
controller.formatDate(DateTime.now()),
79+
),
80+
)
81+
: _buildDetail(
82+
context,
83+
'${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.detailPageStart}:',
84+
controller.start.value,
85+
disabled: true),
7786
_buildDatePickerDetail(
7887
context,
7988
'${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.detailPageWait}:',
@@ -138,11 +147,11 @@ class TaskcDetailsView extends GetView<TaskcDetailsController> {
138147

139148
// Modified is available for both; show it for both types
140149
_buildDetail(
141-
context,
142-
'${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.detailPageModified}:',
143-
controller.formatDate(
144-
controller.initialTaskModifiedForFormatting()),
145-
),
150+
context,
151+
'${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.detailPageModified}:',
152+
controller.formatDate(
153+
controller.initialTaskModifiedForFormatting()),
154+
disabled: true),
146155
],
147156
),
148157
),
@@ -193,7 +202,8 @@ class TaskcDetailsView extends GetView<TaskcDetailsController> {
193202
);
194203
}
195204

196-
Widget _buildDetail(BuildContext context, String label, String value) {
205+
Widget _buildDetail(BuildContext context, String label, String value,
206+
{bool disabled = false}) {
197207
TaskwarriorColorTheme tColors =
198208
Theme.of(context).extension<TaskwarriorColorTheme>()!;
199209
return Container(
@@ -220,7 +230,9 @@ class TaskcDetailsView extends GetView<TaskcDetailsController> {
220230
style: TextStyle(
221231
fontWeight: FontWeight.bold,
222232
fontSize: 18,
223-
color: tColors.primaryTextColor,
233+
color: disabled
234+
? tColors.primaryDisabledTextColor
235+
: tColors.primaryTextColor,
224236
),
225237
),
226238
const SizedBox(width: 8),

0 commit comments

Comments
 (0)