mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-02-03 23:00:14 -05:00
Reset slug input text box after invalid input.
No Issue - When an invalid, all whitespace slug is entered into the slug input in the post settings menu, it's rejected but the input's value still remains the same. This resets the input back to its original value. - Added test for the above behavior. - Only show success notification if slug was actually changed. - Convert whitespace from tabs to spaces in post-settings-menu.hbs
This commit is contained in:
parent
e73468fb1e
commit
c4fb17d2d7
2 changed files with 51 additions and 2 deletions
|
@ -152,6 +152,9 @@ var PostSettingsMenuController = Ember.ObjectController.extend({
|
|||
|
||||
// Ignore unchanged slugs or candidate slugs that are empty
|
||||
if (!newSlug || slug === newSlug) {
|
||||
// reset the input to its previous state
|
||||
this.set('slugValue', slug);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -176,6 +179,8 @@ var PostSettingsMenuController = Ember.ObjectController.extend({
|
|||
// for the incrementor then the existing slug should be used
|
||||
if (_.isNumber(check) && check > 0) {
|
||||
if (slug === slugTokens.join('-') && serverSlug !== newSlug) {
|
||||
self.set('slugValue', slug);
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -193,9 +198,11 @@ var PostSettingsMenuController = Ember.ObjectController.extend({
|
|||
}
|
||||
|
||||
return self.get('model').save(self.get('saveOptions'));
|
||||
}).then(function () {
|
||||
self.showSuccess('Permalink successfully changed to <strong>' +
|
||||
}).then(function (changed) {
|
||||
if (changed) {
|
||||
self.showSuccess('Permalink successfully changed to <strong>' +
|
||||
self.get('slug') + '</strong>.');
|
||||
}
|
||||
}).catch(function (errors) {
|
||||
self.showErrors(errors);
|
||||
self.get('model').rollback();
|
||||
|
|
|
@ -225,4 +225,46 @@ CasperTest.begin('Post can be changed to static page', 6, function suite(test) {
|
|||
|
||||
test.assertDoesntExist('.post-setting-static-page:checked', 'can turn off static page');
|
||||
});
|
||||
});
|
||||
|
||||
CasperTest.begin('Post url input is reset from all whitespace back to original value', 3, function suite(test) {
|
||||
// Create a sample post
|
||||
CasperTest.Routines.createTestPost.run(false);
|
||||
|
||||
// Begin test
|
||||
casper.thenOpenAndWaitForPageLoad('content', function testTitleAndUrl() {
|
||||
test.assertTitle('Ghost Admin', 'Title is "Ghost Admin"');
|
||||
test.assertUrlMatch(/ghost\/\d+\/$/, 'Landed on the correct URL');
|
||||
});
|
||||
|
||||
// Transition to the editor
|
||||
casper.thenClick('.post-edit');
|
||||
casper.waitForSelector('#entry-title');
|
||||
|
||||
casper.thenClick('.post-settings');
|
||||
casper.waitForOpaque('.post-settings-menu.open');
|
||||
|
||||
var originalSlug;
|
||||
casper.then(function () {
|
||||
originalSlug = casper.evaluate(function () {
|
||||
return __utils__.getFieldValue('post-setting-slug');
|
||||
});
|
||||
});
|
||||
|
||||
// Test change permalink
|
||||
casper.then(function () {
|
||||
this.fillSelectors('.post-settings-menu form', {
|
||||
'#url': ' '
|
||||
}, false);
|
||||
|
||||
this.click('button.post-settings');
|
||||
});
|
||||
|
||||
casper.then(function checkValueMatches() {
|
||||
//using assertField(name) checks the htmls initial "value" attribute, so have to hack around it.
|
||||
var slugVal = this.evaluate(function () {
|
||||
return __utils__.getFieldValue('post-setting-slug');
|
||||
});
|
||||
test.assertEqual(slugVal, originalSlug);
|
||||
});
|
||||
});
|
Loading…
Add table
Reference in a new issue