File TODO changed (mode: 100644) (index 128bec9..4de79e0) |
1 |
1 |
== Where I stopped last time == |
== Where I stopped last time == |
|
2 |
|
[ ] Fix notes css |
2 |
3 |
|
|
3 |
4 |
== BEFORE NEXT RELEASE == |
== BEFORE NEXT RELEASE == |
|
5 |
|
[ ] get rid of beteen.html (because of css) |
|
6 |
|
[ ] get rid of the div between notes. |
|
7 |
|
[ ] make sure where we use gmdate to add ' UTC' |
|
8 |
|
[ ] rights: "Add bug" should be inserted with prio 30001, |
|
9 |
|
so user can forbit adding bugs? |
|
10 |
|
[ ] bug: allow private bugs (think about security reports) |
4 |
11 |
[ ] 'creation' => 'itime_nice' |
[ ] 'creation' => 'itime_nice' |
5 |
12 |
[ ] When a push is done, schedule a disk size rebuild. |
[ ] When a push is done, schedule a disk size rebuild. |
6 |
13 |
And remove this operation from cron. |
And remove this operation from cron. |
File inc/bug.inc.php changed (mode: 100644) (index b6d12a1..b441f02) |
... |
... |
function rg_bug_note_add($db, $repo_id, $bug_id, $login_uid, $data) |
978 |
978 |
|
|
979 |
979 |
$ret = FALSE; |
$ret = FALSE; |
980 |
980 |
while (1) { |
while (1) { |
981 |
|
// TODO: test if user is allowed to add a note |
|
982 |
|
|
|
983 |
981 |
$itime = time(); |
$itime = time(); |
984 |
982 |
$ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : "?"; |
$ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : "?"; |
985 |
983 |
|
|
|
... |
... |
function rg_bug_note_add($db, $repo_id, $bug_id, $login_uid, $data) |
1014 |
1012 |
break; |
break; |
1015 |
1013 |
} |
} |
1016 |
1014 |
|
|
|
1015 |
|
$who_added_text = '?'; |
1017 |
1016 |
$_ui = rg_user_info($db, $login_uid, "", ""); |
$_ui = rg_user_info($db, $login_uid, "", ""); |
1018 |
|
if ($_ui['exists'] != 1) { |
|
1019 |
|
rg_bug_set_error("cannot lookup user" |
|
1020 |
|
. " (" . rg_user_error() . ")"); |
|
1021 |
|
break; |
|
1022 |
|
} |
|
|
1017 |
|
if ($_ui['exists'] == 1) |
|
1018 |
|
$who_added_text = $_ui['username']; |
1023 |
1019 |
|
|
1024 |
1020 |
$event = array("category" => 4000, "prio" => 200, |
$event = array("category" => 4000, "prio" => 200, |
1025 |
1021 |
'bug' => array( |
'bug' => array( |
|
... |
... |
function rg_bug_note_add($db, $repo_id, $bug_id, $login_uid, $data) |
1032 |
1028 |
'note' => array( |
'note' => array( |
1033 |
1029 |
'body' => $data['note'], |
'body' => $data['note'], |
1034 |
1030 |
'who_added' => $login_uid, |
'who_added' => $login_uid, |
1035 |
|
'who_added_text' => $_ui['username'])); |
|
|
1031 |
|
'who_added_text' => $who_added_text)); |
1036 |
1032 |
$r = rg_event_add($db, $event); |
$r = rg_event_add($db, $event); |
1037 |
1033 |
if ($r !== TRUE) { |
if ($r !== TRUE) { |
1038 |
1034 |
rg_bug_set_error("cannot add event" |
rg_bug_set_error("cannot add event" |
|
... |
... |
function rg_bug_note_list($db, $repo_id, $bug_id, $offset) |
1067 |
1063 |
$sql = "SELECT * FROM bug_notes" |
$sql = "SELECT * FROM bug_notes" |
1068 |
1064 |
. " WHERE repo_id = @@repo_id@@" |
. " WHERE repo_id = @@repo_id@@" |
1069 |
1065 |
. " AND bug_id = @@bug_id@@" |
. " AND bug_id = @@bug_id@@" |
1070 |
|
. " ORDER BY itime" |
|
|
1066 |
|
. " ORDER BY itime DESC" |
1071 |
1067 |
. " OFFSET $offset"; |
. " OFFSET $offset"; |
1072 |
1068 |
$res = rg_sql_query_params($db, $sql, $params); |
$res = rg_sql_query_params($db, $sql, $params); |
1073 |
1069 |
if ($res === FALSE) { |
if ($res === FALSE) { |
|
... |
... |
function rg_bug_note_list($db, $repo_id, $bug_id, $offset) |
1077 |
1073 |
|
|
1078 |
1074 |
$ret = array(); |
$ret = array(); |
1079 |
1075 |
while (($row = rg_sql_fetch_array($res))) { |
while (($row = rg_sql_fetch_array($res))) { |
1080 |
|
$row['creation'] = gmdate("Y-m-d H:i", $row['itime']); |
|
|
1076 |
|
$row['note_creation'] = gmdate("Y-m-d H:i", $row['itime']) . ' UTC'; |
1081 |
1077 |
|
|
1082 |
1078 |
$_ui = rg_user_info($db, $row['uid'], "", ""); |
$_ui = rg_user_info($db, $row['uid'], "", ""); |
1083 |
|
if ($_ui['exists'] == 1) |
|
1084 |
|
$row['owner'] = $_ui['username']; |
|
1085 |
|
else |
|
1086 |
|
$row['owner'] = "?"; |
|
|
1079 |
|
if ($_ui['exists'] == 1) { |
|
1080 |
|
$row['note_owner'] = $_ui['username']; |
|
1081 |
|
$row['HTML:note_gravatar'] = $_ui['HTML:gravatar']; |
|
1082 |
|
} else { |
|
1083 |
|
$row['note_owner'] = "?"; |
|
1084 |
|
$row['HTML:note_gravatar'] = ''; |
|
1085 |
|
} |
1087 |
1086 |
|
|
1088 |
1087 |
$row['HTML:note_nlbr'] = nl2br(rg_xss_safe($row['note'])); |
$row['HTML:note_nlbr'] = nl2br(rg_xss_safe($row['note'])); |
1089 |
1088 |
|
|
|
... |
... |
function rg_bug_edit_high_level($db, &$rg) |
1336 |
1335 |
|
|
1337 |
1336 |
$ret .= rg_template("repo/bug/bug_add_edit.html", $rg, TRUE /* xss */); |
$ret .= rg_template("repo/bug/bug_add_edit.html", $rg, TRUE /* xss */); |
1338 |
1337 |
} |
} |
|
1338 |
|
rg_log('ZZZ bug_edit_hints=' . $rg['HTML:bug_edit_hints']); |
1339 |
1339 |
|
|
1340 |
1340 |
rg_log_exit(); |
rg_log_exit(); |
1341 |
1341 |
return $ret; |
return $ret; |
File inc/repo.inc.php changed (mode: 100644) (index 0003a71..4a84433) |
... |
... |
function rg_repo_rights_inject($db, $obj_id, $type, $owner, $uid) |
114 |
114 |
if (strcmp($type, "repo") == 0) { |
if (strcmp($type, "repo") == 0) { |
115 |
115 |
$a['uid'] = 0; |
$a['uid'] = 0; |
116 |
116 |
$a['rights'] = "AaB"; // access repo + access bug tracker + add bugs |
$a['rights'] = "AaB"; // access repo + access bug tracker + add bugs |
|
117 |
|
$a['rights'] = "Aa"; // access repo + access bug tracker + add bugs |
117 |
118 |
$a['description'] = 'Autogenerated (repo is public)'; |
$a['description'] = 'Autogenerated (repo is public)'; |
118 |
119 |
$ret[] = $a; |
$ret[] = $a; |
119 |
120 |
} else if (strcmp($type, "repo_refs") == 0) { |
} else if (strcmp($type, "repo_refs") == 0) { |
|
... |
... |
function rg_repo_lock_high_level($db, &$rg) |
1801 |
1802 |
$ret = ""; |
$ret = ""; |
1802 |
1803 |
|
|
1803 |
1804 |
$errmsg = array(); |
$errmsg = array(); |
|
1805 |
|
$show_form = TRUE; |
1804 |
1806 |
while (1) { |
while (1) { |
1805 |
1807 |
$x = array(); |
$x = array(); |
1806 |
1808 |
$x['obj_id'] = $rg['ri']['repo_id']; |
$x['obj_id'] = $rg['ri']['repo_id']; |
|
... |
... |
function rg_repo_lock_high_level($db, &$rg) |
1814 |
1816 |
if (rg_rights_allow($db, $x) !== TRUE) { |
if (rg_rights_allow($db, $x) !== TRUE) { |
1815 |
1817 |
$ret .= rg_template("user/repo/deny_lock.html", |
$ret .= rg_template("user/repo/deny_lock.html", |
1816 |
1818 |
$rg, TRUE /*xss*/); |
$rg, TRUE /*xss*/); |
|
1819 |
|
$show_form = FALSE; |
1817 |
1820 |
break; |
break; |
1818 |
1821 |
} |
} |
1819 |
1822 |
|
|
|
... |
... |
function rg_repo_lock_high_level($db, &$rg) |
1863 |
1866 |
break; |
break; |
1864 |
1867 |
} |
} |
1865 |
1868 |
|
|
1866 |
|
$rg['HTML:errmsg'] = rg_template_errmsg($errmsg); |
|
1867 |
|
$rg['rg_form_token'] = rg_token_get($db, $rg, 'repo_lock_hl'); |
|
1868 |
|
$hints = array(); |
|
1869 |
|
$hints[]['HTML:hint'] = rg_template("hints/repo/lock_repo.html", |
|
1870 |
|
$rg, TRUE /*xss*/); |
|
1871 |
|
$rg['HTML:repo_lock_hints'] = rg_template_table("hints/list", |
|
1872 |
|
$hints, $rg); |
|
1873 |
|
$ret .= rg_template("repo/lock.html", $rg, TRUE /*xss*/); |
|
|
1869 |
|
if ($show_form) { |
|
1870 |
|
$rg['HTML:errmsg'] = rg_template_errmsg($errmsg); |
|
1871 |
|
|
|
1872 |
|
$hints = array(); |
|
1873 |
|
$hints[]['HTML:hint'] = rg_template("hints/repo/lock_repo.html", |
|
1874 |
|
$rg, TRUE /*xss*/); |
|
1875 |
|
$rg['HTML:repo_lock_hints'] = rg_template_table("hints/list", |
|
1876 |
|
$hints, $rg); |
|
1877 |
|
|
|
1878 |
|
$rg['rg_form_token'] = rg_token_get($db, $rg, 'repo_lock_hl'); |
|
1879 |
|
$ret .= rg_template("repo/lock.html", $rg, TRUE /*xss*/); |
|
1880 |
|
} |
1874 |
1881 |
|
|
1875 |
1882 |
rg_log_exit(); |
rg_log_exit(); |
1876 |
1883 |
return $ret; |
return $ret; |
|
... |
... |
function rg_repo_admin($db, &$rg, $paras) |
1887 |
1894 |
|
|
1888 |
1895 |
$_op = empty($paras) ? "edit" : array_shift($paras); |
$_op = empty($paras) ? "edit" : array_shift($paras); |
1889 |
1896 |
|
|
|
1897 |
|
$rg['allow_edit_repo'] = 0; |
|
1898 |
|
$rg['allow_lock_repo'] = 0; |
|
1899 |
|
$rg['allow_grant_rights'] = 0; |
|
1900 |
|
$rg['allow_delete_repo'] = 0; |
|
1901 |
|
$x = array(); |
|
1902 |
|
$x['obj_id'] = $rg['ri']['repo_id']; |
|
1903 |
|
$x['type'] = 'repo'; |
|
1904 |
|
$x['owner'] = $rg['ri']['uid']; |
|
1905 |
|
$x['uid'] = $rg['login_ui']['uid']; |
|
1906 |
|
$x['username'] = $rg['login_ui']['username']; |
|
1907 |
|
$x['ip'] = $rg['ip']; |
|
1908 |
|
$x['misc'] = ''; |
|
1909 |
|
|
|
1910 |
|
$x['needed_rights'] = 'E'; |
|
1911 |
|
if (rg_rights_allow($db, $x) === TRUE) |
|
1912 |
|
$rg['allow_edit_repo'] = 1; |
|
1913 |
|
$x['needed_rights'] = 'K'; |
|
1914 |
|
if (rg_rights_allow($db, $x) === TRUE) |
|
1915 |
|
$rg['allow_lock_repo'] = 1; |
|
1916 |
|
$x['needed_rights'] = 'G'; |
|
1917 |
|
if (rg_rights_allow($db, $x) === TRUE) |
|
1918 |
|
$rg['allow_grant_rights'] = 1; |
|
1919 |
|
$x['needed_rights'] = 'D'; |
|
1920 |
|
if (rg_rights_allow($db, $x) === TRUE) |
|
1921 |
|
$rg['allow_delete_repo'] = 1; |
|
1922 |
|
|
1890 |
1923 |
$rg['menu']['repo'][$_op] = 1; |
$rg['menu']['repo'][$_op] = 1; |
1891 |
1924 |
$ret .= rg_template("user/repo/menu.html", $rg, TRUE /* xss */); |
$ret .= rg_template("user/repo/menu.html", $rg, TRUE /* xss */); |
1892 |
1925 |
|
|
File inc/user/repo/bug/main.php changed (mode: 100644) (index cde045a..62ad7fd) |
... |
... |
$rg['can_save'] = $rg['login_ui']['uid'] > 0 ? 1 : 0; |
8 |
8 |
$_op = empty($paras) ? "list" : array_shift($paras); |
$_op = empty($paras) ? "list" : array_shift($paras); |
9 |
9 |
$rg['menu']['sub2'][$_op] = 1; |
$rg['menu']['sub2'][$_op] = 1; |
10 |
10 |
|
|
|
11 |
|
$rg['allow_bug_add'] = 0; |
|
12 |
|
$x = array(); |
|
13 |
|
$x['obj_id'] = $rg['ri']['repo_id']; |
|
14 |
|
$x['type'] = 'repo'; |
|
15 |
|
$x['owner'] = $rg['ri']['uid']; |
|
16 |
|
$x['uid'] = $rg['login_ui']['uid']; |
|
17 |
|
$x['username'] = $rg['login_ui']['username']; |
|
18 |
|
$x['ip'] = $rg['ip']; |
|
19 |
|
$x['misc'] = ''; |
|
20 |
|
$x['needed_rights'] = 'B'; |
|
21 |
|
if (rg_rights_allow($db, $x) === TRUE) |
|
22 |
|
$rg['allow_bug_add'] = 1; |
|
23 |
|
|
11 |
24 |
switch ($_op) { |
switch ($_op) { |
12 |
25 |
case 'search': |
case 'search': |
13 |
26 |
include($INC . "/user/repo/bug/search/search.php"); |
include($INC . "/user/repo/bug/search/search.php"); |
File inc/user/repo/bug/show/show.php changed (mode: 100644) (index 3c24355..eedff28) |
... |
... |
$_bug_show = ''; |
7 |
7 |
|
|
8 |
8 |
$rg['HTML:bug_edit'] = ''; |
$rg['HTML:bug_edit'] = ''; |
9 |
9 |
$rg['HTML:button_error'] = ''; |
$rg['HTML:button_error'] = ''; |
|
10 |
|
$rg['HTML:bug_edit_hints'] = ''; |
10 |
11 |
|
|
11 |
12 |
$ibug = rg_bug_info($db, $rg['ri']['repo_id'], $rg['bug']['bug_id']); |
$ibug = rg_bug_info($db, $rg['ri']['repo_id'], $rg['bug']['bug_id']); |
12 |
13 |
if ($ibug === FALSE) |
if ($ibug === FALSE) |
|
... |
... |
if (!empty($close_reopen_error)) |
106 |
107 |
|
|
107 |
108 |
|
|
108 |
109 |
// 'add_note' must be unconditionally included because we must insert the form |
// 'add_note' must be unconditionally included because we must insert the form |
109 |
|
include($INC . "/user/repo/bug/show/add_note.php"); |
|
|
110 |
|
if ($rg['allow_bug_add'] == 1) { |
|
111 |
|
include($INC . "/user/repo/bug/show/add_note.php"); |
|
112 |
|
} else { |
|
113 |
|
$rg['HTML:note_add'] = ''; |
|
114 |
|
} |
110 |
115 |
|
|
111 |
116 |
// load notes |
// load notes |
112 |
117 |
$notes = rg_bug_note_list($db, $rg['ri']['repo_id'], |
$notes = rg_bug_note_list($db, $rg['ri']['repo_id'], |
File root/themes/default/main.css changed (mode: 100644) (index 67d1f1d..9d98cdb) |
... |
... |
form input[type="submit"] { |
75 |
75 |
form fieldset { margin-top: 5pt; padding: 3pt; } |
form fieldset { margin-top: 5pt; padding: 3pt; } |
76 |
76 |
|
|
77 |
77 |
.form_inline { |
.form_inline { |
78 |
|
display: inline-block; |
|
|
78 |
|
display: inline-flex; |
79 |
79 |
} |
} |
80 |
80 |
.form_inline form { margin-top: 0 } |
.form_inline form { margin-top: 0 } |
81 |
81 |
.form_inline form input[type="submit"] { |
.form_inline form input[type="submit"] { |
|
... |
... |
legend { padding: 0px 2pt; } |
188 |
188 |
#main { |
#main { |
189 |
189 |
width: 80%; |
width: 80%; |
190 |
190 |
margin-top: 12pt; |
margin-top: 12pt; |
|
191 |
|
margin-bottom: 12pt; |
191 |
192 |
margin-left: auto; |
margin-left: auto; |
192 |
193 |
margin-right: auto; |
margin-right: auto; |
193 |
194 |
line-height: 120%; |
line-height: 120%; |
|
... |
... |
legend { padding: 0px 2pt; } |
431 |
432 |
} |
} |
432 |
433 |
|
|
433 |
434 |
.bug_title { |
.bug_title { |
434 |
|
font-size: 12pt; |
|
|
435 |
|
font-size: 13pt; |
435 |
436 |
font-weight: bold; |
font-weight: bold; |
436 |
437 |
} |
} |
437 |
438 |
|
|
|
... |
... |
legend { padding: 0px 2pt; } |
444 |
445 |
border: 1px solid #cccccc; |
border: 1px solid #cccccc; |
445 |
446 |
padding: 3px; |
padding: 3px; |
446 |
447 |
background-color: #DDDDDD; |
background-color: #DDDDDD; |
|
448 |
|
display: flex; |
|
449 |
|
justify-content: left; |
|
450 |
|
align-content: center; |
|
451 |
|
align-items: initial; |
447 |
452 |
} |
} |
448 |
453 |
.note_body { |
.note_body { |
449 |
|
padding: 3px; |
|
|
454 |
|
padding: 4px; |
|
455 |
|
margin-left: 3px; |
450 |
456 |
background-color: #EEEEEE; |
background-color: #EEEEEE; |
451 |
|
margin-top: 3px; |
|
|
457 |
|
width: 100%; |
452 |
458 |
} |
} |
453 |
459 |
|
|
454 |
460 |
.mess { |
.mess { |
|
... |
... |
legend { padding: 0px 2pt; } |
528 |
534 |
.page_description { |
.page_description { |
529 |
535 |
margin: 5pt 0pt; |
margin: 5pt 0pt; |
530 |
536 |
} |
} |
|
537 |
|
|
|
538 |
|
.repo_stats { |
|
539 |
|
margin-top: 5px; |
|
540 |
|
padding: 5px; |
|
541 |
|
background-color: #ddd; |
|
542 |
|
} |
|
543 |
|
|
|
544 |
|
.gravatar { |
|
545 |
|
display: inline; |
|
546 |
|
} |
File root/themes/default/repo/bug/show.html changed (mode: 100644) (index 0cce16f..d78de81) |
1 |
1 |
<div class="bug"> |
<div class="bug"> |
2 |
|
<!-- some buttons: watch/unwatch/etc. --> |
|
3 |
|
<div class="horizontal_buttons"> |
|
4 |
|
<table summary="bug buttons"> |
|
5 |
|
<tbody> |
|
6 |
|
<tr> |
|
7 |
|
<td>@@edit_form@@</td> |
|
8 |
|
<td>@@watch_form@@</td> |
|
9 |
|
<td>@@close_form@@</td> |
|
10 |
|
<td>@@del_form@@</td> |
|
11 |
|
</tr> |
|
12 |
|
</tbody> |
|
13 |
|
</table> |
|
14 |
|
</div> |
|
15 |
|
@@button_error@@ |
|
16 |
|
|
|
17 |
|
@@bug_edit@@ |
|
18 |
|
|
|
19 |
2 |
<div class="bug_description"> |
<div class="bug_description"> |
20 |
|
<div class="bug_title">#@@bug::bug_id@@ - @@bug::title@@</div> |
|
|
3 |
|
<div class="bug_title"> |
|
4 |
|
#@@bug::bug_id@@ - @@bug::title@@ |
|
5 |
|
|
|
6 |
|
<!-- some buttons: watch/unwatch/etc. --> |
|
7 |
|
<div class="form_inline"> |
|
8 |
|
@@if(@@allow_bug_add@@ == 1){{ |
|
9 |
|
@@edit_form@@ |
|
10 |
|
@@close_form@@ |
|
11 |
|
@@del_form@@ |
|
12 |
|
}} |
|
13 |
|
@@watch_form@@ @@watch_error@@ |
|
14 |
|
@@button_error@@ |
|
15 |
|
</div> |
|
16 |
|
</div> |
21 |
17 |
State: @@bug::state_text@@<br /> |
State: @@bug::state_text@@<br /> |
22 |
18 |
Insertion date (UTC): @@bug::creation@@<br /> |
Insertion date (UTC): @@bug::creation@@<br /> |
23 |
19 |
Last update (UTC): @@bug::updated@@<br /> |
Last update (UTC): @@bug::updated@@<br /> |
|
25 |
21 |
Assigned to: <b>@@if("@@bug::assigned_to@@" == ""){{-}}{{@@bug::assigned_to@@}}</b><br /> |
Assigned to: <b>@@if("@@bug::assigned_to@@" == ""){{-}}{{@@bug::assigned_to@@}}</b><br /> |
26 |
22 |
@@if(@@bug::deleted@@ != 0){{ |
@@if(@@bug::deleted@@ != 0){{ |
27 |
23 |
<font color="red">Deleted by: @@bug::deleted_who_name@@ (@@bug::deleted_text@@ UTC)</font><br /> |
<font color="red">Deleted by: @@bug::deleted_who_name@@ (@@bug::deleted_text@@ UTC)</font><br /> |
28 |
|
}}{{}} |
|
|
24 |
|
}} |
29 |
25 |
</div> |
</div> |
30 |
26 |
|
|
|
27 |
|
@@bug_edit@@ |
|
28 |
|
|
31 |
29 |
<div class="bug_body"> |
<div class="bug_body"> |
32 |
30 |
@@bug::body_nlbr@@ |
@@bug::body_nlbr@@ |
33 |
31 |
</div> |
</div> |
|
38 |
36 |
|
|
39 |
37 |
@@note_add@@ |
@@note_add@@ |
40 |
38 |
</div> |
</div> |
|
39 |
|
|
|
40 |
|
@@bug_edit_hints@@ |
File root/themes/default/user/repo/menu.html changed (mode: 100644) (index b344642..ed0edb3) |
1 |
1 |
<div class="menu menu3"> |
<div class="menu menu3"> |
2 |
2 |
<ul> |
<ul> |
|
3 |
|
@@if(@@allow_edit_repo@@ == 1){{ |
3 |
4 |
<li@@if(@@menu::repo::edit@@ == 1){{ class="selected"}}><a href="@@url_repo@@/admin/edit">Edit</a></li> |
<li@@if(@@menu::repo::edit@@ == 1){{ class="selected"}}><a href="@@url_repo@@/admin/edit">Edit</a></li> |
|
5 |
|
}} |
|
6 |
|
@@if(@@allow_grant_rights@@ == 1){{ |
4 |
7 |
<li@@if(@@menu::repo::repo_rights@@ == 1){{ class="selected"}}><a href="@@url_repo@@/admin/repo_rights">Repo rights</a></li> |
<li@@if(@@menu::repo::repo_rights@@ == 1){{ class="selected"}}><a href="@@url_repo@@/admin/repo_rights">Repo rights</a></li> |
5 |
8 |
<li@@if(@@menu::repo::refs_rights@@ == 1){{ class="selected"}}><a href="@@url_repo@@/admin/refs_rights">Refs rights</a></li> |
<li@@if(@@menu::repo::refs_rights@@ == 1){{ class="selected"}}><a href="@@url_repo@@/admin/refs_rights">Refs rights</a></li> |
6 |
9 |
<li@@if(@@menu::repo::path_rights@@ == 1){{ class="selected"}}><a href="@@url_repo@@/admin/path_rights">Path rights</a></li> |
<li@@if(@@menu::repo::path_rights@@ == 1){{ class="selected"}}><a href="@@url_repo@@/admin/path_rights">Path rights</a></li> |
|
10 |
|
}} |
|
11 |
|
@@if(@@allow_delete_repo@@ == 1){{ |
7 |
12 |
<li@@if(@@menu::repo::delete@@ == 1){{ class="selected"}}><a href="@@url_repo@@/admin/delete">Delete</a></li> |
<li@@if(@@menu::repo::delete@@ == 1){{ class="selected"}}><a href="@@url_repo@@/admin/delete">Delete</a></li> |
|
13 |
|
}} |
|
14 |
|
@@if(@@allow_lock_repo@@ == 1){{ |
8 |
15 |
<li@@if(@@menu::repo::lock@@ == 1){{ class="selected"}}><a href="@@url_repo@@/admin/lock">Lock</a></li> |
<li@@if(@@menu::repo::lock@@ == 1){{ class="selected"}}><a href="@@url_repo@@/admin/lock">Lock</a></li> |
|
16 |
|
}} |
9 |
17 |
</ul> |
</ul> |
10 |
18 |
</div> |
</div> |