*
* @see HTMLOutputter
*/
-
class MessageForm extends Form
{
/**
* User to send a direct message to
*/
-
var $to = null;
/**
* Pre-filled content of the form
*/
-
var $content = null;
/**
* @param User $to user to send a message to
* @param string $content content to pre-fill
*/
-
function __construct($out=null, $to=null, $content=null)
{
parent::__construct($out);
/**
* ID of the form
*
- * @return int ID of the form
+ * @return string ID of the form
*/
-
function id()
{
- return 'form_notice';
+ return 'form_notice-direct';
+ }
+
+ /**
+ * Class of the form
+ *
+ * @return string class of the form
+ */
+ function formClass()
+ {
+ return 'form_notice ajax-notice';
}
/**
*
* @return string URL of the action
*/
-
function action()
{
return common_local_url('newmessage');
*/
function formLegend()
{
+ // TRANS: Form legend for direct notice.
$this->out->element('legend', null, _('Send a direct notice'));
}
*
* @return void
*/
-
function formData()
{
$user = common_current_user();
$mutual_users = $user->mutuallySubscribedUsers();
$mutual = array();
+ // TRANS: Label entry in drop-down selection box in direct-message inbox/outbox.
+ // TRANS: This is the default entry in the drop-down box, doubling as instructions
+ // TRANS: and a brake against accidental submissions with the first user in the list.
+ $mutual[0] = _('Select recipient:');
while ($mutual_users->fetch()) {
if ($mutual_users->id != $user->id) {
$mutual_users->free();
unset($mutual_users);
+ if (count($mutual) == 1) {
+ // TRANS Entry in drop-down selection box in direct-message inbox/outbox when no one is available to message.
+ $mutual[0] = _('No mutual subscribers.');
+ }
+
+ // TRANS: Dropdown label in direct notice form.
$this->out->dropdown('to', _('To'), $mutual, null, false,
($this->to) ? $this->to->id : null);
- $this->out->element('textarea', array('id' => 'notice_data-text',
+ $this->out->element('textarea', array('class' => 'notice_data-text',
'cols' => 35,
'rows' => 4,
'name' => 'content'),
$contentLimit = Message::maxContent();
- $this->out->element('script', array('type' => 'text/javascript'),
- 'maxLength = ' . $contentLimit . ';');
-
if ($contentLimit > 0) {
- $this->out->elementStart('dl', 'form_note');
- $this->out->element('dt', null, _('Available characters'));
- $this->out->element('dd', array('id' => 'notice_text-count'),
+ $this->out->element('span',
+ array('class' => 'count'),
$contentLimit);
- $this->out->elementEnd('dl');
}
}
*
* @return void
*/
-
function formActions()
{
$this->out->element('input', array('id' => 'notice_action-submit',
'class' => 'submit',
'name' => 'message_send',
'type' => 'submit',
- 'value' => _('Send')));
+ // TRANS: Button text for sending a direct notice.
+ 'value' => _m('Send button for sending notice', 'Send')));
+ }
+
+
+ /**
+ * Show the form
+ *
+ * Uses a recipe to output the form.
+ *
+ * @return void
+ * @see Widget::show()
+ */
+
+ function show()
+ {
+ $this->elementStart('div', 'input_forms');
+ $this->elementStart(
+ 'div',
+ array(
+ 'id' => 'input_form_direct',
+ 'class' => 'input_form current nonav'
+ )
+ );
+
+ parent::show();
+
+ $this->elementEnd('div');
+ $this->elementEnd('div');
+
}
}