Commit graph

10 commits

Author SHA1 Message Date
Alfredo Sumaran
cd086eba79 Wrap param with parens for consistency 2016-08-05 17:19:01 -05:00
Alfredo Sumaran
c2912b46f8 Add custom css class to each dropdown to fix failing spec 2016-08-05 17:19:01 -05:00
Alfredo Sumaran
1ac953dab4 Update layout and JS for create protected branch.
Also updates protect branch list
2016-08-05 17:19:01 -05:00
Timothy Andrew
0a8aeb46dc Use Gitlab::Access to protected branch access levels.
1. It makes sense to reuse these constants since we had them duplicated
   in the previous enum implementation. This also simplifies our
   `check_access` implementation, because we can use
   `project.team.max_member_access` directly.

2. Use `accepts_nested_attributes_for` to create push/merge access
   levels. This was a bit fiddly to set up, but this simplifies our code
   by quite a large amount. We can even get rid of
   `ProtectedBranches::BaseService`.

3. Move API handling back into the API (previously in
   `ProtectedBranches::BaseService#translate_api_params`.

4. The protected branch services now return a `ProtectedBranch` rather
   than `true/false`.

5. Run `load_protected_branches` on-demand in the `create` action, to
   prevent it being called unneccessarily.

6. "Masters" is pre-selected as the default option for "Allowed to Push"
   and "Allowed to Merge".

7. These changes were based on a review from @rymai in !5081.
2016-07-29 15:20:39 +05:30
Timothy Andrew
88fd401d59 Implement review comments from @axil.
1. Align "Allowed to Merge" and "Allowed to Push" dropdowns.

2. Don't display a flash every time a protected branch is updated.
   Previously, we were using this so the test has something to hook onto
   before the assertion. Now we're using `wait_for_ajax` instead.
2016-07-29 15:20:39 +05:30
Timothy Andrew
4d6dadc8f8 Make specs compatible with PhantomJS versions < 2.
1. These versions of PhantomJS don't support `PATCH` requests, so we use
   a `POST` with `_method` set to `PATCH`.
2016-07-29 15:20:39 +05:30
Timothy Andrew
f2df2966aa Humanize protected branches' access levels at one location.
1. The model now contains this humanization data, which is the once
   source of truth.

2. Previously, this was being listed out in the dropdown component as well.
2016-07-29 15:20:39 +05:30
Timothy Andrew
9fa661472e Update protected branches spec to work with the selects.
1. Get the existing spec passing.

2. Add specs for all the access control options, both while creating and
   updating protected branches.

3. Show a flash notice when updating protected branches, primarily so
   the spec knows when the update is done.
2016-07-29 15:20:39 +05:30
Timothy Andrew
d8d5424d25 Use the GLDropdown component to select protected branches.
1. Modify the component to support a callback for every key press in the
   filter. We need this so we can update the "Create: <branch_name"
   label.

2. Modify the component to use `$(<selector>).first().click()` instead
   of `$(selector)[0].click()`, because the latter is non-standard, and
   doesn't work in PhantomJS.
2016-07-07 10:07:05 +05:30
Timothy Andrew
d8475276c4 Add a feature spec for protected branch creation.
1. Doesn't seem like there's an easy way to do this for the actual
   branch protection, since we'd have to test an actual `git push`.

2. Testing branch creation the web UI is also not straightforward,
   since the factory repo doesn't have any hooks, and so access checks
   at the `gitlab-shell` level aren't run.
2016-07-05 11:06:14 +05:30