# HG changeset patch # User Ross Thomas # Date 1581514635 -3600 # Node ID 173612a900efae31bb338ae8fd108658a5d4ca9e # Parent 51af7c12ffb12c9fcc7791ff593a76121f046324 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.) diff -r 51af7c12ffb1 -r 173612a900ef kallithea/model/repo.py --- 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), diff -r 51af7c12ffb1 -r 173612a900ef kallithea/templates/data_table/_dt_elements.html --- 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 @@ +<%def name="following(repo_id, repo_following)"> + %if request.authuser.username != 'default': + + %endif + + <%def name="last_change(last_change)"> ${h.age(last_change)} diff -r 51af7c12ffb1 -r 173612a900ef kallithea/templates/index_base.html --- 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},