Remove modal store and mixins from global scope

上级 41ee09c9
import Vue from 'vue'; import Vue from 'vue';
import ModalStore from '../../stores/modal_store';
const ModalStore = gl.issueBoards.ModalStore; import modalMixin from '../../mixins/modal_mixins';
gl.issueBoards.ModalEmptyState = Vue.extend({ gl.issueBoards.ModalEmptyState = Vue.extend({
mixins: [gl.issueBoards.ModalMixins], mixins: [modalMixin],
data() { data() {
return ModalStore.store; return ModalStore.store;
}, },
......
...@@ -3,11 +3,11 @@ import Flash from '../../../flash'; ...@@ -3,11 +3,11 @@ import Flash from '../../../flash';
import { __ } from '../../../locale'; import { __ } from '../../../locale';
import './lists_dropdown'; import './lists_dropdown';
import { pluralize } from '../../../lib/utils/text_utility'; import { pluralize } from '../../../lib/utils/text_utility';
import ModalStore from '../../stores/modal_store';
const ModalStore = gl.issueBoards.ModalStore; import modalMixin from '../../mixins/modal_mixins';
gl.issueBoards.ModalFooter = Vue.extend({ gl.issueBoards.ModalFooter = Vue.extend({
mixins: [gl.issueBoards.ModalMixins], mixins: [modalMixin],
data() { data() {
return { return {
modal: ModalStore.store, modal: ModalStore.store,
......
import Vue from 'vue'; import Vue from 'vue';
import modalFilters from './filters'; import modalFilters from './filters';
import './tabs'; import './tabs';
import ModalStore from '../../stores/modal_store';
const ModalStore = gl.issueBoards.ModalStore; import modalMixin from '../../mixins/modal_mixins';
gl.issueBoards.ModalHeader = Vue.extend({ gl.issueBoards.ModalHeader = Vue.extend({
mixins: [gl.issueBoards.ModalMixins], mixins: [modalMixin],
props: { props: {
projectId: { projectId: {
type: Number, type: Number,
......
...@@ -7,8 +7,7 @@ import './header'; ...@@ -7,8 +7,7 @@ import './header';
import './list'; import './list';
import './footer'; import './footer';
import './empty_state'; import './empty_state';
import ModalStore from '../../stores/modal_store';
const ModalStore = gl.issueBoards.ModalStore;
gl.issueBoards.IssuesModal = Vue.extend({ gl.issueBoards.IssuesModal = Vue.extend({
props: { props: {
......
...@@ -2,8 +2,7 @@ ...@@ -2,8 +2,7 @@
import Vue from 'vue'; import Vue from 'vue';
import bp from '../../../breakpoints'; import bp from '../../../breakpoints';
import ModalStore from '../../stores/modal_store';
const ModalStore = gl.issueBoards.ModalStore;
gl.issueBoards.ModalList = Vue.extend({ gl.issueBoards.ModalList = Vue.extend({
props: { props: {
......
import Vue from 'vue'; import Vue from 'vue';
import ModalStore from '../../stores/modal_store';
const ModalStore = gl.issueBoards.ModalStore;
gl.issueBoards.ModalFooterListsDropdown = Vue.extend({ gl.issueBoards.ModalFooterListsDropdown = Vue.extend({
data() { data() {
......
import Vue from 'vue'; import Vue from 'vue';
import ModalStore from '../../stores/modal_store';
const ModalStore = gl.issueBoards.ModalStore; import modalMixin from '../../mixins/modal_mixins';
gl.issueBoards.ModalTabs = Vue.extend({ gl.issueBoards.ModalTabs = Vue.extend({
mixins: [gl.issueBoards.ModalMixins], mixins: [modalMixin],
data() { data() {
return ModalStore.store; return ModalStore.store;
}, },
......
...@@ -17,9 +17,9 @@ import './models/milestone'; ...@@ -17,9 +17,9 @@ import './models/milestone';
import './models/project'; import './models/project';
import './models/assignee'; import './models/assignee';
import './stores/boards_store'; import './stores/boards_store';
import './stores/modal_store'; import ModalStore from './stores/modal_store';
import BoardService from './services/board_service'; import BoardService from './services/board_service';
import './mixins/modal_mixins'; import modalMixin from './mixins/modal_mixins';
import './mixins/sortable_default_options'; import './mixins/sortable_default_options';
import './filters/due_date_filters'; import './filters/due_date_filters';
import './components/board'; import './components/board';
...@@ -31,7 +31,6 @@ import '~/vue_shared/vue_resource_interceptor'; // eslint-disable-line import/fi ...@@ -31,7 +31,6 @@ import '~/vue_shared/vue_resource_interceptor'; // eslint-disable-line import/fi
export default () => { export default () => {
const $boardApp = document.getElementById('board-app'); const $boardApp = document.getElementById('board-app');
const Store = gl.issueBoards.BoardsStore; const Store = gl.issueBoards.BoardsStore;
const ModalStore = gl.issueBoards.ModalStore;
window.gl = window.gl || {}; window.gl = window.gl || {};
...@@ -176,7 +175,7 @@ export default () => { ...@@ -176,7 +175,7 @@ export default () => {
gl.IssueBoardsModalAddBtn = new Vue({ gl.IssueBoardsModalAddBtn = new Vue({
el: document.getElementById('js-add-issues-btn'), el: document.getElementById('js-add-issues-btn'),
mixins: [gl.issueBoards.ModalMixins], mixins: [modalMixin],
data() { data() {
return { return {
modal: ModalStore.store, modal: ModalStore.store,
......
const ModalStore = gl.issueBoards.ModalStore; import ModalStore from '../stores/modal_store';
gl.issueBoards.ModalMixins = { export default {
methods: { methods: {
toggleModal(toggle) { toggleModal(toggle) {
ModalStore.store.showAddIssuesModal = toggle; ModalStore.store.showAddIssuesModal = toggle;
......
window.gl = window.gl || {};
window.gl.issueBoards = window.gl.issueBoards || {};
class ModalStore { class ModalStore {
constructor() { constructor() {
this.store = { this.store = {
...@@ -95,4 +92,4 @@ class ModalStore { ...@@ -95,4 +92,4 @@ class ModalStore {
} }
} }
gl.issueBoards.ModalStore = new ModalStore(); export default new ModalStore();
...@@ -10,6 +10,7 @@ import IssuableBulkUpdateActions from './issuable_bulk_update_actions'; ...@@ -10,6 +10,7 @@ import IssuableBulkUpdateActions from './issuable_bulk_update_actions';
import DropdownUtils from './filtered_search/dropdown_utils'; import DropdownUtils from './filtered_search/dropdown_utils';
import CreateLabelDropdown from './create_label'; import CreateLabelDropdown from './create_label';
import flash from './flash'; import flash from './flash';
import ModalStore from './boards/stores/modal_store';
export default class LabelsSelect { export default class LabelsSelect {
constructor(els, options = {}) { constructor(els, options = {}) {
...@@ -350,7 +351,7 @@ export default class LabelsSelect { ...@@ -350,7 +351,7 @@ export default class LabelsSelect {
} }
if ($dropdown.closest('.add-issues-modal').length) { if ($dropdown.closest('.add-issues-modal').length) {
boardsModel = gl.issueBoards.ModalStore.store.filter; boardsModel = ModalStore.store.filter;
} }
if (boardsModel) { if (boardsModel) {
......
...@@ -6,6 +6,7 @@ import $ from 'jquery'; ...@@ -6,6 +6,7 @@ import $ from 'jquery';
import _ from 'underscore'; import _ from 'underscore';
import axios from './lib/utils/axios_utils'; import axios from './lib/utils/axios_utils';
import { timeFor } from './lib/utils/datetime_utility'; import { timeFor } from './lib/utils/datetime_utility';
import ModalStore from './boards/stores/modal_store';
export default class MilestoneSelect { export default class MilestoneSelect {
constructor(currentProject, els, options = {}) { constructor(currentProject, els, options = {}) {
...@@ -164,7 +165,7 @@ export default class MilestoneSelect { ...@@ -164,7 +165,7 @@ export default class MilestoneSelect {
} }
if ($dropdown.closest('.add-issues-modal').length) { if ($dropdown.closest('.add-issues-modal').length) {
boardsStore = gl.issueBoards.ModalStore.store.filter; boardsStore = ModalStore.store.filter;
} }
if (boardsStore) { if (boardsStore) {
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
import $ from 'jquery'; import $ from 'jquery';
import _ from 'underscore'; import _ from 'underscore';
import axios from './lib/utils/axios_utils'; import axios from './lib/utils/axios_utils';
import ModalStore from './boards/stores/modal_store';
// TODO: remove eventHub hack after code splitting refactor // TODO: remove eventHub hack after code splitting refactor
window.emitSidebarEvent = window.emitSidebarEvent || $.noop; window.emitSidebarEvent = window.emitSidebarEvent || $.noop;
...@@ -441,7 +442,7 @@ function UsersSelect(currentUser, els, options = {}) { ...@@ -441,7 +442,7 @@ function UsersSelect(currentUser, els, options = {}) {
return; return;
} }
if ($el.closest('.add-issues-modal').length) { if ($el.closest('.add-issues-modal').length) {
gl.issueBoards.ModalStore.store.filter[$dropdown.data('fieldName')] = user.id; ModalStore.store.filter[$dropdown.data('fieldName')] = user.id;
} else if (handleClick) { } else if (handleClick) {
e.preventDefault(); e.preventDefault();
handleClick(user, isMarking); handleClick(user, isMarking);
......
---
title: Removes modal boards store and mixins from global scope
merge_request:
author:
type: other
...@@ -4,12 +4,11 @@ import '~/vue_shared/models/label'; ...@@ -4,12 +4,11 @@ import '~/vue_shared/models/label';
import '~/boards/models/issue'; import '~/boards/models/issue';
import '~/boards/models/list'; import '~/boards/models/list';
import '~/boards/models/assignee'; import '~/boards/models/assignee';
import '~/boards/stores/modal_store'; import Store from '~/boards/stores/modal_store';
describe('Modal store', () => { describe('Modal store', () => {
let issue; let issue;
let issue2; let issue2;
const Store = gl.issueBoards.ModalStore;
beforeEach(() => { beforeEach(() => {
// Setup default state // Setup default state
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册