Alexey Poryadny created TOMAHAWK-1678:
-----------------------------------------
Summary: Generation t:checkbox ID with layout='spread'
Key: TOMAHAWK-1678
URL: https://issues.apache.org/jira/browse/TOMAHAWK-1678
Project: MyFaces Tomahawk
Issue Type: Bug
Components: Extended SelectItems
Affects Versions: 1.1.14
Environment: GlassFish 4.1
Tomohawk 1.1.14
JSF 2.2
Windows 7
Primefaces 4.0
Reporter: Alexey Poryadny
I generate such blocks of two types: in the first case I use component
t:selectOneMenu with property layout='spread' and in the second I use
t:selectManyCheckbox. In both of them I hang handler f:ajax and generates
t:radio and t:checkbox respectively. On page property id for input type="radio"
(for t:radio) is generated in form 'j_idt ***', and property id for input
type="'checkbox' is generated in the form id_selectManyCheckbox:index because
of which the processing in the event onclick obtained here such line mojarra.ab
('id_selectManyCheckbox', event, 'change', 0, 'q-smc-div-2 q-smc-panel-2') and
ajax request is not processed for t:selectManyCheckbox. For selectOneMenu line
also looks mojarra.ab ('j_idt1757', event, 'change', 0, 'q-sor-div-34
q-sor-panel-34') and ajax request is executed.
<c:forEach items="#{createTopicBean.currentTopic.questions}" var="ques"
varStatus="loopQues">
<c:if test="#{ques.type ne 4}">
<p:row>
<p:column>
<h:outputLabel
value="#{ques.position}. #{ques.description}"/>
<c:if test="#{ques.type eq 2 and
ques.countAns eq 1}">
<t:selectOneRadio
id="q-sor-#{ques.position}-#{loopQues.index}" converter="#{selectOneAnsBean}"
value="#{ques.selectedAnswer}" layout="spread" > <!--TODO required="true"-->
<f:selectItems
value="#{ques.qSelectItem}" itemLabel="#{ans.description}" />
<f:ajax event="change"
render="q-sor-div-#{ques.position}
:createinterviewform:q-sor-panel-#{ques.position}" />
</t:selectOneRadio>
</c:if>
<c:if test="#{ques.type eq 2 and
ques.countAns eq 2}">
<t:selectManyCheckbox
id="q-smc-#{ques.position}-#{loopQues.index}" converter="#{selectManyAnsBean}"
value="#{ques.selectedAnswers}" layout="spread" forceId="true" > <!--TODO
required="true"-->
<f:selectItems
value="#{ques.qSelectItem}" itemLabel="#{ans.description}" />
<f:ajax event="change"
render="q-smc-div-#{ques.position}
:createinterviewform:q-smc-panel-#{ques.position}" />
</t:selectManyCheckbox>
</c:if>
</p:column>
<p:column>
<!--TODO Колонка для валидации
ответов на вопрос-->
</p:column>
</p:row>
<!--BEGIN-->
<c:if test="#{ques.type eq 2 and
ques.countAns eq 1}">
<p:row>
<p:column colspan="2">
<p:outputPanel
id="q-sor-div-#{ques.position}">
<p:panelGrid
id="q-sor-panel-#{ques.position}">
<c:forEach
items="#{ques.qSelectItem}" var="ans" varStatus="loopAns">
<p:row>
<p:column
colspan="2" class="rightMarg" >
<c:if
test="#{ans ne null}">
<t:radio for=":createinterviewform:q-sor-#{ques.position}-#{loopQues.index}"
index="#{loopAns.index}" />
</c:if>
<c:if
test="#{ques.selectedAnswer.id ne 999 and ques.selectedAnswer.id gt 980}">
<p:outputPanel rendered="#{ans.value ne 999 and ans.value gt 980}"
layout="inline">
<p:inputText value="#{ques.userDescription}" style="width:140px;margin-left:
20px;" /> <!--TODO required="true"-->
</p:outputPanel>
</c:if>
</p:column>
</p:row>
</c:forEach>
</p:panelGrid>
</p:outputPanel>
</p:column>
</p:row>
</c:if>
<!--END-->
<!--BEGIN-->
<c:if test="#{ques.type eq 2 and
ques.countAns eq 2}">
<p:row>
<p:column colspan="2">
<p:outputPanel
id="q-smc-div-#{ques.position}">
<p:panelGrid
id="q-smc-panel-#{ques.position}">
<c:forEach
items="#{ques.answers}" var="ans" varStatus="loopAns">
<p:row>
<p:column
colspan="2" class="rightMarg" >
<c:if
test="#{ans ne null}">
<t:checkbox t:id="a-smc-#{ques.position}-#{loopQues.index}-#{loopAns.index}"
for=":createinterviewform:q-smc-#{ques.position}-#{loopQues.index}"
index="#{loopAns.index}" />
</c:if>
</p:column>
</p:row>
</c:forEach>
</p:panelGrid>
</p:outputPanel>
</p:column>
</p:row>
</c:if>
</c:forEach>
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)