382 lines
16 KiB
Plaintext
382 lines
16 KiB
Plaintext
<h2 class="my-3">{{ page_title }}</h2>
|
|
<article>
|
|
<form action="{{ "admin/settings/rss/save" | relative_link }}" method="post">
|
|
<input
|
|
type="hidden"
|
|
name="{{ csrf.form_field_name }}"
|
|
value="{{ csrf.request_token }}">
|
|
<input
|
|
type="hidden"
|
|
name="Id"
|
|
value="{{ model.id }}">
|
|
{%- assign typ = model.source_type -%}
|
|
<div class="container">
|
|
<div class="row pb-3">
|
|
<div class="col">
|
|
<a href="{{ "admin/settings#rss-settings" | relative_link }}">« Back to Settings</a>
|
|
</div>
|
|
</div>
|
|
<div class="row pb-3">
|
|
<div class="col-12 col-lg-6">
|
|
<fieldset class="container pb-0">
|
|
<legend>Identification</legend>
|
|
<div class="row">
|
|
<div class="col">
|
|
<div class="form-floating">
|
|
<input
|
|
type="text"
|
|
name="Path"
|
|
id="path"
|
|
class="form-control"
|
|
placeholder="Relative Feed Path"
|
|
value="{{ model.path }}">
|
|
<label for="path">Relative Feed Path</label>
|
|
<span class="form-text fst-italic">Appended to {{ web_log.url_base }}/</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col py-3 d-flex align-self-center justify-content-center">
|
|
<div class="form-check form-switch">
|
|
<input
|
|
type="checkbox"
|
|
name="IsPodcast"
|
|
id="isPodcast"
|
|
class="form-check-input"
|
|
value="true"
|
|
{%- if model.is_podcast %}checked="checked"{% endif %}onclick="Admin.checkPodcast()">
|
|
<label for="isPodcast" class="form-check-label">This Is a Podcast Feed</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<div class="col-12 col-lg-6">
|
|
<fieldset class="container pb-0">
|
|
<legend>Feed Source</legend>
|
|
<div class="row d-flex align-items-center">
|
|
<div class="col-1 d-flex justify-content-end pb-3">
|
|
<div class="form-check form-check-inline me-0">
|
|
<input
|
|
type="radio"
|
|
name="SourceType"
|
|
id="sourceTypeCat"
|
|
class="form-check-input"
|
|
value="category"
|
|
{%- unless typ == "tag" %}checked="checked"{% endunless -%}onclick="Admin.customFeedBy('category')">
|
|
<label for="sourceTypeCat" class="form-check-label d-none">Category</label>
|
|
</div>
|
|
</div>
|
|
<div class="col-11 pb-3">
|
|
<div class="form-floating">
|
|
<select
|
|
name="SourceValue"
|
|
id="sourceValueCat"
|
|
class="form-control"
|
|
required
|
|
{%- if typ == "tag" %}disabled="disabled"{% endif %}>
|
|
<option value="">– Select Category –</option>
|
|
{% for cat in categories -%}
|
|
<option value="{{ cat.id }}"{%- if typ != "tag" and model.source_value == cat.id %}selected="selected"{% endif -%}>
|
|
{% for it in cat.parent_names %}
|
|
{{ it }} ⟩
|
|
{% endfor %}
|
|
{{ cat.name }}
|
|
</option>
|
|
{%- endfor %}
|
|
</select>
|
|
<label for="sourceValueCat">Category</label>
|
|
</div>
|
|
</div>
|
|
<div class="col-1 d-flex justify-content-end pb-3">
|
|
<div class="form-check form-check-inline me-0">
|
|
<input
|
|
type="radio"
|
|
name="SourceType"
|
|
id="sourceTypeTag"
|
|
class="form-check-input"
|
|
value="tag"
|
|
{%- if typ == "tag" %}checked="checked"{% endif %}onclick="Admin.customFeedBy('tag')">
|
|
<label for="sourceTypeTag" class="form-check-label d-none">Tag</label>
|
|
</div>
|
|
</div>
|
|
<div class="col-11 pb-3">
|
|
<div class="form-floating">
|
|
<input
|
|
type="text"
|
|
name="SourceValue"
|
|
id="sourceValueTag"
|
|
class="form-control"
|
|
placeholder="Tag"
|
|
{%- unless typ == "tag" %}disabled="disabled"{% endunless %}required{%- if typ == "tag" %}value="{{ model.source_value }}"{% endif %}>
|
|
<label for="sourceValueTag">Tag</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
<div class="row pb-3">
|
|
<div class="col">
|
|
<fieldset
|
|
class="container"
|
|
id="podcastFields"
|
|
{% unless model.is_podcast %}disabled="disabled"{% endunless %}>
|
|
<legend>Podcast Settings</legend>
|
|
<div class="row">
|
|
<div class="col-12 col-md-5 col-lg-4 offset-lg-1 pb-3">
|
|
<div class="form-floating">
|
|
<input
|
|
type="text"
|
|
name="Title"
|
|
id="title"
|
|
class="form-control"
|
|
placeholder="Title"
|
|
required
|
|
value="{{ model.title }}">
|
|
<label for="title">Title</label>
|
|
</div>
|
|
</div>
|
|
<div class="col-12 col-md-4 col-lg-4 pb-3">
|
|
<div class="form-floating">
|
|
<input
|
|
type="text"
|
|
name="Subtitle"
|
|
id="subtitle"
|
|
class="form-control"
|
|
placeholder="Subtitle"
|
|
value="{{ model.subtitle }}">
|
|
<label for="subtitle">Podcast Subtitle</label>
|
|
</div>
|
|
</div>
|
|
<div class="col-12 col-md-3 col-lg-2 pb-3">
|
|
<div class="form-floating">
|
|
<input
|
|
type="number"
|
|
name="ItemsInFeed"
|
|
id="itemsInFeed"
|
|
class="form-control"
|
|
placeholder="Items"
|
|
required
|
|
value="{{ model.items_in_feed }}">
|
|
<label for="itemsInFeed"># Episodes</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-12 col-md-5 col-lg-4 offset-lg-1 pb-3">
|
|
<div class="form-floating">
|
|
<input
|
|
type="text"
|
|
name="AppleCategory"
|
|
id="appleCategory"
|
|
class="form-control"
|
|
placeholder="iTunes Category"
|
|
required
|
|
value="{{ model.apple_category }}">
|
|
<label for="appleCategory">iTunes Category</label>
|
|
<span class="form-text fst-italic">
|
|
<a
|
|
href="https://www.thepodcasthost.com/planning/itunes-podcast-categories/"
|
|
target="_blank"
|
|
rel="noopener">
|
|
iTunes Category / Subcategory List
|
|
</a>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
<div class="col-12 col-md-4 pb-3">
|
|
<div class="form-floating">
|
|
<input
|
|
type="text"
|
|
name="AppleSubcategory"
|
|
id="appleSubcategory"
|
|
class="form-control"
|
|
placeholder="iTunes Subcategory"
|
|
value="{{ model.apple_subcategory }}">
|
|
<label for="appleSubcategory">iTunes Subcategory</label>
|
|
</div>
|
|
</div>
|
|
<div class="col-12 col-md-3 col-lg-2 pb-3">
|
|
<div class="form-floating">
|
|
<select
|
|
name="Explicit"
|
|
id="explicit"
|
|
class="form-control"
|
|
required>
|
|
<option value="yes" {% if model.explicit == "yes" %}selected="selected"{% endif %}>Yes</option>
|
|
<option value="no" {% if model.explicit == "no" %}selected="selected"{% endif %}>No</option>
|
|
<option value="clean" {% if model.explicit == "clean" %}selected="selected"{% endif %}>
|
|
Clean
|
|
</option>
|
|
</select>
|
|
<label for="explicit">Explicit Rating</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-12 col-md-6 col-lg-4 offset-xxl-1 pb-3">
|
|
<div class="form-floating">
|
|
<input
|
|
type="text"
|
|
name="DisplayedAuthor"
|
|
id="displayedAuthor"
|
|
class="form-control"
|
|
placeholder="Author"
|
|
required
|
|
value="{{ model.displayed_author }}">
|
|
<label for="displayedAuthor">Displayed Author</label>
|
|
</div>
|
|
</div>
|
|
<div class="col-12 col-md-6 col-lg-4 pb-3">
|
|
<div class="form-floating">
|
|
<input
|
|
type="email"
|
|
name="Email"
|
|
id="email"
|
|
class="form-control"
|
|
placeholder="Email"
|
|
required
|
|
value="{{ model.email }}">
|
|
<label for="email">Author E-mail</label>
|
|
<span class="form-text fst-italic">For iTunes, must match registered e-mail</span>
|
|
</div>
|
|
</div>
|
|
<div class="col-12 col-sm-5 col-md-4 col-lg-4 col-xl-3 offset-xl-1 col-xxl-2 offset-xxl-0">
|
|
<div class="form-floating">
|
|
<input
|
|
type="text"
|
|
name="DefaultMediaType"
|
|
id="defaultMediaType"
|
|
class="form-control"
|
|
placeholder="Media Type"
|
|
value="{{ model.default_media_type }}">
|
|
<label for="defaultMediaType">Default Media Type</label>
|
|
<span class="form-text fst-italic">Optional; blank for no default</span>
|
|
</div>
|
|
</div>
|
|
<div class="col-12 col-sm-7 col-md-8 col-lg-10 offset-lg-1">
|
|
<div class="form-floating">
|
|
<input
|
|
type="text"
|
|
name="ImageUrl"
|
|
id="imageUrl"
|
|
class="form-control"
|
|
placeholder="Image URL"
|
|
required
|
|
value="{{ model.image_url }}">
|
|
<label for="imageUrl">Image URL</label>
|
|
<span class="form-text fst-italic">Relative URL will be appended to {{ web_log.url_base }}/</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row pb-3">
|
|
<div class="col-12 col-lg-10 offset-lg-1">
|
|
<div class="form-floating">
|
|
<input
|
|
type="text"
|
|
name="Summary"
|
|
id="summary"
|
|
class="form-control"
|
|
placeholder="Summary"
|
|
required
|
|
value="{{ model.summary }}">
|
|
<label for="summary">Summary</label>
|
|
<span class="form-text fst-italic">Displayed in podcast directories</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row pb-3">
|
|
<div class="col-12 col-lg-10 offset-lg-1">
|
|
<div class="form-floating">
|
|
<input
|
|
type="text"
|
|
name="MediaBaseUrl"
|
|
id="mediaBaseUrl"
|
|
class="form-control"
|
|
placeholder="Media Base URL"
|
|
value="{{ model.media_base_url }}">
|
|
<label for="mediaBaseUrl">Media Base URL</label>
|
|
<span class="form-text fst-italic">Optional; prepended to episode media file if present</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-12 col-lg-5 offset-lg-1 pb-3">
|
|
<div class="form-floating">
|
|
<input
|
|
type="text"
|
|
name="FundingUrl"
|
|
id="fundingUrl"
|
|
class="form-control"
|
|
placeholder="Funding URL"
|
|
value="{{ model.funding_url }}">
|
|
<label for="fundingUrl">Funding URL</label>
|
|
<span class="form-text fst-italic">
|
|
Optional; URL describing donation options for this podcast, relative URL supported
|
|
</span>
|
|
</div>
|
|
</div>
|
|
<div class="col-12 col-lg-5 pb-3">
|
|
<div class="form-floating">
|
|
<input
|
|
type="text"
|
|
name="FundingText"
|
|
id="fundingText"
|
|
class="form-control"
|
|
maxlength="128"
|
|
placeholder="Funding Text"
|
|
value="{{ model.funding_text }}">
|
|
<label for="fundingText">Funding Text</label>
|
|
<span class="form-text fst-italic">Optional; text for the funding link</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row pb-3">
|
|
<div class="col-8 col-lg-5 offset-lg-1 pb-3">
|
|
<div class="form-floating">
|
|
<input
|
|
type="text"
|
|
name="PodcastGuid"
|
|
id="guid"
|
|
class="form-control"
|
|
placeholder="GUID"
|
|
value="{{ model.podcast_guid }}">
|
|
<label for="guid">Podcast GUID</label>
|
|
<span class="form-text fst-italic">
|
|
Optional; v5 UUID uniquely identifying this podcast; once entered, do not change this value
|
|
(<a href="https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md#guid" target="_blank">documentation</a>)
|
|
</span>
|
|
</div>
|
|
</div>
|
|
<div class="col-4 col-lg-3 offset-lg-2 pb-3">
|
|
<div class="form-floating">
|
|
<select
|
|
name="Medium"
|
|
id="medium"
|
|
class="form-control">
|
|
{% for med in medium_values -%}
|
|
<option value="{{ med[0] }}"{% if model.medium == med[0] %}selected{% endif %}>
|
|
{{ med[1] }}
|
|
</option>
|
|
{%- endfor %}
|
|
</select>
|
|
<label for="medium">Medium</label>
|
|
<span class="form-text fst-italic">
|
|
Optional; medium of the podcast content
|
|
(<a href="https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md#medium" target="_blank">documentation</a>)
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
<div class="row pb-3">
|
|
<div class="col text-center">
|
|
<button type="submit" class="btn btn-primary">Save Changes</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</article> |