5158 Commits
Author SHA1 Message Date
Dmitriy Zaporozhets 53697439cc Make subnavigation a bit darker color
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2016-07-09 11:42:48 +03:00
Fatih Acet 57da2e8705 Merge branch 'cs-cropper' into 'master'
Split Cropper.js from the main JavaScript manifest.

## What does this MR do?

Splits Cropper.js from the main JavaScript file.

## Are there points in the code the reviewer needs to double check?

That the avatar uploader works. (It did in my testing)

## Why was this MR needed?

Smaller JS payload.

## What are the relevant issue numbers?

#14372 

## Does this MR meet the acceptance criteria?

- Tests
  - [x] All builds are passing
- [x] Conform by the [style guides](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#style-guides)
- [x] Branch has no merge conflicts with `master` (if you do - rebase it please)
- [x] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits)

See merge request !4978
2016-07-08 19:03:11 +00:00
Robert Speicher 0de617772d Revert "Revert "Merge branch 'issue_3946' into 'master' ""
This reverts commit bf2a86b73c.
2016-07-07 23:48:02 -04:00
Robert Speicher dad406da23 Merge remote-tracking branch 'origin/master' 2016-07-07 18:40:29 -04:00
Douwe Maan bf89e06a45 Merge branch '18627-wildcard-branch-protection' into 'master'
Allow specifying protected branches using wildcards

Closes #18627 

# Tasks

- [ ]  #18627 !4665 Allow specifying protected branches using wildcards
    - [x]  Find existing usages of protected branches
        - Protecting branches
            - `ProtectedBranchesController` is used to mark a branch protected/unprotected
            - `API::Branches` can be used to mark a branch protected/unprotected
        - Enforcing branch protection
            - `Gitlab::GitAccess` has helpers (`can_push_to_branch?`, `check`) that are used to deny pushes if a branch is protected
            - Over SSH: `gitlab-shell` receives a push, and calls `/allowed` on the GitLab API, which calls `GitAccess.check`
            - Over HTTP: 
                - `gitlab-workhorse` receives the request, and forwards it to rails
                - Rails (in the `GitHttpController#git-recieve-pack`) runs basic checks (is the user logged in, not protected branch checks) and returns ok with `GL_ID` and `RepoPath`
                - `gitlab-workhorse` looks at the response, and calls the relevant `gitlab-shell` action from `git-http/handlePostRPC`
                - Rest of this flow is the same as the SSH flow above
    - [x]  Implementation
        - [x]  Backend
            - [x]  Change `project#protected_branch?` to look at wildcard protected branches
            - [x]  Change `project#developers_can_push_to_protected_branch?`
            - [x]  Change `project#open_branches`
            - [x]  Better error message when creating a disallowed branch from the Web UI
        - [x]  Frontend
            - [x]  Protected branches page should allow typing out a wildcard pattern
            - [x]  Add help text explaining the use of wildcards
            - [x]  Show matching branches for each protected branch
                - [x]  ~~On the index page~~
                - [x]  On a show page
                - [x]  Index?
            - [x]  Can't have the "last commit" column for wildcard protected branches
    - [x]  Fix / write tests
    - [x]  What happens if a hook is missing in dev?
    - [x]  Refactor
    - [x]  Test workflows
        - Create a branch matching a wildcard pattern
        - Push to a branch matching a wildcard pattern
        - Force push to a branch matching a wildcard pattern
        - Delete a branch matching a wildcard pattern
        - [x]  Test using Web UI
        - [x]  Test over SSH
        - [x]  Test over HTTP
        - [x]  Test as developer and master
    - [x]  Investigate performance
        - [x]  Test with a large number of protected branches / branches
        - [x]  Paginate list of protected branches
        - [x]  ~~Possibly rewrite `open_branches`~~
    - [x]  Add `iid`s to existing `ProtectedBranch`es
    - [x]  Add documentation
    - [x]  Add CHANGELOG entry
    - [x]  Add screenshots
    - [x]  Make sure [build](https://gitlab.com/gitlab-org/gitlab-ce/commit/2f753e3ed2ce681b4444944d521f4419e8ed37f7/builds) passes
    - [x]  Assign to endboss for review
    - [x]  Address @DouweM's comments
        - [x]  `protected_branch_params`
        - [x]  `exact_match` instead of `explicit_match`
        - [x]  When would self.name be blank?
        - [x]  Move `protected_branches.each` to a partial
        - [x]  Move `matching_branches.each` to a partial
        - [x]  If the branch is in @matching_branches, it's not been removed
        - [x]  move this regex to a method and memoize it
        - [x]  `commit_sha` directly for exact matches
        - [x]  Number of matches for wildcard matches, with a link
    - [x]  Wait for [build](https://gitlab.com/gitlab-org/gitlab-ce/commit/43f9ce0e88194b8f719bb1c1e656b7fc13278d56/builds) to pass
    - [x]  Respond to @DouweM's comments
        - [x]  Don't use iid
        - [x]  Controller should use `@project.protected_branches.new`
        - [x]  move the memoization to `def wildcard_regex`
        - [x]  render with `collection: @protected_branches`
    - [x]  Wait for [build](https://gitlab.com/gitlab-org/gitlab-ce/commit/f7beedf122fa0c7aa89e86181fe7499321fb10ca/builds) to pass
    - [x]  Wait for @DouweM's review
    - [x]  Wait for @jschatz1's review
    - [x]  Respond to @jschatz1's comments
        - [x]  Use the new dropdown style
        - [x]  description should be moved to the description section without the styling
        - [x]  Protect button should be disabled when no branch is selected
    - [x]  Update screenshots
    - [x]  Merge conflicts
    - [x]  Make sure [build](https://gitlab.com/gitlab-org/gitlab-ce/commit/20f3cfe8d5540eab64c2ba548043d600b28c61ba/builds) passes
    - [ ]  Revisit performance, possibly with staging/production data
        - [ ]  Get a dump of staging / run against staging live
            - [ ]  Get SSH access to staging
    - [ ]  Wait for review/merge






# Screenshots

## Creating wildcard protected branches

![1](/uploads/9446afccfdf6fa381e00c800dd2cc82e/1.png)
![2](/uploads/0b154503b297a818d3577488c575d845/2.png)
![3](/uploads/36217f79df9e41cc1550601f02627fe8/3.png)
![4](/uploads/041ca9bd529bcfa5373fca67e917cbcb/4.png)

### Using the `GLDropdown` component

![2016-06-30_14-16-15](/uploads/508afc2a5e2463c2954641409a560d88/2016-06-30_14-16-15.gif)

## Enforcing wildcard protected branches

### From the Web UI

![Screen_Shot_2016-06-20_at_1.21.18_PM](/uploads/8b5d4b1911e9152698a0488daf1880bc/Screen_Shot_2016-06-20_at_1.21.18_PM.png)

### Over SSH

![SSH](/uploads/7365989d7e4c406ef37b6ae5106442c9/SSH.gif)

### Over HTTPS

![HTTPS](/uploads/a7c0f56ae58efcffc75e6700fa2f4ac0/HTTPS.gif)

## Listing matching branches

![Screen_Shot_2016-06-20_at_1.33.44_PM](/uploads/d054113022f5d7ec64c0e57e501ac104/Screen_Shot_2016-06-20_at_1.33.44_PM.png)

See merge request !4665
2016-07-07 22:37:30 +00:00
Robert Speicher bf2a86b73c Revert "Merge branch 'issue_3946' into 'master' "
This reverts commit 68155ee73b, reversing
changes made to 7ebd011ed1.
2016-07-07 18:25:05 -04:00
Jacob Schatz 5541e55c49 Merge branch 'issues-blank-state' into 'master'
Added blank state to issues

## What does this MR do?

Adds new blank state to issues when no issues exist.

Part of #18519 

## Screenshots (if relevant)

![Screen_Shot_2016-06-24_at_16.37.12](/uploads/0c3f385615b29216ef1137bd6fac06af/Screen_Shot_2016-06-24_at_16.37.12.png)

See merge request !4908
2016-07-07 21:17:23 +00:00
Douwe Maan 86d238e4bd Merge branch 'new-diff-notes' into 'master'
New diff notes

Fixes #12732, #14731, #19375, #14783 

Builds on https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/4110

To do:
- [x] Get it mostly working
- [x] Validate position validity
- [x] Fix: Don’t link to `#`
- [x] Fix: Base ref can be `nil`, potentially, when the MR has an oprhan source branch => Yep, doesn’t work. We need to store a `start_id`
- [x] Optimize: Fewer duplicate `git diff` compares
- [x] Optimize: Pass paths to `PositionTracer#diff` for faster diffs
- [x] Refactor: Use `head_id` in `MergeRequest`/`MergeRequestDiff` instead of `source_sha`
- [x] Refactor: Convert existing array-based diff refs to the DiffRefs model
- [x] Tweak: Use `note_type` in `Autosave` key
- [x] Tweak: Remove `line_code: note.line_code` from `link_to_reply_discussion`
- [x] Update: `SentNotifications` and reply-by-email receiver
- [x] Update: MR diff notification email
- [x] Update: API (MR, Commit note creation and entity)
- [x] Update: GitHub importer
- [x] Address any other TODO comments
- [x] Fix: Suppress "edited 4 minutes ago"
- [x] Write tests
  - [x] `LineMapper`
  - [x] `PositionTracer`
  - [x] `Position`
  - [x] `DiffPositionUpdateService`
  - [x] `DiffNote`
  - [x] `MergeRequests::RefreshService` / `MergeRequest#update_diff_notes_positions`
- [x] Make sure commits with diff notes don't get cleaned up, since this would prevent the diff notes from being rendered (https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5062)

Future improvements:
- Display unresolved comments on files outside the diff, if the comment was added when that file _was_ part of the diff
- Allow commenting on sections between hunks, when expanding the diff using `...`
  - (We'd need to generate line code based on Position if we have it, even if it falls outside bounds of diff)
- `diff_hunk` on diff note API entity
- Show diff hunk in notification email
- Resolved line notes would have a boolean, and be inactive through `notes.any? { !active? || resolved? }`
- Multi line notes would store a number of positions, and do the right thing (™) in grouping and then rendering if the first item is multiline? => true
- Image diff notes could store x,y,width,height instead of old_line,new_line for similar grouping. Does it need a reference to say if it's on old or new? These can't have line_codes, clearly. Rendering would be interesting.
- Show commit line comments in the MR diff
- Comment on specific selected words
- Comment on file header
- Unfold top of discussion diff note
- New diff notes API for commits and MRs

/cc @rspeicher

See merge request !4101
2016-07-07 20:45:03 +00:00
Alfredo Sumaran 140b0952a8 Namespaces should filter remotely 2016-07-07 13:25:58 -05:00
Alfredo Sumaran 35224dbf5e Do not show Any Namespace option when needed 2016-07-07 13:25:58 -05:00
Alfredo Sumaran 338072cc4b Layout for Users Groups and Projects on admin area 2016-07-07 13:25:58 -05:00
Dmitriy Zaporozhets 197b9793db Improve UI for member row on project/group members pages
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2016-07-07 09:15:49 +03:00
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
Douwe Maan 29d574868a Display new diff notes and allow creation through the web interface 2016-07-06 18:51:00 -04:00
Douwe Maan 375193455a Style diff and blob file headers the same way 2016-07-06 18:50:59 -04:00
Jacob Schatz c66a7b0e94 Merge branch 'build-auto-refresh' into 'master'
Fixed issue with build auto-refresh not working

## What does this MR do?

Due to the `.json` at the end of the build URL fetch, the page wont correctly auto-reload the build log. This fixes that.

See merge request !5110
2016-07-06 21:04:27 +00:00
Jacob Schatz df174fa2d1 Merge branch '18858-options-dropdown-on-mobile-should-be-full-width' into 'master'
Added 100% width to open dropdown menus on mobile

## What does this MR do?

Sets dropdown-menus to be 100% width on small screens.

## Are there points in the code the reviewer needs to double check?

Do we want this on all dropdown menus or only dropdown menus activated by full-width buttons?
/cc @dzaporozhets 

## Why was this MR needed?

Mobile UX.

## What are the relevant issue numbers?

Closes #18858.

## Screenshots (if relevant)

![Screen_Shot_2016-06-22_at_00.14.09](/uploads/bd61721896bfac8af951374c2547acd6/Screen_Shot_2016-06-22_at_00.14.09.png)

## Does this MR meet the acceptance criteria?

- [ ] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added
- [ ] [Documentation created/updated](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/development/doc_styleguide.md)
- [ ] API support added
- Tests
  - [ ] Added for this feature/bug
  - [ ] All builds are passing
- [x] Conform by the [style guides](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#style-guides)
- [x] Branch has no merge conflicts with `master` (if you do - rebase it please)
- [x] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits)

See merge request !4844
2016-07-06 21:01:07 +00:00
Jacob Schatz 96684317aa Merge branch 'escape-to-cancel-note' into 'master'
Cancel creating or editing note by hitting Escape

/cc @rspeicher 

See merge request !5075
2016-07-06 16:31:26 +00:00
Phil Hughes 2044af6ced Fixed issue with build auto-refresh not working 2016-07-06 10:16:16 +01:00
Phil Hughes e486bbfd34 Fixed spelling
Used variable for icon color
2016-07-06 09:02:52 +01:00
Douglas Barbosa Alexandre e89a515ce9 Fix unescaped strings in the labels dropdown template 2016-07-06 04:40:02 -03:00
Douglas Barbosa Alexandre e87ed41876 Render label name contains ?, & in the labels dropdown without escaping 2016-07-05 20:59:33 -03:00
Douglas Barbosa Alexandre ab811b6ab9 Render references for labels that name contains ?, or & 2016-07-05 20:57:09 -03:00
Douglas Barbosa Alexandre e186626d25 Allow '?', or '&' for label titles 2016-07-05 20:57:09 -03:00
Patricio Cano 2e96fcff12 Clone button should not be clickable when there is a disabled protocol 2016-07-05 16:54:22 -05:00
Patricio Cano 82652013f2 Fix CSS 2016-07-05 16:54:22 -05:00
Patricio Cano 512adc21fe Add setting that allows admins to choose which Git access protocols are enabled 2016-07-05 16:54:22 -05:00
Fatih Acet 6d12878d5a Merge branch '19161-non-helpful-flash-message-when-attaching-file-fails' into 'master'
Hacked in a better message for attachment network error

## What does this MR do?

Adds a better error message for when a user is uploading an attachment and they cannot reach the GitLab instance.

Now displays `Network error. Please check your connection.`.

## Are there points in the code the reviewer needs to double check?

As noted above, I think this is hacky, ideally this would be sent straight from the backend but if not then this should be handled globally?

/cc @fatihacet 

## Why was this MR needed?

Attachment upload UX

## What are the relevant issue numbers?

Closes #19161.

## Screenshots (if relevant)

*UPDATED:*

![Screen_Shot_2016-06-30_at_00.42.37](/uploads/b3b4044782dd4c4c17735e99acc45502/Screen_Shot_2016-06-30_at_00.42.37.png)

## Does this MR meet the acceptance criteria?

- [ ] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added
- [ ] [Documentation created/updated](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/development/doc_styleguide.md)
- [ ] API support added
- Tests
  - [ ] Added for this feature/bug
  - [ ] All builds are passing
- [ ] Conform by the [style guides](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#style-guides)
- [ ] Branch has no merge conflicts with `master` (if you do - rebase it please)
- [ ] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits)

See merge request !4977
2016-07-05 21:51:00 +00:00
Douwe Maan 09c85ccb6e Use switch/when statement 2016-07-05 17:50:47 -04:00
Jacob Schatz 025be2f8b7 Merge branch 'underscore-templates' into 'master'
Naive attempt at fixing Underscore templates

## What does this MR do?

Attempts to fix part of #18939.

## Are there points in the code the reviewer needs to double check?

That this doesn't break anything.

## Why was this MR needed?

See #18939.

## What are the relevant issue numbers?

#18939 

## Does this MR meet the acceptance criteria?

- Tests
  - [ ] Added for this feature/bug
  - [ ] All builds are passing

See merge request !4842
2016-07-05 21:44:34 +00:00
Jacob Schatz 4dda6def95 Merge branch 'ff-markdown-buttons-fix' into 'master'
Fixed markdown buttons in FF

## What does this MR do?

The markdown buttons weren't working with the `execCommand` function. So it has to fallback to replacing the value in the textarea.

See merge request !5085
2016-07-05 20:42:03 +00:00
Robert Speicher aefb8a1741 Merge branch 'update-gemoji' into 'master'
Add lib/gitlab/emoji.rb instead of gitlab_emoji gem and upgrade Gemojione

- No reason to split it into a separate gem when the gem barely did anything. We can use gemojione directly, making updating gemojione that much easier. Unless there's a particularly good reason we were using the gem?
- Fixes the Rake task since it broke after all the AwardEmoji changes.
- Update gemojione to 2.6.1.

Spring Update changes! http://emojione.com/releases/#2.2.0

See merge request !4919
2016-07-05 17:08:35 +00:00
Dmitriy Zaporozhets fe9246bf68 Merge branch 'project-header' into 'master'
Updated project header

## What does this MR do?

Updates the project header.

## What are the relevant issue numbers?

Closes #18544, #18832 

## Screenshots (if relevant)

![Screen_Shot_2016-06-29_at_14.16.16](/uploads/4df895e7ecf42e5ddab3f2f1e47f8c7e/Screen_Shot_2016-06-29_at_14.16.16.png)


See merge request !4989
2016-07-05 16:27:16 +00:00
Jacob Schatz 670073765a Merge branch 'new-mr-commit-alignment' into 'master'
Fixed avatar alignment in new MR view

## What does this MR do?

Fixes the alignment of the avatar in the new MR compare view

## Screenshots (if relevant)

![Screen_Shot_2016-07-05_at_16.17.54](/uploads/9c427f66f8ef1d5ecee627e57ee61322/Screen_Shot_2016-07-05_at_16.17.54.png)

See merge request !5095
2016-07-05 15:45:51 +00:00
Phil Hughes 0db54b1587 Fixed avatar alignment in new MR view 2016-07-05 16:16:49 +01:00
Dmitriy Zaporozhets 7facedfb19 Fix profile test to click on header user profile link
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2016-07-05 16:17:05 +03:00
Dmitriy Zaporozhets bca47688d4 Remove current user link to the profile from sidebar
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2016-07-05 16:17:05 +03:00
Phil Hughes bf5d28ea8d Fixed markdown buttons in FF 2016-07-05 11:54:49 +01:00
Phil Hughes e3390901a3 Chnaged padding of project header nav 2016-07-05 09:19:01 +01:00
Phil Hughes 4ddcac8ca8 Added blank state to issues 2016-07-05 09:06:38 +01:00
Timothy Andrew 2a5cb7ec52 Modify the frontend for wildcard protected branches.
1. Allow entering any branch name for a protected branch.

    - Either pick from a list of options, or enter it manually
    - You can enter wildcards.

2. Display branches matching a protected branch.

    -  Add a `ProtectedBranches#show` page that displays the branches
       matching the given protected branch, or a message if there are no
       matches.

    - On the `index` page, display the last commit for an exact match,
      or the number of matching branches for a wildcard match.

    -  Add an `iid` column to `protected_branches` - this is what we use for
       the `show` page URL.

    -  On the off chance that this feature is unnecessary, this commit
       encapsulates it neatly, so it can be removed without affecting
       anything else.

3. Remove the "Last Commit" column from the list of protected branches.

    - There's no way to pull these for wildcard protected branches, so it's
      best left for the `show` page.

    - Rename the `@branches` instance variable to `@protected_branches`

    - Minor styling changes with the "Unprotect" button - floated right
      like the "Revoke" button for personal access tokens

4. Paginate the list of protected branches.

5. Move the instructions to the left side of the page.
2016-07-05 10:50:34 +05:30
Dmitriy Zaporozhets c6bfad2a67 Merge branch 'user-avatar-header' into 'master'
Added user avatar to header

## What does this MR do?

Adds  the users avatar to the header with a dropdown for profile & sign out.

## What are the relevant issue numbers?

Closes #18543 

## Screenshots (if relevant)

![Screen_Shot_2016-06-27_at_12.47.34](/uploads/852d0eb7075eefcf21f5cf5ff71a389a/Screen_Shot_2016-06-27_at_12.47.34.png)

![Screen_Shot_2016-06-27_at_12.47.36](/uploads/6cb29843d3a12bbf2d3ed2a7c9bde770/Screen_Shot_2016-06-27_at_12.47.36.png)

See merge request !4939
2016-07-04 18:51:12 +00:00
Douwe Maan 0deec938ce Double to single quotes 2016-07-04 13:58:05 -04:00
Douwe Maan 7e1c91e0d6 Add confirmation when canceling creating/editing with changes 2016-07-04 13:54:58 -04:00
Douwe Maan 88889d164d Cancel creating or editing note by hitting Escape 2016-07-04 13:42:42 -04:00
Phil Hughes 111fecc639 Reverted project avatar radius
Fixed spacing in missing links
2016-07-04 16:34:53 +01:00
Phil Hughes 211246c691 Mobile spacing 2016-07-04 16:34:53 +01:00
Phil Hughes 16ca8ec57f Updated spacing
CHANGELOG item
2016-07-04 16:34:53 +01:00
Phil Hughes eac81b988e Updated project header
Closes #18544
2016-07-04 16:34:53 +01:00
Douglas Barbosa Alexandre 3d69d01e1f Cache results from jQuery selectors to retrieve namespace name 2016-07-01 16:43:11 -03:00