Initial redesigned UI for repo listings w/ stars.

This commit is contained in:
Jimmy Zelinskie 2014-12-11 15:06:30 -05:00
parent 97b605ca8d
commit 5a484cfe11
10 changed files with 308 additions and 103 deletions

View file

@ -107,6 +107,7 @@ class RepositoryList(ApiResource):
@query_param('sort', 'Whether to sort the results.', type=truthy_bool, default=False)
@query_param('count', 'Whether to include a count of the total number of results available.',
type=truthy_bool, default=False)
@query_param('starred', 'Whether or not to include starred repositories', type=truthy_bool, default=True)
def get(self, args):
"""Fetch the list of repositories under a variety of situations."""
username = None
@ -123,7 +124,7 @@ class RepositoryList(ApiResource):
repo_query = model.get_visible_repositories(username, limit=args['limit'], page=args['page'],
include_public=args['public'], sort=args['sort'],
namespace=args['namespace'])
namespace=args['namespace'], include_starred=args['starred'])
response['repositories'] = [repo_view(repo) for repo in repo_query
if (repo.visibility.name == 'public' or

View file

@ -4,6 +4,7 @@ import json
from flask import request
from flask.ext.login import logout_user
from flask.ext.principal import identity_changed, AnonymousIdentity
from peewee import IntegrityError
from app import app, billing as stripe, authentication, avatar
from endpoints.api import (ApiResource, nickname, resource, validate_json_request, request_error,
@ -713,10 +714,17 @@ class StarredRepositoryList(ApiResource):
namespace = req['namespace']
repository = req['repository']
repo = model.get_repository(namespace, repository)
if repo:
model.star_repository(user, repo)
log_action('star_repository', user.username, namespace,
{'repo': repository, 'namespace': namespace})
try:
model.star_repository(user, repo)
except IntegrityError:
pass
#TODO(jzelinskie): log this action
#log_action('star_repository', user.username, namespace,
# {'repo': repository, 'namespace': namespace})
return {
'namespace': namespace,
'repository': repository,
@ -732,10 +740,13 @@ class StarredRepository(RepositoryParamResource):
def delete(self, namespace, repository):
user = get_authenticated_user()
repo = model.get_repository(namespace, repository)
if repo:
model.unstar_repository(user, repo)
log_action('unstar_repository', user.username, namespace,
{'repo': repository, 'namespace': namespace})
#TODO(jzelinskie): log this action
#log_action('unstar_repository', user.username, namespace,
# {'repo': repository, 'namespace': namespace})
return 'Deleted', 204
raise NotFound()