Skip to content
This repository has been archived by the owner on Nov 28, 2022. It is now read-only.

Commit

Permalink
Refined disabled states and copy
Browse files Browse the repository at this point in the history
  • Loading branch information
peterzimon committed Nov 7, 2019
1 parent 6205e1c commit 5af94d7
Show file tree
Hide file tree
Showing 5 changed files with 48 additions and 12 deletions.
6 changes: 5 additions & 1 deletion app/components/gh-post-settings-menu.js
Expand Up @@ -559,6 +559,10 @@ export default Component.extend(SettingsMenuMixin, {
return true;
},

mailgunError: computed('settings.memberSubscriptionSettings', function () {
return !this.isMailgunConfigured();
}),

sendTestEmail: task(function* () {
try {
const resourceId = this.post.id;
Expand All @@ -568,7 +572,7 @@ export default Component.extend(SettingsMenuMixin, {
return false;
}
if (!this.isMailgunConfigured()) {
this.set('sendTestEmailError', 'Please configure mailgun in settings');
this.set('sendTestEmailError', 'Please configure Mailgun in Labs → Members');
return false;
}
this.set('sendTestEmailError', '');
Expand Down
20 changes: 14 additions & 6 deletions app/components/gh-publishmenu-draft.js
Expand Up @@ -16,16 +16,24 @@ export default Component.extend({

'data-test-publishmenu-draft': true,

disableEmailOption: computed('memberCount', 'settings.membersSubscriptionSettings', function () {
if (!this.feature.members) {
return true;
}
mailgunError: computed('settings.memberSubscriptionSettings', function() {
return !this.isMailgunConfigured();
}),

isMailgunConfigured: function() {
let subSettingsValue = this.get('settings.membersSubscriptionSettings');
let subscriptionSettings = subSettingsValue ? JSON.parse(subSettingsValue) : {};
if (Object.keys(subscriptionSettings).includes('mailgunApiKey')) {
return !subscriptionSettings.mailgunApiKey || !subscriptionSettings.mailgunDomain || this.membersCount === 0;
return subscriptionSettings.mailgunApiKey && subscriptionSettings.mailgunDomain;
}
return false;
},

disableEmailOption: computed('memberCount', 'settings.membersSubscriptionSettings', function () {
if (!this.feature.members) {
return true;
}
return this.membersCount === 0;
return !this.isMailgunConfigured() || this.membersCount === 0;
}),

didInsertElement() {
Expand Down
21 changes: 20 additions & 1 deletion app/styles/components/settings-menu.css
Expand Up @@ -311,9 +311,28 @@

/* Email
/* ---------------------------------------------------------- */
.gh-preview-email-button span {
.settings-menu-email-button span {
padding: 4px 0;
line-height: 1em;
height: unset;
margin-bottom: 4px;
}

.settings-menu-mailgun-warning {
border-radius: 5px;
padding: 8px 12px;
background: var(--yellow);
color: #fff;
font-size: 13px;
font-weight: 500;
}

.settings-menu-mailgun-warning a {
text-decoration: underline;
color: #fff;
}

.settings-menu-email .disabled button,
.settings-menu-email .disabled input {
opacity: 0.5;
}
11 changes: 8 additions & 3 deletions app/templates/components/gh-post-settings-menu.hbs
Expand Up @@ -321,7 +321,10 @@
<div style="width:23px;"></div>
</div>

<div class="settings-menu-content">
<div class="settings-menu-content settings-menu-email">
{{#if mailgunError}}
<p class="settings-menu-mailgun-warning">You need to configure Mailgun in {{#link-to "settings.labs" data-test-nav="labs"}}Labs → Members settings{{/link-to}} to enable sending posts in email.</p>
{{/if}}
<form {{action "discardEnter" on="submit"}}>
{{#gh-form-group errors=post.errors hasValidated=post.hasValidated property="emailSubject"}}
<label for="og-title">Subject</label>
Expand All @@ -341,15 +344,15 @@
<div class="form-group">
<div class="flex">
<label class="nowrap flex-auto">Test email</label>
<button type="button" class="gh-btn gh-btn-link gh-preview-email-button" onclick={{action "toggleEmailPreview"}}
<button type="button" class="gh-btn gh-btn-link settings-menu-email-button" onclick={{action "toggleEmailPreview"}}
data-test-button="toggle-email-preview">
<span class="blue">
Preview in browser
</span>
</button>
</div>

<div>
<div class="{{if mailgunError "disabled"}}">
{{gh-text-input
class="post-setting-email-test"
id="email-test"
Expand All @@ -358,6 +361,7 @@
value=(readonly emailTestScratch)
input=(action (mut emailTestScratch) value="target.value")
stopEnterKeyDownPropagation=true
disabled=mailgunError
data-test-field="email-test"}}
{{#if sendTestEmailError}}
<div class="error"><p class="response">{{sendTestEmailError}}</p></div>
Expand All @@ -367,6 +371,7 @@
successText="Email sent"
runningText="Sending..."
class="gh-btn w-100 mt2 gh-btn-icon"
disabled=mailgunError
data-test-send-test-mail=true
}}
</div>
Expand Down
2 changes: 1 addition & 1 deletion app/templates/components/gh-publishmenu-draft.hbs
Expand Up @@ -24,7 +24,7 @@
<div class="gh-publishmenu-radio-desc">Set automatic future publish date</div>
</div>
</div>
{{#if (and this.feature.labs.members (eq this.post.displayName "post"))}}
{{#if (and this.feature.labs.members (eq this.post.displayName "post") (not mailgunError))}}
<div class="gh-publishmenu-radio">
{{#if this.backgroundLoader.isRunning}}
<div class="gh-loading-spinner" style="zoom: 50%"></div>
Expand Down

0 comments on commit 5af94d7

Please sign in to comment.