Commit 94743e0e authored by Filipa Lacerda's avatar Filipa Lacerda

Remove issuable form from global namespace

parent a665a354
/* eslint-disable comma-dangle, space-before-function-paren, no-new */ /* eslint-disable comma-dangle, space-before-function-paren, no-new */
import IssuableContext from '../../issuable_context';
/* global MilestoneSelect */ /* global MilestoneSelect */
/* global LabelsSelect */ /* global LabelsSelect */
/* global Sidebar */ /* global Sidebar */
...@@ -11,6 +10,7 @@ import AssigneeTitle from '../../sidebar/components/assignees/assignee_title'; ...@@ -11,6 +10,7 @@ import AssigneeTitle from '../../sidebar/components/assignees/assignee_title';
import Assignees from '../../sidebar/components/assignees/assignees'; import Assignees from '../../sidebar/components/assignees/assignees';
import DueDateSelectors from '../../due_date_select'; import DueDateSelectors from '../../due_date_select';
import './sidebar/remove_issue'; import './sidebar/remove_issue';
import IssuableContext from '../../issuable_context';
const Store = gl.issueBoards.BoardsStore; const Store = gl.issueBoards.BoardsStore;
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
/* global ProjectSelect */ /* global ProjectSelect */
import IssuableIndex from './issuable_index'; import IssuableIndex from './issuable_index';
/* global Milestone */ /* global Milestone */
/* global IssuableForm */ import IssuableForm from './issuable_form';
/* global LabelsSelect */ /* global LabelsSelect */
/* global MilestoneSelect */ /* global MilestoneSelect */
/* global NewBranchForm */ /* global NewBranchForm */
......
/* eslint-disable func-names, space-before-function-paren, no-var, prefer-rest-params, wrap-iife, no-use-before-define, no-useless-escape, no-new, quotes, object-shorthand, no-unused-vars, comma-dangle, no-alert, consistent-return, no-else-return, prefer-template, one-var, one-var-declaration-per-line, curly, max-len */ /* eslint-disable func-names, prefer-rest-params, wrap-iife, no-use-before-define, no-useless-escape, no-new, object-shorthand, no-unused-vars, comma-dangle, no-alert, consistent-return, no-else-return, prefer-template, one-var, one-var-declaration-per-line, curly, max-len */
/* global GitLab */ /* global GitLab */
/* global Autosave */ /* global Autosave */
...@@ -8,76 +8,76 @@ import GfmAutoComplete from './gfm_auto_complete'; ...@@ -8,76 +8,76 @@ import GfmAutoComplete from './gfm_auto_complete';
import ZenMode from './zen_mode'; import ZenMode from './zen_mode';
import { parsePikadayDate, pikadayToString } from './lib/utils/datefix'; import { parsePikadayDate, pikadayToString } from './lib/utils/datefix';
(function() { export default class IssuableForm {
this.IssuableForm = (function() { constructor(form) {
IssuableForm.prototype.wipRegex = /^\s*(\[WIP\]\s*|WIP:\s*|WIP\s+)+\s*/i;
function IssuableForm(form) {
var $issuableDueDate, calendar;
this.form = form; this.form = form;
this.toggleWip = this.toggleWip.bind(this); this.toggleWip = this.toggleWip.bind(this);
this.renderWipExplanation = this.renderWipExplanation.bind(this); this.renderWipExplanation = this.renderWipExplanation.bind(this);
this.resetAutosave = this.resetAutosave.bind(this); this.resetAutosave = this.resetAutosave.bind(this);
this.handleSubmit = this.handleSubmit.bind(this); this.handleSubmit = this.handleSubmit.bind(this);
this.wipRegex = /^\s*(\[WIP\]\s*|WIP:\s*|WIP\s+)+\s*/i;
new GfmAutoComplete(gl.GfmAutoComplete && gl.GfmAutoComplete.dataSources).setup(); new GfmAutoComplete(gl.GfmAutoComplete && gl.GfmAutoComplete.dataSources).setup();
new UsersSelect(); new UsersSelect();
new ZenMode(); new ZenMode();
this.titleField = this.form.find("input[name*='[title]']");
this.descriptionField = this.form.find("textarea[name*='[description]']"); this.titleField = this.form.find('input[name*="[title]"]');
this.descriptionField = this.form.find('textarea[name*="[description]"]');
if (!(this.titleField.length && this.descriptionField.length)) { if (!(this.titleField.length && this.descriptionField.length)) {
return; return;
} }
this.initAutosave(); this.initAutosave();
this.form.on("submit", this.handleSubmit); this.form.on('submit', this.handleSubmit);
this.form.on("click", ".btn-cancel", this.resetAutosave); this.form.on('click', '.btn-cancel', this.resetAutosave);
this.initWip(); this.initWip();
$issuableDueDate = $('#issuable-due-date');
const $issuableDueDate = $('#issuable-due-date');
if ($issuableDueDate.length) { if ($issuableDueDate.length) {
calendar = new Pikaday({ const calendar = new Pikaday({
field: $issuableDueDate.get(0), field: $issuableDueDate.get(0),
theme: 'gitlab-theme animate-picker', theme: 'gitlab-theme animate-picker',
format: 'yyyy-mm-dd', format: 'yyyy-mm-dd',
container: $issuableDueDate.parent().get(0), container: $issuableDueDate.parent().get(0),
parse: dateString => parsePikadayDate(dateString), parse: dateString => parsePikadayDate(dateString),
toString: date => pikadayToString(date), toString: date => pikadayToString(date),
onSelect: function(dateText) { onSelect: dateText => $issuableDueDate.val(calendar.toString(dateText)),
$issuableDueDate.val(calendar.toString(dateText));
}
}); });
calendar.setDate(parsePikadayDate($issuableDueDate.val())); calendar.setDate(parsePikadayDate($issuableDueDate.val()));
} }
} }
IssuableForm.prototype.initAutosave = function() { initAutosave() {
new Autosave(this.titleField, [document.location.pathname, document.location.search, "title"]); new Autosave(this.titleField, [document.location.pathname, document.location.search, 'title']);
return new Autosave(this.descriptionField, [document.location.pathname, document.location.search, "description"]); return new Autosave(this.descriptionField, [document.location.pathname, document.location.search, 'description']);
}; }
IssuableForm.prototype.handleSubmit = function() { handleSubmit() {
return this.resetAutosave(); return this.resetAutosave();
}; }
IssuableForm.prototype.resetAutosave = function() { resetAutosave() {
this.titleField.data("autosave").reset(); this.titleField.data('autosave').reset();
return this.descriptionField.data("autosave").reset(); return this.descriptionField.data('autosave').reset();
}; }
IssuableForm.prototype.initWip = function() { initWip() {
this.$wipExplanation = this.form.find(".js-wip-explanation"); this.$wipExplanation = this.form.find('.js-wip-explanation');
this.$noWipExplanation = this.form.find(".js-no-wip-explanation"); this.$noWipExplanation = this.form.find('.js-no-wip-explanation');
if (!(this.$wipExplanation.length && this.$noWipExplanation.length)) { if (!(this.$wipExplanation.length && this.$noWipExplanation.length)) {
return; return;
} }
this.form.on("click", ".js-toggle-wip", this.toggleWip); this.form.on('click', '.js-toggle-wip', this.toggleWip);
this.titleField.on("keyup blur", this.renderWipExplanation); this.titleField.on('keyup blur', this.renderWipExplanation);
return this.renderWipExplanation(); return this.renderWipExplanation();
}; }
IssuableForm.prototype.workInProgress = function() { workInProgress() {
return this.wipRegex.test(this.titleField.val()); return this.wipRegex.test(this.titleField.val());
}; }
IssuableForm.prototype.renderWipExplanation = function() { renderWipExplanation() {
if (this.workInProgress()) { if (this.workInProgress()) {
this.$wipExplanation.show(); this.$wipExplanation.show();
return this.$noWipExplanation.hide(); return this.$noWipExplanation.hide();
...@@ -85,9 +85,9 @@ import { parsePikadayDate, pikadayToString } from './lib/utils/datefix'; ...@@ -85,9 +85,9 @@ import { parsePikadayDate, pikadayToString } from './lib/utils/datefix';
this.$wipExplanation.hide(); this.$wipExplanation.hide();
return this.$noWipExplanation.show(); return this.$noWipExplanation.show();
} }
}; }
IssuableForm.prototype.toggleWip = function(event) { toggleWip(event) {
event.preventDefault(); event.preventDefault();
if (this.workInProgress()) { if (this.workInProgress()) {
this.removeWip(); this.removeWip();
...@@ -95,16 +95,13 @@ import { parsePikadayDate, pikadayToString } from './lib/utils/datefix'; ...@@ -95,16 +95,13 @@ import { parsePikadayDate, pikadayToString } from './lib/utils/datefix';
this.addWip(); this.addWip();
} }
return this.renderWipExplanation(); return this.renderWipExplanation();
}; }
IssuableForm.prototype.removeWip = function() {
return this.titleField.val(this.titleField.val().replace(this.wipRegex, ""));
};
IssuableForm.prototype.addWip = function() { removeWip() {
return this.titleField.val("WIP: " + (this.titleField.val())); return this.titleField.val(this.titleField.val().replace(this.wipRegex, ''));
}; }
return IssuableForm; addWip() {
})(); this.titleField.val(`WIP: ${(this.titleField.val())}`);
}).call(window); }
}
...@@ -6,7 +6,6 @@ import '~/gl_dropdown'; ...@@ -6,7 +6,6 @@ import '~/gl_dropdown';
import 'select2'; import 'select2';
import '~/api'; import '~/api';
import '~/create_label'; import '~/create_label';
import '~/issuable_context';
import '~/users_select'; import '~/users_select';
import '~/labels_select'; import '~/labels_select';
......
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