mirror of
https://github.com/mediacms-io/mediacms.git
synced 2025-11-18 21:09:42 -05:00
MediaCMS frontend, initial commit
This commit is contained in:
47
templates/cms/about.html
Normal file
47
templates/cms/about.html
Normal file
@@ -0,0 +1,47 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block headtitle %}About - {{PORTAL_NAME}}{% endblock headtitle %}
|
||||
|
||||
{% block headermeta %}
|
||||
|
||||
<meta property="og:title" content="About - {{PORTAL_NAME}}">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:description" content="">
|
||||
|
||||
<meta name="twitter:card" content="summary">
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BreadcrumbList",
|
||||
"itemListElement": [{
|
||||
"@type": "ListItem",
|
||||
"position": 1,
|
||||
"name": "{{PORTAL_NAME}}",
|
||||
"item": {
|
||||
"@type": "WebPage",
|
||||
"@id": "{{FRONTEND_HOST}}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 2,
|
||||
"name": "About",
|
||||
"item": {
|
||||
"@type": "AboutPage",
|
||||
"@id": "{{FRONTEND_HOST}}/about"
|
||||
}
|
||||
}]
|
||||
}
|
||||
</script>
|
||||
|
||||
{% endblock headermeta %}
|
||||
|
||||
{% block innercontent %}
|
||||
<div class="custom-page-wrapper">
|
||||
<h2>About</h2>
|
||||
<hr/>
|
||||
|
||||
<p><a href="https://mediacms.io">MediaCMS</a> is a modern, fully featured open source video and media CMS. It is developed to meet the needs of modern web platforms for viewing and sharing media.</p>
|
||||
</div>
|
||||
{% endblock %}
|
||||
238
templates/cms/add-media.html
Normal file
238
templates/cms/add-media.html
Normal file
@@ -0,0 +1,238 @@
|
||||
{% extends "base.html" %}
|
||||
{% load static %}
|
||||
|
||||
{% block headtitle %}Add new media - {{PORTAL_NAME}}{% endblock headtitle %}
|
||||
|
||||
{% block externallinks %}
|
||||
{% if LOAD_FROM_CDN %}
|
||||
<link href="https://cdnjs.cloudflare.com/ajax/libs/file-uploader/5.13.0/fine-uploader.min.js" rel="preload" as="script">
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/file-uploader/5.13.0/fine-uploader.min.js"></script>
|
||||
{% else %}
|
||||
<link href="{% static "lib/file-uploader/5.13.0/fine-uploader.min.js" %}" rel="preload" as="script">
|
||||
<script src="{% static "lib/file-uploader/5.13.0/fine-uploader.min.js" %}"></script>
|
||||
{% endif %}
|
||||
{% endblock externallinks %}
|
||||
|
||||
{% block topimports %}
|
||||
<link href="{% static "css/add-media.css" %}" rel="preload" as="style">
|
||||
<link href="{% static "css/add-media.css" %}" rel="stylesheet">
|
||||
{%endblock topimports %}
|
||||
|
||||
{% block innercontent %}
|
||||
{% if request.user.is_authenticated %}
|
||||
|
||||
{% if can_add %}
|
||||
|
||||
<div class="media-uploader-wrap">
|
||||
<div class="media-uploader-top-wrap">
|
||||
<div class="media-uploader-top-left-wrap">
|
||||
<h1>Upload media files</h1>
|
||||
</div>
|
||||
<div class="media-uploader-top-right-wrap"> </div>
|
||||
</div>
|
||||
<script type="text/template" id="qq-template">
|
||||
<div class="media-uploader-bottom-wrap qq-uploader-selector">
|
||||
<div class="media-uploader-bottom-left-wrap">
|
||||
<div class="media-drag-drop-wrap">
|
||||
<div class="media-drag-drop-inner" qq-drop-area-text="Drop files here">
|
||||
<div class="media-drag-drop-content">
|
||||
<div class="media-drag-drop-content-inner">
|
||||
<span><i class="material-icons">cloud_upload</i></span>
|
||||
<span>Drag and drop files</span>
|
||||
<span>or</span>
|
||||
<span class="browse-files-btn-wrap">
|
||||
<span class="qq-upload-button-selector">Browse your files</span>
|
||||
</span>
|
||||
<div class="qq-upload-drop-area-selector media-dropzone" qq-hide-dropzone>
|
||||
<span class="qq-upload-drop-area-text-selector"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="media-uploader-bottom-right-wrap">
|
||||
<ul class="media-upload-items-list qq-upload-list-selector">
|
||||
<li>
|
||||
<div class="media-upload-item-main">
|
||||
<div class="media-upload-item-thumb">
|
||||
<img class="qq-thumbnail-selector" qq-max-size="120" qq-server-scale alt="" />
|
||||
<span class="media-upload-item-spinner qq-upload-spinner-selector"><i class="material-icons">autorenew</i></span>
|
||||
<button type="button" class="qq-upload-retry-selector retry-media-upload-item" aria-label="Retry"><i class="material-icons">refresh</i> Retry</button>
|
||||
</div>
|
||||
<div class="media-upload-item-details">
|
||||
<div class="media-upload-item-name">
|
||||
<span class="media-upload-item-filename qq-upload-file-selector"></span>
|
||||
<input class="media-upload-item-filename-input qq-edit-filename-selector" tab-index="0" type="text" />
|
||||
</div>
|
||||
<div class="media-upload-item-details-bottom">
|
||||
<div class="media-upload-item-progress-bar-container qq-progress-bar-container-selector">
|
||||
<div role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" class="media-upload-item-progress-bar qq-progress-bar-selector"></div>
|
||||
</div>
|
||||
<span class="media-upload-item-upload-size qq-upload-size-selector"></span>
|
||||
<span role="status" class="media-upload-item-status-text qq-upload-status-text-selector"></span>
|
||||
</div>
|
||||
<div class="media-upload-item-top-actions">
|
||||
<span class="filename-edit qq-edit-filename-icon-selector" aria-label="Edit filename">Edit filename <i class="material-icons">create</i></span>
|
||||
<button type="button" class="delete-media-upload-item qq-upload-delete-selector" aria-label="Delete">Delete <i class="material-icons">delete</i></button>
|
||||
<button type="button" class="cancel-media-upload-item qq-upload-cancel-selector" aria-label="Cancel">Cancel <i class="material-icons">cancel</i></button>
|
||||
<a href="#" class="view-uploaded-media-link qq-hide" target="_blank">View media <i class="material-icons">open_in_new</i></a>
|
||||
</div>
|
||||
<div class="media-upload-item-bottom-actions">
|
||||
<button type="button" class="continue-media-upload-item qq-upload-continue-selector" aria-label="Continue"><i class="material-icons">play_circle_outline</i> Continue</button>
|
||||
<button type="button" class="pause-media-upload-item qq-upload-pause-selector" aria-label="Pause"><i class="material-icons">pause_circle_outline</i> Pause</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
<dialog class="qq-alert-dialog-selector">
|
||||
<div class="qq-dialog-message-selector"></div>
|
||||
<div class="qq-dialog-buttons">
|
||||
<button type="button" class="qq-cancel-button-selector">CLOSE</button>
|
||||
</div>
|
||||
</dialog>
|
||||
<dialog class="qq-confirm-dialog-selector">
|
||||
<div class="qq-dialog-message-selector"></div>
|
||||
<div class="qq-dialog-buttons">
|
||||
<button type="button" class="qq-cancel-button-selector">NO</button>
|
||||
<button type="button" class="qq-ok-button-selector">YES</button>
|
||||
</div>
|
||||
</dialog>
|
||||
<dialog class="qq-prompt-dialog-selector">
|
||||
<div class="qq-dialog-message-selector"></div>
|
||||
<input type="text">
|
||||
<div class="qq-dialog-buttons">
|
||||
<button type="button" class="qq-cancel-button-selector">CANCEL</button>
|
||||
<button type="button" class="qq-ok-button-selector">OK</button>
|
||||
</div>
|
||||
</dialog>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
<div class="media-uploader"></div>
|
||||
</div>
|
||||
|
||||
{% else %}
|
||||
|
||||
{{can_upload_exp}}
|
||||
|
||||
<br>
|
||||
|
||||
<a href='/contact'>Contact</a> the admin owners for more information.
|
||||
|
||||
{% endif %}
|
||||
|
||||
{% else %}
|
||||
|
||||
<div class="user-action-form-wrap">
|
||||
<div class="user-action-form-inner">
|
||||
|
||||
<h1>Sign In</h1>
|
||||
|
||||
Please login or register before you upload a media!
|
||||
|
||||
{% url 'upload_media' as redirect_url %}
|
||||
|
||||
<p>If you have not created an account yet, then please <a href="{% url 'account_signup' %}?next={{ redirect_url }}">sign up</a> first.</p>
|
||||
|
||||
<form class="login" method="POST" action="{% url 'account_login' %}">
|
||||
{% csrf_token %}
|
||||
{{ form.as_p }}
|
||||
<input type="hidden" name="next" value="{{ redirect_url }}" />
|
||||
<a class="button secondaryAction" href="{% url 'account_reset_password' %}">Forgot Password?</a>
|
||||
<button class="primaryAction" type="submit">Sign In</button>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endif %}
|
||||
{% endblock innercontent %}
|
||||
|
||||
{% block bottomimports %}
|
||||
<script src="{% static "js/add-media.js" %}"></script>
|
||||
<script>
|
||||
document.addEventListener("DOMContentLoaded", function(event) {
|
||||
function getCSRFToken() {
|
||||
var i, cookies, cookie, cookieVal = null;
|
||||
if ( document.cookie && '' !== document.cookie ) {
|
||||
cookies = document.cookie.split(';');
|
||||
i = 0;
|
||||
while( i < cookies.length ){
|
||||
cookie = cookies[i].trim();
|
||||
if ( 'csrftoken=' === cookie.substring(0, 10) ) {
|
||||
cookieVal = decodeURIComponent( cookie.substring(10) );
|
||||
break;
|
||||
}
|
||||
i += 1;
|
||||
}
|
||||
}
|
||||
return cookieVal;
|
||||
}
|
||||
var default_concurrent_chunked_uploader = new qq.FineUploader({
|
||||
debug: false,
|
||||
element: document.querySelector('.media-uploader'),
|
||||
request: {
|
||||
endpoint: '{% url 'uploader:upload' %}',
|
||||
customHeaders: {
|
||||
'X-CSRFToken': getCSRFToken('csrftoken'),
|
||||
},
|
||||
},
|
||||
retry: {
|
||||
enableAuto: true,
|
||||
maxAutoAttempts: 2,
|
||||
},
|
||||
validation: {
|
||||
itemLimit: {{UPLOAD_MAX_FILES_NUMBER}},
|
||||
sizeLimit: {{UPLOAD_MAX_SIZE}},
|
||||
},
|
||||
chunking: {
|
||||
enabled: true,
|
||||
concurrent: {
|
||||
enabled: true,
|
||||
},
|
||||
success: {
|
||||
endpoint: '{% url 'uploader:upload' %}?done',
|
||||
},
|
||||
},
|
||||
callbacks: {
|
||||
onError: function(id, name, errorReason, xhrOrXdr) {
|
||||
console.warn(qq.format("Error on file number {} - {}. Reason: {}", id, name, errorReason));
|
||||
},
|
||||
onComplete: function( id, name, response, request ) {
|
||||
|
||||
if( response.success ){
|
||||
|
||||
if( response.media_url ) {
|
||||
if( 1 === this._currentItemLimit ) {
|
||||
setTimeout(function(){ window.location.href = response.media_url; }, 500);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
var listEl = document.querySelector( '.qq-file-id-' + id );
|
||||
var viewFileEl = listEl.querySelector( '.view-uploaded-media-link' );
|
||||
|
||||
if( listEl ){
|
||||
var fileUrl = response.media_url;
|
||||
listEl.style.cursor = 'pointer';
|
||||
listEl.addEventListener( 'click', function(ev){
|
||||
ev.preventDefault();
|
||||
ev.stopPropagation();
|
||||
var win = window.open( fileUrl, '_blank' );
|
||||
win.focus();
|
||||
});
|
||||
}
|
||||
|
||||
if( viewFileEl ){
|
||||
viewFileEl.setAttribute( 'href', response.media_url );
|
||||
viewFileEl.setAttribute( 'class', 'view-uploaded-media-link' );
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
});
|
||||
});
|
||||
</script>
|
||||
{% endblock bottomimports %}
|
||||
17
templates/cms/add_subtitle.html
Normal file
17
templates/cms/add_subtitle.html
Normal file
@@ -0,0 +1,17 @@
|
||||
{% extends "base.html" %}
|
||||
{% load crispy_forms_tags %}
|
||||
|
||||
{% block headtitle %}Add subtitle - {{PORTAL_NAME}}{% endblock headtitle %}
|
||||
|
||||
{% block innercontent %}
|
||||
<div class="user-action-form-wrap">
|
||||
<div class="user-action-form-inner">
|
||||
<h1>Add subtitle</h1>
|
||||
<form enctype="multipart/form-data" action="" method="post" class="post-form">
|
||||
{% csrf_token %}
|
||||
{{ form|crispy }}
|
||||
<button class="primaryAction" type="submit">Add</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock innercontent %}
|
||||
45
templates/cms/categories.html
Normal file
45
templates/cms/categories.html
Normal file
@@ -0,0 +1,45 @@
|
||||
{% extends "base.html" %}
|
||||
{% load static %}
|
||||
|
||||
{% block headtitle %}Categories - {{PORTAL_NAME}}{% endblock headtitle %}
|
||||
|
||||
{% block headermeta %}
|
||||
|
||||
<meta property="og:title" content="Categories - {{PORTAL_NAME}}">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:description" content="">
|
||||
|
||||
<meta name="twitter:card" content="summary">
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BreadcrumbList",
|
||||
"itemListElement": [{
|
||||
"@type": "ListItem",
|
||||
"position": 1,
|
||||
"name": "{{PORTAL_NAME}}",
|
||||
"item": {
|
||||
"@type": "WebPage",
|
||||
"@id": "{{FRONTEND_HOST}}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 2,
|
||||
"name": "Categories",
|
||||
"item": {
|
||||
"@type": "WebPage",
|
||||
"@id": "{{FRONTEND_HOST}}/categories"
|
||||
}
|
||||
}]
|
||||
}
|
||||
</script>
|
||||
|
||||
{% endblock headermeta %}
|
||||
|
||||
{% block content %}<div id="page-categories"></div>{% endblock %}
|
||||
|
||||
{% block bottomimports %}
|
||||
<script src="{% static "js/categories.js" %}"></script>
|
||||
{% endblock bottomimports %}
|
||||
16
templates/cms/channel_edit.html
Normal file
16
templates/cms/channel_edit.html
Normal file
@@ -0,0 +1,16 @@
|
||||
{% extends "base.html" %}
|
||||
{% load crispy_forms_tags %}
|
||||
|
||||
{% block headtitle %}Edit channel - {{PORTAL_NAME}}{% endblock headtitle %}
|
||||
|
||||
{% block innercontent %}
|
||||
<div class="user-action-form-wrap">
|
||||
<div class="user-action-form-inner">
|
||||
<h1>Edit Channel</h1>
|
||||
<form enctype="multipart/form-data" action="" method="post" class="post-form"> {% csrf_token %}
|
||||
{{ form|crispy }}
|
||||
<button class="primaryAction" type="submit">Update Channel</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock innercontent %}
|
||||
56
templates/cms/contact.html
Normal file
56
templates/cms/contact.html
Normal file
@@ -0,0 +1,56 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block headtitle %}Contact us - {{PORTAL_NAME}}{% endblock headtitle %}
|
||||
|
||||
{% block headermeta %}
|
||||
|
||||
<meta property="og:title" content="Contact us - {{PORTAL_NAME}}">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:description" content="">
|
||||
|
||||
<meta name="twitter:card" content="summary">
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BreadcrumbList",
|
||||
"itemListElement": [{
|
||||
"@type": "ListItem",
|
||||
"position": 1,
|
||||
"name": "{{PORTAL_NAME}}",
|
||||
"item": {
|
||||
"@type": "WebPage",
|
||||
"@id": "{{FRONTEND_HOST}}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 2,
|
||||
"name": "Contact us",
|
||||
"item": {
|
||||
"@type": "ContactPage",
|
||||
"@id": "{{FRONTEND_HOST}}/contact"
|
||||
}
|
||||
}]
|
||||
}
|
||||
</script>
|
||||
|
||||
{%endblock headermeta %}
|
||||
|
||||
{% block innercontent %}
|
||||
|
||||
<div class="user-action-form-wrap">
|
||||
<div class="user-action-form-inner">
|
||||
{% if success_msg %}
|
||||
<h1>{{success_msg}}<h1>
|
||||
{% else %}
|
||||
<h1>Contact us</h1>
|
||||
<form enctype="multipart/form-data" action="" method="post" class="post-form">
|
||||
{% csrf_token %}
|
||||
{{ form.as_p }}
|
||||
<button class="primaryAction" type="submit">Submit</button>
|
||||
</form>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
24
templates/cms/edit_media.html
Normal file
24
templates/cms/edit_media.html
Normal file
@@ -0,0 +1,24 @@
|
||||
{% extends "base.html" %}
|
||||
{% load crispy_forms_tags %}
|
||||
{% load static %}
|
||||
|
||||
{% block headtitle %}Edit media - {{PORTAL_NAME}}{% endblock headtitle %}
|
||||
|
||||
{% block headermeta %}{% endblock headermeta %}
|
||||
|
||||
{% block innercontent %}
|
||||
<script type="text/javascript" src="{% static "ckeditor/ckeditor-init.js" %}"></script>
|
||||
<script type="text/javascript" src="{% static "ckeditor/ckeditor/ckeditor.js" %}"></script>
|
||||
|
||||
<div class="user-action-form-wrap">
|
||||
<div class="user-action-form-inner">
|
||||
<h1>Edit Media</h1>
|
||||
<form enctype="multipart/form-data" action="" method="post" class="post-form">
|
||||
{% csrf_token %}
|
||||
{{ form|crispy }}
|
||||
<button class="primaryAction" type="submit">Update Media</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock innercontent %}
|
||||
|
||||
13
templates/cms/embed.html
Normal file
13
templates/cms/embed.html
Normal file
@@ -0,0 +1,13 @@
|
||||
{% extends "root.html" %}
|
||||
{% load static %}
|
||||
|
||||
{% block topimports %}
|
||||
<link href="{% static "css/embed.css" %}" rel="preload" as="style">
|
||||
<link href="{% static "css/embed.css" %}" rel="stylesheet">
|
||||
{%endblock topimports %}
|
||||
|
||||
{% block content %}<div id="page-embed"></div>{% endblock content %}
|
||||
|
||||
{% block bottomimports %}
|
||||
<script src="{% static "js/embed.js" %}"></script>
|
||||
{% endblock bottomimports %}
|
||||
47
templates/cms/featured-media.html
Normal file
47
templates/cms/featured-media.html
Normal file
@@ -0,0 +1,47 @@
|
||||
{% extends "base.html" %}
|
||||
{% load static %}
|
||||
|
||||
{% block headtitle %}Featured - {{PORTAL_NAME}}{% endblock headtitle %}
|
||||
|
||||
{% block headermeta %}
|
||||
|
||||
<meta property="og:title" content="Featured - {{PORTAL_NAME}}">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:description" content="">
|
||||
|
||||
<meta name="twitter:card" content="summary">
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BreadcrumbList",
|
||||
"itemListElement": [{
|
||||
"@type": "ListItem",
|
||||
"position": 1,
|
||||
"name": "{{PORTAL_NAME}}",
|
||||
"item": {
|
||||
"@type": "WebPage",
|
||||
"@id": "{{FRONTEND_HOST}}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 2,
|
||||
"name": "Featured",
|
||||
"item": {
|
||||
"@type": "WebPage",
|
||||
"@id": "{{FRONTEND_HOST}}/featured"
|
||||
}
|
||||
}]
|
||||
}
|
||||
</script>
|
||||
|
||||
{% endblock headermeta %}
|
||||
|
||||
{% block content %}
|
||||
{% if user %}<div id="page-featured"></div>{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block bottomimports %}
|
||||
<script src="{% static "js/featured.js" %}"></script>
|
||||
{% endblock bottomimports %}
|
||||
17
templates/cms/history.html
Normal file
17
templates/cms/history.html
Normal file
@@ -0,0 +1,17 @@
|
||||
{% extends "base.html" %}
|
||||
{% load static %}
|
||||
|
||||
{% block headtitle %}History - {{PORTAL_NAME}}{% endblock headtitle %}
|
||||
|
||||
{% block topimports %}
|
||||
<link href="{% static "css/history.css" %}" rel="preload" as="style">
|
||||
<link href="{% static "css/history.css" %}" rel="stylesheet">
|
||||
{%endblock topimports %}
|
||||
|
||||
{% block content %}
|
||||
{% if user %}<div id="page-history"></div>{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block bottomimports %}
|
||||
<script src="{% static "js/history.js" %}"></script>
|
||||
{% endblock bottomimports %}
|
||||
50
templates/cms/index.html
Normal file
50
templates/cms/index.html
Normal file
@@ -0,0 +1,50 @@
|
||||
{% extends "base.html" %}
|
||||
{% load static %}
|
||||
|
||||
{% block headermeta %}
|
||||
|
||||
<link rel="canonical" href="{{FRONTEND_HOST}}{{media_object.get_absolute_url}}">
|
||||
|
||||
<meta property="og:title" content="{{PORTAL_NAME}}">
|
||||
<meta property="og:url" content="{{FRONTEND_HOST}}">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:description" content="">
|
||||
|
||||
<meta name="twitter:card" content="summary">
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "WebSite",
|
||||
"url": "{{FRONTEND_HOST}}",
|
||||
"potentialAction": {
|
||||
"@type": "SearchAction",
|
||||
"target": "{{FRONTEND_HOST}}/search?q={search_query_string}",
|
||||
"query-input": "required name=search_query_string"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BreadcrumbList",
|
||||
"itemListElement": [{
|
||||
"@type": "ListItem",
|
||||
"position": 1,
|
||||
"name": "{{PORTAL_NAME}}",
|
||||
"item": {
|
||||
"@type": "WebPage",
|
||||
"@id": "{{FRONTEND_HOST}}"
|
||||
}
|
||||
}]
|
||||
}
|
||||
</script>
|
||||
|
||||
{% endblock headermeta %}
|
||||
|
||||
{% block content %}<div id="page-home"></div>{% endblock %}
|
||||
|
||||
{% block bottomimports %}
|
||||
<script src="{% static "js/index.js" %}"></script>
|
||||
{% endblock bottomimports %}
|
||||
47
templates/cms/latest-media.html
Normal file
47
templates/cms/latest-media.html
Normal file
@@ -0,0 +1,47 @@
|
||||
{% extends "base.html" %}
|
||||
{% load static %}
|
||||
|
||||
{% block headtitle %}Recent uploads - {{PORTAL_NAME}}{% endblock headtitle %}
|
||||
|
||||
{% block headermeta %}
|
||||
|
||||
<meta property="og:title" content="Recent uploads - {{PORTAL_NAME}}">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:description" content="">
|
||||
|
||||
<meta name="twitter:card" content="summary">
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BreadcrumbList",
|
||||
"itemListElement": [{
|
||||
"@type": "ListItem",
|
||||
"position": 1,
|
||||
"name": "{{PORTAL_NAME}}",
|
||||
"item": {
|
||||
"@type": "WebPage",
|
||||
"@id": "{{FRONTEND_HOST}}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 2,
|
||||
"name": "Recent uploads",
|
||||
"item": {
|
||||
"@type": "WebPage",
|
||||
"@id": "{{FRONTEND_HOST}}/latest"
|
||||
}
|
||||
}]
|
||||
}
|
||||
</script>
|
||||
|
||||
{% endblock headermeta %}
|
||||
|
||||
{% block content %}
|
||||
{% if user %}<div id="page-latest"></div>{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block bottomimports %}
|
||||
<script src="{% static "js/latest.js" %}"></script>
|
||||
{% endblock bottomimports %}
|
||||
17
templates/cms/liked_media.html
Normal file
17
templates/cms/liked_media.html
Normal file
@@ -0,0 +1,17 @@
|
||||
{% extends "base.html" %}
|
||||
{% load static %}
|
||||
|
||||
{% block headtitle %}Liked media - {{PORTAL_NAME}}{% endblock headtitle %}
|
||||
|
||||
{% block topimports %}
|
||||
<link href="{% static "css/liked.css" %}" rel="preload" as="style">
|
||||
<link href="{% static "css/liked.css" %}" rel="stylesheet">
|
||||
{%endblock topimports %}
|
||||
|
||||
{% block content %}
|
||||
{% if user %}<div id="page-liked"></div>{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block bottomimports %}
|
||||
<script src="{% static "js/liked.js" %}"></script>
|
||||
{% endblock bottomimports %}
|
||||
18
templates/cms/manage_comments.html
Normal file
18
templates/cms/manage_comments.html
Normal file
@@ -0,0 +1,18 @@
|
||||
{% extends "base.html" %}
|
||||
{% load static %}
|
||||
|
||||
{% block headtitle %}Manage comments - {{PORTAL_NAME}}{% endblock headtitle %}
|
||||
|
||||
{% block headermeta %}
|
||||
|
||||
<meta property="og:title" content="Manage comments - {{PORTAL_NAME}}">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:description" content="">
|
||||
|
||||
{% endblock headermeta %}
|
||||
|
||||
{% block content %}<div id="page-manage-comments"></div>{% endblock %}
|
||||
|
||||
{% block bottomimports %}
|
||||
<script src="{% static "js/manage-comments.js" %}"></script>
|
||||
{% endblock bottomimports %}
|
||||
19
templates/cms/manage_media.html
Normal file
19
templates/cms/manage_media.html
Normal file
@@ -0,0 +1,19 @@
|
||||
{% extends "base.html" %}
|
||||
{% load static %}
|
||||
|
||||
{% block headtitle %}Manage media - {{PORTAL_NAME}}{% endblock headtitle %}
|
||||
|
||||
{% block headermeta %}
|
||||
|
||||
<meta property="og:title" content="Manage media - {{PORTAL_NAME}}">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:description" content="">
|
||||
|
||||
{% endblock headermeta %}
|
||||
|
||||
{% block content %}<div id="page-manage-media"></div>{% endblock %}
|
||||
|
||||
{% block bottomimports %}
|
||||
<script src="{% static "js/manage-media.js" %}"></script>
|
||||
{% endblock bottomimports %}
|
||||
|
||||
18
templates/cms/manage_users.html
Normal file
18
templates/cms/manage_users.html
Normal file
@@ -0,0 +1,18 @@
|
||||
{% extends "base.html" %}
|
||||
{% load static %}
|
||||
|
||||
{% block headtitle %}Manage users - {{PORTAL_NAME}}{% endblock headtitle %}
|
||||
|
||||
{% block headermeta %}
|
||||
|
||||
<meta property="og:title" content="Manage users - {{PORTAL_NAME}}">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:description" content="">
|
||||
|
||||
{% endblock headermeta %}
|
||||
|
||||
{% block content %}<div id="page-manage-users"></div>{% endblock %}
|
||||
|
||||
{% block bottomimports %}
|
||||
<script src="{% static "js/manage-users.js" %}"></script>
|
||||
{% endblock bottomimports %}
|
||||
128
templates/cms/media.html
Normal file
128
templates/cms/media.html
Normal file
@@ -0,0 +1,128 @@
|
||||
{% extends "base.html" %}
|
||||
{% load static %}
|
||||
|
||||
{% block headtitle %}{{media_object.title}} - {{PORTAL_NAME}}{% endblock headtitle %}
|
||||
|
||||
{% block headermeta %}
|
||||
|
||||
<link rel="canonical" href="{{FRONTEND_HOST}}{{media_object.get_absolute_url}}">
|
||||
|
||||
<meta name="description" content="{% if media_object.summary %}{{media_object.summary}}{% else %}{{media_object.description}}{% endif %}">
|
||||
|
||||
<meta property="og:title" content="{{media_object.title}} - {{PORTAL_NAME}}">
|
||||
<meta property="og:url" content="{{FRONTEND_HOST}}{{media_object.get_absolute_url}}">
|
||||
<meta property="og:description" content="{% if media_object.summary %}{{media_object.summary}}{% else %}{{media_object.description}}{% endif %}">
|
||||
<meta property="og:updated_time" content="{{media_object.edit_date}}">
|
||||
|
||||
{% if media_object.media_type == "video" %}
|
||||
<meta property="og:type" content="video.other">
|
||||
{% else %}
|
||||
<meta property="og:type" content="website">
|
||||
{% endif %}
|
||||
|
||||
{% if media_object.media_type == "video" %}
|
||||
|
||||
<meta property="og:image" content="{{FRONTEND_HOST}}{{media_object.poster_url}}">
|
||||
|
||||
<meta name="twitter:card" content="summary_large_image">
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "http://schema.org",
|
||||
"@type": "VideoObject",
|
||||
"name": "{{media_object.title}} - {{PORTAL_NAME}}",
|
||||
"url": "{{FRONTEND_HOST}}{{media_object.get_absolute_url}}",
|
||||
"description": "{% if media_object.summary %}{{media_object.summary}}{% else %}{{media_object.description}}{% endif %}",
|
||||
"thumbnailUrl": [
|
||||
"{{FRONTEND_HOST}}{{media_object.poster_url}}"
|
||||
],
|
||||
"uploadDate": "{{media_object.add_date}}",
|
||||
"dateModified": "{{media_object.edit_date}}",
|
||||
"embedUrl": "{{FRONTEND_HOST}}/embed?m={{media}}",
|
||||
"duration": "T{{media_object.duration}}S",
|
||||
"potentialAction": {
|
||||
"@type": "ViewAction",
|
||||
"target": "{{FRONTEND_HOST}}{{media_object.get_absolute_url}}"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
{% elif media_object.media_type == "audio" %}
|
||||
|
||||
<meta property="og:image" content="{{FRONTEND_HOST}}{{media_object.poster_url}}">
|
||||
|
||||
<meta name="twitter:card" content="summary_large_image">
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "http://schema.org",
|
||||
"@type": "AudioObject",
|
||||
"name": "{{media_object.title}} - {{PORTAL_NAME}}",
|
||||
"url": "{{FRONTEND_HOST}}{{media_object.get_absolute_url}}",
|
||||
"description": "{% if media_object.summary %}{{media_object.summary}}{% else %}{{media_object.description}}{% endif %}",
|
||||
"uploadDate": "{{media_object.add_date}}",
|
||||
"dateModified": "{{media_object.edit_date}}",
|
||||
"duration": "T{{media_object.duration}}S",
|
||||
"potentialAction": {
|
||||
"@type": "ViewAction",
|
||||
"target": "{{FRONTEND_HOST}}{{media_object.get_absolute_url}}"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
{% elif media_object.media_type == "image" %}
|
||||
|
||||
<meta property="og:image" content="{{FRONTEND_HOST}}{{media_object.original_media_url}}">
|
||||
|
||||
<meta name="twitter:card" content="summary_large_image">
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "http://schema.org",
|
||||
"@type": "ImageObject",
|
||||
"name": "{{media_object.title}} - {{PORTAL_NAME}}",
|
||||
"url": "{{FRONTEND_HOST}}{{media_object.get_absolute_url}}",
|
||||
"description": "{% if media_object.summary %}{{media_object.summary}}{% else %}{{media_object.description}}{% endif %}",
|
||||
"uploadDate": "{{media_object.add_date}}",
|
||||
"dateModified": "{{media_object.edit_date}}",
|
||||
"potentialAction": {
|
||||
"@type": "ViewAction",
|
||||
"target": "{{FRONTEND_HOST}}{{media_object.get_absolute_url}}"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
{% else %}
|
||||
|
||||
<meta name="twitter:card" content="summary">
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "http://schema.org",
|
||||
"@type": "MediaObject",
|
||||
"name": "{{media_object.title}} - {{PORTAL_NAME}}",
|
||||
"url": "{{FRONTEND_HOST}}{{media_object.get_absolute_url}}",
|
||||
"description": "{% if media_object.summary %}{{media_object.summary}}{% else %}{{media_object.description}}{% endif %}",
|
||||
"uploadDate": "{{media_object.add_date}}",
|
||||
"dateModified": "{{media_object.edit_date}}",
|
||||
"potentialAction": {
|
||||
"@type": "ViewAction",
|
||||
"target": "{{FRONTEND_HOST}}{{media_object.get_absolute_url}}"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
{% endif %}
|
||||
|
||||
{% endblock headermeta %}
|
||||
|
||||
{% block topimports %}
|
||||
<link href="{% static "css/media.css" %}" rel="preload" as="style">
|
||||
<link href="{% static "css/media.css" %}" rel="stylesheet">
|
||||
{%endblock topimports %}
|
||||
|
||||
{% block content %}<div id="page-media"></div>{% endblock content %}
|
||||
|
||||
{% block bottomimports %}
|
||||
<script src="{% static "js/media.js" %}"></script>
|
||||
{% endblock bottomimports %}
|
||||
45
templates/cms/members.html
Normal file
45
templates/cms/members.html
Normal file
@@ -0,0 +1,45 @@
|
||||
{% extends "base.html" %}
|
||||
{% load static %}
|
||||
|
||||
{% block headtitle %}Members - {{PORTAL_NAME}}{% endblock headtitle %}
|
||||
|
||||
{% block headermeta %}
|
||||
|
||||
<meta property="og:title" content="Members - {{PORTAL_NAME}}">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:description" content="">
|
||||
|
||||
<meta name="twitter:card" content="summary">
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BreadcrumbList",
|
||||
"itemListElement": [{
|
||||
"@type": "ListItem",
|
||||
"position": 1,
|
||||
"name": "{{PORTAL_NAME}}",
|
||||
"item": {
|
||||
"@type": "WebPage",
|
||||
"@id": "{{FRONTEND_HOST}}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 2,
|
||||
"name": "Members",
|
||||
"item": {
|
||||
"@type": "WebPage",
|
||||
"@id": "{{FRONTEND_HOST}}/members"
|
||||
}
|
||||
}]
|
||||
}
|
||||
</script>
|
||||
|
||||
{% endblock headermeta %}
|
||||
|
||||
{% block content %}<div id="page-members"></div>{% endblock %}
|
||||
|
||||
{% block bottomimports %}
|
||||
<script src="{% static "js/members.js" %}"></script>
|
||||
{% endblock bottomimports %}
|
||||
47
templates/cms/recommended-media.html
Normal file
47
templates/cms/recommended-media.html
Normal file
@@ -0,0 +1,47 @@
|
||||
{% extends "base.html" %}
|
||||
{% load static %}
|
||||
|
||||
{% block headtitle %}Recommended - {{PORTAL_NAME}}{% endblock headtitle %}
|
||||
|
||||
{% block headermeta %}
|
||||
|
||||
<meta property="og:title" content="Recommended - {{PORTAL_NAME}}">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:description" content="">
|
||||
|
||||
<meta name="twitter:card" content="summary">
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BreadcrumbList",
|
||||
"itemListElement": [{
|
||||
"@type": "ListItem",
|
||||
"position": 1,
|
||||
"name": "{{PORTAL_NAME}}",
|
||||
"item": {
|
||||
"@type": "WebPage",
|
||||
"@id": "{{FRONTEND_HOST}}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 2,
|
||||
"name": "Recommended",
|
||||
"item": {
|
||||
"@type": "WebPage",
|
||||
"@id": "{{FRONTEND_HOST}}/recommended"
|
||||
}
|
||||
}]
|
||||
}
|
||||
</script>
|
||||
|
||||
{% endblock headermeta %}
|
||||
|
||||
{% block content %}
|
||||
{% if user %}<div id="page-recommended"></div>{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block bottomimports %}
|
||||
<script src="{% static "js/recommended.js" %}"></script>
|
||||
{% endblock bottomimports %}
|
||||
10
templates/cms/search.html
Normal file
10
templates/cms/search.html
Normal file
@@ -0,0 +1,10 @@
|
||||
{% extends "base.html" %}
|
||||
{% load static %}
|
||||
|
||||
{% block content %}
|
||||
{% if user %}<div id="page-search"></div>{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block bottomimports %}
|
||||
<script src="{% static "js/search.js" %}"></script>
|
||||
{% endblock bottomimports %}
|
||||
45
templates/cms/tags.html
Normal file
45
templates/cms/tags.html
Normal file
@@ -0,0 +1,45 @@
|
||||
{% extends "base.html" %}
|
||||
{% load static %}
|
||||
|
||||
{% block headtitle %}Tags - {{PORTAL_NAME}}{% endblock headtitle %}
|
||||
|
||||
{% block headermeta %}
|
||||
|
||||
<meta property="og:title" content="Tags - {{PORTAL_NAME}}">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:description" content="">
|
||||
|
||||
<meta name="twitter:card" content="summary">
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BreadcrumbList",
|
||||
"itemListElement": [{
|
||||
"@type": "ListItem",
|
||||
"position": 1,
|
||||
"name": "{{PORTAL_NAME}}",
|
||||
"item": {
|
||||
"@type": "WebPage",
|
||||
"@id": "{{FRONTEND_HOST}}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 2,
|
||||
"name": "Tags",
|
||||
"item": {
|
||||
"@type": "WebPage",
|
||||
"@id": "{{FRONTEND_HOST}}/tags"
|
||||
}
|
||||
}]
|
||||
}
|
||||
</script>
|
||||
|
||||
{% endblock headermeta %}
|
||||
|
||||
{% block content %}<div id="page-tags"></div>{% endblock %}
|
||||
|
||||
{% block bottomimports %}
|
||||
<script src="{% static "js/tags.js" %}"></script>
|
||||
{% endblock bottomimports %}
|
||||
46
templates/cms/tos.html
Normal file
46
templates/cms/tos.html
Normal file
@@ -0,0 +1,46 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block headtitle %}Terms - {{PORTAL_NAME}}{% endblock headtitle %}
|
||||
|
||||
{% block headermeta %}
|
||||
|
||||
<meta property="og:title" content="Terms - {{PORTAL_NAME}}">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:description" content="">
|
||||
|
||||
<meta name="twitter:card" content="summary">
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BreadcrumbList",
|
||||
"itemListElement": [{
|
||||
"@type": "ListItem",
|
||||
"position": 1,
|
||||
"name": "{{PORTAL_NAME}}",
|
||||
"item": {
|
||||
"@type": "WebPage",
|
||||
"@id": "{{FRONTEND_HOST}}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 2,
|
||||
"name": "Terms",
|
||||
"item": {
|
||||
"@type": "WebPage",
|
||||
"@id": "{{FRONTEND_HOST}}/terms"
|
||||
}
|
||||
}]
|
||||
}
|
||||
</script>
|
||||
|
||||
{% endblock headermeta %}
|
||||
|
||||
{% block innercontent %}
|
||||
<div class="custom-page-wrapper">
|
||||
<h2>Terms</h2>
|
||||
<hr/>
|
||||
<p>Terms of service</p>
|
||||
</div>
|
||||
{% endblock %}
|
||||
33
templates/cms/user.html
Normal file
33
templates/cms/user.html
Normal file
@@ -0,0 +1,33 @@
|
||||
{% extends "base.html" %}
|
||||
{% load static %}
|
||||
|
||||
{% block headtitle %}{% if user.name %}{{user.name}} - {% endif %}{{PORTAL_NAME}}{% endblock headtitle %}
|
||||
|
||||
{% block headermeta %}
|
||||
|
||||
<meta property="og:title" content="{% if user.name %}{{user.name}} - {% endif %}{{PORTAL_NAME}}">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:description" content="">
|
||||
|
||||
<meta name="twitter:card" content="summary">
|
||||
|
||||
{% endblock headermeta %}
|
||||
|
||||
{% block topimports %}
|
||||
<link href="{% static "css/profile-home.css" %}" rel="preload" as="style">
|
||||
<link href="{% static "css/profile-home.css" %}" rel="stylesheet">
|
||||
{%endblock topimports %}
|
||||
|
||||
{% block innercontent %}
|
||||
{% if user %}{% else %}
|
||||
No such user
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
{% if user %}<div id="page-profile-home"></div>{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block bottomimports %}
|
||||
<script src="{% static "js/profile-home.js" %}"></script>
|
||||
{% endblock bottomimports %}
|
||||
33
templates/cms/user_about.html
Normal file
33
templates/cms/user_about.html
Normal file
@@ -0,0 +1,33 @@
|
||||
{% extends "base.html" %}
|
||||
{% load static %}
|
||||
|
||||
{% block headtitle %}{% if user.name %}{{user.name}} - {% endif %}About - {{PORTAL_NAME}}{% endblock headtitle %}
|
||||
|
||||
{% block headermeta %}
|
||||
|
||||
<meta property="og:title" content="{% if user.name %}{{user.name}} - {% endif %}About - {{PORTAL_NAME}}">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:description" content="">
|
||||
|
||||
<meta name="twitter:card" content="summary">
|
||||
|
||||
{% endblock headermeta %}
|
||||
|
||||
{% block topimports %}
|
||||
<link href="{% static "css/profile-about.css" %}" rel="preload" as="style">
|
||||
<link href="{% static "css/profile-about.css" %}" rel="stylesheet">
|
||||
{%endblock topimports %}
|
||||
|
||||
{% block innercontent %}
|
||||
{% if user %}{% else %}
|
||||
No such user
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
{% if user %}<div id="page-profile-about"></div>{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block bottomimports %}
|
||||
<script src="{% static "js/profile-about.js" %}"></script>
|
||||
{% endblock bottomimports %}
|
||||
19
templates/cms/user_edit.html
Normal file
19
templates/cms/user_edit.html
Normal file
@@ -0,0 +1,19 @@
|
||||
{% extends "base.html" %}
|
||||
{% load static %}
|
||||
{% block headtitle %}Edit profile - {% endblock headtitle %}
|
||||
|
||||
{% block innercontent %}
|
||||
<script type="text/javascript" src="{% static "ckeditor/ckeditor-init.js" %}"></script>
|
||||
<script type="text/javascript" src="{% static "ckeditor/ckeditor/ckeditor.js" %}"></script>
|
||||
|
||||
<div class="user-action-form-wrap">
|
||||
<div class="user-action-form-inner">
|
||||
<h1>Edit Profile</h1>
|
||||
<form enctype="multipart/form-data" action="" method="post" class="post-form">
|
||||
{% csrf_token %}
|
||||
{{ form.as_p }}
|
||||
<button class="primaryAction" type="submit">Update Profile</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock innercontent %}
|
||||
Reference in New Issue
Block a user