diff --git a/progit/static/placebo.png b/progit/static/placebo.png new file mode 100644 index 0000000..6a4cfa2 Binary files /dev/null and b/progit/static/placebo.png differ diff --git a/progit/static/progit.css b/progit/static/progit.css index 8eafa69..459acc6 100644 --- a/progit/static/progit.css +++ b/progit/static/progit.css @@ -127,7 +127,13 @@ header h1 span { /*width: 15em;*/ } -.project_link img, .project_link span { +.project_link { + background-repeat: no-repeat; + background-position: 5px 50%; + padding-left: 85px; +} + +.project_link span { display: block; } diff --git a/progit/templates/index.html b/progit/templates/index.html index d3d9a22..c25d975 100644 --- a/progit/templates/index.html +++ b/progit/templates/index.html @@ -5,56 +5,70 @@ {% macro render_row(items) -%} - {% for row in items %} + {% for repo in items %} + {% if loop.index is divisibleby(3) %}
- {% for repo in row %} - - - {{ repo.name }} - {% if repo.description %} - {{ repo.description | wraps(20) }} - {% endif %} - - {% endfor %} + {% endif %} + + {# TODO: get project logo #} + {{ repo.name }} + {% if repo.description %} + {{ repo.description | wraps(20) }} + {% endif %} + + {% if loop.index is divisibleby(3) %}
+ {% endif %} {% else %}

No project found

{% endfor %} {%- endmacro %} -{% block content %} - -

Projects

- -{% if total_page and total_page > 1 %} - - - - - - -
- {% if page > 1%} - - < Previous - - {% else %} - < Previous +{% macro render_repos(list, total, page) %} +
+ {% if total and total > 1 %} + + + + + + +
+ {% if page > 1%} + + < Previous + + {% else %} + < Previous + {% endif %} + {{ page }} / {{ total }} + {% if page < total %} + + Next > + + {% else %} + Next > + {% endif %} +
{% endif %} -
{{ page }} / {{ total_page }} - {% if page < total_page %} - - Next > - - {% else %} - Next > - {% endif %} -
-{% endif %} -
- {{ render_row(repos) }} -
+ {{ render_row(list) }} + +{% endmacro %} + +{% block content %} + {% if username %} +

{{ username | avatar(36) | safe }} {{ username }}

+ +

Projects

+ {{ render_repos(user_repos, total_page_repos, repopage) }} +

Forks

+ {{ render_repos(user_forks, total_page_forks, forkpage) }} + {% else %} +

Projects

+ {{ render_repos(repos, total_page, page) }} + {% endif %} {% endblock %} diff --git a/progit/ui/app.py b/progit/ui/app.py index 5f1b05e..97c03a9 100644 --- a/progit/ui/app.py +++ b/progit/ui/app.py @@ -19,7 +19,6 @@ from pygments.lexers import guess_lexer from pygments.lexers.text import DiffLexer from pygments.formatters import HtmlFormatter - import progit.exceptions import progit.lib import progit.forms @@ -63,11 +62,85 @@ def index(): total_page = int(ceil(num_repos / float(limit))) + repopage = None + forkpage = None + user_repos = None + user_forks = None + total_page_repos = None + total_page_forks = None + repos_obj = None + forks_obj = None + username = None + + if flask.g.fas_user: + username = flask.g.fas_user.username + + repopage = flask.request.args.get('repopage', 1) + try: + repopage = int(repopage) + except ValueError: + repopage = 1 + + forkpage = flask.request.args.get('forkpage', 1) + try: + forkpage = int(forkpage) + except ValueError: + forkpage = 1 + + repo_start = limit * (repopage - 1) + fork_start = limit * (forkpage - 1) + + user_repos = progit.lib.list_projects( + SESSION, + username=username, + fork=False, + start=repo_start, + limit=limit) + user_repos_length = progit.lib.list_projects( + SESSION, + username=username, + fork=False, + count=True) + + user_forks = progit.lib.list_projects( + SESSION, + username=username, + fork=True, + start=fork_start, + limit=limit) + user_forks_length = progit.lib.list_projects( + SESSION, + username=username, + fork=True, + count=True) + + total_page_repos = int(ceil(user_repos_length / float(limit))) + total_page_forks = int(ceil(user_forks_length / float(limit))) + + #repos_obj = [ + # pygit2.Repository( + # os.path.join(APP.config['GIT_FOLDER'], repo.path)) + # for repo in user_repos] + + #forks_obj = [ + # pygit2.Repository( + # os.path.join(APP.config['FORK_FOLDER'], repo.path)) + # for repo in user_forks] + return flask.render_template( 'index.html', - repos=chunks(repos, 3), + repos=repos, total_page=total_page, page=page, + username=username, + repopage=repopage, + forkpage=forkpage, + user_repos=user_repos, + user_forks=user_forks, + total_page_repos=total_page_repos, + total_page_forks=total_page_forks, + repos_obj=repos_obj, + forks_obj=forks_obj, )