Skip to content

Commit

Permalink
Merge pull request #13529 from opf/fix/49727/show-all-attribute-changes
Browse files Browse the repository at this point in the history
Show all attribute changes, not just visible ones
  • Loading branch information
cbliard committed Aug 22, 2023
2 parents 9c952f3 + 018ad9d commit d60a286
Show file tree
Hide file tree
Showing 6 changed files with 18 additions and 19 deletions.
2 changes: 1 addition & 1 deletion frontend/src/app/features/hal/resources/schema-resource.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ export class SchemaResource extends HalResource {
return this.states.schemas.get(this.href as string) as any;
}

public get availableAttributes() {
public get availableAttributes():string[] {
return _.keys(this.$source).filter((name) => name.indexOf('_') !== 0);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import { DEFAULT_TIMESTAMP } from 'core-app/features/work-packages/routing/wp-vi
import * as moment from 'moment-timezone';
import { WorkPackageResource } from 'core-app/features/hal/resources/work-package-resource';
import { SchemaCacheService } from 'core-app/core/schemas/schema-cache.service';
import { WorkPackageViewColumnsService } from 'core-app/features/work-packages/routing/wp-view-base/view-services/wp-view-columns.service';

export type BaselineOption = 'oneDayAgo'|'lastWorkingDay'|'oneWeekAgo'|'oneMonthAgo'|'aSpecificDate'|'betweenTwoSpecificDates';

Expand Down Expand Up @@ -52,16 +51,16 @@ export function getPartsFromTimestamp(value:string):BaselineTimestamp|null {
return null;
}

export function visibleAttributeChanged(base:IWorkPackageTimestamp, schema:ISchemaProxy, wpTableColumns:WorkPackageViewColumnsService):boolean {
return !!wpTableColumns
.getColumns()
.find((column) => {
const name = schema.mappedName(column.id);
export function attributeChanged(base:IWorkPackageTimestamp, schema:ISchemaProxy):boolean {
return !!schema
.availableAttributes
.find((attribute) => {
const name = schema.mappedName(attribute);
return Object.prototype.hasOwnProperty.call(base, name) || Object.prototype.hasOwnProperty.call(base.$links, name);
});
}

export function getBaselineState(workPackage:WorkPackageResource, schemaService:SchemaCacheService, wpTableColumns:WorkPackageViewColumnsService):string {
export function getBaselineState(workPackage:WorkPackageResource, schemaService:SchemaCacheService):string {
let state = '';
const schema = schemaService.of(workPackage);
const timestamps = workPackage.attributesByTimestamp || [];
Expand All @@ -72,7 +71,7 @@ export function getBaselineState(workPackage:WorkPackageResource, schemaService:
state = 'added';
} else if ((base._meta.exists && !compare._meta.exists) || (base._meta.matchesFilters && !compare._meta.matchesFilters)) {
state = 'removed';
} else if (visibleAttributeChanged(base, schema, wpTableColumns)) {
} else if (attributeChanged(base, schema)) {
state = 'updated';
}
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@ import { WorkPackageViewBaselineService } from 'core-app/features/work-packages/
import { IsolatedQuerySpace } from 'core-app/features/work-packages/directives/query-space/isolated-query-space';
import { WorkPackageResource } from 'core-app/features/hal/resources/work-package-resource';
import { SchemaCacheService } from 'core-app/core/schemas/schema-cache.service';
import { WorkPackageViewColumnsService } from 'core-app/features/work-packages/routing/wp-view-base/view-services/wp-view-columns.service';
import {
baselineFilterFromValue,
getPartsFromTimestamp,
Expand Down Expand Up @@ -91,7 +90,6 @@ export class OpBaselineLegendsComponent extends UntilDestroyedMixin implements O
readonly wpTableBaseline:WorkPackageViewBaselineService,
readonly querySpace:IsolatedQuerySpace,
readonly schemaCache:SchemaCacheService,
readonly wpTableColumns:WorkPackageViewColumnsService,
readonly timezoneService:TimezoneService,
readonly configuration:ConfigurationService,
readonly cdRef:ChangeDetectorRef,
Expand Down Expand Up @@ -207,7 +205,7 @@ export class OpBaselineLegendsComponent extends UntilDestroyedMixin implements O
const results = this.querySpace.results.value;
if (baselineIsActive && results && results.elements.length > 0) {
results.elements.forEach((workPackage:WorkPackageResource) => {
state = getBaselineState(workPackage, this.schemaCache, this.wpTableColumns);
state = getBaselineState(workPackage, this.schemaCache);
if (state === 'added') {
this.numAdded += 1;
} else if (state === 'removed') {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ import { StatusResource } from 'core-app/features/hal/resources/status-resource'
import { combineLatest } from 'rxjs';
import { map } from 'rxjs/operators';
import { SchemaCacheService } from 'core-app/core/schemas/schema-cache.service';
import { WorkPackageViewColumnsService } from 'core-app/features/work-packages/routing/wp-view-base/view-services/wp-view-columns.service';
import SpotDropAlignmentOption from 'core-app/spot/drop-alignment-options';
import {
getBaselineState,
Expand Down Expand Up @@ -122,7 +121,6 @@ export class WorkPackageSingleCardComponent extends UntilDestroyedMixin implemen
readonly cdRef:ChangeDetectorRef,
readonly timezoneService:TimezoneService,
readonly schemaCache:SchemaCacheService,
readonly wpTableColumns:WorkPackageViewColumnsService,
) {
super();
}
Expand Down Expand Up @@ -189,7 +187,7 @@ export class WorkPackageSingleCardComponent extends UntilDestroyedMixin implemen
}

public baselineIcon(workPackage:WorkPackageResource) {
this.baselineMode = getBaselineState(workPackage, this.schemaCache, this.wpTableColumns);
this.baselineMode = getBaselineState(workPackage, this.schemaCache);
return this.baselineMode;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import { WorkPackageViewBaselineService } from 'core-app/features/work-packages/
import { tdClassName } from 'core-app/features/work-packages/components/wp-fast-table/builders/cell-builder';
import { QueryColumn } from 'core-app/features/work-packages/components/wp-query/query-column';
import { opIconElement } from 'core-app/shared/helpers/op-icon-builder';
import { WorkPackageViewColumnsService } from 'core-app/features/work-packages/routing/wp-view-base/view-services/wp-view-columns.service';
import { SchemaCacheService } from 'core-app/core/schemas/schema-cache.service';
import { I18nService } from 'core-app/core/i18n/i18n.service';
import { getBaselineState } from '../../../wp-baseline/baseline-helpers';
Expand All @@ -20,8 +19,6 @@ export class BaselineColumnBuilder {

@InjectField() wpTableBaseline:WorkPackageViewBaselineService;

@InjectField() wpTableColumns:WorkPackageViewColumnsService;

@InjectField() schemaCache:SchemaCacheService;

@InjectField() I18n:I18nService;
Expand Down Expand Up @@ -53,7 +50,7 @@ export class BaselineColumnBuilder {
private changeIcon(
workPackage:WorkPackageResource,
):HTMLElement|null {
const state = getBaselineState(workPackage, this.schemaCache, this.wpTableColumns);
const state = getBaselineState(workPackage, this.schemaCache);
if (state === 'added') {
const icon = opIconElement('spot-icon', 'spot-icon_1', 'spot-icon_flex', 'spot-icon_arrow-in', 'op-table-baseline--icon-added');
icon.title = this.I18n.t('js.work_packages.baseline.addition_label');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -364,6 +364,13 @@
'Version B'
]

# Shows changes even if columns not showing
query.column_names -= %w[start_date due_date]
query.save!
wp_table.visit_query(query)

baseline.expect_icon wp_milestone_date_changed, 'changed'

# show icons on work package single card
display_representation.switch_to_card_layout
within "wp-single-card[data-work-package-id='#{wp_bug_was_task.id}']" do
Expand Down

0 comments on commit d60a286

Please sign in to comment.