Commit 95ac1154 authored by Robert Speicher's avatar Robert Speicher

Merge branch 'ce-to-ee-2018-04-12' into 'master'

CE upstream - 2018-04-12 18:23 UTC

Closes #5103

See merge request gitlab-org/gitlab-ee!5347
parents 200764bc 1e5829c1
......@@ -1190,12 +1190,12 @@ export default class Notes {
addForm = false;
let lineTypeSelector = '';
rowCssToAdd =
'<tr class="notes_holder js-temp-notes-holder"><td class="notes_line" colspan="2"></td><td class="notes_content"><div class="content discussion-notes"></div></td></tr>';
'<tr class="notes_holder js-temp-notes-holder"><td class="notes_line" colspan="2"></td><td class="notes_content"><div class="content"></div></td></tr>';
// In parallel view, look inside the correct left/right pane
if (this.isParallelView()) {
lineTypeSelector = `.${lineType}`;
rowCssToAdd =
'<tr class="notes_holder js-temp-notes-holder"><td class="notes_line old"></td><td class="notes_content parallel old"><div class="content discussion-notes"></div></td><td class="notes_line new"></td><td class="notes_content parallel new"><div class="content discussion-notes"></div></td></tr>';
'<tr class="notes_holder js-temp-notes-holder"><td class="notes_line old"></td><td class="notes_content parallel old"><div class="content"></div></td><td class="notes_line new"></td><td class="notes_content parallel new"><div class="content"></div></td></tr>';
}
const notesContentSelector = `.notes_content${lineTypeSelector} .content`;
let notesContent = targetRow.find(notesContentSelector);
......
......@@ -258,7 +258,9 @@ Please check your network connection and try again.`;
:key="note.id"
/>
</ul>
<div class="discussion-reply-holder">
<div
:class="{ 'is-replying': isReplying }"
class="discussion-reply-holder">
<template v-if="!isReplying && canReply">
<div
class="btn-group-justified discussion-with-resolve-btn"
......
<script>
import { sprintf, s__ } from '../../../locale';
export default {
name: 'time-tracking-help-state',
name: 'TimeTrackingHelpState',
props: {
rootPath: {
type: String,
......@@ -27,26 +28,28 @@ export default {
);
},
},
template: `
<div class="time-tracking-help-state">
<div class="time-tracking-info">
<h4>
{{ __('Track time with quick actions') }}
</h4>
<p>
{{ __('Quick actions can be used in the issues description and comment boxes.') }}
</p>
<p v-html="estimateText">
</p>
<p v-html="spendText">
</p>
<a
class="btn btn-default learn-more-button"
:href="href"
>
{{ __('Learn more') }}
</a>
</div>
</div>
`,
};
</script>
<template>
<div class="time-tracking-help-state">
<div class="time-tracking-info">
<h4>
{{ __('Track time with quick actions') }}
</h4>
<p>
{{ __('Quick actions can be used in the issues description and comment boxes.') }}
</p>
<p v-html="estimateText">
</p>
<p v-html="spendText">
</p>
<a
class="btn btn-default learn-more-button"
:href="href"
>
{{ __('Learn more') }}
</a>
</div>
</div>
</template>
<script>
import timeTrackingHelpState from './help_state';
import TimeTrackingHelpState from './help_state.vue';
import TimeTrackingCollapsedState from './collapsed_state.vue';
import timeTrackingSpentOnlyPane from './spent_only_pane';
import timeTrackingNoTrackingPane from './no_tracking_pane';
......@@ -16,7 +16,7 @@ export default {
'time-tracking-spent-only-pane': timeTrackingSpentOnlyPane,
'time-tracking-no-tracking-pane': timeTrackingNoTrackingPane,
TimeTrackingComparisonPane,
'time-tracking-help-state': timeTrackingHelpState,
TimeTrackingHelpState,
},
props: {
time_estimate: {
......
......@@ -813,7 +813,6 @@
}
.discussion-notes {
padding: 0 $gl-padding $gl-padding;
min-height: 35px;
&:first-child {
......
......@@ -173,7 +173,11 @@
}
.discussion-form {
padding-top: $gl-padding-top;
background-color: $white-light;
}
.discussion-form-container {
padding: $gl-padding-top $gl-padding $gl-padding;
}
.discussion-notes .disabled-comment {
......@@ -233,7 +237,12 @@
.discussion-body,
.diff-file {
.discussion-reply-holder {
padding-top: $gl-padding;
background-color: $white-light;
padding: 10px 16px;
&.is-replying {
padding-bottom: $gl-padding;
}
}
}
......
......@@ -47,7 +47,7 @@ ul.notes {
}
.timeline-entry-inner {
padding: $gl-padding 0;
padding: $gl-padding $gl-btn-padding;
border-bottom: 1px solid $white-normal;
}
......@@ -94,6 +94,12 @@ ul.notes {
}
}
&.note-discussion {
.timeline-entry-inner {
padding: $gl-padding 10px;
}
}
.editing-spinner {
display: none;
}
......@@ -346,8 +352,6 @@ ul.notes {
}
.discussion-notes {
background-color: $white-light;
&:not(:first-child) {
border-top: 1px solid $white-normal;
margin-top: 20px;
......@@ -359,6 +363,10 @@ ul.notes {
}
}
.notes {
background-color: $white-light;
}
a code {
top: 0;
margin-right: 0;
......@@ -639,6 +647,8 @@ ul.notes {
border-bottom: 1px solid $white-normal;
.timeline-entry-inner {
padding-left: $gl-padding;
padding-right: $gl-padding;
border-bottom: 0;
}
}
......
......@@ -379,7 +379,6 @@
svg {
vertical-align: middle;
margin-right: 3px;
}
.stage-column {
......@@ -524,17 +523,12 @@
svg {
fill: $gl-text-color-secondary;
position: relative;
left: 1px;
top: -1px;
width: 16px;
height: 16px;
}
&.play {
svg {
width: 16px;
height: 16px;
left: 3px;
left: 2px;
}
}
}
......
......@@ -39,7 +39,7 @@
= link_to 'Block', block_admin_user_path(user), data: { confirm: 'USER WILL BE BLOCKED! Are you sure?' }, method: :put
- if user.access_locked?
%li
= link_to 'Unlock', unlock_admin_user_path(user), method: :put, class: 'btn-grouped btn btn-xs btn-success', data: { confirm: 'Are you sure?' }
= link_to _('Unlock'), unlock_admin_user_path(user), method: :put, data: { confirm: _('Are you sure?') }
- if can?(current_user, :destroy_user, user)
%li.divider
- if user.can_be_removed?
......
......@@ -13,7 +13,7 @@
.nav-icon-container
= sprite_icon('project')
%span.nav-item-name
Overview
Project
%ul.sidebar-sub-level-items
= nav_link(path: 'projects#show', html_options: { class: "fly-out-top-item" } ) do
......
......@@ -24,20 +24,21 @@
-# DiffNote
= f.hidden_field :position
= render layout: 'projects/md_preview', locals: { url: preview_url, referenced_users: true } do
= render 'projects/zen', f: f,
attr: :note,
classes: 'note-textarea js-note-text',
placeholder: "Write a comment or drag your files here...",
supports_quick_actions: supports_quick_actions,
supports_autocomplete: supports_autocomplete
= render 'shared/notes/hints', supports_quick_actions: supports_quick_actions
.error-alert
.note-form-actions.clearfix
= render partial: 'shared/notes/comment_button'
= yield(:note_actions)
%a.btn.btn-cancel.js-note-discard{ role: "button", data: {cancel_text: "Cancel" } }
Discard draft
.discussion-form-container
= render layout: 'projects/md_preview', locals: { url: preview_url, referenced_users: true } do
= render 'projects/zen', f: f,
attr: :note,
classes: 'note-textarea js-note-text',
placeholder: "Write a comment or drag your files here...",
supports_quick_actions: supports_quick_actions,
supports_autocomplete: supports_autocomplete
= render 'shared/notes/hints', supports_quick_actions: supports_quick_actions
.error-alert
.note-form-actions.clearfix
= render partial: 'shared/notes/comment_button'
= yield(:note_actions)
%a.btn.btn-cancel.js-note-discard{ role: "button", data: {cancel_text: "Cancel" } }
Discard draft
---
title: Refactor and tweak margin for note forms on Issuable
merge_request: 18120
author: Takuya Noguchi
type: fixed
---
title: Align action icons in pipeline graph
merge_request:
author:
type: fixed
---
title: Move TimeTrackingHelpState vue component
merge_request: 18319
author: George Tsiolis
type: performance
---
title: Renamed Overview to Project in the contextual navigation at a project level
merge_request: 18295
author: Constance Okoghenun
type: changed
---
title: Remove green background from unlock button in admin area
merge_request: 18288
author:
type: changed
......@@ -869,37 +869,29 @@ skip the download step.
- Introduced in GitLab Runner v0.7.0 for non-Windows platforms.
- Windows support was added in GitLab Runner v.1.0.0.
- From GitLab 9.2, caches are restored before artifacts.
- Currently not all executors are supported.
- Not all executors are [supported](https://docs.gitlab.com/runner/executors/#compatibility-chart).
- Job artifacts are only collected for successful jobs by default.
`artifacts` is used to specify a list of files and directories which should be
attached to the job after success. You can only use paths that are within the
project workspace. To pass artifacts between different jobs, see [dependencies](#dependencies).
Below are some examples.
attached to the job after success.
Send all files in `binaries` and `.config`:
The artifacts will be sent to GitLab after the job finishes successfully and will
be available for download in the GitLab UI.
```yaml
artifacts:
paths:
- binaries/
- .config
```
[Read more about artifacts.](../../user/project/pipelines/job_artifacts.md)
Send all Git untracked files:
### `artifacts:paths`
```yaml
artifacts:
untracked: true
```
You can only use paths that are within the project workspace. To pass artifacts
between different jobs, see [dependencies](#dependencies).
Send all Git untracked files and files in `binaries`:
Send all files in `binaries` and `.config`:
```yaml
artifacts:
untracked: true
paths:
- binaries/
- .config
```
To disable artifact passing, define the job with empty [dependencies](#dependencies):
......@@ -933,11 +925,6 @@ release-job:
- tags
```
The artifacts will be sent to GitLab after the job finishes successfully and will
be available for download in the GitLab UI.
[Read more about artifacts.](../../user/project/pipelines/job_artifacts.md)
### `artifacts:name`
> Introduced in GitLab 8.6 and GitLab Runner v1.1.0.
......@@ -954,26 +941,30 @@ To create an archive with a name of the current job:
job:
artifacts:
name: "$CI_JOB_NAME"
paths:
- binaries/
```
To create an archive with a name of the current branch or tag including only
the files that are untracked by Git:
the binaries directory:
```yaml
job:
artifacts:
name: "$CI_COMMIT_REF_NAME"
untracked: true
paths:
- binaries/
```
To create an archive with a name of the current job and the current branch or
tag including only the files that are untracked by Git:
tag including only the binaries directory:
```yaml
job:
artifacts:
name: "$CI_JOB_NAME-$CI_COMMIT_REF_NAME"
untracked: true
paths:
- binaries/
```
To create an archive with a name of the current [stage](#stages) and branch name:
......@@ -982,7 +973,8 @@ To create an archive with a name of the current [stage](#stages) and branch name
job:
artifacts:
name: "$CI_JOB_STAGE-$CI_COMMIT_REF_NAME"
untracked: true
paths:
- binaries/
```
---
......@@ -994,7 +986,8 @@ If you use **Windows Batch** to run your shell scripts you need to replace
job:
artifacts:
name: "%CI_JOB_STAGE%-%CI_COMMIT_REF_NAME%"
untracked: true
paths:
- binaries/
```
If you use **Windows PowerShell** to run your shell scripts you need to replace
......@@ -1004,7 +997,33 @@ If you use **Windows PowerShell** to run your shell scripts you need to replace
job:
artifacts:
name: "$env:CI_JOB_STAGE-$env:CI_COMMIT_REF_NAME"
untracked: true
paths:
- binaries/
```
### `artifacts:untracked`
`artifacts:untracked` is used to add all Git untracked files as artifacts (along
to the paths defined in `artifacts:paths`).
NOTE: **Note:**
To exclude the folders/files which should not be a part of `untracked` just
add them to `.gitignore`.
Send all Git untracked files:
```yaml
artifacts:
untracked: true
```
Send all Git untracked files and files in `binaries`:
```yaml
artifacts:
untracked: true
paths:
- binaries/
```
### `artifacts:when`
......
# Components
> TODO: Add content
## Graphs
We have a lot of graphing libraries in our codebase to render graphs. In an effort to improve maintainability, new graphs should use [D3.js](https://d3js.org/). If a new graph is fairly simple, consider implementing it in SVGs or HTML5 canvas.
We chose D3 as our library going forward because of the following features:
* [Tree shaking webpack capabilities.](https://github.com/d3/d3/blob/master/CHANGES.md#changes-in-d3-40)
* [Compatible with vue.js as well as vanilla javascript.](https://github.com/d3/d3/blob/master/CHANGES.md#changes-in-d3-40)
D3 is very popular across many projects outside of GitLab:
* [The New York Times](https://archive.nytimes.com/www.nytimes.com/interactive/2012/02/13/us/politics/2013-budget-proposal-graphic.html)
* [plot.ly](https://plot.ly/)
* [Droptask](https://www.droptask.com/)
Within GitLab, D3 has been used for the following notable features
* [Prometheus graphs](https://docs.gitlab.com/ee/user/project/integrations/prometheus.html)
* Contribution calendars
This diff is collapsed.
......@@ -14,6 +14,10 @@ The comment area supports [Markdown] and [quick actions]. One can edit their
own comment at any time, and anyone with [Master access level][permissions] or
higher can also edit a comment made by someone else.
You could also reply to the notification email in order to reply to a comment,
provided that [Reply by email] is configured by your GitLab admin. This also
supports [Markdown] and [quick actions] as if replied from the web.
Apart from the standard comments, you also have the option to create a comment
in the form of a resolvable or threaded discussion.
......@@ -283,3 +287,4 @@ edit existing comments. Non-team members are restricted from adding or editing c
[markdown]: ../markdown.md
[quick actions]: ../project/quick_actions.md
[permissions]: ../permissions.md
[Reply by email]: ../../administration/reply_by_email.md
......@@ -11,12 +11,12 @@ describe 'User uses shortcuts', :js do
visit(project_path(project))
end
context 'when navigating to the Overview pages' do
context 'when navigating to the Project pages' do
it 'redirects to the details page' do
find('body').native.send_key('g')
find('body').native.send_key('p')
expect(page).to have_active_navigation('Overview')
expect(page).to have_active_navigation('Project')
expect(page).to have_active_sub_navigation('Details')
end
......@@ -24,7 +24,7 @@ describe 'User uses shortcuts', :js do
find('body').native.send_key('g')
find('body').native.send_key('e')
expect(page).to have_active_navigation('Overview')
expect(page).to have_active_navigation('Project')
expect(page).to have_active_sub_navigation('Activity')
end
end
......
......@@ -37,8 +37,10 @@ captures/
.idea/workspace.xml
.idea/tasks.xml
.idea/gradle.xml
.idea/assetWizardSettings.xml
.idea/dictionaries
.idea/libraries
.idea/caches
# Keystore files
# Uncomment the following line if you do not want to check your keystore files in.
......
......@@ -6,3 +6,4 @@
erl_crash.dump
*.ez
*.beam
/config/*.secret.exs
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
# User-specific stuff:
# User-specific stuff
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/dictionaries
# Sensitive or high-churn files:
# Sensitive or high-churn files
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.local.xml
......@@ -14,7 +14,7 @@
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
# Gradle:
# Gradle
.idea/**/gradle.xml
.idea/**/libraries
......@@ -22,14 +22,12 @@
cmake-build-debug/
cmake-build-release/
# Mongo Explorer plugin:
# Mongo Explorer plugin
.idea/**/mongoSettings.xml
## File-based project format:
# File-based project format
*.iws
## Plugin-specific files:
# IntelliJ
out/
......@@ -47,3 +45,6 @@ com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties
# Editor-based Rest Client
.idea/httpRequests
......@@ -15,6 +15,7 @@ $RECYCLE.BIN/
# Windows Installer files
*.cab
*.msi
*.msix
*.msm
*.msp
......
# Godot-specific ignores
.import/
export.cfg
export_presets.cfg
# Mono-specific ignores
.mono/
/.gitignore
/.htaccess
/administrator/cache/*
/administrator/components/com_admin/*
......
# For PCBs designed using KiCad: http://www.kicad-pcb.org/
# Format documentation: http://kicad-pcb.org/help/file-formats/
# Temporary files
*.000
......@@ -8,6 +9,10 @@
*~
_autosave-*
*.tmp
*-cache.lib
*-rescue.lib
*-save.pro
*-save.kicad_pcb
# Netlist files (exported from Eeschema)
*.net
......
......@@ -11,3 +11,4 @@ pom.xml.asc
.lein-plugins/
.lein-failures
.nrepl-port
.cpcache/
......@@ -36,7 +36,7 @@ build/Release
node_modules/
jspm_packages/
# Typescript v1 declaration files
# TypeScript v1 declaration files
typings/
# Optional npm cache directory
......
......@@ -53,9 +53,8 @@ coverage.xml
# Django stuff:
*.log
.static_storage/
.media/
local_settings.py
db.sqlite3
# Flask stuff:
instance/
......
......@@ -14,6 +14,7 @@ pickle-email-*.html
# TODO Comment out this rule if you are OK with secrets being uploaded to the repo
config/initializers/secret_token.rb
config/master.key
# Only include if you have production secrets in this file, which is no longer a Rails default
# config/secrets.yml
......
......@@ -3,7 +3,7 @@
/target/
# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
# More information here http://doc.crates.io/guide.html#cargotoml-vs-cargolock
# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html
Cargo.lock
# These are backup files generated by rustfmt
......
......@@ -153,7 +153,9 @@ _minted*
*.mw
# nomencl
*.nlg
*.nlo
*.nls
# pax
*.pax
......
......@@ -5,7 +5,7 @@
[Bb]uilds/
Assets/AssetStoreTools*
# Visual Studio 2015 cache directory
# Visual Studio cache directory
/.vs/
# Autogenerated VS/MD/Consulo solution and project files
......
......@@ -64,8 +64,10 @@ StyleCopReport.xml
*.ilk
*.meta
*.obj
*.iobj
*.pch
*.pdb
*.ipdb
*.pgc
*.pgd
*.rsp
......@@ -248,6 +250,7 @@ ServiceFabricBackup/
*.rdl.data
*.bim.layout
*.bim_*.settings
*.rptproj.rsuser
# Microsoft Fakes
FakesAssemblies/
......@@ -319,3 +322,8 @@ ASALocalRun/
# MSBuild Binary and Structured Log
*.binlog
# NVidia Nsight GPU debugger configuration file
*.nvuser
# MFractors (Xamarin productivity tool) working folder
.mfractor/
......@@ -32,7 +32,7 @@ before_script:
- apt-get install git nodejs libcurl4-gnutls-dev libicu-dev libmcrypt-dev libvpx-dev libjpeg-dev libpng-dev libxpm-dev zlib1g-dev libfreetype6-dev libxml2-dev libexpat1-dev libbz2-dev libgmp3-dev libldap2-dev unixodbc-dev libpq-dev libsqlite3-dev libaspell-dev libsnmp-dev libpcre3-dev libtidy-dev -yqq
# Install php extensions
- docker-php-ext-install mbstring mcrypt pdo_mysql curl json intl gd xml zip bz2 opcache
- docker-php-ext-install mbstring pdo_mysql curl json intl gd xml zip bz2 opcache
# Install & enable Xdebug for code coverage reports
- pecl install xdebug
......
image: node:latest
# This folder is cached between builds
# http://docs.gitlab.com/ce/ci/yaml/README.html#cache
cache:
paths:
- node_modules/
pages:
script:
- yarn install
- ./node_modules/.bin/gatsby build --prefix-paths
artifacts:
paths:
- public
only:
- master
# Full project: https://gitlab.com/pages/hugo
image: publysher/hugo
image: dettmering/hugo-build
pages:
script:
......
# This file is a template, and might need editing before it works on your project.
# Official language image. Look for the different tagged releases at:
# https://hub.docker.com/r/library/python/tags/
image: python:latest
# Change pip's cache directory to be inside the project directory since we can
# only cache local items.
variables:
PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache"
# Pip's cache doesn't store the python packages
# https://pip.pypa.io/en/stable/reference/pip_install/#caching
#
# If you want to also cache the installed packages, you have to install
# them in a virtualenv and cache it as well.
cache:
paths:
- .cache/pip
- venv/
before_script:
- python -V # Print out python version for debugging
- python -V # Print out python version for debugging
- pip install virtualenv
- virtualenv venv
- source venv/bin/activate
test:
script:
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment