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.");