Compare commits

..

No commits in common. "e00c9318fa9f2e97ee89e7315ceb3d6eb7786665" and "e4cd8bb30155bd7dfce274c44dc6f24ba72cab27" have entirely different histories.

6 changed files with 123 additions and 270 deletions

View File

@ -51,4 +51,4 @@ class PlaceImageCreateForm(forms.ModelForm):
class TagSubmitForm(forms.Form): class TagSubmitForm(forms.Form):
tag_list = forms.CharField(max_length=500, required=False) tag_list = forms.CharField(max_length=500)

View File

@ -574,8 +574,7 @@ body {
padding: 8px 14px; padding: 8px 14px;
border-radius: 2px; border-radius: 2px;
font-weight: bold; font-weight: bold;
cursor: pointer; cursor: pointer; }
white-space: nowrap; }
.LP-Button:active { .LP-Button:active {
background-color: #76323F; background-color: #76323F;
color: #f9f9f9; } color: #f9f9f9; }
@ -601,28 +600,19 @@ body {
flex-direction: column; flex-direction: column;
margin-bottom: -30px; margin-bottom: -30px;
padding: 10px 0; } padding: 10px 0; }
.LP-Input--tagging .LP-Button { .LP-Input .LP-Input__Field {
height: 53px; }
.LP-Input--tagging .LP-Input__Field, .LP-Input--tagging .tagify {
min-height: 36px;
height: max-content;
font-family: Montserrat, Helvetica, sans-serif;
font-size: 1em;
padding: 0;
padding-left: 8px; }
.LP-Input .LP-Input__Field, .LP-Input .tagify {
border: none; border: none;
border-bottom: 1px solid #565656; border-bottom: 1px solid #565656;
padding: 8px 0; padding: 8px 0;
margin-bottom: 30px; margin-bottom: 30px;
width: 100%; } width: 100%; }
.LP-Input .LP-Input__Field:focus, .LP-Input .tagify:focus, .LP-Input .LP-Input__Field:active, .LP-Input .tagify:active, .LP-Input .LP-Input__Field:invalid, .LP-Input .tagify:invalid, .LP-Input .LP-Input__Field--active, .LP-Input .tagify--focus { .LP-Input .LP-Input__Field:focus, .LP-Input .LP-Input__Field:active, .LP-Input .LP-Input__Field:invalid {
margin-bottom: 29px; margin-bottom: 29px;
border-bottom: 2px solid #76323F; border-bottom: 2px solid #76323F;
background-color: #f9f9f9; background-color: #f9f9f9;
border-radius: 3px 3px 0 0; border-radius: 3px 3px 0 0;
box-shadow: none; } box-shadow: none; }
.LP-Input .LP-Input__Field[type=submit], .LP-Input .tagify[type=submit] { .LP-Input .LP-Input__Field[type=submit] {
background-color: #C09F80; background-color: #C09F80;
color: #565656; color: #565656;
border: none; border: none;
@ -630,7 +620,7 @@ body {
border-radius: 2px; border-radius: 2px;
font-weight: bold; font-weight: bold;
cursor: pointer; } cursor: pointer; }
.LP-Input .LP-Input__Field[type=submit]:active, .LP-Input .tagify[type=submit]:active { .LP-Input .LP-Input__Field[type=submit]:active {
background-color: #76323F; background-color: #76323F;
color: #f9f9f9; } color: #f9f9f9; }
.LP-Input .LP-Input__Label { .LP-Input .LP-Input__Label {
@ -646,30 +636,22 @@ body {
position: relative; position: relative;
top: -30px; top: -30px;
overflow: hidden; } overflow: hidden; }
.LP-Input--error .LP-Input__Field, .LP-Input--error .tagify { .LP-Input--error .LP-Input__Field {
margin-bottom: 25px; margin-bottom: 25px;
border-bottom: 2px solid #76323F; border-bottom: 2px solid #76323F;
margin-bottom: 29px; } margin-bottom: 29px; }
.LP-Input--error .LP-Input__Message { .LP-Input--error .LP-Input__Message {
color: #76323F; } color: #76323F; }
.LP-Input--disabled .LP-Input__Field, .LP-Input--disabled .tagify, .LP-Input--disabled .LP-Input__Field, .LP-Input--disabled .LP-Input__Field:disabled {
.LP-Input--disabled .LP-Input__Field:disabled,
.LP-Input--disabled .tagify:disabled {
background-color: transparent; background-color: transparent;
border-bottom: 1px dashed #565656; border-bottom: 1px dashed #565656;
cursor: not-allowed; } cursor: not-allowed; }
label + .LP-Input--disabled .LP-Input__Field, label + .LP-Input--disabled .tagify, label + .LP-Input--disabled .LP-Input__Field:disabled, label + .LP-Input--disabled .tagify:disabled { label + .LP-Input--disabled .LP-Input__Field, label + .LP-Input--disabled .LP-Input__Field:disabled {
color: red; } color: red; }
.LP-Input--disabled .LP-Input__Field:focus, .LP-Input--disabled .tagify:focus, .LP-Input--disabled .LP-Input__Field:active, .LP-Input--disabled .tagify:active, .LP-Input--disabled .LP-Input__Field:focus, .LP-Input--disabled .LP-Input__Field:active, .LP-Input--disabled .LP-Input__Field:disabled:focus, .LP-Input--disabled .LP-Input__Field:disabled:active {
.LP-Input--disabled .LP-Input__Field:disabled:focus,
.LP-Input--disabled .tagify:disabled:focus,
.LP-Input--disabled .LP-Input__Field:disabled:active,
.LP-Input--disabled .tagify:disabled:active {
margin-bottom: 30px; margin-bottom: 30px;
border-radius: 0; } border-radius: 0; }
.LP-Input--disabled .LP-Input__Field ~ .LP-Input__Message, .LP-Input--disabled .tagify ~ .LP-Input__Message, .LP-Input--disabled .LP-Input__Field ~ .LP-Input__Message, .LP-Input--disabled .LP-Input__Field:disabled ~ .LP-Input__Message {
.LP-Input--disabled .LP-Input__Field:disabled ~ .LP-Input__Message,
.LP-Input--disabled .tagify:disabled ~ .LP-Input__Message {
visibility: hidden; } visibility: hidden; }
.LP-Input--disabled .LP-Input__Label { .LP-Input--disabled .LP-Input__Label {
color: #565656; } color: #565656; }
@ -688,14 +670,12 @@ body {
width: auto; width: auto;
object-fit: contain; } object-fit: contain; }
.LP-Tag, .tagify__tag { .LP-Tag {
padding: 8px 14px; padding: 8px 14px;
background-color: #D7CEC7; background-color: #D7CEC7;
border-radius: 2px; border-radius: 2px;
width: max-content; } width: max-content; }
.LP-Tag:hover, .tagify__tag:hover { .LP-Tag .LP-Paragraph {
background-color: #bdbdbd; }
.LP-Tag .LP-Paragraph, .tagify__tag .LP-Paragraph {
padding: 0; padding: 0;
margin: 0; margin: 0;
font-family: Montserrat, Helvetica, sans-serif; font-family: Montserrat, Helvetica, sans-serif;
@ -881,8 +861,8 @@ body {
flex-wrap: wrap; flex-wrap: wrap;
padding: 0; padding: 0;
margin: 0; } margin: 0; }
.LP-TagList .LP-TagList__List .LP-TagList__Item, .LP-TagList .LP-TagList__List .tagify__tag { .LP-TagList .LP-TagList__List .LP-TagList__Item {
margin: 3px; } margin: 6px; }
.LP-Menu { .LP-Menu {
border-left: 1px solid #C09F80; } border-left: 1px solid #C09F80; }
@ -1209,13 +1189,7 @@ body {
.LP-Footer .LP-LinkList__List .LP-LinkList__Item .LP-Link:hover { .LP-Footer .LP-LinkList__List .LP-LinkList__Item .LP-Link:hover {
background-color: inherit; } background-color: inherit; }
.LP-Form--tagging { .LP-Form--inline .LP-Form__Legend, .LP-Form--inline .LP-Input__Label {
margin-top: 25px; }
.LP-Form--tagging div.LP-Form__Composition {
gap: 25px; }
.LP-Form--inline .LP-Form__Legend,
.LP-Form--inline .LP-Input__Label {
display: none; } display: none; }
.LP-Form--inline .LP-Form__Button { .LP-Form--inline .LP-Form__Button {
@ -1224,12 +1198,6 @@ body {
width: min-content; width: min-content;
flex-basis: max-content; } flex-basis: max-content; }
.LP-Form--inline fieldset.LP-Form__Fieldset {
max-width: unset; }
.LP-Form--inline div.LP-Form__Composition {
padding: 0; }
@media (max-width: 450px) { @media (max-width: 450px) {
.LP-Form:not(.LP-Form--inline) .LP-Form__Composition { .LP-Form:not(.LP-Form--inline) .LP-Form__Composition {
flex-wrap: wrap; } } flex-wrap: wrap; } }
@ -1391,23 +1359,25 @@ body {
border: none; } border: none; }
.LP-ImageGrid__Container { .LP-ImageGrid__Container {
gap: 10px; } gap: 10px; }
.LP-ImageGrid .LP-ImageGrid__Item, .LP-ImageGrid .LP-ImageGrid__Item * { .LP-ImageGrid .LP-ImageGrid__Item {
overflow: hidden; box-shadow: 0 0 10px #565656; }
word-break: break-all; } .LP-ImageGrid .LP-ImageGrid__Item, .LP-ImageGrid .LP-ImageGrid__Item * {
.LP-ImageGrid .LP-ImageGrid__Item img { overflow: hidden;
width: 100%; word-break: break-all; }
height: 100%; .LP-ImageGrid .LP-ImageGrid__Item img {
object-fit: cover; } width: 100%;
.LP-ImageGrid .LP-ImageGrid__Item--left img { height: 100%;
object-position: left; } object-fit: cover; }
.LP-ImageGrid .LP-ImageGrid__Item--center img { .LP-ImageGrid .LP-ImageGrid__Item--left img {
object-position: center; } object-position: left; }
.LP-ImageGrid .LP-ImageGrid__Item--top img { .LP-ImageGrid .LP-ImageGrid__Item--center img {
object-position: top; } object-position: center; }
.LP-ImageGrid .LP-ImageGrid__Item--bottom img { .LP-ImageGrid .LP-ImageGrid__Item--top img {
object-position: botom; } object-position: top; }
.LP-ImageGrid .LP-ImageGrid__Item--center img { .LP-ImageGrid .LP-ImageGrid__Item--bottom img {
object-position: center; } object-position: botom; }
.LP-ImageGrid .LP-ImageGrid__Item--center img {
object-position: center; }
.LP-MainContainer { .LP-MainContainer {
margin: 0 auto; margin: 0 auto;
@ -1443,115 +1413,3 @@ body {
margin: 0; margin: 0;
padding: 0; padding: 0;
margin-bottom: 25px; } } margin-bottom: 25px; } }
.tagify {
display: flex;
align-items: center;
gap: 6px;
flex-wrap: wrap; }
.tagify + input,
.tagify + textarea {
display: none; }
.tagify__tag {
background-color: #bdbdbd;
display: inline-flex;
cursor: default;
transition: .13s ease-out;
height: max-content;
align-items: center;
gap: 3px; }
.tagify__tag:hover {
background-color: #e9e9e9; }
.tagify__input {
flex-grow: 1;
display: inline-block;
min-width: 110px;
margin: 5px;
line-height: inherit;
position: relative;
white-space: pre-wrap;
margin-left: 15px; }
.tagify__tag__removeBtn {
order: 5;
cursor: pointer;
font: 1em/1 Arial;
transition: .2s ease-out;
color: #76323F; }
.tagify__tag__removeBtn::after {
content: "\00D7"; }
.tagify__tag__removeBtn:hover {
color: #565656; }
.tagify__tag__removeBtn:hover + div > span {
opacity: .5; }
.tagify__tag__removeBtn:hover + div::before {
box-shadow: 0 0 0 1.1em rgba(211, 148, 148, 0.3) inset !important;
box-shadow: 0 0 0 var(--tag-inset-shadow-size) var(--tag-remove-bg) inset !important;
transition: .2s; }
.tagify__tag--loading .tagify__tag__removeBtn {
display: none; }
.tagify[readonly]:not(.tagify--mix) .tagify__tag__removeBtn {
display: none; }
.tagify__dropdown {
position: absolute;
z-index: 9999;
transform: translateY(1px);
overflow: hidden; }
.tagify__dropdown[placement=top] {
margin-top: 0;
transform: translateY(-100%); }
.tagify__dropdown[placement=top] .tagify__dropdown__wrapper {
border-top-width: 1px;
border-bottom-width: 0; }
.tagify__dropdown[position=text] {
box-shadow: 0 0 0 3px rgba(var(--tagify-dd-color-primary), 0.1);
font-size: .9em; }
.tagify__dropdown[position=text] .tagify__dropdown__wrapper {
border-width: 1px; }
.tagify__dropdown__wrapper {
max-height: 300px;
overflow: hidden;
background-color: #f9f9f9;
box-shadow: 0 2px 4px -2px rgba(0, 0, 0, 0.2);
transition: 0.25s cubic-bezier(0, 1, 0.5, 1); }
.tagify__dropdown__wrapper:hover {
overflow: auto; }
.tagify__dropdown--initial .tagify__dropdown__wrapper {
max-height: 20px;
transform: translateY(-1em); }
.tagify__dropdown--initial[placement=top] .tagify__dropdown__wrapper {
transform: translateY(2em); }
.tagify__dropdown__item {
box-sizing: inherit;
padding: .3em .5em;
margin: 1px;
cursor: pointer;
border-radius: 2px;
position: relative;
outline: 0;
font-family: Montserrat, Helvetica, sans-serif; }
.tagify__dropdown__item--active {
color: #f9f9f9;
background-color: gray; }
.tagify__dropdown__item:active {
filter: brightness(105%); }

View File

@ -2,85 +2,82 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="{% static 'main.css' %}">
<link rel="icon" type="image/png" href="{% static 'favicon.ico' %}">
<title>
{% block title %}Urban Exploration{% endblock %}
</title>
<head> {% block additional_head %}
{% block additional_head %} {% endblock additional_head %}
{% endblock additional_head %}
<meta charset="UTF-8"> </head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="{% static 'main.css' %}">
<link rel="icon" type="image/png" href="{% static 'favicon.ico' %}">
<title>
{% block title %}Urban Exploration{% endblock %}
</title>
</head> <body>
<div class="LP-Wrapper__Site">
<header class="LP-Header">
<div class="LP-Header__Logo">
<a class="LP-Link" href="/">
<img src="{% static 'logo.png' %}" class="LP-Image" />
</a>
</div>
<div class="LP-Header__UserInformation">
<span class="LP-Paragraph">
{% if user.is_authenticated %}
Hi {{ user.username }}!
<a class="LP-Link" href="{% url 'logout' %}"><span class="LP-Link__Text">logout</span></a>
{% if user.is_superuser %}
| <a class="LP-Link" href="{% url 'admin:index' %}" target="_blank"><span class="LP-Link__Text">admin</span></a>
{% endif %}
<body> {% else %}
<div class="LP-Wrapper__Site"> You are not logged in.
<header class="LP-Header"> <a class="LP-Link" href="{% url 'login' %}"><span class="LP-Link__Text">login</span></a> |
<div class="LP-Header__Logo"> <a class="LP-Link" href="{% url 'signup' %}"><span class="LP-Link__Text">signup</span></a>
<a class="LP-Link" href="/"> {% endif %}
<img src="{% static 'logo.png' %}" class="LP-Image" /> </span>
</a> </div>
</div> </header>
<div class="LP-Header__UserInformation"> <input id="toggle_sidebar" class="LP-Menu__Trigger" type="checkbox"/>
<span class="LP-Paragraph"> <label id="toggle_sidebar_label" for="toggle_sidebar" class="LP-Menu__TriggerLabel"></label>
{% if user.is_authenticated %} <aside class="LP-Main__Sidebar">
Hi {{ user.username }}! <nav class="LP-Menu LP-Menu--sidebar">
<a class="LP-Link" href="{% url 'logout' %}"><span class="LP-Link__Text">logout</span></a> <ul class="LP-Menu__List">
{% if user.is_superuser %} <li class="LP-Menu__Item"><a href="/" class="LP-Link"><span class="LP-Link__Text">Home</span></a></li>
| <a class="LP-Link" href="{% url 'admin:index' %}" target="_blank"><span class="LP-Link__Text">admin</span></a> <li class="LP-Menu__Item"><a href="" class="LP-Link"><span class="LP-Link__Text">About</span></a></li>
{% endif %} <li class="LP-Menu__Item"><a href="" class="LP-Link"><span class="LP-Link__Text">Contact</span></a></li>
{% block additional_menu_items %}
{% else %} {% endblock additional_menu_items %}
You are not logged in. <li class="LP-Menu__Item LP-Menu__Item--additional"><a href="{% url 'place_create'%}" class="LP-Link"><span class="LP-Link__Text">Create place</span></a></li>
<a class="LP-Link" href="{% url 'login' %}"><span class="LP-Link__Text">login</span></a> | <li class="LP-Menu__Item LP-Menu__Item--additional"><a href="{% url 'place_list'%}" class="LP-Link"><span class="LP-Link__Text">See all places</span></a></li>
<a class="LP-Link" href="{% url 'signup' %}"><span class="LP-Link__Text">signup</span></a> </ul>
{% endif %} </nav>
</span> </aside>
</div> <main class="LP-Main__Content">
</header> {% if messages %}
<input id="toggle_sidebar" class="LP-Menu__Trigger" type="checkbox" /> <div class="LP-MessageList">
<label id="toggle_sidebar_label" for="toggle_sidebar" class="LP-Menu__TriggerLabel"></label> <ul class="LP-MessageList__List">
<aside class="LP-Main__Sidebar"> {% for message in messages %}
<nav class="LP-Menu LP-Menu--sidebar"> <li class="LP-MessageList__Item">
<ul class="LP-Menu__List"> <div class="LP-Message {% if message.tags %}LP-Message--{{ message.tags }}{% endif %}">
<li class="LP-Menu__Item"><a href="/" class="LP-Link"><span class="LP-Link__Text">Home</span></a></li> <div>
<li class="LP-Menu__Item"><a href="" class="LP-Link"><span class="LP-Link__Text">About</span></a></li> <div class="LP-Message__Icon">
<li class="LP-Menu__Item"><a href="" class="LP-Link"><span class="LP-Link__Text">Contact</span></a></li> </div>
{% block additional_menu_items %} </div>
{% endblock additional_menu_items %} <div class="LP-Message__Text">
<li class="LP-Menu__Item LP-Menu__Item--additional"><a href="{% url 'place_create'%}" class="LP-Link"><span class="LP-Link__Text">Create place</span></a></li> {{ message }}
<li class="LP-Menu__Item LP-Menu__Item--additional"><a href="{% url 'place_list'%}" class="LP-Link"><span class="LP-Link__Text">See all places</span></a></li>
</ul>
</nav>
</aside>
<main class="LP-Main__Content">
{% if messages %}
<div class="LP-MessageList">
<ul class="LP-MessageList__List">
{% for message in messages %}
<li class="LP-MessageList__Item">
<div class="LP-Message {% if message.tags %}LP-Message--{{ message.tags }}{% endif %}">
<div>
<div class="LP-Message__Icon">
</div> </div>
</div> </div>
<div class="LP-Message__Text"> </li>
{{ message }} {% endfor %}
</div> </ul>
</div> </div>
</li> {% endif %}
{% endfor %} {% block maincontent %}
</ul> {% endblock maincontent %}
</div> </main>
{% endif %} </div>
{% block maincontent %} </body>
{% endblock maincontent %}
</main>
</div>
</body>
</html> </html>

View File

@ -1,18 +1,16 @@
{% load widget_tweaks %} {% load widget_tweaks %}
<div class="LP-Input {% if classes%}{{classes}}{% endif %} {% if field.errors %} LP-Input--error {% endif %}"> <div class="LP-Input {% if field.errors %} LP-Input--error {% endif %}">
<label for="{{field.id_for_label}}" class="LP-Input__Label">{{field.label}}</label> <label for="{{field.id_for_label}}" class="LP-Input__Label">{{field.label}}</label>
{% with class="LP-Input__Field "%} {% render_field field class="LP-Input__Field"%}
{% render_field field class=class%}
{% endwith %}
<span class="LP-Input__Message"> <span class="LP-Input__Message">
{% if field.errors %} {% if field.errors %}
{% for error in field.errors%} {% for error in field.errors%}
{{error}} {{error}}
{% endfor %} {% endfor %}
{% elif field.help_text%} {% elif field.help_text%}
{{ field.help_text }} {{ field.help_text }}
{% endif %} {% endif %}
</span> </span>
</div> </div>

View File

@ -10,16 +10,16 @@
</ul> </ul>
</div> </div>
<form id="id_tag_submit_form" class="LP-Form LP-Form--inline LP-Form--tagging" method="POST" action="{{url}}"> <form id="id_tag_submit_form" class="LP-Form LP-Form--inline" method="POST" action="{{url}}">
<fieldset class="LP-Form__Fieldset"> <fieldset class="LP-Form__Fieldset">
<legend class="LP-Form__Legend">Tags hinzufügen</legend> <legend class="LP-Form__Legend">Tags hinzufügen</legend>
{% csrf_token %} {% csrf_token %}
<div class="LP-Form__Composition LP-Form__Composition--breakable"> <div class="LP-Form__Composition LP-Form__Composition--breakable">
<div class="LP-Form__Field LP-Form__Button LP-Input LP-Input--tagging">
<button id="id_tag_submit_button" class="LP-Button"> Tags hinzufügen</button>
</div>
<div class="LP-Form__Field"> <div class="LP-Form__Field">
{% include 'partials/form/inputField.html' with field=input_field classes="LP-Input--tagging" %} {% include 'partials/form/inputField.html' with field=input_field %}
</div>
<div class="LP-Form__Field LP-Form__Button LP-Input">
<button id="id_tag_submit_button" class="LP-Button">hinzufügen</button>
</div> </div>
</div> </div>
</fieldset> </fieldset>

View File

@ -6,7 +6,7 @@
{% block additional_head %} {% block additional_head %}
<link rel="stylesheet" href="{% static 'maps/ol.css' %}" type="text/css"> <link rel="stylesheet" href="{% static 'maps/ol.css' %}" type="text/css">
<link rel="stylesheet" href="{% static 'tagify.css' %}">
<script src="{% static 'maps/ol.js' %}"></script> <script src="{% static 'maps/ol.js' %}"></script>