[Yanel-commits] rev 21673 - in public/yanel/trunk/src/resources/importsite: src/java/org/wyona/yanel/impl/resources xslt

michi at wyona.com michi at wyona.com
Fri Jan 12 10:10:15 CET 2007


Author: michi
Date: 2007-01-12 10:10:10 +0100 (Fri, 12 Jan 2007)
New Revision: 21673

Modified:
   public/yanel/trunk/src/resources/importsite/src/java/org/wyona/yanel/impl/resources/ImportSiteResource.java
   public/yanel/trunk/src/resources/importsite/xslt/importsite.xsl
Log:
error screen and status screen fixed

Modified: public/yanel/trunk/src/resources/importsite/src/java/org/wyona/yanel/impl/resources/ImportSiteResource.java
===================================================================
--- public/yanel/trunk/src/resources/importsite/src/java/org/wyona/yanel/impl/resources/ImportSiteResource.java	2007-01-12 09:07:55 UTC (rev 21672)
+++ public/yanel/trunk/src/resources/importsite/src/java/org/wyona/yanel/impl/resources/ImportSiteResource.java	2007-01-12 09:10:10 UTC (rev 21673)
@@ -4,6 +4,7 @@
 
 package org.wyona.yanel.impl.resources;
 
+import org.wyona.yanel.core.Path;
 import org.wyona.yanel.core.Resource;
 import org.wyona.yanel.core.api.attributes.ViewableV2;
 import org.wyona.yanel.core.attributes.viewable.View;
@@ -59,6 +60,9 @@
      */
     public View getView(String viewId) throws Exception {
         
+        Path path = getPath();
+        HttpServletRequest request = getRequest();
+        
         // Get language
         try {
             language = request.getParameter("yanel.meta.language");
@@ -70,6 +74,13 @@
             log.debug("language param is empty or null : " + language);
             language = defaultLanguage;
         }
+        
+        /* create tmp status file
+        if (!new File(request.getSession().getServletContext().getRealPath("tmp")).exists()) {
+            if (!new File(request.getSession().getServletContext().getRealPath("tmp")).mkdir()) {
+                errorMessage = errorMessage + "\n Creation of tmp directory faild.";
+            }
+        }*/
 
         Transformer transformer = null;
         I18nTransformer i18nTransformer = new I18nTransformer("importsite", language);
@@ -89,14 +100,30 @@
                 File statusXSLTFile = org.wyona.commons.io.FileUtil.file(rtd.getConfigFile().getParentFile().getAbsolutePath(), "xslt" + File.separator + "importsite.xsl");
                 File statusXMLFile = org.wyona.commons.io.FileUtil.file(rtd.getConfigFile().getParentFile().getAbsolutePath(), "xml" + File.separator + "status-screen.xml");
                 transformer = TransformerFactory.newInstance().newTransformer(new StreamSource(statusXSLTFile));
-                transformer.setParameter("realmid", HttpServletRequestHelper.getParameter(request, "realmid"));
-                transformer.setParameter("realmname", HttpServletRequestHelper.getParameter(request, "realmname"));
-                transformer.setParameter("url", HttpServletRequestHelper.getParameter(request, "url"));
-                String crawldepth = null;
-                if ((crawldepth = request.getParameter("crawldepth")) != null) {
-                    transformer.setParameter("crawldepth", crawldepth);
+                
+                String parameterName = "";
+                String parameter = "";
+                String parameterErrorName = "";
+                String parameterError = "";
+                String[] parameters = { "realmid", "realmname", "url", "fs-location", "crawldepth", "maxpages" };
+                for (int i=0; i<parameters.length; i++){
+                    parameterName = parameters[i];
+                    parameter = HttpServletRequestHelper.getParameter(request, parameterName);
+                    transformer.setParameter(parameterName, parameter);
+                    
+                    if (parameter == null || ("").equals(parameter)) {
+                        parameterErrorName = "error-" + parameterName;
+                        parameterError = "Please enter correct value for '" + parameterName + "'";
+                        transformer.setParameter(parameterErrorName, parameterError);
+                    }
                 }
-                transformer.setParameter("maxpages", HttpServletRequestHelper.getParameter(request, "maxpages"));
+                
+                if (parameterError == null || ("").equals(parameterError)) {
+                    transformer.setParameter("submitted", "true");
+                }
+                
+                transformer.transform(new javax.xml.transform.stream.StreamSource(statusXMLFile), new StreamResult(byteArrayOutputStream));
+                
             } else {
                 File inputXSLTFile = org.wyona.commons.io.FileUtil.file(rtd.getConfigFile().getParentFile().getAbsolutePath(), "xslt" + File.separator + "importsite.xsl");
                 File inputXMLFile = org.wyona.commons.io.FileUtil.file(rtd.getConfigFile().getParentFile().getAbsolutePath(), "xml" + File.separator + "input-screen.xml");
@@ -104,8 +131,6 @@
 
                 transformer.transform(new javax.xml.transform.stream.StreamSource(inputXMLFile), new StreamResult(byteArrayOutputStream));
             }
-
-            defaultView.setMimeType("application/xhtml+xml");
             
             SAXParser saxParser = SAXParserFactory.newInstance().newSAXParser();
             saxParser.parse(new ByteArrayInputStream(byteArrayOutputStream.toByteArray()), i18nTransformer);
@@ -113,7 +138,8 @@
         } catch (Exception e) {
             log.error(e.getMessage(), e);
         }
-
+        
+        defaultView.setMimeType("application/xhtml+xml");
         defaultView.setInputStream(i18nTransformer.getInputStream());
         return defaultView;
    }

Modified: public/yanel/trunk/src/resources/importsite/xslt/importsite.xsl
===================================================================
--- public/yanel/trunk/src/resources/importsite/xslt/importsite.xsl	2007-01-12 09:07:55 UTC (rev 21672)
+++ public/yanel/trunk/src/resources/importsite/xslt/importsite.xsl	2007-01-12 09:10:10 UTC (rev 21673)
@@ -9,8 +9,22 @@
 
   <xsl:output method="xhtml" encoding="UTF-8"/>
   
-  <xsl:param name="error" select="''"/>
+  <xsl:param name="realmid" select="''" />
+  <xsl:param name="realmname" select="''" />
+  <xsl:param name="url" select="''" />
+  <xsl:param name="fs-location" select="''" />
+  <xsl:param name="crawldepth" select="''" />
+  <xsl:param name="maxpages" select="''" />
+  
+  <xsl:param name="error-realmid" select="''" />
+  <xsl:param name="error-realmname" select="''" />
+  <xsl:param name="error-url" select="''" />
+  <xsl:param name="error-fs-location" select="''" />
+  <xsl:param name="error-crawldepth" select="''" />
+  <xsl:param name="error-maxpages" select="''" />
 
+  <xsl:param name="submitted" select="'false'" />
+
   <xsl:template match="/">
     <html xmlns="http://www.w3.org/1999/xhtml">
       <head>
@@ -26,45 +40,121 @@
         <h3><i18n:message key="importsite"/></h3>
         
         <div id="contentBody">
+          <xsl:choose>
+            <xsl:when test="$submitted != 'false'">
+              <p>[X] pages have been imported.</p>
+              <p>[X]% complete.</p>
+            </xsl:when>
+            <xsl:otherwise>
+              
+              <form method="post">
+                  <table cellpadding="0" cellspacing="0" border="0">
+                    <xsl:for-each select="form/inputfields/input">
+                      <tr>
+                        <td align="right" valign="top" class="contentfield" width="150">
+                          <i18n:message key="{.}"/>:&#0160;
+                        </td>
+                        <td>
+                          <xsl:choose>
+                            <xsl:when test="$error-realmid != '' or $error-realmname != '' 
+                                            or $error-url != '' or $error-fs-location != ''
+                                            or $error-crawldepth != '' or $error-maxpages != ''">
+                              <xsl:choose>
+                                <xsl:when test="position()='1'">
+                                  <input type="text" name="{.}" class="box" size="30" value="{$realmid}" />
+                                </xsl:when>
+                                <xsl:when test="position()='2'">
+                                  <input type="text" name="{.}" class="box" size="30" value="{$realmname}" />
+                                </xsl:when>
+                                <xsl:when test="position()='3'">
+                                  <input type="text" name="{.}" class="box" size="30" value="{$url}" />
+                                </xsl:when>
+                                <xsl:when test="position()='4'">
+                                  <input type="text" name="{.}" class="box" size="30" value="{$fs-location}" />
+                                </xsl:when>
+                                <xsl:when test="position()='5'">
+                                  <input type="text" name="{.}" class="box" size="30" value="{$crawldepth}" />
+                                </xsl:when>
+                                <xsl:when test="position()='6'">
+                                  <input type="text" name="{.}" class="box" size="30" value="{$maxpages}" />
+                                </xsl:when>
+                                <xsl:otherwise/>
+                              </xsl:choose>
+                            </xsl:when>
+                            <xsl:otherwise>
+                              <input type="text" name="{.}" class="box" size="30" />
+                            </xsl:otherwise>
+                          </xsl:choose>
+                        </td>
+                        <td><xsl:if test="@required = 'true'">*</xsl:if></td>
+                        <xsl:choose>
+                          <xsl:when test="position()='1' and $error-realmid != ''">
+                            <td>
+                              &#160;<font color="red"><i18n:message key="{$error-realmid}"/></font>
+                            </td>
+                          </xsl:when>
+                          <xsl:when test="position()='2' and $error-realmname != ''">
+                            <td>
+                              &#160;<font color="red"><i18n:message key="{$error-realmname}"/></font>
+                            </td>
+                          </xsl:when>
+                          <xsl:when test="position()='3' and $error-url != ''">
+                            <td>
+                              &#160;<font color="red"><i18n:message key="{$error-url}"/></font>
+                            </td>
+                          </xsl:when>
+                          <xsl:when test="position()='4' and $error-fs-location != ''">
+                            <td>
+                              &#160;<font color="red"><i18n:message key="{$error-fs-location}"/></font>
+                            </td>
+                          </xsl:when>
+                          <xsl:when test="position()='5' and $error-crawldepth != ''">
+                            <td>
+                              &#160;<font color="red"><i18n:message key="{$error-crawldepth}"/></font>
+                            </td>
+                          </xsl:when>
+                          <xsl:when test="position()='6' and $error-maxpages != ''">
+                            <td>
+                              &#160;<font color="red"><i18n:message key="{$error-maxpages}"/></font>
+                            </td>
+                          </xsl:when>
+                          <xsl:otherwise>
+                            <td>
+                              &#160;
+                            </td>
+                          </xsl:otherwise>
+                        </xsl:choose>
+                        <!--<xsl:if test="$error != ''">
+                          <td>
+                            &#160;<font color="red"><i18n:message key="{$error}"/></font>
+                          </td>
+                        </xsl:if>-->
+                      </tr>
+                      <tr>
+                        <td>&#160;</td>
+                        <td class="samplevalue">
+                          (i.e. <xsl:value-of select="@samplevalue"/>)
+                        </td>
+                        <td>&#160;</td>
+                      </tr>
+                    </xsl:for-each>
+                    
+                    <tr>
+                      <td>&#160;
+                      </td>
+                      <td align="right">
+                        <input type="submit" name="submit" value="i18n:attr key=importsite"/>
+                      </td>
+                    </tr>
+            
+                    <tr>
+                      <td align="right" valign="top" class="contentfield" colspan="2"><br/><i18n:message key="requiredFields"/></td>
+                    </tr>
+                  </table>
+              </form>
         
-          <form method="post">
-              <table cellpadding="0" cellspacing="0" border="0">
-                <xsl:for-each select="form/inputfields/input">
-                  <tr>
-                    <td align="right" valign="top" class="contentfield" width="150">
-                      <xsl:choose>
-                        <xsl:when test="$error != ''"><font color="red"><i18n:message key="{$error}"/></font></xsl:when>
-                        <xsl:otherwise><i18n:message key="{.}"/>:&#0160;</xsl:otherwise>
-                      </xsl:choose>
-                    </td>
-                    <td>
-                      <input type="text" name="{.}" class="box" size="30"/>
-                    </td>
-                    <td><xsl:if test="@required = 'true'">*</xsl:if></td>
-                  </tr>
-                  <tr>
-                    <td>&#160;</td>
-                    <td class="samplevalue">
-                      (i.e. <xsl:value-of select="@samplevalue"/>)
-                    </td>
-                    <td>&#160;</td>
-                  </tr>
-                </xsl:for-each>
-                
-                <tr>
-                  <td>&#160;
-                  </td>
-                  <td align="right">
-                    <input type="submit" name="submit" value="i18n:attr key=importsite"/>
-                  </td>
-                </tr>
-        
-                <tr>
-                  <td align="right" valign="top" class="contentfield" colspan="2"><br/><i18n:message key="requiredFields"/></td>
-                </tr>
-              </table>
-          </form>
-        
+            </xsl:otherwise>
+          </xsl:choose>
         </div>
       </body>
     </html>




More information about the Yanel-commits mailing list