Commit Graph

4414 Commits

Author SHA1 Message Date
Hannah Wolfe
c10eb58144 Add missing chars to slug generator
closes #6272

- curly braces and back-tick should also be replaced with a dash
- other symbols and chars in ascii table are either removed or replace
- not all the replacements are sensible, but better than having odd chars in the slug for now
2016-01-05 19:12:44 +00:00
Kevin Ansfield
de6a131d36 Fill in pending tests setup acceptance tests
refs #6039
- test the sad paths in the setup process
2016-01-05 17:03:22 +00:00
Kevin Ansfield
50c3905cb3 Use AdaptiveStore for cookie fallback if local storage is unavailable
closes #5829
- switch application session store to inherit from ESA's `AdaptiveStore` instead of `LocalStorageStore`
2016-01-05 13:16:41 +00:00
Kevin Ansfield
08735aa9bf Fix posts navigation slowdown when lots of posts are loaded
refs #6274
- adds `active-link-wrapper` mixin that tracks the `active` state of child links and adds/removes a `.active` class on the mixed-in element
- removes the passed-in `active` attribute on `gh-posts-list-item` component that forced every item in the content list to be re-rendered each time the currently selected post changed
2016-01-04 16:55:36 +00:00
Kevin Ansfield
ee3339bf18 Fix unresponsive search
closes #6274
- any time the search content is refreshed, start with a clean array instead of performing expensive object comparisons to remove existing content
2016-01-04 12:04:57 +00:00
Austin Burdine
06817fcc54 fix autoscoping of _this in settings/navigation
closes #6267
- adds a hardcoded this because babel's autoscoping isn't triggered by default
2015-12-27 17:25:36 -07:00
Sebastian Gierlinger
c533c48b89 Merge pull request #6251 from ErisDS/issues-6247
Switch channel filters to use strings not literals
2015-12-21 20:20:44 +01:00
Kevin Ansfield
c28f4853b8 Merge pull request #6244 from acburdine/issue-6226
Fix authentication error if setup/two is re-submitted
2015-12-21 11:14:39 +00:00
Kevin Ansfield
cb921a951e Fix teardown of gh-profile-image when fileStorage=false
closes #6253
- don't expect the file input to be present in `willDestroyElement`
2015-12-21 11:08:49 +00:00
Hannah Wolfe
20f102808a Switch channel filters to use strings not literals
fixes #6247

- GQL has a bug where literals starting with numbers are incorrectly parsed
- Using strings instead of literals is a workaround, but is probably safer anyway
2015-12-20 16:03:39 +00:00
Hannah Wolfe
968349236d Merge pull request #6242 from halfdan/6205-last-limit
Fix broken @last for foreach with limit
2015-12-20 14:30:48 +00:00
Hannah Wolfe
fe91944d43 Merge pull request #6240 from halfdan/6239-ghost-api
Fix non-idempotent Ghost API helper
2015-12-20 14:30:34 +00:00
rfpe
7abcc43907 Harvest server side strings
closes #5617
- Replace all hard-coded server-side strings with i18n translations
2015-12-19 12:12:16 +01:00
Austin Burdine
ea1e454038 fix authentication error if setup/two is re-submitted
closes #6226
- adds calls to oauth middleware on PUT /authentication/setup/
- prevent setup/two from trying to log in again if user is already logged in
2015-12-18 12:18:13 -07:00
Kevin Ansfield
4cb6ebcaf7 Merge pull request #6234 from kevinkucharczyk/url-field-appearing-multiple-times
Fix duplicate URL input field in image uploader
2015-12-18 16:57:17 +00:00
Fabian Becker
3b235b9acb Fix broken @last for foreach with limit
refs #6205
2015-12-18 15:55:12 +01:00
Fabian Becker
9899f8d4e7 Fix non-idempotent Ghost API helper
- Add test
- Don't override apiUrl

closes #6239
2015-12-18 15:02:05 +01:00
Matt Enlow
b5b0ec190b Register helpers as non-asynchronous
Ref #5850
2015-12-17 07:39:43 -07:00
Kevin P. Kucharczyk
7ce8819f65 Fix duplicate URL input field in image uploader
closes #6224
- Add .js-button-accept to removeExtras call
- Check for .js-url container existence before prepending it
- Remove redundant .init() call
2015-12-16 21:36:49 +01:00
Kevin Ansfield
b928366332 Fix password reset
closes #6229
- removes `_super` call in the reset route's `setupController` hook to avoid a `model` property being set which was being picked up by the validation engine
- throw the error if we fail in the password reset process from something we aren't expecting
2015-12-15 21:51:36 +00:00
Hannah Wolfe
14c3bd605e Ensure filter parse errors generate 422 not 500
no issue

- This resolves some issues we've seen with Ghost throwing 500 errors when the filter parameter is incorrectly structured/formatted
2015-12-15 15:01:06 +00:00
Sebastian Gierlinger
5256f6929c Merge pull request #6227 from ErisDS/stupid-bug-fix
Fixing bug with ghost-url overwriting url
2015-12-15 15:55:15 +01:00
Hannah Wolfe
e5b0609b33 Fixing bug with ghost-url overwriting url
refs #6223

- I made a stupid error, whereby apiUrl was always set to '' in themes
2015-12-15 14:16:00 +00:00
Sebastian Gierlinger
68a3c2527d Merge pull request #6225 from ErisDS/ghost-head-fix
Ensure `{{ghost_head}}` doesn't overwrite values
2015-12-15 15:13:17 +01:00
Kevin Ansfield
53cdb4398b Merge pull request #6204 from kevinkucharczyk/unable-to-remove-small-background-image
Fix hidden delete button in image uploader for short images
2015-12-15 13:54:32 +00:00
Hannah Wolfe
cbea617a24 Ensure {{ghost_head}} doesn't overwrite values
closes #6221

- clones contextObject so that updating values doesn't overwrite real data
2015-12-15 13:18:29 +00:00
Sebastian Gierlinger
efaa04ba61 Merge pull request #6223 from ErisDS/ghost-url
Prep shared API URL util for use on external sites
2015-12-15 14:17:41 +01:00
Kevin Ansfield
cb85189fdc Merge pull request #6160 from garyc40/bug-checkbox-labels
Checkbox labels are cut off on mobile.
2015-12-15 13:09:14 +00:00
Hannah Wolfe
450b7085d7 Merge pull request #6216 from kevinansfield/remove-set-scroll-classname
Remove `setScrollClassName` mixin and usage
2015-12-15 13:04:31 +00:00
Kevin Ansfield
f1d7bd3bcb Merge pull request #6092 from ericschultz/aria-pagination
Add aria-hidden to the pagination arrows
2015-12-15 12:56:16 +00:00
Kevin Ansfield
117ab27222 Remove setScrollClassName mixin and usage
no issue
- removes `setScrollClassName` mixin that was previously used to add a `.scrolling` class to scrollable elements that showed a shadow at the top of boxes when not scrolled to the top
2015-12-15 12:00:57 +00:00
Hannah Wolfe
9eadeb9fbb Prep shared API URL util for use on external sites
refs #5942, #6150

There were a few key problems I was looking to solve with this:

- Introduce a single point of truth for what the URL for accessing the API should be
- Provide a simple way to configure the utility (much like a true SDK)

As of this commit, this utility is still automatically available in a Ghost theme.
To use it on an external site, the code would look like:

```
<script type="text/javascript" src="http://my-ghost-blog.com/shared/ghost-url.min.js"></script>
<script type="text/javascript">
ghost.init({
   clientId: "<your-client-id>",
   clientSecret: "<your-client-secret>"
});
</script>
```

To achieve this, there have been a number of changes:

- A new `apiUrl` function has been added to config, which calculates the correct URL. This needs to be unified with the other url generation functions as a separate piece of work.
- The serveSharedFile middleware has been updated, so that it can serve files from / or /shared and to substitute `{{api-url}}` as it does `{{blog-url}}`.
- ghost-url.js and ghost-url.min.js have been updated to be served via the serveSharedFile middleware
- ghost-url.js has been changed slightly, to take the url from an inline variable which is substituted the first time it is served
- `{{ghost_head}}` has been updated, removing the api url handling which is now in config/url.js and removing the configuration of the utility in favour of calling `init()` after the script is required
- `{{ghost_head}}` has also had the meta tags for client id and secret removed
- tests have been updated
2015-12-15 11:50:46 +00:00
Hannah Wolfe
7fea696d21 Merge pull request #6213 from cobbspur/getPaginationFix
Ensure {{get}} helper returns pagination
2015-12-15 11:20:42 +00:00
Hannah Wolfe
bc97de5fe9 Unify usage of config in unit tests
no issue

- provide a single point for accessing config in unit tests
- create a single way to set and restore config
- ensure that restore deletes top level optional keys that are now undefined
- use this._config in check deprecations, otherwise the config gets cached
- solves issues with interdependent tests
2015-12-15 10:48:24 +00:00
Sebastian Gierlinger
432f8610c8 Merge pull request #6220 from ErisDS/issue-6205-limit
Add `limit` attribute to tags & foreach helpers
2015-12-15 11:37:44 +01:00
Sebastian Gierlinger
69ccca2cca Merge pull request #6167 from ErisDS/perma-ppp
Moving 'permalinks' and 'postsPerPage' to config.theme cache
2015-12-15 11:35:46 +01:00
Hannah Wolfe
a27f22acf5 Add limit attribute to tags & foreach helpers
refs #6205

- limit attribute allows theme developers to restrict output from these helpers to a smaller number
than would usually be output
2015-12-15 10:05:25 +00:00
Hannah Wolfe
883152ff15 Improvements to client auth error logging
no issue

- If client credentials are missing, or not valid, output a clear message in the server console
- Still defaults to sending the 'access denied to url' error to the frontend
2015-12-15 08:29:44 +00:00
Hannah Wolfe
e84b7f3217 Cache permalinks & postsPerPage on config.theme
no issue

- Cache the permalinks & postsPerPage settings on the config.theme object
- Use the config.theme cache to reference these items throughout the frontend of a blog
- Removes the need for workarounds and extra code to handle async fetches
- Makes these values accessible to all themes, which is very useful now we have the API stuff
2015-12-15 08:16:53 +00:00
cobbspur
0ce4078f45 Ensure {{get}} helper returns pagination
No Issue

- pagination returned if meta pagination exists
- needed to allow pagination helper to work
2015-12-14 13:27:07 +00:00
Hannah Wolfe
cc3b9e9f53 Merge pull request #6200 from kevinansfield/reset-tags-scope-on-deactivate
Reset shortcuts scope when leaving tags route
2015-12-10 18:41:23 +00:00
Kevin P. Kucharczyk
ff2711af30 Fix hidden delete button in image uploader for short images
closes #6194
- removed min-height animation from image uploader
2015-12-10 18:45:46 +01:00
Hannah Wolfe
2b145b3c61 Merge pull request #6202 from acburdine/ghost-url-updates
`ghost.url.api` cleanup/minification
2015-12-10 17:21:14 +00:00
Sebastian Gierlinger
bbbcf4f57e Merge pull request #6203 from ErisDS/no-soft-404s
No more soft 404s in pagination
2015-12-10 18:00:31 +01:00
Hannah Wolfe
a4b3bb79a5 Merge pull request #6184 from kevinansfield/fix-date-input
Fix changing text and jumping caret in PSM's date input
2015-12-10 16:29:36 +00:00
Hannah Wolfe
cbe9ee1cd1 Merge pull request #6181 from kevinansfield/fix-404-handler
Prevent 404-handler mixin from erroring on non-adapter errors
2015-12-10 16:26:07 +00:00
Hannah Wolfe
8c355349b3 No more soft 404s in pagination
closes #6201

- redirects for page/1/ or rss/1/ are now 301s
- any other invalid page now 404s
2015-12-10 15:00:02 +00:00
Austin Burdine
8f89997deb minify ghost.url.api in production
closes #6150
- clean up ghost.url.api script
- switch to inlining config and making the ghost-url.js file an external request
- add minification in production
2015-12-10 08:46:58 -06:00
Kevin Ansfield
78240e186b Reset shortcuts scope when leaving tags route
refs #6191, #6192
- adds additional safeguard to tags route to ensure keymaster scope doesn't get stuck in a non-default scope that may break shortcuts elsewhere
2015-12-10 12:27:48 +00:00
Hannah Wolfe
70a481be32 Merge pull request #6153 from kevinansfield/fix-subdir-nav-issues
Fix sub-dir being added to navigation urls when installed in sub-dir
2015-12-09 21:27:43 +00:00
Hannah Wolfe
16c71dde22 Merge pull request #6032 from vdemedes/pipeline-mail
Refactor mail API with pipeline utility
2015-12-09 19:28:08 +00:00
Hannah Wolfe
88065f58a0 Remove filters from theme helpers (no async)
closes #5850

- filters were added so that apps could change the output of the helpers, but as async helpers are a hack, this led to issues
- apps aren't currently a working part of Ghost, so for now, lets remove the filters
- we'll add these back when we have a better implementation of async helpers & this style of app is back on the cards
2015-12-08 14:35:04 +00:00
Kevin Ansfield
b858232369 Fix changing text and jumping caret in PSM's date input
refs #5777
- adds new `gh-datetime-input` that takes a one-way-bound value and formats it, only triggering the supplied `update` action on focus-out
- fixes bug in PSM's `setPublishedAt` action if model's `published_at` is a Date object not a Moment object
2015-12-08 10:13:17 +00:00
Sebastian Gierlinger
4524898cfc Merge pull request #6182 from ErisDS/channel-config-dynamic
Make channel config dynamic
2015-12-07 22:25:37 +01:00
Hannah Wolfe
a956d595f2 Make channel config dynamic
refs #5091, #6166

- fetch channel config via an internal function
- prevents channel config from being statically cached at runtime
- means that labs & other settings can be used to change these values
2015-12-07 20:06:35 +00:00
Kevin Ansfield
d989933b5c Prevent 404-handler mixin from erroring on non-adapter errors
no issue
- add a check for existence of `error.errors` as that won't be present on non-404 errors - fixes non-404 errors such as "no action handled x" being hidden by a completely different error
2015-12-07 18:37:35 +00:00
Kevin Ansfield
adfad93242 Merge pull request #6178 from syaiful6/select-native
Fix Select Component
2015-12-07 10:40:40 +00:00
Syaiful Bahri
b5a8ac3a7d Fix Select Component
jQuery instance isn't iterable, so we cant destructuring it.

closes https://github.com/TryGhost/Ghost/issues/6171
2015-12-07 16:44:54 +07:00
Austin Burdine
c8ac5f37e8 add team acceptance test 2015-12-06 15:24:06 -06:00
John Cruikshank
5e6ed119fa fixing 'undefined is not a function' error when loading apps 2015-12-04 23:00:37 -06:00
Hannah Wolfe
ef53b1bf00 Merge pull request #6161 from kevinansfield/jscs-deps
deps: jscs@2.6.0 & ember-suave@1.2.3
2015-12-04 10:33:19 +00:00
Kevin Ansfield
cc1fbd44cb Merge pull request #6098 from acburdine/tag-404
Fix 404 error handling in editor, tags, and team routes
2015-12-04 10:20:22 +00:00
Kevin Ansfield
d9d8446f02 deps: jscs@2.6.0 & ember-suave@1.2.3
no issue
- fixes an error that popped up after ember-suave's `brocolli-jscs` dependency moved to `2.6.0` which duplicated some of the rules that `ember-suave` used to implement
2015-12-04 09:58:03 +00:00
Austin Burdine
9f827204df fix 404 error handling in editor, tags, and team routes
closes #6094
- adds 404-handler mixin
- applies mixin to settings/tags/tag, editor/edit and team/user routes
- adds adapter-error test helper to override the default adapter error
2015-12-03 16:37:23 -06:00
Hannah Wolfe
4bfacf6b86 Change server-side labs utility to be synchronous
refs #6165

- Use the settings cache to populate config.labs whenever settings change
- Use the labs util just to check if a flag isSet synchronously
2015-12-03 16:05:50 +00:00
Hannah Wolfe
ea8533842d Merge pull request #6122 from kevinansfield/slug-query-with-include
Add count.posts support to user model on client
2015-12-03 14:48:21 +00:00
Gary Cao
75845ce4af Checkbox labels are cut off on mobile.
closes #6089
2015-12-02 18:28:50 +09:00
Sebastian Gierlinger
bc83dbce09 Merge pull request #6145 from ErisDS/view-refactor
Unify code for picking a template to render with
2015-12-02 10:02:31 +01:00
Brandon Hops
e5ee97bece Remove undefined function and fix some comments 2015-12-01 23:28:36 -08:00
Hannah Wolfe
7ebc7f7ff1 Merge pull request #6126 from sebgie/option-restore
Restore options
2015-12-02 12:13:36 +08:00
Hannah Wolfe
f8a05c533a Merge pull request #6154 from kevinansfield/use-embers-jquery
Remove `$` from jshint's predef, always use Ember's `$`
2015-12-02 12:07:54 +08:00
Hannah Wolfe
9f4c6957de Merge pull request #6155 from StevenMcD/issue_6140
Add .git folder to ignore folders list
2015-12-02 12:07:25 +08:00
Kevin Ansfield
413d999462 Remove $ from jshint's predef, always use Ember's $
no issue
- fixes problems with "re-definition of $" errors
2015-12-01 20:52:25 +00:00
Sebastian Gierlinger
ee275f4d0c OAuth Middleware refactor
refs #5286
- moved oauth server initialization to oauth.js
- moved generateAccessToken() to oauth.js
- added tests
2015-12-01 21:20:11 +01:00
StevenMcD
6956985c28 Add .git folder to ignore folders list
closes #6140
- simply added '.git' to the list of folder names to ignore when checking for valid themes.
2015-12-01 21:14:23 +02:00
Kevin Ansfield
81765c6af2 Fix sub-dir being added to navigation urls when installed in sub-dir
refs #4989
- fix handling of urls relative to base domain when ghost is installed in a sub folder

Fixes an issue when ghost was installed to a sub-dir, e.g. `example.com/blog` and an attempt to link to `example.com/` or `example.com/something-else` would always be re-written to `example.com/blog/` or `example.com/blog/something-else`.
2015-12-01 15:23:21 +00:00
Sebastian Gierlinger
84c8149f6a Merge pull request #6152 from kevinansfield/cleanup-dependency
Remove unused `ember-resize` dependency
2015-12-01 14:58:24 +01:00
Kevin Ansfield
063f2c318c Merge pull request #6147 from garyc40/bug-uploader-bind
Properly binds "this" in uploader.js
2015-12-01 13:08:00 +00:00
Kevin Ansfield
f37a4b5580 Remove unused ember-resize dependency
no issue
- removes `ember-resize` dep that crept back in under the radar in the Ember 2.2 update
- updates `ember-cli-build`'s test dependencies to match the format specified in http://ember-cli.com/managing-dependencies/#test-assets
2015-12-01 11:03:53 +00:00
Hannah Wolfe
395079cd2f Unify code for picking a template to render with
refs #5091

- 100% coverage for new frontend/templates file
- new module handles the logic for determining which template to render with
2015-12-01 12:05:46 +08:00
Gary Cao
e4c10c9688 Properly binds "this" in uploader.js
closes #6146
2015-12-01 12:50:31 +09:00
Austin Burdine
366e2fe3da deps: ember/ember-data@2.2.0 2015-11-30 12:23:47 -06:00
Austin Burdine
7cbe7281a8 deps: ember-cli@1.13.13 2015-11-30 11:21:39 -06:00
Kevin Ansfield
571b9e783a Always call _super when using Ember hooks
no issue
- review use of Ember core hooks and add a call to `this._super` if missing
- fix a few occurrences of using the wrong component lifecycle hooks that could result in multiple/duplicate event handlers being attached

`_super` should always be called when overriding Ember's base hooks so that core functionality or app functionality added through extensions, mixins or addons is not lost. This is important as it guards against issues arising from later refactorings or core changes.

As example of lost functionality, there were a number of routes that extended from `AuthenticatedRoute` but then overrode the `beforeModel` hook without calling `_super` which meant that the route was no longer treated as authenticated.
2015-11-30 12:45:37 +00:00
Kevin Ansfield
3d6856614f Use es6 across client and add ember-suave to enforce rules
no issue
- add ember-suave dependency
- upgrade grunt-jscs dependency
- add a new .jscsrc for the client's tests directory that extends from client's base .jscsrc
- separate client tests in Gruntfile jscs task so they pick up the test's .jscsrc
- standardize es6 usage across client
2015-11-30 10:41:01 +00:00
Kevin Ansfield
9437b8eeef Merge pull request #6108 from mixonic/no-rerender-selectors
Unify mobile state in JS, drop resize
2015-11-30 08:45:03 +00:00
Brandon Hops
0a06af02d5 Remove unused base_test.js 2015-11-28 18:46:13 -08:00
Hannah Wolfe
2ea4f67dd4 Merge pull request #6131 from sebgie/issue#6106-1
Origin Header revisited
2015-11-27 00:32:51 +08:00
Hannah Wolfe
a8d13dd332 Merge pull request #6129 from kevinansfield/invalid-origin-errors
Display error message on setup if origin doesn't match config.js url
2015-11-27 00:25:57 +08:00
Sebastian Gierlinger
245095c199 Origin Header revisited
closes #6106
- added override for my-ghost-blog.com
- added local IP addresses to be allowed
- changed localhost/127.0.0.1 to be allowed in production
2015-11-26 13:11:31 +01:00
Kevin Ansfield
0462dfed39 Display error message on setup if origin doesn't match config.js url
refs #6106
- add error handler for authentication step of blog setup
- move setup acceptance test out of 'settings' folder
2015-11-26 11:22:16 +00:00
Kevin Ansfield
f2c7e34c3f Fix missing error on signin when server has gone away
no issue
- `session.authenticate` calls out to jQuery for the ajax request which then raises it's own error but returns nothing when the server is not reachable. This is a quick fix so that we don't error and can pass through to the default error handler in the authentication step.
2015-11-26 11:15:17 +00:00
Hannah Wolfe
f25039c4b9 Docs link & unique error codes for startup checks
refs #5821, #6063

- switch out help test to go to a comprehensive doc
- change error codes from 1 to unique codes
2015-11-26 16:20:11 +08:00
Matthew Beale
402b27c7e9 Unify mobile state in JS, drop resize
In `gh-content-view-container` the visibility of another DOM node was
being used to detect if a given view was mobile or not. This means the
UI needed to have layout forced (and DOM rendered) before the content
view container would render a second time. This is slow interaction with
the DOM (forcing layout) and slow for Ember's renderer (it needs to
render the container once with a default, then again when the value
changes).

Additionally there were two ways resize was being observed. The
`Window.matchMedia` API was used for some styles and the `ember-resize`
addon used to detect other changes. Here I've unified around just the
`Window.matcheMedia` API but abstracted it behind a service.

Sizes are exposed as properties that can be bound to or used directly in
templates.
2015-11-25 11:54:08 -05:00
Sebastian Gierlinger
014e2c88dd Restore options
refs #6122
- restore original options after delete
- this is a fix for one use case, long term we should aim to leave
options untouched and execute special queries with temporary data
2015-11-25 09:59:27 +01:00
Kevin Ansfield
2b1f784d91 Add count.posts support to user model on client
no issue
- moves adapter tests from unit to integration as we are not testing them in isolation
- add test for querying user's by slug with `include=count.posts`
- add `count` attribute to User model
2015-11-24 17:11:35 +00:00
Kevin Ansfield
18472d7b33 Specify full SHAs when importing packages in bower.json
no issue
- removes warning: `bower password-generator#49accd7    short-sha Consider using longer commit SHA to avoid conflicts`
- fixes error: `bower jqueryui-touch-punch#*    error key must be a string or number. undefined`
2015-11-24 16:39:14 +00:00
Hannah Wolfe
d758acd4d0 Merge pull request #6118 from kevinansfield/rename-post_count
Update client for tag.post_count -> tag.count.posts rename
2015-11-24 06:42:37 +00:00
Kevin Ansfield
161591fc3d Update client for tag.post_count -> tag.count.posts rename
refs #6105
- adds `raw` ember-data transform to handle standard JSON `count` attribute
- update mirage factory to return correct `count.posts` format
- rename all uses of `post_count` to `count.posts`
2015-11-23 19:57:56 +00:00
Hannah Wolfe
904620ac23 Merge pull request #6116 from sebgie/issue#6106
Handling Origin Header
2015-11-23 17:46:20 +00:00