From e08857886ad7682dd031b0daee569ac2406cfe49 Mon Sep 17 00:00:00 2001 From: artoscinote <85488244+artoscinote@users.noreply.github.com> Date: Fri, 10 Dec 2021 14:12:06 +0100 Subject: [PATCH] Implement date type filter [SCI-6216] (#3729) Co-authored-by: aignatov-bio <47317017+aignatov-bio@users.noreply.github.com> --- app/javascript/packs/vue/repository_filter.js | 2 +- .../vue/repository_filter/filter.vue | 2 + .../filters/repositoryDateValue.vue | 150 ++++++++++++++++++ .../vue/shared/date_time_picker.vue | 33 ++++ .../vue/shared/dropdown_selector.vue | 9 +- .../repositories/_repository_filters.html.erb | 1 + config/locales/en.yml | 16 ++ 7 files changed, 211 insertions(+), 2 deletions(-) create mode 100644 app/javascript/vue/repository_filter/filters/repositoryDateValue.vue create mode 100644 app/javascript/vue/shared/date_time_picker.vue diff --git a/app/javascript/packs/vue/repository_filter.js b/app/javascript/packs/vue/repository_filter.js index 09156726d..2cb445dbd 100644 --- a/app/javascript/packs/vue/repository_filter.js +++ b/app/javascript/packs/vue/repository_filter.js @@ -6,7 +6,7 @@ Vue.use(TurbolinksAdapter); Vue.prototype.i18n = window.I18n; window.initRepositoryFilter = () => { - + Vue.prototype.dateFormat = $('#filterContainer').data('date-format') const defaultColumns = [ { id: 'assigned', name: 'Assigned to task', data_type: 'RepositoryMyModuleValue' }, { id: 'row_id', name: 'ID', data_type: 'RepositoryTextValue' }, diff --git a/app/javascript/vue/repository_filter/filter.vue b/app/javascript/vue/repository_filter/filter.vue index cfce11cc3..025036929 100644 --- a/app/javascript/vue/repository_filter/filter.vue +++ b/app/javascript/vue/repository_filter/filter.vue @@ -25,6 +25,7 @@ import RepositoryTextValue from 'vue/repository_filter/filters/repositoryTextValue.vue' import RepositoryNumberValue from 'vue/repository_filter/filters/repositoryNumberValue.vue' import RepositoryMyModuleValue from 'vue/repository_filter/filters/repositoryMyModuleValue.vue' + import RepositoryDateValue from 'vue/repository_filter/filters/repositoryDateValue.vue' import RepositoryListValue from 'vue/repository_filter/filters/repositoryListValue.vue' import DropdownSelector from 'vue/shared/dropdown_selector.vue' @@ -41,6 +42,7 @@ RepositoryTextValue, RepositoryNumberValue, RepositoryMyModuleValue, + RepositoryDateValue RepositoryListValue }, methods: { diff --git a/app/javascript/vue/repository_filter/filters/repositoryDateValue.vue b/app/javascript/vue/repository_filter/filters/repositoryDateValue.vue new file mode 100644 index 000000000..d44cf666f --- /dev/null +++ b/app/javascript/vue/repository_filter/filters/repositoryDateValue.vue @@ -0,0 +1,150 @@ + + + diff --git a/app/javascript/vue/shared/date_time_picker.vue b/app/javascript/vue/shared/date_time_picker.vue new file mode 100644 index 000000000..2907e2617 --- /dev/null +++ b/app/javascript/vue/shared/date_time_picker.vue @@ -0,0 +1,33 @@ + + + diff --git a/app/javascript/vue/shared/dropdown_selector.vue b/app/javascript/vue/shared/dropdown_selector.vue index c83ac90e7..3d9318c55 100644 --- a/app/javascript/vue/shared/dropdown_selector.vue +++ b/app/javascript/vue/shared/dropdown_selector.vue @@ -14,7 +14,10 @@ @@ -39,6 +42,10 @@ type: String, default: '' }, + selectedValue: { + type: [String, Number, Boolean], + default: null + }, singleSelect: { type: Boolean, default: true diff --git a/app/views/repositories/_repository_filters.html.erb b/app/views/repositories/_repository_filters.html.erb index 9c46089b6..a05f9aaa8 100644 --- a/app/views/repositories/_repository_filters.html.erb +++ b/app/views/repositories/_repository_filters.html.erb @@ -14,6 +14,7 @@ data-columns-url="<%= describe_all_repository_repository_columns_path(@repository) %>" data-my-modules-url="<%= assigned_my_modules_repository_path(@repository) %>" data-datatable-id="#repository-table-<%= @repository.id %>" + data-date-format="<%= current_user.date_format.gsub(/\%/, '').upcase %>" >