Showing 7 changed files with 195 additions and 555 deletions
-526
public/gitweb.css
... ...
@@ -1,526 +0,0 @@
1
-body {
2
-        font-family: sans-serif;
3
-        border: solid #d9d8d1;
4
-        border-width: 1px;
5
-        margin: 10px;
6
-        background-color: #ffffff;
7
-        color: #000000;
8
-}
9
-
10
-span.cntrl {
11
-        border: dashed #aaaaaa;
12
-        border-width: 1px;
13
-        padding: 0px 2px 0px 2px;
14
-        margin:  0px 2px 0px 2px;
15
-}
16
-
17
-img.logo {
18
-        float: right;
19
-        border-width: 0px;
20
-}
21
-
22
-img.avatar {
23
-        vertical-align: middle;
24
-}
25
-
26
-div.page_header {
27
-        height: 25px;
28
-        padding: 8px;
29
-        font-weight: bold;
30
-        background-color: #d9d8d1;
31
-}
32
-
33
-div.page_header a:visited {
34
-        color: #0000cc;
35
-}
36
-
37
-div.page_header a:hover {
38
-        color: #880000;
39
-}
40
-
41
-div.page_nav {
42
-        padding: 8px;
43
-}
44
-
45
-div.page_nav a:visited {
46
-        color: #0000cc;
47
-}
48
-
49
-div.page_path {
50
-        padding: 8px;
51
-        font-weight: bold;
52
-        border: solid #d9d8d1;
53
-        border-width: 0px 0px 1px;
54
-}
55
-
56
-div.page_footer {
57
-        height: 17px;
58
-        padding: 4px 8px;
59
-        background-color: #d9d8d1;
60
-}
61
-
62
-div.page_footer_text {
63
-        float: left;
64
-        color: #555555;
65
-        font-style: italic;
66
-}
67
-
68
-div#generating_info {
69
-        margin: 4px;
70
-        text-align: center;
71
-        color: #505050;
72
-}
73
-
74
-div.title{
75
-        display: block;
76
-        padding: 6px 8px;
77
-        font-weight: bold;
78
-        background-color: #edece6;
79
-        text-decoration: none;
80
-        color: #000000;
81
-}
82
-
83
-div.readme {
84
-        padding: 8px;
85
-}
86
-
87
-div.title_text {
88
-        padding: 6px 0px;
89
-        border: solid #d9d8d1;
90
-        border-width: 0px 0px 1px;
91
-        font-family: monospace;
92
-}
93
-
94
-div.log_body {
95
-        padding: 8px 8px 8px 150px;
96
-}
97
-
98
-span.age {
99
-        position: relative;
100
-        float: left;
101
-        width: 142px;
102
-        font-style: italic;
103
-}
104
-
105
-span.signoff {
106
-        color: #888888;
107
-}
108
-
109
-div.log_link {
110
-        padding: 0px 8px;
111
-        font-family: sans-serif;
112
-        font-style: normal;
113
-        position: relative;
114
-        float: left;
115
-        width: 136px;
116
-}
117
-
118
-div.list_head {
119
-        padding: 6px 8px 4px;
120
-        border: solid #d9d8d1;
121
-        border-width: 1px 0px 0px;
122
-        font-style: italic;
123
-}
124
-
125
-.author {
126
-        font-style: italic;
127
-}
128
-
129
-table {
130
-        padding: 8px 4px;
131
-        border-spacing: 0;
132
-}
133
-
134
-table.diff_tree {
135
-        font-family: monospace;
136
-}
137
-
138
-table.combined.diff_tree th {
139
-        text-align: center;
140
-}
141
-
142
-table.combined.diff_tree td {
143
-        padding-right: 24px;
144
-}
145
-
146
-table.combined.diff_tree th.link,
147
-table.combined.diff_tree td.link {
148
-        padding: 0px 2px;
149
-}
150
-
151
-table.combined.diff_tree td.nochange a {
152
-        color: #6666ff;
153
-}
154
-
155
-table.combined.diff_tree td.nochange a:hover,
156
-table.combined.diff_tree td.nochange a:visited {
157
-        color: #d06666;
158
-}
159
-
160
-table.blame {
161
-        border-collapse: collapse;
162
-}
163
-
164
-table.blame td {
165
-        padding: 0px 5px;
166
-        vertical-align: top;
167
-}
168
-
169
-th {
170
-        padding: 2px 5px;
171
-        text-align: left;
172
-}
173
-
174
-/* do not change row style on hover for 'blame' view */
175
-tr.light,
176
-table.blame .light:hover {
177
-        background-color: #ffffff;
178
-}
179
-
180
-tr.dark,
181
-table.blame .dark:hover {
182
-        background-color: #f6f6f0;
183
-}
184
-
185
-/* currently both use the same, but it can change */
186
-tr.light:hover,
187
-tr.dark:hover {
188
-        background-color: #edece6;
189
-}
190
-
191
-/* boundary commits in 'blame' view */
192
-/* and commits without "previous" */
193
-tr.boundary td.sha1,
194
-tr.no-previous td.linenr {
195
-        font-weight: bold;
196
-}
197
-
198
-/* for 'blame_incremental', during processing */
199
-tr.color1 { background-color: #f6fff6; }
200
-tr.color2 { background-color: #f6f6ff; }
201
-tr.color3 { background-color: #fff6f6; }
202
-
203
-td {
204
-        padding: 2px 5px;
205
-        vertical-align: top;
206
-}
207
-
208
-td.selflink {
209
-        padding: 2px 5px;
210
-        font-family: sans-serif;
211
-}
212
-
213
-td.selflink {
214
-        padding-right: 0px;
215
-}
216
-
217
-td.sha1 {
218
-        font-family: monospace;
219
-}
220
-
221
-.error {
222
-        color: red;
223
-        background-color: yellow;
224
-}
225
-
226
-td.current_head {
227
-        text-decoration: underline;
228
-}
229
-
230
-td.category {
231
-        background-color: #d9d8d1;
232
-        border-top: 1px solid #000000;
233
-        border-left: 1px solid #000000;
234
-        font-weight: bold;
235
-}
236
-
237
-table.diff_tree span.file_status.new {
238
-        color: #008000;
239
-}
240
-
241
-table.diff_tree span.file_status.deleted {
242
-        color: #c00000;
243
-}
244
-
245
-table.diff_tree span.file_status.moved,
246
-table.diff_tree span.file_status.mode_chnge {
247
-        color: #777777;
248
-}
249
-
250
-table.diff_tree span.file_status.copied {
251
-  color: #70a070;
252
-}
253
-
254
-/* noage: "No commits" */
255
-table.project_list td.noage {
256
-        color: #808080;
257
-        font-style: italic;
258
-}
259
-
260
-/* age2: 60*60*24*2 <= age */
261
-table.project_list td.age2, table.blame td.age2 {
262
-        font-style: italic;
263
-}
264
-
265
-/* age1: 60*60*2 <= age < 60*60*24*2 */
266
-table.project_list td.age1 {
267
-        color: #009900;
268
-        font-style: italic;
269
-}
270
-
271
-table.blame td.age1 {
272
-        color: #009900;
273
-        background: transparent;
274
-}
275
-
276
-/* age0: age < 60*60*2 */
277
-table.project_list td.age0 {
278
-        color: #009900;
279
-        font-style: italic;
280
-        font-weight: bold;
281
-}
282
-
283
-table.blame td.age0 {
284
-        color: #009900;
285
-        background: transparent;
286
-        font-weight: bold;
287
-}
288
-
289
-td.pre, div.pre, div.diff {
290
-        font-family: monospace;
291
-        white-space: pre;
292
-}
293
-
294
-td.mode {
295
-        font-family: monospace;
296
-}
297
-
298
-/* progress of blame_interactive */
299
-div#progress_bar {
300
-        height: 2px;
301
-        margin-bottom: -2px;
302
-        background-color: #d8d9d0;
303
-}
304
-div#progress_info {
305
-        float: right;
306
-        text-align: right;
307
-}
308
-
309
-/* format of (optional) objects size in 'tree' view */
310
-td.size {
311
-        font-family: monospace;
312
-        text-align: right;
313
-}
314
-
315
-/* styling of diffs (patchsets): commitdiff and blobdiff views */
316
-div.diff.header,
317
-div.diff.extended_header {
318
-        white-space: normal;
319
-}
320
-
321
-div.diff.header {
322
-        font-weight: bold;
323
-
324
-        background-color: #edece6;
325
-
326
-        margin-top: 4px;
327
-        padding: 4px 0px 2px 0px;
328
-        border: solid #d9d8d1;
329
-        border-width: 1px 0px 1px 0px;
330
-}
331
-
332
-div.diff.extended_header,
333
-
334
-div.diff.extended_header .info {
335
-        color: #b0b0b0;
336
-}
337
-
338
-div.diff.extended_header {
339
-        background-color: #f6f5ee;
340
-        padding: 2px 0px 2px 0px;
341
-}
342
-
343
-div.diff.to_file {
344
-        color: #007000;
345
-}
346
-
347
-div.diff.add {
348
-        color: #008800;
349
-}
350
-
351
-div.diff.from_file {
352
-        color: #aa0000;
353
-}
354
-
355
-div.diff.rem {
356
-        color: #cc0000;
357
-}
358
-
359
-div.diff.chunk_header a,
360
-div.diff.chunk_header {
361
-        color: #990099;
362
-}
363
-
364
-div.diff.chunk_header {
365
-        border: dotted #ffe0ff;
366
-        border-width: 1px 0px 0px 0px;
367
-        margin-top: 2px;
368
-}
369
-
370
-div.diff.chunk_header span.chunk_info {
371
-        background-color: #ffeeff;
372
-}
373
-
374
-div.diff.chunk_header span.section {
375
-        color: #aa22aa;
376
-}
377
-
378
-div.diff.incomplete {
379
-        color: #cccccc;
380
-}
381
-
382
-div.diff.nodifferences {
383
-        font-weight: bold;
384
-        color: #600000;
385
-}
386
-
387
-div.index_include {
388
-        border: solid #d9d8d1;
389
-        border-width: 0px 0px 1px;
390
-        padding: 12px 8px;
391
-}
392
-
393
-div.search {
394
-        font-weight: normal;
395
-        margin: 4px 8px;
396
-        float: right;
397
-        top: 56px;
398
-        right: 12px
399
-}
400
-
401
-p.projsearch {
402
-        text-align: center;
403
-}
404
-
405
-td.linenr {
406
-        text-align: right;
407
-}
408
-
409
-span.refs span {
410
-        padding: 0px 4px;
411
-        font-weight: normal;
412
-        border: 1px solid;
413
-        background-color: #ffaaff;
414
-        border-color: #ffccff #ff00ee #ff00ee #ffccff;
415
-}
416
-
417
-span.refs span a {
418
-        text-decoration: none;
419
-        color: inherit;
420
-}
421
-
422
-span.refs span a:hover {
423
-        text-decoration: underline;
424
-}
425
-
426
-span.refs span.indirect {
427
-        font-style: italic;
428
-}
429
-
430
-span.refs span.ref {
431
-        background-color: #aaaaff;
432
-        border-color: #ccccff #0033cc #0033cc #ccccff;
433
-}
434
-
435
-span.refs span.tag {
436
-        background-color: #ffffaa;
437
-        border-color: #ffffcc #ffee00 #ffee00 #ffffcc;
438
-}
439
-
440
-span.refs span.head {
441
-        background-color: #aaffaa;
442
-        border-color: #ccffcc #00cc33 #00cc33 #ccffcc;
443
-}
444
-
445
-span.atnight {
446
-        color: #cc0000;
447
-}
448
-
449
-span.match {
450
-        color: #e00000;
451
-}
452
-
453
-div.binary {
454
-        font-style: italic;
455
-}
456
-
457
-div.remote {
458
-        margin: .5em;
459
-        border: 1px solid #d9d8d1;
460
-        display: inline-block;
461
-}
462
-
463
-/* JavaScript-based timezone manipulation */
464
-
465
-.popup { /* timezone selection UI */
466
-        position: absolute;
467
-        /* "top: 0; right: 0;" would be better, if not for bugs in browsers */
468
-        top: 0; left: 0;
469
-        border: 1px solid;
470
-        padding: 2px;
471
-        background-color: #f0f0f0;
472
-        font-style: normal;
473
-        color: #000000;
474
-        cursor: auto;
475
-}
476
-
477
-.close-button { /* close timezone selection UI without selecting */
478
-        /* float doesn't work within absolutely positioned container,
479
-         * if width of container is not set explicitly */
480
-        /* float: right; */
481
-        position: absolute;
482
-        top: 0px; right: 0px;
483
-        border:  1px solid green;
484
-        margin:  1px 1px 1px 1px;
485
-        padding-bottom: 2px;
486
-        width:     12px;
487
-        height:    10px;
488
-        font-weight: bold;
489
-        text-align: center;
490
-        background-color: #fff0f0;
491
-        cursor: pointer;
492
-}
493
-
494
-/* side-by-side diff */
495
-div.chunk {
496
-        overflow: hidden;
497
-}
498
-
499
-div.chunk div.old {
500
-        float: left;
501
-        width: 50%;
502
-        overflow: hidden;
503
-}
504
-
505
-div.chunk div.new {
506
-        margin-left: 50%;
507
-        width: 50%;
508
-}
509
-
510
-/* Style definition generated by highlight 2.4.5, http://www.andre-simon.de/ */
511
-
512
-/* Highlighting theme definition: */
513
-
514
-.num    { color:#2928ff; }
515
-.esc    { color:#ff00ff; }
516
-.str    { color:#ff0000; }
517
-.dstr   { color:#818100; }
518
-.slc    { color:#838183; font-style:italic; }
519
-.com    { color:#838183; font-style:italic; }
520
-.dir    { color:#008200; }
521
-.sym    { color:#000000; }
522
-.line   { color:#555555; }
523
-.kwa    { color:#000000; font-weight:bold; }
524
-.kwb    { color:#830000; }
525
-.kwc    { color:#000000; font-weight:bold; }
526
-.kwd    { color:#010181; }
+145
templates/css/common.html.ep
... ...
@@ -60,4 +60,149 @@
60 60
     margin:5px auto;
61 61
   }
62 62
   
63
+  /* Diff */
64
+  table.diff_tree {
65
+          font-family: monospace;
66
+  }
67
+
68
+  table.combined.diff_tree th {
69
+          text-align: center;
70
+  }
71
+
72
+  table.combined.diff_tree td {
73
+          padding-right: 24px;
74
+  }
75
+
76
+  table.combined.diff_tree th.link,
77
+  table.combined.diff_tree td.link {
78
+          padding: 0px 2px;
79
+  }
80
+
81
+  table.combined.diff_tree td.nochange a {
82
+          color: #6666ff;
83
+  }
84
+
85
+  table.combined.diff_tree td.nochange a:hover,
86
+  table.combined.diff_tree td.nochange a:visited {
87
+          color: #d06666;
88
+  }
89
+
90
+  table.diff_tree span.file_status.new {
91
+          color: #008000;
92
+  }
93
+
94
+  table.diff_tree span.file_status.deleted {
95
+          color: #c00000;
96
+  }
97
+
98
+  table.diff_tree span.file_status.moved,
99
+  table.diff_tree span.file_status.mode_chnge {
100
+          color: #777777;
101
+  }
102
+
103
+  table.diff_tree span.file_status.copied {
104
+    color: #70a070;
105
+  }
106
+
107
+  td.pre, div.pre, div.diff {
108
+          font-family: monospace;
109
+          white-space: pre;
110
+  }
111
+
112
+  /* styling of diffs (patchsets): commitdiff and blobdiff views */
113
+  div.diff.header,
114
+  div.diff.extended_header {
115
+          white-space: normal;
116
+  }
117
+
118
+  div.diff.header {
119
+          font-weight: bold;
120
+
121
+          background-color: #edece6;
122
+
123
+          margin-top: 4px;
124
+          padding: 4px 0px 2px 0px;
125
+          border: solid #d9d8d1;
126
+          border-width: 1px 0px 1px 0px;
127
+  }
128
+
129
+  div.diff.extended_header,
130
+
131
+  div.diff.extended_header .info {
132
+          color: #b0b0b0;
133
+  }
134
+
135
+  div.diff.extended_header {
136
+          background-color: #f6f5ee;
137
+          padding: 2px 0px 2px 0px;
138
+  }
139
+
140
+  div.diff.to_file {
141
+          color: #007000;
142
+  }
143
+
144
+  div.diff.add {
145
+          color: #008800;
146
+  }
147
+
148
+  div.diff.from_file {
149
+          color: #aa0000;
150
+  }
151
+
152
+  div.diff.rem {
153
+          color: #cc0000;
154
+  }
155
+
156
+  div.diff.chunk_header a,
157
+  div.diff.chunk_header {
158
+          color: #990099;
159
+  }
160
+
161
+  div.diff.chunk_header {
162
+          border: dotted #ffe0ff;
163
+          border-width: 1px 0px 0px 0px;
164
+          margin-top: 2px;
165
+  }
166
+
167
+  div.diff.chunk_header span.chunk_info {
168
+          background-color: #ffeeff;
169
+  }
170
+
171
+  div.diff.chunk_header span.section {
172
+          color: #aa22aa;
173
+  }
174
+
175
+  div.diff.incomplete {
176
+          color: #cccccc;
177
+  }
178
+
179
+  div.diff.nodifferences {
180
+          font-weight: bold;
181
+          color: #600000;
182
+  }
183
+  div.diff.chunk_header a,
184
+  div.diff.chunk_header {
185
+          color: #990099;
186
+  }
187
+
188
+  div.diff.chunk_header {
189
+          border: dotted #ffe0ff;
190
+          border-width: 1px 0px 0px 0px;
191
+          margin-top: 2px;
192
+  }
193
+
194
+  div.diff.chunk_header span.chunk_info {
195
+          background-color: #ffeeff;
196
+  }
197
+
198
+  div.diff.chunk_header span.section {
199
+          color: #aa22aa;
200
+  }
201
+  div.diff.from_file {
202
+          color: #aa0000;
203
+  }
204
+  div.diff.to_file {
205
+          color: #007000;
206
+  }
207
+
63 208
 % end
+5 -1
templates/include/blobdiff_body.html.ep
... ...
@@ -70,8 +70,12 @@
70 70
       </div>
71 71
     % } elsif ($class eq 'diff binary_file') {
72 72
       <div class="<%= $class %>">Binary files <a href="<%= url_for("/$user/$project/blob/$from_id/$file") %>">a/<%= $file %></a> and <a href="<%= url_for("/$user/$project/blob/$id/$file") %>">b/<%= $file %></a> differ</div>
73
+    % } elsif ($class eq 'diff chunk_header') {
74
+      % my ($hvalue, $dvalue) = $value =~ /^(.+@@)(.+)/;
75
+      <div class="<%= $class %>"><%= $hvalue %></div>
76
+      <div class="diff"><%= $dvalue %></div>
73 77
     % } else {
74
-      <div class="<%= $class %>"><%= $line->{value} %></div>
78
+      <div class="<%= $class %>"><%= $value %></div>
75 79
     % }
76 80
   % }
77 81
 </div>
-1
templates/layouts/common.html.ep
... ...
@@ -4,7 +4,6 @@
4 4
     <meta charset="UTF-8">
5 5
     <meta name="robots" content="index, nofollow" >
6 6
     <title>Git</title>
7
-    %= stylesheet '/gitweb.css';
8 7
     %= javascript '/js/jquery-1.9.0.min.js';
9 8
     <link rel="shortcut icon" href="<%= url_for('/git-favicon.png') %>" type="image/png" >
10 9
   </head>
-2
templates/main/blobdiff.html.ep
... ...
@@ -26,8 +26,6 @@
26 26
       $from_id, $id, '--', $from_file, $file
27 27
     or $api->croak("Open git-diff-tree failed");
28 28
   
29
-  use D;d [$diff, $from_id, $id, $from_file, $file];
30
-  
31 29
   # Lines
32 30
   my @lines = map { $git->dec($_) } <$fh>;
33 31
   close $fh;
+1
templates/main/home.html.ep
... ...
@@ -41,3 +41,4 @@
41 41
       % }
42 42
     </table>
43 43
   </div>
44
+  %= include '/include/footer';
+44 -25
templates/main/projects.html.ep
... ...
@@ -7,30 +7,49 @@
7 7
 %>
8 8
 
9 9
 % layout 'common';
10
+  %= include '/css/common';
10 11
   %= include '/include/header', title => 'Project';
11
-  <table class="project_list">
12
-    <a href="<%= url_for '/' %>">home</a> &gt;
13
-    <%= $user %>
14
-    <tr>
15
-      <th>Project</th>
16
-      <th>Description</th>
17
-      <th>Last Change</th>
18
-      <th></th>
19
-    </tr>
20
-    % my $toggle = 0;
21
-    % for my $rep (@$reps) {
22
-      % my $pname = $rep->{name};
23
-      <tr class="<%= $toggle++ ? 'light' : 'dark' %>">
24
-        <td>
25
-          <a class="list" href="<%= url_for("/$user/$pname") %>">
26
-            <%= $rep->{name} %>
27
-          </a>
28
-        </td>
29
-        <td>
30
-          <%= $rep->{descr} %>
31
-        </td>
32
-        <td class="age2"><%= $rep->{age_string} %></td>
12
+  
13
+  %= stylesheet begin
14
+    /* User */
15
+    .user {
16
+      font-size:180%;
17
+      margin-bottom:10px;
18
+    }
19
+    
20
+    /* Projects */
21
+    .projects {
22
+      font-size:150%;
23
+    }
24
+    .projects .precord {
25
+      padding:20px;
26
+    }
27
+
28
+  % end
29
+  
30
+  <div class="main_panel">
31
+    <table class="projects">
32
+      <div class="user"><%= $user %></div>
33
+      <tr>
34
+        <th>Project</th>
35
+        <th>Description</th>
36
+        <th>Last Change</th>
37
+        <th></th>
33 38
       </tr>
34
-    % }
35
-  </table>
36
-  <div class="page_footer"></div>
39
+      % for my $rep (@$reps) {
40
+        % my $pname = $rep->{name};
41
+        <tr class="precord">
42
+          <td>
43
+            <a href="<%= url_for("/$user/$pname") %>">
44
+              <%= $rep->{name} %>
45
+            </a>
46
+          </td>
47
+          <td>
48
+            <%= $rep->{descr} %>
49
+          </td>
50
+          <td><%= $rep->{age_string} %></td>
51
+        </tr>
52
+      % }
53
+    </table>
54
+  </div>
55
+  %= include '/include/footer';