Merge remote-tracking branch 'origin/develop' into develop
# Conflicts: # src/environments/environment.beta.ts # src/environments/environment.prod.ts # src/environments/environment.ts
This commit is contained in:
commit
66a0b038b6
|
@ -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
|
||||
|
|
43
package.json
43
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"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,17 +2,15 @@
|
|||
<loading [full]="true"></loading>
|
||||
</div>
|
||||
<div *ngIf="loading == false">
|
||||
<div class="sidebar_main_swipe" [class.sidebar_main_active]="open && hasSidebar" [class.sidebar_mini]="!open && hasSidebar"
|
||||
<div id="modal-container"></div>
|
||||
<navbar *ngIf="hasHeader" portal="connect-admin" [header]="menuHeader" [communityId]="community ? community.communityId : null"
|
||||
[userMenuItems]=userMenuItems [menuItems]="menuItems" [user]="user"></navbar>
|
||||
<div class="sidebar_main_swipe uk-flex" [class.sidebar_main_active]="open && hasSidebar" [class.sidebar_mini]="!open && hasSidebar"
|
||||
[class.sidebar_hover]="hover">
|
||||
<div id="modal-container"></div>
|
||||
<navbar *ngIf="hasHeader" portal="connect-admin" [header]="menuHeader" [communityId]="community ? community.communityId : null"
|
||||
[userMenuItems]=userMenuItems [menuItems]="menuItems" [user]="user"></navbar>
|
||||
<div>
|
||||
<dashboard-sidebar *ngIf="hasSidebar" [items]="sideBarItems" [backItem]="backItem"></dashboard-sidebar>
|
||||
<main>
|
||||
<main class="uk-width-1-1">
|
||||
<router-outlet></router-outlet>
|
||||
</main>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -42,7 +42,7 @@ import {ClearCacheService} from "../../../../openaireLibrary/services/clear-cach
|
|||
<div class="uk-width-1-1">
|
||||
<input #file id="photo" type="file" class="uk-hidden" (change)="fileChangeEvent($event)"/>
|
||||
<div *ngIf="!communityFb.get('isUpload').value" class="uk-grid uk-grid-column-large" uk-grid>
|
||||
<div class="uk-margin-top uk-width-auto@l uk-width-1-1">
|
||||
<div class="uk-margin-xsmall-top uk-width-auto@l uk-width-1-1">
|
||||
<div class="uk-grid uk-grid-column-large uk-flex-middle" uk-grid>
|
||||
<div class="uk-width-auto@l uk-width-1-1 uk-flex uk-flex-center">
|
||||
<button class="uk-button uk-button-primary uk-flex uk-flex-middle uk-flex-wrap"
|
||||
|
@ -77,22 +77,21 @@ import {ClearCacheService} from "../../../../openaireLibrary/services/clear-cach
|
|||
<!-- Full width error message -->
|
||||
<div *ngIf="uploadError" class="uk-text-danger uk-margin-small-top uk-width-1-1">{{uploadError}}</div>
|
||||
</div>
|
||||
<div class="uk-width-1-2@m">
|
||||
<div class="uk-width-1-3@m">
|
||||
<div input [formInput]="communityFb.get('status')"
|
||||
placeholder="Visibility status for your community's profile."
|
||||
[options]="statuses" type="select"></div>
|
||||
</div>
|
||||
<div class="uk-width-1-2@m">
|
||||
<div class="uk-width-1-3@m">
|
||||
<div input [formInput]="communityFb.get('claim')"
|
||||
placeholder="Who can create links for your community"
|
||||
[options]="claimOptions" type="select"></div>
|
||||
</div>
|
||||
<!-- Hide until the functionality is ready-->
|
||||
<!-- <div class="uk-width-1-2@m">
|
||||
<div class="uk-width-1-3@m">
|
||||
<div input [formInput]="communityFb.get('membership')"
|
||||
placeholder="Who can join"
|
||||
[options]="membershipOptions" type="select"></div>
|
||||
</div>-->
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
`,
|
||||
|
|
|
@ -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;
|
||||
|
||||
}`
|
||||
]
|
||||
})
|
||||
|
||||
|
|
|
@ -82,14 +82,14 @@
|
|||
<div class="uk-card uk-card-default">
|
||||
<div class="uk-card-body">
|
||||
<h6 class="uk-margin-bottom">
|
||||
<a *ngIf="item.openaireId || (item.grantId && item.funder)"
|
||||
<a *ngIf="(item.openaireId || (item.grantId && item.funder)) && (!item['availableSince'] || !lastDBLoadDate || item['availableSince']<lastDBLoadDate)"
|
||||
target="_blank" class="custom-external uk-link-text"
|
||||
[href]="projectUrl+'?' + ((item.openaireId) ? 'projectId='+item.openaireId : 'grantId='+item.grantId+'&funder='+item.funder)">
|
||||
<span *ngIf="item.name">{{item.name}}</span>
|
||||
<span *ngIf="item.name && item.acronym"> (</span><span *ngIf="item.acronym">{{item.acronym}}</span><span *ngIf="item.name && item.acronym">)</span>
|
||||
<span *ngIf="!item.name && !item.acronym">[no title available]</span>
|
||||
</a>
|
||||
<span *ngIf="!item.openaireId && !(item.grantId && item.funder)">
|
||||
<span *ngIf="(!item.openaireId && !(item.grantId && item.funder) || (item['availableSince'] && lastDBLoadDate && item['availableSince'] >= lastDBLoadDate))">
|
||||
<span *ngIf="item.name">{{item.name}}</span>
|
||||
<span *ngIf="item.name && item.acronym"> (</span><span *ngIf="item.acronym">{{item.acronym}}</span><span *ngIf="item.name && item.acronym">)</span>
|
||||
<span *ngIf="!item.name && !item.acronym">[no title available]</span>
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -30,7 +30,6 @@ export class UsersManagersComponent implements OnInit {
|
|||
private subscriptions: any[] = [];
|
||||
|
||||
constructor(private communityService: CommunityService,
|
||||
private route: ActivatedRoute,
|
||||
private title: Title) {
|
||||
}
|
||||
|
||||
|
|
|
@ -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: `
|
||||
<subscribers [id]="community.communityId" [type]="'community'" [name]="community.shortTitle"
|
||||
<subscribers *ngIf="community.isOpen()" [id]="community.communityId" [type]="'community'" [name]="community.shortTitle"
|
||||
[inviteDisableMessage]="inviteDisableMessage">
|
||||
<users-tabs tab="member"></users-tabs>
|
||||
</subscribers>
|
||||
<role-users *ngIf="!community.isOpen()" [id]="community.communityId" [type]="community.type" [name]="community.shortTitle" [inviteDisableMessage]="inviteDisableMessage"
|
||||
[link]="link" [role]="'member'"
|
||||
[message]="message" [emailComposer]="emailComposer">
|
||||
<users-tabs tab="member"></users-tabs>
|
||||
</role-users>
|
||||
`
|
||||
})
|
||||
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=";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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]
|
||||
})
|
||||
|
|
|
@ -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++;
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit d18e0a7e43e5ab74649481ecbf352ba49893c66f
|
||||
Subproject commit d1b2d5e585722751792d12645d17f820cd6a7860
|
|
@ -1 +1 @@
|
|||
Subproject commit ac458b5a6d156167d7b6c9005ef1f9cfac75d3ae
|
||||
Subproject commit 2dadcf85926bc0f11fff22ed94dc197ddd8587c6
|
|
@ -1,5 +1,5 @@
|
|||
@use "sass:meta";
|
||||
@import "~interactiveminingv3/assets/css/variables.css";
|
||||
@import "node_modules/interactiveminingv3/assets/css/variables.css";
|
||||
|
||||
.mining {
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -10,13 +10,14 @@
|
|||
"moduleResolution": "node",
|
||||
"experimentalDecorators": true,
|
||||
"importHelpers": true,
|
||||
"target": "es2020",
|
||||
"target": "ES2022",
|
||||
"typeRoots": [
|
||||
"node_modules/@types"
|
||||
],
|
||||
"lib": [
|
||||
"es2018",
|
||||
"dom"
|
||||
]
|
||||
],
|
||||
"useDefineForClassFields": false
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue