We are no longer offering accounts on this server. Consider https://gitlab.freedesktop.org/ as a place to host projects.

Commit 621a7cb3 authored by Brion Vibber's avatar Brion Vibber

Merge branch '0.9.x' into testing

parents e35d46b4 4642b024
......@@ -217,7 +217,7 @@ class AtompubmembershipfeedAction extends ApiAuthAction
$this->auth_user->id != $this->_profile->id) {
// TRANS: Client exception thrown when trying subscribe someone else to a group.
throw new ClientException(_("Cannot add someone else's".
" membership"), 403);
" membership."), 403);
}
$xml = file_get_contents('php://input');
......
......@@ -149,7 +149,7 @@ class AtompubshowfavoriteAction extends ApiAuthAction
$this->auth_user->id != $this->_profile->id) {
// TRANS: Client exception thrown when trying to remove a favorite notice of another user.
throw new ClientException(_("Cannot delete someone else's".
" favorite"), 403);
" favorite."), 403);
}
$this->_fave->delete();
......
......@@ -78,7 +78,7 @@ class AtompubshowmembershipAction extends ApiAuthAction
if (empty($this->_group)) {
// TRANS: Client exception thrown when referencing a non-existing group.
throw new ClientException(_('No such group'), 404);
throw new ClientException(_('No such group.'), 404);
}
$kv = array('group_id' => $groupId,
......@@ -88,7 +88,7 @@ class AtompubshowmembershipAction extends ApiAuthAction
if (empty($this->_membership)) {
// TRANS: Client exception thrown when trying to show membership of a non-subscribed group
throw new ClientException(_('Not a member'), 404);
throw new ClientException(_('Not a member.'), 404);
}
return true;
......@@ -113,7 +113,7 @@ class AtompubshowmembershipAction extends ApiAuthAction
break;
default:
// TRANS: Client exception thrown when using an unsupported HTTP method.
throw new ClientException(_('HTTP method not supported'), 405);
throw new ClientException(_('HTTP method not supported.'), 405);
break;
}
return;
......@@ -149,7 +149,7 @@ class AtompubshowmembershipAction extends ApiAuthAction
$this->auth_user->id != $this->_profile->id) {
// TRANS: Client exception thrown when deleting someone else's membership.
throw new ClientException(_("Cannot delete someone else's".
" membership"), 403);
" membership."), 403);
}
if (Event::handle('StartLeaveGroup', array($this->_group, $this->auth_user))) {
......
......@@ -4,7 +4,7 @@
* Copyright (C) 2010, StatusNet, Inc.
*
* Download a backup of your own account to the browser
*
*
* PHP version 5
*
* This program is free software: you can redistribute it and/or modify
......@@ -48,17 +48,16 @@ if (!defined('STATUSNET')) {
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
* @link http://status.net/
*/
class BackupaccountAction extends Action
{
/**
* Returns the title of the page
*
*
* @return string page title
*/
function title()
{
// TRANS: Title for backup account page.
return _("Backup account");
}
......@@ -69,7 +68,6 @@ class BackupaccountAction extends Action
*
* @return boolean true
*/
function prepare($argarray)
{
parent::prepare($argarray);
......@@ -77,10 +75,12 @@ class BackupaccountAction extends Action
$cur = common_current_user();
if (empty($cur)) {
// TRANS: Client exception thrown when trying to backup an account while not logged in.
throw new ClientException(_('Only logged-in users can backup their account.'), 403);
}
if (!$cur->hasRight(Right::BACKUPACCOUNT)) {
// TRANS: Client exception thrown when trying to backup an account without having backup rights.
throw new ClientException(_('You may not backup your account.'), 403);
}
......@@ -94,7 +94,6 @@ class BackupaccountAction extends Action
*
* @return void
*/
function handle($argarray=null)
{
parent::handle($argarray);
......@@ -109,7 +108,7 @@ class BackupaccountAction extends Action
/**
* Send a feed of the user's activities to the browser
*
*
* Uses the UserActivityStream class; may take a long time!
*
* @return void
......@@ -118,7 +117,7 @@ class BackupaccountAction extends Action
function sendFeed()
{
$cur = common_current_user();
$stream = new UserActivityStream($cur);
header('Content-Disposition: attachment; filename='.$cur->nickname.'.atom');
......@@ -132,13 +131,13 @@ class BackupaccountAction extends Action
*
* @return void
*/
function showContent()
{
$form = new BackupAccountForm($this);
$form->show();
}
/**
* Return true if read only.
*
......@@ -148,7 +147,6 @@ class BackupaccountAction extends Action
*
* @return boolean is read only action?
*/
function isReadOnly($args)
{
return false;
......@@ -161,7 +159,6 @@ class BackupaccountAction extends Action
*
* @return string last modified http header
*/
function lastModified()
{
// For comparison with If-Last-Modified
......@@ -176,7 +173,6 @@ class BackupaccountAction extends Action
*
* @return string etag http header
*/
function etag()
{
return null;
......@@ -193,7 +189,6 @@ class BackupaccountAction extends Action
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
* @link http://status.net/
*/
class BackupAccountForm extends Form
{
/**
......@@ -201,7 +196,6 @@ class BackupAccountForm extends Form
*
* @return string the form's class
*/
function formClass()
{
return 'form_profile_backup';
......@@ -212,7 +206,6 @@ class BackupAccountForm extends Form
*
* @return string the form's action URL
*/
function action()
{
return common_local_url('backupaccount');
......@@ -220,18 +213,18 @@ class BackupAccountForm extends Form
/**
* Output form data
*
*
* Really, just instructions for doing a backup.
*
* @return void
*/
function formData()
{
$msg =
// TRANS: Information displayed on the backup account page.
_('You can backup your account data in '.
'<a href="http://activitystrea.ms/">Activity Streams</a> '.
'format. This is an experimental feature and provides an '.
'format. This is an experimental feature and provides an '.
'incomplete backup; private account '.
'information like email and IM addresses is not backed up. '.
'Additionally, uploaded files and direct messages are not '.
......@@ -243,18 +236,19 @@ class BackupAccountForm extends Form
/**
* Buttons for the form
*
*
* In this case, a single submit button
*
* @return void
*/
function formActions()
{
$this->out->submit('submit',
// TRANS: Submit button to backup an account on the backup account page.
_m('BUTTON', 'Backup'),
'submit',
null,
// TRANS: Title for submit button to backup an account on the backup account page.
_('Backup your account'));
}
}
......@@ -40,7 +40,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) {
* @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
* @link http://status.net/
*/
class DeleteuserAction extends ProfileFormAction
{
var $user = null;
......@@ -52,7 +51,6 @@ class DeleteuserAction extends ProfileFormAction
*
* @return boolean success flag
*/
function prepare($args)
{
if (!parent::prepare($args)) {
......@@ -64,6 +62,7 @@ class DeleteuserAction extends ProfileFormAction
assert(!empty($cur)); // checked by parent
if (!$cur->hasRight(Right::DELETEUSER)) {
// TRANS: Client error displayed when trying to delete a user without having the right to delete users.
$this->clientError(_('You cannot delete users.'));
return false;
}
......@@ -71,6 +70,7 @@ class DeleteuserAction extends ProfileFormAction
$this->user = User::staticGet('id', $this->profile->id);
if (empty($this->user)) {
// TRANS: Client error displayed when trying to delete a non-local user.
$this->clientError(_('You can only delete local users.'));
return false;
}
......@@ -87,7 +87,6 @@ class DeleteuserAction extends ProfileFormAction
*
* @return void
*/
function handle($args)
{
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
......@@ -107,7 +106,8 @@ class DeleteuserAction extends ProfileFormAction
}
function title() {
return _('Delete user');
// TRANS: Title of delete user page.
return _m('TITLE','Delete user');
}
function showNoticeForm() {
......@@ -130,9 +130,11 @@ class DeleteuserAction extends ProfileFormAction
'action' => common_local_url('deleteuser')));
$this->elementStart('fieldset');
$this->hidden('token', common_session_token());
// TRANS: Fieldset legend on delete user page.
$this->element('legend', _('Delete user'));
if (Event::handle('StartDeleteUserForm', array($this, $this->user))) {
$this->element('p', null,
// TRANS: Information text to request if a user is certain that the described action has to be performed.
_('Are you sure you want to delete this user? '.
'This will clear all data about the user from the '.
'database, without a backup.'));
......@@ -153,7 +155,7 @@ class DeleteuserAction extends ProfileFormAction
'submit form_action-primary',
'no',
// TRANS: Submit button title for 'No' when deleting a user.
_('Do not block this user'));
_('Do not delete this user'));
$this->submit('form_action-yes',
// TRANS: Button label on the delete user form.
_m('BUTTON','Yes'),
......@@ -170,7 +172,6 @@ class DeleteuserAction extends ProfileFormAction
*
* @return void
*/
function handlePost()
{
if (Event::handle('StartDeleteUser', array($this, $this->user))) {
......
......@@ -44,10 +44,8 @@ if (!defined('STATUSNET')) {
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
class DesignadminpanelAction extends AdminPanelAction
{
/* The default site design */
var $design = null;
......@@ -56,7 +54,6 @@ class DesignadminpanelAction extends AdminPanelAction
*
* @return string page title
*/
function title()
{
// TRANS: Message used as title for design settings for the site.
......@@ -68,9 +65,9 @@ class DesignadminpanelAction extends AdminPanelAction
*
* @return string instructions
*/
function getInstructions()
{
// TRANS: Instructions for design adminsitration panel.
return _('Design settings for this StatusNet site');
}
......@@ -79,7 +76,6 @@ class DesignadminpanelAction extends AdminPanelAction
*
* @return void
*/
function showForm()
{
$this->design = Design::siteDesign();
......@@ -93,7 +89,6 @@ class DesignadminpanelAction extends AdminPanelAction
*
* @return void
*/
function saveSettings()
{
if ($this->arg('save')) {
......@@ -101,6 +96,7 @@ class DesignadminpanelAction extends AdminPanelAction
} else if ($this->arg('defaults')) {
$this->restoreDefaults();
} else {
// TRANS: Client error displayed when the submitted form contains unexpected data.
$this->clientError(_('Unexpected form submission.'));
}
}
......@@ -110,7 +106,6 @@ class DesignadminpanelAction extends AdminPanelAction
*
* @return void
*/
function saveDesignSettings()
{
// Workaround for PHP returning empty $_POST and $_FILES when POST
......@@ -225,11 +220,10 @@ class DesignadminpanelAction extends AdminPanelAction
}
/**
* Restore the default design
*
* @return void
*/
* Restore the default design
*
* @return void
*/
function restoreDefaults()
{
$this->deleteSetting('site', 'logo');
......@@ -257,7 +251,6 @@ class DesignadminpanelAction extends AdminPanelAction
*
* @return string $filename the filename of the image
*/
function saveBackgroundImage()
{
$filename = null;
......@@ -302,7 +295,6 @@ class DesignadminpanelAction extends AdminPanelAction
* @throws ClientException for invalid theme archives
* @throws ServerException if trouble saving the theme files
*/
function saveCustomTheme()
{
if (common_config('theme_upload', 'enabled') &&
......@@ -327,20 +319,23 @@ class DesignadminpanelAction extends AdminPanelAction
*
* @return void
*/
function validate(&$values)
{
if (!empty($values['logo']) &&
!Validate::uri($values['logo'], array('allowed_schemes' => array('http', 'https')))) {
// TRANS: Client error displayed when a logo URL does is not valid.
$this->clientError(_('Invalid logo URL.'));
}
if (!empty($values['ssllogo']) &&
!Validate::uri($values['ssllogo'], array('allowed_schemes' => array('https')))) {
// TRANS: Client error displayed when an SSL logo URL is invalid.
$this->clientError(_('Invalid SSL logo URL.'));
}
if (!in_array($values['theme'], Theme::listAvailable())) {
// TRANS: Client error displayed when a theme is submitted through the form that is not in the theme list.
// TRANS: %s is the chosen unavailable theme.
$this->clientError(sprintf(_("Theme not available: %s."), $values['theme']));
}
}
......@@ -350,7 +345,6 @@ class DesignadminpanelAction extends AdminPanelAction
*
* @return void
*/
function showStylesheets()
{
parent::showStylesheets();
......@@ -362,7 +356,6 @@ class DesignadminpanelAction extends AdminPanelAction
*
* @return void
*/
function showScripts()
{
parent::showScripts();
......@@ -383,7 +376,6 @@ class DesignAdminPanelForm extends AdminForm
*
* @return int ID of the form
*/
function id()
{
return 'form_design_admin_panel';
......@@ -394,7 +386,6 @@ class DesignAdminPanelForm extends AdminForm
*
* @return string class of the form
*/
function formClass()
{
return 'form_settings';
......@@ -408,7 +399,6 @@ class DesignAdminPanelForm extends AdminForm
*
* @return string the method to use for submitting
*/
function method()
{
$this->enctype = 'multipart/form-data';
......@@ -421,7 +411,6 @@ class DesignAdminPanelForm extends AdminForm
*
* @return string URL of the action
*/
function action()
{
return common_local_url('designadminpanel');
......@@ -432,7 +421,6 @@ class DesignAdminPanelForm extends AdminForm
*
* @return void
*/
function formData()
{
$this->showLogo();
......@@ -445,16 +433,25 @@ class DesignAdminPanelForm extends AdminForm
function showLogo()
{
$this->out->elementStart('fieldset', array('id' => 'settings_design_logo'));
// TRANS: Fieldset legend for form to change logo.
$this->out->element('legend', null, _('Change logo'));
$this->out->elementStart('ul', 'form_data');
$this->li();
$this->input('logo', _('Site logo'), 'Logo for the site (full URL)');
$this->input('logo',
// TRANS: Field label for StatusNet site logo.
_('Site logo'),
// TRANS: Title for field label for StatusNet site logo.
'Logo for the site (full URL)');
$this->unli();
$this->li();
$this->input('ssllogo', _('SSL logo'), 'Logo to show on SSL pages');
$this->input('ssllogo',
// TRANS: Field label for SSL StatusNet site logo.
_('SSL logo'),
// TRANS: Title for field label for SSL StatusNet site logo.
'Logo to show on SSL pages');
$this->unli();
$this->out->elementEnd('ul');
......@@ -466,6 +463,7 @@ class DesignAdminPanelForm extends AdminForm
function showTheme()
{
$this->out->elementStart('fieldset', array('id' => 'settings_design_theme'));
// TRANS: Fieldset legend for form change StatusNet site's theme.
$this->out->element('legend', null, _('Change theme'));
$this->out->elementStart('ul', 'form_data');
......@@ -483,17 +481,21 @@ class DesignAdminPanelForm extends AdminForm
$themes = array_combine($themes, $themes);
$this->li();
// TRANS: Field label for dropdown to choose site theme.
$this->out->dropdown('theme', _('Site theme'),
// TRANS: Title for field label for dropdown to choose site theme.
$themes, _('Theme for the site.'),
false, $this->value('theme'));
$this->unli();
if (common_config('theme_upload', 'enabled')) {
$this->li();
// TRANS: Field label for uploading a cutom theme.
$this->out->element('label', array('for' => 'design_upload_theme'), _('Custom theme'));
$this->out->element('input', array('id' => 'design_upload_theme',
'name' => 'design_upload_theme',
'type' => 'file'));
// TRANS: Form instructions for uploading a cutom StatusNet theme.
$this->out->element('p', 'form_guide', _('You can upload a custom StatusNet theme as a .ZIP archive.'));
$this->unli();
}
......@@ -509,16 +511,19 @@ class DesignAdminPanelForm extends AdminForm
$this->out->elementStart('fieldset', array('id' =>
'settings_design_background-image'));
// TRANS: Fieldset legend for theme background image.
$this->out->element('legend', null, _('Change background image'));
$this->out->elementStart('ul', 'form_data');
$this->li();
$this->out->element('label', array('for' => 'design_background-image_file'),
// TRANS: Field label for background image on theme designer page.
_('Background'));
$this->out->element('input', array('name' => 'design_background-image_file',
'type' => 'file',
'id' => 'design_background-image_file'));
$this->out->element('p', 'form_guide',
// TRANS: Form guide for background image upload form on theme designer page.
sprintf(_('You can upload a background image for the site. ' .
'The maximum file size is %1$s.'), ImageFile::maxFileSize()));
$this->out->element('input', array('name' => 'MAX_FILE_SIZE',
......@@ -568,11 +573,13 @@ class DesignAdminPanelForm extends AdminForm
'class' => 'radio'),
// TRANS: Used as radio button label to not add a background image.
_('Off'));
// TRANS: Form guide for turning background image on or off on theme designer page.
$this->out->element('p', 'form_guide', _('Turn background image on or off.'));
$this->unli();
$this->li();
$this->out->checkbox('design_background-image_repeat',
// TRANS: Checkbox label to title background image on theme designer page.
_('Tile background image'),
($design->disposition & BACKGROUND_TILE) ? true : false);
$this->unli();
......@@ -587,7 +594,8 @@ class DesignAdminPanelForm extends AdminForm
$design = $this->out->design;
$this->out->elementStart('fieldset', array('id' => 'settings_design_color'));
$this->out->element('legend', null, _('Change colours'));
// TRANS: Fieldset legend for theme colors.
$this->out->element('legend', null, _('Change colors'));
$this->out->elementStart('ul', 'form_data');
......@@ -597,6 +605,7 @@ class DesignAdminPanelForm extends AdminForm
$bgcolor = new WebColor($design->backgroundcolor);
$this->li();
// TRANS: Field label for background color selector.
$this->out->element('label', array('for' => 'swatch-1'), _('Background'));
$this->out->element('input', array('name' => 'design_background',
'type' => 'text',
......@@ -610,6 +619,7 @@ class DesignAdminPanelForm extends AdminForm
$ccolor = new WebColor($design->contentcolor);
$this->li();
// TRANS: Field label for content color selector.
$this->out->element('label', array('for' => 'swatch-2'), _('Content'));
$this->out->element('input', array('name' => 'design_content',
'type' => 'text',
......@@ -623,6 +633,7 @@ class DesignAdminPanelForm extends AdminForm
$sbcolor = new WebColor($design->sidebarcolor);
$this->li();
// TRANS: Field label for sidebar color selector.
$this->out->element('label', array('for' => 'swatch-3'), _('Sidebar'));
$this->out->element('input', array('name' => 'design_sidebar',
'type' => 'text',
......@@ -636,6 +647,7 @@ class DesignAdminPanelForm extends AdminForm
$tcolor = new WebColor($design->textcolor);
$this->li();
// TRANS: Field label for text color selector.
$this->out->element('label', array('for' => 'swatch-4'), _('Text'));
$this->out->element('input', array('name' => 'design_text',
'type' => 'text',
......@@ -649,6 +661,7 @@ class DesignAdminPanelForm extends AdminForm
$lcolor = new WebColor($design->linkcolor);
$this->li();
// TRANS: Field label for link color selector.
$this->out->element('label', array('for' => 'swatch-5'), _('Links'));
$this->out->element('input', array('name' => 'design_links',
'type' => 'text',
......@@ -674,10 +687,12 @@ class DesignAdminPanelForm extends AdminForm
{
if (common_config('custom_css', 'enabled')) {
$this->out->elementStart('fieldset', array('id' => 'settings_design_advanced'));
// TRANS: Fieldset legend for advanced theme design settings.
$this->out->element('legend', null, _('Advanced'));
$this->out->elementStart('ul', 'form_data');
$this->li();
// TRANS: Field label for custom CSS.
$this->out->element('label', array('for' => 'css'), _('Custom CSS'));
$this->out->element('textarea', array('name' => 'css',
'id' => 'css',
......@@ -699,17 +714,25 @@ class DesignAdminPanelForm extends AdminForm
function formActions()
{
$this->out->submit('defaults', _('Use defaults'), 'submit form_action-default',
// TRANS: Button text for resetting theme settings.
$this->out->submit('defaults', _m('BUTTON','Use defaults'), 'submit form_action-default',