Commit 7e5eab83 authored by Rémy Coutable's avatar Rémy Coutable

Merge remote-tracking branch 'origin/master' into ce-to-ee-2017-05-17

Signed-off-by: default avatarRémy Coutable <remy@rymai.me>
parents 524fa33a 97f17efa
...@@ -27,6 +27,7 @@ ...@@ -27,6 +27,7 @@
}, },
"rules": { "rules": {
"filenames/match-regex": [2, "^[a-z0-9_]+$"], "filenames/match-regex": [2, "^[a-z0-9_]+$"],
"import/no-commonjs": "error",
"no-multiple-empty-lines": ["error", { "max": 1 }], "no-multiple-empty-lines": ["error", { "max": 1 }],
"promise/catch-or-return": "error" "promise/catch-or-return": "error"
} }
......
Please view this file on the master branch, on stable branches it's out of date. Please view this file on the master branch, on stable branches it's out of date.
## 9.2.0 (2017-05-22)
- Stop using sidekiq cron for push mirrors. !1616
- Inline RSS button with Export Issues button for mobile. !1637
- Highlight Contribution Analytics tab under groups when active, remove sub-nav items. !1677
- Uses etag polling for deployboards. !1713
- Support more elasticsearch versions. !1716
- Support advanced search queries using elasticsearch. !1770
- Remove superfluous wording on push rules. !1811
- Geo - Fix signing out from secondary node when "Remember me" option is checked. !1903
- Add global wiki search using Elasticsearch.
- Remove warning about protecting Service Desk email from form.
- Geo: Resync repositories that have been updated recently.
- Respect project features when searching alternative branches with elasticsearch enabled.
- Backfill projects where the last attempt to backfill failed.
- Fix MR approvals sentence when all approvers need to approve the MR.
- Fix for XSS in project mirror errors caused by Hamlit filter usage.
- Feature availability check using feature list AND license addons.
- Disable mirror workers for Geo secondaries.
## 9.1.4 (2017-05-12) ## 9.1.4 (2017-05-12)
- Remove warning about protecting Service Desk email from form. - Remove warning about protecting Service Desk email from form.
......
This diff is collapsed.
...@@ -6,27 +6,27 @@ import Vue from 'vue'; ...@@ -6,27 +6,27 @@ import Vue from 'vue';
import VueResource from 'vue-resource'; import VueResource from 'vue-resource';
import FilteredSearchBoards from './filtered_search_boards'; import FilteredSearchBoards from './filtered_search_boards';
import eventHub from './eventhub'; import eventHub from './eventhub';
import './models/issue';
import './models/label';
import './models/list';
import './models/milestone';
import './models/assignee';
import './stores/boards_store';
import './stores/modal_store';
import './services/board_service';
import './mixins/modal_mixins';
import './mixins/sortable_default_options';
import './filters/due_date_filters';
import './components/board';
import './components/board_sidebar';
import './components/new_list_dropdown';
import './components/modal/index';
import '../vue_shared/vue_resource_interceptor';
import './components/boards_selector';
import collapseIcon from './icons/fullscreen_collapse.svg'; import collapseIcon from './icons/fullscreen_collapse.svg';
import expandIcon from './icons/fullscreen_expand.svg'; import expandIcon from './icons/fullscreen_expand.svg';
require('./models/issue');
require('./models/label');
require('./models/list');
require('./models/milestone');
require('./models/assignee');
require('./stores/boards_store');
require('./stores/modal_store');
require('./services/board_service');
require('./mixins/modal_mixins');
require('./mixins/sortable_default_options');
require('./filters/due_date_filters');
require('./components/board');
require('./components/boards_selector');
require('./components/board_sidebar');
require('./components/new_list_dropdown');
require('./components/modal/index');
require('../vue_shared/vue_resource_interceptor');
Vue.use(VueResource); Vue.use(VueResource);
$(() => { $(() => {
......
...@@ -3,9 +3,7 @@ ...@@ -3,9 +3,7 @@
import Vue from 'vue'; import Vue from 'vue';
import boardList from './board_list'; import boardList from './board_list';
import boardBlankState from './board_blank_state'; import boardBlankState from './board_blank_state';
import './board_delete';
require('./board_delete');
require('./board_list');
const Store = gl.issueBoards.BoardsStore; const Store = gl.issueBoards.BoardsStore;
......
require('./issue_card_inner'); import './issue_card_inner';
const Store = gl.issueBoards.BoardsStore; const Store = gl.issueBoards.BoardsStore;
......
/* global BoardService */ /* global BoardService */
import Vue from 'vue'; import Vue from 'vue';
import boardMilestoneSelect from './milestone_select';
const boardMilestoneSelect = require('./milestone_select'); import extraMilestones from '../mixins/extra_milestones';
const extraMilestones = require('../mixins/extra_milestones');
(() => { (() => {
window.gl = window.gl || {}; window.gl = window.gl || {};
......
...@@ -7,11 +7,9 @@ ...@@ -7,11 +7,9 @@
import Vue from 'vue'; import Vue from 'vue';
import eventHub from '../../sidebar/event_hub'; import eventHub from '../../sidebar/event_hub';
import AssigneeTitle from '../../sidebar/components/assignees/assignee_title'; import AssigneeTitle from '../../sidebar/components/assignees/assignee_title';
import Assignees from '../../sidebar/components/assignees/assignees'; import Assignees from '../../sidebar/components/assignees/assignees';
import './sidebar/remove_issue';
require('./sidebar/remove_issue');
const Store = gl.issueBoards.BoardsStore; const Store = gl.issueBoards.BoardsStore;
......
import Vue from 'vue'; import Vue from 'vue';
import './board_new_form';
require('./board_new_form');
(() => { (() => {
window.gl = window.gl || {}; window.gl = window.gl || {};
......
/* global BoardService */ /* global BoardService */
const extraMilestones = require('../mixins/extra_milestones'); import extraMilestones from '../mixins/extra_milestones';
module.exports = { export default {
props: { props: {
board: { board: {
type: Object, type: Object,
......
...@@ -2,8 +2,7 @@ ...@@ -2,8 +2,7 @@
/* global Flash */ /* global Flash */
import Vue from 'vue'; import Vue from 'vue';
import './lists_dropdown';
require('./lists_dropdown');
const ModalStore = gl.issueBoards.ModalStore; const ModalStore = gl.issueBoards.ModalStore;
......
import Vue from 'vue'; import Vue from 'vue';
import modalFilters from './filters'; import modalFilters from './filters';
import './tabs';
require('./tabs');
const ModalStore = gl.issueBoards.ModalStore; const ModalStore = gl.issueBoards.ModalStore;
......
...@@ -2,12 +2,19 @@ ...@@ -2,12 +2,19 @@
import Vue from 'vue'; import Vue from 'vue';
import queryData from '../../utils/query_data'; import queryData from '../../utils/query_data';
<<<<<<< HEAD
import loadingIcon from '../../../vue_shared/components/loading_icon.vue'; import loadingIcon from '../../../vue_shared/components/loading_icon.vue';
require('./header'); require('./header');
require('./list'); require('./list');
require('./footer'); require('./footer');
require('./empty_state'); require('./empty_state');
=======
import './header';
import './list';
import './footer';
import './empty_state';
>>>>>>> origin/master
const ModalStore = gl.issueBoards.ModalStore; const ModalStore = gl.issueBoards.ModalStore;
......
module.exports = [ export default [
{ {
id: null, id: null,
title: 'Any Milestone', title: 'Any Milestone',
......
/* eslint-disable class-methods-use-this, object-shorthand, no-unused-vars, no-use-before-define, no-new, max-len, no-restricted-syntax, guard-for-in, no-continue */ /* eslint-disable class-methods-use-this, object-shorthand, no-unused-vars, no-use-before-define, no-new, max-len, no-restricted-syntax, guard-for-in, no-continue */
require('./lib/utils/common_utils'); import './lib/utils/common_utils';
const gfmRules = { const gfmRules = {
// The filters referenced in lib/banzai/pipeline/gfm_pipeline.rb convert // The filters referenced in lib/banzai/pipeline/gfm_pipeline.rb convert
......
...@@ -4,18 +4,16 @@ import Vue from 'vue'; ...@@ -4,18 +4,16 @@ import Vue from 'vue';
import Cookies from 'js-cookie'; import Cookies from 'js-cookie';
import Translate from '../vue_shared/translate'; import Translate from '../vue_shared/translate';
import LimitWarningComponent from './components/limit_warning_component'; import LimitWarningComponent from './components/limit_warning_component';
import './components/stage_code_component';
require('./components/stage_code_component'); import './components/stage_issue_component';
require('./components/stage_issue_component'); import './components/stage_plan_component';
require('./components/stage_plan_component'); import './components/stage_production_component';
require('./components/stage_production_component'); import './components/stage_review_component';
require('./components/stage_review_component'); import './components/stage_staging_component';
require('./components/stage_staging_component'); import './components/stage_test_component';
require('./components/stage_test_component'); import './components/total_time_component';
require('./components/total_time_component'); import './cycle_analytics_service';
require('./cycle_analytics_service'); import './cycle_analytics_store';
require('./cycle_analytics_store');
require('./default_event_objects');
Vue.use(Translate); Vue.use(Translate);
......
/* eslint-disable no-param-reassign */ /* eslint-disable no-param-reassign */
import { __ } from '../locale';
require('../lib/utils/text_utility'); import { __ } from '../locale';
const DEFAULT_EVENT_OBJECTS = require('./default_event_objects'); import '../lib/utils/text_utility';
import DEFAULT_EVENT_OBJECTS from './default_event_objects';
const global = window.gl || (window.gl = {}); const global = window.gl || (window.gl = {});
global.cycleAnalytics = global.cycleAnalytics || {}; global.cycleAnalytics = global.cycleAnalytics || {};
......
module.exports = { export default {
issue: { issue: {
created_at: '', created_at: '',
url: '', url: '',
......
/* eslint-disable class-methods-use-this */ /* eslint-disable class-methods-use-this */
require('./lib/utils/url_utility'); import './lib/utils/url_utility';
const UNFOLD_COUNT = 20; const UNFOLD_COUNT = 20;
let isBound = false; let isBound = false;
......
...@@ -3,19 +3,18 @@ ...@@ -3,19 +3,18 @@
/* global ResolveServiceClass */ /* global ResolveServiceClass */
import Vue from 'vue'; import Vue from 'vue';
import './models/discussion';
require('./models/discussion'); import './models/note';
require('./models/note'); import './stores/comments';
require('./stores/comments'); import './services/resolve';
require('./services/resolve'); import './mixins/discussion';
require('./mixins/discussion'); import './components/comment_resolve_btn';
require('./components/comment_resolve_btn'); import './components/jump_to_discussion';
require('./components/jump_to_discussion'); import './components/resolve_btn';
require('./components/resolve_btn'); import './components/resolve_count';
require('./components/resolve_count'); import './components/resolve_discussion_btn';
require('./components/resolve_discussion_btn'); import './components/diff_note_avatars';
require('./components/diff_note_avatars'); import './components/new_issue_for_discussion';
require('./components/new_issue_for_discussion');
$(() => { $(() => {
const projectPath = document.querySelector('.merge-request').dataset.projectPath; const projectPath = document.querySelector('.merge-request').dataset.projectPath;
......
...@@ -3,11 +3,7 @@ ...@@ -3,11 +3,7 @@
/* global CommentsStore */ /* global CommentsStore */
import Vue from 'vue'; import Vue from 'vue';
import VueResource from 'vue-resource'; import '../../vue_shared/vue_resource_interceptor';
require('../../vue_shared/vue_resource_interceptor');
Vue.use(VueResource);
window.gl = window.gl || {}; window.gl = window.gl || {};
......
...@@ -36,14 +36,12 @@ ...@@ -36,14 +36,12 @@
/* global ShortcutsWiki */ /* global ShortcutsWiki */
import Issue from './issue'; import Issue from './issue';
import BindInOut from './behaviors/bind_in_out'; import BindInOut from './behaviors/bind_in_out';
import DeleteModal from './branches/branches_delete_modal'; import DeleteModal from './branches/branches_delete_modal';
import Group from './group'; import Group from './group';
import GroupName from './group_name'; import GroupName from './group_name';
import GroupsList from './groups_list'; import GroupsList from './groups_list';
import ProjectsList from './projects_list'; import ProjectsList from './projects_list';
import ApproversSelect from './approvers_select';
import MiniPipelineGraph from './mini_pipeline_graph_dropdown'; import MiniPipelineGraph from './mini_pipeline_graph_dropdown';
import BlobLinePermalinkUpdater from './blob/blob_line_permalink_updater'; import BlobLinePermalinkUpdater from './blob/blob_line_permalink_updater';
import Landing from './landing'; import Landing from './landing';
...@@ -59,8 +57,10 @@ import AutoWidthDropdownSelect from './issuable/auto_width_dropdown_select'; ...@@ -59,8 +57,10 @@ import AutoWidthDropdownSelect from './issuable/auto_width_dropdown_select';
import UsersSelect from './users_select'; import UsersSelect from './users_select';
import RefSelectDropdown from './ref_select_dropdown'; import RefSelectDropdown from './ref_select_dropdown';
import GfmAutoComplete from './gfm_auto_complete'; import GfmAutoComplete from './gfm_auto_complete';
import ShortcutsBlob from './shortcuts_blob';
const ShortcutsBlob = require('./shortcuts_blob'); // EE-only
import ApproversSelect from './approvers_select';
(function() { (function() {
var Dispatcher; var Dispatcher;
......
/* eslint-disable func-names, space-before-function-paren, wrap-iife, max-len, one-var, no-var, one-var-declaration-per-line, no-unused-vars, camelcase, quotes, no-useless-concat, prefer-template, quote-props, comma-dangle, object-shorthand, consistent-return, prefer-arrow-callback */ /* eslint-disable func-names, space-before-function-paren, wrap-iife, max-len, one-var, no-var, one-var-declaration-per-line, no-unused-vars, camelcase, quotes, no-useless-concat, prefer-template, quote-props, comma-dangle, object-shorthand, consistent-return, prefer-arrow-callback */
/* global Dropzone */ /* global Dropzone */
require('./preview_markdown'); import './preview_markdown';
window.DropzoneInput = (function() { window.DropzoneInput = (function() {
function DropzoneInput(form) { function DropzoneInput(form) {
......
import Filter from '~/droplab/plugins/filter'; import Filter from '~/droplab/plugins/filter';
import './filtered_search_dropdown';
require('./filtered_search_dropdown');
class DropdownHint extends gl.FilteredSearchDropdown { class DropdownHint extends gl.FilteredSearchDropdown {
constructor(droplab, dropdown, input, filter) { constructor(droplab, dropdown, input, filter) {
......
...@@ -2,8 +2,7 @@ ...@@ -2,8 +2,7 @@
import Ajax from '~/droplab/plugins/ajax'; import Ajax from '~/droplab/plugins/ajax';
import Filter from '~/droplab/plugins/filter'; import Filter from '~/droplab/plugins/filter';
import './filtered_search_dropdown';
require('./filtered_search_dropdown');
class DropdownNonUser extends gl.FilteredSearchDropdown { class DropdownNonUser extends gl.FilteredSearchDropdown {
constructor(droplab, dropdown, input, filter, endpoint, symbol) { constructor(droplab, dropdown, input, filter, endpoint, symbol) {
......
/* global Flash */ /* global Flash */
import AjaxFilter from '~/droplab/plugins/ajax_filter'; import AjaxFilter from '~/droplab/plugins/ajax_filter';
import './filtered_search_dropdown';
require('./filtered_search_dropdown');
class DropdownUser extends gl.FilteredSearchDropdown { class DropdownUser extends gl.FilteredSearchDropdown {
constructor(droplab, dropdown, input, filter) { constructor(droplab, dropdown, input, filter) {
......
require('./dropdown_hint'); import './dropdown_hint';
require('./dropdown_non_user'); import './dropdown_non_user';
require('./dropdown_user'); import './dropdown_user';
require('./dropdown_utils'); import './dropdown_utils';
require('./filtered_search_dropdown_manager'); import './filtered_search_dropdown_manager';
require('./filtered_search_dropdown'); import './filtered_search_dropdown';
require('./filtered_search_manager'); import './filtered_search_manager';
require('./filtered_search_token_keys'); import './filtered_search_token_keys';
require('./filtered_search_tokenizer'); import './filtered_search_tokenizer';
require('./filtered_search_visual_tokens'); import './filtered_search_visual_tokens';
require('./filtered_search_token_keys_with_weights'); // EE-only
import './filtered_search_token_keys_with_weights';
require('./filtered_search_token_keys'); import './filtered_search_token_keys';
const weightTokenKey = { const weightTokenKey = {
key: 'weight', key: 'weight',
......
require('./filtered_search_token_keys'); import './filtered_search_token_keys';
class FilteredSearchTokenizer { class FilteredSearchTokenizer {
static processTokens(input) { static processTokens(input) {
......
/* eslint-disable comma-dangle, class-methods-use-this, max-len, space-before-function-paren, arrow-parens, no-param-reassign */ /* eslint-disable comma-dangle, class-methods-use-this, max-len, space-before-function-paren, arrow-parens, no-param-reassign */
require('./gl_field_error'); import './gl_field_error';
const customValidationFlag = 'gl-field-error-ignore'; const customValidationFlag = 'gl-field-error-ignore';
......
/* eslint-disable func-names, space-before-function-paren, no-var, prefer-rest-params, wrap-iife, one-var, no-underscore-dangle, one-var-declaration-per-line, object-shorthand, no-unused-vars, no-new, comma-dangle, consistent-return, quotes, dot-notation, quote-props, prefer-arrow-callback, max-len */ /* eslint-disable func-names, space-before-function-paren, no-var, prefer-rest-params, wrap-iife, one-var, no-underscore-dangle, one-var-declaration-per-line, object-shorthand, no-unused-vars, no-new, comma-dangle, consistent-return, quotes, dot-notation, quote-props, prefer-arrow-callback, max-len */
/* global Flash */ /* global Flash */
import CreateMergeRequestDropdown from './create_merge_request_dropdown';
require('./flash'); import 'vendor/jquery.waitforimages';
require('~/lib/utils/text_utility'); import '~/lib/utils/text_utility';
require('vendor/jquery.waitforimages'); import './flash';
require('./task_list'); import './task_list';
import CreateMergeRequestDropdown from './create_merge_request_dropdown';
class Issue { class Issue {
constructor() { constructor() {
......
require('./export_csv_modal'); import './export_csv_modal';
/* eslint-disable func-names, space-before-function-paren, wrap-iife, no-var, no-param-reassign, no-cond-assign, comma-dangle, no-unused-expressions, prefer-template, max-len */ /* eslint-disable func-names, space-before-function-paren, wrap-iife, no-var, no-param-reassign, no-cond-assign, comma-dangle, no-unused-expressions, prefer-template, max-len */
/* global timeago */
/* global dateFormat */
window.timeago = require('timeago.js'); import timeago from 'timeago.js';
window.dateFormat = require('vendor/date.format'); import dateFormat from 'vendor/date.format';
window.timeago = timeago;
window.dateFormat = dateFormat;
(function() { (function() {
(function(w) { (function(w) {
...@@ -101,8 +102,7 @@ window.dateFormat = require('vendor/date.format'); ...@@ -101,8 +102,7 @@ window.dateFormat = require('vendor/date.format');
}; };
w.gl.utils.updateTimeagoText = function(el) { w.gl.utils.updateTimeagoText = function(el) {
const timeago = gl.utils.getTimeago(); const formattedDate = gl.utils.getTimeago().format(el.getAttribute('datetime'), 'gl_en');
const formattedDate = timeago.format(el.getAttribute('datetime'), 'gl_en');
if (el.textContent !== formattedDate) { if (el.textContent !== formattedDate) {
el.textContent = formattedDate; el.textContent = formattedDate;
......
...@@ -2,9 +2,7 @@ ...@@ -2,9 +2,7 @@
* exports HTTP status codes * exports HTTP status codes
*/ */
const statusCodes = { export default {
NO_CONTENT: 204, NO_CONTENT: 204,
OK: 200, OK: 200,
}; };
module.exports = statusCodes;
/* eslint-disable func-names, space-before-function-paren, wrap-iife, no-var, no-param-reassign, no-cond-assign, quotes, one-var, one-var-declaration-per-line, operator-assignment, no-else-return, prefer-template, prefer-arrow-callback, no-empty, max-len, consistent-return, no-unused-vars, no-return-assign, max-len, vars-on-top */ /* eslint-disable func-names, space-before-function-paren, wrap-iife, no-var, no-param-reassign, no-cond-assign, quotes, one-var, one-var-declaration-per-line, operator-assignment, no-else-return, prefer-template, prefer-arrow-callback, no-empty, max-len, consistent-return, no-unused-vars, no-return-assign, max-len, vars-on-top */
require('vendor/latinise');
import 'vendor/latinise';
var base; var base;
var w = window; var w = window;
......
...@@ -4,8 +4,6 @@ ...@@ -4,8 +4,6 @@
// //
// Handles single- and multi-line selection and highlight for blob views. // Handles single- and multi-line selection and highlight for blob views.
// //
require('vendor/jquery.scrollTo');
// //
// ### Example Markup // ### Example Markup
// //
......
...@@ -178,7 +178,7 @@ import './ldap_groups_select'; ...@@ -178,7 +178,7 @@ import './ldap_groups_select';
import './path_locks'; import './path_locks';
import './weight_select'; import './weight_select';
// eslint-disable-next-line global-require // eslint-disable-next-line global-require, import/no-commonjs
if (process.env.NODE_ENV !== 'production') require('./test_utils/'); if (process.env.NODE_ENV !== 'production') require('./test_utils/');
document.addEventListener('beforeunload', function () { document.addEventListener('beforeunload', function () {
......
...@@ -2,14 +2,13 @@ ...@@ -2,14 +2,13 @@
/* global Flash */ /* global Flash */
import Vue from 'vue'; import Vue from 'vue';
import './merge_conflict_store';
require('./merge_conflict_store'); import './merge_conflict_service';
require('./merge_conflict_service'); import './mixins/line_conflict_utils';
require('./mixins/line_conflict_utils'); import './mixins/line_conflict_actions';
require('./mixins/line_conflict_actions'); import './components/diff_file_editor';
require('./components/diff_file_editor'); import './components/inline_conflict_lines';
require('./components/inline_conflict_lines'); import './components/parallel_conflict_lines';
require('./components/parallel_conflict_lines');
$(() => { $(() => {
const INTERACTIVE_RESOLVE_MODE = 'interactive'; const INTERACTIVE_RESOLVE_MODE = 'interactive';
......
/* eslint-disable func-names, space-before-function-paren, no-var, prefer-rest-params, wrap-iife, quotes, no-underscore-dangle, one-var, one-var-declaration-per-line, consistent-return, dot-notation, quote-props, comma-dangle, object-shorthand, max-len, prefer-arrow-callback */ /* eslint-disable func-names, space-before-function-paren, no-var, prefer-rest-params, wrap-iife, quotes, no-underscore-dangle, one-var, one-var-declaration-per-line, consistent-return, dot-notation, quote-props, comma-dangle, object-shorthand, max-len, prefer-arrow-callback */
/* global MergeRequestTabs */ /* global MergeRequestTabs */
require('vendor/jquery.waitforimages'); import 'vendor/jquery.waitforimages';
require('./task_list'); import './task_list';
require('./merge_request_tabs'); import './merge_request_tabs';
(function() { (function() {
this.MergeRequest = (function() { this.MergeRequest = (function() {
......
...@@ -6,15 +6,17 @@ ...@@ -6,15 +6,17 @@
import $ from 'jquery'; import $ from 'jquery';
import Cookies from 'js-cookie'; import Cookies from 'js-cookie';
import autosize from 'vendor/autosize';
import Dropzone from 'dropzone';
import 'vendor/jquery.caret'; // required by jquery.atwho
import 'vendor/jquery.atwho';
import CommentTypeToggle from './comment_type_toggle'; import CommentTypeToggle from './comment_type_toggle';
import './autosave';
import './dropzone_input';
import './task_list';
require('./autosave'); window.autosize = autosize;
window.autosize = require('vendor/autosize'); window.Dropzone = Dropzone;
window.Dropzone = require('dropzone');
require('./dropzone_input');
require('vendor/jquery.caret'); // required by jquery.atwho
require('vendor/jquery.atwho');
require('./task_list');
const normalizeNewlines = function(str) { const normalizeNewlines = function(str) {
return str.replace(/\r\n/g, '\n'); return str.replace(/\r\n/g, '\n');
......
require('~/lib/utils/common_utils'); import '~/lib/utils/common_utils';
require('~/lib/utils/url_utility'); import '~/lib/utils/url_utility';
(() => { (() => {
const ENDLESS_SCROLL_BOTTOM_PX = 400; const ENDLESS_SCROLL_BOTTOM_PX = 400;
......
require('./gl_crop'); import './gl_crop';
require('./profile'); import './profile';
require('./protected_branch_access_dropdown'); import './protected_branch_access_dropdown';
require('./protected_branch_create'); import './protected_branch_create';
require('./protected_branch_dropdown'); import './protected_branch_dropdown';
require('./protected_branch_edit'); import './protected_branch_edit';
require('./protected_branch_edit_list'); import './protected_branch_edit_list';
/* global Mousetrap */ /* global Mousetrap */
/* global Shortcuts */ /* global Shortcuts */
require('./shortcuts'); import './shortcuts';
const defaults = { const defaults = {
skipResetBindings: false, skipResetBindings: false,
fileBlobPermalinkUrl: null, fileBlobPermalinkUrl: null,
}; };
class ShortcutsBlob extends Shortcuts { export default class ShortcutsBlob extends Shortcuts {
constructor(opts) { constructor(opts) {
const options = Object.assign({}, defaults, opts); const options = Object.assign({}, defaults, opts);
super(options.skipResetBindings); super(options.skipResetBindings);
...@@ -25,5 +25,3 @@ class ShortcutsBlob extends Shortcuts { ...@@ -25,5 +25,3 @@ class ShortcutsBlob extends Shortcuts {
} }
} }
} }
module.exports = ShortcutsBlob;
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
/* global Mousetrap */ /* global Mousetrap */
/* global ShortcutsNavigation */ /* global ShortcutsNavigation */
require('./shortcuts_navigation'); import './shortcuts_navigation';
(function() { (function() {
var extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, var extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
......
...@@ -3,8 +3,8 @@ ...@@ -3,8 +3,8 @@
/* global ShortcutsNavigation */ /* global ShortcutsNavigation */
/* global sidebar */ /* global sidebar */
require('mousetrap'); import 'mousetrap';
require('./shortcuts_navigation'); import './shortcuts_navigation';
(function() { (function() {
var extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, var extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
......
/* eslint-disable func-names, space-before-function-paren, max-len, no-var, one-var, no-restricted-syntax, vars-on-top, no-use-before-define, no-param-reassign, new-cap, no-underscore-dangle, wrap-iife, prefer-arrow-callback, consistent-return, no-return-assign */ /* eslint-disable func-names, space-before-function-paren, max-len, no-var, one-var, no-restricted-syntax, vars-on-top, no-use-before-define, no-param-reassign, new-cap, no-underscore-dangle, wrap-iife, prefer-arrow-callback, consistent-return, no-return-assign */
/* global Mousetrap */ /* global Mousetrap */
/* global Shortcuts */ /* global Shortcuts */
import findAndFollowLink from './shortcuts_dashboard_navigation';
require('./shortcuts'); import findAndFollowLink from './shortcuts_dashboard_navigation';
import './shortcuts';
(function() { (function() {
var extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, var extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
/* global Mousetrap */ /* global Mousetrap */
/* global ShortcutsNavigation */ /* global ShortcutsNavigation */
require('./shortcuts_navigation'); import './shortcuts_navigation';
(function() { (function() {
var extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, var extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
......
/* global Flash */ /* global Flash */
require('vendor/task_list');
import 'vendor/task_list';
class TaskList { class TaskList {
constructor(options = {}) { constructor(options = {}) {
......
require('vendor/xterm/encoding-indexes.js'); import 'vendor/xterm/encoding-indexes';
require('vendor/xterm/encoding.js'); import 'vendor/xterm/encoding';
window.Terminal = require('vendor/xterm/xterm.js'); import Terminal from 'vendor/xterm/xterm';
require('vendor/xterm/fit.js'); import 'vendor/xterm/fit';
require('./terminal.js'); import './terminal';
window.Terminal = Terminal;
$(() => new gl.Terminal({ selector: '#terminal' })); $(() => new gl.Terminal({ selector: '#terminal' }));
class VersionCheckImage { export default class VersionCheckImage {
static bindErrorEvent(imageElement) { static bindErrorEvent(imageElement) {
imageElement.off('error').on('error', () => imageElement.hide()); imageElement.off('error').on('error', () => imageElement.hide());
} }
...@@ -6,5 +6,3 @@ class VersionCheckImage { ...@@ -6,5 +6,3 @@ class VersionCheckImage {
window.gl = window.gl || {}; window.gl = window.gl || {};
gl.VersionCheckImage = VersionCheckImage; gl.VersionCheckImage = VersionCheckImage;
module.exports = VersionCheckImage;
require('../../lib/utils/text_utility'); import '../../lib/utils/text_utility';
export default { export default {
name: 'MRWidgetHeader', name: 'MRWidgetHeader',
......
/* eslint-disable no-param-reassign */ /* eslint-disable no-param-reassign */
/* global Breakpoints */ /* global Breakpoints */
require('./breakpoints'); import 'vendor/jquery.nicescroll';
require('vendor/jquery.nicescroll'); import './breakpoints';
((global) => { ((global) => {
class Wikis { class Wikis {
......
/* eslint-disable func-names, space-before-function-paren, wrap-iife, prefer-arrow-callback, no-unused-vars, consistent-return, camelcase, comma-dangle, max-len */ /* eslint-disable func-names, space-before-function-paren, wrap-iife, prefer-arrow-callback, no-unused-vars, consistent-return, camelcase, comma-dangle, max-len */
/* global Dropzone */
/* global Mousetrap */ /* global Mousetrap */
// Zen Mode (full screen) textarea // Zen Mode (full screen) textarea
...@@ -7,10 +6,12 @@ ...@@ -7,10 +6,12 @@
/*= provides zen_mode:enter */ /*= provides zen_mode:enter */
/*= provides zen_mode:leave */ /*= provides zen_mode:leave */
require('vendor/jquery.scrollTo'); import 'vendor/jquery.scrollTo';
window.Dropzone = require('dropzone'); import Dropzone from 'dropzone';
require('mousetrap'); import 'mousetrap';
require('mousetrap/plugins/pause/mousetrap-pause'); import 'mousetrap/plugins/pause/mousetrap-pause';
window.Dropzone = Dropzone;
// //
// ### Events // ### Events
......
...@@ -147,7 +147,7 @@ module Elastic ...@@ -147,7 +147,7 @@ module Elastic
query_hash query_hash
end end
def iid_query_hash(query_hash, iid) def iid_query_hash(iid)
{ {
query: { query: {
bool: { bool: {
......
...@@ -49,7 +49,7 @@ module Elastic ...@@ -49,7 +49,7 @@ module Elastic
def self.elastic_search(query, options: {}) def self.elastic_search(query, options: {})
query_hash = query_hash =
if query =~ /#(\d+)\z/ if query =~ /#(\d+)\z/
iid_query_hash(query_hash, $1) iid_query_hash($1)
else else
basic_query_hash(%w(title^2 description), query) basic_query_hash(%w(title^2 description), query)
end end
......
...@@ -61,8 +61,8 @@ module Elastic ...@@ -61,8 +61,8 @@ module Elastic
def self.elastic_search(query, options: {}) def self.elastic_search(query, options: {})
query_hash = query_hash =
if query =~ /#(\d+)\z/ if query =~ /\!(\d+)\z/
iid_query_hash(query_hash, $1) iid_query_hash($1)
else else
basic_query_hash(%w(title^2 description), query) basic_query_hash(%w(title^2 description), query)
end end
......
...@@ -15,5 +15,5 @@ ...@@ -15,5 +15,5 @@
= button_tag "Search", class: "btn btn-success btn-search" = button_tag "Search", class: "btn btn-success btn-search"
- if current_application_settings.elasticsearch_search? - if current_application_settings.elasticsearch_search?
.help-block .help-block
= link_to 'Advanced search functionality', help_page_path('user/search/advanced-search-syntax.md'), target: '_blank' = link_to 'Advanced search functionality', help_page_path('user/search/advanced_search_syntax.md'), target: '_blank'
is enabled. is enabled.
---
title: Support advanced search queries using elasticsearch
merge_request: 1770
author:
---
title: Add global wiki search using Elasticsearch
merge_request:
author:
---
title: Inline RSS button with Export Issues button for mobile
merge_request: 1637
author:
---
title: Highlight Contribution Analytics tab under groups when active, remove sub-nav
items.
merge_request: 1677
author:
---
title: Uses etag polling for deployboards
merge_request: 1713
author:
---
title: Support more elasticsearch versions
merge_request: 1716
author:
---
title: 'Geo: Resync repositories that have been updated recently'
merge_request:
author:
---
title: Geo - Fix signing out from secondary node when "Remember me" option is checked
merge_request: 1903
author:
---
title: Respect project features when searching alternative branches with elasticsearch
enabled
merge_request:
author:
---
title: Fix MR approvals sentence when all approvers need to approve the MR
merge_request:
author:
---
title: Fix for XSS in project mirror errors caused by Hamlit filter usage.
merge_request:
author:
---
title: Feature availability check using feature list AND license addons
merge_request:
author:
---
title: 'Remove superfluous wording on push rules'
merge_request: 1811
---
title: Disable mirror workers for Geo secondaries
merge_request:
author:
---
title: Stop using sidekiq cron for push mirrors
merge_request: 1616
author:
---
title: Support Markdown previews for personal snippets
merge_request: 10810
author:
---
title: Display comments for personal snippets
merge_request:
author:
---
title: Support comments for personal snippets
merge_request:
author:
---
title: Support uploaders for personal snippets comments
merge_request:
author:
---
title: Database SSL support for backup script.
merge_request: 9715
author: Guillaume Simon
---
title: Redirect old links after renaming a user/group/project.
merge_request: 10370
author:
---
title: Implement ability to edit hooks
merge_request: 10816
author: Alexander Randa
---
title: Change issues list in MR to natural sorting
merge_request: 7110
author: Jeff Stubler
---
title: Show group name on flash container when group is created from Admin area.
merge_request: 10905
author:
---
title: Update all instances of the old loading icon
merge_request: 10490
author: Andrew Torres
---
title: Fix UI inconsistency different files view (find file button missing)
merge_request: 9847
author: TM Lee
---
title: Add tooltips to user contribution graph key
merge_request: 11138
author:
---
title: Added build failures summary page for pipelines
merge_request: 10719
author:
---
title: Re-rewrites pipeline graph in vue to support realtime data updates
merge_request:
author:
---
title: Add animations to all the dropdowns
merge_request: 8419
author:
---
title: Add issues/:iid/closed_by api endpoint
merge_request:
author: mhasbini
---
title: Disallow merge requests from fork when source project have disabled merge requests
merge_request:
author: mhasbini
---
title: Add update time to project lists.
merge_request: 8514
author: Jeff Stubler
---
title: 'Remove view fragment caching for project READMEs'
merge_request: 8838
author:
---
title: Improved UX on project members settings view
merge_request:
author:
---
title: Fetch pipeline status in batch from redis
merge_request: 10785
author:
---
title: Add support for instantly updating comments
merge_request: 10760
author:
---
title: Clear emoji search in awards menu after picking emoji
merge_request:
author:
---
title: Add webpack_bundle_tag helper to improve non-localhost GDK configurations
merge_request: 10604
author:
---
title: Cleanup markdown spacing
merge_request:
author:
---
title: Separate CE params on Grape API
merge_request:
author:
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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