# HG changeset patch # User Marcin Kuzminski # Date 2011-12-16 21:01:44 # Node ID 9edd6ac132f0f4361fef2cbae3e97f490052af1e # Parent defcf245f3e9d4b1bddd8eceba6f5bf9e8ed52cd Added sorting into journal and admin pages - code garden to reuse some blocks and make it consistent on different views diff --git a/rhodecode/public/js/rhodecode.js b/rhodecode/public/js/rhodecode.js --- a/rhodecode/public/js/rhodecode.js +++ b/rhodecode/public/js/rhodecode.js @@ -600,6 +600,23 @@ var deleteNotification = function(url, n /** + * QUICK REPO MENU + */ +var quick_repo_menu = function(){ + YUE.on(YUQ('.quick_repo_menu'),'click',function(e){ + var menu = e.currentTarget.firstElementChild.firstElementChild; + if(YUD.hasClass(menu,'hidden')){ + YUD.addClass(e.currentTarget,'active'); + YUD.removeClass(menu,'hidden'); + }else{ + YUD.removeClass(e.currentTarget,'active'); + YUD.addClass(menu,'hidden'); + } + }) +}; + + +/** * TABLE SORTING */ diff --git a/rhodecode/templates/_data_table/_dt_elements.html b/rhodecode/templates/_data_table/_dt_elements.html new file mode 100644 --- /dev/null +++ b/rhodecode/templates/_data_table/_dt_elements.html @@ -0,0 +1,78 @@ +## DATA TABLE RE USABLE ELEMENTS +## usage: +## <%namespace name="dt" file="/_data_table/_dt_elements.html"/> + +<%def name="quick_menu(repo_name)"> + + + +<%def name="repo_name(name,rtype,private,fork_of)"> +
+ ##TYPE OF REPO + %if rtype =='hg': + ${_('Mercurial repository')} + %elif rtype =='git': + ${_('Git repository')} + %endif + + ##PRIVATE/PUBLIC + %if private: + ${_('private repository')} + %else: + ${_('public repository')} + %endif + + ##NAME + ${h.link_to(name,h.url('summary_home',repo_name=name),class_="repo_name")} + %if fork_of: + + ${_('fork')} + %endif +
+ + + + +<%def name="revision(name,rev,tip,author,last_msg)"> +
+ %if rev >= 0: +
${'r%s:%s' % (rev,h.short_id(tip))}
+ %else: + ${_('No changesets yet')} + %endif +
+ diff --git a/rhodecode/templates/admin/repos/repos.html b/rhodecode/templates/admin/repos/repos.html --- a/rhodecode/templates/admin/repos/repos.html +++ b/rhodecode/templates/admin/repos/repos.html @@ -14,7 +14,7 @@ <%def name="main()">
- +
${self.breadcrumbs()}
- +
- - - - - - - - - - %for cnt,repo in enumerate(c.repos_list): - - - - - - - - - %endfor +
+ <%cnt=0%> + <%namespace name="dt" file="/_data_table/_dt_elements.html"/> + +
${_('Name')}${_('Description')}${_('Last change')}${_('Tip')}${_('Contact')}${_('action')}
- ## TYPE OF REPO - %if repo['dbrepo']['repo_type'] =='hg': - ${_('Mercurial repository')} - %elif repo['dbrepo']['repo_type'] =='git': - ${_('Git repository')} - %else: - - %endif - - ## PRIVATE/PUBLIC REPO - %if repo['dbrepo']['private']: - ${_('private')} - %else: - ${_('public')} - %endif - ${h.link_to(repo['name'],h.url('edit_repo',repo_name=repo['name']))} - - %if repo['dbrepo_fork']: - - ${_('public')} - %endif - ${h.truncate(repo['description'],60)}${h.age(repo['last_change'])} - %if repo['rev']>=0: -
${h.link_to('r%s:%s' % (repo['rev'],h.short_id(repo['tip'])),h.url('changeset_home',repo_name=repo['name'],revision=repo['tip']),class_="tooltip",title=h.tooltip(repo['last_msg']))}
- %else: - ${_('No changesets yet')} - %endif -
${h.person(repo['contact'])} - ${h.form(url('repo', repo_name=repo['name']),method='delete')} - ${h.submit('remove_%s' % repo['name'],_('delete'),class_="delete_icon action_button",onclick="return confirm('"+_('Confirm to delete this repository')+"');")} - ${h.end_form()} -
+ + + + + + + + + + + + + %for cnt,repo in enumerate(c.repos_list,1): + + + + ##DESCRIPTION + + ##LAST CHANGE + + ##LAST REVISION + + + + + %endfor
${_('Name')}${_('Description')}${_('Last change')}${_('Tip')}${_('Contact')}${_('Action')}
+ ${dt.quick_menu(repo['name'])} + + ${dt.repo_name(repo['name'],repo['dbrepo']['repo_type'],repo['dbrepo']['private'],repo['dbrepo_fork'].get('repo_name'))} + + ${h.truncate(repo['description'],60)} + + ${h.age(repo['last_change'])} + + ${dt.revision(repo['name'],repo['rev'],repo['tip'],repo['author'],repo['last_msg'])} + ${h.person(repo['contact'])} + ${h.form(url('repo', repo_name=repo['name']),method='delete')} + ${h.submit('remove_%s' % repo['name'],_('delete'),class_="delete_icon action_button",onclick="return confirm('"+_('Confirm to delete this repository')+"');")} + ${h.end_form()} +
+
- + diff --git a/rhodecode/templates/index_base.html b/rhodecode/templates/index_base.html --- a/rhodecode/templates/index_base.html +++ b/rhodecode/templates/index_base.html @@ -50,6 +50,9 @@

${c.rhodecode_name} ${c.rhodecode_version}

+ <%cnt=0%> + <%namespace name="dt" file="/_data_table/_dt_elements.html"/> + @@ -64,91 +67,29 @@ - <%cnt=0%> %for cnt,repo in enumerate(c.repos_list,1): + ##QUICK MENU - ##DESCRIPTION - ##LAST CHANGE - + ##LAST CHANGE DATE + ##LAST REVISION + + ##
- + ${dt.quick_menu(repo['name'])} - ## TYPE OF REPO -
- %if repo['dbrepo']['repo_type'] =='hg': - ${_('Mercurial repository')} - %elif repo['dbrepo']['repo_type'] =='git': - ${_('Git repository')} - %endif - - ##PRIVATE/PUBLIC - %if repo['dbrepo']['private']: - ${_('private repository')} - %else: - ${_('public repository')} - %endif - - ##NAME - ${h.link_to(repo['name'], - h.url('summary_home',repo_name=repo['name']),class_="repo_name")} - %if repo['dbrepo_fork']: - - ${_('fork')} - %endif -
+ ##REPO NAME AND ICONS +
+ ${dt.repo_name(repo['name'],repo['dbrepo']['repo_type'],repo['dbrepo']['private'],repo['dbrepo_fork'].get('repo_name'))} ${h.truncate(repo['description'],60)} - - ${h.age(repo['last_change'])} - -
- %if repo['rev']>=0: -
${'r%s:%s' % (repo['rev'],h.short_id(repo['tip']))}
- %else: - ${_('No changesets yet')} - %endif -
+ ${h.age(repo['last_change'])}
+ ${dt.revision(repo['name'],repo['rev'],repo['tip'],repo['author'],repo['last_msg'])} + ${h.person(repo['contact'])} %if c.rhodecode_user.username != 'default': @@ -176,18 +117,7 @@ var func = function(node){ return node.parentNode.parentNode.parentNode.parentNode; } - var qrm = function(){ - YUE.on(YUQ('.quick_repo_menu'),'click',function(e){ - var menu = e.currentTarget.firstElementChild.firstElementChild; - if(YUD.hasClass(menu,'hidden')){ - YUD.addClass(e.currentTarget,'active'); - YUD.removeClass(menu,'hidden'); - }else{ - YUD.removeClass(e.currentTarget,'active'); - YUD.addClass(menu,'hidden'); - } - }) - }; + // groups table sorting var myColumnDefs = [ @@ -255,8 +185,8 @@ ); myDataTable.subscribe('postRenderEvent',function(oArgs) { tooltip_activate(); - qrm(); - q_filter('q_filter',YUQ('div.table tr td a.repo_name'),func); + quick_repo_menu(); + q_filter('q_filter',YUQ('div.table tr td a.repo_name'),func); }); \ No newline at end of file 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 @@ -42,39 +42,33 @@
%if c.user_repos: - - - - - - - +
+
${_('Name')}${_('revision')}${_('action')}
+ + + + + + + + + <%namespace name="dt" file="/_data_table/_dt_elements.html"/> %for repo in c.user_repos: + ##QUICK MENU + + ##REPO NAME AND ICONS + + ##LAST REVISION - + ${dt.revision(repo['name'],repo['rev'],repo['tip'],repo['author'],repo['last_msg'])} + + ##
${_('Name')}${_('Tip')}${_('Action')}${_('Action')}
+ ${dt.quick_menu(repo['name'])} + + ${dt.repo_name(repo['name'],repo['dbrepo']['repo_type'],repo['dbrepo']['private'],repo['dbrepo_fork'].get('repo_name'))} + - %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')} @@ -85,6 +79,7 @@ %endfor
+
%else:
${_('No repositories yet')} @@ -147,14 +142,15 @@