Web UI for notices correctly shows and checks max content length

This commit is contained in:
Evan Prodromou 2009-08-21 08:13:17 -04:00
parent d5825893c8
commit 3eeb9deffb
2 changed files with 22 additions and 13 deletions

View File

@ -162,9 +162,10 @@ class NewnoticeAction extends Action
$this->clientError(_('No content!'));
} else {
$content_shortened = common_shorten_links($content);
if (mb_strlen($content_shortened) > 140) {
$this->clientError(_('That\'s too long. '.
'Max notice size is 140 chars.'));
if (Notice::contentTooLong($content_shortened)) {
$this->clientError(sprintf(_('That\'s too long. '.
'Max notice size is %d chars.'),
Notice::maxContent()));
}
}
@ -241,9 +242,10 @@ class NewnoticeAction extends Action
$short_fileurl = common_shorten_url($fileurl);
$content_shortened .= ' ' . $short_fileurl;
if (mb_strlen($content_shortened) > 140) {
if (Notice::contentTooLong($content_shortened)) {
$this->deleteFile($filename);
$this->clientError(_('Max notice size is 140 chars, including attachment URL.'));
$this->clientError(sprintf(_('Max notice size is %d chars, including attachment URL.'),
Notice::maxContent()));
}
// Also, not sure this is necessary -- Zach

View File

@ -83,7 +83,7 @@ class NoticeForm extends Form
$this->action = $action;
$this->content = $content;
if ($user) {
$this->user = $user;
} else {
@ -117,7 +117,6 @@ class NoticeForm extends Form
return common_local_url('newnotice');
}
/**
* Legend of the Form
*
@ -128,7 +127,6 @@ class NoticeForm extends Form
$this->out->element('legend', null, _('Send a notice'));
}
/**
* Data elements
*
@ -145,11 +143,20 @@ class NoticeForm extends Form
'rows' => 4,
'name' => 'status_textarea'),
($this->content) ? $this->content : '');
$this->out->elementStart('dl', 'form_note');
$this->out->element('dt', null, _('Available characters'));
$this->out->element('dd', array('id' => 'notice_text-count'),
'140');
$this->out->elementEnd('dl');
$contentLimit = Notice::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'),
$contentLimit);
$this->out->elementEnd('dl');
}
if (common_config('attachments', 'uploads')) {
$this->out->element('label', array('for' => 'notice_data-attach'),_('Attach'));
$this->out->element('input', array('id' => 'notice_data-attach',