feat(calendar): search for past events and tasks

Fixes #5441
This commit is contained in:
Francis Lachapelle
2022-04-28 13:47:02 -04:00
parent 8fccd23227
commit 2f725a3f2d
3 changed files with 78 additions and 1 deletions

View File

@@ -221,6 +221,11 @@
"view_next31" = "Next 31 days";
"view_thismonth" = "This Month";
"view_thisyear" = "This Year";
"view_last7" = "Last 7 days";
"view_last14" = "Last 14 days";
"view_last31" = "Last 31 days";
"view_lastmonth" = "Last Month";
"view_lastyear" = "Last Year";
"view_future" = "All Future Events";
"view_selectedday" = "Selected Day";
"view_not_started" = "Not started tasks";

View File

@@ -214,6 +214,48 @@ static NSArray *tasksFields = nil;
}
endDate = [startDate endOfDay];
}
else if ([popupValue isEqualToString: @"view_last7"])
{
endDate = [NSCalendarDate calendarDate];
[endDate setTimeZone: userTZ];
startDate = [[endDate dateByAddingYears: 0 months: 0 days: -6] beginOfDay];
}
else if ([popupValue isEqualToString: @"view_last14"])
{
endDate = [NSCalendarDate calendarDate];
[endDate setTimeZone: userTZ];
startDate = [[endDate dateByAddingYears: 0 months: 0 days: -13] beginOfDay];
}
else if ([popupValue isEqualToString: @"view_last31"])
{
endDate = [NSCalendarDate calendarDate];
[endDate setTimeZone: userTZ];
startDate = [[endDate dateByAddingYears: 0 months: 0 days: -30] beginOfDay];
}
else if ([popupValue isEqualToString: @"view_lastmonth"])
{
newDate = [NSCalendarDate calendarDate];
[newDate setTimeZone: userTZ];
endDate = [[[newDate firstDayOfMonth] dateByAddingYears:0 months:0 days:-1 hours:0 minutes:0 seconds:0] endOfDay];
startDate = [[endDate firstDayOfMonth] beginOfDay];
}
else if ([popupValue isEqualToString: @"view_lastyear"])
{
newDate = [NSCalendarDate dateWithYear: [[NSCalendarDate calendarDate] yearOfCommonEra] - 1
month: 1
day: 1
hour: 0 minute: 0 second: 0
timeZone: userTZ];
startDate = [[newDate firstDayOfMonth] beginOfDay];
newDate = [NSCalendarDate dateWithYear: [[NSCalendarDate calendarDate] yearOfCommonEra] - 1
month: 12
day: 31
hour: 0 minute: 0 second: 0
timeZone: userTZ];
endDate = [[newDate lastDayOfMonth] endOfDay];
}
NSLog(@"***[UIxCalListingActions _setupDatesWithPopup:%@ andUserTZ:%@] %@ => %@", popupValue, userTZ, startDate, endDate);
}
- (void) _setupContext
@@ -1672,7 +1714,12 @@ _computeBlocksPosition (NSArray *blocks)
[tasksView isEqualToString:@"view_next14"] ||
[tasksView isEqualToString:@"view_next31"] ||
[tasksView isEqualToString:@"view_thismonth"] ||
[tasksView isEqualToString:@"view_thisyear"]) &&
[tasksView isEqualToString:@"view_thisyear"] ||
[tasksView isEqualToString:@"view_last7"] ||
[tasksView isEqualToString:@"view_last14"] ||
[tasksView isEqualToString:@"view_last31"] ||
[tasksView isEqualToString:@"view_lastmonth"] ||
[tasksView isEqualToString:@"view_lastyear"]) &&
(endDateStamp == 0 || endDateStamp >= startSecs))
[filteredTasks addObject: filteredTask];
else if ([tasksView isEqualToString:@"view_all"])

View File

@@ -202,6 +202,31 @@
<md-icon>{{ list.filteredBy('view_thisyear') ? 'check' : null }}</md-icon><var:string label:value="view_thisyear"/>
</md-button>
</md-menu-item>
<md-menu-item>
<md-button ng-click="list.filter('view_last7')">
<md-icon>{{ list.filteredBy('view_last7') ? 'check' : null }}</md-icon> <var:string label:value="view_last7"/>
</md-button>
</md-menu-item>
<md-menu-item>
<md-button ng-click="list.filter('view_last14')">
<md-icon>{{ list.filteredBy('view_last14') ? 'check' : null }}</md-icon> <var:string label:value="view_last14"/>
</md-button>
</md-menu-item>
<md-menu-item>
<md-button ng-click="list.filter('view_last31')">
<md-icon>{{ list.filteredBy('view_last31') ? 'check' : null }}</md-icon><var:string label:value="view_last31"/>
</md-button>
</md-menu-item>
<md-menu-item>
<md-button ng-click="list.filter('view_lastmonth')">
<md-icon>{{ list.filteredBy('view_lastmonth') ? 'check' : null }}</md-icon><var:string label:value="view_lastmonth"/>
</md-button>
</md-menu-item>
<md-menu-item>
<md-button ng-click="list.filter('view_lastyear')">
<md-icon>{{ list.filteredBy('view_lastyear') ? 'check' : null }}</md-icon><var:string label:value="view_lastyear"/>
</md-button>
</md-menu-item>
<md-menu-item ng-if="list.componentType == 'events'">
<md-button ng-click="list.filter('view_future')">
<md-icon>{{ list.filteredBy('view_future') ? 'check' : null }}</md-icon> <var:string label:value="view_future"/>