Skip to content

Commit

Permalink
Merge pull request #5977 from davidwatkins73/waltz-5972-report-grid-t…
Browse files Browse the repository at this point in the history
…imestamp-formats

Report grid
  • Loading branch information
JWoodland-Scott committed Mar 23, 2022
2 parents 89a6902 + a7690d5 commit 8b908ef
Show file tree
Hide file tree
Showing 5 changed files with 88 additions and 63 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
import org.springframework.stereotype.Repository;

import java.sql.Timestamp;
import java.sql.Types;
import java.util.Comparator;
import java.util.*;
import java.util.function.Function;
Expand Down Expand Up @@ -725,9 +726,14 @@ private Set<ReportGridCell> fetchApplicationFieldReferenceData(GenericSelector s
.map(fieldName -> {
ReportGridColumnDefinition colDefn = columnDefinitionsByFieldReference.get(fieldName);

Object value = appRecord.get(APPLICATION.field(fieldName));
Field<?> field = APPLICATION.field(fieldName);
Object rawValue = appRecord.get(field);

if (value == null) {
String textValue = isTimestampField(field)
? String.valueOf(DateTimeUtilities.toLocalDate((Timestamp) rawValue))
: String.valueOf(rawValue);

if (rawValue == null) {
return null;
}

Expand All @@ -736,7 +742,7 @@ private Set<ReportGridCell> fetchApplicationFieldReferenceData(GenericSelector s
.subjectId(appRecord.get(APPLICATION.ID))
.columnEntityId(colDefn.columnEntityId())
.columnEntityKind(EntityKind.APPLICATION)
.text(String.valueOf(value))
.text(textValue)
.entityFieldReferenceId(colDefn.entityFieldReference().id().get())
.build();
}))
Expand All @@ -745,9 +751,15 @@ private Set<ReportGridCell> fetchApplicationFieldReferenceData(GenericSelector s
}
}

private boolean isTimestampField(Field<?> field) {
DataType<?> dataType = field.getDataType();
int sqlType = dataType.getSQLType();
return sqlType == Types.TIMESTAMP;
}


private Set<ReportGridCell> fetchChangeInitiativeFieldReferenceData(GenericSelector selector,
Set<Tuple2<ReportGridColumnDefinition, EntityFieldReference>> requiredChangeInitiativeColumns) {
Set<Tuple2<ReportGridColumnDefinition, EntityFieldReference>> requiredChangeInitiativeColumns) {

if (requiredChangeInitiativeColumns.isEmpty()) {
return emptySet();
Expand Down Expand Up @@ -849,9 +861,15 @@ private Set<ReportGridCell> fetchSurveyFieldReferenceData(GenericSelector select
.getOrDefault(templateId, emptySet())
.stream()
.map(fieldRef -> {
Object value = surveyRecord.get(SURVEY_INSTANCE.field(fieldRef.fieldName()));

if (value == null) {
Field<?> field = SURVEY_INSTANCE.field(fieldRef.fieldName());
Object rawValue = surveyRecord.get(field);

String textValue = isTimestampField(field)
? String.valueOf(DateTimeUtilities.toLocalDate((Timestamp) rawValue))
: String.valueOf(rawValue);

if (rawValue == null) {
return null;
}

Expand All @@ -860,7 +878,7 @@ private Set<ReportGridCell> fetchSurveyFieldReferenceData(GenericSelector select
.subjectId(surveyRecord.get(SURVEY_INSTANCE.ENTITY_ID))
.columnEntityId(templateId)
.columnEntityKind(EntityKind.SURVEY_TEMPLATE)
.text(String.valueOf(value))
.text(textValue)
.entityFieldReferenceId(fieldRef.id().get())
.build();
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,7 @@ import {mkSelectionOptions} from "../../../common/selector-utils";
import {CORE_API} from "../../../common/services/core-api-utils";
import _ from "lodash";
import ReportGridControlPanel from "../svelte/ReportGridControlPanel.svelte";
import {columnDefs, filters, selectedGrid} from "../svelte/report-grid-store";
import {activeSummaries} from "../svelte/report-grid-filters-store";
import {activeSummaries, columnDefs, filters, selectedGrid} from "../svelte/report-grid-store";
import {
mkLocalStorageFilterKey,
mkPropNameForColumnDefinition,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,8 @@
import NoData from "../../../common/svelte/NoData.svelte";
import Icon from "../../../common/svelte/Icon.svelte";
import {getDisplayNameForColumn, mkPropNameForColumnDefinition} from "./report-grid-utils";
import {filters, selectedGrid, summaries} from "./report-grid-store";
import {activeSummaries, filters, selectedGrid, summaries} from "./report-grid-store";
import {mkChunks} from "../../../common/list-utils";
import {activeSummaries} from "./report-grid-filters-store";
import EntityIcon from "../../../common/svelte/EntityIcon.svelte";
let chunkedSummaryData = [];
Expand Down Expand Up @@ -109,7 +108,7 @@
<Icon name="close"/>
</button>
</h5>
<table class="table table-condensed small">
<table class="table table-condensed small option-summary-table">
<tbody>
{#each summary.optionSummaries as optionSummary}
<tr class="clickable"
Expand Down Expand Up @@ -175,10 +174,12 @@
<tbody>
{#each availableSummaries as summary}
<tr on:click={() => addOrRemoveFromActiveSummaries(summary)}
class="clickable"
class="clickable waltz-visibility-parent"
class:isActiveFilter={isActive($activeSummaries, summary)}>
<td>
<Icon name={isActive($activeSummaries, summary) ? 'check' : 'arrow-left'}/>
<span class="waltz-visibility-child-30">
<Icon name={isActive($activeSummaries, summary) ? 'check' : 'arrow-left'}/>
</span>
<span class="column-name">
{getDisplayNameForColumn(summary.column)}
</span>
Expand Down Expand Up @@ -226,6 +227,14 @@
padding: 2px;
}
.option-summary-table tr {
transition: background-color 0.2s linear;
}
.summary-table tr {
transition: background-color 0.4s linear;
}
.column-values-summary li {
padding: 0.2em;
}
Expand All @@ -235,6 +244,7 @@
display: inline-block;
height: 1em;
width: 1em;
transition: opacity 0.3s linear;
}
.isActiveFilter {
Expand All @@ -245,5 +255,4 @@
font-style: italic;
}
</style>

This file was deleted.

56 changes: 47 additions & 9 deletions waltz-ng/client/report-grid/components/svelte/report-grid-store.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
import {derived, writable} from "svelte/store";
import _ from "lodash";
import {mkRowFilter, prepareTableData, refreshSummaries, sameColumnRef} from "./report-grid-utils";
import {activeSummaries} from "./report-grid-filters-store";

import {
mkLocalStorageFilterKey,
mkRowFilter,
prepareTableData,
refreshSummaries,
sameColumnRef
} from "./report-grid-utils";
export const selectedGrid = writable(null);
export let filters = writable([]);
export let columnDefs = writable([]);
export let selectedColumn = writable(null);
export let lastMovedColumn = writable(null);
export let ownedReportIds = writable([]);
export const filters = writable([]);
export const columnDefs = writable([]);
export const selectedColumn = writable(null);
export const lastMovedColumn = writable(null);
export const ownedReportIds = writable([]);

export let columnsChanged = derived([columnDefs, selectedGrid], ([$columnDefs, $selectedGrid]) => {

Expand Down Expand Up @@ -71,4 +75,38 @@ export const summaries = derived([selectedGrid, filters, tableData], ([$selected
$selectedGrid?.definition.columnDefinitions,
$selectedGrid?.instance.ratingSchemeItems);
}
})
});


function createActiveSummariesStore() {
const {subscribe, set, update} = writable([]);

const add = (colRef) => {
update((all) => _.concat(all, [colRef]));
};

const remove = (colRef) => {
update((all) => all.filter((t) => t !== colRef));
};

return {
subscribe,
set,
add,
remove,
}
}

export const activeSummaries = createActiveSummariesStore();


const saveSummariesToLocalStorage = derived([selectedGrid, activeSummaries], ([$selectedGrid, $activeSummaries]) => {

if (!$selectedGrid){
return;
}

const key = mkLocalStorageFilterKey($selectedGrid?.definition.id);
localStorage.setItem(key, JSON.stringify($activeSummaries));
})
.subscribe(() => {});

0 comments on commit 8b908ef

Please sign in to comment.