diff --git a/app/models/query.rb b/app/models/query.rb index 6d04378..67f6c6b 100644 --- a/app/models/query.rb +++ b/app/models/query.rb @@ -187,6 +187,7 @@ class Query < ActiveRecord::Base "t+" => :label_in, "t" => :label_today, "ld" => :label_yesterday, + "nw" => :label_next_week, "w" => :label_this_week, "lw" => :label_last_week, "l2w" => [:label_last_n_weeks, {:count => 2}], @@ -210,8 +211,8 @@ class Query < ActiveRecord::Base :list_status => [ "o", "=", "!", "c", "*" ], :list_optional => [ "=", "!", "!*", "*" ], :list_subprojects => [ "*", "!*", "=" ], - :date => [ "=", ">=", "<=", "><", "t+", ">t-", " [ "=", ">=", "<=", "><", ">t-", " [ "=", ">=", "<=", "><", "t+", ">t-", " [ "=", ">=", "<=", "><", ">t-", " [ "=", "~", "!", "!~", "!*", "*" ], :text => [ "~", "!~", "!*", "*" ], :integer => [ "=", ">=", "<=", "><", "!*", "*" ], @@ -277,7 +278,7 @@ class Query < ActiveRecord::Base # filter requires one or more values (values_for(field) and !values_for(field).first.blank?) or # filter doesn't require any value - ["o", "c", "!*", "*", "t", "ld", "w", "lw", "l2w", "m", "lm", "y"].include? operator_for(field) + ["o", "c", "!*", "*", "t", "ld", "nw", "w", "lw", "l2w", "m", "lm", "y"].include? operator_for(field) end if filters end @@ -745,6 +746,12 @@ class Query < ActiveRecord::Base when "ld" # = yesterday sql = relative_date_clause(db_table, db_field, -1, -1) + when "nw" + # = next week + first_day_of_week = l(:general_first_day_of_week).to_i + day_of_week = Date.today.cwday + days_ago = (day_of_week >= first_day_of_week ? day_of_week - first_day_of_week : day_of_week + 7 - first_day_of_week) + sql = relative_date_clause(db_table, db_field, - days_ago + 7, - days_ago + 6 + 7) when "w" # = this week first_day_of_week = l(:general_first_day_of_week).to_i diff --git a/config/locales/en.yml b/config/locales/en.yml index 86d9b50..fbb485c 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -680,6 +680,7 @@ en: label_today: today label_all_time: all time label_yesterday: yesterday + label_next_week: next week label_this_week: this week label_last_week: last week label_last_n_weeks: "last %{count} weeks" diff --git a/public/javascripts/application.js b/public/javascripts/application.js index 80d8339..c425fda 100644 --- a/public/javascripts/application.js +++ b/public/javascripts/application.js @@ -266,6 +266,7 @@ function toggleOperator(field) { case "*": case "t": case "ld": + case "nw": case "w": case "lw": case "l2w":