changeset 5008:04ccec566689

flys/#657: Shapefile upload now reports success or failure to client.
author Christian Lins <christian.lins@intevation.de>
date Mon, 18 Feb 2013 16:29:37 +0100
parents 99b452967737
children 7c8ce0a95a64
files flys-client/src/main/java/de/intevation/flys/client/client/ui/DigitizePanel.java flys-client/src/main/java/de/intevation/flys/client/server/FileUploadServiceImpl.java flys-client/src/main/webapp/WEB-INF/config.yaml
diffstat 3 files changed, 55 insertions(+), 159 deletions(-) [+]
line wrap: on
line diff
--- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/DigitizePanel.java	Fri Feb 15 12:47:15 2013 +0100
+++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/DigitizePanel.java	Mon Feb 18 16:29:37 2013 +0100
@@ -2,6 +2,7 @@
 
 import com.google.gwt.core.client.GWT;
 import com.google.gwt.user.client.rpc.AsyncCallback;
+
 import com.smartgwt.client.types.Encoding;
 import com.smartgwt.client.types.VerticalAlignment;
 import com.smartgwt.client.util.SC;
@@ -179,10 +180,13 @@
             combobox.setShowTitle(false);
             form.setItems(combobox);
 
-            HTMLPane frame = new HTMLPane();
-            frame.setWidth("1px");
-            frame.setHeight("1px");
-            frame.setContents("<iframe id='uploadTarget' name='uploadTarget'></iframe>");
+            HTMLPane uploadTargetFrame = new HTMLPane();
+            uploadTargetFrame.setWidth("200px");
+            uploadTargetFrame.setHeight("50px");
+            uploadTargetFrame.setContents(
+                    "<iframe id='uploadTarget' name='uploadTarget' scrolling='no' width=200 height=50 style='border: 0px'></iframe>");
+            uploadTargetFrame.setBorder("0px");
+            uploadTargetFrame.setScrollbarSize(0);
 
             final DynamicForm uploadForm = new DynamicForm();
             uploadForm.setAction("flys/fileupload?uuid=" + artifact.getUuid());
@@ -200,13 +204,16 @@
                     uploadForm.submitForm();
                 }
             });
-            layout.addMember(frame);
+
             layout.addMember(label);
             layout.addMember(form);
             layout.addMember(uploadLabel);
             layout.addMember(uploadForm);
             layout.addMember(submit);
             layout.addMember(getNextButton());
+
+            layout.setMembersMargin(10);
+            layout.addMember(uploadTargetFrame);
         }
 
         form.setValues(initial);
--- a/flys-client/src/main/java/de/intevation/flys/client/server/FileUploadServiceImpl.java	Fri Feb 15 12:47:15 2013 +0100
+++ b/flys-client/src/main/java/de/intevation/flys/client/server/FileUploadServiceImpl.java	Mon Feb 18 16:29:37 2013 +0100
@@ -7,7 +7,9 @@
 import de.intevation.artifacts.httpclient.http.HttpClientImpl;
 
 import java.io.ByteArrayOutputStream;
+import java.io.IOException;
 import java.io.InputStream;
+import java.io.PrintWriter;
 
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
@@ -28,11 +30,6 @@
 
     @Override
     protected void doPost(HttpServletRequest req, HttpServletResponse resp) {
-        processPost(req, resp);
-    }
-
-
-    protected void processPost(HttpServletRequest req, HttpServletResponse resp) {
         logger.debug("handling post request.");
 
         String url  = getServletContext().getInitParameter("server-url");
@@ -47,15 +44,31 @@
         try {
             Document result = client.callService(url, "fileupload", request);
 
+            PrintWriter respWriter = resp.getWriter();
+            respWriter.write("<html><link href='FLYS.css' rel='stylesheet' type='text/css'>");
+            respWriter.write("<body><div style='font-face: Arial,Verdana,sans-serif; font-size: 11px'>");
+
             if (result == null) {
                 logger.warn("FileUpload service returned no result.");
+                respWriter.write("FileUpload service returned no result");
             }
+            else {
+                String status = result.getElementsByTagName("status")
+                        .item(0).getTextContent();
+                respWriter.write(status);
+            }
+
+            respWriter.write("</div></body></html>");
+            respWriter.flush();
 
             return;
         }
         catch (ConnectionException ce) {
             logger.error(ce, ce);
         }
+        catch (IOException e) {
+            logger.error(e, e);
+        }
     }
 
 
@@ -67,8 +80,6 @@
 
             while (iter.hasNext()) {
                 FileItemStream item = iter.next();
-
-                String name = item.getFieldName();
                 InputStream stream = item.openStream();
 
                 // Process the input stream
--- a/flys-client/src/main/webapp/WEB-INF/config.yaml	Fri Feb 15 12:47:15 2013 +0100
+++ b/flys-client/src/main/webapp/WEB-INF/config.yaml	Mon Feb 18 16:29:37 2013 +0100
@@ -25,7 +25,7 @@
   - 2000000
   - 4000000
 
-outputFilename: 'flys-${date}.pdf'
+outputFilename: "flys-${date}.pdf"
 
 #===========================================================================
 # the list of allowed hosts
@@ -54,65 +54,12 @@
     port: 80
 
 layouts:
-  #===========================================================================
-  A4 portrait:
-  #===========================================================================
-    metaData:
-      title: '${title}'
-      author: 'Flys'
-      subject: 'Kartendruck A4 Portrait'
-      keywords: 'map,print'
-      creator: 'd4e-river'
-
-    #-------------------------------------------------------------------------
-    mainPage:
-      pageSize: A4
-      landscape: false
-      header:
-        height: 50
-        items:
-          - !image
-            align: left
-            maxWidth: 60
-            maxHeight: 60
-            url: '${configDir}/../images/FLYS_Logo.png'
-      items:
-        - !text
-            font: Helvetica
-            fontSize: 30
-            align: right
-            text: '${mapTitle}'
-            spacingAfter: 30
-        - !map
-          spacingAfter: 30
-          width: 440
-          height: 483
-        - !scalebar
-          type: bar
-          maxSize: 100
-          barBgColor: white
-          fontSize: 8
-          align: right
-        - !text
-          text: '${comment}'
-          spacingAfter: 30
-        - !text
-          font: Helvetica
-          fontSize: 9
-          align: right
-          text: '1:${scale} ${now MM.dd.yyyy}'
-        - !legends
-          align: left
-          maxIconWidth: 32
-          maxIconHeight: 32
-      footer: *commonFooter
-      
 
   #===========================================================================
   A4 landscape:
   #===========================================================================
     metaData:
-      title: '${title}'
+      title: "${title}"
       author: 'Flys'
       subject: 'Kartendruck A4 Quer'
       keywords: 'map,print'
@@ -125,96 +72,27 @@
       header:
         height: 50
         items:
-          - !image
-            align: left
-            maxWidth: 60
-            maxHeight: 60
-            url: '${configDir}/../images/FLYS_Logo.png'
+          - !columns
+            config:
+              cells:
+                - paddingBottom: 5
+            items:
+            - !image
+              align: left
+              maxWidth: 50
+              maxHeight: 50
+              url: "${configDir}/../images/FLYS_Logo.png"
+            - !text
+              font: Helvetica
+              fontSize: 30
+              align: right
+              text: "${mapTitle}"
+              
       items:
-        - !text
-            font: Helvetica
-            fontSize: 30
-            align: right
-            text: '${mapTitle}'
-            spacingAfter: 30
-        - !map
-          absoluteX: 45
-          absoluteY: 510
-          #spacingAfter: 30
-          width: 540
-          height: 480
-          align: left
-        - !scalebar
-          type: bar
-          maxSize: 100
-          barBgColor: white
-          fontSize: 8
-          align: right
-        - !text
-          text: '${comment}'
-          spacingAfter: 30
-        - !text
-          font: Helvetica
-          fontSize: 9
-          align: right
-          text: '1:${scale} ${now MM.dd.yyyy}'
-        - !legends
-          align: right
-          maxIconWidth: 32
-          maxIconHeight: 32
-#         - !columns
-#           widths: [500, 200]
-#           items:
-#             - !map
-#               width: 500
-#               height: 500
-#             - !legends
-      footer: *commonFooter
-
-
-  #===========================================================================
-  A0 portrait:
-  #===========================================================================
-    metaData:
-      title: '${title}'
-      author: 'MapFish print module'
-      subject: 'Simple layout'
-      keywords: 'map,print'
-      creator: 'MapFish'
-
-    #-------------------------------------------------------------------------
-    mainPage:
-      pageSize: A0
-      rotation: true
-      header:
-        height: 50
-        items:
-          - !text
-            font: Helvetica
-            fontSize: 30
-            align: right
-            text: '${mapTitle}'
-      items:
-        - !map
-          spacingAfter: 30
-          width: 1760
-          height: 1932
-        - !scalebar
-          type: bar
-          maxSize: 100
-          barBgColor: white
-          fontSize: 8
-          align: right
-        - !text
-          text: '${comment}'
-          spacingAfter: 30
-        - !text
-          font: Helvetica
-          fontSize: 9
-          align: right
-          text: '1:${scale} ${now MM.dd.yyyy}'
-        - !legends
-          align: left
-          maxIconWidth: 32
-          maxIconHeight: 32
-      footer: *commonFooter
+      - !map
+        absoluteX: 45
+        absoluteY: 510
+        spacingAfter: 200
+        width: 540
+        height: 480
+        align: left

http://dive4elements.wald.intevation.org