Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions ReleaseNotes.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
## Release 4.6.0

* We upgraded the module to Mendix 11.8.0
* We updated Data Widgets module compatibility to v3.8.0
* We added support for non-interrupting event sub-processes.
* We fixed an issue where the dropdown filter for the 'Assignee(s)' column did not refresh after self-assigning a task in the Task Inbox page.

_______

## Release 4.5.0

* We improved several data grids in the 'WorkflowDefinition_View' page: In the 'Workflows' tab, we removed the superfluous 'Workflow Definition' column and added an 'Ended On' column. In the 'Tasks' tab, we updated the 'Task & Workflow' column and added 'Task Definition' and 'Ended On' columns.
Expand Down
Binary file added Releases/WorkflowCommons-4-6-0.mpk
Binary file not shown.
Binary file modified Source/ExpenseRequestStarterApp.mpr
Binary file not shown.

Large diffs are not rendered by default.

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
2 changes: 1 addition & 1 deletion Source/themesource/datawidgets/.version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3.5.0
3.8.0
14 changes: 7 additions & 7 deletions Source/themesource/datawidgets/web/_datagrid-filters.scss
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,12 @@
position: relative;

.filter-input {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
border-start-start-radius: 0;
border-end-start-radius: 0;
}

.btn-calendar {
margin-left: 5px; //Review in atlas, the current date picker is also 5px
margin-inline-start: 5px; //Review in atlas, the current date picker is also 5px
.button-icon {
width: 18px;
height: 18px;
Expand All @@ -43,16 +43,16 @@

.filter-selector-button {
padding: 8px;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
border-right: none;
border-start-end-radius: 0;
border-end-end-radius: 0;
border-inline-end: none;
height: 100%;

&:before {
justify-content: center;
width: 20px;
height: 20px;
padding-left: 4px; /* The font has spaces in the right side, so to align in the middle we need this */
padding-inline-start: 4px; /* The font has spaces in the right side, so to align in the middle we need this */
}
}
}
Expand Down
164 changes: 142 additions & 22 deletions Source/themesource/datawidgets/web/_datagrid.scss
Original file line number Diff line number Diff line change
Expand Up @@ -266,6 +266,7 @@ $root: ".widget-datagrid";

> .td-custom-content {
flex-grow: 1;
min-width: 0;
}

> .empty-placeholder {
Expand Down Expand Up @@ -394,19 +395,24 @@ $root: ".widget-datagrid";
display: grid !important;
min-width: fit-content;
margin-bottom: 0;
&.infinite-loading {
// in order to restrict the scroll to row area
// we need to prevent table itself to expanding beyond available position
min-width: 0;
}
}
}

&-content {
overflow-x: auto;
&-top-bar {
container: widget-datagrid-header / inline-size;
}

&-grid-head {
display: contents;
&-content {
overflow-x: auto;
}

&-grid-body {
display: contents;
&-footer {
container: widget-datagrid-footer / inline-size;
}

&.widget-datagrid-selection-method-click {
Expand All @@ -420,7 +426,8 @@ $root: ".widget-datagrid";
align-items: center;
}

&-exporting {
&-exporting,
&-selecting-all-pages {
.widget-datagrid-top-bar,
.widget-datagrid-header,
.widget-datagrid-content,
Expand Down Expand Up @@ -517,43 +524,136 @@ $root: ".widget-datagrid";

.widget-datagrid .widget-datagrid-load-more {
display: block !important;
margin: 0 auto;
margin: var(--spacing-small, 8px) 0;
}

:where(.widget-datagrid-grid.infinite-loading) {
overflow-y: auto;
.infinite-loading {
.widget-datagrid-grid-head {
// lock header width
// and prevent it from having own scrolling
// as scrolling is synchronized in JS
width: calc(var(--widgets-grid-width) - var(--widgets-grid-scrollbar-size));
overflow-x: hidden;
}
.widget-datagrid-grid-head[data-scrolled-y="true"] {
// add shadow under the header
// implying that grid is scrolled vertically (there are rows hidden under header)
// the data attribute added in JS
box-shadow: 0 5px 5px -5px gray;
}

.widget-datagrid-grid-body {
// lock the size of the body
// and enable it to have own scrolling
// body is the leading element
// header scroll will be synced to match it
width: var(--widgets-grid-width);
overflow-y: auto;
max-height: var(--widgets-grid-body-height);
}

.widget-datagrid-grid-head[data-scrolled-x="true"]:after {
// add inner shadow to the left side of the grid
// implying that the grid is scrolled horizontally (there are rows hidden on the left)
// the data attribute added in JS
content: "";
position: absolute;
left: 0;
width: 10px;
box-shadow: inset 5px 0 5px -5px gray;
top: 0;
bottom: 0;
}
}

.widget-datagrid-grid-head {
display: grid;
min-width: 0;

// this head is not part of the grid, so it has dedicated column template --widgets-grid-template-columns-head
// but it might not be available at the initial render, so we use template from the grid --widgets-grid-template-columns
// using template from the grid might to misalignment from the grid itself,
// but in practice:
// - grid has no data at that moment, so misalignment is not visible.
// - as soon as the grid itself gets rendered --widgets-grid-template-columns-head gets calculated
// and everything looks like it should.
grid-template-columns: var(--widgets-grid-template-columns-head, var(--widgets-grid-template-columns));
}

:where(.infinite-loading .widget-datagrid-grid-head .th) {
position: sticky;
z-index: 1;
.widget-datagrid-grid-body {
// this element has to position their children (columns or headers)
// as grid and have those aligned with the parent grid
display: grid;
// this property makes sure we align our own grid columns
// to the columns defined in the global grid
grid-template-columns: var(--widgets-grid-template-columns);
}

:where(#{$root}-paging-bottom) {
.grid-mock-header {
display: contents;
}

:where(#{$root}-paging-bottom, #{$root}-padding-top) {
display: flex;
flex-flow: row nowrap;
align-items: center;
}

:where(#{$root}-pb-start, #{$root}-pb-end, #{$root}-pb-middle) {
:where(#{$root}-pb-end, #{$root}-tb-end) {
display: flex;
justify-content: flex-end;
align-items: center;
}

:where(#{$root}-pb-start, #{$root}-tb-start, #{$root}-pb-end, #{$root}-tb-end, #{$root}-pb-middle) {
flex-grow: 1;
flex-basis: 33.33%;
min-height: 20px;
}

:where(#{$root}-pb-start) {
margin-block: var(--spacing-medium);
padding-inline: var(--spacing-medium);
:where(#{$root}-pb-middle) {
display: flex;
justify-content: center;
}

:where(#{$root}-pb-start, #{$root}-tb-start) {
display: flex;
align-items: center;
}

#{$root}-clear-selection {
#{$root}-btn-link {
cursor: pointer;
background: transparent;
border: none;
text-decoration: underline;
color: var(--link-color);
padding: 0;
padding: 0.3em 0.5em;
border-radius: 6px;
display: inline-block;
white-space: nowrap;

&:hover,
&:focus-visible {
background-color: var(--brand-primary-50, #e6e7f2);
}
}

:where(#{$root}-selection-counter) {
display: flex;
align-items: center;
height: 54px;
padding: var(--spacing-small) var(--spacing-medium);
}

:where(#{$root}-select-all-bar) {
grid-column: 1 / -1;
background-color: #f0f1f2;
display: flex;
flex-flow: row nowrap;
align-items: center;
padding: var(--spacing-smaller, 8px) var(--spacing-medium, 16px);

#{$root}-spinner {
padding: 6.2px;
}
}

@keyframes skeleton-loading {
Expand All @@ -567,3 +667,23 @@ $root: ".widget-datagrid";
transform: rotate(1turn);
}
}

@container widget-datagrid-footer (width < 500px) {
#{$root}-paging-bottom {
flex-direction: column;
:where(#{$root}-pb-start, #{$root}-pb-end, #{$root}-pb-middle) {
width: 100%;
justify-content: center;
}
}
}

@container widget-datagrid-header (width < 500px) {
#{$root}-padding-top {
flex-direction: column-reverse;
:where(#{$root}-tb-start, #{$root}-tb-end) {
width: 100%;
justify-content: center;
}
}
}
4 changes: 2 additions & 2 deletions Source/themesource/datawidgets/web/_date-picker.scss
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ $dg-border-color: #d7d7d7;
&:hover {
border-radius: 50%;
color: var(--brand-primary, $brand-primary);
background-color: var(--gray-ligter, $gray-lighter);
background-color: var(--gray-lighter, $gray-lighter);
}
}

Expand All @@ -76,7 +76,7 @@ $dg-border-color: #d7d7d7;
.react-datepicker__day--today:not(.react-datepicker__day--in-range),
.react-datepicker__day--keyboard-selected {
color: var(--brand-primary, $brand-primary);
background-color: var(--gray-ligter, $gray-lighter);
background-color: var(--gray-lighter, $gray-lighter);
}

.react-datepicker__month-select:focus-visible,
Expand Down
2 changes: 1 addition & 1 deletion Source/themesource/datawidgets/web/_export-alert.scss
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
display: flex;
padding: 4px;
&:focus-visible {
outline: 1px solid $brand-primary;
outline: 1px solid var(--brand-primary, $brand-primary);
}
}
}
Expand Down
23 changes: 8 additions & 15 deletions Source/themesource/datawidgets/web/_gallery-design-properties.scss
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
left: 0;
right: 0;
border-bottom: 1px solid var(--grid-border-color, $grid-border-color);
margin-top: calc(var(--spacing-small, $spacing-small) / 2);
margin-top: calc(var(--gallery-gap, var(--spacing-small, $spacing-small)) / 2 - 1px);
}
}
}
Expand All @@ -69,30 +69,22 @@

// Grid spacing none
.widget-gallery.widget-gallery-gridgap-none {
.widget-gallery-items {
gap: 0;
}
--gallery-gap: 0px;
}

// Grid spacing small
.widget-gallery.widget-gallery-gridgap-small {
.widget-gallery-items {
gap: var(--spacing-small, $spacing-small);
}
--gallery-gap: var(--spacing-small, $spacing-small);
}

// Grid spacing medium
.widget-gallery.widget-gallery-gridgap-medium {
.widget-gallery-items {
gap: var(--spacing-medium, $spacing-medium);
}
--gallery-gap: var(--spacing-medium, $spacing-medium);
}

// Grid spacing large
.widget-gallery.widget-gallery-gridgap-large {
.widget-gallery-items {
gap: var(--spacing-large, $spacing-large);
}
--gallery-gap: var(--spacing-large, $spacing-large);
}

// Pagination left
Expand All @@ -114,6 +106,7 @@
}

.widget-gallery-disable-selected-items-highlight {
// placeholder
// this class in needed to disable standard styles of highlighted items
// This class is needed to disable standard styles of highlighted items
// Currently no specific styles need to be overridden
/* stylelint-disable-line no-empty-rules */
}
Loading