##// END OF EJS Templates
files: added copy content action
marcink -
r4027:c398319d default
parent child Browse files
Show More
@@ -1,173 +1,174 b''
1 <%namespace name="sourceblock" file="/codeblocks/source.mako"/>
1 <%namespace name="sourceblock" file="/codeblocks/source.mako"/>
2
2
3 <div id="codeblock" class="browserblock">
3 <div id="codeblock" class="browserblock">
4 <div class="browser-header">
4 <div class="browser-header">
5 <div class="browser-nav">
5 <div class="browser-nav">
6 <div class="pull-left">
6 <div class="pull-left">
7 ## loads the history for a file
7 ## loads the history for a file
8 ${h.hidden('file_refs_filter')}
8 ${h.hidden('file_refs_filter')}
9 </div>
9 </div>
10
10
11 <div class="pull-right">
11 <div class="pull-right">
12
12
13 ## Download
13 ## Download
14 % if c.lf_node:
14 % if c.lf_node:
15 <a class="btn btn-default" href="${h.route_path('repo_file_download',repo_name=c.repo_name,commit_id=c.commit.raw_id,f_path=c.f_path, _query=dict(lf=1))}">
15 <a class="btn btn-default" href="${h.route_path('repo_file_download',repo_name=c.repo_name,commit_id=c.commit.raw_id,f_path=c.f_path, _query=dict(lf=1))}">
16 ${_('Download largefile')}
16 ${_('Download largefile')}
17 </a>
17 </a>
18 % else:
18 % else:
19 <a class="btn btn-default" href="${h.route_path('repo_file_download',repo_name=c.repo_name,commit_id=c.commit.raw_id,f_path=c.f_path)}">
19 <a class="btn btn-default" href="${h.route_path('repo_file_download',repo_name=c.repo_name,commit_id=c.commit.raw_id,f_path=c.f_path)}">
20 ${_('Download file')}
20 ${_('Download file')}
21 </a>
21 </a>
22 % endif
22 % endif
23
23
24 %if h.HasRepoPermissionAny('repository.write','repository.admin')(c.repo_name):
24 %if h.HasRepoPermissionAny('repository.write','repository.admin')(c.repo_name):
25 ## on branch head, can edit files
25 ## on branch head, can edit files
26 %if c.on_branch_head and c.branch_or_raw_id:
26 %if c.on_branch_head and c.branch_or_raw_id:
27 ## binary files are delete only
27 ## binary files are delete only
28 % if c.file.is_binary:
28 % if c.file.is_binary:
29 ${h.link_to(_('Edit'), '#Edit', class_="btn btn-default disabled tooltip", title=_('Editing binary files not allowed'))}
29 ${h.link_to(_('Edit'), '#Edit', class_="btn btn-default disabled tooltip", title=_('Editing binary files not allowed'))}
30 ${h.link_to(_('Delete'), h.route_path('repo_files_remove_file',repo_name=c.repo_name,commit_id=c.branch_or_raw_id,f_path=c.f_path),class_="btn btn-danger")}
30 ${h.link_to(_('Delete'), h.route_path('repo_files_remove_file',repo_name=c.repo_name,commit_id=c.branch_or_raw_id,f_path=c.f_path),class_="btn btn-danger")}
31 % else:
31 % else:
32 <a class="btn btn-default" href="${h.route_path('repo_files_edit_file',repo_name=c.repo_name,commit_id=c.branch_or_raw_id,f_path=c.f_path)}">
32 <a class="btn btn-default" href="${h.route_path('repo_files_edit_file',repo_name=c.repo_name,commit_id=c.branch_or_raw_id,f_path=c.f_path)}">
33 ${_('Edit on branch: ')}<code>${c.branch_name}</code>
33 ${_('Edit on branch: ')}<code>${c.branch_name}</code>
34 </a>
34 </a>
35
35
36 <a class="btn btn-danger" href="${h.route_path('repo_files_remove_file',repo_name=c.repo_name,commit_id=c.branch_or_raw_id,f_path=c.f_path)}">
36 <a class="btn btn-danger" href="${h.route_path('repo_files_remove_file',repo_name=c.repo_name,commit_id=c.branch_or_raw_id,f_path=c.f_path)}">
37 ${_('Delete')}
37 ${_('Delete')}
38 </a>
38 </a>
39 % endif
39 % endif
40 ## not on head, forbid all
40 ## not on head, forbid all
41 % else:
41 % else:
42 ${h.link_to(_('Edit'), '#Edit', class_="btn btn-default disabled tooltip", title=_('Editing files allowed only when on branch head commit'))}
42 ${h.link_to(_('Edit'), '#Edit', class_="btn btn-default disabled tooltip", title=_('Editing files allowed only when on branch head commit'))}
43 ${h.link_to(_('Delete'), '#Delete', class_="btn btn-default btn-danger disabled tooltip", title=_('Deleting files allowed only when on branch head commit'))}
43 ${h.link_to(_('Delete'), '#Delete', class_="btn btn-default btn-danger disabled tooltip", title=_('Deleting files allowed only when on branch head commit'))}
44 % endif
44 % endif
45 %endif
45 %endif
46
46
47 </div>
47 </div>
48 </div>
48 </div>
49 <div id="file_history_container"></div>
49 <div id="file_history_container"></div>
50
50
51 </div>
51 </div>
52 </div>
52 </div>
53
53
54 <div class="codeblock">
54 <div class="codeblock">
55 <div class=" codeblock-header">
55 <div class=" codeblock-header">
56 <div class="file-filename">
56 <div class="file-filename">
57 <i class="icon-file"></i> ${c.file}
57 <i class="icon-file"></i> ${c.file}
58 </div>
58 </div>
59
59
60 <div class="file-stats">
60 <div class="file-stats">
61
61
62 <div class="stats-info">
62 <div class="stats-info">
63 <span class="stats-first-item">
63 <span class="stats-first-item">
64 % if c.file_size_too_big:
64 % if c.file_size_too_big:
65 0 ${(_('lines'))}
65 0 ${(_('lines'))}
66 % else:
66 % else:
67 ${c.file.lines()[0]} ${_ungettext('line', 'lines', c.file.lines()[0])}
67 ${c.file.lines()[0]} ${_ungettext('line', 'lines', c.file.lines()[0])}
68 % endif
68 % endif
69 </span>
69 </span>
70
70
71 <span> | ${h.format_byte_size_binary(c.file.size)}</span>
71 <span> | ${h.format_byte_size_binary(c.file.size)}</span>
72 % if c.lf_node:
72 % if c.lf_node:
73 <span title="${_('This file is a pointer to large binary file')}"> | ${_('LargeFile')} ${h.format_byte_size_binary(c.lf_node.size)} </span>
73 <span title="${_('This file is a pointer to large binary file')}"> | ${_('LargeFile')} ${h.format_byte_size_binary(c.lf_node.size)} </span>
74 % endif
74 % endif
75 <span>
75 <span>
76 | ${c.file.mimetype}
76 | ${c.file.mimetype}
77 </span>
77 </span>
78
78
79 % if not c.file_size_too_big:
79 % if not c.file_size_too_big:
80 <span> |
80 <span> |
81 ${h.get_lexer_for_filenode(c.file).__class__.__name__}
81 ${h.get_lexer_for_filenode(c.file).__class__.__name__}
82 </span>
82 </span>
83 % endif
83 % endif
84
84
85 </div>
85 </div>
86 </div>
86 </div>
87 </div>
87 </div>
88
88
89 <div class="path clear-fix">
89 <div class="path clear-fix">
90 <div class="pull-left">
90 <div class="pull-left">
91 ${h.files_breadcrumbs(c.repo_name,c.commit.raw_id,c.file.path, request.GET.get('at'))}
91 ${h.files_breadcrumbs(c.repo_name,c.commit.raw_id,c.file.path, request.GET.get('at'))}
92 </div>
92 </div>
93
93
94 <div class="pull-right stats">
94 <div class="pull-right stats">
95 <a id="file_history_overview" href="#loadHistory">
95 <a id="file_history_overview" href="#loadHistory">
96 ${_('History')}
96 ${_('History')}
97 </a>
97 </a>
98 |
98 |
99 %if c.annotate:
99 %if c.annotate:
100 ${h.link_to(_('Source'), h.route_path('repo_files', repo_name=c.repo_name,commit_id=c.commit.raw_id,f_path=c.f_path))}
100 ${h.link_to(_('Source'), h.route_path('repo_files', repo_name=c.repo_name,commit_id=c.commit.raw_id,f_path=c.f_path))}
101 %else:
101 %else:
102 ${h.link_to(_('Annotation'), h.route_path('repo_files:annotated',repo_name=c.repo_name,commit_id=c.commit.raw_id,f_path=c.f_path))}
102 ${h.link_to(_('Annotation'), h.route_path('repo_files:annotated',repo_name=c.repo_name,commit_id=c.commit.raw_id,f_path=c.f_path))}
103 %endif
103 %endif
104 | ${h.link_to(_('Raw'), h.route_path('repo_file_raw',repo_name=c.repo_name,commit_id=c.commit.raw_id,f_path=c.f_path))}
104 | ${h.link_to(_('Raw'), h.route_path('repo_file_raw',repo_name=c.repo_name,commit_id=c.commit.raw_id,f_path=c.f_path))}
105 |<a href="#copySource" onclick="return false;" class="clipboard-action" data-clipboard-text="${c.file.content}">${_('Copy content')}</a>
105
106
106 </div>
107 </div>
107 <div class="clear-fix"></div>
108 <div class="clear-fix"></div>
108 </div>
109 </div>
109
110
110 <div class="code-body clear-fix ">
111 <div class="code-body clear-fix ">
111 %if c.file.is_binary:
112 %if c.file.is_binary:
112 <% rendered_binary = h.render_binary(c.repo_name, c.file)%>
113 <% rendered_binary = h.render_binary(c.repo_name, c.file)%>
113 % if rendered_binary:
114 % if rendered_binary:
114 ${rendered_binary}
115 ${rendered_binary}
115 % else:
116 % else:
116 <div>
117 <div>
117 ${_('Binary file ({})').format(c.file.mimetype)}
118 ${_('Binary file ({})').format(c.file.mimetype)}
118 </div>
119 </div>
119 % endif
120 % endif
120 %else:
121 %else:
121 % if c.file_size_too_big:
122 % if c.file_size_too_big:
122 ${_('File size {} is bigger then allowed limit {}. ').format(h.format_byte_size_binary(c.file.size), h.format_byte_size_binary(c.visual.cut_off_limit_file))} ${h.link_to(_('Show as raw'),
123 ${_('File size {} is bigger then allowed limit {}. ').format(h.format_byte_size_binary(c.file.size), h.format_byte_size_binary(c.visual.cut_off_limit_file))} ${h.link_to(_('Show as raw'),
123 h.route_path('repo_file_raw',repo_name=c.repo_name,commit_id=c.commit.raw_id,f_path=c.f_path))}
124 h.route_path('repo_file_raw',repo_name=c.repo_name,commit_id=c.commit.raw_id,f_path=c.f_path))}
124 % else:
125 % else:
125 %if c.renderer and not c.annotate:
126 %if c.renderer and not c.annotate:
126 ## pick relative url based on renderer
127 ## pick relative url based on renderer
127 <%
128 <%
128 relative_urls = {
129 relative_urls = {
129 'raw': h.route_path('repo_file_raw',repo_name=c.repo_name,commit_id=c.commit.raw_id,f_path=c.f_path),
130 'raw': h.route_path('repo_file_raw',repo_name=c.repo_name,commit_id=c.commit.raw_id,f_path=c.f_path),
130 'standard': h.route_path('repo_files',repo_name=c.repo_name,commit_id=c.commit.raw_id,f_path=c.f_path),
131 'standard': h.route_path('repo_files',repo_name=c.repo_name,commit_id=c.commit.raw_id,f_path=c.f_path),
131 }
132 }
132 %>
133 %>
133 ${h.render(c.file.content, renderer=c.renderer, relative_urls=relative_urls)}
134 ${h.render(c.file.content, renderer=c.renderer, relative_urls=relative_urls)}
134 %else:
135 %else:
135 <table class="cb codehilite">
136 <table class="cb codehilite">
136 %if c.annotate:
137 %if c.annotate:
137 <% color_hasher = h.color_hasher() %>
138 <% color_hasher = h.color_hasher() %>
138 %for annotation, lines in c.annotated_lines:
139 %for annotation, lines in c.annotated_lines:
139 ${sourceblock.render_annotation_lines(annotation, lines, color_hasher)}
140 ${sourceblock.render_annotation_lines(annotation, lines, color_hasher)}
140 %endfor
141 %endfor
141 %else:
142 %else:
142 %for line_num, tokens in enumerate(c.lines, 1):
143 %for line_num, tokens in enumerate(c.lines, 1):
143 ${sourceblock.render_line(line_num, tokens)}
144 ${sourceblock.render_line(line_num, tokens)}
144 %endfor
145 %endfor
145 %endif
146 %endif
146 </table>
147 </table>
147 %endif
148 %endif
148 % endif
149 % endif
149 %endif
150 %endif
150 </div>
151 </div>
151
152
152 </div>
153 </div>
153
154
154 <script type="text/javascript">
155 <script type="text/javascript">
155 % if request.GET.get('mark'):
156 % if request.GET.get('mark'):
156
157
157 $(function(){
158 $(function(){
158 $(".codehilite").mark(
159 $(".codehilite").mark(
159 "${request.GET.get('mark')}",
160 "${request.GET.get('mark')}",
160 {
161 {
161 "className": 'match',
162 "className": 'match',
162 "accuracy": "complementary",
163 "accuracy": "complementary",
163 "ignorePunctuation": ":._(){}[]!'+=".split(""),
164 "ignorePunctuation": ":._(){}[]!'+=".split(""),
164 "each": function(el) {
165 "each": function(el) {
165 // and also highlight lines !
166 // and also highlight lines !
166 $($(el).closest('tr')).find('td.cb-lineno').addClass('cb-line-selected');
167 $($(el).closest('tr')).find('td.cb-lineno').addClass('cb-line-selected');
167 }
168 }
168 }
169 }
169 );
170 );
170
171
171 });
172 });
172 % endif
173 % endif
173 </script>
174 </script>
General Comments 0
You need to be logged in to leave comments. Login now