mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-12-23 10:53:34 +03:00
[chore] adds ember-template-lint and fixes all fixable issues (#2238)
no issue
- This will help with the octane migration and you can still run the lint rules even when they are todos. (Checkout the docs at 158b119667/docs/todos.md
) The good news is any new code will be checked against the recommended config.
- I fixed all the auto fixable things we could get in this PR as well
This commit is contained in:
parent
894cea5256
commit
beb5ae1737
13
ghost/admin/.github/workflows/test.yml
vendored
13
ghost/admin/.github/workflows/test.yml
vendored
@ -3,9 +3,9 @@ on:
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- 'v4.*'
|
||||
- "v4.*"
|
||||
- main
|
||||
- 'renovate/*'
|
||||
- "renovate/*"
|
||||
jobs:
|
||||
prod-build:
|
||||
runs-on: ubuntu-18.04
|
||||
@ -15,7 +15,7 @@ jobs:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: '14.17.0'
|
||||
node-version: "14.17.0"
|
||||
|
||||
- run: yarn
|
||||
- run: grunt shell:ember:prod
|
||||
@ -34,10 +34,11 @@ jobs:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: '14.17.0'
|
||||
node-version: "14.17.0"
|
||||
|
||||
- run: yarn
|
||||
- run: yarn lint:js
|
||||
- run: yarn lint:hbs
|
||||
|
||||
- uses: daniellockyer/action-slack-build@master
|
||||
if: failure() && github.event_name == 'push' && github.ref == 'refs/heads/main'
|
||||
@ -50,7 +51,7 @@ jobs:
|
||||
if: github.event_name == 'push' || (github.event_name == 'pull_request' && !startsWith(github.head_ref, 'renovate/'))
|
||||
strategy:
|
||||
matrix:
|
||||
browser: [ 'Firefox', 'Chrome' ]
|
||||
browser: ["Firefox", "Chrome"]
|
||||
name: ${{ matrix.browser }}
|
||||
env:
|
||||
MOZ_HEADLESS: 1
|
||||
@ -61,7 +62,7 @@ jobs:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: '14.17.0'
|
||||
node-version: "14.17.0"
|
||||
|
||||
- run: yarn
|
||||
- run: yarn test
|
||||
|
1488
ghost/admin/.lint-todo
Normal file
1488
ghost/admin/.lint-todo
Normal file
File diff suppressed because it is too large
Load Diff
3
ghost/admin/.template-lintrc.js
Normal file
3
ghost/admin/.template-lintrc.js
Normal file
@ -0,0 +1,3 @@
|
||||
module.exports = {
|
||||
extends: "recommended"
|
||||
};
|
@ -1 +1 @@
|
||||
<LinkTo @route={{this.route}} @alternateActive={{action "setActive"}} @class={{@linkClasses}}>{{this.title}}{{yield}}</LinkTo>
|
||||
<LinkTo @route={{this.route}} @alternateActive={{action "setActive"}} class={{@linkClasses}}>{{this.title}}{{yield}}</LinkTo>
|
||||
|
@ -1,6 +1,6 @@
|
||||
<div class="gh-alert-content">
|
||||
{{message.message}}
|
||||
</div>
|
||||
<button class="gh-alert-close" {{action "closeNotification"}} data-test-button="close-notification">
|
||||
<button class="gh-alert-close" data-test-button="close-notification" type="button" {{action "closeNotification"}}>
|
||||
{{svg-jar "close-stroke"}}<span class="hidden">Close</span>
|
||||
</button>
|
||||
|
@ -1,3 +1,3 @@
|
||||
{{#if this.showUpgradeButton}}
|
||||
<button class="gh-btn gh-btn-green" {{action "openBilling"}}><span>Upgrade</span></button>
|
||||
<button class="gh-btn gh-btn-green" type="button" {{action "openBilling"}}><span>Upgrade</span></button>
|
||||
{{/if}}
|
||||
|
@ -67,8 +67,7 @@
|
||||
{{/if}}
|
||||
<button
|
||||
title="Toggle between editing alt text and caption"
|
||||
class="h-100 pl1 pr1 ba br3 f8 sans-serif fw4 lh-title tracked-2 {{if this.isEditingAlt "bg-green b--green white" "bg-white b--midlightgrey midlightgrey"}}"
|
||||
{{on "click" this.toggleAltEditing passive=true}}
|
||||
class="h-100 pl1 pr1 ba br3 f8 sans-serif fw4 lh-title tracked-2 {{if this.isEditingAlt "bg-green b--green white" "bg-white b--midlightgrey midlightgrey"}}" type="button" {{on "click" this.toggleAltEditing passive=true}}
|
||||
>
|
||||
Alt
|
||||
</button>
|
||||
|
@ -27,6 +27,6 @@
|
||||
New
|
||||
{{else}}
|
||||
Draft
|
||||
{{if (not @hasDirtyAttributes) "- Saved"}}
|
||||
{{unless @hasDirtyAttributes "- Saved"}}
|
||||
{{/if}}
|
||||
</div>
|
@ -9,7 +9,7 @@
|
||||
</div>
|
||||
</div>
|
||||
{{#if this.failureMessage}}
|
||||
<button class="gh-btn gh-btn-green" {{action "reset"}} data-test-upload-try-again-button><span>Try Again</span></button>
|
||||
<button class="gh-btn gh-btn-green" data-test-upload-try-again-button type="button" {{action "reset"}}><span>Try Again</span></button>
|
||||
{{/if}}
|
||||
{{else}}
|
||||
<div class="upload-form">
|
||||
|
@ -9,7 +9,7 @@
|
||||
</div>
|
||||
</div>
|
||||
{{#if this.failureMessage}}
|
||||
<button class="gh-btn gh-btn-green" {{action "reset"}}><span>Try Again</span></button>
|
||||
<button class="gh-btn gh-btn-green" type="button" {{action "reset"}}><span>Try Again</span></button>
|
||||
{{/if}}
|
||||
{{else}}
|
||||
{{!-- file selection/drag-n-drop --}}
|
||||
|
@ -47,7 +47,7 @@
|
||||
<div>
|
||||
<h4 class="gh-setting-title">Already connected to Stripe</h4>
|
||||
<p class="gh-setting-desc mt2">
|
||||
Connected to <a href="https://dashboard.stripe.com/{{this.settings.stripeConnectAccountId}}" target="_blank">{{this.settings.stripeConnectDisplayName}}</a>
|
||||
Connected to <a href="https://dashboard.stripe.com/{{this.settings.stripeConnectAccountId}}" target="_blank" rel="noopener noreferrer">{{this.settings.stripeConnectDisplayName}}</a>
|
||||
|
||||
{{#unless this.settings.stripeConnectLivemode}}
|
||||
<span class="gh-members-connect-testmodelabel">Test mode</span>
|
||||
|
@ -52,8 +52,8 @@
|
||||
</div>
|
||||
<div class="for-switch">
|
||||
<label class="switch" for="subscribed-checkbox">
|
||||
<Input @checked={{this.member.subscribed}} @type="checkbox" @id="subscribed-checkbox"
|
||||
@name="subscribed" data-test-checkbox="member-subscribed" />
|
||||
<Input @checked={{this.member.subscribed}} @type="checkbox" id="subscribed-checkbox"
|
||||
name="subscribed" data-test-checkbox="member-subscribed" />
|
||||
<span class="input-toggle-component"></span>
|
||||
</label>
|
||||
</div>
|
||||
@ -163,7 +163,7 @@
|
||||
</GhDropdownButton>
|
||||
<GhDropdown @name="subscription-menu-complimentary" @tagName="ul" @classNames="product-actions-menu dropdown-menu dropdown-align-right">
|
||||
<li>
|
||||
<button {{action "removeComplimentary" product.id}}>
|
||||
<button type="button" {{action "removeComplimentary" product.id}}>
|
||||
<span class="red">Remove complimentary subscription</span>
|
||||
</button>
|
||||
</li>
|
||||
@ -180,23 +180,23 @@
|
||||
</GhDropdownButton>
|
||||
<GhDropdown @name="subscription-menu-{{sub.id}}" @tagName="ul" @classNames="product-actions-menu dropdown-menu dropdown-align-right">
|
||||
<li>
|
||||
<a href="https://dashboard.stripe.com/customers/{{sub.customer.id}}" target="_blank" rel="noopener">
|
||||
<a href="https://dashboard.stripe.com/customers/{{sub.customer.id}}" target="_blank" rel="noopener noreferrer">
|
||||
View Stripe customer
|
||||
</a>
|
||||
</li>
|
||||
<li class="divider"></li>
|
||||
<li>
|
||||
<a href="https://dashboard.stripe.com/subscriptions/{{sub.id}}" target="_blank" rel="noopener">
|
||||
<a href="https://dashboard.stripe.com/subscriptions/{{sub.id}}" target="_blank" rel="noopener noreferrer">
|
||||
View Stripe subscription
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
{{#if sub.cancel_at_period_end}}
|
||||
<button {{action "continueSubscription" sub.id}}>
|
||||
<button type="button" {{action "continueSubscription" sub.id}}>
|
||||
<span>Continue subscription</span>
|
||||
</button>
|
||||
{{else}}
|
||||
<button {{action "cancelSubscription" sub.id}}>
|
||||
<button type="button" {{action "cancelSubscription" sub.id}}>
|
||||
<span class="red">Cancel subscription</span>
|
||||
</button>
|
||||
{{/if}}
|
||||
@ -234,7 +234,7 @@
|
||||
</GhDropdownButton>
|
||||
<GhDropdown @name="subscription-menu-complimentary" @tagName="ul" @classNames="product-actions-menu dropdown-menu dropdown-align-right">
|
||||
<li>
|
||||
<button {{action "removeComplimentary" product.id}}>
|
||||
<button type="button" {{action "removeComplimentary" product.id}}>
|
||||
<span class="red">Remove complimentary subscription</span>
|
||||
</button>
|
||||
</li>
|
||||
|
@ -1,11 +1,11 @@
|
||||
<div class="gh-dashboard-chart-box {{if this.isSmall "small"}}" {{did-insert (perform this.fetchStatsTask)}}>
|
||||
{{#if (not this.stats)}}
|
||||
<GhLoadingSpinner />
|
||||
{{else}}
|
||||
{{#if this.stats}}
|
||||
<EmberChart
|
||||
@type={{this.type}}
|
||||
@options={{this.chartOptions}}
|
||||
@data={{this.chartData}}
|
||||
@height={{300}} />
|
||||
{{else}}
|
||||
<GhLoadingSpinner />
|
||||
{{/if}}
|
||||
</div>
|
@ -71,15 +71,13 @@
|
||||
</section>
|
||||
<div class="gh-filter-builder-footer">
|
||||
<button
|
||||
class="gh-btn"
|
||||
{{on "click" this.resetFilter}}
|
||||
class="gh-btn" type="button" {{on "click" this.resetFilter}}
|
||||
>
|
||||
<span>Reset all</span>
|
||||
</button>
|
||||
<button
|
||||
class="gh-btn gh-btn-primary"
|
||||
data-test-button="members-apply-filter"
|
||||
{{on "click" this.applyFilter}}
|
||||
data-test-button="members-apply-filter" type="button" {{on "click" this.applyFilter}}
|
||||
>
|
||||
<span>Apply filters</span>
|
||||
</button>
|
||||
|
@ -31,7 +31,7 @@
|
||||
</ul>
|
||||
<ul class="dropdown-footer">
|
||||
<li>
|
||||
<a {{on "click" (fn @onLabelAdd)}}>
|
||||
<a {{on "click" @onLabelAdd}}>
|
||||
<span>
|
||||
{{svg-jar "add"}}
|
||||
Add Label
|
||||
|
@ -15,7 +15,7 @@
|
||||
<div class="flex items-center">
|
||||
<GhMemberAvatar @member={{@member}} @containerClass="w9 h9 mr3 flex-shrink-0" />
|
||||
<div class="w-80">
|
||||
<h3 class="ma0 pa0 gh-members-list-name {{if (not @member.name) "gh-members-name-noname"}}">{{or @member.name @member.email}}</h3>
|
||||
<h3 class="ma0 pa0 gh-members-list-name {{unless @member.name "gh-members-name-noname"}}">{{or @member.name @member.email}}</h3>
|
||||
{{#if @member.name}}
|
||||
<p class="ma0 pa0 middarkgrey f8 gh-members-list-email">{{@member.email}}</p>
|
||||
{{/if}}
|
||||
@ -25,7 +25,7 @@
|
||||
|
||||
{{#if @newsletterEnabled}}
|
||||
{{#if (feature "emailAnalytics")}}
|
||||
<LinkTo @route="member" @model={{@member}} class="gh-list-data middarkgrey f8 {{if (not @member.name) "gh-members-list-open-rate-noname"}}">
|
||||
<LinkTo @route="member" @model={{@member}} class="gh-list-data middarkgrey f8 {{unless @member.name "gh-members-list-open-rate-noname"}}">
|
||||
{{#if (not (is-empty @member.emailOpenRate))}}
|
||||
<span>{{@member.emailOpenRate}}%</span>
|
||||
{{else}}
|
||||
@ -35,7 +35,7 @@
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
|
||||
<LinkTo @route="member" @model={{@member}} class="gh-list-data middarkgrey f8 {{if (not @member.name) "gh-members-geolocation-noname"}}">
|
||||
<LinkTo @route="member" @model={{@member}} class="gh-list-data middarkgrey f8 {{unless @member.name "gh-members-geolocation-noname"}}">
|
||||
{{#if (and @member.geolocation @member.geolocation.country)}}
|
||||
{{#if (and (eq @member.geolocation.country_code "US") @member.geolocation.region)}}
|
||||
{{@member.geolocation.region}}, US
|
||||
|
@ -1,6 +1,6 @@
|
||||
<div class="flex flex-column items-stretch">
|
||||
{{!-- <p class="">Get started with one of the following options</p> --}}
|
||||
<button class="gh-btn gh-btn-green" {{on "click" this.addYourself}}>
|
||||
<button class="gh-btn gh-btn-green" type="button" {{on "click" this.addYourself}}>
|
||||
<span>Add yourself as a member to test</span>
|
||||
</button>
|
||||
|
||||
|
@ -20,7 +20,7 @@
|
||||
@input={{action "setStripeDirectSecretKey"}}
|
||||
@class="mt1 password"
|
||||
/>
|
||||
<a href="https://dashboard.stripe.com/account/apikeys" target="_blank" class="mt1 fw4 f8">
|
||||
<a href="https://dashboard.stripe.com/account/apikeys" target="_blank" class="mt1 fw4 f8" rel="noopener noreferrer">
|
||||
Find your Stripe API keys here »
|
||||
</a>
|
||||
</div>
|
||||
@ -33,7 +33,7 @@
|
||||
</div>
|
||||
<p class="f8 mt2 mb0">
|
||||
Stripe is our exclusive direct payments partner.<br />
|
||||
Ghost collects <strong>no fees</strong> on any payments! If you don’t have a Stripe account yet, you can <a href="https://stripe.com" target="_blank" rel="noopener" class="gh-members-stripe-link">sign up here</a>.
|
||||
Ghost collects <strong>no fees</strong> on any payments! If you don’t have a Stripe account yet, you can <a href="https://stripe.com" target="_blank" rel="noopener noreferrer" class="gh-members-stripe-link">sign up here</a>.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@ -57,7 +57,7 @@
|
||||
{{svg-jar "check-circle-stroke" class="check-circle"}}
|
||||
<h1>You are connected to Stripe</h1>
|
||||
<div class="gh-stripe-connected-info">
|
||||
<p>Connected to <a href="https://dashboard.stripe.com/{{this.stripeConnectAccountId}}" target="_blank">{{this.stripeConnectAccountName}}</a></p>
|
||||
<p>Connected to <a href="https://dashboard.stripe.com/{{this.stripeConnectAccountId}}" target="_blank" rel="noopener noreferrer">{{this.stripeConnectAccountName}}</a></p>
|
||||
{{#unless this.stripeConnectLivemode}}
|
||||
<div class="gh-members-connect-testmodelabel">Test mode</div>
|
||||
{{/unless}}
|
||||
@ -75,7 +75,7 @@
|
||||
<div class="w-100 w-50-l">
|
||||
<label class="fw6 f8">Generate secure key</label>
|
||||
<div class="flex items-center mb4 justify-between gh-members-connectbutton-container mt2">
|
||||
<a href="{{if this.stripeConnectTestMode this.testStripeConnectAuthUrl this.liveStripeConnectAuthUrl}}" class="stripe-connect" target="_blank"><span>Connect with Stripe</span></a>
|
||||
<a href="{{if this.stripeConnectTestMode this.testStripeConnectAuthUrl this.liveStripeConnectAuthUrl}}" class="stripe-connect" target="_blank" rel="noopener noreferrer"><span>Connect with Stripe</span></a>
|
||||
<div class="ml2 flex items-center flex-nowrap">
|
||||
<span class="mr2 f8 midgrey nowrap {{if this.stripeConnectTestMode "gh-members-connect-testmodeon"}}">{{if this.stripeConnectTestMode "Using" "Use"}} test mode</span>
|
||||
<div class="for-switch small">
|
||||
@ -103,7 +103,7 @@
|
||||
</div>
|
||||
<p class="f8 mt2 mb0">
|
||||
Stripe is our exclusive direct payments partner.<br />
|
||||
Ghost collects <strong>no fees</strong> on any payments! If you don’t have a Stripe account yet, you can <a href="https://stripe.com" target="_blank" rel="noopener" class="gh-members-stripe-link">sign up here</a>.
|
||||
Ghost collects <strong>no fees</strong> on any payments! If you don’t have a Stripe account yet, you can <a href="https://stripe.com" target="_blank" rel="noopener noreferrer" class="gh-members-stripe-link">sign up here</a>.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -34,7 +34,7 @@
|
||||
{{/each}}
|
||||
{{#if (eq this.type "active" )}}
|
||||
<div class="gh-product-cards-footer">
|
||||
<button class="gh-btn gh-btn-link gh-btn-text gh-btn-icon gh-btn-add-product green" {{action "openNewProduct" product}}>
|
||||
<button class="gh-btn gh-btn-link gh-btn-text gh-btn-icon gh-btn-add-product green" type="button" {{action "openNewProduct" product}}>
|
||||
<span>{{svg-jar "add-stroke" class="stroke-green"}}Add tier</span>
|
||||
</button>
|
||||
</div>
|
||||
|
@ -1,9 +1,9 @@
|
||||
<LinkTo @route="dashboard" data-test-mobile-nav="dashboard">{{svg-jar "house"}}Dashboard</LinkTo>
|
||||
{{#if (eq this.router.currentRouteName "posts")}}
|
||||
<LinkTo @route="posts" @query={{hash type=null}} @classNames="active" data-test-mobile-nav="posts">{{svg-jar "posts"}}Posts</LinkTo>
|
||||
<LinkTo @route="posts" @query={{hash type=null}} class="active" data-test-mobile-nav="posts">{{svg-jar "posts"}}Posts</LinkTo>
|
||||
{{else}}
|
||||
<LinkTo @route="posts">{{svg-jar "content" data-test-mobile-nav="posts"}}Posts</LinkTo>
|
||||
{{/if}}
|
||||
<LinkTo @route="members" @classNames="gh-nav-main-users" data-test-mobile-nav="members">{{svg-jar "members"}}Members</LinkTo>
|
||||
<LinkTo @route="members" class="gh-nav-main-users" data-test-mobile-nav="members">{{svg-jar "members"}}Members</LinkTo>
|
||||
<div role="button" class="gh-mobile-nav-bar-more" {{action "openMobileMenu" target=this.ui data-test-mobile-nav="more"}}>{{svg-jar "icon" class="icon-gh"}}More</div>
|
||||
{{yield}}
|
||||
|
@ -26,17 +26,17 @@
|
||||
|
||||
{{#if this.session.user.isContributor}}
|
||||
<li role="presentation">
|
||||
<LinkTo @route="posts" @query={{hash entry=null}} @classNames="dropdown-item" @role="menuitem" @tabindex="-1" data-test-nav="posts">
|
||||
<LinkTo @route="posts" @query={{hash entry=null}} class="dropdown-item" @role="menuitem" tabindex="-1" data-test-nav="posts">
|
||||
Posts
|
||||
</LinkTo>
|
||||
</li>
|
||||
<li role="presentation">
|
||||
<a href="{{this.config.blogUrl}}/" class="dropdown-item" role="menuitem" tabindex="-1" title="Open site in new tab" target="_blank">View site</a>
|
||||
<a href="{{this.config.blogUrl}}/" class="dropdown-item" role="menuitem" tabindex="-1" title="Open site in new tab" target="_blank" rel="noopener noreferrer">View site</a>
|
||||
</li>
|
||||
<li class="divider" role="separator"></li>
|
||||
{{else}}
|
||||
<li role="presentation">
|
||||
<LinkTo @route="whatsnew" @query={{hash entry=null}} @classNames="dropdown-item" @role="menuitem" @tabindex="-1" data-test-nav="whatsnew">
|
||||
<LinkTo @route="whatsnew" @query={{hash entry=null}} class="dropdown-item" @role="menuitem" tabindex="-1" data-test-nav="whatsnew">
|
||||
What's new?
|
||||
{{#if this.whatsNew.hasNew}}
|
||||
<div class="flex-grow-1 flex justify-end"><span class="dib w2 h2 top-0 right-0 bg-green br-100"></span></div>
|
||||
@ -46,7 +46,7 @@
|
||||
{{/if}}
|
||||
|
||||
<li role="presentation">
|
||||
<LinkTo @route="settings.staff.user" @model={{this.session.user.slug}} @classNames="dropdown-item" @role="menuitem" @tabindex="-1" data-test-nav="user-profile">
|
||||
<LinkTo @route="settings.staff.user" @model={{this.session.user.slug}} class="dropdown-item" @role="menuitem" tabindex="-1" data-test-nav="user-profile">
|
||||
Your profile
|
||||
</LinkTo>
|
||||
</li>
|
||||
@ -54,12 +54,12 @@
|
||||
{{#unless this.session.user.isContributor}}
|
||||
<li class="divider" role="separator"></li>
|
||||
<li role="presentation">
|
||||
<a class="dropdown-item" role="menuitem" tabindex="-1" href="https://ghost.org/docs/" target="_blank">
|
||||
<a class="dropdown-item" role="menuitem" tabindex="-1" href="https://ghost.org/docs/" target="_blank" rel="noopener noreferrer">
|
||||
Support center
|
||||
</a>
|
||||
</li>
|
||||
<li role="presentation">
|
||||
<a class="dropdown-item" role="menuitem" tabindex="-1" href="https://ghost.org/help/topic/setting-up/" target="_blank">
|
||||
<a class="dropdown-item" role="menuitem" tabindex="-1" href="https://ghost.org/help/topic/setting-up/" target="_blank" rel="noopener noreferrer">
|
||||
How to use Ghost
|
||||
</a>
|
||||
</li>
|
||||
@ -70,7 +70,7 @@
|
||||
<li class="divider" role="separator"></li>
|
||||
{{else}}
|
||||
<li role="presentation">
|
||||
<a href="{{menuItem.href}}" target="_blank" class="dropdown-item {{menuItem.classes}}" role="menuitem" tabindex="-1">
|
||||
<a href="{{menuItem.href}}" target="_blank" class="dropdown-item {{menuItem.classes}}" role="menuitem" tabindex="-1" rel="noopener noreferrer">
|
||||
{{menuItem.text}}
|
||||
</a>
|
||||
</li>
|
||||
@ -81,7 +81,7 @@
|
||||
{{/unless}}
|
||||
|
||||
<li role="presentation">
|
||||
<LinkTo @route="signout" @classNames="dropdown-item user-menu-signout" @role="menuitem" @tabindex="-1">
|
||||
<LinkTo @route="signout" class="dropdown-item user-menu-signout" @role="menuitem" tabindex="-1">
|
||||
Sign out
|
||||
</LinkTo>
|
||||
</li>
|
||||
|
@ -7,7 +7,7 @@
|
||||
<div class="gh-nav-menu-details-sitetitle">{{this.config.blogTitle}}</div>
|
||||
</div>
|
||||
<div class="gh-nav-menu-search">
|
||||
<button class="gh-nav-btn-search" {{on "click" (action "openSearchModal")}} title="Search site (Ctrl/⌘ + K)"><span>{{svg-jar "search"}}</span></button>
|
||||
<button class="gh-nav-btn-search" title="Search site (Ctrl/⌘ + K)" type="button" {{on "click" (action "openSearchModal")}}><span>{{svg-jar "search"}}</span></button>
|
||||
</div>
|
||||
</header>
|
||||
{{/unless}}
|
||||
@ -19,7 +19,7 @@
|
||||
<ul class="gh-nav-list gh-nav-main">
|
||||
{{#if (gh-user-can-admin this.session.user)}}
|
||||
<li class="relative">
|
||||
<LinkTo @route="dashboard" @alt="Dashboard" @title="Dashboard" data-test-nav="dashboard">{{svg-jar "house"}} Dashboard</LinkTo>
|
||||
<LinkTo @route="dashboard" @alt="Dashboard" title="Dashboard" data-test-nav="dashboard">{{svg-jar "house"}} Dashboard</LinkTo>
|
||||
</li>
|
||||
{{/if}}
|
||||
<li class="relative">
|
||||
@ -28,7 +28,7 @@
|
||||
{{svg-jar "view-site"}} View site
|
||||
</LinkTo>
|
||||
</span>
|
||||
<a href="{{this.config.blogUrl}}/" class="gh-secondary-action" title="Open site in new tab" target="_blank">
|
||||
<a href="{{this.config.blogUrl}}/" class="gh-secondary-action" title="Open site in new tab" target="_blank" rel="noopener noreferrer">
|
||||
<span>{{svg-jar "external"}}</span>
|
||||
</a>
|
||||
</li>
|
||||
@ -36,7 +36,7 @@
|
||||
<ul class="gh-nav-list gh-nav-manage">
|
||||
<li class="gh-nav-list-new relative">
|
||||
<GhLinkToCustomViewsIndex @route="posts" @query={{reset-query-params "posts"}} data-test-nav="posts">{{svg-jar "posts"}}Posts</GhLinkToCustomViewsIndex>
|
||||
<LinkTo @route="editor.new" @model="post" @classNames="gh-secondary-action gh-nav-new-post" @alt="New post" @title="New post" data-test-nav="new-story"><span>{{svg-jar "add-stroke"}}</span></LinkTo>
|
||||
<LinkTo @route="editor.new" @model="post" class="gh-secondary-action gh-nav-new-post" @alt="New post" title="New post" data-test-nav="new-story"><span>{{svg-jar "add-stroke"}}</span></LinkTo>
|
||||
{{#if this.session.user.isAuthorOrContributor}}
|
||||
{{#if this.customViews.forPosts}}
|
||||
<ul class="gh-nav-view-list">
|
||||
@ -81,7 +81,7 @@
|
||||
<li>
|
||||
{{!-- clicking the Content link whilst on the content screen should reset the filter --}}
|
||||
{{#if (eq this.router.currentRouteName "pages")}}
|
||||
<LinkTo @route="pages" @query={{reset-query-params "pages"}} @classNames="active" data-test-nav="pages">{{svg-jar "page"}}Pages</LinkTo>
|
||||
<LinkTo @route="pages" @query={{reset-query-params "pages"}} class="active" data-test-nav="pages">{{svg-jar "page"}}Pages</LinkTo>
|
||||
{{else}}
|
||||
<LinkTo @route="pages" data-test-nav="pages">{{svg-jar "page"}}Pages</LinkTo>
|
||||
{{/if}}
|
||||
@ -136,7 +136,7 @@
|
||||
{{/if}}
|
||||
{{#each this.config.clientExtensions.menu.items as |menuItem| }}
|
||||
<li>
|
||||
<a href="{{menuItem.href}}" target="_blank">{{svg-jar menuItem.icon}}{{menuItem.text}}</a>
|
||||
<a href="{{menuItem.href}}" target="_blank" rel="noopener noreferrer">{{svg-jar menuItem.icon}}{{menuItem.text}}</a>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
|
@ -24,6 +24,6 @@
|
||||
<span class="gh-notification-actions">{{this.message.actions}}</span>
|
||||
{{/if}}
|
||||
</div>
|
||||
<button class="gh-notification-close" {{action "closeNotification"}} data-test-button="close-notification">
|
||||
<button class="gh-notification-close" data-test-button="close-notification" type="button" {{action "closeNotification"}}>
|
||||
{{svg-jar "close"}}<span class="hidden">Close</span>
|
||||
</button>
|
||||
|
@ -15,11 +15,11 @@
|
||||
{{!-- new posts don't have a preview link --}}
|
||||
{{#unless this.post.isNew}}
|
||||
{{#if (or this.post.isPublished this.post.isSent)}}
|
||||
<a class="post-view-link" target="_blank" href="{{this.post.url}}">
|
||||
<a class="post-view-link" target="_blank" href="{{this.post.url}}" rel="noopener noreferrer">
|
||||
View {{this.post.displayName}} {{svg-jar "external"}}
|
||||
</a>
|
||||
{{else if this.post.isScheduled}}
|
||||
<a class="post-view-link" target="_blank" href="{{this.post.previewUrl}}">
|
||||
<a class="post-view-link" target="_blank" href="{{this.post.previewUrl}}" rel="noopener noreferrer">
|
||||
Preview {{svg-jar "external"}}
|
||||
</a>
|
||||
{{/if}}
|
||||
@ -198,7 +198,7 @@
|
||||
<div class="active">
|
||||
{{#if (eq this.subview "meta-data")}}
|
||||
<div class="settings-menu-header subview">
|
||||
<button aria-label="Back" {{action "closeSubview"}} class="back settings-menu-header-action" data-test-button="close-psm-subview">{{svg-jar "arrow-left"}}<span class="hidden">Back</span></button>
|
||||
<button aria-label="Back" class="back settings-menu-header-action" data-test-button="close-psm-subview" type="button" {{action "closeSubview"}}>{{svg-jar "arrow-left"}}<span class="hidden">Back</span></button>
|
||||
<h4>Meta data</h4>
|
||||
<div style="width:23px;"></div>
|
||||
</div>
|
||||
@ -270,7 +270,7 @@
|
||||
|
||||
{{#if (eq this.subview "twitter-data")}}
|
||||
<div class="settings-menu-header subview">
|
||||
<button aria-label="Back" {{action "closeSubview"}} class="back settings-menu-header-action" data-test-button="close-psm-subview">{{svg-jar "arrow-left"}}<span class="hidden">Back</span></button>
|
||||
<button aria-label="Back" class="back settings-menu-header-action" data-test-button="close-psm-subview" type="button" {{action "closeSubview"}}>{{svg-jar "arrow-left"}}<span class="hidden">Back</span></button>
|
||||
<h4>Twitter card</h4>
|
||||
<div style="width:23px;"></div>
|
||||
</div>
|
||||
@ -346,7 +346,7 @@
|
||||
|
||||
{{#if (eq this.subview "facebook-data")}}
|
||||
<div class="settings-menu-header subview">
|
||||
<button aria-label="Back" {{action "closeSubview"}} class="back settings-menu-header-action" data-test-button="close-psm-subview">{{svg-jar "arrow-left"}}<span class="hidden">Back</span></button>
|
||||
<button aria-label="Back" class="back settings-menu-header-action" data-test-button="close-psm-subview" type="button" {{action "closeSubview"}}>{{svg-jar "arrow-left"}}<span class="hidden">Back</span></button>
|
||||
<h4>Facebook card</h4>
|
||||
<div style="width:23px;"></div>
|
||||
</div>
|
||||
@ -414,7 +414,7 @@
|
||||
|
||||
{{#if (eq this.subview "codeinjection")}}
|
||||
<div class="settings-menu-header subview">
|
||||
<button aria-label="Back" {{action "closeSubview"}} class="back settings-menu-header-action" data-test-button="close-psm-subview">{{svg-jar "arrow-left"}}<span class="hidden">Back</span></button>
|
||||
<button aria-label="Back" class="back settings-menu-header-action" data-test-button="close-psm-subview" type="button" {{action "closeSubview"}}>{{svg-jar "arrow-left"}}<span class="hidden">Back</span></button>
|
||||
<h4>Code injection</h4>
|
||||
<div style="width:23px;"></div>
|
||||
</div>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<div class="settings-menu-header subview">
|
||||
<button {{on "click" this.close}} class="back settings-menu-header-action" data-test-button="close-psm-subview">{{svg-jar "arrow-left"}}<span class="hidden">Back</span></button>
|
||||
<button class="back settings-menu-header-action" data-test-button="close-psm-subview" type="button" {{on "click" this.close}}>{{svg-jar "arrow-left"}}<span class="hidden">Back</span></button>
|
||||
<h4>Email newsletter</h4>
|
||||
<div style="width:23px;"></div>
|
||||
</div>
|
||||
|
@ -5,7 +5,7 @@
|
||||
>
|
||||
|
||||
{{#if (and this.session.user.isContributor @post.isPublished)}}
|
||||
<a href={{@post.url}} class="permalink gh-list-data gh-post-list-title" target="_blank">
|
||||
<a href={{@post.url}} class="permalink gh-list-data gh-post-list-title" target="_blank" rel="noopener noreferrer">
|
||||
<h3 class="gh-content-entry-title">
|
||||
{{@post.title}} {{svg-jar "external" class="gh-post-list-external"}}
|
||||
</h3>
|
||||
@ -75,7 +75,7 @@
|
||||
{{/if}}
|
||||
|
||||
{{#if (and this.session.user.isContributor @post.isPublished)}}
|
||||
<a href={{@post.url}} class="permalink gh-list-data gh-post-list-status" target="_blank">
|
||||
<a href={{@post.url}} class="permalink gh-list-data gh-post-list-status" target="_blank" rel="noopener noreferrer">
|
||||
<div class="flex items-center">
|
||||
{{#if @post.isScheduled}}
|
||||
<span class="gh-content-status-scheduled gh-badge nowrap" title="Scheduled" data-tooltip="{{capitalize this.scheduledText}} to {{@post.emailRecipientFilter}} members">
|
||||
|
@ -70,7 +70,7 @@
|
||||
@classNames="gh-tier-actions-menu dropdown-menu dropdown-triangle-top-right"
|
||||
>
|
||||
<li>
|
||||
<button class="mr2" {{action "openEditProduct" this.product}}>
|
||||
<button class="mr2" type="button" {{action "openEditProduct" this.product}}>
|
||||
<span>Edit</span>
|
||||
</button>
|
||||
</li>
|
||||
|
@ -49,7 +49,7 @@
|
||||
or cancel the task when the post status updates and switches components
|
||||
--}}
|
||||
<footer class="gh-publishmenu-footer">
|
||||
<button class="gh-btn gh-btn-outline" {{on "click" (action dd.actions.close)}} data-test-publishmenu-cancel>
|
||||
<button class="gh-btn gh-btn-outline" data-test-publishmenu-cancel type="button" {{on "click" (action dd.actions.close)}}>
|
||||
<span>Cancel</span>
|
||||
</button>
|
||||
<GhTaskButton
|
||||
|
@ -19,7 +19,7 @@
|
||||
</span>
|
||||
<p class="description">
|
||||
Start with # to create internal tags
|
||||
<a href="https://ghost.org/help/organising-content/#private-tags" target="_blank" rel="noreferrer">Learn more</a>
|
||||
<a href="https://ghost.org/help/organising-content/#private-tags" target="_blank" rel="noopener noreferrer">Learn more</a>
|
||||
</p>
|
||||
</GhFormGroup>
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
<li class="gh-list-row gh-tags-list-item" ...attributes>
|
||||
<LinkTo @route="tag" @model={{@tag}} class="gh-list-data gh-tag-list-title gh-list-cellwidth-70" @title="Edit tag">
|
||||
<LinkTo @route="tag" @model={{@tag}} class="gh-list-data gh-tag-list-title gh-list-cellwidth-70" title="Edit tag">
|
||||
<h3 class="gh-tag-list-name">
|
||||
{{@tag.name}}
|
||||
</h3>
|
||||
@ -10,21 +10,21 @@
|
||||
{{/if}}
|
||||
</LinkTo>
|
||||
|
||||
<LinkTo @route="tag" @model={{@tag}} class="gh-list-data middarkgrey f8 gh-tag-list-slug gh-list-cellwidth-10" @title="Edit tag">
|
||||
<LinkTo @route="tag" @model={{@tag}} class="gh-list-data middarkgrey f8 gh-tag-list-slug gh-list-cellwidth-10" title="Edit tag">
|
||||
<span title="{{@slug}}">{{@slug}}</span>
|
||||
</LinkTo>
|
||||
|
||||
{{#if @tag.count.posts}}
|
||||
<LinkTo @route="posts" @query={{hash type=null author=null tag=@tag.slug order=null}} class="gh-list-data gh-tag-list-posts-count gh-list-cellwidth-10 f8" @title={{concat "List posts tagged with '" @tag.name "'"}}>
|
||||
<LinkTo @route="posts" @query={{hash type=null author=null tag=@tag.slug order=null}} class="gh-list-data gh-tag-list-posts-count gh-list-cellwidth-10 f8" title={{concat "List posts tagged with '" @tag.name "'"}}>
|
||||
<span class="nowrap">{{gh-pluralize @tag.count.posts "post"}}</span>
|
||||
</LinkTo>
|
||||
{{else}}
|
||||
<LinkTo @route="tag" @model={{@tag}} class="gh-list-data gh-tag-list-posts-count gh-list-cellwidth-10" @title="Edit tag">
|
||||
<LinkTo @route="tag" @model={{@tag}} class="gh-list-data gh-tag-list-posts-count gh-list-cellwidth-10" title="Edit tag">
|
||||
<span class="nowrap f8 midlightgrey">{{gh-pluralize @tag.count.posts "post"}}</span>
|
||||
</LinkTo>
|
||||
{{/if}}
|
||||
|
||||
<LinkTo @route="tag" @model={{@tag}} class="gh-list-data gh-list-cellwidth-10 gh-list-chevron" @title="Edit tag">
|
||||
<LinkTo @route="tag" @model={{@tag}} class="gh-list-data gh-list-cellwidth-10 gh-list-chevron" title="Edit tag">
|
||||
<div class="flex items-center justify-end w-100 h-100">
|
||||
<span class="nr2">{{svg-jar "arrow-right" class="w6 h6 fill-midgrey pa1"}}</span>
|
||||
</div>
|
||||
|
@ -3,15 +3,15 @@
|
||||
<img src={{this.imageUrl}} alt={{this.photo.description}} width={{this.width}} height={{this.height}} data-test-unsplash-photo-image />
|
||||
<div class="gh-unsplash-photo-overlay">
|
||||
<div class="gh-unsplash-photo-header">
|
||||
<a class="gh-unsplash-button-likes gh-unsplash-button" href="{{this.photo.links.html}}?utm_source=ghost&utm_medium=referral&utm_campaign=api-credit" target="_blank">{{svg-jar "unsplash-heart"}}{{this.photo.likes}}</a>
|
||||
<a class="gh-unsplash-button-likes gh-unsplash-button" href="{{this.photo.links.html}}?utm_source=ghost&utm_medium=referral&utm_campaign=api-credit" target="_blank" rel="noopener noreferrer">{{svg-jar "unsplash-heart"}}{{this.photo.likes}}</a>
|
||||
<a class="gh-unsplash-button-download gh-unsplash-button" href="{{this.photo.links.download}}/?utm_source=ghost&utm_medium=referral&utm_campaign=api-credit&force=true">{{svg-jar "download"}}</a>
|
||||
</div>
|
||||
<div class="gh-unsplash-photo-footer">
|
||||
<div class="gh-unsplash-photo-author">
|
||||
<a class="gh-unsplash-photo-author-img" href="{{this.photo.user.links.html}}?utm_source=ghost&utm_medium=referral&utm_campaign=api-credit" target="_blank">
|
||||
<a class="gh-unsplash-photo-author-img" href="{{this.photo.user.links.html}}?utm_source=ghost&utm_medium=referral&utm_campaign=api-credit" target="_blank" rel="noopener noreferrer">
|
||||
<img src="{{this.photo.user.profile_image.medium}}" />
|
||||
</a>
|
||||
<a class="gh-unsplash-photo-author-name" href="{{this.photo.user.links.html}}?utm_source=ghost&utm_medium=referral&utm_campaign=api-credit" target="_blank">
|
||||
<a class="gh-unsplash-photo-author-name" href="{{this.photo.user.links.html}}?utm_source=ghost&utm_medium=referral&utm_campaign=api-credit" target="_blank" rel="noopener noreferrer">
|
||||
{{this.photo.user.name}}
|
||||
</a>
|
||||
</div>
|
||||
|
@ -11,7 +11,7 @@
|
||||
{{!-- static header --}}
|
||||
<header class="flex-shrink-0 flex flex-row-l flex-column justify-between pt6 pr8 pb6 pl8 pt10-l pr20-l pb10-l pl20-l items-center">
|
||||
<h1 class="flex items-center darkgrey-d2 w-100 nudge-top--4">
|
||||
<a class="dib w8 mr2" href="https://unsplash.com/?utm_source=ghost&utm_medium=referral&utm_campaign=api-credit" target="_blank">{{svg-jar "unsplash" class="fill-darkgrey-d2"}}</a>
|
||||
<a class="dib w8 mr2" href="https://unsplash.com/?utm_source=ghost&utm_medium=referral&utm_campaign=api-credit" target="_blank" rel="noopener noreferrer">{{svg-jar "unsplash" class="fill-darkgrey-d2"}}</a>
|
||||
Unsplash
|
||||
</h1>
|
||||
<span class="gh-input-icon mw88-l flex-auto w-100 mt3 mt0-l">
|
||||
|
@ -1,2 +1,2 @@
|
||||
<button {{action "openMobileMenu" target=this.ui}} class="gh-mobilemenu-button" role="presentation">{{svg-jar "icon" class="icon-gh"}}<span class="sr-only">Menu</span></button>
|
||||
<button class="gh-mobilemenu-button" role="presentation" type="button" {{action "openMobileMenu" target=this.ui}}>{{svg-jar "icon" class="icon-gh"}}<span class="sr-only">Menu</span></button>
|
||||
{{yield}}
|
||||
|
@ -6,7 +6,7 @@
|
||||
<div class="flex items-center">
|
||||
<GhMemberAvatar @member={{event.member}} @containerClass="w9 h9 mr3 flex-shrink-0" />
|
||||
<div class="w-80">
|
||||
<h3 class="ma0 pa0 gh-members-list-name {{if (not event.member.name) "gh-members-name-noname"}}">{{or event.member.name event.member.email}}</h3>
|
||||
<h3 class="ma0 pa0 gh-members-list-name {{unless event.member.name "gh-members-name-noname"}}">{{or event.member.name event.member.email}}</h3>
|
||||
{{#if event.member.name}}
|
||||
<p class="ma0 pa0 middarkgrey f8 gh-members-list-email">{{event.member.email}}</p>
|
||||
{{/if}}
|
||||
|
@ -3,14 +3,7 @@
|
||||
</header>
|
||||
<a class="close" href="" role="button" title="Close" {{action "closeModal"}}>{{svg-jar "close"}}<span class="hidden">Close</span></a>
|
||||
|
||||
{{#if (not this.confirmed)}}
|
||||
<div class="modal-body" data-test-state="add-label-unconfirmed">
|
||||
<GhMemberSingleLabelInput @onChange={{action "setLabel"}} @triggerId="label-input" data-test-input="" />
|
||||
<p class="mt2 ml1">
|
||||
Will be added to the currently selected <span class="fw6" data-test-text="member-count">{{gh-pluralize this.model.memberCount "member"}}</span>
|
||||
</p>
|
||||
</div>
|
||||
{{else}}
|
||||
{{#if this.confirmed}}
|
||||
<div class="gh-content-box pa" data-test-state="add-complete">
|
||||
{{#if this.error}}
|
||||
<div class="flex items-center">
|
||||
@ -41,11 +34,22 @@
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
</div>
|
||||
{{else}}
|
||||
<div class="modal-body" data-test-state="add-label-unconfirmed">
|
||||
<GhMemberSingleLabelInput @onChange={{action "setLabel"}} @triggerId="label-input" data-test-input="" />
|
||||
<p class="mt2 ml1">
|
||||
Will be added to the currently selected <span class="fw6" data-test-text="member-count">{{gh-pluralize this.model.memberCount "member"}}</span>
|
||||
</p>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
<div class="modal-footer">
|
||||
{{#if (not this.confirmed)}}
|
||||
<button {{action "closeModal"}} class="gh-btn" data-test-button="cancel">
|
||||
{{#if this.confirmed}}
|
||||
<button class="gh-btn gh-btn-black" data-test-button="close-modal" type="button" {{action "closeModal"}}>
|
||||
<span>Close</span>
|
||||
</button>
|
||||
{{else}}
|
||||
<button class="gh-btn" data-test-button="cancel" type="button" {{action "closeModal"}}>
|
||||
<span>Cancel</span>
|
||||
</button>
|
||||
|
||||
@ -57,9 +61,5 @@
|
||||
@class="gh-btn gh-btn-green gh-btn-icon"
|
||||
data-test-button="confirm"
|
||||
/>
|
||||
{{else}}
|
||||
<button {{action "closeModal"}} class="gh-btn gh-btn-black" data-test-button="close-modal">
|
||||
<span>Close</span>
|
||||
</button>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
@ -8,6 +8,6 @@
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button {{action "closeModal"}} class="gh-btn"><span>Cancel</span></button>
|
||||
<button class="gh-btn" type="button" {{action "closeModal"}}><span>Cancel</span></button>
|
||||
<GhTaskButton @buttonText="Delete" @successText="Deleted" @task={{this.deleteAll}} @class="gh-btn gh-btn-red gh-btn-icon" />
|
||||
</div>
|
||||
|
@ -8,7 +8,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button {{action "closeModal"}} class="gh-btn"><span>Cancel</span></button>
|
||||
<button class="gh-btn" type="button" {{action "closeModal"}}><span>Cancel</span></button>
|
||||
<GhTaskButton
|
||||
@buttonText="Delete Integration"
|
||||
@successText="Deleted"
|
||||
|
@ -30,6 +30,6 @@
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button {{action "closeModal"}} class="gh-btn"><span>Cancel</span></button>
|
||||
<button class="gh-btn" type="button" {{action "closeModal"}}><span>Cancel</span></button>
|
||||
<GhTaskButton @buttonText={{if this.shouldCancelSubscriptions "Delete member + Cancel subscription" "Delete member"}} @successText="Deleted" @task={{this.deleteMember}} @class="gh-btn gh-btn-red gh-btn-icon" />
|
||||
</div>
|
@ -3,18 +3,7 @@
|
||||
</header>
|
||||
<a class="close" href="" role="button" title="Close" {{action "closeModal"}}>{{svg-jar "close"}}<span class="hidden">Close</span></a>
|
||||
|
||||
{{#if (not this.confirmed)}}
|
||||
<div class="modal-body" data-test-state="delete-unconfirmed">
|
||||
<p>
|
||||
You're about to delete
|
||||
<strong data-test-text="delete-count">{{gh-pluralize this.model.memberCount "member"}}</strong>.
|
||||
This is permanent! All Ghost data will be deleted, this will have no effect on subscriptions in Stripe.
|
||||
</p>
|
||||
<p>
|
||||
A backup of your selection will be automatically downloaded to your device before deletion.
|
||||
</p>
|
||||
</div>
|
||||
{{else}}
|
||||
{{#if this.confirmed}}
|
||||
<div class="gh-content-box pa" data-test-state="delete-complete">
|
||||
{{#if this.error}}
|
||||
<div class="flex items-center">
|
||||
@ -46,11 +35,26 @@
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
</div>
|
||||
{{else}}
|
||||
<div class="modal-body" data-test-state="delete-unconfirmed">
|
||||
<p>
|
||||
You're about to delete
|
||||
<strong data-test-text="delete-count">{{gh-pluralize this.model.memberCount "member"}}</strong>.
|
||||
This is permanent! All Ghost data will be deleted, this will have no effect on subscriptions in Stripe.
|
||||
</p>
|
||||
<p>
|
||||
A backup of your selection will be automatically downloaded to your device before deletion.
|
||||
</p>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
<div class="modal-footer">
|
||||
{{#if (not this.confirmed)}}
|
||||
<button {{action "closeModal"}} class="gh-btn" data-test-button="cancel">
|
||||
{{#if this.confirmed}}
|
||||
<button class="gh-btn gh-btn-black" data-test-button="close-modal" type="button" {{action "closeModal"}}>
|
||||
<span>Close</span>
|
||||
</button>
|
||||
{{else}}
|
||||
<button class="gh-btn" data-test-button="cancel" type="button" {{action "closeModal"}}>
|
||||
<span>Cancel</span>
|
||||
</button>
|
||||
|
||||
@ -61,9 +65,5 @@
|
||||
@class="gh-btn gh-btn-red gh-btn-icon"
|
||||
data-test-button="confirm"
|
||||
/>
|
||||
{{else}}
|
||||
<button {{action "closeModal"}} class="gh-btn gh-btn-black" data-test-button="close-modal">
|
||||
<span>Close</span>
|
||||
</button>
|
||||
{{/if}}
|
||||
</div>
|
@ -10,7 +10,7 @@
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button {{action "closeModal"}} class="gh-btn"><span>Cancel</span></button>
|
||||
<button class="gh-btn" type="button" {{action "closeModal"}}><span>Cancel</span></button>
|
||||
<GhTaskButton
|
||||
@buttonText="Delete snippet"
|
||||
@successText="Deleted"
|
||||
|
@ -11,6 +11,6 @@
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button {{action "closeModal"}} class="gh-btn"><span>Cancel</span></button>
|
||||
<button class="gh-btn" type="button" {{action "closeModal"}}><span>Cancel</span></button>
|
||||
<GhTaskButton @buttonText="Delete" @successText="Deleted" @task={{this.deleteTag}} @class="gh-btn gh-btn-red gh-btn-icon" />
|
||||
</div>
|
||||
|
@ -19,7 +19,7 @@
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button {{action "closeModal"}} class="gh-btn" data-test-button="cancel-delete-user">
|
||||
<button class="gh-btn" data-test-button="cancel-delete-user" type="button" {{action "closeModal"}}>
|
||||
<span>Cancel</span>
|
||||
</button>
|
||||
<GhTaskButton @buttonText="Download backup & delete user"
|
||||
|
@ -10,6 +10,6 @@
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button {{action "closeModal"}} class="gh-btn"><span>Cancel</span></button>
|
||||
<button class="gh-btn" type="button" {{action "closeModal"}}><span>Cancel</span></button>
|
||||
<GhTaskButton @buttonText="Delete Webhook" @successText="Deleted" @task={{this.deleteWebhook}} @class="gh-btn gh-btn-red gh-btn-icon" />
|
||||
</div>
|
@ -8,6 +8,6 @@
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button {{action "closeModal"}} class="gh-btn"><span>Cancel</span></button>
|
||||
<button class="gh-btn" type="button" {{action "closeModal"}}><span>Cancel</span></button>
|
||||
<GhTaskButton @buttonText="Disconnect" @successText="Disconnected" @task={{this.disconnectStripe}} @class="gh-btn gh-btn-red gh-btn-icon" />
|
||||
</div>
|
||||
|
@ -8,6 +8,6 @@
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button {{action "closeModal"}} class="gh-btn"><span>Cancel</span></button>
|
||||
<button {{action "closeModal"}} class="gh-btn gh-btn-primary"><span>Enable feature</span></button>
|
||||
<button class="gh-btn" type="button" {{action "closeModal"}}><span>Cancel</span></button>
|
||||
<button class="gh-btn gh-btn-primary" type="button" {{action "closeModal"}}><span>Enable feature</span></button>
|
||||
</div>
|
||||
|
@ -3,8 +3,7 @@
|
||||
<h2 class="modal-fullsettings-heading">Email newsletter design</h2>
|
||||
<div class="flex items-center">
|
||||
<button
|
||||
class="gh-btn mr3"
|
||||
{{on "click" (action "closeModal")}}
|
||||
class="gh-btn mr3" type="button" {{on "click" (action "closeModal")}}
|
||||
{{!-- disable mouseDown so it does not trigger focus-out validations --}}
|
||||
{{on "mousedown" (optional this.noop)}}
|
||||
>
|
||||
@ -71,9 +70,9 @@
|
||||
</GhUploader>
|
||||
</GhFormGroup>
|
||||
|
||||
<GhFormGroup data-tooltip={{if (not this.settings.icon) "A publication icon must be set in Branding settings."}}>
|
||||
<h4 class="modal-fullsettings-title {{if (not this.settings.icon) "disabled"}}">Publication icon</h4>
|
||||
<div class="for-switch small {{if (not this.settings.icon) "disabled"}}">
|
||||
<GhFormGroup data-tooltip={{unless this.settings.icon "A publication icon must be set in Branding settings."}}>
|
||||
<h4 class="modal-fullsettings-title {{unless this.settings.icon "disabled"}}">Publication icon</h4>
|
||||
<div class="for-switch small {{unless this.settings.icon "disabled"}}">
|
||||
<label class="switch" for="show-header">
|
||||
<input
|
||||
type="checkbox"
|
||||
@ -239,7 +238,7 @@
|
||||
<span>{{this.config.blogTitle}} © {{this.copyrightYear}} – </span> <a href="javascript:">Unsubscribe</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="gh-members-emailpreview-badge {{if (not this.showBadge) "hide"}}">
|
||||
<div class="gh-members-emailpreview-badge {{unless this.showBadge "hide"}}">
|
||||
<a href="javascript:"><svg viewBox="0 0 156 156"><g fill="none" fill-rule="evenodd"><rect fill="#15212B" width="156" height="156" rx="27"></rect><g transform="translate(36 36)" fill="#F6F8FA"><path d="M0 71.007A4.004 4.004 0 014 67h26a4 4 0 014 4.007v8.986A4.004 4.004 0 0130 84H4a4 4 0 01-4-4.007v-8.986zM50 71.007A4.004 4.004 0 0154 67h26a4 4 0 014 4.007v8.986A4.004 4.004 0 0180 84H54a4 4 0 01-4-4.007v-8.986z"></path><rect y="34" width="84" height="17" rx="4"></rect><path d="M0 4.007A4.007 4.007 0 014.007 0h41.986A4.003 4.003 0 0150 4.007v8.986A4.007 4.007 0 0145.993 17H4.007A4.003 4.003 0 010 12.993V4.007z"></path><rect x="67" width="17" height="17" rx="4"></rect></g></g></svg> <span>Publish with Ghost</span></a>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -4,10 +4,10 @@
|
||||
<a class="close" href="" role="button" title="Close" {{action "closeModal"}}>{{svg-jar "close"}}<span class="hidden">Close</span></a>
|
||||
|
||||
<div class="modal-body">
|
||||
<p>Tiers for paid memberships is currently in an early access beta. Once enabled, it cannot be switched off. <a href="http://ghost.org/help/tiers" target="_blank">Learn more here</a></p>
|
||||
<p>Tiers for paid memberships is currently in an early access beta. Once enabled, it cannot be switched off. <a href="http://ghost.org/help/tiers" target="_blank" rel="noopener noreferrer">Learn more here</a></p>
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button {{action "closeModal"}} class="gh-btn"><span>Cancel</span></button>
|
||||
<button {{action "confirm"}} class="gh-btn gh-btn-primary"><span>Enable Tiers</span></button>
|
||||
<button class="gh-btn" type="button" {{action "closeModal"}}><span>Cancel</span></button>
|
||||
<button class="gh-btn gh-btn-primary" type="button" {{action "confirm"}}><span>Enable Tiers</span></button>
|
||||
</div>
|
||||
|
@ -1,7 +1,7 @@
|
||||
<header class="modal-header" data-test-modal="webhook-form">
|
||||
<h1 data-test-text="title">Free membership settings</h1>
|
||||
</header>
|
||||
<button class="close" href title="Close" {{action "closeModal"}} {{action (optional this.noop) on="mouseDown"}}>
|
||||
<button class="close" href title="Close" type="button" {{action "closeModal"}} {{action (optional this.noop) on="mouseDown"}}>
|
||||
{{svg-jar "close"}}
|
||||
</button>
|
||||
|
||||
@ -52,11 +52,9 @@
|
||||
|
||||
<div class="modal-footer">
|
||||
<button
|
||||
class="gh-btn"
|
||||
{{action "closeModal"}}
|
||||
class="gh-btn" data-test-button="cancel-webhook" type="button" {{action "closeModal"}}
|
||||
{{!-- disable mouseDown so it doesn't trigger focus-out validations --}}
|
||||
{{!-- {{action (optional this.noop) on="mouseDown"}} --}}
|
||||
data-test-button="cancel-webhook"
|
||||
>
|
||||
<span>Cancel</span>
|
||||
</button>
|
||||
|
@ -106,23 +106,23 @@
|
||||
|
||||
<div class="modal-footer modal-footer-spread">
|
||||
{{#if (eq this.state 'INIT')}}
|
||||
<button {{action "closeModal"}} class="gh-btn" data-test-button="close-import-members">
|
||||
<button class="gh-btn" data-test-button="close-import-members" type="button" {{action "closeModal"}}>
|
||||
<span>Close</span>
|
||||
</button>
|
||||
<a
|
||||
class="gh-btn"
|
||||
href="https://static.ghost.org/v4.0.0/files/member-import-template.csv"
|
||||
target="_blank"
|
||||
target="_blank" rel="noopener noreferrer"
|
||||
>
|
||||
<span>Download sample CSV file</span>
|
||||
</a>
|
||||
{{/if}}
|
||||
|
||||
{{#if (eq this.state 'MAPPING')}}
|
||||
<button {{action "reset"}} class="gh-btn" data-test-button="restart-import-members">
|
||||
<button class="gh-btn" data-test-button="restart-import-members" type="button" {{action "reset"}}>
|
||||
<span>Start over</span>
|
||||
</button>
|
||||
<button class="gh-btn gh-btn-green {{unless this.mappingResult.membersCount "disabled"}}" {{action "upload"}}>
|
||||
<button class="gh-btn gh-btn-green {{unless this.mappingResult.membersCount "disabled"}}" type="button" {{action "upload"}}>
|
||||
{{#if this.mappingResult.membersCount}}
|
||||
<span>Import {{format-number this.mappingResult.membersCount}} {{gh-pluralize this.mappingResult.membersCount 'member' without-count=true}}</span>
|
||||
{{else}}
|
||||
@ -132,10 +132,10 @@
|
||||
{{/if}}
|
||||
|
||||
{{#if (eq this.state 'UPLOADING')}}
|
||||
<button {{action "reset"}} class="gh-btn disabled" disabled="disabled" data-test-button="restart-import-members">
|
||||
<button class="gh-btn disabled" disabled="disabled" data-test-button="restart-import-members" type="button" {{action "reset"}}>
|
||||
<span>Start over</span>
|
||||
</button>
|
||||
<button class="gh-btn gh-btn-green gh-btn-icon disabled" disabled="disabled" {{action "upload"}}>
|
||||
<button class="gh-btn gh-btn-green gh-btn-icon disabled" disabled="disabled" type="button" {{action "upload"}}>
|
||||
<span>{{svg-jar "spinner" class="gh-icon-spinner"}} {{this.runningText}}Uploading</span>
|
||||
</button>
|
||||
{{/if}}
|
||||
@ -146,27 +146,27 @@
|
||||
<span>Download error file</span>
|
||||
</a>
|
||||
{{#if (eq this.importResponse.importedCount 0)}}
|
||||
<button {{action "reset"}} class="gh-btn gh-btn-black" data-test-button="restart-import-members">
|
||||
<button class="gh-btn gh-btn-black" data-test-button="restart-import-members" type="button" {{action "reset"}}>
|
||||
<span>Try again</span>
|
||||
</button>
|
||||
{{else}}
|
||||
<button {{action "closeModal"}} class="gh-btn gh-btn-black" data-test-button="close-import-members">
|
||||
<button class="gh-btn gh-btn-black" data-test-button="close-import-members" type="button" {{action "closeModal"}}>
|
||||
<span>View members</span>
|
||||
</button>
|
||||
{{/if}}
|
||||
{{else}}
|
||||
{{#if (eq this.importResponse.importedCount 0)}}
|
||||
<button {{action "closeModal"}} class="gh-btn" data-test-button="close-import-members">
|
||||
<button class="gh-btn" data-test-button="close-import-members" type="button" {{action "closeModal"}}>
|
||||
<span>Close</span>
|
||||
</button>
|
||||
<button {{action "reset"}} class="gh-btn gh-btn-black" data-test-button="restart-import-members">
|
||||
<button class="gh-btn gh-btn-black" data-test-button="restart-import-members" type="button" {{action "reset"}}>
|
||||
<span>Try again</span>
|
||||
</button>
|
||||
{{else}}
|
||||
<button {{action "reset"}} class="gh-btn" data-test-button="restart-import-members">
|
||||
<button class="gh-btn" data-test-button="restart-import-members" type="button" {{action "reset"}}>
|
||||
<span>Upload another file</span>
|
||||
</button>
|
||||
<button {{action "closeModal"}} class="gh-btn gh-btn-black" data-test-button="close-import-members">
|
||||
<button class="gh-btn gh-btn-black" data-test-button="close-import-members" type="button" {{action "closeModal"}}>
|
||||
<span>View members</span>
|
||||
</button>
|
||||
{{/if}}
|
||||
@ -174,21 +174,21 @@
|
||||
{{/if}}
|
||||
|
||||
{{#if (eq this.state 'PROCESSING')}}
|
||||
<button {{action "reset"}} class="gh-btn" data-test-button="restart-import-members">
|
||||
<button class="gh-btn" data-test-button="restart-import-members" type="button" {{action "reset"}}>
|
||||
<span>Upload another file</span>
|
||||
</button>
|
||||
<button {{action "closeModal"}} class="gh-btn gh-btn-black" data-test-button="close-import-members">
|
||||
<button class="gh-btn gh-btn-black" data-test-button="close-import-members" type="button" {{action "closeModal"}}>
|
||||
<span>Got it</span>
|
||||
</button>
|
||||
{{/if}}
|
||||
|
||||
{{#if (eq this.state 'ERROR')}}
|
||||
{{#if showTryAgainButton}}
|
||||
<button {{action "reset"}} class="gh-btn" data-test-button="restart-import-members">
|
||||
<button class="gh-btn" data-test-button="restart-import-members" type="button" {{action "reset"}}>
|
||||
<span>Try again</span>
|
||||
</button>
|
||||
{{/if}}
|
||||
<button {{action "closeModal"}} class="gh-btn gh-btn-black" data-test-button="close-import-members">
|
||||
<button class="gh-btn gh-btn-black" data-test-button="close-import-members" type="button" {{action "closeModal"}}>
|
||||
<span>OK</span>
|
||||
</button>
|
||||
{{/if}}
|
||||
|
@ -12,6 +12,6 @@
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button {{action "closeModal"}} class="gh-btn" data-test-stay-button><span>Stay</span></button>
|
||||
<button {{action "confirm"}} class="gh-btn gh-btn-red" data-test-leave-button><span>Leave</span></button>
|
||||
<button class="gh-btn" data-test-stay-button type="button" {{action "closeModal"}}><span>Stay</span></button>
|
||||
<button class="gh-btn gh-btn-red" data-test-leave-button type="button" {{action "confirm"}}><span>Leave</span></button>
|
||||
</div>
|
||||
|
@ -81,6 +81,6 @@
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
For further Markdown syntax reference: <a href="https://ghost.org/help/using-the-editor/#using-markdown" target="_blank">Markdown Documentation</a>
|
||||
For further Markdown syntax reference: <a href="https://ghost.org/help/using-the-editor/#using-markdown" target="_blank" rel="noopener noreferrer">Markdown Documentation</a>
|
||||
</section>
|
||||
</div>
|
||||
|
@ -43,11 +43,9 @@
|
||||
|
||||
<div class="modal-footer">
|
||||
<button
|
||||
class="gh-btn"
|
||||
{{action "closeModal" }}
|
||||
class="gh-btn" data-test-button="cancel-webhook" type="button" {{action "closeModal" }}
|
||||
{{!-- disable mouseDown so it does not trigger focus-out validations --}}
|
||||
{{action (optional this.noop) on="mouseDown" }}
|
||||
data-test-button="cancel-webhook">
|
||||
{{action (optional this.noop) on="mouseDown" }}>
|
||||
<span>Cancel</span>
|
||||
</button>
|
||||
|
||||
|
@ -11,7 +11,7 @@
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button {{action "closeModal"}} class="gh-btn"><span>Cancel</span></button>
|
||||
<button class="gh-btn" type="button" {{action "closeModal"}}><span>Cancel</span></button>
|
||||
<GhTaskButton @buttonText="Delete" @successText="Deleted" @task={{this.deleteLabel}} @class="gh-btn gh-btn-red gh-btn-icon" />
|
||||
</div>
|
||||
{{else}}
|
||||
@ -20,7 +20,7 @@
|
||||
<h1>{{if this.label.isNew "New label" "Edit label"}}</h1>
|
||||
</header>
|
||||
{{!-- disable mouseDown so it doesn't trigger focus-out validations --}}
|
||||
<button class="close" href title="Close" {{action "closeModal"}} {{action (optional this.noop) on="mouseDown"}}>
|
||||
<button class="close" href title="Close" type="button" {{action "closeModal"}} {{action (optional this.noop) on="mouseDown"}}>
|
||||
{{svg-jar "close"}}
|
||||
</button>
|
||||
|
||||
@ -44,24 +44,19 @@
|
||||
<div class="modal-footer">
|
||||
{{#if this.label.isNew}}
|
||||
<button
|
||||
class="gh-btn"
|
||||
{{action "closeModal"}}
|
||||
class="gh-btn" data-test-button="cancel-label-form" type="button" {{action "closeModal"}}
|
||||
{{!-- disable mouseDown so it doesn't trigger focus-out validations --}}
|
||||
{{action (optional this.noop) on="mouseDown"}}
|
||||
data-test-button="cancel-label-form"
|
||||
>
|
||||
<span>Cancel</span>
|
||||
</button>
|
||||
{{else}}
|
||||
<button
|
||||
class="gh-btn gh-btn-red gh-btn-icon"
|
||||
{{on "click" (action "toggleDeleteLabelModal")}}
|
||||
class="gh-btn gh-btn-red gh-btn-icon" data-test-button="delete-label" type="button" {{on "click" (action "toggleDeleteLabelModal")}}
|
||||
{{on "mousedown" (optional this.noop)}}
|
||||
data-test-button="delete-label"
|
||||
>
|
||||
<span>{{svg-jar "trash"}} Delete</span>
|
||||
</button
|
||||
>
|
||||
</button>
|
||||
{{/if}}
|
||||
|
||||
<GhTaskButton
|
||||
|
@ -1,5 +1,5 @@
|
||||
<div class="modal-body gh-ps-modal-body">
|
||||
<div class="flex pa0 flex-grow-1 gh-portal-settings" {{did-insert (fn this.finishPreloading)}}>
|
||||
<div class="flex pa0 flex-grow-1 gh-portal-settings" {{did-insert this.finishPreloading}}>
|
||||
{{#if this.isPreloading}}
|
||||
<GhLoadingSpinner />
|
||||
{{else}}
|
||||
@ -158,7 +158,7 @@
|
||||
</div>
|
||||
{{else}}
|
||||
<div class="gh-portal-setting-no-stripe">
|
||||
You need to <button class="gh-btn gh-btn-link black {{if (not this.session.user.isAdmin) "disabled"}}" {{on "click" (action "openStripeSettings")}}>connect to Stripe</button> to take payments
|
||||
You need to <button class="gh-btn gh-btn-link black {{unless this.session.user.isAdmin "disabled"}}" type="button" {{on "click" (action "openStripeSettings")}}>connect to Stripe</button> to take payments
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
@ -313,8 +313,7 @@
|
||||
|
||||
<div class="gh-portal-settings-actions">
|
||||
<button
|
||||
class="gh-btn mr3"
|
||||
{{action "closeModal"}}
|
||||
class="gh-btn mr3" type="button" {{action "closeModal"}}
|
||||
{{!-- disable mouseDown so it doesn't trigger focus-out validations --}}
|
||||
{{on "mousedown" (optional this.noop)}}
|
||||
>
|
||||
|
@ -1,7 +1,7 @@
|
||||
<header class="modal-header" data-test-modal="webhook-form">
|
||||
<h1 data-test-text="title">{{this.title}}</h1>
|
||||
</header>
|
||||
<button class="close" href title="Close" {{action "closeModal"}} {{action (optional this.noop) on="mouseDown"}}>
|
||||
<button class="close" href title="Close" type="button" {{action "closeModal"}} {{action (optional this.noop) on="mouseDown"}}>
|
||||
{{svg-jar "close"}}
|
||||
</button>
|
||||
|
||||
@ -75,11 +75,9 @@
|
||||
|
||||
<div class="modal-footer">
|
||||
<button
|
||||
class="gh-btn"
|
||||
{{action "closeModal"}}
|
||||
class="gh-btn" data-test-button="cancel-webhook" type="button" {{action "closeModal"}}
|
||||
{{!-- disable mouseDown so it doesn't trigger focus-out validations --}}
|
||||
{{action (optional this.noop) on="mouseDown"}}
|
||||
data-test-button="cancel-webhook"
|
||||
>
|
||||
<span>Cancel</span>
|
||||
</button>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<button class="close" href title="Close" {{action "closeModal"}} {{action (optional this.noop) on="mouseDown"}}>
|
||||
<button class="close" href title="Close" type="button" {{action "closeModal"}} {{action (optional this.noop) on="mouseDown"}}>
|
||||
{{svg-jar "close"}}
|
||||
</button>
|
||||
|
||||
@ -13,7 +13,7 @@
|
||||
<div class="gh-main-section-block span-2">
|
||||
<h4 class="gh-main-section-header small bn">Basic</h4>
|
||||
<div class="gh-main-section-content grey gh-product-priceform-block">
|
||||
{{#if (not this.isFreeProduct)}}
|
||||
{{#unless this.isFreeProduct}}
|
||||
<GhFormGroup @errors={{this.errors}} @property="name">
|
||||
<label for="name" class="fw6">Name</label>
|
||||
<GhTextInput
|
||||
@ -25,15 +25,15 @@
|
||||
@class="gh-input" />
|
||||
<GhErrorMessage @errors={{this.errors}} @property="name" />
|
||||
</GhFormGroup>
|
||||
{{/if}}
|
||||
{{/unless}}
|
||||
<GhFormGroup @errors={{this.errors}} @property="description">
|
||||
<label for="description" class="fw6">Description</label>
|
||||
{{#if (not this.isFreeProduct)}}
|
||||
{{#if this.isFreeProduct}}
|
||||
<GhTextInput
|
||||
@value={{readonly this.product.description}}
|
||||
@input={{action (mut this.product.description) value="target.value"}}
|
||||
@name="description"
|
||||
@placeholder="Full access to premium content"
|
||||
@placeholder="Free preview of {{this.settings.title}}"
|
||||
@id="description"
|
||||
@class="gh-input" />
|
||||
{{else}}
|
||||
@ -41,7 +41,7 @@
|
||||
@value={{readonly this.product.description}}
|
||||
@input={{action (mut this.product.description) value="target.value"}}
|
||||
@name="description"
|
||||
@placeholder="Free preview of {{this.settings.title}}"
|
||||
@placeholder="Full access to premium content"
|
||||
@id="description"
|
||||
@class="gh-input" />
|
||||
{{/if}}
|
||||
@ -58,14 +58,14 @@
|
||||
@validateUrl={{this.validateWelcomePageURL}}
|
||||
@placeholder={{readonly this.siteUrl}}
|
||||
/>
|
||||
{{#if (not this.isFreeProduct)}}
|
||||
<p>Redirect to this URL after signup for premium membership</p>
|
||||
{{else}}
|
||||
{{#if this.isFreeProduct}}
|
||||
<p>Redirect to this URL after signup for a free membership</p>
|
||||
{{else}}
|
||||
<p>Redirect to this URL after signup for premium membership</p>
|
||||
{{/if}}
|
||||
</GhFormGroup>
|
||||
{{/if}}
|
||||
{{#if (not this.isFreeProduct)}}
|
||||
{{#unless this.isFreeProduct}}
|
||||
<GhFormGroup @errors={{this.settings.errors}} @hasValidated={{this.settings.hasValidated}} @property="prices">
|
||||
<div class="gh-settings-members-pricelabelcont">
|
||||
<label for="monthlyPrice">Prices</label>
|
||||
@ -117,7 +117,7 @@
|
||||
<p class="response w-100"><span class="red">{{this.stripePlanError}}</span></p>
|
||||
{{/if}}
|
||||
</GhFormGroup>
|
||||
{{/if}}
|
||||
{{/unless}}
|
||||
</div>
|
||||
|
||||
<h4 class="gh-main-section-header small bn">Benefits</h4>
|
||||
@ -155,10 +155,10 @@
|
||||
</div>
|
||||
<div class="gh-main-section-block gh-product-form-tierpreview">
|
||||
<div class="gh-product-form-tierpreview-content">
|
||||
{{#if (not this.isFreeProduct)}}
|
||||
<h4 class="gh-main-section-header small bn">Tier Preview</h4>
|
||||
{{else}}
|
||||
{{#if this.isFreeProduct}}
|
||||
<h4 class="gh-main-section-header small bn">Free Membership Preview</h4>
|
||||
{{else}}
|
||||
<h4 class="gh-main-section-header small bn">Tier Preview</h4>
|
||||
{{/if}}
|
||||
<div class="gh-main-section-content" style="border-color: {{this.settings.accentColor}}">
|
||||
<span class="checkmark" style="background-color: {{this.settings.accentColor}}"></span>
|
||||
@ -172,10 +172,10 @@
|
||||
{{#if this.product.description}}
|
||||
<p>{{this.product.description}}</p>
|
||||
{{else}}
|
||||
{{#if (not this.isFreeProduct)}}
|
||||
<p class="placeholder">Full access to premium content</p>
|
||||
{{else}}
|
||||
{{#if this.isFreeProduct}}
|
||||
<p class="placeholder">Free preview of {{this.settings.title}}</p>
|
||||
{{else}}
|
||||
<p class="placeholder">Full access to premium content</p>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
|
||||
@ -187,15 +187,20 @@
|
||||
</ul>
|
||||
{{else}}
|
||||
<ul class="placeholder">
|
||||
{{#if (not this.isFreeProduct)}}
|
||||
<li>{{svg-jar "check-2"}} <span>Expert analysis</span></li>
|
||||
{{else}}
|
||||
{{#if this.isFreeProduct}}
|
||||
<li>{{svg-jar "check-2"}} <span>Access to all public posts</span></li>
|
||||
{{else}}
|
||||
<li>{{svg-jar "check-2"}} <span>Expert analysis</span></li>
|
||||
{{/if}}
|
||||
</ul>
|
||||
{{/if}}
|
||||
<div class="price">
|
||||
{{#if (not this.isFreeProduct)}}
|
||||
{{#if this.isFreeProduct}}
|
||||
<span class="monthly-price">
|
||||
<span class="currency">{{currency-symbol this.currency}}</span>
|
||||
0
|
||||
</span>
|
||||
{{else}}
|
||||
{{#if this.stripeMonthlyAmount}}
|
||||
<span class="monthly-price">
|
||||
<span class="currency">{{currency-symbol this.currency}}</span>
|
||||
@ -215,11 +220,6 @@
|
||||
{{else}}
|
||||
<span class="yearly-price placeholder">0<span class="currency">{{this.currency}}</span>/year</span>
|
||||
{{/if}}
|
||||
{{else}}
|
||||
<span class="monthly-price">
|
||||
<span class="currency">{{currency-symbol this.currency}}</span>
|
||||
0
|
||||
</span>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
@ -232,11 +232,9 @@
|
||||
|
||||
<div class="modal-footer top-shadow items-center">
|
||||
<button
|
||||
class="gh-btn"
|
||||
{{action "closeModal"}}
|
||||
class="gh-btn" data-test-button="cancel-webhook" type="button" {{action "closeModal"}}
|
||||
{{!-- disable mouseDown so it doesn't trigger focus-out validations --}}
|
||||
{{action (optional this.noop) on="mouseDown"}}
|
||||
data-test-button="cancel-webhook"
|
||||
>
|
||||
<span>Cancel</span>
|
||||
</button>
|
||||
|
@ -17,6 +17,6 @@
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button {{action "closeModal"}} class="gh-btn"><span>Cancel</span></button>
|
||||
<button class="gh-btn" type="button" {{action "closeModal"}}><span>Cancel</span></button>
|
||||
<GhTaskButton @buttonText="Regenerate {{capitalize this.apiKey.type}} API Key" @successText="Regenerated" @task={{this.regenerateKey}} @class="gh-btn gh-btn-icon gh-btn-red" />
|
||||
</div>
|
||||
|
@ -13,8 +13,8 @@
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button {{action "closeModal"}} class="gh-btn" autofocus><span>Cancel</span></button>
|
||||
<button class="gh-btn gh-btn-icon gh-btn-red" {{action "confirm"}}>
|
||||
<button class="gh-btn" autofocus type="button" {{action "closeModal"}}><span>Cancel</span></button>
|
||||
<button class="gh-btn gh-btn-icon gh-btn-red" type="button" {{action "confirm"}}>
|
||||
<span>Regenerate your Staff Access Token</span>
|
||||
</button>
|
||||
</div>
|
||||
|
@ -3,14 +3,7 @@
|
||||
</header>
|
||||
<a class="close" href="" role="button" title="Close" {{action "closeModal"}}>{{svg-jar "close"}}<span class="hidden">Close</span></a>
|
||||
|
||||
{{#if (not this.confirmed)}}
|
||||
<div class="modal-body" data-test-state="add-label-unconfirmed">
|
||||
<GhMemberSingleLabelInput @onChange={{action "setLabel"}} @triggerId="label-input" data-test-input="" />
|
||||
<p class="mt2 ml1">
|
||||
Will be removed from the currently selected <span class="fw6" data-test-text="member-count">{{gh-pluralize this.model.memberCount "member"}}</span>
|
||||
</p>
|
||||
</div>
|
||||
{{else}}
|
||||
{{#if this.confirmed}}
|
||||
<div class="gh-content-box pa" data-test-state="remove-complete">
|
||||
{{#if this.error}}
|
||||
<div class="flex items-center">
|
||||
@ -41,11 +34,22 @@
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
</div>
|
||||
{{else}}
|
||||
<div class="modal-body" data-test-state="add-label-unconfirmed">
|
||||
<GhMemberSingleLabelInput @onChange={{action "setLabel"}} @triggerId="label-input" data-test-input="" />
|
||||
<p class="mt2 ml1">
|
||||
Will be removed from the currently selected <span class="fw6" data-test-text="member-count">{{gh-pluralize this.model.memberCount "member"}}</span>
|
||||
</p>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
<div class="modal-footer">
|
||||
{{#if (not this.confirmed)}}
|
||||
<button {{action "closeModal"}} class="gh-btn" data-test-button="cancel">
|
||||
{{#if this.confirmed}}
|
||||
<button class="gh-btn gh-btn-black" data-test-button="close-modal" type="button" {{action "closeModal"}}>
|
||||
<span>Close</span>
|
||||
</button>
|
||||
{{else}}
|
||||
<button class="gh-btn" data-test-button="cancel" type="button" {{action "closeModal"}}>
|
||||
<span>Cancel</span>
|
||||
</button>
|
||||
|
||||
@ -57,9 +61,5 @@
|
||||
@class="gh-btn gh-btn-red gh-btn-icon"
|
||||
data-test-button="confirm"
|
||||
/>
|
||||
{{else}}
|
||||
<button {{action "closeModal"}} class="gh-btn gh-btn-black" data-test-button="close-modal">
|
||||
<span>Close</span>
|
||||
</button>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
@ -20,6 +20,6 @@
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button {{action "closeModal"}} class="gh-btn"><span>Cancel</span></button>
|
||||
<button class="gh-btn" type="button" {{action "closeModal"}}><span>Cancel</span></button>
|
||||
<GhTaskButton @buttonText="Reset Passwords" @task={{this.resetPasswords}} @class="gh-btn gh-btn-red gh-btn-icon" disabled={{this.isConfirmDisabled}} />
|
||||
</div>
|
||||
|
@ -11,6 +11,6 @@
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button {{on "click" this.close}} class="gh-btn"><span>Cancel</span></button>
|
||||
<button {{on "click" this.confirmAction}} class="gh-btn gh-btn-black"><span>Change role</span></button>
|
||||
<button class="gh-btn" type="button" {{on "click" this.close}}><span>Cancel</span></button>
|
||||
<button class="gh-btn gh-btn-black" type="button" {{on "click" this.confirmAction}}><span>Change role</span></button>
|
||||
</div>
|
||||
|
@ -1,7 +1,7 @@
|
||||
<header class="modal-header" data-test-modal="webhook-form" {{will-destroy this.reset}}>
|
||||
<h1 data-test-text="title">Connect with Stripe</h1>
|
||||
</header>
|
||||
<button class="close" href title="Close" {{action "closeModal"}} {{action (optional this.noop) on="mouseDown"}}>
|
||||
<button class="close" href title="Close" type="button" {{action "closeModal"}} {{action (optional this.noop) on="mouseDown"}}>
|
||||
{{svg-jar "close"}}
|
||||
</button>
|
||||
|
||||
@ -18,10 +18,8 @@
|
||||
<div class="modal-footer">
|
||||
{{#if this.settings.stripeConnectAccountId}}
|
||||
<button
|
||||
class="gh-btn gh-btn-black"
|
||||
{{action "confirm"}}
|
||||
class="gh-btn gh-btn-black" data-test-button="stripe-connect-ok" type="button" {{action "confirm"}}
|
||||
{{action (optional this.noop) on="mouseDown"}}
|
||||
data-test-button="stripe-connect-ok"
|
||||
>
|
||||
<span>OK</span>
|
||||
</button>
|
||||
|
@ -8,6 +8,6 @@
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button {{action "closeModal"}} class="gh-btn"><span>Cancel</span></button>
|
||||
<button class="gh-btn" type="button" {{action "closeModal"}}><span>Cancel</span></button>
|
||||
<GhTaskButton @buttonText="Suspend" @successText="Suspended" @task={{this.suspendUser}} @class="gh-btn gh-btn-red gh-btn-icon" data-test-modal-confirm="true" />
|
||||
</div>
|
||||
|
@ -11,6 +11,6 @@
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button {{action "closeModal"}} class="gh-btn"><span>Cancel</span></button>
|
||||
<button class="gh-btn" type="button" {{action "closeModal"}}><span>Cancel</span></button>
|
||||
<GhTaskButton @buttonText="Yep - I'm sure" @task={{this.transferOwnership}} @class="gh-btn gh-btn-red gh-btn-icon" />
|
||||
</div>
|
||||
|
@ -3,15 +3,7 @@
|
||||
</header>
|
||||
<a class="close" href="" role="button" title="Close" {{action "closeModal"}}>{{svg-jar "close"}}<span class="hidden">Close</span></a>
|
||||
|
||||
{{#if (not this.confirmed)}}
|
||||
<div class="modal-body" data-test-state="unsubscribe-unconfirmed">
|
||||
<p>
|
||||
You're about to unsubscribe
|
||||
<strong data-test-text="unsubscribe-count">{{gh-pluralize this.model.memberCount "member"}}</strong> from email newsletters.
|
||||
Are you sure?
|
||||
</p>
|
||||
</div>
|
||||
{{else}}
|
||||
{{#if this.confirmed}}
|
||||
<div class="gh-content-box pa" data-test-state="unsubscribe-complete">
|
||||
{{#if this.error}}
|
||||
<div class="flex items-center">
|
||||
@ -43,11 +35,23 @@
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
</div>
|
||||
{{else}}
|
||||
<div class="modal-body" data-test-state="unsubscribe-unconfirmed">
|
||||
<p>
|
||||
You're about to unsubscribe
|
||||
<strong data-test-text="unsubscribe-count">{{gh-pluralize this.model.memberCount "member"}}</strong> from email newsletters.
|
||||
Are you sure?
|
||||
</p>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
<div class="modal-footer">
|
||||
{{#if (not this.confirmed)}}
|
||||
<button {{action "closeModal"}} class="gh-btn" data-test-button="cancel">
|
||||
{{#if this.confirmed}}
|
||||
<button class="gh-btn gh-btn-black" data-test-button="close-modal" type="button" {{action "closeModal"}}>
|
||||
<span>Close</span>
|
||||
</button>
|
||||
{{else}}
|
||||
<button class="gh-btn" data-test-button="cancel" type="button" {{action "closeModal"}}>
|
||||
<span>Cancel</span>
|
||||
</button>
|
||||
|
||||
@ -58,9 +62,5 @@
|
||||
@class="gh-btn gh-btn-red gh-btn-icon"
|
||||
data-test-button="confirm"
|
||||
/>
|
||||
{{else}}
|
||||
<button {{action "closeModal"}} class="gh-btn gh-btn-black" data-test-button="close-modal">
|
||||
<span>Close</span>
|
||||
</button>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
@ -8,6 +8,6 @@
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button {{action "closeModal"}} class="gh-btn"><span>Cancel</span></button>
|
||||
<button class="gh-btn" type="button" {{action "closeModal"}}><span>Cancel</span></button>
|
||||
<GhTaskButton @buttonText="Un-suspend" @successText="Suspended" @task={{this.unsuspendUser}} @class="gh-btn gh-btn-red gh-btn-icon" data-test-modal-confirm="true" />
|
||||
</div>
|
||||
|
@ -12,7 +12,7 @@
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button {{action "closeModal"}} class="gh-btn"><span>Cancel</span></button>
|
||||
<button class="gh-btn" type="button" {{action "closeModal"}}><span>Cancel</span></button>
|
||||
<GhTaskButton
|
||||
@buttonText="Update"
|
||||
@successText="Updated"
|
||||
|
@ -2,7 +2,7 @@
|
||||
<header class="modal-header" data-test-modal="delete-user">
|
||||
<h1>{{headerMessage}}</h1>
|
||||
</header>
|
||||
<button class="close" title="Close" {{on "click" this.closeModal}}>{{svg-jar "close"}}<span class="hidden">Close</span></button>
|
||||
<button class="close" title="Close" type="button" {{on "click" this.closeModal}}>{{svg-jar "close"}}<span class="hidden">Close</span></button>
|
||||
|
||||
<div class="modal-body">
|
||||
<p>
|
||||
@ -11,11 +11,11 @@
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button {{on "click" this.closeModal}} class="gh-btn" data-test-button="cancel-upgrade">
|
||||
<button class="gh-btn" data-test-button="cancel-upgrade" type="button" {{on "click" this.closeModal}}>
|
||||
<span>Cancel</span>
|
||||
</button>
|
||||
|
||||
<button {{on "click" (action "upgrade")}} class="gh-btn gh-btn-green" data-test-button="upgrade-plan">
|
||||
<button class="gh-btn gh-btn-green" data-test-button="upgrade-plan" type="button" {{on "click" (action "upgrade")}}>
|
||||
<span>Upgrade</span>
|
||||
</button>
|
||||
</div>
|
@ -1,7 +1,7 @@
|
||||
<header class="modal-header" data-test-modal="delete-user">
|
||||
<h1>Upgrade to un-suspend this user</h1>
|
||||
</header>
|
||||
<button class="close" title="Close" {{on "click" this.closeModal}}>{{svg-jar "close"}}<span class="hidden">Close</span></button>
|
||||
<button class="close" title="Close" type="button" {{on "click" this.closeModal}}>{{svg-jar "close"}}<span class="hidden">Close</span></button>
|
||||
|
||||
<div class="modal-body">
|
||||
<p>
|
||||
@ -10,11 +10,11 @@
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button {{on "click" this.closeModal}} class="gh-btn" data-test-button="cancel-upgrade">
|
||||
<button class="gh-btn" data-test-button="cancel-upgrade" type="button" {{on "click" this.closeModal}}>
|
||||
<span>Cancel</span>
|
||||
</button>
|
||||
|
||||
<button {{on "click" (action "upgrade")}} class="gh-btn gh-btn-green" data-test-button="upgrade-plan">
|
||||
<button class="gh-btn gh-btn-green" data-test-button="upgrade-plan" type="button" {{on "click" (action "upgrade")}}>
|
||||
<span>Upgrade my plan</span>
|
||||
</button>
|
||||
</div>
|
@ -23,9 +23,9 @@
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button {{action "closeModal"}} class="gh-btn"><span>Cancel</span></button>
|
||||
<button class="gh-btn" type="button" {{action "closeModal"}}><span>Cancel</span></button>
|
||||
{{#if this._isUploading}}
|
||||
<button class="gh-btn gh-btn-black right gh-btn-icon disabled"><span>Save</span></button>
|
||||
<button class="gh-btn gh-btn-black right gh-btn-icon disabled" type="button"><span>Save</span></button>
|
||||
{{else}}
|
||||
<GhTaskButton @task={{this.uploadImage}} @class="gh-btn gh-btn-black right gh-btn-icon" data-test-modal-accept-button={{true}} />
|
||||
{{/if}}
|
||||
|
@ -1,7 +1,7 @@
|
||||
<header class="modal-header" data-test-modal="webhook-form">
|
||||
<h1 data-test-text="title">{{if this.webhook.isNew "New" "Edit"}} webhook</h1>
|
||||
</header>
|
||||
<button class="close" href title="Close" {{action "closeModal"}} {{action (optional this.noop) on="mouseDown"}}>
|
||||
<button class="close" href title="Close" type="button" {{action "closeModal"}} {{action (optional this.noop) on="mouseDown"}}>
|
||||
{{svg-jar "close"}}
|
||||
</button>
|
||||
|
||||
@ -89,11 +89,9 @@
|
||||
|
||||
<div class="modal-footer">
|
||||
<button
|
||||
class="gh-btn"
|
||||
{{action "closeModal"}}
|
||||
class="gh-btn" data-test-button="cancel-webhook" type="button" {{action "closeModal"}}
|
||||
{{!-- disable mouseDown so it doesn't trigger focus-out validations --}}
|
||||
{{action (optional this.noop) on="mouseDown"}}
|
||||
data-test-button="cancel-webhook"
|
||||
>
|
||||
<span>Cancel</span>
|
||||
</button>
|
||||
|
@ -13,7 +13,7 @@
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button {{on "click" (fn @close false)}} class="gh-btn" data-test-stay-button><span>Stay</span></button>
|
||||
<button {{on "click" (fn @close true)}} class="gh-btn gh-btn-red" data-test-leave-button><span>Leave</span></button>
|
||||
<button class="gh-btn" data-test-stay-button type="button" {{on "click" (fn @close false)}}><span>Stay</span></button>
|
||||
<button class="gh-btn gh-btn-red" data-test-leave-button type="button" {{on "click" (fn @close true)}}><span>Leave</span></button>
|
||||
</div>
|
||||
</div>
|
@ -3,7 +3,7 @@
|
||||
<h1>{{if @data.customView.isNew "New view" "Edit view"}}</h1>
|
||||
</header>
|
||||
{{!-- disable mouseDown so it doesn't trigger focus-out validations --}}
|
||||
<button class="close" href title="Close" {{on "click" @close}} {{on "mousedown" (optional this.noop)}}>
|
||||
<button class="close" href title="Close" type="button" {{on "click" @close}} {{on "mousedown" (optional this.noop)}}>
|
||||
{{svg-jar "close"}}
|
||||
</button>
|
||||
|
||||
@ -50,24 +50,19 @@
|
||||
<div class="modal-footer">
|
||||
{{#if @data.customView.isNew}}
|
||||
<button
|
||||
class="gh-btn"
|
||||
{{on "click" @close}}
|
||||
class="gh-btn" data-test-button="cancel-custom-view-form" type="button" {{on "click" @close}}
|
||||
{{!-- disable mouseDown so it doesn't trigger focus-out validations --}}
|
||||
{{on "mousedown" (optional this.noop)}}
|
||||
data-test-button="cancel-custom-view-form"
|
||||
>
|
||||
<span>Cancel</span>
|
||||
</button>
|
||||
{{else}}
|
||||
<button
|
||||
class="gh-btn gh-btn-red gh-btn-icon"
|
||||
{{on "click" (perform this.deleteTask)}}
|
||||
class="gh-btn gh-btn-red gh-btn-icon" data-test-button="delete-custom-view" type="button" {{on "click" (perform this.deleteTask)}}
|
||||
{{on "mousedown" (optional this.noop)}}
|
||||
data-test-button="delete-custom-view"
|
||||
>
|
||||
<span>{{svg-jar "trash"}} Delete</span>
|
||||
</button
|
||||
>
|
||||
</button>
|
||||
{{/if}}
|
||||
|
||||
<GhTaskButton
|
||||
|
@ -9,7 +9,7 @@
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button {{on "click" (fn @close false)}} class="gh-btn" data-test-button="cancel"><span>Stay</span></button>
|
||||
<button class="gh-btn" data-test-button="cancel" type="button" {{on "click" (fn @close false)}}><span>Stay</span></button>
|
||||
<GhTaskButton
|
||||
@buttonText="Delete"
|
||||
@successText="Deleted"
|
||||
|
@ -85,7 +85,7 @@
|
||||
|
||||
<div class="modal-footer">
|
||||
<div class="flex items-center justify-between">
|
||||
<button {{on "click" (fn @close false)}} class="gh-btn" data-test-button="cancel">
|
||||
<button class="gh-btn" data-test-button="cancel" type="button" {{on "click" (fn @close false)}}>
|
||||
<span>{{if (or this.installSuccess this.installFailure) "Close" "Cancel"}}</span>
|
||||
</button>
|
||||
|
||||
|
@ -14,8 +14,8 @@
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button class="gh-btn" {{on "click" @close}}><span>Stay</span></button>
|
||||
<button class="gh-btn gh-btn-red" {{on "click" (fn @close true)}}><span>Leave</span></button>
|
||||
<button class="gh-btn" type="button" {{on "click" @close}}><span>Stay</span></button>
|
||||
<button class="gh-btn gh-btn-red" type="button" {{on "click" (fn @close true)}}><span>Leave</span></button>
|
||||
</div>
|
||||
|
||||
</div>
|
@ -3,7 +3,7 @@
|
||||
<header class="modal-header" data-test-state="confirm-publish">
|
||||
<h1>Ready to go? Here’s what happens next</h1>
|
||||
</header>
|
||||
<button class="close" title="Close" {{on "click" @close}}>{{svg-jar "close"}}<span class="hidden">Close</span></button>
|
||||
<button class="close" title="Close" type="button" {{on "click" @close}}>{{svg-jar "close"}}<span class="hidden">Close</span></button>
|
||||
|
||||
<div class="modal-body" {{did-insert this.countRecipientsTask.perform}}>
|
||||
{{#if (eq @data.post.displayName 'page')}}
|
||||
@ -53,7 +53,7 @@
|
||||
<span>Close</span>
|
||||
</button>
|
||||
{{else}}
|
||||
<button {{on "click" @close}} class="gh-btn" data-test-button="cancel-publish-and-email">
|
||||
<button class="gh-btn" data-test-button="cancel-publish-and-email" type="button" {{on "click" @close}}>
|
||||
<span>Cancel</span>
|
||||
</button>
|
||||
{{#if @data.isScheduled}}
|
||||
@ -82,7 +82,7 @@
|
||||
<header class="modal-header" data-test-state="failed-send">
|
||||
<h1>Failed to send email</h1>
|
||||
</header>
|
||||
<button class="close" title="Close" {{on "click" @close}}>{{svg-jar "close"}}<span class="hidden">Close</span></button>
|
||||
<button class="close" title="Close" type="button" {{on "click" @close}}>{{svg-jar "close"}}<span class="hidden">Close</span></button>
|
||||
|
||||
<div class="modal-body">
|
||||
<p>Your post has been published but the email failed to send. Please verify your email settings if the error persists.</p>
|
||||
@ -106,7 +106,7 @@
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button {{on "click" @close}} class="gh-btn" data-test-button="cancel-publish-and-email">
|
||||
<button class="gh-btn" data-test-button="cancel-publish-and-email" type="button" {{on "click" @close}}>
|
||||
<span>Close</span>
|
||||
</button>
|
||||
<GhTaskButton
|
||||
|
@ -3,12 +3,12 @@
|
||||
<h2 class="f6 fw6">{{this.subject}}</h2>
|
||||
<div>
|
||||
<div class="gh-contentfilter gh-btn-group gh-pe-btn-group" style="display:flex;flex-grow:1;justify-content:center">
|
||||
<button class="gh-btn {{if (eq this.tab "desktop") "gh-btn-group-selected"}}" {{on "click" (fn this.changeTab "desktop")}}><span>Desktop</span></button>
|
||||
<button class="gh-btn {{if (eq this.tab "mobile") "gh-btn-group-selected"}}" {{on "click" (fn this.changeTab "mobile")}}><span>Mobile</span></button>
|
||||
<button class="gh-btn {{if (eq this.tab "desktop") "gh-btn-group-selected"}}" type="button" {{on "click" (fn this.changeTab "desktop")}}><span>Desktop</span></button>
|
||||
<button class="gh-btn {{if (eq this.tab "mobile") "gh-btn-group-selected"}}" type="button" {{on "click" (fn this.changeTab "mobile")}}><span>Mobile</span></button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="gh-pe-close">
|
||||
<button class="close" href title="Close" {{on "click" @close}}>
|
||||
<button class="close" href title="Close" type="button" {{on "click" @close}}>
|
||||
{{svg-jar "close"}}
|
||||
</button>
|
||||
</div>
|
||||
|
@ -5,7 +5,7 @@
|
||||
{{svg-jar "get-started"}}
|
||||
<h1>Great work!</h1>
|
||||
<p>Your site is ready to start publishing content.</p>
|
||||
<p><LinkTo @route="dashboard" @classNames="gh-btn gh-btn-large gh-btn-green" {{on "click" @close}}><span>Start writing</span></LinkTo></p>
|
||||
<p><LinkTo @route="dashboard" class="gh-btn gh-btn-large gh-btn-green" {{on "click" @close}}><span>Start writing</span></LinkTo></p>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-row f8 gh-get-started-extras">
|
||||
@ -13,13 +13,13 @@
|
||||
{{svg-jar "get-started-members"}}
|
||||
<h4>Paid memberships</h4>
|
||||
<p>Build sustainable recurring revenue using Stripe.</p>
|
||||
<p><LinkTo @route="settings.membership" @classNames="gh-btn" {{on "click" @close}}><span>Connect Stripe</span></LinkTo></p>
|
||||
<p><LinkTo @route="settings.membership" class="gh-btn" {{on "click" @close}}><span>Connect Stripe</span></LinkTo></p>
|
||||
</div>
|
||||
<div class="pa4 w-50 tc">
|
||||
{{svg-jar "get-started-migrations"}}
|
||||
<h4>Migrating data</h4>
|
||||
<p>Import content from other tools into Ghost with ease.</p>
|
||||
<p><a href="https://docs.ghost.org" class="gh-btn" target="_blank" rel="noopener noreferer" {{on "click" @close}}><span>Learn more</span></a></p>
|
||||
<p><a href="https://docs.ghost.org" class="gh-btn" target="_blank" rel="noreferer noopener noreferrer" {{on "click" @close}}><span>Learn more</span></a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
@ -2,7 +2,7 @@
|
||||
<header class="modal-header">
|
||||
<h1>Upgrade to enable custom integrations</h1>
|
||||
</header>
|
||||
<button class="close" title="Close" {{on "click" @close}}>{{svg-jar "close"}}<span class="hidden">Close</span></button>
|
||||
<button class="close" title="Close" type="button" {{on "click" @close}}>{{svg-jar "close"}}<span class="hidden">Close</span></button>
|
||||
|
||||
<div class="modal-body">
|
||||
<p>
|
||||
@ -11,7 +11,7 @@
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button {{on "click" @close}} class="gh-btn" data-test-button="cancel-upgrade">
|
||||
<button class="gh-btn" data-test-button="cancel-upgrade" type="button" {{on "click" @close}}>
|
||||
<span>Cancel</span>
|
||||
</button>
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
<header class="modal-header">
|
||||
<h1>Upgrade to enable custom themes</h1>
|
||||
</header>
|
||||
<button class="close" title="Close" {{on "click" @close}}>{{svg-jar "close"}}<span class="hidden">Close</span></button>
|
||||
<button class="close" title="Close" type="button" {{on "click" @close}}>{{svg-jar "close"}}<span class="hidden">Close</span></button>
|
||||
|
||||
<div class="modal-body">
|
||||
<p>
|
||||
@ -16,7 +16,7 @@
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button {{on "click" @close}} class="gh-btn" data-test-button="cancel-upgrade">
|
||||
<button class="gh-btn" data-test-button="cancel-upgrade" type="button" {{on "click" @close}}>
|
||||
<span>Cancel</span>
|
||||
</button>
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
<h1>New custom integration</h1>
|
||||
</header>
|
||||
{{!-- disable mouseDown so it doesn't trigger focus-out validations --}}
|
||||
<button class="close" href title="Close" {{on "click" @close}}>
|
||||
<button class="close" href title="Close" type="button" {{on "click" @close}}>
|
||||
{{svg-jar "close"}}
|
||||
</button>
|
||||
|
||||
@ -33,7 +33,7 @@
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button class="gh-btn" {{on "click" @close}} data-test-button="cancel-new-integration">
|
||||
<button class="gh-btn" data-test-button="cancel-new-integration" type="button" {{on "click" @close}}>
|
||||
<span>Cancel</span>
|
||||
</button>
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
<div class="flex flex-column h-100">
|
||||
<header class="modal-header gh-post-preview-header gh-post-preview-header-border" data-test-modal="preview-email">
|
||||
<div>
|
||||
<button class="gh-editor-back-button" title="Close" {{on "click" @close}}>
|
||||
<button class="gh-editor-back-button" title="Close" type="button" {{on "click" @close}}>
|
||||
<span>{{svg-jar "arrow-left"}} Back</span>
|
||||
</button>
|
||||
</div>
|
||||
@ -19,7 +19,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{#if (not this.session.user.isContributor)}}
|
||||
{{#unless this.session.user.isContributor}}
|
||||
<GhPublishmenu
|
||||
@post={{@data.post}}
|
||||
@postStatus={{@data.post.status}}
|
||||
@ -27,7 +27,7 @@
|
||||
@setSaveType={{@data.setEditorSaveType}}
|
||||
@memberCount={{@data.memberCount}}
|
||||
@uiContext="preview" />
|
||||
{{/if}}
|
||||
{{/unless}}
|
||||
</header>
|
||||
|
||||
{{#if this.saveFirstTask.isRunning}}
|
||||
|
@ -23,7 +23,7 @@
|
||||
>
|
||||
{{#if (and this.facebookHovered (not this.facebookImage))}}
|
||||
{{!-- only shown on hover when there's no image or fallback --}}
|
||||
<button class="gh-social-og-preview-img-add" {{on "click" (fn this.triggerFileDialog "facebook")}}>+ Add image</button>
|
||||
<button class="gh-social-og-preview-img-add" type="button" {{on "click" (fn this.triggerFileDialog "facebook")}}>+ Add image</button>
|
||||
{{/if}}
|
||||
|
||||
<GhUploader
|
||||
@ -127,7 +127,7 @@
|
||||
>
|
||||
{{#if (and this.twitterHovered (not this.twitterImage))}}
|
||||
{{!-- only shown on hover when there's no image or fallback --}}
|
||||
<button class="gh-social-twitter-preview-img-add" {{on "click" (fn this.triggerFileDialog "twitter")}}>+ Add image</button>
|
||||
<button class="gh-social-twitter-preview-img-add" type="button" {{on "click" (fn this.triggerFileDialog "twitter")}}>+ Add image</button>
|
||||
{{/if}}
|
||||
|
||||
<GhUploader
|
||||
|
@ -176,7 +176,7 @@
|
||||
<div class="gh-expandable-header">
|
||||
<div>
|
||||
<h4 class="gh-expandable-title">Mailgun configuration</h4>
|
||||
<p class="gh-expandable-description">The Mailgun API is used for bulk email newsletter delivery. <a href="https://ghost.org/docs/faq/mailgun-newsletters/" target="_blank" rel="noopener">Why is this required?</a></p>
|
||||
<p class="gh-expandable-description">The Mailgun API is used for bulk email newsletter delivery. <a href="https://ghost.org/docs/faq/mailgun-newsletters/" target="_blank" rel="noopener noreferrer">Why is this required?</a></p>
|
||||
</div>
|
||||
<button type="button" class="gh-btn" {{action (toggle "membersEmailOpen" this)}} data-test-toggle-membersemail>
|
||||
<span>{{if this.membersEmailOpen "Close" "Expand"}}</span>
|
||||
@ -214,7 +214,7 @@
|
||||
</GhFormGroup>
|
||||
</div>
|
||||
<p>Find your Mailgun region and domain
|
||||
<a href="https://app.mailgun.com/app/sending/domains" target="_blank" class="fw5">here</a>
|
||||
<a href="https://app.mailgun.com/app/sending/domains" target="_blank" class="fw5" rel="noopener noreferrer">here</a>
|
||||
</p>
|
||||
</GhFormGroup>
|
||||
<GhFormGroup>
|
||||
@ -227,7 +227,7 @@
|
||||
data-test-mailgun-api-key-input={{true}}
|
||||
/>
|
||||
<p>Find your Mailgun API keys
|
||||
<a href="https://app.mailgun.com/app/account/security/api_keys" target="_blank" class="fw5">here</a>
|
||||
<a href="https://app.mailgun.com/app/account/security/api_keys" target="_blank" class="fw5" rel="noopener noreferrer">here</a>
|
||||
</p>
|
||||
</GhFormGroup>
|
||||
</div>
|
||||
|
@ -1,12 +1,12 @@
|
||||
{{#if this.product.active}}
|
||||
{{#if (not this.product.isNew)}}
|
||||
{{#unless this.product.isNew}}
|
||||
<button
|
||||
type="button"
|
||||
{{on "click" this.handleArchiveTier}}
|
||||
>
|
||||
<span>Archive</span>
|
||||
</button>
|
||||
{{/if}}
|
||||
{{/unless}}
|
||||
{{else}}
|
||||
<button
|
||||
type="button"
|
||||
|
@ -8,7 +8,7 @@
|
||||
<GhNavMenu />
|
||||
{{/if}}
|
||||
|
||||
<main class="gh-main {{this.ui.mainClass}}" role="main">
|
||||
<main class="gh-main {{this.ui.mainClass}}">
|
||||
{{outlet}}
|
||||
|
||||
{{#if this.showBilling}}
|
||||
@ -21,9 +21,9 @@
|
||||
|
||||
<GhContentCover />
|
||||
|
||||
{{#if (not this.session.user.isContributor)}}
|
||||
{{#unless this.session.user.isContributor}}
|
||||
<GhMobileNavBar />
|
||||
{{/if}}
|
||||
{{/unless}}
|
||||
</div>
|
||||
|
||||
{{#if this.settings.accentColor}}
|
||||
|
@ -31,7 +31,7 @@
|
||||
@name="getting-started-dismiss"
|
||||
@classNames="gh-dashboard-dismiss-dropdown dropdown-menu dropdown-triangle-top-right"
|
||||
>
|
||||
<button class="gh-btn" {{on "click" (toggle-feature "dashboardHideGettingStarted")}}><span>Dismiss</span></button>
|
||||
<button class="gh-btn" type="button" {{on "click" (toggle-feature "dashboardHideGettingStarted")}}><span>Dismiss</span></button>
|
||||
</GhDropdown>
|
||||
</div>
|
||||
</div>
|
||||
@ -52,7 +52,7 @@
|
||||
</span>
|
||||
</GhDropdownButton>
|
||||
<GhDropdown @name="launch-wizard-dismiss" @classNames="gh-dashboard-dismiss-dropdown dropdown-menu dropdown-triangle-top-right">
|
||||
<button class="gh-btn" {{action "dismissLaunchBanner"}}><span>Dismiss</span></button>
|
||||
<button class="gh-btn" type="button" {{action "dismissLaunchBanner"}}><span>Dismiss</span></button>
|
||||
</GhDropdown>
|
||||
</div>
|
||||
</div>
|
||||
@ -168,7 +168,7 @@
|
||||
|
||||
|
||||
<section class="gh-dashboard-area mixed">
|
||||
{{#if (not this.settings.editorIsLaunchComplete)}}
|
||||
{{#unless this.settings.editorIsLaunchComplete}}
|
||||
<div class="gh-dashboard-container start-contents">
|
||||
<div class="gh-dashboard-box blogpost">
|
||||
<h2>Start creating content</h2>
|
||||
@ -190,7 +190,7 @@
|
||||
</LinkTo>
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{/unless}}
|
||||
|
||||
<div class="gh-dashboard-container col-2">
|
||||
<div class="gh-dashboard-box">
|
||||
@ -209,7 +209,7 @@
|
||||
<p>Our product knowledgebase is packed full of guides, tutorials, answers to frequently asked questions, tips for dealing with common errors, and much more. </p>
|
||||
</div>
|
||||
<div class="footer">
|
||||
<a class="gh-btn gh-btn-outline mt2" href="https://ghost.org/help/" target="_blank" rel="noopener"><span>Visit the help center →</span></a>
|
||||
<a class="gh-btn gh-btn-outline mt2" href="https://ghost.org/help/" target="_blank" rel="noopener noreferrer"><span>Visit the help center →</span></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -226,7 +226,7 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a class="gh-dashboard-container" href="https://careers.ghost.org?utm_source=dashboard" target="_blank" rel="noopener">
|
||||
<a class="gh-dashboard-container" href="https://careers.ghost.org?utm_source=dashboard" target="_blank" rel="noopener noreferrer">
|
||||
<div class="gh-dashboard-box grey gh-dashboard-careers">
|
||||
<div class="summary">
|
||||
<h2>We're hiring! Join the team that makes Ghost.</h2>
|
||||
|
@ -8,13 +8,13 @@
|
||||
<section class="view-container gh-ds">
|
||||
<h2 class="">Buttons</h2>
|
||||
<ul class="nostyle">
|
||||
<li><button class="gh-btn gh-btn-primary"><span>Primary button</span></button></li>
|
||||
<li><button class="gh-btn"><span>Regular button</span></button></li>
|
||||
<li><button class="gh-btn gh-btn-blue"><span>Blue button</span></button></li>
|
||||
<li><button class="gh-btn gh-btn-green"><span>Green button</span></button></li>
|
||||
<li><button class="gh-btn gh-btn-red"><span>Red button</span></button></li>
|
||||
<li><button class="gh-btn gh-btn-outline"><span>Outline button</span></button></li>
|
||||
<li><button class="gh-btn gh-btn-primary gh-btn-large"><span>Large button</span></button></li>
|
||||
<li><button class="gh-btn gh-btn-primary" type="button"><span>Primary button</span></button></li>
|
||||
<li><button class="gh-btn" type="button"><span>Regular button</span></button></li>
|
||||
<li><button class="gh-btn gh-btn-blue" type="button"><span>Blue button</span></button></li>
|
||||
<li><button class="gh-btn gh-btn-green" type="button"><span>Green button</span></button></li>
|
||||
<li><button class="gh-btn gh-btn-red" type="button"><span>Red button</span></button></li>
|
||||
<li><button class="gh-btn gh-btn-outline" type="button"><span>Outline button</span></button></li>
|
||||
<li><button class="gh-btn gh-btn-primary gh-btn-large" type="button"><span>Large button</span></button></li>
|
||||
</ul>
|
||||
|
||||
<h2 class="">Lists</h2>
|
||||
|
@ -9,7 +9,7 @@
|
||||
<div class="flex items-center pe-auto">
|
||||
{{#if this.ui.isFullScreen}}
|
||||
<div class="ml3 mobile flex items-center">
|
||||
<LinkTo @route={{pluralize this.post.displayName }} @classNames="gh-editor-back-button" data-test-link={{pluralize this.post.displayName}}>
|
||||
<LinkTo @route={{pluralize this.post.displayName }} class="gh-editor-back-button" data-test-link={{pluralize this.post.displayName}}>
|
||||
<span>
|
||||
{{svg-jar "arrow-left"}}
|
||||
{{capitalize (pluralize this.post.displayName)}}
|
||||
@ -99,7 +99,7 @@
|
||||
<div class="gh-editor-wordcount">
|
||||
{{gh-pluralize this.wordCount.wordCount "word"}}
|
||||
</div>
|
||||
<a href="https://ghost.org/help/using-the-editor/" class="flex" target="_blank">{{svg-jar "help"}}</a>
|
||||
<a href="https://ghost.org/help/using-the-editor/" class="flex" target="_blank" rel="noopener noreferrer">{{svg-jar "help"}}</a>
|
||||
</div>
|
||||
|
||||
</GhEditor>
|
||||
|
@ -14,8 +14,7 @@
|
||||
{{#if this.session.user.isAdmin}}
|
||||
{{#unless this.member.isNew}}
|
||||
<button
|
||||
class="gh-btn gh-btn-white gh-btn-icon mr2"
|
||||
{{on "click" this.toggleImpersonateMemberModal}}>
|
||||
class="gh-btn gh-btn-white gh-btn-icon mr2" type="button" {{on "click" this.toggleImpersonateMemberModal}}>
|
||||
<span>Impersonate</span>
|
||||
</button>
|
||||
{{/unless}}
|
||||
|
@ -47,7 +47,7 @@
|
||||
</li>
|
||||
<li class="{{if this.members.length "" "disabled"}}">
|
||||
{{#if this.members.length}}
|
||||
<button class="mr2" {{on "click" this.exportData}}>
|
||||
<button class="mr2" type="button" {{on "click" this.exportData}}>
|
||||
{{#if this.showingAll}}
|
||||
<span>Export all members</span>
|
||||
{{else}}
|
||||
@ -55,7 +55,7 @@
|
||||
{{/if}}
|
||||
</button>
|
||||
{{else}}
|
||||
<button class="mr2" disabled="true">
|
||||
<button class="mr2" disabled="true" type="button">
|
||||
<span>Export selected members (0)</span>
|
||||
</button>
|
||||
{{/if}}
|
||||
@ -63,23 +63,23 @@
|
||||
{{#if (and this.members.length this.isFiltered)}}
|
||||
<li class="divider"></li>
|
||||
<li>
|
||||
<button class="mr2" {{on "click" this.toggleAddMembersLabelModal}} data-test-button="add-label-selected">
|
||||
<button class="mr2" data-test-button="add-label-selected" type="button" {{on "click" this.toggleAddMembersLabelModal}}>
|
||||
<span>Add label for selected members ({{this.members.length}})</span>
|
||||
</button>
|
||||
</li>
|
||||
<li>
|
||||
<button class="mr2" {{on "click" this.toggleRemoveMembersLabelModal}} data-test-button="remove-label-selected">
|
||||
<button class="mr2" data-test-button="remove-label-selected" type="button" {{on "click" this.toggleRemoveMembersLabelModal}}>
|
||||
<span>Remove label from selected members ({{this.members.length}})</span>
|
||||
</button>
|
||||
</li>
|
||||
<li>
|
||||
<button class="mr2" {{on "click" this.toggleUnsubscribeMembersModal}} data-test-button="remove-label-selected">
|
||||
<button class="mr2" data-test-button="remove-label-selected" type="button" {{on "click" this.toggleUnsubscribeMembersModal}}>
|
||||
<span>Unsubscribe selected members ({{this.members.length}})</span>
|
||||
</button>
|
||||
</li>
|
||||
<li class="divider"></li>
|
||||
<li>
|
||||
<button class="mr2" {{on "click" this.toggleDeleteMembersModal}} data-test-button="delete-selected">
|
||||
<button class="mr2" data-test-button="delete-selected" type="button" {{on "click" this.toggleDeleteMembersModal}}>
|
||||
<span class="red">Delete selected members ({{this.members.length}})</span>
|
||||
</button>
|
||||
</li>
|
||||
|
@ -246,7 +246,7 @@
|
||||
<div class="gh-main-section">
|
||||
<div class="gh-main-section-block gh-offer-archive-container">
|
||||
{{#if (eq this.offer.status "active")}}
|
||||
{{#if (not this.offer.isNew)}}
|
||||
{{#unless this.offer.isNew}}
|
||||
<button
|
||||
type="button"
|
||||
class="gh-btn gh-btn-black gh-btn-icon"
|
||||
@ -257,7 +257,7 @@
|
||||
<p>
|
||||
<span>Archiving an offer ensures it is no longer available for use. Don’t worry, existing members remain unchanged and the offer can be reactivated anytime.</span>
|
||||
</p>
|
||||
{{/if}}
|
||||
{{/unless}}
|
||||
{{else}}
|
||||
<button
|
||||
type="button"
|
||||
|
@ -121,7 +121,7 @@
|
||||
<h2 class="gh-main-section-header small bn">Get the most out of offers</h2>
|
||||
<div class="gh-main-section-block">
|
||||
<div class="gh-main-section-content grey">
|
||||
<a href="https://ghost.org/help/offers" target="_blank" class="gh-offers-help-card">
|
||||
<a href="https://ghost.org/help/offers" target="_blank" class="gh-offers-help-card" rel="noopener noreferrer">
|
||||
<div class="gh-offers-help-content">
|
||||
<div class="thumbnail" style="background-image: url(assets/img/marketing/offers-1.jpg);"></div>
|
||||
<div class="text">
|
||||
@ -132,7 +132,7 @@
|
||||
<div class="gh-btn"><span>Read more</span></div>
|
||||
</a>
|
||||
|
||||
<a href="https://ghost.org/resources/proven-discount-strategies" target="_blank" class="gh-offers-help-card">
|
||||
<a href="https://ghost.org/resources/proven-discount-strategies" target="_blank" class="gh-offers-help-card" rel="noopener noreferrer">
|
||||
<div class="gh-offers-help-content">
|
||||
<div class="thumbnail" style="background-image: url(assets/img/marketing/offers-3.jpg);"></div>
|
||||
<div class="text">
|
||||
@ -143,7 +143,7 @@
|
||||
<div class="gh-btn"><span>Read more</span></div>
|
||||
</a>
|
||||
|
||||
<a href="https://ghost.org/resources/conversion-vs-retention-offers" target="_blank" class="gh-offers-help-card">
|
||||
<a href="https://ghost.org/resources/conversion-vs-retention-offers" target="_blank" class="gh-offers-help-card" rel="noopener noreferrer">
|
||||
<div class="gh-offers-help-content">
|
||||
<div class="thumbnail" style="background-image: url(assets/img/marketing/offers-2.jpg)"></div>
|
||||
<div class="text">
|
||||
|
@ -97,7 +97,7 @@
|
||||
data-test-input="lang"
|
||||
/>
|
||||
<GhErrorMessage @errors={{this.settings.errors}} @property="lang" />
|
||||
<p>Default: English (<strong>en</strong>); you can add translation files to your theme for <a href="https://ghost.org/docs/themes/helpers/translate/" target="_blank" rel="noopener">any language</a></p>
|
||||
<p>Default: English (<strong>en</strong>); you can add translation files to your theme for <a href="https://ghost.org/docs/themes/helpers/translate/" target="_blank" rel="noopener noreferrer">any language</a></p>
|
||||
</GhFormGroup>
|
||||
</div>
|
||||
{{/liquid-if}}
|
||||
@ -422,7 +422,7 @@
|
||||
<div class="gh-setting-content-extended pt4 pb4">
|
||||
<span class="avoid-break-out">
|
||||
A private RSS feed is available at
|
||||
<a href="{{this.privateRSSUrl}}" target="_blank" rel="noopener">{{this.privateRSSUrl}}</a>
|
||||
<a href="{{this.privateRSSUrl}}" target="_blank" rel="noopener noreferrer">{{this.privateRSSUrl}}</a>
|
||||
</span>
|
||||
<GhFormGroup @class="no-margin pt2" @errors={{this.settings.errors}} @hasValidated={{this.settings.hasValidated}} @property="password">
|
||||
<GhTextInput
|
||||
|
@ -199,7 +199,7 @@
|
||||
<LinkTo @route="settings.integration.webhooks.edit" @models={{array this.integration webhook}} data-test-link="edit-webhook">
|
||||
{{svg-jar "pen" class="w6 h6 fill-midgrey pa1 mr1"}}
|
||||
</LinkTo>
|
||||
<button {{action "confirmWebhookDeletion" webhook}} data-test-button="delete-webhook">
|
||||
<button data-test-button="delete-webhook" type="button" {{action "confirmWebhookDeletion" webhook}}>
|
||||
{{svg-jar "trash" class="w6 fill-red pa1"}}
|
||||
</button>
|
||||
</div>
|
||||
@ -212,7 +212,7 @@
|
||||
<p class="ma0 pa0 tc midgrey lh-title mt2">
|
||||
No webhooks configured
|
||||
</p>
|
||||
<LinkTo @route="settings.integration.webhooks.new" @model={{this.integration}} @classNames="flex items-center" data-test-link="add-webhook">
|
||||
<LinkTo @route="settings.integration.webhooks.new" @model={{this.integration}} class="flex items-center" data-test-link="add-webhook">
|
||||
<div class="flex items-center pa2 pt1">
|
||||
{{svg-jar "add" class="w3 h3 fill-green-d1"}}
|
||||
<span class="ml1 green">Add webhook</span>
|
||||
@ -227,7 +227,7 @@
|
||||
<tfoot>
|
||||
<tr class="gh-list-row new-webhook-cell">
|
||||
<td colspan="5" class="gh-list-data">
|
||||
<LinkTo @route="settings.integration.webhooks.new" @model={{this.integration}} @classNames="flex items-center" data-test-link="add-webhook">
|
||||
<LinkTo @route="settings.integration.webhooks.new" @model={{this.integration}} class="flex items-center" data-test-link="add-webhook">
|
||||
<div class="pt1 pb1 f7">
|
||||
{{svg-jar "add" class="w3 h3 fill-green-d1"}}
|
||||
<span class="ml1 green">Add webhook</span>
|
||||
@ -243,7 +243,7 @@
|
||||
|
||||
<section class="gh-main-section">
|
||||
<div class="gh-main-section-block">
|
||||
<button class="gh-btn gh-btn-red gh-btn-icon" {{action "confirmIntegrationDeletion"}}>
|
||||
<button class="gh-btn gh-btn-red gh-btn-icon" type="button" {{action "confirmIntegrationDeletion"}}>
|
||||
<span> Delete integration </span>
|
||||
</button>
|
||||
</div>
|
||||
|
@ -40,7 +40,7 @@
|
||||
<div class="gh-setting-first {{unless this.settings.amp "gh-setting-last"}}">
|
||||
<div class="gh-setting-content">
|
||||
<div class="gh-setting-title">Enable AMP</div>
|
||||
<div class="gh-setting-desc mb0">Enable <a href="https://ampproject.org" target="_blank">Google Accelerated Mobile Pages</a> for your posts</div>
|
||||
<div class="gh-setting-desc mb0">Enable <a href="https://ampproject.org" target="_blank" rel="noopener noreferrer">Google Accelerated Mobile Pages</a> for your posts</div>
|
||||
</div>
|
||||
<div class="gh-setting-action">
|
||||
<div class="for-checkbox">
|
||||
|
@ -40,7 +40,7 @@
|
||||
<div class="gh-setting-first {{unless this.settings.firstpromoter "gh-setting-last"}}">
|
||||
<div class="gh-setting-content">
|
||||
<div class="gh-setting-title">Enable FirstPromoter</div>
|
||||
<div class="gh-setting-desc mb0">Enable <a href="https://firstpromoter.com/?fpr=ghost&fp_sid=admin" target="_blank">FirstPromoter</a> for tracking referrals</div>
|
||||
<div class="gh-setting-desc mb0">Enable <a href="https://firstpromoter.com/?fpr=ghost&fp_sid=admin" target="_blank" rel="noopener noreferrer">FirstPromoter</a> for tracking referrals</div>
|
||||
</div>
|
||||
<div class="gh-setting-action">
|
||||
<div class="for-checkbox">
|
||||
|
@ -57,7 +57,7 @@
|
||||
data-test-slack-url-input={{true}}
|
||||
/>
|
||||
{{#unless this.slackSettings.errors.url}}
|
||||
<p>Set up a new incoming webhook <a href="https://my.slack.com/apps/new/A0F7XDUAZ-incoming-webhooks" target="_blank">here</a>, and grab the URL.</p>
|
||||
<p>Set up a new incoming webhook <a href="https://my.slack.com/apps/new/A0F7XDUAZ-incoming-webhooks" target="_blank" rel="noopener noreferrer">here</a>, and grab the URL.</p>
|
||||
{{else}}
|
||||
<GhErrorMessage @errors={{this.slackSettings.errors}} @property="url" data-test-error="slack-url" />
|
||||
{{/unless}}
|
||||
|
@ -39,7 +39,7 @@
|
||||
<div class="gh-setting-first gh-setting-last" id="unsplash-toggle">
|
||||
<div class="gh-setting-content">
|
||||
<div class="gh-setting-title">Enable Unsplash</div>
|
||||
<div class="gh-setting-desc mb0">Enable <a href="https://unsplash.com" target="_blank">Unsplash</a> image integration for your posts</div>
|
||||
<div class="gh-setting-desc mb0">Enable <a href="https://unsplash.com" target="_blank" rel="noopener noreferrer">Unsplash</a> image integration for your posts</div>
|
||||
</div>
|
||||
<div class="gh-setting-action">
|
||||
<div class="form-group right gh-setting-unsplash-checkbox">
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user