Mercurial > kallithea
changeset 8241:173612a900ef
ui: show toggleable "Follow" status in repo groups' repo list
It makes sense to show Follow status next to repo names in the repo list, and
it is a meaningful and efficient bulk operation to toggle Follow status there.
Clicking on the (Un)Follow 'heart' will toggle the caller's follow status for
that repo.
The repo model already has layering violations - expand on them to compute the
follow status of the current user.
(Changeset was cherry picked and modified by Mads Kiilerich.)
author | Ross Thomas <ross@lns-nevasoft.com> |
---|---|
date | Wed, 12 Feb 2020 14:37:15 +0100 |
parents | 51af7c12ffb1 |
children | 894a662b12b3 |
files | kallithea/model/repo.py kallithea/templates/data_table/_dt_elements.html kallithea/templates/index_base.html |
diffstat | 3 files changed, 16 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/kallithea/model/repo.py Tue Feb 11 05:17:03 2020 +0100 +++ b/kallithea/model/repo.py Wed Feb 12 14:37:15 2020 +0100 @@ -138,12 +138,16 @@ admin: return data for action column. """ _render = self._render_datatable - from tg import tmpl_context as c + from tg import tmpl_context as c, request + from kallithea.model.scm import ScmModel def repo_lnk(name, rtype, rstate, private, fork_of): return _render('repo_name', name, rtype, rstate, private, fork_of, short_name=short_name) + def following(repo_id, is_following): + return _render('following', repo_id, is_following) + def last_change(last_change): return _render("last_change", last_change) @@ -188,6 +192,10 @@ "just_name": repo.just_name, "name": repo_lnk(repo.repo_name, repo.repo_type, repo.repo_state, repo.private, repo.fork), + "following": following( + repo.repo_id, + ScmModel().is_following_repo(repo.repo_name, request.authuser.user_id), + ), "last_change_iso": repo.last_db_change.isoformat(), "last_change": last_change(repo.last_db_change), "last_changeset": last_rev(repo.repo_name, cs_cache),
--- a/kallithea/templates/data_table/_dt_elements.html Tue Feb 11 05:17:03 2020 +0100 +++ b/kallithea/templates/data_table/_dt_elements.html Wed Feb 12 14:37:15 2020 +0100 @@ -31,6 +31,12 @@ </div> </%def> +<%def name="following(repo_id, repo_following)"> + %if request.authuser.username != 'default': + <a href="#" class="${'following' if repo_following else 'follow'}" onclick="return toggleFollowingRepo(this, ${repo_id});"><i class="list-extra icon-heart-empty show-follow" title="${_('Follow')}"></i><i class="list-extra icon-heart show-following" title="${_('Unfollow')}"></i></a> + %endif +</%def> + <%def name="last_change(last_change)"> <span data-toggle="tooltip" title="${h.fmt_date(last_change)}" date="${last_change}">${h.age(last_change)}</span> </%def>
--- a/kallithea/templates/index_base.html Tue Feb 11 05:17:03 2020 +0100 +++ b/kallithea/templates/index_base.html Wed Feb 12 14:37:15 2020 +0100 @@ -55,6 +55,7 @@ return row.just_name; } }}, + {data: "following", defaultContent: '', sortable: false}, {data: "desc", title: ${h.jshtml(_('Description'))}, searchable: false}, {data: "last_change_iso", defaultContent: '', visible: false, searchable: false}, {data: "last_change", defaultContent: '', title: ${h.jshtml(_('Last Change'))}, orderData: [3,], searchable: false},