Skip to content

Commit

Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
#3216: added embargo date to model and project cockpit
Browse files Browse the repository at this point in the history
moellerth committed Dec 5, 2023

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
1 parent 0abe703 commit 4765533
Showing 9 changed files with 88 additions and 4 deletions.
Original file line number Diff line number Diff line change
@@ -101,6 +101,7 @@ angular.module('metadatamanagementApp').config([
'create-project': 'Klicken, um ein neues Datenaufnahmeprojekt zu erzeugen.',
'delete-project': 'Klicken, um das ausgewählte Datenaufnahmeprojekt mit allen verknüpften Daten zu löschen.',
'release-project': 'Klicken, um das ausgewählte Projekt für alle Benutzer:innen freizugeben.',
'prerelease-project': 'Klicken, um das ausgewählte Projekt vorläufig freizugeben.',
'unrelease-project': 'Klicken, um die Freigabe des ausgewählten Projektes zurückzunehmen.',
'cockpit-project': 'Klicken, um zum Projektcockpit zu gehen.',
'post-validation': 'Klicken, um das ausgewählte Datenaufnahmeprojekt zu validieren.',
Original file line number Diff line number Diff line change
@@ -100,7 +100,8 @@ angular.module('metadatamanagementApp').config([
'tooltips': {
'create-project': 'Click to create a new Data Acquisition Project.',
'delete-project': 'Click to delete the selected Data Acquisition Project with all related data.',
'release-project': 'Click to release the selected project for all users.',
'release-project': 'Click to release the selected project preliminary.',
'prerelease-project': 'Click to preliminarily release the selected project.',
'unrelease-project': 'Click to unrelease the selected project.',
'cockpit-project': 'Click to go to the Project Cockpit.',
'post-validation': 'Click to validate the selected Data Acquisition Project.',
Original file line number Diff line number Diff line change
@@ -173,5 +173,17 @@ angular.module('metadatamanagementApp')
}
});
}

/**
* Method to check wether there is an embargo date
* and wether this date has expired.
*/
ctrl.isEmbargoDateExpired = function() {
if (ctrl.selectedProject.embargoDate) {
var current = new Date();
return new Date(ctrl.selectedProject.embargoDate) < current;
}
return true;
}
}
]);
Original file line number Diff line number Diff line change
@@ -35,7 +35,13 @@
</md-tooltip>
<md-icon md-font-set="material-icons">playlist_add_check</md-icon>
</md-button>
<md-button class="md-primary md-raised md-icon-button" style="margin-right: 0px;" ng-disabled="!ctrl.selectedProject" ng-click="ctrl.toggleReleaseProject()" ng-if="ctrl.hasAuthority('ROLE_PUBLISHER')">
<md-button ng-if="!ctrl.isEmbargoDateExpired()" class="md-primary md-raised md-icon-button" style="margin-right: 0px;" ng-disabled="!ctrl.selectedProject" ng-click="ctrl.toggleReleaseProject()" ng-if="ctrl.hasAuthority('ROLE_PUBLISHER')">
<md-tooltip ng-hide="!ctrl.selectedProject" md-direction="bottom" md-autohide="true" md-z-index="bowser.mobile || bowser.tablet ? -100 : 100001">
{{ctrl.selectedProject.release?'global.tooltips.unrelease-project':'global.tooltips.prerelease-project' | translate}}
</md-tooltip>
<md-icon md-font-set="material-icons">{{'more_time'}}</md-icon>
</md-button>
<md-button ng-if="ctrl.isEmbargoDateExpired()" class="md-primary md-raised md-icon-button" style="margin-right: 0px;" ng-disabled="!ctrl.selectedProject" ng-click="ctrl.toggleReleaseProject()" ng-if="ctrl.hasAuthority('ROLE_PUBLISHER')">
<md-tooltip ng-hide="!ctrl.selectedProject" md-direction="bottom" md-autohide="true" md-z-index="bowser.mobile || bowser.tablet ? -100 : 100001">
{{ctrl.selectedProject.release?'global.tooltips.unrelease-project':'global.tooltips.release-project' | translate}}
</md-tooltip>
Original file line number Diff line number Diff line change
@@ -55,6 +55,19 @@ angular.module('metadatamanagementApp')
req.dataPackagesRequired = true;
req.publicationsRequired = false;
};

ctrl.removeEmbargoDate = function() {
ctrl.project.embargoDate = null;
}

/**
* Adds 12 hours to the date object toto prevent time zone changes from changing the date
*/
ctrl.onEmbargoDateChanged = function() {
var embargoDate = new Date(ctrl.project.embargoDate);
embargoDate.setHours(12)
ctrl.project.embargoDate = embargoDate;
}
}
};
}]);
Original file line number Diff line number Diff line change
@@ -10,6 +10,30 @@
</div>
</div>

<md-card>
<md-card-title class="pa0">
<md-card-title-text>
<span class="md-headline">
Release Einstellungen
</span>
</md-card-title-text>
</md-card-title>
<md-card-content>
<md-input-container>
<label>Embargo-Date</label>
<div class="layout-row">
<md-datepicker ng-model="ctrl.project.embargoDate" md-hide-icons="calendar" ng-change="ctrl.onEmbargoDateChanged()" md-open-on-focus></md-datepicker>
<md-button ng-disabled="ctrl.project.embargoDate === null" class="md-icon-button md-primary mb-16" ng-click="ctrl.removeEmbargoDate()">
<md-icon md-font-set="material-icons" class="ng-binding ng-scope material-icons" role="img">delete_forever</md-icon>
<md-tooltip md-direction="left" md-autohide="true" md-z-index="bowser.mobile || bowser.tablet ? -100 : 100001">
"Embargo-Date löschen"
</md-tooltip>
</md-button>
</div>
</md-input-container>
</md-card-content>
</md-card>

<md-card ng-if="ctrl.project.configuration.requirements">
<md-card-title class="pa0">
<md-card-title-text>
Original file line number Diff line number Diff line change
@@ -161,6 +161,18 @@ angular.module('metadatamanagementApp')
}
};

/**
* Method to check wether there is an embargo date
* and wether this date has expired.
*/
ctrl.isEmbargoDateExpired = function() {
if (ctrl.project.embargoDate) {
var current = new Date();
return new Date(ctrl.project.embargoDate) < current;
}
return true;
}

}
};
}]);
Original file line number Diff line number Diff line change
@@ -4,7 +4,16 @@
<md-card layout-margin layout-column layout-align="center center" flex="1" style="flex-grow:0;min-width:200px;padding:8px;" class="ma8">
<release-status-badge released="ctrl.project.release"></release-status-badge>
<div class="layout-row">
<md-button class="md-raised md-fab md-mini md-primary" ng-click="ctrl.toggleReleaseProject()" ng-disabled="!ctrl.isAssignedPublisher() || ctrl.project.assigneeGroup !== 'PUBLISHER'">
<md-button ng-if="!ctrl.isEmbargoDateExpired()" class="md-raised md-fab md-mini md-primary" ng-click="ctrl.toggleReleaseProject()" ng-disabled="!ctrl.isAssignedPublisher() || ctrl.project.assigneeGroup !== 'PUBLISHER'">
<md-tooltip ng-if="ctrl.isAssignedPublisher() && ctrl.project.assigneeGroup === 'PUBLISHER'" ng-hide="!project" md-direction="bottom" md-autohide="true" md-z-index="bowser.mobile || bowser.tablet ? -100 : 100001">
{{ctrl.project.release?'global.tooltips.unrelease-project':'global.tooltips.prerelease-project' | translate}}
</md-tooltip>
<md-tooltip ng-if="!ctrl.isAssignedPublisher() || ctrl.project.assigneeGroup !== 'PUBLISHER'" ng-hide="!project" md-direction="bottom" md-autohide="true" md-z-index="bowser.mobile || bowser.tablet ? -100 : 100001">
{{'data-acquisition-project-management.error.project-update-access.member-of-assigned-group' | translate}}
</md-tooltip>
<md-icon md-font-set="material-icons">{{'more_time'}}</md-icon>
</md-button>
<md-button ng-if="ctrl.isEmbargoDateExpired()" class="md-raised md-fab md-mini md-primary" ng-click="ctrl.toggleReleaseProject()" ng-disabled="!ctrl.isAssignedPublisher() || ctrl.project.assigneeGroup !== 'PUBLISHER'">
<md-tooltip ng-if="ctrl.isAssignedPublisher() && ctrl.project.assigneeGroup === 'PUBLISHER'" ng-hide="!project" md-direction="bottom" md-autohide="true" md-z-index="bowser.mobile || bowser.tablet ? -100 : 100001">
{{ctrl.project.release?'global.tooltips.unrelease-project':'global.tooltips.release-project' | translate}}
</md-tooltip>
Original file line number Diff line number Diff line change
@@ -31,6 +31,7 @@
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.Date;

/**
* The data acquisition project collects the metadata for the data products which are published by
@@ -92,9 +93,14 @@ public class DataAcquisitionProject extends AbstractShadowableRdcDomainObject
+ "has-been-released-before.not-null")
private Boolean hasBeenReleasedBefore;

/**
* Attribute which holds information on the planned release date.
*/
private Date embargoDate;

/**
* A valid {@link Release} object.
*
*
* Null if the project is currently not released. The version of a {@link Release} must be a
* syntactically correct according to semver (major.minor.patch) and must not be decreased.
*/

0 comments on commit 4765533

Please sign in to comment.