... | ... |
@@ -73,46 +73,33 @@ |
73 | 73 |
} |
74 | 74 |
|
75 | 75 |
# Change default branch |
76 |
- elsif ($op eq 'default-branch') { |
|
76 |
+ elsif ($op eq 'save-settings') { |
|
77 |
+ |
|
78 |
+ # Parameters |
|
77 | 79 |
my $default_branch = param('default-branch'); |
80 |
+ my $private = param('private'); |
|
81 |
+ my $params = {}; |
|
82 |
+ if (defined $default_branch) { |
|
83 |
+ $params->{default_branch} = $default_branch; |
|
84 |
+ } |
|
85 |
+ if (defined $private) { |
|
86 |
+ $params->{private} = $private ? 1 : 0; |
|
87 |
+ }; |
|
78 | 88 |
|
79 | 89 |
my $dbi = app->dbi; |
80 | 90 |
eval { |
81 | 91 |
$dbi->model('project')->update( |
82 |
- {default_branch => $default_branch}, |
|
92 |
+ $params, |
|
83 | 93 |
where => {user_id => $user, name => $project} |
84 | 94 |
); |
85 | 95 |
}; |
86 | 96 |
|
87 | 97 |
if (my $e = $@) { |
88 |
- app->log->error("/$user/$project/settings?op=default-branch: $e"); |
|
98 |
+ app->log->error("/$user/$project/settings?op=save-settings: $e"); |
|
89 | 99 |
$errors = ['Internal Error']; |
90 | 100 |
} |
91 | 101 |
else { |
92 |
- flash(message => "Default branch is changed to $default_branch."); |
|
93 |
- $self->redirect_to('current'); |
|
94 |
- return; |
|
95 |
- } |
|
96 |
- } |
|
97 |
- |
|
98 |
- # Private repository |
|
99 |
- elsif ($op eq 'private') { |
|
100 |
- my $private = param('private') ? 1 : 0; |
|
101 |
- |
|
102 |
- eval { |
|
103 |
- app->dbi->model('project')->update( |
|
104 |
- {private => $private}, |
|
105 |
- id => [$user, $project] |
|
106 |
- ); |
|
107 |
- }; |
|
108 |
- if (my $e = $@) { |
|
109 |
- app->log->error("/$user/$project/settings?op=private: $e"); |
|
110 |
- $errors = ['Internal Error']; |
|
111 |
- } |
|
112 |
- else { |
|
113 |
- my $message = 'Private status is saved. Repository is ' |
|
114 |
- . ($private ? 'private' : 'public'); |
|
115 |
- flash(message => $message); |
|
102 |
+ flash(message => "Settings is saved"); |
|
116 | 103 |
$self->redirect_to('current'); |
117 | 104 |
return; |
118 | 105 |
} |
... | ... |
@@ -148,11 +135,6 @@ |
148 | 135 |
$('#rename').on('click', function () { |
149 | 136 |
$('#form-rename-project').submit(); |
150 | 137 |
}); |
151 |
- |
|
152 |
- // Select default branch |
|
153 |
- $('[name=default-branch]').on('change', function () { |
|
154 |
- $('#form-default-branch').submit(); |
|
155 |
- }); |
|
156 | 138 |
|
157 | 139 |
// Check matching deleted project |
158 | 140 |
$('input[name="deleted-project"]').on('keyup', function () { |
... | ... |
@@ -227,14 +209,15 @@ |
227 | 209 |
</li> |
228 | 210 |
</ul> |
229 | 211 |
|
230 |
- <ul class="project-settings-main"> |
|
231 |
- <li> |
|
232 |
- <h4> |
|
233 |
- Settings |
|
234 |
- </h4> |
|
235 |
- </li> |
|
236 |
- <li> |
|
237 |
- <form id="form-default-branch" action="<%= url_for->query(op => 'default-branch') %>" method="post"> |
|
212 |
+ <form id="form-default-branch" action="<%= url_for %>" method="post"> |
|
213 |
+ %= hidden_field op => 'save-settings'; |
|
214 |
+ <ul class="project-settings-main"> |
|
215 |
+ <li> |
|
216 |
+ <h4> |
|
217 |
+ Settings |
|
218 |
+ </h4> |
|
219 |
+ </li> |
|
220 |
+ <li> |
|
238 | 221 |
Default Branch |
239 | 222 |
<% |
240 | 223 |
my $branches = $git->branches($user, $project); |
... | ... |
@@ -244,20 +227,20 @@ |
244 | 227 |
param('default-branch', $default_branch); |
245 | 228 |
%> |
246 | 229 |
%= select_field 'default-branch' => $branch_names; |
247 |
- </form> |
|
248 |
- </li> |
|
249 |
- <li> |
|
250 |
- <form id="form-default-branch" action="<%= url_for->query(op => 'private') %>" method="post"> |
|
230 |
+ </li> |
|
231 |
+ <li> |
|
251 | 232 |
<span>Make this repository private</span> |
252 | 233 |
% my $private = app->manager->is_private_project($user, $project); |
253 | 234 |
% if ($private) { |
254 | 235 |
% param('private', 1); |
255 | 236 |
% } |
256 | 237 |
%= check_box 'private' => 1; |
238 |
+ </li> |
|
239 |
+ <li> |
|
257 | 240 |
<input type="submit" class="btn" value="Save"> |
258 |
- </form> |
|
259 |
- </li> |
|
260 |
- </ul> |
|
241 |
+ </li> |
|
242 |
+ </ul> |
|
243 |
+ </form> |
|
261 | 244 |
|
262 | 245 |
<ul class="project-settings-danger"> |
263 | 246 |
<li style="background:red;padding-left:5px"> |
... | ... |
@@ -162,8 +162,8 @@ note 'Private repository and collaborator'; |
162 | 162 |
$t->content_like(qr/README/); |
163 | 163 |
|
164 | 164 |
# Check private repository |
165 |
- $t->post_ok("/kimoto/t1/settings?op=private", form => {private => 1}); |
|
166 |
- $t->content_like(qr/Repository is private/); |
|
165 |
+ $t->post_ok("/kimoto/t1/settings?op=save-settings", form => {private => 1}); |
|
166 |
+ $t->content_like(qr/Settings is saved/); |
|
167 | 167 |
|
168 | 168 |
# Can access private repository from myself |
169 | 169 |
$t->get_ok( |
... | ... |
@@ -365,8 +365,13 @@ note 'Profile'; |
365 | 365 |
system($cmd) == 0 or die "Can't execute git branch"; |
366 | 366 |
$t->get_ok('/kimoto1/t2/settings'); |
367 | 367 |
$t->content_like(qr/b1/); |
368 |
- $t->post_ok("/kimoto1/t2/settings?op=default-branch", form => {'default-branch' => 'b1'}); |
|
369 |
- $t->content_like(qr/Default branch is changed to b1/); |
|
368 |
+ $t->post_ok("/kimoto1/t2/settings?op=save-settings", form => {'default-branch' => 'b1'}); |
|
369 |
+ $t->content_like(qr/Settings is saved/); |
|
370 |
+ my $changed = $t->app->dbi->model('project')->select( |
|
371 |
+ 'default_branch', |
|
372 |
+ where => {user_id => 'kimoto1', name => 't2'} |
|
373 |
+ )->value; |
|
374 |
+ is($changed, 'b1'); |
|
370 | 375 |
} |
371 | 376 |
|
372 | 377 |
note 'Delete project'; |
... | ... |
@@ -552,8 +557,13 @@ note 'Private repository and collaborator'; |
552 | 557 |
$t->content_like(qr/README/); |
553 | 558 |
|
554 | 559 |
# Check private repository |
555 |
- $t->post_ok("/kimoto/t1/settings?op=private", form => {private => 1}); |
|
556 |
- $t->content_like(qr/Repository is private/); |
|
560 |
+ $t->post_ok("/kimoto/t1/settings?op=save-settings", form => {private => 1}); |
|
561 |
+ $t->content_like(qr/Settings is saved/); |
|
562 |
+ my $is_private = $t->app->dbi->model('project')->select( |
|
563 |
+ 'private', |
|
564 |
+ where => {user_id => 'kimoto', name => 't1'} |
|
565 |
+ )->value; |
|
566 |
+ is($is_private, 1); |
|
557 | 567 |
|
558 | 568 |
# Can access repository myself |
559 | 569 |
$t->get_ok("/kimoto/t1"); |