diff --git a/CHANGELOG b/CHANGELOG index 6bfcc91cb308d5027703d573c1dc4826e896774b..92e8271c217f99db350a230bcb6db1c9f05634a3 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -15,6 +15,8 @@ minerva (14.0.0~alpha.0) unstable; urgency=low * Small improvement: when removing overlay in admin panel there is a confirmation dialog (#696) * Small improvement: overlay name is obligatory (#698) + * Small improvement: list of projects in admin panel contains creation date + (#447) * Small improvement: target gene in search panel contains also information about type of database that identifies the target (#66) * Small improvement: redundant 'references' field in gene variants data diff --git a/frontend-js/src/main/js/gui/admin/MapsAdminPanel.js b/frontend-js/src/main/js/gui/admin/MapsAdminPanel.js index 3202b85d3d3641099a5ba6b82879471b44213f6f..2d10ac4619dc2e8d687cec98546bdfacb7e9a20f 100644 --- a/frontend-js/src/main/js/gui/admin/MapsAdminPanel.js +++ b/frontend-js/src/main/js/gui/admin/MapsAdminPanel.js @@ -125,6 +125,8 @@ MapsAdminPanel.prototype._createProjectTableRow = function () { $(projectsTable).DataTable({ columns: [{ title: 'ProjectId' + }, { + title: 'Created' }, { title: 'Name' }, { @@ -237,10 +239,17 @@ MapsAdminPanel.prototype.projectToTableRow = function (project, row, user) { } row[0] = formattedProjectId; - row[1] = project.getName(); - row[2] = disease; - row[3] = organism; - row[4] = status; + var date = project.getCreationDate(); + if (date === undefined) { + date = "N/A"; + } else { + date = date.split(" ")[0]; + } + row[1] = date; + row[2] = project.getName(); + row[3] = disease; + row[4] = organism; + row[5] = status; var disabled = " disabled "; if ((user.hasPrivilege(self.getConfiguration().getPrivilegeType(PrivilegeType.IS_ADMIN)) || @@ -249,12 +258,12 @@ MapsAdminPanel.prototype.projectToTableRow = function (project, row, user) { disabled = ""; } - row[5] = "<button name='showEditDialog' data='" + project.getProjectId() + "'" + disabled + "><i class='fa fa-edit' style='font-size:17px'></i></button>"; + row[6] = "<button name='showEditDialog' data='" + project.getProjectId() + "'" + disabled + "><i class='fa fa-edit' style='font-size:17px'></i></button>"; if (self.getConfiguration().getOption(ConfigurationType.DEFAULT_MAP).getValue() === projectId) { disabled = " disabled "; } - row[6] = "<button name='removeProject' data='" + project.getProjectId() + "'" + disabled + "><i class='fa fa-trash-o' style='font-size:17px'></button>"; + row[7] = "<button name='removeProject' data='" + project.getProjectId() + "'" + disabled + "><i class='fa fa-trash-o' style='font-size:17px'></button>"; return row; }; diff --git a/frontend-js/src/main/js/map/data/Project.js b/frontend-js/src/main/js/map/data/Project.js index 5fb5c274588902beb9bd4c3c5d21822213f38c62..0d28c2672bab7a2af48a43f6f74bfa126ce0ba44 100644 --- a/frontend-js/src/main/js/map/data/Project.js +++ b/frontend-js/src/main/js/map/data/Project.js @@ -62,6 +62,7 @@ Project.prototype.loadFromData = function (data) { } else { self.setId(parseInt(data.idObject)); self.setProjectId(data.projectId); + self.setCreationDate(data.creationDate); self.setDirectory(data.directory); self.setVersion(data.version); self.setName(data.name); @@ -582,5 +583,25 @@ Project.prototype.getBioEntitiesByIdentifiedElements = function (elements, compl return Promise.all(promises); }; +/** + * + * @returns {string} + */ +Project.prototype.getCreationDate = function () { + return this._creationDate; +}; + +/** + * + * @param {string|null} creationDate + */ +Project.prototype.setCreationDate = function (creationDate) { + if (creationDate === null) { + creationDate = undefined; + } + this._creationDate = creationDate; +}; + + module.exports = Project; diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/projects/ProjectRestImpl.java b/rest-api/src/main/java/lcsb/mapviewer/api/projects/ProjectRestImpl.java index 63814e80e0d5efb9614d0b37a2ca57e89f2964d9..7ef62d468f2fc9b56ec86ab48989e184001c5eb8 100644 --- a/rest-api/src/main/java/lcsb/mapviewer/api/projects/ProjectRestImpl.java +++ b/rest-api/src/main/java/lcsb/mapviewer/api/projects/ProjectRestImpl.java @@ -106,6 +106,7 @@ public class ProjectRestImpl extends BaseRestImpl { result.put("errors", project.getErrors() != null && !project.getErrors().isEmpty()); result.put("name", project.getName()); result.put("projectId", project.getProjectId()); + result.put("creationDate", super.prepareDate(project.getCreationDate())); result.put("mapCanvasType", project.getMapCanvasType()); List<Map<String, Object>> images = new ArrayList<>();