Showing 2 changed files with 38 additions and 37 deletions
+8 -14
lib/Gitprep/Manager.pm
... ...
@@ -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;
+30 -23
templates/network.html.ep
... ...
@@ -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>