closes#4498
- remove toJSON code which returns only IDs from objects
- don't auto-include tags & fields in post responses
- don't auto-include roles in user responses
- fix #allthethings that made assumptions about the auto-includes, or otherwise were only working because of the auto-include
Closes#4446
- Mobile Safari doesn’t support the HTML5 `autofocus` attribute, but
also doesn’t play nice with jQuery’s `focus()` and `select()` methods.
- Mobile Safari wouldn’t automatically select the input field anyway,
so this PR simply removes the “jumping input fields” error without
changing any actual behaviour.
- Disallowing the programmatic selection of input fields (with select,
focus or similar methods) is apparently considered a feature rather
than a bug (ref http://bugs.jquery.com/ticket/12789)
- `autofocus` attribute is now only set on non-iOS devices
Closes#4557
- The underlying issue is that the PSM is already loaded when Ember
routes from an existing post to a new post. Instead of resetting the
‘Published Date’ value manually (with jQuery), I’m using Ember’s
computed property setter to ‘refresh’ the cache for that property. I
believe that this Ember solution is better than manually going in and
resetting it with jQuery.
closes#4534
- Adds new Labs route
- Wires route in settings page
- Move and rename debug templates and logic to labs
- Redirect /debug to settings/labs
Closes#4379
- Adjusts the `.viewport` `z-index` propetty to allow notificatons to sit over the nav bar
Looks like a weird fix, but inheritence of z-index was the issue here.
Refs #4543
- Check EditorController.isDirty before displaying the
authorization failed modal dialog. This prevents the modal
appearing immediately upon entering the editor in cases where
auth has failed prior to opening the editor.
Refs #4543
- Alway return model out of save handler so sub-classes which
call this._super() on save have a model on success and failure.
- Always return resolved promise out of post slug generator.
- Test the errors object in the error notification helper to avoid
throwing an unhandled exception and silently failing.
- Consider a post model "dirty" if it is in an error state.
Closes#623
- Add basic init and eventing scaffold
- Add sitemap-index.xml generation
- Broke out generators to individual files, added request handler
- Add page, author and tag xml files; add index mapping
- Add SiteMapManager unit tests
- Add Generators tests
- Cache invalidation headers for sitemap-*.xml
- Redirect sitemap.xml to index and rename to sitemap-index
- Handle page convert and publish/draft changes
- Add very basic functional test for route existence
- Add cache headers to sitemap routes
closes#4485
- removes data attributes used on body in default.hbs
- introduces new way to generate configuration through meta tags
- config initializer consumes configurations from the meta tags using parser
- moves blog_title helper/value to be a property in a configuration api
No issue
- Consolidate extension of Ember.Router.
- Remove unneeded local jshint flags and '_' as a global.
- Cleanup client README.md.
- Fix error message.
No Issue
- Use Ghost version value that is already loaded instead of
reading package.json from the filesystem and parsing it on
every call into the configuration API.
- Every route can set a title token that is combined with the blog’s
title, resulting in titles like ‘Content - Test Blog’.
- Subroutes are supported (‘Settings - General - Test Blog’)
- The blog’s name is applied to and taken from the `config` object to
spare Ember a REST call via `store.find(‘settings’)`.
- Tests have been changed to test for the new titles.
- The initially proposed solution
(https://github.com/paddle8/ember-document-title) doesn’t play nice
with EAK, which is why I went with this solution
(https://gist.github.com/machty/8413411) by Ember.JS core dev @Machty.
no issue
- changes the content type for the RSS feeds from text/xml to
application/rss+xml
- changes the link rel=alternate tag to use an absolute URL for the feed
in the blog meta data
Closes#4431
- The PSM does not reset on a transition from editor (existing post) to
editor (new post). If the existing post had a cover image, the image
uploader would not be reset during the transition and appear slightly
broken in the editor for the new post.
- In this PR: A reference to the uploader is saved, allowing the route
for editor/new to instruct the PSM controller to have the uploader
reset.
Ref #4248
- Added tags settings menu
- Added basic new, edit, delete, and save actions
- Show actionable edit buttons dynamically based on tag state
- Infinite scroll
- Closing the tag settings menu rollbacks your changes
- Removed not-yet-implementable code
No Issue
- Add local store lookup back to edit route.
- Prevent entry into route when an author is not the owner of a post
even if model is passed in.
- Clean up references to pagination as there's no pagination going on.
No Issue
- Fix exception being thrown when updateConfigTheme called before
settingsCache fully populated.
- Remove unnecessary check in a conditional in the migration command
builder.
Base64 encoding causes some issues when the token is URL encoded
as the = symbol is not a valid URL character. We replace any =
symbols with a - as this is valid in a URL, but is guaranteed
not to appear in a base64 string. This fix ensures that Ghost
password resets work with mail providers such as Mailgun that
add their own tracking redirects
closes#3872 (for real this time)
References #4248
- Updates the markup & classes for the tag management settings menu, as they've fallen behind now we've renamed the 'right-outlet' to 'settings-menu'
Closes#3998
- Scroll the active post into view on page load
- If the active post changes and the newly active post is offscreen, scroll it into the middle of the screen
No Issue
- Strip sub-directory from image paths before passing to
config.createUrl. Since images are stored with the sub-directory
and createUrl builds a URL with the sub-directory the result
would be a URL that contains the sub-directory twice.
Closes#4400
- Added focusCursorAtEnd property to codemirror component, to set the cursor at document end on load. Used for posts that have been edited
- centralized codemirror init code in component
Closes#4378. Closes#4455.
- Trim whitespace from tag names on entry.
- Prevent duplicate tags in suggestion list.
- Fix unhandled exception that happens when backspace is pressed in
an empty tags input box.
closes#4414
- adds `ctrl/cmd+s` shortcuts to `settings/general` screen
- adds `ctrl/cmd+s` shortcuts to `settings/user/xx` screen
- extracts `ctrlOrCmd` variable to separate module for reuse
Continues on from #4401
- Reformats the Sass to match our new style (property order, comments, & white space)
- Changes the modal container to a class from an ID (and adjust tests)
No issue
According to [caniuse](http://caniuse.com/#feat=woff), all the browsers we support (last 2 versions of major browsers) support the `.woff` font format. It's actually what pretty much all browsers will serve if its offered anyway.
This PR removes the .eot and .ttf font formats.
SVG remains as its the base file we use to add new icons & convert into other formats. It is not referenced anywhere.
Closes#4411
- Previously, saving the user’s slug would lead to the slug value being
‘stuck’ on that saved value, even if one navigated to a different
user’s profile settings.
Removes that hash appended to the URL when clicking Meta Data in post settings.
Closes#4386
When clicking 'Meta Data' the click event appends a # to the URL. I replaced the a with a button element so that won't happen anymore. The button has a type attribute because it will try and submit the form without it. Added text-align: left to the navlist button because the button centers it's content by default.
closes#4260
- Adds "tags" route inside of the settings routes.
- Adds this route to router.js
- Links the route from the settings.hbs template
- Adds demo tags html in tag.hbs template
- Adds flag for tagsUI
Closes#4369
- Renamed `editor-route-base` -> `editor-base-route` to bring it in alignment with the view and controller mixins
- Consolidated editor route code into editor-base-route
- Removed `serialize` from EditorEditRoute, as it reimplemented the ember default
closes#4253
- checked for the CodeMirror-focused class on the CodeMirror div
- used length to determine whether CodeMirror-focused has been added
- determines whether the editor has been focused on
Closes#4277
- Increase the wait time for forked processes to spin up.
- If we give up on waiting for a forked process, send it a
kill signal so if it comes alive later it doesn't sit in the
background forever.
- Fail fast if test setup fails instead of waiting for the timeout.
Refs #4277
- Switch from the built-in http module to request and set
a timeout of 2 seconds on gravatar lookup requests.
- Move request package from devDependencies to dependencies.
Closes#4316
- Ember@1.8.0.
- Ember-Data@1.0.0-beta.11.
- Change templates to use new Ember.Select syntax and other minor
cleanup.
- Adjust functional tests.
For example, outlook 2013 plus would not interpert the following html
(encoded via quoted-printable encoding):
<a href=3D=22http://engineering=
.como.com/ghost/signup/MTQxNTcwNzM5MTYwN3x5dXJ5QG5peC5jby5pbHx3NVBmUUN4RGZr=
cGhKc3FPOElybXNZNWtzR0FMTU9tRFI5UlNyRWQ4SGJZPQ=3D=3D/=22 style=3D=22color:
=
The workournd forces node-mailer to user base64, which outlook understands
well.
Issue #806
- Modify sanitize to check for duplicate posts and tags
- Update posts_tags when referencing removed duplicate tags
- Return both data and problems from importData
- Add tests for duplicate posts and tags with fixtures
Closes#3940
- Pushing left/right changes the "focus" of the posts screen to the list / content, respectively
- Once one of these has been focused, up/down keyboards work on that section in particular
- By default, the post list is selected
- Using the keyboard to focus one of the two makes it go "poof" to let you know you changed stuff
No Issue
- Make helper behave as stated in description when variable
number of arguments are passed in.
- Handle leading and trailing slashes when creating output
url partial.
Closes#4340
Fixes a UI glitch where the vertical parts of a box shadow would show.
This fix changes those box shadows for 1 radial gradient, where only 5px of it is shown. No more vertical shadows.
Closes#3858
- urlPathForPost is now aware of the author’s slug, allowing for the
permalink setting to use :author
- Frontend controller only renders posts that have the specified
author, if one is given
- Extensive tests included
Refs #4323
- Remove any titleScratch observers that may be hanging
around on the post-settings-menu controller from previous posts.
- Change logic around when to regenerate slugs on posts that are
"(Untitled)" so that slug generation continues after slug no
longer resembles "untitled."
closes#4328
- Escapes metaTitle, metaDescription, blog url, blog title, tags
- Updates tests
- Adds test for metaTitle and metaDescription with double quotes
* Adds `bind`, `isFinite`, and `isNumber` utility functions from lodash.
* Use new util funtions instead of lodash throughout the codebase.
* Remove lodash from vendor builds.
Closes#4105
- Turns the tag icon white when input is focused.
- Focuses on the tag inout after deleting a tag.
Credit to @novaugust for a PR to this which is rebased into one single commit
Refs #4307 Refs #4259
- Make sure that a slug has been generated prior to the first
save that occurs on a post.
- Wait on in-flight slug generation requests before saving.
no issue
- Some of the tests were duplicated and all of these tests are faster and easier to do with super test as we aren't testing interactions
- Introduced a new test util to toggle permalinks which allows us to test the different structures
- Using cheerio in route tests to test the HTML / XML output is well formed
issue #4305, issue #4259, issue #1413
- change new->edit transitionToRoute to be replaceRoute
- auto focus in the editor on transition to the edit route
- change the one-time autosave to happen on codemirror focusin instead of title focusout
- re-add removed tests, and reorder broken test
Refs #4259
- Auto-save new post when title loses focus.
- If a post has '(Untitled)' for a title, regenerate slugs
on all title changes--same behavior as a new post that does
not yet have a slug.
- Adjust some functional tests to handle the automatic transition
from editor/new to editor/editor and the URL changes that go
along with it.
closes#3900
- Adds twitter cards to ghost head helper
- Adds schema json information
- Adds test with null values for post image and cover image
- Adds test for privacy flag
- Adds test for the case of no tags
- Updates test to check for twitter card and schema data
- Updates privacy.md
- Fixes issue with image urls that are linked by url rather than uploaded
No issue
Safari (iOS 8 & OS X Yosemite) throws a massive hissy fit about `console.error` and goes on to break all the things.
This PR simply removes it.
no issue
- Split theme helpers into individual files for each
- Do the same for tests
- Have utils to share some things between them
- Move assetHash onto config
ref #4257
- This is a follow on from #4257 where I updated the codestyle.
- We were outputting escaped single quotes when double quotes would be much nicer.
- Changes the HTML output from our markdown conversion (non-breaking change)
- Updated tests to match the new output
Ref #1413
- If the user stops typing for 5 seconds, a "typingPause" action is sent from the GhCodemirrorComponent
- Editor-base-controller ties the "typingPause" action to its "autosave"
- If a post is being saved and does not have a title, the title is set to "(Untitled)"
- Cleanup editor base controller property dependencies and code
Closes#4208
- Removes `min-width` & `max-width` from `.publish-bar-actions`
- Uses flexbox to correctly handle dynamic size (due to font size and text content of button)
ref #4243
- Removing /lib/ from the list of things which aren't linted, as this is
all custom code
- Fixing up the two files to pass linting, erring on the side of caution
with disabling regexp rules vs fixing regexes!
closes#4247
- added scope to every shortcut, the scope of shortcut is default to
'default'
- add shortcut `enter` to modal which confirm the modal
- shortcut `enter` and `esc` now have scope 'modal'
- when lunch a modal, scope is switching to 'modal', and set back to
'default' when close
- shortcut `enter` now confirm the dialog without conflicting with route
shortcuts
issue #3900
- uses isPrivacyDisabled helper to see if useStructuredData has been disabled in config.js
- adds an array of promises to deal with asynchronous data
- resolves asynchronous data then adds open graph tags after canonical link
- featured image and tags are only added if present
- open graph tags only added on post and page
- adds unit test to check correct data is returned
- updates other unit tests to reflect changes
Closes#4246
- Removed the input wrapper background colour
- Moved `:focus` styles to one element, so its not defined separate for each page
- Removed unnecessary MQ for body background colour (it changed nothing)
Closes#4196
- Clear confidential info on leaving reset route
- Remove nested password access, because gross
- Also cleaned up some .then(f, h) to .then(f).catch(h) in setup controller
Closes#4186, Closes#4190, Closes#4150
- Alters markup to allow for correct use of `-webkit-overflow-scrolling: touch;`
- Updates the debug page to use the same markup as the rest of the settings page
- Solve floating tag bar issue by making it absolute, not fixed
Closes#4225
- If a theme is symlinked in the themes directory, follow
the symlink so that the theme object is populated correctly.
- Only do the fallback loading of theme data in the validations
module if it doesn't exist in config.