FIX: allow pasting links into title field that are longer than the max title length
This commit is contained in:
parent
29755be139
commit
dbb814ec6a
|
@ -31,6 +31,13 @@ export default Ember.Component.extend({
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@computed('watchForLink')
|
||||||
|
titleMaxLength() {
|
||||||
|
// maxLength gets in the way of pasting long links, so don't use it if featured links are allowed.
|
||||||
|
// Validation will display a message if titles are too long.
|
||||||
|
return this.get('watchForLink') ? null : this.siteSettings.max_topic_title_length;
|
||||||
|
},
|
||||||
|
|
||||||
@observes('composer.titleLength', 'watchForLink')
|
@observes('composer.titleLength', 'watchForLink')
|
||||||
_titleChanged() {
|
_titleChanged() {
|
||||||
if (this.get('composer.titleLength') === 0) { this.set('autoPosted', false); }
|
if (this.get('composer.titleLength') === 0) { this.set('autoPosted', false); }
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{{text-field value=composer.title
|
{{text-field value=composer.title
|
||||||
tabindex="2"
|
tabindex="2"
|
||||||
id="reply-title"
|
id="reply-title"
|
||||||
maxLength=siteSettings.max_topic_title_length
|
maxLength=titleMaxLength
|
||||||
placeholderKey=composer.titlePlaceholder
|
placeholderKey=composer.titlePlaceholder
|
||||||
disabled=composer.loading}}
|
disabled=composer.loading}}
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,8 @@ import { acceptance } from "helpers/qunit-helpers";
|
||||||
acceptance("Composer topic featured links", {
|
acceptance("Composer topic featured links", {
|
||||||
loggedIn: true,
|
loggedIn: true,
|
||||||
settings: {
|
settings: {
|
||||||
topic_featured_link_enabled: true
|
topic_featured_link_enabled: true,
|
||||||
|
max_topic_title_length: 80
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -52,3 +53,14 @@ test("ignore internal links", () => {
|
||||||
equal(find('.title-input input').val(), title, "title is unchanged");
|
equal(find('.title-input input').val(), title, "title is unchanged");
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test("link is longer than max title length", () => {
|
||||||
|
visit("/");
|
||||||
|
click('#create-topic');
|
||||||
|
fillIn('#reply-title', "http://www.example.com/has-title-and-a-url-that-is-more-than-80-characters-because-thats-good-for-seo-i-guess.html");
|
||||||
|
andThen(() => {
|
||||||
|
ok(find('.d-editor-preview').html().trim().indexOf('onebox') > 0, "it pastes the link into the body and previews it");
|
||||||
|
ok(exists('.d-editor-textarea-wrapper .popup-tip.good'), 'the body is now good');
|
||||||
|
equal(find('.title-input input').val(), "An interesting article", "title is from the oneboxed article");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
|
@ -335,7 +335,7 @@ export default function() {
|
||||||
this.delete('/admin/badges/:id', success);
|
this.delete('/admin/badges/:id', success);
|
||||||
|
|
||||||
this.get('/onebox', request => {
|
this.get('/onebox', request => {
|
||||||
if (request.queryParams.url === 'http://www.example.com/has-title.html') {
|
if (request.queryParams.url.startsWith('http://www.example.com/has-title')) {
|
||||||
return [
|
return [
|
||||||
200,
|
200,
|
||||||
{"Content-Type": "application/html"},
|
{"Content-Type": "application/html"},
|
||||||
|
|
Loading…
Reference in New Issue