mourningdove/views/journal/talkform.tt

989 lines
30 KiB
Text
Raw Permalink Normal View History

2026-05-24 01:03:05 +00:00
[%# HTML for the talkform / "slow reply" component shown on journal ReplyPages
Authors:
Nick Fagerlund <nick.fagerlund@gmail.com>
Copyright (c) 2019 by Dreamwidth Studios, LLC.
This program is free software; you may redistribute it and/or modify it under
the same terms as Perl itself. For a copy of the license, please reference
'perldoc perlartistic' or 'perldoc perlgpl'.
-%]
[%- IF foundation_beta -%][%# use new quickreply-style talkform -%]
<div id='qrdiv'><div id='qrformdiv'>
<form id="postform" name="postform" method="POST" action="[% form_url | url %]">
[%- dw.form_auth -%]
[%- hidden_form_elements -%]
[%- IF errors -%]
<ul>
[% FOREACH error IN errors -%]
<li><b>[% error %]</b></li>
[%- END %]
</ul>
<hr />
[%- END -%]
[%- create_link -%]
[%# "From" fields %]
<div id="talkform-from">
<label>[%- '.opt.from' | ml %]</label>
[%- IF comment.editid -%]
<div class="from-option" id='from-ljuser'>
[%- IF remote_opts.banned -%]
[%- IF journal.is_community -%]
[%- '.opt.bannedfrom.comm' | ml -%]
[%- ELSE -%]
[%- '.opt.bannedfrom' | ml -%]
[%- END -%]
[%- ELSE -%]
[%- dw.img( 'id_user', '' ) -%]
<label for='talkpostfromremote'>
[%- '.opt.loggedin' | ml( username => remote.display_name ) -%]
</label>
[%- IF remote_opts.screened %]
[%- '.opt.willscreen' | ml -%]
[%- END -%]
[%- form.hidden( name = 'usertype', value = 'cookieuser' ) -%]
[%- form.hidden(
name = 'cookieuser'
id = 'cookieuser'
value = remote.user
) -%]
[%- END -%]
</div>
[%- ELSE -%][%# New comment, not editing. -%]
[%# Anonymous: -%]
<div class="from-option[% UNLESS public_entry AND journal.allows_anon %] from-option-cannot[% END %]" id="from-anon">
<input type='radio' name='usertype' value='anonymous' id='talkpostfromanon' [%
IF public_entry AND journal.allows_anon -%]
[%- IF default_usertype == 'anonymous' -%]
checked='checked'
[%- END -%]
[%- ELSE -%]
disabled='disabled'
[%- END
%] />
<label for='talkpostfromanon'[% UNLESS public_entry AND journal.allows_anon %] class="disabled"[% END %]>
[% dw.img( 'id_anonymous', '' ) %]
[% '.opt.anonymous' | ml %]
</label>
[%- IF public_entry AND journal.allows_anon -%]
[%- IF journal.screens_anon %]
[% '.opt.willscreen' | ml %]
[%- END -%]
[%- ELSE -%]
[%- IF ! public_entry %]
[% '.opt.noanonpost.nonpublic' | ml -%]
[%- ELSIF ! journal.allows_non_access -%]
[% ( journal.is_community ? '.opt.membersonly' : '.opt.friendsonly' )
| ml( username => "$journal.user" )
%]
[%- ELSE -%]
[% '.opt.noanonpost' | ml -%]
[%- END -%]
[%- END -%]
</div>
[%- IF remote.openid_identity AND default_usertype != 'openid' -%]
[%# ...then we're legit logged in as an OpenID user, not just holding a
temp $remote on a partial form submission (captcha, error, etc.) -%]
<div class="from-option
[%- UNLESS remote_opts.allowed %] from-option-cannot[% END -%]
" id='from-openid-loggedin'>
<input type='radio' name='usertype' value='openid_cookie' data-more="from-openid-loggedin-more" id='talkpostfromoidli' [%
IF remote_opts.allowed -%]
[%- IF default_usertype == 'openid_cookie' -%]
checked='checked'
[%- END -%]
[%- ELSE -%]
disabled='disabled'
[%- END
%] />
<label for='talkpostfromoidli'[% UNLESS remote_opts.allowed %] class="disabled"[% END %]>
[% dw.img( 'id_openid', '' ) %]
[% '.opt.openid.loggedin' | ml %]
[% remote.display_name %]
</label>
[%- IF remote_opts.allowed -%]
[%- IF remote_opts.screened %] [% '.opt.willscreen' | ml -%][%- END -%]
[%- ELSE -%]
[%- IF remote_opts.banned -%][%# p. cut and dried -%]
[%- journal.is_community ?
'.opt.bannedfrom.comm' : '.opt.bannedfrom'
| ml( journal => journal.user ) -%]
[%- ELSIF journal.allows_non_access -%][%# your email's not validated. -%]
[%- '.opt.noopenidpost' | ml(
aopts1 => "href='${site.root}/changeemail'"
aopts2 => "href='${site.root}/register'"
) -%]
[%- ELSE -%][%# you're not on the access list -%]
[%- journal.is_community ?
'/talkpost_do.tt.error.notamember' : '/talkpost_do.tt.error.notafriend'
| ml( user => journal.user ) -%]
[%- END -%]
[%- END -%]
</div>
<div class="from-login" id="from-openid-loggedin-more">
[%- IF remote_opts.can_manage_community -%]
[%- form.checkbox(
name = 'prop_admin_post'
id = 'prop_admin_post'
value = 1
selected = comment.admin_post
label = 'Admin Post'
) -%]
[%- END -%]
</div>
[%- ELSE -%][%# not logged in as openid user -%]
<div class="from-option" id="from-openid-loggedout">
<input type='radio' name='usertype' value='openid' data-more="from-openid-more" id='talkpostfromoidlo'[% IF default_usertype == 'openid' %] checked='checked'[% END %] />
<label for='talkpostfromoidlo'>
[% dw.img( 'id_openid', '' ) %]
[% '.opt.openid' | ml %]
</label>
[% help_icon( 'openid' ) %]
[%- IF journal.screens_all -%]
[%- '.opt.willscreen' | ml -%]
[%- ELSIF journal.screens_non_access -%]
[%- '.opt.willscreenfriend' | ml -%]
[%- ELSIF journal.screens_anon -%]
[%- '.opt.willscreenopenid' | ml -%]
[%- END -%]
</div>
[%- END -%]
<div class="from-login" id="from-openid-more">
<div>
[%- form.textbox(
name = 'oidurl'
id = 'oidurl'
label = dw.ml('.login.url')
size = 53
maxlength = 60
value = ( comment.oidurl || remote.openid_identity )
) -%]
</div>
<div>
[%- form.checkbox(
name = 'oiddo_login'
id = 'oidlogincheck'
label = dw.ml('.loginq')
selected = comment.oiddo_login
) -%]
</div>
</div>
[%# logged-in site user -%]
[%- IF remote && ! remote.openid_identity -%]
<div class="from-option
[%- UNLESS remote_opts.allowed %] from-option-cannot[% END -%]
" id="from-user-loggedin">
<input type='radio' name='usertype' value='cookieuser' data-more="from-user-loggedin-more" id='talkpostfromremote' [%
IF remote_opts.allowed -%]
[%- IF default_usertype == 'cookieuser' -%]
checked='checked'
[%- END -%]
[%- ELSE -%]
disabled='disabled'
[% END
%] />
<label for='talkpostfromremote'[% UNLESS remote_opts.allowed %] class="disabled"[% END %]>
[% dw.img( 'id_user', '' ) %]
[% remote.display_name %]
[% '.opt.loggedin2' | ml %]
</label>
[%- IF remote_opts.allowed -%]
[%- IF remote_opts.screened -%] [%- '.opt.willscreen' | ml -%][%- END -%]
[%- ELSE -%]
[%- IF remote_opts.banned -%]
[%- journal.is_community ?
'.opt.bannedfrom.comm' : '.opt.bannedfrom'
| ml( journal => journal.user ) -%]
[%- ELSE -%][%# you're not on the access list -%]
[%- journal.is_community ?
'/talkpost_do.tt.error.notamember' : '/talkpost_do.tt.error.notafriend'
| ml( user => journal.user ) -%]
[%- END -%]
[%- END -%]
[%- UNLESS remote_opts.banned -%]
<input type='hidden' name='cookieuser' value='[% remote.user %]' id='cookieuser' />
[%- END -%]
</div>
<div class="from-login" id="from-user-loggedin-more">
[%- IF remote_opts.can_manage_community -%]
[%- form.checkbox(
name = 'prop_admin_post'
id = 'prop_admin_post'
value = 1
selected = comment.admin_post
label = 'Admin Post'
) -%]
[%- END -%]
</div>
[%- END -%]
[%# not-logged-in site user -%]
<div class="from-option" id="from-user-loggedout">
<input type='radio' name='usertype' value='user' data-more="from-user-more" id='talkpostfromlj'[% IF default_usertype == 'user' %] checked='checked'[% END %] />
<label for='talkpostfromlj'>
[% dw.img( 'id_user', '' ) %]
[% IF remote && ! remote.openid_identity %] Other [%- END %]
[% '.opt.siteuser' | ml( sitename => site.nameshort ) %]
</label>
[%- IF journal.screens_all -%]
[%- '.opt.willscreen' | ml -%]
[%- ELSIF journal.screens_non_access -%]
[%- '.opt.willscreenfriend' | ml -%]
[%- END -%]
</div>
[%# site user login form, always present but sometimes hidden -%]
<div class="from-login" id="from-user-more">
<div>
[%- form.textbox(
name = 'userpost'
id = 'username'
label = dw.ml('Username')
size = 13
maxlength = site.maxlength_user
value = comment.user
style = "background: url('${site.imgroot}/silk/identity/user.png') no-repeat; background-color: #fff; background-position: 0px 50%; padding-left: 18px; color: #00C; font-weight: bold;"
) -%]
</div>
<div>
[%- form.password(
name = 'password'
id= 'password'
label = dw.ml('Password')
maxlength = site.maxlength_pass
value = comment.password
size = 18
) -%]
</div>
<div>
[%- form.checkbox(
name = 'do_login'
id = 'logincheck'
label = dw.ml('.loginq')
selected = comment.do_login
) -%]
</div>
</div>
[%- IF ! create_link && ! remote -%]
<span style='font-size: 8pt; font-style: italic;'>
[%- '.noaccount' | ml( aopts => "href='${site.root}/create'") -%]
</span>
[%- END -%]
[%- END -%][%# figuring out whether it's an edit or new reply. -%]
</div>
<div class='qr-meta'>
[%- current_icon = comment.current_icon;
current_icon_kw = comment.current_icon_kw;
focus_after_browse = "#body" -%]
[% INCLUDE "components/icon-select-icon.tt" IF remote %]
[% INCLUDE "components/icon-select-dropdown.tt" IF remote %]
</div>
[%# Subject, subjecticon, quote button %]
<div class="qr-subject">
[%- form.textbox(
label = dw.ml( '.opt.subject2' )
labelclass = 'invisible'
size = 50
maxlength = 100
name = 'subject'
id = 'subject'
placeholder = dw.ml( '.opt.subject2' )
value = comment.subject
) -%]
[%- form.hidden(
id = 'subjectIconField'
name = 'subjecticon'
value = comment.subjecticon
) -%]
[%# The current subjecticon, as the button to open the menu. %]
[%- print_subjecticon_by_id(
comment.subjecticon,
"id='subjectIconImage' role='button' class='js-only' style='display: none;' title='Click to change the subject icon'"
) -%]
</div>
<div style="display: none;" id="subjectIconList">
<div class="subjecticon-grid">
[%- FOREACH id IN subjecticon_ids -%]
<div>
[%- print_subjecticon_by_id(
id,
"id='${id}' role='button'"
) -%]
</div>
[%- END -%]
</div>
</div>
<div id='ljnohtmlsubj' class='ljdeem no-js'><span style='font-size: 8pt; font-style: italic;'>
[%- '.nosubjecthtml' | ml -%]
</span></div>
[%# Markup controls %]
<div class="qr-markup">
<div class="qr-markup-type">
[%- form.select(
label = 'Formatting type'
labelclass = 'invisible'
name = 'prop_editor'
id = 'prop_editor'
selected = editors.selected
items = editors.items
) -%]
<a href="[% 'markup.helplink.url' | ml %]" tabindex="-1" target="_blank">[%-
dw.img('help', '',
{
alt => dw.ml('markup.helplink.alttext'),
title => dw.ml('markup.helplink.alttext'),
style => 'vertical-align: middle;'
}
)
-%]</a>
</div>
<div class="qr-markup-controls">
<input type="button" id="comment-text-quote" value="Quote" tabindex="-1" class="js-only markup-button" style="display: none;" data-quote-error="[%- 'talk.error.quickquote' | ml -%]" />
</div>
</div>
[%# Message body text %]
<div class="qr-body">
[%- form.textarea(
label = dw.ml( '.opt.message2' )
labelclass = 'invisible'
rows = 10
cols = 80
wrap = 'soft'
name = 'body'
id = 'body'
value = comment.body
) -%]
</div>
[%# Misc checkboxes, captcha, edit reason - after body, before post buttons %]
<div id="talkform-misc">
[%- IF remote_opts.can_unscreen_parent -%]
<br />
[%- form.checkbox(
label = dw.ml('.opt.unscreenparent')
name = 'unscreen_parent'
id = 'unscreen_parent'
value = 1
selected = 0
) -%]
[%- END -%]
[%- IF captcha -%]
<br />
[%- captcha.html -%]
[%- form.hidden(
name = 'captcha_type'
value = captcha.type
) -%]
[%- END -%]
[%- IF comment.editid -%]
<br />
[%- form.textbox(
label = dw.ml('.opt.editreason')
name = 'editreason'
id = 'editreason'
value = comment.editreason
size = 75
maxlength = 255
) -%]
<div id='nohtmledit' class='ljdeem no-js'><span style='font-size: 8pt; font-style: italic;'>[% '.noedithtml' | ml %]</span></div>
[%- END -%]
</div>
[%# post button controls and info notices. %]
<div class="qr-footer">
[%- form.submit(
name = "submitpost"
value = comment.editid ? dw.ml('.opt.edit') : dw.ml('.opt.submit')
id = "submitpost"
) -%]
&nbsp;
[%- form.submit(
name = "submitpreview"
value = dw.ml('talk.btn.preview')
id = "submitpview"
) -%]
[%- form.hidden(
name = "previewplaceholder"
id = "previewplaceholder"
value = 1
) -%]
[%- IF journal.is_iplogging -%]
<div class='de'>
[%- IF journal.is_iplogging == 'all' -%]
[% '.logyourip' | ml -%]
[%- ELSIF journal.is_iplogging == 'anon' -%]
[% '.loganonip' | ml -%]
[%- END -%]
</div>
[%- help_icon( 'iplogging' ) -%]
[%- END -%]
[%- IF journal.is_linkstripped -%]
<div class='de'>[%- '.linkstripped' | ml -%]</div>
[%- END %]
</div>
</form>
</div></div>
[%- ELSE -%][%# not in S2 foundation beta, use old table-based talkform -%]
<form id="postform" name="postform" method="POST" action="[% form_url | url %]">
[%- dw.form_auth -%]
[%- hidden_form_elements -%]
[%- IF errors -%]
<ul>
[% FOREACH error IN errors -%]
<li><b>[% error %]</b></li>
[%- END %]
</ul>
<hr />
[%- END -%]
[%- create_link -%]
<table summary='' class='talkform'>
[%# First row: "From" fields %]
<tr id='talkform-from'>
<td align='right' valign='top'>
[%- '.opt.from' | ml %]
</td>
<td>
[%- IF comment.editid -%]
<div class="from-option" id='from-ljuser'>
[%- IF remote_opts.banned -%]
[%- IF journal.is_community -%]
[%- '.opt.bannedfrom.comm' | ml -%]
[%- ELSE -%]
[%- '.opt.bannedfrom' | ml -%]
[%- END -%]
[%- ELSE -%]
[%- dw.img( 'id_user', '' ) -%]
<label for='talkpostfromremote'>
[%- '.opt.loggedin' | ml( username => remote.display_name ) -%]
</label>
[%- IF remote_opts.screened %]
[%- '.opt.willscreen' | ml -%]
[%- END -%]
[%- form.hidden( name = 'usertype', value = 'cookieuser' ) -%]
[%- form.hidden(
name = 'cookieuser'
id = 'cookieuser'
value = remote.user
) -%]
[%- END -%]
</div>
[%- ELSE -%][%# New comment, not editing. -%]
[%# Anonymous: -%]
<div class="from-option[% UNLESS public_entry AND journal.allows_anon %] from-option-cannot[% END %]" id="from-anon">
<input type='radio' name='usertype' value='anonymous' id='talkpostfromanon' [%
IF public_entry AND journal.allows_anon -%]
[%- IF default_usertype == 'anonymous' -%]
checked='checked'
[%- END -%]
[%- ELSE -%]
disabled='disabled'
[%- END
%] />
<label for='talkpostfromanon'[% UNLESS public_entry AND journal.allows_anon %] class="disabled"[% END %]>
[% dw.img( 'id_anonymous', '' ) %]
[% '.opt.anonymous' | ml %]
</label>
[%- IF public_entry AND journal.allows_anon -%]
[%- IF journal.screens_anon %]
[% '.opt.willscreen' | ml %]
[%- END -%]
[%- ELSE -%]
[%- IF ! public_entry %]
[% '.opt.noanonpost.nonpublic' | ml -%]
[%- ELSIF ! journal.allows_non_access -%]
[% ( journal.is_community ? '.opt.membersonly' : '.opt.friendsonly' )
| ml( username => "$journal.user" )
%]
[%- ELSE -%]
[% '.opt.noanonpost' | ml -%]
[%- END -%]
[%- END -%]
</div>
[%- IF remote.openid_identity AND default_usertype != 'openid' -%]
[%# ...then we're legit logged in as an OpenID user, not just holding a
temp $remote on a partial form submission (captcha, error, etc.) -%]
<div class="from-option
[%- UNLESS remote_opts.allowed %] from-option-cannot[% END -%]
" id='from-openid-loggedin'>
<input type='radio' name='usertype' value='openid_cookie' id='talkpostfromoidli' [%
IF remote_opts.allowed -%]
[%- IF default_usertype == 'openid_cookie' -%]
checked='checked'
[%- END -%]
[%- ELSE -%]
disabled='disabled'
[%- END
%] />
<label for='talkpostfromoidli'[% UNLESS remote_opts.allowed %] class="disabled"[% END %]>
[% dw.img( 'id_openid', '' ) %]
[% '.opt.openid.loggedin' | ml %]
[% remote.display_name %]
</label>
[%- IF remote_opts.allowed -%]
[%- IF remote_opts.screened %] [% '.opt.willscreen' | ml -%][%- END -%]
[%- ELSE -%]
[%- IF remote_opts.banned -%][%# p. cut and dried -%]
[%- journal.is_community ?
'.opt.bannedfrom.comm' : '.opt.bannedfrom'
| ml( journal => journal.user ) -%]
[%- ELSIF journal.allows_non_access -%][%# your email's not validated. -%]
[%- '.opt.noopenidpost' | ml(
aopts1 => "href='${site.root}/changeemail'"
aopts2 => "href='${site.root}/register'"
) -%]
[%- ELSE -%][%# you're not on the access list -%]
[%- journal.is_community ?
'/talkpost_do.tt.error.notamember' : '/talkpost_do.tt.error.notafriend'
| ml( user => journal.user ) -%]
[%- END -%]
[%- END -%]
</div>
[%- ELSE -%][%# not logged in as openid user -%]
<div class="from-option" id="from-openid-loggedout">
<input type='radio' name='usertype' value='openid' data-more="from-openid-more" id='talkpostfromoidlo'[% IF default_usertype == 'openid' %] checked='checked'[% END %] />
<label for='talkpostfromoidlo'>
[% dw.img( 'id_openid', '' ) %]
[% '.opt.openid' | ml %]
</label>
[% help_icon( 'openid' ) %]
[%- IF journal.screens_all -%]
[%- '.opt.willscreen' | ml -%]
[%- ELSIF journal.screens_non_access -%]
[%- '.opt.willscreenfriend' | ml -%]
[%- ELSIF journal.screens_anon -%]
[%- '.opt.willscreenopenid' | ml -%]
[%- END -%]
</div>
[%- END -%]
<div class="from-login" id="from-openid-more">
<div>
[%- form.textbox(
name = 'oidurl'
id = 'oidurl'
label = dw.ml('.login.url')
size = 53
maxlength = 60
value = ( comment.oidurl || remote.openid_identity )
) -%]
</div>
<div>
[%- form.checkbox(
name = 'oiddo_login'
id = 'oidlogincheck'
label = dw.ml('.loginq')
selected = comment.oiddo_login
) -%]
</div>
</div>
[%# logged-in site user -%]
[%- IF remote && ! remote.openid_identity -%]
<div class="from-option
[%- UNLESS remote_opts.allowed %] from-option-cannot[% END -%]
" id="from-user-loggedin">
<input type='radio' name='usertype' value='cookieuser' id='talkpostfromremote' [%
IF remote_opts.allowed -%]
[%- IF default_usertype == 'cookieuser' -%]
checked='checked'
[%- END -%]
[%- ELSE -%]
disabled='disabled'
[% END
%] />
<label for='talkpostfromremote'[% UNLESS remote_opts.allowed %] class="disabled"[% END %]>
[% dw.img( 'id_user', '' ) %]
[% '.opt.loggedin' | ml( username => remote.display_name ) %]
</label>
[%- IF remote_opts.allowed -%]
[%- IF remote_opts.screened -%] [%- '.opt.willscreen' | ml -%][%- END -%]
[%- ELSE -%]
[%- IF remote_opts.banned -%]
[%- journal.is_community ?
'.opt.bannedfrom.comm' : '.opt.bannedfrom'
| ml( journal => journal.user ) -%]
[%- ELSE -%][%# you're not on the access list -%]
[%- journal.is_community ?
'/talkpost_do.tt.error.notamember' : '/talkpost_do.tt.error.notafriend'
| ml( user => journal.user ) -%]
[%- END -%]
[%- END -%]
[%- UNLESS remote_opts.banned -%]
<input type='hidden' name='cookieuser' value='[% remote.user %]' id='cookieuser' />
[%- END -%]
</div>
[%- END -%]
[%# not-logged-in site user -%]
<div class="from-option" id="from-user-loggedout">
<input type='radio' name='usertype' value='user' data-more="from-user-more" id='talkpostfromlj'[% IF default_usertype == 'user' %] checked='checked'[% END %] />
<label for='talkpostfromlj'>
[% dw.img( 'id_user', '' ) %]
[% IF remote && ! remote.openid_identity %] Other [%- END %]
[% '.opt.siteuser' | ml( sitename => site.nameshort ) %]
</label>
[%- IF journal.screens_all -%]
[%- '.opt.willscreen' | ml -%]
[%- ELSIF journal.screens_non_access -%]
[%- '.opt.willscreenfriend' | ml -%]
[%- END -%]
</div>
[%# site user login form, always present but sometimes hidden -%]
<div class="from-login" id="from-user-more">
<div>
[%- form.textbox(
name = 'userpost'
id = 'username'
label = dw.ml('Username')
size = 13
maxlength = site.maxlength_user
value = comment.user
style = "background: url('${site.imgroot}/silk/identity/user.png') no-repeat; background-color: #fff; background-position: 0px 1px; padding-left: 18px; color: #00C; font-weight: bold;"
) -%]
</div>
<div>
[%- form.password(
name = 'password'
id= 'password'
label = dw.ml('Password')
maxlength = site.maxlength_pass
value = comment.password
size = 18
) -%]
</div>
<div>
[%- form.checkbox(
name = 'do_login'
id = 'logincheck'
label = dw.ml('.loginq')
selected = comment.do_login
) -%]
</div>
</div>
[%- IF ! create_link && ! remote -%]
<span style='font-size: 8pt; font-style: italic;'>
[%- '.noaccount' | ml( aopts => "href='${site.root}/create'") -%]
</span>
[%- END -%]
[%- END -%][%# figuring out whether it's an edit or new reply. -%]
</td>
</tr>
[%# Second row: Subject and metadata fields %]
<tr valign="top">
<td align="right">
[%- '.opt.subject' | ml -%]
</td>
<td>
[%- form.textbox(
name = 'subject'
id = 'subject'
size = 50
maxlength = 100
value = comment.subject
) -%]
[%- form.hidden(
id = 'subjectIconField'
name = 'subjecticon'
value = comment.subjecticon
) -%]
[%# The current subjecticon, as the button to open the menu. %]
[%- print_subjecticon_by_id(
comment.subjecticon,
"id='subjectIconImage' title='Click to change the subject icon' class='js-only' style='display: none;cursor:pointer;cursor:hand'"
) -%]
<blockquote style="display: none;" id="subjectIconList">
<div style='display: flex; flex-wrap: wrap; align-items: center; width: 390px; border: 1px solid #AAAAAA'> [%# aaaaaa indeed, my dude %]
[%- FOREACH id IN subjecticon_ids -%]
<div style="width: 32px;">
[%- print_subjecticon_by_id(
id,
"id='${id}' style='cursor: pointer; cursor: hand; margin-left: auto; margin-right: auto; display: block;'"
) -%]
</div>
[%- END -%]
</div>
</blockquote>
<div id='ljnohtmlsubj' class='ljdeem no-js'><span style='font-size: 8pt; font-style: italic;'>
[%- '.nosubjecthtml' | ml -%]
</span></div>
[%- IF remote AND remote.icon_keyword_menu.size > 0 -%]
<div id="userpics">
[%- '.label.picturetouse2' | ml %]
[% form.select(
name = 'prop_picture_keyword'
id = 'prop_picture_keyword'
selected = comment.current_icon_kw
items = remote.icon_keyword_menu
) -%]
[%- IF remote.can_use_userpic_select -%]
<input type="button" class="js-only" style="display: none;" id="lj_userpicselect" data-iconbrowser-keywordorder="[%- remote.iconbrowser_keywordorder -%]" data-iconbrowser-metatext="[%- remote.iconbrowser_metatext -%]" data-iconbrowser-smallicons="[%- remote.iconbrowser_smallicons -%]" value="Browse">
</input>
[%- END -%]
<input type='button' id='randomicon' class="js-only" style="display: none;" value='[%- '.userpic.random2' | ml -%]' />
</div>
[%- END -%]
<div id="misc_controls">
[%- form.select(
label = 'Formatting type'
labelclass = 'invisible'
name = 'prop_editor'
id = 'prop_editor'
selected = editors.selected
items = editors.items
) -%]
<a href="[% 'markup.helplink.url' | ml %]" tabindex="-1" target="_blank">[%-
dw.img('help', '',
{
alt => dw.ml('markup.helplink.alttext'),
title => dw.ml('markup.helplink.alttext'),
style => 'vertical-align: middle;'
}
)
-%]</a>
<input type="button" id="comment-text-quote" value="Quote" class="js-only" style="display: none;" data-quote-error="[%- 'talk.error.quickquote' | ml -%]" />
[%- IF remote_opts.can_manage_community -%]
[%- form.checkbox(
name = 'prop_admin_post'
id = 'prop_admin_post'
value = 1
selected = comment.admin_post
label = 'Admin Post'
) -%]
[%- END -%]
</div>
</td>
</tr>
[%# Third row: Message body text %]
<tr valign="top">
<td align="right">
[%- '.opt.message' | ml -%]
</td>
<td style='width: 90%'>
[%- form.textarea(
rows = 10
cols = 75
wrap = 'soft'
name = 'body'
id = 'commenttext'
value = comment.body
) -%]
[%- IF remote_opts.can_unscreen_parent -%]
<br />
[%- form.checkbox(
label = dw.ml('.opt.unscreenparent')
name = 'unscreen_parent'
id = 'unscreen_parent'
value = 1
selected = 0
) -%]
[%- END -%]
[%- IF captcha -%]
<br />
[%- captcha.html -%]
[%- form.hidden(
name = 'captcha_type'
value = captcha.type
) -%]
[%- END -%]
</td>
</tr>
[%# Fourth row: Edit reason field (optional) %]
[%- IF comment.editid -%]
<tr valign="top">
<td align="right">
[%- '.opt.editreason' | ml -%]
</td>
<td>
[%- form.textbox(
name = 'editreason'
id = 'editreason'
value = comment.editreason
size = 75
maxlength = 255
) -%]
<div id='nohtmledit' class='ljdeem no-js'><span style='font-size: 8pt; font-style: italic;'>[% '.noedithtml' | ml %]</span></div>
</td>
</tr>
[%- END -%]
[%# Final row: post button controls and info notices. (Previously subsumed into either row three or four.) %]
<tr valign="top">
<td align="right">&nbsp;</td>
<td>
[%- form.submit(
name = "submitpost"
value = comment.editid ? dw.ml('.opt.edit') : dw.ml('.opt.submit')
) -%]
&nbsp;
[%- form.submit(
name = "submitpreview"
value = dw.ml('talk.btn.preview')
id = "submitpview"
) -%]
[%- form.hidden(
name = "previewplaceholder"
id = "previewplaceholder"
value = 1
) -%]
[%- IF journal.is_iplogging -%]
<div class='de'>
[%- IF journal.is_iplogging == 'all' -%]
[% '.logyourip' | ml -%]
[%- ELSIF journal.is_iplogging == 'anon' -%]
[% '.loganonip' | ml -%]
[%- END -%]
</div>
[%- help_icon( 'iplogging' ) -%]
[%- END -%]
[%- IF journal.is_linkstripped -%]
<div class='de'>[%- '.linkstripped' | ml -%]</div>
[%- END %]
</td>
</tr>
</table>
</form>
[%- END -%][%# check for S2 foundation beta -%]