Skip to content

Commit

Permalink
Merge branch 'release/6.4.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
olliefreeman committed Aug 7, 2021
2 parents 0d4f9ad + 90c2289 commit 95223ad
Show file tree
Hide file tree
Showing 147 changed files with 5,701 additions and 3,670 deletions.
75 changes: 24 additions & 51 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 5 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
{
"name": "mdm-ui",
"version": "6.3.1",
"version": "6.4.0",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"dist": "ng build --prod --output-path=dist/mdm-ui-$npm_package_version && npm run dist-archive",
"dist-archive": "tar zcvf dist/mdm-ui-${npm_package_version}.tgz -C dist mdm-ui-$npm_package_version",
"test": "jest",
"test-with-coverage": "jest --coverage",
"test-watch": "jest --watch",
Expand Down Expand Up @@ -36,7 +38,7 @@
"@bpmn-io/dmn-migrate": "^0.4.3",
"@ctrl/ngx-codemirror": "4.0.1",
"@fortawesome/fontawesome-free": "5.15.1",
"@maurodatamapper/mdm-resources": "git+https://github.com/MauroDataMapper/mdm-resources.git#4.7.1",
"@maurodatamapper/mdm-resources": "git+https://github.com/MauroDataMapper/mdm-resources.git#4.8.0",
"@uirouter/angular": "7.0.0",
"@uirouter/core": "6.0.6",
"@uirouter/rx": "0.6.5",
Expand Down Expand Up @@ -88,6 +90,7 @@
"@angular/language-service": "9.1.12",
"@ctrl/ngx-codemirror": "4.0.1",
"@types/backbone": "1.4.5",
"@types/diff-match-patch": "^1.0.32",
"@types/jest": "26.0.14",
"@types/jquery": "3.5.2",
"@types/lodash": "^4.14.161",
Expand Down
9 changes: 3 additions & 6 deletions src/app/access/group-access-new/group-access-new.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ export class GroupAccessNewComponent implements OnInit {

ngOnInit() {
this.buildGroups();
this.loadAllGroups(0, 0);
this.loadAllGroups();

this.dataSource = new MatTableDataSource(this.groups);
this.dataSource.sort = this.sort;
Expand All @@ -78,7 +78,7 @@ export class GroupAccessNewComponent implements OnInit {
};
}

loadAllGroups(offset: number, limit: number) {
loadAllGroups() {
this.allGroups = [];

this.securityHandler
Expand All @@ -88,11 +88,8 @@ export class GroupAccessNewComponent implements OnInit {
return;
}

limit = limit ? limit : 10;
offset = offset ? offset : 0;

this.resourceService.userGroups
.list()
.list({all:true})
.pipe(
catchError(error => {
this.messageHandler.showError('There was a problem getting the group list.', error);
Expand Down
59 changes: 49 additions & 10 deletions src/app/app-routing.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ import { CodeSetComponent } from './code-set/code-set/code-set.component';
import { ModelMergingComponent } from './model-merging/model-merging.component';
import { ModelsMergingGraphComponent } from './models-merging-graph/models-merging-graph.component';
import { EnumerationValuesComponent } from '@mdm/enumerationValues/enumeration-values/enumeration-values.component';
import { StateObject, TransitionService, UIRouter } from '@uirouter/core';
import { HookResult, StateObject, Transition, TransitionService, UIRouter } from '@uirouter/core';
import { EditingService } from '@mdm/services/editing.service';
import { SubscribedCatalogueMainComponent } from './subscribed-catalogues/subscribed-catalogue-main/subscribed-catalogue-main.component';
import { FederatedDataModelMainComponent } from './subscribed-catalogues/federated-data-model-main/federated-data-model-main.component';
Expand All @@ -64,6 +64,8 @@ import { NewVersionComponent } from './shared/new-version/new-version.component'
import { VersionedFolderComponent } from './versioned-folder/versioned-folder/versioned-folder.component';
import { MergeDiffContainerComponent } from './merge-diff/merge-diff-container/merge-diff-container.component';
import { OpenIdConnectAuthorizeComponent } from './security/open-id-connect-authorize/open-id-connect-authorize.component';
import { DoiRedirectComponent } from './doi-redirect/doi-redirect.component';
import { SharedService, StateRoleAccessService } from './services';


export const pageRoutes: { states: Ng2StateDeclaration[] } = {
Expand Down Expand Up @@ -183,6 +185,17 @@ export const pageRoutes: { states: Ng2StateDeclaration[] } = {
url: '/open-id-connect/authorize',
component: OpenIdConnectAuthorizeComponent
},
{
name: 'appContainer.mainApp.doiRedirect',
url: '/doi/:id',
component: DoiRedirectComponent,
params: {
id: {
type: 'string',
raw: true
}
}
},
{
name: 'appContainer.mainApp.twoSidePanel.catalogue.search',
url: '/search',
Expand Down Expand Up @@ -320,33 +333,59 @@ export const pageRoutes: { states: Ng2StateDeclaration[] } = {
/**
* Router transition hook to check editing state of app before switching views
*/
const editingViewTransitionHooks = (transitionService: TransitionService, editingService: EditingService) => {
const editingViewTransitionHooks = (transitions: TransitionService, editing: EditingService) => {

/**
* Check each state transition where the "from" view state is marked as editable.
*/
const canLeaveStateCriteria = {
from: (state: StateObject) => state.name && editingService.isRouteEditable(state.name)
from: (state: StateObject) => state.name && editing.isRouteEditable(state.name)
};

/**
* Check a state transition by checking if any unsaved edits still exist. If so, confirm with the user whether to continue.
*/
const canLeaveStateAction = () => editingService.confirmLeaveAsync().toPromise();
const canLeaveStateAction = () => editing.confirmLeaveAsync().toPromise();

/**
* When entering each view, ensure that the global editing state of the app is reset.
*/
const onEnteringViewAction = () => editingService.stop();
const onEnteringViewAction = () => editing.stop();

transitions.onBefore(canLeaveStateCriteria, canLeaveStateAction);
transitions.onEnter({}, onEnteringViewAction);
};

/**
* Router transition hooks for checking role access before switching views.
*
* @see {@link StateRoleAccessService}
*/
const roleTransitionHooks = (transitions: TransitionService) => {

/**
* Before starting a transition, check if the user/role has access to this route.
*/
const canAccessRoute = (transition: Transition): HookResult => {
const roleAccess = transition.injector().get<StateRoleAccessService>(StateRoleAccessService);
const shared = transition.injector().get<SharedService>(SharedService);
shared.current = transition.$to().name;
return roleAccess.hasAccess(transition.$to().name);
};

transitionService.onBefore(canLeaveStateCriteria, canLeaveStateAction);
transitionService.onEnter({}, onEnteringViewAction);
transitions.onStart({}, canAccessRoute);
};

/**
* Configuration of the `UIRouter`.
*/
const routerConfigFn = (router: UIRouter, injector: Injector) => {
const transitionService = router.transitionService;
const editingService = injector.get<EditingService>(EditingService);
editingViewTransitionHooks(transitionService, editingService);
const transitions = router.transitionService;

const editing = injector.get<EditingService>(EditingService);

editingViewTransitionHooks(transitions, editing);
roleTransitionHooks(transitions);
};

@NgModule({
Expand Down

0 comments on commit 95223ad

Please sign in to comment.