Skip to content
Snippets Groups Projects
Commit 74894a38 authored by Mike Greiling's avatar Mike Greiling
Browse files

Merge branch 'bootstrap4' into 'master'

Upgrade to Bootstrap 4

Closes #45185 and #46710

See merge request gitlab-org/gitlab-ce!18232
parents 6f4935bc d219ed25
No related branches found
No related tags found
No related merge requests found
Showing
with 43 additions and 50 deletions
Loading
Loading
@@ -46,8 +46,9 @@ linters:
# - properties
# - @include declarations with inner @content
# - nested rule sets.
# Disabled to minimize Bootstrap migration footprint
DeclarationOrder:
enabled: true
enabled: false
 
# `scss-lint:disable` control comments should be preceded by a comment
# explaining why these linters are being disabled for this file.
Loading
Loading
Loading
Loading
@@ -257,7 +257,6 @@ gem 'sass-rails', '~> 5.0.6'
gem 'uglifier', '~> 2.7.2'
 
gem 'addressable', '~> 2.5.2'
gem 'bootstrap-sass', '~> 3.3.0'
gem 'font-awesome-rails', '~> 4.7'
gem 'gemojione', '~> 3.3'
gem 'gon', '~> 6.2'
Loading
Loading
Loading
Loading
@@ -69,9 +69,6 @@ GEM
attr_encrypted (3.1.0)
encryptor (~> 3.0.0)
attr_required (1.0.0)
autoprefixer-rails (6.2.3)
execjs
json
awesome_print (1.2.0)
axiom-types (0.1.1)
descendants_tracker (~> 0.0.4)
Loading
Loading
@@ -91,9 +88,6 @@ GEM
binding_of_caller (0.7.2)
debug_inspector (>= 0.0.1)
blankslate (2.1.2.4)
bootstrap-sass (3.3.6)
autoprefixer-rails (>= 5.2.1)
sass (>= 3.3.4)
bootstrap_form (2.7.0)
brakeman (4.2.1)
browser (2.2.0)
Loading
Loading
@@ -992,7 +986,6 @@ DEPENDENCIES
benchmark-ips (~> 2.3.0)
better_errors (~> 2.1.0)
binding_of_caller (~> 0.7.2)
bootstrap-sass (~> 3.3.0)
bootstrap_form (~> 2.7.0)
brakeman (~> 4.2)
browser (~> 2.2)
Loading
Loading
Loading
Loading
@@ -345,7 +345,7 @@ class AwardsHandler {
counter.text(counterNumber - 1);
this.removeYouFromUserList($emojiButton);
} else if (emoji === 'thumbsup' || emoji === 'thumbsdown') {
$emojiButton.tooltip('destroy');
$emojiButton.tooltip('dispose');
counter.text('0');
this.removeYouFromUserList($emojiButton);
if ($emojiButton.parents('.note').length) {
Loading
Loading
@@ -358,7 +358,7 @@ class AwardsHandler {
}
 
removeEmoji($emojiButton) {
$emojiButton.tooltip('destroy');
$emojiButton.tooltip('dispose');
$emojiButton.remove();
const $votesBlock = this.getVotesBlock();
if ($votesBlock.find('.js-emoji-btn').length === 0) {
Loading
Loading
@@ -392,7 +392,7 @@ class AwardsHandler {
.removeAttr('data-title')
.removeAttr('data-original-title')
.attr('title', this.toSentence(authors))
.tooltip('fixTitle');
.tooltip('_fixTitle');
}
 
addYouToUserList(votesBlock, emoji) {
Loading
Loading
@@ -405,7 +405,7 @@ class AwardsHandler {
users.unshift('You');
return awardBlock
.attr('title', this.toSentence(users))
.tooltip('fixTitle');
.tooltip('_fixTitle');
}
 
createAwardButtonForVotesBlock(votesBlock, emojiName) {
Loading
Loading
Loading
Loading
@@ -89,7 +89,7 @@ export default {
v-show="hasError"
class="btn-group"
>
<div class="btn btn-default btn-xs disabled">
<div class="btn btn-default btn-sm disabled">
<icon
class="prepend-left-8 append-right-8"
name="doc_image"
Loading
Loading
@@ -98,7 +98,7 @@ export default {
/>
</div>
<div
class="btn btn-default btn-xs disabled"
class="btn btn-default btn-sm disabled"
>
<span class="prepend-left-8 append-right-8">{{ s__('Badges|No badge image') }}</span>
</div>
Loading
Loading
@@ -106,7 +106,7 @@ export default {
 
<button
v-show="hasError"
class="btn btn-transparent btn-xs text-primary"
class="btn btn-transparent btn-sm text-primary"
type="button"
v-tooltip
:title="s__('Badges|Reload badge image')"
Loading
Loading
Loading
Loading
@@ -23,8 +23,8 @@ export default {
</script>
 
<template>
<div class="panel panel-default">
<div class="panel-heading">
<div class="card">
<div class="card-header">
{{ s__('Badges|Your badges') }}
<span
v-show="!isLoading"
Loading
Loading
@@ -33,19 +33,19 @@ export default {
</div>
<loading-icon
v-show="isLoading"
class="panel-body"
class="card-body"
size="2"
/>
<div
v-if="hasNoBadges"
class="panel-body"
class="card-body"
>
<span v-if="isGroupBadge">{{ s__('Badges|This group has no badges') }}</span>
<span v-else>{{ s__('Badges|This project has no badges') }}</span>
</div>
<div
v-else
class="panel-body"
class="card-body"
>
<badge-list-row
v-for="badge in badges"
Loading
Loading
Loading
Loading
@@ -8,10 +8,10 @@ function showTooltip(target, title) {
if (!$target.data('hideTooltip')) {
$target
.attr('title', title)
.tooltip('fixTitle')
.tooltip('_fixTitle')
.tooltip('show')
.attr('title', originalTitle)
.tooltip('fixTitle');
.tooltip('_fixTitle');
}
}
 
Loading
Loading
Loading
Loading
@@ -69,7 +69,7 @@ $(document).on('keyup.quick_submit', '.js-quick-submit input[type=submit], .js-q
$this.tooltip({
container: 'body',
html: 'true',
placement: 'auto top',
placement: 'top',
title,
trigger: 'manual',
});
Loading
Loading
Loading
Loading
@@ -42,9 +42,9 @@ $.fn.requiresInput = function requiresInput() {
function hideOrShowHelpBlock(form) {
const selected = $('.js-select-namespace option:selected');
if (selected.length && selected.data('optionsParent') === 'groups') {
form.find('.help-block').hide();
form.find('.form-text.text-muted').hide();
} else if (selected.length) {
form.find('.help-block').show();
form.find('.form-text.text-muted').show();
}
}
 
Loading
Loading
Loading
Loading
@@ -2,9 +2,9 @@ import sqljs from 'sql.js';
import { template as _template } from 'underscore';
 
const PREVIEW_TEMPLATE = _template(`
<div class="panel panel-default">
<div class="panel-heading"><%- name %></div>
<div class="panel-body">
<div class="card">
<div class="card-header"><%- name %></div>
<div class="card-body">
<img class="img-thumbnail" src="data:image/png;base64,<%- image %>"/>
</div>
</div>
Loading
Loading
Loading
Loading
@@ -44,7 +44,7 @@ export default class SketchLoader {
previewLink.href = previewUrl;
previewLink.target = '_blank';
previewImage.src = previewUrl;
previewImage.className = 'img-responsive';
previewImage.className = 'img-fluid';
 
previewLink.appendChild(previewImage);
this.container.appendChild(previewLink);
Loading
Loading
Loading
Loading
@@ -116,7 +116,7 @@ export default class BlobViewer {
this.copySourceBtn.classList.add('disabled');
}
 
$(this.copySourceBtn).tooltip('fixTitle');
$(this.copySourceBtn).tooltip('_fixTitle');
}
 
switchToViewer(name) {
Loading
Loading
Loading
Loading
@@ -77,7 +77,7 @@ export default {
 
<template>
<li
class="card"
class="board-card"
:class="{
'user-can-drag': !disabled && issue.id,
'is-disabled': disabled || !issue.id,
Loading
Loading
Loading
Loading
@@ -92,7 +92,7 @@ export default {
 
<template>
<div class="board-new-issue-form">
<div class="card">
<div class="board-card">
<form @submit="submit($event)">
<div
class="flash-container"
Loading
Loading
@@ -122,7 +122,7 @@ export default {
/>
<div class="clearfix prepend-top-10">
<button
class="btn btn-success pull-left"
class="btn btn-success float-left"
type="submit"
:disabled="disabled"
ref="submit-button"
Loading
Loading
@@ -130,7 +130,7 @@ export default {
Submit issue
</button>
<button
class="btn btn-default pull-right"
class="btn btn-default float-right"
type="button"
@click="cancel"
>
Loading
Loading
Loading
Loading
@@ -135,8 +135,8 @@ gl.issueBoards.IssueCardInner = Vue.extend({
},
template: `
<div>
<div class="card-header">
<h4 class="card-title">
<div class="board-card-header">
<h4 class="board-card-title">
<i
class="fa fa-eye-slash confidential-icon"
v-if="issue.confidential"
Loading
Loading
@@ -147,13 +147,13 @@ gl.issueBoards.IssueCardInner = Vue.extend({
:href="issue.path"
:title="issue.title">{{ issue.title }}</a>
<span
class="card-number"
class="board-card-number"
v-if="issueId"
>
{{ issue.referencePath }}
</span>
</h4>
<div class="card-assignee">
<div class="board-card-assignee">
<user-avatar-link
v-for="(assignee, index) in issue.assignees"
:key="assignee.id"
Loading
Loading
@@ -175,11 +175,11 @@ gl.issueBoards.IssueCardInner = Vue.extend({
</div>
</div>
<div
class="card-footer"
class="board-card-footer"
v-if="showLabelFooter"
>
<button
class="label color-label has-tooltip"
class="badge color-label has-tooltip"
v-for="label in issue.labels"
type="button"
v-if="showLabel(label)"
Loading
Loading
Loading
Loading
@@ -41,10 +41,10 @@ gl.issueBoards.ModalEmptyState = Vue.extend({
template: `
<section class="empty-state">
<div class="row">
<div class="col-xs-12 col-sm-6 col-sm-push-6">
<div class="col-xs-12 col-sm-6 order-sm-last">
<aside class="svg-content"><img :src="emptyStateSvg"/></aside>
</div>
<div class="col-xs-12 col-sm-6 col-sm-pull-6">
<div class="col-xs-12 col-sm-6 order-sm-first">
<div class="text-content">
<h4>{{ contents.title }}</h4>
<p v-html="contents.content"></p>
Loading
Loading
Loading
Loading
@@ -58,7 +58,7 @@ gl.issueBoards.ModalFooter = Vue.extend({
template: `
<footer
class="form-actions add-issues-footer">
<div class="pull-left">
<div class="float-left">
<button
class="btn btn-success"
type="button"
Loading
Loading
@@ -72,7 +72,7 @@ gl.issueBoards.ModalFooter = Vue.extend({
<lists-dropdown></lists-dropdown>
</div>
<button
class="btn btn-default pull-right"
class="btn btn-default float-right"
type="button"
@click="toggleModal(false)">
Cancel
Loading
Loading
Loading
Loading
@@ -133,9 +133,9 @@ gl.issueBoards.ModalList = Vue.extend({
<div
v-for="issue in group"
v-if="showIssue(issue)"
class="card-parent">
class="board-card-parent">
<div
class="card"
class="board-card"
:class="{ 'is-active': issue.selected }"
@click="toggleIssue($event, issue)">
<issue-card-inner
Loading
Loading
Loading
Loading
@@ -24,7 +24,7 @@ gl.issueBoards.ModalTabs = Vue.extend({
role="button"
@click.prevent="changeTab('all')">
Open issues
<span class="badge">
<span class="badge badge-pill">
{{ issuesCount }}
</span>
</a>
Loading
Loading
@@ -35,7 +35,7 @@ gl.issueBoards.ModalTabs = Vue.extend({
role="button"
@click.prevent="changeTab('selected')">
Selected issues
<span class="badge">
<span class="badge badge-pill">
{{ selectedCount }}
</span>
</a>
Loading
Loading
Loading
Loading
@@ -214,7 +214,7 @@ export default () => {
if (this.disabled) {
$tooltip.tooltip();
} else {
$tooltip.tooltip('destroy');
$tooltip.tooltip('dispose');
}
});
},
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