##// END OF EJS Templates
Repo summary box changes
Liviu -
r3620:5c632f5f new-ui
parent child Browse files
Show More
@@ -1,257 +1,256 b''
1 1 /** README styling **/
2 2 div.readme_box {
3 3 clear: both;
4 4 overflow: hidden;
5 5 margin: 0;
6 6 padding: 3px 15px 3px;
7 7 }
8 8
9 9 div.readme_box h1,
10 10 div.readme_box h2,
11 11 div.readme_box h3,
12 12 div.readme_box h4,
13 13 div.readme_box h5,
14 14 div.readme_box h6 {
15 15 border-bottom: none !important;
16 16 padding: 0 !important;
17 17 overflow: visible !important;
18 18 }
19 19
20 20 div.readme_box h1,
21 21 div.readme_box h2 {
22 22 border-bottom: 1px #e6e5e5 solid !important;
23 23 }
24 24
25 25 div.readme_box h1 {
26 26 font-size: 32px;
27 27 margin: 15px 0 15px 0 !important;
28 28 padding-bottom: 5px !important;
29 29 }
30 30
31 31 div.readme_box h2 {
32 32 font-size: 24px !important;
33 33 margin: 34px 0 10px 0 !important;
34 34 padding-top: 15px !important;
35 35 padding-bottom: 8px !important;
36 36 }
37 37
38 38 div.readme_box h3 {
39 39 font-size: 18px !important;
40 40 margin: 30px 0 8px 0 !important;
41 41 padding-bottom: 2px !important;
42 42 }
43 43
44 44 div.readme_box h4 {
45 45 font-size: 13px !important;
46 46 margin: 18px 0 3px 0 !important;
47 47 }
48 48
49 49 div.readme_box h5 {
50 50 font-size: 12px !important;
51 51 margin: 15px 0 3px 0 !important;
52 52 }
53 53
54 54 div.readme_box h6 {
55 55 font-size: 12px;
56 56 color: #777777;
57 57 margin: 15px 0 3px 0 !important;
58 58 }
59 59
60 60 div.readme_box hr {
61 61 border: 0;
62 62 color: #e6e5e5;
63 63 background-color: #e6e5e5;
64 64 height: 3px;
65 65 margin-bottom: 13px;
66 66 }
67 67
68 68 div.readme_box ol,
69 69 div.readme_box ul,
70 70 div.readme_box p,
71 71 div.readme_box blockquote,
72 72 div.readme_box dl,
73 73 div.readme_box li,
74 74 div.readme_box table {
75 75 margin: 3px 0px 13px 0px !important;
76 76 color: #424242 !important;
77 77 font-size: 13px !important;
78 78 font-family: @text-regular;
79 79 font-weight: normal !important;
80 80 overflow: visible !important;
81 81 line-height: 140% !important;
82 82 }
83 83
84 84 div.readme_box pre {
85 85 margin: 3px 0px 13px 0px !important;
86 86 padding: .5em;
87 87 color: #424242 !important;
88 88 font-size: 13px !important;
89 89 overflow: visible !important;
90 90 line-height: 140% !important;
91 background-color: @grey7;
92 91 }
93 92
94 93 div.readme_box img {
95 94 border-style: none;
96 95 background-color: #fff;
97 96 padding-right: 20px;
98 97 }
99 98
100 99
101 100 div.readme_box strong {
102 101 font-weight: 600;
103 102 margin: 0;
104 103 }
105 104
106 105 div.readme_box ul,
107 106 div.readme_box ol {
108 107 padding-left: 30px !important;
109 108 margin-top: 0px !important;
110 109 margin-bottom: 18px !important;
111 110 }
112 111
113 112 div.readme_box ul li,
114 113 div.readme_box ol li {
115 114 list-style: disc !important;
116 115 margin: 6px !important;
117 116 padding: 0 !important;
118 117 }
119 118
120 119 div.readme_box ol li {
121 120 list-style: decimal !important;
122 121 }
123 122
124 123 /*
125 124 div.readme_box a,
126 125 div.readme_box a:visited {
127 126 color: #4183C4 !important;
128 127 background-color: inherit;
129 128 text-decoration: none;
130 129 }
131 130 */
132 131
133 132
134 133 div.readme_box button {
135 134 font-size: @basefontsize;
136 135 padding: 4px 6px;
137 136 .border-radius(@border-radius);
138 137 border: @border-thickness solid @grey5;
139 138 background-color: @grey6;
140 139 }
141 140
142 141 div.readme_box code,
143 142 div.readme_box pre {
144 143 font-family: @text-monospace;
145 144 font-size: 11px;
146 145 .border-radius(@border-radius);
147 146 background-color: white;
148 147 color: @grey3;
149 148 }
150 149
151 150
152 151 div.readme_box code {
153 152 border: @border-thickness solid @grey6;
154 153 margin: 0 2px;
155 154 padding: 0 5px;
156 155 }
157 156
158 157 div.readme_box pre {
159 border: @border-thickness solid @grey5;
158 border: @border-thickness solid #CBDBEB;
160 159 overflow: auto;
161 160 padding: .5em;
162 background-color: @grey7;
161 background-color: #FCFEFF;
163 162 }
164 163
165 164 div.readme_box pre > code {
166 165 border: 0;
167 166 margin: 0;
168 167 padding: 0;
169 168 }
170 169
171 170 /** RST STYLE **/
172 171 div.rst-block {
173 172 clear: both;
174 173 overflow: hidden;
175 174 margin: 0;
176 175 padding: 3px 15px 3px;
177 176 }
178 177
179 178 div.rst-block h2 {
180 179 font-weight: normal;
181 180 }
182 181
183 182 div.rst-block h1,
184 183 div.rst-block h2,
185 184 div.rst-block h3,
186 185 div.rst-block h4,
187 186 div.rst-block h5,
188 187 div.rst-block h6 {
189 188 border-bottom: 0 !important;
190 189 margin: 0 !important;
191 190 padding: 0 !important;
192 191 line-height: 1.5em !important;
193 192 }
194 193
195 194
196 195 div.rst-block h1:first-child {
197 196 padding-top: .25em !important;
198 197 }
199 198
200 199 div.rst-block h2,
201 200 div.rst-block h3 {
202 201 margin: 1em 0 !important;
203 202 }
204 203
205 204 div.rst-block h2 {
206 205 margin-top: 1.5em !important;
207 206 border-top: 4px solid #e0e0e0 !important;
208 207 padding-top: .5em !important;
209 208 }
210 209
211 210 div.rst-block p {
212 211 color: black !important;
213 212 margin: 1em 0 !important;
214 213 line-height: 1.5em !important;
215 214 }
216 215
217 216 div.rst-block ul {
218 217 list-style: disc !important;
219 218 margin: 1em 0 1em 2em !important;
220 219 clear: both;
221 220 }
222 221
223 222 div.rst-block ol {
224 223 list-style: decimal;
225 224 margin: 1em 0 1em 2em !important;
226 225 }
227 226
228 227 div.rst-block pre,
229 228 div.rst-block code {
230 229 font: 12px "Bitstream Vera Sans Mono","Courier",monospace;
231 230 }
232 231
233 232 div.rst-block code {
234 233 font-size: 12px !important;
235 234 background-color: ghostWhite !important;
236 235 color: #444 !important;
237 236 padding: 0 .2em !important;
238 237 border: 1px solid #dedede !important;
239 238 }
240 239
241 240 div.rst-block pre code {
242 241 padding: 0 !important;
243 242 font-size: 12px !important;
244 243 background-color: #eee !important;
245 244 border: none !important;
246 245 }
247 246
248 247 div.rst-block pre {
249 248 margin: 1em 0;
250 249 padding: @padding;
251 250 border: 1px solid @grey6;
252 251 .border-radius(@border-radius);
253 252 overflow: auto;
254 253 font-size: 12px;
255 254 color: #444;
256 255 background-color: @grey7;
257 256 } No newline at end of file
@@ -1,292 +1,405 b''
1 1 // summary.less
2 2 // For use in RhodeCode applications;
3 3 // Used for headers and file detail summary screens.
4 4
5 5 .summary {
6 float: left;
6 clear: both;
7 float: none;
7 8 position: relative;
8 9 width: 100%;
9 10 margin: 0;
10 11 padding: 0;
12 background: #FCFCFC;
13 border: 1px solid #EAEAEA;
14 border-radius: @border-radius;
15 margin-bottom: 20px;
11 16
12 17 .summary-detail-header {
13 18 float: left;
14 19 display: block;
15 20 width: 100%;
16 21 margin-bottom: @textmargin;
17 22 padding: 0 0 .5em 0;
18 23 border-bottom: @border-thickness solid @border-default-color;
19 24
20 25 .breadcrumbs {
21 26 float: left;
22 27 display: inline;
23 28 margin: 0;
24 29 padding: 0;
25 30 }
26 31 h4 {
27 32 float: left;
28 33 margin: 0 1em 0 0;
29 34 padding: 0;
30 35 line-height: 1.2em;
31 36 font-size: @basefontsize;
32 37 }
33 38
34 39 .action_link {
35 40 float: right;
36 41 }
37 42
38 43 .new-file {
39 44 float: right;
40 45 margin-top: -1.5em;
41 46 }
42 47 }
43 48
44 49 .summary-detail {
45 float: left;
50 float: none;
46 51 position: relative;
47 width: 73%;
48 margin: 0 3% @space 0;
52 width: 100%;
53 margin: 0;
49 54 padding: 0;
50 55
51 56 .file_diff_buttons {
52 57 margin-top: @space;
53 58 }
54 59
55 60 // commit message
56 61 .commit {
57 62 white-space: pre-wrap;
58 63 }
59 64
60 65 .left-clone {
61 66 float: left;
62 67 height: 30px;
63 68 margin: 0;
64 69 padding: 0;
65 width: 150px;
70 width: 100px;
66 71 font-weight: @text-semibold-weight;
67 72 font-family: @text-semibold;
68 73 }
74 .left-clone select {
75 width: 100px;
76 margin-right: 0;
77 background-color: @grey7;
78 border-color: @grey4;
79 color: #5C5C5C;
80 border-top-right-radius: 0;
81 border-bottom-right-radius: 0;
82 }
69 83
70 84 .right-clone {
71 float: right;
85 float: left;
72 86 width: ~"calc(100% - 150px)";
87
88 .clipboard-action {
89 margin-left: -30px;
90 }
73 91 }
74 92
75 93 .clone_url_input {
76 width: ~"calc(100% - 35px)";
77 padding: 6px 5px;
94 width: ~"calc(100% - 70px)";
95 padding: 6px 30px 6px 10px;
96 height: 14px;
97 box-shadow: 0 1px 1px 0 rgba(0,0,0,0.07);
98 border-top-left-radius: 0;
99 border-bottom-left-radius: 0;
100 margin-left: -1px;
78 101 }
79 102
80 103 &.directory {
81 104 margin-bottom: 0;
82 105 }
83 106
84 107 .desc {
85 108 white-space: pre-wrap;
86 109 }
87 110 .disabled {
88 111 opacity: .5;
89 112 cursor: inherit;
90 113 }
91 114 .help-block {
92 115 color: inherit;
93 116 margin: 0;
94 117 }
95 118 }
96 119
97 120 .sidebar-right {
98 121 float: left;
99 122 width: 24%;
100 123 margin: 0;
101 124 padding: 0;
102 125
103 126 ul {
104 127 margin-left: 0;
105 128 padding-left: 0;
106 129
107 130 li {
108 131 list-style-type: none;
109 132 }
110 133 }
111 134 }
112 135
113 136 #clone_by_name, #clone_by_id{
114 137 display: inline-block;
115 138 margin-left: 0px;
116 139 }
117 140
118 141 .codeblock {
119 142 border: none;
120 143 background-color: transparent;
121 144 }
122 145
123 146 .code-body {
124 147 border: @border-thickness solid @border-default-color;
125 148 .border-radius(@border-radius);
126 149 }
150
151 .btn-collapse {
152 clear: both;
153 float: none;
154 background: #F7F7F7;
155 text-align: center;
156 color: #949494;
157 font-size: 11px;
158
159 &:hover {
160 background: #f1f1f1;
161 color: #2B2B2D;
162 }
163 }
127 164 }
128 165
129 166 // this is used outside of just the summary
130 167 .fieldset, // similar to form fieldset
131 168 .summary .sidebar-right-content { // these have to match
132 169 clear: both;
133 float: left;
170 float: none;
134 171 position: relative;
135 172 display:block;
136 173 width: 100%;
137 174 min-height: 1em;
138 margin-bottom: @textmargin;
175 margin-bottom: 10px;
139 176 padding: 0;
140 177 line-height: 1.2em;
141 178
142 179 &:after { // clearfix
143 180 content: "";
144 181 clear: both;
145 182 width: 100%;
146 183 height: 1em;
147 184 }
148 185 }
149 186
150 187 .summary .sidebar-right-content {
151 188 margin-bottom: @space;
152 189
153 190 .rc-user {
154 191 min-width: 0;
155 192 }
156 193 }
157 194
158 195 .fieldset {
159 196
160 197 .left-label { // similar to form legend
161 float: left;
162 198 display: block;
163 width: 25%;
164 199 margin: 0;
165 200 padding: 0;
166 201 font-weight: @text-semibold-weight;
167 202 font-family: @text-semibold;
168 203 }
169 204
170 205 .left-label-summary {
171 .left-label;
172 width: 150px;
206 padding-left: 20px;
207 margin-bottom: 5px;
208
209 p {
210 margin-bottom: 5px;
211 color: @grey1;
212 }
213 }
214
215 .left-content {
216 width: ~"calc(50% - 20px)";
217 float: left;
218 margin: 15px 0 15px 20px;
173 219 }
174 220
175 221 .right-content { // similar to form fields
176 222 float: left;
177 223 display: block;
178 width: 75%;
179 margin: 0 0 0 -15%;
180 padding: 0 0 0 15%;
224 width: ~"calc(50% - 20px)";
225 text-align: right;
226 margin: 15px 20px 15px 0;
181 227
182 228 .truncate-wrap,
183 229 .truncate {
184 230 max-width: 100%;
185 231 width: 100%;
186 232 }
187 233
188 234 .commit-long {
189 235 overflow-x: auto;
190 236 }
237
238 .commit-info {
239 margin-top: 7px;
240 }
241
242 .tag, .tagtag, .branchtag, .booktag, .metatag, .perm_tag {
243 background:transparent;
244 border: none;
245 box-shadow: none;
246 margin-left: 10px;
247 font-size: 13px;
248 }
249
250 .tag span, .tag i {
251 color: @grey1;
252 }
191 253 }
192 254 .commit.truncate-wrap {
193 255 overflow:hidden;
194 256 text-overflow: ellipsis;
195 257 }
196 258 }
197 259
198 260 // expand commit message
199 261 #message_expand {
200 262 clear: both;
201 263 display: block;
202 264 color: @rcblue;
203 265 cursor: pointer;
204 266 }
205 267
206 268 #trimmed_message_box {
207 269 max-height: floor(2 * @basefontsize * 1.2); // 2 lines * line-height
208 270 overflow: hidden;
209 271 }
210 272
211 273 // show/hide comments button
212 274 .show-inline-comments {
213 275 display: inline;
214 276 cursor: pointer;
215 277
216 278 .comments-show { display: inline; }
217 279 .comments-hide { display: none; }
218 280
219 281 &.comments-visible {
220 282 .comments-show { display: none; }
221 283 .comments-hide { display: inline; }
222 284 }
223 285 }
224 286
225 287 // Quick Start section
288
289 .empty-repo {
290 border: 1px solid #EAEAEA;
291 border-bottom: 0;
292 border-radius: @border-radius;
293 padding: 0 20px;
294 }
295
296 .empty-repo h3, .quick_start p {
297 margin-bottom: 10px;
298 }
299
300 .quick_start pre {
301 background: #FCFEFF;
302 border: 1px solid #CBDBEB;
303 box-shadow: @button-shadow;
304 padding: 10px 15px;
305 border-radius: 4px;
306 color: @grey2;
307 }
308
309 .clearfix {
310 clear: both;
311 }
312
226 313 .quick_start {
227 float: left;
228 314 display: block;
229 315 position: relative;
230 width: 100%;
316 border: 1px solid #EAEAEA;
317 border-top: 0;
318 border-radius: @border-radius;
319 padding: 0 20px;
231 320
232 321 // adds some space to make copy and paste easier
233 322 .left-label,
234 323 .right-content {
235 324 line-height: 1.6em;
236 325 }
237 326 }
238 327
328
239 329 .submodule {
240 330 .summary-detail {
241 331 width: 100%;
242 332
243 333 .btn-collapse {
244 334 display: none;
245 335 }
246 336 }
247 337 }
248 338
249 339 .codeblock-header {
250 340 float: left;
251 341 display: block;
252 342 width: 100%;
253 343 margin: 0;
254 344 padding: @space 0 10px 0;
255 345 border-top: @border-thickness solid @border-default-color;
256 346
257 347 .stats {
258 348 float: left;
259 349 }
260 350 .stats-filename {
261 351 font-size: 120%;
262 352 }
263 353 .stats-first-item {
264 354 padding: 0px 0px 0px 3px;
265 355 }
266 356
267 357 .buttons {
268 358 float: right;
269 359 text-align: right;
270 360 color: @grey4;
271 361 }
272 362
273 363 .file-container {
274 364 display: inline-block;
275 365 width: 100%;
276 366 }
277 367
278 368 }
279 369
280 370 #summary-menu-stats {
281 371
282 372 .stats-bullet {
283 373 color: @grey3;
284 374 min-width: 3em;
285 375 }
286 376
287 377 .repo-size {
288 378 margin-bottom: .5em;
289 379 }
290 380
291 381 }
292 382
383 .rctable.repo_summary {
384 border: 1px solid #eaeaea;
385 border-radius: 2px;
386 border-collapse: inherit;
387 border-bottom: 0;
388
389 th {
390 background: @grey7;
391 border-bottom: 0;
392 }
393
394 td {
395 border-color: #eaeaea;
396 }
397
398 td.td-status {
399 padding-left: 10px;
400 }
401 }
402
403
404
405
@@ -1,231 +1,259 b''
1 1 <%def name="refs_counters(branches, closed_branches, tags, bookmarks)">
2 2 <span class="branchtag tag">
3 3 <a href="${h.route_path('branches_home',repo_name=c.repo_name)}" class="childs">
4 <i class="icon-branch"></i>${_ungettext(
5 '%(num)s Branch','%(num)s Branches', len(branches)) % {'num': len(branches)}}</a>
4 <i class="icon-branch"></i>
5 % if len(branches) == 1:
6 <span>${len(branches)}</span> ${_('Branch')}
7 % else:
8 <span>${len(branches)}</span> ${_('Branches')}
9 % endif
10 </a>
6 11 </span>
7 12
8 13 %if closed_branches:
9 14 <span class="branchtag tag">
10 15 <a href="${h.route_path('branches_home',repo_name=c.repo_name)}" class="childs">
11 <i class="icon-branch"></i>${_ungettext(
12 '%(num)s Closed Branch', '%(num)s Closed Branches', len(closed_branches)) % {'num': len(closed_branches)}}</a>
16 <i class="icon-branch"></i>
17 % if len(closed_branches) == 1:
18 <span>${len(closed_branches)}</span> ${_('Closed Branch')}
19 % else:
20 <span>${len(closed_branches)}</span> ${_('Closed Branches')}
21 % endif
22 </a>
13 23 </span>
14 24 %endif
15 25
16 26 <span class="tagtag tag">
17 27 <a href="${h.route_path('tags_home',repo_name=c.repo_name)}" class="childs">
18 <i class="icon-tag"></i>${_ungettext(
19 '%(num)s Tag', '%(num)s Tags', len(tags)) % {'num': len(tags)}}</a>
28 <i class="icon-tag"></i>
29 % if len(tags) == 1:
30 <span>${len(tags)}</span> ${_('Tag')}
31 % else:
32 <span>${len(tags)}</span> ${_('Tags')}
33 % endif
34 </a>
20 35 </span>
21 36
22 37 %if bookmarks:
23 38 <span class="booktag tag">
24 39 <a href="${h.route_path('bookmarks_home',repo_name=c.repo_name)}" class="childs">
25 <i class="icon-bookmark"></i>${_ungettext(
26 '%(num)s Bookmark', '%(num)s Bookmarks', len(bookmarks)) % {'num': len(bookmarks)}}</a>
40 <i class="icon-bookmark"></i>
41 % if len(bookmarks) == 1:
42 <span>${len(bookmarks)}</span> ${_('Bookmark')}
43 % else:
44 <span>${len(bookmarks)}</span> ${_('Bookmarks')}
45 % endif
46 </a>
27 47 </span>
28 48 %endif
29 49 </%def>
30 50
31 51 <%def name="summary_detail(breadcrumbs_links, show_downloads=True)">
32 52 <% summary = lambda n:{False:'summary-short'}.get(n) %>
33 53
34 54 <div id="summary-menu-stats" class="summary-detail">
35 <div class="summary-detail-header">
36 <div class="breadcrumbs files_location">
37 <h4>
38 ${breadcrumbs_links}
39 </h4>
40 </div>
41 <div id="summary_details_expand" class="btn-collapse" data-toggle="summary-details">
42 ${_('Show More')}
43 </div>
44 </div>
45
46 55 <div class="fieldset">
47
56 <div class="left-content">
48 57 <div class="left-clone">
49 58 <select id="clone_option" name="clone_option">
50 59 <option value="http" selected="selected">HTTP</option>
51 60 <option value="http_id">HTTP UID</option>
52 61 % if c.ssh_enabled:
53 62 <option value="ssh">SSH</option>
54 63 % endif
55 64 </select>
56 65 </div>
66
57 67 <div class="right-clone">
58 68 <%
59 69 maybe_disabled = ''
60 70 if h.is_svn_without_proxy(c.rhodecode_db_repo):
61 71 maybe_disabled = 'disabled'
62 72 %>
63 73
64 74 <span id="clone_option_http">
65 75 <input type="text" class="input-monospace clone_url_input" ${maybe_disabled} readonly="readonly" value="${c.clone_repo_url}"/>
66 76 <i class="tooltip icon-clipboard clipboard-action" data-clipboard-text="${c.clone_repo_url}" title="${_('Copy the clone url')}"></i>
67 77 </span>
68 78
69 79 <span style="display: none;" id="clone_option_http_id">
70 80 <input type="text" class="input-monospace clone_url_input" ${maybe_disabled} readonly="readonly" value="${c.clone_repo_url_id}"/>
71 81 <i class="tooltip icon-clipboard clipboard-action" data-clipboard-text="${c.clone_repo_url_id}" title="${_('Copy the clone by id url')}"></i>
72 82 </span>
73 83
74 84 <span style="display: none;" id="clone_option_ssh">
75 85 <input type="text" class="input-monospace clone_url_input" ${maybe_disabled} readonly="readonly" value="${c.clone_repo_url_ssh}"/>
76 86 <i class="tooltip icon-clipboard clipboard-action" data-clipboard-text="${c.clone_repo_url_ssh}" title="${_('Copy the clone by ssh url')}"></i>
77 87 </span>
78 88
79 89 % if maybe_disabled:
80 90 <p class="help-block">${_('SVN Protocol is disabled. To enable it, see the')} <a href="${h.route_url('enterprise_svn_setup')}" target="_blank">${_('documentation here')}</a>.</p>
81 91 % endif
82
83 92 </div>
84 </div>
93 </div>
85 94
86 <div class="fieldset">
87 <div class="left-label-summary">
88 &nbsp;
89 </div>
90 95 <div class="right-content">
91 96 <div class="commit-info">
92 97 <div class="tags">
93 98 <% commit_rev = c.rhodecode_db_repo.changeset_cache.get('revision') %>
94 99 % if c.rhodecode_repo:
95 100 ${refs_counters(
96 101 c.rhodecode_repo.branches,
97 102 c.rhodecode_repo.branches_closed,
98 103 c.rhodecode_repo.tags,
99 104 c.rhodecode_repo.bookmarks)}
100 105 % else:
101 106 ## missing requirements can make c.rhodecode_repo None
102 107 ${refs_counters([], [], [], [])}
103 108 % endif
104 109
105 110 ## commits
106 111 <span class="tag">
107 112 % if commit_rev == -1:
108 ${_ungettext('%(num)s Commit', '%(num)s Commits', 0) % {'num': 0}}
113 <i class="icon-tag"></i>
114 % if commit_rev == -1:
115 <span>0</span> ${_('Commit')}
116 % else:
117 <span>0</span> ${_('Commits')}
118 % endif
109 119 % else:
110 120 <a href="${h.route_path('repo_changelog', repo_name=c.repo_name)}">
111 ${_ungettext('%(num)s Commit', '%(num)s Commits', commit_rev) % {'num': commit_rev}}</a>
121 <i class="icon-tag"></i>
122 % if commit_rev == 1:
123 <span>${commit_rev}</span> ${_('Commit')}
124 % else:
125 <span>${commit_rev}</span> ${_('Commits')}
126 % endif
127 </a>
112 128 % endif
113 129 </span>
114 130
115 131 ## forks
116 132 <span class="tag">
117 133 <a title="${_('Number of Repository Forks')}" href="${h.route_path('repo_forks_show_all', repo_name=c.repo_name)}">
118 ${c.repository_forks} ${_ungettext('Fork', 'Forks', c.repository_forks)}</a>
134 <i class="icon-code-fork"></i>
135 <span>${c.repository_forks}</span> ${_ungettext('Fork', 'Forks', c.repository_forks)}</a>
119 136 </span>
120
121 137 </div>
122 138 </div>
123 </div>
124 139 </div>
140 </div>
125 141
126 142 <div class="fieldset collapsable-content" data-toggle="summary-details" style="display: none;">
127 143 <div class="left-label-summary">
128 ${_('Repository size')}:
129 </div>
130 <div class="right-content">
144 <p>${_('Repository size')}</p>
145
131 146 <div class="commit-info">
132 147 <div class="tags">
133 148 ## repo size
134 149 % if commit_rev == -1:
135 150 <span class="stats-bullet">0 B</span>
136 151 % else:
137 152 <span>
138 153 <a href="#showSize" onclick="calculateSize(); $(this).hide(); return false" id="show-repo-size">Show repository size</a>
139 154 </span>
140 155 <span class="stats-bullet" id="repo_size_container" style="display:none">
141 156 ${_('Calculating Repository Size...')}
142 157 </span>
143 158 % endif
144 159 </div>
145 160 </div>
146 161 </div>
147 162 </div>
148 163
149 164 <div class="fieldset collapsable-content" data-toggle="summary-details" style="display: none;">
150 165 <div class="left-label-summary">
151 ${_('Description')}:
152 </div>
153 <div class="right-content">
166 <p>${_('Description')}</p>
167
154 168 <div class="input ${summary(c.show_stats)}">
155 169 <%namespace name="dt" file="/data_table/_dt_elements.mako"/>
156 170 ${dt.repo_desc(c.rhodecode_db_repo.description_safe, c.visual.stylify_metatags)}
157 171 </div>
158 172 </div>
159 173 </div>
160 174
161 175 % if show_downloads:
162 176 <div class="fieldset collapsable-content" data-toggle="summary-details" style="display: none;">
163 177 <div class="left-label-summary">
164 ${_('Downloads')}:
165 </div>
166 <div class="right-content">
178 <p>${_('Downloads')}</p>
179
167 180 <div class="input ${summary(c.show_stats)} downloads">
168 181 % if c.rhodecode_repo and len(c.rhodecode_repo.commit_ids) == 0:
169 182 <span class="disabled">
170 183 ${_('There are no downloads yet')}
171 184 </span>
172 185 % elif not c.enable_downloads:
173 186 <span class="disabled">
174 187 ${_('Downloads are disabled for this repository')}.
175 188 </span>
176 189 % if c.is_super_admin:
177 190 ${h.link_to(_('Enable downloads'),h.route_path('edit_repo',repo_name=c.repo_name, _anchor='repo_enable_downloads'))}
178 191 % endif
179 192 % else:
180 193 <span class="enabled">
181 194 <a id="archive_link" class="btn btn-small" href="${h.route_path('repo_archivefile',repo_name=c.rhodecode_db_repo.repo_name,fname='tip.zip')}">
182 195 <i class="icon-archive"></i> tip.zip
183 196 ## replaced by some JS on select
184 197 </a>
185 198 </span>
186 199 ${h.hidden('download_options')}
187 200 % endif
188 201 </div>
189 202 </div>
190 203 </div>
191 204 % endif
192 205
193 206 ## Statistics
194 207 <div class="fieldset collapsable-content" data-toggle="summary-details" style="display: none;">
195 208 <div class="left-label-summary">
196 ${_('Statistics')}:
197 </div>
198 <div class="right-content">
209 <p>${_('Statistics')}</p>
210
199 211 <div class="input ${summary(c.show_stats)} statistics">
200 212 % if c.show_stats:
201 213 <div id="lang_stats" class="enabled">
202 214 ${_('Calculating Code Statistics...')}
203 215 </div>
204 216 % else:
205 217 <span class="disabled">
206 218 ${_('Statistics are disabled for this repository')}.
207 219 </span>
208 220 % if c.is_super_admin:
209 221 ${h.link_to(_('Enable statistics'),h.route_path('edit_repo',repo_name=c.repo_name, _anchor='repo_enable_statistics'))}
210 222 % endif
211 223 % endif
212 224 </div>
213 225
214 226 </div>
215 227 </div>
216 228
229 <div class="fieldset collapsable-content" data-toggle="summary-details" style="display: none;">
230 <div class="left-label-summary">
231 <p>${_('Owner')}</p>
232
233
234 </div>
235 </div>
236
237 ## Context Action
238 <div class="fieldset collapsable-content" data-toggle="summary-details" style="display: none;">
239 <div class="left-label-summary">
240 %if c.rhodecode_user.username != h.DEFAULT_USER:
241 <a href="${h.route_path('atom_feed_home', repo_name=c.rhodecode_db_repo.repo_name, _query=dict(auth_token=c.rhodecode_user.feed_token))}" title="${_('RSS Feed')}" class="btn btn-sm"><i class="icon-rss-sign"></i>RSS</a>
242 %else:
243 <a href="${h.route_path('atom_feed_home', repo_name=c.rhodecode_db_repo.repo_name)}" title="${_('RSS Feed')}" class="btn btn-sm"><i class="icon-rss-sign"></i>RSS</a>
244 %endif
245 </div>
246 </div>
247
217 248 </div><!--end summary-detail-->
249
250 <div id="summary_details_expand" class="btn-collapse" data-toggle="summary-details">
251 ${_('Show More')}
252 </div>
218 253 </%def>
219 254
220 255 <%def name="summary_stats(gravatar_function)">
221 <div class="sidebar-right">
222 <div class="summary-detail-header">
223 <h4 class="item">
224 ${_('Owner')}
225 </h4>
226 </div>
227 <div class="sidebar-right-content">
228 ${gravatar_function(c.rhodecode_db_repo.user.email, 16)}
229 </div>
230 </div><!--end sidebar-right-->
256 <div class="">
257 ${gravatar_function(c.rhodecode_db_repo.user.email, 16)}
258 </div>
231 259 </%def>
@@ -1,127 +1,115 b''
1 1 <%inherit file="/summary/summary_base.mako"/>
2 2
3 3 <%namespace name="components" file="/summary/components.mako"/>
4 4
5 5
6 6 <%def name="menu_bar_subnav()">
7 7 ${self.repo_menu(active='summary')}
8 8 </%def>
9 9
10 10 <%def name="main()">
11 11
12 <div class="title">
13 ## Context Action
14 <div>
15 <ul class="links icon-only-links block-right">
16 <li>
17 %if c.rhodecode_user.username != h.DEFAULT_USER:
18 <a href="${h.route_path('atom_feed_home', repo_name=c.rhodecode_db_repo.repo_name, _query=dict(auth_token=c.rhodecode_user.feed_token))}" title="${_('RSS Feed')}" class="btn btn-sm"><i class="icon-rss-sign"></i>RSS</a>
19 %else:
20 <a href="${h.route_path('atom_feed_home', repo_name=c.rhodecode_db_repo.repo_name)}" title="${_('RSS Feed')}" class="btn btn-sm"><i class="icon-rss-sign"></i>RSS</a>
21 %endif
22 </li>
23 </ul>
24 </div>
25 </div>
26
27 12 <div id="repo-summary" class="summary">
28 13 ${components.summary_detail(breadcrumbs_links=self.breadcrumbs_links(), show_downloads=True)}
29 14 ${components.summary_stats(gravatar_function=self.gravatar_with_user)}
30 15 </div><!--end repo-summary-->
31 16
32 17
33 <div class="box" >
34 %if not c.repo_commits:
35 <div class="title">
36 <h3>${_('Quick start')}</h3>
18 <div class="box">
19 %if not c.repo_commits:
20 <div class="empty-repo">
21 <div class="title">
22 <h3>${_('Quick start')}</h3>
23 </div>
24 <div class="clearfix"></div>
25 </div>
26 %endif
27 <div class="table">
28 <div id="shortlog_data">
29 <%include file='summary_commits.mako'/>
30 </div>
37 31 </div>
38 %endif
39 <div class="table">
40 <div id="shortlog_data">
41 <%include file='summary_commits.mako'/>
42 </div>
43 </div>
44 32 </div>
45 33
46 34 %if c.readme_data:
47 35 <div id="readme" class="anchor">
48 <div class="box" >
36 <div class="box">
49 37 <div class="title" title="${h.tooltip(_('Readme file from commit %s:%s') % (c.rhodecode_db_repo.landing_rev[0], c.rhodecode_db_repo.landing_rev[1]))}">
50 38 <h3 class="breadcrumbs">
51 39 <a href="${h.route_path('repo_files',repo_name=c.repo_name,commit_id=c.rhodecode_db_repo.landing_rev[1],f_path=c.readme_file)}">${c.readme_file}</a>
52 40 </h3>
53 41 </div>
54 42 <div class="readme codeblock">
55 43 <div class="readme_box">
56 44 ${c.readme_data|n}
57 45 </div>
58 46 </div>
59 47 </div>
60 48 </div>
61 49 %endif
62 50
63 51 <script type="text/javascript">
64 52 $(document).ready(function(){
65 53
66 54 var showCloneField = function(clone_url_format){
67 55 $.each(['http', 'http_id', 'ssh'], function (idx, val) {
68 56 if(val === clone_url_format){
69 57 $('#clone_option_' + val).show();
70 58 $('#clone_option').val(val)
71 59 } else {
72 60 $('#clone_option_' + val).hide();
73 61 }
74 62 });
75 63 };
76 64 // default taken from session
77 65 showCloneField(templateContext.session_attrs.clone_url_format);
78 66
79 67 $('#clone_option').on('change', function(e) {
80 68 var selected = $(this).val();
81 69
82 70 storeUserSessionAttr('rc_user_session_attr.clone_url_format', selected);
83 71 showCloneField(selected)
84 72 });
85 73
86 74 var initialCommitData = {
87 75 id: null,
88 76 text: 'tip',
89 77 type: 'tag',
90 78 raw_id: null,
91 79 files_url: null
92 80 };
93 81
94 82 select2RefSwitcher('#download_options', initialCommitData);
95 83
96 84 // on change of download options
97 85 $('#download_options').on('change', function(e) {
98 86 // format of Object {text: "v0.0.3", type: "tag", id: "rev"}
99 87 var ext = '.zip';
100 88 var selected_cs = e.added;
101 89 var fname = e.added.raw_id + ext;
102 90 var href = pyroutes.url('repo_archivefile', {'repo_name': templateContext.repo_name, 'fname':fname});
103 91 // set new label
104 92 $('#archive_link').html('<i class="icon-archive"></i> {0}{1}'.format(escapeHtml(e.added.text), ext));
105 93
106 94 // set new url to button,
107 95 $('#archive_link').attr('href', href)
108 96 });
109 97
110 98
111 99 // calculate size of repository
112 100 calculateSize = function () {
113 101
114 102 var callback = function (data) {
115 103 % if c.show_stats:
116 104 showRepoStats('lang_stats', data);
117 105 % endif
118 106 };
119 107
120 108 showRepoSize('repo_size_container', templateContext.repo_name, templateContext.repo_landing_commit, callback);
121 109
122 110 }
123 111
124 112 })
125 113 </script>
126 114
127 115 </%def>
@@ -1,145 +1,140 b''
1 1 ## -*- coding: utf-8 -*-
2 2 <%namespace name="base" file="/base/base.mako"/>
3 3 %if c.repo_commits:
4 4 <table class="rctable repo_summary table_disp">
5 5 <tr>
6 6
7 7 <th class="status" colspan="2"></th>
8 8 <th>${_('Commit')}</th>
9 9 <th>${_('Commit message')}</th>
10 10 <th>${_('Age')}</th>
11 11 <th>${_('Author')}</th>
12 12 <th>${_('Refs')}</th>
13 13 </tr>
14 14
15 15 ## to speed up lookups cache some functions before the loop
16 16 <%
17 17 active_patterns = h.get_active_pattern_entries(c.repo_name)
18 18 urlify_commit_message = h.partial(h.urlify_commit_message, active_pattern_entries=active_patterns)
19 19 %>
20 20 %for cnt,cs in enumerate(c.repo_commits):
21 21 <tr class="parity${cnt%2}">
22 22
23 23 <td class="td-status">
24 24 %if c.statuses.get(cs.raw_id):
25 25 <div class="changeset-status-ico shortlog">
26 26 %if c.statuses.get(cs.raw_id)[2]:
27 27 <a class="tooltip" title="${_('Commit status: %s\nClick to open associated pull request #%s') % (c.statuses.get(cs.raw_id)[0], c.statuses.get(cs.raw_id)[2])}" href="${h.route_path('pullrequest_show',repo_name=c.statuses.get(cs.raw_id)[3],pull_request_id=c.statuses.get(cs.raw_id)[2])}">
28 28 <div class="${'flag_status {}'.format(c.statuses.get(cs.raw_id)[0])}"></div>
29 29 </a>
30 30 %else:
31 31 <a class="tooltip" title="${_('Commit status: {}').format(h.commit_status_lbl(c.statuses.get(cs.raw_id)[0]))}" href="${h.route_path('repo_commit',repo_name=c.repo_name,commit_id=cs.raw_id,_anchor='comment-%s' % c.comments[cs.raw_id][0].comment_id)}">
32 32 <div class="${'flag_status {}'.format(c.statuses.get(cs.raw_id)[0])}"></div>
33 33 </a>
34 34 %endif
35 35 </div>
36 36 %else:
37 37 <div class="tooltip flag_status not_reviewed" title="${_('Commit status: Not Reviewed')}"></div>
38 38 %endif
39 39 </td>
40 40 <td class="td-comments">
41 41 %if c.comments.get(cs.raw_id,[]):
42 42 <a title="${_('Commit has comments')}" href="${h.route_path('repo_commit',repo_name=c.repo_name,commit_id=cs.raw_id,_anchor='comment-%s' % c.comments[cs.raw_id][0].comment_id)}">
43 43 <i class="icon-comment"></i> ${len(c.comments[cs.raw_id])}
44 44 </a>
45 45 %endif
46 46 </td>
47 47 <td class="td-commit">
48 48 <code>
49 49 <a href="${h.route_path('repo_commit', repo_name=c.repo_name, commit_id=cs.raw_id)}">${h.show_id(cs)}</a>
50 50 <i class="tooltip icon-clipboard clipboard-action" data-clipboard-text="${cs.raw_id}" title="${_('Copy the full commit id')}"></i>
51 51 </code>
52 52 </td>
53 53
54 54 <td class="td-description mid">
55 55 <div class="log-container truncate-wrap">
56 56 <div class="message truncate" id="c-${cs.raw_id}">${urlify_commit_message(cs.message, c.repo_name)}</div>
57 57 </div>
58 58 </td>
59 59
60 60 <td class="td-time">
61 61 ${h.age_component(cs.date)}
62 62 </td>
63 63 <td class="td-user author">
64 64 ${base.gravatar_with_user(cs.author)}
65 65 </td>
66 66
67 67 <td class="td-tags">
68 68 <div class="autoexpand">
69 69 %if h.is_hg(c.rhodecode_repo):
70 70 %for book in cs.bookmarks:
71 71 <span class="booktag tag" title="${h.tooltip(_('Bookmark %s') % book)}">
72 72 <a href="${h.route_path('repo_files:default_path',repo_name=c.repo_name,commit_id=cs.raw_id, _query=dict(at=book))}"><i class="icon-bookmark"></i>${h.shorter(book)}</a>
73 73 </span>
74 74 %endfor
75 75 %endif
76 76 ## tags
77 77 %for tag in cs.tags:
78 78 <span class="tagtag tag" title="${h.tooltip(_('Tag %s') % tag)}">
79 79 <a href="${h.route_path('repo_files:default_path',repo_name=c.repo_name,commit_id=cs.raw_id, _query=dict(at=tag))}"><i class="icon-tag"></i>${h.shorter(tag)}</a>
80 80 </span>
81 81 %endfor
82 82
83 83 ## branch
84 84 %if cs.branch:
85 85 <span class="branchtag tag" title="${h.tooltip(_('Branch %s') % cs.branch)}">
86 86 <a href="${h.route_path('repo_changelog',repo_name=c.repo_name,_query=dict(branch=cs.branch))}"><i class="icon-code-fork"></i>${h.shorter(cs.branch)}</a>
87 87 </span>
88 88 %endif
89 89 </div>
90 90 </td>
91 91 </tr>
92 92 %endfor
93 93
94 94 </table>
95 95
96 96 <script type="text/javascript">
97 97 $(document).pjax('#shortlog_data .pager_link','#shortlog_data', {timeout: 2000, scrollTo: false, push: false});
98 98 $(document).on('pjax:success', function(){ timeagoActivate(); });
99 99 </script>
100 100
101 101 <div class="pagination-wh pagination-left">
102 102 ${c.repo_commits.pager('$link_previous ~2~ $link_next')}
103 103 </div>
104 104 %else:
105 105
106 106 %if h.HasRepoPermissionAny('repository.write','repository.admin')(c.repo_name):
107 107 <div class="quick_start">
108 108 <div class="fieldset">
109 <div class="left-label">${_('Add or upload files directly via RhodeCode:')}</div>
110 <div class="right-content">
111 <div id="add_node_id" class="add_node">
112 <a href="${h.route_path('repo_files_add_file',repo_name=c.repo_name,commit_id=0, f_path='', _anchor='edit')}" class="btn btn-default">${_('Add New File')}</a>
113 </div>
109 <p><b>${_('Add or upload files directly via RhodeCode:')}</b></p>
110 <div id="add_node_id" class="add_node">
111 <a href="${h.route_path('repo_files_add_file',repo_name=c.repo_name,commit_id=0, f_path='', _anchor='edit')}" class="btn btn-default">${_('Add New File')}</a>
114 112 </div>
115 113 %endif
116 114 </div>
117 115
118 116 %if not h.is_svn(c.rhodecode_repo):
119 117 <div class="fieldset">
120 <div class="left-label">${_('Push new repo:')}</div>
121 <div class="right-content">
118 <p><b>${_('Push new repo:')}</b></p>
122 119 <pre>
123 120 ${c.rhodecode_repo.alias} clone ${c.clone_repo_url}
124 121 ${c.rhodecode_repo.alias} add README # add first file
125 122 ${c.rhodecode_repo.alias} commit -m "Initial" # commit with message
126 123 ${c.rhodecode_repo.alias} push ${'origin master' if h.is_git(c.rhodecode_repo) else ''} # push changes back
127 </pre>
128 </div>
124 </pre>
129 125 </div>
126
130 127 <div class="fieldset">
131 <div class="left-label">${_('Existing repository?')}</div>
132 <div class="right-content">
128 <p><b>${_('Existing repository?')}</b></p>
133 129 <pre>
134 130 %if h.is_git(c.rhodecode_repo):
135 131 git remote add origin ${c.clone_repo_url}
136 132 git push -u origin master
137 133 %else:
138 134 hg push ${c.clone_repo_url}
139 135 %endif
140 </pre>
141 </div>
136 </pre>
142 137 </div>
143 138 %endif
144 139 </div>
145 140 %endif
General Comments 0
You need to be logged in to leave comments. Login now