no issue
- if there are no settings loaded then we shouldn't try to save an empty `custom-theme-setting-list` record because it will result in an invalid API request
refs https://github.com/TryGhost/Team/issues/1151
- we were setting `emailOnly` on the publish menu component but not resetting it meaning when you re-opened the menu after previously selecting "Send" the menu would still show "Send" but the state was inconsistent because the underlying `distributionAction` property _was_ reset
- dropped setting `emailOnly` directly in favour of making it a computed property based on `distributionAction === 'send'` so we only have to worry about changing distribution action and everything else updates for us automatically
refs https://github.com/TryGhost/Team/issues/1149
If you were part way scrolled through the themes list and you clicked the "Advanced" button, the installed themes list was displayed at the top of the scrollable element but the browser kept the scroll position so it looked like nothing happened.
- updated `toggleAdvanced()` action to scroll the main container to the top so that the installed themes list is immediately viewable when you use the button to open/navigate to it
refs https://github.com/TryGhost/Team/issues/1149
- added Casper to the hardcoded official themes list with a ref of `'default'` so that the install theme process knows to process it differently
- updated the install-theme modal
- removed the `willOverwriteDefault` getter because it's a path that can't be reached and is now handled differently
- changed `installThemeTask` to only perform an activation when a default theme is passed in
refs https://github.com/TryGhost/Team/issues/1137
- adds new portal preview using portal offer url on offer screen
- adds new utility to calculate portal offer preview url from data
- fixed tiny bug with discount type currency not shown correctly
refs https://github.com/TryGhost/Team/issues/1151
- we were setting `emailOnly` on the publish menu component but not resetting it meaning when you re-opened the menu after previously selecting "Send" the menu would still show "Send" but the state was inconsistent because the underlying `distributionAction` property _was_ reset
- dropped setting `emailOnly` directly in favour of making it a computed property based on `distributionAction === 'send'` so we only have to worry about changing distribution action and everything else updates for us automatically
refs 89a6bc683b
- `options` did not have a default value and it's always passed in. Added a default value of an empty object so we're not tripped up with null/undefined
closes https://github.com/TryGhost/Team/issues/1151
The publish-type state was being set directly on the model in the publish menu rather than being internal to the menu until publishing. A previous attempt had been made to fix that but it wasn't complete and resulted in the menu showing that it would "Publish" after setting it and closing/re-opening when in fact it would "Publish and send".
- moved all state for the distribution type and email settings to be stored in the `<PublishMenu>` component rather than split across the the component and model
- when saving a post from the publish menu, we now pass `emailOnly` as an option to the editor's save task the same as `sendEmailWhenPublished` (corresponding to the `email_recipient_filter` query param) so that we're back to one place controlling email behaviour for a post
- when `emailOnly` is passed as an option to the editor save task it will set the property on the model before saving and reset it back if the save fails. That way the email-only flag behaves as close to the "send when published" flag as possible without it also being sent as a query param.
- added empty archive screen
- added indication of archive offer on detail page
- set default dropdown style to non-selected
- removed archive button for new offers
refs f4596a0add
- when extracting the groups code from component to service some variable names were changed but the assignment was missed meaning we were assigning all settings rather than specific group settings to each `group.settings` array
no issue
- when copying the template parts out of `<GhSitePreview>` the template was left pointing to passed in arguments rather than pulling the data from the settings service
refs https://github.com/TryGhost/Team/issues/1107
- allowing empty colors introduced some edge cases around theme usage and default values
- it makes more sense to force a color setting to always have a color, if a theme wants to make usage of that color optional then it should use a separate boolean or select setting to control that
no issue
- `get settingGroups()` was always returning a new object which meant the template was re-rendering unexpectedly which created issues with form fields that lose their focus when re-rendered
- moved group handling into the `customThemeSettings` service as it makes more sense to keep it centralized, that gave us the ability to create a new `settingGroups` array only when the settings list changes keeping the tracked invalidation easier to reason about
no issue
- removed the duplicated `<GhErrorMessage>` that is shown when the site title is too long
- removed confusing double `class` attribute on general settings form field, browsers were only respecting the latter class attribute
refs https://github.com/TryGhost/Team/issues/1107
- uses the same type of color picker used elsewhere in Admin with some minor changes to allow blank values
- when value is blank it adjusts the background color block to have a border and a diagonal red line to represent no color being present and makes the native color picker that sits on top transparent because native color pickers _always_ have a color
- has it's own invalid handling/display because we're not dealing with a model that has our typical validation at the moment
no issue
- we were sorting by `created_at` when fetching an individual post rather than the intended `published_at` column
- `.sortBy('publishedAtUTC')` didn't work as intended because the raw values are not directly comparable, switched to a manual sort by using `.valueOf()`