Base component for Bootstrap form groups

ccm-docs
Jens Pelzetter 2020-11-18 17:04:59 +01:00
parent 6a6a9f67f8
commit b23c1f8f25
2 changed files with 52 additions and 22 deletions

View File

@ -0,0 +1,33 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"
xmlns:cc="http://xmlns.jcp.org/jsf/composite"
xmlns:f="http://xmlns.jcp.org/jsf/core">
<cc:interface shortDescription="A base component for form groups. The control (input) is added by the input facet.">
<cc:attribute name="help"
required="true"
shortDescription="A short description of the input field"
type="String" />
<cc:attribute name="inputId"
required="true"
shortDescription="The ID of the input field."
type="String" />
<cc:attribute name="label"
required="true"
shortDescription="The label of the input field."
type="String" />
<cc:facet name="input" required="true" />
</cc:interface>
<cc:implementation>
<div class="form-group">
<label for="#{cc.attrs.inputId}">${cc.attrs.label}</label>
<cc:renderFacet name="input" />
<small class="form-text text-muted"
id="#{cc.attrs.inputId}-help">
#{cc.attrs.help}
</small>
</div>
</cc:implementation>
</html>

View File

@ -1,5 +1,6 @@
<!DOCTYPE html> <!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" <html xmlns:bootstrap="http://xmlns.jcp.org/jsf/composite/components/bootstrap"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:c="http://xmlns.jcp.org/jsp/jstl/core" xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"
xmlns:cc="http://xmlns.jcp.org/jsf/composite" xmlns:cc="http://xmlns.jcp.org/jsf/composite"
xmlns:f="http://xmlns.jcp.org/jsf/core"> xmlns:f="http://xmlns.jcp.org/jsf/core">
@ -52,11 +53,10 @@
type="String" /> type="String" />
</cc:interface> </cc:interface>
<cc:implementation> <cc:implementation>
<c:if test="#{cc.attrs.value.length() > 0}"> <bootstrap:formGroup help="#{cc.attrs.help}"
<pre>has value</pre> inputId="#{cc.attrs.inputId}"
</c:if> label="#{cc.attrs.label}">
<div class="form-group"> <f:facet name="input">
<label for="#{cc.attrs.inputId}">${cc.attrs.label}</label>
<input aria-describedby="#{cc.attrs.inputId}-help" <input aria-describedby="#{cc.attrs.inputId}-help"
id="#{cc.attrs.inputId}" id="#{cc.attrs.inputId}"
maxlength="#{(not empty cc.attrs.maxlength) ? cc.attrs.maxlength : null}" maxlength="#{(not empty cc.attrs.maxlength) ? cc.attrs.maxlength : null}"
@ -68,11 +68,8 @@
size="#{not empty cc.attrs.size ? cc.attrs.size : null}" size="#{not empty cc.attrs.size ? cc.attrs.size : null}"
value="#{not empty cc.attrs.value ? cc.attrs.value : ''}" value="#{not empty cc.attrs.value ? cc.attrs.value : ''}"
type="text" /> type="text" />
<small class="form-text text-muted" </f:facet>
id="#{cc.attrs.inputId}-help"> </bootstrap:formGroup>
#{cc.attrs.help}
</small>
</div>
</cc:implementation> </cc:implementation>
</html> </html>