mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-04-29 17:27:31 +08:00
Add archived on column [SCI-6482] (#3823)
Co-authored-by: Anton <anton@scinote.net>
This commit is contained in:
parent
5223ce13f3
commit
ec6886735c
4 changed files with 47 additions and 3 deletions
app
javascript
packs/vue
vue/repository_filter
services
|
@ -14,7 +14,8 @@ window.initRepositoryFilter = () => {
|
|||
{ id: 'row_name', name: 'Name', data_type: 'RepositoryTextValue' },
|
||||
{ id: 'added_on', name: 'Added on', data_type: 'RepositoryDateTimeValue' },
|
||||
{ id: 'added_by', name: 'Added by', data_type: 'RepositoryUserValue' },
|
||||
{ id: 'archived_by', name: 'Archived by', data_type: 'RepositoryUserValue' }
|
||||
{ id: 'archived_by', name: 'Archived by', data_type: 'RepositoryUserValue' },
|
||||
{ id: 'archived_on', name: 'Archived on', data_type: 'RepositoryDateTimeValue' }
|
||||
];
|
||||
const repositoryFilterContainer = new Vue({
|
||||
el: '#filterContainer',
|
||||
|
|
|
@ -75,7 +75,8 @@
|
|||
},
|
||||
computed: {
|
||||
isBlank(){
|
||||
return this.operator == 'any_of' && !this.value;
|
||||
return (this.operator == 'any_of' && !this.value) ||
|
||||
(this.filter.column.id === 'archived_by' && $('.repository-show').hasClass('active') ) ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,7 +16,8 @@ export default {
|
|||
},
|
||||
computed: {
|
||||
isBlank() {
|
||||
return this.operator === 'equal_to' && !this.value;
|
||||
return (this.operator === 'equal_to' && !this.value) ||
|
||||
(this.filter.column.id === 'archived_on' && $('.repository-show').hasClass('active'));
|
||||
},
|
||||
isPreset() {
|
||||
return [
|
||||
|
|
|
@ -135,6 +135,8 @@ class RepositoryDatatableService
|
|||
build_added_by_filter_condition(repository_rows, filter_element_params)
|
||||
when 'archived_by'
|
||||
build_archived_by_filter_condition(repository_rows, filter_element_params)
|
||||
when 'archived_on'
|
||||
build_archived_on_filter_condition(repository_rows, filter_element_params)
|
||||
when 'assigned'
|
||||
build_assigned_filter_condition(repository_rows, filter_element_params)
|
||||
else
|
||||
|
@ -214,6 +216,45 @@ class RepositoryDatatableService
|
|||
end
|
||||
end
|
||||
|
||||
def build_archived_on_filter_condition(repository_rows, filter_element_params)
|
||||
case filter_element_params[:operator]
|
||||
when 'today'
|
||||
repository_rows.where('archived_on >= ?', Time.zone.now.beginning_of_day)
|
||||
when 'yesterday'
|
||||
repository_rows.where('archived_on >= ? AND archived_on < ?',
|
||||
Time.zone.now.beginning_of_day - 1.day, Time.zone.now.beginning_of_day)
|
||||
when 'last_week'
|
||||
repository_rows.where('archived_on >= ? AND archived_on < ?',
|
||||
Time.zone.now.beginning_of_week - 1.week, Time.zone.now.beginning_of_week)
|
||||
when 'this_month'
|
||||
repository_rows.where('archived_on >= ?', Time.zone.now.beginning_of_month)
|
||||
when 'last_year'
|
||||
repository_rows.where('archived_on >= ? AND archived_on < ?',
|
||||
Time.zone.now.beginning_of_year - 1.year, Time.zone.now.beginning_of_year)
|
||||
when 'this_year'
|
||||
repository_rows.where('archived_on >= ?', Time.zone.now.beginning_of_year)
|
||||
when 'equal_to'
|
||||
repository_rows.where(archived_on: filter_element_params.dig(:parameters, :datetime))
|
||||
when 'unequal_to'
|
||||
repository_rows
|
||||
.where.not(archived_on: filter_element_params.dig(:parameters, :datetime))
|
||||
when 'greater_than'
|
||||
repository_rows.where('archived_on > ?', filter_element_params.dig(:parameters, :datetime))
|
||||
when 'greater_than_or_equal_to'
|
||||
repository_rows.where('archived_on >= ?', filter_element_params.dig(:parameters, :datetime))
|
||||
when 'less_than'
|
||||
repository_rows.where('archived_on < ?', filter_element_params.dig(:parameters, :datetime))
|
||||
when 'less_than_or_equal_to'
|
||||
repository_rows.where('archived_on <= ?', filter_element_params.dig(:parameters, :datetime))
|
||||
when 'between'
|
||||
repository_rows.where('archived_on > ? AND archived_on < ?',
|
||||
filter_element_params.dig(:parameters, :start_datetime),
|
||||
filter_element_params.dig(:parameters, :end_datetime))
|
||||
else
|
||||
raise ArgumentError, 'Wrong operator for RepositoryRow Archived On!'
|
||||
end
|
||||
end
|
||||
|
||||
def build_added_by_filter_condition(repository_rows, filter_element_params)
|
||||
case filter_element_params[:operator]
|
||||
when 'any_of'
|
||||
|
|
Loading…
Add table
Reference in a new issue