Mercurial > kallithea
changeset 2624:19daa8d761dc beta
Improvements to my account page
- lazy load repositories via ajax results in much faster page load
- added pull requests tab to see my pullrequests and the ones i participate in
- new style tabs
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Mon, 16 Jul 2012 23:19:34 +0200 |
parents | 44678a64cfae |
children | fc19979a8421 |
files | rhodecode/config/routing.py rhodecode/public/css/style.css rhodecode/templates/admin/users/user_edit_my_account.html rhodecode/templates/admin/users/user_edit_my_account_pullrequests.html rhodecode/templates/admin/users/user_edit_my_account_repos.html |
diffstat | 5 files changed, 142 insertions(+), 66 deletions(-) [+] |
line wrap: on
line diff
--- a/rhodecode/config/routing.py Mon Jul 16 18:47:36 2012 +0200 +++ b/rhodecode/config/routing.py Mon Jul 16 23:19:34 2012 +0200 @@ -296,6 +296,11 @@ action="my_account_update", conditions=dict(method=["PUT"])) m.connect("admin_settings_create_repository", "/create_repository", action="create_repository", conditions=dict(method=["GET"])) + m.connect("admin_settings_my_repos", "/my_account/repos", + action="my_account_my_repos", conditions=dict(method=["GET"])) + m.connect("admin_settings_my_pullrequests", "/my_account/pull_requests", + action="my_account_my_pullrequests", conditions=dict(method=["GET"])) + #NOTIFICATION REST ROUTES with rmap.submapper(path_prefix=ADMIN_PREFIX,
--- a/rhodecode/public/css/style.css Mon Jul 16 18:47:36 2012 +0200 +++ b/rhodecode/public/css/style.css Mon Jul 16 23:19:34 2012 +0200 @@ -1096,6 +1096,10 @@ color: #FFFFFF; } +#content div.box div.title .link-white.current{ + color: #BFE3FF; +} + #content div.box div.title ul.links li { list-style: none; float: left; @@ -4336,6 +4340,15 @@ } /**** +PULL REQUESTS +*****/ +.pullrequests_section_head { + padding:10px 10px 10px 0px; + font-size:16px; + font-weight: bold; +} + +/**** PERMS *****/ #perms .perms_section_head {
--- a/rhodecode/templates/admin/users/user_edit_my_account.html Mon Jul 16 18:47:36 2012 +0200 +++ b/rhodecode/templates/admin/users/user_edit_my_account.html Mon Jul 16 23:19:34 2012 +0200 @@ -28,67 +28,27 @@ <!-- box / title --> <div class="title"> <h5> - <input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" value="${_('quick filter...')}"/> - <a id="show_my" class="link-white" href="#my">${_('My repos')}</a> / <a id="show_perms" class="link-white" href="#perms">${_('My permissions')}</a> + <input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" value="${_('quick filter...')}" style="display: none"/> </h5> - %if h.HasPermissionAny('hg.admin','hg.create.repository')(): - <ul class="links"> + <ul class="links" style="color:#DADADA"> + <li> + <span><a id="show_perms" class="link-white current" href="#perms">${_('My permissions')}</a> </span> + </li> + <li> + <span><a id="show_my" class="link-white" href="#my">${_('My repos')}</a> </span> + </li> <li> - <span>${h.link_to(_('ADD'),h.url('admin_settings_create_repository'))}</span> + <span><a id="show_pullrequests" class="link-white" href="#perms">${_('My pull requests')}</a> </span> </li> + %if h.HasPermissionAny('hg.admin','hg.create.repository')(): + <li> + <span>${h.link_to(_('Add repo'),h.url('admin_settings_create_repository'))}</span> + </li> + %endif </ul> - %endif </div> <!-- end box / title --> - <div id="my" class="table"> - <div id='repos_list_wrap' class="yui-skin-sam"> - <table id="repos_list"> - <thead> - <tr> - <th></th> - <th class="left">${_('Name')}</th> - <th class="left">${_('Revision')}</th> - <th class="left">${_('Action')}</th> - <th class="left">${_('Action')}</th> - </thead> - <tbody> - <%namespace name="dt" file="/data_table/_dt_elements.html"/> - %if c.user_repos: - %for repo in c.user_repos: - <tr> - ##QUICK MENU - <td class="quick_repo_menu"> - ${dt.quick_menu(repo['name'])} - </td> - ##REPO NAME AND ICONS - <td class="reponame"> - ${dt.repo_name(repo['name'],repo['dbrepo']['repo_type'],repo['dbrepo']['private'],repo['dbrepo_fork'].get('repo_name'))} - </td> - ##LAST REVISION - <td> - ${dt.revision(repo['name'],repo['rev'],repo['tip'],repo['author'],repo['last_msg'])} - </td> - <td><a href="${h.url('repo_settings_home',repo_name=repo['name'])}" title="${_('edit')}"><img class="icon" alt="${_('private')}" src="${h.url('/images/icons/application_form_edit.png')}"/></a></td> - <td> - ${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: %s') % repo['name']+"');")} - ${h.end_form()} - </td> - </tr> - %endfor - %else: - <div style="padding:5px 0px 10px 0px;"> - ${_('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-btn")} - %endif - </div> - %endif - </tbody> - </table> - </div> - </div> - <div id="perms" class="table" style="display:none"> + <div id="perms" class="table"> %for section in sorted(c.rhodecode_user.permissions.keys()): <div class="perms_section_head">${section.replace("_"," ").capitalize()}</div> @@ -134,6 +94,9 @@ </div> %endfor </div> + <div id="my" class="table" style="display:none"> + </div> + <div id="pullrequests" class="table" style="display:none"> </div> <script type="text/javascript"> var filter_activate = function(){ @@ -143,22 +106,48 @@ } q_filter('q_filter',YUQ('#my tr td a.repo_name'),func); } - -YUE.on('show_my','click',function(e){ - YUD.setStyle('perms','display','none'); - YUD.setStyle('my','display',''); - YUD.get('q_filter').removeAttribute('disabled'); - filter_activate(); +YUE.on('show_perms','click',function(e){ + YUD.addClass('show_perms', 'current'); + YUD.removeClass('show_my','current'); + YUD.removeClass('show_pullrequests','current'); + + YUD.setStyle('my','display','none'); + YUD.setStyle('pullrequests','display','none'); + YUD.setStyle('perms','display',''); + YUD.setStyle('q_filter','display','none'); YUE.preventDefault(e); }) -YUE.on('show_perms','click',function(e){ +YUE.on('show_my','click',function(e){ + YUD.addClass('show_my', 'current'); + YUD.removeClass('show_perms','current'); + YUD.removeClass('show_pullrequests','current'); + + YUD.setStyle('perms','display','none'); + YUD.setStyle('pullrequests','display','none'); + YUD.setStyle('my','display',''); + YUD.setStyle('q_filter','display',''); + + YUE.preventDefault(e); + var url = "${h.url('admin_settings_my_repos')}"; + ypjax(url, 'my', function(){ + table_sort(); + filter_activate(); + }); +}) +YUE.on('show_pullrequests','click',function(e){ + YUD.addClass('show_pullrequests', 'current'); + YUD.removeClass('show_my','current'); + YUD.removeClass('show_perms','current'); + YUD.setStyle('my','display','none'); - YUD.setStyle('perms','display',''); - YUD.setAttribute('q_filter','disabled','disabled'); + YUD.setStyle('perms','display','none'); + YUD.setStyle('pullrequests','display',''); + YUD.setStyle('q_filter','display','none'); YUE.preventDefault(e); + var url = "${h.url('admin_settings_my_pullrequests')}"; + ypjax(url, 'pullrequests'); }) - // main table sorting var myColumnDefs = [ {key:"menu",label:"",sortable:false,className:"quick_repo_menu hidden"}, @@ -170,6 +159,7 @@ {key:"action2",label:"",sortable:false}, ]; +function table_sort(){ var myDataSource = new YAHOO.util.DataSource(YUD.get("repos_list")); myDataSource.responseType = YAHOO.util.DataSource.TYPE_HTMLTABLE; myDataSource.responseSchema = { @@ -224,6 +214,6 @@ }; new YAHOO.widget.DataTable("tbl_list_wrap_repositories_groups", permsColumnDefs, myDataSource3, trans_defs); - +} </script> </%def>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rhodecode/templates/admin/users/user_edit_my_account_pullrequests.html Mon Jul 16 23:19:34 2012 +0200 @@ -0,0 +1,22 @@ + +<div class="pullrequests_section_head">${_('Opened by me')}</div> +<ul> + %for pull_request in c.my_pull_requests: + <li> + <a href="${h.url('pullrequest_show',repo_name=pull_request.org_repo.repo_name,pull_request_id=pull_request.pull_request_id)}"> + ${_('Pull request #%s opened on %s') % (pull_request.pull_request_id, h.fmt_date(pull_request.created_on))} + </a> + </li> + %endfor +</ul> + +<div class="pullrequests_section_head">${_('I participate in')}</div> +<ul> + %for pull_request in c.participate_in_pull_requests: + <li> + <a href="${h.url('pullrequest_show',repo_name=pull_request.org_repo.repo_name,pull_request_id=pull_request.pull_request_id)}"> + ${_('Pull request #%s opened by %s on %s') % (pull_request.pull_request_id, pull_request.author.full_name, h.fmt_date(pull_request.created_on))} + </a> + </li> + %endfor +</ul>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rhodecode/templates/admin/users/user_edit_my_account_repos.html Mon Jul 16 23:19:34 2012 +0200 @@ -0,0 +1,46 @@ +<div id='repos_list_wrap' class="yui-skin-sam"> + <table id="repos_list"> + <thead> + <tr> + <th></th> + <th class="left">${_('Name')}</th> + <th class="left">${_('Revision')}</th> + <th class="left">${_('Action')}</th> + <th class="left">${_('Action')}</th> + </thead> + <tbody> + <%namespace name="dt" file="/data_table/_dt_elements.html"/> + %if c.user_repos: + %for repo in c.user_repos: + <tr> + ##QUICK MENU + <td class="quick_repo_menu"> + ${dt.quick_menu(repo['name'])} + </td> + ##REPO NAME AND ICONS + <td class="reponame"> + ${dt.repo_name(repo['name'],repo['dbrepo']['repo_type'],repo['dbrepo']['private'],repo['dbrepo_fork'].get('repo_name'))} + </td> + ##LAST REVISION + <td> + ${dt.revision(repo['name'],repo['rev'],repo['tip'],repo['author'],repo['last_msg'])} + </td> + <td><a href="${h.url('repo_settings_home',repo_name=repo['name'])}" title="${_('edit')}"><img class="icon" alt="${_('private')}" src="${h.url('/images/icons/application_form_edit.png')}"/></a></td> + <td> + ${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: %s') % repo['name']+"');")} + ${h.end_form()} + </td> + </tr> + %endfor + %else: + <div style="padding:5px 0px 10px 0px;"> + ${_('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-btn")} + %endif + </div> + %endif + </tbody> + </table> +</div> \ No newline at end of file