0
Fork 0
mirror of https://github.com/TryGhost/Ghost.git synced 2025-02-24 23:48:13 -05:00
Commit graph

2572 commits

Author SHA1 Message Date
Kevin Ansfield
c56f22122f deps: codemirror@5.15.2 2016-06-01 11:50:18 +01:00
greenkeeperio-bot
215fc70e86 chore(package): update ember-power-select to version 0.10.10
https://greenkeeper.io/
2016-05-31 15:28:59 +01:00
Hannah Wolfe
3e64cbe5f9 Merge pull request #27 from kevinansfield/improve-file-upload-tests
Improve uploader tests + test subscribers CSV import
2016-05-27 19:29:07 +01:00
Kevin Ansfield
66ed2a02df Improve uploader tests + test subscribers CSV import
no issue
- override `x-file-input` in `gh-file-input` to look for a custom property on the change event if we are in testing mode (this is necessary because Ember 2.5+ use native rather than jQuery events so `target.files` is readonly, see https://github.com/emberjs/ember.js/issues/13540)
- migrate unit tests for the uploader components to the integration tests
- add skipped acceptance tests for the subscribers CSV import now that it's possible to simulate file uploads
2016-05-27 13:34:31 +01:00
Hannah Wolfe
faf24e4f4f Merge pull request #26 from kevinansfield/remove-search-outline
Remove outline from search input
2016-05-25 18:20:49 +01:00
Kevin Ansfield
3e1087f80f Remove outline from search input
no issue
- remove the outline that is shown on the search input once the dropdown box has closed
- remove unused styles for the old selectize-based search input
2016-05-25 10:52:21 +01:00
Austin Burdine
a64169dee1 Merge pull request #24 from TryGhost/greenkeeper-ember-power-select-0.10.9
Update ember-power-select to version 0.10.9 🚀
2016-05-24 11:57:28 -06:00
greenkeeperio-bot
5c3ae0fec2 chore(package): update ember-power-select to version 0.10.9
https://greenkeeper.io/
2016-05-24 17:32:07 +01:00
Kevin Ansfield
f8a3e84b56 Merge pull request #21 from TryGhost/greenkeeper-ember-cli-htmlbars-inline-precompile-0.3.2
Update ember-cli-htmlbars-inline-precompile to version 0.3.2 🚀
2016-05-23 12:14:02 +01:00
greenkeeperio-bot
6c323c62c9 chore(package): update ember-cli-htmlbars-inline-precompile to version 0.3.2
https://greenkeeper.io/
2016-05-23 12:04:43 +01:00
Kevin Ansfield
f60d28470d Merge pull request #22 from TryGhost/greenkeeper-ember-cli-htmlbars-1.0.8
Update ember-cli-htmlbars to version 1.0.8 🚀
2016-05-23 12:04:29 +01:00
Kevin Ansfield
08fa7bd4a7 Rename PULL_REQUEST_TEMPLATE to PULL_REQUEST_TEMPLATE.md 2016-05-23 10:50:15 +01:00
Kevin Ansfield
97e16ed09f Create PULL_REQUEST_TEMPLATE 2016-05-23 10:49:08 +01:00
greenkeeperio-bot
1ee20be51e chore(package): update ember-cli-htmlbars to version 1.0.8
https://greenkeeper.io/
2016-05-22 23:18:02 +01:00
Kevin Ansfield
9aa1c5e742 Merge pull request #3 from TryGhost/greenkeeper-update-all
Update all dependencies 🌴
2016-05-22 09:56:28 +01:00
greenkeeperio-bot
b2277244d6 chore(package): update dependencies
https://greenkeeper.io/
2016-05-22 09:42:57 +01:00
Kevin Ansfield
06ad2eed55 Merge pull request #14 from TryGhost/greenkeeper-ember-cli-jshint-1.0.3
Update ember-cli-jshint to version 1.0.3 🚀
2016-05-22 09:35:21 +01:00
greenkeeperio-bot
a921a14e2d chore(package): update ember-cli-jshint to version 1.0.3
https://greenkeeper.io/
2016-05-22 09:27:48 +01:00
Kevin Ansfield
fb0b1631a7 Merge pull request #12 from TryGhost/greenkeeper-loader.js-4.0.7
Update loader.js to version 4.0.7 🚀
2016-05-22 09:27:34 +01:00
greenkeeperio-bot
d47ef4393a chore(package): update loader.js to version 4.0.7
https://greenkeeper.io/
2016-05-21 02:31:44 +01:00
Austin Burdine
e54da7314b Merge pull request #15 from TryGhost/greenkeeper-ember-cli-2.5.1
Update ember-cli to version 2.5.1 🚀
2016-05-20 19:31:30 -06:00
greenkeeperio-bot
f80404c495 chore(package): update ember-cli to version 2.5.1
https://greenkeeper.io/
2016-05-20 16:30:21 +01:00
Kevin Ansfield
2e9934ce2e Merge pull request #10 from TryGhost/greenkeeper-ember-cli-htmlbars-1.0.7
Update ember-cli-htmlbars to version 1.0.7 🚀
2016-05-20 12:24:45 +01:00
greenkeeperio-bot
514008ad01 chore(package): update ember-cli-htmlbars to version 1.0.7
https://greenkeeper.io/
2016-05-20 06:11:11 +01:00
Kevin Ansfield
2e4655855e Add initial Travis config file
no issue
- basic testing of the admin client with both Chrome and Firefox
2016-05-19 13:33:14 +01:00
Kevin Ansfield
540b6a179d Match .gitignore and .editorconfig with Ghost repo
no issue
- as it's more likely that Ghost-Admin will be checked out separately it makes sense that it has its own `.gitignore` and `.editorconfig` that match the core repository
2016-05-19 11:39:15 +01:00
Kevin Ansfield
3ec0a0b248 Initial sub-project README.md
no issue
- point visitors to the core repo for instructions and bugs
2016-05-19 11:39:15 +01:00
Kevin Ansfield
131d08f1e6 Fix broken editor when content contains wrapped images
no issue
- don't assume that the upload element that is being replaced is top-level, target the element's parentNode rather than the overall fragment
2016-05-18 21:52:07 +01:00
Kevin Ansfield
92c5394449 Fix drag-n-drop files from Chrome's download bar
closes #6850
- HTML5 drag-n-drop has some weird inconsistencies around the `dragOver` event where it defaults the "drop" behaviour to nothing so you need to cancel the defaults and override
	- http://stackoverflow.com/questions/19526430/drag-and-drop-file-uploads-from-chrome-downloads-bar
2016-05-18 09:53:10 +01:00
Kevin Ansfield
64a85ced32 Fix unwanted clearing of social inputs on blur with no edits
no issue
- updates the logic to expect `null` scratch values as the scratch values won't be set until the input value has changed
- adds tests for initial value display and regression tests for the cleared input bug
2016-05-17 19:14:14 +01:00
Aileen Nowak
01e52013e7 Fixes error in validation
closes #6826

- refactors the validation of facebook and twitter input field in `general.js` and `user.js` controller
	- Example validations for facebook:
		- `facebook.com/username` will be corrected to the full URL
		- `user` will show error `Your Page name is not a valid Facebook Page name' for `general.js` and `Your Username is not a valid Facebook Username` for `user.js` as the username in facebook has to be at least 5 characters long
		- `twitter.com/username` will be autocorrected to the valid facebook URL incl. the `username`
	- Example validations for twitter:
		- `twitter.com/user_` will be corrected to the full URL
                - `user:99` will show error `Your Username is not a valid Twitter Username`
                - `facebook.com/username` will be autocorrected to the valid twitter URL incl. the `username`
- updates both acceptance tests
- adds further validation for facebook pages in general settings and user. Submitting a url which incl. `/page/` or `/pages/` will now accept any username followed incl. further `/`.
- adds a custom transform `facebook-url-user` which will extract the username (if it's a facebook page, incl. `pages/`) to store only this in the backend
- uses the `twitter-url-user` transform now also for user
2016-05-17 17:44:23 +01:00
Kevin Ansfield
7fda1082f3 Merge pull request #6838 from acburdine/esa-1.1
deps: ember-simple-auth@1.1.0
2016-05-16 11:51:23 +02:00
Kevin Ansfield
df118c07e3 Merge pull request #6830 from acburdine/no-show-nav-menu
Don't show the nav menu when on a 404 route and not signed in
2016-05-16 11:01:44 +02:00
Austin Burdine
4856276a06 update document title on blog title change
no issue
- force document.title to recompute when the blog title is changed in settings/general
2016-05-15 18:41:28 -06:00
Austin Burdine
ced797de76 deps: ember-simple-auth@1.1.0 2016-05-15 16:45:16 -06:00
Austin Burdine
562c50d54e don't show the nav menu when on a 404 route and not signed in
no issue
- fixes problem when the nav menu would be shown on an error404 route when the user is not logged in
- adds failing test that passes with this change
2016-05-13 19:02:55 -06:00
Kevin Ansfield
b0cd10b845 Fix initial loading of a route with an invalid session
no issue
- if the session is "authenticated" but is invalid, the initial load of the app would fail. It could be replicated by:
	1. Authenticating in a running ghost instance
	2. Stopping ghost
	3. Deleting the database
	4. Re-starting ghost
	5. Closing the browser
	6. Re-opening the browser and visiting http://localhost:2368/ghost
- this fix stores the `transition` object for the duration of the initial load so that `sessionInvalidated` method can trigger actions before the transition has finished
2016-05-13 13:47:39 +02:00
Kevin Ansfield
11d2f620e1 Fix loss of private settings when saving in certain circumstances
no issue
- always ensure we load a full settings object so that we don't risk saving a partial settings object back to the server
- should fix the issues reported in Slack of disappearing private settings over time
2016-05-13 12:24:17 +02:00
Kevin Ansfield
410d03d66d Allow table content to be selectable
no issue
- overrides the global `user-select: none` style for `th` and `td` elements
2016-05-12 17:42:52 +02:00
Brian Tedder
c2cf17478a Remove select-all on click for PSM slug input
issue #6655
-remove selectOnClick from input
2016-05-11 19:59:54 -06:00
Hannah Wolfe
3e5832ee48 Merge pull request #6811 from kevinansfield/fix-new-subscriber-validation
Fix display of server-provided validation error when adding subscriber
2016-05-11 22:24:28 +02:00
Kevin Ansfield
8826f0e66a Fix display of server-provided validation error when adding subscriber
no issue
- make the check for "email" in the server provided error case-insensitive
2016-05-11 19:56:58 +02:00
Hannah Wolfe
5d3b32a926 Pre-populate setup values from config
no issue
- Check for title, user_name and user_email in the top level of config.
- If they exist, return them as part of the setup check, so that the setup screen can be prepopulated
2016-05-11 19:30:56 +02:00
John O'Nolan
7cd6c786f9 Merge pull request #6764 from TryGhost/subscribe
Subscribers
2016-05-11 13:53:53 +02:00
Hannah Wolfe
1c35fefbb9 Merge pull request #6703 from kevinansfield/6640-tests
Improve `gh-profile-image` tests for #6640
2016-05-11 13:00:19 +02:00
Kevin Ansfield
5b1178c7c5 Fix cmd-s shortcut not saving changes in text fields with focusout
closes #4556
- when <kbd>CMD-S</kbd> is used, if the focused element is an input, trigger it's `focusout` handler then schedule the save action to happen after any actions resulting from the trigger
2016-05-11 11:59:36 +02:00
kirrg001
ec0eeceff0 Subscribers: Move read CSV into separate utility
- split out read CSV function into utility and add tests
- update API response to follow JSONAPI more closely
- update the UI to match the new API response
2016-05-11 11:22:35 +02:00
Kevin Ansfield
755e048f98 Subscribers: Admin UI updates & fixes
Update for synchronous feature service

Add client-side handling of server-side errors when adding subscribers
- display server-provided error message when we get a server error
- fix the ajax util's `getRequestErrorMessage` method so that it works correctly with Ember's `InvalidError` object instead of the previous request object that it was receiving (*TODO:* this really needs looking at properly so we aren't losing details and Ember Data can do it's stuff)

Styling updates
- proper icon for ascending/descending
- change hover colour to green for "Import CSV" button

Delete subscriber button with confirm modal
- display delete button when hovering over a subscriber row (WARN: really ugly button, styles definitely want looking at)
- show confirm modal when clicking the delete button
- delete subscriber, remove from table, and update total on confirm
2016-05-11 11:22:35 +02:00
Hannah Wolfe
2313dab449 Subscribers: router & form helpers
Form:
- add confirm, location & referrer hidden fields
- add script to populate location & referrer
- add helper for creating the email field
- pass through input class and placeholder for email from top level form helper
- rename subscribe_form template & helper as it sounds more natural
- handle success and error cases differently
- improve error message display
- ensure useful data is passed back so that we can show nice messages
- check for honeypot value being filled out
- refactor error handler to set an error and always still render
2016-05-11 10:28:11 +02:00
Kevin Ansfield
83c9270682 Subscribers: Admin User Interface v1
Initial Subscribers screen
- set up mocked api endpoints
- basic subscribers screen with data loading, infinite scroll

"Add Subscriber" screen
- uses modal to display a new subscriber form
- validates subscriber e-mail address
- moves pagination from route into controller to use filtered/sorted CPs on top of a live-query so that new subscribers are added to the list and the total can be properly managed

TODO:
- there is currently a pretty serious performance issue where the whole table is re-rendered when the live-query is updated. `ember-light-table` doesn't allow for live-binding and has no options to easily manipulate it's rows using an external interface - it's possible to move the page loading into the component so we only render new rows but that leaves it difficult to react to new subscribers being added through the UI. I believe the number of components used within the table is also adding to the performance problems.
  - most likely solution is to drop `ember-light-table` in favour of rendering the table directly - glimmer should do a good job of fast updates even though the underlying array will be completely swapped out

"Import subscribers" screen
- uses modal to display an import subscribers CSV file upload form
- displays upload progress
- displays import stats and reloads subscribers table once import has completed
- adds `gh-file-uploader` component (NB. pared down copy of `gh-image-uploader`, ripe for some refactoring)
- fixes subscribers acceptance test failing because fixtures did not have the labs flag enabled

Unfortunately this doesn't have 100% test coverage as we're limited in how we can simulate file uploads 😞

Fix performance issues with subscribers table
- moves the table definition from the component up to the controller
- switches back to manually manipulating table rows instead of using a live-query

This is a quick-fix in that it allows us to continue using the `ember-light-table` component but it does mean that we lose some flexibility that the live-query gave us. For now it's not much of an issue and it allows us to defer deeper performance/flexibility work until we have a concrete need and requirements.

Hook up Export CSV button
- use a hidden iFrame to trigger the browser to hit the CSV export endpoint and download the file

Re-order subscribers table by clicking column headers
- displays currently sorted column and sort direction
- clicking a column header re-fetches the data from the server with the appropriate query params

Fix scroll triggers for infinite pagination + icon change
- adds a debounce as well as the throttle so that we always get a final scroll trigger once scrolling has stopped
- changes the subscribers icon from the temporary team icon to the mail icon
2016-05-11 10:28:11 +02:00