diff --git a/interactivemining-install.sh b/interactivemining-install.sh index 047dd8c..8aaa876 100755 --- a/interactivemining-install.sh +++ b/interactivemining-install.sh @@ -1,7 +1,7 @@ rm -f interactiveminingv3.tgz git clone https://code-repo.d4science.org/MaDgIK/interactive-mining.git cd interactive-mining/ -git checkout angular-14 +git checkout angular-16 cd interactive-mining-angular-frontend/ npm install npm run packagr diff --git a/package.json b/package.json index f82f848..93b7fb3 100644 --- a/package.json +++ b/package.json @@ -17,41 +17,40 @@ }, "private": true, "dependencies": { - "@angular/animations": "^14.2.3", - "@angular/cdk": "^14.2.2", - "@angular/common": "^14.2.3", - "@angular/compiler": "^14.2.3", - "@angular/core": "^14.2.3", - "@angular/forms": "^14.2.3", - "@angular/localize": "^14.2.3", - "@angular/material": "^14.2.2", - "@angular/platform-browser": "^14.2.3", - "@angular/platform-browser-dynamic": "^14.2.3", - "@angular/router": "^14.2.3", + "@angular/animations": "^16.1.8", + "@angular/cdk": "^16.1.7", + "@angular/common": "^16.1.8", + "@angular/compiler": "^16.1.8", + "@angular/core": "^16.1.8", + "@angular/forms": "^16.1.8", + "@angular/localize": "^16.1.8", + "@angular/material": "^16.1.7", + "@angular/platform-browser": "^16.1.8", + "@angular/platform-browser-dynamic": "^16.1.8", + "@angular/router": "^16.1.8", "clipboard": "^1.5.16", "core-js": "^2.5.4", "express": "^4.15.2", "jquery": "^3.4.1", - "ng-recaptcha": "^10.0.0", + "ng-recaptcha": "^12.0.2", "ng2-ckeditor": "1.3.7", - "ngx-color-picker": "^8.1.0", + "ngx-color-picker": "^14.0.0", "rxjs": "^6.5.1", "sass-loader": "7.3.1", "ts-md5": "^1.2.0", "tslib": "^2.0.0", - "uikit": "3.13.10", - "zone.js": "~0.11.4" + "uikit": "3.16.24", + "zone.js": "~0.13.1" }, "devDependencies": { - "@angular-devkit/build-angular": "^14.2.3", - "@angular/cli": "^14.2.3", - "@angular/compiler-cli": "^14.2.3", - "@angular/language-service": "^14.2.3", + "@angular-devkit/build-angular": "^16.1.7", + "@angular/cli": "^16.1.7", + "@angular/compiler-cli": "^16.1.8", + "@angular/language-service": "^16.1.8", + "@types/ckeditor": "^4.9.10", "@types/express": "^4.17.0", "@types/jasmine": "~3.6.0", "@types/jasminewd2": "~2.0.3", - "@types/node": "^12.11.1", - "@types/ckeditor": "^4.9.10", "codelyzer": "^6.0.0", "jasmine-core": "~3.8.0", "jasmine-spec-reporter": "~5.0.0", @@ -62,6 +61,6 @@ "karma-jasmine-html-reporter": "^1.6.0", "protractor": "~7.0.0", "ts-node": "~7.0.0", - "typescript": "~4.6.4" + "typescript": "~4.9.5" } } diff --git a/src/app/app.component.html b/src/app/app.component.html index c6796f9..b63493a 100644 --- a/src/app/app.component.html +++ b/src/app/app.component.html @@ -2,17 +2,15 @@
- + +
diff --git a/src/app/pages/community-info/profile/edit-community/edit-community.component.ts b/src/app/pages/community-info/profile/edit-community/edit-community.component.ts index d418d0b..0134f16 100644 --- a/src/app/pages/community-info/profile/edit-community/edit-community.component.ts +++ b/src/app/pages/community-info/profile/edit-community/edit-community.component.ts @@ -42,7 +42,7 @@ import {ClearCacheService} from "../../../../openaireLibrary/services/clear-cach
-
+
-
+
-
+
- - +
`, diff --git a/src/app/pages/customization/color.component.ts b/src/app/pages/customization/color.component.ts index 094100e..eabe19e 100644 --- a/src/app/pages/customization/color.component.ts +++ b/src/app/pages/customization/color.component.ts @@ -21,14 +21,14 @@ import {CustomizationOptions} from '../../openaireLibrary/connect/community/Cust `, styles:[ ` - .color-input{ - width:24px; - height:14px; - border-radius:3px; - border:0.1px solid #707070; - cursor: pointer; - - }` + .color-input{ + width:24px; + height:14px; + border-radius:3px; + border:0.1px solid #707070; + cursor: pointer; + + }` ] }) diff --git a/src/app/pages/projects/remove-projects.component.html b/src/app/pages/projects/remove-projects.component.html index 59af0c5..ce7d1ab 100644 --- a/src/app/pages/projects/remove-projects.component.html +++ b/src/app/pages/projects/remove-projects.component.html @@ -82,14 +82,14 @@
- {{item.name}} ({{item.acronym}}) [no title available] - + {{item.name}} ({{item.acronym}}) [no title available] diff --git a/src/app/pages/projects/remove-projects.component.ts b/src/app/pages/projects/remove-projects.component.ts index d5bc5fb..c930aef 100644 --- a/src/app/pages/projects/remove-projects.component.ts +++ b/src/app/pages/projects/remove-projects.component.ts @@ -20,6 +20,7 @@ import {HelperFunctions} from "../../openaireLibrary/utils/HelperFunctions.class import {NotificationHandler} from "../../openaireLibrary/utils/notification-handler"; import {ClearCacheService} from "../../openaireLibrary/services/clear-cache.service"; import {debounceTime, distinctUntilChanged} from "rxjs/operators"; +import {IndexInfoService} from "../../openaireLibrary/utils/indexInfo.service"; @Component({ selector: 'remove-projects', @@ -63,18 +64,21 @@ export class RemoveProjectsComponent implements OnInit { ]; public openaireEntiites = OpenaireEntities; - + lastDBLoadDate = null; constructor(private route: ActivatedRoute, private _router: Router, private _fb: UntypedFormBuilder, private communityService: CommunityService, private _manageCommunityProjectsService: ManageCommunityProjectsService, private _searchCommunityProjectsService: SearchCommunityProjectsService, - private _clearCacheService: ClearCacheService) { + private _clearCacheService: ClearCacheService, private indexInfoService: IndexInfoService) { this.errorCodes = new ErrorCodes(); this.communitySearchUtils.status = this.errorCodes.LOADING; } ngOnInit() { + this.subscriptions.push(this.indexInfoService.getDBLoadLastDate(this.properties).subscribe(res => { + this.lastDBLoadDate = res; + })); this.communitySearchUtils.keyword = ""; this.filterForm = this._fb.group({ @@ -254,4 +258,6 @@ export class RemoveProjectsComponent implements OnInit { isSelected(value: string) { return this.filterForm && this.filterForm.get('funder').value && this.filterForm.get('funder').value.id === value; } + + } diff --git a/src/app/pages/users/users-managers/users-managers.component.ts b/src/app/pages/users/users-managers/users-managers.component.ts index 0589cc1..ecb8256 100644 --- a/src/app/pages/users/users-managers/users-managers.component.ts +++ b/src/app/pages/users/users-managers/users-managers.component.ts @@ -30,7 +30,6 @@ export class UsersManagersComponent implements OnInit { private subscriptions: any[] = []; constructor(private communityService: CommunityService, - private route: ActivatedRoute, private title: Title) { } diff --git a/src/app/pages/users/users-subscribers/users-subscribers.component.ts b/src/app/pages/users/users-subscribers/users-subscribers.component.ts index e432e46..02063ec 100644 --- a/src/app/pages/users/users-subscribers/users-subscribers.component.ts +++ b/src/app/pages/users/users-subscribers/users-subscribers.component.ts @@ -4,24 +4,36 @@ import {ActivatedRoute} from "@angular/router"; import {CommunityService} from "../../../openaireLibrary/connect/community/community.service"; import {Subscriber} from "rxjs"; import {CommunityInfo} from "../../../openaireLibrary/connect/community/communityInfo"; +import {Email} from "../../../openaireLibrary/utils/email/email"; +import {Composer} from "../../../openaireLibrary/utils/email/composer"; +import {properties} from "../../../../environments/environment"; @Component({ selector: 'users-subscribers', template: ` - + + + ` }) export class UsersSubscribersComponent implements OnInit { public community: CommunityInfo; + public link: string; public loading: boolean; + public message: string; public inviteDisableMessage: string; + public emailComposer: Function = (name, recipient, role):Email => { + return Composer.composeEmailForCommunityDashboard(name, role, recipient); + } private subscriptions: any[] = []; constructor(private communityService: CommunityService, - private route: ActivatedRoute, private title: Title) { } @@ -30,7 +42,10 @@ export class UsersSubscribersComponent implements OnInit { this.subscriptions.push(this.communityService.getCommunityAsObservable().subscribe(community => { if(community) { this.community = community; - this.title.setTitle(this.community.shortTitle.toUpperCase() + " | Subscribers"); + this.title.setTitle(this.community.shortTitle.toUpperCase() + " | Members"); + this.link = this.getURL(this.community.communityId); + this.message = 'A member can access the community dashboard and link research results with projects, ' + + 'communities and other research projects.'; if(community.status !== "all") { this.inviteDisableMessage = "Community's status is " + (community.status === 'manager'?'Visible to managers':'Hidden') + " and invitation to join the Research community dashboard is disabled. Update the community status to enable invitations." } @@ -46,4 +61,8 @@ export class UsersSubscribersComponent implements OnInit { } }); } + + private getURL(id: string): string { + return 'https://' + (properties.environment !== "production"?'beta.':'') + id + ".openaire.eu?verify="; + } } diff --git a/src/app/pages/users/users-subscribers/users-subscribers.module.ts b/src/app/pages/users/users-subscribers/users-subscribers.module.ts index 7865cfe..62b0293 100644 --- a/src/app/pages/users/users-subscribers/users-subscribers.module.ts +++ b/src/app/pages/users/users-subscribers/users-subscribers.module.ts @@ -5,11 +5,12 @@ import {LoadingModule} from "../../../openaireLibrary/utils/loading/loading.modu import {RouterModule} from "@angular/router"; import {SubscribersModule} from "../../../openaireLibrary/dashboard/users/subscribers/subscribers.module"; import {UsersTabsModule} from '../users-tabs.module'; +import {RoleUsersModule} from "../../../openaireLibrary/dashboard/users/role-users/role-users.module"; @NgModule({ imports: [CommonModule, LoadingModule, RouterModule.forChild([ {path: '', component: UsersSubscribersComponent} - ]), SubscribersModule, UsersTabsModule], + ]), SubscribersModule, UsersTabsModule, RoleUsersModule], declarations: [UsersSubscribersComponent], exports: [UsersSubscribersComponent] }) diff --git a/src/app/pages/zenodo-communities/zenodo-communities.component.ts b/src/app/pages/zenodo-communities/zenodo-communities.component.ts index 717c259..54080c3 100644 --- a/src/app/pages/zenodo-communities/zenodo-communities.component.ts +++ b/src/app/pages/zenodo-communities/zenodo-communities.component.ts @@ -62,7 +62,7 @@ export class ZenodoCommunitiesComponent implements OnInit, OnDestroy { this.masterZenodoCommunityId = this.community.zenodoCommunity; if (this.masterZenodoCommunityId) { this.subscriptions.push(this._zenodoCommunitieService.getZenodoCommunityById(this.properties, - this.properties.zenodoCommunities + this.masterZenodoCommunityId).subscribe( + this.masterZenodoCommunityId).subscribe( result => { this.masterZenodoCommunity = result; this.selectedCommunities.unshift(this.masterZenodoCommunity); @@ -113,7 +113,7 @@ export class ZenodoCommunitiesComponent implements OnInit, OnDestroy { getZenodoCommunityById(zenodoid) { this.subscriptions.push(this._zenodoCommunitieService.getZenodoCommunityById(this.properties, - this.properties.zenodoCommunities + zenodoid).subscribe( + zenodoid).subscribe( result => { this.selectedCommunities.push(result); this.zenodocommunitiesloadedCount++; diff --git a/src/assets/common-assets b/src/assets/common-assets index d18e0a7..d1b2d5e 160000 --- a/src/assets/common-assets +++ b/src/assets/common-assets @@ -1 +1 @@ -Subproject commit d18e0a7e43e5ab74649481ecbf352ba49893c66f +Subproject commit d1b2d5e585722751792d12645d17f820cd6a7860 diff --git a/src/assets/openaire-theme b/src/assets/openaire-theme index ac458b5..2dadcf8 160000 --- a/src/assets/openaire-theme +++ b/src/assets/openaire-theme @@ -1 +1 @@ -Subproject commit ac458b5a6d156167d7b6c9005ef1f9cfac75d3ae +Subproject commit 2dadcf85926bc0f11fff22ed94dc197ddd8587c6 diff --git a/src/mining.scss b/src/mining.scss index 75b9615..d1e47b7 100644 --- a/src/mining.scss +++ b/src/mining.scss @@ -1,5 +1,5 @@ @use "sass:meta"; -@import "~interactiveminingv3/assets/css/variables.css"; +@import "node_modules/interactiveminingv3/assets/css/variables.css"; .mining { diff --git a/src/test.ts b/src/test.ts index 6b03dbe..ae25f27 100644 --- a/src/test.ts +++ b/src/test.ts @@ -7,8 +7,6 @@ import { platformBrowserDynamicTesting } from '@angular/platform-browser-dynamic/testing'; -declare const require: any; - // First, initialize the Angular testing environment. getTestBed().initTestEnvironment( BrowserDynamicTestingModule, @@ -16,7 +14,3 @@ getTestBed().initTestEnvironment( teardown: { destroyAfterEach: false } } ); -// Then we find all the tests. -const context = require.context('./', true, /\.spec\.ts$/); -// And load the modules. -context.keys().map(context); diff --git a/tsconfig.json b/tsconfig.json index fc8b4c1..668d981 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -10,13 +10,14 @@ "moduleResolution": "node", "experimentalDecorators": true, "importHelpers": true, - "target": "es2020", + "target": "ES2022", "typeRoots": [ "node_modules/@types" ], "lib": [ "es2018", "dom" - ] + ], + "useDefineForClassFields": false } }