Added timezone information to tasks so that recurring tasks will use the timezone from the user

This commit is contained in:
Tzahi12345
2023-01-03 21:21:14 -05:00
parent c382758833
commit 8c63a78884
6 changed files with 12 additions and 4 deletions

View File

@@ -9,6 +9,7 @@ dayOfWeek?: Array<number>;
hour?: number;
minute?: number;
timestamp?: number;
tz?: string;
};
};

View File

@@ -35,8 +35,8 @@
<mat-cell *matCellDef="let element">
<span *ngIf="element.running || element.confirming"><mat-spinner matTooltip="Busy" i18n-matTooltip="Busy" [diameter]="25"></mat-spinner></span>
<span *ngIf="!(element.running || element.confirming) && element.schedule" style="display: flex">
<ng-container i18n="Scheduled">Scheduled for</ng-container>&nbsp;
{{element.next_invocation | date: 'short'}}<mat-icon style="font-size: 16px; display: inline-flex; align-items: center; padding-left: 5px;" *ngIf="element.schedule.type === 'recurring'">repeat</mat-icon>
<ng-container i18n="Scheduled">Scheduled for</ng-container>
{{element.next_invocation | date: 'short'}}<mat-icon style="font-size: 16px; display: inline-flex; align-items: center; padding-left: 5px; padding-bottom: 6px;" *ngIf="element.schedule.type === 'recurring'">repeat</mat-icon>
</span>
<span *ngIf="!(element.running || element.confirming) && !element.schedule">
<ng-container i18n="Not scheduled">Not scheduled</ng-container>

View File

@@ -41,6 +41,7 @@
<mat-form-field>
<mat-label>Time</mat-label>
<input type="time" matInput [(ngModel)]="time" [disabled]="!enabled">
<mat-hint *ngIf="Intl?.DateTimeFormat().resolvedOptions().timeZone">{{Intl.DateTimeFormat().resolvedOptions().timeZone}}</mat-hint>
</mat-form-field>
</div>
</div>

View File

@@ -15,8 +15,9 @@ export class UpdateTaskScheduleDialogComponent implements OnInit {
days_of_week = [];
interval = 'daily';
time = null;
date = null;
date: Date = null;
today = new Date();
Intl = Intl;
constructor(@Inject(MAT_DIALOG_DATA) public data: {task: Task}, private dialogRef: MatDialogRef<UpdateTaskScheduleDialogComponent>, private postsService: PostsService) {
this.processTask(this.data.task);
@@ -66,6 +67,8 @@ export class UpdateTaskScheduleDialogComponent implements OnInit {
if (!this.time) {
// needs time!
this.postsService.openSnackBar($localize`You must input a time!`);
return;
}
const hours = parseInt(this.time.split(':')[0]);
@@ -81,6 +84,7 @@ export class UpdateTaskScheduleDialogComponent implements OnInit {
this.date.setHours(hours, minutes);
schedule['data'] = {timestamp: this.date.getTime()};
}
schedule['data']['tz'] = this.Intl?.DateTimeFormat().resolvedOptions().timeZone;
this.dialogRef.close(schedule);
}
}