* 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
* @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");
}
*
* @return boolean true
*/
-
function prepare($argarray)
{
parent::prepare($argarray);
$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);
}
*
* @return void
*/
-
function handle($argarray=null)
{
parent::handle($argarray);
/**
* Send a feed of the user's activities to the browser
- *
+ *
* Uses the UserActivityStream class; may take a long time!
*
* @return void
function sendFeed()
{
$cur = common_current_user();
-
+
$stream = new UserActivityStream($cur);
header('Content-Disposition: attachment; filename='.$cur->nickname.'.atom');
*
* @return void
*/
-
+
function showContent()
{
$form = new BackupAccountForm($this);
$form->show();
}
-
+
/**
* Return true if read only.
*
*
* @return boolean is read only action?
*/
-
function isReadOnly($args)
{
return false;
*
* @return string last modified http header
*/
-
function lastModified()
{
// For comparison with If-Last-Modified
*
* @return string etag http header
*/
-
function etag()
{
return null;
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
* @link http://status.net/
*/
-
class BackupAccountForm extends Form
{
/**
*
* @return string the form's class
*/
-
function formClass()
{
return 'form_profile_backup';
*
* @return string the form's action URL
*/
-
function action()
{
return common_local_url('backupaccount');
/**
* 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 '.
/**
* 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'));
}
}
* @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
* @link http://status.net/
*/
-
class DeleteuserAction extends ProfileFormAction
{
var $user = null;
*
* @return boolean success flag
*/
-
function prepare($args)
{
if (!parent::prepare($args)) {
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;
}
$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;
}
*
* @return void
*/
-
function handle($args)
{
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
}
function title() {
- return _('Delete user');
+ // TRANS: Title of delete user page.
+ return _m('TITLE','Delete user');
}
function showNoticeForm() {
'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.'));
'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'),
*
* @return void
*/
-
function handlePost()
{
if (Event::handle('StartDeleteUser', array($this, $this->user))) {
* @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;
*
* @return string page title
*/
-
function title()
{
// TRANS: Message used as title for design settings for the site.
*
* @return string instructions
*/
-
function getInstructions()
{
+ // TRANS: Instructions for design adminsitration panel.
return _('Design settings for this StatusNet site');
}
*
* @return void
*/
-
function showForm()
{
$this->design = Design::siteDesign();
*
* @return void
*/
-
function saveSettings()
{
if ($this->arg('save')) {
} else if ($this->arg('defaults')) {
$this->restoreDefaults();
} else {
+ // TRANS: Client error displayed when the submitted form contains unexpected data.
$this->clientError(_('Unexpected form submission.'));
}
}
*
* @return void
*/
-
function saveDesignSettings()
{
// Workaround for PHP returning empty $_POST and $_FILES when POST
}
/**
- * Restore the default design
- *
- * @return void
- */
-
+ * Restore the default design
+ *
+ * @return void
+ */
function restoreDefaults()
{
$this->deleteSetting('site', 'logo');
*
* @return string $filename the filename of the image
*/
-
function saveBackgroundImage()
{
$filename = null;
* @throws ClientException for invalid theme archives
* @throws ServerException if trouble saving the theme files
*/
-
function saveCustomTheme()
{
if (common_config('theme_upload', 'enabled') &&
*
* @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']));
}
}
*
* @return void
*/
-
function showStylesheets()
{
parent::showStylesheets();
*
* @return void
*/
-
function showScripts()
{
parent::showScripts();
*
* @return int ID of the form
*/
-
function id()
{
return 'form_design_admin_panel';
*
* @return string class of the form
*/
-
function formClass()
{
return 'form_settings';
*
* @return string the method to use for submitting
*/
-
function method()
{
$this->enctype = 'multipart/form-data';
*
* @return string URL of the action
*/
-
function action()
{
return common_local_url('designadminpanel');
*
* @return void
*/
-
function formData()
{
$this->showLogo();
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');
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');
$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();
}
$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',
'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();
$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');
$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',
$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',
$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',
$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',
$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',
{
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',
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',
+ // TRANS: Title for button for resetting theme settings.
'defaults', _('Restore default designs'));
$this->out->element('input', array('id' => 'settings_design_reset',
'type' => 'reset',
+ // TRANS: Button text for resetting theme settings.
'value' => 'Reset',
'class' => 'submit form_action-primary',
+ // TRANS: Title for button for resetting theme settings.
'title' => _('Reset back to default')));
- $this->out->submit('save', _('Save'), 'submit form_action-secondary',
- 'save', _('Save design'));
+ $this->out->submit('save',
+ // TRANS: Button text for saving theme settings.
+ _m('BUTTON','Save'),
+ 'submit form_action-secondary',
+ 'save',
+ // TRANS: Title for button for saving theme settings.
+ _('Save design'));
}
-
}