# HG changeset patch # User ymh # Date 1363363904 -3600 # Node ID 0fe9045d25b77f8c96e8b5daaa6c4e66cf33e338 # Parent 1e9a22f04c398340d1d550867df28e14dc918386 Add translation on delete message Add copy method on controler. diff -r 1e9a22f04c39 -r 0fe9045d25b7 server/src/main/java/org/iri_research/renkan/controller/RenkanController.java --- a/server/src/main/java/org/iri_research/renkan/controller/RenkanController.java Fri Mar 15 14:37:21 2013 +0100 +++ b/server/src/main/java/org/iri_research/renkan/controller/RenkanController.java Fri Mar 15 17:11:44 2013 +0100 @@ -21,6 +21,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.client.HttpClientErrorException; import org.springframework.web.client.HttpServerErrorException; import org.springframework.web.servlet.ModelAndView; @@ -51,7 +52,23 @@ } } - + @RequestMapping(value="/copy", method = RequestMethod.POST, produces={"application/json;charset=UTF-8"}) + public @ResponseBody Project copyProject(@RequestParam(value="project_id") String projectId ) { + + if(projectId == null || projectId.length() == 0) { + throw new IllegalArgumentException("RenkanContoller.renkanProject.copyProject: Project id is null or empty."); + } + Project project = this.projectsRepository.findOne(projectId); + if(project == null) { + throw new HttpClientErrorException(HttpStatus.NOT_FOUND, "Project " + projectId + " not found for copyProject."); + } + + Project newProject = this.projectsRepository.copy(project, project.getTitle() + " (copy)"); + + return newProject; + } + + @RequestMapping(value="/{project_id}", method = RequestMethod.GET, produces={"text/html;charset=UTF-8", "!image/*"}) public ModelAndView renkanProject( @PathVariable(value="project_id") String project_id, @@ -109,20 +126,5 @@ return "renkanProjectPublish"; } - @RequestMapping(value="/copy", method = RequestMethod.POST, params="project_id={project_id}", produces={"application/json;charset=UTF-8"}) - public Project copyProject(@RequestParam(value="project_id") String projectId ) { - - if(projectId == null || projectId.length() == 0) { - throw new IllegalArgumentException("RenkanContoller.renkanProject: Project id is null or empty."); - } - Project project = this.projectsRepository.findOne(projectId); - if(project == null) { - throw new HttpClientErrorException(HttpStatus.NOT_FOUND, "Project " + projectId + " not found."); - } - - Project newProject = this.projectsRepository.copy(project, project.getTitle() + " (copy)"); - - return newProject; - } } diff -r 1e9a22f04c39 -r 0fe9045d25b7 server/src/main/java/org/iri_research/renkan/repositories/ProjectsRepositoryImpl.java --- a/server/src/main/java/org/iri_research/renkan/repositories/ProjectsRepositoryImpl.java Fri Mar 15 14:37:21 2013 +0100 +++ b/server/src/main/java/org/iri_research/renkan/repositories/ProjectsRepositoryImpl.java Fri Mar 15 17:11:44 2013 +0100 @@ -69,8 +69,8 @@ res.setTitle(newTitle); this.nodesRepository.save(p.getNodes()); this.edgesRepository.save(p.getEdges()); - this.projectsRepository.save(p); - return res; + + return this.projectsRepository.save(p); } } diff -r 1e9a22f04c39 -r 0fe9045d25b7 server/src/main/webapp/WEB-INF/i18n/messages_en.properties --- a/server/src/main/webapp/WEB-INF/i18n/messages_en.properties Fri Mar 15 14:37:21 2013 +0100 +++ b/server/src/main/webapp/WEB-INF/i18n/messages_en.properties Fri Mar 15 17:11:44 2013 +0100 @@ -8,9 +8,14 @@ renkanIndex.project_name = Name renkanIndex.project_creation = Creation renkanIndex.project_edit = Edit +renkanIndex.project_copy = Copy +renkanIndex.project_delete = Delete renkanIndex.project_render = View renkanIndex.project_edit_link = Edit project +renkanIndex.project_copy_link = Copy project +renkanIndex.project_delete_link = Delete project renkanIndex.project_render_link = View project +renkanIndex.project_delete_confirm = Delete project "<%= title %>" ? renkanIndex.space_exp = or create/open a space with the title renkanIndex.renkan_spaces = Renkan Spaces diff -r 1e9a22f04c39 -r 0fe9045d25b7 server/src/main/webapp/WEB-INF/i18n/messages_fr.properties --- a/server/src/main/webapp/WEB-INF/i18n/messages_fr.properties Fri Mar 15 14:37:21 2013 +0100 +++ b/server/src/main/webapp/WEB-INF/i18n/messages_fr.properties Fri Mar 15 17:11:44 2013 +0100 @@ -9,9 +9,14 @@ renkanIndex.project_title = Titre renkanIndex.project_creation = Creation renkanIndex.project_edit = Edition +renkanIndex.project_copy = Copier +renkanIndex.project_delete = Eff. renkanIndex.project_render = Consult. renkanIndex.project_edit_link = Editer proj. +renkanIndex.project_copy_link = Copier proj. +renkanIndex.project_delete_link = Eff. proj. renkanIndex.project_render_link = Consult. proj. +renkanIndex.project_delete_confirm = Voulez-vous effacer le projet "<%= title %>" ? renkanIndex.space_exp = ou bien créer un espace avec le titre renkanIndex.renkan_spaces = Espaces Renkan diff -r 1e9a22f04c39 -r 0fe9045d25b7 server/src/main/webapp/WEB-INF/templates/projectIndex.html --- a/server/src/main/webapp/WEB-INF/templates/projectIndex.html Fri Mar 15 14:37:21 2013 +0100 +++ b/server/src/main/webapp/WEB-INF/templates/projectIndex.html Fri Mar 15 17:11:44 2013 +0100 @@ -33,6 +33,8 @@ Name Creation Edit + Copy + Del. View @@ -41,6 +43,8 @@ title date Edit project + Copy project + Delete project View project @@ -76,8 +80,38 @@ window.location = _.template(template_url+'<%=project_key%>', {project_id: project.id, project_key: project.key}); }); - //? window.location = "p/" + renkantitle : alert(/*[[#{renkanIndex.js.empty_name_error}]]*/"Please enter a name"); } + + function copyProject(project_id) + { + var post_url = /*[[@{/p/copy}]]*/"#"; + $.post(post_url, {"project_id": project_id}) + .done(function(p){ + window.location.reload(); + }); + } + + function deleteProject(project_id, project_title) + { + var message = /*[[#{renkanIndex.project_delete_confirm}]]*/"Delete project \"<%= title %>\""; + if(confirm(_.template(message, {title: project_title}))) { + var delete_url = /*[[@{/rest/projects}]]*/"#"; + $.ajax(delete_url+"/"+project_id, { + type: "DELETE" + }).done(function(){ + window.location.reload(); + }); + } + } + + $(function(){ + $(".copy_project").click(function(event) { + copyProject($(event.target).data("project_id")); + }); + $(".delete_project").click(function(event) { + deleteProject($(event.target).data("project_id"), $(event.target).data("project_title")); + }); + }); /*]]>*/