TSK-1436: adapted PR change requests

This commit is contained in:
Mustapha Zorgati 2020-12-16 06:27:57 +01:00
parent 3172f9f1bc
commit 90b094a5f1
24 changed files with 59 additions and 38 deletions

View File

@ -23,7 +23,7 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/** Default basic configuration for taskana web example. */
@Configuration
public class WebSecurityConfig {
public class TestWebSecurityConfig {
private final String ldapServerUrl;
private final String ldapBaseDn;
@ -31,7 +31,7 @@ public class WebSecurityConfig {
private final String ldapGroupSearchFilter;
@Autowired
public WebSecurityConfig(
public TestWebSecurityConfig(
@Value("${taskana.ldap.serverUrl:ldap://localhost:10389}") String ldapServerUrl,
@Value("${taskana.ldap.baseDn:OU=Test,O=TASKANA}") String ldapBaseDn,
@Value("${taskana.ldap.groupSearchBase:cn=groups}") String ldapGroupSearchBase,

View File

@ -1,5 +1,8 @@
package pro.taskana.rest;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
@ -18,10 +21,6 @@ import org.springframework.web.filter.CorsFilter;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
@Configuration
public class ExampleWebSecurityConfig {

View File

@ -10,7 +10,7 @@ import { Side } from '../workbasket-distribution-targets/workbasket-distribution
import { MatIconModule } from '@angular/material/icon';
import { MatToolbarModule } from '@angular/material/toolbar';
import { MatListModule } from '@angular/material/list';
import { WorkbasketQueryFilterParameter } from '../../../shared/models/workbasket-query-parameters';
import { WorkbasketQueryFilterParameter } from '../../../shared/models/workbasket-query-filter-parameter';
@Component({ selector: 'taskana-shared-workbasket-filter', template: '' })
class FilterStub {

View File

@ -13,7 +13,7 @@ import { expandDown } from 'app/shared/animations/expand.animation';
import { Side } from '../workbasket-distribution-targets/workbasket-distribution-targets.component';
import { MatSelectionList } from '@angular/material/list';
import { Pair } from '../../../shared/models/pair';
import { WorkbasketQueryFilterParameter } from '../../../shared/models/workbasket-query-parameters';
import { WorkbasketQueryFilterParameter } from '../../../shared/models/workbasket-query-filter-parameter';
@Component({
selector: 'taskana-administration-workbasket-distribution-targets-list',

View File

@ -19,7 +19,7 @@ import {
selectedWorkbasketMock,
workbasketReadStateMock
} from '../../../shared/store/mock-data/mock-store';
import { WorkbasketQueryFilterParameter } from '../../../shared/models/workbasket-query-parameters';
import { WorkbasketQueryFilterParameter } from '../../../shared/models/workbasket-query-filter-parameter';
import { Pair } from '../../../shared/models/pair';
const routeParamsMock = { id: 'workbasket' };

View File

@ -21,7 +21,7 @@ import {
import { WorkbasketSelectors } from '../../../shared/store/workbasket-store/workbasket.selectors';
import { ButtonAction } from '../../models/button-action';
import { Pair } from '../../../shared/models/pair';
import { WorkbasketQueryFilterParameter } from '../../../shared/models/workbasket-query-parameters';
import { WorkbasketQueryFilterParameter } from '../../../shared/models/workbasket-query-filter-parameter';
import { QueryPagingParameter } from '../../../shared/models/query-paging-parameter';
export enum Side {

View File

@ -18,7 +18,7 @@ import { MatDialogModule } from '@angular/material/dialog';
import { RouterTestingModule } from '@angular/router/testing';
import { RequestInProgressService } from '../../../shared/services/request-in-progress/request-in-progress.service';
import { Pair } from '../../../shared/models/pair';
import { WorkbasketQueryFilterParameter } from '../../../shared/models/workbasket-query-parameters';
import { WorkbasketQueryFilterParameter } from '../../../shared/models/workbasket-query-filter-parameter';
const getDomainFn = jest.fn().mockReturnValue(true);
const domainServiceMock = jest.fn().mockImplementation(
@ -123,14 +123,14 @@ describe('WorkbasketListToolbarComponent', () => {
expect(sort).toMatchObject(mockSort);
});
it('should NOT emit value when filtering is called with wrong component', async((done) => {
it('should NOT emit value when filtering is called with wrong component', () => {
const mockFilter: Pair<string, WorkbasketQueryFilterParameter> = { left: 'foo', right: { domain: ['DOMAIN_A'] } };
const performFilterSpy = jest.spyOn(component.performFilter, 'emit');
component.filtering(mockFilter);
expect(performFilterSpy).toBeCalledTimes(0);
}));
});
it('should emit value when filtering is called with correct component', async((done) => {
it('should emit value when filtering is called with correct component', () => {
const mockFilter: Pair<string, WorkbasketQueryFilterParameter> = {
left: 'workbasket-list',
right: { domain: ['DOMAIN_A'] }
@ -139,7 +139,7 @@ describe('WorkbasketListToolbarComponent', () => {
component.filtering(mockFilter);
expect(performFilterSpy).toBeCalledTimes(1);
expect(performFilterSpy).toBeCalledWith(mockFilter.right);
}));
});
/* HTML */

View File

@ -10,7 +10,7 @@ import { ACTION } from '../../../shared/models/action';
import { CreateWorkbasket } from '../../../shared/store/workbasket-store/workbasket.actions';
import { WorkbasketSelectors } from '../../../shared/store/workbasket-store/workbasket.selectors';
import { WorkbasketService } from '../../../shared/services/workbasket/workbasket.service';
import { WorkbasketQueryFilterParameter } from '../../../shared/models/workbasket-query-parameters';
import { WorkbasketQueryFilterParameter } from '../../../shared/models/workbasket-query-filter-parameter';
import { Pair } from '../../../shared/models/pair';
@Component({

View File

@ -22,7 +22,7 @@ import { DomainService } from '../../../shared/services/domain/domain.service';
import { RouterTestingModule } from '@angular/router/testing';
import { RequestInProgressService } from '../../../shared/services/request-in-progress/request-in-progress.service';
import { selectedWorkbasketMock } from '../../../shared/store/mock-data/mock-store';
import { WorkbasketQueryFilterParameter } from '../../../shared/models/workbasket-query-parameters';
import { WorkbasketQueryFilterParameter } from '../../../shared/models/workbasket-query-filter-parameter';
const workbasketSavedTriggeredFn = jest.fn().mockReturnValue(of(1));
const workbasketSummaryFn = jest.fn().mockReturnValue(of({}));

View File

@ -21,7 +21,7 @@ import { Workbasket } from '../../../shared/models/workbasket';
import { MatSelectionList } from '@angular/material/list';
import { DomainService } from '../../../shared/services/domain/domain.service';
import { RequestInProgressService } from '../../../shared/services/request-in-progress/request-in-progress.service';
import { WorkbasketQueryFilterParameter } from '../../../shared/models/workbasket-query-parameters';
import { WorkbasketQueryFilterParameter } from '../../../shared/models/workbasket-query-filter-parameter';
import { QueryPagingParameter } from '../../../shared/models/query-paging-parameter';
@Component({

View File

@ -22,8 +22,8 @@
<span class="icon-space">
{{getHeaderFieldDescription(taskHeader.key)}}
</span>
<span *ngIf="orderBy['sort-by'] === taskHeader.key"
[ngClass]="{'flip': orderBy.sortDirection === 'desc'}"
<span *ngIf="sortParameter['sort-by'] === taskHeader.key"
[ngClass]="{'flip': sortParameter.order === sortDirection.DESC}"
class="material-icons md-20 blue pull-right">sort</span>
</div>
<div (click)="toggleExpand = !toggleExpand" *ngIf="taskHeader.key === 'custom1'"
@ -39,8 +39,8 @@
{{getHeaderFieldDescription(taskHeader.key)}}
</span>
<span
*ngIf="orderBy.sortBy === taskHeader.key && filterFieldsToAllowQuerying(taskHeader.key)"
[ngClass]="{'flip': orderBy.sortDirection === 'desc'}"
*ngIf="sortParameter['sort-by'] === taskHeader.key && filterFieldsToAllowQuerying(taskHeader.key)"
[ngClass]="{'flip': sortParameter.order === sortDirection.DESC}"
class="material-icons md-20 blue pull-right">sort</span>
</div>
</ng-container>
@ -107,8 +107,8 @@
</div>
</form>
</div>
<div *ngIf="taskQueryResource" class="divTablePagination">
<taskana-shared-pagination (changePage)="changePage($event)" [(page)]="taskQueryResource.page"
<div *ngIf="taskQueryResource?.page" class="divTablePagination">
<taskana-shared-pagination (changePage)="changePage($event)" [page]="taskQueryResource.page"
[numberOfItems]="taskQuery.length"
type="Entries"></taskana-shared-pagination>
</div>

View File

@ -19,7 +19,7 @@ export class TaskHistoryQueryComponent implements OnInit {
taskQueryResource: TaskHistoryEventResourceData;
taskQuery: Array<TaskHistoryEventData>;
taskQueryHeader = new TaskHistoryEventData();
orderBy: Sorting<TaskHistoryQuerySortParameter> = {
sortParameter: Sorting<TaskHistoryQuerySortParameter> = {
'sort-by': TaskHistoryQuerySortParameter.CREATED,
order: Direction.ASC
};
@ -28,6 +28,9 @@ export class TaskHistoryQueryComponent implements OnInit {
taskQueryForm = new FormGroup({});
// to make this enum available for html
sortDirection = Direction;
constructor(
private taskQueryService: TaskHistoryQueryService,
private orientationService: OrientationService,
@ -147,7 +150,6 @@ export class TaskHistoryQueryComponent implements OnInit {
}
changeOrderBy(key: string) {
console.log(key);
if (this.filterFieldsToAllowQuerying(key)) {
// if (this.orderBy.sortBy === key) {
// this.orderBy.sortDirection = this.toggleSortDirection(this.orderBy.sortDirection);
@ -203,6 +205,7 @@ export class TaskHistoryQueryComponent implements OnInit {
()
.subscribe((taskQueryResource) => {
this.requestInProgressService.setRequestInProgress(false);
console.log(taskQueryResource);
this.taskQueryResource = taskQueryResource.taskHistoryEvents ? taskQueryResource : null;
this.taskQuery = taskQueryResource.taskHistoryEvents ? taskQueryResource.taskHistoryEvents : null;
});

View File

@ -11,7 +11,7 @@
<mat-menu #sortDirection="matMenu">
<!-- ASCENDING ORDER BUTTON -->
<button mat-menu-item (click)="changeOrder(sortDirectionEnum.ASC)">
<span *ngIf="sort.order === 'asc'; else coloredAsc">
<span *ngIf="sort.order === sortDirectionEnum.ASC; else coloredAsc">
<mat-icon class="sort__selected-value"> arrow_upward </mat-icon>
<span class="sort__selected-value"> Ascending </span>
</span>
@ -23,7 +23,7 @@
<!-- DESCENDING ORDER BUTTON -->
<button mat-menu-item (click)="changeOrder(sortDirectionEnum.DESC)">
<span *ngIf="sort.order === 'desc'; else coloredDesc">
<span *ngIf="sort.order === sortDirectionEnum.DESC; else coloredDesc">
<mat-icon class="sort__selected-value"> arrow_downward </mat-icon>
<span class="sort__selected-value"> Descending </span>
</span>

View File

@ -0,0 +1,15 @@
.dropdown-menu-users {
& > li {
margin-bottom: 5px;
}
margin-left: 15px;
}
button.btn.btn-default.pull-right.margin-right {
margin-top: 1px;
}
.blue {
color: #2e9eca;
}

View File

@ -1,6 +1,6 @@
import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
import { ALL_TYPES, WorkbasketType } from '../../models/workbasket-type';
import { WorkbasketQueryFilterParameter } from '../../models/workbasket-query-parameters';
import { WorkbasketQueryFilterParameter } from '../../models/workbasket-query-filter-parameter';
import { Pair } from '../../models/pair';
@Component({

View File

@ -1,4 +1,4 @@
export interface ClassificationQueryFilterParameters {
export interface ClassificationQueryFilterParameter {
name?: string[];
'name-like'?: string[];
key?: string[];

View File

@ -1,7 +1,9 @@
import { Links } from './links';
import { TaskHistoryEventData } from './task-history-event';
import { Page } from './page';
export class TaskHistoryEventResourceData {
public taskHistoryEvents: Array<TaskHistoryEventData>;
public page?: Page;
public _links: Links = {};
}

View File

@ -15,7 +15,8 @@ export class SelectWorkBasketPipe implements PipeTransform {
if (side === Side.SELECTED) {
return selectedWorkbaskets;
}
const isNotSelectedWorkbasket = (wb) => !selectedWorkbaskets.some((sWb) => sWb.workbasketId === wb.workbasketId);
return allWorkbaskets.filter(isNotSelectedWorkbasket);
const selectedWorkbasketIds: string[] = selectedWorkbaskets.map((wb) => wb.workbasketId);
const isNotASelectedWorkbasket = (wb: WorkbasketSummary) => !selectedWorkbasketIds.includes(wb.workbasketId);
return allWorkbaskets.filter(isNotASelectedWorkbasket);
}
}

View File

@ -9,7 +9,7 @@ import { DomainService } from 'app/shared/services/domain/domain.service';
import { ClassificationQuerySortParameter, Sorting } from 'app/shared/models/sorting';
import { StartupService } from '../startup/startup.service';
import { asUrlQueryString } from '../../util/query-parameters-v2';
import { ClassificationQueryFilterParameters } from '../../models/classification-query-filter-parameters';
import { ClassificationQueryFilterParameter } from '../../models/classification-query-filter-parameter';
import { QueryPagingParameter } from '../../models/query-paging-parameter';
@Injectable()
@ -26,7 +26,7 @@ export class ClassificationsService {
// GET
getClassifications(
filterParameter?: ClassificationQueryFilterParameters,
filterParameter?: ClassificationQueryFilterParameter,
sortParameter?: Sorting<ClassificationQuerySortParameter>,
pagingParameter?: QueryPagingParameter
): Observable<ClassificationPagingList> {

View File

@ -12,7 +12,7 @@ import { Sorting, WorkbasketQuerySortParameter } from 'app/shared/models/sorting
import { DomainService } from 'app/shared/services/domain/domain.service';
import { mergeMap, tap, catchError } from 'rxjs/operators';
import { WorkbasketRepresentation } from '../../models/workbasket-representation';
import { WorkbasketQueryFilterParameter } from '../../models/workbasket-query-parameters';
import { WorkbasketQueryFilterParameter } from '../../models/workbasket-query-filter-parameter';
import { QueryPagingParameter } from '../../models/query-paging-parameter';
import { asUrlQueryString } from '../../util/query-parameters-v2';

View File

@ -23,7 +23,7 @@ import { ClassificationsService } from '../../services/classifications/classific
import { DomainService } from '../../services/domain/domain.service';
import { Classification } from '../../models/classification';
import { ClassificationSummary } from '../../models/classification-summary';
import { ClassificationQueryFilterParameters } from '../../models/classification-query-filter-parameters';
import { ClassificationQueryFilterParameter } from '../../models/classification-query-filter-parameter';
import { ClassificationQuerySortParameter, Direction, Sorting } from '../../models/sorting';
class InitializeStore {
@ -98,7 +98,7 @@ export class ClassificationState implements NgxsAfterBootstrap {
const { selectedClassificationType } = ctx.getState();
return this.domainService.getSelectedDomain().pipe(
mergeMap((domain) => {
const filter: ClassificationQueryFilterParameters = {
const filter: ClassificationQueryFilterParameter = {
domain: [domain],
type: [selectedClassificationType]
};

View File

@ -5,7 +5,7 @@ import { WorkbasketAccessItems } from '../../models/workbasket-access-items';
import { WorkbasketComponent } from '../../../administration/models/workbasket-component';
import { ButtonAction } from '../../../administration/models/button-action';
import { QueryPagingParameter } from '../../models/query-paging-parameter';
import { WorkbasketQueryFilterParameter } from '../../models/workbasket-query-parameters';
import { WorkbasketQueryFilterParameter } from '../../models/workbasket-query-filter-parameter';
// Workbasket List
export class GetWorkbasketsSummary {

View File

@ -107,6 +107,7 @@ export class TaskdetailsGeneralFieldsComponent implements OnInit, OnChanges, OnD
this.requestInProgress = true;
this.classificationService
.getClassifications({ domain: [this.task.workbasketSummary.domain] })
.pipe(takeUntil(this.destroy$))
.subscribe((classificationPagingList) => {
this.classifications = classificationPagingList.classifications;
this.requestInProgress = false;