Change GUI references to Library to now be Data Library, and merge 2 history grid templates into 1.

This commit is contained in:
Greg Von Kuster
2009-08-14 09:22:31 -04:00
parent 87b9fda383
commit fb6e5ed8cc
43 changed files with 84 additions and 483 deletions
+4 -4
View File
@@ -161,7 +161,7 @@ class HistoryController( BaseController ):
status, message = self._list_undelete( trans, histories )
trans.sa_session.flush()
# Render the list view
return self.stored_list_grid( trans, status=status, message=message, template='/history/stored_grid.mako', **kwargs )
return self.stored_list_grid( trans, status=status, message=message, template='/history/grid.mako', **kwargs )
def _list_delete( self, trans, histories ):
"""Delete histories"""
n_deleted = 0
@@ -239,14 +239,14 @@ class HistoryController( BaseController ):
if operation == "clone":
if not id:
message = "Select a history to clone"
return self.shared_list_grid( trans, status='error', message=message, template='/history/shared_grid.mako', **kwargs )
return self.shared_list_grid( trans, status='error', message=message, template='/history/grid.mako', **kwargs )
# When cloning shared histories, only copy active datasets
new_kwargs = { 'clone_choice' : 'active' }
return self.clone( trans, id, **new_kwargs )
elif operation == 'unshare':
if not id:
message = "Select a history to unshare"
return self.shared_list_grid( trans, status='error', message=message, template='/history/shared_grid.mako', **kwargs )
return self.shared_list_grid( trans, status='error', message=message, template='/history/grid.mako', **kwargs )
ids = util.listify( id )
histories = []
for history_id in ids:
@@ -260,7 +260,7 @@ class HistoryController( BaseController ):
message = "Unshared %d shared histories" % len( ids )
status = 'done'
# Render the list view
return self.shared_list_grid( trans, status=status, message=message, template='/history/shared_grid.mako', **kwargs )
return self.shared_list_grid( trans, status=status, message=message, template='/history/grid.mako', **kwargs )
@web.expose
def delete_current( self, trans ):
"""Delete just the active history -- this does not require a logged in user."""
+12 -17
View File
@@ -152,16 +152,12 @@ class Requests( BaseController ):
helptext=''))
# library associated
if request.library:
request_details.append(dict(label='Library',
value=request.library.name,
helptext='Associated library where the resultant \
dataset will be stored'))
value = request.library.name
else:
request_details.append(dict(label='Library',
value=None,
helptext='Associated library where the resultant \
dataset will be stored'))
value = None
request_details.append( dict( label='Data library',
value=value,
helptext='Data library where the resultant dataset will be stored' ) )
# form fields
for index, field in enumerate(request.type.request_form.fields):
if field['required']:
@@ -492,18 +488,17 @@ class Requests( BaseController ):
else:
lib_list.add_option(lib.name, lib.id)
if lib_id == 'new':
lib_list.add_option('Create a new library', 'new', selected=True)
lib_list.add_option('Create a new data library', 'new', selected=True)
else:
lib_list.add_option('Create a new library', 'new')
widget = dict(label='Library',
lib_list.add_option('Create a new data library', 'new')
widget = dict(label='Data library',
widget=lib_list,
helptext='Associated library where the resultant \
dataset will be stored.')
helptext='Data library where the resultant dataset will be stored.')
if lib_id == 'new':
new_lib = dict(label='Create a new Library',
new_lib = dict(label='Create a new data library',
widget=TextField('new_library_name', 40,
util.restore_text( params.get( 'new_library_name', '' ) )),
helptext='Enter a library name here to request a new library')
helptext='Enter a name here to request a new data library')
return [widget, new_lib]
else:
return [widget]
@@ -558,7 +553,7 @@ class Requests( BaseController ):
'''
empty_fields = []
if not request.library:
empty_fields.append('Library')
empty_fields.append('Data library')
# check rest of the fields of the form
for index, field in enumerate(request.type.request_form.fields):
if field['required'] == 'required' and request.values.content[index] in ['', None]:
+2 -3
View File
@@ -144,10 +144,9 @@ class Requests( BaseController ):
value=str(request.user.email),
helptext=''))
# library associated
request_details.append(dict(label='Library',
request_details.append(dict(label='Data library',
value=trans.app.model.Library.get(request.library_id).name,
helptext='Associated library where the resultant \
dataset will be stored'))
helptext='Data library where the resultant dataset will be stored'))
# form fields
for index, field in enumerate(request.type.request_form.fields):
if field['required']:
+11 -11
View File
@@ -17,7 +17,7 @@
<li>
<strong>Manage groups</strong> - provides a view of all groups along with the members of the group and the roles associated with
each group (both private and non-private roles). Non-private roles include a link to a page that allows you to manage the users
and groups that are associated with the role. The page also includes a view of the library datasets that are associated with the
and groups that are associated with the role. The page also includes a view of the data library datasets that are associated with the
role and the permissions applied to each dataset.
</li>
<p/>
@@ -32,9 +32,9 @@
<p/>
<ul>
<li>
<strong>Manage libraries</strong> - Dataset libraries enable a Galaxy administrator to upload datasets into a library. Currently,
only administrators can create dataset libraries, but permission to perform the following functions on the library can be granted to
users (a library item is one of: a library, a library folder, a library dataset).
<strong>Manage data libraries</strong> - Data libraries enable a Galaxy administrator to upload datasets into a data library. Currently,
only administrators can create data libraries, but permission to perform the following functions on the data library can be granted to
users (a library item is one of: a data library, a library folder, a library dataset).
<p/>
<ul>
<li><strong>add library item</strong> - Role members can add library items to this library or folder</li>
@@ -42,12 +42,12 @@
<li><strong>manage library permissions</strong> - Role members can manage permissions applied to this library item</li>
</ul>
<p/>
The default behavior is for no permissions to be applied to a library item, but applied permissions are inherited downward, so it is
important to set desired permissions on a new library when it is created. When this is done, new folders and datasets added to the
library will automatically inherit those permissions. In the same way, permissions can be applied to a folder, which will be
The default behavior is for no permissions to be applied to a data library item, but applied permissions are inherited downward, so it is
important to set desired permissions on a new data library when it is created. When this is done, new folders and datasets added to the
data library will automatically inherit those permissions. In the same way, permissions can be applied to a folder, which will be
automatically inherited by all contained datasets and sub-folders.
<p/>
The "Libraries" menu item allows users to access the datasets in a library as long as they are not restricted from accessing them.
The "Data Libraries" menu item allows users to access the datasets in a data library as long as they are not restricted from accessing them.
Importing a library dataset into a history will not make a copy of the dataset, but will be a "pointer" to the dataset on disk. This
approach allows for multiple users to use a single (possibly very large) dataset file.
</li>
@@ -72,7 +72,7 @@
</ul>
</li>
</ul>
<p><strong>Data Security and Dataset Libraries</strong></p>
<p><strong>Data Security and Data Libraries</strong></p>
<p/>
<strong>Security</strong> - Data security in Galaxy is a new feature, so familiarize yourself with the details which can be found
here or in our <a href="http://g2.trac.bx.psu.edu/wiki/SecurityFeatures" target="_blank">data security page</a>. The data security
@@ -121,8 +121,8 @@ in the way Galaxy has behaved in the past.
<strong>access</strong> - users associated with the role can import this dataset into their history for analysis.
<p>
If no roles with the "access" permission are associated with a dataset, the dataset is "public" and may be accessed by
anyone. Public library datasets will be accessible to all users (as well as anyone not logged in during a Galaxy session)
from the list of libraries displayed when the "Libraries" menu item is selected.
anyone. Public data library datasets will be accessible to all users (as well as anyone not logged in during a Galaxy session)
from the list of data libraries displayed when the "Data Libraries" menu item is selected.
</p>
<p>
Associating a dataset with a role that includes the "access" permission restricts the set of users that can access it.
+1 -1
View File
@@ -84,7 +84,7 @@ $().ready(function() {
<br clear="left"/>
<br/>
%if len( library_dataset_actions ) > 0:
<h3>Library datasets associated with role '${role.name}'</h3>
<h3>Data library datasets associated with role '${role.name}'</h3>
<table class="manage-table colored" border="0" cellspacing="0" cellpadding="0" width="100%">
<tr>
<td>
+1 -1
View File
@@ -89,7 +89,7 @@
</div>
<div class="toolSectionBody">
<div class="toolSectionBg">
<div class="toolTitle"><a href="${h.url_for( controller='admin', action='browse_libraries' )}" target="galaxy_main">Manage libraries</a></div>
<div class="toolTitle"><a href="${h.url_for( controller='admin', action='browse_libraries' )}" target="galaxy_main">Manage data libraries</a></div>
</div>
</div>
<div class="toolSectionPad"></div>
@@ -1,13 +1,13 @@
<%inherit file="/base.mako"/>
<%namespace file="/message.mako" import="render_msg" />
<%def name="title()">Browse Libraries</%def>
<%def name="title()">Browse Data Libraries</%def>
<h2>
%if deleted:
Deleted
%endif
Libraries
Data Libraries
</h2>
<ul class="manage-table-actions">
+11 -11
View File
@@ -162,16 +162,16 @@ def name_sorted( l ):
%if deleted:
Deleted
%endif
Library '${library.name}'
Data Library &ldquo;${library.name}&rdquo;
</h2>
<ul class="manage-table-actions">
%if not deleted:
<li>
<a class="action-button" href="${h.url_for( controller='admin', action='library_dataset_dataset_association', library_id=library.id, folder_id=library.root_folder.id )}"><span>Add datasets to this library</span></a>
<a class="action-button" href="${h.url_for( controller='admin', action='library_dataset_dataset_association', library_id=library.id, folder_id=library.root_folder.id )}"><span>Add datasets to this data library</span></a>
</li>
<li>
<a class="action-button" href="${h.url_for( controller='admin', action='folder', new=True, id=library.root_folder.id, library_id=library.id )}">Add a folder to this library</a>
<a class="action-button" href="${h.url_for( controller='admin', action='folder', new=True, id=library.root_folder.id, library_id=library.id )}">Add a folder to this data library</a>
</li>
%endif
</ul>
@@ -200,24 +200,24 @@ def name_sorted( l ):
library_item_ids = {}
library_item_ids[ 'library' ] = library.id
%>
<a class="action-button" href="${h.url_for( controller='admin', action='library', id=library.id, information=True )}">Edit this library's information</a>
<a class="action-button" href="${h.url_for( controller='admin', action='library', id=library.id, information=True )}">Edit this data library's information</a>
## Editing templates disabled until we determine optimal approach to re-linking library item to new version of form definition
##%if library.info_association:
## <% form_id = library.info_association[0].template.id %>
## <a class="action-button" href="${h.url_for( controller='forms', action='edit', form_id=form_id, show_form=True )}">Edit this library's information template</a>
## <a class="action-button" href="${h.url_for( controller='forms', action='edit', form_id=form_id, show_form=True )}">Edit this data library's information template</a>
##%else:
%if not library.info_association:
<a class="action-button" href="${h.url_for( controller='admin', action='info_template', library_id=library.id, add=True )}">Add an information template to this library</a>
<a class="action-button" href="${h.url_for( controller='admin', action='info_template', library_id=library.id, add=True )}">Add an information template to this data library</a>
%endif
<a class="action-button" href="${h.url_for( controller='admin', action='library', id=library.id, permissions=True )}">Edit this library's permissions</a>
<a class="action-button" confirm="Click OK to delete the library named '${library.name}'." href="${h.url_for( controller='admin', action='delete_library_item', library_id=library.id, library_item_id=library.id, library_item_type='library' )}">Delete this library and its contents</a>
<a class="action-button" href="${h.url_for( controller='admin', action='library', id=library.id, permissions=True )}">Edit this data library's permissions</a>
<a class="action-button" confirm="Click OK to delete the library named '${library.name}'." href="${h.url_for( controller='admin', action='delete_library_item', library_id=library.id, library_item_id=library.id, library_item_type='library' )}">Delete this data library and its contents</a>
%if show_deleted:
<a class="action-button" href="${h.url_for( controller='admin', action='browse_library', id=library.id, show_deleted=False )}">Hide deleted library items</a>
<a class="action-button" href="${h.url_for( controller='admin', action='browse_library', id=library.id, show_deleted=False )}">Hide deleted data library items</a>
%else:
<a class="action-button" href="${h.url_for( controller='admin', action='browse_library', id=library.id, show_deleted=True )}">Show deleted library items</a>
<a class="action-button" href="${h.url_for( controller='admin', action='browse_library', id=library.id, show_deleted=True )}">Show deleted data library items</a>
%endif
%elif not library.purged:
<a class="action-button" href="${h.url_for( controller='admin', action='undelete_library_item', library_id=library.id, library_item_id=library.id, library_item_type='library' )}">Undelete this library</a>
<a class="action-button" href="${h.url_for( controller='admin', action='undelete_library_item', library_id=library.id, library_item_id=library.id, library_item_type='library' )}">Undelete this data library</a>
%endif
</div>
</th>
+1 -1
View File
@@ -5,7 +5,7 @@
<br/><br/>
<ul class="manage-table-actions">
<li>
<a class="action-button" href="${h.url_for( controller='admin', action='browse_library', id=library_id )}"><span>Browse this library</span></a>
<a class="action-button" href="${h.url_for( controller='admin', action='browse_library', id=library_id )}"><span>Browse this data library</span></a>
</li>
</ul>
@@ -5,7 +5,7 @@
<br/><br/>
<ul class="manage-table-actions">
<li>
<a class="action-button" href="${h.url_for( controller='admin', action='browse_library', id=library_id )}"><span>Browse this library</span></a>
<a class="action-button" href="${h.url_for( controller='admin', action='browse_library', id=library_id )}"><span>Browse this data library</span></a>
</li>
</ul>
+1 -1
View File
@@ -12,7 +12,7 @@
<ul class="manage-table-actions">
<li>
<a class="action-button" href="${h.url_for( controller='admin', action='browse_library', id=library_id )}"><span>Browse this library</span></a>
<a class="action-button" href="${h.url_for( controller='admin', action='browse_library', id=library_id )}"><span>Browse this data library</span></a>
</li>
</ul>
+1 -1
View File
@@ -20,7 +20,7 @@
<ul class="manage-table-actions">
<li>
<a class="action-button" href="${h.url_for( controller='admin', action='browse_library', id=library_id, deleted=library.deleted, show_deleted=show_deleted )}"><span>Browse this library</span></a>
<a class="action-button" href="${h.url_for( controller='admin', action='browse_library', id=library_id, deleted=library.deleted, show_deleted=show_deleted )}"><span>Browse this data library</span></a>
</li>
</ul>
@@ -15,7 +15,7 @@
<br/><br/>
<ul class="manage-table-actions">
<li>
<a class="action-button" href="${h.url_for( controller='admin', action='browse_library', id=library_id )}"><span>Browse this library</span></a>
<a class="action-button" href="${h.url_for( controller='admin', action='browse_library', id=library_id )}"><span>Browse this data library</span></a>
</li>
</ul>
@@ -11,7 +11,7 @@
<ul class="manage-table-actions">
<li>
<a class="action-button" href="${h.url_for( controller='admin', action='browse_library', id=library_id )}"><span>Browse this library</span></a>
<a class="action-button" href="${h.url_for( controller='admin', action='browse_library', id=library_id )}"><span>Browse this data library</span></a>
</li>
</ul>
@@ -11,7 +11,7 @@
<ul class="manage-table-actions">
<li>
<a class="action-button" href="${h.url_for( controller='admin', action='browse_library', id=library_id )}"><span>Browse this library</span></a>
<a class="action-button" href="${h.url_for( controller='admin', action='browse_library', id=library_id )}"><span>Browse this data library</span></a>
</li>
</ul>
+1 -1
View File
@@ -5,7 +5,7 @@
<br/><br/>
<ul class="manage-table-actions">
<li>
<a class="action-button" href="${h.url_for( controller='admin', action='browse_library', id=library.id )}"><span>Browse this library</span></a>
<a class="action-button" href="${h.url_for( controller='admin', action='browse_library', id=library.id )}"><span>Browse this data library</span></a>
</li>
</ul>
@@ -5,7 +5,7 @@
<br/><br/>
<ul class="manage-table-actions">
<li>
<a class="action-button" href="${h.url_for( controller='admin', action='browse_library', id=library.id )}"><span>Browse this library</span></a>
<a class="action-button" href="${h.url_for( controller='admin', action='browse_library', id=library.id )}"><span>Browse this data library</span></a>
</li>
</ul>
+3 -3
View File
@@ -4,7 +4,7 @@
<% import os, os.path %>
<b>Create new library datasets</b>
<b>Create new data library datasets</b>
<a id="upload-librarydataset--popup" class="popup-arrow" style="display: none;">&#9660;</a>
<div popupmenu="upload-librarydataset--popup">
<a class="action-button" href="${h.url_for( controller='admin', action='library_dataset_dataset_association', library_id=library_id, folder_id=folder_id, replace_id=replace_id, upload_option='upload_file' )}">Upload files</a>
@@ -16,7 +16,7 @@
<br/><br/>
<ul class="manage-table-actions">
<li>
<a class="action-button" href="${h.url_for( controller='admin', action='browse_library', id=library_id )}"><span>Browse this library</span></a>
<a class="action-button" href="${h.url_for( controller='admin', action='browse_library', id=library_id )}"><span>Browse this data library</span></a>
</li>
</ul>
@@ -142,7 +142,7 @@
<textarea name="message" rows="3" cols="35"></textarea>
</div>
<div class="toolParamHelp" style="clear: both;">
This information will be displayed in the "Information" column for this dataset in the library browser
This information will be displayed in the "Information" column for this dataset in the data library browser
</div>
<div style="clear: both"></div>
</div>
+1 -1
View File
@@ -4,7 +4,7 @@
<br/<br/>
<ul class="manage-table-actions">
<li>
<a class="action-button" href="${h.url_for( controller='admin', action='browse_library', id=library_id )}"><span>Browse this library</span></a>
<a class="action-button" href="${h.url_for( controller='admin', action='browse_library', id=library_id )}"><span>Browse this data library</span></a>
</li>
</ul>
+2 -2
View File
@@ -6,13 +6,13 @@
%endif
<div class="toolForm">
<div class="toolFormTitle">Create a new library</div>
<div class="toolFormTitle">Create a new data library</div>
<div class="toolFormBody">
<form name="library" action="${h.url_for( controller='admin', action='library' )}" method="post" >
<div class="form-row">
<label>Name:</label>
<div style="float: left; width: 250px; margin-right: 10px;">
<input type="text" name="name" value="New Library" size="40"/>
<input type="text" name="name" value="New data library" size="40"/>
</div>
<div style="clear: both"></div>
</div>
@@ -4,7 +4,7 @@
<br/><br/>
<ul class="manage-table-actions">
<li>
<a class="action-button" href="${h.url_for( controller='admin', action='browse_library', id=library_id )}"><span>Browse this library</span></a>
<a class="action-button" href="${h.url_for( controller='admin', action='browse_library', id=library_id )}"><span>Browse this data library</span></a>
</li>
</ul>
+1 -1
View File
@@ -48,7 +48,7 @@
%if not rd['value']:
<i>None</i>
%else:
%if rd['label'] == 'Library':
%if rd['label'] == 'Data library':
<a href="${h.url_for( controller='admin', action='browse_library', id=request.library.id )}">${rd['value']}</a>
%else:
${rd['value']}
+2 -2
View File
@@ -139,14 +139,14 @@
${tab( "workflow", "Workflow", h.url_for( controller='workflow', action='index' ))}
${tab( "libraries", "Libraries", h.url_for( controller='library', action='index' ))}
${tab( "libraries", "Data Libraries", h.url_for( controller='library', action='index' ))}
%if trans.request_types():
<td class="tab">
<a>Lab</a>
<div class="submenu">
<ul>
<li><a target="requests" href="${h.url_for( controller='requests', action='index' )}">Sequencing Requests</a></li>
<li><a href="${h.url_for( controller='requests', action='index' )}">Sequencing Requests</a></li>
</ul>
</div>
</td>
-197
View File
@@ -1,197 +0,0 @@
<%inherit file="/base.mako"/>
<%namespace file="/message.mako" import="render_msg" />
<%def name="title()">${grid.title}</%def>
<%def name="javascripts()">
${parent.javascripts()}
<script type="text/javascript">
## TODO: generalize and move into galaxy.base.js
$(document).ready(function() {
$(".grid").each( function() {
var grid = this;
var checkboxes = $(this).find("input.grid-row-select-checkbox");
var update = $(this).find( "span.grid-selected-count" );
$(checkboxes).each( function() {
$(this).change( function() {
var n = $(checkboxes).filter("[checked]").size();
update.text( n );
});
})
});
});
## Can this be moved into base.mako?
%if refresh_frames:
%if 'masthead' in refresh_frames:
## Refresh masthead == user changes (backward compatibility)
if ( parent.user_changed ) {
%if trans.user:
parent.user_changed( "${trans.user.email}", ${int( app.config.is_admin_user( trans.user ) )} );
%else:
parent.user_changed( null, false );
%endif
}
%endif
%if 'history' in refresh_frames:
if ( parent.frames && parent.frames.galaxy_history ) {
parent.frames.galaxy_history.location.href="${h.url_for( controller='root', action='history')}";
if ( parent.force_right_panel ) {
parent.force_right_panel( 'show' );
}
}
%endif
%if 'tools' in refresh_frames:
if ( parent.frames && parent.frames.galaxy_tools ) {
parent.frames.galaxy_tools.location.href="${h.url_for( controller='root', action='tool_menu')}";
if ( parent.force_left_panel ) {
parent.force_left_panel( 'show' );
}
}
%endif
%endif
</script>
</%def>
<%def name="stylesheets()">
<link href="${h.url_for('/static/style/base.css')}" rel="stylesheet" type="text/css" />
<style>
## Not generic to all grids -- move to base?
.count-box {
min-width: 1.1em;
padding: 5px;
border-width: 1px;
border-style: solid;
text-align: center;
display: inline-block;
}
</style>
</%def>
%if grid.standard_filters:
<div class="grid-header">
<h2>${grid.title}</h2>
<span class="title">Filter:</span>
%for i, filter in enumerate( grid.standard_filters ):
%if i > 0:
<span>|</span>
%endif
<span class="filter"><a href="${url( filter.get_url_args() )}">${filter.label}</a></span>
%endfor
</div>
%endif
%if message:
<p>
<div class="${message_type}message transient-message">${message}</div>
<div style="clear: both"></div>
</p>
%endif
%if msg:
${render_msg( msg, messagetype )}
%endif
<form name="history_shared_by_others" action="${url()}" method="post" >
<table class="grid">
<thead>
<tr>
<th></th>
%for column in grid.columns:
%if column.visible:
<%
href = ""
extra = ""
if column.sortable:
if sort_key == column.key:
if sort_order == "asc":
href = url( sort=( "-" + column.key ) )
extra = "&darr;"
else:
href = url( sort=( column.key ) )
extra = "&uarr;"
else:
href = url( sort=column.key )
%>
<th\
%if column.ncells > 1:
colspan="${column.ncells}"
%endif
>
%if href:
<a href="${href}">${column.label}</a>
%else:
${column.label}
%endif
<span>${extra}</span>
</th>
%endif
%endfor
<th></th>
</tr>
</thead>
<tbody>
%for i, history in enumerate( query ):
<tr>
## Item selection column
<td style="width: 1.5em;">
<input type="checkbox" name="id" value=${trans.security.encode_id( history.id )} class="grid-row-select-checkbox" />
</td>
## Data columns
%for column in grid.columns:
%if column.visible:
<%
# Link
link = column.get_link( trans, grid, history )
if link:
href = url( **link )
else:
href = None
# Value (coerced to list so we can loop)
value = column.get_value( trans, grid, history )
if column.ncells == 1:
value = [ value ]
%>
%for cellnum, v in enumerate( value ):
<%
# Attach popup menu?
if column.attach_popup and cellnum == 0:
extra = '<a id="grid-%d-popup" class="popup-arrow" style="display: none;">&#9660;</a>' % i
else:
extra = ""
%>
%if href:
<td><a href="${href}">${v}</a>&nbsp;${extra}</td>
%else:
<td >${v}${extra}</td>
%endif
</td>
%endfor
%endif
%endfor
## Actions column
<td>
<div popupmenu="grid-${i}-popup">
%for operation in grid.operations:
%if operation.allowed( history ):
<a class="action-button" href="${url( operation=operation.label, id=history.id )}">${operation.label}</a>
%endif
%endfor
</div>
</td>
</tr>
%endfor
</tbody>
<tfoot>
<tr>
<td></td>
<td colspan="100">
For <span class="grid-selected-count"></span> selected histories:
%for operation in grid.operations:
%if operation.allow_multiple:
<input type="submit" name="operation" value="${operation.label}" class="action-button">
%endif
%endfor
</td>
</tr>
</tfoot>
</table>
</form>
-196
View File
@@ -1,196 +0,0 @@
<%inherit file="/base.mako"/>
<%def name="title()">${grid.title}</%def>
%if message:
<p>
<div class="${message_type}message transient-message">${message}</div>
<div style="clear: both"></div>
</p>
%endif
<%def name="javascripts()">
${parent.javascripts()}
<script type="text/javascript">
## TODO: generalize and move into galaxy.base.js
$(document).ready(function() {
$(".grid").each( function() {
var grid = this;
var checkboxes = $(this).find("input.grid-row-select-checkbox");
var update = $(this).find( "span.grid-selected-count" );
$(checkboxes).each( function() {
$(this).change( function() {
var n = $(checkboxes).filter("[checked]").size();
update.text( n );
});
})
});
});
## Can this be moved into base.mako?
%if refresh_frames:
%if 'masthead' in refresh_frames:
## Refresh masthead == user changes (backward compatibility)
if ( parent.user_changed ) {
%if trans.user:
parent.user_changed( "${trans.user.email}", ${int( app.config.is_admin_user( trans.user ) )} );
%else:
parent.user_changed( null, false );
%endif
}
%endif
%if 'history' in refresh_frames:
if ( parent.frames && parent.frames.galaxy_history ) {
parent.frames.galaxy_history.location.href="${h.url_for( controller='root', action='history')}";
if ( parent.force_right_panel ) {
parent.force_right_panel( 'show' );
}
}
%endif
%if 'tools' in refresh_frames:
if ( parent.frames && parent.frames.galaxy_tools ) {
parent.frames.galaxy_tools.location.href="${h.url_for( controller='root', action='tool_menu')}";
if ( parent.force_left_panel ) {
parent.force_left_panel( 'show' );
}
}
%endif
%endif
</script>
</%def>
<%def name="stylesheets()">
<link href="${h.url_for('/static/style/base.css')}" rel="stylesheet" type="text/css" />
<style>
## Not generic to all grids -- move to base?
.count-box {
min-width: 1.1em;
padding: 5px;
border-width: 1px;
border-style: solid;
text-align: center;
display: inline-block;
}
</style>
</%def>
%if grid.standard_filters:
<div class="grid-header">
<h2>${grid.title}</h2>
<span class="title">Filter:</span>
%for i, filter in enumerate( grid.standard_filters ):
%if i > 0:
<span>|</span>
%endif
<span class="filter"><a href="${url( filter.get_url_args() )}">${filter.label}</a></span>
%endfor
</div>
%endif
<form name="history_actions" action="${url()}" method="post" >
<table class="grid">
<thead>
<tr>
<th></th>
%for column in grid.columns:
%if column.visible:
<%
href = ""
extra = ""
if column.sortable:
if sort_key == column.key:
if sort_order == "asc":
href = url( sort=( "-" + column.key ) )
extra = "&darr;"
else:
href = url( sort=( column.key ) )
extra = "&uarr;"
else:
href = url( sort=column.key )
%>
<th\
%if column.ncells > 1:
colspan="${column.ncells}"
%endif
>
%if href:
<a href="${href}">${column.label}</a>
%else:
${column.label}
%endif
<span>${extra}</span>
</th>
%endif
%endfor
<th></th>
</tr>
</thead>
<tbody>
%for i, item in enumerate( query ):
<tr \
%if current_item == item:
class="current" \
%endif
>
## Item selection column
<td style="width: 1.5em;">
<input type="checkbox" name="id" value=${trans.security.encode_id( item.id )} class="grid-row-select-checkbox" />
</td>
## Data columns
%for column in grid.columns:
%if column.visible:
<%
# Link
link = column.get_link( trans, grid, item )
if link:
href = url( **link )
else:
href = None
# Value (coerced to list so we can loop)
value = column.get_value( trans, grid, item )
if column.ncells == 1:
value = [ value ]
%>
%for cellnum, v in enumerate( value ):
<%
# Attach popup menu?
if column.attach_popup and cellnum == 0:
extra = '<a id="grid-%d-popup" class="popup-arrow" style="display: none;">&#9660;</a>' % i
else:
extra = ""
%>
%if href:
<td><a href="${href}">${v}</a>&nbsp;${extra}</td>
%else:
<td >${v}${extra}</td>
%endif
</td>
%endfor
%endif
%endfor
## Actions column
<td>
<div popupmenu="grid-${i}-popup">
%for operation in grid.operations:
%if operation.allowed( item ):
<a class="action-button" href="${url( operation=operation.label, id=item.id )}">${operation.label}</a>
%endif
%endfor
</div>
</td>
</tr>
%endfor
</tbody>
<tfoot>
<tr>
<td></td>
<td colspan="100">
For <span class="grid-selected-count"></span> selected histories:
%for operation in grid.operations:
%if operation.allow_multiple:
<input type="submit" name="operation" value="${operation.label}" class="action-button">
%endif
%endfor
</td>
</tr>
</tfoot>
</table>
</form>
+2 -2
View File
@@ -1,9 +1,9 @@
<%inherit file="/base.mako"/>
<%namespace file="/message.mako" import="render_msg" />
<%def name="title()">Browse Libraries</%def>
<%def name="title()">Browse Data Libraries</%def>
<h2>Libraries</h2>
<h2>Data Libraries</h2>
%if msg:
${render_msg( msg, messagetype )}
+2 -2
View File
@@ -2,7 +2,7 @@
<%namespace file="/message.mako" import="render_msg" />
<% from galaxy import util %>
<%def name="title()">Browse Library</%def>
<%def name="title()">Browse data library</%def>
<%def name="stylesheets()">
<link href="${h.url_for('/static/style/base.css')}" rel="stylesheet" type="text/css" />
<link href="${h.url_for('/static/style/library.css')}" rel="stylesheet" type="text/css" />
@@ -211,7 +211,7 @@ class RowCounter( object ):
%endfor
</%def>
<h2>Library &ldquo;${library.name}&rdquo;</h2>
<h2>Data Library &ldquo;${library.name}&rdquo;</h2>
<ul class="manage-table-actions">
%if trans.app.security_agent.allow_action( trans.user, trans.app.security_agent.permitted_actions.LIBRARY_ADD, library_item=library ):
+1 -1
View File
@@ -5,7 +5,7 @@
<br/><br/>
<ul class="manage-table-actions">
<li>
<a class="action-button" href="${h.url_for( controller='library', action='browse_library', id=library_id )}"><span>Browse this library</span></a>
<a class="action-button" href="${h.url_for( controller='library', action='browse_library', id=library_id )}"><span>Browse this data library</span></a>
</li>
</ul>
+1 -1
View File
@@ -5,7 +5,7 @@
<br/><br/>
<ul class="manage-table-actions">
<li>
<a class="action-button" href="${h.url_for( controller='library', action='browse_library', id=library_id )}"><span>Browse this library</span></a>
<a class="action-button" href="${h.url_for( controller='library', action='browse_library', id=library_id )}"><span>Browse this data library</span></a>
</li>
</ul>
+1 -1
View File
@@ -12,7 +12,7 @@
<ul class="manage-table-actions">
<li>
<a class="action-button" href="${h.url_for( controller='library', action='browse_library', id=library_id )}"><span>Browse this library</span></a>
<a class="action-button" href="${h.url_for( controller='library', action='browse_library', id=library_id )}"><span>Browse this data library</span></a>
</li>
</ul>
+1 -1
View File
@@ -19,7 +19,7 @@
<ul class="manage-table-actions">
<li>
<a class="action-button" href="${h.url_for( controller='library', action='browse_library', id=library_id )}"><span>Browse this library</span></a>
<a class="action-button" href="${h.url_for( controller='library', action='browse_library', id=library_id )}"><span>Browse this data library</span></a>
</li>
</ul>
+1 -1
View File
@@ -15,7 +15,7 @@
<br/><br/>
<ul class="manage-table-actions">
<li>
<a class="action-button" href="${h.url_for( controller='library', action='browse_library', id=library_id )}"><span>Browse this library</span></a>
<a class="action-button" href="${h.url_for( controller='library', action='browse_library', id=library_id )}"><span>Browse this data library</span></a>
</li>
</ul>
+1 -1
View File
@@ -11,7 +11,7 @@
<ul class="manage-table-actions">
<li>
<a class="action-button" href="${h.url_for( controller='library', action='browse_library', id=library_id )}"><span>Browse this library</span></a>
<a class="action-button" href="${h.url_for( controller='library', action='browse_library', id=library_id )}"><span>Browse this data library</span></a>
</li>
</ul>
@@ -11,7 +11,7 @@
<ul class="manage-table-actions">
<li>
<a class="action-button" href="${h.url_for( controller='library', action='browse_library', id=library_id )}"><span>Browse this library</span></a>
<a class="action-button" href="${h.url_for( controller='library', action='browse_library', id=library_id )}"><span>Browse this data library</span></a>
</li>
</ul>
+1 -1
View File
@@ -5,7 +5,7 @@
<br/><br/>
<ul class="manage-table-actions">
<li>
<a class="action-button" href="${h.url_for( controller='library', action='browse_library', id=library.id )}"><span>Browse this library</span></a>
<a class="action-button" href="${h.url_for( controller='library', action='browse_library', id=library.id )}"><span>Browse this data library</span></a>
</li>
</ul>
+1 -1
View File
@@ -5,7 +5,7 @@
<br/><br/>
<ul class="manage-table-actions">
<li>
<a class="action-button" href="${h.url_for( controller='library', action='browse_library', id=library.id )}"><span>Browse this library</span></a>
<a class="action-button" href="${h.url_for( controller='library', action='browse_library', id=library.id )}"><span>Browse this data library</span></a>
</li>
</ul>
+2 -2
View File
@@ -16,7 +16,7 @@
<br/><br/>
<ul class="manage-table-actions">
<li>
<a class="action-button" href="${h.url_for( controller='library', action='browse_library', id=library_id )}"><span>Browse this library</span></a>
<a class="action-button" href="${h.url_for( controller='library', action='browse_library', id=library_id )}"><span>Browse this data library</span></a>
</li>
</ul>
@@ -68,7 +68,7 @@
%elif upload_option == 'upload_directory':
<div class="form-row">
<%
# Directories of files from the Libraries view are restricted to a
# Directories of files from the Data Libraries view are restricted to a
# sub-directory named the same as the current user's email address
# contained within the configured setting for user_library_import_dir
user_library_import_dir = os.path.join( trans.app.config.user_library_import_dir, trans.user.email )
+1 -1
View File
@@ -4,7 +4,7 @@
<br/<br/>
<ul class="manage-table-actions">
<li>
<a class="action-button" href="${h.url_for( controller='library', action='browse_library', id=library_id )}"><span>Browse this library</span></a>
<a class="action-button" href="${h.url_for( controller='library', action='browse_library', id=library_id )}"><span>Browse this data library</span></a>
</li>
</ul>
+1 -1
View File
@@ -4,7 +4,7 @@
<br/><br/>
<ul class="manage-table-actions">
<li>
<a class="action-button" href="${h.url_for( controller='library', action='browse_library', id=library_id )}"><span>Browse this library</span></a>
<a class="action-button" href="${h.url_for( controller='library', action='browse_library', id=library_id )}"><span>Browse this data library</span></a>
</li>
</ul>
+1 -1
View File
@@ -58,7 +58,7 @@ $( function() {
<div class="form-row">
<label>${field['label']}</label>
${field['widget'].get_html()}
%if field['label'] == 'Library' and new_library:
%if field['label'] == 'Data library' and new_library:
${new_library.get_html()}
%endif
<div class="toolParamHelp" style="clear: both;">
+1 -1
View File
@@ -58,7 +58,7 @@ $( function() {
<div class="form-row">
<label>${field['label']}</label>
${field['widget'].get_html()}
%if field['label'] == 'Library' and new_library:
%if field['label'] == 'Data library' and new_library:
${new_library.get_html()}
%endif
<div class="toolParamHelp" style="clear: both;">
+1 -1
View File
@@ -79,7 +79,7 @@
%if not rd['value']:
<i>None</i>
%else:
%if rd['label'] == 'Library':
%if rd['label'] == 'Data library':
%if rd['value']:
<a href="${h.url_for( controller='library', action='browse_library', id=request.library.id )}">${rd['value']}</a>
%else:
@@ -1451,7 +1451,7 @@ class TestSecurityAndLibraries( TwillTestCase ):
check_edit_page2( latest_3_lddas )
self.home()
def test_195_upload_directory_of_files_from_libraries_view( self ):
"""Testing uploading a directory of files to a root folder from the Libraries view"""
"""Testing uploading a directory of files to a root folder from the Data Libraries view"""
# admin_user will not have the option sto upload a directory of files from the
# Libraries view since a sub-directory named the same as their email is not contained
# in the configured user_library_import_dir. However, since members of role_one have