mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-10-02 18:04:29 +08:00
(fix) Load repository filters only when needed [SCI-10156]
This commit is contained in:
parent
425b189742
commit
c9f475290a
2 changed files with 22 additions and 19 deletions
|
@ -71,6 +71,7 @@ window.initRepositoryFilter = () => {
|
||||||
const defFilters = JSON.parse(JSON.stringify(DEFAULT_FILTERS));
|
const defFilters = JSON.parse(JSON.stringify(DEFAULT_FILTERS));
|
||||||
const app = createApp({
|
const app = createApp({
|
||||||
data: () => ({
|
data: () => ({
|
||||||
|
open: false,
|
||||||
filters: [],
|
filters: [],
|
||||||
defaultFilters: DEFAULT_FILTERS,
|
defaultFilters: DEFAULT_FILTERS,
|
||||||
columns: [],
|
columns: [],
|
||||||
|
@ -80,19 +81,29 @@ window.initRepositoryFilter = () => {
|
||||||
filterName: null
|
filterName: null
|
||||||
}),
|
}),
|
||||||
created() {
|
created() {
|
||||||
this.dataTableElement = $($('#filterContainer').data('datatable-id'));
|
$('#filtersDropdownButton').on('show.bs.dropdown', () => {
|
||||||
|
this.open = true;
|
||||||
|
this.dataTableElement = $($('#filterContainer').data('datatable-id'));
|
||||||
|
|
||||||
$.get($('#filterContainer').data('my-modules-url'), (data) => {
|
$.get($('#filterContainer').data('my-modules-url'), (data) => {
|
||||||
this.my_modules = data.data;
|
this.my_modules = data.data;
|
||||||
|
});
|
||||||
|
|
||||||
|
$.get($('#filterContainer').data('columns-url'), (data) => {
|
||||||
|
const combinedColumns = data.response.concat(defaultColumns);
|
||||||
|
this.columns = combinedColumns.sort((a, b) => (a.name > b.name ? 1 : -1));
|
||||||
|
});
|
||||||
|
|
||||||
|
$.get($('#filterContainer').data('saved-filters-url'), (data) => {
|
||||||
|
this.savedFilters = data.data;
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#filtersColumnsDropdown, #savedFiltersContainer').removeClass('open');
|
||||||
});
|
});
|
||||||
|
|
||||||
$.get($('#filterContainer').data('columns-url'), (data) => {
|
$('#filterContainer').on('click', (e) => {
|
||||||
const combinedColumns = data.response.concat(defaultColumns);
|
$('#filterContainer .dropdown-selector-container').removeClass('open');
|
||||||
this.columns = combinedColumns.sort((a, b) => a.name > b.name ? 1 : -1);
|
e.stopPropagation();
|
||||||
});
|
|
||||||
|
|
||||||
$.get($('#filterContainer').data('saved-filters-url'), (data) => {
|
|
||||||
this.savedFilters = data.data;
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
@ -152,13 +163,4 @@ window.initRepositoryFilter = () => {
|
||||||
app.config.globalProperties.i18n = window.I18n;
|
app.config.globalProperties.i18n = window.I18n;
|
||||||
app.config.globalProperties.dateFormat = $('#filterContainer').data('date-format');
|
app.config.globalProperties.dateFormat = $('#filterContainer').data('date-format');
|
||||||
window.repositoryFilterObject = mountWithTurbolinks(app, '#filterContainer');
|
window.repositoryFilterObject = mountWithTurbolinks(app, '#filterContainer');
|
||||||
|
|
||||||
$('#filterContainer').on('click', (e) => {
|
|
||||||
$('#filterContainer .dropdown-selector-container').removeClass('open')
|
|
||||||
e.stopPropagation();
|
|
||||||
});
|
|
||||||
|
|
||||||
$('#filtersDropdownButton').on('show.bs.dropdown', () => {
|
|
||||||
$('#filtersColumnsDropdown, #savedFiltersContainer').removeClass('open');
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
data-user-utc-offset="<%= ActiveSupport::TimeZone.find_tzinfo(current_user.time_zone).utc_offset %>"
|
data-user-utc-offset="<%= ActiveSupport::TimeZone.find_tzinfo(current_user.time_zone).utc_offset %>"
|
||||||
>
|
>
|
||||||
<filter-container
|
<filter-container
|
||||||
|
v-if="open"
|
||||||
:columns.sync="columns"
|
:columns.sync="columns"
|
||||||
:my_modules.sync="my_modules"
|
:my_modules.sync="my_modules"
|
||||||
:default-filters="defaultFilters"
|
:default-filters="defaultFilters"
|
||||||
|
|
Loading…
Add table
Reference in a new issue