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); } 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(); 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..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 @@ -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,20 @@ 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); + 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."); + } + target.addComponent(this); this.setEnabled(false); this.setVisible(false);