Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,9 @@ class ManageTaskServerController extends GetxController {
late RxString alias;
Server? server;
Credentials? credentials;
String? trust;
final TextEditingController taskrcContentController = TextEditingController();

RxBool isTaskDServerActive = true.obs;
RxBool hideKey = true.obs;

Expand All @@ -37,13 +39,12 @@ class ManageTaskServerController extends GetxController {
alias = RxString(splashController.profilesMap[profile.value] ?? '');
var contents = rc.Taskrc(storage.home.home).readTaskrc();
if (contents != null) {
server = Taskrc.fromString(contents).server;
credentials = Taskrc.fromString(contents).credentials;
}
if (contents != null) {
server = Taskrc.fromString(contents).server;
credentials = Taskrc.fromString(contents).credentials;
final taskrc = Taskrc.fromString(contents);
server = taskrc.server;
credentials = taskrc.credentials;
trust = taskrc.trust; // ⬅️ ADD THIS
}

configureCredentialString();
update();
}
Expand All @@ -53,8 +54,7 @@ class ManageTaskServerController extends GetxController {
var contents = await rootBundle.loadString('assets/.taskrc');
rc.Taskrc(storage.home.home).addTaskrc(contents);
var taskrc = Taskrc.fromString(contents);
server = taskrc.server;
credentials = taskrc.credentials;
trust = taskrc.trust;
for (var entry in {
'taskd.certificate': '.task/first_last.cert.pem',
'taskd.key': '.task/first_last.key.pem',
Expand Down Expand Up @@ -96,12 +96,12 @@ class ManageTaskServerController extends GetxController {

// Check if the server and credentials are present in the Taskrc object
if (taskrc.server != null && taskrc.credentials != null) {
// Update the server and credentials variables

server = taskrc.server;
credentials = taskrc.credentials;
trust = taskrc.trust; // ⬅️ ADD THIS
update();


// Handle the case when server or credentials are missing in the Taskrc object
Navigator.pop(context);

Expand Down Expand Up @@ -162,8 +162,16 @@ class ManageTaskServerController extends GetxController {

if (credentialsString!.value.isNotEmpty && server.toString().isNotEmpty) {
//print(credentialsString.value);
taskrcContentController.text =
"taskd.server=$server\ntaskd.credentials=${credentials!.org}/${credentials!.user}/$key";
var taskrcContent =
"taskd.server=$server\n"
"taskd.credentials=${credentials!.org}/${credentials!.user}/$key";

if (trust?.isNotEmpty == true) {
taskrcContent += "\ntaskd.trust=$trust"; // ⬅️ ADD THIS
}

taskrcContentController.text = taskrcContent;


isTaskDServerActive.value = false;
}
Expand Down
29 changes: 27 additions & 2 deletions lib/app/utils/add_task_dialogue/date_picker_input.dart
Original file line number Diff line number Diff line change
Expand Up @@ -106,11 +106,36 @@ class _AddTaskDatePickerInputState extends State<AddTaskDatePickerInput> {
firstDate: DateTime.now(),
lastDate: DateTime(2101),
);

// FIX: Check if date was selected before showing time picker
if (picked == null) {
return; // User canceled date picker, exit early
}

// Only show time picker if date was selected
final TimeOfDay? time = await showTimePicker(
context: context,
initialTime: TimeOfDay.now(),
);
if (picked == null || time == null) return;

// If user cancels time picker, still set the date with default time
if (time == null) {
setState(() {
// Set date with end-of-day time (23:59)
_selectedDates[forIndex] = picked.add(
const Duration(hours: 23, minutes: 59),
);
// Update the controller text
_controllers[forIndex].text =
dateToStringForAddTask(_selectedDates[forIndex]!);
});
if (widget.onDateChanges != null) {
widget.onDateChanges!(_selectedDates);
}
return;
}

// Both date and time selected
setState(() {
_selectedDates[forIndex] =
picked.add(Duration(hours: time.hour, minutes: time.minute));
Expand All @@ -135,4 +160,4 @@ class _AddTaskDatePickerInputState extends State<AddTaskDatePickerInput> {
}
return null;
}
}
}
6 changes: 6 additions & 0 deletions lib/app/utils/taskserver/taskrc.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ class Taskrc {
Taskrc({
this.server,
this.credentials,
this.trust,
// ignore: always_put_required_named_parameters_first
required this.pemFilePaths,
});
Expand All @@ -20,15 +21,20 @@ class Taskrc {
factory Taskrc.fromMap(Map taskrc) {
var server = taskrc['taskd.server'];
var credentials = taskrc['taskd.credentials'];
var trust = taskrc['taskd.trust']; // ⬅️ ADD THIS LINE

return Taskrc(
server: (server == null) ? null : Server.fromString(server),
credentials:
(credentials == null) ? null : Credentials.fromString(credentials),
trust: trust, // ⬅️ ADD THIS LINE
pemFilePaths: PemFilePaths.fromTaskrc(taskrc),
);
}


final Server? server;
final Credentials? credentials;
final String? trust;
final PemFilePaths pemFilePaths;
}