Aggiornato con i contenuti del remoto al 07/03/2024
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
/*global gettext*/
|
||||
/* copied from django 4.0.7 */
|
||||
'use strict';
|
||||
{
|
||||
window.addEventListener('load', function() {
|
||||
// Add anchor tag for Show/Hide link
|
||||
const fieldsets = document.querySelectorAll('fieldset.collapse');
|
||||
for (const [i, elem] of fieldsets.entries()) {
|
||||
// Don't hide if fields in this fieldset have errors
|
||||
if (elem.querySelectorAll('div.errors, ul.errorlist').length === 0) {
|
||||
const h2 = elem.querySelector('h2');
|
||||
const link = document.createElement('a');
|
||||
link.id = 'fieldsetcollapser' + i;
|
||||
link.className = 'collapse-toggle';
|
||||
link.href = '#';
|
||||
// changed: can opt into starting visible
|
||||
if (elem.classList.contains('expanded')) {
|
||||
link.textContent = gettext('Hide');
|
||||
} else {
|
||||
link.textContent = gettext('Show');
|
||||
elem.classList.add('collapsed');
|
||||
}
|
||||
h2.appendChild(document.createTextNode(' ('));
|
||||
h2.appendChild(link);
|
||||
h2.appendChild(document.createTextNode(')'));
|
||||
}
|
||||
}
|
||||
// Add toggle to hide/show anchor tag
|
||||
const toggleFunc = function(ev) {
|
||||
if (ev.target.matches('.collapse-toggle')) {
|
||||
ev.preventDefault();
|
||||
ev.stopPropagation();
|
||||
const fieldset = ev.target.closest('fieldset');
|
||||
if (fieldset.classList.contains('collapsed')) {
|
||||
// Show
|
||||
ev.target.textContent = gettext('Hide');
|
||||
fieldset.classList.remove('collapsed');
|
||||
} else {
|
||||
// Hide
|
||||
ev.target.textContent = gettext('Show');
|
||||
fieldset.classList.add('collapsed');
|
||||
}
|
||||
}
|
||||
};
|
||||
document.querySelectorAll('fieldset.module').forEach(function(el) {
|
||||
el.addEventListener('click', toggleFunc);
|
||||
});
|
||||
});
|
||||
}
|
||||
@@ -3,6 +3,7 @@
|
||||
'use strict';
|
||||
|
||||
var windowRef = window;
|
||||
var windowRefProxy;
|
||||
var windowName, widgetName;
|
||||
var openerRef = windowRef.opener;
|
||||
if (!openerRef) {
|
||||
@@ -14,13 +15,14 @@
|
||||
// django < 3.1 compatibility
|
||||
widgetName = openerRef.id_to_windowname(widgetName);
|
||||
}
|
||||
windowRef = {
|
||||
windowRefProxy = {
|
||||
name: widgetName,
|
||||
location: windowRef.location,
|
||||
close: function() {
|
||||
openerRef.dismissRelatedObjectModal();
|
||||
}
|
||||
};
|
||||
windowRef = windowRefProxy;
|
||||
}
|
||||
|
||||
// default django popup_response.js
|
||||
@@ -40,11 +42,7 @@
|
||||
if (typeof(openerRef.dismissAddRelatedObjectPopup) === 'function') {
|
||||
openerRef.dismissAddRelatedObjectPopup(windowRef, initData.value, initData.obj);
|
||||
}
|
||||
else if (typeof(openerRef.dismissAddAnotherPopup) === 'function') {
|
||||
// django 1.7 compatibility
|
||||
openerRef.dismissAddAnotherPopup(windowRef, initData.value, initData.obj);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
})();
|
||||
})();
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
/** global: django */
|
||||
|
||||
if (typeof(django) !== 'undefined' && typeof(django.jQuery) !== 'undefined')
|
||||
{
|
||||
(function($) {
|
||||
|
||||
$(document).ready(function(){
|
||||
|
||||
function collapsibleInline(scope, collapsed) {
|
||||
var fieldsetCollapsed = collapsed;
|
||||
var fieldsetEl = $(scope).find('> fieldset.module');
|
||||
fieldsetEl.addClass('collapse');
|
||||
var fieldsetHasErrors = (fieldsetEl.children('.errors').length > 0);
|
||||
if (fieldsetHasErrors === true) {
|
||||
fieldsetCollapsed = false;
|
||||
}
|
||||
if (fieldsetCollapsed === true) {
|
||||
fieldsetEl.addClass('collapsed');
|
||||
}
|
||||
var collapseToggleText = (fieldsetCollapsed ? gettext('Show') : gettext('Hide'));
|
||||
var collapseToggleHTML = ' (<a class="collapse-toggle" href="#">' + collapseToggleText + '</a>)';
|
||||
var headerEl = fieldsetEl.find('> h2,> h3');
|
||||
if (headerEl.find(".collapse-toggle").length === 0) {
|
||||
// don't add collapse toggle button if already present
|
||||
headerEl.append(collapseToggleHTML);
|
||||
}
|
||||
}
|
||||
|
||||
var stackedInlinesOptionSel = '.admin-interface.collapsible-stacked-inlines';
|
||||
var stackedInlinesSel = stackedInlinesOptionSel + ' .inline-group[data-inline-type="stacked"]';
|
||||
var stackedInlinesCollapsed = $(stackedInlinesOptionSel).hasClass('collapsible-stacked-inlines-collapsed');
|
||||
|
||||
var tabularInlinesOptionSel = '.admin-interface.collapsible-tabular-inlines';
|
||||
var tabularInlinesSel = tabularInlinesOptionSel + ' .inline-group[data-inline-type="tabular"] .inline-related.tabular';
|
||||
var tabularInlinesCollapsed = $(stackedInlinesOptionSel).hasClass('collapsible-tabular-inlines-collapsed');
|
||||
|
||||
$(stackedInlinesSel).each(function() {
|
||||
collapsibleInline(this, stackedInlinesCollapsed);
|
||||
});
|
||||
|
||||
$(tabularInlinesSel).each(function() {
|
||||
collapsibleInline(this, tabularInlinesCollapsed);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
})(django.jQuery);
|
||||
}
|
||||
@@ -0,0 +1,515 @@
|
||||
@media (prefers-color-scheme: dark) {
|
||||
:root .admin-interface {
|
||||
--primary: #79aec8;
|
||||
--secondary: #417690;
|
||||
--accent: #f5dd5d;
|
||||
--primary-fg: #fff;
|
||||
--body-fg: #333;
|
||||
--body-bg: #fff;
|
||||
--body-quiet-color: #666;
|
||||
--body-loud-color: #000;
|
||||
--header-color: #ffc;
|
||||
--header-branding-color: var(--accent);
|
||||
--header-bg: var(--secondary);
|
||||
--header-link-color: var(--primary-fg);
|
||||
--breadcrumbs-fg: #c4dce8;
|
||||
--breadcrumbs-link-fg: var(--body-bg);
|
||||
--breadcrumbs-bg: var(--primary);
|
||||
--link-fg: #447e9b;
|
||||
--link-hover-color: #036;
|
||||
--link-selected-fg: #5b80b2;
|
||||
--hairline-color: #e8e8e8;
|
||||
--border-color: #ccc;
|
||||
--error-fg: #ba2121;
|
||||
--message-success-bg: #dfd;
|
||||
--message-warning-bg: #ffc;
|
||||
--message-error-bg: #ffefef;
|
||||
--darkened-bg: #f8f8f8;
|
||||
--selected-bg: #e4e4e4;
|
||||
--selected-row: #ffc;
|
||||
--button-fg: #fff;
|
||||
--button-bg: var(--primary);
|
||||
--button-hover-bg: #609ab6;
|
||||
--default-button-bg: var(--secondary);
|
||||
--default-button-hover-bg: #205067;
|
||||
--close-button-bg: #888;
|
||||
--close-button-hover-bg: #747474;
|
||||
--delete-button-bg: #ba2121;
|
||||
--delete-button-hover-bg: #a41515;
|
||||
--object-tools-fg: var(--button-fg);
|
||||
--object-tools-bg: var(--close-button-bg);
|
||||
--object-tools-hover-bg: var(--close-button-hover-bg);
|
||||
}
|
||||
}
|
||||
|
||||
.admin-interface {
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
.admin-interface #header {
|
||||
background: var(--admin-interface-header-background-color);
|
||||
color: var(--admin-interface-header-text-color);
|
||||
}
|
||||
|
||||
.admin-interface #header + #main {
|
||||
border-top: var(--admin-interface-main-border-top);
|
||||
}
|
||||
|
||||
.admin-interface .environment-label {
|
||||
}
|
||||
|
||||
.admin-interface .environment-label::before {
|
||||
content: "";
|
||||
display: inline-block;
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
background-color: var(--admin-interface-env-color);
|
||||
border-radius: 100%;
|
||||
margin-right: 6px;
|
||||
box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
}
|
||||
|
||||
.admin-interface .environment-label::after {
|
||||
content: " - ";
|
||||
}
|
||||
|
||||
@media (max-width: 1024px) {
|
||||
.admin-interface .environment-label::after {
|
||||
content: "";
|
||||
}
|
||||
}
|
||||
|
||||
.admin-interface .language-chooser {
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
top: 15px;
|
||||
right: 15px;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
.admin-interface .language-chooser {
|
||||
right: 30px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1024px) {
|
||||
.admin-interface .language-chooser {
|
||||
position: static;
|
||||
float: right;
|
||||
margin-left: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
.admin-interface .language-chooser-hidden-form {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.admin-interface .language-chooser-select-form {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.admin-interface #branding h1,
|
||||
.admin-interface.login #header h1,
|
||||
.admin-interface.login #header h1 a {
|
||||
color: var(--admin-interface-title-color);
|
||||
}
|
||||
|
||||
.admin-interface #branding h1 a {
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.admin-interface #branding h1 .logo.default {
|
||||
background-color: transparent;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
background-size: 104px 36px;
|
||||
background-image: var(--admin-interface-logo-default-background-image);
|
||||
}
|
||||
|
||||
.admin-interface #branding h1 img.logo,
|
||||
.admin-interface.login #header #branding h1 img.logo {
|
||||
max-width: var(--admin-interface-logo-max-width);
|
||||
max-height: var(--admin-interface-logo-max-height);
|
||||
}
|
||||
|
||||
.admin-interface #header #user-tools a,
|
||||
.admin-interface #header #user-tools #logout-form button {
|
||||
color: var(--admin-interface-header-link-color);
|
||||
}
|
||||
|
||||
.admin-interface #header #user-tools a:hover,
|
||||
.admin-interface #header #user-tools a:active,
|
||||
.admin-interface #header #user-tools #logout-form button:hover,
|
||||
.admin-interface #header #user-tools #logout-form button:active {
|
||||
color: var(--admin-interface-header-link-hover-color);
|
||||
border-bottom-color: rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
|
||||
.admin-interface #header #user-tools button.theme-toggle svg {
|
||||
color: transparent;
|
||||
fill: var(--admin-interface-header-link-color);
|
||||
}
|
||||
|
||||
.admin-interface #header #user-tools button.theme-toggle:hover svg,
|
||||
.admin-interface #header #user-tools button.theme-toggle:active svg {
|
||||
color: transparent;
|
||||
fill: var(--admin-interface-header-link-hover-color);
|
||||
}
|
||||
|
||||
.admin-interface #nav-sidebar .current-app .section:link,
|
||||
.admin-interface #nav-sidebar .current-app .section:visited {
|
||||
color: var(--admin-interface-module-link-selected-color);
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.admin-interface #nav-sidebar .current-app .section:focus,
|
||||
.admin-interface #nav-sidebar .current-app .section:hover {
|
||||
color: var(--admin-interface-module-link-hover-color);
|
||||
}
|
||||
|
||||
.admin-interface #nav-sidebar .current-model {
|
||||
background: var(--admin-interface-module-background-selected-color);
|
||||
}
|
||||
|
||||
.admin-interface #changelist table tbody tr.selected {
|
||||
background-color: var(--admin-interface-module-background-selected-color);
|
||||
}
|
||||
|
||||
.admin-interface .module h2,
|
||||
.admin-interface .module caption,
|
||||
.admin-interface .module.filtered h2 {
|
||||
background: var(--admin-interface-module-background-color);
|
||||
color: var(--admin-interface-module-text-color);
|
||||
}
|
||||
|
||||
.admin-interface .module a.section:link,
|
||||
.admin-interface .module a.section:visited {
|
||||
color: var(--admin-interface-module-link-color);
|
||||
}
|
||||
|
||||
.admin-interface .module a.section:active,
|
||||
.admin-interface .module a.section:hover {
|
||||
color: var(--admin-interface-module-link-hover-color);
|
||||
}
|
||||
|
||||
.admin-interface div.breadcrumbs {
|
||||
background: var(--admin-interface-module-background-color);
|
||||
color: var(--admin-interface-module-text-color);
|
||||
}
|
||||
|
||||
.admin-interface div.breadcrumbs a {
|
||||
color: var(--admin-interface-module-link-color);
|
||||
}
|
||||
|
||||
.admin-interface div.breadcrumbs a:active,
|
||||
.admin-interface div.breadcrumbs a:focus,
|
||||
.admin-interface div.breadcrumbs a:hover {
|
||||
color: var(--admin-interface-module-link-hover-color);
|
||||
}
|
||||
|
||||
.admin-interface fieldset.collapse a.collapse-toggle,
|
||||
.admin-interface fieldset.collapse.collapsed a.collapse-toggle,
|
||||
.admin-interface .inline-group .inline-related fieldset.module a.collapse-toggle,
|
||||
.admin-interface .inline-group .inline-related fieldset.module.collapsed a.collapse-toggle {
|
||||
color: var(--admin-interface-module-link-color);
|
||||
}
|
||||
|
||||
.admin-interface fieldset.collapse a.collapse-toggle:hover,
|
||||
.admin-interface fieldset.collapse a.collapse-toggle:active,
|
||||
.admin-interface fieldset.collapse.collapsed a.collapse-toggle:hover,
|
||||
.admin-interface fieldset.collapse.collapsed a.collapse-toggle:active,
|
||||
.admin-interface .inline-group .inline-related fieldset.module a.collapse-toggle:hover,
|
||||
.admin-interface .inline-group .inline-related fieldset.module a.collapse-toggle:active,
|
||||
.admin-interface .inline-group .inline-related fieldset.module.collapsed a.collapse-toggle:hover,
|
||||
.admin-interface .inline-group .inline-related fieldset.module.collapsed a.collapse-toggle:active {
|
||||
color: var(--admin-interface-module-link-hover-color);
|
||||
}
|
||||
|
||||
.admin-interface .inline-group h2 {
|
||||
background: var(--admin-interface-module-background-color);
|
||||
color: var(--admin-interface-module-text-color);
|
||||
}
|
||||
|
||||
.admin-interface .selector .selector-chosen h2 {
|
||||
border-color: var(--admin-interface-module-background-color);
|
||||
background: var(--admin-interface-module-background-color);
|
||||
color: var(--admin-interface-module-text-color);
|
||||
}
|
||||
|
||||
.admin-interface .selector .selector-available h2,
|
||||
.admin-interface .selector .selector-chosen h2 {
|
||||
border-bottom-left-radius: 0px;
|
||||
border-bottom-right-radius: 0px;
|
||||
}
|
||||
|
||||
.admin-interface .selector a.selector-chooseall:focus,
|
||||
.admin-interface .selector a.selector-chooseall:hover,
|
||||
.admin-interface .selector a.selector-clearall:focus,
|
||||
.admin-interface .selector a.selector-clearall:hover {
|
||||
color: var(--admin-interface-generic-link-hover-color);
|
||||
}
|
||||
|
||||
.admin-interface a:link,
|
||||
.admin-interface a:visited {
|
||||
color: var(--admin-interface-generic-link-color);
|
||||
}
|
||||
|
||||
.admin-interface a:hover {
|
||||
color: var(--admin-interface-generic-link-hover-color);
|
||||
}
|
||||
|
||||
.admin-interface thead th a,
|
||||
.admin-interface thead th a:link,
|
||||
.admin-interface thead th a:visited,
|
||||
.admin-interface thead th a:focus,
|
||||
.admin-interface thead th a:hover {
|
||||
color: #666666;
|
||||
}
|
||||
|
||||
.admin-interface .button,
|
||||
.admin-interface input[type=submit],
|
||||
.admin-interface input[type=button],
|
||||
.admin-interface .submit-row input,
|
||||
.admin-interface a.button {
|
||||
background: var(--admin-interface-save-button-background-color);
|
||||
color: var(--admin-interface-save-button-text-color);
|
||||
}
|
||||
|
||||
.admin-interface .button:active,
|
||||
.admin-interface .button:focus,
|
||||
.admin-interface .button:hover,
|
||||
.admin-interface input[type=submit]:active,
|
||||
.admin-interface input[type=submit]:focus,
|
||||
.admin-interface input[type=submit]:hover,
|
||||
.admin-interface input[type=button]:active,
|
||||
.admin-interface input[type=button]:focus,
|
||||
.admin-interface input[type=button]:hover {
|
||||
background: var(--admin-interface-save-button-background-hover-color);
|
||||
color: var(--admin-interface-save-button-text-color);
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.admin-interface .button.default,
|
||||
.admin-interface input[type=submit].default,
|
||||
.admin-interface .submit-row input.default {
|
||||
background: var(--admin-interface-save-button-background-color);
|
||||
color: var(--admin-interface-save-button-text-color);
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.admin-interface .button.default:active,
|
||||
.admin-interface .button.default:focus,
|
||||
.admin-interface .button.default:hover,
|
||||
.admin-interface input[type=submit].default:active,
|
||||
.admin-interface input[type=submit].default:focus,
|
||||
.admin-interface input[type=submit].default:hover,
|
||||
.admin-interface.delete-confirmation form .cancel-link:hover {
|
||||
background: var(--admin-interface-save-button-background-hover-color);
|
||||
color: var(--admin-interface-save-button-text-color);
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.admin-interface .submit-row a.deletelink:link,
|
||||
.admin-interface .submit-row a.deletelink:visited,
|
||||
.admin-interface.delete-confirmation form input[type="submit"] {
|
||||
background: var(--admin-interface-delete-button-background-color);
|
||||
color: var(--admin-interface-delete-button-text-color);
|
||||
}
|
||||
|
||||
.admin-interface .submit-row a.deletelink:hover,
|
||||
.admin-interface.delete-confirmation form input[type="submit"]:hover {
|
||||
background: var(--admin-interface-delete-button-background-hover-color);
|
||||
color: var(--admin-interface-delete-button-text-color);
|
||||
}
|
||||
|
||||
.admin-interface .paginator a,
|
||||
.admin-interface .paginator a:link,
|
||||
.admin-interface .paginator a:visited,
|
||||
.admin-interface .paginator .this-page {
|
||||
border-radius: var(--admin-interface-module-border-radius);
|
||||
}
|
||||
|
||||
.admin-interface .paginator a,
|
||||
.admin-interface .paginator a:link,
|
||||
.admin-interface .paginator a:visited {
|
||||
background-color: #FFFFFF;
|
||||
color: var(--admin-interface-generic-link-color);
|
||||
}
|
||||
|
||||
.admin-interface .paginator a:hover,
|
||||
.admin-interface .paginator a:active {
|
||||
background-color: #F8F8F8;
|
||||
color: var(--admin-interface-generic-link-hover-color);
|
||||
}
|
||||
|
||||
.admin-interface .paginator .this-page {
|
||||
background-color: var(--admin-interface-module-background-color);
|
||||
color: var(--admin-interface-module-link-color);
|
||||
}
|
||||
|
||||
.admin-interface .paginator a.showall,
|
||||
.admin-interface .paginator a.showall:link,
|
||||
.admin-interface .paginator a.showall:visited {
|
||||
color: var(--admin-interface-generic-link-color);
|
||||
}
|
||||
|
||||
.admin-interface .paginator a.showall:hover,
|
||||
.admin-interface .paginator a.showall:active {
|
||||
color: var(--admin-interface-generic-link-hover-color);
|
||||
}
|
||||
|
||||
/* list-filter sticky */
|
||||
@media (min-width: 768px) {
|
||||
.admin-interface.list-filter-sticky .module.filtered #changelist-filter {
|
||||
position: sticky;
|
||||
top: 30px;
|
||||
float: right;
|
||||
z-index: 30;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow-y: auto;
|
||||
scrollbar-width: thin;
|
||||
height: 100%;
|
||||
max-height: calc(100vh - 60px);
|
||||
}
|
||||
.admin-interface.list-filter-sticky.sticky-pagination .module.filtered #changelist-filter {
|
||||
max-height: calc(100vh - 125px);
|
||||
}
|
||||
|
||||
/* feature not available for django < 3.1.2 */
|
||||
.admin-interface.list-filter-sticky .module.filtered #toolbar + #changelist-filter {
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
z-index: 30;
|
||||
max-height: calc(100vh - 105px);
|
||||
}
|
||||
.admin-interface.list-filter-sticky.sticky-pagination .module.filtered #toolbar + #changelist-filter {
|
||||
max-height: calc(100vh - 170px);
|
||||
}
|
||||
}
|
||||
|
||||
.admin-interface .module.filtered #changelist-filter {
|
||||
border-radius: var(--admin-interface-module-border-radius);
|
||||
}
|
||||
|
||||
.admin-interface .module.filtered #changelist-filter h3#changelist-filter-clear {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.admin-interface .module.filtered #changelist-filter .changelist-filter-clear a {
|
||||
font-size: 13px;
|
||||
margin: .3em 0;
|
||||
padding: 0 15px;
|
||||
}
|
||||
|
||||
.admin-interface .module.filtered #changelist-filter .changelist-filter-clear a:focus,
|
||||
.admin-interface .module.filtered #changelist-filter .changelist-filter-clear a:hover,
|
||||
.admin-interface .module.filtered #changelist-filter #changelist-filter-clear a:focus,
|
||||
.admin-interface .module.filtered #changelist-filter #changelist-filter-clear a:hover {
|
||||
color: #666;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.admin-interface .module.filtered #changelist-filter .changelist-filter-clear a span {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.admin-interface .module.filtered #changelist-filter li a:focus,
|
||||
.admin-interface .module.filtered #changelist-filter li a:hover {
|
||||
color: #666;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.admin-interface.list-filter-highlight .module.filtered #changelist-filter h3.active {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.admin-interface.list-filter-highlight .module.filtered #changelist-filter ul.active li.selected {
|
||||
color: var(--admin-interface-module-text-color);
|
||||
background: var(--admin-interface-module-background-color);
|
||||
margin-left: -10px;
|
||||
padding-left: 5px;
|
||||
margin-right: -10px;
|
||||
border-left: 5px solid var(--admin-interface-module-background-color);
|
||||
border-right: 5px solid var(--admin-interface-module-background-color);
|
||||
border-radius: var(--admin-interface-module-border-radius);
|
||||
}
|
||||
|
||||
.admin-interface.list-filter-highlight .module.filtered #changelist-filter ul.active li.selected a,
|
||||
.admin-interface.list-filter-highlight .module.filtered #changelist-filter ul.active li.selected a:link,
|
||||
.admin-interface.list-filter-highlight .module.filtered #changelist-filter ul.active li.selected a:visited,
|
||||
.admin-interface.list-filter-highlight .module.filtered #changelist-filter ul.active li.selected a:focus,
|
||||
.admin-interface.list-filter-highlight .module.filtered #changelist-filter ul.active li.selected a:hover {
|
||||
background: inherit;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.admin-interface .module.filtered #changelist-filter li.selected a,
|
||||
.admin-interface .module.filtered #changelist-filter li.selected a:link,
|
||||
.admin-interface .module.filtered #changelist-filter li.selected a:visited,
|
||||
.admin-interface .module.filtered #changelist-filter li.selected a:focus,
|
||||
.admin-interface .module.filtered #changelist-filter li.selected a:hover {
|
||||
color: var(--admin-interface-generic-link-hover-color);
|
||||
}
|
||||
|
||||
/* begin fix issue #11 - Inline border bottom should not be rounded */
|
||||
.admin-interface .module h2,
|
||||
.admin-interface.dashboard .module caption,
|
||||
.admin-interface #nav-sidebar .module th,
|
||||
.admin-interface #nav-sidebar .module caption,
|
||||
.admin-interface .module.filtered h2 {
|
||||
border-radius: var(--admin-interface-module-border-radius);
|
||||
}
|
||||
|
||||
.admin-interface .inline-group h2 {
|
||||
border-bottom-left-radius: 0px;
|
||||
border-bottom-right-radius: 0px;
|
||||
}
|
||||
|
||||
.admin-interface .module.collapse.collapsed h2 {
|
||||
/* fix collapsed inlines rounded bottom borders */
|
||||
border-bottom-left-radius: var(--admin-interface-module-border-radius);
|
||||
border-bottom-right-radius: var(--admin-interface-module-border-radius);
|
||||
}
|
||||
|
||||
/* end fix */
|
||||
|
||||
.admin-interface #content-related {
|
||||
border-radius: var(--admin-interface-module-border-radius);
|
||||
}
|
||||
|
||||
.admin-interface .select2-container--admin-autocomplete .select2-results__option--highlighted[aria-selected] {
|
||||
background-color: var(--admin-interface-module-background-color);
|
||||
color: var(--admin-interface-module-text-color);
|
||||
}
|
||||
|
||||
.admin-interface #toggle-nav-sidebar {
|
||||
border-top-right-radius: var(--admin-interface-module-border-radius);
|
||||
border-bottom-right-radius: var(--admin-interface-module-border-radius);
|
||||
color: var(--admin-interface-generic-link-color);
|
||||
}
|
||||
|
||||
.admin-interface #toggle-nav-sidebar:focus,
|
||||
.admin-interface #toggle-nav-sidebar:hover,
|
||||
.admin-interface #toggle-nav-sidebar:active {
|
||||
color: var(--admin-interface-generic-link-hover-color);
|
||||
}
|
||||
|
||||
.admin-interface .calendar td.selected a,
|
||||
.admin-interface .calendar td a:active,
|
||||
.admin-interface .calendar td a:focus,
|
||||
.admin-interface .calendar td a:hover,
|
||||
.admin-interface .timelist a:active,
|
||||
.admin-interface .timelist a:focus,
|
||||
.admin-interface .timelist a:hover {
|
||||
background: var(--admin-interface-module-background-color);
|
||||
}
|
||||
|
||||
.admin-interface .calendarbox .calendarnav-previous,
|
||||
.admin-interface .calendarbox .calendarnav-next {
|
||||
transition: none;
|
||||
filter: invert(100%);
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
/* fix form submit buttons alignemnt and ordering */
|
||||
@media (min-width: 768px) {
|
||||
.admin-interface .submit-row {
|
||||
flex-direction: row-reverse;
|
||||
}
|
||||
.admin-interface .submit-row input[name="_save"] {
|
||||
order: 1;
|
||||
}
|
||||
.admin-interface .submit-row input[name="_continue"] {
|
||||
order: 2;
|
||||
}
|
||||
.admin-interface .submit-row input[name="_addanother"] {
|
||||
order: 3;
|
||||
}
|
||||
.admin-interface .submit-row a.deletelink {
|
||||
order: 4;
|
||||
margin-left: 0;
|
||||
margin-right: auto;
|
||||
}
|
||||
}
|
||||
/* endfix */
|
||||
|
||||
/* fix help-text horizontal alignment when using show-fieldsets-as-tabs / show-inlines-as-tabs options - #317 */
|
||||
.admin-interface.show-fieldsets-as-tabs fieldset > .form-row .help,
|
||||
.admin-interface.show-inlines-as-tabs .inline-related > fieldset .help {
|
||||
margin-left: 0;
|
||||
padding-left: 0;
|
||||
}
|
||||
.admin-interface.show-fieldsets-as-tabs fieldset > .form-row div:has(.related-widget-wrapper .selector) + .help,
|
||||
.admin-interface.show-inlines-as-tabs .inline-related > fieldset div:has(.related-widget-wrapper .selector) + .help {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
}
|
||||
/* endfix */
|
||||
@@ -0,0 +1,43 @@
|
||||
@media (min-width: 1024px) {
|
||||
.admin-interface #changelist .actions .button,
|
||||
.admin-interface #changelist .actions .action-counter {
|
||||
margin-left: 8px;
|
||||
}
|
||||
}
|
||||
|
||||
.admin-interface #changelist-form .results {
|
||||
scrollbar-width: thin;
|
||||
}
|
||||
|
||||
/* fix searchbar overriden padding */
|
||||
.admin-interface #changelist #changelist-search #searchbar {
|
||||
padding: 2px 5px 3px 5px;
|
||||
}
|
||||
|
||||
@media (min-width: 1024px) {
|
||||
.admin-interface #changelist #changelist-search #searchbar,
|
||||
.admin-interface #changelist #changelist-search input[type="submit"],
|
||||
.admin-interface #changelist #changelist-search .quiet {
|
||||
margin-left: 8px;
|
||||
}
|
||||
.admin-interface #changelist #changelist-search label img {
|
||||
vertical-align: text-top;
|
||||
margin-right: 0px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1024px) {
|
||||
.admin-interface #changelist #toolbar {
|
||||
border-top: 1px solid #eee;
|
||||
border-bottom: 1px solid #eee;
|
||||
}
|
||||
/* fixed changelist search size when there are search results and .quiet is visible */
|
||||
.admin-interface #changelist-search label img {
|
||||
margin-top: 2px;
|
||||
}
|
||||
.admin-interface #changelist-search .quiet {
|
||||
margin: 0 0 0 10px;
|
||||
align-self: center;
|
||||
flex-basis: content;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
.admin-interface fieldset.collapse {
|
||||
border: 1px solid transparent;
|
||||
}
|
||||
|
||||
.admin-interface fieldset.collapse.collapsed a.collapse-toggle,
|
||||
.admin-interface fieldset.collapse a.collapse-toggle,
|
||||
.admin-interface .inline-group .inline-related fieldset.module a.collapse-toggle,
|
||||
.admin-interface .inline-group .inline-related fieldset.module.collapsed a.collapse-toggle {
|
||||
font-weight: normal;
|
||||
text-transform: lowercase;
|
||||
font-size: 12px;
|
||||
text-decoration: underline;
|
||||
padding: 0 1px;
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
.admin-interface .file-thumbnail > a {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.admin-interface .aligned p.file-upload {
|
||||
display: table;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.admin-interface form .form-row p.file-upload > a {
|
||||
margin-right: 20px;
|
||||
}
|
||||
|
||||
.admin-interface form .form-row p.file-upload .clearable-file-input {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.admin-interface form .form-row p.file-upload .clearable-file-input label {
|
||||
padding-bottom: 0px;
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
.admin-interface form .form-row p.file-upload > input[type="file"] {
|
||||
margin-top: 0px;
|
||||
}
|
||||
|
||||
@media (max-width:767px){
|
||||
|
||||
.admin-interface form .form-row p.file-upload {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.admin-interface form .form-row p.file-upload > a {
|
||||
margin-right: 0px;
|
||||
display: block;
|
||||
white-space: pre-wrap;
|
||||
word-break: break-word;
|
||||
}
|
||||
|
||||
.admin-interface form .form-row p.file-upload .clearable-file-input {
|
||||
display: block;
|
||||
margin-top: 10px;
|
||||
margin-left: 0;
|
||||
margin-bottom: -10px;
|
||||
}
|
||||
|
||||
.admin-interface form .form-row p.file-upload > input[type="file"] {
|
||||
display: block;
|
||||
width: auto;
|
||||
padding: 0px;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
.admin-interface #header {
|
||||
height: auto;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
@media (max-width:1024px) {
|
||||
.admin-interface #header {
|
||||
align-items: start;
|
||||
}
|
||||
}
|
||||
|
||||
.admin-interface #branding h1 img.logo {
|
||||
margin-top: 10px;
|
||||
margin-bottom: 10px;
|
||||
margin-right: 15px;
|
||||
display: inline-block !important; /* override inline display:none; */
|
||||
}
|
||||
|
||||
.admin-interface #branding h1 span {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.admin-interface #branding h1 img.logo+span {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.admin-interface #user-tools {
|
||||
margin-top: 10px;
|
||||
margin-bottom: 10px;
|
||||
white-space: nowrap;
|
||||
align-self: flex-start;
|
||||
}
|
||||
|
||||
.admin-interface #user-tools br {
|
||||
display: none;
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.admin-interface #user-tools br {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
/* hide theme toggle button until dark theme will be supported */
|
||||
.admin-interface #user-tools button.theme-toggle {
|
||||
display: none;
|
||||
}
|
||||
@@ -0,0 +1,105 @@
|
||||
/* begin fix help text icon on newline */
|
||||
.admin-interface .inline-group thead th {
|
||||
white-space:nowrap;
|
||||
}
|
||||
|
||||
.admin-interface .inline-group thead th img {
|
||||
vertical-align: -2px;
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
.admin-interface .inline-group .inlinechangelink {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.admin-interface .inline-group .inline-related.tabular .inlinechangelink {
|
||||
background-size: contain;
|
||||
}
|
||||
/* end fix */
|
||||
|
||||
/* begin fix restrict tabular-inline horizontal-scroll to inline-group instead of whole page */
|
||||
.admin-interface .inline-group[data-inline-type="tabular"] {
|
||||
overflow-x: auto;
|
||||
}
|
||||
/* end fix */
|
||||
|
||||
/* begin fix stacked-inline margin-bottom in responsive small viewport */
|
||||
.admin-interface .inline-group[data-inline-type="stacked"] .module {
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
/* end fix */
|
||||
|
||||
/* begin fix tabular inlines horizontal scroll */
|
||||
.admin-interface .inline-related.tabular {
|
||||
overflow-x: scroll;
|
||||
overflow-y: hidden;
|
||||
}
|
||||
.admin-interface .inline-related.tabular fieldset.module {
|
||||
display: contents;
|
||||
width: 100%;
|
||||
white-space: nowrap;
|
||||
position: relative;
|
||||
}
|
||||
.admin-interface .inline-related.tabular fieldset.module h2 {
|
||||
position: sticky;
|
||||
left: 0;
|
||||
}
|
||||
.admin-interface .inline-related.tabular fieldset.module table {
|
||||
scrollbar-width: thin;
|
||||
}
|
||||
.admin-interface .inline-related.tabular fieldset.module table tbody tr {
|
||||
position: relative;
|
||||
}
|
||||
/* end fix */
|
||||
|
||||
.admin-interface .inline-related h3 {
|
||||
padding: 6px 10px;
|
||||
}
|
||||
|
||||
/* begin fix issue #12 - Inlines bad delete buttons alignement */
|
||||
.admin-interface .inline-group .tabular thead th:last-child:not([class]):not([style]) {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.admin-interface .inline-group .tabular tr td {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.admin-interface .inline-group .tabular tr td.delete {
|
||||
text-align: right;
|
||||
padding-right: 15px;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.admin-interface .inline-group .tabular tr td input[type="checkbox"] {
|
||||
margin: 7px 0px;
|
||||
}
|
||||
|
||||
.admin-interface .inline-group .tabular tr td.delete a.inline-deletelink {
|
||||
margin-top: 4px;
|
||||
overflow: hidden;
|
||||
text-indent: 9999px;
|
||||
}
|
||||
/* end fix */
|
||||
|
||||
/* begin fix remove button at the end od dynamically added inline rows */
|
||||
.admin-interface .inline-group .tabular tr td:not(.delete) * + div:has(> a.inline-deletelink) {
|
||||
display: inline-block;
|
||||
margin-bottom: -3px;
|
||||
margin-left: 10px;
|
||||
}
|
||||
/* end fix */
|
||||
|
||||
/* begin fix issue #13 - Datetime widget broken in long inlines */
|
||||
.admin-interface .inline-group .inline-related p.datetime {
|
||||
white-space: nowrap;
|
||||
}
|
||||
/* end fix */
|
||||
|
||||
/* begin fix inline horizontal scroll caused by checkbox-row */
|
||||
@media (max-width:767px){
|
||||
.admin-interface form .form-row > div.checkbox-row {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
/* end fix */
|
||||
@@ -0,0 +1,247 @@
|
||||
/*
|
||||
* jQuery UI CSS Framework
|
||||
* Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
|
||||
* http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/themes/base/jquery.ui.core.css
|
||||
*/
|
||||
|
||||
/*
|
||||
backward compatibility:
|
||||
.ui-tabs-selected: jquery ui < 1.10
|
||||
.ui-tabs-active classes jquery ui >= 1.10
|
||||
*/
|
||||
|
||||
/* Layout helpers
|
||||
----------------------------------*/
|
||||
.ui-helper-hidden {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.ui-helper-hidden-accessible {
|
||||
position: absolute;
|
||||
left: -99999999px;
|
||||
}
|
||||
|
||||
.ui-helper-reset {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
outline: 0;
|
||||
line-height: 1.3;
|
||||
text-decoration: none;
|
||||
font-size: 100%;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.ui-helper-clearfix:after {
|
||||
content: ".";
|
||||
display: block;
|
||||
height: 0;
|
||||
clear: both;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.ui-helper-clearfix {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
/* required comment for clearfix to work in Opera \*/
|
||||
* html .ui-helper-clearfix {
|
||||
height: 1%;
|
||||
}
|
||||
|
||||
.ui-helper-clearfix {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.ui-helper-zfix {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
top: 0;
|
||||
left: 0;
|
||||
position: absolute;
|
||||
opacity: 0;
|
||||
filter: Alpha(Opacity=0);
|
||||
}
|
||||
|
||||
.ui-state-disabled {
|
||||
cursor: default !important;
|
||||
}
|
||||
|
||||
.ui-icon {
|
||||
display: block;
|
||||
text-indent: -99999px;
|
||||
overflow: hidden;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
/* http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/themes/base/jquery.ui.tabs.css */
|
||||
.ui-widget-overlay {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.ui-tabs {
|
||||
position: relative;
|
||||
padding: .2em;
|
||||
zoom: 1;
|
||||
}
|
||||
|
||||
/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
|
||||
.ui-tabs .ui-tabs-nav {
|
||||
margin: 0;
|
||||
padding: .2em .2em 0;
|
||||
}
|
||||
|
||||
.ui-tabs .ui-tabs-nav li {
|
||||
list-style: none;
|
||||
float: left;
|
||||
position: relative;
|
||||
top: 1px;
|
||||
margin: 0 .2em 1px 0;
|
||||
border-bottom: 0 !important;
|
||||
padding: 0;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.ui-tabs .ui-tabs-nav li a {
|
||||
float: left;
|
||||
padding: .5em 1em;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.ui-tabs .ui-tabs-nav li.ui-tabs-active, .ui-tabs .ui-tabs-nav li.ui-tabs-selected {
|
||||
margin-bottom: 0;
|
||||
padding-bottom: 1px;
|
||||
}
|
||||
|
||||
.ui-tabs .ui-tabs-nav li.ui-tabs-active a, .ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a {
|
||||
cursor: text;
|
||||
}
|
||||
|
||||
.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
/* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
|
||||
.ui-tabs .ui-tabs-panel {
|
||||
display: block;
|
||||
border-width: 0;
|
||||
padding: 1em 1.4em;
|
||||
background: none;
|
||||
}
|
||||
|
||||
.ui-tabs .ui-tabs-hide {
|
||||
position: absolute;
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* Custom tabs theme */
|
||||
.admin-interface .ui-tabs {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.admin-interface .ui-tabs,
|
||||
.admin-interface .ui-tabs .ui-widget-header,
|
||||
.admin-interface .ui-tabs .ui-widget-header .ui-state-default {
|
||||
border: none;
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.admin-interface .ui-tabs .ui-tabs-nav {
|
||||
padding: 10px 0 0 10px;
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.admin-interface .ui-tabs .ui-tabs-nav li {
|
||||
margin: 0 0 0 -1px;
|
||||
}
|
||||
|
||||
.admin-interface .ui-tabs .ui-tabs-nav li.required {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.admin-interface .ui-tabs .ui-tabs-nav li a {
|
||||
border: 1px solid #eeeeee;
|
||||
background-color: #f8f8f8;
|
||||
border-bottom: none;
|
||||
color: #666666;
|
||||
padding: 7px 14px 8px 14px;
|
||||
margin-top: 1px;
|
||||
-moz-border-radius-topright: 4px;
|
||||
-webkit-border-top-right-radius: 4px;
|
||||
-moz-border-radius-topleft: 4px;
|
||||
-webkit-border-top-left-radius: 4px;
|
||||
border-top-left-radius: 4px;
|
||||
border-top-right-radius: 4px;
|
||||
font-size: 12px;
|
||||
text-transform: uppercase;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.admin-interface .ui-tabs .ui-tabs-nav li.ui-tabs-active a,
|
||||
.admin-interface .ui-tabs .ui-tabs-nav li.ui-tabs-selected a {
|
||||
padding: 8px 14px 8px 14px;
|
||||
margin-top: 0px;
|
||||
margin-bottom: -1px;
|
||||
font-weight: bold;
|
||||
background-color: #FFFFFF;
|
||||
color: var(--admin-interface-module-background-color);
|
||||
border-bottom: 1px solid #FFFFFF;
|
||||
}
|
||||
|
||||
.admin-interface .ui-tabs .ui-tabs-panel {
|
||||
border: 1px solid #eeeeee;
|
||||
border-radius: 4px;
|
||||
padding: 10px;
|
||||
margin-bottom: 30px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.admin-interface .inline-group .tabular .ui-tabs .ui-tabs-panel {
|
||||
padding: 8px;
|
||||
}
|
||||
|
||||
.admin-interface .inline-group .tabular .ui-tabs .ui-tabs-nav {
|
||||
padding-left: 4px;
|
||||
}
|
||||
|
||||
.admin-interface .inline-group .tabular tr td {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.admin-interface .inline-group .tabular tr.has_original td.original,
|
||||
.admin-interface .inline-group .tabular tr td.delete {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.admin-interface .inline-group .tabular .datetime > input {
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.admin-interface .inline-group .tabular .datetime br {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.admin-interface #changelist .row1:not(.selected):hover,
|
||||
.admin-interface #changelist .row2:not(.selected):hover {
|
||||
background: #f9f9f9;
|
||||
}
|
||||
|
||||
.admin-interface .row2 {
|
||||
background: #fcfcfc;
|
||||
}
|
||||
|
||||
.admin-interface .row2 .ui-tabs .ui-tabs-nav li a {
|
||||
background-color: #f5f5f5;
|
||||
border: 1px solid #ebebeb;
|
||||
}
|
||||
|
||||
.admin-interface .row2 .ui-tabs .ui-tabs-nav li.ui-tabs-active a,
|
||||
.admin-interface .row2 .ui-tabs .ui-tabs-nav li.ui-tabs-selected a {
|
||||
background-color: #fcfcfc;
|
||||
border-bottom: 1px solid #fcfcfc;
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
.admin-interface .language-chooser {
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
top: 15px;
|
||||
right: 15px;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
.admin-interface .language-chooser {
|
||||
right: 30px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1024px) {
|
||||
.admin-interface .language-chooser {
|
||||
position: static;
|
||||
margin-left: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
.admin-interface .language-chooser .language-chooser-hidden-form {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.admin-interface .language-chooser .language-chooser-select-form {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
z-index: 0;
|
||||
}
|
||||
|
||||
.admin-interface .language-chooser select {
|
||||
width: auto;
|
||||
min-width: auto;
|
||||
}
|
||||
|
||||
.admin-interface .language-chooser.minimal .language-chooser-select-form::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
right: 2px;
|
||||
top: 50%;
|
||||
border: solid var(--admin-interface-header-text-color);
|
||||
border-width: 0px 0px 1px 1px;
|
||||
display: inline-block;
|
||||
padding: 2px;
|
||||
transform: rotate(-45deg);
|
||||
-webkit-transform: rotate(-45deg);
|
||||
pointer-events: none;
|
||||
margin-top: -4px;
|
||||
}
|
||||
|
||||
.admin-interface .language-chooser.minimal .language-chooser-select-form:hover select {
|
||||
border-bottom: 1px solid transparent;
|
||||
color: var(--admin-interface-header-link-hover-color);
|
||||
}
|
||||
|
||||
.admin-interface .language-chooser.minimal select {
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
background-color: transparent;
|
||||
border: none;
|
||||
border-bottom: 1px solid rgba(255, 255, 255, 0.25);
|
||||
border-radius: 0;
|
||||
color: var(--admin-interface-header-link-color);
|
||||
cursor: pointer;
|
||||
font-weight: inherit;
|
||||
font-size: inherit;
|
||||
height: auto;
|
||||
margin: 0;
|
||||
padding: 0 15px 0 0;
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
/*
|
||||
list-filter-dropdown
|
||||
*/
|
||||
|
||||
.admin-interface #changelist-filter .list-filter-dropdown {
|
||||
margin-top: 15px;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
.admin-interface #changelist-filter h2 + .list-filter-dropdown,
|
||||
.admin-interface #changelist-filter .list-filter-dropdown + .list-filter-dropdown {
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
.admin-interface #changelist-filter .list-filter-dropdown h3 {
|
||||
margin-top: 0 !important;
|
||||
}
|
||||
|
||||
.admin-interface #changelist-filter .list-filter-dropdown select {
|
||||
background-color: #FFFFFF;
|
||||
width: calc(100% - 30px);
|
||||
margin-right: 15px;
|
||||
}
|
||||
|
||||
.admin-interface.list-filter-highlight #changelist-filter .list-filter-dropdown h3.active + div select {
|
||||
font-weight: bold;
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
.admin-interface .module.filtered h2 {
|
||||
border-bottom-left-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
}
|
||||
|
||||
.admin-interface .module.filtered #changelist-filter {
|
||||
min-width: 240px;
|
||||
}
|
||||
|
||||
@media (max-width: 1024px) {
|
||||
.admin-interface .module.filtered #changelist-filter {
|
||||
min-width: 200px;
|
||||
}
|
||||
}
|
||||
|
||||
.admin-interface .module.filtered #changelist-filter h2 {
|
||||
font-size: 11px;
|
||||
padding: 10px 15px;
|
||||
}
|
||||
|
||||
.admin-interface .module.filtered #changelist-filter h2 + h3 {
|
||||
margin-top: 0px;
|
||||
}
|
||||
|
||||
.admin-interface .module.filtered #changelist-filter h3 {
|
||||
margin-top: 12px;
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
.admin-interface.login #container {
|
||||
width: 100%;
|
||||
max-width: 360px;
|
||||
margin: 15px auto;
|
||||
box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
}
|
||||
|
||||
.admin-interface.login #content {
|
||||
padding: 15px 30px 30px 30px;
|
||||
}
|
||||
|
||||
@media (min-width:768px){
|
||||
.admin-interface.login #container {
|
||||
margin: 90px auto;
|
||||
}
|
||||
}
|
||||
|
||||
.admin-interface.login #header {
|
||||
min-height: auto;
|
||||
padding: 10px 30px;
|
||||
line-height: 30px;
|
||||
align-items: center;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
|
||||
.admin-interface.login #header #branding h1 {
|
||||
margin-right:0;
|
||||
}
|
||||
|
||||
.admin-interface.login #header #branding h1 img.logo {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.admin-interface.login #header #branding h1 img.logo+span {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.admin-interface.login #login-form {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.admin-interface.login .submit-row {
|
||||
float: left;
|
||||
width: 100%;
|
||||
margin-top: 20px;
|
||||
padding-top: 0;
|
||||
padding-left: 0;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.admin-interface.login .submit-row label {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.admin-interface.login .submit-row input[type="submit"] {
|
||||
width: 100%;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.admin-interface.login #footer {
|
||||
display: none;
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
/* begin fix lateral padding to align text with field labels */
|
||||
.admin-interface .module h2,
|
||||
.admin-interface.dashboard .module caption,
|
||||
.admin-interface.dashboard .module th,
|
||||
.admin-interface .module.filtered h2,
|
||||
.admin-interface .inline-group h2,
|
||||
.admin-interface #nav-sidebar .module caption,
|
||||
.admin-interface #nav-sidebar .module th {
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
}
|
||||
/* end fix */
|
||||
@@ -0,0 +1,78 @@
|
||||
/* fix nav-sidebar (added in django 3.1.0) */
|
||||
.admin-interface #toggle-nav-sidebar {
|
||||
top: 10px;
|
||||
left: 0;
|
||||
z-index: 20;
|
||||
flex: 0 0 30px;
|
||||
width: 30px;
|
||||
height: 45px;
|
||||
margin-top: 10px;
|
||||
margin-right: -30px;
|
||||
background-color: #FFFFFF;
|
||||
font-size: 16px;
|
||||
border: 1px solid #eaeaea;
|
||||
border-left: none;
|
||||
outline: none;
|
||||
-webkit-box-shadow: 4px 4px 8px -4px #DBDBDB;
|
||||
-moz-box-shadow: 4px 4px 8px -4px #DBDBDB;
|
||||
box-shadow: 4px 4px 8px -4px #DBDBDB;
|
||||
/*transition: left .3s;*/
|
||||
}
|
||||
|
||||
.admin-interface .toggle-nav-sidebar::before {
|
||||
margin-top: -2px;
|
||||
}
|
||||
|
||||
.admin-interface .main > #nav-sidebar + .content,
|
||||
.admin-interface .main.shifted > #nav-sidebar + .content {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
/* hide nav-sidebar below 1280px to prevent horizontal overflow issues */
|
||||
@media (max-width:1279px) {
|
||||
.admin-interface #nav-sidebar,
|
||||
.admin-interface #toggle-nav-sidebar {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.admin-interface #nav-sidebar {
|
||||
flex: 0 0 360px;
|
||||
left: -360px;
|
||||
margin-left: -360px;
|
||||
box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
padding: 40px 40px 40px 40px;
|
||||
border-top: none;
|
||||
border-bottom: none;
|
||||
border-left: none;
|
||||
scrollbar-width: thin;
|
||||
/*transition: left .3s, margin-left .3s;*/
|
||||
}
|
||||
|
||||
.admin-interface #nav-filter {
|
||||
background-color: transparent;
|
||||
border-radius: 4px;
|
||||
height: 30px;
|
||||
margin: 0 0 30px 0;
|
||||
padding: 5px 6px;
|
||||
outline-width: initial;
|
||||
}
|
||||
|
||||
@media (min-width:1280px) {
|
||||
.admin-interface #main.shifted > #toggle-nav-sidebar {
|
||||
left: 359px;
|
||||
}
|
||||
.admin-interface #main.shifted > #nav-sidebar {
|
||||
left: 0px;
|
||||
margin-left: 0;
|
||||
}
|
||||
.admin-interface #main:not(.shifted) > .content {
|
||||
max-width: 100%;
|
||||
}
|
||||
.admin-interface.change-list:not(.popup) #main.shifted > #nav-sidebar + .content,
|
||||
.admin-interface.change-form:not(.popup) #main.shifted > #nav-sidebar + .content {
|
||||
max-width: calc(100% - 360px);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
/* top-right buttons color on hover -> just a lighten grey */
|
||||
.admin-interface .object-tools a {
|
||||
color: #FFFFFF;
|
||||
}
|
||||
.admin-interface .object-tools a:focus,
|
||||
.admin-interface .object-tools a:hover,
|
||||
.admin-interface .object-tools li:focus a,
|
||||
.admin-interface .object-tools li:hover a {
|
||||
background-color: #AAAAAA;
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
.admin-interface #changelist .paginator {
|
||||
margin-top: -1px; /* merge 2 borders into 1 */
|
||||
line-height: 1.5em;
|
||||
padding-top: 12px;
|
||||
padding-bottom: 12px;
|
||||
}
|
||||
|
||||
.admin-interface .paginator a,
|
||||
.admin-interface .paginator a:link,
|
||||
.admin-interface .paginator a:visited,
|
||||
.admin-interface .paginator .this-page {
|
||||
padding: 7px 12px;
|
||||
}
|
||||
|
||||
.admin-interface .paginator a,
|
||||
.admin-interface .paginator .this-page {
|
||||
margin-left: 0px;
|
||||
}
|
||||
|
||||
.admin-interface .paginator .this-page,
|
||||
.admin-interface .paginator a.end {
|
||||
margin-right: 25px;
|
||||
}
|
||||
|
||||
.admin-interface .paginator .this-page + a:not(.showall) {
|
||||
margin-left: -25px;
|
||||
}
|
||||
|
||||
body.admin-interface .paginator a.showall,
|
||||
body.admin-interface .paginator a.showall:link,
|
||||
body.admin-interface .paginator a.showall:visited {
|
||||
margin-left: 20px;
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
.admin-interface.dashboard #content {
|
||||
width: auto;
|
||||
max-width: 600px;
|
||||
margin-right: 0;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.admin-interface.dashboard #content #recent-actions-module {
|
||||
display: none;
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
[dir="rtl"] .admin-interface,
|
||||
[dir="rtl"] .admin-interface * {
|
||||
font-family: 'Vazir', sans-serif !important;
|
||||
}
|
||||
|
||||
[dir="rtl"] .admin-interface .main .toggle-nav-sidebar.sticky {
|
||||
left: auto !important;
|
||||
right: 0px !important;
|
||||
margin-right: 0px !important;
|
||||
margin-left: 10px;
|
||||
border: 1px solid #eaeaea !important;
|
||||
border-right: none !important;
|
||||
border-top-right-radius: 0px !important;
|
||||
border-bottom-right-radius: 0px !important;
|
||||
border-top-left-radius: 4px;
|
||||
border-bottom-left-radius: 4px;
|
||||
box-shadow: -4px 2px 8px -2px #DBDBDB !important;
|
||||
}
|
||||
|
||||
[dir="rtl"] .admin-interface #main.shifted > #toggle-nav-sidebar {
|
||||
right: 359px !important;
|
||||
}
|
||||
|
||||
[dir="rtl"] .admin-interface #main > #nav-sidebar {
|
||||
margin-right: -360px !important;
|
||||
margin-left: 0px !important;
|
||||
right: -320px !important;
|
||||
}
|
||||
|
||||
[dir="rtl"] .admin-interface #main.shifted > #nav-sidebar {
|
||||
border-left: 1px solid #eaeaea;
|
||||
margin-right: 0px !important;
|
||||
padding: 40px 0px 40px 40px !important;
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
/* sticky pagination */
|
||||
|
||||
.admin-interface.sticky-pagination.change-list #content-main {
|
||||
padding-bottom: 4.375rem;
|
||||
}
|
||||
|
||||
.admin-interface.sticky-pagination.change-list .paginator {
|
||||
width: 100%;
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
z-index: 40;
|
||||
box-sizing: border-box;
|
||||
padding-left: 15px;
|
||||
padding-right: 15px;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
border-radius: 0;
|
||||
border-top: 1px solid #EEEEEE !important;
|
||||
border-bottom: none;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.admin-interface.sticky-pagination.change-list.popup .paginator {
|
||||
padding-left: 20px;
|
||||
padding-right: 20px;
|
||||
}
|
||||
|
||||
@media (min-width:768px) {
|
||||
.admin-interface.sticky-pagination.change-list:not(.popup) .paginator {
|
||||
padding-left: 30px;
|
||||
padding-right: 30px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width:1024px) {
|
||||
.admin-interface.sticky-pagination.change-list:not(.popup) .paginator {
|
||||
padding-left: 40px;
|
||||
padding-right: 40px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width:1280px) {
|
||||
.admin-interface.sticky-pagination.change-list:not(.popup) #main.shifted > #nav-sidebar + .content .paginator {
|
||||
width: calc(100% - 360px);
|
||||
}
|
||||
}
|
||||
|
||||
/* sticky submit */
|
||||
|
||||
@media (min-width:768px) {
|
||||
.admin-interface.sticky-submit.change-form #content-main {
|
||||
padding-bottom: 4.375rem;
|
||||
}
|
||||
|
||||
.admin-interface.sticky-submit.change-form .submit-row:last-of-type {
|
||||
width: 100%;
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
z-index: 40;
|
||||
box-sizing: border-box;
|
||||
padding-left: 15px;
|
||||
padding-right: 15px;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
border-radius: 0;
|
||||
border-top: 1px solid #EEEEEE;
|
||||
border-bottom: none !important;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.admin-interface.sticky-submit.change-form.popup .submit-row:last-of-type {
|
||||
padding-left: 20px;
|
||||
padding-right: 20px;
|
||||
}
|
||||
|
||||
.admin-interface.sticky-submit.change-form:not(.popup) .submit-row:last-of-type {
|
||||
padding-left: 30px;
|
||||
padding-right: 30px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width:1024px) {
|
||||
.admin-interface.sticky-submit.change-form:not(.popup) .submit-row:last-of-type {
|
||||
padding-left: 40px;
|
||||
padding-right: 40px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width:1280px) {
|
||||
.admin-interface.sticky-submit.change-form:not(.popup) #main.shifted > #nav-sidebar + .content .submit-row:last-of-type {
|
||||
width: calc(100% - 359px);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
.admin-interface .tabbed-changeform-tabs {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: nowrap;
|
||||
overflow-x: auto;
|
||||
overflow-y: hidden;
|
||||
scrollbar-width: thin;
|
||||
padding-bottom: 15px;
|
||||
}
|
||||
|
||||
@-moz-document url-prefix() {
|
||||
.admin-interface .tabbed-changeform-tabs {
|
||||
padding-bottom: 13px;
|
||||
}
|
||||
}
|
||||
|
||||
.admin-interface .tabbed-changeform-tabs .tabbed-changeform-tablink {
|
||||
appearance: none;
|
||||
-webkit-appearance: none;
|
||||
border: 1px solid transparent;
|
||||
border-bottom: 1px solid var(--border-color);
|
||||
border-radius: var(--admin-interface-module-border-radius);
|
||||
border-bottom-left-radius: 0px;
|
||||
border-bottom-right-radius: 0px;
|
||||
flex-shrink: 0;
|
||||
flex-grow: 0;
|
||||
cursor: pointer;
|
||||
padding: 10px 15px;
|
||||
margin: 0;
|
||||
background-color: var(--admin-interface-module-header-text-color);
|
||||
color: var(--admin-interface-generic-link-color);
|
||||
font-size: 13px;
|
||||
font-weight: bold;
|
||||
outline: none !important;
|
||||
}
|
||||
|
||||
.admin-interface .tabbed-changeform-tabs .tabbed-changeform-tablink + .tabbed-changeform-tablink {
|
||||
margin-left: -1px;
|
||||
}
|
||||
|
||||
.admin-interface .tabbed-changeform-tabs .tabbed-changeform-tablink:hover {
|
||||
color: var(--admin-interface-generic-link-hover-color);
|
||||
}
|
||||
|
||||
.admin-interface .tabbed-changeform-tabs .tabbed-changeform-tablink:focus {
|
||||
color: var(--admin-interface-generic-link-hover-color);
|
||||
}
|
||||
|
||||
.admin-interface .tabbed-changeform-tabs .tabbed-changeform-tablink.active {
|
||||
border: 1px solid var(--border-color);
|
||||
border-bottom: 1px solid transparent;
|
||||
color: var(--admin-interface-generic-link-active-color);
|
||||
}
|
||||
|
||||
.admin-interface .tabbed-changeform-tabs-remaining-space {
|
||||
flex: 1;
|
||||
border-bottom: 1px solid var(--border-color);
|
||||
}
|
||||
|
||||
.admin-interface .tabbed-changeform-tabcontent {
|
||||
display: none;
|
||||
padding: 1em 0;
|
||||
}
|
||||
|
||||
.admin-interface .tabbed-changeform-tabcontent.active {
|
||||
display: block;
|
||||
}
|
||||
@@ -0,0 +1,126 @@
|
||||
/*
|
||||
ckeditor + light theme
|
||||
https://github.com/Ikimea/ckeditor-light-theme
|
||||
*/
|
||||
|
||||
.admin-interface .cke {
|
||||
border: none;
|
||||
box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
}
|
||||
|
||||
.admin-interface .cke_inner,
|
||||
.admin-interface .cke_wysiwyg_frame {
|
||||
border-top-left-radius: 4px;
|
||||
border-top-right-radius: 4px;
|
||||
border-bottom-left-radius: 4px;
|
||||
border-bottom-right-radius: 4px;
|
||||
}
|
||||
|
||||
.admin-interface .cke_inner {
|
||||
border: 1px solid #CCCCCC;
|
||||
}
|
||||
|
||||
.admin-interface .cke_chrome {
|
||||
-moz-box-shadow: none;
|
||||
-webkit-box-shadow: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.admin-interface .cke_top {
|
||||
background: #f8f8f8;
|
||||
border-top: none;
|
||||
border-top-left-radius: 4px;
|
||||
border-top-right-radius: 4px;
|
||||
border-bottom: 1px solid #EEEEEE;
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
-moz-box-shadow: none;
|
||||
-webkit-box-shadow: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.admin-interface .cke_toolgroup {
|
||||
background: none;
|
||||
-moz-box-shadow: none;
|
||||
-webkit-box-shadow: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.admin-interface .cke_bottom {
|
||||
background: #f8f8f8;
|
||||
border-top: 1px solid #EEEEEE;
|
||||
|
||||
border-bottom-left-radius: 4px;
|
||||
border-bottom-right-radius: 4px;
|
||||
|
||||
-moz-box-shadow: none;
|
||||
-webkit-box-shadow: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.admin-interface .cke_source {
|
||||
padding: 13px 15px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.admin-interface a.cke_button,
|
||||
.admin-interface a.cke_button:active,
|
||||
.admin-interface a.cke_button:hover,
|
||||
.admin-interface a.cke_button:focus {
|
||||
box-shadow: none;
|
||||
-moz-box-shadow: none;
|
||||
-webkit-box-shadow: none;
|
||||
background-image: none;
|
||||
border-radius: 4px;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.admin-interface a.cke_button:active,
|
||||
.admin-interface a.cke_button:hover,
|
||||
.admin-interface a.cke_button:focus {
|
||||
background-color: #E8E8E8 !important;
|
||||
}
|
||||
|
||||
.admin-interface a.cke_button.cke_button_on {
|
||||
background-color: #CCCCCC !important;
|
||||
}
|
||||
|
||||
.admin-interface a.cke_button.cke_button_disabled {
|
||||
background-color: transparent !important;
|
||||
}
|
||||
|
||||
.admin-interface .cke_resizer {
|
||||
border-color: transparent #666666 transparent transparent;
|
||||
}
|
||||
|
||||
@media (max-width: 767px){
|
||||
|
||||
.admin-interface .django-ckeditor-widget,
|
||||
.admin-interface .cke {
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
.admin-interface .cke_top {
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
.admin-interface .cke_toolbar {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.admin-interface .cke_contents {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.admin-interface .tabular .django-ckeditor-widget,
|
||||
.admin-interface .tabular .cke {
|
||||
width: 400px !important;
|
||||
}
|
||||
|
||||
.admin-interface .tabular .cke_contents {
|
||||
height: 90px !important;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
/* Fix left/right scrolling broken with django-import-export #165 */
|
||||
.admin-interface table.import-preview {
|
||||
display: block;
|
||||
width: 100%;
|
||||
max-width: 100%;
|
||||
overflow: auto;
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
/*
|
||||
django-json-widget support
|
||||
https://github.com/jmrivas86/django-json-widget
|
||||
*/
|
||||
|
||||
.admin-interface div.jsoneditor {
|
||||
border: 1px solid var(--admin-interface-module-background-color);
|
||||
border-radius: var(--admin-interface-jsoneditor-border-radius);
|
||||
overflow: var(--admin-interface-jsoneditor-overflow);
|
||||
}
|
||||
|
||||
.admin-interface div.jsoneditor-menu {
|
||||
background-color: var(--admin-interface-module-background-color);
|
||||
border-bottom: 1px solid var(--admin-interface-module-background-color);
|
||||
}
|
||||
|
||||
.admin-interface div.jsoneditor-menu a.jsoneditor-poweredBy {
|
||||
color: var(--admin-interface-module-link-color);
|
||||
}
|
||||
|
||||
.admin-interface div.jsoneditor-contextmenu ul li button.jsoneditor-selected,
|
||||
.admin-interface div.jsoneditor-contextmenu ul li button.jsoneditor-selected:focus,
|
||||
.admin-interface div.jsoneditor-contextmenu ul li button.jsoneditor-selected:hover {
|
||||
background-color: var(--admin-interface-module-background-selected-color);
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
/*
|
||||
django-modeltranslation support
|
||||
https://github.com/deschler/django-modeltranslation
|
||||
*/
|
||||
|
||||
.admin-interface #content h1 select {
|
||||
text-transform: uppercase;
|
||||
margin-left: 15px;
|
||||
min-width: 50px;
|
||||
}
|
||||
|
||||
.admin-interface .ui-tabs .ui-tabs-panel[id^=tab_id_] {
|
||||
border: none;
|
||||
border-top: 1px solid #eeeeee;
|
||||
padding: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
.admin-interface #changelist-filter .admindatefilter {
|
||||
border-bottom: 1px solid var(--hairline-color);
|
||||
}
|
||||
|
||||
.admin-interface #changelist-filter .admindatefilter .button,
|
||||
.admin-interface #changelist-filter .admindatefilter .submit-row input,
|
||||
.admin-interface #changelist-filter .admindatefilter a.button,
|
||||
.admin-interface #changelist-filter .admindatefilter input[type="submit"],
|
||||
.admin-interface #changelist-filter .admindatefilter input[type="button"],
|
||||
.admin-interface #changelist-filter .admindatefilter input[type="reset"] {
|
||||
background: var(--admin-interface-module-background-color);
|
||||
color: var(--admin-interface-module-link-color);
|
||||
padding: 6px 10px;
|
||||
font-size: 12px;
|
||||
margin-right: 4px;
|
||||
}
|
||||
|
||||
.admin-interface #changelist-filter .admindatefilter .button:hover,
|
||||
.admin-interface #changelist-filter .admindatefilter .submit-row input:hover,
|
||||
.admin-interface #changelist-filter .admindatefilter a.button:hover,
|
||||
.admin-interface #changelist-filter .admindatefilter input[type="submit"]:hover,
|
||||
.admin-interface #changelist-filter .admindatefilter input[type="button"]:hover,
|
||||
.admin-interface #changelist-filter .admindatefilter input[type="reset"]:hover {
|
||||
color: var(--admin-interface-module-link-hover-color);
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
/*
|
||||
sorl-thumbnail - improved AdminImageMixin widget layout
|
||||
https://github.com/mariocesar/sorl-thumbnail
|
||||
*/
|
||||
|
||||
.admin-interface a.thumbnail + a {
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.admin-interface a.thumbnail + a + input[type="checkbox"] {
|
||||
margin: 10px 0px 10px 18px;
|
||||
}
|
||||
|
||||
@media (max-width: 767px){
|
||||
.admin-interface a.thumbnail + a {
|
||||
display: block;
|
||||
margin-top: 3px;
|
||||
white-space: pre-wrap;
|
||||
word-break: break-word;
|
||||
}
|
||||
.admin-interface a.thumbnail + a + input[type="checkbox"] {
|
||||
margin: 15px 0;
|
||||
}
|
||||
}
|
||||
|
||||
.admin-interface a.thumbnail ~ label {
|
||||
color: #333;
|
||||
font-size: 11px;
|
||||
display: inline;
|
||||
float: none;
|
||||
margin-left: 2px;
|
||||
}
|
||||
|
||||
.admin-interface.change-form div[style="float:left"] {
|
||||
font-size: 11px;
|
||||
font-weight: bold;
|
||||
color: #666;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
@media (max-width: 767px){
|
||||
.admin-interface.change-form div[style="float:left"] {
|
||||
font-size: 12px;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.admin-interface .aligned .form-row a.thumbnail ~ input[type="file"] {
|
||||
margin-top: 0px;
|
||||
}
|
||||
|
||||
@media (max-width:767px){
|
||||
.admin-interface .aligned .form-row a.thumbnail ~ input[type="file"] {
|
||||
width: auto;
|
||||
padding: 0px;
|
||||
display: block;
|
||||
margin-top: 3px;
|
||||
}
|
||||
|
||||
.admin-interface div[style="float:left"] {
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
|
||||
.admin-interface div[style="float:left"] + div.help {
|
||||
margin-top: 0px !important;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,220 @@
|
||||
/*
|
||||
django-streamfield support
|
||||
https://github.com/raagin/django-streamfield/
|
||||
*/
|
||||
|
||||
.admin-interface .form-row.field-stream {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.admin-interface .form-row.field-stream label[for=id_stream] {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.admin-interface .streamfield_app {
|
||||
clear: both;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.admin-interface .streamfield_app .stream-help-text {
|
||||
margin-bottom: 15px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.admin-interface .streamfield_app .stream-help-text .stream-help-text__title {
|
||||
align-self: flex-end;
|
||||
user-select: none;
|
||||
padding: 8px;
|
||||
padding-right: 0;
|
||||
color: var(--admin-interface-generic-link-color);
|
||||
}
|
||||
|
||||
.admin-interface .streamfield_app .stream-help-text .stream-help-text__title:hover {
|
||||
color: var(--admin-interface-generic-link-hover-color);
|
||||
}
|
||||
|
||||
.admin-interface .streamfield_app .stream-help-text .stream-help-text__content {
|
||||
background: var(--admin-interface-module-background-selected-color);
|
||||
border-radius: var(--admin-interface-module-border-radius);
|
||||
border: 1px solid rgba(0,0,0,0.1);
|
||||
padding: 15px;
|
||||
}
|
||||
|
||||
.admin-interface .streamfield_app .stream-help-text .stream-help-text__content > ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.admin-interface .streamfield_app .collapse-handlers .collapse-handler {
|
||||
user-select: none;
|
||||
padding: 8px;
|
||||
padding-right: 0;
|
||||
margin: 0 0 5px 0;
|
||||
color: var(--admin-interface-generic-link-color);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.admin-interface .streamfield_app .collapse-handlers .collapse-handler:hover {
|
||||
color: var(--admin-interface-generic-link-hover-color);
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.admin-interface .streamfield_app .stream-model-block {
|
||||
position: relative;
|
||||
box-shadow: none;
|
||||
border: 1px solid rgba(0,0,0,0.1);
|
||||
border-radius: var(--admin-interface-module-border-radius);
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.admin-interface .streamfield_app .stream-model-block,
|
||||
.admin-interface .streamfield_app .streamfield-models.collapsed .stream-model-block {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.admin-interface .streamfield_app .stream-model-block .streamblock__block__title {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin: 0;
|
||||
padding: 10px 10px 10px 20px;
|
||||
}
|
||||
|
||||
.admin-interface .streamfield_app .stream-model-block .streamblock__block__title .streamblock__block__model_title {
|
||||
white-space: nowrap;
|
||||
flex-shrink: 0;
|
||||
margin-right: 20px;
|
||||
}
|
||||
|
||||
.admin-interface .streamfield_app .stream-model-block .streamblock__block__title span {
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
.admin-interface .streamfield_app .stream-model-block .streamblock__block__title .streamblock__block-handle {
|
||||
position: static;
|
||||
right: 0;
|
||||
top: 0;
|
||||
color: var(--admin-interface-generic-link-color);
|
||||
}
|
||||
|
||||
.admin-interface .streamfield_app .stream-model-block .streamblock__block__title .streamblock__block-handle:hover {
|
||||
color: var(--admin-interface-generic-link-hover-color);
|
||||
}
|
||||
|
||||
.admin-interface .streamfield_app .stream-model-block .streamblock__block__title .streamblock__block-handle {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.admin-interface .streamfield_app .stream-model-block .streamblock__block__title .streamblock__block-handle .block-move,
|
||||
.admin-interface .streamfield_app .stream-model-block .streamblock__block__title .streamblock__block-handle .block-delete {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
font-weight: normal;
|
||||
background: none;
|
||||
flex-shrink: 0;
|
||||
color: inherit;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.admin-interface .streamfield_app .stream-model-block .streamblock__block__title .streamblock__block-handle .block-move {
|
||||
cursor: move; /* fallback if grab cursor is unsupported */
|
||||
cursor: grab;
|
||||
cursor: -moz-grab;
|
||||
cursor: -webkit-grab;
|
||||
}
|
||||
|
||||
.admin-interface .streamfield_app .stream-model-block .streamblock__block__title .streamblock__block-handle .block-move:before {
|
||||
content: "↕";
|
||||
|
||||
display: block;
|
||||
}
|
||||
|
||||
.admin-interface .streamfield_app .stream-model-block .streamblock__block__title .streamblock__block-handle .block-delete:before {
|
||||
content: "×";
|
||||
display: block;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
.admin-interface .streamfield_app .stream-model-block .streamblock__block__subtitle {
|
||||
display: -webkit-box;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-line-clamp: 2;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
flex-shrink: 1;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.admin-interface .streamfield_app .block-fields > div {
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
.admin-interface .streamfield_app .stream-model-block .stream-model-block__content {
|
||||
background-color: #f8f8f8;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
.admin-interface .streamfield_app .stream-model-block .stream-model-block__content.no-subblocks.abstract-block {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.admin-interface .streamfield_app .stream-model-block .add_here {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.admin-interface .streamfield_app .stream-insert-new-block {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.admin-interface .streamfield_app .stream-insert-new-block .add-new-block-button {
|
||||
color: var(--admin-interface-generic-link-color);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.admin-interface .streamfield_app .stream-insert-new-block .add-new-block-button:hover {
|
||||
color: var(--admin-interface-generic-link-hover-color);
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.admin-interface .streamfield_app .stream-insert-new-block ul {
|
||||
display: block;
|
||||
width: 100%;
|
||||
margin: 10px 0 0 0;
|
||||
padding: 0;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.admin-interface .streamfield_app .stream-insert-new-block ul li {
|
||||
display: inline-block;
|
||||
font-size: 12px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.admin-interface .streamfield_app .stream-btn {
|
||||
font-weight: normal;
|
||||
text-decoration: none;
|
||||
background-color: var(--admin-interface-generic-link-color);
|
||||
padding: 6px 12px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.admin-interface .streamfield_app .stream-btn:hover {
|
||||
text-decoration: none;
|
||||
background-color: var(--admin-interface-generic-link-hover-color);
|
||||
}
|
||||
|
||||
.admin-interface .streamfield_app .stream-insert-new-block ul li .stream-btn {
|
||||
margin-top: 5px;
|
||||
margin-left: 5px;
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
/*
|
||||
django-tabbed-admin support
|
||||
https://github.com/omji/django-tabbed-admin
|
||||
*/
|
||||
|
||||
/* Hide tabs until ready */
|
||||
/*
|
||||
.admin-interface #tabs ul {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.admin-interface #tabs ul.ui-tabs-nav {
|
||||
display: block;
|
||||
}
|
||||
*/
|
||||
|
||||
.admin-interface .ui-tabs .ui-tabs-panel[id^=tabs] .module.aligned:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.admin-interface .ui-tabs .ui-tabs-panel[id^=tabs] .module.aligned:last-child .form-row:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
@media (max-width: 350px){
|
||||
.admin-interface .ui-tabs .ui-tabs-panel[id^=tabs] .vTextField,
|
||||
.admin-interface .inline-related .vTextField {
|
||||
width: 17em;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 767px){
|
||||
/* fix horizontal overflow - responsive.css:563 */
|
||||
.admin-interface .ui-tabs .ui-tabs-panel[id^=tabs] .aligned .form-row > div:not([class]) {
|
||||
width: 100% !important;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
.admin-interface textarea.tinymce ~ p.help {
|
||||
margin-top:5px !important;
|
||||
}
|
||||
@@ -0,0 +1,153 @@
|
||||
/* fix generic flex container */
|
||||
.admin-interface .flex-container {
|
||||
width: 100%;
|
||||
}
|
||||
/* end-fix */
|
||||
|
||||
/* fix flex container for boolean fields */
|
||||
.admin-interface .flex-container.checkbox-row {
|
||||
align-items: center;
|
||||
}
|
||||
.admin-interface .flex-container.checkbox-row label.vCheckboxLabel {
|
||||
margin-top: 0 !important;
|
||||
padding-left: 5px !important;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
/* end-fix */
|
||||
|
||||
/* fix flex container for related-lookup (raw_id_fields) */
|
||||
.admin-interface .flex-container:has(.vForeignKeyRawIdAdminField) {
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.admin-interface .flex-container:has(.vForeignKeyRawIdAdminField) .related-lookup {
|
||||
margin-left: 12px;
|
||||
}
|
||||
|
||||
.admin-interface .flex-container:has(.vForeignKeyRawIdAdminField) .related-lookup + * {
|
||||
margin-left: 8px;
|
||||
}
|
||||
/* end-fix */
|
||||
|
||||
/* fix flex container input fields height inheritance */
|
||||
.admin-interface .flex-container label + input[type="text"],
|
||||
.admin-interface .flex-container label + input[type="password"],
|
||||
.admin-interface .flex-container label + input[type="email"],
|
||||
.admin-interface .flex-container label + input[type="url"],
|
||||
.admin-interface .flex-container label + input[type="number"],
|
||||
.admin-interface .flex-container label + input[type="tel"] {
|
||||
height: 1.375em;
|
||||
}
|
||||
/* end-fix */
|
||||
|
||||
/* fixed time widget header border radius */
|
||||
.admin-interface .clockbox.module h2 {
|
||||
border-bottom-left-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
}
|
||||
/* end-fix */
|
||||
|
||||
/* fixed related widget and select2 */
|
||||
/* begin fix issue #10 - Related widget broken in long tabular inline */
|
||||
.admin-interface .related-widget-wrapper {
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
white-space: nowrap;
|
||||
height: fit-content;
|
||||
}
|
||||
/* end fix */
|
||||
|
||||
/* fix related widget links icons size and vertical alignment */
|
||||
.admin-interface .related-widget-wrapper .related-widget-wrapper-link {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
.admin-interface .related-widget-wrapper .related-widget-wrapper-link img {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
/* end fix */
|
||||
|
||||
/* fix related widget links add button position on many-to-many selector */
|
||||
.admin-interface .related-widget-wrapper .related-widget-wrapper-link:has(+ .selector) {
|
||||
order: 2;
|
||||
align-self: flex-start;
|
||||
margin-top: 8px;
|
||||
}
|
||||
/* end fix */
|
||||
|
||||
/* fix related widget links margin from select2 (autocomplete_fields) */
|
||||
.admin-interface .related-widget-wrapper .select2-container + .related-widget-wrapper-link {
|
||||
margin-left: 12px !important;
|
||||
}
|
||||
/* end fix */
|
||||
|
||||
/* improve responsive selector */
|
||||
|
||||
/* fix [stacked, not-stacked] equalize horizontal and vertical select padding for selector */
|
||||
.admin-interface .selector .selector-available select,
|
||||
.admin-interface .selector .selector-chosen select {
|
||||
padding: 7px 10px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
/* fix [stacked, not-stacked] select options text overflow */
|
||||
.admin-interface .selector .selector-available select option,
|
||||
.admin-interface .selector .selector-chosen select option {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
/* fix [not-stacked] equalize selectors height by adding the height of the .selector-available filter-bar */
|
||||
.admin-interface .selector:not(.stacked) .selector-chosen select {
|
||||
height: calc(46px + 17.2em) !important;
|
||||
}
|
||||
|
||||
@media (max-width: 767px) {
|
||||
/* fixed responsive widgets */
|
||||
.admin-interface .aligned.collapsed .form-row {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.admin-interface .aligned .form-row > div {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
max-width: 100vw;
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
.admin-interface .aligned .form-row .help {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.admin-interface .aligned .form-row .checkbox-row label {
|
||||
margin: 10px 0 0 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.admin-interface .aligned .form-row input[type="file"],
|
||||
.admin-interface .aligned .form-row input[type="text"],
|
||||
.admin-interface .aligned .form-row input[type="email"] {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/* fix textarea horizontal scroll on Firefox */
|
||||
.admin-interface .aligned .form-row textarea {
|
||||
width: 100% !important;
|
||||
flex: 0 1 auto;
|
||||
}
|
||||
|
||||
.admin-interface .aligned .form-row .datetime input[type="text"] {
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
.admin-interface .aligned .form-row span + .file-upload {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.admin-interface .aligned .form-row .file-upload input[type="file"] {
|
||||
margin-top: 5px;
|
||||
}
|
||||
}
|
||||
@@ -31,7 +31,7 @@
|
||||
right: 0;
|
||||
z-index: 10;
|
||||
width: auto;
|
||||
height: 100%;
|
||||
height: calc(100% - 3px);
|
||||
content: "−";
|
||||
font-size: 16px;
|
||||
font-weight: lighter;
|
||||
|
||||
+3
-3
@@ -1507,7 +1507,7 @@
|
||||
}
|
||||
},
|
||||
|
||||
// Get element postion relative to viewport
|
||||
// Get element position relative to viewport
|
||||
_getOffset: function(isLarge) {
|
||||
var el;
|
||||
if(isLarge) {
|
||||
@@ -1808,7 +1808,7 @@
|
||||
_mfpTrigger('LazyLoad', item);
|
||||
|
||||
if(item.type === 'image') {
|
||||
item.img = $('<img class="mfp-img" />').on('load.mfploader', function() {
|
||||
item.img = $('<img class="mfp-img">').on('load.mfploader', function() {
|
||||
item.hasSize = true;
|
||||
}).on('error.mfploader', function() {
|
||||
item.hasSize = true;
|
||||
@@ -1864,4 +1864,4 @@
|
||||
|
||||
/*>>retina*/
|
||||
_checkInstance();
|
||||
}));
|
||||
}));
|
||||
|
||||
@@ -0,0 +1,82 @@
|
||||
/*
|
||||
related modal + magnific popup customization
|
||||
https://github.com/dimsemenov/Magnific-Popup
|
||||
*/
|
||||
.admin-interface .related-modal.mfp-bg {
|
||||
background-color: var(--admin-interface-related-modal-background-color);
|
||||
opacity: var(--admin-interface-related-modal-background-opacity);
|
||||
}
|
||||
|
||||
.admin-interface .related-modal .mfp-content {
|
||||
height: 100%;
|
||||
-webkit-box-shadow: 0px 5px 30px 0px rgba(0, 0, 0, 0.2);
|
||||
-moz-box-shadow: 0px 5px 30px 0px rgba(0, 0, 0, 0.2);
|
||||
box-shadow: 0px 5px 30px 0px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
.admin-interface .related-modal .mfp-container {
|
||||
padding: 80px 80px 80px 80px;
|
||||
}
|
||||
|
||||
.admin-interface .related-modal__nested .mfp-container {
|
||||
padding: 40px 80px 40px 80px;
|
||||
}
|
||||
|
||||
@media (max-width: 640px) {
|
||||
.admin-interface .related-modal .mfp-container {
|
||||
padding: 80px 20px 80px 20px;
|
||||
}
|
||||
|
||||
.admin-interface .related-modal__nested .mfp-container {
|
||||
padding: 40px 40px 40px 40px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-height: 640px) {
|
||||
.admin-interface .related-modal .mfp-container {
|
||||
padding-top: 20px;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
|
||||
.admin-interface .related-modal__nested .mfp-container {
|
||||
padding: 40px 40px 40px 40px;
|
||||
}
|
||||
}
|
||||
|
||||
.admin-interface .related-modal .related-modal-iframe-container {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: relative;
|
||||
z-index: 100;
|
||||
overflow: hidden;
|
||||
border-radius: var(--admin-interface-related-modal-border-radius);
|
||||
}
|
||||
|
||||
.admin-interface .related-modal #related-modal-iframe {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: #FFFFFF;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
background-size: 30px 30px;
|
||||
background-image: url("data:image/svg+xml;utf8,<?xml version='1.0' encoding='utf-8'?><svg width='30px' height='30px' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='xMidYMid' class='uil-ring-alt'><rect x='0' y='0' width='100' height='100' fill='none' class='bk'></rect><circle cx='50' cy='50' r='40' stroke='%23eeeeee' fill='none' stroke-width='6' stroke-linecap='round'></circle><circle cx='50' cy='50' r='40' stroke='%23aaaaaa' fill='none' stroke-width='6' stroke-linecap='round'><animate attributeName='stroke-dashoffset' dur='2s' repeatCount='indefinite' from='0' to='500'></animate><animate attributeName='stroke-dasharray' dur='2s' repeatCount='indefinite' values='150 100;1 250;150 100'></animate></circle></svg>");
|
||||
border: none;
|
||||
margin: 0 auto;
|
||||
padding: 0;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.admin-interface .related-modal .mfp-close {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
opacity: 1.0;
|
||||
color: rgba(0, 0, 0, 0.4);
|
||||
display: var(--admin-interface-related-modal-close-button-display);
|
||||
}
|
||||
|
||||
.admin-interface .related-modal .mfp-close:hover,
|
||||
.admin-interface .related-modal .mfp-close:active {
|
||||
color: rgba(0, 0, 0, 0.6);
|
||||
top: 0;
|
||||
}
|
||||
@@ -70,7 +70,7 @@ if (typeof(django) !== 'undefined' && typeof(django.jQuery) !== 'undefined')
|
||||
}
|
||||
}
|
||||
|
||||
// fix for django 1.7
|
||||
// fix for django 1.7 TODO remove
|
||||
if (iframeSrc.indexOf('_popup=1') === -1) {
|
||||
if (iframeSrc.indexOf('?') === -1) {
|
||||
iframeSrc += '?_popup=1';
|
||||
@@ -125,26 +125,22 @@ if (typeof(django) !== 'undefined' && typeof(django.jQuery) !== 'undefined')
|
||||
var data = {
|
||||
lookup:(lookup === true ? true : false)
|
||||
};
|
||||
// remove potential existing click event listener
|
||||
var el = $(selector);
|
||||
el.removeAttr('onclick');
|
||||
el.unbind('click');
|
||||
el.click(data, presentRelatedObjectModal);
|
||||
// listen the event on document for handling it on elements will be added to the DOM later
|
||||
$(document).on('click', selector, data, presentRelatedObjectModal);
|
||||
}
|
||||
|
||||
// assign functions to global variables
|
||||
window.presentRelatedObjectModal = presentRelatedObjectModal;
|
||||
window.presentRelatedObjectModalOnClickOn = presentRelatedObjectModalOnClickOn;
|
||||
|
||||
// django 1.7 compatibility
|
||||
// $('a.add-another').removeAttr('onclick').click({ lookup:false }, presentRelatedObjectModal);
|
||||
presentRelatedObjectModalOnClickOn('a.add-another');
|
||||
|
||||
// django 1.8 and above
|
||||
// $('a.related-widget-wrapper-link').click({ lookup:false }, presentRelatedObjectModal);
|
||||
presentRelatedObjectModalOnClickOn('a.related-widget-wrapper-link');
|
||||
|
||||
// raw_id_fields support
|
||||
// $('a.related-lookup').unbind('click').click({ lookup:true }, presentRelatedObjectModal);
|
||||
presentRelatedObjectModalOnClickOn('a.related-lookup', true);
|
||||
|
||||
// django-dynamic-raw-id support - #61
|
||||
@@ -153,6 +149,22 @@ if (typeof(django) !== 'undefined' && typeof(django.jQuery) !== 'undefined')
|
||||
|
||||
// show_change_link=True support
|
||||
presentRelatedObjectModalOnClickOn('a.inlinechangelink');
|
||||
|
||||
// any link with _popup=1 parameter support
|
||||
presentRelatedObjectModalOnClickOn('a[href*="_popup=1"]');
|
||||
|
||||
// django-streamfield support
|
||||
// https://github.com/raagin/django-streamfield/
|
||||
presentRelatedObjectModalOnClickOn('.streamfield_app a.stream-btn[href*="_popup=1"]');
|
||||
// Vanilla js for catching the click during capture phase for anticipating Vue.js listener.
|
||||
document.addEventListener('click', function(event) {
|
||||
// console.log('click intercepted before Vue.');
|
||||
if (event.target.matches('.streamfield_app a.stream-btn[href*="_popup=1"]')) {
|
||||
event.stopImmediatePropagation();
|
||||
event.preventDefault();
|
||||
$(event.target).trigger('click');
|
||||
}
|
||||
}, { capture: true });
|
||||
});
|
||||
|
||||
})(django.jQuery);
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
(function (AdminInterface) {
|
||||
|
||||
var scope = AdminInterface;
|
||||
|
||||
scope.tabbedChangeForm = {
|
||||
|
||||
openTab: function (event, tabName) {
|
||||
this.openTabByName(tabName);
|
||||
},
|
||||
|
||||
openTabByName: function(tabName) {
|
||||
let tablinkEl = document.getElementById("tablink-" + tabName);
|
||||
let tabcontentEl = document.getElementById("tabcontent-" + tabName);
|
||||
if (!tablinkEl || !tabcontentEl) {
|
||||
return false;
|
||||
}
|
||||
|
||||
let tablinks = document.getElementsByClassName("tabbed-changeform-tablink");
|
||||
let tabcontents = document.getElementsByClassName("tabbed-changeform-tabcontent");
|
||||
|
||||
// toggle tab link
|
||||
for (let tablink of tablinks) {
|
||||
tablink.classList.remove("active");
|
||||
}
|
||||
tablinkEl.classList.add("active");
|
||||
|
||||
// toggle tab content
|
||||
for (let tabcontent of tabcontents) {
|
||||
tabcontent.classList.remove("active");
|
||||
}
|
||||
tabcontentEl.classList.add("active");
|
||||
|
||||
// update location hash
|
||||
let history = window.history;
|
||||
if (history) {
|
||||
history.replaceState(undefined, undefined, "#" + tabName);
|
||||
}
|
||||
|
||||
return true;
|
||||
},
|
||||
|
||||
openTabByLocationHash: function() {
|
||||
let hash = window.location.hash;
|
||||
if (hash && hash !== "#") {
|
||||
let tabName = hash.substring(1);
|
||||
if (this.openTabByName(tabName)) {
|
||||
this.scrollTabsToTabByName(tabName);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
scrollTabsToTabByName: function(tabName) {
|
||||
let tabsEl = document.getElementById("tabbed-changeform-tabs");
|
||||
let tablinkEl = document.getElementById("tablink-" + tabName);
|
||||
if (!tabsEl || !tablinkEl) {
|
||||
return;
|
||||
}
|
||||
let tablinkLeft = (tablinkEl.offsetLeft - tabsEl.offsetLeft);
|
||||
let tabsScrollLeft = Math.ceil(tablinkLeft);
|
||||
tabsEl.scrollTo({
|
||||
top: 0,
|
||||
left: tabsScrollLeft,
|
||||
behavior: "instant"
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
// scope.tabbedChangeForm.openTabByLocationHash();
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
scope.tabbedChangeForm.openTabByLocationHash();
|
||||
}, false);
|
||||
|
||||
}(window.AdminInterface = window.AdminInterface || {}));
|
||||
@@ -49,7 +49,7 @@ CKEDITOR.skin.name = 'husky';
|
||||
// the complete list:
|
||||
// http://docs.ckeditor.com/#!/api/CKEDITOR.env
|
||||
//
|
||||
// Internet explorer is an expection and the browser version is also accepted
|
||||
// Internet explorer is an exception and the browser version is also accepted
|
||||
// (ie7, ie8, ie9, ie10), as well as a special name for IE in Quirks mode (iequirks).
|
||||
//
|
||||
// The available browser specific files must be set separately for editor.css
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
// IMPORTANT: used by django-streamfield >= 2.0.0
|
||||
|
||||
(function() {
|
||||
|
||||
'use strict';
|
||||
|
||||
var windowRef = window;
|
||||
var openerRef = windowRef.parent;
|
||||
|
||||
var initData = JSON.parse(document.getElementById('django-admin-popup-response-constants').dataset.popupResponse);
|
||||
switch (initData.action) {
|
||||
case 'change':
|
||||
openerRef.streamapps[initData.app_id].updateBlock(initData.block_id, initData.instance_id);
|
||||
openerRef.dismissRelatedObjectModal();
|
||||
break;
|
||||
case 'delete':
|
||||
break;
|
||||
default:
|
||||
openerRef.streamapps[initData.app_id].updateBlock(initData.block_id, initData.instance_id);
|
||||
openerRef.dismissRelatedObjectModal();
|
||||
break;
|
||||
}
|
||||
|
||||
})();
|
||||
@@ -0,0 +1,24 @@
|
||||
// IMPORTANT: used by django-streamfield >= 2.0.0
|
||||
|
||||
(function() {
|
||||
|
||||
'use strict';
|
||||
|
||||
var windowRef = window;
|
||||
var openerRef = windowRef.parent;
|
||||
|
||||
var initData = JSON.parse(document.getElementById('django-admin-popup-response-constants').dataset.popupResponse);
|
||||
switch (initData.action) {
|
||||
case 'change':
|
||||
openerRef.streamapps[initData.app_id].updateBlock(initData.block_id, initData.instance_id);
|
||||
openerRef.dismissRelatedObjectModal();
|
||||
break;
|
||||
case 'delete':
|
||||
break;
|
||||
default:
|
||||
openerRef.streamapps[initData.app_id].updateBlock(initData.block_id, initData.instance_id);
|
||||
openerRef.dismissRelatedObjectModal();
|
||||
break;
|
||||
}
|
||||
|
||||
})();
|
||||
Reference in New Issue
Block a user