Commit Graph

1105 Commits

Author SHA1 Message Date
Kevin Ansfield
866d6eae9a 🐛 Fixed unsaved changes modal when using Cmd+S on tag/member screens
no issue

- keep a scratch model on the tag/member controllers rather than inside of the form components
  - allows the controller's `save` task to transfer scratch values to real values before saving
  - means that pressing Cmd+S whilst a field is still focused will save the expected value rather than the old value avoiding unsaved changes modals when trying to leave the screen when you think you've already saved
- fixed route and url not changing after saving a new member
- fixed error when clicking delete tag button
- cleaned up unused `showDeleteTagModal` actions
2019-12-13 11:37:01 +00:00
Kevin Ansfield
56ce6aa824 Tidied up <GhMemberSettingsForm>
no issue

- removed unused `isViewingSubview` property
- replaced `hasMultipleSubscriptions` CP with the `gt` CP macro
- fixed indentation in the template
2019-12-12 18:22:31 +00:00
Kevin Ansfield
5585a781b9 Unified tag and member screen code
no issue

The tag and member screens share the same underlying UI/UX patterns but were using different code patterns. This brings both in line so that we have consistent code patterns that can be re-used for other screens.

- fixed cleanup of new tags by adding the `deactivate` hook to the `tag` route
- updated `member` and `member.new` route/controller setup to match tag route/controller setup
  - added `save` action to member controller so that Ctrl/Cmd+S works on member screen
  - updated tag route/controller to utilise the same instant display w/background refresh when accessing the tag details screen
- completed transition of non-component tag/members templates over to angle bracket component syntax
2019-12-12 13:59:46 +00:00
Naz Gargol
51ded01ed3 Added members cancel subscription fields on members page (#1423)
refs https://github.com/TryGhost/Members/pull/107

- Added 'cancel at period end' logic to members subscription details
- Added stripe subscription link in subscriptions details
2019-12-12 20:00:57 +07:00
Kevin Ansfield
c53e4f9cd7 Fixed tag deletion
no issue

- don't show "Delete tag" button when we're displaying a new/unsaved tag
- refactor the `_deleteTag()` method to be more explicit and remove handling that is no longer required since the tag screen is not nested in the tags screen
- revised the condition in `showUnsavedChangesModal()` method so that it's body doesn't fire twice when leaving the `tag` or `tag.new` route
- revised the `showUnsavedChangesModal()` method body to look at the number of changed properties on the tag rather than relying on `tag.hasChangedAttributes` which is always `true` for new models
2019-12-10 12:18:20 +00:00
Kevin Ansfield
5c0cfca479 Cleaned up and re-organised tag and new tag routes/controllers
no issue

- removed unused `<GhTagsManagementContainer>` component and related `isMobile` CPs
- un-nested `tag` and `tag.new` routes
  - nested routes in Ember are used for nested UI but these are both separate screens
  - removes usage of `selectedTag` property in favour of using Ember's built-in model handling
  - removed unnecessary `tags/new` controller
  - sets up `tag.new` route which extends the `tag` route to avoid duplicate code
2019-12-09 17:44:16 +00:00
Peter Zimon
d0a0e70caf 🎨 Refined new member avatar style
no issue.
- removed outline from manually created member avatar on member detail screen
2019-12-04 11:42:58 +01:00
Hannah Wolfe
00ce91ce3a Added Secondary Navigation (#1410)
refs: https://github.com/TryGhost/Ghost/pull/11409

- Added a new UI for a second set of navigation links
- This should support most concepts of nav, e.g. left and right, or header and footer
- This PR mostly updates the design and nav components to cope with a second set of nav
2019-12-04 11:14:45 +07:00
Naz Gargol
1df0e2b917 🎨 Added gravatars for member avatars (#1417)
no issue

- When an email has a valid gravatar handle it displays an image instead of initials for the member
- Introduces new {{gravatar}} helper which accepts an email as parameter and size/d as named parameters. The output is a URL to gravatar image
- Refactored usage of "splattribute" to explicit property. There was a need to duplicate class property usage in the component and doing that through splatttibute feature is unsafe as pointed ou here - https://github.com/TryGhost/Ghost-Admin/pull/1417#discussion_r351837584
2019-12-03 18:10:47 +07:00
Peter Zimon
137f8eae7c Refined mobile email preview
no refs.
Issue was that the ratio of email mobile preview UI was completely off on higher screen resolutions.

- set the email mobile preview UI to fixed size
2019-12-03 11:18:02 +01:00
Naz Gargol
4bd4825902 Improved adding first members on no-members screen (#1416)
no issue

- There was a need to make the experience of adding a first member(s) as frictionless as possible, which lead to adding some actionable controls to the "no-members" screen.
- Adds the ability to make yourself a member
- Adds the ability to import CSV member
- Link to add a member manually
2019-12-03 12:04:04 +07:00
Naz Gargol
c41c184762 Added member "add" screen (#1411)
no issue

- We have a need to create a member manually, this changeset solves this problem.
- Added new member button to the member's screen
- Needed to be able to perform add member action
- Fixed inconsistent `createAt` naming. All models use consistent `createdAtUTC`, fixed it up so that members model follows the same pattern. If we want to change this pattern should probably happen for all models at once
- Fixed member avatar when creating a new member. If the values are completely empty the screen ends up being filled with empty space. Added some dummy initials which are recalculated once the member enters the name or an email
- Refactored DS naming for consistency. Nowhere else in the codebase 'DS' name is ever used, made this consistent
- Added missing validations in members form
- Simplified if conditions in the member list template. When using the if/esle statements unnecessary new-line symbols were inserted which made it hard to test. Also by using computed property view is much cleaner
- Updated member's model default value for `subscribed` to "true". It is turned on by default in the model layer  on the backend (ref: https://github.com/TryGhost/Ghost/blob/3.1.0/core/server/data/schema/schema.js#L330), this behavior is intended and should be the same on the frontend
2019-11-28 18:30:21 +07:00
Peter Zimon
5674323d2a Removed link to settings for admins in email error copy 2019-11-26 13:38:43 +01:00
Peter Zimon
e866808193 Updated email role restrictions
no issue.
Only admins and owners should have access to sending emails. Updated relevant templates
to restrict access to emails for non-admins/owners
2019-11-26 13:20:49 +01:00
Peter Zimon
727a38d5d1 Updated email copy 2019-11-26 12:10:51 +01:00
Peter Zimon
b06484553f Updated PSM/Email wording 2019-11-25 17:44:50 +01:00
Peter Zimon
8350098e45 Updated post list design for scheduled posts 2019-11-25 17:44:18 +01:00
Peter Zimon
1d78b9a903 Updated email error design in PSM 2019-11-25 17:03:54 +01:00
Kevin Ansfield
a3c17c2757 Added failed state with retry button to PSM email pane
no issue

- follow similar retry-then-poll behaviour as the confirm email modal
2019-11-25 13:20:16 +00:00
Peter Zimon
82ffc5a967 Updated email failure modal with dynamic error 2019-11-22 17:17:29 +01:00
Peter Zimon
5bedffdc00 Removing error box in email failure modal 2019-11-22 16:37:39 +01:00
Peter Zimon
8bf287d81e Refined email status on post list 2019-11-22 16:25:11 +01:00
Kevin Ansfield
c1039f929c Added ability to retry failed emails from the confirm modal (#1412)
no issue

- adds a `.retry()` method to the email model+adapter
- adds a retry email task to the publishmenu that follows the same retry-then-poll behaviour as the regular email confirmation
- show a retry button in the confirm email modal if the original send failed
- increases max "immediate failure" poll timeout to 15sec (an 8sec retry-to-failure time has been seen locally)
2019-11-22 15:09:48 +00:00
Peter Zimon
8be0c78c8e Refined email error modal 2019-11-22 14:31:03 +01:00
Kevin Ansfield
535f50ad9f Show "email failed" state in posts list 2019-11-20 23:37:37 +00:00
Kevin Ansfield
30b23f2a7c Added polling when confirming email to show immediate error
no issue

- when confirming email send, after initial save in, poll every second for a maximum of 10 seconds and check the status of the email
  - if it's `'success'` close the modal immediately
  - if it's `'failure'` switch the confirm modal to an error state
  - if the save fails for some other reason (validation, server error) close the modal immediately and let the normal editor error handling do it's thing
- fixed confirm modal not appearing when retrying a save after a post validation failed
- show email status in post status area
    - `"and sending to x members"` when email is pending or submitting
    - `"and sent to x members"` once email is fully submitted
2019-11-20 23:27:09 +00:00
Peter Zimon
3a8b6f897b Fixed subject for email preview 2019-11-16 13:07:51 +01:00
Peter Zimon
ee4a61b021 Refined mailgun settings in Labs 2019-11-15 14:38:59 +01:00
Kevin Ansfield
a95f8182f8 Swapped baseUrl input for region selection for bulk email settings
no issue

- Mailgun makes it really difficult to find your baseUrl from their UI if you've previously sent emails on a domain
- use a dropdown with flag and region name instead to better match what you can see in their UI
2019-11-15 13:10:45 +00:00
Kevin Ansfield
6fe159c8d9 Updated handling of send_email_when_published
refs 5fd2b7fed1

- sends `?send_email_when_published=true` query param when scheduling/publishing a post with the toggle turned on
  - adds support to the posts adapter for handling the `adapterOptions` option
  - updates the editor `save` task to pass through the required adapter option when a post is being published or scheduled with the toggle checked
- moves state for the email toggle into the publish menu so that we don't try to toggle the model attribute which should only be fetched from the API
- prevent `post.send_email_when_published` being sent to the API via the serializer as it's now a read-only attribute
2019-11-14 17:33:35 +00:00
Kevin Ansfield
f49268c5fa Hid email toggle on scheduled state of publish menu if email already sent 2019-11-14 17:20:53 +00:00
Peter Zimon
8dcf5f8428 Updated copy on email confirmation popup 2019-11-14 18:05:45 +01:00
Peter Zimon
f977d32146 Reorder mailgun settings in labs 2019-11-14 16:05:37 +01:00
Peter Zimon
d5a9465ca5 Design for minimal email stats 2019-11-14 14:30:49 +01:00
Peter Zimon
61f9f6e380 Updated post list 2019-11-14 13:53:43 +01:00
Rish
6a972d8b9e Wired admin bulk email settings UI to read/write setting
no issue
2019-11-13 22:38:16 +05:30
Kevin Ansfield
3d1962622b Added "View email" button to view already-sent email
no issue

- refactored `renderEmailPreview` into separate fetch and render functions
- grab email info from an existing email resource if it exists on the post rather than fetching a preview
- added "View email" button the the email-sent state of the newsletter settings PSM section
2019-11-13 16:38:32 +00:00
Kevin Ansfield
11dc0f553b Fixed tests 2019-11-13 16:10:29 +00:00
Peter Zimon
dc9ad61bc7 Updated scheduled publishmenu to display email setting 2019-11-13 15:36:54 +01:00
Peter Zimon
e56b10a728 Remove GhScheduledPostCountdown component 2019-11-13 15:33:57 +01:00
Peter Zimon
f5dd75e2e5 Updated post status in editor 2019-11-13 15:31:42 +01:00
Kevin Ansfield
7351a962b7 Fixed email subject field not being disabled if mailgun is not configured
no issue

- changed `disabled=deliveredAction` to `disabled=mailgunError` so that it's switching on the correct property
- removed all references to the unused `deliveredAction` property
2019-11-13 11:17:36 +00:00
Kevin Ansfield
74cbcad362 Use logged-in-user's email as the default test email address
no issue

- removed unnecessary scratch value handling for a non-model property
- use [`oneWay`](https://api.emberjs.com/ember/release/functions/@ember%2Fobject%2Fcomputed/oneWay) to bind the logged in user's email address to the `testEmailAddress` property on the component - this allows for the default value to always be the logged in users email but changing the property value only changes the value on the component, not upstream on the user model
- use default two-way binding of the `<Input>` helper to avoid unnecessary boilerplate
- removed unnecessary usage of the `truncate` helper for the placeholder
2019-11-13 10:52:09 +00:00
Kevin Ansfield
3daf46dcf8 Display "all paid members" instead of incorrect count in email confirm modal 2019-11-13 10:17:00 +00:00
Kevin Ansfield
875e495728 Fixed email icon not showing for scheduled posts in posts list 2019-11-11 10:37:44 +00:00
Peter Zimon
829702db84 Refined email icon on post list 2019-11-08 17:17:37 +07:00
Kevin Ansfield
682c5e4190 Display basic info in PSM once an email has been sent 2019-11-08 17:07:47 +07:00
Peter Zimon
43feb624b7 Updated tag for email icon in post list 2019-11-08 16:50:07 +07:00
Peter Zimon
8532c13a12 Updated copy for scheduled posts 2019-11-08 16:46:10 +07:00
Peter Zimon
8c55d57593 Added link to mailgun domain 2019-11-08 16:46:10 +07:00
Kevin Ansfield
35b13abb98 Show email icon in posts list 2019-11-08 16:44:56 +07:00
Kevin Ansfield
1d79a1f191 Fix missed wording change from merge conflict 2019-11-08 16:17:36 +07:00
Kevin Ansfield
2777856a29 Extracted PSM email settings into separate component 2019-11-08 15:56:56 +07:00
Peter Zimon
d6ad183948 Refined post status and email warning copy 2019-11-08 15:38:25 +07:00
Peter Zimon
9127c72df4 Refined member detail copy 2019-11-08 13:37:28 +07:00
Peter Zimon
aabbbdc858 Updated PSM copy 2019-11-08 13:19:19 +07:00
Peter Zimon
bd214fbf1d Refined publish menu 2019-11-08 11:46:45 +07:00
Rish
f74060b08b Removed subdirectory from blog host in email setting field
no issue
2019-11-07 17:47:34 +07:00
Peter Zimon
25237a2d6d Refined mailgun warning 2019-11-07 17:14:08 +07:00
Kevin Ansfield
f23703c8b0 Fixed scrolling and hid scrollbars in email preview 2019-11-07 17:11:53 +07:00
Kevin Ansfield
0c0da3813e Added confirmation modal and use email model in place of action 2019-11-07 15:56:41 +07:00
Peter Zimon
71ded80e8c Refined disabled states more 2019-11-07 15:49:49 +07:00
Peter Zimon
48449ee222 Refined disabled states and copy 2019-11-07 15:32:29 +07:00
Peter Zimon
e5271b534d Styled disabled email checkbox 2019-11-07 13:21:23 +07:00
Rish
2aa781eef1 Added error for incorrect mailgun config in publish and settings menu 2019-11-07 12:44:37 +07:00
Peter Zimon
04d1efac5f Refined members email settings 2019-11-07 11:47:29 +07:00
Rish
ae39e79ce7 Revert "Added preview modal toggle in publish menu"
This reverts commit 80d58f99cb.
2019-11-07 11:47:16 +07:00
Rish
ea302d66b6 Added mailgun domain to admin settings 2019-11-07 11:32:38 +07:00
Peter Zimon
3838686aa8 Refined email preview in publish menu 2019-11-07 11:32:10 +07:00
Peter Zimon
6dbcf96ab0 Refined styles for test email 2019-11-07 11:20:21 +07:00
Peter Zimon
44819d1fbf Refined email preview 2019-11-07 11:09:55 +07:00
Rish
cec378f6b1 Fixed valid test email check 2019-11-07 10:55:55 +07:00
Rish
80d58f99cb Added preview modal toggle in publish menu 2019-11-07 10:54:26 +07:00
Rish
f98920aa12 Added test email validation in settings 2019-11-07 10:54:04 +07:00
Rish
089174d72b Fixed publish menu input toggle not disabled for 0 members 2019-11-07 10:19:46 +07:00
Rish
18a882e6b0 Added send test email button loading states 2019-11-07 09:58:25 +07:00
Peter Zimon
a436521e4c Minor design refinements 2019-11-06 18:22:57 +07:00
Rish
904114d844 Added email subject to preview modal header 2019-11-06 18:18:37 +07:00
Peter Zimon
df8968f13d Updated member details screen 2019-11-06 18:00:03 +07:00
Kevin Ansfield
03547df97e Fixed send email checkbox label clickiness 2019-11-06 16:06:42 +07:00
Peter Zimon
c32c3ce444 Email preview refinements 2019-11-06 15:58:10 +07:00
Rish
6d0f8984af Disabled email toggle in publish menu if no members 2019-11-06 15:28:40 +07:00
Rish
6b4c430985 Disabled email subject based on delivered action 2019-11-06 15:28:40 +07:00
Peter Zimon
15366dd8b2 Removing sent indicator from publishmenu 2019-11-06 15:08:47 +07:00
Peter Zimon
96cdab64d4 Refined mobile email preview 2019-11-06 12:36:39 +07:00
Peter Zimon
2ef9ade0ae Refined browser preview 2019-11-06 12:07:52 +07:00
Peter Zimon
edef8eb9b0 Updated email settings design in PSM 2019-11-06 11:23:20 +07:00
Peter Zimon
63ed2a27df Updated publishmenu design 2019-11-06 11:01:42 +07:00
Kevin Ansfield
22fa89fea8 Hid email settings in PSM when editing a post 2019-11-05 18:34:10 +07:00
Rish
7faff0993e Hide members mail config setting in admin
no issue
2019-11-05 18:23:27 +07:00
Nazar Gargol
6aa64e77d1 Added subscribed toggle to member profile page 2019-11-05 18:00:07 +07:00
Rish
f6660d9116 Added mail provider API key setting
no issue
2019-11-05 17:26:25 +07:00
Rish
caff822706 Added test preview email to post email settings
no issue
2019-11-05 16:10:24 +07:00
Rish
b23288a41b Added email preview modal flow 2019-11-05 13:10:49 +07:00
Kevin Ansfield
049b2a4949 Fixed unwanted "unsaved changes" modal if changing email toggle without publishing 2019-11-04 17:25:24 +07:00
Kevin Ansfield
e9eb5ab8c6 Display email sent info on published state of publish menu 2019-11-04 16:59:46 +07:00
Kevin Ansfield
d77b059716 Display real member count in publish menu 2019-11-04 16:44:18 +07:00
Kevin Ansfield
56cfbf2cd2 Display "sent" info in publish menu 2019-11-04 16:13:18 +07:00
Kevin Ansfield
6419222f31 Put email post toggle behind members feature flag 2019-11-04 13:38:48 +07:00
Rishabh Garg
7866546fab Added email settings to post settings menu (#1398)
no issue
2019-11-04 13:15:13 +07:00
Kevin Ansfield
ff5f46ae1b Added "email when published" toggle to publish menu 2019-11-04 12:41:38 +07:00
Kevin Ansfield
2b4a3b75d9 Removed "Public API" toggle in Labs screen
no issue

- the v0.1 "Public API" was removed in Ghost 3.0 so the toggle was non-functional
2019-10-29 09:46:59 +00:00
John O'Nolan
af9c4de315 Correct Stripe dashboard URL for members detail 2019-10-24 17:31:55 +07:00
Kevin Ansfield
c7e51059bf Fixed enter in tag screen inputs triggering save (#1381)
no issue

- `{{gh-task-button}}` was used inside a form but didn't have a `type="button"` property which meant the browser was treating it as a submit button and triggering the save action and related animation before the field's focus-out was called resulting in a save request before the scratch value is transferred to the model
- removed the submit action from the `<form>` element to prevent any other accidental triggers before scratch values have been transferred into real model values
2019-10-21 21:03:27 +05:30
Kevin Ansfield
dd94a10890 Prevented enter key submitting misleading member details save request (#1380)
no issue

- `{{gh-task-button}}` was used inside a form but didn't have a `type="button"` property which meant the browser was treating it as a submit button and triggering the save action and related animation before the field's focus-out was called resulting in a save request before the scratch value is transferred to the model
- removed the submit action from the `<form>` element to prevent any other accidental triggers before scratch values have been transferred into real model values
2019-10-21 16:24:57 +01:00
Peter Zimon
5bfe1c2095 V3 css fixes (#1377)
* Fixed Firefox bug for input groups
* Moved from `rem` based responsive styles to `px` based
* Fixed invisible clickable menus for member/user list
* Added responsive CSS for meembers list header
* Updated member list responsive styles
* Fix list header responsive style
2019-10-21 13:09:56 +02:00
John O'Nolan
38482311da Refined copy for members settings 2019-10-21 15:24:50 +07:00
John O'Nolan
3c7e990e59 Corrected members yearly pricing label (#1372)
no issue
2019-10-20 14:14:17 +05:30
Peter Zimon
549fb7193a Dark mode related fixes
no issue

- fixed double border for tags tabs
- refined view action button border
- fixed border for staff avatar
- fixed member avatar label color
2019-10-20 10:41:03 +02:00
John O'Nolan
92df04ac03 Amended Stripe signup link (#1371)
no issue
2019-10-19 18:37:54 +05:30
Rishabh Garg
9926ea8173 🐛 Fixed members count on list page (#1369)
no issue

Members calculation was breaking when viewed on admin without refresh after adding/deleting new members, updated to more robust calculation logic.
2019-10-19 18:06:38 +05:30
Peter Zimon
b8da3ab22f Responsive fixes on tags list screen
no issue
- fixed filter responsive CSS
- fixed list behavior
2019-10-18 14:08:46 +02:00
Peter Zimon
aee7430263 Fixed Stripe info box responsive behavior
no issue
2019-10-18 11:44:45 +02:00
Peter Zimon
e8b423b48d Added input groups with append value
no issue
- members price and email settings share the same pattern now: the uneditable parts of the input value is inside the input
2019-10-16 21:35:06 +02:00
Peter Zimon
dce6e70b59 Added Stripe info to members labs settings
no issue
2019-10-16 19:54:49 +02:00
John O'Nolan
d1a5608755 Refined copy for members settings (#1366)
no-issue
2019-10-16 15:27:46 +07:00
Rish
6b7aef9628 Updated to password input for member settings keys
no issue
2019-10-16 11:45:14 +05:30
Peter Zimon
22c2ce0cf6 Refined member details
no issue
- updated copy for member since date
- added note to note field
- added subscription value to plan data
2019-10-15 16:24:20 +02:00
Peter Zimon
b7f83fad2c Refined member list
no issue
- added list headings
- added active state to search field when it has value
- set position of actions dropdown
- refined avatar typography
2019-10-15 16:11:43 +02:00
Peter Zimon
3cc22b5528 Moved Member settings section to top in labs
no issue
2019-10-15 14:43:22 +02:00
Rish
6b1cd8dc23 Enabled members by default
no-issue

This removes the need for `enableDeveloperExperiments` flag for members
2019-10-14 08:42:04 +05:30
Kevin Ansfield
5502dce4f5 Merge branch 'master' into v3 2019-10-11 13:35:01 +01:00
Rish
2ce07e922b Fixed member section visibility for owner
no issue

Previously we were just hiding the toggle for member section in case of user not being owner. This updates to hide full section in case of non-owner user which is expected behavior
2019-10-11 15:27:24 +05:30
Kevin Ansfield
df4bdf1cf2 Merge branch 'master' into v3 2019-10-11 10:43:38 +01:00
Rish
e90b80822d Renamed member require payment setting
no issue

Renames member setting `requirePaymentForsSignup` -> `allowSelfSignup` to match existing usage in members API
2019-10-11 14:10:37 +05:30
Peter Zimon
079f40611b Updated members Labs settings UI
no issue
- new settings have been introduced for members, switched to expand/collapse UI pattern for members settings
2019-10-11 10:25:52 +02:00
Rish
33de815292 Added members feature toggle for owner only
no issue
2019-10-11 11:34:31 +05:30
Peter Zimon
e5c968c51f Updated member email font weight
no issue
2019-10-10 16:01:38 +02:00
Peter Zimon
1960c3d649 Updated member avatar initial fontsize
no issue
2019-10-10 15:59:21 +02:00
Rish
cb1c851f21 Added unsaved changes check to member details page
no issue

- Adds unsaved changes check to member detail page for write operations
2019-10-10 18:06:33 +05:30
Rish
5a609a785f Enabled write operation for member name and note
no issue

- Allows editing member's name and note in admin
2019-10-10 17:29:35 +05:30
Kevin Ansfield
26c48a52c2 Merge branch 'master' into v3 2019-10-10 10:17:44 +01:00
Rish
641dd35779 Updated subscription data in member details
no issue
2019-10-10 13:54:19 +05:30
Kevin Ansfield
ce7f0bf1ec Merge branch 'master' into v3 2019-10-09 15:06:37 +01:00
Rish
2e01455413 Updated members lab settings design
no issue

- Extracts members lab settings from `Beta Features` section to its own section
- Adds new `fromAddress` field to members settings
2019-10-09 15:33:08 +05:30
Naz Gargol
3aa260f92e Hidden post visibility select from PSM for non editors (#1357)
no issue

- Limited visiblity to only those users who have the rights to edit post's visibility
2019-10-09 10:23:36 +02:00
Kevin Ansfield
3a1bd8f374 Remove duplicated members config from Labs screen 2019-10-08 14:13:19 +01:00
Kevin Ansfield
159e810d5c Merge branch 'master' into v3 2019-10-08 14:04:38 +01:00
Rish
341b23469d Updated members requirePayment flag naming
no issue

Renamed `requirePaymentBeforeSignup` flag to `requirePaymentForSignup`
2019-10-08 16:40:28 +05:30
Rish
b42dcb6da8 Updated members labs section
no issue

- Extracted members feature out of `Beta Features` section to its own
- Added new `requirePaymentBeforeSignup` flag to members settings
2019-10-08 16:25:01 +05:30
Rish
58e11f7b33 Added loading state for member subscription details
no issue
2019-10-07 17:56:32 +05:30
Peter Zimon
285a7ab851 Added empty Stripe info state for member details
no issue
2019-10-05 13:01:43 +02:00
Peter Zimon
8ac7500084 Refined member details screen
no issue
2019-10-05 12:41:47 +02:00
Rish
3974dd5615 Updated member info to show multiple subscriptions
no issue

Displays details of multiple subscriptions of a member
2019-10-04 20:01:56 +05:30
Peter Zimon
b49683127c Refined members import/export design
no issue
2019-10-04 13:55:52 +02:00
Peter Zimon
e542fcbca3 Updated member list and detail wording
no issue
2019-10-04 13:40:10 +02:00
Peter Zimon
9c21f1b60c Refined members import/export button design
no issue
2019-10-04 13:28:10 +02:00
Peter Zimon
523b8e856f Renamed post visiblity dropdown values for posts
no issue
2019-10-04 12:57:58 +02:00
Peter Zimon
d81b39e355 Updated members labs settings layout
no issue
2019-10-04 12:53:32 +02:00
Rish
c3a496fe9f Added csv import/export for members
no issue

- Adds action view with import/export csv options
2019-10-04 15:14:20 +05:30
Rish
a561b6e66e Updated members detail design
no issue

- Fixed bug with incorrect member count
- Added basic stripe info section
2019-10-03 23:17:52 +05:30
Peter Zimon
c3e129c5da Updated member list title copy 2019-10-03 13:59:19 +02:00
Peter Zimon
ce50606529 Updated member details screen design
no issue
2019-10-03 13:46:36 +02:00
Peter Zimon
495663c3c4 Udpated members list design
no issue.
2019-10-03 12:56:31 +02:00
Peter Zimon
a29e687da6 Updated design for Labs/Members configuration
no issue
2019-10-02 14:52:41 +02:00
Rish
4a3fd90017 Updated members list/detail screens base structure
no issue
2019-10-02 17:05:57 +05:30
Naz Gargol
98da7e1f26 Content visibility configuration in labs (#1346)
no issue

- Changed members description to less verbose
- Added content visibility radio options to members configuration screen
- Moved setting of default visibility to server-side
- Default visibility setting when PSM is opened before making the first request to the server
2019-10-02 11:13:59 +02:00
Rish
e49a12cfa0 Updated member detail screen design 2019-10-02 09:30:21 +05:30
Rish
204e10c114 Updated members list screen design 2019-10-02 09:30:21 +05:30
Naz Gargol
cdb87e5112 Added PSM visibility input (#1344)
refs 80f7e0b19e

- Added visibility input in PSM to control content access level for members
- Added default post visibility in editor. To be changed (moved to server-side) once `defaultContentVisibility` is available in settings service
- Added `visibility` property to post model & mirage
2019-10-01 15:00:53 +02:00
Naz Gargol
7e3412ce8e 🔥 Removed all subscriber feature related code (#1337)
refs https://github.com/TryGhost/Ghost/pull/11153

- Removed all subscriber feature related code
- The feature is being substituted by members
2019-09-26 15:58:01 +02:00
Naz Gargol
461adc6244 🔥 Removed publicAPI feature flag related code (#1323)
no issue

- Changes are related to API v0.1 being completely gone and this flag won't be returned from API anywhere anymore
2019-09-13 16:11:37 +02:00
Peter Zimon
4bc9f91392 Added missing class to pages table heading 2019-08-28 11:57:55 +02:00
Rishabh Garg
99a4c1c4c2 🎨 Updated tags screen design and usability (#1283)
no issue

Updates design and usability for tags list and details screen
2019-08-27 19:21:31 +05:30
Kevin Ansfield
9eb9e9f00e Removed unused "active" handling in <GhPostListItem>
no issue

- "active" post list items no longer exist so we can remove the code related to handling the scroll-into-view and style changes
2019-08-27 10:42:27 +01:00
Kevin Ansfield
5225a3d30a Added "What's new" indicator and modal to highlight recent updates (#1292)
no issue

- adds `whats-new` service that fetches the changelog from ghost.org and exposes the latest changelog entries
- trigger a background fetch of the changelog from ghost.org when first loading the admin when logged in, or after signing in
- adds a "What's new" menu item next to the user popup menu
- adds an indicator to the user menu button and what's new menu item if there are unseen changelog entries
- closing the changelog modal will update the "last seen date", clearing both indicators
2019-08-23 10:01:27 +01:00
Kevin Ansfield
32e6567e5b Added global meta data and Twitter/Facebook card settings (#1287)
closes https://github.com/TryGhost/Ghost/issues/10921

- added new fields to settings model
- added "Site meta settings" section to general settings
2019-08-21 16:16:59 +01:00
Kevin Ansfield
457a8e2955 🎨 Added auto-login to private site when viewing site preview in admin (#1286)
closes https://github.com/TryGhost/Ghost/issues/10995

- when first loading the site preview, if private mode is enabled submit the login form in the background to get the cookie before loading the iframe
- refactors post-authentication preloading to ensure it occurs before post-authentication route hooks are called
- adds `showSuccess` attribute to `<GhTaskButton>` so that when set to `false` it can stay in the running state after "success" to avoid state change flashes whilst waiting for a transition
2019-08-12 09:11:10 +01:00
Aileen Nowak
dbb3368921 🔗 Updated docs api links to be version-less 2019-07-25 15:15:31 +08:00
Aileen Nowak
8e1f08f801 Updated links to docs (#1276)
no issue
2019-07-22 16:53:24 +08:00
Peter Zimon
31a3fe7c48 Updated word break for name and email in navbar
no refs.
- fixed the issue that long name and email in left sidebar were breaking into multiple lines
- added title attribute to name and email
2019-07-17 12:33:27 +02:00
Kevin Ansfield
7b3f5deb11 Updated Twitter username in nav menu 2019-07-02 13:13:01 +01:00
Paul Perkins
209c37f6bb Updated links to editor FAQ page (#1245)
closes https://github.com/TryGhost/Ghost/issues/10803

- updated links to editor usage FAQ to point to new location to avoid a redirect
2019-06-24 11:30:49 +01:00
Fabien O'Carroll
9e53fff840 Renamed "Preview site" to "View site" (#1235)
no-issue

Preview implies something which is not-yet-live, but this feature only shows the live site.
2019-06-24 09:07:02 +01:00
Paul Perkins
a4e18e9bfe 🎨 Changed post/page date picker format to 'YYYY-MM-DD' (#1213)
refs https://github.com/TryGhost/Ghost/issues/10767

The use of the date format 'MM/DD/YYYY' is confusing to those not in American English locations. In the absence of being able to dynamically determine full locale data, using 'YYYY-MM-DD' seems to the least ambiguous date format which would be intuitive to most users.
2019-06-24 09:06:39 +01:00
Peter Zimon
208eae6c07 Admin style refinements (#1234)
refs. c51bce7358

* Refine form inputs and button styles
* Refined Forget link and buttons
* Remove green icon success indicator from login screen
2019-06-21 13:52:39 +02:00
Peter Zimon
c51bce7358 🎨 Updated admin area design and usability (#1232)
refs. https://github.com/TryGhost/Team/issues/205

Major update to Ghost Admin UI including:
- improved general consistency (typography, colors and contrast, UI components, icons)
- new design for post and pages lists, improved discoverability of filters 
- search moved to modal
- account menu is decoupled from ghost logo
- further usability fixes
2019-06-18 11:47:20 +01:00
Kevin Ansfield
9116e5cc24 Hid "feature this post" toggle when logged in as an Author or Contributor
no issue
- hides the "Featured this post" toggle in the post settings menu when the currently logged in user is an Author or Contributor
- https://forum.ghost.org/t/remove-the-permission-to-set-posts-to-featured/7441/5?u=kevin
2019-05-28 09:39:22 +01:00
Kevin Ansfield
c578ca48ec Upgraded our Zapier integration to use API Keys and allow post creation
no issue
- move the Zapier API Key details out of developer experiments because our Zapier 2.0.0 version is now public and requires an API Key when connecting
2019-05-27 10:53:18 +01:00
Kevin Ansfield
c722c83a6e 🐛 Fixed editor crashing when leaving a markdown card's edit mode
no issue
- a change in Ember 3.10's rendering has resulting in the component's element being removed before the `{{gh-markdown-editor}}`'s cleanup action is run which meant that we were trying to run `.querySelector` on `undefined`
- removes the code which moved toolbar elements around because it hasn't been used since we moved to Koenig, this meant that the cleanup action could also be removed
2019-05-23 13:43:01 +01:00
Aileen Nowak
af5aeaf444 Updated link to Marketplace (#1203)
no issue

- Marketplace moved to https://ghost.org/marketplace
2019-05-22 16:55:03 +08:00
Kevin Ansfield
da92eadecd Added ability to set <main> class using route metadata
no issue
- modified `ui` service's `routeDidChange` handler to update it's `mainClass` property based on the new route's metadata
- used in the future for switching screen background colours

To use the feature, modify or add a `buildRouteInfoMetadata` hook in the route which you'd like to change, eg:

```js
export default AuthenticatedRoute.extend({
    ...

    buildRouteInfoMetadata() {
        return {
            bodyClasses: ['my-body-class'],
            mainClasses: ['grey-bg'] // <--------
        };
    }
});

```

The route hierarchy is taken into consideration with classes being added for all currently shown routes. For example if you wanted to add an `editor` class to all editor routes you could use the hook in `routes/editor.js` then if you added an `editor-new` class in `routes/editor/new.js` the resulting HTML output on the "New story" screen would be:

```html
<main class="gh-main editor editor-new">
```
2019-05-20 15:33:12 +01:00
Kevin Ansfield
1520122483 Refactored deprecated usage of setupTest* methods
no issue

- https://github.com/emberjs/ember-mocha/blob/master/docs/migration.md#upgrading-to-the-new-testing-apis
- deleted tests files which had no specific tests
- migrated unskipped component unit tests to integration tests
2019-05-13 15:31:32 +01:00
Peter Zimon
ccbc26d6bc Sidebar refinements and view site in new tab button (#1192)
no refs.

- added view site in new tab button to sidebar
- show secondary actions on sidebar only on mouseover
- replaced labs icon
- refined spacing for view site
- unified colors of secondary icons
2019-05-07 15:29:59 +02:00
Kevin Ansfield
a7f4610381 Removed usage of ember-light-table in subscribers screen (#1191)
no issue

`ember-light-table` is falling behind Ember.js and other addon development and is increasingly causing issues with Ember deprecations and addon incompatibility.

- swaps `ember-light-table` usage for a straightforward table using `vertical-collection` for occlusion
- uses the same loading mechanism as the members screen with a slight optimisation where the initial load will fetch subscribers in batches of 200 until they are all loaded
- removes now-unused pagination mixin
- fixes duplicate subscriber validation handling
2019-05-07 12:39:56 +01:00
Kevin Ansfield
1dad18a06c Added language selection to code cards (#1180)
no issue

- Added a language indicator when in rendered mode and a language input when in edit mode
- Allow code card language to be set with <code>```lang</code>+<kbd>Space/Enter</kbd> expansion 
    - previously <code>\`\`\`</code> would immediately create a code card, the <kbd>Space/Enter</kbd> is now necessary for the insertion to occur
    - lang is optional <code>\`\`\`</code>+<kbd>Space/Enter</kbd> will insert a code card with no language selected
    - requires <kbd>Enter</kbd> to be pressed to finalise the expansion and insert the card
    - added hook for text expansions to skip newline creation for when they are triggered with <kbd>Enter</kbd>
- Set the code card editor's language mode based on selected language
    - set the CodeMirror mode based on the code card payload language
        - add a basic map of language short codes to their respective CodeMirror modes
    - observe `mode` property in `{{gh-cm-editor}}` so that the mode is properly set when it's changed after initial render
2019-04-30 16:46:29 +02:00
Zimo
9ea62c8e13 Updated member labs settings API key URL 2019-04-17 16:37:13 +02:00
Peter Zimon
7f8dd9e4bb Members refinements (#1163)
* Updated loading state for member detail plan data

* Code refinement for loading member plan data
2019-04-17 16:18:21 +02:00
Peter Zimon
46d9d82e19 Members refinements (#1161)
* Added hover to member cells in member list

* Fixed members labs settings for nightshift
2019-04-16 17:02:52 +02:00
Rishabh Garg
c72e7b6040 Updated member management data (#1150)
no issue

- Updated hard-coded data in member management to use real values from API
2019-04-16 20:32:43 +05:30
Zimo
a029e92266 Fixed members labs settings for nightshift 2019-04-16 14:27:55 +02:00
Zimo
d3b50275e0 Added hover to member cells in member list 2019-04-16 14:27:55 +02:00
Kevin Ansfield
151b7a2844 🐛 Fixed missing errors and confusing button text in theme upload modal
no issue
- fixed "Active with errors" button successful theme upload with no warnings/errors
- fixed fatal errors not showing due to change in API error response
- fixed "Retry" button not showing when there were fatal errors
- fixed "Upload successful!" message after clicking "Retry" on a failed upload
2019-04-15 22:43:29 +01:00
John O'Nolan
defbf0f40c Updated to new Twitter username placeholder 2019-04-11 14:33:15 +02:00
Kevin Ansfield
67afe653cd 🐛 Fixed missing error details when activating a theme with fatal errors
no issue
- the API response for theme activation when a fatal validation error occurred has changed but the client wasn't updated resulting in a modal containing an "Activation failed" header but no details
- updates the error details extraction path and adjusts the tests to match the real API response
2019-04-11 11:00:40 +01:00
Vikas Potluri
c19332f093 Fixed post/page labels in feature image and save components (#1143)
closes https://github.com/TryGhost/Ghost/issues/10658

- update publish menu states to use `{{post.displayName}}` instead of hard coded `post`
- update settings menu image uploader to generate CTA using `post.displayName`
2019-04-06 09:01:49 +01:00
Peter Zimon
bd90585956 Improved theme upload/activate flow and error styles (#1142)
no issue 

* Update error and warning styles
* Refined upload dialog
* Theme upload and activation style refinements
2019-04-05 17:27:14 +01:00
Zimo
f75d07ab87 Zapier settings screen UI refinements
no refs.
- refined Zapier template header for integrations screen
2019-04-04 14:07:20 +02:00
Kevin Ansfield
b51bc4751d Added integration details to Zapier integration screen behind dev flag
no issue
- the new version of our Zapier App uses API Key auth so we need to expose the details on the Zapier integration screen
- extracted `copyTextToClipboard` into a util function
- added `integrationModelHook` method to `settings.integrations` controller to remove duplication in the `settings.integration` and `settings.integration.zapier` routes
- fixed missing "Zapier" title token
2019-04-04 12:25:16 +01:00
Vikas Potluri
747bf6ea9f 🐛 Fixed confusing messaging around .yml extension being allowed for routes.yaml uploads (#1140)
no issue

The server never supported uploading .yml files

* updated uploader `invalid extension` error message to be more abstract
* fixed routes uploader validation allowing .yml files
2019-04-03 19:54:05 +01:00
Zimo
5b9e68401a Added placeholder illustration for posts and pages
no refs.
2019-03-25 16:43:38 +01:00
Kevin Ansfield
162cbae3f0 Improved theme activation warnings modal content
closes https://github.com/TryGhost/Ghost/issues/10627
- removed confusing/unnecessary message when activation was successful with warnings
- do not display "Warnings" sub-heading if there are no other errors to reduce duplication with the modal title
- changed "Close" button text to "Ok" so it feels more like a confirmation
- refactored modal template to have explicit `this` rather than implicit property lookup ([RFC](e724c7087e/text/0308-deprecate-property-lookup-fallback.md))
2019-03-25 12:20:14 +00:00
Zimo
cdd3f40422 Fixed button and title cases for Tags screen
no refs.
Set "New tag" button and "Tag settings" to sentence case to be consistent with the rest of the UI. (Previously they were title case.)
2019-03-25 09:37:44 +01:00
Kevin Ansfield
700d3587c3 Fixed "view site" link not getting active class immediately after login 2019-03-21 18:08:57 +00:00
Kevin Ansfield
e7b740ba5f Added reset-to-homepage behaviour when clicking "view site" link
no issue
- return a basic "guid" from the site's `model` hook so that we have some data which changes on each refresh
- add an action to the wrapper element of the "view site" link which will cause the route to refresh when clicked if we're already on the route
- move the site iframe into a component so that it can watch an @uuid property and force a reset of the iframe's `src` when it detects a change
2019-03-21 17:55:58 +00:00
John O'Nolan
181de6f5ea View site inside Ghost Admin
no refs.
- added "View site" as the first and default menu item in navigation bar to be able to browse the site without leaving the Admin
- rearranged left sidebar items according to new structure (moved Labs down to bottom)
- removed "View site" from publication main menu because it's become redundant
- added Night shift toggle in line with Labs menu to be able quickly access it
2019-03-21 10:33:14 +01:00
Kevin Ansfield
68c09fce2d Fixed random failures in uploader component tests
refs https://github.com/TryGhost/Ghost/issues/10308
- removed reliance on `run.later` (`setTimeout`) in tests, instead favouring explicit ember-test-helper methods which wait for DOM changes
2019-03-18 19:14:24 +00:00
Kevin Ansfield
63b8127cfa Fixed "Send invitation" button needing to be clicked twice
refs https://github.com/TryGhost/Ghost/issues/7131
- adds `disableMouseDown` flag to `{{gh-task-button}}`
- uses flag for the send invite button so that the focus-out validation on the e-mail input is not triggered before the click event is triggered
2019-03-18 17:56:32 +00:00
Kevin Ansfield
98ab4d1d20 Fixed missing margin on subscribers action buttons 2019-03-15 16:27:52 +00:00
Kevin Ansfield
855fd7ae80 🐛 Fixed difficult to cancel webhook modal
closes https://github.com/TryGhost/Ghost/issues/10135
- `focusOut` events are fired before the `click` event is fired when clicking buttons whilst an input has focus, this has the effect of triggering our on-blur validations that can cause UI to jump which then results in the `mouseUp` being outside of the button which means no `click` event is fired
- stops `mouseDown` event from bubbling from modal cancel/close buttons so that `focusOut` validations aren't triggered
2019-03-15 14:38:54 +00:00
Kevin Ansfield
9104b73aff Fixed ember resolver warning for ambiguous authorNames access
no issue
- we've added an `{{author-names}}` helper, this generated a warning from `{{gh-posts-list-item}}` which contained `{{authorNames}}` referencing a CP on the component context
- changing the CP access to be explicit using `{{this.authorNames}}` resolves the warning
- updated other references in the template to be explicit in order to differentiate between local context and helpers (this will be enforced in later Ember versions)
2019-03-13 16:16:08 +00:00
Kevin Ansfield
59d7651ef0 🐛 Fixed author names not appearing in Facebook open-graph preview
no issue
- added an `{{author-names}}` helper that takes an array of author-like objects and returns their names separated by a comma
2019-03-12 12:15:02 +00:00
Kevin Ansfield
8ba1c8fb79 Added ability to override the canonical URL of posts/pages
closes https://github.com/TryGhost/Ghost/issues/10593
- adds a "Canonical URL" field to the Meta Data section of the Post Settings Menu
- adds validation for canonical url being a valid absolute or relative URL
2019-03-12 10:40:07 +00:00
Zimo
d120440c96 Updated animation of copy buttons in integration
no refs.
"Copy" buttons in the integration detail screen are shown only on hover. Removed animation to make it snappeir.
2019-03-08 09:47:59 +01:00
Kevin Ansfield
047f5695b4 🐛 Fixed vague upload error messages on General and Labs setting screens
no issue
- API now returns the "useful" error message in `error.context` rather than `error.message`
- updated `{{gh-uploader}}` to expose `context` on errors
- updated error display to try using `context` with a fallback to `message`
2019-03-07 13:40:38 +00:00
John O'Nolan
01559cf447 Blog => Site 2019-03-07 15:31:15 +02:00
Vikas Potluri
170973eb67 Fixed post/page wording in Page PSM and delete modal (#1109)
closes https://github.com/TryGhost/Ghost/issues/10577
2019-03-07 09:13:31 +00:00
Kevin Ansfield
6b32cb4b80 Added error context to API error alert messages 2019-03-06 11:45:47 +00:00
Kevin Ansfield
58afbc209d Renamed ghostHead/Foot settings to codeinjectionHead/Foot (#1107)
closes https://github.com/TryGhost/Ghost/issues/10560
- match changes in the API
2019-03-05 10:40:19 +00:00
John O'Nolan
dbbee07288 Blogs => Sites 2019-03-05 10:36:34 +02:00
Rish
ffb4ca27ad Updated members menu to work with labs feature
no issue
2019-03-05 11:45:15 +05:30
John O'Nolan
3ad9fb16d4 Fixed broken link to Google Analytics integration 2019-03-04 15:53:47 +02:00
Katharina Irrgang
14916ef1d1 🐛Fixed theme upload
closes #10545

- the server side has changed the field name in Admin API v2
- ref: a1023f0b11
2019-02-27 10:02:52 +01:00
Kevin Ansfield
e6df64ed52 Switched About screen to use config service 2019-02-26 16:12:34 +07:00
Rish
57f9663b6e Added members feature to labs
no issue

- Added new members settings/toggle to labs
2019-02-26 15:33:38 +07:00
Kevin Ansfield
fb7db69ffe Added post, page, and tag related webhook trigger events
refs https://github.com/TryGhost/Ghost/issues/10461
- added new webhook events to the event selection dropdown with grouping
2019-02-26 13:23:37 +07:00
Kevin Ansfield
8617dba252 Added v2 Admin API with token authentication
closes https://github.com/TryGhost/Ghost/issues/9865
- moved Admin API Key display out of developer experiments
- docs: https://docs.ghost.org/api/
2019-02-26 12:49:02 +07:00
Kevin Ansfield
a4c4fa7335 Updated gh-image-uploader to work with new /images/upload/ endpoint 2019-02-26 09:39:04 +07:00
Kevin Ansfield
feddec99a8 Fixed general settings acceptance test 2019-02-26 09:15:19 +07:00
Kevin Ansfield
72d9732958 Updated gh-uploader to work with new /images/upload/ endpoint 2019-02-25 23:01:49 +07:00
Zimo
39b16fb3d4 Updated member list search design 2019-02-23 18:57:15 +07:00
Kevin Ansfield
9e3974a93d Fixed integration acceptance test 2019-02-23 17:57:17 +07:00
Kevin Ansfield
49942f5604 Added basic search to members list 2019-02-23 17:14:22 +07:00
Zimo
bb2c5426bc Refined integrations API table design 2019-02-23 17:06:34 +07:00
Kevin Ansfield
2398d73e24 Added copyable API Url to custom integration screen 2019-02-23 16:48:39 +07:00
Zimo
46124ed6ee Refined members list and detail design 2019-02-23 16:31:18 +07:00
Kevin Ansfield
6ac2569f24 Implemented first pass of member details screen 2019-02-22 18:32:09 +07:00
Nazar Gargol
44ce2f5359 Renamed /uploads* endpoints to /images*
refs #10438
2019-02-22 18:16:25 +07:00
Kevin Ansfield
f71b92c544 Fixed links to pages on pages list screen 2019-02-22 16:48:33 +07:00
Peter Zimon
605b89a0d2 Left navigation menu update (#1102)
refs. [d6c22df](d6c22df6d7)

- added icons for members and pages
- improved view site link visibility
- added view site to logo dropdown
- updated all navigation and logo menu icons
- rename 'team' to 'staff'
- lots of design refinement and update (colors, shadows)
2019-02-22 16:43:35 +07:00
Kevin Ansfield
68e684453d 🐛 Fixed Code Injection inputs not being clickable
no issue
- attempt to fix the "Cannot set property 'modeOption' of undefined" error by telling CM to replace the textarea element rather than appending to the wrapper and having Ember replace the textarea
2019-02-22 10:52:32 +07:00
Kevin Ansfield
d6c22df6d7 🎨 Separated post and page list screens (#1101)
no issue
- added `page` model
- removed `page` param from Post model
- added pages screen with associated links
- added `:type` param to editor screens to work with the right models
- removed post<->page toggle and associated tour item
2019-02-22 10:17:33 +07:00
Kevin Ansfield
6fdf4be0ce Fixed signup acceptance tests 2019-02-11 12:35:47 +00:00
Kevin Ansfield
7f1c71c831 🐛 Fixed Chrome remembering wrong username when signing up from invitation
closes https://github.com/TryGhost/Ghost/issues/9868
- place email field directly above password field
- enable email field and do not set an initial value requiring user to type-in/auto-fill the email for Chrome to recognise it
2019-02-11 11:35:43 +00:00
John O'Nolan
e09ba348e2 Blog => Site 2019-02-07 11:16:04 +07:00
Kevin Ansfield
82fbbe9442 Show loading spinner on first load of members screen 2019-01-31 16:47:31 +00:00
Zimo
ea2b89ab1c Visual tweaks on Members list
- tune list style
- tweak generated avatar background-colors
- type and color refinements
2019-01-31 17:41:55 +01:00
Kevin Ansfield
e57bb177b7 Load all members on members screen, use occlusion scrolling for perf 2019-01-31 12:58:15 +00:00
Kevin Ansfield
b3716505fa 🐛 Fixed incorrect username being saved by Safari when signing up via invitation
refs https://github.com/TryGhost/Ghost/issues/9868
- ensure signup task is always initiated via form submit
  - adds `defaultClick` option to `<GhTaskButton>` that allows the click event to bubble
- adds `autocomplete` values to signup form fields that match up to the spec
  - "name/display-name": `name`
  - "email": `username email`
  - "password": `new-password` / `current-password` depending on context
- 🔥 no-longer-relevant hacks for Chrome autocomplete
  - this still doesn't fix Chrome remembering the incorrect username unfortunately. Chrome will always select the input previous to the password that has had actual user input as the "username"
- 🔥 unused `authenticate` task in signup controller
2019-01-31 10:27:40 +00:00
Peter Zimon
c4a8a1cbaa Updated integrations UI (#1086)
no issue

Updated custom integrations section for a more balanced and consistent design:
- removed green "New custom integration" button and added a fixed bottom row in the custom integrations list
- added "Custom integrations" heading to the list
- synced webhooks design with this pattern
2019-01-28 12:53:48 +00:00
Kevin Ansfield
a7e9796101 Renamed <MemberAvatar/> to <GhMemberAvatar/> for naming consistency 2019-01-25 13:51:18 +00:00
Kevin Ansfield
7ec48b36e0 First pass at members list
no issue
- don't nest details route as it's not nested UI
- implement styled list of members
- add `<MemberAvatar>` component that generates random background colour and initials based on member name
- fixed generation of fake member details in mirage
2019-01-24 19:34:32 +00:00
John O'Nolan
1885d0a193 Update Unsplash logo 2019-01-23 15:05:28 +07:00
Kevin Ansfield
bea2d8c871 Added empty member management routes 2019-01-22 16:23:26 +00:00
Kevin Ansfield
8d7be6bdb2 Removed "defaults to" text from Slack integration's username description 2019-01-21 12:35:19 +00:00
Greg Hart
b235f68052 Added ability to configure Slack integration's username (#1084)
closes https://github.com/TryGhost/Ghost/issues/9735
- add "Username" form to Slack integration
2019-01-21 12:26:21 +00:00
Hannah Wolfe
f10f7dce22 Updated docs links to best equivalents (#1097)
- Our documentation has been overhauled, this updates the all the old links sprinkled through Ghost-Admin
2019-01-16 16:03:33 +00:00
Fabien O'Carroll
22a41f5663 💡Removed Public API checkbox by default (#1096)
refs #10364

When the publicAPI flag is undefined, it means it has never been set in
Ghost Admin before - so we can safely remove the option from labs.
2019-01-15 11:23:49 +01:00
Kevin Ansfield
434e8ba2f7 🐛 Fixed infinite scroll on the team screen (#1095)
closes https://github.com/TryGhost/Ghost/issues/10307
- removed infinite scroll from the team screen
- adjusted team screen behaviour to pull from the local cache and update in the background to speed up navigation to the screen
- use `{{vertical-collection}}` to render the users list for faster initial render with many users
2019-01-14 14:50:30 +00:00
Kevin Ansfield
5e3de1c333 🎨 Removed auto hide/show navigation toggle (#1094)
no issue
- the autonav behaviour has outlasted it's usefulness - it was mostly useful for editing but the editor screen is now always fullscreen and the number of low-resolution screens has dropped significantly
- dropped the components and all supporting code associated with autonav behaviour
2019-01-10 15:00:07 +00:00
Kevin Ansfield
73daa80b7f Migrate to latest ember, ember-mocha and modern ember testing (#1044)
no issue
- upgrade to latest `ember-source` and related dependencies including `ember-cli`
- upgrade to latest `ember-mocha` and modern ember testing setup
    - https://github.com/emberjs/rfcs/blob/master/text/0268-acceptance-testing-refactor.md
    - switch from using global acceptance test helpers and `native-dom-helpers` to using the new `ember-test-helpers` methods
    - use [`chai-dom`](https://github.com/nathanboktae/chai-dom) assertions where in some places (still a lot of places in the tests that could use these)
- pin `ember-in-viewport` to 3.0.x to work around incompatibilities between different versions used in `ember-light-table`, `ember-infinity`, and `ember-sticky-element`
    - incompatibilities manifested as "Invalid value used as weak map key" errors thrown when using `ember-light-table` (subscribers screen)
- pin `ember-power-datepicker` to unreleased version that contains a move from global acceptance test helpers to modern test helpers
2019-01-02 09:58:55 +00:00
Kevin Ansfield
895d55f4a4 Changed 'blog' to 'site' in setup flow 2018-12-14 17:05:45 +00:00
Kevin Ansfield
1946c7f3fa 🐛 Fixed ability to submit invite form with a missing role (#1080)
refs https://github.com/TryGhost/Ghost/issues/10071
- moved roles fetch request into an ember-concurrency task
- use the task's derived state to disable the submit button whilst fetching
- added role presence check to the invite user validator and updated template to display the error
2018-12-10 14:26:05 +00:00
John O'Nolan
6fbe4f42d6 More specific docs link
No issue

Nothing wrong with the docs link but in this context makes more sense to deep link to the info specifically about Ghost Handlebars themes
2018-12-06 15:44:21 +07:00
John O'Nolan
314ac7c5ac Fix broken docs link
Refs https://github.com/TryGhost/Ghost-Admin/pull/1078
2018-12-05 14:01:25 +07:00
John O'Nolan
4ab05b5403 I was never here 2018-12-04 21:04:33 +07:00
John O'Nolan
5fde7ea168 SVG fix 2018-12-04 21:02:58 +07:00
John O'Nolan
e36f8ca0c1 Added new theme directory links to Ghost Admin (#1078)
* Add new theme directory links to Ghost Admin

* Dark mode fixes
2018-12-04 18:04:52 +07:00
Sumedh Nimkarde
83aeea7892 🐛 Fixed the link for Markdown guide documentation. (#1076) 2018-12-03 17:40:07 +07:00
John O'Nolan
59ce575e69 Highlight new integrations directory (#1070)
no issue
- we have a new integrations directory in our docs so we’ve highlighted the most common directly on the integrations screen
2018-11-13 09:18:31 +00:00
Kevin Ansfield
c33edbac08 Fixed webhook modal title showing "New webhook" when editing a webhook
refs https://github.com/TryGhost/Ghost/issues/10137
- adjust modal title depending on `webhook.isNew` state
- add acceptance tests for modal creation
- add missing mirage webhook factory
- mock integrations/api-keys/webhooks in test env rather than development
2018-11-12 16:31:47 +00:00
Rishabh Garg
032fba8f7b Added active navigation state for all integrations related routes (#1069)
closes https://github.com/TryGhost/Ghost/issues/10136
- use a CP and `{{#link-to current-when}}` to add the `.active` class any time the current route name starts with `settings.integration` which covers built-in and custom integration screens
2018-11-12 13:10:33 +00:00
Kevin Ansfield
d88e7efd04 🎨 Changed tags list, filter dropdown, and select input to sort alphabetically (#1066)
no issue
- switch tags sorting from ID based to alphabetical
- pre-requisite to nested tags sorting
2018-11-07 15:06:28 +00:00
Kevin Ansfield
ac17053863 Added custom integrations - Content API Keys and "Site rebuild" webhooks (#1063)
closes TryGhost/Ghost#9942
- move custom integrations UI out from behind the developer experiments flag
- put Admin API key and web hook secret fields behind the developer experiments flag
- do not show "unsaved changes" modal when adding/editing a webhook
- fixed all webhooks showing for each custom integration
2018-11-06 10:59:47 +00:00
Peter Zimon
3f7a036905 Integration UI refinements (#1059)
no issue
* Integration detail page design refinements
* Fixing error message layout on integration detail screen
* Heading details
* Margin refinements
* Refine webhooks modal
* Lines and font sizes
* Replace integrations icon
2018-10-24 14:04:17 +01:00
Kevin Ansfield
e7a8be81ef Cleaned up class and :contains based test selectors
no issue
- nav menu had many unused CSS classes that were sometimes used for test selectors
- `:contains` is not a native CSS selector so will cause issues when we switch to native test helpers
2018-10-23 18:11:48 +01:00
Kevin Ansfield
fce4aa9176 Added ability to upload integration icons (#1058)
no issue
- add `{{aspect-ratio-box}}` to make it easier to adjust box sizes at a fixed ratio based on container height which isn't possible with CSS directly
- used `{{gh-uploader}}` to add upload facility to the icon shown on the integration screen
2018-10-23 10:29:49 +01:00
Fabien O'Carroll
0d38df0f74 Added ability to delete integrations (#1057)
no issue
- adds delete integration modal, and delete button on the integration page to trigger it
2018-10-19 17:37:27 +01:00
Kevin Ansfield
296e35493d Added edit webhook modal (#1056)
requires https://github.com/TryGhost/Ghost/pull/10033
- added `settings.integration.webhooks.edit` route
  - `/integrations/:integration_id/webhooks/:webhook_id`
- added error handling to the webhook form modal that copes with the actual errors we get back from the server
- added `event-name` helper to display humanised event names in the webhooks list
- added delete button to the webhooks list and associated confirmation modal
2018-10-19 17:34:53 +01:00
Kevin Ansfield
832968d4a5 Improved api key clipboard copy behaviour
no issue
- display "last seen" time if available for API keys
- use CSS to for hover behaviour instead of JS toggle
- add background to "copy" button so it's visible when on top of key data
- use ember-concurrency tasks instead of actions and used the derived state to show a temporary "copied to clipboard" message in place of the "last seen at" time
2018-10-19 00:09:05 +01:00
Kevin Ansfield
9684e5e347 Changed "new-webhook" modal to generic "webhook-form" modal
no issue
- the webhook form needs to be re-usable for the "edit webhook" modal
- renamed modal
- added logic to adjust the confirm button's text depending on the state of the passed in webhook model
2018-10-18 18:43:34 +01:00
Kevin Ansfield
5047b9f3d7 Added initial custom integrations UI (#1051)
refs https://github.com/TryGhost/Ghost/issues/9865, https://github.com/TryGhost/Ghost/issues/9942

- `integration`, `api-key`, and `webhook` models and respective mirage mocks
- moves integration routes around to match ember's concept of nested routes (nested routes reflect nested UI not nested URLs)
- adds custom integrations list to integrations screen
- adds custom integration screen
  - allow editing of integration details
  - show list of webhooks
  - webhook creation modal

NB: the `enableDeveloperExperiments` flag needs to be enabled in the `config.development.json` file for the custom integrations UI to be displayed until it's out of development.
2018-10-18 00:18:29 +01:00
Kevin Ansfield
e04f3b6312 Adjust post URL handling for API v2's absolute URLs (#1055)
no issue
- API v2 outputs absolute URLs so we no longer need to construct full URLs ourselves
2018-10-16 16:54:15 +01:00
Kevin Ansfield
656a20272a Fixed non-admin redirects on integration routes
no issue
- after un-nesting the built-in integration routes they no longer had the automatic redirect for non-admins
- added our non-admin redirect behaviour to all of the integration routes
- added our non-admin redirect behaviour to the Zapier route which didn't even have an authenticated redirect previously
- added acceptance test for Zapier route so verify the new behaviour
- wrapped the Zapier widget `<script>` tag in an "is testing" conditional so that the external script doesn't get loaded during tests
2018-10-04 12:16:41 +01:00
Kevin Ansfield
a23bbf2368 Clean up integrations routes loading states
no issue
- integrations index screen no longer needs to reload the settings cache
- individual built-in integration routes should handle their own reloading if necessary (eg, zapier doesn't need any settings so doesn't need a delay or loading template)
- built-in integration routes are no longer nested and so need their own loading templates
2018-10-04 11:41:11 +01:00
Kevin Ansfield
01ef03a430 Fixed cherry-pick mixup
no issue
- 🙈
2018-10-04 11:14:38 +01:00
Kevin Ansfield
b167f0afd5 Re-jigged integrations routes to support nested modal route
no issue
- moves integration routes around to match ember's concept of nested routes (nested routes reflect nested UI not nested URLs)
- sets us up for having a `settings.integrations.new` modal route that sits on top of the index screen
2018-10-04 11:10:17 +01:00
Kevin Ansfield
6dfafdc801 Renamed Apps to Integrations (#1050)
refs https://github.com/TryGhost/Ghost/issues/9865, https://github.com/TryGhost/Ghost/issues/9942
- Apps are becoming Integrations that cover the existing built-in integrations as well as new custom integrations
- custom Integrations will comprise of API keys for the Admin and Content APIs and custom-registered webhooks
2018-10-04 11:02:36 +01:00
Kevin Ansfield
14633d085c Removed unnecessary save button from Zapier screen
no issue
- save button is not needed and wasn't hooked up to any functionality (it errored if clicked)
2018-10-03 23:25:38 +01:00
Kevin Ansfield
53cbb092ab Removed outdated static html files
no issue
- old static html design files no longer work because they haven't kept up with changes in app and css structure and no longer represent directions that Ghost is moving towards
- removed in a single commit so that it's still possible to retrieve later if needed
2018-10-03 18:25:24 +01:00
Rish
49c5afb2e3 🎨 Forced uploaded profile image to be square
Refs https://github.com/TryGhost/Ghost/issues/8576

- updated profile image upload url to `/uploads/profile-image`, allows only square images to be uploaded
2018-09-25 15:22:01 +07:00
Kevin Ansfield
525fb2a720 Fixed submit-on-enter and password manager issues on signup
closes https://github.com/TryGhost/Ghost/issues/9868
- moved submit action to the `<form>` which allowed removal of the per-input enter key handlers
- changed submit button to trigger the form submit
- improved markup for password managers
  - linked labels with inputs
  - changed button to a "submit" type and linked it with the form
  - added hidden email input at the bottom of the form in case password managers do not take disabled inputs into account
2018-09-17 16:03:58 +01:00
Peter Zimon
7fa0ff805f Update error page design (#1045)
no issue
* Adding basic 404 animation
* Adding bounce to tumbleweeds on error screen
* Bump Spirit dependency to 0.0.42
2018-09-11 16:29:23 +01:00
Zimo
179cf5c47c Fixing background for unavailable user image file 2018-08-23 15:46:20 +02:00
Katharina Irrgang
d0eb4eb992 Updated links to use v2 docs (#1036)
no issue

- found some more v1 links
2018-08-15 23:35:17 +02:00
Zimo
067fbd4c34 Fixing vertical alignment for error and spinner in Unsplash browser 2018-08-15 16:36:24 +02:00
Kevin Ansfield
3d0091c9f5 Made Koenig the default editor, removed Koenig labs flag 2018-08-14 17:49:50 +01:00
Kevin Ansfield
7ee7c3a9f8 Removed dated permalinks setting
no issue
- permalink config is now handled through `routes.yaml`
2018-08-14 17:49:50 +01:00
Kevin Ansfield
e4f7a0dbb2 Added routes.yaml upload to Labs screen
refs https://github.com/TryGhost/Ghost/issues/9744
- adds `routes.yaml` upload using the same UI as the `redirects.json` upload
  - upload: `POST /settings/routes/yaml/`
  - download: `GET /settings/routes/yaml/`
2018-08-14 17:49:50 +01:00
Kevin Ansfield
4463f975e3 Koenig - Unsplash integration
refs https://github.com/TryGhost/Ghost/issues/9724
- standardised `{{gh-unsplash}}` actions and action arguments to better represent a generic "image source"
- added `{{gh-unsplash searchTerm="ghosts"}}` parameter
- added `payload` param to `card` definitions used for plus/slash menus so that default payload params can be passed to cards
- added a concept of "image selectors" to image card
  - if a `payload.imageSelector` param is received by the card it will look it up in it's list of known selectors and display the appropriate image selection component
  - if the card was created with an image selector param and the image selector is closed without selecting an image then the card will be removed
- delete image cards during cleanup if they were created via selector but have no src
2018-08-10 18:11:35 +01:00