Skip to content

Commit a936a03

Browse files
author
Guust
committed
add created filter to the filteringmodel
1 parent 3507ba0 commit a936a03

File tree

2 files changed

+17
-122
lines changed

2 files changed

+17
-122
lines changed

lib/public/views/Logs/ActiveColumns/logsActiveColumns.js

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ import { h } from '/js/src/index.js';
1515
import { iconCommentSquare, iconPaperclip } from '/js/src/icons.js';
1616

1717
import { authorFilter } from '../../../components/Filters/LogsFilter/author/authorFilter.js';
18-
import createdFilter from '../../../components/Filters/LogsFilter/created.js';
1918
import { formatTimestamp } from '../../../utilities/formatting/formatTimestamp.js';
2019
import { frontLink } from '../../../components/common/navigation/frontLink.js';
2120
import { frontLinks } from '../../../components/common/navigation/frontLinks.js';
@@ -26,6 +25,7 @@ import { textFilter } from '../../../components/Filters/common/filters/textFilte
2625
import { formatLhcFillsList } from '../../LhcFills/format/formatLhcFillsList.js';
2726
import { formatTagsList } from '../../Tags/format/formatTagsList.js';
2827
import { rawTextFilter } from '../../../components/Filters/common/filters/rawTextFilter.js';
28+
import { timeRangeFilter } from '../../../components/Filters/common/filters/timeRangeFilter.js';
2929

3030
/**
3131
* A method to display a small and simple number/icon collection as a column
@@ -129,7 +129,15 @@ export const logsActiveColumns = {
129129
sortable: true,
130130
size: 'w-10',
131131
format: (timestamp) => formatTimestamp(timestamp, false),
132-
filter: createdFilter,
132+
133+
/**
134+
* Created filter component
135+
*
136+
* @param {LogsOverviewModel} logOverviewModel the logs overview model
137+
* @param {FilteringModel} logOverviewModel.filteringModel filtering model
138+
* @return {Component} the filter component
139+
*/
140+
filter: ({ filteringModel }) => timeRangeFilter(filteringModel.get('created')),
133141
profiles: {
134142
embeded: {
135143
format: (timestamp) => formatTimestamp(timestamp),

lib/public/views/Logs/Overview/LogsOverviewModel.js

Lines changed: 7 additions & 120 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import { getRemoteDataSlice } from '../../../utilities/fetch/getRemoteDataSlice.
2121
import { tagsProvider } from '../../../services/tag/tagsProvider.js';
2222
import { FilteringModel } from '../../../components/Filters/common/FilteringModel.js';
2323
import { RawTextFilterModel } from '../../../components/Filters/common/filters/RawTextFilterModel.js';
24+
import { TimeRangeInputModel } from '../../../components/Filters/common/filters/TimeRangeInputModel.js';
2425

2526
/**
2627
* Model representing handlers for log entries page
@@ -45,6 +46,7 @@ export class LogsOverviewModel extends Observable {
4546
run: new RawTextFilterModel(),
4647
environments: new RawTextFilterModel(),
4748
lhcFills: new RawTextFilterModel(),
49+
created: new TimeRangeInputModel(),
4850
});
4951

5052
this._filteringModel.observe(() => this._applyFilters());
@@ -120,8 +122,6 @@ export class LogsOverviewModel extends Observable {
120122
*/
121123
reset(fetch = true) {
122124
this._filteringModel.reset();
123-
this.createdFilterFrom = '';
124-
this.createdFilterTo = '';
125125

126126
this.runFilterOperation = 'AND';
127127
this.environmentFilterOperation = 'AND';
@@ -139,91 +139,7 @@ export class LogsOverviewModel extends Observable {
139139
* @returns {boolean} If any filter is active
140140
*/
141141
isAnyFilterActive() {
142-
return (
143-
!this._filteringModel.isAnyFilterActive()
144-
|| this.createdFilterFrom !== ''
145-
|| this.createdFilterTo !== ''
146-
);
147-
}
148-
149-
/**
150-
* Returns the current title substring filter
151-
* @returns {string} The current title substring filter
152-
*/
153-
getRunsFilterRaw() {
154-
return this._runFilterRawValue;
155-
}
156-
157-
/**
158-
* Returns the raw current environment filter
159-
* @returns {string} the raw current environment filter
160-
*/
161-
getEnvFilterRaw() {
162-
return this._environmentFilterRawValue;
163-
}
164-
165-
/**
166-
* Returns the current environment filter
167-
* @returns {string[]} The current environment filter
168-
*/
169-
getEnvFilter() {
170-
return this.environmentFilterValues;
171-
}
172-
173-
/**
174-
* Sets the environment filter
175-
* @param {string} rawEnvironments The environments to apply to the filter
176-
* @returns {undefined}
177-
*/
178-
setEnvFilter(rawEnvironments) {
179-
this._environmentFilterRawValue = rawEnvironments;
180-
const envs = rawEnvironments
181-
.split(/[ ,]+/)
182-
.filter(Boolean)
183-
.map((id) => id.trim());
184-
185-
if (envs.length > 0 || rawEnvironments.length === 0) {
186-
this.environmentFilterValues = envs;
187-
this._applyFilters();
188-
}
189-
}
190-
191-
/**
192-
* Returns the current title substring filter
193-
* @returns {string} The current title substring filter
194-
*/
195-
getLhcFillsFilterRaw() {
196-
return this._lhcFillFilterRawValue;
197-
}
198-
199-
/**
200-
* Returns the current minimum creation datetime
201-
* @returns {Integer} The current minimum creation datetime
202-
*/
203-
getCreatedFilterFrom() {
204-
return this.createdFilterFrom;
205-
}
206-
207-
/**
208-
* Returns the current maximum creation datetime
209-
* @returns {Integer} The current maximum creation datetime
210-
*/
211-
getCreatedFilterTo() {
212-
return this.createdFilterTo;
213-
}
214-
215-
/**
216-
* Set a datetime for the creation datetime filter
217-
* @param {string} key The filter value to apply the datetime to
218-
* @param {Object} date The datetime to be applied to the creation datetime filter
219-
* @param {boolean} valid Whether the inserted date passes validity check
220-
* @returns {undefined}
221-
*/
222-
setCreatedFilter(key, date, valid) {
223-
if (valid) {
224-
this[`createdFilter${key}`] = date;
225-
this._applyFilters();
226-
}
142+
return !this._filteringModel.isAnyFilterActive();
227143
}
228144

229145
/**
@@ -244,32 +160,6 @@ export class LogsOverviewModel extends Observable {
244160
return this._overviewSortModel;
245161
}
246162

247-
/**
248-
* Returns the filter model for author filter
249-
*
250-
* @return {FilterInputModel} the filter model
251-
*/
252-
get authorFilter() {
253-
return this._authorFilter;
254-
}
255-
256-
/**
257-
* Returns the filter model for title filter
258-
*
259-
* @return {FilterInputModel} the filter model
260-
*/
261-
get titleFilter() {
262-
return this._titleFilter;
263-
}
264-
265-
/**
266-
* Returns the model for body filter
267-
* @return {FilterInputModel} the filter model
268-
*/
269-
get contentFilter() {
270-
return this._contentFilter;
271-
}
272-
273163
/**
274164
* Returns the pagination model
275165
*
@@ -308,6 +198,7 @@ export class LogsOverviewModel extends Observable {
308198
const run = this._filteringModel.get('run');
309199
const environments = this._filteringModel.get('environments');
310200
const lhcFills = this._filteringModel.get('lhcFills');
201+
const created = this._filteringModel.get('created');
311202

312203
return {
313204
...!titleFilter.isEmpty && {
@@ -319,13 +210,9 @@ export class LogsOverviewModel extends Observable {
319210
...!authorFilter.isEmpty && {
320211
'filter[author]': authorFilter.value,
321212
},
322-
...this.createdFilterFrom && {
323-
'filter[created][from]':
324-
new Date(`${this.createdFilterFrom.replace(/\//g, '-')}T00:00:00.000`).getTime(),
325-
},
326-
...this.createdFilterTo && {
327-
'filter[created][to]':
328-
new Date(`${this.createdFilterTo.replace(/\//g, '-')}T23:59:59.999`).getTime(),
213+
...!created.isEmpty && {
214+
'filter[created][from]': created.normalized.from,
215+
'filter[created][to]': created.normalized.to,
329216
},
330217
...!tags.isEmpty && {
331218
'filter[tags][values]': tags.selected.join(),

0 commit comments

Comments
 (0)