* @package StatusNet
* @author Craig Andrews <candrews@integralblue.com>
* @copyright 2008-2009 StatusNet, Inc.
+ * @copyright 2009 Free Software Foundation, Inc http://www.fsf.org
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
-
class AutocompleteAction extends Action
{
private $result;
{
$max=0;
foreach($this->users as $user){
- $max = max($max,strtotime($user->modified),strtotime($user->profile->modified));
+ $max = max($max,strtotime($user->modified),strtotime($user->getProfile()->modified));
}
foreach($this->groups as $group){
$max = max($max,strtotime($group->modified));
function etag()
{
return '"' . implode(':', array($this->arg('action'),
+ common_user_cache_hash(),
crc32($this->arg('q')), //the actual string can have funny characters in we don't want showing up in the etag
$this->arg('limit'),
$this->lastModified())) . '"';
function prepare($args)
{
+ // If we die, show short error messages.
+ StatusNet::setApi(true);
+
parent::prepare($args);
+
+ $cur = common_current_user();
+ if (!$cur) {
+ throw new ClientException('Access forbidden', true);
+ }
$this->groups=array();
$this->users=array();
$q = $this->arg('q');
$results = array();
foreach($this->users as $user){
$profile = $user->getProfile();
- $results[]=array('nickname' => $user->nickname, 'fullname'=> $profile->fullname, 'type'=>'user');
+ $avatar = $profile->getAvatar(AVATAR_MINI_SIZE);
+ // sigh.... encapsulate this upstream!
+ if ($avatar) {
+ $avatar = $avatar->displayUrl();
+ } else {
+ $avatar = Avatar::defaultImage(AVATAR_MINI_SIZE);
+ }
+ $results[] = array(
+ 'nickname' => $user->nickname,
+ 'fullname'=> $profile->fullname,
+ 'avatar' => $avatar,
+ 'type' => 'user'
+ );
}
foreach($this->groups as $group){
- $results[]=array('nickname' => $group->nickname, 'fullname'=> $group->fullname, 'type'=>'group');
+ // sigh.... encapsulate this upstream!
+ if ($group->mini_logo) {
+ $avatar = $group->mini_logo;
+ } else {
+ $avatar = User_group::defaultLogo(AVATAR_MINI_SIZE);
+ }
+ $results[] = array(
+ 'nickname' => $group->nickname,
+ 'fullname'=> $group->fullname,
+ 'avatar' => $avatar,
+ 'type' => 'group');
}
foreach($results as $result) {
print json_encode($result) . "\n";
}
}
+
+ /**
+ * Is this action read-only?
+ *
+ * @param array $args other arguments
+ *
+ * @return boolean is read only action?
+ */
+ function isReadOnly($args)
+ {
+ return true;
+ }
}