Commit Graph

421 Commits

Author SHA1 Message Date
Hannah Wolfe
9214f25dee Merge pull request #3165 from ErisDS/issue-3056
Replace the old admin with the ember admin
2014-07-01 09:04:22 +01:00
Hannah Wolfe
f70f99b5cf Replace the old admin with the ember admin
closes #3056

- Remove clientold
- Remove clientold tests
- Cleanup old admin helpers
- Remove old routes from admin and controllers from admin controller
- Comment out / remove old and broken tests
- Cleanup Gruntfile.js, bower.js, package.json etc

Still TODO:

- cleanup / add removed tests
- do we still need countable?
2014-07-01 08:33:17 +01:00
Matt Enlow
a82e6e8040 Use Device.js to determine mobile editor use
Ref #2570
- Adds new library, device.js to determine if the user is on an ios mobile
  or tablet.
2014-06-30 18:27:43 -06:00
Hannah Wolfe
48a2f9c70d Merge pull request #3144 from darvelo/sort-new-posts
New posts pass PostsController sorting function at the top
2014-06-30 16:23:51 +01:00
Sebastian Gierlinger
c8e8da4780 oAuth
closes #2759
closes #3027

- added oauth2orize library for server side oAuth handling
- added ember-simple-auth library for admin oAuth handling
- added tables for client, accesstoken and refreshtoken
- implemented RFC6749 4.3 Ressouce Owner Password Credentials Grant
- updated api tests with oAuth
- removed session, authentication is now token based

Known issues:
- Restore spam prevention #3128
- Signin after Signup #3125
- Signin validation #3125

**Attention**
- oldClient doesn't work with this PR anymore, session authentication
was
removed
2014-06-30 14:58:10 +02:00
David Arvelo
a958a66c4c New posts pass PostsController sorting function at the top
- PostsController orderBy function sorts posts with isNew to the top, otherwise their undefined dates fail to compare
- also catch when `updated_at` is undefined, happens when model is being written with results from the server
- catch objects of type Error in validation engine, helps catching client errors
- join server errors with BR tag in ajax util
- add `emberBuild` task to `grunt test-functional`
- add a test helper, `thenTransitionAndWaitForScreenLoad`, to test transitioning to major parts of the app
- add a test that transitions from Content to the Editor, and back to Content
2014-06-29 21:49:32 -04:00
Matt Enlow
3011834177 Add --init param to update_submodules grunt task
Closes #3141
2014-06-27 11:05:09 -06:00
David Arvelo
6658675646 Implement Mobile Editor
closes #2957
- add FastClick library to Gruntfile.js
- add touch-editor to client/assets/lib/
- add mobile-specific utils to util/mobile-utils.js
- add codemirror util to set up TouchEditor only if we're really on mobile
- change gh-codemirror from having a default action to a named action. prevents Ember.TextArea firing action on change
- change gh-codemirror `cm.getDoc().getValue()` to `cm.getValue()` for portability
- change codemirror-shortcuts ES6 export/import style
- changed ghostimagepreview.js to check for Ember.touchEditor in addition to Ghost.touchEditor
2014-06-24 18:33:43 -04:00
Maurice Williams
4c72c318d5 Re-implementing the loading indicator for the Ember admin
closes #2855 , closes #2848
- New  mixin that utilizes NProgress for displaying a loading indictor for all routes who's model issue a "loading" event (aka: when requesting data from the server during a route change).
- Also removing (the now unnecessary) "loading" template.
2014-06-23 10:01:33 -04:00
Hannah Wolfe
d159a5cced Merge pull request #3002 from novaugust/shortcuts
Implement Shortcuts in Ember
2014-06-21 15:15:50 +01:00
Hannah Wolfe
962accfec7 Functional tests for Ember
issue #2989

- Adds lodash for bind and isNumber - looking for a better solution for this
- Still needs the editor and flow tests porting
- Some of the tests are commented out awaiting further implementations
2014-06-20 15:20:59 +01:00
Matt Enlow
e10c0f20cf Implement Shortcuts in Ember
Closes #2988, #2752
Ref #1463, #2984,
 # Shortcuts via Keymaster
- Added KeyMaster to bower dependencies. KeyMaster is a minimal keyboard
  shortcuts library.
- Added `ShortcutsRouteMixin` for routes that will use shortcuts.
  Currently, only routes can have shortcuts. See the extensive comment
  at the top of `core/client/mixins/shortcuts-route.js` for a
  description of how to implement shortcuts.

 ## Other Changes
- Injected popover service into ApplicationRoute
- Created `EditorRouteBase` mixin for the `editor.new` and
  `editor.edit` routes to mixin.
- `StyleBodyMixin` now calls `this._super()` on `activate` and
  `deactivate` to play nicely with other mixins.

 ## Shortcuts and Stubs implemented
 #### Application-Wide
- `'esc':'closePopups'` shortcut **stub** to close popovers,
 modals, and notifcations

 #### Editor Shortcuts
- `'ctrl+s, command+s': 'save'` note that `command` is the
  `meta` key.
- `'ctrl+alt+p': 'publish'`
- `'ctrl+alt+z': 'toggleZenMode'`
2014-06-19 15:07:42 -06:00
Jason Williams
258a3cdb40 Improve error handling during bootstrap process
Refs #2986
-More thorough promise handling in bootstrap.js
-Catch rejected promises from the bootstrap module and force
 a Grunt failure instead of an erroneous success
-Adjust the bootstrap unit tests

fix
2014-06-19 12:59:16 +00:00
Hannah Wolfe
f97fcb8855 Show concise casper logs in Travis
- Casper logs have gotten too long and no longer display completely
- Implements custom casper.echoConcise which takes account of the concise flag
2014-06-17 21:53:56 +01:00
Hannah Wolfe
175fec2678 Rejigging grunt tasks
- bower only happens in init, not when running the tests as init should
always be run first
2014-06-15 18:38:52 +02:00
Hannah Wolfe
ace076b253 Allow extra options to be passed to casper tests 2014-06-15 10:44:36 +02:00
David Arvelo
eb949aafae Reach Editor parity with Ember
closes #2426, closes #2781, closes #2913
- Concatenate vendor files on change of js in core/shared/
- Add all the markerManager stuff to its own mixin
- make markers a shared object for all that mix it in. makes it easier to use helper functions in different modules
- add getMarkdown method, returns object with two keys holding the markdown: one with markers, the other without
- Clear markers when codemirror is destroyed
- make Editor subcomponents communicate through the Editor Controller
- Set Codemirror and html preview shared scrolling
- Set CodeMirror, html preview css scroll class with util
- Create 'scratch' property in Editor controller; prevents a model save wiping image markers due to markdown bindings
- Add editor and html preview actions to handle img upload start/finish
- disable codemirror when an image is being uploaded, enables on success or failure
- Fix editor wordcount when there are 0 words
- Add modal dialog when transitioning out of the editor with an unsaved post
- Add window.onbeforeunload handling with `.unloadDirtyMessage()` on editor controller
- and various other things
2014-06-13 18:12:03 -04:00
Robert Jackson
279908df66
Use loader.js from bower. 2014-06-08 19:39:45 -04:00
Lucas Holmquist
6d775fdd33 Implement a Generic Uploader - #2886 2014-06-07 19:58:16 -04:00
Lucas Holmquist
a0ba5cb1b1 Move jshint logic out of Gruntfile.js and into .jshintrc files 2014-06-02 10:55:49 -04:00
Hannah Wolfe
d8a5be1977 Merge pull request #2838 from aiampogi/master
Updated grunt-update-submodules to 0.4.0
2014-05-31 16:37:30 +01:00
Aia Patag
354151422e Updated grunt-update-submodules to 0.4.0
closes #2503
 - It can now have custom additional parameters to `git submodule update` instead of always having `--init --recursive --merge`
2014-05-31 10:05:03 +08:00
Jacob Gable
5abeadf80d Ember Data with Posts
Ref #2699

- Introduce ember data dependency
- Add loadInitializers and refactor most initializers into one combined
- Add Post ember data model
- Refactor generateSlug to use title of post and ghostPaths
- Refactor post controller to not reference model.property everywhere
- Use RESTAdapter for posts, users and tags
- Setup author and tag relations in Post model
- Fix broken API calls by adding CSRF header
- Add initiaizer for csrf value
- Use actual User model for current user initializer
- Add action for setting featured post, test with actual api call
- Fix the sending of UUID's up to the server
- Refactor current-user to use ember-data store
- If a user is preloaded in the application, use pushPayload to put it
in the store
- Do a lookup on the store to get an actual User model for injection
- Fix posts/post controllerName in route/new.js
- Alter signup process to push user into ember data store
2014-05-29 07:42:51 -05:00
Hannah Wolfe
d1f57a2569 Merge branch 'ember'
Conflicts:
	Gruntfile.js
	core/client/models/post.js
	core/client/models/settings.js
	core/client/models/user.js
	core/client/router.js
	package.json
2014-05-07 22:28:29 +01:00
Hannah Wolfe
046993add0 Docs: switch to docker & finalise config
- We no longer need grunt-groc as we are going to use docker instead
 - Compile docker to 'docs'
 - Docker has a nice option for only building updated files
 - Added a few files we didn't need dockering to exclude list
2014-05-05 23:04:14 +01:00
Jason Williams
4d41e12c02 Adjust update check to handle changes in API calls
closes #2681
- fixed api calls and response parsing
- added a test to for update check
- adjusted gruntfile.js to run new update check integration test
2014-05-04 01:36:00 +00:00
Hannah Wolfe
0c252fb687 Gruntfile Cleanup & Documentation
refs #2622, refs #1340

- added documentation to grunt tasks which will replace the wiki page, including reordering the tasks to make the documentation easier to read
- removed grunt changelog which is no longer used
- merged jshint:shared into jshint:server
- cleanup of quote marks, formatting, line lengths etc
- also fixed the incorrect version number for grunt-docker
- added route tests to coverage
2014-05-03 17:59:50 +01:00
Hannah Wolfe
f84d3d32e5 Adding docker for trying out docs generation
issue #2622

- yes 'docks' is a silly directory name but it's easier to remember which is which than docs and docs2
2014-05-03 12:38:59 +01:00
David Arvelo
b3ba64adbb Grunt clean .tmp/ when ember files are changed or deleted
closes #2658
- adds the `clean:tmp` task to the list of ember watch tasks
- adds the `clean:tmp` task to the emberBuild task

This ensures pruned ember modules are cleared out automagically.
2014-04-29 15:13:23 -04: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
e10c13aed3 Add warning message about master branch to grunt prod
closes #2594
2014-04-16 11:17:00 +01:00
Zach Schneider
58bc5cba63 Fix issues with bower assets in tests
- Ensure that there are no spaces in path so `bower install` succeeds
- Ensure that shell:bower is executed before tests are run

Fixes #1702
2014-04-10 16:45:28 -04: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
609be5eb26 Removing test-api from Gruntfile.js
closes #2443
2014-04-07 15:53:13 +01:00
surgesoft
e89e38dd4b Refactor the API route tests to use supertest
close #2443
- Refactor API tests from `/core/test/functional/api` to
  `/core/test/functional/routes/api`, using supertest instead of request
- Remove `core/test/functional/api` folder
2014-04-07 15:40:20 +01:00
Joel Fischer
758f844b8b Ghost footer outputs minified jquery in production
Closes #2524

- Added minifying jquery in grunt prod task

- Add test coverage for altered jquery
2014-04-06 08:42:25 -04:00
Hannah Wolfe
e6abe9bab7 Server start refactor, route tests use ghost app
closes #2442, issue #2182

- 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
Harry Wolff
81eb705a37 Create SettingsUserController
addresses #2422

- creates settings user controller

- creates user model object

- updates user fixture to be compatible with user model

- updates settings/user template

- add validator to Ember Admin

- use validator to validate user model is valid

- add mock response to /users/me/ path

- creates models/base file for all models to inherit from

- add mock response to /ghost/changepw/ path
2014-03-23 22:51:43 -04:00
Hannah Wolfe
c02fd70c63 Improving the showdown extensions
fixes #2381

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

- 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 #2385

- 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
Hannah Wolfe
80bdfd7967 Refactor the Ghost Editor
issue #2385, issue #2108

- Separate out the various objects which form the editor into their own
  modules
- Decouple the modules where possible
- Rename and reshuffle bits of modules for consistency
- Minimise public APIs of the modules, and ensure they are consistent
- Add comments to the modules
2014-03-17 23:06:12 +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
Fabian Becker
00fd9d9d91 Fix earlier commit for grunt watch.
refs TryGhost/Ghost-UI#18
- Trigger livereload when files in core/client/assets/css/ change
- Copy over new ghost-ui files when changed
2014-03-15 20:36:54 +00:00
Fabian Becker
c612ca2136 Watch changes in Ghost-UI
refs TryGhost/Ghost-UI#18
- Add bower_components/ghost-ui to grunt watch
2014-03-15 17:49:43 +01:00
Hannah Wolfe
c1ba89c120 Bower dependency cleanup
issue #2272

- handlebars version should match node (1.3.0)
- iCheck isn't used
2014-03-10 06:15:30 +00:00
Harry Wolff
7069b5027d Ensure grunt-contrib-watch watches appropriate files
for re-building ember admin when files change
2014-03-09 21:35:58 -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 #2368
- 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
Manuel Mitasch
47bfd046bb Add admin prototype
issue #2270

- from https://github.com/manuelmitasch/ghost-admin-ember-demo
- Not working properly: added ic-ajax mock in app.js but promise not resolving => loading route always active
2014-03-07 14:01:26 +00: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
8bfc37bd8e Fixing CodeMirror paths in GruntFile.js 2014-03-05 19:46:43 +00:00
Fabian Becker
e5ead739a1 Remove unused libraries.
refs #2326
- Remove unused libraries from core/client/assets/vendor/
- Add folder to .gitignore
- bower install is now handled by grunt init
2014-03-05 10:20:56 +00:00
Fabian Becker
cd74b0e232 Switch to bower for client assets.
fixes #2272
- 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 #2277
- Added ES6 linting to core/client/
- Fix typeof array comparison
2014-03-04 15:47:39 +00:00
Sebastian Gierlinger
7155d95f9d Add JSON API tests & cleanup
first 10 % of #2124
- 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
Andy
b49f10c33d Add support for typographically-correct punctuation
Closes #1795
- Added typography.js Showdown extension
- Updated RSS test to support new typographic quotes
2014-02-28 09:44:08 +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
Hannah Wolfe
bee58922b2 Rename client -> clientold
issue #2271

- should allow development of new admin UI whilst still having access to the old ui
2014-02-27 00:52:04 +00:00
Harry Wolff
d7815f4dff Update package.json for publishing to npm
address #2078

- removes private: true flag from package.json
- created .npmignore file and moved all of buildGlob
 file patterns into here, negating all patterns as
 the npmignore file defines what is to be excluded
 and not included.
- gruntfile now uses the inverse of the .npmignore file
 to define what files to include in a release
2014-02-23 09:38:47 -05:00
Harry Wolff
928b562948 Fix package.json scripts to be more in line with
expected behavior of npm packages

fixes #1053

- updates travis config to be more in line with
 current dev steps

- fix `grunt-cli` warning from appearing when
 running grunt
2014-02-18 22:53:21 -05:00
Harry Wolff
f16dc290b7 Improve bootstrap flow of a Ghost application
addresses #1789, #1364

- 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
John-David Dalton
6eab7b3f92 Replace underscore with lodash. 2014-02-06 14:08:34 +00:00
John O'Nolan
7ebd104f3f Rename 'plugins' to 'apps'
Fixes #1988
2014-01-21 15:45:27 +07:00
Hannah Wolfe
efe04a73dd Removing changelog from release
- this isn't required on account of GitHub & it being ENORMOUS
2014-01-09 21:53:28 +00:00
Hannah Wolfe
762f3c06ac Remove express server from grunt test-coverage
- currently the coverage report only runs for unit & integration tests, and these don't need the express server.
2014-01-04 14:09:59 +00:00
Hannah Wolfe
a697a631c2 Route tests
issue #1773

- Adds functional tests for frontend routing
- Tests the request-response contract
- Requires db access at the moment
- Tests #1790
2014-01-01 16:18:03 +00:00
William Dibbern
bf7692b151 Switch from multipart to busboy
Fixes #1227

- Removed deprecated `multipart` references.
- Setup `busboy` to pass along file streams and do a naive parse of form
values.
- Updated logic in file storage and db import to handle file streams
instead of the temporary files created by `multipart`.
2013-12-17 17:24:30 -06:00
Hannah Wolfe
2b7e18f028 Gruntfile cleanup
issue #1340

- remove old weekly and nightly builds and associated stuff
- add help task
- add more documentation / comments
2013-12-06 11:18:27 +00:00
Sebastian Gierlinger
06e3b158f4 Fix for failing tests
closes #1609
- added wait for output
- changed order of test tasks
2013-12-04 21:20:16 +01:00
Harry Wolff
89154ad997 Restore support for using ghost as a npm module fixes #1326 2013-11-27 17:39:14 +00:00
Harry Wolff
b920662790 Create the config module, initially used
to standardise getting paths and absolute URLs.  Easy
to extend for other configurations we may need.
2013-11-25 16:35:16 -05:00
Sebastian Gierlinger
3f2258e95b Replace cookieSession with session
- changed cookieSession to session
- added session.regenerate for login and logout
- added bookshelf session store
- added session table to database
- added import for databaseVersion 001
- added grunt task test-api
- cleanup of gruntfile to start express when needed only
- moved api tests to functional tests
2013-11-24 15:29:36 +01:00
Hannah Wolfe
b8a98660fb Merge pull request #1440 from JohnONolan/post-settings
Post settings refactor
2013-11-12 03:50:56 -08:00
Hannah Wolfe
cd12210b0b Further grunt & test cleanup 2013-11-11 21:38:52 +00:00
Hannah Wolfe
b2b273a63a Explicitly stop express server after tests
- resolves issue with validate task on windows
2013-11-11 21:10:28 +00:00
Hannah Wolfe
2e64fcc5d2 Coverage report task fix for Windoze 2013-11-11 20:56:36 +00:00
germanrcuriel
afbbee031e Add Coverage report for Unit and Integration tests
issue #361
- Added shell:coverage task to generate coverage report
- Registered test-coverage Grunt task as shortcut of shell:coverage
- Added coverage files to .gitignore
- Added require-cli and blanket to package.json
2013-11-09 18:58:27 +01:00
John O'Nolan
bbc1d0207e Kill iCheck cause Hannah says it has genital warts. 2013-11-08 14:38:23 +01:00
Sebastian Gierlinger
e2cee5be66 Move API tests to /integration/
closes #1396
- moved core/test/unit/api* to core/test/integration/api/
- moved core/test/integration/model* to core/test/integration/model/
- moved core/test/unit/utils to core/test/utils
- moved core/test/unit/fixtures to core/test/utils/fixtures/
- changed gruntfile.js to execute api tests with target 'integration'
2013-11-07 14:26:47 +01:00
Fabian Becker
0908ecf6b7 Run tests on MySQL and use travis-$DB environments.
refs #921
fixes #1385
2013-11-05 15:01:10 +00:00
Hannah Wolfe
60bef38298 Adding submodule update to grunt init
issue #1053

- not the greatest module, but perhaps one to re-create ourselves in future
2013-11-02 09:36:37 +00:00
Hannah Wolfe
56ea2bb557 Gruntfile.js cleanup & removed unused dependency
- grunt-open is no longer needed
- grunt build isn't used, so get rid.
2013-11-01 15:33:49 +00:00
Hannah Wolfe
df1571cecc Merge pull request #1369 from bengladwell/jslint-params
Remove unparam:true from jslint config in Gruntfile.js
2013-11-01 04:39:50 -07:00
Fabian Becker
933a8c764a Separate model tests to separate tasks/directory.
refs #921
2013-11-01 09:38:42 +00:00
Fabian Becker
3d42a3338f Run tests on MySQL and SQLite3.
fixes #921
2013-11-01 09:38:42 +00:00
Ben Gladwell
69d3a1460d Remove unparam:true from jslint config in Gruntfile.js
issue #1365
- added /*jslint unparam:true*/ to functions where absolutely necessary
- added /*jslint unparam:true*/ to functions in which keeping parameter
  list added clarity to the underlying api, even when those parameters
  are not currently used
- removed unused parameters in a few places
2013-10-31 14:02:34 -04:00
Zach Geis
45c2873e88 Grunt dev no longer opens browser
closes #1355
- dev task no longer calls open
2013-10-30 11:21:14 -05:00
Nick Schonning
5d24a4bf9d Move JS comments to task descriptions
- Makes them visible by "grunt --help"
- Normalize quoting to single
2013-10-25 01:58:58 -04:00
Hannah Wolfe
adcdeb0205 Merge pull request #1253 from halfdan/gruntfile-watch
Add core/server.js to grunt watch
2013-10-24 07:14:49 -07:00
Hannah Wolfe
39a777a5ea Merge pull request #1220 from mduvall/ruby-dependencies
Explicitly add Ruby dependencies to project
2013-10-24 02:39:56 -07:00
Matt DuVall
1580cccbf1 Explicitly add Ruby dependencies to project via Bundler
closes #1220
- This uses Bundler to install Ruby dependencies to handle explicit
  dependencies in provisioned environments
- The initial Gemfile contains SASS dependencies (sass and bourbon gems)
2013-10-23 18:16:16 -07:00
Fabian Becker
db0a182200 Add core/server.js to grunt watch 2013-10-23 20:58:28 +00:00
Hannah Wolfe
b76eeef27f Merge pull request #1167 from manzoid/add-target-to-grunt-test-functional
add a `target` arg to `grunt test-functional`
2013-10-22 14:45:37 -07:00
Hannah Wolfe
0d1fd56c0e Fixing client-side jslint exclude
- Gruntfile had an exclude for all of client/assets rather than client/assets/vendor
- Fixes missed jsLint errors
2013-10-22 22:06:22 +01:00
Hannah Wolfe
5d169610ce Merge pull request #1133 from gotdibbs/Issue1124
Fixed intermittent test errors
2013-10-22 07:59:50 -07:00
Tim Mansfield
725d1541d7 add a target arg to grunt test-functional
The idea here is to slightly speed up test development by allowing you
to specify a single test file to run.
2013-10-18 17:13:07 -07:00
Fabian Becker
58f07cefa3 Fix CasperJS warning. 2013-10-18 08:50:49 +00:00
William Dibbern
702a016547 Fixed intermittent test errors
Fixes #1124

- Updated default mocha timeout to 15 seconds. Any future tests that
depend on a timeout (and thus might be better off with a lower value)
can override the default setting which is now 15 seconds.
- Removed test-specific timeout overrides for the mocha tests.
- Fixed the editor/splitbutton tests to wait for the appropriate
selector instead of assuming the dom has been updated immediately.
Should resolve intermittent timeouts when checking the splitbutton's
applied classes.
2013-10-16 17:57:52 -05:00
Matthew Harrison-Jones
87269513d9 Included NProgress in Production Grunt concat 2013-10-15 11:18:57 +01:00
William Dibbern
ac33cea0a1 Clean up test database after tests
Fixes #1064

- Updated grunt config for unit and functional tests to remove the test
database after each is run.
- Cleaned up a couple of issues with the functional tests that may have
been causing travis builds to fail randomly, including: the start page
is now `about:blank` instead of whatever page the last test suite left
off at, added some checks in the logout tests to ensure they're truly
independent of the other test suites.
2013-10-14 22:39:52 -05:00
Peter deHaan
f4dabe07b5 Update Gruntfile.js
Removing double 'path' require()
2013-10-14 10:49:13 -07:00
Hannah Wolfe
119b0ea430 Merge branch '0.3.2-wip'
Conflicts:
	core/client/assets/lib/uploader.js
2013-10-11 20:56:15 +01:00
Hannah Wolfe
d47b19b491 Added grunt release task
closes #941

Conflicts:
	Gruntfile.js
2013-10-11 18:19:03 +01:00
Matthew Harrison-Jones
5daa46276c SCSS is now compressed on build 2013-10-10 15:27:07 +01:00
Matthew Harrison-Jones
58417c2a8d Added in functionality for a working loading bar 2013-10-08 16:39:07 +01:00
William Dibbern
8ef27f0590 Refactored tests
Fixes #362

- There is no need to set the viewport on functional tests anymore
unless something other
than the default of 1280x1024 is desired.
- There is no need to invoke `casper.run` to trigger `test.done`
anymore for functional tests.
- Each test works independently of the rest; registration is handled
once for the lifetime of the test run and then login/logout can be
invoked automatically as desired.
- Mocha tests all utilize predefined, more realistic fixtures when
appropriate.
- Renamed old api tests that were really model tests as appropraite.
- Added example api test for posts.
2013-10-07 21:05:25 -05:00
John O'Nolan
d1957958e3 Cleanup indentation and quotes
Aligns all requirements vertically for easier reading + adds single quote standard consistently throughout Ghost, except in long strings.
2013-09-26 15:06:31 +01:00
nicoburns
994263b033 Added grunt-contrib-clean task to clear build folder 2013-09-19 08:45:29 +01:00
Hannah Wolfe
a5af6edd1d Don't remove content images from build 2013-09-18 20:50:39 +01:00
Hannah Wolfe
0ea290df96 Grunt build and gitignore updates 2013-09-18 19:45:21 +01:00
nicoburns
3b3d7a7c34 Replaced Hammer.js with FastClick
Issue #149 Closes #519
- Uses FastClick to speed up click events instead of using Hammer.js tap
events
2013-09-17 22:11:13 +01:00
Hannah Wolfe
d5518c986a Adding grunt prod task
- compiles assets for production environment
2013-09-17 01:49:04 +01:00
Jacob Gable
63eb9581ea Compile assets with grunt
- Made a helper called ghostScriptTags that will spit out the relevant
  script tags with version parameter; 4 unminified files in development,
  1 minified file in production.
- Added grunt concat and uglify tasks to build files into core/built
- Fixed some unit tests by making them native date objects
2013-09-15 14:06:42 -05:00
Hannah Wolfe
596c1dccd2 Updating example config file
- url first, replaced with temporary URL with documentation
- mail config is a commented out example
- mail documentation link in config and mail file
- no more staging
- gruntfile updated to generate correct docs
2013-09-15 15:45:18 +01:00
Hannah Wolfe
63d8cbb87c Unit tests require config file to be present.
Conflicts:
	Gruntfile.js
	core/test/unit/admin_spec.js
2013-09-14 14:07:05 +01:00
Hannah Wolfe
003f9d2048 Fixing tests 2013-09-13 17:29:01 +01:00
Hannah Wolfe
e9d2646997 Refactoring tests to always run as expected
closes #721

- we now have grunt test-unit for safely running unit tests.
2013-09-13 15:12:38 +01:00
Hannah Wolfe
eb15a37850 Gruntfile cleanup 2013-09-12 21:03:01 +01:00
William Dibbern
9064914829 Added redirect to get rid of /page/1/
Fixes #592

- Added *permanent* redirect to ensure `/page/1/` isn't used and that
`/` is used instead.
- Added pageUrl helper (and unit tests) to generate client side url
fragment for blog pages conforming to the above standard.
- Updated pagination helper to use new `pageUrl` theme helper.
- Added functional tests for redirects and added scaffolding for
functional frontend tests in general.
2013-09-09 18:32:44 +01:00
Hannah Wolfe
b55ed1c33c CasperJS test amends
- removing --fail-fast as this prevents screenshots
- adding debug code for the good of all
2013-08-30 10:50:42 +01:00
Hannah Wolfe
fe713c1042 Further grunt validate / casperjs test improvements
- Test environment runs on a different port
- Removed wait() and replaced with waitFor() where possible
- Added more timeout functions / handlers
- General consistency improvements
2013-08-29 20:13:17 +01:00
Hannah Wolfe
f318d164d4 Adding Github Flavored Markdown support
closes #422, issue #295

- Added GFM mode to codemirror
- Took the github.js extension for Showdown and added all useful behaviour
- Now supports strikethrough, line breaking and
  multiple underscores, and auto linking urls & emails without breaking
  definition urls
- Also added definition url handling in preparation for #295
- Added unit tests for the extentions individually and integrated with
  showdown
2013-08-29 14:32:09 +01:00
Hannah Wolfe
5a9db4dc76 Casperjs tests now use test DB 2013-08-29 11:04:33 +01:00
William Dibbern
badd6d10d4 Added CasperJS Functional Test to Build
Fixes #363

- Added new grunt task to run casperjs tests.
- Added prerequisites (sass/bourbon/casperjs) to travis config.
- Updated failing functional tests to use more robust `waitFor`
statements.
- Updated capserjs `base.js` file to use a password which conforms to
our 8 character minimum.
- Added necessary logout to first test and also registration step to
ensure a user is present in the system.
2013-08-26 16:28:41 -05:00
William Dibbern
ff3a9dde00 Patch to prevent timeouts in unit tests
Temporary patch for #362

- Split out database teardown and initialization so they each have their
own 2 second timeout.
- Added some test-specific increased timeouts.
2013-08-24 16:07:15 -05:00
Jacob Gable
7a5cccf4c2 Add LiveReload Grunt Dev Task
Adds the ability to run a new task via `grunt dev` that will watch our
sass, templates and javascript files for changes and reload them in the browser.

Also, refactored the Gruntfile to auto load all grunt-* tasks to remove
some code.
2013-08-17 13:56:02 -05:00
Hannah Wolfe
2f11f053ab Minor code cleanup, docs and other bits & pieces 2013-08-06 22:24:40 +01:00
Hannah Wolfe
338109c762 Data models import, export, and reset for 002
- added line to index.js to set node_env to development if it is not set
 - fixed a small bug with the persistent notifications and used them on debug page from server side
 - added 002 files to manage export and import for 002
 - 002 import is somewhat smarter than 001, merging settings (except version), replacing user & clearing primary keys
 - added reset to models and migration, which does the down operation the same way that init does the up operation
 - import and reset clear session & redirect to login / signup
 - additional unit tests
2013-08-05 13:56:30 +01:00
Christopher Giffard
c9914618a7 Added changelog generation to build in gruntfile
Fixes #291

Incorporated new task into gruntfile which generates a markdown formatted
changelog from the git commit messages of the last 14 git tags, corresponding
to two weeks of nightly releases.

The changelog is saved in __dirname/CHANGELOG.md.

At this stage, the code is a fair bit too complex to be left in the gruntfile
and should be split out into a separate module, but this is a first bash at the
function which can be improved later.

Additionally, several additions have been made to the generator to improve
reliability:

- Now generates changelog based on log output with --graph (thx hannah)
- Grabs tag refs from git
- Added changelog to gitignore
- Added message for builds without any changes
- Ignores any commits which have not been incorporated into a build
2013-08-01 17:12:59 +10:00
Hannah Wolfe
68cc640d23 Merge pull request #319 from ErisDS/test-playground
Added functional tests for Ghost Admin UI using Casperjs
2013-07-31 05:14:26 -07:00
Hannah Wolfe
6a2851e9ca JSLint fixes for new version
- forgot to force install
- had to clean up grunt task now we no longer need the 'm' alias
- cleaned up a couple of issues it wasn't picking up before
2013-07-31 09:21:22 +01:00
Hannah Wolfe
2b9be5376e Added functional tests for Ghost Admin UI using Casperjs
Hacky implementation of a suite of casper tests. This is here so that we can start to build up some tests.
Main thing missing is being able to simulate keypresses for CodeMirror
Making the tests run nicely with grunt, travis and be independent rather than interdependent can all come later.
- See tests/functional/base.js for full usage instructions & implementation notes
2013-07-31 08:33:28 +01:00
Ricardo Tomasi
56448b4ea4 Ignore shared/vendor in lint task 2013-07-24 23:21:57 +01:00
Gabor Javorszky
b77a8fd0d9 Notifications on front end
Should close #37. There are persistent and passive notifications.

Persistent ones:
* are stored on `ghost.notifications`.
* have an api made to add / remove them with client side ajax logic (probably not the most elegant, but works)
* uses a modified `flashes.hbs` template
* will only disappear if user closes the bar
* stack

Passive
* added with backbone view / collection combo
* stack
* disappears on navigation and when user closes it
2013-07-22 14:41:27 +01:00
Hannah Wolfe
3d3d42bd7c issue #245
hbs templates not building with correct paths
missed a couple of assets paths in settings
2013-07-11 21:00:41 +01:00
Hannah Wolfe
30b4eb07f7 App restructure - closes #245
- This is a first pass at getting a more logical structure. The focus is on moving from admin/frontend to client/server.
- The location of the databases is highly important, this isn't expected to change again
In the future
- client/assets should probably become public/
- more stuff should be shared (helpers etc)
- cleanup some confusion around tpl and views
2013-07-11 20:23:34 +01:00
Hannah Wolfe
9268d6ef11 More config for build tasks - issue #211
- using grunt config to provide nicer commit and tag messages
2013-07-11 15:24:33 +01:00
Hannah Wolfe
3bfeece520 Added weekly build tasks - closes #211
- updated grunt file with the tasks for running a weekly build
2013-07-11 15:05:10 +01:00
Jacob Gable
42681cbb65 Add bump pushes to build branch 2013-07-09 19:45:57 -05:00
Hannah Wolfe
c475dd2b9a Merge pull request #250 from jgable/switchToMochaCli
Switch to grunt-mocha-cli
2013-07-09 17:40:33 -07:00
Jacob Gable
12c205473f Remove validate task from nightly build 2013-07-09 19:10:35 -05:00
Jacob Gable
8545f5806e Switch to grunt-mocha-cli
The grunt-mocha-test task seems to be causing problems with our
beforeEach handlers in some cases. The grunt-mocha-cli task runs the
mocha command using grunt.util.spawn for more consistent results
2013-07-09 18:34:19 -05:00
Jacob Gable
2b7ba8044b Switch to bump:build 2013-07-09 13:56:19 -05:00
Jacob Gable
63ba3c77ee Update grunt-bump min version and add bump:git
The latest version of grunt-bump adds bump:build and bump:git support
2013-07-09 13:07:19 -05:00
Hannah Wolfe
3d2b56b6a9 Config and naming
- issue #154, issue #224 and issue #220
- change port number from 3333 to 2368
- change main file name from app.js to index.js
- update README & package.json to match
2013-07-07 16:50:50 +01:00
Jacob Gable
a6bd6aa78c Modify build files to move artifacts inside of project 2013-07-01 16:24:59 -05:00
Jacob Gable
9f6f17b9ac Add bump option to not push 2013-07-01 15:58:47 -05:00
Hannah Wolfe
0973002b71 Updated grunt groc config, the documented way of listing files didn't work 2013-06-25 19:10:33 +01:00
Hannah Wolfe
ba810fb0bb issue #58 - removing the iiwf
Function wrapper and use strict pragma removed from all node files
2013-06-25 13:46:50 +01:00
Hannah Wolfe
2c7245e0e5 issue #58 - removing the iiwf
In order to remove the iiwf we need to be able to lint backend and frontend code separately.
Changed our devDependency for grunt-jslint to use a fork which has multiTask (PR sent to main repo)
Updated Gruntfile with split rules for the jslint tasks
As a result, a few files failed to pass the new rules, these have been fixed and added to the commit
2013-06-25 13:38:41 +01:00
Matthew Harrison-Jones
6399d51d93 Convert to Grunt-Groc
Documentation can now be generated with `grunt docs`.
2013-06-25 11:26:55 +01:00
Jacob Gable
ccdb63cc71 Rename tmpl directory to tpl and remove content level
Should close #137.
2013-06-19 15:24:07 -05:00
Hannah Wolfe
f5e46449ef closes #103 - deployments
Added a standard grunt build task for doing deploys, this works in tandem with the ghost-deploy.sh script
Switched grunt-zip for grunt-contrib-compress as it seems more stable/reliable
2013-06-18 22:28:30 +01:00
Hannah Wolfe
1369789aec closes #150 - Updating Grunt
Grunt tasks are now hopefully a little bit less confusing
Have updated the readme to match
2013-06-15 19:33:52 +01:00
Gabor Javorszky
b0b11573f6 Restricting Admin user creation
Solves #138.
* Removed user and user_roles from fixture
* Restricted user creation to one user. That user is id 1, is admin
* Changed tests so they accommodate for this fact
* Can not create new user (fails on test, flashes on signup)
2013-06-15 10:10:26 +01:00
Jacob Gable
d1300bb49c Nightly build task
Add a `grunt nightly` build task that copies needed files to a build
folder, then zips them up for distribution. We can also add a tag and
push it to github but I've only tested it with throwaway branches.

I made some guesses about the build folder and dist folder.  If you
have a better way feel free to give some recommendations.

Related to #102.
2013-06-10 09:00:32 -05:00
ErisDS
d047692c73 Removing the tmpl directory from jslint 2013-06-06 08:10:58 +01:00
Tim Griesser
c4f6c99ca1 moving handlebars compile target, adding notification when saving post, using Ghost.View rather than modifying Backbone.View's prototype 2013-06-04 08:41:25 -04:00
Tim Griesser
e5ce70e175 Added models & collections for various pieces
Saving post as draft, or publishing
Added HBS parser for some client tmpls
Parsing paginated posts
Added grunt watch for hbs parsing on updates
2013-06-03 00:56:57 -04:00
Jacob Gable
9ec2396213 Fix JSLInt errors and port existing nodeunit tests to mocha 2013-05-26 12:34:05 -05:00
Jacob Gable
05ca58951b Merge changes from upstream 2013-05-25 11:55:23 -05:00
Jacob Gable
601e261439 Fixing tests and adding settings provider. 2013-05-25 11:48:15 -05:00
Gabor Javorszky
b39efd2680 Made Ghost work with bourbon, grunt init works again 2013-05-25 15:11:30 +01:00
Ricardo Tomasi
6f12870e70 Add task for API tests 2013-05-23 09:20:59 -03:00
Jacob Gable
8ecb8a7d67 Remove predefined globals list in favor of node:true and browser:true 2013-05-14 10:07:41 -05:00
Jacob Gable
b88e69a3cc Switch to grunt-jslint 2013-05-14 10:04:22 -05:00
Jacob Gable
6da08eaf3c Make stricter jshint rules, convert tabs to spaces 2013-05-13 14:18:20 -05:00
Jacob Gable
99c13c02c0 Initial Grunt configuration 2013-05-12 08:40:59 -05:00