mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-12-15 03:12:54 +03:00
9b6214b9ad
ref #5652 - validations can be in default, success or error state - adds check for 'hasValidated' if the validations haven't fired yet, the field is in the default state - hasValidated is an Ember.Array which tracks the state for each field
106 lines
5.5 KiB
Handlebars
106 lines
5.5 KiB
Handlebars
<section class="gh-view">
|
|
<header class="view-header">
|
|
{{#gh-view-title openMobileMenu="openMobileMenu"}}<span>General</span>{{/gh-view-title}}
|
|
<section class="view-actions">
|
|
{{#gh-spin-button class="btn btn-blue" action="save" submitting=submitting}}Save{{/gh-spin-button}}
|
|
</section>
|
|
</header>
|
|
|
|
<section class="view-content">
|
|
<form id="settings-general" novalidate="novalidate">
|
|
<fieldset>
|
|
|
|
{{#gh-form-group errors=model.errors hasValidated=model.hasValidated property="title"}}
|
|
<label for="blog-title">Blog Title</label>
|
|
{{gh-input id="blog-title" class="gh-input" name="general[title]" type="text" value=model.title focusOut=(action "validate" "title")}}
|
|
{{gh-error-message errors=model.errors property="title"}}
|
|
<p>The name of your blog</p>
|
|
{{/gh-form-group}}
|
|
|
|
{{#gh-form-group errors=model.errors hasValidated=model.hasValidated property="description" class="description-container"}}
|
|
<label for="blog-description">Blog Description</label>
|
|
{{gh-textarea id="blog-description" class="gh-input" name="general[description]" value=model.description focusOut=(action "validate" "description")}}
|
|
{{gh-error-message errors=model.errors property="description"}}
|
|
<p>
|
|
Describe what your blog is about
|
|
{{gh-count-characters model.description}}
|
|
</p>
|
|
{{/gh-form-group}}
|
|
</fieldset>
|
|
|
|
<div class="form-group">
|
|
<label>Blog Logo</label>
|
|
{{#if model.logo}}
|
|
<img class="blog-logo" src="{{model.logo}}" alt="logo" role="button" {{action "openModal" "upload" this "logo"}}>
|
|
{{else}}
|
|
<button type="button" class="btn btn-green js-modal-logo" {{action "openModal" "upload" this "logo"}}>Upload Image</button>
|
|
{{/if}}
|
|
<p>Display a sexy logo for your publication</p>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label>Blog Cover</label>
|
|
{{#if model.cover}}
|
|
<img class="blog-cover" src="{{model.cover}}" alt="cover photo" role="button" {{action "openModal" "upload" this "cover"}}>
|
|
{{else}}
|
|
<button type="button" class="btn btn-green js-modal-cover" {{action "openModal" "upload" this "cover"}}>Upload Image</button>
|
|
{{/if}}
|
|
<p>Display a cover image on your site</p>
|
|
</div>
|
|
|
|
<fieldset>
|
|
|
|
<div class="form-group">
|
|
<label for="postsPerPage">Posts per page</label>
|
|
{{! `pattern` brings up numeric keypad allowing any number of digits}}
|
|
{{gh-input id="postsPerPage" class="gh-input" name="general[postsPerPage]" focus-out="checkPostsPerPage" value=model.postsPerPage min="1" max="1000" type="number" pattern="[0-9]*"}}
|
|
<p>How many posts should be displayed on each page</p>
|
|
</div>
|
|
|
|
<div class="form-group for-checkbox">
|
|
<label for="permalinks">Dated Permalinks</label>
|
|
<label class="checkbox" for="permalinks">
|
|
{{input id="permalinks" class="gh-input" name="general[permalinks]" type="checkbox" checked=isDatedPermalinks}}
|
|
<span class="input-toggle-component"></span>
|
|
<p>Include the date in your post URLs</p>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="form-group for-select">
|
|
<label for="activeTheme">Theme</label>
|
|
<span class="gh-select" data-select-text="{{selectedTheme.label}}" tabindex="0">
|
|
{{gh-select-native
|
|
id="activeTheme"
|
|
name="general[activeTheme]"
|
|
content=themes
|
|
optionValuePath="name"
|
|
optionLabelPath="label"
|
|
selection=selectedTheme
|
|
action="setTheme"
|
|
}}
|
|
</span>
|
|
<p>Select a theme for your blog</p>
|
|
</div>
|
|
|
|
<div class="form-group for-checkbox">
|
|
<label for="isPrivate">Make this blog private</label>
|
|
<label class="checkbox" for="isPrivate">
|
|
{{input id="isPrivate" name="general[isPrivate]" type="checkbox"
|
|
checked=model.isPrivate}}
|
|
<span class="input-toggle-component"></span>
|
|
<p>Enable password protection</p>
|
|
</label>
|
|
</div>
|
|
|
|
{{#if model.isPrivate}}
|
|
{{#gh-form-group errors=model.errors hasValidated=model.hasValidated property="password"}}
|
|
{{gh-input name="general[password]" type="text" value=model.password focusOut=(action "validate" "password")}}
|
|
{{gh-error-message errors=model.errors property="password"}}
|
|
<p>This password will be needed to access your blog. All search engine optimization and social features are now disabled. This password is stored in plaintext.</p>
|
|
{{/gh-form-group}}
|
|
{{/if}}
|
|
</fieldset>
|
|
</form>
|
|
</section>
|
|
</section>
|