reorganize toolshed repo page, add more fields

provide clipboard, provide more links
This commit is contained in:
Martin Cech
2015-03-23 16:52:19 -04:00
parent 3e65ea520c
commit a24e206ff7
4 changed files with 101 additions and 76 deletions
@@ -2252,6 +2252,8 @@ class RepositoryController( BaseUIController, ratings_util.ItemRatings ):
repo = hg_util.get_repo_for_repository( trans.app, repository=None, repo_path=repo_dir, create=False )
repo_name = kwd.get( 'repo_name', repository.name )
changeset_revision = kwd.get( 'changeset_revision', repository.tip( trans.app ) )
repository.share_url = suc.generate_sharable_link_for_repository_in_tool_shed( repository, changeset_revision=changeset_revision )
repository.clone_url = common_util.generate_clone_url_for_repository_in_tool_shed( trans.user, repository )
remote_repository_url = kwd.get( 'remote_repository_url', repository.remote_repository_url )
homepage_url = kwd.get( 'homepage_url', repository.homepage_url )
description = kwd.get( 'description', repository.description )
@@ -3297,6 +3299,8 @@ class RepositoryController( BaseUIController, ratings_util.ItemRatings ):
repo = hg_util.get_repo_for_repository( trans.app, repository=repository, repo_path=None, create=False )
avg_rating, num_ratings = self.get_ave_item_rating_data( trans.sa_session, repository, webapp_model=trans.model )
changeset_revision = kwd.get( 'changeset_revision', repository.tip( trans.app ) )
repository.share_url = suc.generate_sharable_link_for_repository_in_tool_shed( repository, changeset_revision=changeset_revision )
repository.clone_url = common_util.generate_clone_url_for_repository_in_tool_shed( trans.user, repository )
display_reviews = kwd.get( 'display_reviews', False )
alerts = kwd.get( 'alerts', '' )
alerts_checked = CheckboxField.is_checked( alerts )
@@ -1,6 +1,7 @@
<%def name="common_javascripts(repository)">
<script type="text/javascript">
$(function(){
$("#tree").ajaxComplete(function(event, XMLHttpRequest, ajaxOptions) {
_log("debug", "ajaxComplete: %o", this); // dom element listening
});
@@ -158,6 +159,14 @@
};
$(function() {
init_dependencies();
$('#clone_clipboard').on('click', function( event ) {
event.preventDefault();
window.prompt("Copy to clipboard: Ctrl+C, Enter", "hg clone ${ repository.clone_url }");
});
$('#share_clipboard').on('click', function( event ) {
event.preventDefault();
window.prompt("Copy to clipboard: Ctrl+C, Enter", "${ repository.share_url }");
});
});
</script>
</%def>
@@ -210,16 +219,13 @@
from tool_shed.util.shed_util_common import generate_sharable_link_for_repository_in_tool_shed
sharable_link = generate_sharable_link_for_repository_in_tool_shed( repository, changeset_revision=changeset_revision )
%>
<a href="${sharable_link}">${sharable_link}</a>
<a href="${ sharable_link }" target="_blank">${ sharable_link }</a>
</%def>
<%def name="render_clone_str( repository )">
<%
<%def name="render_clone_str( repository )"><%
from tool_shed.util.common_util import generate_clone_url_for_repository_in_tool_shed
clone_str = generate_clone_url_for_repository_in_tool_shed( trans.user, repository )
%>
hg clone <a href="${clone_str}">${clone_str}</a>
</%def>
%>hg clone ${ clone_str }</%def>
<%def name="render_folder( folder, folder_pad, parent=None, row_counter=None, is_root_folder=False, render_repository_actions_for='tool_shed' )">
<%
@@ -157,49 +157,32 @@ ${render_tool_shed_repository_actions( repository, metadata=metadata, changeset_
<p/>
%endif
<div class="toolForm">
<div class="toolFormTitle">Repository '${repository.name | h}'</div>
<div class="toolFormTitle">Repository <b>${repository.name | h}</b></div>
<div class="toolFormBody">
<form name="edit_repository" id="edit_repository" action="${h.url_for( controller='repository', action='manage_repository', id=trans.security.encode_id( repository.id ) )}" method="post" >
<div class="form-row">
<label>${sharable_link_label}</label>
${render_sharable_str( repository, changeset_revision=sharable_link_changeset_revision )}
</div>
%if can_download or can_push:
<div class="form-row">
<label>Clone this repository:</label>
${render_clone_str( repository )}
</div>
%endif
<div class="form-row">
<label>Name:</label>
<b>Name:</b>
%if repository.times_downloaded > 0:
${repository.name}
<a title="Browse the contents of this repository" href="${h.url_for( controller='repository', action='browse_repository', id=trans.app.security.encode_id( repository.id ) )}">${repository.name}</a>
<div class="toolParamHelp" style="clear: both;">
Repository names cannot be changed if the repository has been cloned.
</div>
%else:
<input name="repo_name" type="textfield" value="${repository.name | h}" size="40"/>
%endif
<div class="toolParamHelp" style="clear: both;">
Repository names cannot be changed if the repository has been cloned.
</div>
<div style="clear: both"></div>
</div>
${render_repository_type_select_field( repository_type_select_field, render_help=True )}
<div class="form-row">
<label>Remote repository URL:</label>
<input name="remote_repository_url" type="textfield" value="${remote_repository_url | h}" size="80"/>
<div style="clear: both"></div>
</div>
<div class="form-row">
<label>Homepage URL:</label>
<input name="homepage_url" type="textfield" value="${homepage_url | h}" size="80"/>
<div style="clear: both"></div>
<b>Owner:</b>
<a title="See all repositories owned by ${ repository.user.username | h }" href="${h.url_for( controller='repository', action='browse_repositories_by_user', user_id=trans.app.security.encode_id( repository.user.id ) )}">${ repository.user.username | h }</a>
</div>
<div class="form-row">
<label>Synopsis:</label>
<b>Synopsis:</b>
<input name="description" type="textfield" value="${description | h}" size="80"/>
<div style="clear: both"></div>
</div>
<div class="form-row">
<label>Detailed description:</label>
<b>Detailed description:</b>
%if long_description:
<pre><textarea name="long_description" rows="3" cols="80">${long_description | h}</textarea></pre>
%else:
@@ -208,32 +191,51 @@ ${render_tool_shed_repository_actions( repository, metadata=metadata, changeset_
<div style="clear: both"></div>
</div>
<div class="form-row">
<label>Revision:</label>
<b>Content homepage:</b>
<input name="homepage_url" type="textfield" value="${homepage_url | h}" size="80"/>
<div style="clear: both"></div>
</div>
<div class="form-row">
<b>Development repository:</b>
<input name="remote_repository_url" type="textfield" value="${remote_repository_url | h}" size="80"/>
<div style="clear: both"></div>
</div>
<div class="form-row">
<b>${sharable_link_label}</b>
<a href="${ repository.share_url }" target="_blank">${ repository.share_url }</a>
<button title="to clipboard" class="btn btn-default btn-xs" id="share_clipboard"><span class="fa fa-clipboard"></span></button>
</div>
%if can_download or can_push:
<div class="form-row">
<b>Clone this repository:</b>
<code>hg clone ${ repository.clone_url }</code>
<button title="to clipboard" class="btn btn-default btn-xs" id="clone_clipboard"><span class="fa fa-clipboard"></span></button>
</div>
%endif
${render_repository_type_select_field( repository_type_select_field, render_help=True )}
<div class="form-row">
<b>Revision:</b>
%if can_view_change_log:
<a href="${h.url_for( controller='repository', action='view_changelog', id=trans.app.security.encode_id( repository.id ) )}">${revision_label}</a>
<a title="See the revision history" href="${h.url_for( controller='repository', action='view_changelog', id=trans.app.security.encode_id( repository.id ) )}">${revision_label}</a>
%else:
${revision_label}
%endif
</div>
<div class="form-row">
<label>Owner:</label>
${repository.user.username | h}
</div>
<div class="form-row">
<label>This revision can be installed:</label>
<b>This revision can be installed:</b>
${revision_installable}
</div>
<div class="form-row">
<label>Times cloned / installed:</label>
<b>Times cloned / installed:</b>
${repository.times_downloaded | h}
</div>
%if is_admin:
<div class="form-row">
<label>Location:</label>
<b>Location:</b>
${repository.repo_path( trans.app ) | h}
</div>
<div class="form-row">
<label>Deleted:</label>
<b>Deleted:</b>
${repository.deleted | h}
</div>
%endif
@@ -19,11 +19,11 @@
if changeset_revision_is_repository_tip:
tip_str = 'repository tip'
sharable_link_label = 'Sharable link to this repository:'
sharable_link_label = 'Link to this repository:'
sharable_link_changeset_revision = None
else:
tip_str = ''
sharable_link_label = 'Sharable link to this repository revision:'
sharable_link_label = 'Link to this repository revision:'
sharable_link_changeset_revision = changeset_revision
if heads:
@@ -99,65 +99,78 @@
<p/>
%endif
<div class="toolForm">
<div class="toolFormTitle">Repository '${repository.name | h}'</div>
<div class="toolFormTitle">Repository <b>${repository.name | h}</b></div>
<div class="toolFormBody">
<div class="form-row">
<label>${sharable_link_label}</label>
${render_sharable_str( repository, changeset_revision=sharable_link_changeset_revision )}
</div>
%if can_download or can_push:
<div class="form-row">
<label>Clone this repository:</label>
${render_clone_str( repository )}
</div>
%endif
<div class="form-row">
<label>Name:</label>
<b>Name:</b>\
%if can_browse_contents:
<a href="${h.url_for( controller='repository', action='browse_repository', id=trans.app.security.encode_id( repository.id ) )}">${repository.name}</a>
<a title="Browse the contents of this repository" href="${h.url_for( controller='repository', action='browse_repository', id=trans.app.security.encode_id( repository.id ) )}">${repository.name}</a>
%else:
${repository.name | h}
%endif
</div>
<div class="form-row">
<label>Type:</label>
<b>Owner:</b>
<a title="See all repositories owned by ${ repository.user.username | h }" href="${h.url_for( controller='repository', action='browse_repositories_by_user', user_id=trans.app.security.encode_id( repository.user.id ) )}">${ repository.user.username | h }</a>
</div>
<div class="form-row">
<b>Synopsis:</b>
${repository.description | h}
</div>
%if repository.long_description:
<div class="form-row">
<p>${repository.long_description|h}</p>
## ${render_long_description( to_html_string( repository.long_description ) )}
</div>
%endif
<div class="form-row">
<b>Content homepage:</b>
<a href="${repository.homepage_url | h}" target="_blank">${repository.homepage_url | h}</a>
</div>
<div class="form-row">
<b>Development repository:</b>
<a href="${repository.remote_repository_url | h}" target="_blank">${repository.remote_repository_url | h}</a>
</div>
<div class="form-row">
<b>${sharable_link_label}</b>
<a href="${ repository.share_url }" target="_blank">${ repository.share_url }</a>
<button title="to clipboard" class="btn btn-default btn-xs" id="share_clipboard"><span class="fa fa-clipboard"></span></button>
</div>
%if can_download or can_push:
<div class="form-row">
<b>Clone this repository:</b>
<code>hg clone ${ repository.clone_url }</code>
<button title="to clipboard" class="btn btn-default btn-xs" id="clone_clipboard"><span class="fa fa-clipboard"></span></button>
</div>
%endif
<div class="form-row">
<b>Type:</b>
${repository.type | h}
<div style="clear: both"></div>
</div>
<div class="form-row">
<label>Synopsis:</label>
${repository.description | h}
</div>
%if repository.long_description:
${render_long_description( to_html_string( repository.long_description ) )}
%endif
<div class="form-row">
<label>Revision:</label>
<b>Revision:</b>
%if can_view_change_log:
<a href="${h.url_for( controller='repository', action='view_changelog', id=trans.app.security.encode_id( repository.id ) )}">${revision_label}</a>
<a title="See the revision history" href="${h.url_for( controller='repository', action='view_changelog', id=trans.app.security.encode_id( repository.id ) )}">${revision_label}</a>
%else:
${revision_label}
%endif
</div>
<div class="form-row">
<label>Owner:</label>
${repository.user.username | h}
</div>
<div class="form-row">
<label>This revision can be installed:</label>
<b>This revision can be installed:</b>
${revision_installable}
</div>
<div class="form-row">
<label>Times cloned / installed:</label>
<b>Times cloned / installed:</b>
${repository.times_downloaded}
</div>
%if trans.user_is_admin():
<div class="form-row">
<label>Location:</label>
<b>Location:</b>
${repository.repo_path( trans.app ) | h}
</div>
<div class="form-row">
<label>Deleted:</label>
<b>Deleted:</b>
${repository.deleted}
</div>
%endif