Commit Graph

510 Commits

Author SHA1 Message Date
William Dibbern
b92980ce6d Fixed word count grammar
Closes #349
- Added utility function to pluralize when appropriate.
2013-08-11 11:55:42 -05:00
John O'Nolan
8762f531a7 Removed my personal information from fixtures as Ghost is starting to get deployed more frequently now for testing purposes.
Don't want random test sites accidentally ranking in search engines for my name.
2013-08-10 15:42:54 +02:00
Christopher Giffard
e484d9224e Themes: Added truncation to hbs content helper
Fixes #256

- Developed and linked new module, downsize, for tag-safe truncation
- Altered existing content handler to accept options for truncation
- Added tests for handler

Using truncation:

{{content words=10}}
{{content characters=256}}
2013-08-07 19:45:37 +10:00
Hannah Wolfe
2f11f053ab Minor code cleanup, docs and other bits & pieces 2013-08-06 22:24:40 +01:00
Hannah Wolfe
eac3047d45 Merge pull request #339 from javorszky/iss282
Users can change password
2013-08-06 01:17:43 -07:00
Hannah Wolfe
226e641602 Merge pull request #338 from cobbspur/upload-plugin
Added image upload reusable plugin
2013-08-06 01:02:30 -07:00
Hannah Wolfe
4537843359 Fixing unused variables 2013-08-06 09:00:12 +01:00
Hannah Wolfe
a56b77f733 Minor update to notification frontend api
- motivation was an error message on the settings screen
 - now requires slightly less code to add a notification
2013-08-06 08:55:47 +01:00
Gabor Javorszky
071f9769c6 Users can change password
Closes #282
* Added a new route
* Added new methods
* Triple security!
* Passwords are actually changed
* Also added a change password button, because 'save' has too much baggage.

On security: checks whether you're logged in. Then checks whether your old password is actually the one that belongs to you (gets value from the email field for the email, see caveat no2). Checks the new passwords for === and length > 6 on client and server side as well. And THEN changes passwords.

Caveats:
* didn't add a test, as mocha fails spectacularly on my machine. SQLITE_CORRUPT: database disk image is malformed. Cute, huh?
* Because we don't have / I'm not aware of / could not find a "currentuser" variable, I need to get the email address of the user we want to change from the email field. Theoretically if they replace that with another user's email address, and supply their pw, they will change THEIR password instead of their own.
2013-08-06 00:49:06 +01:00
cobbspur
558c9d6caa Added image upload reusable plugin
issue #40 and issue #280

- Adds uploader jquery plugin
- includes settings for enabling/disabling upload progress bar
- adds routing for image uploads
- adds directories by year and month based on upload date
- Implements plugin on settings - general pane
- Implements plugin on editor
- adjusted general tab to save uploaded image src

TODO:
- Add error handling
- Storing information on editor
- Add events
2013-08-05 23:01:48 +01:00
Hannah Wolfe
1815656778 Merge pull request #267 from jgable/pluginApi
Initial Plugin API Implementation
2013-08-05 12:29:19 -07:00
Hannah Wolfe
52dc22c952 Editable user profiles in settings screen
closes #276

 - settings screen now loads a model when a pane is requested, rather than when the whole screen is requested
 - added browse, read and edit methods and routes for users to the API
 - added user model & template to client and wired everything up.
 - provided default images for cover and profile picture
2013-08-05 18:26:44 +01:00
Jacob Gable
0238909281 Initial Plugin API Implementation
Implements basic functionality described in #227 for loading plugins
from a specific directory and having a specific workflow with an init()
method and a disable() method.
2013-08-05 11:15:17 -05:00
ErisDS
8d7336a1fb Persistent notifications should not fade out
issue #333
- css fix
2013-08-05 13:56:30 +01:00
Gabor Javorszky
6c48505701 Fixed persistent success notifications
Closes #333
* Refactored the Ghost.Notifications View bundle
* Added a new initialization of the NotificationCollection (hacky, but at least satisfies JSLint). This was needed as the reason the persistent success notification couldn't be dismissed was that prerendered DOM elements weren't picked up as BB Views beforehand, and thus no events were bound to them.
2013-08-05 13:56:30 +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
ErisDS
2a5e7ad516 Data model additions for post tags, custom data and uploads
closes #171, closes #314, closes #315

- added settings for blog logo and icon
- all other settings will need to be added as needed as it's impossible to guess what the default value should be
- added tables for post tags
- added tables for post custom data
- added location column to users
- fixeed minor bug in migrations
2013-08-05 13:56:30 +01:00
Jacob Gable
9393a956f4 Magnificent Migrations of Magical Majesty 2013-08-05 13:56:30 +01:00
Hannah Wolfe
11be64c544 Merge pull request #336 from matthojo/Delete-modals
Moved delete post confirm alert to new modal format
2013-08-05 03:49:16 -07:00
ErisDS
ec3c322652 Casper tests for CodeMirror editor
There are still some issues surrounding spaces and new lines which will need to be worked out, but we can at least start to test some of the markdown.
2013-08-05 10:31:04 +01:00
Matthew Harrison-Jones
6b791a4c10 Moved delete post confirm alert to new modal format 2013-08-05 10:16:31 +01:00
Hannah Wolfe
ec1ced9089 Bugfix for signup screen
caused by issue #326
 - implementing fade in and center on signup form by applying the functionality to a shared view
 - login and signup now both extend the shared view
2013-08-03 19:24:06 +01:00
Hannah Wolfe
2d8b5ea8c1 Backbone template cleanup
- Ghost.View now extends Ghost.TemplateView giving all views access to subviews and templates
- Views which implemented templates no longer need to
- Some views needed to re-override render which is a bit annoying
- Settings screen now has sub-templates for each pane and for the sidebar
- Additional Casper tests for settings screen
2013-08-03 16:37:06 +01:00
Hannah Wolfe
bb9a5226a8 Merge pull request #331 from jgable/overrideTemplates
Allow theme partials to override helper templates
2013-08-03 07:21:57 -07:00
Hannah Wolfe
c30187ad20 Merge pull request #326 from matthojo/admin-temp-removal
Removed `admin-ui-temp.js` and moved code to it's relative places
2013-08-03 07:21:10 -07:00
Jacob Gable
d40c08218e Allow theme partials to override helper templates
Added an existence check to the loadTemplates function
2013-08-02 13:36:37 -05:00
Hannah Wolfe
373f64a2bd Revert "Merge pull request #318 from matthojo/mobile-interactions"
This reverts commit f18c7f22c3, reversing
changes made to 4ea9d77b11.
2013-08-01 22:19:20 +01:00
Matthew Harrison-Jones
41aa2b9012 Removed admin-ui-temp.js and moved code to it's relative places 2013-08-01 15:28:13 +01:00
Hannah Wolfe
46ed73ee86 Merge pull request #325 from matthojo/Dashboard-Padding
Bug Fix: Dashboard now has correct bottom padding
2013-08-01 06:24:26 -07:00
Hannah Wolfe
a15210d2dc Merge pull request #323 from javorszky/iss278
Login / Signup forms now use Backbone
2013-08-01 06:20:05 -07:00
Matthew Harrison-Jones
3cb0af1f8f Bug Fix: Dashboard now has correct bottom padding 2013-08-01 13:34:14 +01:00
Hannah Wolfe
f18c7f22c3 Merge pull request #318 from matthojo/mobile-interactions
Improved mobile interactions
2013-08-01 00:12:25 -07:00
Christopher Giffard
d72dab071c Added simple unit tests for ghostdown extensions
(RE: discussion in pull #317)

-   Unit tests enforce well formedness of ghostdown processor function
    and what it returns.
-   Ensures image markup is recognised and replaced accurately.
2013-08-01 16:04:42 +10:00
Christopher Giffard
09ada68d9b Updated Ghostdown image regex
Updated dropzone regex to capture existing URL flag. Also supports the shorter markdown image syntax, and corrects issues with special characters in the alt field, fixing issue #146.
2013-08-01 15:53:31 +10:00
Gabor Javorszky
f36dc3c942 Login / Signup forms now use Backbone
* Moved most of control code to `core/client`
* Implemented ajax checks
2013-08-01 02:11:45 +01: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
Matthew Harrison-Jones
efeede877d Improved the semantics of the Settings page
This introduces a new class of `.form-group` to replace the label containing the elements.

I have also included `name=""` attributes to inputs where there were non.
2013-07-31 12:40:46 +01: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
Matthew Harrison-Jones
27b85744f1 Improved mobile interactions
This is simply a commit which improves the mobile interactions. This does not fix UI problems on mobiles.

New interactions;

Menu
* Swipe right on header to show sidebar
* Swipe left on sidebar to hide

Content
* Tap / Swipe left on item to show preview
* Swipe right to show content list

Settings
* Tap / Swipe left on link to show settings
* Swipe right on settings to show links
2013-07-30 15:27:38 +01:00
Hannah Wolfe
97eb827d47 Replaced user menu label with current Ghost version no
closes #286
- added current version as an app.local variable available on both client and server
- swapped out the user menu label for the version no
2013-07-30 12:56:16 +01:00
Matthew Harrison-Jones
b089e67154 Improved modal creation, now includes info and action types. 2013-07-26 15:32:44 +01:00
Matthew Harrison-Jones
3057945b70 Refactored menu fading to be a plugin for extendability.
Need to find suitable place for the `.overlay` hideAway function call.
2013-07-26 12:32:26 +01:00
Hannah Wolfe
8b0763ee9c Merge pull request #311 from matthojo/copy-to-html-modal
First pass at creating a usuable modal for the copy to HTML keyboard shortcut.
2013-07-25 10:42:18 -07:00
Matthew Harrison-Jones
0786ec5862 First pass at creating a usuable modal for the copy to HTML keyboard shortcut.
Has an issue where Google Chrome does not persist to keep code selected.
2013-07-25 16:00:41 +01:00
Matthew Harrison-Jones
17c582ce51 Fixed modal max-height not working 2013-07-25 11:53:19 +01:00
Matthew Harrison-Jones
62486acfd1 Improved Markdown help modal 2013-07-25 11:49:02 +01:00
ErisDS
273e2172cb Bugfix: data export path wasn't changed during restructure 2013-07-24 23:22:33 +01:00
Ricardo Tomasi
814a3d66b7 Move shared third-party libraries to /shared/vendor 2013-07-24 23:21:57 +01:00
Matthew Harrison-Jones
680bb7a5ab Reworked modals to take content from modal content templates.
This also includes the example modal, which needs to be replaced with content.
2013-07-24 11:29:20 +01:00
Matthew Harrison-Jones
d59f0809cd Started a jQuery utilities file for Ghost jQuery plugins and helpers 2013-07-24 11:15:10 +01:00
Matthew Harrison-Jones
7111960fac Added in Modals 2013-07-24 11:15:09 +01:00
Hannah Wolfe
c2ac06cf0c Merge pull request #298 from matthojo/Markdown-Fixes
Additional Keyboard Shortcuts and improvements to text highlighting
2013-07-23 11:44:14 -07:00
Hannah Wolfe
7188c385d1 Merge pull request #297 from matthojo/Editor-Scrolling
Debounce scrolling on editor
2013-07-22 08:00:15 -07:00
Matthew Harrison-Jones
3a8b01dbcb Move notification dismissal events to Backbone
Also removes stray notification alert comments
2013-07-22 14:41:28 +01:00
ErisDS
2e0d2c73d6 Bug Fix: title of deleted post in content view notification is now correct 2013-07-22 14:41:28 +01:00
Matthew Harrison-Jones
94ae164086 Success notifications now fade out after 3 seconds 2013-07-22 14:41:28 +01:00
Matthew Harrison-Jones
32b245c53c Fix notification positions
Also fixes the previous editor notification fixes to not include `calc()`
2013-07-22 14:41:27 +01:00
Gabor Javorszky
f10343079b Fixes undefined this in settings.js
Because this and self. Missed it from previous commit :/
2013-07-22 14:41:27 +01:00
Gabor Javorszky
5a1c02b5d7 Adding notifications to settings and content pages
Closes #290. In theory.
* moved flashviews to base.js, renamed to notifications
* added failures to post editor screen
* added notifications to settings (success, failure)
* added notifications when deleting posts

Most of these are not visible due to CSS rules, as overhauling that
is a task in and of itself. The notifications do show up in the inspector
though, so all is well.
2013-07-22 14:41:27 +01:00
Matthew Harrison-Jones
e7cea72935 Fixes wrong positioning of notifications. 2013-07-22 14:41:27 +01:00
Gabor Javorszky
55e0d11f87 Adding notification.hbs
Simply because I was an 1d10t
2013-07-22 14:41:27 +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
Matthew Harrison-Jones
4b5932bef2 Added the ability to copy as HTML. 2013-07-22 13:50:50 +01:00
John O'Nolan
d337e16afe Merge pull request #296 from matthojo/Plugin-Management
First pass at Plugin Management design conversion
2013-07-22 04:22:37 -07:00
John O'Nolan
ae348edbdb Merge pull request #293 from matthojo/Remove-Codemirror-CSS
Removed CodeMirror Stylesheet file and moved over required CSS
2013-07-22 04:22:19 -07:00
Matthew Harrison-Jones
f85bbd5422 Improve title casing 2013-07-18 14:42:16 +01:00
Matthew Harrison-Jones
9fd653738d Additional Keyboard Shortcuts and improvements to text highlighting
This fixes the event where text would be selected after manipulation from shortcut, the cursor is now placed after the text. On links and images the url field text is highlighted.
Additional shortcuts;

* Ctrl+U: Make text uppercase
* Ctrl+Shift+U: Make text lowercase
* Ctrl+Alt+Shift+U: Make text titlecase
* Ctrl+Alt+W: Select word
* Ctrl+L: Make into list
2013-07-18 14:02:54 +01:00
Matthew Harrison-Jones
f3462245d5 Debounce scrolling on editor 2013-07-18 12:06:52 +01:00
Matthew Harrison-Jones
482da669aa First pass at Plugin Management design conversion 2013-07-18 11:36:37 +01:00
ErisDS
4fd9556904 Fixing up validation and tests for pagination helper where prev and next are undefined by default, rather than null. 2013-07-17 14:37:52 +01:00
Hannah Wolfe
061c3d6176 Merge pull request #274 from cobbspur/unittesting
improves unit testing for pagination
2013-07-16 12:06:51 -07:00
cobbspur
115996b88d improves unit testing for pagination and fixes pagination partial template (removed extra </nav>)
removes console logs for error handling in testing and travis environments
2013-07-16 19:57:19 +01:00
Hannah Wolfe
6e4755c183 Merge pull request #264 from matthojo/Login-Cursor
Automatically focus on first login input
2013-07-16 06:14:12 -07:00
Matthew Harrison-Jones
ce8ed96348 Removed CodeMirror Stylesheet file and moved over required CSS
Fixes #6.
2013-07-16 12:14:17 +01:00
Matthew Harrison-Jones
0d06484b01 Automatically focus on first login input 2013-07-16 10:18:40 +01:00
Hannah Wolfe
92bb75dfdf Merge pull request #285 from matthojo/Settings-Back-Fix
Fixes back button breaking settings panels
2013-07-15 14:29:49 -07:00
Matthew Harrison-Jones
b0c5d7e63a Fixes back button breaking settings panels 2013-07-15 18:09:10 +01:00
Matthew Harrison-Jones
7904819556 Initial pass at the user profile page
Fixes #148.
2013-07-15 15:54:13 +01:00
Hannah Wolfe
cffc158ea4 Merge pull request #262 from matthojo/User-Menu-Highlighting
Fixes persistent menu highlighting
2013-07-13 03:10:26 -07:00
Matthew Harrison-Jones
4d77d2f7bc Fixed 'G' button not working
Fixes #218.
2013-07-12 17:13:40 +01:00
Matthew Harrison-Jones
390d3cc538 Fixes persistent menu highlighting
Fixes #259
2013-07-12 16:50:21 +01:00
ErisDS
51d75aec9b Docs and tests - closes #235
- fixed the test that the fixture change broke (sort of). We should be using separate fixtures for tests really, unless we want to test something about a Ghost install.
- updated readme with better docs
2013-07-11 23:42:50 +01:00
ErisDS
b3b296f003 New fixture
- added new getting started fixture
- closes issue #13
2013-07-11 23:10:19 +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
316a50b7ff Issue #246 part 12
-  renamed single.hbs to post.hbs
- casper updated to match
2013-07-11 17:57:12 +01:00
Hannah Wolfe
2b132f32b1 Content helper - closes #254
- return content as a safe string so triple taches are not required
- test for content helper
2013-07-11 17:21:42 +01:00
Hannah Wolfe
6b3f835cfb Rename content fields - closes #253
- rename "content" to "content_raw"
- rename "content_raw" to "content"
- change all references
2013-07-11 16:27:19 +01:00
Hannah Wolfe
5948a3f246 Test cleanup
- redoing test failures with .then(null, done) so that any errors which happen in the previous then are properly caught.
2013-07-11 13:50:31 +01:00
ErisDS
6f8752aa22 HTML helpers refactor - issue #246 items 2 and 5.
- moved template logic out of individual helpers and into Ghost
- simplified template-driven helpers into closures which maintain the context of handlebars
- with handlebars context we have access to data, so don't need to pass data in
- check data to test that it is a simple object and not a function
- moved helpers back into index.js
- provided tests for both template functions in ghost and the nav helper so we are back to where we were
2013-07-11 01:30:29 +01:00
ErisDS
0dd0d20678 Nav helper bug - home page always marked as current
- fixed a bug whereby once you visit the homepage the homepage menu item is always marked as the active page
- this was due to passing the config object being done by reference rather than by value, and therefore setting the selected item was persisted.
2013-07-11 01:30:29 +01:00
ErisDS
53fe5e3ba3 HTML helpers work with double taches - issue #246 item 1.
- updated navigation and pagination helpers to use SafeString
- nav and pagination don't need triple taches any more
- nav tests updated, and renamed to match helper name
2013-07-11 01:30:29 +01:00
ErisDS
6113a7da90 Test fixes & cleanup
- Removing mocha-as-promised as this seemed to cause problems with later tests.
- Making failure mode for tests consistent.
- increasing timeout for pagination - would love to know why this is needed
2013-07-11 00:01:42 +01: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
Hannah Wolfe
221345ff99 issue #234 - date bug
- updated fixtures so that even short-term we have valid data
- added methods to the base model that marshall the data in and out of the db so it is always an RFC 2822 date never ISO 8601
- turned off SQL debugging now the bug is resolved
- minor change to the date listing template, as we don't need to check for updated_at now that the data is correct - but should use published date anyway
2013-07-08 12:39:11 +01:00
Hannah Wolfe
85535ae000 issue #228 - slug generation
Some more bits for slug generation
- fixes a bug in generation and some tests
- makes sure that deduplicated slugs get a hyphen before the number
- added %<>|^~£"  to reserved chars
- added a few extra comments
2013-07-08 09:12:23 +01:00
Gabor Javorszky
a6b3851491 Removing multiple hyphens
Closes #228. Also deals with the fact that if there's a trailing hyphen, it no longer removes one extra character.
2013-07-08 08:12:51 +01:00
Jacob Gable
d8d88f40cd Fix slug multiple hyphens and short words
Should close #228 and #238
2013-07-08 07:37:38 +01:00
Hannah Wolfe
49e4e777b9 Merge branch 'config-naming' into version-0.2.0 2013-07-07 19:48:19 +01:00
Hannah Wolfe
605cd85f0b Merge branch 'ffc-fix' into version-0.2.0 2013-07-07 19:41:28 +01:00
Hannah Wolfe
d27f32fb4d Bug fix - unable to publish
- The addition of published/draft statuses to the post model on the frontend was being returned to the server.
- These additional properties are client-side only and are now unset before the model is saved
2013-07-07 19:41:05 +01:00
Hannah Wolfe
b70867c973 Filters should not stop execution.
- added a try-catch & error logging to filters so that they can be debugged and do not stop execution
2013-07-07 19:02:26 +01: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
Hannah Wolfe
b37f542448 Merge pull request #241 from matthojo/Menu-Fix
Fixes 'All Posts' menu not being the right location and also not hiding properly
2013-07-07 06:26:51 -07:00
Hannah Wolfe
c0070bb36b Merge pull request #242 from matthojo/Remove-Unused-Icons
Removed settings icon in editor
2013-07-07 06:15:19 -07:00
Matthew Harrison-Jones
56b64aa6d5 Removed settings icon in editor
See #188
2013-07-05 10:31:53 +01:00
Matthew Harrison-Jones
3badc2d3d0 Fixes 'All Posts' menu not being the right location and also not hiding properly
See #188
2013-07-05 10:26:21 +01:00
cobbspur
8bbacd9ec9 closes #195 posts date on content page
- adds dateFormat handlebars helper for client side with extra option to format in time since style
- adds this extra dateFormat option to existing server side helper.
- adds scss for draft and scheduled status
- adds true/false values to post for draft  and published to validate in handlebars
- changes admin>content post collection query to order posts by updated_at values in router.js
- adds minified moment.js and links to moment.js and helper.js for clientside
2013-07-04 19:42:49 +01:00
Hannah Wolfe
3b96c7d591 Merge pull request #233 from ErisDS/plugins-2
issue #186 - load plugins (v2)
2013-07-02 22:49:44 -07:00
cobbspur
1d0bd6dda4 closes #201 changing font
- changes Lato for Open Sans
- adds link for Open Sans and removes Lato link
2013-07-01 20:31:12 +01:00
Hannah Wolfe
5c15c2d4b0 issue #186 - load plugins
- Adding activePlugins array to config.js
- Adding a loadPlugins function to ghost.js
- Tweaking fancyFirstChar.js so that it works again, getting rid of the function wrapper and constructor
2013-07-01 20:24:48 +01:00
Gabor Javorszky
6ab8109f40 Getting rid of adminnavbar filter and console.logs
Closes #219. Self-explanatory, look at the code.
2013-06-30 16:50:26 +01:00
Jacob Gable
7498b520e4 Increment slug if duplicate
Refactored the generateSlug method to return a promise and check for
existing posts with matching slugs.

Should close #221
2013-06-25 20:48:48 -05:00
Hannah Wolfe
30bc4d8434 Fix for WOFF files
- get express to return the correct mime type for woff files
2013-06-25 22:47:29 +01:00
Hannah Wolfe
199d15133b Navigation Helper
- renamed helper from ghostNav to nav and file from ghostNav to navigation
- switched template to use current-menu-item as per the styles
- cleaned up several unused items from config, and removed default link to admin
- updated tests
2013-06-25 22:44:34 +01:00
Hannah Wolfe
289a40e031 Cleaning up res.locals
- closes #124
- added new middleware to detect if a route should be admin or not
- updated ghostLocals to use this and return different locals
- updated ghost.js#initTheme to use the same test
2013-06-25 22:36:53 +01:00
Hannah Wolfe
4ed73edc62 fixes #202 - urls contain reserved chars
- further updates to the slugging function to check for certain words
- TODO: handle duplicates #221
2013-06-25 22:27:38 +01:00
Hannah Wolfe
2a7423c620 issue #136 - login redirects
Fixing logical error if there is no redirect
Also removing console log
2013-06-25 21:06:50 +01:00
Hannah Wolfe
7993cc22ab fixes #202 - urls contain reserved chars
- added all reserved chars and \ to the list of chars which get filtered out
- added documentation
2013-06-25 19:07:19 +01:00
Hannah Wolfe
1005be472a Fixing up some inconsistent TODO: items. 2013-06-25 17:58:26 +01:00
Hannah Wolfe
9e1191ae1e Cleaner login redirects
- closes #136
- stripped /ghost/ out of all redirects
- changed redirect=  to r=
2013-06-25 17:51:26 +01:00
cobbspur
376cf647e5 closes #197 & closes #196 pagination wiring and helper
- adds routes for homepage pagination
- adds helper function to compile template file for pagination
- adds next and prev to post for next and previous page
- adds handlebars template for pagination
2013-06-25 16:13:19 +01:00
Hannah Wolfe
afde1f7390 Merge pull request #214 from matthojo/Menu-Fixes
Fixed menus not hiding when clicking away.
2013-06-25 06:45:30 -07:00
Hannah Wolfe
588152898c issue #58 - frontend jslint
Improvements to consistency
2013-06-25 13:47:48 +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
3b63eb78dc Fixed menus not hiding
Also fixed `.dropdown` usage on menu bar.
2013-06-25 12:30:00 +01:00
Hannah Wolfe
ade3327a2a Merge pull request #210 from matthojo/Remove-Profanities
Removing John's filth closes #208
2013-06-25 02:55:37 -07:00
Matthew Harrison-Jones
d45291d9a0 Removing John's filth
Removed frontend profanaties.
2013-06-25 10:46:03 +01:00
Matthew Harrison-Jones
d0f5fe6ddb Removed functionally not working settings menu links. 2013-06-25 10:17:28 +01:00
Hannah Wolfe
3713cc4755 Merge pull request #207 from matthojo/Widget-Fixes
Widget Bug Fixes
2013-06-24 08:49:03 -07:00
Hannah Wolfe
8f322f0ecf Merge pull request #205 from jgable/fixSettingsMultiSave
Fix settings multi save closes #174
2013-06-24 08:47:58 -07:00
Hannah Wolfe
59e150be5a Merge branch 'master' into version-0.2.0 2013-06-24 16:47:19 +01:00
John O'Nolan
c4505b2457 Add link to Ghost VIP/Developer homepage on "G" in navbar 2013-06-24 14:32:02 +02:00
Matthew Harrison-Jones
0edeaeb17d Widget Bug Fixes
Fixes bug with Ghost Widget and also fixes wrong active size option being shown in settings.
2013-06-24 13:11:02 +01:00
Jacob Gable
4810f410c4 Fix settings multi save
We were not undelegating our events on the element which was causing the
view to live on indefinitely in the background with its events still
bound.
2013-06-23 16:25:34 -05:00
Jacob Gable
2b7d0f054d Import and Export UI
Added a basic UI and implementation for importing and exporting data.
Hooked up the routes and tested importing and exporting a version 001
file.

Slipped in the TemplateView in base.js but didn't end up using it.  I
think it will encapsulate common logic for template views pretty well.

Should close #175.
2013-06-23 16:06:57 -05:00
cobbspur
bf9c55a6fb closes #187 foreach column parameter
- adds keys @rowStart and @rowEnd in foreach helper based on an argument passed in for the number of columns desired
- added setKeys function to remove  duplication code
2013-06-23 16:46:02 +01:00
cobbspur
d1351dc8a3 closes #153 tabindex bug
- fixes tabindex issue on editor page
2013-06-23 11:49:30 +01:00
Hannah Wolfe
b7c1ed2aef Merge pull request #191 from matthojo/template-moving
Updated reference to templates in Backbone views
2013-06-22 09:57:39 -07:00
Matthew Harrison-Jones
23d317ed3e Updated reference to templates in Backbone views 2013-06-22 16:50:59 +01:00
Gabor Javorszky
07cbe984ae Fix forge returning null on empty fetch
Closes #184. It got broken because of a9c4a5409e
2013-06-22 13:49:32 +01:00
Hannah Wolfe
ecde2f078a Merge pull request #189 from javorszky/iss184
Fix forge returning null on empty fetch
2013-06-22 05:44:38 -07:00
Gabor Javorszky
e40eb12a51 Fix forge returning null on empty fetch
Closes #184. It got broken because of a9c4a5409e
2013-06-22 13:43:01 +01:00
Hannah Wolfe
c643976bab Merge pull request #181 from matthojo/Input-Border-Fix
Fixes transitions on input elements and other globals not working in Firefox
2013-06-19 14:42:01 -07:00
Hannah Wolfe
28574e29c7 Merge pull request #183 from jgable/renameTmpl
Rename tmpl directory to tpl and remove content level. closes #137
2013-06-19 14:29:04 -07:00
Hannah Wolfe
5cb2f60cc5 Merge pull request #180 from matthojo/Notification-Dismissal
Notifications can now be dismissed via click / tap
2013-06-19 14:23:58 -07:00
Jacob Gable
ccdb63cc71 Rename tmpl directory to tpl and remove content level
Should close #137.
2013-06-19 15:24:07 -05:00
Matthew Harrison-Jones
26d57fbb17 Fixes transitions on input elements and other globals not working in Firefox
Removed unnecessary :focus transition style and updated actual transitions to Bourbon syntax.
2013-06-18 13:37:16 +01:00
Hannah Wolfe
d15f1f8961 closes #101 - data model updates
Further changes to the data model to ensure created_by, author_id and updated_by are all set to user 1
Updated settings such that the default type is always 'general', and changed the types in the fixtures to be slightly more useful
Added additional assertions to tests to cover more assumptions about data
2013-06-17 23:59:08 +01:00
Hannah Wolfe
50eb91fe51 issue #165 - reloading settings
- ghost.js - split the settings loading out of ghost.init, so that we have a function for loading / reloading settings
- api.js - implemented a new requestHandler, the cachedSettingsRequestHandler which handles all aspects of local caching for settings when making requests
- app.js - updated the settings api routes to use the new cached request handler
2013-06-17 23:24:05 +01:00
Hannah Wolfe
32bbf2ba57 issue #165, issue #124 - cleaning up ghostGlobals
- ghost.js - globals/globalConfig has become settings / settingsCache to make it clearer
- app.js - the ghostGlobals local cache is gone, and the use of res.locals has been cleaned up and simplified, although this needs to be properly split into frontend and admin locals (to be finished in #124)
- frontend/index.js - doesn't need to be passed globals and nav properties as res.locals does this for us
2013-06-17 23:12:13 +01:00
Matthew Harrison-Jones
b46ac790ab Fixes wrong conversion from Compass to Bourbon. 2013-06-17 14:49:37 +01:00
Hannah Wolfe
f58c8eb6c3 Merge pull request #163 from jgable/exportData
Data import and export
2013-06-17 01:19:48 -07:00
Hannah Wolfe
8d8a6e0949 Wiring up the content settings panel to save blog description
Also cleaned up a bit of broken markup
2013-06-16 22:47:10 +01:00
Hannah Wolfe
0d5b6e8915 Added consistent error handling throughout the models 2013-06-16 22:36:28 +01:00
Matthew Harrison-Jones
14aabec80c Notifications can now be dismissed via click / tap 2013-06-16 19:45:16 +01:00
Hannah Wolfe
0f0769ab2b issue #157 - init ordering and error handling
reordering init so that settings are always loaded after the db is initialised
adding error handling to promises
2013-06-16 17:14:01 +01:00
Hannah Wolfe
382da5daf0 Adding a test for published at. 2013-06-16 16:09:54 +01:00
cobbspur
b9e1ddcb2e Adds handlerbars helper 'foreach'
Function allows you to iterate through an array or object  in handlebars
Sets Key Values for @first/ @last entry and @odd/@even to true/false
2013-06-16 14:12:28 +01:00
ErisDS
17c8c02eae closes #117 - published order
Fixes the knex query so that posts are correctly returned in the order of published_at, desc
2013-06-16 12:21:49 +01:00
Hannah Wolfe
49999a7f15 Merge pull request #162 from javorszky/iss132
/register/ => /signup/
2013-06-16 01:45:57 -07:00
John O'Nolan
b278ed6aa7 Merge pull request #152 from matthojo/Users-Settings
Refactored users settings page - see #147
2013-06-16 01:33:51 -07:00
Hannah Wolfe
49f6cc92d4 Merge pull request #161 from tgriesser/published_at
Setting published_at when post changes to published status.
2013-06-16 01:33:24 -07:00
Tim Griesser
fad7087cd1 Setting published_at when post changes to published status 2013-06-15 19:24:27 -04:00
Jacob Gable
0c4ccc284b Data import and export 2013-06-15 20:52:32 +00:00
Gabor Javorszky
78cbaf0387 /register/ => /signup/
Fixes issue #132. Also added `js-login-container` class to the
signup box, as it wasn't faded in due to javascript not picking
up the element.
2013-06-15 19:16:15 +01:00
Jacob Gable
a63690a471 Fix relative paths for deployment
In order to run with forever / supervisorctl, the relative paths need to
be converted to full ones based on the __dirname.
2013-06-15 10:54:49 -05:00
Hannah Wolfe
b816225dca Merge pull request #159 from jgable/fixRequireTree
Error check and default set for require-tree.
2013-06-15 08:48:51 -07:00
Jacob Gable
b4b8be2bb8 Error check and default set for require-tree. 2013-06-15 09:22:50 -05:00
Tim Griesser
a5b9274bb5 adding uuid's for the posts, users, settings 2013-06-15 10:16:20 -04: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
Gabor Javorszky
81d317a122 Replaced config.blogData with settings
Solves #112
* Removed config.blogData
* Changed Ghost.init() to accommodate new settings bits
* (data was already in the fixtures)
2013-06-15 00:39:27 +01:00
Matthew Harrison-Jones
0d75b737b8 Refactored users settings page
Improved standards of CSS and also refactored HTML markup. Search bar
also is implemented, with a prototype animation for displaying input
field.
2013-06-14 14:01:33 +01:00
John O'Nolan
1fab45669e Adjusting form styles and animations for checkboxes. Fixes #7 2013-06-13 14:31:16 +02:00
John O'Nolan
43db602b41 Merge pull request #145 from matthojo/Checkbox-Styling
Removed the need for iCheck CSS dependency. See #7
2013-06-13 05:04:47 -07:00
John O'Nolan
5215387e07 Minor tweaks to login form animations and styles - fixes #134 2013-06-13 13:58:37 +02:00
Matthew Harrison-Jones
8d66cbd6e8 Removed the need for iCheck CSS dependency.
Made all iCheck images into CSS and removed the iCheck CSS stylesheet.
2013-06-13 12:54:57 +01:00
Matthew Harrison-Jones
de09e7d19c Fixes login box being off centred on small screens
Accounted for top offset to keep login container centred. Login container fades in on load.
Tested on a variety of window sizes and appears to be centred on all of them (measured it to make sure).
2013-06-13 09:38:40 +01:00
Matthew Harrison-Jones
94c8c94ad1 Fixes login staying centred
Now included in `$(window).resize();` to update location of Login
container. The login is now more of a visually 'true' centre, with the offset being more towards the top.
Centring on resize, wasn't in original commit to remove one extra event listener.
2013-06-11 18:56:25 +01:00
John O'Nolan
2be5ce72ae Merge pull request #140 from matthojo/Login-Screen
Vertically center login form, fixes #134
2013-06-11 09:56:47 -07:00
Matthew Harrison-Jones
fbd54942b5 Center Login container 2013-06-11 17:42:56 +01:00
John O'Nolan
bdd29fafaf Appearance => Theme 2013-06-11 17:57:02 +02:00
John O'Nolan
1267f91935 Refactor + Restyle login/register screens. See #134 2013-06-11 16:45:42 +02:00
John O'Nolan
7e1bd2922e Reducing overzealous sass indenting for performance. 2013-06-11 15:32:56 +02:00
John O'Nolan
501e8695f2 Correcting login screen markup/styling issues, fixes #133 2013-06-11 15:01:02 +02:00
Hannah Wolfe
0a0039820d Merge pull request #127 from matthojo/Keyboard-Shortcuts
Added Keyboard Shortcuts to change Post Status and Save.
2013-06-11 05:24:36 -07:00
Hannah Wolfe
320bb311bc Merge pull request #131 from javorszky/iss82-2
Registration no longer hangs on duplicate emails
2013-06-11 04:41:22 -07:00
Hannah Wolfe
06b5ab86fb Merge branch 'pr119-merged'
Conflicts:
	core/admin/views/settings.hbs
2013-06-11 11:56:01 +01:00
Hannah Wolfe
493cf6ea7f Merge branch 'pr/126' 2013-06-11 10:30:00 +01:00
Matthew Harrison-Jones
44575cdb25 Added Keyboard Shortcuts to change Post Status and Save.
This also includes the updated Header tag shortcuts.
Also fixes keyboard shortcuts being broken due to `this` not being passed into shortcut each function.
2013-06-10 22:52:24 +01:00
Gabor Javorszky
e0caddeee7 Registration no longer hangs on duplicate emails
There was a return missing. This closes #82 again.
2013-06-10 21:26:20 +01:00
cobbspur
40d8b0321c implements #38 html and scss for uploader
- Fixed broken html
- Added file input to html
- Styling for hidden file input button
- Styling for progress bar and loading
- Added javascript classes for hooking file upload
- Added loading image (cat)
2013-06-10 20:07:34 +01:00
John O'Nolan
4a630af54a Removing box-shadow() mixin references that are deprecated in Bourbon, missed in previous commit. See #44 2013-06-10 09:51:49 +02:00
Ricardo Tomasi
cc6bb94e74 remove default .active tab from template. fixes #125 2013-06-09 19:56:47 -03:00
Hannah Wolfe
b3775feba0 Merge branch 'pr/119'
Conflicts:
	core/admin/assets/js/router.js
	core/admin/views/default.hbs
	core/admin/views/settings.hbs
	core/shared/data/fixtures/001.js
2013-06-09 21:41:07 +01:00
Gabor Javorszky
e271c6402f Directory scanning on contents/themes and plugins
This implements #106.
* Added require-tree which is based off of @ricardobeat's module. Fully async.
* I've moved active theme and active directory to settings from config as well.
* Modified settings.hbs and settings.js to display the raw json under Settings/Appearance
2013-06-09 20:17:54 +01:00
Hannah Wolfe
1df9b6e90a Merge pull request #121 from jgable/filterPriority
Filter priorities
2013-06-09 12:12:04 -07:00
Hannah Wolfe
d3ac1c7fc7 Merge pull request #120 from jgable/permissable
Implement a permissable interface on models
2013-06-09 12:00:03 -07:00
Jacob Gable
55d8ff75b4 Filter priorities
Add the ability to specify a priority level when registering filters.
Also change doFilter to execute filters in priority order.

Closes #86
2013-06-09 11:16:25 -05:00
Hannah Wolfe
c733a1ac62 Merge pull request #114 from matthojo/Backbone-Widgets
Initial Backbone Widgets
2013-06-09 06:24:08 -07:00
Matthew Harrison-Jones
2e44a1f845 Converted static Widgets to Backbone.
Moved static HTML Widgets to Backbone.

Might need to move Widget data else where to keep it clean.
Will need to also implement API for future use.
2013-06-09 10:56:10 +01:00
Jacob Gable
1effc4e772 Implement a permissable interface on models
Added checks to the canThis process for a `permissable()` function
that would allow Models to override the permissions process.
2013-06-08 18:39:24 -05:00
Ricardo Tomasi
e2b3c40a34 Migrate settings page to Backbone 2013-06-08 19:36:54 -03:00
Ricardo Tomasi
c82e5976cc Changes to Settings Model
- add email default setting to fixture
- make settings a single model
- create UNIQUE index on setting keys
2013-06-08 19:24:21 -03:00
Ricardo Tomasi
dc714611a9 move Ghost.View out of init, refactor 2013-06-07 23:16:28 -03:00
Hannah Wolfe
aa659d29b6 JSLint updates - function spacing consistency
- updating grunt-jslint to the latest version
- fixing up function spacing
2013-06-06 21:38:12 +01:00
Hannah Wolfe
60d90967e1 issue 101 - updating the data model
Added & removed many properties as required & fixed tests
Updated & also cleaned up the fixtures, inc images
Added order by published to the findPage query
2013-06-06 21:36:17 +01:00
Jacob Gable
e6f7c706cb Permissions / ACL
- Created Role model
- Created Permission model
- Linked Users->Roles with a belongsToMany relationship
- Linked Permissions to Users and Roles with a belongsToMany relationship
- Created permissions helper with functions for initializing and
  checking permissions (canThis)
- Unit tests for lots of things
2013-06-06 08:15:10 +01:00
Matthew Harrison-Jones
c4f19af62f Dashboard widget functionality
Intial widget layout, with packery for drag and drop support.
Adds ability to save the order of widgets in localstorage
2013-06-06 07:26:25 +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
524462e164 Merge branch 'master' into client-post
* master:
  Adding proper copyright info for Ghost Foundation
  Amending pagination test to have a longer timeout until #110 is done
  server half of #83, posts are draft by default, browse shows published by default
  Adding proper copyright info for Ghost Foundation
2013-06-04 08:03:51 -04:00
ErisDS
278e0cf877 Amending pagination test to have a longer timeout until #110 is done 2013-06-03 10:08:31 +01: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
Tim Griesser
30bd89587f server half of #83, posts are draft by default, browse shows published by default 2013-06-03 00:56:17 -04:00
Tim Griesser
b7064185d4 server half of #83, posts are draft by default, browse shows published by default 2013-06-01 15:42:11 -04:00
Tim Griesser
c55a96083a server side half of #83 2013-06-01 15:30:42 -04:00
Tim Griesser
983c171fb0 simplifying the model structure, again 2013-06-01 11:14:05 -04:00
Gabor Javorszky
f783adbe7f Issue #98, #4 Implemented countable.js 2013-06-01 12:52:20 +01:00
John O'Nolan
cf2d777ca4 Killing grid reference in main sass file 2013-06-01 11:20:38 +02:00
John O'Nolan
300d665e4a Killing grid. This isn't used currently and the only place it will likely ever be used is in the Dashboard, which will have its own specifically tailored grid. 2013-05-31 15:38:12 +02:00
John O'Nolan
e7307f7f63 Cleaning 2013-05-31 15:36:55 +02:00
ErisDS
185eee2a6b Implementing backbone for the blog / content view
closes #64 - adds a full example of using backbone on the frontend
remembered to squash this one!
2013-05-31 06:58:20 +01:00
Jacob Gable
a8bf3c962f Ghost.init()
- Modified jsonDataProvider to return promises for findAll and save
- Move the dataProvider initialization into the Ghost.init() function.
- Created basic unit test
2013-05-30 23:39:02 +01:00
Gabor Javorszky
ce5e757672 moved config into init function 2013-05-30 23:39:02 +01:00
Gabor Javorszky
e7c0d13f7c #73: Remap app.locals done 2013-05-30 23:39:02 +01:00
ErisDS
237af40f2e Revert "Merge branch 'fat-models' of github.com:tgriesser/Ghost into tgriesser-fat-models"
This reverts commit 611e6a49ef, reversing
changes made to a89dc1d123.
2013-05-30 23:34:53 +01:00
ErisDS
611e6a49ef Merge branch 'fat-models' of github.com:tgriesser/Ghost into tgriesser-fat-models
Conflicts:
	core/admin/assets/sass/layouts/dashboard.scss
	core/admin/views/dashboard.hbs
	core/shared/models/dataProvider.bookshelf.js
2013-05-30 22:23:18 +01:00
Matthew Harrison-Jones
826d20a902 New Widgets 2013-05-30 12:10:15 +01:00
John O'Nolan
c0f6f03f3b Adding new icons: reply, repost, weather (sun/partial/cloud/rain/snow) for Dashboard. See #65 2013-05-30 11:39:14 +02:00
Tim Griesser
7cbbb3af4e lint fixes & bcrypt-nodejs 2013-05-29 21:58:59 -04:00
Tim Griesser
cf9c2462fa lint fixes 2013-05-29 18:28:24 -04:00
Tim Griesser
091790a525 merging with master 2013-05-29 18:26:10 -04:00
ErisDS
4083592724 Merge branch 'jquery' of github.com:JohnONolan/Ghost into JohnONolan-jquery 2013-05-29 22:16:02 +01:00
Jacob Gable
d81d408eab Fix Travis Errors
- affects #91
- Move dataProvider initialization outside constructor
- Add travis sqlite config that enables debug
- Add grunt-cli installation to travis before_script
2013-05-29 13:32:38 -05:00
John O'Nolan
74ed10eee2 Bumping jQuery to 2.0 as we're not supporting <IE9 anyway. See also: #93 2013-05-29 17:16:51 +02:00
Matthew Harrison-Jones
2fc0a6a02e Initial Dashboard UI conversion 2013-05-29 11:05:06 -04:00
John O'Nolan
1de39b21ce Merge pull request #78 from matthojo/Dashboard-Widgets
Initial Dashboard UI conversion, see #65
2013-05-29 05:10:06 -07:00
Matthew Harrison-Jones
92de86bff3 Initial Dashboard UI conversion 2013-05-29 13:04:14 +01:00
ErisDS
077c602d61 Merge branch 'master' of github.com:javorszky/Ghost into javorszky-master
Conflicts:
	app.js
2013-05-29 08:26:57 +01:00
Gabor Javorszky
9a7e153549 #25: admin navbar and filter 2013-05-29 01:10:39 +01:00
Jacob Gable
13ea1ddf5c Merge branch 'master' of github.com:TryGhost/Ghost into frontEndMenu 2013-05-28 17:41:37 -05:00
Jacob Gable
e60fa79bae Merging from upstream 2013-05-28 17:41:28 -05:00
Hannah Wolfe
148f7f3cd9 Merge pull request #60 from matthojo/Keyboard-Shortcuts
Add keyboard shortcuts
2013-05-28 15:08:55 -07:00
Matthew Harrison-Jones
c6734ebbf6 Moved shortcut initialisation over to interation
Currently using jQuery.each not _.each. Can be easily changed with
```
_.each(MarkdownShortcuts, function(short) {
    shortcut.add(short.key, function () {
         return editor.addMarkdown({style: short.style});
    });
});
```
2013-05-28 14:23:01 +01:00
Matthew Harrison-Jones
d91c93f939 Converted from Jquery plugin to Codemirror function 2013-05-28 13:54:55 +01:00
Gabor Javorszky
8ffa03f775 Duplicate user, error handling, password in fixture 2013-05-27 23:04:09 -05:00
Jacob Gable
c699121049 Add ghostNav helper and filter for themes; closes #47 2013-05-27 22:59:01 -05:00
Hannah Wolfe
446da0c1e3 Removing unused bookshelf 2013-05-27 22:46:09 +01:00