root/galaxy-central/database/compiled_templates/tagging_common.mako.py @ 3

リビジョン 3, 15.1 KB (コミッタ: kohda, 14 年 前)

Install Unix tools  http://hannonlab.cshl.edu/galaxy_unix_tools/galaxy.html

行番号 
1from mako import runtime, filters, cache
2UNDEFINED = runtime.UNDEFINED
3__M_dict_builtin = dict
4__M_locals_builtin = locals
5_magic_number = 5
6_modified_time = 1287725327.3571129
7_template_filename=u'templates/tagging_common.mako'
8_template_uri=u'root/../tagging_common.mako'
9_template_cache=cache.Cache(__name__, _modified_time)
10_source_encoding=None
11_exports = ['render_tagging_element_html', 'render_individual_tagging_element', 'render_community_tagging_element']
12
13
14# SOURCE LINE 1
15 
16from cgi import escape
17from galaxy.web.framework.helpers import iff
18from random import random
19from sys import maxint
20from math import floor
21from galaxy.model import Tag, ItemTagAssociation
22
23
24def render_body(context,**pageargs):
25    context.caller_stack._push_frame()
26    try:
27        __M_locals = __M_dict_builtin(pageargs=pageargs)
28        in_form = context.get('in_form', UNDEFINED)
29        def render_community_tagging_element(tagged_item=None,elt_context=None,use_toggle_link=False,tag_click_fn='default_tag_click_fn'):
30            return render_render_community_tagging_element(context.locals_(__M_locals),tagged_item,elt_context,use_toggle_link,tag_click_fn)
31        elt_context = context.get('elt_context', UNDEFINED)
32        use_toggle_link = context.get('use_toggle_link', UNDEFINED)
33        user = context.get('user', UNDEFINED)
34        def render_individual_tagging_element(user=None,tagged_item=None,elt_context=None,use_toggle_link=True,in_form=False,input_size='15',tag_click_fn='default_tag_click_fn',get_toggle_link_text_fn='default_get_toggle_link_text_fn',editable=True,render_add_tag_button=True):
35            return render_render_individual_tagging_element(context.locals_(__M_locals),user,tagged_item,elt_context,use_toggle_link,in_form,input_size,tag_click_fn,get_toggle_link_text_fn,editable,render_add_tag_button)
36        tag_click_fn = context.get('tag_click_fn', UNDEFINED)
37        input_size = context.get('input_size', UNDEFINED)
38        tagged_item = context.get('tagged_item', UNDEFINED)
39        tag_type = context.get('tag_type', UNDEFINED)
40        __M_writer = context.writer()
41        # SOURCE LINE 8
42        __M_writer(u'\n\n')
43        # SOURCE LINE 11
44        if tagged_item is not None:
45            # SOURCE LINE 12
46            if tag_type == "individual":
47                # SOURCE LINE 13
48                __M_writer(u'        ')
49                __M_writer(unicode(render_individual_tagging_element( user=user, tagged_item=tagged_item, elt_context=elt_context, in_form=in_form, input_size=input_size, tag_click_fn=tag_click_fn, use_toggle_link=use_toggle_link )))
50                __M_writer(u'\n')
51                # SOURCE LINE 14
52            elif tag_type == "community":
53                # SOURCE LINE 15
54                __M_writer(u'        ')
55                __M_writer(unicode(render_community_tagging_element(tagged_item=tagged_item, elt_context=elt_context, tag_click_fn=tag_click_fn)))
56                __M_writer(u'\n')
57        # SOURCE LINE 18
58        __M_writer(u'\n')
59        # SOURCE LINE 85
60        __M_writer(u'\n\n')
61        # SOURCE LINE 103
62        __M_writer(u'\n\n\n')
63        return ''
64    finally:
65        context.caller_stack._pop_frame()
66
67
68def render_render_tagging_element_html(context,elt_id=None,tags=None,editable=True,use_toggle_link=True,input_size='15',in_form=False,tag_type='individual',render_add_tag_button=True):
69    context.caller_stack._push_frame()
70    try:
71        h = context.get('h', UNDEFINED)
72        unicode = context.get('unicode', UNDEFINED)
73        isinstance = context.get('isinstance', UNDEFINED)
74        len = context.get('len', UNDEFINED)
75        str = context.get('str', UNDEFINED)
76        __M_writer = context.writer()
77        # SOURCE LINE 20
78        __M_writer(u'\n')
79        # SOURCE LINE 22
80        __M_writer(u'    ')
81 
82        num_tags = len( tags )
83           
84       
85        # SOURCE LINE 24
86        __M_writer(u'\n    <div class="tag-element"\n')
87        # SOURCE LINE 26
88        if elt_id:
89            # SOURCE LINE 27
90            __M_writer(u'            id="')
91            __M_writer(unicode(elt_id))
92            __M_writer(u'"\n')
93        # SOURCE LINE 30
94        if num_tags == 0 and not editable:
95            # SOURCE LINE 31
96            __M_writer(u'            style="display: none"\n')
97        # SOURCE LINE 33
98        __M_writer(u'    >\n')
99        # SOURCE LINE 34
100        if use_toggle_link:
101            # SOURCE LINE 35
102            __M_writer(u'            <a class="toggle-link" href="#">')
103            __M_writer(unicode(num_tags))
104            __M_writer(u' Tag')
105            __M_writer(unicode(iff( num_tags == 1, "", "s")))
106            __M_writer(u'</a>\n')
107        # SOURCE LINE 37
108        __M_writer(u'        <div class="tag-area \n')
109        # SOURCE LINE 38
110        if tag_type == 'individual':
111            # SOURCE LINE 39
112            __M_writer(u'                individual-tag-area\n')
113        # SOURCE LINE 41
114        __M_writer(u'        ">\n\n')
115        # SOURCE LINE 44
116        for tag in tags:
117            # SOURCE LINE 45
118            __M_writer(u'                ')
119
120                    ## Handle both Tag and ItemTagAssociation objects.
121            if isinstance( tag, Tag ):
122                tag_name = tag.name
123                tag_value = None
124            elif isinstance( tag, ItemTagAssociation ):
125                tag_name = tag.user_tname
126                tag_value = tag.user_value
127            ## Convert tag name, value to unicode.
128            if isinstance( tag_name, str ):
129                tag_name = unicode( escape( tag_name ), 'utf-8' )
130                if tag_value:
131                    tag_value = unicode( escape( tag_value ), 'utf-8' )
132            if tag_value:
133                tag_str = tag_name + ":" + tag_value
134            else:
135                tag_str = tag_name
136                           
137           
138            # SOURCE LINE 62
139            __M_writer(u'\n                <span class="tag-button">\n                    <span class="tag-name">')
140            # SOURCE LINE 64
141            __M_writer(unicode(tag_str))
142            __M_writer(u'</span>\n')
143            # SOURCE LINE 65
144            if editable:
145                # SOURCE LINE 66
146                __M_writer(u'                        <img class="delete-tag-img" src="')
147                __M_writer(unicode(h.url_for('/static/images/delete_tag_icon_gray.png')))
148                __M_writer(u'"/>\n')
149            # SOURCE LINE 68
150            __M_writer(u'                </span>\n')
151        # SOURCE LINE 70
152        __M_writer(u'            \n')
153        # SOURCE LINE 72
154        if editable:
155            # SOURCE LINE 73
156            if in_form:
157                # SOURCE LINE 74
158                __M_writer(u'                    <textarea class="tag-input" rows=\'1\' cols=\'')
159                __M_writer(unicode(input_size))
160                __M_writer(u"'></textarea>\n")
161                # SOURCE LINE 75
162            else:
163                # SOURCE LINE 76
164                __M_writer(u'                    <input class="tag-input" type=\'text\' size=\'')
165                __M_writer(unicode(input_size))
166                __M_writer(u"'/>\n")
167            # SOURCE LINE 79
168            if render_add_tag_button:
169                # SOURCE LINE 80
170                __M_writer(u"                    <img src='")
171                __M_writer(unicode(h.url_for('/static/images/fugue/tag--plus.png')))
172                __M_writer(u'\' class="add-tag-button tooltip" title="Add tags"/>\n')
173        # SOURCE LINE 83
174        __M_writer(u'        </div>\n    </div>\n')
175        return ''
176    finally:
177        context.caller_stack._pop_frame()
178
179
180def render_render_individual_tagging_element(context,user=None,tagged_item=None,elt_context=None,use_toggle_link=True,in_form=False,input_size='15',tag_click_fn='default_tag_click_fn',get_toggle_link_text_fn='default_get_toggle_link_text_fn',editable=True,render_add_tag_button=True):
181    context.caller_stack._push_frame()
182    try:
183        isinstance = context.get('isinstance', UNDEFINED)
184        unicode = context.get('unicode', UNDEFINED)
185        int = context.get('int', UNDEFINED)
186        h = context.get('h', UNDEFINED)
187        self = context.get('self', UNDEFINED)
188        dict = context.get('dict', UNDEFINED)
189        str = context.get('str', UNDEFINED)
190        trans = context.get('trans', UNDEFINED)
191        __M_writer = context.writer()
192        # SOURCE LINE 107
193        __M_writer(u'\n')
194        # SOURCE LINE 109
195        __M_writer(u'    ')
196
197        # Useful ids.
198        tagged_item_id = str( trans.security.encode_id ( tagged_item.id ) )
199        elt_id = int ( floor ( random()*maxint ) )
200       
201        # Get list of user's item tags. TODO: this could be moved to a database query for speed purposes.
202        item_tags = [ tag for tag in tagged_item.tags if ( tag.user == user ) ]
203           
204       
205        # SOURCE LINE 116
206        __M_writer(u'\n    \n')
207        # SOURCE LINE 119
208        __M_writer(u'    ')
209        __M_writer(unicode(self.render_tagging_element_html(elt_id=elt_id, tags=item_tags, editable=editable, use_toggle_link=use_toggle_link, input_size=input_size, in_form=in_form, render_add_tag_button=render_add_tag_button)))
210        __M_writer(u'\n    \n')
211        # SOURCE LINE 122
212        __M_writer(u'    <script type="text/javascript">\n        //\n        // Set up autocomplete tagger.\n        //\n\n        //\n        // Default function get text to display on the toggle link.\n        //\n        var default_get_toggle_link_text_fn = function(tags)\n        {\n            var text = "";\n            var num_tags = obj_length(tags);\n            if (num_tags != 0)\n              {\n                text = num_tags + (num_tags != 1 ? " Tags" : " Tag");\n                /*\n                // Show first N tags; hide the rest.\n                var max_to_show = 1;\n    \n                // Build tag string.\n                var tag_strs = new Array();\n                var count = 0;\n                for (tag_name in tags)\n                  {\n                    tag_value = tags[tag_name];\n                    tag_strs[tag_strs.length] = build_tag_str(tag_name, tag_value);\n                    if (++count == max_to_show)\n                      break;\n                  }\n                tag_str = tag_strs.join(", ");\n            \n                // Finalize text.\n                var num_tags_hiding = num_tags - max_to_show;\n                text = "Tags: " + tag_str + \n                  (num_tags_hiding != 0 ? " and " + num_tags_hiding + " more" : "");\n                */\n              }\n            else\n              {\n                // No tags.\n                text = "Add tags";\n              }\n            return text;\n        };\n        \n        // Default function to handle a tag click.\n        var default_tag_click_fn = function(tag_name, tag_value) { };\n        \n        ')
213        # SOURCE LINE 170
214
215            ## Build dict of tag name, values.
216        tag_names_and_values = dict()
217        for tag in item_tags:
218            tag_name = tag.user_tname
219            tag_value = ""
220            if tag.value is not None:
221                tag_value = tag.user_value
222            ## Tag names and values may be string or unicode object.
223            if isinstance( tag_name, str ):
224                tag_names_and_values[unicode(tag_name, 'utf-8')] = unicode(tag_value, 'utf-8')
225            else: ## isInstance( tag_name, unicode ):
226                tag_names_and_values[tag_name] = tag_value
227               
228       
229        # SOURCE LINE 183
230        __M_writer(u'\n        var options =\n        {\n            tags : ')
231        # SOURCE LINE 186
232        __M_writer(unicode(h.to_json_string(tag_names_and_values)))
233        __M_writer(u',\n            editable : ')
234        # SOURCE LINE 187
235        __M_writer(unicode(iff( editable, 'true', 'false' )))
236        __M_writer(u',\n            get_toggle_link_text_fn: ')
237        # SOURCE LINE 188
238        __M_writer(unicode(get_toggle_link_text_fn))
239        __M_writer(u',\n            tag_click_fn: ')
240        # SOURCE LINE 189
241        __M_writer(unicode(tag_click_fn))
242        __M_writer(u',\n')
243        # SOURCE LINE 191
244        __M_writer(u'            ajax_autocomplete_tag_url: "')
245        __M_writer(unicode(h.url_for( controller='/tag', action='tag_autocomplete_data', item_id=tagged_item_id, item_class=tagged_item.__class__.__name__ )))
246        __M_writer(u'",\n            ajax_add_tag_url: "')
247        # SOURCE LINE 192
248        __M_writer(unicode(h.url_for( controller='/tag', action='add_tag_async', item_id=tagged_item_id, item_class=tagged_item.__class__.__name__, context=elt_context )))
249        __M_writer(u'",\n            ajax_delete_tag_url: "')
250        # SOURCE LINE 193
251        __M_writer(unicode(h.url_for( controller='/tag', action='remove_tag_async', item_id=tagged_item_id, item_class=tagged_item.__class__.__name__, context=elt_context )))
252        __M_writer(u'",\n            delete_tag_img: "')
253        # SOURCE LINE 194
254        __M_writer(unicode(h.url_for('/static/images/delete_tag_icon_gray.png')))
255        __M_writer(u'",\n            delete_tag_img_rollover: "')
256        # SOURCE LINE 195
257        __M_writer(unicode(h.url_for('/static/images/delete_tag_icon_white.png')))
258        __M_writer(u'",\n            use_toggle_link: ')
259        # SOURCE LINE 196
260        __M_writer(unicode(iff( use_toggle_link, 'true', 'false' )))
261        __M_writer(u"\n         };\n         \n        $('#")
262        # SOURCE LINE 199
263        __M_writer(unicode(elt_id))
264        __M_writer(u"').autocomplete_tagging(options);\n    </script>\n    \n")
265        # SOURCE LINE 203
266        __M_writer(u'    <style>\n    .tag-area {\n        display: ')
267        # SOURCE LINE 205
268        __M_writer(unicode(iff( use_toggle_link, "none", "block" )))
269        __M_writer(u';\n    }\n    </style>\n\n    <noscript>\n    <style>\n    .tag-area {\n        display: block;\n    }\n    </style>\n    </noscript>\n')
270        return ''
271    finally:
272        context.caller_stack._pop_frame()
273
274
275def render_render_community_tagging_element(context,tagged_item=None,elt_context=None,use_toggle_link=False,tag_click_fn='default_tag_click_fn'):
276    context.caller_stack._push_frame()
277    try:
278        int = context.get('int', UNDEFINED)
279        self = context.get('self', UNDEFINED)
280        trans = context.get('trans', UNDEFINED)
281        __M_writer = context.writer()
282        # SOURCE LINE 88
283        __M_writer(u'\n')
284        # SOURCE LINE 90
285        __M_writer(u'    ')
286 
287        elt_id = int ( floor ( random()*maxint ) )
288        community_tags = trans.app.tag_handler.get_community_tags( trans, item=tagged_item, limit=5 )
289           
290       
291        # SOURCE LINE 93
292        __M_writer(u'\n    ')
293        # SOURCE LINE 94
294        __M_writer(unicode(self.render_tagging_element_html(elt_id=elt_id, \
295                                        tags=community_tags, \
296                                        use_toggle_link=use_toggle_link, \
297                                        editable=False, tag_type="community")))
298        # SOURCE LINE 97
299        __M_writer(u'\n    \n')
300        # SOURCE LINE 100
301        __M_writer(u'    <script type="text/javascript">\n        init_tag_click_function($(\'#')
302        # SOURCE LINE 101
303        __M_writer(unicode(elt_id))
304        __M_writer(u"'), ")
305        __M_writer(unicode(tag_click_fn))
306        __M_writer(u');\n    </script>\n')
307        return ''
308    finally:
309        context.caller_stack._pop_frame()
310
311
Note: リポジトリブラウザについてのヘルプは TracBrowser を参照してください。