File inc/git.inc.php changed (mode: 100644) (index dd336bf..5abc8db) |
... |
... |
function rg_git_diff($a, $template_file) |
549 |
549 |
foreach ($finfo['chunks'] as $chunk => $ci) { |
foreach ($finfo['chunks'] as $chunk => $ci) { |
550 |
550 |
$ret .= "<br />\n"; |
$ret .= "<br />\n"; |
551 |
551 |
$ret .= "Section [" . $ci['section'] . "] ($chunk):<br />\n"; |
$ret .= "Section [" . $ci['section'] . "] ($chunk):<br />\n"; |
552 |
|
$ret .= "<table>\n"; |
|
|
552 |
|
$ret .= "<table class=\"diff\">\n"; |
553 |
553 |
|
|
554 |
554 |
$line_no_left = $ci['from']; |
$line_no_left = $ci['from']; |
555 |
555 |
$line_no_right = $ci['to']; |
$line_no_right = $ci['to']; |
File inc/user/repo-page.php changed (mode: 100644) (index 05c84d4..d51e8a9) |
... |
... |
$repo_dir = rg_repo_name2base($rr) . $repo . ".git"; |
29 |
29 |
putenv("GIT_DIR=$repo_dir"); |
putenv("GIT_DIR=$repo_dir"); |
30 |
30 |
|
|
31 |
31 |
if (strcmp($subop, "tree") == 0) { |
if (strcmp($subop, "tree") == 0) { |
32 |
|
$obj = rg_git_reference($paras[0]); |
|
|
32 |
|
if (empty($paras[0])) |
|
33 |
|
$obj = ""; |
|
34 |
|
else |
|
35 |
|
$obj = rg_git_reference($paras[0]); |
|
36 |
|
|
33 |
37 |
$_tree = rg_git_ls_tree($obj); |
$_tree = rg_git_ls_tree($obj); |
34 |
38 |
$_home .= rg_template_table($THEME . "/repo/tree", $_tree, $_more); |
$_home .= rg_template_table($THEME . "/repo/tree", $_tree, $_more); |
35 |
39 |
} else if (strcmp($subop, "blob") == 0) { |
} else if (strcmp($subop, "blob") == 0) { |
|
... |
... |
if (strcmp($subop, "tree") == 0) { |
41 |
45 |
); |
); |
42 |
46 |
$_home .= rg_template($THEME . "/repo/blob.html", $blob, $_more); |
$_home .= rg_template($THEME . "/repo/blob.html", $blob, $_more); |
43 |
47 |
} else { // log |
} else { // log |
44 |
|
$commit = rg_git_reference($paras[0]); |
|
45 |
|
if (empty($commit)) { |
|
|
48 |
|
if (empty($paras[0])) { |
46 |
49 |
$log = rg_git_log(10, "", "", FALSE); |
$log = rg_git_log(10, "", "", FALSE); |
47 |
50 |
rg_log("log: " . print_r($log, TRUE)); |
rg_log("log: " . print_r($log, TRUE)); |
48 |
51 |
$_home .= rg_git_log_template($log, $THEME . "/repo/log", $_more); |
$_home .= rg_git_log_template($log, $THEME . "/repo/log", $_more); |
49 |
52 |
} else { |
} else { |
|
53 |
|
$commit = rg_git_reference($paras[0]); |
|
54 |
|
|
50 |
55 |
$log = rg_git_log(1, $commit . "~1", $commit, TRUE); |
$log = rg_git_log(1, $commit . "~1", $commit, TRUE); |
51 |
56 |
rg_log("log: " . print_r($log, TRUE)); |
rg_log("log: " . print_r($log, TRUE)); |
52 |
57 |
|
|
File inc/util.inc.php changed (mode: 100644) (index c8173dd..2d8512d) |
... |
... |
function rg_fatal($msg) |
193 |
193 |
*/ |
*/ |
194 |
194 |
function rg_menu($a, $rg_ui) |
function rg_menu($a, $rg_ui) |
195 |
195 |
{ |
{ |
196 |
|
$menu = ""; |
|
|
196 |
|
$menu = "<div class=\"menu\">\n"; |
|
197 |
|
$menu .= "\t<ul>\n"; |
197 |
198 |
$menu2 = ""; |
$menu2 = ""; |
198 |
|
$add = ""; |
|
199 |
199 |
foreach ($a as $_op => $_info) { |
foreach ($a as $_op => $_info) { |
200 |
200 |
// we ignore fake menus like 'home' |
// we ignore fake menus like 'home' |
201 |
201 |
if (!isset($_info['text'])) |
if (!isset($_info['text'])) |
|
... |
... |
function rg_menu($a, $rg_ui) |
212 |
212 |
|
|
213 |
213 |
$_text = $_info['text']; |
$_text = $_info['text']; |
214 |
214 |
$_url = rg_re_url($_op); |
$_url = rg_re_url($_op); |
215 |
|
$menu .= $add . "<a class=\"menu\" href=\"" |
|
216 |
|
. $_url . "\">$_text</a>\n"; |
|
217 |
|
$add = "\t"; |
|
|
215 |
|
$menu .= "\t\t<li><a href=\"" . $_url . "\">$_text</a></li>\n"; |
218 |
216 |
|
|
219 |
217 |
if (!isset($_info['sub']) || (count($_info['sub']) == 0)) |
if (!isset($_info['sub']) || (count($_info['sub']) == 0)) |
220 |
218 |
continue; |
continue; |
221 |
219 |
|
|
|
220 |
|
$menu2 .= "\t<div class=\"menu\">\n"; |
|
221 |
|
$menu2 .= "\t<ul>\n"; |
222 |
222 |
foreach ($_info['sub'] as $junk => $_info2) { |
foreach ($_info['sub'] as $junk => $_info2) { |
223 |
223 |
$_text2 = $_info2['text']; |
$_text2 = $_info2['text']; |
224 |
|
$menu2 .= "\t<a class=\"menu\" href=\"" |
|
|
224 |
|
$menu2 .= "\t\t<li><a href=\"" |
225 |
225 |
. $_url . $_info2['url'] |
. $_url . $_info2['url'] |
226 |
|
. "\">$_text2</a>\n"; |
|
|
226 |
|
. "\">$_text2</a></li>\n"; |
227 |
227 |
} |
} |
|
228 |
|
$menu2 .= "\t</ul>\n"; |
|
229 |
|
$menu2 .= "\t</div>\n"; |
228 |
230 |
} |
} |
|
231 |
|
$menu .= "\t</ul>\n"; |
|
232 |
|
$menu .= "\t</div>\n"; |
229 |
233 |
|
|
230 |
234 |
$ret = array(); |
$ret = array(); |
231 |
235 |
$ret[0] = $menu; |
$ret[0] = $menu; |
|
... |
... |
function rg_template($file, $data, $more) |
308 |
312 |
/* |
/* |
309 |
313 |
* Outputs a numbered list |
* Outputs a numbered list |
310 |
314 |
*/ |
*/ |
311 |
|
function rg_template_list($a) |
|
|
315 |
|
function rg_template_list($c) |
312 |
316 |
{ |
{ |
|
317 |
|
$a = explode("\n", $c); |
313 |
318 |
if (count($a) == 0) |
if (count($a) == 0) |
314 |
319 |
return ""; |
return ""; |
315 |
320 |
|
|
File root/index.php changed (mode: 100644) (index 80b763e..e3d7565) |
... |
... |
rg_log_set_file("/var/log/rocketgit-web/main.log"); |
24 |
24 |
|
|
25 |
25 |
// Init variables |
// Init variables |
26 |
26 |
$op = ""; $subop = ""; $subsubop = ""; |
$op = ""; $subop = ""; $subsubop = ""; |
27 |
|
$user = ""; $repo = ""; $organization = 0; |
|
|
27 |
|
$type = ""; $user = ""; $repo = ""; |
28 |
28 |
$paras = array(); |
$paras = array(); |
29 |
29 |
|
|
30 |
30 |
// We have variable 'vv' passed from webserver - build 'op' and rest of paras |
// We have variable 'vv' passed from webserver - build 'op' and rest of paras |
|
... |
... |
$first_menu = array( |
109 |
109 |
"logout" => array("text" => "Logout") |
"logout" => array("text" => "Logout") |
110 |
110 |
); |
); |
111 |
111 |
$first_menu[$op]['sub'] = $second_menu; |
$first_menu[$op]['sub'] = $second_menu; |
112 |
|
$menu = implode("\t<br />\n", rg_menu($first_menu, $rg_ui)); |
|
113 |
|
$menu .= "<!-- TODO menu ends -->\n"; |
|
|
112 |
|
$menu = implode("", rg_menu($first_menu, $rg_ui)); |
114 |
113 |
|
|
115 |
114 |
if ($rg_ui['uid'] > 0) |
if ($rg_ui['uid'] > 0) |
116 |
115 |
$rg_username = $rg_ui['username']; |
$rg_username = $rg_ui['username']; |
File root/themes/default/index.php changed (mode: 100644) (index 725e8d5..dea7404) |
8 |
8 |
|
|
9 |
9 |
<body> |
<body> |
10 |
10 |
|
|
11 |
|
<div class="header"> |
|
12 |
|
<div style="float: left; padding: 3px"><img src="<?php echo $THEME_COMMON; ?>/rg16x16.png" /></div> |
|
13 |
|
<div style="float: left"><b><i>RocketGit</i></b></div> |
|
14 |
|
<div style="float: right; padding: 3px"><b><?php echo $rg_username; ?></b></div> |
|
15 |
|
<div style="padding-left: 120px"> |
|
|
11 |
|
<div id="container"> |
|
12 |
|
|
|
13 |
|
<div id="header"> |
|
14 |
|
<div style="float: left"> |
|
15 |
|
<img src="<?php echo $THEME_COMMON; ?>/rg4.png" /><br /> |
|
16 |
|
<b>RocketGit</b> |
|
17 |
|
</div> |
|
18 |
|
|
|
19 |
|
<div style="float: right"><b><?php echo $rg_username; ?></b></div> |
|
20 |
|
|
|
21 |
|
<div id="menus"> |
16 |
22 |
<?php echo $menu; ?> |
<?php echo $menu; ?> |
17 |
23 |
</div> |
</div> |
18 |
24 |
</div> |
</div> |
19 |
25 |
|
|
20 |
|
<div class="main"> |
|
|
26 |
|
<div id="main"> |
21 |
27 |
<?php echo $body; ?> |
<?php echo $body; ?> |
22 |
28 |
</div> |
</div> |
23 |
29 |
|
|
24 |
|
<div class="footer"> |
|
|
30 |
|
<div id="footer"> |
25 |
31 |
<small>Copyright: <a href="http://kernel.embedromix.ro" target="_new">Catalin(ux) M. BOIE</a></small> |
<small>Copyright: <a href="http://kernel.embedromix.ro" target="_new">Catalin(ux) M. BOIE</a></small> |
26 |
32 |
</div> |
</div> |
27 |
33 |
|
|
28 |
|
<div class="profiling"> |
|
|
34 |
|
<div id="profiling"> |
29 |
35 |
<small>Profiling: <?php echo $_diff; ?>ms.</small> |
<small>Profiling: <?php echo $_diff; ?>ms.</small> |
30 |
36 |
</div> |
</div> |
31 |
37 |
|
|
|
38 |
|
</div> <!-- container --> |
|
39 |
|
|
32 |
40 |
</body> |
</body> |
33 |
41 |
</html> |
</html> |
File root/themes/default/main.css changed (mode: 100644) (index a0391c8..b616e01) |
|
1 |
|
* { |
|
2 |
|
margin: 0; |
|
3 |
|
padding: 0; |
|
4 |
|
} |
|
5 |
|
|
1 |
6 |
body { |
body { |
2 |
|
margin: 5px; |
|
3 |
7 |
font-family: Verdana, arial, helvetica, sans-serif; |
font-family: Verdana, arial, helvetica, sans-serif; |
4 |
|
font-size: 14px; |
|
5 |
|
line-height: 15px; |
|
|
8 |
|
font-size: 10pt; |
|
9 |
|
line-height: 100%; |
6 |
10 |
} |
} |
7 |
11 |
|
|
8 |
12 |
table { |
table { |
9 |
13 |
border-collapse: collapse; |
border-collapse: collapse; |
10 |
14 |
border: 1px solid #000; |
border: 1px solid #000; |
11 |
|
background: #ffffcc; |
|
|
15 |
|
background: #eeeeee; |
12 |
16 |
color: #000; |
color: #000; |
13 |
17 |
border-spacing: 1px; |
border-spacing: 1px; |
14 |
18 |
padding: 1px; |
padding: 1px; |
|
... |
... |
th, td { |
19 |
23 |
text-align: left; |
text-align: left; |
20 |
24 |
padding: 3px; |
padding: 3px; |
21 |
25 |
border: 1px solid #aaaaaa; |
border: 1px solid #aaaaaa; |
22 |
|
white-space: pre; |
|
|
26 |
|
white-space: pre-wrap; |
|
27 |
|
word-wrap: break-word; |
|
28 |
|
} |
|
29 |
|
|
|
30 |
|
#container { |
23 |
31 |
} |
} |
24 |
32 |
|
|
25 |
33 |
.white_border { |
.white_border { |
26 |
|
border: 1px solid #ffffcc; |
|
|
34 |
|
border: 1px solid #eeeeee; |
|
35 |
|
} |
|
36 |
|
|
|
37 |
|
#menus { |
|
38 |
|
padding-left: 110px; |
27 |
39 |
} |
} |
28 |
40 |
|
|
29 |
41 |
.menu { |
.menu { |
30 |
|
font-size: 14px; |
|
31 |
|
font-weight: bold; |
|
32 |
|
text-decoration: none; |
|
33 |
|
line-height: 200%; |
|
34 |
|
color: red; |
|
35 |
|
background-color: yellow; |
|
36 |
|
padding: 3px 20px; |
|
37 |
|
border-radius: 4px 4px 4px 4px; |
|
38 |
|
border: 1px solid #cccccc; |
|
39 |
|
margin: 1px; |
|
40 |
|
#box-shadow: 2px 2px 3px #aaa; |
|
|
42 |
|
padding: 7px; |
41 |
43 |
} |
} |
42 |
44 |
|
|
43 |
|
.menu:hover { |
|
44 |
|
border: 1px solid #555555; |
|
|
45 |
|
.menu ul { |
|
46 |
|
list-style-type: none; |
45 |
47 |
} |
} |
46 |
48 |
|
|
47 |
|
.formarea { |
|
48 |
|
margin: 5px auto; |
|
49 |
|
background-color: yellow; |
|
50 |
|
padding: 5px; |
|
51 |
|
width: 400px; |
|
52 |
|
border-radius: 4px 4px 4px 4px; |
|
|
49 |
|
.menu ul li { |
|
50 |
|
display: inline; |
|
51 |
|
} |
|
52 |
|
|
|
53 |
|
.menu ul li a { |
|
54 |
|
text-decoration: none; |
|
55 |
|
color: #666666; |
|
56 |
|
font-size: 10pt; |
|
57 |
|
padding: 3px 13px; |
|
58 |
|
background-color: #eeeeee; |
53 |
59 |
border: 1px solid #cccccc; |
border: 1px solid #cccccc; |
54 |
|
#box-shadow: 2px 2px 3px #aaa; |
|
|
60 |
|
border-radius: 4px 4px 4px 4px; |
55 |
61 |
} |
} |
56 |
62 |
|
|
57 |
|
.header { |
|
58 |
|
width: 900px; |
|
59 |
|
margin: 0 auto; |
|
60 |
|
border: 1px solid #ffffcc; |
|
61 |
|
background-color: #ffffcc; |
|
62 |
|
padding: 5px 5px; |
|
63 |
|
border-top: 2px solid #ff0000; |
|
|
63 |
|
.menu ul li a:hover { |
|
64 |
|
border: 1px solid #999999; |
|
65 |
|
} |
|
66 |
|
|
|
67 |
|
#header { |
|
68 |
|
border: 1px solid #eeeeee; |
|
69 |
|
background-color: #eeeeee; |
|
70 |
|
padding: 7px; |
|
71 |
|
height: 55px; |
64 |
72 |
} |
} |
65 |
73 |
|
|
66 |
|
.main { |
|
67 |
|
width: 900px; |
|
68 |
|
margin: 0 auto; |
|
69 |
|
background-color: #ffffcc; |
|
|
74 |
|
#main { |
|
75 |
|
clear: both; |
|
76 |
|
border-top: 1px solid #000000; |
|
77 |
|
background-color: #eeeeee; |
70 |
78 |
padding: 10px 5px; |
padding: 10px 5px; |
71 |
79 |
} |
} |
72 |
80 |
|
|
73 |
|
.footer { |
|
74 |
|
width: 900px; |
|
75 |
|
border-top: 2px solid #ff0000; |
|
76 |
|
margin: 0 auto; |
|
77 |
|
background-color: #ffffcc; |
|
|
81 |
|
#footer { |
|
82 |
|
border-top: 1px solid #000000; |
|
83 |
|
background-color: #eeeeee; |
78 |
84 |
padding: 5px 5px; |
padding: 5px 5px; |
79 |
85 |
} |
} |
80 |
86 |
|
|
81 |
|
.profiling { |
|
82 |
|
width: 900px; |
|
83 |
|
border-top: 2px solid #ff0000; |
|
84 |
|
margin: 0 auto; |
|
85 |
|
background-color: #ffffcc; |
|
|
87 |
|
.formarea { |
|
88 |
|
margin: 5px auto; |
|
89 |
|
background-color: #dddddd; |
|
90 |
|
padding: 5px; |
|
91 |
|
width: 400px; |
|
92 |
|
border-radius: 4px 4px 4px 4px; |
|
93 |
|
border: 1px solid #cccccc; |
|
94 |
|
} |
|
95 |
|
|
|
96 |
|
#profiling { |
|
97 |
|
border-top: 1px solid #000000; |
|
98 |
|
background-color: #eeeeee; |
86 |
99 |
padding: 5px 5px; |
padding: 5px 5px; |
|
100 |
|
border-bottom: 1px solid #000000; |
87 |
101 |
} |
} |
88 |
102 |
|
|
89 |
103 |
.error { |
.error { |
|
... |
... |
th, td { |
97 |
111 |
|
|
98 |
112 |
.rg_keys_list { |
.rg_keys_list { |
99 |
113 |
margin: 20px auto; |
margin: 20px auto; |
100 |
|
background-color: yellow; |
|
|
114 |
|
background-color: #dddddd; |
101 |
115 |
padding: 5px; |
padding: 5px; |
102 |
116 |
width: 600px; |
width: 600px; |
103 |
117 |
border-radius: 4px 4px 4px 4px; |
border-radius: 4px 4px 4px 4px; |
104 |
118 |
border: 1px solid #cccccc; |
border: 1px solid #cccccc; |
105 |
|
#box-shadow: 2px 2px 3px #aaa; |
|
106 |
119 |
} |
} |
107 |
120 |
|
|
108 |
121 |
.repo_title { |
.repo_title { |
109 |
|
font-size: 15px; |
|
|
122 |
|
font-size: 15pt; |
110 |
123 |
font-weight: bold; |
font-weight: bold; |
111 |
124 |
color: red; |
color: red; |
|
125 |
|
line-height: 150%; |
|
126 |
|
} |
|
127 |
|
.repo_title a { |
|
128 |
|
text-decoration: none; |
112 |
129 |
} |
} |
113 |
130 |
|
|
114 |
131 |
.repo_desc { |
.repo_desc { |
115 |
|
font-size: 12px; |
|
|
132 |
|
font-size: 9pt; |
116 |
133 |
color: #888888; |
color: #888888; |
117 |
134 |
} |
} |
118 |
135 |
|
|
119 |
136 |
.blob_title { |
.blob_title { |
120 |
|
font-size: 14px; |
|
|
137 |
|
font-size: 10pt; |
121 |
138 |
color: red; |
color: red; |
122 |
139 |
} |
} |
123 |
140 |
|
|
124 |
141 |
.source { |
.source { |
125 |
142 |
font-family: monospace; |
font-family: monospace; |
126 |
|
font-size: 11px; |
|
|
143 |
|
font-size: 10pt; |
|
144 |
|
} |
|
145 |
|
|
|
146 |
|
.diff { |
|
147 |
|
width: 880px; |
127 |
148 |
} |
} |