Commit Graph

29118 Commits

Author SHA1 Message Date
Kevin Ansfield
2d1d810198 Fetched actor record to display real name when listing audit log events
no issue

- switched `parse-audit-log-event` to a class helper to get access to dependency injection
- added `get actor()` to the parsed event object
  - uses the store to find the related user record, returning an already loaded record if it exists otherwise fetches the record
  - allows use of `event.actor.*` in templates because they are promise-aware and will be filled in once the record is loaded
2022-08-17 14:14:47 +02:00
Djordje Vlaisavljevic
9f294fa900 Switched divs to buttons
refs https://github.com/TryGhost/Team/issues/1811
2022-08-17 13:08:45 +02:00
Djordje Vlaisavljevic
e359d2cb32 Updated new/edit offer form design
refs https://github.com/TryGhost/Team/issues/1811
2022-08-17 12:55:30 +02:00
Peter Zimon
d3fb88ecb3 Open first section by default in email settings
no refs.

- All the sections of the accordion in Email newsletter settings is closed by default. Opening the first section makes the workflow quicker.
2022-08-17 11:42:35 +02:00
Peter Zimon
41484e60a3 Minor Portal settings UX improvements
refs. https://github.com/TryGhost/Team/issues/1813

- All the groups of the Portal settings accordion was closed by default. Opening the first group when showing the modal makes the workflow faster.
- The top heading on the content area had a white background which made the screen visually a bit cluttered.
2022-08-17 11:06:53 +02:00
Peter Zimon
56409d0193 Removed enable/disable logic from offer link
refs. https://github.com/TryGhost/Team/issues/1812

- The "Copy link" button on the Offer detail screen was only enabled once certain fields were filled. This makes unnecessary cognitive load on the end user.
2022-08-17 10:58:24 +02:00
Daniel Lockyer
714611b9fd
Added resource ID to action row
refs https://github.com/TryGhost/Toolbox/issues/356

- this will soon be populated with the actual resource name, if present
2022-08-17 10:53:21 +02:00
Daniel Lockyer
7aecae11cc
Cleaned up multiple implementations of getAction
refs https://github.com/TryGhost/Toolbox/issues/356

- we had a function called `getAction` in every model where we were
  collecting CRUD actions to store in the DB
- this function has the same boilerplate code - make sure it's not
  internal and then construct the object to return
- as we add more actions to more models, we probably want to pull this
  out and just configure the things specific to the model
- this commit pulls out the function into the actions plugin and adds a
  couple of keys to the models to indicate we'd like to store CRUD
  actions, along with the model name
2022-08-17 10:40:34 +02:00
Daniel Lockyer
6c2aebbf0c
Added first version of Audit Log UI
refs https://github.com/TryGhost/Toolbox/issues/356

- skateboard version w/ loading data from API, settings button guarded
  by labs, and a basic UI populating a table with info
2022-08-17 10:16:47 +02:00
Daniel Lockyer
e77fedf9b2
Allowed label actions workflow to be run manually
- we might want to manually trigger the workflow outside of the
  schedule/event-driven flow
2022-08-17 09:26:56 +02:00
renovate[bot]
f348fc3223
Updated @tryghost dependencies (#15235)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-08-17 08:45:47 +02:00
Daniel Lockyer
3cf64a1e78 Switched Mailgun SDK from mailgun-js to mailgun.js
refs https://github.com/TryGhost/Toolbox/issues/363

- this commit switches us to using the official and maintained
  `mailgun.js` SDK, and updates the `mailgun-client` code to reflect the
  changes between the two
2022-08-17 08:45:21 +02:00
Daniel Lockyer
f48a48914a Updated mailgun-client test fixtures
- some of the existing tests return `items` as an empty array
- the upcoming change to switch `mailgun-js` to `mailgun.js` means it's
  more strict about requiring `paging` too
- this commit adds a new empty-response fixture so we can standardize
  using that across tests
2022-08-17 08:45:21 +02:00
Kevin Ansfield
9335b57741 🐛 Fixed line breaks not persisting when used inside email cards
no issue

- we allowed line breaks to be created in the text-replacement html input used inside email cards but they were removed as soon as the card's edit mode was left
- fixed the clean-text-replacement-html routine so `<br>` atoms aren't stripped
- added the soft-return parser to the `<KoenigTextReplacementHtmlInput>` editor options so the `<br>` elements are correctly parsed back into atoms when entering edit mode
2022-08-16 16:56:40 +01:00
Djordje Vlaisavljevic
17de478a86 Updated .lint-todo 2022-08-16 17:21:52 +02:00
Djordje Vlaisavljevic
5f2d55dace Updated tier preview in tier modal
refs https://github.com/TryGhost/Team/issues/1791
2022-08-16 16:44:26 +02:00
Simon Backx
c4ea36cfde
Added member attribution script (#15242)
refs https://github.com/TryGhost/Team/issues/1804

- Adds a script that is only injected when the member attribution alpha flag is enabled
- This script builds a history and saves it in localStorage as `ghost-history` that contains something like this: 
``` json
[
    {
       "time": 1660650730,
        "path": "/about/"
   },
   {
        "time": 1660651730,
       "path": "/welcome/"
    }
]
```

- Keeps track of the time of every page visit, so we can correctly remove old items. I also considered saving the time separately and clearing the whole history when the saved time is older than 24h, but that would have the side effect that items older than 24h might leak into the history if you visit every 12 hours (to give an example). Plus, having objects in the history might make it easier to add other attributes to the items if we ever want to do that in the future. We also have access to the time between visits.
- Added `.eslintrc` configuration for this new frontend script. This makes it easier to spot errors when developing, and follow the same syntax rules as other scripts. In the future it can allow us to require an older ECMA version in the browser script. If we like this pattern, we could also use it for other frontend scripts.
2022-08-16 15:44:51 +02:00
Naz
6cf49d8f89 Fixed inconsistent format of image sizes cache
refs https://github.com/TryGhost/Toolbox/issues/364
refs 147ec91162

- This looks like a subtle bug that has gone unnoticed for years. Have checked if we rely on the logic anywhere (mostly used in image-dimensions frontend helper) - we don't access the "url" directly.
- There is no reasoning attached behind why the cached size was stored as a url (see refed commit)

- WHY is this even being fixed? Caches can store anything... does not mean we should! Inconsistent data becomes a real PITA  if the cache is persisted and is hard to repopulate (e.g. to migrate the cached data format).
2022-08-16 15:20:49 +02:00
Peter Zimon
e811a75972 Fixed tier card dropdown link bug
no refs.

- There was a bug on the tier cards action menu dropdown in Settings/Membership that the buttons in the dropdown were clickable even when it was closed.
2022-08-16 14:27:22 +02:00
Peter Zimon
1b6b905dcd Added free trial indicator to tier card in Admin
refs. https://github.com/TryGhost/Team/issues/1806

- free trial indicator - which helps users identify tiers easier - was missing on tier cards in Settings / Membership in the Admin
2022-08-16 14:15:31 +02:00
Naz
e4d02657ee Swapped image size "Map" cache for adapter cache
refs https://github.com/TryGhost/Toolbox/issues/364

- The "new Map()" cache was a "hidden cache" that did not follow any specific pattern. Following the cache adapter pattern here makes it possible swapping out the cache for alternative implementations - e.g. Redis storage
2022-08-16 12:35:35 +02:00
Naz
34b4421452 Moved settings cache to an explicit "in memory" adapter
refs https://github.com/TryGhost/Toolbox/issues/364

- Before introducing an image size caching mechanism we need to make existing caches explicit - makes sure caches are operating in multiple different instances.
- Explicit syntax also allows to pass in different configurations for each cache instance (e.g. use different Redis connections for caches with different purposes)
2022-08-16 12:35:35 +02:00
Naz
05eb719d0a Swapped image size cache with InMemoryCache
refs https://github.com/TryGhost/Toolbox/issues/364

- The InMemoryCache is an implementation of the cache adapter interface and allows to test cache in the works which is "close to the real world". Being able to do so in tests for image sizes cache manager proves we can use other cache adapters such as Redis based ones.
2022-08-16 12:35:35 +02:00
Naz
e549528985 Simplified image size cache module constructor
refs https://github.com/TryGhost/Toolbox/issues/364

- As little as possible should be passed in in the parameters for any method/constructor/whatever. Specific Function > vague Object
2022-08-16 12:35:35 +02:00
Naz
58a656cbc2 Refactored cached image sized module async error handling
refs https://github.com/TryGhost/Toolbox/issues/364

- A little cleanup
2022-08-16 12:35:35 +02:00
Naz
92d6c998b3 Fixed error handling bug in image size cache
refs https://github.com/TryGhost/Toolbox/issues/364

- Doing the `.catch(errors.NotFoundError...` was throwing another error as this syntax did not work with native promises. Checking `instanceof` works 100% and is way more explicit/readable way to handle this type of error differently
2022-08-16 12:35:35 +02:00
Naz
7910779143 Removed "has" method usage to be cache-compatible
refs https://github.com/TryGhost/Toolbox/issues/364

- Cache adapter does not have a "has" method, so using "get" instead to achieve the same to have full compatibility. Should allow to just drop in the cache adapter implementation instead of current Map instance.
2022-08-16 12:35:35 +02:00
Naz
38c76847e9 Refactored cache image size test suite
refs https://github.com/TryGhost/Toolbox/issues/364

- It was using an outdated syntax and relied on Bluebird depencency. Updated the syntax to async/await and dropped the Bluebird dependency.
2022-08-16 12:35:35 +02:00
Naz
7d3b678d4e Refactored cached image size to have cache as DI
refs https://github.com/TryGhost/Toolbox/issues/364

- Groundwork before swapping out existing cache for in-memory cache from the adapter
2022-08-16 12:35:35 +02:00
Daniel Lockyer
d7aa064e0f
🐛 Fixed adding emojis in editor
fixes https://github.com/TryGhost/Ghost/issues/11541

- due to an upstream bug, typing emojis using Safari would show square
  boxes in the editor
- the upstream patch has been fixed, so I've pulled it into our
  mobiledoc-kit fork
- this commit bumps that package to fix the issue in Ghost
2022-08-16 11:40:01 +02:00
Fabien "egg" O'Carroll
c37670ea40 Fixed Settings API test snapshot
refs https://github.com/TryGhost/Team/issues/1801

Adding a new labs flag increased the content length of the settings snapshot
2022-08-15 17:20:43 -04:00
Fabien "egg" O'Carroll
73fec0fc93 Added the memberAttribution alpha flag
refs https://github.com/TryGhost/Team/issues/1801

This will allow us to develop behind a flag, and switch it to beta
down the line.
2022-08-15 17:10:08 -04:00
Daniel Lockyer
d153b40c48 v5.9.4 2022-08-15 20:47:26 +01:00
Fabien 'egg' O'Carroll
96cd6df6fa
🐛 Fixed Comments administration for self hosters (#15239)
refs https://github.com/TryGhost/Team/issues/1799

Rather than using the `adminAuthAssets` config which is not updated to
be aware of running in a different directory to the cwd, we use the
getContentPath method which handles all of the directory checking.

Without this, we were unable to serve the admin-auth iframe, as the
directory was incorrect for self hosters.
2022-08-15 15:38:19 -04:00
Daniel Lockyer
b27ea8f504
Optimized database resets for local testing
- we've had an optimization in CI that copies a fresh SQLite DB to a
  file, and copies it back when we need to do a DB reset
- I originally only let this run in CI but we've had it around for a
  while so we should GA it to run on local machines
- there may be edge cases, but we should fix them instead of letting
  tests run slower for development
- this also makes sure we clean up any existing files before
  initializing the DB
2022-08-15 16:58:56 +02:00
Hannah Wolfe
9f38e8c49c
Removed unused comments route (#15238)
- the comments system lives at members/api/comments and was meant to be removed from here in an early refactor but was missed, possibly as a result of the huge rebase we did
2022-08-15 15:45:42 +01:00
Hannah Wolfe
22fd7f289c
Removed need for snapshot updates for feature flags
- prior to this commit, if you add or remove a faeture flag, you also have to update the snapshots for the settings tests
- feature flags are intended to be very easy to add and remove, and so this extra step doesn't fit with our needs
- it's also unnecessary, we don't need to verify the exact contents of the labs setting
2022-08-15 15:36:14 +01:00
Daniel Lockyer
54aa9f016b Fixed full Admin test suite running during unit tests
- because of how the npm scripts were set up, we were running the full
  Admin integration tests during the unit tests phase of CI
- this commit renames the majority of `test` to `test:unit` in the
  package.json files, and aliases `test` to `test:unit`
- special packages like Admin have no-op'd `test:unit` scripts so we
  don't end up running its tests
2022-08-15 15:34:52 +02:00
Daniel Lockyer
70aa1dd3c8
Added auditLog labs flag
refs https://github.com/TryGhost/Toolbox/issues/356

- allows work on the Audit Log project whilst in alpha
2022-08-15 14:59:32 +02:00
Daniel Lockyer
d493fd7bf1 v5.9.3 2022-08-15 13:09:54 +01:00
Peter Zimon
aaa967eafe Fixed missing quote indicators in comment emails
refs. https://github.com/TryGhost/Team/issues/1794

- left border was missing for quotes in comment related emails
2022-08-15 13:47:25 +02:00
Peter Zimon
373a682d54 Fixed descenders bug in editor title
no refs.

- After switching to Inter font in the Admin font descenders were cut in the editor title in Safari.
2022-08-15 13:31:04 +02:00
Simon Backx
bad4f13c2f 🐛 Fixed comments script always injected
refs https://ghost.slack.com/archives/C02G9E68C/p1660562592376769
2022-08-15 13:26:24 +02:00
renovate[bot]
23b37a68a6 Update metascraper to v5.30.2 2022-08-15 12:42:39 +02:00
Daniel Lockyer
0a68ea88fb Reduced number of hashing rounds during tests
- one of the reasons our tests are so slow is because we're running 10
  rounds of bcrypt hashing on shared hardware, nearly 300 times during
  the database tests
- we don't particularly care about password hash strength during tests
  so this commit reduces the number of rounds to 1 if we're running in a
  test environment
- this drops the time to produce an individual hash from ~140ms to ~3ms,
  saving us a lot of time overall
2022-08-15 12:38:42 +02:00
Daniel Lockyer
fa6900b299 v5.9.2 2022-08-15 10:55:17 +01:00
Simon Backx
a666b846e6
🐛 Fixed unsubscribe flow for comment reply emails (#15232)
refs https://github.com/TryGhost/Team/issues/1790

- Currently we go to the account settings when you click 'Manage your email preferences' in the footer of an email that informs a comment author that they received a reply.
- Related Portal changes are here: https://github.com/TryGhost/Portal/pull/255
2022-08-15 11:36:08 +02:00
Simon Backx
f6a7f75465 Bumped comments-ui to v0.9 2022-08-15 11:30:54 +02:00
Ronald Langeveld
5e98c78493
Added accentColour to KoenigReactEditor as prop. (#15231)
no issue
2022-08-15 11:29:09 +02:00
Daniel Lockyer
2a07b94bd4
Fixed small boot time regression due to lack of dependency lazyloading
- when I extracted `mailgun-client` to a separate package, I
  accidentally removed the lazyloading for the `mailgun-js` library,
  which takes a non-negligible amount of time to require on boot
- this fixes that by moving the require into the function where it's
  used
2022-08-15 10:10:26 +02:00