diff --git a/rhodecode/controllers/journal.py b/rhodecode/controllers/journal.py --- a/rhodecode/controllers/journal.py +++ b/rhodecode/controllers/journal.py @@ -37,8 +37,10 @@ from pylons.i18n.translation import _ import rhodecode.lib.helpers as h from rhodecode.lib.auth import LoginRequired, NotAnonymous from rhodecode.lib.base import BaseController, render -from rhodecode.model.db import UserLog, UserFollowing +from rhodecode.model.db import UserLog, UserFollowing, Repository, User from rhodecode.model.meta import Session +from sqlalchemy.sql.expression import func +from rhodecode.model.scm import ScmModel log = logging.getLogger(__name__) @@ -59,6 +61,13 @@ class JournalController(BaseController): # Return a rendered template p = int(request.params.get('page', 1)) + c.user = User.get(self.rhodecode_user.user_id) + all_repos = self.sa.query(Repository)\ + .filter(Repository.user_id == c.user.user_id)\ + .order_by(func.lower(Repository.repo_name)).all() + + c.user_repos = ScmModel().get_repos(all_repos) + c.following = self.sa.query(UserFollowing)\ .filter(UserFollowing.user_id == self.rhodecode_user.user_id)\ .options(joinedload(UserFollowing.follows_repository))\ diff --git a/rhodecode/public/css/style.css b/rhodecode/public/css/style.css --- a/rhodecode/public/css/style.css +++ b/rhodecode/public/css/style.css @@ -758,6 +758,10 @@ div.options a { padding: 11px 0 11px 10px; } +#content div.box div.title .link-white{ + color: #FFFFFF; +} + #content div.box div.title ul.links li { list-style: none; float: left; diff --git a/rhodecode/templates/journal/journal.html b/rhodecode/templates/journal/journal.html --- a/rhodecode/templates/journal/journal.html +++ b/rhodecode/templates/journal/journal.html @@ -27,43 +27,147 @@
${c.journal_data}
-
-
${_('Following')}
+
+ + ${_('My repositories')} / ${_('Watched')} +
+ %if h.HasPermissionAny('hg.admin','hg.create.repository')(): + + %endif +
+ +
+ + + + + + + + + %if c.user_repos: + %for repo in c.user_repos: + + + + + + + %endfor + %else: +
+ ${_('No repositories yet')} + %if h.HasPermissionAny('hg.admin','hg.create.repository')(): + ${h.link_to(_('create one now'),h.url('admin_settings_create_repository'),class_="ui-button-small")} + %endif +
+ %endif + +
${_('Name')}${_('revision')}${_('action')}
+ %if repo['dbrepo']['repo_type'] =='hg': + ${_('Mercurial repository')} + %elif repo['dbrepo']['repo_type'] =='git': + ${_('Git repository')} + %else: + + %endif + %if repo['dbrepo']['private']: + ${_('private')} + %else: + ${_('public')} + %endif + + ${h.link_to(repo['name'], h.url('summary_home',repo_name=repo['name']),class_="repo_name")} + %if repo['dbrepo_fork']: + + ${_('public')} + %endif + ${("r%s:%s") % (repo['rev'],h.short_id(repo['tip']))}${_('private')} + ${h.form(url('repo_settings_delete', repo_name=repo['name']),method='delete')} + ${h.submit('remove_%s' % repo['name'],'',class_="delete_icon action_button",onclick="return confirm('Confirm to delete this repository');")} + ${h.end_form()} +
-
- %if c.following: - %for entry in c.following: -
- %if entry.follows_user_id: - ${_('user')} - ${entry.follows_user.full_contact} - %endif - - %if entry.follows_repo_id: - -
- - -
- %if entry.follows_repository.private: - ${_('private repository')} - %else: - ${_('public repository')} - %endif - - ${h.link_to(entry.follows_repository.repo_name,h.url('summary_home', - repo_name=entry.follows_repository.repo_name))} - - %endif -
- %endfor - %else: - ${_('You are not following any users or repositories')} - %endif -
-
+ + +