_dt_elements.mako
518 lines
| 17.2 KiB
| application/x-mako
|
MakoHtmlLexer
r1282 | ## DATA TABLE RE USABLE ELEMENTS | |||
## usage: | ||||
## <%namespace name="dt" file="/data_table/_dt_elements.mako"/> | ||||
<%namespace name="base" file="/base/base.mako"/> | ||||
r2091 | <%def name="metatags_help()"> | |||
<table> | ||||
<% | ||||
example_tags = [ | ||||
('state','[stable]'), | ||||
('state','[stale]'), | ||||
('state','[featured]'), | ||||
('state','[dev]'), | ||||
('state','[dead]'), | ||||
r2093 | ('state','[deprecated]'), | |||
r2091 | ||||
('label','[personal]'), | ||||
('generic','[v2.0.0]'), | ||||
('lang','[lang => JavaScript]'), | ||||
('license','[license => LicenseName]'), | ||||
('ref','[requires => RepoName]'), | ||||
('ref','[recommends => GroupName]'), | ||||
('ref','[conflicts => SomeName]'), | ||||
('ref','[base => SomeName]'), | ||||
('url','[url => [linkName](https://rhodecode.com)]'), | ||||
('see','[see => 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> | ||||
r4025 | <%def name="render_description(description, stylify_metatags)"> | |||
<% | ||||
tags = [] | ||||
if stylify_metatags: | ||||
tags, description = h.extract_metatags(description) | ||||
%> | ||||
% for tag_type, tag in tags: | ||||
${h.style_metatag(tag_type, tag)|n,trim} | ||||
% endfor | ||||
<code style="white-space: pre-wrap">${description}</code> | ||||
</%def> | ||||
r1282 | ## REPOSITORY RENDERERS | |||
<%def name="quick_menu(repo_name)"> | ||||
r1952 | <i class="icon-more"></i> | |||
r1282 | <div class="menu_items_container hidden"> | |||
<ul class="menu_items"> | ||||
<li> | ||||
r1785 | <a title="${_('Summary')}" href="${h.route_path('repo_summary',repo_name=repo_name)}"> | |||
r1282 | <span>${_('Summary')}</span> | |||
</a> | ||||
</li> | ||||
<li> | ||||
r3742 | <a title="${_('Commits')}" href="${h.route_path('repo_commits',repo_name=repo_name)}"> | |||
<span>${_('Commits')}</span> | ||||
r1282 | </a> | |||
</li> | ||||
<li> | ||||
r1927 | <a title="${_('Files')}" href="${h.route_path('repo_files:default_commit',repo_name=repo_name)}"> | |||
r1282 | <span>${_('Files')}</span> | |||
</a> | ||||
</li> | ||||
<li> | ||||
r1988 | <a title="${_('Fork')}" href="${h.route_path('repo_fork_new',repo_name=repo_name)}"> | |||
r1282 | <span>${_('Fork')}</span> | |||
</a> | ||||
</li> | ||||
</ul> | ||||
</div> | ||||
</%def> | ||||
r4977 | <%def name="repo_name(name,rtype,rstate,private,archived,fork_repo_name,short_name=False,admin=False)"> | |||
r1282 | <% | |||
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 | ||||
r1785 | <a href="${h.route_path('edit_repo',repo_name=name) if admin else h.route_path('repo_summary',repo_name=name)}"> | |||
r1282 | ||||
##TYPE OF REPO | ||||
%if h.is_hg(rtype): | ||||
r2092 | <span title="${_('Mercurial repository')}"><i class="icon-hg" style="font-size: 14px;"></i></span> | |||
r1282 | %elif h.is_git(rtype): | |||
r2092 | <span title="${_('Git repository')}"><i class="icon-git" style="font-size: 14px"></i></span> | |||
r1282 | %elif h.is_svn(rtype): | |||
r2092 | <span title="${_('Subversion repository')}"><i class="icon-svn" style="font-size: 14px"></i></span> | |||
r1282 | %endif | |||
##PRIVATE/PUBLIC | ||||
r3424 | %if private is True and c.visual.show_private_icon: | |||
r1282 | <i class="icon-lock" title="${_('Private repository')}"></i> | |||
r3424 | %elif private is False and c.visual.show_public_icon: | |||
r1282 | <i class="icon-unlock-alt" title="${_('Public repository')}"></i> | |||
%else: | ||||
<span></span> | ||||
%endif | ||||
${get_name(name)} | ||||
</a> | ||||
r4977 | %if fork_repo_name: | |||
<a href="${h.route_path('repo_summary',repo_name=fork_repo_name)}"><i class="icon-code-fork"></i></a> | ||||
r1282 | %endif | |||
%if rstate == 'repo_state_pending': | ||||
r1985 | <span class="creation_in_progress tooltip" title="${_('This repository is being created in a background task')}"> | |||
(${_('creating...')}) | ||||
</span> | ||||
r1282 | %endif | |||
r3090 | ||||
r1282 | </div> | |||
</%def> | ||||
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> | ||||
r1282 | </%def> | |||
<%def name="last_change(last_change)"> | ||||
r2490 | ${h.age_component(last_change, time_is_local=True)} | |||
r1282 | </%def> | |||
r4032 | <%def name="revision(repo_name, rev, commit_id, author, last_msg, commit_date)"> | |||
r1282 | <div> | |||
%if rev >= 0: | ||||
r4033 | <code><a class="tooltip-hovercard" data-hovercard-alt=${h.tooltip(last_msg)} data-hovercard-url="${h.route_path('hovercard_repo_commit', repo_name=repo_name, commit_id=commit_id)}" href="${h.route_path('repo_commit',repo_name=repo_name,commit_id=commit_id)}">${'r{}:{}'.format(rev,h.short_id(commit_id))}</a></code> | |||
r1282 | %else: | |||
${_('No commits yet')} | ||||
%endif | ||||
</div> | ||||
</%def> | ||||
<%def name="rss(name)"> | ||||
%if c.rhodecode_user.username != h.DEFAULT_USER: | ||||
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> | |||
r1282 | %else: | |||
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> | |||
r1282 | %endif | |||
</%def> | ||||
<%def name="atom(name)"> | ||||
%if c.rhodecode_user.username != h.DEFAULT_USER: | ||||
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> | |||
r1282 | %else: | |||
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> | |||
r1282 | %endif | |||
</%def> | ||||
<%def name="repo_actions(repo_name, super_user=True)"> | ||||
<div> | ||||
<div class="grid_edit"> | ||||
r1716 | <a href="${h.route_path('edit_repo',repo_name=repo_name)}" title="${_('Edit')}"> | |||
r3798 | Edit | |||
</a> | ||||
r1282 | </div> | |||
<div class="grid_delete"> | ||||
r2105 | ${h.secure_form(h.route_path('edit_repo_advanced_delete', repo_name=repo_name), request=request)} | |||
r4313 | <input class="btn btn-link btn-danger" id="remove_${repo_name}" name="remove_${repo_name}" | |||
onclick="submitConfirm(event, this, _gettext('Confirm to delete this repository'), _gettext('Delete'), '${repo_name}')" | ||||
type="submit" value="Delete" | ||||
> | ||||
r1282 | ${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: | ||||
r1843 | <div class="tag alert2" title="${h.tooltip(repo_state)}">invalid</div> | |||
r1282 | %endif | |||
</div> | ||||
</%def> | ||||
## REPO GROUP RENDERERS | ||||
<%def name="quick_repo_group_menu(repo_group_name)"> | ||||
r1952 | <i class="icon-more"></i> | |||
r1282 | <div class="menu_items_container hidden"> | |||
<ul class="menu_items"> | ||||
<li> | ||||
r2012 | <a href="${h.route_path('repo_group_home', repo_group_name=repo_group_name)}">${_('Summary')}</a> | |||
r1282 | </li> | |||
</ul> | ||||
</div> | ||||
</%def> | ||||
<%def name="repo_group_name(repo_group_name, children_groups=None)"> | ||||
<div> | ||||
r1774 | <a href="${h.route_path('repo_group_home', repo_group_name=repo_group_name)}"> | |||
r3680 | <i class="icon-repo-group" title="${_('Repository group')}" style="font-size: 14px"></i> | |||
r1282 | %if children_groups: | |||
${h.literal(' » '.join(children_groups))} | ||||
%else: | ||||
${repo_group_name} | ||||
%endif | ||||
</a> | ||||
</div> | ||||
</%def> | ||||
r2091 | <%def name="repo_group_desc(description, personal, stylify_metatags)"> | |||
<% | ||||
r4025 | if stylify_metatags: | |||
tags, description = h.extract_metatags(description) | ||||
r2091 | %> | |||
<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> | ||||
r1282 | </%def> | |||
<%def name="repo_group_actions(repo_group_id, repo_group_name, gr_count)"> | ||||
<div class="grid_edit"> | ||||
r2175 | <a href="${h.route_path('edit_repo_group',repo_group_name=repo_group_name)}" title="${_('Edit')}">Edit</a> | |||
r1282 | </div> | |||
<div class="grid_delete"> | ||||
r2175 | ${h.secure_form(h.route_path('edit_repo_group_advanced_delete', repo_group_name=repo_group_name), request=request)} | |||
r4313 | <input class="btn btn-link btn-danger" id="remove_${repo_group_name}" name="remove_${repo_group_name}" | |||
onclick="submitConfirm(event, this, _gettext('Confirm to delete this repository group'), _gettext('Delete'), '${_ungettext('`{}` with {} repository','`{}` with {} repositories',gr_count).format(repo_group_name, gr_count)}')" | ||||
type="submit" value="Delete" | ||||
> | ||||
r1282 | ${h.end_form()} | |||
</div> | ||||
</%def> | ||||
<%def name="user_actions(user_id, username)"> | ||||
<div class="grid_edit"> | ||||
r2114 | <a href="${h.route_path('user_edit',user_id=user_id)}" title="${_('Edit')}"> | |||
r3798 | ${_('Edit')} | |||
</a> | ||||
r1282 | </div> | |||
<div class="grid_delete"> | ||||
r2114 | ${h.secure_form(h.route_path('user_delete', user_id=user_id), request=request)} | |||
r4313 | <input class="btn btn-link btn-danger" id="remove_user_${user_id}" name="remove_user_${user_id}" | |||
onclick="submitConfirm(event, this, _gettext('Confirm to delete this user'), _gettext('Delete'), '${username}')" | ||||
type="submit" value="Delete" | ||||
> | ||||
r1282 | ${h.end_form()} | |||
</div> | ||||
</%def> | ||||
<%def name="user_group_actions(user_group_id, user_group_name)"> | ||||
<div class="grid_edit"> | ||||
r2068 | <a href="${h.route_path('edit_user_group', user_group_id=user_group_id)}" title="${_('Edit')}">Edit</a> | |||
r1282 | </div> | |||
<div class="grid_delete"> | ||||
r2105 | ${h.secure_form(h.route_path('user_groups_delete', user_group_id=user_group_id), request=request)} | |||
r4313 | <input class="btn btn-link btn-danger" id="remove_group_${user_group_id}" name="remove_group_${user_group_id}" | |||
onclick="submitConfirm(event, this, _gettext('Confirm to delete this user group'), _gettext('Delete'), '${user_group_name}')" | ||||
type="submit" value="Delete" | ||||
> | ||||
r1282 | ${h.end_form()} | |||
</div> | ||||
</%def> | ||||
<%def name="user_name(user_id, username)"> | ||||
r2114 | ${h.link_to(h.person(username, 'username_or_name_or_email'), h.route_path('user_edit', user_id=user_id))} | |||
r1282 | </%def> | |||
<%def name="user_profile(username)"> | ||||
r4026 | ${base.gravatar_with_user(username, 16, tooltip=True)} | |||
r1282 | </%def> | |||
r2639 | <%def name="user_group_name(user_group_name)"> | |||
r1282 | <div> | |||
r2975 | <i class="icon-user-group" title="${_('User group')}"></i> | |||
r2639 | ${h.link_to_group(user_group_name)} | |||
r1282 | </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> | ||||
r4193 | <code> | |||
<a href="${h.route_path('gist_show', gist_id=gist_access_id)}">${gist_access_id}</a> | ||||
</code> | ||||
r1282 | </div> | |||
</%def> | ||||
<%def name="gist_author(full_contact, created_on, expires)"> | ||||
r4026 | ${base.gravatar_with_user(full_contact, 16, tooltip=True)} | |||
r1282 | </%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)"> | ||||
r4082 | %if gist_type == 'public': | |||
<span class="tag tag-gist-public disabled">${_('Public Gist')}</span> | ||||
%else: | ||||
<span class="tag tag-gist-private disabled">${_('Private Gist')}</span> | ||||
r1282 | %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"> | ||||
r1785 | ${h.link_to(repo_name,h.route_path('repo_summary',repo_name=repo_name))} | |||
r1282 | </div> | |||
</%def> | ||||
r3883 | ||||
r1282 | <%def name="pullrequest_status(status)"> | |||
r3883 | <i class="icon-circle review-status-${status}"></i> | |||
r1282 | </%def> | |||
<%def name="pullrequest_title(title, description)"> | ||||
r2816 | ${title} | |||
r1282 | </%def> | |||
r5170 | <%def name="pullrequest_commit_flow(pull_request)"> | |||
<div class="pr-commit-flow"> | ||||
<%! | ||||
def pr_ref_type_to_icon(ref_type): | ||||
return dict( | ||||
branch='branch', | ||||
book='bookmark', | ||||
rev='history', | ||||
).get(ref_type, 'branch') | ||||
%> | ||||
## Source | ||||
<code class="pr-source-info"><i class="icon-${pr_ref_type_to_icon(pull_request.source_ref_parts.type)}"></i>${pull_request.source_ref_parts.name}</code> | ||||
→ | ||||
## Target | ||||
<code class="pr-target-info"><i class="icon-${pr_ref_type_to_icon(pull_request.target_ref_parts.type)}"></i>${pull_request.target_ref_parts.name}</code> | ||||
</div> | ||||
</%def> | ||||
r1282 | <%def name="pullrequest_comments(comments_nr)"> | |||
<i class="icon-comment"></i> ${comments_nr} | ||||
</%def> | ||||
r4103 | <%def name="pullrequest_name(pull_request_id, state, is_wip, target_repo_name, short=False)"> | |||
r4512 | <code> | |||
r1813 | <a href="${h.route_path('pullrequest_show',repo_name=target_repo_name,pull_request_id=pull_request_id)}"> | |||
r1282 | % if short: | |||
r4039 | !${pull_request_id} | |||
r1282 | % else: | |||
r4039 | ${_('Pull request !{}').format(pull_request_id)} | |||
r1282 | % endif | |||
r4512 | </a> | |||
</code> | ||||
% if state not in ['created']: | ||||
<span class="tag tag-merge-state-${state} tooltip" title="Pull request state is changing">${state}</span> | ||||
% endif | ||||
r4103 | ||||
r4512 | % if is_wip: | |||
<span class="tag tooltip" title="${_('Work in progress')}">wip</span> | ||||
% endif | ||||
r1282 | </%def> | |||
r4557 | <%def name="pullrequest_updated_on(updated_on, pr_version=None)"> | |||
% if pr_version: | ||||
<code>v${pr_version}</code> | ||||
% endif | ||||
r1282 | ${h.age_component(h.time_to_utcdatetime(updated_on))} | |||
</%def> | ||||
<%def name="pullrequest_author(full_contact)"> | ||||
r4026 | ${base.gravatar_with_user(full_contact, 16, tooltip=True)} | |||
r1282 | </%def> | |||
r2816 | ||||
r3675 | ## ARTIFACT RENDERERS | |||
r3987 | <%def name="repo_artifact_name(repo_name, file_uid, artifact_display_name)"> | |||
<a href="${h.route_path('repo_artifacts_get', repo_name=repo_name, uid=file_uid)}"> | ||||
r3991 | ${artifact_display_name or '_EMPTY_NAME_'} | |||
r3987 | </a> | |||
</%def> | ||||
r3675 | ||||
r4661 | <%def name="repo_artifact_admin_name(file_uid, artifact_display_name)"> | |||
<a href="${h.route_path('admin_artifacts_show_info', uid=file_uid)}"> | ||||
${(artifact_display_name or '_EMPTY_NAME_')} | ||||
</a> | ||||
</%def> | ||||
r3729 | <%def name="repo_artifact_uid(repo_name, file_uid)"> | |||
r3991 | <code>${h.shorter(file_uid, size=24, prefix=True)}</code> | |||
r3675 | </%def> | |||
r3966 | <%def name="repo_artifact_sha256(artifact_sha256)"> | |||
r4089 | <div class="code">${h.shorter(artifact_sha256, 12)}</div> | |||
r3966 | </%def> | |||
r3675 | <%def name="repo_artifact_actions(repo_name, file_store_id, file_uid)"> | |||
## <div class="grid_edit"> | ||||
## <a href="#Edit" title="${_('Edit')}">${_('Edit')}</a> | ||||
## </div> | ||||
r3966 | <div class="grid_edit"> | |||
<a href="${h.route_path('repo_artifacts_info', repo_name=repo_name, uid=file_store_id)}" title="${_('Info')}">${_('Info')}</a> | ||||
</div> | ||||
% if h.HasRepoPermissionAny('repository.admin')(c.repo_name): | ||||
r3678 | <div class="grid_delete"> | |||
r3675 | ${h.secure_form(h.route_path('repo_artifacts_delete', repo_name=repo_name, uid=file_store_id), request=request)} | |||
r4313 | <input class="btn btn-link btn-danger" id="remove_artifact_${file_store_id}" name="remove_artifact_${file_store_id}" | |||
onclick="submitConfirm(event, this, _gettext('Confirm to delete this artifact'), _gettext('Delete'), '${file_uid}')" | ||||
type="submit" value="${_('Delete')}" | ||||
> | ||||
r3675 | ${h.end_form()} | |||
</div> | ||||
r3678 | % endif | |||
r3675 | </%def> | |||
r4661 | ||||
r2816 | <%def name="markup_form(form_id, form_text='', help_text=None)"> | |||
<div class="markup-form"> | ||||
<div class="markup-form-area"> | ||||
<div class="markup-form-area-header"> | ||||
<ul class="nav-links clearfix"> | ||||
<li class="active"> | ||||
<a href="#edit-text" tabindex="-1" id="edit-btn_${form_id}">${_('Write')}</a> | ||||
</li> | ||||
<li class=""> | ||||
<a href="#preview-text" tabindex="-1" id="preview-btn_${form_id}">${_('Preview')}</a> | ||||
</li> | ||||
</ul> | ||||
</div> | ||||
<div class="markup-form-area-write" style="display: block;"> | ||||
r4543 | <div id="edit-container_${form_id}" style="margin-top: -1px"> | |||
r2816 | <textarea id="${form_id}" name="${form_id}" class="comment-block-ta ac-input">${form_text if form_text else ''}</textarea> | |||
</div> | ||||
<div id="preview-container_${form_id}" class="clearfix" style="display: none;"> | ||||
<div id="preview-box_${form_id}" class="preview-box"></div> | ||||
</div> | ||||
</div> | ||||
<div class="markup-form-area-footer"> | ||||
<div class="toolbar"> | ||||
<div class="toolbar-text"> | ||||
${(_('Parsed using %s syntax') % ( | ||||
('<a href="%s">%s</a>' % (h.route_url('%s_help' % c.visual.default_renderer), c.visual.default_renderer.upper())), | ||||
) | ||||
)|n} | ||||
</div> | ||||
</div> | ||||
</div> | ||||
</div> | ||||
<div class="markup-form-footer"> | ||||
% if help_text: | ||||
<span class="help-block">${help_text}</span> | ||||
% endif | ||||
</div> | ||||
</div> | ||||
<script type="text/javascript"> | ||||
new MarkupForm('${form_id}'); | ||||
</script> | ||||
</%def> | ||||