From fb57363139936b5c064654162b7f2669c993357e Mon Sep 17 00:00:00 2001 From: fred-fri <fred-fri@dsv.su.se> Date: Thu, 2 Aug 2012 12:25:21 +0900 Subject: [PATCH 1/4] added remote export setting back again --- .../settings/AdminGeneralSettingsPage.html | 25 +++++-------------- .../settings/AdminGeneralSettingsPage.java | 2 +- 2 files changed, 7 insertions(+), 20 deletions(-) diff --git a/src/main/java/se/su/dsv/scipro/admin/pages/settings/AdminGeneralSettingsPage.html b/src/main/java/se/su/dsv/scipro/admin/pages/settings/AdminGeneralSettingsPage.html index 1de7afe6b2..ddc78e7786 100644 --- a/src/main/java/se/su/dsv/scipro/admin/pages/settings/AdminGeneralSettingsPage.html +++ b/src/main/java/se/su/dsv/scipro/admin/pages/settings/AdminGeneralSettingsPage.html @@ -32,25 +32,12 @@ <td><input name="7" type="checkbox" wicket:id="mailNotifications" /> </td> </tr> - <!--<tr>--> - <!--<td><label for="7">Enable remote exports:</label>--> - <!--</td>--> - <!--<td><input name="7" type="checkbox" wicket:id="remoteExport" />--> - <!--</td>--> - <!--</tr>--> - <!--<tr>--> - <!--<td><label for="7">Supervisors can accept and decline project ideas:</label>--> - <!--</td>--> - <!--<td><input name="7" type="checkbox" wicket:id="supervisorsCanAcceptDeclinePIs" />--> - <!--</td>--> - <!--</tr>--> - <!--<tr>--> - <!--<td><label for="7">Matching algorithm matches are force accepted:</label>--> - <!--</td>--> - <!--<td><input name="7" type="checkbox" wicket:id="matchAlgorithmMatchesAreForceAccepted" />--> - <!--</td>--> - <!--</tr>--> - + <tr> + <td><label for="7">Enable remote exports:</label> + </td> + <td><input name="7" type="checkbox" wicket:id="remoteExport" /> + </td> + </tr> </table> diff --git a/src/main/java/se/su/dsv/scipro/admin/pages/settings/AdminGeneralSettingsPage.java b/src/main/java/se/su/dsv/scipro/admin/pages/settings/AdminGeneralSettingsPage.java index cfcd5e7c32..fee81658ea 100644 --- a/src/main/java/se/su/dsv/scipro/admin/pages/settings/AdminGeneralSettingsPage.java +++ b/src/main/java/se/su/dsv/scipro/admin/pages/settings/AdminGeneralSettingsPage.java @@ -44,7 +44,7 @@ public class AdminGeneralSettingsPage extends AbstractAdminSettingsPage { add(systemFromMail); add(smtpServer); add(mailNotifications); -// add(remoteExport); + add(remoteExport); } From 97a3c1be963996872c65aba6c78e517949497a31 Mon Sep 17 00:00:00 2001 From: fred-fri <fred-fri@dsv.su.se> Date: Fri, 3 Aug 2012 11:07:56 +0900 Subject: [PATCH 2/4] changed delete method and throwing exception higher --- src/main/java/se/su/dsv/scipro/io/facade/ExporterFacade.java | 4 +++- src/main/java/se/su/dsv/scipro/io/http/ApiClient.java | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/se/su/dsv/scipro/io/facade/ExporterFacade.java b/src/main/java/se/su/dsv/scipro/io/facade/ExporterFacade.java index 7c0d0aabee..79e57f4557 100644 --- a/src/main/java/se/su/dsv/scipro/io/facade/ExporterFacade.java +++ b/src/main/java/se/su/dsv/scipro/io/facade/ExporterFacade.java @@ -1,6 +1,7 @@ package se.su.dsv.scipro.io.facade; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; import se.su.dsv.scipro.data.dataobjects.Project; import se.su.dsv.scipro.data.dataobjects.ProjectFollower; @@ -15,6 +16,7 @@ import se.su.dsv.scipro.io.exceptions.ExternalExportException; @Service public class ExporterFacade { + @Qualifier("externalExporter") @Autowired ExternalExporter externalExporter; @@ -31,7 +33,7 @@ public class ExporterFacade { }catch(ExternalExportException eee){ externalExporter.deleteProject(""+p.getIdentifier()); System.out.println(eee.getMessage()); - //error(eee.getMessage()); + throw eee; } } diff --git a/src/main/java/se/su/dsv/scipro/io/http/ApiClient.java b/src/main/java/se/su/dsv/scipro/io/http/ApiClient.java index 1e1db73e42..3647dea6fa 100644 --- a/src/main/java/se/su/dsv/scipro/io/http/ApiClient.java +++ b/src/main/java/se/su/dsv/scipro/io/http/ApiClient.java @@ -202,7 +202,7 @@ public class ApiClient { Client client = getClient(); WebResource resource = client.resource(url); ClientResponse clientResponse = resource.accept(MediaType.APPLICATION_JSON_TYPE).delete(ClientResponse.class); - if(clientResponse.getStatus() != 200){ + if(clientResponse.getStatus() != 204){ throw new ExternalExportException("Could not delete project"); } return ""+clientResponse.getStatus(); From 51ee7cbffa85542fbbf5fd9c497f48a4d72ce497 Mon Sep 17 00:00:00 2001 From: fred-fri <fred-fri@dsv.su.se> Date: Fri, 3 Aug 2012 11:24:19 +0900 Subject: [PATCH 3/4] catching exception when trying to export, and printing an error message if not succesful --- .../serviceimpls/ProjectServiceImpl.java | 9 +++++++-- .../supervisor/panels/WatsonInfoPanel.html | 2 +- .../supervisor/panels/WatsonInfoPanel.java | 20 +++++++++++++++++-- 3 files changed, 26 insertions(+), 5 deletions(-) diff --git a/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/ProjectServiceImpl.java b/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/ProjectServiceImpl.java index d7ffaae3db..0868929818 100644 --- a/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/ProjectServiceImpl.java +++ b/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/ProjectServiceImpl.java @@ -14,6 +14,7 @@ import org.springframework.transaction.annotation.Transactional; import se.su.dsv.scipro.data.dataobjects.*; import se.su.dsv.scipro.data.enums.ProjectStatus; import se.su.dsv.scipro.data.enums.ProjectTeamMemberRoles; +import se.su.dsv.scipro.io.exceptions.ExternalExportException; import se.su.dsv.scipro.io.facade.ExporterFacade; import se.su.dsv.scipro.match.dataobject.ProjectIdea; import se.su.dsv.scipro.springdata.repos.*; @@ -185,8 +186,12 @@ public class ProjectServiceImpl extends AbstractQueryService<Project, Long> impl p = projectRepo.save(p); } - exporterFacade.exportProject(p, p.getHeadSupervisor().getUnit()); - return p; + try { + exporterFacade.exportProject(p, p.getHeadSupervisor().getUnit()); + return p; + } catch (ExternalExportException eee){ + throw eee; + } } else return null; } diff --git a/src/main/java/se/su/dsv/scipro/supervisor/panels/WatsonInfoPanel.html b/src/main/java/se/su/dsv/scipro/supervisor/panels/WatsonInfoPanel.html index dd8a0bd743..6bd05a490e 100644 --- a/src/main/java/se/su/dsv/scipro/supervisor/panels/WatsonInfoPanel.html +++ b/src/main/java/se/su/dsv/scipro/supervisor/panels/WatsonInfoPanel.html @@ -6,7 +6,7 @@ </head> <body> <wicket:panel> - + <div wicket:id="feedbackPanel"></div> <div><button wicket:id="export">Create project and export to Daisy</button></div> <br> diff --git a/src/main/java/se/su/dsv/scipro/supervisor/panels/WatsonInfoPanel.java b/src/main/java/se/su/dsv/scipro/supervisor/panels/WatsonInfoPanel.java index 0c3af1dbd0..49458ac8be 100644 --- a/src/main/java/se/su/dsv/scipro/supervisor/panels/WatsonInfoPanel.java +++ b/src/main/java/se/su/dsv/scipro/supervisor/panels/WatsonInfoPanel.java @@ -8,6 +8,7 @@ import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.markup.html.list.ListItem; import org.apache.wicket.markup.html.list.ListView; +import org.apache.wicket.markup.html.panel.FeedbackPanel; import org.apache.wicket.markup.html.panel.Panel; import org.apache.wicket.model.Model; import org.apache.wicket.spring.injection.annot.SpringBean; @@ -15,6 +16,7 @@ import se.su.dsv.scipro.SciProSession; import se.su.dsv.scipro.data.dataobjects.Employee; import se.su.dsv.scipro.data.dataobjects.GeneralSystemSettings; import se.su.dsv.scipro.data.dataobjects.Student; +import se.su.dsv.scipro.io.exceptions.ExternalExportException; import se.su.dsv.scipro.match.dao.interfaces.KeywordTypeDao; import se.su.dsv.scipro.match.dataobject.*; import se.su.dsv.scipro.security.auth.roles.Roles; @@ -39,9 +41,15 @@ public class WatsonInfoPanel extends Panel { @SpringBean private GeneralSystemSettingsService generalSystemSettingsService; + private FeedbackPanel feedbackPanel; + public WatsonInfoPanel(String id, final ProjectIdea projectIdea) { super(id); - + + feedbackPanel = new FeedbackPanel("feedbackPanel"); + feedbackPanel.setOutputMarkupId(true); + add(feedbackPanel); + add(new Label("level", projectIdea.getProjectClass().getName())); // add(new Label("authors", getAuthors(projectIdea.getAuthors()))); @@ -62,10 +70,18 @@ public class WatsonInfoPanel extends Panel { projectIdea.getMatch().getSupervisor().getUnit() != null && projectIdea.getProject() == null && generalSystemSettings.isRemoteExport(); + add(new AjaxLink("export") { @Override public void onClick(AjaxRequestTarget target) { - projectService.createAndExportProjectFromProjectIdea(projectIdea); + + try { + projectService.createAndExportProjectFromProjectIdea(projectIdea); + } catch (ExternalExportException eee){ + target.addComponent(feedbackPanel); + error("This project idea could not exported to Daisy. Try creating a thesis in Daisy manually."); + } + target.addComponent(this); this.setEnabled(false); this.setVisible(false); From d7ff70a30134cb6d1646a30a04b435d5df24c109 Mon Sep 17 00:00:00 2001 From: fred-fri <fred-fri@dsv.su.se> Date: Fri, 3 Aug 2012 11:28:09 +0900 Subject: [PATCH 4/4] added info about successful export too --- .../se/su/dsv/scipro/supervisor/panels/WatsonInfoPanel.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/se/su/dsv/scipro/supervisor/panels/WatsonInfoPanel.java b/src/main/java/se/su/dsv/scipro/supervisor/panels/WatsonInfoPanel.java index 49458ac8be..b1a1a93eb0 100644 --- a/src/main/java/se/su/dsv/scipro/supervisor/panels/WatsonInfoPanel.java +++ b/src/main/java/se/su/dsv/scipro/supervisor/panels/WatsonInfoPanel.java @@ -77,6 +77,8 @@ public class WatsonInfoPanel extends Panel { try { projectService.createAndExportProjectFromProjectIdea(projectIdea); + target.addComponent(feedbackPanel); + info("Project created and exported as a Thesis into Daisy."); } catch (ExternalExportException eee){ target.addComponent(feedbackPanel); error("This project idea could not exported to Daisy. Try creating a thesis in Daisy manually.");