TSK-1436: adapted PR change requests
This commit is contained in:
parent
3172f9f1bc
commit
90b094a5f1
|
@ -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,
|
|
@ -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 {
|
||||
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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',
|
||||
|
|
|
@ -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' };
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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 */
|
||||
|
||||
|
|
|
@ -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({
|
||||
|
|
|
@ -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({}));
|
||||
|
|
|
@ -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({
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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;
|
||||
});
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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;
|
||||
}
|
|
@ -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({
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
export interface ClassificationQueryFilterParameters {
|
||||
export interface ClassificationQueryFilterParameter {
|
||||
name?: string[];
|
||||
'name-like'?: string[];
|
||||
key?: string[];
|
|
@ -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 = {};
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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> {
|
||||
|
|
|
@ -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';
|
||||
|
||||
|
|
|
@ -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]
|
||||
};
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue