You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by an...@apache.org on 2006/12/06 06:13:11 UTC
svn commit: r482896 - in /cocoon: branches/BRANCH_2_1_X/
trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/js/
trunk/blocks/cocoon-forms/cocoon-forms-sample/src/main/resources/COB-INF/flow/
trunk/blocks/co...
Author: antonio
Date: Tue Dec 5 21:13:10 2006
New Revision: 482896
URL: http://svn.apache.org/viewvc?view=rev&rev=482896
Log:
<action dev="AG" type="fix" fixes-bug="COCOON-1962" due-to="Carlos Chávez" due-to-email="cchavez@agssa.net">
CForms: Numeric based suggestion list should initialzate to the corresponding suggested text.
</action>
Modified:
cocoon/branches/BRANCH_2_1_X/status.xml
cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/js/CFormsSuggest.js
cocoon/trunk/blocks/cocoon-forms/cocoon-forms-sample/src/main/resources/COB-INF/flow/forms_flow_example.js
cocoon/trunk/blocks/cocoon-forms/cocoon-forms-sample/src/main/resources/COB-INF/forms/ajax_suggest_form.xml
cocoon/trunk/blocks/cocoon-forms/cocoon-forms-sample/src/main/resources/COB-INF/forms/ajax_suggest_template.xml
Modified: cocoon/branches/BRANCH_2_1_X/status.xml
URL: http://svn.apache.org/viewvc/cocoon/branches/BRANCH_2_1_X/status.xml?view=diff&rev=482896&r1=482895&r2=482896
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/status.xml (original)
+++ cocoon/branches/BRANCH_2_1_X/status.xml Tue Dec 5 21:13:10 2006
@@ -184,6 +184,9 @@
<release version="@version@" date="@date@">
-->
<release version="2.1.10" date="TBD">
+ <action dev="AG" type="fix" fixes-bug="COCOON-1962" due-to="Carlos Chávez" due-to-email="cchavez@agssa.net">
+ CForms: Numeric based suggestion list should initialzate to the corresponding suggested text.
+ </action>
<action dev="BRD" type="update">
Updated Rhino (Javascript engine) to version 1.6R5.
This version is licensed under MPL, while previous versions were licensed under NPL,
Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/js/CFormsSuggest.js
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/js/CFormsSuggest.js?view=diff&rev=482896&r1=482895&r2=482896
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/js/CFormsSuggest.js (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/js/CFormsSuggest.js Tue Dec 5 21:13:10 2006
@@ -54,9 +54,35 @@
"&continuation-id=" + contId + "&filter=%{searchString}";
}
dojo.widget.html.ComboBox.prototype.fillInTemplate.apply(this, arguments);
- // Restore the initial value and the associated suggestion text, if any
- this.setValue(node.getAttribute("suggestion") ? node.getAttribute("suggestion") : node.value);
- this.setSelectedValue(node.value);
+ if (node.value) {
+ // Get the suggestion text from the server
+ this.getData(this, "_cocoon/forms/suggest?widget=" + node.getAttribute("name") +
+ "&continuation-id=" + contId + "&filter=" + node.value + "&phase=init", node);
+ } else {
+ // Restore the initial value and the associated suggestion text, if any
+ this.setValue(node.getAttribute("suggestion") ? node.getAttribute("suggestion") : node.value);
+ this.setSelectedValue(node.value);
+ }
+ },
+
+ getData: function(widget, url, node) {
+ dojo.io.bind({
+ url: url,
+ load: dojo.lang.hitch(this, function(type, data, evt){
+ if(!dojo.lang.isArray(data)){
+ var arrData = [];
+ for(var key in data){
+ arrData.push([data[key], key]);
+ }
+ data = arrData;
+ }
+ // suggestion text
+ widget.setValue(data[0][0]);
+ // numeric value
+ widget.setSelectedValue(node.value);
+ }),
+ mimetype: "text/json"
+ });
}
})
Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-sample/src/main/resources/COB-INF/flow/forms_flow_example.js
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-sample/src/main/resources/COB-INF/flow/forms_flow_example.js?view=diff&rev=482896&r1=482895&r2=482896
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-sample/src/main/resources/COB-INF/flow/forms_flow_example.js (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-sample/src/main/resources/COB-INF/flow/forms_flow_example.js Tue Dec 5 21:13:10 2006
@@ -215,14 +215,18 @@
function do_suggest() {
var form = new Form("forms/ajax_suggest_form.xml");
- var path = form.getChild("path");
form.showForm("ajax_suggest-display-pipeline.jx");
-
+
+ var path = form.getChild("path");
+ var person = form.getChild("personId");
+
cocoon.sendPage("textresult-display-pipeline.jx",
{title: "Suggest results", text: "path value = " + path.value +
- "\npath suggested label = " +
- (path.suggested ? path.suggestionLabel : "(none)") });
+ "\npath suggested label = " +
+ (path.suggested ? path.suggestionLabel : "(none)") +
+ "\n\n\npersonId = " + person.value +
+ "\npersonName = " + (person.suggested ? person.suggestionLabel : "(none)")});
}
function do_inplace() {
Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-sample/src/main/resources/COB-INF/forms/ajax_suggest_form.xml
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-sample/src/main/resources/COB-INF/forms/ajax_suggest_form.xml?view=diff&rev=482896&r1=482895&r2=482896
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-sample/src/main/resources/COB-INF/forms/ajax_suggest_form.xml (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-sample/src/main/resources/COB-INF/forms/ajax_suggest_form.xml Tue Dec 5 21:13:10 2006
@@ -66,6 +66,83 @@
]]>
</fd:suggestion-list>
</fd:field>
+ <fd:field id="personId">
+ <fd:datatype base="integer"/>
+ <fd:initial-value>16</fd:initial-value>
+ <fd:suggestion-list type="javascript">
+ <![CDATA[
+ function addSuggestion(bean) {
+ suggestions.push({value: bean.value, label: bean.label});
+ }
+
+ function personList() {
+ return [
+ {value: 1, label: "Donald Ball"},
+ {value: 2, label: "Sylvain Wallez"},
+ {value: 3, label: "Carsten Ziegeler"},
+ {value: 4, label: "Torsten Curdt"},
+ {value: 5, label: "Marcus Crafter"},
+ {value: 6, label: "Ovidiu Predescu"},
+ {value: 7, label: "Christian Haul"},
+ {value: 8, label: "Jeremy Quinn"},
+ {value: 9, label: "Stefano Mazzocchi"},
+ {value: 10, label: "Pierpaolo Fumagalli"},
+ {value: 11, label: "Davanum Srinivas"},
+ {value: 12, label: "Antonio Gallardo"},
+ {value: 13, label: "Ugo Cei"},
+ {value: 14, label: "David Crossley"},
+ {value: 15, label: "Bertrand Delacrétaz"},
+ {value: 16, label: "Bruno Dumon"},
+ {value: 17, label: "Daniel Fagerstrom"},
+ {value: 18, label: "Leszek Gawron"},
+ {value: 19, label: "Ralph Goers"},
+ {value: 20, label: "Vadim Gritsenko"},
+ {value: 21, label: "Jorg Heymans"},
+ {value: 22, label: "Jörg Heinicke"},
+ {value: 23, label: "Jean-Baptiste Quenot"}
+ ];
+ }
+
+ function startsWith(string1, string2) {
+ return (new java.lang.String(string1)).startsWith(string2);
+ }
+
+ function searchByString() {
+ for (var i = 0; i < list.length; i++) {
+ if (startsWith(list[i].label, filter)) {
+ addSuggestion(list[i]);
+ }
+ }
+ }
+
+ function searchById() {
+ for (var i = 0; i < list.length; i++) {
+ if (list[i].value == parseInt(filter)) {
+ addSuggestion(list[i]);
+ }
+ }
+ }
+
+ var suggestions = [];
+ var list = personList();
+ if (filter) {
+ var phase = cocoon.request.getParameter("phase");
+ if (phase && phase.equals("init")) {
+ if (!isNaN(parseInt(filter))) {
+ searchById();
+ } else {
+ cocoon.log.error("The filter: '" + filter + "' must be a number.");
+ }
+ } else {
+ searchByString();
+ }
+ } else {
+ suggestions = list;
+ }
+ return suggestions;
+ ]]>
+ </fd:suggestion-list>
+ </fd:field>
<fd:submit id="ok"><fd:label>OK</fd:label></fd:submit>
</fd:widgets>
</fd:form>
Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-sample/src/main/resources/COB-INF/forms/ajax_suggest_template.xml
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-sample/src/main/resources/COB-INF/forms/ajax_suggest_template.xml?view=diff&rev=482896&r1=482895&r2=482896
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-sample/src/main/resources/COB-INF/forms/ajax_suggest_template.xml (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-sample/src/main/resources/COB-INF/forms/ajax_suggest_template.xml Tue Dec 5 21:13:10 2006
@@ -43,6 +43,12 @@
use the up/down arrow and press space. Hitting escape hides the suggestion list.</small>
<br/>
<br/>
+ Choose a person.
+ <br/>
+ <ft:widget id="personId" type="suggest"/>
+ <small>Initial value of the widget is 16, the widget must show "Bruno Dumon".</small>
+ <br/>
+ <br/>
<ft:widget id="ok"/>
</ft:form-template>