-
Notifications
You must be signed in to change notification settings - Fork 967
/
display_common.mako
162 lines (147 loc) · 4.57 KB
/
display_common.mako
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
##
## Utilities for sharing items and displaying shared items.
## HACK: these should probably go in the web helper object.
##
## TODO: FIXME Cannot import model here, because grids are
## used across webapps, and each webapp has its own model.
<%! from galaxy import model %>
<%! from galaxy.util import unicodify %>
## Get display name for a class.
<%def name="get_class_display_name( a_class )">
<%
## Start with exceptions, end with default.
if a_class is model.StoredWorkflow:
return "Workflow"
else:
return a_class.__name__
%>
</%def>
<%def name="get_item_name( item )">
<%
# Start with exceptions, end with default.
if type( item ) is model.Page:
item_name = item.title
elif type( item ) is model.Visualization:
item_name = item.title
elif hasattr( item, 'get_display_name'):
item_name = item.get_display_name()
else:
item_name = item.name
# Encode in unicode.
return unicodify(item_name)
%>
</%def>
## Get plural display name for a class.
<%def name="get_class_plural_display_name( a_class )">
<%
# Start with exceptions, end with default.
if a_class is model.History:
return "Histories"
elif a_class is model.FormDefinitionCurrent:
return "Forms"
else:
return get_class_display_name( a_class ) + "s"
%>
</%def>
## Get display name for a class.
<%def name="get_class_display_name( a_class )">
<%
## Start with exceptions, end with default.
if a_class is model.StoredWorkflow:
return "Workflow"
elif a_class is model.HistoryDatasetAssociation:
return "Dataset"
else:
return a_class.__name__
%>
</%def>
## Get plural term for item.
<%def name="get_item_plural( item )">
<% return get_class_plural( item.__class__ ) %>
</%def>
## Get plural term for class.
<%def name="get_class_plural( a_class )">
<%
if a_class == model.History:
class_plural = "Histories"
elif a_class == model.StoredWorkflow:
class_plural = "Workflows"
elif a_class == model.Page:
class_plural = "Pages"
elif a_class == model.Library:
class_plural = "Libraries"
elif a_class == model.HistoryDatasetAssociation:
class_plural = "Datasets"
elif a_class == model.FormDefinitionCurrent:
class_plural = "Forms"
else:
class_plural = "items"
return class_plural
%>
</%def>
## Returns the controller name for an item based on its class.
<%def name="get_controller_name( item )">
<%
if isinstance( item, model.History ):
return "history"
elif isinstance( item, model.StoredWorkflow ):
return "workflow"
elif isinstance( item, model.HistoryDatasetAssociation ):
return "dataset"
elif isinstance( item, model.Page ):
return "page"
elif isinstance( item, model.Visualization ):
return "visualization"
%>
</%def>
<%def name="modern_route_for_controller( controller )">
<%
if controller == "history":
return "histories"
elif controller == "workflow":
return "workflows"
elif controller == "dataset":
return "datasets"
elif controller == "page":
return "pages"
else:
return controller
%>
</%def>
## Returns item user/owner.
<%def name="get_item_user( item )">
<%
# Exceptions first, default last.
if isinstance( item, model.HistoryDatasetAssociation ):
return item.history.user
else:
return item.user
%>
</%def>
## Returns item slug.
<%def name="get_item_slug( item )">
<%
# Exceptions first, default last.
if isinstance( item, model.HistoryDatasetAssociation ):
return trans.security.encode_id( item.id )
else:
return item.slug
%>
</%def>
## Return a link to view a history.
<%def name="get_history_link( history, qualify=False )">
%if history.slug and history.user.username:
<% return h.url_for( controller='/history', action='display_by_username_and_slug', username=history.user.username, slug=history.slug, qualified=qualify ) %>
%else:
<% return h.url_for("/histories/view", id=trans.security.encode_id( history.id ), qualified=qualify) %>
%endif
</%def>
## Render message.
<%def name="render_message( message, status )">
%if message:
<p>
<div class="${status}message transient-message">${util.restore_text( message )}</div>
<div style="clear: both"></div>
</p>
%endif
</%def>