2019-04-23 01:40:42 +00:00
|
|
|
|
{% load i18n static %}<!DOCTYPE html>
|
|
|
|
|
{% get_current_language as LANGUAGE_CODE %}{% get_current_language_bidi as LANGUAGE_BIDI %}
|
|
|
|
|
<html lang="{{ LANGUAGE_CODE|default:"en-us" }}" {% if LANGUAGE_BIDI %}dir="rtl"{% endif %}>
|
|
|
|
|
<head>
|
2020-07-28 03:26:45 +00:00
|
|
|
|
<title>{% block title %}{% endblock %} | ArchiveBox</title>
|
2019-04-23 01:40:42 +00:00
|
|
|
|
<link rel="stylesheet" type="text/css" href="{% block stylesheet %}{% static "admin/css/base.css" %}{% endblock %}">
|
|
|
|
|
{% block extrastyle %}{% endblock %}
|
|
|
|
|
{% if LANGUAGE_BIDI %}<link rel="stylesheet" type="text/css" href="{% block stylesheet_rtl %}{% static "admin/css/rtl.css" %}{% endblock %}">{% endif %}
|
|
|
|
|
{% block extrahead %}{% endblock %}
|
|
|
|
|
{% block responsive %}
|
|
|
|
|
<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1.0, maximum-scale=1.0">
|
|
|
|
|
<link rel="stylesheet" type="text/css" href="{% static "admin/css/responsive.css" %}">
|
|
|
|
|
{% if LANGUAGE_BIDI %}<link rel="stylesheet" type="text/css" href="{% static "admin/css/responsive_rtl.css" %}">{% endif %}
|
|
|
|
|
{% endblock %}
|
|
|
|
|
{% block blockbots %}<meta name="robots" content="NONE,NOARCHIVE">{% endblock %}
|
2020-07-28 03:26:45 +00:00
|
|
|
|
<link rel="stylesheet" type="text/css" href="{% static "admin.css" %}">
|
2019-04-23 01:40:42 +00:00
|
|
|
|
</head>
|
|
|
|
|
{% load i18n %}
|
|
|
|
|
|
|
|
|
|
<body class="{% if is_popup %}popup {% endif %}{% block bodyclass %}{% endblock %}"
|
|
|
|
|
data-admin-utc-offset="{% now "Z" %}">
|
|
|
|
|
|
2020-07-28 10:00:09 +00:00
|
|
|
|
<style nonce="{{nonce}}">
|
|
|
|
|
/* Loading Progress Bar */
|
|
|
|
|
#progress {
|
|
|
|
|
position: absolute;
|
|
|
|
|
z-index: 1000;
|
|
|
|
|
top: 0px;
|
|
|
|
|
left: -6px;
|
|
|
|
|
width: 2%;
|
|
|
|
|
opacity: 1;
|
|
|
|
|
height: 2px;
|
|
|
|
|
background: #1a1a1a;
|
|
|
|
|
border-radius: 1px;
|
|
|
|
|
transition: width 4s ease-out, opacity 400ms linear;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@-moz-keyframes bugfix { from { padding-right: 1px ; } to { padding-right: 0; } }
|
|
|
|
|
</style>
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
// Page Loading Bar
|
|
|
|
|
window.loadStart = function(distance) {
|
|
|
|
|
var distance = distance || 0;
|
|
|
|
|
// only add progrstess bar if not already present
|
|
|
|
|
if (django.jQuery("#loading-bar").length == 0) {
|
|
|
|
|
django.jQuery("body").add("<div id=\"loading-bar\"></div>");
|
|
|
|
|
}
|
|
|
|
|
if (django.jQuery("#progress").length === 0) {
|
|
|
|
|
django.jQuery("body").append(django.jQuery("<div></div>").attr("id", "progress"));
|
|
|
|
|
let last_distance = (distance || (30 + (Math.random() * 30)))
|
|
|
|
|
django.jQuery("#progress").width(last_distance + "%");
|
|
|
|
|
setInterval(function() {
|
|
|
|
|
last_distance += Math.random()
|
|
|
|
|
django.jQuery("#progress").width(last_distance + "%");
|
|
|
|
|
}, 1000)
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
window.loadFinish = function() {
|
|
|
|
|
django.jQuery("#progress").width("101%").delay(200).fadeOut(400, function() {
|
|
|
|
|
django.jQuery(this).remove();
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
window.loadStart();
|
|
|
|
|
window.addEventListener('beforeunload', function() {window.loadStart(27)});
|
|
|
|
|
document.addEventListener('DOMContentLoaded', function() {window.loadFinish()});
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
2019-04-23 01:40:42 +00:00
|
|
|
|
<!-- Container -->
|
|
|
|
|
<div id="container">
|
|
|
|
|
|
|
|
|
|
{% if not is_popup %}
|
|
|
|
|
<!-- Header -->
|
|
|
|
|
<div id="header">
|
|
|
|
|
<div id="branding">
|
2020-07-28 10:00:09 +00:00
|
|
|
|
<h1 id="site-name">
|
|
|
|
|
<a href="{% url 'Home' %}">
|
|
|
|
|
<img src="{% static 'archive.png' %}" id="logo">
|
|
|
|
|
ArchiveBox
|
|
|
|
|
</a>
|
|
|
|
|
</h1>
|
|
|
|
|
|
2019-04-23 01:40:42 +00:00
|
|
|
|
</div>
|
|
|
|
|
{% block usertools %}
|
|
|
|
|
{% if has_permission %}
|
|
|
|
|
<div id="user-tools">
|
2020-07-28 10:00:09 +00:00
|
|
|
|
<a href="{% url 'admin:Add' %}">Add ➕</a> /
|
2020-07-28 10:03:52 +00:00
|
|
|
|
<a href="{% url 'Home' %}">Snapshots</a> /
|
2020-10-31 11:57:06 +00:00
|
|
|
|
<a href="/admin/core/tag/">Tags</a> /
|
2020-07-28 10:00:09 +00:00
|
|
|
|
<a href="/admin/auth/user/">Users</a> /
|
2020-07-28 03:56:35 +00:00
|
|
|
|
<a href="{% url 'Docs' %}">Docs</a>
|
2019-04-23 01:40:42 +00:00
|
|
|
|
|
|
|
|
|
{% block welcome-msg %}
|
|
|
|
|
{% trans 'User' %}
|
|
|
|
|
<strong>{% firstof user.get_short_name user.get_username %}</strong>
|
|
|
|
|
{% endblock %}
|
|
|
|
|
{% block userlinks %}
|
|
|
|
|
{% if user.is_active and user.is_staff %}
|
|
|
|
|
{% url 'django-admindocs-docroot' as docsroot %}
|
|
|
|
|
{% if docsroot %}
|
|
|
|
|
<a href="{{ docsroot }}">{% trans 'Documentation' %}</a> /
|
|
|
|
|
{% endif %}
|
|
|
|
|
{% endif %}
|
|
|
|
|
{% if user.has_usable_password %}
|
|
|
|
|
<a href="{% url 'admin:password_change' %}">{% trans 'Change password' %}</a> /
|
|
|
|
|
{% endif %}
|
|
|
|
|
<a href="{% url 'admin:logout' %}">{% trans 'Log out' %}</a>
|
2020-12-12 04:03:46 +00:00
|
|
|
|
|
|
2020-12-14 17:11:44 +00:00
|
|
|
|
<a> <span id="snapshotListView" style="cursor: pointer">☰</span> </a>
|
|
|
|
|
<a> <span id="snapshotGridView"style="letter-spacing: -.4em; cursor: pointer;">⣿⣿</span></a>
|
2019-04-23 01:40:42 +00:00
|
|
|
|
{% endblock %}
|
|
|
|
|
</div>
|
|
|
|
|
{% endif %}
|
|
|
|
|
{% endblock %}
|
|
|
|
|
{% block nav-global %}{% endblock %}
|
|
|
|
|
</div>
|
2020-07-28 10:00:09 +00:00
|
|
|
|
<!-- END Header -->
|
|
|
|
|
{% block breadcrumbs %}
|
|
|
|
|
<div class="breadcrumbs">
|
|
|
|
|
<a href="{% url 'admin:index' %}">{% trans 'Home' %}</a>
|
|
|
|
|
{% if title %} › {{ title }}{% endif %}
|
|
|
|
|
</div>
|
|
|
|
|
{% endblock %}
|
2019-04-23 01:40:42 +00:00
|
|
|
|
{% endif %}
|
|
|
|
|
|
|
|
|
|
{% block messages %}
|
|
|
|
|
{% if messages %}
|
|
|
|
|
<ul class="messagelist">{% for message in messages %}
|
|
|
|
|
<li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message|capfirst }}</li>
|
|
|
|
|
{% endfor %}</ul>
|
|
|
|
|
{% endif %}
|
|
|
|
|
{% endblock messages %}
|
|
|
|
|
|
|
|
|
|
<!-- Content -->
|
|
|
|
|
<div id="content" class="{% block coltype %}colM{% endblock %}">
|
|
|
|
|
{% block pretitle %}{% endblock %}
|
2020-07-28 03:26:45 +00:00
|
|
|
|
{% block content_title %}{# {% if title %}<h1>{{ title }}</h1>{% endif %} #}{% endblock %}
|
2019-04-23 01:40:42 +00:00
|
|
|
|
{% block content %}
|
2020-07-28 09:59:54 +00:00
|
|
|
|
{% block object-tools %}{% endblock %}
|
|
|
|
|
{{ content }}
|
2019-04-23 01:40:42 +00:00
|
|
|
|
{% endblock %}
|
|
|
|
|
{% block sidebar %}{% endblock %}
|
|
|
|
|
<br class="clear">
|
|
|
|
|
</div>
|
|
|
|
|
<!-- END Content -->
|
|
|
|
|
|
|
|
|
|
{% block footer %}<div id="footer"></div>{% endblock %}
|
|
|
|
|
</div>
|
|
|
|
|
<!-- END Container -->
|
|
|
|
|
|
2020-07-28 10:00:09 +00:00
|
|
|
|
<script>
|
|
|
|
|
(function ($) {
|
|
|
|
|
$.fn.reverse = [].reverse;
|
|
|
|
|
|
|
|
|
|
function fix_actions() {
|
|
|
|
|
var container = $('div.actions');
|
|
|
|
|
|
|
|
|
|
if (container.find('option').length < 10) {
|
|
|
|
|
container.find('label, button').hide();
|
|
|
|
|
|
|
|
|
|
var buttons = $('<div></div>')
|
|
|
|
|
.prependTo(container)
|
|
|
|
|
.css('display', 'inline')
|
|
|
|
|
.addClass('class', 'action-buttons');
|
|
|
|
|
|
|
|
|
|
container.find('option:gt(0)').reverse().each(function () {
|
|
|
|
|
const name = this.value
|
|
|
|
|
$('<button>')
|
|
|
|
|
.appendTo(buttons)
|
|
|
|
|
.attr('name', this.value)
|
|
|
|
|
.addClass('button')
|
|
|
|
|
.text(this.text)
|
|
|
|
|
.click(function () {
|
|
|
|
|
container.find('select')
|
|
|
|
|
.find(':selected').attr('selected', '').end()
|
|
|
|
|
.find('[value=' + this.name + ']').attr('selected', 'selected');
|
|
|
|
|
$('#changelist-form button[name="index"]').click();
|
|
|
|
|
document.querySelector('#logo').outerHTML = '<div class="loader"></div>'
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
};
|
2020-12-14 17:11:44 +00:00
|
|
|
|
|
|
|
|
|
function redirectWithQuery(uri){
|
|
|
|
|
uri_query = uri + document.location.search;
|
|
|
|
|
window.location = uri_query;
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
2020-12-14 17:52:15 +00:00
|
|
|
|
function selectSnapshotListView(){
|
2020-12-14 18:00:13 +00:00
|
|
|
|
localStorage.setItem('currentSnapshotView', 'List');
|
2020-12-14 17:52:15 +00:00
|
|
|
|
redirectWithQuery("{% url 'admin:core_snapshot_changelist' %}");
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
function selectSnapshotGridView(){
|
2020-12-14 18:00:13 +00:00
|
|
|
|
localStorage.setItem('currentSnapshotView', 'Grid');
|
2020-12-14 17:52:15 +00:00
|
|
|
|
redirectWithQuery("{% url 'admin:grid' %}");
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
function setPreferredSnapshotView(view){
|
|
|
|
|
urlPath = window.location.pathname;
|
|
|
|
|
|
|
|
|
|
if((view==="Grid") && urlPath != "{% url 'admin:grid' %}"){
|
|
|
|
|
selectSnapshotGridView();
|
|
|
|
|
}
|
|
|
|
|
else if((view==="List") && urlPath != "{% url 'admin:core_snapshot_changelist' %}"){
|
|
|
|
|
selectSnapshotListView();
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
function setupSnapshotViews() {
|
|
|
|
|
const preferredSnapshotView = localStorage.getItem('currentSnapshotView');
|
|
|
|
|
setPreferredSnapshotView(preferredSnapshotView);
|
|
|
|
|
|
2020-12-14 17:11:44 +00:00
|
|
|
|
$( document ).ready(function() {
|
2020-12-14 17:52:15 +00:00
|
|
|
|
|
2020-12-14 17:11:44 +00:00
|
|
|
|
$("#snapshotListView").click(function() {
|
2020-12-14 17:52:15 +00:00
|
|
|
|
selectSnapshotListView();
|
2020-12-14 17:11:44 +00:00
|
|
|
|
});
|
|
|
|
|
$("#snapshotGridView").click(function() {
|
2020-12-14 17:52:15 +00:00
|
|
|
|
selectSnapshotGridView();
|
2020-12-14 17:11:44 +00:00
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
};
|
2020-07-28 10:00:09 +00:00
|
|
|
|
$(function () {
|
|
|
|
|
fix_actions();
|
2020-12-14 17:52:15 +00:00
|
|
|
|
setupSnapshotViews();
|
2020-07-28 10:00:09 +00:00
|
|
|
|
});
|
|
|
|
|
})(django.jQuery);
|
|
|
|
|
</script>
|
2019-04-23 01:40:42 +00:00
|
|
|
|
</body>
|
|
|
|
|
</html>
|