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='layoutsearch']">
+ <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='add-item']/@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='contenttypeselector']">
<script type="text/javascript">
function searchtypedef(){
@@ -729,6 +788,10 @@
<!-- Search is handled by the listsearch template -->
</xsl:template>
+ <xsl:template match="comma...@name='layoutsearch']"
mode="listnewbuttons">
+ <!-- Search is handled by the listsearch template -->
+ </xsl:template>
+
<xsl:template match="comma...@name='assetsselector']"
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