[%- sections.title = '.title' | ml -%] [%- CALL dw.active_resource_group( "foundation" ) -%] [% dw.need_res( { group => "foundation" }, 'stc/css/pages/poll.css', ) %] [% postto_html %]
[% dw.form_auth() %] [% form.hidden(name =>'count', value => poll.count) %] [%- IF err.size -%]
[% dw.ml('.haserrors') %]
[%- END -%] [%### Poll Properties -- name, isanon, whovote, whoview %]

[% dw.ml('.properties') %]

[% form.checkbox( name => 'isanon', id => 'isanon', label => dw.ml('.isanon'), value => "yes", selected => ( poll.isanon == "yes" ) ) %] [% form.select( name => 'whoview', label => dw.ml('.whoview2') selected => poll.whoview, items => [ 'all', dw.ml('poll.security.whoview.all'), 'trusted', dw.ml('poll.security.whoview.trusted'), 'none', dw.ml('poll.security.whoview.none_remote') ], ) %] [% form.select( name => 'whovote', label => dw.ml('.whovote'), selected => poll.whovote, items => [ 'all', dw.ml('poll.security.whovote.all'), 'trusted', dw.ml('poll.security.whovote.trusted') ] ) %] [% form.textbox( 'name' => 'name', 'size' => '50', 'maxlength' => rules.pollname.maxlength, 'label' => dw.ml('.pollname2'), 'value' => poll.name ) %] [%### Poll Questions %]

[% dw.ml('.questions') %]

[%# closure for an html select box to insert element %] [%- BLOCK insert_element_html -%]
[%- IF after >= rules.elements.max -%] [% dw.ml('.elements.limitreached') %] [%- ELSE -%] [%- form.select( name => "insert:$after", label => dw.ml('.insertquestion'), items => [ '--', '', 'radio', dw.ml('.type.radio'), 'check', dw.ml('.type.check'), 'drop', dw.ml('.type.drop'), 'text', dw.ml('.type.text'), 'scale', dw.ml('.type.scale') ] )%] [% form.submit( name = "insert:$after:do", value = dw.ml('.button.insert')) %] [%- END -%]
[%- END -%] [%# if they have no elements, we need to manually give them an insert option %] [% PROCESS insert_element_html after = 0 %] [%# go through our elements in order %] [% IF poll.count && poll.count > 0; poll_length = poll.count - 1; FOREACH q IN [0 .. poll_length] %] [%- elem = poll.pq.$q; qnr = q + 1 -%]

[% dw.ml('.questionnum', { 'num' => qnr }) %] - [% dw.ml(".type.${elem.type}")%]

[%# can't move the first element up %] [% dw.img('btn_up', 'input', 'name' => "move:$q:up", 'value' => "move:$q:up") IF q > 0 %] [%# delete button %] [% "
" _ dw.img('btn_del', 'input', 'name' => "delete:$q:do", 'value' => "delete:$q:do") %] [%# can't move the last element down%] [% "
" _ dw.img('btn_down', 'input', 'name' => "move:$q:dn", 'value' => "move:$q:dn") IF q < (poll.count - 1) %]
[%# question text and hidden fields %] [% form.hidden(name = "pq_${q}_type", value = elem.type) %] [% form.hidden(name = "pq_${q}_opts", value = elem.opts) %] [% dw.ml('.question') %] [% form.textbox( 'name' => "pq_${q}_question", 'size' => '50', 'maxlength' => rules.question.maxlength, 'value' => elem.question, 'error' => err.$q.question ) %]
[%# spit out opts -- choices for drop-down, radio, etc questions %] [%- SWITCH elem.type -%] [% CASE ['radio', 'check', 'drop'] %] [% dw.ml( ".options2" ) %] [% opts_length = elem.opts - 1; FOREACH o IN [0 .. opts_length] %]
[% form.checkbox( 'type' => 'radio', 'name' => "dummy_$q", 'value' => '', 'disabled' => 'disabled' ) IF elem.type == 'radio' %] [% form.checkbox('type' => 'checkbox', 'value' => '', 'disabled' => 'disabled' ) IF elem.type == 'check' %] [% form.textbox( 'type' => 'text', 'name' => "pq_${q}_opt_$o", 'size' => '35', 'maxlength' => rules.items.maxlength, 'value' => elem.opt.$o) %]
[% END %] [% IF err.$q.items %] [% err.$q.items %] [% END %] [% IF elem.opts < rules.items.max; form.submit(name = "request:$q:do", value = 'More >>' ); ELSE; dw.ml(".options.limitreached2"); END %] [% IF elem.type == 'check'; "
"; minnumber = form.textbox( 'name' => "pq_${q}_checkmin", 'class' => 'inline', 'value' => (elem.checkmin.defined ? elem.checkmin : rules.checkbox.checkmin), 'size' => '3', 'maxlength' => '9', 'error' => err.$q.checkmin ); maxnumber = form.textbox( 'name' => "pq_${q}_checkmax", 'class' => 'inline', 'value' => (elem.checkmax.defined ? elem.checkmax : rules.checkbox.checkmax), 'size' => '3', 'maxlength' => '9', 'error' => err.$q.checkmax ); dw.ml( ".checknumber", { min => minnumber.trim, max => maxnumber.trim } ); END %] [% CASE 'text' %] [% FOREACH atr IN ['size', 'maxlength']; form.textbox( 'name' => "pq_${q}_$atr", 'value' => (elem.$atr.defined ? elem.$atr : rules.text.$atr), 'label' => atr.ucfirst, 'class' => "text inline" 'size' => '3', 'maxlength' => '3', 'error' => err.$q.$atr ); END %] [% CASE 'scale' %] [% FOREACH atr IN ['from', 'to', 'by']; form.textbox( 'name' => "pq_${q}_$atr", 'label' => dw.ml(".scale.$atr"), 'class' => "text inline" 'value' => (elem.$atr.defined ? elem.$atr : rules.scale.$atr), 'size' => '3', 'maxlength' => '9', 'error' => err.$q.$atr ); END %]
[% FOREACH atr IN ['lowlabel', 'highlabel'] %]
[% form.textbox( 'name' => "pq_${q}_$atr", 'label' => dw.ml(".scale.$atr") 'value' => (elem.$atr.defined ? elem.$atr : ""), 'size' => '20', 'maxlength' => '50', 'error' => err.$q.$atr ) %]
[% END %]
[% END %]
[%# add a new element unless they're already at the max %] [% PROCESS insert_element_html after = q+1 %] [% END %]

When you're done ...

[% form.submit( name = 'start_over', value = dw.ml('.button.startover2')) %] [% form.submit( name = 'see_code', value = dw.ml('.button.seecode2')) %] [% form.submit( name = 'see_preview', value = dw.ml('.button.preview2')) %]
[% END %]