1
0
mirror of https://github.com/TryGhost/Ghost.git synced 2024-12-23 19:02:29 +03:00
Commit Graph

800 Commits

Author SHA1 Message Date
Hannah Wolfe
3eb284e4b5 Update & grunt-groc and fix docs errors
issue 

- Updated grunt-groc to 0.4.5
- Fixed the few places which made the docs fail to generate
- There is still a mix of styles
2014-04-21 19:04:20 +01:00
Hannah Wolfe
16c8080636 Merge branch 'master' into ember
Conflicts:
	core/client/models/post.js
2014-04-21 18:35:38 +01:00
Hannah Wolfe
82897ed949 Merge pull request from shindakun/editbug2619
Do not redirect to editor if parameter does not equal edit.
2014-04-21 19:05:18 +02:00
Hannah Wolfe
0756b35656 Merge pull request from szelpe/email-test
[API] Added email sending endpoint to the API.
2014-04-21 18:41:08 +02:00
Jacob Gable
cf7c8aab3b Tag API: Primary Document Format
Closes 

- Change tags browse() response to { tags: [...] }
- Update client side collection to use nested tags document
- Update test references to use response.tags
2014-04-20 19:48:59 -05:00
Hannah Wolfe
0ac9c5037f Merge pull request from
Post response move pagination -> meta
2014-04-20 23:33:51 +02:00
Steve
87077f2218 Do not redirect to editor if parameter does not equal edit.
Closes 
- If edit parameter is 'edit' redirect to editor.
- If edit parameter is anything other then undefined redirect to 404.
- Create edit post tests.
- Test redirect without trailing slash.
- Test redirect to editor.
- Test redirect to 404.
2014-04-20 00:35:56 -07:00
Sebastian Gierlinger
32ea948675 Post response move pagination -> meta
closes 
- moved ‚pagination‘ to ‚meta‘ property
- added response test for pagination property
- changed ‚next‘ and ‚prev‘ to be set to null and exist on every
response
- removed unnecessary call to API for RSS author
2014-04-19 17:03:20 +02:00
Sebastian Gierlinger
910bab8a6e Added user to export call
fixes 
- added user to db.exportContent()
2014-04-18 09:21:16 +02:00
Sebastian Gierlinger
664b002f43 missing semicolon + console.log 2014-04-16 18:49:07 +02:00
Sebastian Gierlinger
e47e9c62d0 Add permissions to API
closes 
- added permissions check to db, users and posts
- added register method to users
- added doesUserExist method to users
- added user from session to internal calls
- changed permissible to overwrite canThis
- removed action map and action type from permissable method
2014-04-16 18:22:22 +02:00
Sebastian Gierlinger
61e94a6e8b Use current user in models
closes 
- fixed apiContext as suggested in the issue
- added user to options object for models
- added api.users.register() for public registration
- changed models to use options.user for created_by, updated_by,
author_id and published_by
- added override to session model to avoid created_by and updated_by
values
- added user (id: 1) to tests
- added user (id: 1) for registration
- added user (id: 1) for import, fixtures and default settings
- added user (id: 1) for user update
- added user (id: 1) for settings update (dbHash, installedApps, update
check)
- updated bookshelf to version 0.6.8
2014-04-16 18:20:09 +02:00
Jacob Gable
88d82ff441 canThis() improvements
- Handle passing undefined user to canThis
  - Add existence check to parseContext if statement
  - Add unit test that passes undefined to canThis
- Allow internal canThis() checks
  - Allow passing 'internal' or { internal: true } as context
  - Do not lookup user permissions unless context.user found
  - If context.internal, resolve immediately
  - Add unit tests for passing 'internal' and { internal: true }
2014-04-16 18:17:43 +02:00
Fabian Becker
b8e8f63e44 Adds additional fields to apps schema.
fixes 
- Adds slug, version and status fields to apps schema
- Added fields to data generator
2014-04-16 18:16:10 +02:00
Sebastian Gierlinger
c0dc8e95d2 Add new permissions to fixtures
closes 
- added new permissions
- added relation to user roles
- added updateFixtures to migrateUp
- removed validation per model to fix tests
2014-04-16 18:16:10 +02:00
Jacob Gable
13d2d04c72 App Permissions from package.json
Progress on 

- Add new AppPermissions class with read() method
- has default permissions to read and browse posts
- uses default permissions if no package.json
- uses default permissions if no ghost object in package.json
- errors when reading malformed package.json
- uses ghost.permissions if found in package.json
2014-04-16 18:14:56 +02:00
Fabian Becker
41cef386bc Implements Models & Data API for Apps
closes 
- Adds new models for AppField and AppSetting
- Removed permitted attributes from App model (handled by base)
- Added reference from Post to AppFields
- Added fixture data to DataGenerator
- Added integration tests for Apps, AppSettings, AppFields
- Added import for Apps
- Added app_fields to default fixtures
2014-04-16 18:14:56 +02:00
Fabian Becker
7b003beb17 Schema additions for apps.
fixes 
- Added app_settings, app_fields, app_fields_relations tables
2014-04-16 18:06:39 +02:00
Jacob Gable
9369dd3bf7 Add app permission checking to canThis
- Pass permissions loading to buildObjectTypeHandlers to eliminate
shared state
- Load both app and user permissions to check
- Check app permissions if present
- Create apps table and App model
- Move effectiveUserPermissions to permissions/effective
- Change permissable interface to take context; user and app.
- Add unit tests for app canThis checks and effective permissions
2014-04-16 18:06:39 +02:00
Hannah Wolfe
9447b4ec2a Merge pull request from halfdan/filter-context
Implement filter context
2014-04-16 11:39:06 +01:00
Sebastian Gierlinger
9321289c1d Move post API to primary document format
closes 
- added new format to post API methods
- added post object parsing and wrapping to admin
- removed unused ‚user‘ object from API response
- updated tests
2014-04-16 12:09:03 +02:00
Peter Szel
2433116cc6 Added email sending endpoint to the API.
closes 

- Added new API module named 'mail'
- Added routes for the mail endpoint
- Added 'send a test email' button to the debug settigns page
- Added handler to this button which sends and AJAX request to the mail API endpoint
2014-04-09 23:56:21 +02:00
Hannah Wolfe
c746a88b2e Merge branch 'master' into ember
Conflicts:
	Gruntfile.js
	core/client/assets/lib/showdown/extensions/ghostdown.js
	core/client/views/editor.js
	core/clientold/assets/lib/showdown/extensions/ghostdown.js
	core/shared/lib/showdown/extensions/ghostimagepreview.js
	core/test/unit/showdown_client_integrated_spec.js
	core/test/unit/showdown_ghostimagepreview_spec.js
2014-04-07 22:26:53 +01:00
Hannah Wolfe
0bf2a5ada0 Merge pull request from jaswilli/fix/issue-2563
Build correct path on image upload when config has custom content path
2014-04-07 15:31:28 +01:00
Jason Williams
e3056990cd Build correct path on image upload when config has custom content path
closes 
- build path relative to imagesPath (which contains the custom content path)
  instead of appRoot
- added test for custom content path
- added logic to tests for Windows url building to handle cases where Windows
  functionality is being tested on a unix operating system
2014-04-07 05:01:39 +00:00
Hannah Wolfe
68fe40442b Merge pull request from joeljfischer/minify-jquery
[WIP] Ghost footer outputs minified jquery
2014-04-06 23:15:48 +01:00
Hannah Wolfe
9e358fb922 Merge pull request from novaugust/theme_error
Fixed check for a theme's custom error.hbs
2014-04-06 19:22:29 +01:00
Fabian Becker
c2e416fc9d Implement filter context
closes 
- Added a new unit test for context based filters
- Accept new parameter `context` in doFilter
2014-04-06 15:43:11 +00:00
Joel Fischer
758f844b8b Ghost footer outputs minified jquery in production
Closes 

- Added minifying jquery in grunt prod task

- Add test coverage for altered jquery
2014-04-06 08:42:25 -04:00
Hannah Wolfe
395d7fd3e2 Merge pull request from novaugust/last_login
Added populate last login time per 
2014-04-05 19:50:36 +01:00
Hannah Wolfe
c38c778dbc Merge pull request from ErisDS/issue-2442
[WIP] Server start refactor, route tests use ghost app
2014-04-04 13:21:28 +01:00
Hannah Wolfe
e6abe9bab7 Server start refactor, route tests use ghost app
closes , issue 

- Server start refactored - messaging is just messaging, deferred resolves the httpserver so that the connection can be closed
- Updated travis config to set node env
- Updated example config to be less travis-specific
- Route tests updated to use this new functionality
- Grunt test-routes simplified
2014-04-04 12:45:18 +01:00
Matt Enlow
345fe1a6d4 Fixed check for a theme's custom error.hbs:
Closes 
- Checks for property `error.hbs` on active theme
- Added unit test to ensure `error` view is rendered when activeTheme has
  a custom error template.
- Removed unused variable, `userErrorTemplatePath` from errorHandler
- Refactored errorHandler.`updateActiveTheme` to take one argument, the new active theme, and to then check if the active theme has an error.hbs
- Changed errorHandler unit test to use rewire for mocking config.
2014-03-29 08:19:51 -06:00
Hannah Wolfe
7e95b4d291 Merge pull request from sebgie/move-slug
Rename getSlug to slug
2014-03-28 17:12:55 +00:00
Matt Enlow
f8d90f1cc6 Added populate last login time
closes 
- sets last_login when user is saved if user status changed to active
- added integration test in user Basic Operations
2014-03-27 12:29:43 -06:00
Hannah Wolfe
c6c4d5a8a8 Cache invalidation for tag pages 2014-03-26 12:45:54 +00:00
Hannah Wolfe
31fa3bab3a Error handling for require-tree
fixes 

- ideally we would create an apps directory if one isn't present, but we can deal with that in later versions
2014-03-25 22:38:48 +00:00
Hannah Wolfe
2f097ce906 Merge pull request from sebgie/duplicate-tags
Deduplicate upper-/lowercase tags for posts
2014-03-25 13:30:44 +00:00
Hannah Wolfe
438cbab68e Ensure generateSlug gets transaction for tags
fixes 

- add transacting to tag saving
- add same to users while we're here
2014-03-25 11:14:17 +00:00
Hannah Wolfe
1fbe4d0be7 Merge pull request from
Fix delete button
2014-03-24 18:47:25 +00:00
Sebastian Gierlinger
a3aba2d504 Deduplicate upper-/lowercase tags for posts
server side check for 
- added check for duplicate tags in post model
2014-03-24 19:08:06 +01:00
Hannah Wolfe
41d127d5b1 Merge pull request from ErisDS/user-msgs
Update some server side errors/warnings
2014-03-24 17:58:11 +00:00
Hannah Wolfe
bd417339fc Merge pull request from halfdan/2493-import-tmp
Unlink import file when finished
2014-03-24 16:24:22 +00:00
Sebastian Gierlinger
b83fc25613 Fix delete button
closes 
- added when.all() to wait until all posts are deleted before deleting
tags
- added a test
2014-03-24 14:49:23 +01:00
Hannah Wolfe
ba1c1bd25d Update some server side errors/warnings
issue 

- add help messages to all package.json errors/warnings
- change the pageUrl warning to have the correct version numbers
2014-03-24 13:39:44 +00:00
Fabian Becker
f0c6052c73 Unlink import file when finished
fixes 
- Update db import version (in case it doesn't exist)
- Properly unlink file after import or error
2014-03-24 10:51:10 +01:00
Hannah Wolfe
13b65cecb9 Redirect feed -> rss
closes 

- reserved 'feed' in the list of reserved keywords for slugs
- added a 301 redirect from /feed/ to /rss/
- added a route test, and realised that standard express redirects don't get the right headers
- fixed the headers across all 301 redirects & added tests for the admin redirects
- removed the redirect from /ghost/login/ to /ghost/signin/ as this happens automatically if you're logged out, and isn't very useful if you're logged in as it just redirects again to /ghost/
2014-03-24 09:46:39 +00:00
Hannah Wolfe
ae3c36797a Merge pull request from ErisDS/issue-2480
Customise slug base name for different models
2014-03-23 21:24:37 +00:00
Jason Williams
f0fedb9c30 Replace spaces in uploaded filenames with hyphens
closes 
- use hyphens instead of underscores when santising filenames
- updated tests
2014-03-23 20:56:02 +00:00
Hannah Wolfe
a0dff19b7a Customise slug base name for different models
fixes 

- when the santisation of a slug results in an empty string, we use a basename instead.
- this was 'post' and is now the table name for the model, minus the trailing 's'
- this isn't massively robust but works as a temporary fix
2014-03-23 18:52:25 +00:00
Hannah Wolfe
f981e71e3c Merge pull request from ErisDS/error-cleanup
logError & logWarn call console.log once
2014-03-23 15:30:41 +00:00
Hannah Wolfe
0bfcac15dd logError & logWarn call console.log once
fixes 
2014-03-23 15:20:20 +00:00
Fabian Becker
5abaabd100 Tag archive body_class
closes 
- Show tag-template class on tag pages
- Show tag-{{name}} class on tag pages
- Show archive-template only on second page of tag pages
2014-03-22 13:43:13 +00:00
Hannah Wolfe
2f159cb7df Merge pull request from halfdan/2148-rpc
Add XML-RPC ping
2014-03-20 19:14:23 +00:00
Fabian Becker
9e7469e3ea Add XML-RPC ping
closes 
- Added core/server/xmlrpc.js
- Hook into post::saved to ping when a published post gets saved
- Added node package to hook into http requests
2014-03-20 17:53:32 +00:00
Hannah Wolfe
c02fd70c63 Improving the showdown extensions
fixes 

- renamed the ghost extensions
- added new html tests
2014-03-20 17:08:13 +00:00
Hannah Wolfe
d8f724d94d Removing typography extension
issue 

- The typography extension is still interfering in HTML blocks, reference style links and other bits and pieces it probably shouldn't be :(
- We'll add it back when it's ready.
2014-03-20 13:22:28 +00:00
Hannah Wolfe
5bed81563e Add shim for codemirror on touchscreens
fixes 

- stolen the CM shim from js-bin
- if we're on a touchscreen device, don't use CM
- if we're on a touchscreen device, show a coming soon message for uploads
2014-03-19 09:26:45 +00:00
Sebastian Gierlinger
22bbf57830 Rename getSlug to slug
another 2 % of 
- renamed `/ghost/api/v0.1/posts/getSlug/ to
`/ghost/api/v0.1/posts/slug/`
- renamed method getSlug to generateSlug
2014-03-18 14:00:33 +01:00
Fabian Becker
428fb94278 Fixes random pg failures.
fixes 
- Updates knex to latest version
- Fixes expected value in page test
- Change fixture insertion to be sequential
- Add orderBy to insertMorePostsTags fixture helper
2014-03-17 10:54:31 +00:00
Hannah Wolfe
79a333b480 Merge branch 'master' into ember
Conflicts:
	bower.json
	core/client/views/editor.js
2014-03-16 20:52:44 +00:00
Harry Wolff
3296a3a41c Flesh out more of the Ember admin
no issue

- this ports over screens from old admin to
 allow people to begin working on aspects of the screen

- All logged out screens have been imported: Signup, Signin,
 Forgotten password, reset password

- Those screens are now ready for behavior to be ported over

- This also updates templates to be more in line with how they were
 in the old admin

- Littered through the code are @TODO comments of functionality that is
 missing and will need to be resolved before this is production ready

- Also scaffolds out the settings screen and every tab
2014-03-16 16:01:56 -04:00
Manuel Mitasch
ca9a23f2d6 Ember.js: Add assets img + css (ember-hacks.css) to ember admin
Closes 

- Adds the images to `core/client/assets/img`
- Adds css with ember hacks to `core/client/assets/css`
- Configures middleware to provide assets as static files at url `/ghost/ember`
- Adds ember option to assets helper
- Modifies default-ember.hbs to use ember option on asset helper
- Remove inline style definition in editor.hbs
- Modifies .gitignore to include ember-hacks.css (in ignored `core/client/assets/css` folder)
2014-03-15 00:08:15 +01:00
John O'Nolan
8ea0b8a5d1 Moar iOS mobile friendly fandango
* Minimalise up in this what http://visuellegedanken.de/2014-03-13/viewport-meta-tag-minimal-ui/
* Webapp capable all over the hello
* Consistent self-closing meta tags and shit

This needs to be merged into the ember branch. Probably.
2014-03-13 23:47:46 +01:00
Hannah Wolfe
60e316581a Merge pull request from halfdan/2062-robots
Serve default robots.txt
2014-03-13 21:30:04 +00:00
Fabian Becker
c3417fe090 Serve default robots.txt
closes 
- Server robots.txt from theme if available
- Serve default robots.txt from /core/shared/ otherwise
- Added tests for default robots.txt
2014-03-13 21:31:41 +01:00
Johan Stenehall
4556e1df0a Rss support for tags
closes 
- added routes for /tag/:slug/rss and /tag/:slug/rss/:page
- added support for tag in the rss controller
- added route tests for each extra case
- fixing a tiny typo in some test descriptions
2014-03-13 00:12:41 +01:00
Hannah Wolfe
41dc833f19 Merge pull request from hswolff/ghost-startup
Add promise to ghost startup process to allow
2014-03-11 15:52:06 +00:00
Harry Wolff
3e21940b18 Add promise to ghost startup process to allow
hooking into when ghost has finished loading

addresses item 9 in 
and makes progress on 

- has files that startup ghost return a promise
 that is resolved once ghost has finished loading
- moves getSocket into config file
- removes models.reset() as it's not used anywhere
- update functions in server startup
- remove unused version hash variable
2014-03-11 11:41:45 -04:00
Kyle Nunery
c917c0f0eb Blog post titles will now be properly escaped in rss (xml) feeds (reopens )
Closes 
2014-03-10 11:45:34 -04:00
Harry Wolff
9983e05535 Add HTML5 pushState support for Ember
- also updates associated route
2014-03-09 20:57:13 -04:00
Hannah Wolfe
9415a232b0 Merge branch 'master' into ember
Conflicts:
	.gitignore
	.npmignore
	Gemfile.lock
	Gruntfile.js
	bower.json
	core/clientold/assets/fonts/icons.dev.svg
	core/clientold/assets/fonts/icons.eot
	core/clientold/assets/fonts/icons.svg
	core/clientold/assets/fonts/icons.ttf
	core/clientold/assets/fonts/icons.woff
	core/clientold/assets/sass/ie.scss
	core/clientold/assets/sass/layouts/auth.scss
	core/clientold/assets/sass/layouts/editor.scss
	core/clientold/assets/sass/layouts/errors.scss
	core/clientold/assets/sass/layouts/manage.scss
	core/clientold/assets/sass/layouts/plugins.scss
	core/clientold/assets/sass/layouts/settings.scss
	core/clientold/assets/sass/layouts/users.scss
	core/clientold/assets/sass/modules/animations.scss
	core/clientold/assets/sass/modules/breakpoint.scss
	core/clientold/assets/sass/modules/breakpoint/_context.scss
	core/clientold/assets/sass/modules/breakpoint/_helpers.scss
	core/clientold/assets/sass/modules/breakpoint/_no-query.scss
	core/clientold/assets/sass/modules/breakpoint/_parsers.scss
	core/clientold/assets/sass/modules/breakpoint/_respond-to.scss
	core/clientold/assets/sass/modules/breakpoint/parsers/_double.scss
	core/clientold/assets/sass/modules/breakpoint/parsers/_query.scss
	core/clientold/assets/sass/modules/breakpoint/parsers/_resolution.scss
	core/clientold/assets/sass/modules/breakpoint/parsers/_single.scss
	core/clientold/assets/sass/modules/breakpoint/parsers/_triple.scss
	core/clientold/assets/sass/modules/breakpoint/parsers/double/_default-pair.scss
	core/clientold/assets/sass/modules/breakpoint/parsers/double/_default.scss
	core/clientold/assets/sass/modules/breakpoint/parsers/double/_double-string.scss
	core/clientold/assets/sass/modules/breakpoint/parsers/resolution/_resolution.scss
	core/clientold/assets/sass/modules/breakpoint/parsers/single/_default.scss
	core/clientold/assets/sass/modules/breakpoint/parsers/triple/_default.scss
	core/clientold/assets/sass/modules/forms.scss
	core/clientold/assets/sass/modules/global.scss
	core/clientold/assets/sass/modules/icons.scss
	core/clientold/assets/sass/modules/mixins.scss
	core/clientold/assets/sass/modules/normalize.scss
	core/clientold/assets/sass/screen.scss
2014-03-09 23:04:36 +00:00
Fabian Becker
921ceb7be7 Replace SASS with assets from Ghost-UI
closes 
- Remove Ruby dependency (Gemfiles)
- Remove sass/fonts from core/client/assets/
- Add copy task to Gruntfile to copy over ghost-ui assets
- Install Ghost-UI via bower
- Changed .npmignore/.gitignore
- Remove grunt-contrib-sass dependency
- Remove mentions of Ruby in CONTRIBUTING.md
2014-03-09 22:50:37 +01:00
Dan Schnau
b13db3a9d2 Do not cache 404 pages
closes 

- remove call to set cache-control in 404 response header
- update unit tests to expect this

Fix up unit tests
2014-03-06 20:06:07 -05:00
John O'Nolan
161afbf3c4 Update system emails to come from ghost@blog.url
Closes 
2014-03-06 12:03:00 +01:00
Hannah Wolfe
31f41822e0 Merge branch 'master' into ember
Conflicts:
	.gitignore
	Gruntfile.js
	bower.json
	core/client/assets/lib/showdown/extensions/ghostdown.js
	core/client/assets/vendor/showdown/extensions/ghostdown.js
	core/client/router.js
	core/clientold/assets/vendor/chart.min.js
	core/clientold/assets/vendor/codemirror/addon/mode/overlay.js
	core/clientold/assets/vendor/codemirror/codemirror.js
	core/clientold/assets/vendor/codemirror/mode/gfm/gfm.js
	core/clientold/assets/vendor/codemirror/mode/gfm/index.html
	core/clientold/assets/vendor/codemirror/mode/gfm/test.js
	core/clientold/assets/vendor/codemirror/mode/markdown/index.html
	core/clientold/assets/vendor/codemirror/mode/markdown/markdown.js
	core/clientold/assets/vendor/codemirror/mode/markdown/test.js
	core/clientold/assets/vendor/countable.js
	core/clientold/assets/vendor/fastclick.js
	core/clientold/assets/vendor/icheck/jquery.icheck.min.js
	core/clientold/assets/vendor/jquery.hammer.min.js
	core/clientold/assets/vendor/nprogress.js
	core/clientold/assets/vendor/packery.pkgd.min.js
	core/clientold/assets/vendor/showdown/extensions/ghostdown.js
	core/clientold/assets/vendor/showdown/showdown.js
	core/clientold/assets/vendor/validator-client.js
	core/test/unit/client_ghostdown_spec.js
	core/test/unit/client_showdown_int_spec.js
2014-03-05 23:10:44 +00:00
Hannah Wolfe
2c524c1d8e Merge pull request from polygonix/2320-detect-tag-hbs 2014-03-05 19:49:29 +00:00
Mark Stacey
65b0968f40 Change validation for posts 'page' attribute.
issue 
- changed validation for 'page' to expect '0' or '1', rather than 'true' or
  'false'
- Added a 'can change a post to static page' test
- Added a 'can change a static page to a post' test
2014-03-04 17:59:00 -03:30
Jonathan Johnson
e4bb6d08cc Update validator to 3.4.0
Closes 

- Convert to new api usage for both server-side and client-side
- Provide way require a negative response for boolean methods in
  default-settings.json
- Add field validation functional tests
  - Settings (General)
    - Title length validation
    - Description length validation
    - postsPerPage, numeric, min, max
  - Settings (User)
    - Bio Length validation
    - Location length validation
    - Url validation
  - Login
    - Email validation
  - Editor
    - Title required validation
2014-03-04 13:54:24 -07:00
Hannah Wolfe
8d3a54527b jsHint fixes
issue 

- bad merge order = broken tests
2014-03-04 20:32:04 +00:00
Hannah Wolfe
585ea121a4 Merge pull request from shashankmehta/apps-config
Shifts app UI behind config option
2014-03-04 20:21:13 +00:00
Fabian Becker
cd74b0e232 Switch to bower for client assets.
fixes 
- Remove libraries from shared/vendor
- Remove libraries from client/assets/vendor
- Add bower to package.json and postinstall
- Add bower.json with dependencies
- Add scripts from bower_components to concat/uglify
- Fix tests
- Serve jquery from /ghost/built/theme/
2014-03-04 20:09:26 +00:00
Fabian Becker
1a9e91f120 Replace JSLint with JSHint.
closes 
- Added ES6 linting to core/client/
- Fix typeof array comparison
2014-03-04 15:47:39 +00:00
Hannah Wolfe
c4bf3052e1 Merge pull request from jgable/requireTree
Refactor require-tree to not share messages and export parsePackageJson
2014-03-04 12:20:32 +00:00
Johan Stenehall
825ba4fb82 Use tag as title on tag pages
closes 
- added check for tag in coreHelpers.meta_title and use if set
- added test for correct title on tag pages

Rewritting to tag - blogtitle based on comments from PR
2014-03-04 11:52:27 +01:00
polygonix
97daa2bdec Detect tag.hbs template in themes
closes 
- changed detection from "tag" to "tag.hbs" in "frontend.js" contrroller
2014-03-03 16:41:37 +11:00
Shashank Mehta
a92c8085c5 Shifts app UI behind config option
Closes 
- adds helper for checking whether to show apps UI or not
- hides app UI from settings page
2014-03-03 02:52:30 +05:30
Johan Stenehall
be8b9cf092 Fixing typo in allowedSections for allowed pages under settings 2014-03-02 12:46:03 +01:00
Hannah Wolfe
708ba6f8b0 Merge pull request from
Add validation from schema.js
2014-02-28 23:04:04 +00:00
Sebastian Gierlinger
7155d95f9d Add JSON API tests & cleanup
first 10 % of 
- added initial version of JSON API tests
- renamed error.errorCode to error.code
- renamed tags.all to tags.browse for consistency
2014-02-28 22:26:03 +00:00
Hannah Wolfe
d996ff68e7 Merge pull request from
Remove res.redirect from db.exportContent
2014-02-28 21:30:58 +00:00
Hannah Wolfe
028d396185 Merge pull request from
Fix problems from importing 0.4.0 file
2014-02-28 21:20:42 +00:00
Jacob Gable
b4ea8bed61 Refactor require-tree to not share messages
- Pass in messages to each method so they are not shared
- Export each method for calling individually
- Update reference to default export of require-tree
- Add default values for messages if not passed in
2014-02-28 14:13:45 -06:00
Hannah Wolfe
ea7385abbc Merge pull request from hswolff/custom-page-templates
Custom Page Templates
2014-02-28 19:58:35 +00:00
Gabor Javorszky
667888aeb3 Implements Initial lifecycle and App UI start
Closes 

* Added hbs template for apps listing
* Added settings to read the activeApps
* Added viewcontrol to activate / deactivate apps
* Added API handler to store activeApps (by `name` in the `package.json` file)
* On button click it turns the button into "Working" and changes class to `button` (grey one)
* On success, rerenders the pane, adds success notification about apps being saved
* On error, rerenders the pane, adds error notification with error message

Missing:
* tests: couldn't figure out how to add mock apps with mock package.json data
* actually registering, etc, re 
* icon from the sidebar
2014-02-28 14:06:36 +00:00
Hannah Wolfe
c64148f361 Merge pull request from caerphoto/1795-typography
Add support for typographically-correct punctuation
2014-02-28 10:49:06 +00:00
Andy
b49f10c33d Add support for typographically-correct punctuation
Closes 
- Added typography.js Showdown extension
- Updated RSS test to support new typographic quotes
2014-02-28 09:44:08 +00:00
Hannah Wolfe
895180fbf0 Merge pull request from jondavidjohn/from-address-default
Change fallback from address to webmaster@[blog.url]
2014-02-27 15:56:46 +00:00
Sebastian Gierlinger
67611045e7 Remove res.redirect from db.exportContent
closes 
- added frontend route /ghost/export/
- removed request handling from API
2014-02-27 16:48:38 +01:00
Fabian Becker
12f8f99088 Implements the #has Block helper
closes 
- Added new #has block helper
- Added several tests for #has helper
2014-02-27 11:16:21 +00:00
Harry Wolff
4334c3deb6 Move Ember Admin to use es6 modules
- adds required dependencies to package.json
 and to bower.json
- added required Grunt tasks to transpile and
 concat ember admin files
2014-02-26 23:48:54 -05:00
Harry Wolff
2295c9470b Add basic template for Ghost admin in Ember
Inspired and derived from:

https://github.com/taras/Ghost/compare/ember-admin
https://github.com/manuelmitasch/ghost-admin-ember-demo
https://github.com/stefanpenner/ember-app-kit
2014-02-26 20:39:45 -05:00
Harry Wolff
edfc98f65f Create base route for ember admin 2014-02-26 20:02:12 -05:00
Hannah Wolfe
bee58922b2 Rename client -> clientold
issue 

- should allow development of new admin UI whilst still having access to the old ui
2014-02-27 00:52:04 +00:00
Sebastian Gierlinger
ae06239834 Fix problems from importing 0.4.0 file
fixes 
- added mysql ‚true’/‚false‘ values as ‚0‘/‚1‘
- removed all core settings from import
2014-02-25 20:15:32 +01:00
Hannah Wolfe
310fcab7ed Cleanup naming & order in admin controller
no issue

 There seemed to be no convention or order to the functions in the admin controller, so I have:
 - organised them
 - reordered them
 - added a small doc-block
 - reordered some routes
 - updated tests accordingly
2014-02-25 10:51:12 +00:00
Hannah Wolfe
aa15b464c8 /ghost/reset/* should not redirect to signin
fixes 
2014-02-25 10:44:16 +00:00
Jonathan Johnson
917eca3244 Change fallback from address to webmaster@[blog.url]
This change is needed because the previous default of the user's email
address is too often mismatched against the site domain, triggering spam filters.

Fixes 
- added `fromAddress()` to GhostMailer to handle this logic
- added unit tests to `mail_spec.js`
2014-02-24 20:28:37 -07:00
Hannah Wolfe
2246b8a803 Cleaning up unused blocks 2014-02-24 17:43:24 +00:00
Harry Wolff
2cb02b55e1 Custom Page Templates
fixes 

- creates new ./server/helpers/tempalte.js method
 which returns the correct view to use when rendering

- updates fronted controller to check if a custom page template
 exists and if so then uses that to render the static page

- adds additional class name to body_class helper when
 a custom page template is being rendered

- adds tests to address all new features
2014-02-22 21:17:02 -05:00
Sebastian Gierlinger
b1c35a9b6c Fix importer adds the same tags to every post
fixes 
- updateTags used tags that were overwritten by an async operation
2014-02-21 22:54:56 +01:00
Kyle Nunery
89cd1a3640 Updated pageUrl helper to page_url
issue 
2014-02-20 15:29:14 -06:00
Hannah Wolfe
23bc9413e6 Merge pull request from mjbshaw/useless-regex
Remove useless regex for redirecting /ghost -> /ghost/
2014-02-20 18:51:28 +00:00
Hannah Wolfe
f2d2757a31 Merge pull request from mjbshaw/fix-subdir
Respect subdirectory in authenticate middleware
2014-02-20 18:51:11 +00:00
Michael Bradshaw
b410f5833b Respect subdirectory in authenticate middleware 2014-02-20 09:46:20 -07:00
Michael Bradshaw
cb6d0d8dfe Remove useless regex for redirecting /ghost -> /ghost/ 2014-02-19 18:19:42 -07:00
Hannah Wolfe
bee5bde491 Merge pull request from samccone/sjs/show-error-on-import-failure
Show parse error message during a failed import
2014-02-19 20:56:01 +00:00
Hannah Wolfe
6af7d8fa3f Merge pull request from ErisDS/theme-debug
A first step towards theme debugging
2014-02-19 18:49:50 +00:00
Sebastian Gierlinger
ac7f4f05c4 Add validation from schema.js
closes 
- added data/validation/index.js
- added generic validation for length
- added generic validation for nullable
- added validations object to schema.js for custom validation
- removed pyramid of doom from api/db.js
2014-02-19 18:32:23 +01:00
Sam Saccone
d9e7a05fbc Show parse error message during a failed import
adds support for outputting error message during a failed JSON.parse
This will help people identify the problem with their JSON source
and hopefully be able to aid them in resolving said issue.
2014-02-19 11:52:35 -05:00
Sebastian Gierlinger
ea6c601b01 Improvements for models
#closes 
- removed models as parameter for bookshelf-session
- changed to read permittedAttributes from schema.js
- changed updateTags to be executed at saved event
- added validate to execute after saving event
- added test for published_at = null (see )
- fixed typo in general.hbs
2014-02-19 14:57:26 +01:00
Hannah Wolfe
e81924282c Merge pull request from
Make session expiry less arsey
2014-02-18 22:05:44 +00:00
Hannah Wolfe
1eac0bd25d Merge pull request from halfdan/2112-tag-helpers
Helper updates for Tag Pages
2014-02-18 21:14:51 +00:00
Hannah Wolfe
6992e990dc Merge pull request from hswolff/tag-pages
Adds tag pages
2014-02-18 20:59:10 +00:00
Harry Wolff
9ab4b7d4d5 Adds tag pages
fixes 

- modified Post model to support a tag query
  param that will filter the desired post collection
  to only include posts that contain the requested tag

- in the updated Post model it includes the Tag model
  under a nested object called 'aspects'

- added tests for updated Post model, updating
  test utils to add more posts_tags relations

- adds two new routes to frontend,
  one for initial tag page,
  another to page that tag page

- for tag pages the array of posts
  is exposed to the view similarly
  to the homepeage

- on the tag view page the information
  for the tag is also accessible
  for further theme usage

- the tag view page supports a hierarchy of
  views, it'll first attempt to use a tag.hbs
  file if it exists, otherwise fall back
  to the default index.hbs file

- modified pageUrl and pagination helper
  to have it be compatible with tag paging

- added unit tests for frontend controller

- added unit tests for handlebar helper modifications

- add functional tests for new tag routes
2014-02-18 15:10:02 -05:00
Fabian Becker
6083cfcd85 Remove unneeded extend implementation.
refs , 
- Replace extend with _.extend
2014-02-17 16:34:24 +00:00
Hannah Wolfe
173e60caba Merge pull request from halfdan/2103-connect-logging
Add logging config option
2014-02-16 19:59:32 +00:00
Hannah Wolfe
8e78f79f9e A first step towards theme debugging
issue 
- allow handlebars log helper to output to console in dev mode
2014-02-15 20:46:44 +00:00
Sebastian Gierlinger
d3c641ea31 Make session expiry less arsey
closes 
- added authentication middleware
- removed authentication from routes
- moved authentication before CSRF validation
- moved caching rules before authentication
- changed/added test
2014-02-14 11:00:11 +01:00
Gabor Javorszky
212711d896 Added package.js support for themes (and plugins)
Closes 
* Amended require-tree to populate availableThemes and availablePlugins to use full file names (`basename.ext`) as keys instead of just basename. This way `image.jpg`, `image.png`, `image.gif` won't overwrite the `image` key.
* Amended require-tree to allow package.json file parsing to return the contents of the file as json on the `package.json` key.
* settings api populates theme data `package` if it exists. Otherwise it assigns `false` to it
* `general.hbs` (salute) was reworked to if there is the package key on the theme is not false, it will use the `name` and `version` keys of that. You can break it by not having a `name` or `version` in the package.json file.
* Added error and warning messages for package.json file parse errors and misses
2014-02-13 23:57:58 +00:00
Fabian Becker
1124d9e4c0 Helper updates for Tag Pages
fixes 
refs 

- modified config.urlFor to handle tag pages

- modified {{#tags}} handlebars helper to autolink to
  tag pages. Additional autolink="false" parameter can
  be used to deactivate autolinking

- modified url handlebars helper to handle tags

- added isTag function to schema

- added unit test for additional urlFor functionality

- added unit test for {{#tags}} helper modifications

- added unit test for url handlebards helper
2014-02-13 18:32:08 +01:00
Fabian Becker
691e9e773b Add logging config option
closes 
- Deactivate logging for testing environments
- Override logging with settings from config
2014-02-10 21:07:11 +00:00
Hannah Wolfe
d790a504a3 Ensure filters get default priority if priority is null
- null priority should be set to the default
- second part to 86619cb087
2014-02-10 18:14:47 +00:00
Hannah Wolfe
b04c0bb83c Merge pull request from hswolff/permalink-upgrade
Adds support for additional permalink structures
2014-02-10 18:05:43 +00:00
Harry Wolff
b066e732dd Adds support for additional permalink structures
fixes 

- uses express’ Route object to create RegExp’s
 that we use to check the incoming path
- refactored structure of fronted controller single
 tests to be easier to read
- amend regex to incorporate new allowed permalink
 structure
2014-02-10 12:07:43 -05:00
Fabian Becker
3993b676b6 Rename unregisterFilter to deregisterFilter
fixes 
- Rename functions
- Adjust tests
2014-02-10 12:44:07 +00:00
Fabian Becker
3950c8b30a Fix for broken filters where this context was lost.
fixes 
- Change tests to only check for existance
- Properly bind helpers/filters to their instance
2014-02-10 01:45:24 +01:00
Hannah Wolfe
3c5b931432 Merge pull request from jgable/appDependencies
Install App Dependencies
2014-02-09 12:47:46 +00:00
Jacob Gable
e3affff713 Install App Dependencies
- Spawns an npm install command from the App root
- Has some special OS checks for windows command spawning
2014-02-08 16:58:13 -06:00
Hannah Wolfe
d28d65bf5e Merge pull request from hswolff/config-file-option
Adds ability to pass in configFile path when loading ghost as a npm module
2014-02-08 22:37:09 +00:00
Fabian Becker
f468b464a6 Allow HTML inside tag prefix/suffix
closes 
- Return hbs.Safestring
- Manually escape joined tags
- Added test
2014-02-08 22:27:36 +01:00
Harry Wolff
9dd543231b Adds ability to pass in configFile path when loading
ghost as a npm module

- modifies main script file to allow it to
take in an options object that currently
supports an express instance or a config file path

- added tests
2014-02-08 10:41:15 -05:00
Hannah Wolfe
1783a895de Merge pull request from jgillich/patch-1
Don't require mail.options to be set
2014-02-08 15:22:50 +00:00
Hannah Wolfe
37b7907c09 Merge pull request from hswolff/improve-bootstrap-flow
Improve bootstrap flow of a Ghost application
2014-02-08 14:36:29 +00:00
Harry Wolff
f16dc290b7 Improve bootstrap flow of a Ghost application
addresses , 

- Moves ./core/server/loader -> ./core/bootstrap.
The bootstrap file is only accessed once during startup,
and it’s sole job is to ensure a config.js file exists
(creating one if it doesn’t) and then validates
the contents of the config file.

Since this is directly related to the initializing 
the application is is appropriate to have 
it in the ./core folder, named bootstrap as that
is what it does.

This also improves the dependency graph, as now
the bootstrap file require’s the ./core/server/config
module and is responsible for passing in the validated
config file.

Whereas before we had ./core/server/config
require’ing ./core/server/loader and running its
init code and then passing that value back to itself,
the flow is now more straight forward of
./core/bootstrap handling initialization and then
instatiation of config module

- Merges ./core/server/config/paths into 
./core/server/config
This flow was always confusing me to that some config
options were on the config object, and some were on
the paths object.

This change now incorporates all of the variables
previously defined in config/paths directly
into the config module, and in extension,
the config.js file.

This means that you now have the option of deciding
at startup where the content directory for ghost
should reside.

- broke out loader tests in config_spec to bootstrap_spec

- updated all relevant files to now use config().paths

- moved urlFor and urlForPost function into 
 ./server/config/url.js
2014-02-07 17:34:21 -05:00
Hannah Wolfe
0dc0a9bb7c Merge pull request from aiampogi/issue-2114-rssFeeds
Removed author tag inside channel tag in RSS
2014-02-07 11:52:41 +00:00
Jakob Gillich
5e4db70fd0 Don't require mail.options to be set 2014-02-07 11:17:22 +01:00
John-David Dalton
6eab7b3f92 Replace underscore with lodash. 2014-02-06 14:08:34 +00:00
balduv
eadbf7dffb Removed author tag inside channel tag in RSS
closes 
- instead of putting author in feedOptions of node-rss, it was moved to itemOptions
- supplying author: user ? user.name : null in itemOptions will still result to creating a dc:creator tag inside item tags so the info needed to have the author is still there like before
- node-rss should however still fix this quirk to not have that nasty author tag in channel tag when you supply author in feedOptions
2014-02-05 13:59:07 +08:00
Jacob Gable
c7713c1d27 Load Apps Sandboxed
- Based on suggestions from hswolff loading with a Module class approach
- Loads relative modules in child sandboxes
2014-02-04 15:46:31 -06:00