Author: billyxie
Date: 2009-05-11 11:06:36 +0200 (Mon, 11 May 2009)
New Revision: 35060

Added:
   
CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/src/java/com/finalist/cmsc/navigation/forms/LayoutAction.java
Modified:
   
CMSContainer/trunk/CMSContainer/cmsc/edit-webapp/src/webapp/editors/editwizards_new/xsl/wizard.xsl
   CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/project.xml
   
CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/src/webapp/WEB-INF/struts-site.xml
   
CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/src/webapp/editors/config/layout/search_page_layoutrel_layout.xml
Log:
CMSC-152 - The layout of a page should be selectable from a selectbox 
(Currently it is a popup)

Modified: 
CMSContainer/trunk/CMSContainer/cmsc/edit-webapp/src/webapp/editors/editwizards_new/xsl/wizard.xsl
===================================================================
--- 
CMSContainer/trunk/CMSContainer/cmsc/edit-webapp/src/webapp/editors/editwizards_new/xsl/wizard.xsl
  2009-05-11 05:57:50 UTC (rev 35059)
+++ 
CMSContainer/trunk/CMSContainer/cmsc/edit-webapp/src/webapp/editors/editwizards_new/xsl/wizard.xsl
  2009-05-11 09:06:36 UTC (rev 35060)
@@ -474,6 +474,65 @@
           </tr>
         </table>
       </xsl:for-each>
+      <xsl:for-each select="comma...@name=&apos;layoutsearch&apos;]">
+        <script type="text/javascript">
+               <![CDATA[
+               function ajaxFunction(){
+                       var xmlhttp;
+                       if (window.XMLHttpRequest){
+                               // code for IE7+, Firefox, Chrome, Opera, Safari
+                               xmlhttp=new XMLHttpRequest();
+                       } else if(window.ActiveXObject){
+                               // code for IE6, IE5
+                               xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
+                       } else {
+                               alert("Your browser does not support XMLHTTP!");
+                       }
+                         
+                       xmlhttp.onreadystatechange=function() {
+                               if(xmlhttp.readyState==4) {
+                                       var aOptions = 
eval(xmlhttp.responseText);
+                                       var htmlOptions = new Array();
+                                       if(aOptions.length == 1){
+                                               layoutsearch(aOptions[0].id);
+                                       } else if(aOptions.length > 1){
+                                               htmlOptions[0] = new 
Option("","");
+                                               for(var i = 0; i < 
aOptions.length; i++){
+                                                       
htmlOptions[htmlOptions.length] = new Option(aOptions[i].title,aOptions[i].id);
+                                               }
+                                               for(var i= 0; i < 
htmlOptions.length; i++){
+                                                       
document.getElementById("layoutselect").options.add(htmlOptions[i]);
+                                               }                               
        
+                                       }
+                               }
+                       }
+                       
+                       
xmlhttp.open("GET","../../../../editors/site/LayoutAction.do",true);
+                       xmlhttp.send(null);
+               }
+               ajaxFunction();
+               ]]>
+        function layoutsearch(value){
+                       if(value != null){
+                               doAdd("|" + value, '<xsl:value-of 
select="../comma...@name=&apos;add-item&apos;]/@cmd" />' );
+                       }
+        }
+        </script>
+        <table class="searchcontent">
+          <tr>
+            <xsl:if test="prompt">
+              <td class="searchprompt"><xsl:call-template name="prompt"/></td>
+            </xsl:if>
+            <td>
+              <xsl:call-template name="listsearch-age"/>
+            </td>
+            <td>
+              <select id="layoutselect" class="searchpossibilities" 
onchange="javascript:layoutsearch(this.value);" >
+                         </select>
+            </td>
+          </tr>
+        </table>
+      </xsl:for-each>
       <xsl:for-each select="comma...@name=&apos;contenttypeselector&apos;]">
         <script type="text/javascript">
         function searchtypedef(){
@@ -729,6 +788,10 @@
      <!-- Search is handled by the listsearch template -->
   </xsl:template>
   
+  <xsl:template match="comma...@name=&apos;layoutsearch&apos;]" 
mode="listnewbuttons">
+     <!-- Search is handled by the listsearch template -->
+  </xsl:template>
+  
   <xsl:template match="comma...@name=&apos;assetsselector&apos;]" 
mode="listnewbuttons">
      <!-- Search is handled by the listsearch template -->
   </xsl:template>

Modified: CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/project.xml
===================================================================
--- CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/project.xml     
2009-05-11 05:57:50 UTC (rev 35059)
+++ CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/project.xml     
2009-05-11 09:06:36 UTC (rev 35060)
@@ -42,6 +42,12 @@
                        <version>${mmbase.version}</version>
                        <type>jar</type>
                </dependency>
+               <dependency>
+                       <groupId>org.json</groupId>
+                       <artifactId>json</artifactId>
+                       <version>20070829</version>
+                       <type>jar</type>
+               </dependency>
        </dependencies>
 </project>
 

Added: 
CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/src/java/com/finalist/cmsc/navigation/forms/LayoutAction.java
===================================================================
--- 
CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/src/java/com/finalist/cmsc/navigation/forms/LayoutAction.java
                           (rev 0)
+++ 
CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/src/java/com/finalist/cmsc/navigation/forms/LayoutAction.java
   2009-05-11 09:06:36 UTC (rev 35060)
@@ -0,0 +1,52 @@
+/**
+ * 
+ */
+package com.finalist.cmsc.navigation.forms;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
+import org.json.JSONArray;
+import org.json.JSONObject;
+import org.mmbase.bridge.Cloud;
+import org.mmbase.bridge.Node;
+import org.mmbase.bridge.NodeIterator;
+import org.mmbase.bridge.NodeList;
+import org.mmbase.bridge.util.SearchUtil;
+
+import com.finalist.cmsc.beans.om.Layout;
+import com.finalist.cmsc.struts.MMBaseAction;
+
+/**
+ * @author Billy
+ *
+ */
+public class LayoutAction extends MMBaseAction {
+       
+       private static final String LAYOUT = "layout";
+       private static final String ORDERFIELD = "title";
+
+       @Override
+       public ActionForward execute(ActionMapping mapping, ActionForm form,
+                       HttpServletRequest request, HttpServletResponse 
response,
+                       Cloud cloud) throws Exception {
+               NodeList nodelist = SearchUtil.findOrderedNodeList(cloud, 
LAYOUT, ORDERFIELD);
+               JSONArray jsonArray = new JSONArray();
+               NodeIterator iter = nodelist.nodeIterator();
+               while(iter.hasNext()){
+                       Node node = iter.nextNode();
+                       Layout layout = new Layout();
+                       layout.setId(node.getNumber());
+                       layout.setTitle(node.getStringValue("title"));
+                       JSONObject jsonObject = new JSONObject(layout);
+                       jsonArray.put(jsonObject);
+               }
+           response.setCharacterEncoding("UTF-8");
+               response.getWriter().print(jsonArray.toString());
+               return null;
+       }
+
+}

Modified: 
CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/src/webapp/WEB-INF/struts-site.xml
===================================================================
--- 
CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/src/webapp/WEB-INF/struts-site.xml
      2009-05-11 05:57:50 UTC (rev 35059)
+++ 
CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/src/webapp/WEB-INF/struts-site.xml
      2009-05-11 09:06:36 UTC (rev 35060)
@@ -50,6 +50,8 @@
             <forward name="cancel" path="/editors/empty.html" redirect="true"/>
             <forward name="success" path="/editors/site/NavigatorPanel.do" 
redirect="false"/>
         </action>
+        <action path="/editors/site/LayoutAction" 
type="com.finalist.cmsc.navigation.forms.LayoutAction" unknown="false" 
validate="false">                
+        </action>
         <action path="/editors/site/PageEdit" 
type="com.finalist.cmsc.navigation.forms.PageEdit" unknown="false"
                 validate="false">
             <forward name="openwizard" path="/editors/WizardInitAction.do" 
redirect="false"/>

Modified: 
CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/src/webapp/editors/config/layout/search_page_layoutrel_layout.xml
===================================================================
--- 
CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/src/webapp/editors/config/layout/search_page_layoutrel_layout.xml
       2009-05-11 05:57:50 UTC (rev 35059)
+++ 
CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/src/webapp/editors/config/layout/search_page_layoutrel_layout.xml
       2009-05-11 09:06:36 UTC (rev 35060)
@@ -18,7 +18,7 @@
                </field>
        </item>
        
-       <command name="search" nodepath="layout" age="-1" fields="title" 
orderby="title">
+       <command name="layoutsearch" nodepath="layout" age="-1" fields="title" 
orderby="title">
                <prompt xml:lang="en">Search layout</prompt>
                <prompt xml:lang="nl">Zoek template</prompt>
                <prompt xml:lang="zh">查找布局</prompt>

_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to