2017-08-02 12:32:51 +03:00
|
|
|
|
<div class="settings-menu-container">
|
|
|
|
|
<div id="entry-controls">
|
|
|
|
|
<div class="{{if isViewingSubview 'settings-menu-pane-out-left' 'settings-menu-pane-in'}} settings-menu settings-menu-pane">
|
|
|
|
|
<div class="settings-menu-header">
|
2019-02-22 06:17:33 +03:00
|
|
|
|
<h4>{{capitalize post.displayName}} Settings</h4>
|
2017-08-14 15:30:00 +03:00
|
|
|
|
<button class="close settings-menu-header-action" {{action "closeMenus" target=ui}} data-test-close-settings-menu>
|
2018-03-19 12:57:31 +03:00
|
|
|
|
{{svg-jar "close"}}<span class="hidden">Close</span>
|
2017-08-02 12:32:51 +03:00
|
|
|
|
</button>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="settings-menu-content">
|
|
|
|
|
{{gh-image-uploader-with-preview
|
2018-01-11 01:57:43 +03:00
|
|
|
|
image=post.featureImage
|
2019-04-06 11:01:49 +03:00
|
|
|
|
text=(concat "Upload " post.displayName " image")
|
2017-08-02 10:05:59 +03:00
|
|
|
|
allowUnsplash=true
|
2017-08-02 12:32:51 +03:00
|
|
|
|
update=(action "setCoverImage")
|
|
|
|
|
remove=(action "clearCoverImage")
|
|
|
|
|
}}
|
|
|
|
|
<form>
|
|
|
|
|
<div class="form-group">
|
2019-02-22 06:17:33 +03:00
|
|
|
|
<label for="url">{{capitalize post.displayName}} URL</label>
|
2017-08-02 12:32:51 +03:00
|
|
|
|
{{!-- new posts don't have a preview link --}}
|
2018-01-11 01:57:43 +03:00
|
|
|
|
{{#unless post.isNew}}
|
|
|
|
|
{{#if post.isPublished}}
|
2018-10-16 18:54:15 +03:00
|
|
|
|
<a class="post-view-link" target="_blank" href="{{post.url}}">
|
2019-02-22 06:17:33 +03:00
|
|
|
|
View {{post.displayName}} {{svg-jar "external"}}
|
2017-08-02 12:32:51 +03:00
|
|
|
|
</a>
|
|
|
|
|
{{else}}
|
2018-01-11 01:57:43 +03:00
|
|
|
|
<a class="post-view-link" target="_blank" href="{{post.previewUrl}}">
|
2018-03-19 12:57:31 +03:00
|
|
|
|
Preview {{svg-jar "external"}}
|
2017-08-02 12:32:51 +03:00
|
|
|
|
</a>
|
|
|
|
|
{{/if}}
|
|
|
|
|
{{/unless}}
|
|
|
|
|
|
|
|
|
|
<div class="gh-input-icon gh-icon-link">
|
2018-03-19 12:57:31 +03:00
|
|
|
|
{{svg-jar "link"}}
|
2018-02-28 14:44:03 +03:00
|
|
|
|
{{gh-text-input
|
2017-08-02 12:32:51 +03:00
|
|
|
|
class="post-setting-slug"
|
|
|
|
|
id="url"
|
|
|
|
|
name="post-setting-slug"
|
2018-02-28 14:44:03 +03:00
|
|
|
|
value=(readonly slugValue)
|
|
|
|
|
input=(action (mut slugValue) value="target.value")
|
|
|
|
|
focus-out=(action "updateSlug" slugValue)
|
|
|
|
|
stopEnterKeyDownPropagation=true}}
|
2017-08-02 12:32:51 +03:00
|
|
|
|
</div>
|
|
|
|
|
{{gh-url-preview slug=slugValue tagName="p" classNames="description"}}
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="form-group">
|
2018-01-11 01:57:43 +03:00
|
|
|
|
{{#if (or post.isDraft post.isPublished post.pastScheduledTime)}}
|
2017-08-02 12:32:51 +03:00
|
|
|
|
<label>Publish Date</label>
|
2017-07-22 02:11:24 +03:00
|
|
|
|
{{else}}
|
2017-08-02 12:32:51 +03:00
|
|
|
|
<label>Scheduled Date</label>
|
|
|
|
|
<p>Use the publish menu to re-schedule</p>
|
2017-07-22 02:11:24 +03:00
|
|
|
|
{{/if}}
|
2017-08-02 12:32:51 +03:00
|
|
|
|
{{gh-date-time-picker
|
2018-01-11 01:57:43 +03:00
|
|
|
|
date=post.publishedAtBlogDate
|
|
|
|
|
time=post.publishedAtBlogTime
|
2017-08-02 12:32:51 +03:00
|
|
|
|
setDate=(action "setPublishedAtBlogDate")
|
|
|
|
|
setTime=(action "setPublishedAtBlogTime")
|
2018-01-11 01:57:43 +03:00
|
|
|
|
errors=post.errors
|
2017-08-02 12:32:51 +03:00
|
|
|
|
dateErrorProperty="publishedAtBlogDate"
|
|
|
|
|
timeErrorProperty="publishedAtBlogTime"
|
|
|
|
|
maxDate='now'
|
2018-01-11 01:57:43 +03:00
|
|
|
|
disabled=post.isScheduled
|
2017-08-02 12:32:51 +03:00
|
|
|
|
static=true
|
|
|
|
|
}}
|
2017-04-14 19:22:14 +03:00
|
|
|
|
</div>
|
2014-08-16 01:18:36 +04:00
|
|
|
|
|
2018-02-07 12:42:46 +03:00
|
|
|
|
{{#unless session.user.isContributor}}
|
2017-08-02 12:32:51 +03:00
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label for="tag-input">Tags</label>
|
2018-01-11 01:57:43 +03:00
|
|
|
|
{{gh-psm-tags-input post=post triggerId="tag-input"}}
|
2017-08-02 12:32:51 +03:00
|
|
|
|
</div>
|
2018-02-07 12:42:46 +03:00
|
|
|
|
{{/unless}}
|
2014-09-04 17:56:07 +04:00
|
|
|
|
|
2018-01-11 01:57:43 +03:00
|
|
|
|
{{#gh-form-group errors=post.errors hasValidated=post.hasValidated property="customExcerpt"}}
|
2017-08-02 12:32:51 +03:00
|
|
|
|
<label for="custom-excerpt">Excerpt</label>
|
2018-02-28 14:44:03 +03:00
|
|
|
|
{{gh-textarea
|
2017-08-02 12:32:51 +03:00
|
|
|
|
class="post-setting-custom-excerpt"
|
|
|
|
|
id="custom-excerpt"
|
|
|
|
|
name="post-setting-custom-excerpt"
|
2018-02-28 14:44:03 +03:00
|
|
|
|
value=(readonly customExcerptScratch)
|
|
|
|
|
input=(action (mut customExcerptScratch) value="target.value")
|
|
|
|
|
focus-out=(action "setCustomExcerpt" customExcerptScratch)
|
2017-08-02 12:32:51 +03:00
|
|
|
|
stopEnterKeyDownPropagation="true"
|
|
|
|
|
data-test-field="custom-excerpt"}}
|
2018-01-11 01:57:43 +03:00
|
|
|
|
{{gh-error-message errors=post.errors property="customExcerpt" data-test-error="custom-excerpt"}}
|
2017-08-02 12:32:51 +03:00
|
|
|
|
{{/gh-form-group}}
|
2015-08-10 16:22:37 +03:00
|
|
|
|
|
2018-02-07 12:42:46 +03:00
|
|
|
|
{{#unless session.user.isAuthorOrContributor}}
|
2018-03-13 14:17:29 +03:00
|
|
|
|
{{#gh-form-group class="for-select" errors=post.errors hasValidated=post.hasValidated property="authors" data-test-input="authors"}}
|
|
|
|
|
<label for="author-list">Authors</label>
|
|
|
|
|
{{gh-psm-authors-input selectedAuthors=post.authors updateAuthors=(action "changeAuthors") triggerId="author-list"}}
|
|
|
|
|
{{gh-error-message errors=post.errors property="authors" data-test-error="authors"}}
|
|
|
|
|
{{/gh-form-group}}
|
2017-08-02 12:32:51 +03:00
|
|
|
|
{{/unless}}
|
2014-10-13 19:23:06 +04:00
|
|
|
|
|
2017-08-02 12:32:51 +03:00
|
|
|
|
<ul class="nav-list nav-list-block">
|
|
|
|
|
<li class="nav-list-item" {{action "showSubview" "meta-data"}} data-test-button="meta-data">
|
|
|
|
|
<button type="button">
|
|
|
|
|
<b>Meta Data</b>
|
2017-08-03 14:45:14 +03:00
|
|
|
|
<span>Extra content for search engines</span>
|
|
|
|
|
</button>
|
2018-03-19 12:57:31 +03:00
|
|
|
|
{{svg-jar "arrow-right"}}
|
2017-08-03 14:45:14 +03:00
|
|
|
|
</li>
|
|
|
|
|
<li class="nav-list-item" {{action "showSubview" "twitter-data"}} data-test-button="twitter-data">
|
|
|
|
|
<button type="button">
|
|
|
|
|
<b>Twitter Card</b>
|
|
|
|
|
<span>Customise structured data for Twitter</span>
|
|
|
|
|
</button>
|
2018-03-19 12:57:31 +03:00
|
|
|
|
{{svg-jar "arrow-right"}}
|
2017-08-03 14:45:14 +03:00
|
|
|
|
</li>
|
|
|
|
|
<li class="nav-list-item" {{action "showSubview" "facebook-data"}} data-test-button="facebook-data">
|
|
|
|
|
<button type="button">
|
|
|
|
|
<b>Facebook Card</b>
|
|
|
|
|
<span>Customise Open Graph data</span>
|
2017-08-02 12:32:51 +03:00
|
|
|
|
</button>
|
2018-03-19 12:57:31 +03:00
|
|
|
|
{{svg-jar "arrow-right"}}
|
2017-08-02 12:32:51 +03:00
|
|
|
|
</li>
|
|
|
|
|
<li class="nav-list-item" {{action "showSubview" "codeinjection"}} data-test-button="codeinjection">
|
|
|
|
|
<button type="button">
|
|
|
|
|
<b>Code Injection</b>
|
2017-08-03 14:45:14 +03:00
|
|
|
|
<span>Add styles/scripts to the header & footer</span>
|
2017-08-02 12:32:51 +03:00
|
|
|
|
</button>
|
2018-03-19 12:57:31 +03:00
|
|
|
|
{{svg-jar "arrow-right"}}
|
2017-08-02 12:32:51 +03:00
|
|
|
|
</li>
|
|
|
|
|
</ul>
|
2014-09-04 17:56:07 +04:00
|
|
|
|
|
2017-08-02 12:32:51 +03:00
|
|
|
|
<div class="form-group for-checkbox">
|
|
|
|
|
<label class="checkbox" for="featured" {{action "toggleFeatured" bubbles="false"}}>
|
2018-02-28 14:44:03 +03:00
|
|
|
|
<input
|
|
|
|
|
type="checkbox"
|
|
|
|
|
checked={{post.featured}}
|
|
|
|
|
class="gh-input post-settings-featured"
|
|
|
|
|
onclick={{action (mut post.featured) value="target.checked"}}
|
2017-11-02 12:47:52 +03:00
|
|
|
|
data-test-checkbox="featured"
|
2018-02-28 14:44:03 +03:00
|
|
|
|
>
|
2017-08-02 12:32:51 +03:00
|
|
|
|
<span class="input-toggle-component"></span>
|
2019-02-22 06:17:33 +03:00
|
|
|
|
<p>Feature this {{post.displayName}}</p>
|
2017-08-02 12:32:51 +03:00
|
|
|
|
</label>
|
2014-09-04 17:56:07 +04:00
|
|
|
|
</div>
|
2017-08-02 12:32:51 +03:00
|
|
|
|
|
2017-10-10 15:26:19 +03:00
|
|
|
|
{{gh-psm-template-select
|
2018-01-11 01:57:43 +03:00
|
|
|
|
post=post
|
|
|
|
|
onTemplateSelect=(action (mut post.customTemplate))}}
|
2017-10-10 15:26:19 +03:00
|
|
|
|
|
2018-01-11 01:57:43 +03:00
|
|
|
|
{{#unless post.isNew}}
|
2019-03-07 12:13:31 +03:00
|
|
|
|
<button type="button" class="gh-btn gh-btn-link gh-btn-icon settings-menu-delete-button" {{action "deletePost"}}><span>{{svg-jar "trash"}} Delete {{capitalize post.displayName}}</span></button>
|
2017-08-02 12:32:51 +03:00
|
|
|
|
{{/unless}}
|
|
|
|
|
|
|
|
|
|
</form>
|
|
|
|
|
</div>{{! .settings-menu-content }}
|
|
|
|
|
</div>{{! .post-settings-menu }}
|
|
|
|
|
|
|
|
|
|
<div class="{{if isViewingSubview 'settings-menu-pane-in' 'settings-menu-pane-out-right'}} settings-menu settings-menu-pane">
|
|
|
|
|
<div class="active">
|
|
|
|
|
{{#if isViewingSubview}}
|
|
|
|
|
{{#if (eq subview "meta-data")}}
|
|
|
|
|
<div class="settings-menu-header subview">
|
2018-03-19 12:57:31 +03:00
|
|
|
|
<button {{action "closeSubview"}} class="back settings-menu-header-action" data-test-button="close-psm-subview">{{svg-jar "arrow-left"}}<span class="hidden">Back</span></button>
|
2017-08-02 12:32:51 +03:00
|
|
|
|
<h4>Meta Data</h4>
|
|
|
|
|
<div style="width:23px;"></div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="settings-menu-content">
|
|
|
|
|
<form {{action "discardEnter" on="submit"}}>
|
2018-01-11 01:57:43 +03:00
|
|
|
|
{{#gh-form-group errors=post.errors hasValidated=post.hasValidated property="metaTitle"}}
|
2017-08-02 12:32:51 +03:00
|
|
|
|
<label for="meta-title">Meta Title</label>
|
2018-02-28 14:44:03 +03:00
|
|
|
|
{{gh-text-input
|
2017-08-02 12:32:51 +03:00
|
|
|
|
class="post-setting-meta-title"
|
|
|
|
|
id="meta-title"
|
|
|
|
|
name="post-setting-meta-title"
|
2018-02-28 14:44:03 +03:00
|
|
|
|
value=(readonly metaTitleScratch)
|
|
|
|
|
input=(action (mut metaTitleScratch) value="target.value")
|
|
|
|
|
focus-out=(action "setMetaTitle" metaTitleScratch)
|
|
|
|
|
stopEnterKeyDownPropagation=true
|
2017-08-03 14:45:14 +03:00
|
|
|
|
data-test-field="meta-title"}}
|
2017-08-02 12:32:51 +03:00
|
|
|
|
<p>Recommended: <b>70</b> characters. You’ve used {{gh-count-down-characters metaTitleScratch 70}}</p>
|
2018-01-11 01:57:43 +03:00
|
|
|
|
{{gh-error-message errors=post.errors property="meta-title"}}
|
2017-08-02 12:32:51 +03:00
|
|
|
|
{{/gh-form-group}}
|
|
|
|
|
|
2018-01-11 01:57:43 +03:00
|
|
|
|
{{#gh-form-group errors=post.errors hasValidated=post.hasValidated property="metaDescription"}}
|
2017-08-02 12:32:51 +03:00
|
|
|
|
<label for="meta-description">Meta Description</label>
|
2018-02-28 14:44:03 +03:00
|
|
|
|
{{gh-textarea
|
2017-08-02 12:32:51 +03:00
|
|
|
|
class="post-setting-meta-description"
|
|
|
|
|
id="meta-description"
|
|
|
|
|
name="post-setting-meta-description"
|
2018-02-28 14:44:03 +03:00
|
|
|
|
value=(readonly metaDescriptionScratch)
|
|
|
|
|
input=(action (mut metaDescriptionScratch) value="target.value")
|
|
|
|
|
focus-out=(action "setMetaDescription" metaDescriptionScratch)
|
2017-08-02 12:32:51 +03:00
|
|
|
|
stopEnterKeyDownPropagation="true"
|
2017-08-03 14:45:14 +03:00
|
|
|
|
data-test-field="meta-description"}}
|
2017-08-02 12:32:51 +03:00
|
|
|
|
<p>Recommended: <b>156</b> characters. You’ve used {{gh-count-down-characters metaDescriptionScratch 156}}</p>
|
2018-01-11 01:57:43 +03:00
|
|
|
|
{{gh-error-message errors=post.errors property="meta-description"}}
|
2017-08-02 12:32:51 +03:00
|
|
|
|
{{/gh-form-group}}
|
|
|
|
|
|
2019-03-12 13:40:07 +03:00
|
|
|
|
{{#gh-form-group errors=post.errors hasValidated=post.hasValidated property="canonicalUrl"}}
|
|
|
|
|
<label for="canonicalUrl">Canonical URL</label>
|
|
|
|
|
{{gh-text-input
|
|
|
|
|
class="post-setting-canonicalUrl"
|
|
|
|
|
name="post-setting-canonicalUrl"
|
|
|
|
|
value=(readonly canonicalUrlScratch)
|
|
|
|
|
input=(action (mut canonicalUrlScratch) value="target.value")
|
|
|
|
|
focus-out=(action "setCanonicalUrl" canonicalUrlScratch)
|
|
|
|
|
stopEnterKeyDownPropagation="true"
|
|
|
|
|
data-test-field="canonicalUrl"}}
|
|
|
|
|
{{gh-error-message errors=post.errors property="canonicalUrl"}}
|
|
|
|
|
{{/gh-form-group}}
|
|
|
|
|
|
2017-08-02 12:32:51 +03:00
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label>Search Engine Result Preview</label>
|
|
|
|
|
<div class="seo-preview">
|
2017-08-03 14:45:14 +03:00
|
|
|
|
<div class="seo-preview-title">{{truncate seoTitle 70}}</div>
|
|
|
|
|
<div class="seo-preview-link">{{truncate seoURL 70}}</div>
|
|
|
|
|
<div class="seo-preview-description">{{truncate seoDescription 300}}</div>
|
2017-08-02 12:32:51 +03:00
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</form>
|
|
|
|
|
</div>
|
|
|
|
|
{{/if}}
|
|
|
|
|
|
2017-08-03 14:45:14 +03:00
|
|
|
|
{{#if (eq subview "twitter-data")}}
|
|
|
|
|
<div class="settings-menu-header subview">
|
2018-03-19 12:57:31 +03:00
|
|
|
|
<button {{action "closeSubview"}} class="back settings-menu-header-action" data-test-button="close-psm-subview">{{svg-jar "arrow-left"}}<span class="hidden">Back</span></button>
|
2017-08-03 14:45:14 +03:00
|
|
|
|
<h4>Twitter Card</h4>
|
|
|
|
|
<div style="width:23px;"></div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="settings-menu-content">
|
|
|
|
|
|
|
|
|
|
<form {{action "discardEnter" on="submit"}}>
|
|
|
|
|
{{gh-image-uploader-with-preview
|
2018-01-11 01:57:43 +03:00
|
|
|
|
image=post.twitterImage
|
2017-08-03 14:45:14 +03:00
|
|
|
|
text="Add Twitter image"
|
2017-08-02 10:05:59 +03:00
|
|
|
|
allowUnsplash=true
|
2017-08-03 14:45:14 +03:00
|
|
|
|
update=(action "setTwitterImage")
|
|
|
|
|
remove=(action "clearTwitterImage")
|
|
|
|
|
}}
|
2018-01-11 01:57:43 +03:00
|
|
|
|
{{#gh-form-group errors=post.errors hasValidated=post.hasValidated property="twitterTitle"}}
|
2017-08-03 14:45:14 +03:00
|
|
|
|
<label for="twitter-title">Twitter Title</label>
|
2018-02-28 14:44:03 +03:00
|
|
|
|
{{gh-text-input
|
2017-08-03 14:45:14 +03:00
|
|
|
|
class="post-setting-twitter-title"
|
|
|
|
|
id="twitter-title"
|
|
|
|
|
name="post-setting-twitter-title"
|
|
|
|
|
placeholder=(truncate twitterTitle 40)
|
2018-02-28 14:44:03 +03:00
|
|
|
|
value=(readonly twitterTitleScratch)
|
|
|
|
|
input=(action (mut twitterTitleScratch) value="target.value")
|
|
|
|
|
focus-out=(action "setTwitterTitle" twitterTitleScratch)
|
|
|
|
|
stopEnterKeyDownPropagation=true
|
2017-08-03 14:45:14 +03:00
|
|
|
|
data-test-field="twitter-title"}}
|
2018-01-11 01:57:43 +03:00
|
|
|
|
{{gh-error-message errors=post.errors property="twitterTitle" data-test-error="twitter-title"}}
|
2017-08-03 14:45:14 +03:00
|
|
|
|
{{/gh-form-group}}
|
|
|
|
|
|
2018-01-11 01:57:43 +03:00
|
|
|
|
{{#gh-form-group errors=post.errors hasValidated=post.hasValidated property="twitterDescription"}}
|
2017-08-03 14:45:14 +03:00
|
|
|
|
<label for="twitter-description">Twitter Description</label>
|
2018-02-28 14:44:03 +03:00
|
|
|
|
{{gh-textarea
|
2017-08-03 14:45:14 +03:00
|
|
|
|
class="post-setting-twitter-description"
|
|
|
|
|
id="twitter-description"
|
|
|
|
|
name="post-setting-twitter-description"
|
|
|
|
|
placeholder=(truncate twitterDescription 155)
|
|
|
|
|
stopEnterKeyDownPropagation="true"
|
2018-02-28 14:44:03 +03:00
|
|
|
|
value=(readonly twitterDescriptionScratch)
|
|
|
|
|
input=(action (mut twitterDescriptionScratch) value="target.value")
|
|
|
|
|
focus-out=(action "setTwitterDescription" twitterDescriptionScratch)
|
2017-08-03 14:45:14 +03:00
|
|
|
|
data-test-field="twitter-description"}}
|
2018-01-11 01:57:43 +03:00
|
|
|
|
{{gh-error-message errors=post.errors property="twitterDescription" data-test-error="twitter-description"}}
|
2017-08-03 14:45:14 +03:00
|
|
|
|
{{/gh-form-group}}
|
|
|
|
|
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label>Preview</label>
|
|
|
|
|
<div class="gh-twitter-preview">
|
|
|
|
|
{{#if twitterImage}}
|
2018-05-14 15:04:53 +03:00
|
|
|
|
<div class="gh-twitter-preview-image" style={{background-image-style twitterImage}}></div>
|
2017-08-03 14:45:14 +03:00
|
|
|
|
{{/if}}
|
|
|
|
|
<div class="gh-twitter-preview-content">
|
|
|
|
|
<div class="gh-twitter-preview-title">{{twitterTitle}}</div>
|
|
|
|
|
<div class="gh-twitter-preview-description">{{truncate twitterDescription 155}}</div>
|
|
|
|
|
<div class="gh-twitter-preview-footer">
|
|
|
|
|
<div class="gh-twitter-preview-footer-left">
|
|
|
|
|
{{config.blogDomain}}
|
|
|
|
|
</div>
|
|
|
|
|
<div class="gh-twitter-preview-footer-right">
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</form>
|
|
|
|
|
</div>
|
|
|
|
|
{{/if}}
|
|
|
|
|
|
|
|
|
|
{{#if (eq subview "facebook-data")}}
|
|
|
|
|
<div class="settings-menu-header subview">
|
2018-03-19 12:57:31 +03:00
|
|
|
|
<button {{action "closeSubview"}} class="back settings-menu-header-action" data-test-button="close-psm-subview">{{svg-jar "arrow-left"}}<span class="hidden">Back</span></button>
|
2017-08-03 14:45:14 +03:00
|
|
|
|
<h4>Facebook Card</h4>
|
|
|
|
|
<div style="width:23px;"></div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="settings-menu-content">
|
|
|
|
|
<form {{action "discardEnter" on="submit"}}>
|
|
|
|
|
{{gh-image-uploader-with-preview
|
2018-01-11 01:57:43 +03:00
|
|
|
|
image=post.ogImage
|
2017-08-03 14:45:14 +03:00
|
|
|
|
text="Add Facebook image"
|
2017-08-02 10:05:59 +03:00
|
|
|
|
allowUnsplash=true
|
2017-08-03 14:45:14 +03:00
|
|
|
|
update=(action "setOgImage")
|
|
|
|
|
remove=(action "clearOgImage")
|
|
|
|
|
}}
|
2018-01-11 01:57:43 +03:00
|
|
|
|
{{#gh-form-group errors=post.errors hasValidated=post.hasValidated property="ogTitle"}}
|
2017-08-03 14:45:14 +03:00
|
|
|
|
<label for="og-title">Facebook Title</label>
|
2018-02-28 14:44:03 +03:00
|
|
|
|
{{gh-text-input
|
2017-08-03 14:45:14 +03:00
|
|
|
|
class="post-setting-og-title"
|
|
|
|
|
id="og-title"
|
|
|
|
|
name="post-setting-og-title"
|
|
|
|
|
placeholder=(truncate facebookTitle 40)
|
2018-02-28 14:44:03 +03:00
|
|
|
|
value=(readonly ogTitleScratch)
|
|
|
|
|
input=(action (mut ogTitleScratch) value="target.value")
|
|
|
|
|
focus-out=(action "setOgTitle" ogTitleScratch)
|
|
|
|
|
stopEnterKeyDownPropagation=true
|
2017-08-03 14:45:14 +03:00
|
|
|
|
data-test-field="og-title"}}
|
2018-01-11 01:57:43 +03:00
|
|
|
|
{{gh-error-message errors=post.errors property="ogTitle" data-test-error="og-title"}}
|
2017-08-03 14:45:14 +03:00
|
|
|
|
{{/gh-form-group}}
|
|
|
|
|
|
2018-01-11 01:57:43 +03:00
|
|
|
|
{{#gh-form-group errors=post.errors hasValidated=post.hasValidated property="ogDescription"}}
|
2017-08-03 14:45:14 +03:00
|
|
|
|
<label for="og-description">Facebook Description</label>
|
2018-02-28 14:44:03 +03:00
|
|
|
|
{{gh-textarea
|
2017-08-03 14:45:14 +03:00
|
|
|
|
class="post-setting-og-description"
|
|
|
|
|
id="og-description"
|
|
|
|
|
name="post-setting-og-description"
|
|
|
|
|
placeholder=(truncate facebookDescription 160)
|
2018-02-28 14:44:03 +03:00
|
|
|
|
value=(readonly ogDescriptionScratch)
|
|
|
|
|
input=(action (mut ogDescriptionScratch) value="target.value")
|
|
|
|
|
focus-out=(action "setOgDescription" ogDescriptionScratch)
|
2017-08-03 14:45:14 +03:00
|
|
|
|
stopEnterKeyDownPropagation="true"
|
|
|
|
|
data-test-field="og-description"}}
|
2018-01-11 01:57:43 +03:00
|
|
|
|
{{gh-error-message errors=post.errors property="ogDescription" data-test-error="og-description"}}
|
2017-08-03 14:45:14 +03:00
|
|
|
|
{{/gh-form-group}}
|
|
|
|
|
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label>Preview</label>
|
|
|
|
|
<div class="gh-og-preview">
|
|
|
|
|
{{#if facebookImage}}
|
2018-05-14 15:04:53 +03:00
|
|
|
|
<div class="gh-og-preview-image" style={{background-image-style facebookImage}}></div>
|
2017-08-03 14:45:14 +03:00
|
|
|
|
{{/if}}
|
|
|
|
|
<div class="gh-og-preview-content">
|
|
|
|
|
<div class="gh-og-preview-title">{{truncate facebookTitle 88}}</div>
|
|
|
|
|
<div class="gh-og-preview-description">{{truncate facebookDescription 300}}</div>
|
|
|
|
|
<div class="gh-og-preview-footer">
|
|
|
|
|
<div class="gh-og-preview-footer-left">
|
2019-03-12 15:14:54 +03:00
|
|
|
|
{{config.blogDomain}} <span class="gh-og-preview-footer-left-divider">|</span> by <span class="gh-og-preview-footer-author">{{author-names post.authors}}</span>
|
2017-08-03 14:45:14 +03:00
|
|
|
|
</div>
|
|
|
|
|
<div class="gh-og-preview-footer-right">
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</form>
|
|
|
|
|
</div>
|
|
|
|
|
{{/if}}
|
|
|
|
|
|
2017-08-02 12:32:51 +03:00
|
|
|
|
{{#if (eq subview "codeinjection")}}
|
|
|
|
|
<div class="settings-menu-header subview">
|
2018-03-19 12:57:31 +03:00
|
|
|
|
<button {{action "closeSubview"}} class="back settings-menu-header-action" data-test-button="close-psm-subview">{{svg-jar "arrow-left"}}<span class="hidden">Back</span></button>
|
2017-08-02 12:32:51 +03:00
|
|
|
|
<h4>Code Injection</h4>
|
|
|
|
|
<div style="width:23px;"></div>
|
|
|
|
|
</div>
|
|
|
|
|
|
2018-01-02 21:29:03 +03:00
|
|
|
|
<div class="settings-menu-content settings-menu-content-codeinjection">
|
2017-08-02 12:32:51 +03:00
|
|
|
|
<form {{action "discardEnter" on="submit"}}>
|
2018-01-11 01:57:43 +03:00
|
|
|
|
{{#gh-form-group errors=post.errors hasValidated=post.hasValidated property="codeinjectionHead"}}
|
2019-03-07 12:13:31 +03:00
|
|
|
|
<label for="codeinjection-head">{{capitalize post.displayName}} Header <code>\{{ghost_head}}</code></label>
|
2017-08-02 12:32:51 +03:00
|
|
|
|
{{gh-cm-editor codeinjectionHeadScratch
|
|
|
|
|
id="post-setting-codeinjection-head"
|
|
|
|
|
class="post-setting-codeinjection"
|
|
|
|
|
name="post-setting-codeinjection-head"
|
|
|
|
|
focusOut=(action "setHeaderInjection" codeinjectionHeadScratch)
|
|
|
|
|
stopEnterKeyDownPropagation="true"
|
|
|
|
|
update=(action (mut codeinjectionHeadScratch))
|
|
|
|
|
data-test-field="codeinjection-head"}}
|
2018-01-11 01:57:43 +03:00
|
|
|
|
{{gh-error-message errors=post.errors property="codeinjectionHead" data-test-error="codeinjection-head"}}
|
2017-08-02 12:32:51 +03:00
|
|
|
|
{{/gh-form-group}}
|
|
|
|
|
|
2018-01-11 01:57:43 +03:00
|
|
|
|
{{#gh-form-group errors=post.errors hasValidated=post.hasValidated property="codeinjectionFoot"}}
|
2019-03-07 12:13:31 +03:00
|
|
|
|
<label for="codeinjection-foot">{{capitalize post.displayName}} Footer <code>\{{ghost_foot}}</code></label>
|
2017-08-02 12:32:51 +03:00
|
|
|
|
{{gh-cm-editor codeinjectionFootScratch
|
|
|
|
|
id="post-setting-codeinjection-foot"
|
|
|
|
|
class="post-setting-codeinjection"
|
|
|
|
|
name="post-setting-codeinjection-foot"
|
|
|
|
|
focusOut=(action "setFooterInjection" codeinjectionFootScratch)
|
|
|
|
|
stopEnterKeyDownPropagation="true"
|
|
|
|
|
update=(action (mut codeinjectionFootScratch))
|
|
|
|
|
data-test-field="codeinjection-foot"}}
|
2018-01-11 01:57:43 +03:00
|
|
|
|
{{gh-error-message errors=post.errors property="codeinjectionFoot" data-test-error="codeinjection-foot"}}
|
2017-08-02 12:32:51 +03:00
|
|
|
|
{{/gh-form-group}}
|
|
|
|
|
</form>
|
|
|
|
|
</div>
|
|
|
|
|
{{/if}}
|
|
|
|
|
{{/if}}
|
2014-12-02 01:45:45 +03:00
|
|
|
|
</div>
|
2017-08-02 12:32:51 +03:00
|
|
|
|
</div>
|
2014-09-19 03:42:07 +04:00
|
|
|
|
</div>
|
2014-09-15 04:40:24 +04:00
|
|
|
|
</div>
|
2017-06-08 18:00:10 +03:00
|
|
|
|
|
|
|
|
|
{{!--
|
|
|
|
|
_showThrobbers is on a timer so that throbbers don't get positioned until
|
|
|
|
|
the slide-in animation has finished and it gets toggled when the meta
|
|
|
|
|
pane is shown
|
|
|
|
|
--}}
|
|
|
|
|
{{#if _showThrobbers}}
|
|
|
|
|
{{gh-tour-item "featured-post"
|
|
|
|
|
target="label[for='featured'] p"
|
|
|
|
|
throbberAttachment="middle middle"
|
|
|
|
|
throbberOffset="0px -20px"
|
|
|
|
|
popoverTriangleClass="bottom-right"
|
|
|
|
|
}}
|
|
|
|
|
{{/if}}
|