From: <fg...@us...> - 2008-07-21 13:23:34
|
Revision: 888 http://openutils.svn.sourceforge.net/openutils/?rev=888&view=rev Author: fgiust Date: 2008-07-21 13:23:39 +0000 (Mon, 21 Jul 2008) Log Message: ----------- only include javascript once + new "combo" control type Modified Paths: -------------- trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/dialog/ConfigurableFreemarkerDialog.java trunk/openutils-mgnlcontrols/src/main/resources/dialogs/grid.ftl trunk/openutils-mgnlcontrols/src/site/apt/grid.apt trunk/openutils-mgnlcontrols/src/site/changes/changes.xml Modified: trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/dialog/ConfigurableFreemarkerDialog.java =================================================================== --- trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/dialog/ConfigurableFreemarkerDialog.java 2008-07-20 17:24:46 UTC (rev 887) +++ trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/dialog/ConfigurableFreemarkerDialog.java 2008-07-21 13:23:39 UTC (rev 888) @@ -158,10 +158,13 @@ /** * {@inheritDoc} */ + @SuppressWarnings("unchecked") @Override public void drawHtml(Writer out) throws IOException { + String alreadyRenderedKey = "freemarker/" + getPath(); + Map parameters = new HashMap(); parameters.put("name", this.getName()); parameters.put("value", this.getValue()); @@ -169,6 +172,7 @@ parameters.put("request", this.getRequest()); parameters.put("debug", SystemProperty.getBooleanProperty("magnolia.develop")); parameters.put("configuration", this.configuration); + parameters.put("alreadyrendered", getRequest().getAttribute(alreadyRenderedKey) != null); this.drawHtmlPre(out); try @@ -180,7 +184,6 @@ control.setName(this.getName()); control.drawHtml(out, getPath(), parameters); } - catch (TemplateException ex) { log.error("Error processing dialog template:", ex); @@ -188,6 +191,8 @@ } this.drawHtmlPost(out); + + getRequest().setAttribute(alreadyRenderedKey, Boolean.TRUE); } /** Modified: trunk/openutils-mgnlcontrols/src/main/resources/dialogs/grid.ftl =================================================================== --- trunk/openutils-mgnlcontrols/src/main/resources/dialogs/grid.ftl 2008-07-20 17:24:46 UTC (rev 887) +++ trunk/openutils-mgnlcontrols/src/main/resources/dialogs/grid.ftl 2008-07-21 13:23:39 UTC (rev 888) @@ -1,23 +1,30 @@ +[#if !alreadyrendered] + <script type="text/javascript" src="${request.contextPath}/.resources/ext/ext-base.js"></script> -<script type="text/javascript" src="${request.contextPath}/.resources/ext/ext-base.js"></script> + [#if debug] + <script type="text/javascript" src="${request.contextPath}/.resources/ext/ext-all-debug.js"></script> + [#else] + <script type="text/javascript" src="${request.contextPath}/.resources/ext/ext-all.js"></script> + [/#if] + <script type="text/javascript" src="${request.contextPath}/.resources/controls/js/LinkField.js"></script> + <script type="text/javascript" src="${request.contextPath}/.resources/controls/js/CheckColumn.js"></script> -[#if debug] -<script type="text/javascript" src="${request.contextPath}/.resources/ext/ext-all-debug.js"></script> -[#else] -<script type="text/javascript" src="${request.contextPath}/.resources/ext/ext-all.js"></script> + <link rel="stylesheet" type="text/css" href="${request.contextPath}/.resources/ext/css/ext-all.css" /> + <link rel="stylesheet" type="text/css" href="${request.contextPath}/.resources/controls/css/grid.css" /> [/#if] -<script type="text/javascript" src="${request.contextPath}/.resources/controls/js/LinkField.js"></script> -<script type="text/javascript" src="${request.contextPath}/.resources/controls/js/CheckColumn.js"></script> -<link rel="stylesheet" type="text/css" href="${request.contextPath}/.resources/ext/css/ext-all.css" /> -<link rel="stylesheet" type="text/css" href="${request.contextPath}/.resources/controls/css/grid.css" /> - <input type="hidden" id="${name}" name="${name}" value="${value}"/> -<div id="grid-container-${name}"> - <div id="grid-${name}"></div> -</div> +[#list configuration.columns?values as colmap] + [#if (colmap.type?? && colmap.type = 'combo')] + <select id="combo-${name}" name="combo-${name}" style="display: none;"> + [#list colmap.options?values as option] + <option value="${option.value}">${option.label}</option> + [/#list] + </select> + [/#if] +[/#list] <script type="text/javascript"> // <![CDATA[ @@ -65,6 +72,14 @@ [#if (colmap.type?? && colmap.type = 'link')] editor: new Ed(new LinkField({ })) + [#elseif (colmap.type?? && colmap.type = 'combo')] + editor: new Ed(new fm.ComboBox({ + typeAhead: true, + triggerAction: 'all', + transform: 'combo-${name}', + lazyRender: true, + listClass: 'x-combo-list-small' + })) [#else] editor: new Ed(new fm.TextField({ allowBlank: true Modified: trunk/openutils-mgnlcontrols/src/site/apt/grid.apt =================================================================== --- trunk/openutils-mgnlcontrols/src/site/apt/grid.apt 2008-07-20 17:24:46 UTC (rev 887) +++ trunk/openutils-mgnlcontrols/src/site/apt/grid.apt 2008-07-21 13:23:39 UTC (rev 888) @@ -39,7 +39,9 @@ * link: a text fields with a button that can be used to insert an internal link + * combo: a list of predefined values (configured in the "options" node) + Hacking it The grid editor is actually implemented as a freemarker control, so it can easily be modified and improved. Modified: trunk/openutils-mgnlcontrols/src/site/changes/changes.xml =================================================================== --- trunk/openutils-mgnlcontrols/src/site/changes/changes.xml 2008-07-20 17:24:46 UTC (rev 887) +++ trunk/openutils-mgnlcontrols/src/site/changes/changes.xml 2008-07-21 13:23:39 UTC (rev 888) @@ -8,6 +8,11 @@ <author email="fgiust(at)users.sourceforge.net">Fabrizio Giustina</author> </properties> <body> + <release version="3.5.4" date="2008-07-21" description=""> + <action type="fix" dev="fgiust">esternal javascript are now included only once when using multiple grid + controls in the same dialog</action> + <action type="add" dev="fgiust">New "combo" control type handled by grid</action> + </release> <release version="3.5.3" date="2008-07-13" description=""> <action type="update" dev="fgiust">Extjs has been moved to openutils-mgnlext, which is now a required dependency</action> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fg...@us...> - 2008-07-29 07:55:32
|
Revision: 901 http://openutils.svn.sourceforge.net/openutils/?rev=901&view=rev Author: fgiust Date: 2008-07-29 07:55:41 +0000 (Tue, 29 Jul 2008) Log Message: ----------- grid control now works properly also with fields containing non-standard chars in their name Modified Paths: -------------- trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/dialog/ConfigurableFreemarkerDialog.java trunk/openutils-mgnlcontrols/src/main/resources/dialogs/grid.ftl trunk/openutils-mgnlcontrols/src/site/changes/changes.xml Modified: trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/dialog/ConfigurableFreemarkerDialog.java =================================================================== --- trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/dialog/ConfigurableFreemarkerDialog.java 2008-07-27 09:20:48 UTC (rev 900) +++ trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/dialog/ConfigurableFreemarkerDialog.java 2008-07-29 07:55:41 UTC (rev 901) @@ -65,6 +65,8 @@ private Map configuration; + private String uuid; + /** * {@inheritDoc} */ @@ -109,6 +111,7 @@ protected Map getSubNodes(Content node) throws RepositoryException, AccessDeniedException { + this.uuid = node.getUUID(); Map values = new LinkedHashMap(); // cycles on properties and stores them in map @@ -172,6 +175,7 @@ parameters.put("request", this.getRequest()); parameters.put("debug", SystemProperty.getBooleanProperty("magnolia.develop")); parameters.put("configuration", this.configuration); + parameters.put("uuid", this.uuid); parameters.put("alreadyrendered", getRequest().getAttribute(alreadyRenderedKey) != null); this.drawHtmlPre(out); Modified: trunk/openutils-mgnlcontrols/src/main/resources/dialogs/grid.ftl =================================================================== --- trunk/openutils-mgnlcontrols/src/main/resources/dialogs/grid.ftl 2008-07-27 09:20:48 UTC (rev 900) +++ trunk/openutils-mgnlcontrols/src/main/resources/dialogs/grid.ftl 2008-07-29 07:55:41 UTC (rev 901) @@ -8,13 +8,19 @@ [/#if] <script type="text/javascript" src="${request.contextPath}/.resources/controls/js/LinkField.js"></script> <script type="text/javascript" src="${request.contextPath}/.resources/controls/js/CheckColumn.js"></script> + <script type="text/javascript" src="${request.contextPath}/.resources/controls/js/PipeComboBox.js"></script> <link rel="stylesheet" type="text/css" href="${request.contextPath}/.resources/ext/css/ext-all.css" /> <link rel="stylesheet" type="text/css" href="${request.contextPath}/.resources/controls/css/grid.css" /> [/#if] +[#assign key = uuid?replace("-", "")] + <input type="hidden" id="${name}" name="${name}" value="${value}"/> +<div id="grid-container-${name}"> + <div id="grid-${name}"></div> +</div> [#list configuration.columns?values as colmap] [#if (colmap.type?? && colmap.type = 'combo')] @@ -29,7 +35,7 @@ <script type="text/javascript"> // <![CDATA[ -function loadTable${name}(action) { +function loadTable${key}(action) { var numOfRows= ${configuration.rows}; var hidden = document.getElementById('${name}'); @@ -73,7 +79,7 @@ editor: new Ed(new LinkField({ })) [#elseif (colmap.type?? && colmap.type = 'combo')] - editor: new Ed(new fm.ComboBox({ + editor: new Ed(new [#if (colmap.pipe?? && colmap.pipe = 'true')]PipeComboBox[#else]fm.ComboBox[/#if]({ typeAhead: true, triggerAction: 'all', transform: 'combo-${name}', @@ -120,7 +126,7 @@ icon: '${request.contextPath}/.resources/controls/img/icon-paste.png', iconCls: 'button-paste', handler: function() { - mgnlOpenWindow('/.resources/controls/clipboard.html?name=${name}', 320, 200); + mgnlOpenWindow('/.resources/controls/clipboard.html?name=${key}', 320, 200); } }], viewConfig: { @@ -157,7 +163,7 @@ hidden._grid = grid; } -function paste${name}(text) { +function paste${key}(text) { var hidden = document.getElementById('${name}'); var grid = hidden._grid; var rows, i, I; @@ -221,10 +227,11 @@ } Ext.onReady(function(){ - loadTable${name}('load','${name}'); + loadTable${key}('load','${name}'); }); // ]]> </script> + Modified: trunk/openutils-mgnlcontrols/src/site/changes/changes.xml =================================================================== --- trunk/openutils-mgnlcontrols/src/site/changes/changes.xml 2008-07-27 09:20:48 UTC (rev 900) +++ trunk/openutils-mgnlcontrols/src/site/changes/changes.xml 2008-07-29 07:55:41 UTC (rev 901) @@ -8,6 +8,10 @@ <author email="fgiust(at)users.sourceforge.net">Fabrizio Giustina</author> </properties> <body> + <release version="3.5.5" date="2008-07-29" description=""> + <action type="fix" dev="fgiust">grid control now works properly also with fields containing non-standard chars + in their name</action> + </release> <release version="3.5.4" date="2008-07-21" description=""> <action type="fix" dev="fgiust">esternal javascript are now included only once when using multiple grid controls in the same dialog</action> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fg...@us...> - 2009-05-11 17:22:26
|
Revision: 1197 http://openutils.svn.sourceforge.net/openutils/?rev=1197&view=rev Author: fgiust Date: 2009-05-11 17:22:11 +0000 (Mon, 11 May 2009) Log Message: ----------- fix multivalues in ConfigurableFreemarkerDialog Modified Paths: -------------- trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/dialog/ConfigurableFreemarkerDialog.java trunk/openutils-mgnlcontrols/src/site/changes/changes.xml Modified: trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/dialog/ConfigurableFreemarkerDialog.java =================================================================== --- trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/dialog/ConfigurableFreemarkerDialog.java 2009-05-08 21:09:17 UTC (rev 1196) +++ trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/dialog/ConfigurableFreemarkerDialog.java 2009-05-11 17:22:11 UTC (rev 1197) @@ -31,12 +31,10 @@ import java.io.IOException; import java.io.Writer; -import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedHashMap; -import java.util.List; import java.util.Map; import javax.jcr.PathNotFoundException; @@ -68,39 +66,6 @@ private String uuid; /** - * {@inheritDoc} - */ - @Override - protected List readValues() - { - - List values = new ArrayList(); - - if (this.getStorageNode() != null) - { - try - { - // cycles on website content node to get multiple value - int size = this.getStorageNode().getContent(this.getName()).getNodeDataCollection().size(); - for (int i = 0; i < size; i++) - { - NodeData data = this.getStorageNode().getContent(this.getName()).getNodeData("" + i); - values.add(data.getString()); - } - } - catch (PathNotFoundException e) - { - // not yet existing: OK - } - catch (RepositoryException re) - { - log.error("can't set values", re); - } - } - return values; - } - - /** * Get a recursive map view of a content node * @param node content node * @return recursive map view on content node properties and children @@ -177,6 +142,8 @@ parameters.put("configuration", this.configuration); parameters.put("uuid", this.uuid); parameters.put("alreadyrendered", getRequest().getAttribute(alreadyRenderedKey) != null); + addToParameters(parameters); + this.drawHtmlPre(out); try @@ -199,6 +166,11 @@ getRequest().setAttribute(alreadyRenderedKey, Boolean.TRUE); } + protected void addToParameters(Map parameters) + { + // do nothing, can be user in subclasses + } + /** * @return ftl template path */ Modified: trunk/openutils-mgnlcontrols/src/site/changes/changes.xml =================================================================== --- trunk/openutils-mgnlcontrols/src/site/changes/changes.xml 2009-05-08 21:09:17 UTC (rev 1196) +++ trunk/openutils-mgnlcontrols/src/site/changes/changes.xml 2009-05-11 17:22:11 UTC (rev 1197) @@ -8,13 +8,19 @@ <author email="fgiust(at)users.sourceforge.net">Fabrizio Giustina</author> </properties> <body> + <release version="4.0.1" date="in svn" description=""> + <action type="add" dev="fgiust">Added a new mehod addToParameters in ConfigurableFreemarkerDialog that can be + overridden to supply custom values to the freemarker template</action> + <action type="fix" dev="fgiust">Update handling of multi-value properties in ConfigurableFreemarkerDialog to + magnolia 4.0</action> + </release> <release version="4.0" date="2009-04-09" description=""> <action type="update" dev="fgiust">Update magnolia dependencies to version 4.0.</action> <action type="fix" dev="fgiust">Fixed bug for column size on ie6 (see http://extjs.com/forum/showthread.php?p=151624 )</action> - <action type="new" dev="fgiust">Added functionality to move rows in grid</action> - <action type="new" dev="fgiust">New "date" type in grid</action> - <action type="new" dev="fgiust">Misc fixes to "clear all" and "paste" features</action> + <action type="add" dev="fgiust">Added functionality to move rows in grid</action> + <action type="add" dev="fgiust">New "date" type in grid</action> + <action type="add" dev="fgiust">Misc fixes to "clear all" and "paste" features</action> </release> <release version="3.5.5" date="2008-07-29" description=""> <action type="fix" dev="fgiust">grid control now works properly also with fields containing non-standard chars in This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |