.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.42) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "HTML::FormHandler::Render::RepeatableJs 3pm" .TH HTML::FormHandler::Render::RepeatableJs 3pm "2022-03-25" "perl v5.34.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" HTML::FormHandler::Render::RepeatableJs \- role providing method to construct repeatable javascript .SH "VERSION" .IX Header "VERSION" version 0.40068 .SH "SYNOPSIS" .IX Header "SYNOPSIS" Creates jQuery javascript to add and delete repeatable elements. .PP Note: This is still \s-1EXPERIMENTAL.\s0 This is an \s-1EXAMPLE.\s0 Changes are very likely to occur. Javascript is not guaranteed to be best practice. It will not work on all rendered repeatables (requires wrapper with id). It is strongly suggested that you make your own role if you use it. Then you can modify it as needed. Or just write out the rep_ data to javascript variables, and write the function in javascript. This function uses a plain javascript confirmation dialog. You almost certainly want to do something else. This javascript depends on the Repeatable field having a 'controls' div class in order to position the new elements. Use the Bootstrap wrapper or the \&'controls_div' tag on the Simple wrapper. .PP A role to be used in a Form Class: .PP .Vb 5 \& package MyApp::Form::Test; \& use HTML::FormHandler::Moose; \& extends \*(AqHTML::FormHandler\*(Aq; \& with \*(AqHTML::FormHandler::Render::RepeatableJs\*(Aq; \& ... .Ve .SS "\s-1DESCRIPTION\s0" .IX Subsection "DESCRIPTION" This contains one method, 'render_repeatable_js'. It's designed to be used in a template, something like: .PP .Vb 5 \& [% WRAPPER "wrapper.tt" %] \& [% form.render_repeatable_js %] \&

Editing Object ....

\& [% form.render %] \& [% END \-%] .Ve .PP It will render javascript which can be used with the AddElement field, and setting the 'setup_for_js' flag in the Repeatable field to add the ability to dynamically add a new repeatable element in a form. .PP Note: this code is provided as an example. You may need to write your own javascript function if your situation is different. .PP Some of the extra information (level) in this function is in preparation for handling nested repeatables, but it's not supported yet. .PP This function operates on \s-1HTML\s0 elements that have the id of the repeatable element. That requires that the wrapper have the repeatable instance \s-1ID\s0 (now rendered by default). If you don't have wrappers around your repeatable elements, this won't work. .PP See HTML::FormHandler::Field::AddElement for an example of rendering an \s-1HTML\s0 element that can be used to provide the AddElement button. See that field for the requirements for the add \s-1HTML.\s0 .PP See HTML::FormHandler::Field::RmElement for an example of rendering an \s-1HTML\s0 element that can be used to provide a 'remove' button. See that field for the requirements for the remove \s-1HTML.\s0 .SH "NAME" HTML::FormHandler::Render::RepeatableJs .SH "AUTHOR" .IX Header "AUTHOR" FormHandler Contributors \- see HTML::FormHandler .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" This software is copyright (c) 2017 by Gerda Shank. .PP This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.