Fixes autosave not enabling comment button when it is restored.

Adds back missing CSS class that was breaking tests
This commit is contained in:
Filipa Lacerda 2017-08-13 12:02:31 +01:00
parent c9ac28faaa
commit fdfab012f0
5 changed files with 20 additions and 17 deletions

View file

@ -2,17 +2,17 @@
import AccessorUtilities from './lib/utils/accessor';
window.Autosave = (function() {
function Autosave(field, key) {
function Autosave(field, key, resource) {
this.field = field;
this.isLocalStorageAvailable = AccessorUtilities.isLocalStorageAccessSafe();
this.resource = resource;
if (key.join != null) {
key = key.join("/");
key = key.join('/');
}
this.key = "autosave/" + key;
this.field.data("autosave", this);
this.key = 'autosave/' + key;
this.field.data('autosave', this);
this.restore();
this.field.on("input", (function(_this) {
this.field.on('input', (function(_this) {
return function() {
return _this.save();
};
@ -29,7 +29,14 @@ window.Autosave = (function() {
if ((text != null ? text.length : void 0) > 0) {
this.field.val(text);
}
return this.field.trigger("input");
if (!this.resource && this.resource !== 'issue') {
this.field.trigger('input');
} else {
// v-model does not update with jQuery trigger
// https://github.com/vuejs/vue/issues/2804#issuecomment-216968137
const event = new Event('change', { bubbles: true, cancelable: false });
this.field.get(0).dispatchEvent(event);
}
};
Autosave.prototype.save = function() {

View file

@ -184,7 +184,7 @@
}
},
initAutoSave() {
this.autosave = new Autosave($(this.$refs.textarea), ['Note', 'Issue', this.getIssueData.id]);
this.autosave = new Autosave($(this.$refs.textarea), ['Note', 'Issue', this.getIssueData.id], 'issue');
},
initTaskList() {
return new TaskList({
@ -211,7 +211,7 @@
<issue-note-signed-out-widget v-if="!isLoggedIn" />
<ul
v-else
class="notes notes-form timeline new-note">
class="notes notes-form timeline">
<li class="timeline-entry">
<div class="timeline-entry-inner">
<div class="timeline-icon hidden-xs hidden-sm">
@ -223,10 +223,10 @@
:img-size="40"
/>
</div>
<div >
<div class="timeline-content timeline-content-form">
<form
ref="commentForm"
class="js-main-target-form timeline-content timeline-content-form common-note-form">
class="new-note js-quick-submit common-note-form gfm-form js-main-target-form">
<div class="flash-container timeline-content"></div>
<confidentialIssue v-if="isConfidentialIssue" />
<markdown-field

View file

@ -4,7 +4,7 @@ import '../../autosave';
export default {
methods: {
initAutoSave() {
this.autosave = new Autosave($(this.$refs.noteForm.$refs.textarea), ['Note', 'Issue', this.note.id]);
this.autosave = new Autosave($(this.$refs.noteForm.$refs.textarea), ['Note', 'Issue', this.note.id], 'issue');
},
resetAutoSave() {
this.autosave.reset();

View file

@ -19,7 +19,7 @@ export const notesById = state => state.notes.reduce((acc, note) => {
const reverseNotes = array => array.slice(0).reverse();
const isLastNote = (note, state) => !note.system &&
state.userData &&
state.userData !== undefined &&
note.author.id === state.userData.id;
export const getCurrentUserLastNote = state => _.flatten(

View file

@ -20,10 +20,6 @@
}
}
.new-note {
display: none;
}
.new-note,
.note-edit-form {
.note-form-actions {