diff --git a/opentech/apply/funds/tables.py b/opentech/apply/funds/tables.py index ded01709bb2164767fe242a4c24f59d3f399eba8..b22079eba58f91e1ffdd6c5ae8914808139d0f98 100644 --- a/opentech/apply/funds/tables.py +++ b/opentech/apply/funds/tables.py @@ -19,7 +19,7 @@ from .widgets import Select2MultiCheckboxesWidget def make_row_class(record): - css_class = 'submission-meta__row' if record.next else 'all-submissions__parent' + css_class = 'submission-meta__row' if record.next else 'all-submissions-table__parent' css_class += '' if record.active else ' is-inactive' return css_class @@ -48,7 +48,7 @@ class SubmissionsTable(tables.Table): 'class': make_row_class, 'data-record-id': lambda record: record.id, } - attrs = {'class': 'all-submissions'} + attrs = {'class': 'all-submissions-table'} def render_user(self, value): return value.get_full_name() @@ -169,6 +169,7 @@ class RoundsTable(tables.Table): class Meta: fields = ('title', 'fund', 'lead', 'start_date', 'end_date', 'progress') + attrs = {'class': 'all-rounds-table'} def render_lead(self, value): return format_html('<span>{}</span>', value) diff --git a/opentech/apply/funds/templates/funds/tables/table.html b/opentech/apply/funds/templates/funds/tables/table.html index 9a7848ff770c3d0dd7df0cfb57a6be91f56c75d5..a6f7eea2df12b4a9ff771a40e90bf7e2132a7f46 100644 --- a/opentech/apply/funds/templates/funds/tables/table.html +++ b/opentech/apply/funds/templates/funds/tables/table.html @@ -12,7 +12,7 @@ </tr> {% with submission=row.record %} - <tr class="all-submissions__child" data-parent-id="{{ submission.id }}"> + <tr class="all-submissions-table__child" data-parent-id="{{ submission.id }}"> <td colspan="{{ table.columns|length }}"> <table class="submission-meta"> <tr class="submission-meta__row"> @@ -48,7 +48,7 @@ {% if row.record.previous %} {# we have a linked application, re-render the header row #} - <tr class="all-submissions__child" data-parent-id="{{ row.record.id }}"> + <tr class="all-submissions-table__child" data-parent-id="{{ row.record.id }}"> <td colspan="{{ table.columns|length }}"> <table class="submission-meta"> <tr class="submission-meta__row"> diff --git a/opentech/static_src/src/javascript/apply/all-submissions-table.js b/opentech/static_src/src/javascript/apply/all-submissions-table.js index 71d6f2087b86be10e79e5b4bbb811a90661c6ec4..f98d014546012f9ff6030911ad36445591430963 100644 --- a/opentech/static_src/src/javascript/apply/all-submissions-table.js +++ b/opentech/static_src/src/javascript/apply/all-submissions-table.js @@ -3,7 +3,7 @@ 'use strict'; // add the toggle arrow before the submission titles - $('.all-submissions__parent td.title').prepend('<span class="all-submissions__toggle js-toggle-submission"><span class="arrow"></span></span>'); + $('.all-submissions-table__parent td.title').prepend('<span class="all-submissions-table__toggle js-toggle-submission"><span class="arrow"></span></span>'); // grab all the toggles const children = Array.prototype.slice.call( @@ -13,7 +13,7 @@ // show/hide the submission child rows children.forEach(function (child) { child.addEventListener('click', (e) => { - $(e.target).closest('.all-submissions__parent').toggleClass('is-expanded'); + $(e.target).closest('.all-submissions-table__parent').toggleClass('is-expanded'); }); }); diff --git a/opentech/static_src/src/javascript/apply/submission-filters.js b/opentech/static_src/src/javascript/apply/submission-filters.js index eaaf37d31617c244f28724dab4cdc21f45de8b05..6f706f686a7e67044e890099e23aea99d8aeb9e6 100644 --- a/opentech/static_src/src/javascript/apply/submission-filters.js +++ b/opentech/static_src/src/javascript/apply/submission-filters.js @@ -18,8 +18,13 @@ const urlParams = new URLSearchParams(window.location.search); + const persistedParams = ['sort', 'query']; + // check if the page has a query string and keep filters open if so on desktop - const minimumNumberParams = 1 + urlParams.has('query') ? 1 : 0; + const minimumNumberParams = persistedParams.reduce( + (count, param) => count + urlParams.has(param) ? 1 : 0, + 1 + ); if ([...urlParams].length > minimumNumberParams && $(window).width() > 1024) { $body.addClass(filterOpenClass); @@ -77,7 +82,9 @@ // redirect to submissions home to clear filters function handleClearFilters() { - window.location.href = window.location.href.split('?')[0] + '?query=' + urlParams.get('query'); + const query = persistedParams.reduce( + (query, param) => query + (urlParams.get(param) ? `&${param}=${urlParams.get(param)}` : ''), '?'); + window.location.href = window.location.href.split('?')[0] + query; } // toggle filters button wording diff --git a/opentech/static_src/src/sass/apply/abstracts/_mixins.scss b/opentech/static_src/src/sass/apply/abstracts/_mixins.scss index 09e97b9ff0bca8b209d106fdc462bd0c0b2638a0..3ed198376d36b9afd801bf01c746d643bcc1d8b2 100644 --- a/opentech/static_src/src/sass/apply/abstracts/_mixins.scss +++ b/opentech/static_src/src/sass/apply/abstracts/_mixins.scss @@ -167,3 +167,38 @@ @content; } } + +@mixin table-ordering-styles { + thead { + th { + // ordering + &.desc, + &.asc { + position: relative; + color: $color--dark-grey; + + &::after { + position: absolute; + top: 32px; + margin-left: 3px; + } + + a { + color: inherit; + } + } + + &.desc { + &::after { + @include triangle(top, $color--default, 5px); + } + } + + &.asc { + &::after { + @include triangle(bottom, $color--default, 5px); + } + } + } + } +} diff --git a/opentech/static_src/src/sass/apply/abstracts/_variables.scss b/opentech/static_src/src/sass/apply/abstracts/_variables.scss index 62949ad6d81c7d68e67ae50daa0ff6b7b88ef653..dd696f978e042db6d19e5cadc9a3ec926dbf3847 100644 --- a/opentech/static_src/src/sass/apply/abstracts/_variables.scss +++ b/opentech/static_src/src/sass/apply/abstracts/_variables.scss @@ -117,3 +117,6 @@ $filter-dropdown: '.select2 .select2-selection.select2-selection--single'; // listing header/spacer height $listing-header-height: 75px; + +// Table breakpoint +$table-breakpoint: 'tablet-landscape'; diff --git a/opentech/static_src/src/sass/apply/components/_all-rounds-table.scss b/opentech/static_src/src/sass/apply/components/_all-rounds-table.scss new file mode 100644 index 0000000000000000000000000000000000000000..3be90e1d1aeed7bea486547e45a16653f0d757c5 --- /dev/null +++ b/opentech/static_src/src/sass/apply/components/_all-rounds-table.scss @@ -0,0 +1,23 @@ +.all-rounds-table { + @include table-ordering-styles; + + thead { + display: none; + + @include media-query($table-breakpoint) { + display: table-header-group; + } + + th { + padding: 25px 10px; + } + } + + tbody { + td { + &.title { + padding-top: 15px; + } + } + } +} diff --git a/opentech/static_src/src/sass/apply/components/_all-submissions.scss b/opentech/static_src/src/sass/apply/components/_all-submissions-table.scss similarity index 89% rename from opentech/static_src/src/sass/apply/components/_all-submissions.scss rename to opentech/static_src/src/sass/apply/components/_all-submissions-table.scss index ea72a28ba297d19475de991e4081269086dcd04b..4e00d921d949535c681001f3188d956264858ae8 100644 --- a/opentech/static_src/src/sass/apply/components/_all-submissions.scss +++ b/opentech/static_src/src/sass/apply/components/_all-submissions-table.scss @@ -1,7 +1,5 @@ -// also in _table.scss -$table-breakpoint: 'tablet-landscape'; - -.all-submissions { +.all-submissions-table { + @include table-ordering-styles; $root: &; font-size: 14px; @@ -13,35 +11,6 @@ $table-breakpoint: 'tablet-landscape'; } th { - // ordering - &.desc, - &.asc { - position: relative; - color: $color--dark-grey; - - &::after { - position: absolute; - top: 32px; - margin-left: 3px; - } - - a { - color: inherit; - } - } - - &.desc { - &::after { - @include triangle(top, $color--default, 5px); - } - } - - &.asc { - &::after { - @include triangle(bottom, $color--default, 5px); - } - } - &.reviews_stats { // sass-lint:disable-line class-name-format color: $color--mid-dark-grey; diff --git a/opentech/static_src/src/sass/apply/components/_table.scss b/opentech/static_src/src/sass/apply/components/_table.scss index 2ff8ebb0e69bf1684e5274926cd8cd39a6e150aa..3b5dfbe90b3b4048efab1c55d267c7a545dd5d47 100644 --- a/opentech/static_src/src/sass/apply/components/_table.scss +++ b/opentech/static_src/src/sass/apply/components/_table.scss @@ -1,6 +1,4 @@ -// also in _all-submissions.scss -$table-breakpoint: 'tablet-landscape'; - +// base table styles - specific ones in their own scss partial table { width: 100%; background-color: $color--white; @@ -78,6 +76,12 @@ table { } } } + + &.title { + a { + font-weight: $weight--bold; + } + } } } @@ -88,5 +92,9 @@ table { @include media-query($table-breakpoint) { padding: 15px 10px; } + + &.title { + padding-left: 20px; + } } } diff --git a/opentech/static_src/src/sass/apply/main.scss b/opentech/static_src/src/sass/apply/main.scss index 930863ffbb535a0ea37fe0f721fda96870bd1a00..4423f6ed552181b4708da92017bba897de5f1aa7 100644 --- a/opentech/static_src/src/sass/apply/main.scss +++ b/opentech/static_src/src/sass/apply/main.scss @@ -8,7 +8,8 @@ @import 'base/typography'; // Components -@import 'components/all-submissions'; +@import 'components/all-submissions-table'; +@import 'components/all-rounds-table'; @import 'components/admin-bar'; @import 'components/activity-feed'; @import 'components/comment';