##// END OF EJS Templates
auth: don't break hashing in case of user with empty password....
auth: don't break hashing in case of user with empty password. In some cases such as LDAP user created via external scripts users might set the passwords to empty. The hashing uses the md5(password_hash) to store reference to detect password changes and forbid using the same password. In case of pure LDAP users this is not valid, and we shouldn't raise Errors in such case. This change makes it work for empty passwords now.

File last commit:

r2175:ea878558 default
r2203:8a18c3c3 default
Show More
_dt_elements.mako
377 lines | 12.0 KiB | application/x-mako | MakoHtmlLexer
templating: use .mako as extensions for template files.
r1282 ## DATA TABLE RE USABLE ELEMENTS
## usage:
## <%namespace name="dt" file="/data_table/_dt_elements.mako"/>
<%namespace name="base" file="/base/base.mako"/>
meta-tags: cleanup support for metatags....
r2091 <%def name="metatags_help()">
<table>
<%
example_tags = [
('state','[stable]'),
('state','[stale]'),
('state','[featured]'),
('state','[dev]'),
('state','[dead]'),
metatags: improve display syntax and add deprecated tag.
r2093 ('state','[deprecated]'),
meta-tags: cleanup support for metatags....
r2091
('label','[personal]'),
('generic','[v2.0.0]'),
('lang','[lang =&gt; JavaScript]'),
('license','[license =&gt; LicenseName]'),
('ref','[requires =&gt; RepoName]'),
('ref','[recommends =&gt; GroupName]'),
('ref','[conflicts =&gt; SomeName]'),
('ref','[base =&gt; SomeName]'),
('url','[url =&gt; [linkName](https://rhodecode.com)]'),
('see','[see =&gt; http://rhodecode.com]'),
]
%>
% for tag_type, tag in example_tags:
<tr>
<td>${tag|n}</td>
<td>${h.style_metatag(tag_type, tag)|n}</td>
</tr>
% endfor
</table>
</%def>
templating: use .mako as extensions for template files.
r1282 ## REPOSITORY RENDERERS
<%def name="quick_menu(repo_name)">
ui: fix double icons on quick-menu.
r1952 <i class="icon-more"></i>
templating: use .mako as extensions for template files.
r1282 <div class="menu_items_container hidden">
<ul class="menu_items">
<li>
repo-summary: re-implemented summary view as pyramid....
r1785 <a title="${_('Summary')}" href="${h.route_path('repo_summary',repo_name=repo_name)}">
templating: use .mako as extensions for template files.
r1282 <span>${_('Summary')}</span>
</a>
</li>
<li>
changelog: ported to pyramid views.
r1931 <a title="${_('Changelog')}" href="${h.route_path('repo_changelog',repo_name=repo_name)}">
templating: use .mako as extensions for template files.
r1282 <span>${_('Changelog')}</span>
</a>
</li>
<li>
files: ported repository files controllers to pyramid views.
r1927 <a title="${_('Files')}" href="${h.route_path('repo_files:default_commit',repo_name=repo_name)}">
templating: use .mako as extensions for template files.
r1282 <span>${_('Files')}</span>
</a>
</li>
<li>
forks: moved pylons code into pyramid.
r1988 <a title="${_('Fork')}" href="${h.route_path('repo_fork_new',repo_name=repo_name)}">
templating: use .mako as extensions for template files.
r1282 <span>${_('Fork')}</span>
</a>
</li>
</ul>
</div>
</%def>
<%def name="repo_name(name,rtype,rstate,private,fork_of,short_name=False,admin=False)">
<%
def get_name(name,short_name=short_name):
if short_name:
return name.split('/')[-1]
else:
return name
%>
<div class="${'repo_state_pending' if rstate == 'repo_state_pending' else ''} truncate">
##NAME
repo-summary: re-implemented summary view as pyramid....
r1785 <a href="${h.route_path('edit_repo',repo_name=name) if admin else h.route_path('repo_summary',repo_name=name)}">
templating: use .mako as extensions for template files.
r1282
##TYPE OF REPO
%if h.is_hg(rtype):
icons: try to use consistent size of icons for dashboard.
r2092 <span title="${_('Mercurial repository')}"><i class="icon-hg" style="font-size: 14px;"></i></span>
templating: use .mako as extensions for template files.
r1282 %elif h.is_git(rtype):
icons: try to use consistent size of icons for dashboard.
r2092 <span title="${_('Git repository')}"><i class="icon-git" style="font-size: 14px"></i></span>
templating: use .mako as extensions for template files.
r1282 %elif h.is_svn(rtype):
icons: try to use consistent size of icons for dashboard.
r2092 <span title="${_('Subversion repository')}"><i class="icon-svn" style="font-size: 14px"></i></span>
templating: use .mako as extensions for template files.
r1282 %endif
##PRIVATE/PUBLIC
%if private and c.visual.show_private_icon:
<i class="icon-lock" title="${_('Private repository')}"></i>
%elif not private and c.visual.show_public_icon:
<i class="icon-unlock-alt" title="${_('Public repository')}"></i>
%else:
<span></span>
%endif
${get_name(name)}
</a>
%if fork_of:
repo-summary: re-implemented summary view as pyramid....
r1785 <a href="${h.route_path('repo_summary',repo_name=fork_of.repo_name)}"><i class="icon-code-fork"></i></a>
templating: use .mako as extensions for template files.
r1282 %endif
%if rstate == 'repo_state_pending':
repositories: ported repo_creating checks to pyramid....
r1985 <span class="creation_in_progress tooltip" title="${_('This repository is being created in a background task')}">
(${_('creating...')})
</span>
templating: use .mako as extensions for template files.
r1282 %endif
</div>
</%def>
meta-tags: cleanup support for metatags....
r2091 <%def name="repo_desc(description, stylify_metatags)">
<%
tags, description = h.extract_metatags(description)
%>
<div class="truncate-wrap">
% if stylify_metatags:
% for tag_type, tag in tags:
${h.style_metatag(tag_type, tag)|n}
% endfor
% endif
${description}
</div>
templating: use .mako as extensions for template files.
r1282 </%def>
<%def name="last_change(last_change)">
${h.age_component(last_change)}
</%def>
<%def name="revision(name,rev,tip,author,last_msg)">
<div>
%if rev >= 0:
repo-commits: ported changeset code into pyramid views....
r1951 <code><a title="${h.tooltip('%s:\n\n%s' % (author,last_msg))}" class="tooltip" href="${h.route_path('repo_commit',repo_name=name,commit_id=tip)}">${'r%s:%s' % (rev,h.short_id(tip))}</a></code>
templating: use .mako as extensions for template files.
r1282 %else:
${_('No commits yet')}
%endif
</div>
</%def>
<%def name="rss(name)">
%if c.rhodecode_user.username != h.DEFAULT_USER:
dan
repo-feed: moved from pylons controller to pyramid views.
r1899 <a title="${h.tooltip(_('Subscribe to %s rss feed')% name)}" href="${h.route_path('rss_feed_home', repo_name=name, _query=dict(auth_token=c.rhodecode_user.feed_token))}"><i class="icon-rss-sign"></i></a>
templating: use .mako as extensions for template files.
r1282 %else:
dan
repo-feed: moved from pylons controller to pyramid views.
r1899 <a title="${h.tooltip(_('Subscribe to %s rss feed')% name)}" href="${h.route_path('rss_feed_home', repo_name=name)}"><i class="icon-rss-sign"></i></a>
templating: use .mako as extensions for template files.
r1282 %endif
</%def>
<%def name="atom(name)">
%if c.rhodecode_user.username != h.DEFAULT_USER:
dan
repo-feed: moved from pylons controller to pyramid views.
r1899 <a title="${h.tooltip(_('Subscribe to %s atom feed')% name)}" href="${h.route_path('atom_feed_home', repo_name=name, _query=dict(auth_token=c.rhodecode_user.feed_token))}"><i class="icon-rss-sign"></i></a>
templating: use .mako as extensions for template files.
r1282 %else:
dan
repo-feed: moved from pylons controller to pyramid views.
r1899 <a title="${h.tooltip(_('Subscribe to %s atom feed')% name)}" href="${h.route_path('atom_feed_home', repo_name=name)}"><i class="icon-rss-sign"></i></a>
templating: use .mako as extensions for template files.
r1282 %endif
</%def>
<%def name="user_gravatar(email, size=16)">
dan
tooltip: use consistent h.tooltip usage to set tooltips.
r1843 <div class="rc-user tooltip" title="${h.tooltip(h.author_string(email))}">
templating: use .mako as extensions for template files.
r1282 ${base.gravatar(email, 16)}
</div>
</%def>
<%def name="repo_actions(repo_name, super_user=True)">
<div>
<div class="grid_edit">
repo-settings: converted repo settings to pyramid...
r1716 <a href="${h.route_path('edit_repo',repo_name=repo_name)}" title="${_('Edit')}">
templating: use .mako as extensions for template files.
r1282 <i class="icon-pencil"></i>Edit</a>
</div>
<div class="grid_delete">
forms: unified usage of h.secure_form. Make sure we ALWAYS pass in...
r2105 ${h.secure_form(h.route_path('edit_repo_advanced_delete', repo_name=repo_name), request=request)}
templating: use .mako as extensions for template files.
r1282 ${h.submit('remove_%s' % repo_name,_('Delete'),class_="btn btn-link btn-danger",
onclick="return confirm('"+_('Confirm to delete this repository: %s') % repo_name+"');")}
${h.end_form()}
</div>
</div>
</%def>
<%def name="repo_state(repo_state)">
<div>
%if repo_state == 'repo_state_pending':
<div class="tag tag4">${_('Creating')}</div>
%elif repo_state == 'repo_state_created':
<div class="tag tag1">${_('Created')}</div>
%else:
dan
tooltip: use consistent h.tooltip usage to set tooltips.
r1843 <div class="tag alert2" title="${h.tooltip(repo_state)}">invalid</div>
templating: use .mako as extensions for template files.
r1282 %endif
</div>
</%def>
## REPO GROUP RENDERERS
<%def name="quick_repo_group_menu(repo_group_name)">
ui: fix double icons on quick-menu.
r1952 <i class="icon-more"></i>
templating: use .mako as extensions for template files.
r1282 <div class="menu_items_container hidden">
<ul class="menu_items">
<li>
repo-groups-grid: remove left over icon.
r2012 <a href="${h.route_path('repo_group_home', repo_group_name=repo_group_name)}">${_('Summary')}</a>
templating: use .mako as extensions for template files.
r1282 </li>
</ul>
</div>
</%def>
<%def name="repo_group_name(repo_group_name, children_groups=None)">
<div>
home: moved home and repo group views into pyramid....
r1774 <a href="${h.route_path('repo_group_home', repo_group_name=repo_group_name)}">
icons: try to use consistent size of icons for dashboard.
r2092 <i class="icon-folder-close" title="${_('Repository group')}" style="font-size: 16px"></i>
templating: use .mako as extensions for template files.
r1282 %if children_groups:
${h.literal(' &raquo; '.join(children_groups))}
%else:
${repo_group_name}
%endif
</a>
</div>
</%def>
meta-tags: cleanup support for metatags....
r2091 <%def name="repo_group_desc(description, personal, stylify_metatags)">
<%
tags, description = h.extract_metatags(description)
%>
<div class="truncate-wrap">
% if personal:
<div class="metatag" tag="personal">${_('personal')}</div>
% endif
% if stylify_metatags:
% for tag_type, tag in tags:
${h.style_metatag(tag_type, tag)|n}
% endfor
% endif
${description}
</div>
templating: use .mako as extensions for template files.
r1282 </%def>
<%def name="repo_group_actions(repo_group_id, repo_group_name, gr_count)">
<div class="grid_edit">
repo-groups: moved to pyramid
r2175 <a href="${h.route_path('edit_repo_group',repo_group_name=repo_group_name)}" title="${_('Edit')}">Edit</a>
templating: use .mako as extensions for template files.
r1282 </div>
<div class="grid_delete">
repo-groups: moved to pyramid
r2175 ${h.secure_form(h.route_path('edit_repo_group_advanced_delete', repo_group_name=repo_group_name), request=request)}
templating: use .mako as extensions for template files.
r1282 ${h.submit('remove_%s' % repo_group_name,_('Delete'),class_="btn btn-link btn-danger",
translation: unified usage of pluralize function ungettext....
r1945 onclick="return confirm('"+_ungettext('Confirm to delete this group: %s with %s repository','Confirm to delete this group: %s with %s repositories',gr_count) % (repo_group_name, gr_count)+"');")}
templating: use .mako as extensions for template files.
r1282 ${h.end_form()}
</div>
</%def>
<%def name="user_actions(user_id, username)">
<div class="grid_edit">
users: ported controllers from pylons into pyramid views.
r2114 <a href="${h.route_path('user_edit',user_id=user_id)}" title="${_('Edit')}">
<i class="icon-pencil"></i>${_('Edit')}</a>
templating: use .mako as extensions for template files.
r1282 </div>
<div class="grid_delete">
users: ported controllers from pylons into pyramid views.
r2114 ${h.secure_form(h.route_path('user_delete', user_id=user_id), request=request)}
templating: use .mako as extensions for template files.
r1282 ${h.submit('remove_',_('Delete'),id="remove_user_%s" % user_id, class_="btn btn-link btn-danger",
onclick="return confirm('"+_('Confirm to delete this user: %s') % username+"');")}
${h.end_form()}
</div>
</%def>
<%def name="user_group_actions(user_group_id, user_group_name)">
<div class="grid_edit">
user-groups: rewrote the app to pyramid...
r2068 <a href="${h.route_path('edit_user_group', user_group_id=user_group_id)}" title="${_('Edit')}">Edit</a>
templating: use .mako as extensions for template files.
r1282 </div>
<div class="grid_delete">
forms: unified usage of h.secure_form. Make sure we ALWAYS pass in...
r2105 ${h.secure_form(h.route_path('user_groups_delete', user_group_id=user_group_id), request=request)}
templating: use .mako as extensions for template files.
r1282 ${h.submit('remove_',_('Delete'),id="remove_group_%s" % user_group_id, class_="btn btn-link btn-danger",
onclick="return confirm('"+_('Confirm to delete this user group: %s') % user_group_name+"');")}
${h.end_form()}
</div>
</%def>
<%def name="user_name(user_id, username)">
users: ported controllers from pylons into pyramid views.
r2114 ${h.link_to(h.person(username, 'username_or_name_or_email'), h.route_path('user_edit', user_id=user_id))}
templating: use .mako as extensions for template files.
r1282 </%def>
<%def name="user_profile(username)">
${base.gravatar_with_user(username, 16)}
</%def>
<%def name="user_group_name(user_group_id, user_group_name)">
<div>
user-groups: rewrote the app to pyramid...
r2068 <a href="${h.route_path('edit_user_group', user_group_id=user_group_id)}">
templating: use .mako as extensions for template files.
r1282 <i class="icon-group" title="${_('User group')}"></i> ${user_group_name}</a>
</div>
</%def>
## GISTS
<%def name="gist_gravatar(full_contact)">
<div class="gist_gravatar">
${base.gravatar(full_contact, 30)}
</div>
</%def>
<%def name="gist_access_id(gist_access_id, full_contact)">
<div>
<b>
dan
gists: migrated gists controller to pyramid view.
r1891 <a href="${h.route_path('gist_show', gist_id=gist_access_id)}">gist: ${gist_access_id}</a>
templating: use .mako as extensions for template files.
r1282 </b>
</div>
</%def>
<%def name="gist_author(full_contact, created_on, expires)">
${base.gravatar_with_user(full_contact, 16)}
</%def>
<%def name="gist_created(created_on)">
<div class="created">
${h.age_component(created_on, time_is_local=True)}
</div>
</%def>
<%def name="gist_expires(expires)">
<div class="created">
%if expires == -1:
${_('never')}
%else:
${h.age_component(h.time_to_utcdatetime(expires))}
%endif
</div>
</%def>
<%def name="gist_type(gist_type)">
%if gist_type != 'public':
<div class="tag">${_('Private')}</div>
%endif
</%def>
<%def name="gist_description(gist_description)">
${gist_description}
</%def>
## PULL REQUESTS GRID RENDERERS
<%def name="pullrequest_target_repo(repo_name)">
<div class="truncate">
repo-summary: re-implemented summary view as pyramid....
r1785 ${h.link_to(repo_name,h.route_path('repo_summary',repo_name=repo_name))}
templating: use .mako as extensions for template files.
r1282 </div>
</%def>
<%def name="pullrequest_status(status)">
<div class="${'flag_status %s' % status} pull-left"></div>
</%def>
<%def name="pullrequest_title(title, description)">
${title} <br/>
${h.shorter(description, 40)}
</%def>
<%def name="pullrequest_comments(comments_nr)">
<i class="icon-comment"></i> ${comments_nr}
</%def>
<%def name="pullrequest_name(pull_request_id, target_repo_name, short=False)">
pull-requests: prepare the migration of pull request to pyramid....
r1813 <a href="${h.route_path('pullrequest_show',repo_name=target_repo_name,pull_request_id=pull_request_id)}">
templating: use .mako as extensions for template files.
r1282 % if short:
#${pull_request_id}
% else:
${_('Pull request #%(pr_number)s') % {'pr_number': pull_request_id,}}
% endif
</a>
</%def>
<%def name="pullrequest_updated_on(updated_on)">
${h.age_component(h.time_to_utcdatetime(updated_on))}
</%def>
<%def name="pullrequest_author(full_contact)">
${base.gravatar_with_user(full_contact, 16)}
</%def>