closes#5294
This improves a hack for parsing JSON to be more robust.
Now attempt to parse JSON, and if it's not possible it will fallback to treating the value is a string,
reverting the behaviour to what it would have been if we didn't have JSON parsing here.
closes#5288
- use the config.blogURL as the frontend URL from the admin
- we know this is given to us without a trailing slash, so it's 100% safe to hard code this
- TODO: make all of the url generation a lot nicer i.e. #1833
refs #4993, #5073
- Removed nonexistent helpers siteDescription and bodyClass from admin templates
- Changed password.hbs to private.hbs to match the route name
- added a new input_password helper for rendering the password input with the correct properties
- removed the forward input as this can be handled via urls only
- moved 'private' to routeKeywords
- added 'private' context
- minor update to text next to the password in settings
In later versions of Ember, the views and components can be stable
and are not guaranteed to be torn down before a new controller is
set on them.
In this case, the controller is initially set before the element has been
rendered to the DOM causing errors when invoking `closest` on undefined.
- tying as many things to proper versions rather than repos as possible
- upgrading various packages, with the exception of anything to do with jQuery
- leaving normalize as-is due to previous issues
Refs #5097
- All drafts will show a preview link (this needs real css)
- Published posts will redirect
- prev/next post helpers only activate on published posts
- Powered by ~10 pints between the two of us (@ErisDS, @novaugust)
Closes#5179
- Overwrites the yellow code injection syntax highlighting (such as vendor prefixes in CSS) to be black, to match the rest of the property
- Adds rounded corners to the code injection CodeMorror wrapper to match its parents rounded corners (inherits the same value)
fixes#5136
- wrap notification fetch with a user role check to remove console error
- move author transition down to local route for users/user so that there's no infinite loop
- replace all store calls to fetch the current user with the session user instead
References #5071
- Re-implements the previously broken top notification styles
- Moves the top notification outlet outside the `<main>` to ease styling (we have several nested position fixed/absolute boxes that make this tough - moving the outlet makes it easier)
- if the user has filled out their email already when they hit 'forgotten password' then automatically fill out and submit the form
- this will look better when we have spinners on the buttons
No issue
The `icon-x` class got messed up when I attempted to dry up our icon code in both https://github.com/TryGhost/Ghost/pull/4948 and 35b3d92c74. All that was left was an `x` in the file.
This adds that class back, so the `icon-x` icon works again.
- removing --silent so we can see errors
- pinning dependencies
- the error with normalize is resolved by pinning ember-cli-sass to 3.1.0, and breaks if upgrading to 3.1.1 as a result of issues with libsass
no issue
- We already maintain our own fork of showdown, this moves our custom extensions to our fork
- Code duplication is removed
- Tests are also moved to the other repo
References https://github.com/TryGhost/Ghost/pull/4373
* Consistent line-height & padding cross-browser
* Remove drag handle from textarea
* Partially clean up the CSS to more closely match the new standard
closes#4368, fixes#1240 (spellcheck), fixes#4974 & fixes#4983 (caret positioning bugs)
- Drop CodeMirror in favour of a plain text area
- Use rangyinputs to handle selections cross-browser
- Create an API for interacting with the textarea
- Replace marker manager with a much simpler image manager
- Reimplement shortcuts, including some bug fixes
- see core/client/lib/assets-delivery/index.js for how this is done
- Turn off ember-cli fingerprinting
- ember-cli 0.2.0; Update .npmignore
- Fallback to old version of ember-cli-sass due to lib-sass errors
- Keep ember-data at beta-14.1 until we find the dep that's breaking on snapshot.attr
- Fix release task to ignore blank lines in .npmignore
- added grunt-bg-shell
- reorganized asset tasks into one location
- turn off ember-cli analytics
- remove app/config-dev and config-prod
- remove qunit from bower.json
- remove express from package.json
refs #4989
- this allows users to enter mailto and output links via the navigation UI
- the navigation validation/cleanup needs a bit of a refactor to handle other kinds or URI, so leaving #4989 open for now
Closes#4662
- Removed accessibility classes from `_shame.scss` in favour of those in `global.css`, which are from Bootstrap and better tested.
- Change many instances if `class="hidden"` to `class="sr-only"`, so text intended to help with accessibility is not hidden from screen readers, only visually hidden.
Closes#4959
An SVG (without width & height attributes) inside a button won't display as it should. There seems to be no fix other than apply a minimum width & height. That doesn't feel right, so I've opted for this.
- Remove the `<button>` wrapping `<img>` elements
- Add `cursor: pointer;` to those images (now they don't get one, not being inside a `<button>`
- Remove the `#blog-logo/cover` IDs and `for` attributes. They only apply focus on text inputs anyway.
no issue
- Use the double-tash escaping output for notification messages
- Mark known and trusted html notifications as html-safe
Credits: Abdel Adim Oisif
Closes#4878
This changes nothing except DRYness of code. Its output is exactly the
same.
- Moves all icon variables into a map
- Add getter function to extract variables from the map
refs #4535
- as discussed in the meeting on 1st February ;)
- changed the fake-placeholder to only operate on the last item, this way it feels right, I think
Closes#4540
- Implements drag & drop to reorder navigation items
- Adds a `sort` property to navigation items
- Adds a tiny library to enable touch events for drag & drop. It hooks onto jQuery UI.
- Sort nav items before being saved
- Adds `settings-view-navigation` to route for body class
No issue.
- Ember@1.10.0
- Update grunt-ember-templates to version that supports HTMLBars.
- Update Gruntfile.js to compile templates with HTMLBars.
- Convert Handlebars code to its HTMLBars equivalent.
Closes#4379
- Moves the bottom notification outlet _outside_ the `<main>` element which allows notifications to show above the nav bar
- Removes (the now unnecessary) code which counter-positioned the bottom notifications when a Settings Menu was opened.
The way these notifications look or are positioned at various viewport sizes **has not changed**.
No Issue
- Rework the preview URL component so its implementation is
simpler.
- Add test for gh-url-preview component.
- ember-mocha@0.3.0.
- Remove unused jshint options.
Related to #4844
The newly added user image in the content list uses a CSS property to
crop `img` tags, but it's not supported in IE or Firefox. This issue
corrects that by chancing them to be background images which can be
cropped cross-browser.
It also adjusts the nav bar user image (previously an `img` tag) which
would squash a non-square image.
Also removes the border around the settings/users/ user images, to be
consistent with the rest of the UI.
Closes#4425
- Adds the author avatar (with defalt fallback)
- Shows author name when hovering the avatar (falls back to email address)
- Slightly adjusts type, colour, and spacing
No issue
The style for the URL input when uploading images are a bit broken.
This PR reduces the horizontal spacing in the settings menu uploader (to widen the input), corrects the button with black text in the editor uploader and makes sure all image upload inputs fill the container.
Closes#4766
- Adjust ValidationEngine so it no longer assumes the properties
it is validating are proxies via ObjectController.
- Fixup controllers, templates, and routes to use models where
data needs to be validated.
Closes#4768
- Notifications that used to read ‘View Post’ now read ‘View Page’ if
the post is actually a page
- The Editor Save Button now also makes a distinction between posts and
pages
Refs #4750
- Make "Feature" a Controller with promise support.
- Use via 'needs' instead of injecting from an initializer because
we need authenticated access to the API.
- Check whether feature is enabled when entering Code Injection route.
Ember.ObjectController (and Ember.ArrayController) will be deprecated in
Ember 1.11 (and removed from core in Ember 2.0). The reasoning is
detailed in the Ember 2.0 RFC.
This PR does the following:
* Updates templates/controllers/views to explicitly reference model
properties (instead of relying on proxying behavior).
* Clearly delineate where certain properties are being set or retrieved
from (for example it was not clear exactly where `scratch` and
`titleScratch` were stored).
* Remove usage of `Ember.ObjectController`.
* Add JSCS rule to prevent future PR's from adding regressions.
No issue.
* Fix indentation (it was surprisingly hard for me to grok what was happening
without indentation).
* Utilize `alternateActive` from `core/client/utils/link-view.js` to
maintain the `active` state. Observing `childViews` is deprecated (and
may not work properly in future versions of Ember).
* Remove now unused `item-view`.
No Issue
- Generalize embedded-relation-adapter so it can be used for both fetching
and saving records.
- Change Adapter inheritance hierarchy to
RESTAdapter => BaseAdapter => EmbeddedRelationAdapter. ApplicationAdapter
now extends EmbeddedRelationAdapter.
- Cleanup or remove adapters that existed just to extend directly
from EmbeddedRelationAdapter.
- Misaligned header due to back button being in the wrong place in the markup
- Corrected padding on tag delete button
- Updated tag settings input labels for consistency
No issue
The transparent border surrounding modals was being cut off.
This fix uses padding instead of adjusting the left & right valued to create space.
Issue #4683
- Finish setting up pagination in tag management page.
- Add post count warning to delete tag modal. Fix styling.
- Make sure tag input menu is loading all tags.
- Only include saved tags in tag input suggestion list.
- Unload tag records from store when entering tag route so that
we get accurate post count.
- Add a resetPagination action to pagination-controller-mixin for
cases where we want to start fresh.
- Include tag.id when sending tag payload to API.
closes#4683
- added post count to 'delete tag' modal
- fixed lint errors
- preventing extra data to be sent to server
- adjustments suggested by @jaswilli
Closes#4499
- Introduces a URL preview component
- Added the component to tag settings and post settings
- Adds a new CSS file for this component which makes sure the preview never wraps onto multiple lines
Refs #4537
Static mockup of the navigation UI
- Includes hacky JS to simulate interactions (but not dragging, which is #4540 and no modal when deleting)
- Delete & add icons have invisible padding to increase hit area
- Drag handle has the `move` cursor
- Switches into a single column at 600px and below
No Issue
- ember-data@beta.12
- ember-data now warns if a payload contains properties that do
not exist in the model. Because of this all missing model
attributes have been added (without their relationship defined)
because they're currently unused and we don't need to generate
additional API requests to resolve the async relationships.
Closes#4633
- The ‘delete’ button is now a smaller plain text link, opening a
confirmation modal analog to the delete user/post flow
- Adding a post count is dependent on #4654, but the modal is already a
neat step up from the immediate, warning-less deletion.
Ref #4651
- Manually triggering the change event ensures compatibility with
legacy password managers and browsers not properly firing events on
autofill (which leads to Ember not picking up the entered values)
No issue
- Changes Modals to use CSS-based animations
- All modals have an animation, so the option is removed from the handlebars helper
- Removes `animation` from the handlebars helper, as all had one anyway
- Removed the `centered` style - All modals should be left-aligned
- Buttons now default to being on the left
- Cleans up some styles (modal body top spacing) which #4632 helped clean up
No Issue.
- Neither of these properties should be included in the
payload sent from the client to the API. URL is a
read-only virtual property, and author_id is inserted
locally as a convenience.
Closes#2092
- Adds styling for re-auth modal.
- Prevent transition to posts route on success.
- Clear credentials from controller.
- Handle confirmAccept action if form is submitted via 'enter'.
- Only allow re-auth as the user that was previously logged in.
fixes#4356
- Added new keyPress event handler to identify keys by character instead of key
- Removed code for handling comma key from keyDown event handler
closes#1756
- adds a post url link to 'post updated' and 'post published' in editor
- adds join function in ghost paths
- adds a '/' detection to makeRoute method
- adds test for join function
closes#4624
- added user_id to password reset request
- hide old password field
- updated changePassword method to check permissions
- updated changePassword method to work without oldPassword
- fixed bug for errors shown as [Object object]
Closes#4506
Works just like the Post Cover Images (and uses the same component)
Tiny changes to the component ensures that we can reuse it across Ghost
Closes#4509, Closes#4615
- Adds meta title & meta description input fields
- Autosaves meta data
- Shows SEO preview (falling back to tag name & description if meta not supplied)
- Adds `type="button"` to delete button (which closes 4651)
closes#4516
- shortcut for ctrl/cmd+s on application level
- shortens a syntax for any route that is using 'save' method, shortcuts object doesn't have to be defined at all, only the save action.
Closes#4508
Tests for:
- Version number is a number
- Database type is an allowed 1 of 3
- There are 20 contributors
- First contributor has an image tag and image src exists, alt tag, title tag, href to github
fixes#4572
- Remove both inline and bottom footnotes from excerpt output before stripping the remaining HTML
- No more red errors, black text or bold links in codemirror, as codemirror gets confused by footnote syntax. This is a step towards the new editor which has no syntax highlighting in the editor
Refs #4578
- Match label "for" attributes with ids from the inputs they're
labeling.
- Remove extra promise generation from ghost header and footer helpers.
refs #1993
- adds ctrl/cmd+s for save
- adds config flag
- adds icon on settings page, puts items in the right order
- sorts out permissions for all settings pages with consistent configuration
fixes#4555
- There's no easy way to declare an XSL with the node xml module, so I
needed to move the declarations to both be strings
- Ideally the code to serve the XSL would also be inside the sitemap
module, but I think we need to refactor a bit to get there easily
- Added the XSL from #4559, with minor amends to make the tables and urls
display correctly
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#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.
- 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.
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.