[jira] Commented: (COCOON-1825) Ajax errror when an active state widget become invisible state widget

2006-10-14 Thread JIRA
[ 
http://issues.apache.org/jira/browse/COCOON-1825?page=comments#action_12442276 
] 

Guillaume Déflache commented on COCOON-1825:


About Antonio's last comment: I think Vincent needs to tell us why he added a 
'span' element with the 'id' attribute when there already was the 'table' 
element to hook the 'id' attribute to. Was that really to workaround an IE 
bug as Sylvain suggested, or was only a copy/paste error?

To sum up, for the others modifications IMHO:
1) fi:placeholder should be left alone as Sylvain said
2) fi:group and fi:struct should use a div element instead of a span 
one, because if we do so:
   i) hope to validate Cocoon Forms HTML generated pages remains: spans cannot 
contain block markup, whereas divs can contain both inline and block markup, so 
nested div-fi:*'s are more likely to produce valid HTML
   ii) this is consistent with the way fi:union is already handled
   also:
   iii) for rendering issues, these divs can always be made inline in CSS if 
needed
   iv) in practice groups (and structs? never used them) almost always are 
block-level anyway... 
 3) BTW the fi:imagemap template probably also lacks an id attribute... and 
I have not checked advanced styling, there could be more missing... (BTW 
isn't GoogleMap widget _advanced_ styling!?!)

So I volunteer to redo the 1st proposed patch with all above suggestions 
applied! :)
But please Vincent do tell us what was your purpose with the double-id thingy!

BTW perhaps someone could add [PATCH] in the subject (and fix the typo...) to 
show a patch is available?

 Ajax errror when an active state widget become invisible state widget
 -

 Key: COCOON-1825
 URL: http://issues.apache.org/jira/browse/COCOON-1825
 Project: Cocoon
  Issue Type: Bug
  Components: Blocks: Forms
Affects Versions: 2.1.9
Reporter: vincent Demay
 Assigned To: Antonio Gallardo

 Some widget (field with selection-list and styling=radio, group, etc...)  can 
 not be hidden (state=invisible)in ajax mode.
 I declare some widgets without state attribute in the form definition, my 
 form is in ajax mode, when I set the widget state to INVISIBLE, the ajax 
 response can not be applied to the form because span 
 id=widget-name.../span is not available in source code.
 I think about 2 patches : 
 *putting a span/span in forms-field-styling.xsl where is not set
 *or modifing abstractWidgetDefinition.java in ordre to generate a placeholder 
 around each widget (but patch seems to need a lot of modification in 
 forms-field-styling.xsl too)
 Here is the patch for first 
 --- forms-field-styling.orig  2006-04-13 15:37:06.590221200 +0200
 +++ forms-field-styling.xsl   2006-04-13 15:38:22.525291200 +0200
 @@ -198,8 +198,9 @@
  xsl:variable name=value select=fi:value/
  xsl:variable name=vertical 
 select=string(fi:styling/@list-orientation) != 'horizontal'/
  xsl:choose
 -  xsl:when test=$vertical
 -table id={$id} cellpadding=0 cellspacing=0 border=0 
 title={fi:hint}
 +  xsl:when test=$vertical
 +   span id={$id}
 +  table id={$id} cellpadding=0 cellspacing=0 border=0 
 title={fi:hint}
xsl:for-each select=fi:selection-list/fi:item
  xsl:variable name=item-id select=concat($id, ':', 
 position())/
  tr
 @@ -224,6 +225,7 @@
  /tr
/xsl:for-each
  /table
 +/span
/xsl:when
xsl:otherwise
  span id={$id} title={fi:hint}
 @@ -682,22 +684,24 @@
| know where to insert the widget if it becomes visible
+--
xsl:template match=fi:placeholder
 -span id=[EMAIL PROTECTED]/
 +span id=[EMAIL PROTECTED]xsl:apply-templates//span
/xsl:template

!--+
| fi:struct - has no visual representation by default
+--
xsl:template match=fi:struct
 -xsl:apply-templates/
 + span id=[EMAIL PROTECTED]xsl:apply-templates//span
/xsl:template
  
!--+
| fi:group - has no visual representation by default
+--
xsl:template match=fi:group
 -xsl:apply-templates/
 +span id=[EMAIL PROTECTED]xsl:apply-templates//span
/xsl:template
 +  
 +  
  
xsl:template match=@*|node() priority=-1
  xsl:copy
 Here for the second
 --- AbstractWidget.orig   2006-04-13 15:31:07.851701200 +0200
 +++ AbstractWidget.java   2006-04-13 15:30:31.446616200 +0200
 @@ -483,6 +483,10 @@
  public void generateSaxFragment(ContentHandler contentHandler, Locale 
 locale)
  throws SAXException {
  
 + AttributesImpl placeHolderAttrs = new AttributesImpl();
 + placeHolderAttrs.addCDATAAttribute(id, getRequestParameterName());
 +contentHandler.startElement(FormsConstants.INSTANCE_NS, 
 placeholder, FormsConstants.INSTANCE_PREFIX_COLON + placeholder, 

[jira] Commented: (COCOON-1825) Ajax errror when an active state widget become invisible state widget

2006-10-13 Thread Antonio Gallardo (JIRA)
[ 
http://issues.apache.org/jira/browse/COCOON-1825?page=comments#action_12442267 
] 

Antonio Gallardo commented on COCOON-1825:
--

IN the first part of the patch, there is: 

+ span id={$id}
+ table id={$id} cellpadding=0 cellspacing=0 border=0 
title={fi:hint} 

I don't think it is a good idea to have the same id in 2 different elements. It 
seems like it might blow somewhere else.

how we can fix this?

 Ajax errror when an active state widget become invisible state widget
 -

 Key: COCOON-1825
 URL: http://issues.apache.org/jira/browse/COCOON-1825
 Project: Cocoon
  Issue Type: Bug
  Components: Blocks: Forms
Affects Versions: 2.1.9
Reporter: vincent Demay
 Assigned To: Antonio Gallardo

 Some widget (field with selection-list and styling=radio, group, etc...)  can 
 not be hidden (state=invisible)in ajax mode.
 I declare some widgets without state attribute in the form definition, my 
 form is in ajax mode, when I set the widget state to INVISIBLE, the ajax 
 response can not be applied to the form because span 
 id=widget-name.../span is not available in source code.
 I think about 2 patches : 
 *putting a span/span in forms-field-styling.xsl where is not set
 *or modifing abstractWidgetDefinition.java in ordre to generate a placeholder 
 around each widget (but patch seems to need a lot of modification in 
 forms-field-styling.xsl too)
 Here is the patch for first 
 --- forms-field-styling.orig  2006-04-13 15:37:06.590221200 +0200
 +++ forms-field-styling.xsl   2006-04-13 15:38:22.525291200 +0200
 @@ -198,8 +198,9 @@
  xsl:variable name=value select=fi:value/
  xsl:variable name=vertical 
 select=string(fi:styling/@list-orientation) != 'horizontal'/
  xsl:choose
 -  xsl:when test=$vertical
 -table id={$id} cellpadding=0 cellspacing=0 border=0 
 title={fi:hint}
 +  xsl:when test=$vertical
 +   span id={$id}
 +  table id={$id} cellpadding=0 cellspacing=0 border=0 
 title={fi:hint}
xsl:for-each select=fi:selection-list/fi:item
  xsl:variable name=item-id select=concat($id, ':', 
 position())/
  tr
 @@ -224,6 +225,7 @@
  /tr
/xsl:for-each
  /table
 +/span
/xsl:when
xsl:otherwise
  span id={$id} title={fi:hint}
 @@ -682,22 +684,24 @@
| know where to insert the widget if it becomes visible
+--
xsl:template match=fi:placeholder
 -span id=[EMAIL PROTECTED]/
 +span id=[EMAIL PROTECTED]xsl:apply-templates//span
/xsl:template

!--+
| fi:struct - has no visual representation by default
+--
xsl:template match=fi:struct
 -xsl:apply-templates/
 + span id=[EMAIL PROTECTED]xsl:apply-templates//span
/xsl:template
  
!--+
| fi:group - has no visual representation by default
+--
xsl:template match=fi:group
 -xsl:apply-templates/
 +span id=[EMAIL PROTECTED]xsl:apply-templates//span
/xsl:template
 +  
 +  
  
xsl:template match=@*|node() priority=-1
  xsl:copy
 Here for the second
 --- AbstractWidget.orig   2006-04-13 15:31:07.851701200 +0200
 +++ AbstractWidget.java   2006-04-13 15:30:31.446616200 +0200
 @@ -483,6 +483,10 @@
  public void generateSaxFragment(ContentHandler contentHandler, Locale 
 locale)
  throws SAXException {
  
 + AttributesImpl placeHolderAttrs = new AttributesImpl();
 + placeHolderAttrs.addCDATAAttribute(id, getRequestParameterName());
 +contentHandler.startElement(FormsConstants.INSTANCE_NS, 
 placeholder, FormsConstants.INSTANCE_PREFIX_COLON + placeholder, 
 placeHolderAttrs);
 +
  if (getCombinedState().isDisplayingValues()) {
  // FIXME: we may want to strip out completely widgets that 
 aren't updated when in AJAX mode
  String element = this.getXMLElementName();
 @@ -497,15 +501,9 @@
  
  generateItemSaxFragment(contentHandler, locale);
  
 -contentHandler.endElement(FormsConstants.INSTANCE_NS, element, 
 FormsConstants.INSTANCE_PREFIX_COLON + element);
 -
 -} else {
 -// Generate a placeholder that can be used later by AJAX updates
 -AttributesImpl attrs = new AttributesImpl();
 -attrs.addCDATAAttribute(id, getRequestParameterName());
 -contentHandler.startElement(FormsConstants.INSTANCE_NS, 
 placeholder, FormsConstants.INSTANCE_PREFIX_COLON + placeholder, attrs);
 -contentHandler.endElement(FormsConstants.INSTANCE_NS, 
 placeholder, FormsConstants.INSTANCE_PREFIX_COLON + placeholder);
 +contentHandler.endElement(FormsConstants.INSTANCE_NS, element, 
 FormsConstants.INSTANCE_PREFIX_COLON + element); 
  }
 +

[jira] Commented: (COCOON-1825) Ajax errror when an active state widget become invisible state widget

2006-05-31 Thread vincent Demay (JIRA)
[ 
http://issues.apache.org/jira/browse/COCOON-1825?page=comments#action_12413992 
] 

vincent Demay commented on COCOON-1825:
---

I think the better is the first one : putting a span around each element. So 
you can apply only the first one on forms-field-styling.xsl.

Thanks.



 Ajax errror when an active state widget become invisible state widget
 -

  Key: COCOON-1825
  URL: http://issues.apache.org/jira/browse/COCOON-1825
  Project: Cocoon
 Type: Bug

   Components: Blocks: Forms
 Versions: 2.1.9
 Reporter: vincent Demay
 Assignee: Antonio Gallardo


 Some widget (field with selection-list and styling=radio, group, etc...)  can 
 not be hidden (state=invisible)in ajax mode.
 I declare some widgets without state attribute in the form definition, my 
 form is in ajax mode, when I set the widget state to INVISIBLE, the ajax 
 response can not be applied to the form because span 
 id=widget-name.../span is not available in source code.
 I think about 2 patches : 
 *putting a span/span in forms-field-styling.xsl where is not set
 *or modifing abstractWidgetDefinition.java in ordre to generate a placeholder 
 around each widget (but patch seems to need a lot of modification in 
 forms-field-styling.xsl too)
 Here is the patch for first 
 --- forms-field-styling.orig  2006-04-13 15:37:06.590221200 +0200
 +++ forms-field-styling.xsl   2006-04-13 15:38:22.525291200 +0200
 @@ -198,8 +198,9 @@
  xsl:variable name=value select=fi:value/
  xsl:variable name=vertical 
 select=string(fi:styling/@list-orientation) != 'horizontal'/
  xsl:choose
 -  xsl:when test=$vertical
 -table id={$id} cellpadding=0 cellspacing=0 border=0 
 title={fi:hint}
 +  xsl:when test=$vertical
 +   span id={$id}
 +  table id={$id} cellpadding=0 cellspacing=0 border=0 
 title={fi:hint}
xsl:for-each select=fi:selection-list/fi:item
  xsl:variable name=item-id select=concat($id, ':', 
 position())/
  tr
 @@ -224,6 +225,7 @@
  /tr
/xsl:for-each
  /table
 +/span
/xsl:when
xsl:otherwise
  span id={$id} title={fi:hint}
 @@ -682,22 +684,24 @@
| know where to insert the widget if it becomes visible
+--
xsl:template match=fi:placeholder
 -span id=[EMAIL PROTECTED]/
 +span id=[EMAIL PROTECTED]xsl:apply-templates//span
/xsl:template

!--+
| fi:struct - has no visual representation by default
+--
xsl:template match=fi:struct
 -xsl:apply-templates/
 + span id=[EMAIL PROTECTED]xsl:apply-templates//span
/xsl:template
  
!--+
| fi:group - has no visual representation by default
+--
xsl:template match=fi:group
 -xsl:apply-templates/
 +span id=[EMAIL PROTECTED]xsl:apply-templates//span
/xsl:template
 +  
 +  
  
xsl:template match=@*|node() priority=-1
  xsl:copy
 Here for the second
 --- AbstractWidget.orig   2006-04-13 15:31:07.851701200 +0200
 +++ AbstractWidget.java   2006-04-13 15:30:31.446616200 +0200
 @@ -483,6 +483,10 @@
  public void generateSaxFragment(ContentHandler contentHandler, Locale 
 locale)
  throws SAXException {
  
 + AttributesImpl placeHolderAttrs = new AttributesImpl();
 + placeHolderAttrs.addCDATAAttribute(id, getRequestParameterName());
 +contentHandler.startElement(FormsConstants.INSTANCE_NS, 
 placeholder, FormsConstants.INSTANCE_PREFIX_COLON + placeholder, 
 placeHolderAttrs);
 +
  if (getCombinedState().isDisplayingValues()) {
  // FIXME: we may want to strip out completely widgets that 
 aren't updated when in AJAX mode
  String element = this.getXMLElementName();
 @@ -497,15 +501,9 @@
  
  generateItemSaxFragment(contentHandler, locale);
  
 -contentHandler.endElement(FormsConstants.INSTANCE_NS, element, 
 FormsConstants.INSTANCE_PREFIX_COLON + element);
 -
 -} else {
 -// Generate a placeholder that can be used later by AJAX updates
 -AttributesImpl attrs = new AttributesImpl();
 -attrs.addCDATAAttribute(id, getRequestParameterName());
 -contentHandler.startElement(FormsConstants.INSTANCE_NS, 
 placeholder, FormsConstants.INSTANCE_PREFIX_COLON + placeholder, attrs);
 -contentHandler.endElement(FormsConstants.INSTANCE_NS, 
 placeholder, FormsConstants.INSTANCE_PREFIX_COLON + placeholder);
 +contentHandler.endElement(FormsConstants.INSTANCE_NS, element, 
 FormsConstants.INSTANCE_PREFIX_COLON + element); 
  }
 +contentHandler.endElement(FormsConstants.INSTANCE_NS, placeholder, 
 FormsConstants.INSTANCE_PREFIX_COLON + placeholder);
  }
  
   public Object getAttribute(String name) {

-- 
This message is automatically 

[jira] Commented: (COCOON-1825) Ajax errror when an active state widget become invisible state widget

2006-05-31 Thread Sylvain Wallez (JIRA)
[ 
http://issues.apache.org/jira/browse/COCOON-1825?page=comments#action_12413991 
] 

Sylvain Wallez commented on COCOON-1825:


I don't see how surrounding the table with a span changes something. Or... 
I remember of a bug in IE that doesn't like tables to be replaced in JavaScript 
or something related.

Adding an element for fi:group and fi:struct is good, but I'm wondering if 
this should be a div rather than a span.

fi:placeholder are used to mark the place of hidden widgets and should be 
kept empty.

 Ajax errror when an active state widget become invisible state widget
 -

  Key: COCOON-1825
  URL: http://issues.apache.org/jira/browse/COCOON-1825
  Project: Cocoon
 Type: Bug

   Components: Blocks: Forms
 Versions: 2.1.9
 Reporter: vincent Demay
 Assignee: Antonio Gallardo


 Some widget (field with selection-list and styling=radio, group, etc...)  can 
 not be hidden (state=invisible)in ajax mode.
 I declare some widgets without state attribute in the form definition, my 
 form is in ajax mode, when I set the widget state to INVISIBLE, the ajax 
 response can not be applied to the form because span 
 id=widget-name.../span is not available in source code.
 I think about 2 patches : 
 *putting a span/span in forms-field-styling.xsl where is not set
 *or modifing abstractWidgetDefinition.java in ordre to generate a placeholder 
 around each widget (but patch seems to need a lot of modification in 
 forms-field-styling.xsl too)
 Here is the patch for first 
 --- forms-field-styling.orig  2006-04-13 15:37:06.590221200 +0200
 +++ forms-field-styling.xsl   2006-04-13 15:38:22.525291200 +0200
 @@ -198,8 +198,9 @@
  xsl:variable name=value select=fi:value/
  xsl:variable name=vertical 
 select=string(fi:styling/@list-orientation) != 'horizontal'/
  xsl:choose
 -  xsl:when test=$vertical
 -table id={$id} cellpadding=0 cellspacing=0 border=0 
 title={fi:hint}
 +  xsl:when test=$vertical
 +   span id={$id}
 +  table id={$id} cellpadding=0 cellspacing=0 border=0 
 title={fi:hint}
xsl:for-each select=fi:selection-list/fi:item
  xsl:variable name=item-id select=concat($id, ':', 
 position())/
  tr
 @@ -224,6 +225,7 @@
  /tr
/xsl:for-each
  /table
 +/span
/xsl:when
xsl:otherwise
  span id={$id} title={fi:hint}
 @@ -682,22 +684,24 @@
| know where to insert the widget if it becomes visible
+--
xsl:template match=fi:placeholder
 -span id=[EMAIL PROTECTED]/
 +span id=[EMAIL PROTECTED]xsl:apply-templates//span
/xsl:template

!--+
| fi:struct - has no visual representation by default
+--
xsl:template match=fi:struct
 -xsl:apply-templates/
 + span id=[EMAIL PROTECTED]xsl:apply-templates//span
/xsl:template
  
!--+
| fi:group - has no visual representation by default
+--
xsl:template match=fi:group
 -xsl:apply-templates/
 +span id=[EMAIL PROTECTED]xsl:apply-templates//span
/xsl:template
 +  
 +  
  
xsl:template match=@*|node() priority=-1
  xsl:copy
 Here for the second
 --- AbstractWidget.orig   2006-04-13 15:31:07.851701200 +0200
 +++ AbstractWidget.java   2006-04-13 15:30:31.446616200 +0200
 @@ -483,6 +483,10 @@
  public void generateSaxFragment(ContentHandler contentHandler, Locale 
 locale)
  throws SAXException {
  
 + AttributesImpl placeHolderAttrs = new AttributesImpl();
 + placeHolderAttrs.addCDATAAttribute(id, getRequestParameterName());
 +contentHandler.startElement(FormsConstants.INSTANCE_NS, 
 placeholder, FormsConstants.INSTANCE_PREFIX_COLON + placeholder, 
 placeHolderAttrs);
 +
  if (getCombinedState().isDisplayingValues()) {
  // FIXME: we may want to strip out completely widgets that 
 aren't updated when in AJAX mode
  String element = this.getXMLElementName();
 @@ -497,15 +501,9 @@
  
  generateItemSaxFragment(contentHandler, locale);
  
 -contentHandler.endElement(FormsConstants.INSTANCE_NS, element, 
 FormsConstants.INSTANCE_PREFIX_COLON + element);
 -
 -} else {
 -// Generate a placeholder that can be used later by AJAX updates
 -AttributesImpl attrs = new AttributesImpl();
 -attrs.addCDATAAttribute(id, getRequestParameterName());
 -contentHandler.startElement(FormsConstants.INSTANCE_NS, 
 placeholder, FormsConstants.INSTANCE_PREFIX_COLON + placeholder, attrs);
 -contentHandler.endElement(FormsConstants.INSTANCE_NS, 
 placeholder, FormsConstants.INSTANCE_PREFIX_COLON + placeholder);
 +contentHandler.endElement(FormsConstants.INSTANCE_NS, element, 
 FormsConstants.INSTANCE_PREFIX_COLON + element);