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

Commit 5d56d9bb authored by Evan Prodromou's avatar Evan Prodromou

UI on profile settings page to opt out of following everyone

parent 7a80ebeb
......@@ -150,6 +150,47 @@ class FollowEveryonePlugin extends Plugin
}
}
/**
* Show a checkbox on the profile form to ask whether to follow everyone
*
* @param Action $action The action being executed
*
* @return boolean hook value
*/
function onEndProfileFormData($action)
{
$user = common_current_user();
$action->elementStart('li');
// TRANS: Checkbox label in form for profile settings.
$action->checkbox('followeveryone', _('Follow everyone'),
($action->arg('followeveryone')) ?
$action->arg('followeveryone') :
User_followeveryone_prefs::followEveryone($user->id));
$action->elementEnd('li');
return true;
}
/**
* Save checkbox value for following everyone
*
* @param Action $action The action being executed
*
* @return boolean hook value
*/
function onEndProfileSaveForm($action)
{
$user = common_current_user();
User_followeveryone_prefs::savePref($user->id,
$action->boolean('followeveryone'));
return true;
}
/**
* Provide version information about this plugin.
*
......
......@@ -145,4 +145,22 @@ class User_followeveryone_prefs extends Memcached_DataObject
return (bool)$ufep->followeveryone;
}
}
static function savePref($user_id, $followEveryone)
{
$ufep = self::staticGet('user_id', $user_id);
if (empty($ufep)) {
$ufep = new User_followeveryone_prefs();
$ufep->user_id = $user_id;
$ufep->followeveryone = $followEveryone;
$ufep->insert();
} else {
$orig = clone($ufep);
$ufep->followeveryone = $followEveryone;
$ufep->update();
}
return true;
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment