diff --git a/src/frontend/components/button/_button.scss b/src/frontend/components/button/_button.scss index 2b6ef10dd..f3de02843 100644 --- a/src/frontend/components/button/_button.scss +++ b/src/frontend/components/button/_button.scss @@ -181,7 +181,7 @@ @extend %icon-font; content: "\E80a"; - margin-right: 0.75rem; + margin-right: 0.25rem; color: $brand-secundary; background: $transparent; transition: all 0.2s ease; @@ -196,6 +196,10 @@ text-decoration: none; background: $transparent; } + + & span { + font-weight: $btn-font-weight !important; // Have to use important here otherwise the card title will override this style. + } } .btn-round { diff --git a/src/frontend/components/data-table/_data-table.scss b/src/frontend/components/data-table/_data-table.scss index 62277b6e7..aaece5753 100644 --- a/src/frontend/components/data-table/_data-table.scss +++ b/src/frontend/components/data-table/_data-table.scss @@ -18,6 +18,7 @@ text-transform: uppercase; vertical-align: top; box-shadow: none; + vertical-align: middle; &[class*="sorting_asc"], &[class*="sorting_desc"] { @@ -35,6 +36,7 @@ td { padding: 1rem; color: $gray-extra-dark; + vertical-align: middle; } } @@ -269,6 +271,7 @@ table.dataTable thead .sorting_disabled { display: flex; position: relative; align-items: flex-start; + text-align: start; } // Pagination @@ -425,39 +428,22 @@ button.btn-add { @extend .m-0; } -.dt-layout-row { - display: flex; - flex-direction: row; - align-items: center; - justify-content: space-between; - width: 100%; - margin-bottom: $padding-base-vertical; +.dt-layout-start:has(.dt-search) { + flex-grow: 1; - &.dt-layout-row--no-padding { - padding: 0; + label { + display: none; } - .dt-start { - flex-grow: 1; - - label { - display: none; - } + .dt-search { + @extend .pe-2; + width: 100%; - .dt-search { - @extend .pe-2; + input[type="search"] { width: 100%; - - input[type="search"] { - width: 100%; - @extend .m-0; - } + @extend .m-0; } } - - &:has(.dt-start:empty + .dt-end:empty) { - display: none; - } } .dt-layout-cell:has(table.data-table) { @@ -467,10 +453,6 @@ button.btn-add { .dt-orderable-asc, .dt-orderable-desc { .data-table__header-wrapper { - text-align: center; - align-items: center; - justify-content: center; - .dt-column-title { white-space: nowrap; } @@ -617,3 +599,16 @@ th { background-color: rgba(var(--dt-row-hover), 0.075); box-shadow: none; } + +table.dataTable { + &.table-search { + &>tbody>tr>td { + padding-left: 2rem; + } + } + + // Override default alignment to left for all columns + td[class*="dt-type-"] { + text-align: left; + } +} diff --git a/src/frontend/components/data-table/lib/component.js b/src/frontend/components/data-table/lib/component.js index b654c4572..ff5870a16 100644 --- a/src/frontend/components/data-table/lib/component.js +++ b/src/frontend/components/data-table/lib/component.js @@ -55,6 +55,7 @@ class DataTableComponent extends Component { } const conf = this.getConf(); + const { columns } = conf; this.columns = columns; this.el.DataTable(conf); @@ -90,6 +91,15 @@ class DataTableComponent extends Component { }); } }); + + if(conf.responsive) { + // Render the child component when the responsive row is shown + this.el.on('responsive-display.dt', (e, datatable, row, showHide) => { + if(!showHide) return; + const child = row.child()?.[0]; + initializeRegisteredComponents(child); + }); + } } /** @@ -200,8 +210,8 @@ class DataTableComponent extends Component { getCheckboxElement(id, label) { return ( '
${this.encodeHTMLEntities(detail.definition)}: ${strDecodedValue}
`; } }); - thisHTML += ''; + thisHTML += ''; strHTML += ( `