UX: remove live character countdowns from the composer

This commit is contained in:
Régis Hanol 2015-03-09 17:46:36 +01:00
parent 9c59f77018
commit 5ceb84421e
6 changed files with 5 additions and 60 deletions

View File

@ -95,11 +95,6 @@ export default DiscourseController.extend({
}, },
updateDraftStatus() {
const c = this.get('model');
if (c) { c.updateDraftStatus(); }
},
appendText(text, opts) { appendText(text, opts) {
const c = this.get('model'); const c = this.get('model');
if (c) { if (c) {

View File

@ -242,31 +242,6 @@ Discourse.Composer = Discourse.Model.extend({
return reply.replace(/\s+/img, " ").trim().length; return reply.replace(/\s+/img, " ").trim().length;
}.property('reply'), }.property('reply'),
updateDraftStatus: function() {
var $title = $('#reply-title'),
$reply = $('#wmd-input');
// 'title' is focused
if ($title.is(':focus')) {
var titleDiff = this.get('missingTitleCharacters');
if (titleDiff > 0) {
this.flashDraftStatusForNewUser();
return this.set('draftStatus', I18n.t('composer.min_length.need_more_for_title', { n: titleDiff }));
}
// 'reply' is focused
} else if ($reply.is(':focus')) {
var replyDiff = this.get('missingReplyCharacters');
if (replyDiff > 0) {
return this.set('draftStatus', I18n.t('composer.min_length.need_more_for_reply', { n: replyDiff }));
}
}
// hide the counters if the currently focused text field is OK
this.set('draftStatus', null);
}.observes('missingTitleCharacters', 'missingReplyCharacters'),
init: function() { init: function() {
this._super(); this._super();
var val = (Discourse.Mobile.mobileView ? false : (Discourse.KeyValueStore.get('composer.showPreview') || 'true')); var val = (Discourse.Mobile.mobileView ? false : (Discourse.KeyValueStore.get('composer.showPreview') || 'true'));
@ -655,17 +630,9 @@ Discourse.Composer = Discourse.Model.extend({
return Discourse.Draft.save(this.get('draftKey'), this.get('draftSequence'), data) return Discourse.Draft.save(this.get('draftKey'), this.get('draftSequence'), data)
.then(function() { .then(function() {
composer.set('draftStatus', I18n.t('composer.saved_draft_tip')); composer.set('draftStatus', I18n.t('composer.saved_draft_tip'));
}, function() { }).catch(function() {
composer.set('draftStatus', I18n.t('composer.drafts_offline')); composer.set('draftStatus', I18n.t('composer.drafts_offline'));
}); });
},
flashDraftStatusForNewUser: function() {
var $draftStatus = $('#draft-status');
if (Discourse.User.currentProp('trust_level') === 0) {
$draftStatus.toggleClass('flash', true);
setTimeout(function() { $draftStatus.removeClass('flash'); }, 250);
}
} }
}); });

View File

@ -49,11 +49,6 @@ const ComposerView = Discourse.View.extend(Ember.Evented, {
Ember.run.scheduleOnce('afterRender', this, 'refreshPreview'); Ember.run.scheduleOnce('afterRender', this, 'refreshPreview');
}.observes('model.reply', 'model.hidePreview'), }.observes('model.reply', 'model.hidePreview'),
focusIn() {
const controller = this.get('controller');
if (controller) controller.updateDraftStatus();
},
movePanels(sizePx) { movePanels(sizePx) {
$('#main-outlet').css('padding-bottom', sizePx); $('#main-outlet').css('padding-bottom', sizePx);
$('.composer-popup').css('bottom', sizePx); $('.composer-popup').css('bottom', sizePx);

View File

@ -93,17 +93,12 @@
.toggle-preview { .toggle-preview {
right: 5px; right: 5px;
} }
#file-uploading { #draft-status, #file-uploading {
left: 51%;
font-size: 0.857em;
color: $primary;
}
#draft-status {
right: 51%; right: 51%;
color: $primary; color: $primary;
&.flash { }
color: $danger; #file-uploading {
} font-size: 0.857em;
} }
transition: height 0.4s ease; transition: height 0.4s ease;
width: 100%; width: 100%;

View File

@ -34,9 +34,6 @@ display: none !important; // can be removed if inline JS CSS is removed from com
} }
#draft-status { #draft-status {
color: scale-color($primary, $lightness: 75%); color: scale-color($primary, $lightness: 75%);
&.flash {
color: $danger;
}
} }
transition: height 0.4s ease; transition: height 0.4s ease;
width: 100%; width: 100%;

View File

@ -678,10 +678,6 @@ en:
similar_topics: "Your topic is similar to..." similar_topics: "Your topic is similar to..."
drafts_offline: "drafts offline" drafts_offline: "drafts offline"
min_length:
need_more_for_title: "{{n}} to go for the title"
need_more_for_reply: "{{n}} to go"
error: error:
title_missing: "Title is required" title_missing: "Title is required"
title_too_short: "Title must be at least {{min}} characters" title_too_short: "Title must be at least {{min}} characters"