mirror of
https://github.com/GothenburgBitFactory/timewarrior.git
synced 2025-06-26 10:54:28 +02:00
Introduce default range parameter when requesting filter from CLI
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
This commit is contained in:
parent
7e11fde992
commit
6117ce1a84
4 changed files with 21 additions and 24 deletions
|
@ -636,7 +636,7 @@ std::vector <std::string> CLI::getDomReferences () const
|
|||
// <duration> ["before"|"after" <date>]
|
||||
// <duration> "ago"
|
||||
//
|
||||
Interval CLI::getFilter () const
|
||||
Interval CLI::getFilter (const Range& default_range) const
|
||||
{
|
||||
// One instance, so we can directly compare.
|
||||
Datetime now;
|
||||
|
@ -708,8 +708,13 @@ Interval CLI::getFilter () const
|
|||
}
|
||||
}
|
||||
|
||||
if (args.empty ())
|
||||
{
|
||||
filter.setRange(default_range);
|
||||
}
|
||||
|
||||
// <date>
|
||||
if (args.size () == 1 &&
|
||||
else if (args.size () == 1 &&
|
||||
args[0] == "<date>")
|
||||
{
|
||||
filter.setRange ({Datetime (start), 0});
|
||||
|
|
|
@ -72,7 +72,7 @@ public:
|
|||
std::string getAnnotation() const;
|
||||
Duration getDuration() const;
|
||||
std::vector<std::string> getDomReferences () const;
|
||||
Interval getFilter () const;
|
||||
Interval getFilter (const Range& = {}) const;
|
||||
std::string dump (const std::string& title = "CLI Parser") const;
|
||||
|
||||
private:
|
||||
|
|
|
@ -45,13 +45,11 @@ int CmdChartDay (
|
|||
Rules& rules,
|
||||
Database& database)
|
||||
{
|
||||
// Create a filter, and if empty, choose the current day.
|
||||
auto filter = cli.getFilter ();
|
||||
Range default_range = {};
|
||||
expandIntervalHint (rules.get ("reports.day.range", ":day"), default_range);
|
||||
|
||||
if (! filter.is_started ())
|
||||
{
|
||||
expandIntervalHint (rules.get ("reports.day.range", ":day"), filter);
|
||||
}
|
||||
// Create a filter, and if empty, choose the current day.
|
||||
auto filter = cli.getFilter (default_range);
|
||||
|
||||
return renderChart (cli, "day", filter, rules, database);
|
||||
}
|
||||
|
@ -62,13 +60,11 @@ int CmdChartWeek (
|
|||
Rules& rules,
|
||||
Database& database)
|
||||
{
|
||||
// Create a filter, and if empty, choose the current week.
|
||||
auto filter = cli.getFilter ();
|
||||
Range default_range = {};
|
||||
expandIntervalHint (rules.get ("reports.week.range", ":week"), default_range);
|
||||
|
||||
if (! filter.is_started ())
|
||||
{
|
||||
expandIntervalHint (rules.get ("reports.week.range", ":week"), filter);
|
||||
}
|
||||
// Create a filter, and if empty, choose the current week.
|
||||
auto filter = cli.getFilter (default_range);
|
||||
|
||||
return renderChart (cli, "week", filter, rules, database);
|
||||
}
|
||||
|
@ -79,13 +75,11 @@ int CmdChartMonth (
|
|||
Rules& rules,
|
||||
Database& database)
|
||||
{
|
||||
// Create a filter, and if empty, choose the current month.
|
||||
auto filter = cli.getFilter ();
|
||||
Range default_range = {};
|
||||
expandIntervalHint (rules.get ("reports.month.range", ":month"), default_range);
|
||||
|
||||
if (! filter.is_started ())
|
||||
{
|
||||
expandIntervalHint (rules.get ("reports.month.range", ":month"), filter);
|
||||
}
|
||||
// Create a filter, and if empty, choose the current month.
|
||||
auto filter = cli.getFilter (default_range);
|
||||
|
||||
return renderChart (cli, "month", filter, rules, database);
|
||||
}
|
||||
|
|
|
@ -45,9 +45,7 @@ int CmdSummary (
|
|||
auto verbose = rules.getBoolean ("verbose");
|
||||
|
||||
// Create a filter, and if empty, choose 'today'.
|
||||
auto filter = cli.getFilter ();
|
||||
if (! filter.is_started ())
|
||||
filter.setRange (Datetime ("today"), Datetime ("tomorrow"));
|
||||
auto filter = cli.getFilter (Range { Datetime ("today"), Datetime ("tomorrow") });
|
||||
|
||||
if (! filter.is_ended())
|
||||
filter.end = filter.start + Duration("1d").toTime_t();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue