Skip to content
Snippets Groups Projects
Commit 7881eb30 authored by GitLab Bot's avatar GitLab Bot
Browse files

Add latest changes from gitlab-org/gitlab@12-6-stable-ee

parent 64b66e0c
No related branches found
No related tags found
No related merge requests found
Showing
with 209 additions and 119 deletions
1.72.1
a4b6c71d4b7c1588587345e2dfe0c6bd7cc63a83
10.2.0
10.3.0
8.14.1
8.18.0
Loading
Loading
@@ -22,6 +22,7 @@ gem 'rugged', '~> 0.28'
gem 'grape-path-helpers', '~> 1.1'
 
gem 'faraday', '~> 0.12'
gem 'marginalia', '~> 1.8.0'
 
# Authentication libraries
gem 'devise', '~> 4.6'
Loading
Loading
@@ -101,7 +102,7 @@ gem 'hashie-forbidden_attributes'
gem 'kaminari', '~> 1.0'
 
# HAML
gem 'hamlit', '~> 2.8.8'
gem 'hamlit', '~> 2.11.0'
 
# Files attachments
gem 'carrierwave', '~> 1.3'
Loading
Loading
@@ -135,11 +136,11 @@ gem 'aws-sdk'
gem 'faraday_middleware-aws-signers-v4'
 
# Markdown and HTML processing
gem 'html-pipeline', '~> 2.8'
gem 'html-pipeline', '~> 2.12'
gem 'deckar01-task_list', '2.2.1'
gem 'gitlab-markup', '~> 1.7.0'
gem 'github-markup', '~> 1.7.0', require: 'github/markup'
gem 'commonmarker', '~> 0.17'
gem 'commonmarker', '~> 0.20'
gem 'RedCloth', '~> 4.3.2'
gem 'rdoc', '~> 6.0'
gem 'org-ruby', '~> 0.9.12'
Loading
Loading
@@ -170,8 +171,8 @@ group :unicorn do
end
 
group :puma do
gem 'puma', '~> 3.12', require: false
gem 'puma_worker_killer', require: false
gem 'gitlab-puma', '~> 4.3.1.gitlab.2', require: false
gem 'gitlab-puma_worker_killer', '~> 0.1.1.gitlab.1', require: false
gem 'rack-timeout', require: false
end
 
Loading
Loading
@@ -273,8 +274,8 @@ gem 'mimemagic', '~> 0.3.2'
gem 'fast_blank'
 
# Parse time & duration
gem 'chronic', '~> 0.10.2'
gem 'gitlab_chronic_duration', '~> 0.10.6.1'
gem 'gitlab-chronic', '~> 0.10.5'
gem 'gitlab_chronic_duration', '~> 0.10.6.2'
 
gem 'webpack-rails', '~> 0.9.10'
gem 'rack-proxy', '~> 0.6.0'
Loading
Loading
@@ -312,8 +313,7 @@ gem 'gettext', '~> 3.2.2', require: false, group: :development
gem 'batch-loader', '~> 1.4.0'
 
# Perf bar
# https://gitlab.com/gitlab-org/gitlab/issues/13996
gem 'gitlab-peek', '~> 0.0.1', require: 'peek'
gem 'peek', '~> 1.1'
 
# Snowplow events tracking
gem 'snowplow-tracker', '~> 0.6.1'
Loading
Loading
@@ -347,20 +347,15 @@ group :development do
end
 
group :development, :test do
gem 'bullet', '~> 5.5.0', require: !!ENV['ENABLE_BULLET']
gem 'bullet', '~> 6.0.2', require: !!ENV['ENABLE_BULLET']
gem 'pry-byebug', '~> 3.5.1', platform: :mri
gem 'pry-rails', '~> 0.3.4'
 
gem 'awesome_print', require: false
gem 'fuubar', '~> 2.2.0'
 
gem 'database_cleaner', '~> 1.7.0'
gem 'factory_bot_rails', '~> 5.1.0'
gem 'rspec-rails', '~> 3.8.0'
gem 'rspec-retry', '~> 0.6.1'
gem 'rspec_profiling', '~> 0.0.5'
gem 'rspec-set', '~> 0.1.3'
gem 'rspec-parameterized', require: false
gem 'rspec-rails', '~> 4.0.0.beta3'
 
# Prevent occasions where minitest is not bundled in packaged versions of ruby (see #3826)
gem 'minitest', '~> 5.11.0'
Loading
Loading
@@ -368,10 +363,6 @@ group :development, :test do
# Generate Fake data
gem 'ffaker', '~> 2.10'
 
gem 'capybara', '~> 3.22.0'
gem 'capybara-screenshot', '~> 1.0.22'
gem 'selenium-webdriver', '~> 3.141'
gem 'spring', '~> 2.0.0'
gem 'spring-commands-rspec', '~> 1.0.4'
 
Loading
Loading
@@ -382,7 +373,7 @@ group :development, :test do
gem 'rubocop-rspec', '~> 1.22.1'
 
gem 'scss_lint', '~> 0.56.0', require: false
gem 'haml_lint', '~> 0.31.0', require: false
gem 'haml_lint', '~> 0.34.0', require: false
gem 'simplecov', '~> 0.16.1', require: false
gem 'bundler-audit', '~> 0.5.0', require: false
 
Loading
Loading
@@ -390,7 +381,7 @@ group :development, :test do
 
gem 'knapsack', '~> 1.17'
 
gem 'stackprof', '~> 0.2.10', require: false
gem 'stackprof', '~> 0.2.13', require: false
 
gem 'simple_po_parser', '~> 1.1.2', require: false
 
Loading
Loading
@@ -403,6 +394,16 @@ group :development, :test, :omnibus do
end
 
group :test do
gem 'fuubar', '~> 2.2.0'
gem 'rspec-retry', '~> 0.6.1'
gem 'rspec_profiling', '~> 0.0.5'
gem 'rspec-set', '~> 0.1.3'
gem 'rspec-parameterized', require: false
gem 'capybara', '~> 3.22.0'
gem 'capybara-screenshot', '~> 1.0.22'
gem 'selenium-webdriver', '~> 3.142'
gem 'shoulda-matchers', '~> 4.0.1', require: false
gem 'email_spec', '~> 2.2.0'
gem 'json-schema', '~> 2.8.0'
Loading
Loading
@@ -416,7 +417,7 @@ end
 
gem 'octokit', '~> 4.9'
 
gem 'mail_room', '~> 0.9.1'
gem 'mail_room', '~> 0.10.0'
 
gem 'email_reply_trimmer', '~> 0.1'
gem 'html2text'
Loading
Loading
@@ -451,7 +452,7 @@ group :ed25519 do
end
 
# Gitaly GRPC protocol definitions
gem 'gitaly', '~> 1.70.0'
gem 'gitaly', '~> 1.73.0'
 
gem 'grpc', '~> 1.24.0'
 
Loading
Loading
Loading
Loading
@@ -118,9 +118,9 @@ GEM
brakeman (4.2.1)
browser (2.5.3)
builder (3.2.3)
bullet (5.5.1)
bullet (6.0.2)
activesupport (>= 3.0.0)
uniform_notifier (~> 1.10.0)
uniform_notifier (~> 1.11)
bundler-audit (0.5.0)
bundler (~> 1.2)
thor (~> 0.18)
Loading
Loading
@@ -143,9 +143,7 @@ GEM
cause (0.1)
character_set (1.1.2)
charlock_holmes (0.7.6)
childprocess (0.9.0)
ffi (~> 1.0, >= 1.0.11)
chronic (0.10.2)
childprocess (3.0.0)
chunky_png (1.3.5)
citrus (3.0.2)
claide (1.0.3)
Loading
Loading
@@ -157,7 +155,7 @@ GEM
coercible (1.0.0)
descendants_tracker (~> 0.0.1)
colored2 (3.1.2)
commonmarker (0.17.13)
commonmarker (0.20.1)
ruby-enum (~> 0.5)
concord (0.1.5)
adamantium (~> 0.2.0)
Loading
Loading
@@ -287,7 +285,7 @@ GEM
fast_blank (1.0.0)
fast_gettext (1.6.0)
ffaker (2.10.0)
ffi (1.11.1)
ffi (1.11.3)
flipper (0.17.1)
flipper-active_record (0.17.1)
activerecord (>= 4.2, < 7)
Loading
Loading
@@ -359,9 +357,11 @@ GEM
po_to_json (>= 1.0.0)
rails (>= 3.2.0)
git (1.5.0)
gitaly (1.70.0)
gitaly (1.73.0)
grpc (~> 1.0)
github-markup (1.7.0)
gitlab-chronic (0.10.5)
numerizer (~> 0.2)
gitlab-labkit (0.7.0)
actionpack (>= 5.0.0, < 6.1.0)
activesupport (>= 5.0.0, < 6.1.0)
Loading
Loading
@@ -372,8 +372,11 @@ GEM
gitlab-license (1.0.0)
gitlab-markup (1.7.0)
gitlab-net-dns (0.9.1)
gitlab-peek (0.0.1)
railties (>= 4.0.0)
gitlab-puma (4.3.1.gitlab.2)
nio4r (~> 2.0)
gitlab-puma_worker_killer (0.1.1.gitlab.1)
get_process_mem (~> 0.2)
gitlab-puma (>= 2.7, < 5)
gitlab-sidekiq-fetcher (0.5.2)
sidekiq (~> 5)
gitlab-styles (2.8.0)
Loading
Loading
@@ -381,8 +384,8 @@ GEM
rubocop-gitlab-security (~> 0.1.0)
rubocop-performance (~> 1.1.0)
rubocop-rspec (~> 1.19)
gitlab_chronic_duration (0.10.6.1)
numerizer (~> 0.1.1)
gitlab_chronic_duration (0.10.6.2)
numerizer (~> 0.2)
gitlab_omniauth-ldap (2.1.1)
net-ldap (~> 0.16)
omniauth (~> 1.3)
Loading
Loading
@@ -460,17 +463,16 @@ GEM
guard (~> 2.1)
guard-compat (~> 1.1)
rspec (>= 2.99.0, < 4.0)
haml (5.0.4)
haml (5.1.2)
temple (>= 0.8.0)
tilt
haml_lint (0.31.0)
haml (>= 4.0, < 5.1)
haml_lint (0.34.0)
haml (>= 4.0, < 5.2)
rainbow
rake (>= 10, < 13)
rubocop (>= 0.50.0)
sysexits (~> 1.1)
hamlit (2.8.8)
temple (>= 0.8.0)
hamlit (2.11.0)
temple (>= 0.8.2)
thor
tilt
hangouts-chat (0.0.5)
Loading
Loading
@@ -484,7 +486,7 @@ GEM
hipchat (1.5.2)
httparty
mimemagic
html-pipeline (2.8.4)
html-pipeline (2.12.2)
activesupport (>= 2)
nokogiri (>= 1.4)
html2text (0.2.0)
Loading
Loading
@@ -591,9 +593,12 @@ GEM
lumberjack (1.0.13)
mail (2.7.1)
mini_mime (>= 0.1.1)
mail_room (0.9.1)
mail_room (0.10.0)
marcel (0.3.3)
mimemagic (~> 0.3.2)
marginalia (1.8.0)
actionpack (>= 2.3)
activerecord (>= 2.3)
memoist (0.16.0)
memoizable (0.4.2)
thread_safe (~> 0.3, >= 0.3.1)
Loading
Loading
@@ -622,7 +627,7 @@ GEM
net-ntp (2.1.3)
net-ssh (5.2.0)
netrc (0.11.0)
nio4r (2.3.1)
nio4r (2.5.2)
no_proxy_fix (0.1.2)
nokogiri (1.10.5)
mini_portile2 (~> 2.4.0)
Loading
Loading
@@ -631,7 +636,7 @@ GEM
notiffany (0.1.3)
nenv (~> 0.1)
shellany (~> 0.0)
numerizer (0.1.1)
numerizer (0.2.0)
oauth (0.5.4)
oauth2 (1.4.1)
faraday (>= 0.8, < 0.16.0)
Loading
Loading
@@ -724,6 +729,8 @@ GEM
parser (2.6.3.0)
ast (~> 2.4.0)
parslet (1.8.2)
peek (1.1.0)
railties (>= 4.0.0)
pg (1.1.4)
po_to_json (1.0.1)
json (>= 1.6.0)
Loading
Loading
@@ -749,10 +756,6 @@ GEM
pry-rails (0.3.6)
pry (>= 0.10.4)
public_suffix (3.1.1)
puma (3.12.0)
puma_worker_killer (0.1.0)
get_process_mem (~> 0.2)
puma (>= 2.7, < 4)
pyu-ruby-sasl (0.0.3.3)
raabro (1.1.6)
rack (2.0.7)
Loading
Loading
@@ -881,14 +884,14 @@ GEM
proc_to_ast
rspec (>= 2.13, < 4)
unparser
rspec-rails (3.8.2)
actionpack (>= 3.0)
activesupport (>= 3.0)
railties (>= 3.0)
rspec-core (~> 3.8.0)
rspec-expectations (~> 3.8.0)
rspec-mocks (~> 3.8.0)
rspec-support (~> 3.8.0)
rspec-rails (4.0.0.beta3)
actionpack (>= 4.2)
activesupport (>= 4.2)
railties (>= 4.2)
rspec-core (~> 3.8)
rspec-expectations (~> 3.8)
rspec-mocks (~> 3.8)
rspec-support (~> 3.8)
rspec-retry (0.6.1)
rspec-core (> 3.3)
rspec-set (0.1.3)
Loading
Loading
@@ -927,7 +930,7 @@ GEM
rubyntlm (0.6.2)
rubypants (0.2.0)
rubyzip (1.3.0)
rugged (0.28.3.1)
rugged (0.28.4.1)
safe_yaml (1.0.4)
sanitize (4.6.6)
crass (~> 1.0.2)
Loading
Loading
@@ -956,9 +959,9 @@ GEM
seed-fu (2.3.7)
activerecord (>= 3.1)
activesupport (>= 3.1)
selenium-webdriver (3.141.0)
childprocess (~> 0.5)
rubyzip (~> 1.2, >= 1.2.2)
selenium-webdriver (3.142.6)
childprocess (>= 0.5, < 4.0)
rubyzip (>= 1.2.2)
sentry-raven (2.9.0)
faraday (>= 0.7.6, < 1.0)
settingslogic (2.0.9)
Loading
Loading
@@ -1002,7 +1005,7 @@ GEM
sprockets (>= 3.0.0)
sqlite3 (1.3.13)
sshkey (2.0.0)
stackprof (0.2.10)
stackprof (0.2.13)
state_machines (0.5.0)
state_machines-activemodel (0.7.1)
activemodel (>= 4.1)
Loading
Loading
@@ -1017,7 +1020,7 @@ GEM
sys-filesystem (1.1.6)
ffi
sysexits (1.2.0)
temple (0.8.1)
temple (0.8.2)
terminal-table (1.8.0)
unicode-display_width (~> 1.1, >= 1.1.1)
test-prof (0.10.0)
Loading
Loading
@@ -1026,10 +1029,10 @@ GEM
daemons (~> 1.0, >= 1.0.9)
eventmachine (~> 1.0, >= 1.0.4)
rack (>= 1, < 3)
thor (0.19.4)
thor (0.20.3)
thread_safe (0.3.6)
thrift (0.11.0.0)
tilt (2.0.9)
tilt (2.0.10)
timecop (0.8.1)
timfel-krb5-auth (0.8.3)
toml (0.2.0)
Loading
Loading
@@ -1057,7 +1060,7 @@ GEM
unicorn-worker-killer (0.4.4)
get_process_mem (~> 0)
unicorn (>= 4, < 6)
uniform_notifier (1.10.0)
uniform_notifier (1.13.0)
unleash (0.1.5)
murmurhash3 (~> 0.1.6)
unparser (0.4.5)
Loading
Loading
@@ -1139,14 +1142,13 @@ DEPENDENCIES
bootstrap_form (~> 4.2.0)
brakeman (~> 4.2)
browser (~> 2.5)
bullet (~> 5.5.0)
bullet (~> 6.0.2)
bundler-audit (~> 0.5.0)
capybara (~> 3.22.0)
capybara-screenshot (~> 1.0.22)
carrierwave (~> 1.3)
charlock_holmes (~> 0.7.5)
chronic (~> 0.10.2)
commonmarker (~> 0.17)
commonmarker (~> 0.20)
concurrent-ruby (~> 1.1)
connection_pool (~> 2.0)
countries (~> 3.0)
Loading
Loading
@@ -1194,16 +1196,18 @@ DEPENDENCIES
gettext (~> 3.2.2)
gettext_i18n_rails (~> 1.8.0)
gettext_i18n_rails_js (~> 1.3)
gitaly (~> 1.70.0)
gitaly (~> 1.73.0)
github-markup (~> 1.7.0)
gitlab-chronic (~> 0.10.5)
gitlab-labkit (~> 0.5)
gitlab-license (~> 1.0)
gitlab-markup (~> 1.7.0)
gitlab-net-dns (~> 0.9.1)
gitlab-peek (~> 0.0.1)
gitlab-puma (~> 4.3.1.gitlab.2)
gitlab-puma_worker_killer (~> 0.1.1.gitlab.1)
gitlab-sidekiq-fetcher (= 0.5.2)
gitlab-styles (~> 2.7)
gitlab_chronic_duration (~> 0.10.6.1)
gitlab_chronic_duration (~> 0.10.6.2)
gitlab_omniauth-ldap (~> 2.1.1)
gon (~> 6.2)
google-api-client (~> 0.23)
Loading
Loading
@@ -1219,13 +1223,13 @@ DEPENDENCIES
grpc (~> 1.24.0)
gssapi
guard-rspec
haml_lint (~> 0.31.0)
hamlit (~> 2.8.8)
haml_lint (~> 0.34.0)
hamlit (~> 2.11.0)
hangouts-chat (~> 0.0.5)
hashie-forbidden_attributes
health_check (~> 2.6.0)
hipchat (~> 1.5.0)
html-pipeline (~> 2.8)
html-pipeline (~> 2.12)
html2text
httparty (~> 0.16.4)
icalendar
Loading
Loading
@@ -1243,7 +1247,8 @@ DEPENDENCIES
licensee (~> 8.9)
lograge (~> 0.5)
loofah (~> 2.2)
mail_room (~> 0.9.1)
mail_room (~> 0.10.0)
marginalia (~> 1.8.0)
memory_profiler (~> 0.9)
method_source (~> 0.8)
mimemagic (~> 0.3.2)
Loading
Loading
@@ -1275,13 +1280,12 @@ DEPENDENCIES
omniauth_crowd (~> 2.2.0)
omniauth_openid_connect (~> 0.3.3)
org-ruby (~> 0.9.12)
peek (~> 1.1)
pg (~> 1.1)
premailer-rails (~> 1.10.3)
prometheus-client-mmap (~> 0.9.10)
pry-byebug (~> 3.5.1)
pry-rails (~> 0.3.4)
puma (~> 3.12)
puma_worker_killer
rack (~> 2.0.7)
rack-attack (~> 6.2.0)
rack-cors (~> 1.0.0)
Loading
Loading
@@ -1307,7 +1311,7 @@ DEPENDENCIES
rouge (~> 3.11.0)
rqrcode-rails3 (~> 0.1.7)
rspec-parameterized
rspec-rails (~> 3.8.0)
rspec-rails (~> 4.0.0.beta3)
rspec-retry (~> 0.6.1)
rspec-set (~> 0.1.3)
rspec_junit_formatter
Loading
Loading
@@ -1325,7 +1329,7 @@ DEPENDENCIES
sassc-rails (~> 2.1.0)
scss_lint (~> 0.56.0)
seed-fu (~> 2.3.7)
selenium-webdriver (~> 3.141)
selenium-webdriver (~> 3.142)
sentry-raven (~> 2.9)
settingslogic (~> 2.0.9)
shoulda-matchers (~> 4.0.1)
Loading
Loading
@@ -1339,7 +1343,7 @@ DEPENDENCIES
spring-commands-rspec (~> 1.0.4)
sprockets (~> 3.7.0)
sshkey (~> 2.0)
stackprof (~> 0.2.10)
stackprof (~> 0.2.13)
state_machines-activerecord (~> 0.6.0)
sys-filesystem (~> 1.1.6)
test-prof (~> 0.10.0)
Loading
Loading
12.5.5
12.6.0-pre
Loading
Loading
@@ -5,6 +5,8 @@ import { joinPaths } from './lib/utils/url_utility';
import flash from '~/flash';
import { __ } from '~/locale';
 
const DEFAULT_PER_PAGE = 20;
const Api = {
groupsPath: '/api/:version/groups.json',
groupPath: '/api/:version/groups/:id',
Loading
Loading
@@ -41,7 +43,7 @@ const Api = {
releasesPath: '/api/:version/projects/:id/releases',
releasePath: '/api/:version/projects/:id/releases/:tag_name',
mergeRequestsPipeline: '/api/:version/projects/:id/merge_requests/:merge_request_iid/pipelines',
adminStatisticsPath: 'api/:version/application/statistics',
adminStatisticsPath: '/api/:version/application/statistics',
 
group(groupId, callback) {
const url = Api.buildUrl(Api.groupPath).replace(':id', groupId);
Loading
Loading
@@ -66,7 +68,7 @@ const Api = {
params: Object.assign(
{
search: query,
per_page: 20,
per_page: DEFAULT_PER_PAGE,
},
options,
),
Loading
Loading
@@ -90,7 +92,7 @@ const Api = {
.get(url, {
params: {
search: query,
per_page: 20,
per_page: DEFAULT_PER_PAGE,
},
})
.then(({ data }) => callback(data));
Loading
Loading
@@ -101,7 +103,7 @@ const Api = {
const url = Api.buildUrl(Api.projectsPath);
const defaults = {
search: query,
per_page: 20,
per_page: DEFAULT_PER_PAGE,
simple: true,
};
 
Loading
Loading
@@ -126,7 +128,7 @@ const Api = {
.get(url, {
params: {
search: query,
per_page: 20,
per_page: DEFAULT_PER_PAGE,
...options,
},
})
Loading
Loading
@@ -235,7 +237,7 @@ const Api = {
const url = Api.buildUrl(Api.groupProjectsPath).replace(':id', groupId);
const defaults = {
search: query,
per_page: 20,
per_page: DEFAULT_PER_PAGE,
};
return axios
.get(url, {
Loading
Loading
@@ -325,7 +327,7 @@ const Api = {
params: Object.assign(
{
search: query,
per_page: 20,
per_page: DEFAULT_PER_PAGE,
},
options,
),
Loading
Loading
@@ -355,7 +357,7 @@ const Api = {
const url = Api.buildUrl(Api.userProjectsPath).replace(':id', userId);
const defaults = {
search: query,
per_page: 20,
per_page: DEFAULT_PER_PAGE,
};
return axios
.get(url, {
Loading
Loading
@@ -371,7 +373,7 @@ const Api = {
return axios.get(url, {
params: {
search: query,
per_page: 20,
per_page: DEFAULT_PER_PAGE,
...options,
},
});
Loading
Loading
@@ -403,10 +405,15 @@ const Api = {
return axios.post(url);
},
 
releases(id) {
releases(id, options = {}) {
const url = Api.buildUrl(this.releasesPath).replace(':id', encodeURIComponent(id));
 
return axios.get(url);
return axios.get(url, {
params: {
per_page: DEFAULT_PER_PAGE,
...options,
},
});
},
 
release(projectPath, tagName) {
Loading
Loading
/* eslint-disable no-param-reassign, no-void, consistent-return */
/* eslint-disable no-param-reassign, consistent-return */
 
import AccessorUtilities from './lib/utils/accessor';
 
export default class Autosave {
constructor(field, key) {
constructor(field, key, fallbackKey) {
this.field = field;
 
this.isLocalStorageAvailable = AccessorUtilities.isLocalStorageAccessSafe();
Loading
Loading
@@ -11,6 +11,7 @@ export default class Autosave {
key = key.join('/');
}
this.key = `autosave/${key}`;
this.fallbackKey = fallbackKey;
this.field.data('autosave', this);
this.restore();
this.field.on('input', () => this.save());
Loading
Loading
@@ -21,9 +22,12 @@ export default class Autosave {
if (!this.field.length) return;
 
const text = window.localStorage.getItem(this.key);
const fallbackText = window.localStorage.getItem(this.fallbackKey);
 
if ((text != null ? text.length : void 0) > 0) {
if (text) {
this.field.val(text);
} else if (fallbackText) {
this.field.val(fallbackText);
}
 
this.field.trigger('input');
Loading
Loading
@@ -41,7 +45,10 @@ export default class Autosave {
 
const text = this.field.val();
 
if (this.isLocalStorageAvailable && (text != null ? text.length : void 0) > 0) {
if (this.isLocalStorageAvailable && text) {
if (this.fallbackKey) {
window.localStorage.setItem(this.fallbackKey, text);
}
return window.localStorage.setItem(this.key, text);
}
 
Loading
Loading
@@ -51,6 +58,7 @@ export default class Autosave {
reset() {
if (!this.isLocalStorageAvailable) return;
 
window.localStorage.removeItem(this.fallbackKey);
return window.localStorage.removeItem(this.key);
}
 
Loading
Loading
<script>
import Icon from '~/vue_shared/components/icon.vue';
import { GlLoadingIcon, GlTooltipDirective } from '@gitlab/ui';
import Icon from '~/vue_shared/components/icon.vue';
 
export default {
// name: 'Badge' is a false positive: https://gitlab.com/gitlab-org/frontend/eslint-plugin-i18n/issues/25
Loading
Loading
@@ -14,6 +14,11 @@ export default {
GlTooltip: GlTooltipDirective,
},
props: {
name: {
type: String,
required: false,
default: '',
},
imageUrl: {
type: String,
required: true,
Loading
Loading
<script>
import _ from 'underscore';
import { mapActions, mapState } from 'vuex';
import { GlLoadingIcon, GlFormInput, GlFormGroup } from '@gitlab/ui';
import createFlash from '~/flash';
import { s__, sprintf } from '~/locale';
import LoadingButton from '~/vue_shared/components/loading_button.vue';
import { GlLoadingIcon } from '@gitlab/ui';
import createEmptyBadge from '../empty_badge';
import Badge from './badge.vue';
 
Loading
Loading
@@ -16,6 +16,8 @@ export default {
Badge,
LoadingButton,
GlLoadingIcon,
GlFormInput,
GlFormGroup,
},
props: {
isEditing: {
Loading
Loading
@@ -64,6 +66,18 @@ export default {
renderedLinkUrl() {
return this.renderedBadge ? this.renderedBadge.renderedLinkUrl : '';
},
name: {
get() {
return this.badge ? this.badge.name : '';
},
set(name) {
const badge = this.badge || createEmptyBadge();
this.updateBadgeInForm({
...badge,
name,
});
},
},
imageUrl: {
get() {
return this.badge ? this.badge.imageUrl : '';
Loading
Loading
@@ -154,6 +168,10 @@ export default {
novalidate
@submit.prevent.stop="onSubmit"
>
<gl-form-group :label="s__('Badges|Name')" label-for="badge-name">
<gl-form-input id="badge-name" v-model="name" />
</gl-form-group>
<div class="form-group">
<label for="badge-link-url" class="label-bold">{{ s__('Badges|Link') }}</label>
<p v-html="helpText"></p>
Loading
Loading
<script>
import { mapActions, mapState } from 'vuex';
import { GlLoadingIcon } from '@gitlab/ui';
import { s__ } from '~/locale';
import Icon from '~/vue_shared/components/icon.vue';
import { GlLoadingIcon } from '@gitlab/ui';
import { PROJECT_BADGE } from '../constants';
import Badge from './badge.vue';
 
Loading
Loading
@@ -43,13 +43,14 @@ export default {
<badge
:image-url="badge.renderedImageUrl"
:link-url="badge.renderedLinkUrl"
class="table-section section-40"
class="table-section section-30"
/>
<span class="table-section section-30 str-truncated">{{ badge.linkUrl }}</span>
<div class="table-section section-15">
<div class="table-section section-30">
<label class="label-bold str-truncated mb-0">{{ badge.name }}</label>
<span class="badge badge-pill">{{ badgeKindText }}</span>
</div>
<div class="table-section section-15 table-button-footer">
<span class="table-section section-30 str-truncated">{{ badge.linkUrl }}</span>
<div class="table-section section-10 table-button-footer">
<div v-if="canEditBadge" class="table-action-buttons">
<button
:disabled="badge.isDeleting"
Loading
Loading
export default () => ({
name: '',
imageUrl: '',
isDeleting: false,
linkUrl: '',
Loading
Loading
import axios from '~/lib/utils/axios_utils';
import types from './mutation_types';
import { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils';
 
export const transformBackendBadge = badge => ({
id: badge.id,
imageUrl: badge.image_url,
kind: badge.kind,
linkUrl: badge.link_url,
renderedImageUrl: badge.rendered_image_url,
renderedLinkUrl: badge.rendered_link_url,
...convertObjectPropsToCamelCase(badge, true),
isDeleting: false,
});
 
Loading
Loading
@@ -27,6 +23,7 @@ export default {
dispatch('requestNewBadge');
return axios
.post(endpoint, {
name: newBadge.name,
image_url: newBadge.imageUrl,
link_url: newBadge.linkUrl,
})
Loading
Loading
@@ -141,6 +138,7 @@ export default {
dispatch('requestUpdatedBadge');
return axios
.put(endpoint, {
name: badge.name,
image_url: badge.imageUrl,
link_url: badge.linkUrl,
})
Loading
Loading
import $ from 'jquery';
import { parseBoolean } from '~/lib/utils/common_utils';
import GfmAutoComplete from 'ee_else_ce/gfm_auto_complete';
import { parseBoolean } from '~/lib/utils/common_utils';
 
export default function initGFMInput() {
$('.js-gfm-input:not(.js-vue-textarea)').each((i, el) => {
Loading
Loading
/* eslint-disable class-methods-use-this */
 
import { Image as BaseImage } from 'tiptap-extensions';
import { placeholderImage } from '~/lazy_loader';
import { defaultMarkdownSerializer } from 'prosemirror-markdown';
import { placeholderImage } from '~/lazy_loader';
 
export default class Image extends BaseImage {
get schema() {
Loading
Loading
import $ from 'jquery';
import Api from '~/api';
 
import $ from 'jquery';
import Flash from '../flash';
import FileTemplateTypeSelector from './template_selectors/type_selector';
import BlobCiYamlSelector from './template_selectors/ci_yaml_selector';
Loading
Loading
import { SwaggerUIBundle } from 'swagger-ui-dist';
import flash from '~/flash';
import { __ } from '~/locale';
export default () => {
const el = document.getElementById('js-openapi-viewer');
Promise.all([import(/* webpackChunkName: 'openapi' */ 'swagger-ui-dist/swagger-ui.css')])
.then(() => {
SwaggerUIBundle({
url: el.dataset.endpoint,
dom_id: '#js-openapi-viewer',
});
})
.catch(error => {
flash(__('Something went wrong while initializing the OpenAPI viewer'));
throw error;
});
};
import renderOpenApi from './openapi';
export default renderOpenApi;
Loading
Loading
@@ -39,6 +39,9 @@ export default class BlobViewer {
case 'notebook':
initViewer(import(/* webpackChunkName: 'notebook_viewer' */ '../notebook_viewer'));
break;
case 'openapi':
initViewer(import(/* webpackChunkName: 'openapi_viewer' */ '../openapi_viewer'));
break;
case 'pdf':
initViewer(import(/* webpackChunkName: 'pdf_viewer' */ '../pdf_viewer'));
break;
Loading
Loading
import $ from 'jquery';
import Sortable from 'sortablejs';
import Vue from 'vue';
import { GlButtonGroup, GlButton, GlTooltip } from '@gitlab/ui';
import isWipLimitsOn from 'ee_else_ce/boards/mixins/is_wip_limits';
import { n__, s__ } from '~/locale';
import Icon from '~/vue_shared/components/icon.vue';
import Tooltip from '~/vue_shared/directives/tooltip';
Loading
Loading
@@ -8,8 +10,10 @@ import AccessorUtilities from '../../lib/utils/accessor';
import BoardBlankState from './board_blank_state.vue';
import BoardDelete from './board_delete';
import BoardList from './board_list.vue';
import IssueCount from './issue_count.vue';
import boardsStore from '../stores/boards_store';
import { getBoardSortableDefaultOptions, sortableEnd } from '../mixins/sortable_default_options';
import { ListType } from '../constants';
 
export default Vue.extend({
components: {
Loading
Loading
@@ -17,10 +21,15 @@ export default Vue.extend({
BoardDelete,
BoardList,
Icon,
GlButtonGroup,
IssueCount,
GlButton,
GlTooltip,
},
directives: {
Tooltip,
},
mixins: [isWipLimitsOn],
props: {
list: {
type: Object,
Loading
Loading
@@ -53,6 +62,11 @@ export default Vue.extend({
isLoggedIn() {
return Boolean(gon.current_user_id);
},
showListHeaderButton() {
return (
!this.disabled && this.list.type !== ListType.closed && this.list.type !== ListType.blank
);
},
counterTooltip() {
const { issuesSize } = this.list;
return `${n__('%d issue', '%d issues', issuesSize)}`;
Loading
Loading
@@ -61,11 +75,19 @@ export default Vue.extend({
return this.list.isExpanded ? s__('Boards|Collapse') : s__('Boards|Expand');
},
isNewIssueShown() {
return this.list.type === ListType.backlog || this.showListHeaderButton;
},
isSettingsShown() {
return (
this.list.type === 'backlog' ||
(!this.disabled && this.list.type !== 'closed' && this.list.type !== 'blank')
this.list.type !== ListType.backlog &&
this.showListHeaderButton &&
this.list.isExpanded &&
this.isWipLimitsOn
);
},
showBoardListAndBoardInfo() {
return this.list.type !== ListType.blank && this.list.type !== ListType.promotion;
},
uniqueKey() {
// eslint-disable-next-line @gitlab/i18n/no-non-i18n-strings
return `boards.${this.boardId}.${this.list.type}.${this.list.id}`;
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment