From 0e690ba00ec83c0d3e0248b26a3e853874604b49 Mon Sep 17 00:00:00 2001 From: Thomas Schnaak <schnaak@uni-potsdam.de> Date: Sun, 19 Aug 2018 20:47:56 +0200 Subject: [PATCH] #64 feat: implemented add/delete Link --- .../journal/model/dao/LinkDAOImpl.java | 2 +- .../service/ProjectDescriptionImpl.java | 10 +++++++--- .../journal/view/ProjectDescriptionView.java | 9 ++++----- .../src/main/webapp/assets/js/e-portfolio.js | 19 ++++++++++--------- .../src/main/webapp/pages/eportfolio.jsp | 3 ++- 5 files changed, 24 insertions(+), 19 deletions(-) diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/LinkDAOImpl.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/LinkDAOImpl.java index 704af8d7..f78a69f7 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/LinkDAOImpl.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/dao/LinkDAOImpl.java @@ -36,7 +36,7 @@ public class LinkDAOImpl implements LinkDAO{ MysqlConnect connection = new MysqlConnect(); connection.connect(); - // build and execute request + // build and execute requestxam String request = "DELETE FROM links WHERE id = ?;"; connection.issueInsertOrDeleteStatement(request, linkId); diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/ProjectDescriptionImpl.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/ProjectDescriptionImpl.java index feb20170..77ed95bb 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/ProjectDescriptionImpl.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/ProjectDescriptionImpl.java @@ -25,13 +25,17 @@ public class ProjectDescriptionImpl implements ProjectDescriptionService { descriptionDAO.createDescription(description); } - return descriptionDAO.getDescription(studentIdentifier); + ProjectDescription returnDesc = descriptionDAO.getDescription(studentIdentifier); + returnDesc.setLinks(linkDAO.getAllLinks(returnDesc.getId())); + return returnDesc; } @Override public ProjectDescription getProjectbyId(String id) { - return descriptionDAO.getDescription(id); + ProjectDescription returnDesc = descriptionDAO.getDescription(id); + returnDesc.setLinks(linkDAO.getAllLinks(returnDesc.getId())); + return returnDesc; } @Override @@ -44,7 +48,7 @@ public class ProjectDescriptionImpl implements ProjectDescriptionService { @Override public void addLink(String project, String link, String name) { - Link newLink = new Link("0",project,name,link); + Link newLink = new Link(project,project,name,link); linkDAO.addLink(newLink); } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/view/ProjectDescriptionView.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/view/ProjectDescriptionView.java index 9426b28a..2b9fe312 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/view/ProjectDescriptionView.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/view/ProjectDescriptionView.java @@ -45,7 +45,6 @@ public class ProjectDescriptionView { @Path("/saveText") public Response saveProjectText(@FormParam("student") String student, @FormParam("project") String project, @FormParam("text") String text) { log.debug(">>> saveText: " + text); - descriptionService.saveProjectText(new StudentIdentifier(project,student),text); //TODO token @@ -69,14 +68,15 @@ public class ProjectDescriptionView { @POST @Consumes(MediaType.APPLICATION_FORM_URLENCODED) @Path("/addLink") - public Response addLink(@FormParam("link") String link, @FormParam("name") String name){ + public Response addLink(@FormParam("link") String link, @FormParam("name") String name, @FormParam("projectdescriptionId") String project){ log.debug(">>> addLink: " + name + ":" + link); - descriptionService.addLink("0",link, name ); + ProjectDescription desc = descriptionService.getProjectbyId(project); + descriptionService.addLink(project,link, name ); try { - URI location = new URI("../pages/eportfolio.jsp"); + URI location = new URI("../pages/eportfolio.jsp?token="+ desc.getStudent().getStudentId()+"&projectId="+desc.getStudent().getProjectId()); log.debug("<<< addLink: redirect to " +location.toString()); return Response.temporaryRedirect(location).build(); @@ -124,7 +124,6 @@ public class ProjectDescriptionView { StudentIdentifier student = descriptionService.getProjectbyId(desc).getStudent(); descriptionService.closeDescription(desc); - //TODO token try { URI location = new URI("../pages/eportfolio.jsp?token=" + student.getStudentId() + "&projectId=" + student.getProjectId()); log.debug("<<< closeDescription: redirect to " +location.toString()); diff --git a/gemeinsamforschen/src/main/webapp/assets/js/e-portfolio.js b/gemeinsamforschen/src/main/webapp/assets/js/e-portfolio.js index c4f98590..7ec0e356 100644 --- a/gemeinsamforschen/src/main/webapp/assets/js/e-portfolio.js +++ b/gemeinsamforschen/src/main/webapp/assets/js/e-portfolio.js @@ -1,19 +1,22 @@ var student = getQueryVariable("token"); var project = getQueryVariable("projectId"); var description = 0; -$(document).ready(function() { +$(document).ready(function() { $.ajax({ url: "../rest/projectdescription/" + project + "/" + student }).then(function(data) { console.log("desc: " + data); description = data.id; + $('#projectdescriptionId').val(description); + if (!data.open){ $("#description-edit").remove(); } $('.journal-description-text').append(data.descriptionHTML); - for(var link in data.links){ - $('.journal-description-links').append('<button class="btn btn-default btn-xs" onclick=\'linkLoeschen("'+link+'")\'> <i class="fa fa-trash" aria-hidden="true" ></i></button><a href=\' + data.links[link] + \'>' + link + '</a> <br/>'); + for(var ii in data.links){ + console.log(data.links[ii]) + $('.journal-description-links').append('<button class="btn btn-default btn-xs" onclick=\'linkLoeschen("'+data.links[ii].id +'")\'> <i class="fa fa-trash" aria-hidden="true" ></i></button><a href=' + data.links[ii].link + '>' + data.links[ii].name + '</a> <br/>'); } $('.journal-description-links').append('<button type="button" class="btn btn-default btn-xs" data-toggle="modal" data-target="#addLinkModal"><i class="fa fa-plus" aria-hidden="true"></i></button>'); @@ -35,7 +38,6 @@ $(document).ready(function() { }); $('#editDescriptionLink').on('click', function () { - /*TODO getJournal*/ location.href = "editDescription.jsp?project=" + project + "&token=" + student + "&projectId=" + project; }); @@ -108,21 +110,20 @@ function loadJournals(data) { $('.journal').append(journalString) }}; -function linkLoeschen(name) { - console.log("löschen" + name); +function linkLoeschen(id) { + console.log("löschen" + id); $.ajax({ type: "POST", url: "../rest/projectdescription/deleteLink", - data: JSON.stringify(eval(name)), + data: id, contentType: "application/json; charset=utf-8", crossDomain: true, dataType: "json", success: function (data, status, jqXHR) { - alert(success); } }); - + location.reload(); } function closeJournal() { diff --git a/gemeinsamforschen/src/main/webapp/pages/eportfolio.jsp b/gemeinsamforschen/src/main/webapp/pages/eportfolio.jsp index c42159cf..ee473b42 100644 --- a/gemeinsamforschen/src/main/webapp/pages/eportfolio.jsp +++ b/gemeinsamforschen/src/main/webapp/pages/eportfolio.jsp @@ -92,11 +92,12 @@ </div> <div class="modal-body"> <form id="linkform" method="POST" action="../rest/projectdescription/addLink" > + <input type="hidden" name="projectdescriptionId" id="projectdescriptionId" value=""/> Name:<br> <input type="text" name="name" form="linkform"> <br> URL:<br> - <input type="text" name="link" form="linkform"> + <input type="url" name="link" form="linkform"> <br><br> <input class="btn btn-default" type="submit" > <button type="button" class="btn btn-default" data-dismiss="modal">Abbrechen</button> -- GitLab