... | ... |
@@ -218,7 +218,7 @@ sub is_private_project { |
218 | 218 |
sub api { shift->app->gitprep_api } |
219 | 219 |
|
220 | 220 |
|
221 |
-sub members { |
|
221 |
+sub member_projects { |
|
222 | 222 |
my ($self, $user_id, $project_id) = @_; |
223 | 223 |
|
224 | 224 |
my $user_row_id = $self->api->get_user_row_id($user_id); |
... | ... |
@@ -227,25 +227,19 @@ sub members { |
227 | 227 |
my $dbi = $self->app->dbi; |
228 | 228 |
|
229 | 229 |
# Original project id |
230 |
- my $original_project = $dbi->model('project') |
|
231 |
- ->select('original_project', where => {user => $user_row_id, id => $project_id})->value; |
|
230 |
+ my $project_row_id = $dbi->model('project') |
|
231 |
+ ->select('row_id', where => {user => $user_row_id, id => $project_id})->value; |
|
232 | 232 |
|
233 | 233 |
# Members |
234 | 234 |
my $members = $dbi->model('project')->select( |
235 | 235 |
[ |
236 |
- {__MY__ => '*'}, |
|
236 |
+ {__MY__ => ['id']}, |
|
237 | 237 |
{user => ['id']} |
238 | 238 |
], |
239 |
- where => [ |
|
240 |
- ['and', |
|
241 |
- ':original_project{=}', |
|
242 |
- ['or', ':user_id{<>}', ':name{<>}'] |
|
243 |
- ], |
|
244 |
- { |
|
245 |
- original_project => $original_project, |
|
246 |
- } |
|
247 |
- ], |
|
248 |
- append => 'order by user_id, name' |
|
239 |
+ where => { |
|
240 |
+ original_project => $project_row_id, |
|
241 |
+ }, |
|
242 |
+ append => 'order by user.id, project.id' |
|
249 | 243 |
)->all; |
250 | 244 |
|
251 | 245 |
return $members; |
... | ... |
@@ -2,24 +2,31 @@ |
2 | 2 |
# API |
3 | 3 |
my $api = gitprep_api; |
4 | 4 |
|
5 |
+ my $user_id = param('user'); |
|
6 |
+ my $project_id = param('project'); |
|
7 |
+ |
|
8 |
+ my $rep_info = $self->app->rep_info($user_id, $project_id); |
|
9 |
+ |
|
5 | 10 |
# Branches |
6 |
- my $branches = [map { $_->{name} } @{app->git->branches($self->app->rep_info($user, $project))}]; |
|
11 |
+ my $branches = [map { $_->{name} } @{app->git->branches($rep_info)}]; |
|
7 | 12 |
|
8 | 13 |
# Members |
9 |
- my $members = app->manager->members($user, $project); |
|
14 |
+ my $member_projects = app->manager->member_projects($user_id, $project_id); |
|
10 | 15 |
|
11 | 16 |
# Members branches |
12 |
- for my $member (@$members) { |
|
13 |
- my $branches = [ |
|
14 |
- map { $_->{name} } @{app->git->branches($self->app->rep_info($member->{id}, $member->{project}))} |
|
15 |
- ]; |
|
16 |
- $member->{branches} = $branches; |
|
17 |
+ for my $member_project (@$member_projects) { |
|
18 |
+ my $member_rep_info = $self->app->rep_info($member_project->{'user.id'}, $member_project->{id}); |
|
19 |
+ |
|
20 |
+ my $branches = app->git->branches($member_rep_info); |
|
21 |
+ $branches = [map { $_->{name} } @$branches]; |
|
22 |
+ |
|
23 |
+ $member_project->{branches} = $branches; |
|
17 | 24 |
} |
18 | 25 |
|
19 | 26 |
# Default branch |
20 |
- my $default_branch = app->manager->default_branch($user, $project); |
|
27 |
+ my $default_branch = app->manager->default_branch($user_id, $project_id); |
|
21 | 28 |
|
22 |
- layout 'common', title => "Network \x{30fb} $user/$project"; |
|
29 |
+ layout 'common', title => "Network \x{30fb} $user_id/$project_id"; |
|
23 | 30 |
%> |
24 | 31 |
|
25 | 32 |
%= javascript begin |
... | ... |
@@ -32,7 +39,7 @@ |
32 | 39 |
var remote_project = remote.find('[name=remote-project]').text(); |
33 | 40 |
var remote_branch = remote.find('[name=remote-branch]').val(); |
34 | 41 |
|
35 |
- location.href = '<%= url_for("/$user/$project/network/graph/") %>' + branch + '...' |
|
42 |
+ location.href = '<%= url_for("/$user_id/$project_id/network/graph/") %>' + branch + '...' |
|
36 | 43 |
+ remote_member + '/' + remote_project + '/' + remote_branch; |
37 | 44 |
}); |
38 | 45 |
|
... | ... |
@@ -44,7 +51,7 @@ |
44 | 51 |
var remote_project = remote.find('[name=remote-project]').text(); |
45 | 52 |
var remote_branch = remote.find('[name=remote-branch]').val(); |
46 | 53 |
|
47 |
- location.href = '<%= url_for("/$user/$project/import-branch/") %>' |
|
54 |
+ location.href = '<%= url_for("/$user_id/$project_id/import-branch/") %>' |
|
48 | 55 |
+ remote_member + '/' + remote_project + '?remote-branch=' + remote_branch; |
49 | 56 |
}); |
50 | 57 |
}); |
... | ... |
@@ -53,34 +60,34 @@ |
53 | 60 |
%= include '/include/header'; |
54 | 61 |
|
55 | 62 |
<div class="container"> |
56 |
- <div class="topic1">Members of the <%= $project %> Network</div> |
|
63 |
+ <div class="topic1">Members of the <%= $project_id %> Network</div> |
|
57 | 64 |
<div class="network-mybranch"> |
58 | 65 |
<span class="network-mybranch-label">My branch</span> |
59 |
- <a href="<%= url_for("/$user") %>"><%= $user %></a> |
|
66 |
+ <a href="<%= url_for("/$user_id") %>"><%= $user_id %></a> |
|
60 | 67 |
<span>/</span> |
61 |
- <a href="<%= url_for("/$user/$project") %>"><%= $project %></a> |
|
68 |
+ <a href="<%= url_for("/$user_id/$project_id") %>"><%= $project_id %></a> |
|
62 | 69 |
<span>/</span> |
63 | 70 |
% param('branch', $default_branch); |
64 | 71 |
%= select_field 'branch' => $branches, style => 'margin-top:5px;width:150px'; |
65 | 72 |
</div> |
66 | 73 |
<ul class="network-member-branch"> |
67 |
- % if (@$members) { |
|
68 |
- % for my $member (@$members) { |
|
74 |
+ % if (@$member_projects) { |
|
75 |
+ % for my $member_project (@$member_projects) { |
|
69 | 76 |
<li name="remote"> |
70 |
- % my $mid = $member->{id}; |
|
71 |
- % my $mproject = $member->{project}; |
|
72 |
- % my $mbranches = $member->{branches}; |
|
77 |
+ % my $member_project_id = $member_project->{id}; |
|
78 |
+ % my $member_id = $member_project->{'user.id'}; |
|
79 |
+ % my $member_branches = $member_project->{branches}; |
|
73 | 80 |
<div> |
74 | 81 |
<span class="network-member-branch-label">Member branch</span> |
75 |
- <a name="remote-member" href="<%= url_for("/$mid") %>"><%= $mid %></a> |
|
82 |
+ <a name="remote-member" href="<%= url_for("/$member_id") %>"><%= $member_id %></a> |
|
76 | 83 |
<span>/</span> |
77 |
- <a name="remote-project" href="<%= url_for("/$mid/$mproject") %>"><%= $mproject %></a> |
|
84 |
+ <a name="remote-project" href="<%= url_for("/$member_id/$member_project_id") %>"><%= $member_project_id %></a> |
|
78 | 85 |
<span>/</span> |
79 |
- %= select_field 'remote-branch' => $mbranches, style => 'margin-top:5px;margin-bottom:7px;width:150px'; |
|
86 |
+ %= select_field 'remote-branch' => $member_branches, style => 'margin-top:5px;margin-bottom:7px;width:150px'; |
|
80 | 87 |
</div> |
81 | 88 |
<div class="last-child"> |
82 | 89 |
<button name="compare-btn" class="btn" style="margin-top:5px">Compare</button> |
83 |
- % if ($api->logined($user)) { |
|
90 |
+ % if ($api->logined($user_id)) { |
|
84 | 91 |
<button name="import-btn" class="btn" style="margin-top:5px">Import</button> |
85 | 92 |
% } |
86 | 93 |
</div> |