diff --git a/__init__.py b/__init__.py new file mode 100644 index 0000000..4afd2ca --- /dev/null +++ b/__init__.py @@ -0,0 +1,163 @@ +from django.conf import settings +from django.contrib.staticfiles.templatetags.staticfiles import static +from django.forms.models import model_to_dict +from django.utils.translation import gettext as _ +import time + + +available_themes = [ + ('default', 'Default'), + ('clear-red', 'Clear Red'), + ('clear-green', 'Clear Green'), + ('clear-blue', 'Clear Blue'), +] +default_theme = 'default' + + +class ThemeSettings(object): + def __init__(self): + from .models import Setting + s = Setting.objects.filter(id=1).first() + if s is None: + s = Setting(id=1) + s.save() + for attr_name in model_to_dict(s): + attr = getattr(s, attr_name) + if attr_name == 'page_theme' and attr == 'default': + setattr(self, attr_name, settings.DEFAULT_THEME) + else: + setattr(self, attr_name, attr) + + +class bar(list): + def __init__(self, turn_around=False): + self.time_measurement = time_measurement() + list.__init__(self) + self.turn_around = turn_around + self.debug = False + + def index(self, entry_uid): + for i in range(0, len(self)): + if self[i].uid == entry_uid: + return i + raise ValueError('not in list') + + def append_entry(self, *args, **kwargs): + self.append(entry(*args, **kwargs)) + + def replace_entry(self, entry_uid, *args, **kwargs): + i = self.index(entry_uid) + self[i] = entry(*args, **kwargs) + + def append_entry_to_entry(self, entry_uid, *args, **kwargs): + i = self.index(entry_uid) + self[i].append(entry(*args, **kwargs)) + + @property + def entries(self): + rv = self[:] + if self.turn_around is True: + rv.reverse() + if self.debug is True: + rv.append(entry('time_measurement', self.time_measurement.time_str, None, None, True, False)) + return rv + + +class Context(dict): + ACTIONBAR = 'actionbar' + BOTTOMBAR = 'bottombar' + MENUBAR = 'menubar' + NAVIGATIONBAR = 'navigationbar' + SETTINGS = 'settings' + TITLE = 'title' + + def __init__(self, request): + from .models import BottomBar + # + dict.__init__( + self, + bottombar=bar(), + actionbar=bar(), + navigationbar=bar(turn_around=True), + menubar=bar(), + settings=ThemeSettings(), + title=ThemeSettings().page_title, + ) + # + for i in range(1, 6): + for e in BottomBar.objects.filter(sequence_number=i): + if e.icon: + icon_url = e.icon.url + else: + icon_url = None + self[self.BOTTOMBAR].append(entry( + 'bootombar-%d' % e.id, + e.name, + icon_url, + e.url, + e.left, + False + )) + if settings.DEBUG: + self[self.BOTTOMBAR].debug = True + self[self.BOTTOMBAR].append(entry('bottombar-w3-validator', _('W3-Validator'), None, 'https://validator.w3.org/nu/?doc=' + request.build_absolute_uri(), False, False)) + + def set_additional_title(self, at): + if self[self.SETTINGS].page_title and at: + self[self.TITLE] = self[self.SETTINGS].page_title + ' - ' + at + else: + self[self.TITLE] = self[self.SETTINGS].page_title + at + + +class entry(list): + def __init__(self, uid, name, icon, url, left, active): + list.__init__(self) + self.uid = uid + self.name = name + self.icon = icon + self.url = url + self.left = left + self.active = active + + @property + def is_dropdownmenu(self): + return len(self) > 0 + + def __str__(self): + return 'barentry: %s' % self.uid + + +def empty_entry_parameters(request): + return ( + 'empty', # uid + '', # name + transparency_icon_url(request), # icon + None, # url + True, # left + False # active + ) + + +def get_themename(request): + return ThemeSettings().page_theme + + +class time_measurement(object): + def __init__(self): + self._start_time = time.time() + + @property + def time_str(self): + return _('Time consumption') + ': %.2fs' % (time.time() - self._start_time) + + +def transparency_icon_url(request): + return static('themes/' + get_themename(request) + '/transparency.png') + + +def color_icon_url(request, icon_filename): + return static('themes/' + get_themename(request) + '/1st-color/%s' % icon_filename) + + +def gray_icon_url(request, icon_filename): + return static('themes/' + get_themename(request) + '/2nd-color/%s' % icon_filename) diff --git a/admin.py b/admin.py new file mode 100644 index 0000000..e839bc6 --- /dev/null +++ b/admin.py @@ -0,0 +1,5 @@ +from django.contrib import admin +from .models import Setting, BottomBar + +admin.site.register(Setting) +admin.site.register(BottomBar) diff --git a/apps.py b/apps.py new file mode 100644 index 0000000..5416769 --- /dev/null +++ b/apps.py @@ -0,0 +1,8 @@ +from django.apps import AppConfig + + +class ThemesConfig(AppConfig): + name = 'themes' + + def ready(self): + import themes.signals diff --git a/locale/de/LC_MESSAGES/django.mo b/locale/de/LC_MESSAGES/django.mo new file mode 100644 index 0000000..742c80c Binary files /dev/null and b/locale/de/LC_MESSAGES/django.mo differ diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po new file mode 100644 index 0000000..4d1cc11 --- /dev/null +++ b/locale/de/LC_MESSAGES/django.po @@ -0,0 +1,33 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-09-19 09:24+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: __init__.py:41 +msgid "W3-Validator" +msgstr "W3-Validator" + +#: __init__.py:107 +msgid "Time consumption" +msgstr "Zeit" + +#: templates/themes/clear-blue/base.html:23 +#: templates/themes/clear-green/base.html:23 +#: templates/themes/clear-red/base.html:23 +msgid "Search..." +msgstr "Suche..." diff --git a/migrations/0001_initial.py b/migrations/0001_initial.py new file mode 100644 index 0000000..79c65bb --- /dev/null +++ b/migrations/0001_initial.py @@ -0,0 +1,34 @@ +# Generated by Django 2.2.5 on 2019-12-18 20:01 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='BottomBar', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(blank=True, max_length=64)), + ('icon', models.ImageField(blank=True, upload_to='theme')), + ('url', models.URLField()), + ('left', models.BooleanField()), + ('sequence_number', models.SmallIntegerField(choices=[(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')])), + ], + ), + migrations.CreateModel( + name='Setting', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('page_image', models.ImageField(default='theme/logo.png', upload_to='theme')), + ('page_theme', models.CharField(choices=[('default', 'Default'), ('clear-red', 'Clear Red'), ('clear-green', 'Clear Green'), ('clear-blue', 'Clear Blue')], default='default', max_length=64)), + ('page_title', models.CharField(blank=True, default='MyApp', max_length=32)), + ], + ), + ] diff --git a/migrations/__init__.py b/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/models.py b/models.py new file mode 100644 index 0000000..6375a4f --- /dev/null +++ b/models.py @@ -0,0 +1,42 @@ +from django.db import models +from . import available_themes, default_theme +from PIL import Image + + +class Setting(models.Model): + page_image = models.ImageField( + upload_to='theme', + default='theme/logo.png' + ) + page_theme = models.CharField( + max_length=64, + choices=available_themes, + default=default_theme + ) + page_title = models.CharField(max_length=32, default='MyApp', blank=True) + + def save(self, *args, **kwargs): + super().save(*args, **kwargs) + + img = Image.open(self.page_image.path) + if img.height > 50: + output_size = (int(img.width * 50 / img.height), 50) + img.thumbnail(output_size) + img.save(self.page_image.path) + + +class BottomBar(models.Model): + name = models.CharField(max_length=64, blank=True) + icon = models.ImageField(upload_to='theme', blank=True) + url = models.URLField() + left = models.BooleanField() + sequence_number = models.SmallIntegerField(choices=[(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')]) + + def save(self, *args, **kwargs): + super().save(*args, **kwargs) + if self.icon: + img = Image.open(self.icon.path) + if img.height > 40: + output_size = (int(img.width * 40 / img.height), 40) + img.thumbnail(output_size) + img.save(self.icon.path) diff --git a/signals.py b/signals.py new file mode 100644 index 0000000..08afe5b --- /dev/null +++ b/signals.py @@ -0,0 +1,74 @@ +from django.db.models.signals import pre_delete, pre_save +from django.dispatch import receiver +from .models import BottomBar, Setting +import os + + +@receiver(pre_delete, sender=BottomBar) +def bottombar_auto_delete_file_on_delete(instance: BottomBar, **kwargs): + """ + Deletes file from filesystem + when corresponding `BottomBar` object is deleted. + """ + if instance.icon: + if os.path.isfile(instance.icon.path): + os.remove(instance.icon.path) + + +@receiver(pre_save, sender=BottomBar) +def bottombar_auto_delete_file_on_change(instance: BottomBar, **kwargs): + """ + Deletes old file from filesystem + when corresponding `icon` object is updated + with new file. + """ + if not instance.pk: + return False + + try: + old_file = BottomBar.objects.get(pk=instance.pk).icon + except BottomBar.DoesNotExist: + return False + + new_file = instance.icon + if not old_file == new_file: + if os.path.isfile(old_file.path): + os.remove(old_file.path) + + +@receiver(pre_delete, sender=Setting) +def setting_auto_delete_file_on_delete(instance: Setting, **kwargs): + """ + Deletes file from filesystem + when corresponding `Settings` object is deleted. + """ + if instance.page_image.path.endswith(instance.page_image.field.default): + return False + + if instance.page_image: + if os.path.isfile(instance.page_image.path): + os.remove(instance.page_image.path) + + +@receiver(pre_save, sender=Setting) +def setting_auto_delete_file_on_change(instance: Setting, **kwargs): + """ + Deletes old file from filesystem + when corresponding `page_image` object is updated + with new file. + """ + if not instance.pk: + return False + + try: + old_file = Setting.objects.get(pk=instance.pk).page_image + except Setting.DoesNotExist: + return False + + if old_file.path.endswith(instance.page_image.field.default): + return False + + new_file = instance.page_image + if not old_file == new_file: + if os.path.isfile(old_file.path): + os.remove(old_file.path) diff --git a/static/themes/clear-blue/1st-color/0.png b/static/themes/clear-blue/1st-color/0.png new file mode 100644 index 0000000..badaf5f Binary files /dev/null and b/static/themes/clear-blue/1st-color/0.png differ diff --git a/static/themes/clear-blue/1st-color/1.png b/static/themes/clear-blue/1st-color/1.png new file mode 100644 index 0000000..041b161 Binary files /dev/null and b/static/themes/clear-blue/1st-color/1.png differ diff --git a/static/themes/clear-blue/1st-color/2.png b/static/themes/clear-blue/1st-color/2.png new file mode 100644 index 0000000..ff5c609 Binary files /dev/null and b/static/themes/clear-blue/1st-color/2.png differ diff --git a/static/themes/clear-blue/1st-color/3.png b/static/themes/clear-blue/1st-color/3.png new file mode 100644 index 0000000..dea0fe3 Binary files /dev/null and b/static/themes/clear-blue/1st-color/3.png differ diff --git a/static/themes/clear-blue/1st-color/4.png b/static/themes/clear-blue/1st-color/4.png new file mode 100644 index 0000000..9a594f7 Binary files /dev/null and b/static/themes/clear-blue/1st-color/4.png differ diff --git a/static/themes/clear-blue/1st-color/5.png b/static/themes/clear-blue/1st-color/5.png new file mode 100644 index 0000000..bd3b034 Binary files /dev/null and b/static/themes/clear-blue/1st-color/5.png differ diff --git a/static/themes/clear-blue/1st-color/6.png b/static/themes/clear-blue/1st-color/6.png new file mode 100644 index 0000000..02c51f0 Binary files /dev/null and b/static/themes/clear-blue/1st-color/6.png differ diff --git a/static/themes/clear-blue/1st-color/7.png b/static/themes/clear-blue/1st-color/7.png new file mode 100644 index 0000000..cf02309 Binary files /dev/null and b/static/themes/clear-blue/1st-color/7.png differ diff --git a/static/themes/clear-blue/1st-color/8.png b/static/themes/clear-blue/1st-color/8.png new file mode 100644 index 0000000..1761ff5 Binary files /dev/null and b/static/themes/clear-blue/1st-color/8.png differ diff --git a/static/themes/clear-blue/1st-color/9.png b/static/themes/clear-blue/1st-color/9.png new file mode 100644 index 0000000..81c2080 Binary files /dev/null and b/static/themes/clear-blue/1st-color/9.png differ diff --git a/static/themes/clear-blue/1st-color/admin.png b/static/themes/clear-blue/1st-color/admin.png new file mode 100644 index 0000000..9e757a1 Binary files /dev/null and b/static/themes/clear-blue/1st-color/admin.png differ diff --git a/static/themes/clear-blue/1st-color/back.png b/static/themes/clear-blue/1st-color/back.png new file mode 100644 index 0000000..ed1e0c3 Binary files /dev/null and b/static/themes/clear-blue/1st-color/back.png differ diff --git a/static/themes/clear-blue/1st-color/delete.png b/static/themes/clear-blue/1st-color/delete.png new file mode 100644 index 0000000..3e01f7c Binary files /dev/null and b/static/themes/clear-blue/1st-color/delete.png differ diff --git a/static/themes/clear-blue/1st-color/display.png b/static/themes/clear-blue/1st-color/display.png new file mode 100644 index 0000000..5b0f968 Binary files /dev/null and b/static/themes/clear-blue/1st-color/display.png differ diff --git a/static/themes/clear-blue/1st-color/download.png b/static/themes/clear-blue/1st-color/download.png new file mode 100644 index 0000000..de8266a Binary files /dev/null and b/static/themes/clear-blue/1st-color/download.png differ diff --git a/static/themes/clear-blue/1st-color/edit.png b/static/themes/clear-blue/1st-color/edit.png new file mode 100644 index 0000000..4a3c92a Binary files /dev/null and b/static/themes/clear-blue/1st-color/edit.png differ diff --git a/static/themes/clear-blue/1st-color/edit2.png b/static/themes/clear-blue/1st-color/edit2.png new file mode 100644 index 0000000..b8726c8 Binary files /dev/null and b/static/themes/clear-blue/1st-color/edit2.png differ diff --git a/static/themes/clear-blue/1st-color/favourite.png b/static/themes/clear-blue/1st-color/favourite.png new file mode 100644 index 0000000..2249f8b Binary files /dev/null and b/static/themes/clear-blue/1st-color/favourite.png differ diff --git a/static/themes/clear-blue/1st-color/filter.png b/static/themes/clear-blue/1st-color/filter.png new file mode 100644 index 0000000..9183b36 Binary files /dev/null and b/static/themes/clear-blue/1st-color/filter.png differ diff --git a/static/themes/clear-blue/1st-color/folder.png b/static/themes/clear-blue/1st-color/folder.png new file mode 100644 index 0000000..e0ee07f Binary files /dev/null and b/static/themes/clear-blue/1st-color/folder.png differ diff --git a/static/themes/clear-blue/1st-color/gps.png b/static/themes/clear-blue/1st-color/gps.png new file mode 100644 index 0000000..3298e20 Binary files /dev/null and b/static/themes/clear-blue/1st-color/gps.png differ diff --git a/static/themes/clear-blue/1st-color/help.png b/static/themes/clear-blue/1st-color/help.png new file mode 100644 index 0000000..785a843 Binary files /dev/null and b/static/themes/clear-blue/1st-color/help.png differ diff --git a/static/themes/clear-blue/1st-color/info.png b/static/themes/clear-blue/1st-color/info.png new file mode 100644 index 0000000..0f1c643 Binary files /dev/null and b/static/themes/clear-blue/1st-color/info.png differ diff --git a/static/themes/clear-blue/1st-color/is_favourite.png b/static/themes/clear-blue/1st-color/is_favourite.png new file mode 100644 index 0000000..e18694d Binary files /dev/null and b/static/themes/clear-blue/1st-color/is_favourite.png differ diff --git a/static/themes/clear-blue/1st-color/login.png b/static/themes/clear-blue/1st-color/login.png new file mode 100644 index 0000000..54e71d3 Binary files /dev/null and b/static/themes/clear-blue/1st-color/login.png differ diff --git a/static/themes/clear-blue/1st-color/logout.png b/static/themes/clear-blue/1st-color/logout.png new file mode 100644 index 0000000..c92d330 Binary files /dev/null and b/static/themes/clear-blue/1st-color/logout.png differ diff --git a/static/themes/clear-blue/1st-color/permission.png b/static/themes/clear-blue/1st-color/permission.png new file mode 100644 index 0000000..06cbc25 Binary files /dev/null and b/static/themes/clear-blue/1st-color/permission.png differ diff --git a/static/themes/clear-blue/1st-color/play.png b/static/themes/clear-blue/1st-color/play.png new file mode 100644 index 0000000..7c55ac2 Binary files /dev/null and b/static/themes/clear-blue/1st-color/play.png differ diff --git a/static/themes/clear-blue/1st-color/plus.png b/static/themes/clear-blue/1st-color/plus.png new file mode 100644 index 0000000..3a1fff5 Binary files /dev/null and b/static/themes/clear-blue/1st-color/plus.png differ diff --git a/static/themes/clear-blue/1st-color/print.png b/static/themes/clear-blue/1st-color/print.png new file mode 100644 index 0000000..12384e0 Binary files /dev/null and b/static/themes/clear-blue/1st-color/print.png differ diff --git a/static/themes/clear-blue/1st-color/register.png b/static/themes/clear-blue/1st-color/register.png new file mode 100644 index 0000000..9f5c959 Binary files /dev/null and b/static/themes/clear-blue/1st-color/register.png differ diff --git a/static/themes/clear-blue/1st-color/save.png b/static/themes/clear-blue/1st-color/save.png new file mode 100644 index 0000000..b550a46 Binary files /dev/null and b/static/themes/clear-blue/1st-color/save.png differ diff --git a/static/themes/clear-blue/1st-color/search.png b/static/themes/clear-blue/1st-color/search.png new file mode 100644 index 0000000..5955a82 Binary files /dev/null and b/static/themes/clear-blue/1st-color/search.png differ diff --git a/static/themes/clear-blue/1st-color/settings.png b/static/themes/clear-blue/1st-color/settings.png new file mode 100644 index 0000000..ddf2610 Binary files /dev/null and b/static/themes/clear-blue/1st-color/settings.png differ diff --git a/static/themes/clear-blue/1st-color/shuffle.png b/static/themes/clear-blue/1st-color/shuffle.png new file mode 100644 index 0000000..f949c53 Binary files /dev/null and b/static/themes/clear-blue/1st-color/shuffle.png differ diff --git a/static/themes/clear-blue/1st-color/sort.png b/static/themes/clear-blue/1st-color/sort.png new file mode 100644 index 0000000..b2f6e2b Binary files /dev/null and b/static/themes/clear-blue/1st-color/sort.png differ diff --git a/static/themes/clear-blue/1st-color/staging.png b/static/themes/clear-blue/1st-color/staging.png new file mode 100644 index 0000000..ad63788 Binary files /dev/null and b/static/themes/clear-blue/1st-color/staging.png differ diff --git a/static/themes/clear-blue/1st-color/stop.png b/static/themes/clear-blue/1st-color/stop.png new file mode 100644 index 0000000..6b42ce4 Binary files /dev/null and b/static/themes/clear-blue/1st-color/stop.png differ diff --git a/static/themes/clear-blue/1st-color/task.png b/static/themes/clear-blue/1st-color/task.png new file mode 100644 index 0000000..02cfdee Binary files /dev/null and b/static/themes/clear-blue/1st-color/task.png differ diff --git a/static/themes/clear-blue/1st-color/upload.png b/static/themes/clear-blue/1st-color/upload.png new file mode 100644 index 0000000..338c259 Binary files /dev/null and b/static/themes/clear-blue/1st-color/upload.png differ diff --git a/static/themes/clear-blue/1st-color/user.png b/static/themes/clear-blue/1st-color/user.png new file mode 100644 index 0000000..b776bc9 Binary files /dev/null and b/static/themes/clear-blue/1st-color/user.png differ diff --git a/static/themes/clear-blue/1st-color/view.png b/static/themes/clear-blue/1st-color/view.png new file mode 100644 index 0000000..e62b21e Binary files /dev/null and b/static/themes/clear-blue/1st-color/view.png differ diff --git a/static/themes/clear-blue/2nd-color/0.png b/static/themes/clear-blue/2nd-color/0.png new file mode 100644 index 0000000..c257dd9 Binary files /dev/null and b/static/themes/clear-blue/2nd-color/0.png differ diff --git a/static/themes/clear-blue/2nd-color/1.png b/static/themes/clear-blue/2nd-color/1.png new file mode 100644 index 0000000..0a286e3 Binary files /dev/null and b/static/themes/clear-blue/2nd-color/1.png differ diff --git a/static/themes/clear-blue/2nd-color/2.png b/static/themes/clear-blue/2nd-color/2.png new file mode 100644 index 0000000..a447682 Binary files /dev/null and b/static/themes/clear-blue/2nd-color/2.png differ diff --git a/static/themes/clear-blue/2nd-color/3.png b/static/themes/clear-blue/2nd-color/3.png new file mode 100644 index 0000000..515a019 Binary files /dev/null and b/static/themes/clear-blue/2nd-color/3.png differ diff --git a/static/themes/clear-blue/2nd-color/4.png b/static/themes/clear-blue/2nd-color/4.png new file mode 100644 index 0000000..64e0123 Binary files /dev/null and b/static/themes/clear-blue/2nd-color/4.png differ diff --git a/static/themes/clear-blue/2nd-color/5.png b/static/themes/clear-blue/2nd-color/5.png new file mode 100644 index 0000000..53556d0 Binary files /dev/null and b/static/themes/clear-blue/2nd-color/5.png differ diff --git a/static/themes/clear-blue/2nd-color/6.png b/static/themes/clear-blue/2nd-color/6.png new file mode 100644 index 0000000..82a437b Binary files /dev/null and b/static/themes/clear-blue/2nd-color/6.png differ diff --git a/static/themes/clear-blue/2nd-color/7.png b/static/themes/clear-blue/2nd-color/7.png new file mode 100644 index 0000000..7b4e399 Binary files /dev/null and b/static/themes/clear-blue/2nd-color/7.png differ diff --git a/static/themes/clear-blue/2nd-color/8.png b/static/themes/clear-blue/2nd-color/8.png new file mode 100644 index 0000000..52c6bc5 Binary files /dev/null and b/static/themes/clear-blue/2nd-color/8.png differ diff --git a/static/themes/clear-blue/2nd-color/9.png b/static/themes/clear-blue/2nd-color/9.png new file mode 100644 index 0000000..c0966e8 Binary files /dev/null and b/static/themes/clear-blue/2nd-color/9.png differ diff --git a/static/themes/clear-blue/2nd-color/admin.png b/static/themes/clear-blue/2nd-color/admin.png new file mode 100644 index 0000000..5f6f477 Binary files /dev/null and b/static/themes/clear-blue/2nd-color/admin.png differ diff --git a/static/themes/clear-blue/2nd-color/back.png b/static/themes/clear-blue/2nd-color/back.png new file mode 100644 index 0000000..b6bb073 Binary files /dev/null and b/static/themes/clear-blue/2nd-color/back.png differ diff --git a/static/themes/clear-blue/2nd-color/delete.png b/static/themes/clear-blue/2nd-color/delete.png new file mode 100644 index 0000000..9ec18be Binary files /dev/null and b/static/themes/clear-blue/2nd-color/delete.png differ diff --git a/static/themes/clear-blue/2nd-color/display.png b/static/themes/clear-blue/2nd-color/display.png new file mode 100644 index 0000000..900e0d4 Binary files /dev/null and b/static/themes/clear-blue/2nd-color/display.png differ diff --git a/static/themes/clear-blue/2nd-color/download.png b/static/themes/clear-blue/2nd-color/download.png new file mode 100644 index 0000000..0440c2d Binary files /dev/null and b/static/themes/clear-blue/2nd-color/download.png differ diff --git a/static/themes/clear-blue/2nd-color/download_flat.png b/static/themes/clear-blue/2nd-color/download_flat.png new file mode 100644 index 0000000..5dadc91 Binary files /dev/null and b/static/themes/clear-blue/2nd-color/download_flat.png differ diff --git a/static/themes/clear-blue/2nd-color/edit.png b/static/themes/clear-blue/2nd-color/edit.png new file mode 100644 index 0000000..f946e52 Binary files /dev/null and b/static/themes/clear-blue/2nd-color/edit.png differ diff --git a/static/themes/clear-blue/2nd-color/edit2.png b/static/themes/clear-blue/2nd-color/edit2.png new file mode 100644 index 0000000..b56dac3 Binary files /dev/null and b/static/themes/clear-blue/2nd-color/edit2.png differ diff --git a/static/themes/clear-blue/2nd-color/favourite.png b/static/themes/clear-blue/2nd-color/favourite.png new file mode 100644 index 0000000..1890722 Binary files /dev/null and b/static/themes/clear-blue/2nd-color/favourite.png differ diff --git a/static/themes/clear-blue/2nd-color/filter.png b/static/themes/clear-blue/2nd-color/filter.png new file mode 100644 index 0000000..6646bb6 Binary files /dev/null and b/static/themes/clear-blue/2nd-color/filter.png differ diff --git a/static/themes/clear-blue/2nd-color/folder.png b/static/themes/clear-blue/2nd-color/folder.png new file mode 100644 index 0000000..4dc3141 Binary files /dev/null and b/static/themes/clear-blue/2nd-color/folder.png differ diff --git a/static/themes/clear-blue/2nd-color/gps.png b/static/themes/clear-blue/2nd-color/gps.png new file mode 100644 index 0000000..728061e Binary files /dev/null and b/static/themes/clear-blue/2nd-color/gps.png differ diff --git a/static/themes/clear-blue/2nd-color/home.png b/static/themes/clear-blue/2nd-color/home.png new file mode 100644 index 0000000..2c99e48 Binary files /dev/null and b/static/themes/clear-blue/2nd-color/home.png differ diff --git a/static/themes/clear-blue/2nd-color/info.png b/static/themes/clear-blue/2nd-color/info.png new file mode 100644 index 0000000..98cef14 Binary files /dev/null and b/static/themes/clear-blue/2nd-color/info.png differ diff --git a/static/themes/clear-blue/2nd-color/login.png b/static/themes/clear-blue/2nd-color/login.png new file mode 100644 index 0000000..d53df47 Binary files /dev/null and b/static/themes/clear-blue/2nd-color/login.png differ diff --git a/static/themes/clear-blue/2nd-color/logout.png b/static/themes/clear-blue/2nd-color/logout.png new file mode 100644 index 0000000..1a099de Binary files /dev/null and b/static/themes/clear-blue/2nd-color/logout.png differ diff --git a/static/themes/clear-blue/2nd-color/permission.png b/static/themes/clear-blue/2nd-color/permission.png new file mode 100644 index 0000000..de95261 Binary files /dev/null and b/static/themes/clear-blue/2nd-color/permission.png differ diff --git a/static/themes/clear-blue/2nd-color/play.png b/static/themes/clear-blue/2nd-color/play.png new file mode 100644 index 0000000..db911f3 Binary files /dev/null and b/static/themes/clear-blue/2nd-color/play.png differ diff --git a/static/themes/clear-blue/2nd-color/plus.png b/static/themes/clear-blue/2nd-color/plus.png new file mode 100644 index 0000000..821e4a8 Binary files /dev/null and b/static/themes/clear-blue/2nd-color/plus.png differ diff --git a/static/themes/clear-blue/2nd-color/print.png b/static/themes/clear-blue/2nd-color/print.png new file mode 100644 index 0000000..2da00ea Binary files /dev/null and b/static/themes/clear-blue/2nd-color/print.png differ diff --git a/static/themes/clear-blue/2nd-color/register.png b/static/themes/clear-blue/2nd-color/register.png new file mode 100644 index 0000000..6605314 Binary files /dev/null and b/static/themes/clear-blue/2nd-color/register.png differ diff --git a/static/themes/clear-blue/2nd-color/save.png b/static/themes/clear-blue/2nd-color/save.png new file mode 100644 index 0000000..8fa1407 Binary files /dev/null and b/static/themes/clear-blue/2nd-color/save.png differ diff --git a/static/themes/clear-blue/2nd-color/search.png b/static/themes/clear-blue/2nd-color/search.png new file mode 100644 index 0000000..fffcbbd Binary files /dev/null and b/static/themes/clear-blue/2nd-color/search.png differ diff --git a/static/themes/clear-blue/2nd-color/settings.png b/static/themes/clear-blue/2nd-color/settings.png new file mode 100644 index 0000000..20bcb7b Binary files /dev/null and b/static/themes/clear-blue/2nd-color/settings.png differ diff --git a/static/themes/clear-blue/2nd-color/shuffle.png b/static/themes/clear-blue/2nd-color/shuffle.png new file mode 100644 index 0000000..38ddab2 Binary files /dev/null and b/static/themes/clear-blue/2nd-color/shuffle.png differ diff --git a/static/themes/clear-blue/2nd-color/sort.png b/static/themes/clear-blue/2nd-color/sort.png new file mode 100644 index 0000000..4a51a2c Binary files /dev/null and b/static/themes/clear-blue/2nd-color/sort.png differ diff --git a/static/themes/clear-blue/2nd-color/staging.png b/static/themes/clear-blue/2nd-color/staging.png new file mode 100644 index 0000000..690cd66 Binary files /dev/null and b/static/themes/clear-blue/2nd-color/staging.png differ diff --git a/static/themes/clear-blue/2nd-color/stop.png b/static/themes/clear-blue/2nd-color/stop.png new file mode 100644 index 0000000..6581062 Binary files /dev/null and b/static/themes/clear-blue/2nd-color/stop.png differ diff --git a/static/themes/clear-blue/2nd-color/task.png b/static/themes/clear-blue/2nd-color/task.png new file mode 100644 index 0000000..6e84cd2 Binary files /dev/null and b/static/themes/clear-blue/2nd-color/task.png differ diff --git a/static/themes/clear-blue/2nd-color/upload.png b/static/themes/clear-blue/2nd-color/upload.png new file mode 100644 index 0000000..0cbfc55 Binary files /dev/null and b/static/themes/clear-blue/2nd-color/upload.png differ diff --git a/static/themes/clear-blue/2nd-color/user.png b/static/themes/clear-blue/2nd-color/user.png new file mode 100644 index 0000000..2a6784d Binary files /dev/null and b/static/themes/clear-blue/2nd-color/user.png differ diff --git a/static/themes/clear-blue/2nd-color/view.png b/static/themes/clear-blue/2nd-color/view.png new file mode 100644 index 0000000..cc5e0c4 Binary files /dev/null and b/static/themes/clear-blue/2nd-color/view.png differ diff --git a/static/themes/clear-blue/search.png b/static/themes/clear-blue/search.png new file mode 100644 index 0000000..e85bd55 Binary files /dev/null and b/static/themes/clear-blue/search.png differ diff --git a/static/themes/clear-blue/transparency.png b/static/themes/clear-blue/transparency.png new file mode 100644 index 0000000..8e4faa6 Binary files /dev/null and b/static/themes/clear-blue/transparency.png differ diff --git a/static/themes/clear-green/1st-color/0.png b/static/themes/clear-green/1st-color/0.png new file mode 100644 index 0000000..b24438e Binary files /dev/null and b/static/themes/clear-green/1st-color/0.png differ diff --git a/static/themes/clear-green/1st-color/1.png b/static/themes/clear-green/1st-color/1.png new file mode 100644 index 0000000..73f3201 Binary files /dev/null and b/static/themes/clear-green/1st-color/1.png differ diff --git a/static/themes/clear-green/1st-color/2.png b/static/themes/clear-green/1st-color/2.png new file mode 100644 index 0000000..cc52413 Binary files /dev/null and b/static/themes/clear-green/1st-color/2.png differ diff --git a/static/themes/clear-green/1st-color/3.png b/static/themes/clear-green/1st-color/3.png new file mode 100644 index 0000000..3232999 Binary files /dev/null and b/static/themes/clear-green/1st-color/3.png differ diff --git a/static/themes/clear-green/1st-color/4.png b/static/themes/clear-green/1st-color/4.png new file mode 100644 index 0000000..018b8b5 Binary files /dev/null and b/static/themes/clear-green/1st-color/4.png differ diff --git a/static/themes/clear-green/1st-color/5.png b/static/themes/clear-green/1st-color/5.png new file mode 100644 index 0000000..958ab33 Binary files /dev/null and b/static/themes/clear-green/1st-color/5.png differ diff --git a/static/themes/clear-green/1st-color/6.png b/static/themes/clear-green/1st-color/6.png new file mode 100644 index 0000000..072eeca Binary files /dev/null and b/static/themes/clear-green/1st-color/6.png differ diff --git a/static/themes/clear-green/1st-color/7.png b/static/themes/clear-green/1st-color/7.png new file mode 100644 index 0000000..00bf9bb Binary files /dev/null and b/static/themes/clear-green/1st-color/7.png differ diff --git a/static/themes/clear-green/1st-color/8.png b/static/themes/clear-green/1st-color/8.png new file mode 100644 index 0000000..8548650 Binary files /dev/null and b/static/themes/clear-green/1st-color/8.png differ diff --git a/static/themes/clear-green/1st-color/9.png b/static/themes/clear-green/1st-color/9.png new file mode 100644 index 0000000..a1a125c Binary files /dev/null and b/static/themes/clear-green/1st-color/9.png differ diff --git a/static/themes/clear-green/1st-color/admin.png b/static/themes/clear-green/1st-color/admin.png new file mode 100644 index 0000000..d838daf Binary files /dev/null and b/static/themes/clear-green/1st-color/admin.png differ diff --git a/static/themes/clear-green/1st-color/back.png b/static/themes/clear-green/1st-color/back.png new file mode 100644 index 0000000..5347dd4 Binary files /dev/null and b/static/themes/clear-green/1st-color/back.png differ diff --git a/static/themes/clear-green/1st-color/delete.png b/static/themes/clear-green/1st-color/delete.png new file mode 100644 index 0000000..c073994 Binary files /dev/null and b/static/themes/clear-green/1st-color/delete.png differ diff --git a/static/themes/clear-green/1st-color/display.png b/static/themes/clear-green/1st-color/display.png new file mode 100644 index 0000000..a3f6e37 Binary files /dev/null and b/static/themes/clear-green/1st-color/display.png differ diff --git a/static/themes/clear-green/1st-color/download.png b/static/themes/clear-green/1st-color/download.png new file mode 100644 index 0000000..aaceed2 Binary files /dev/null and b/static/themes/clear-green/1st-color/download.png differ diff --git a/static/themes/clear-green/1st-color/edit.png b/static/themes/clear-green/1st-color/edit.png new file mode 100644 index 0000000..2f05c23 Binary files /dev/null and b/static/themes/clear-green/1st-color/edit.png differ diff --git a/static/themes/clear-green/1st-color/edit2.png b/static/themes/clear-green/1st-color/edit2.png new file mode 100644 index 0000000..f4a78b3 Binary files /dev/null and b/static/themes/clear-green/1st-color/edit2.png differ diff --git a/static/themes/clear-green/1st-color/favourite.png b/static/themes/clear-green/1st-color/favourite.png new file mode 100644 index 0000000..aafc370 Binary files /dev/null and b/static/themes/clear-green/1st-color/favourite.png differ diff --git a/static/themes/clear-green/1st-color/filter.png b/static/themes/clear-green/1st-color/filter.png new file mode 100644 index 0000000..0e4c661 Binary files /dev/null and b/static/themes/clear-green/1st-color/filter.png differ diff --git a/static/themes/clear-green/1st-color/folder.png b/static/themes/clear-green/1st-color/folder.png new file mode 100644 index 0000000..9818369 Binary files /dev/null and b/static/themes/clear-green/1st-color/folder.png differ diff --git a/static/themes/clear-green/1st-color/gps.png b/static/themes/clear-green/1st-color/gps.png new file mode 100644 index 0000000..4a1221f Binary files /dev/null and b/static/themes/clear-green/1st-color/gps.png differ diff --git a/static/themes/clear-green/1st-color/help.png b/static/themes/clear-green/1st-color/help.png new file mode 100644 index 0000000..f830378 Binary files /dev/null and b/static/themes/clear-green/1st-color/help.png differ diff --git a/static/themes/clear-green/1st-color/info.png b/static/themes/clear-green/1st-color/info.png new file mode 100644 index 0000000..7d92bf1 Binary files /dev/null and b/static/themes/clear-green/1st-color/info.png differ diff --git a/static/themes/clear-green/1st-color/is_favourite.png b/static/themes/clear-green/1st-color/is_favourite.png new file mode 100644 index 0000000..92ed8a3 Binary files /dev/null and b/static/themes/clear-green/1st-color/is_favourite.png differ diff --git a/static/themes/clear-green/1st-color/login.png b/static/themes/clear-green/1st-color/login.png new file mode 100644 index 0000000..f380cc0 Binary files /dev/null and b/static/themes/clear-green/1st-color/login.png differ diff --git a/static/themes/clear-green/1st-color/logout.png b/static/themes/clear-green/1st-color/logout.png new file mode 100644 index 0000000..689ccac Binary files /dev/null and b/static/themes/clear-green/1st-color/logout.png differ diff --git a/static/themes/clear-green/1st-color/permission.png b/static/themes/clear-green/1st-color/permission.png new file mode 100644 index 0000000..5048deb Binary files /dev/null and b/static/themes/clear-green/1st-color/permission.png differ diff --git a/static/themes/clear-green/1st-color/play.png b/static/themes/clear-green/1st-color/play.png new file mode 100644 index 0000000..4034b37 Binary files /dev/null and b/static/themes/clear-green/1st-color/play.png differ diff --git a/static/themes/clear-green/1st-color/plus.png b/static/themes/clear-green/1st-color/plus.png new file mode 100644 index 0000000..bc4a126 Binary files /dev/null and b/static/themes/clear-green/1st-color/plus.png differ diff --git a/static/themes/clear-green/1st-color/print.png b/static/themes/clear-green/1st-color/print.png new file mode 100644 index 0000000..45a28ce Binary files /dev/null and b/static/themes/clear-green/1st-color/print.png differ diff --git a/static/themes/clear-green/1st-color/register.png b/static/themes/clear-green/1st-color/register.png new file mode 100644 index 0000000..6f0ab84 Binary files /dev/null and b/static/themes/clear-green/1st-color/register.png differ diff --git a/static/themes/clear-green/1st-color/save.png b/static/themes/clear-green/1st-color/save.png new file mode 100644 index 0000000..355333b Binary files /dev/null and b/static/themes/clear-green/1st-color/save.png differ diff --git a/static/themes/clear-green/1st-color/search.png b/static/themes/clear-green/1st-color/search.png new file mode 100644 index 0000000..2711fb5 Binary files /dev/null and b/static/themes/clear-green/1st-color/search.png differ diff --git a/static/themes/clear-green/1st-color/settings.png b/static/themes/clear-green/1st-color/settings.png new file mode 100644 index 0000000..af9a92f Binary files /dev/null and b/static/themes/clear-green/1st-color/settings.png differ diff --git a/static/themes/clear-green/1st-color/shuffle.png b/static/themes/clear-green/1st-color/shuffle.png new file mode 100644 index 0000000..4df2d11 Binary files /dev/null and b/static/themes/clear-green/1st-color/shuffle.png differ diff --git a/static/themes/clear-green/1st-color/sort.png b/static/themes/clear-green/1st-color/sort.png new file mode 100644 index 0000000..45e5b75 Binary files /dev/null and b/static/themes/clear-green/1st-color/sort.png differ diff --git a/static/themes/clear-green/1st-color/staging.png b/static/themes/clear-green/1st-color/staging.png new file mode 100644 index 0000000..9933bd5 Binary files /dev/null and b/static/themes/clear-green/1st-color/staging.png differ diff --git a/static/themes/clear-green/1st-color/stop.png b/static/themes/clear-green/1st-color/stop.png new file mode 100644 index 0000000..e3ef6cb Binary files /dev/null and b/static/themes/clear-green/1st-color/stop.png differ diff --git a/static/themes/clear-green/1st-color/task.png b/static/themes/clear-green/1st-color/task.png new file mode 100644 index 0000000..714e2a9 Binary files /dev/null and b/static/themes/clear-green/1st-color/task.png differ diff --git a/static/themes/clear-green/1st-color/upload.png b/static/themes/clear-green/1st-color/upload.png new file mode 100644 index 0000000..d7e5ef9 Binary files /dev/null and b/static/themes/clear-green/1st-color/upload.png differ diff --git a/static/themes/clear-green/1st-color/user.png b/static/themes/clear-green/1st-color/user.png new file mode 100644 index 0000000..5eac4c1 Binary files /dev/null and b/static/themes/clear-green/1st-color/user.png differ diff --git a/static/themes/clear-green/1st-color/view.png b/static/themes/clear-green/1st-color/view.png new file mode 100644 index 0000000..e16b4be Binary files /dev/null and b/static/themes/clear-green/1st-color/view.png differ diff --git a/static/themes/clear-green/2nd-color/0.png b/static/themes/clear-green/2nd-color/0.png new file mode 100644 index 0000000..c257dd9 Binary files /dev/null and b/static/themes/clear-green/2nd-color/0.png differ diff --git a/static/themes/clear-green/2nd-color/1.png b/static/themes/clear-green/2nd-color/1.png new file mode 100644 index 0000000..0a286e3 Binary files /dev/null and b/static/themes/clear-green/2nd-color/1.png differ diff --git a/static/themes/clear-green/2nd-color/2.png b/static/themes/clear-green/2nd-color/2.png new file mode 100644 index 0000000..a447682 Binary files /dev/null and b/static/themes/clear-green/2nd-color/2.png differ diff --git a/static/themes/clear-green/2nd-color/3.png b/static/themes/clear-green/2nd-color/3.png new file mode 100644 index 0000000..515a019 Binary files /dev/null and b/static/themes/clear-green/2nd-color/3.png differ diff --git a/static/themes/clear-green/2nd-color/4.png b/static/themes/clear-green/2nd-color/4.png new file mode 100644 index 0000000..64e0123 Binary files /dev/null and b/static/themes/clear-green/2nd-color/4.png differ diff --git a/static/themes/clear-green/2nd-color/5.png b/static/themes/clear-green/2nd-color/5.png new file mode 100644 index 0000000..53556d0 Binary files /dev/null and b/static/themes/clear-green/2nd-color/5.png differ diff --git a/static/themes/clear-green/2nd-color/6.png b/static/themes/clear-green/2nd-color/6.png new file mode 100644 index 0000000..82a437b Binary files /dev/null and b/static/themes/clear-green/2nd-color/6.png differ diff --git a/static/themes/clear-green/2nd-color/7.png b/static/themes/clear-green/2nd-color/7.png new file mode 100644 index 0000000..7b4e399 Binary files /dev/null and b/static/themes/clear-green/2nd-color/7.png differ diff --git a/static/themes/clear-green/2nd-color/8.png b/static/themes/clear-green/2nd-color/8.png new file mode 100644 index 0000000..52c6bc5 Binary files /dev/null and b/static/themes/clear-green/2nd-color/8.png differ diff --git a/static/themes/clear-green/2nd-color/9.png b/static/themes/clear-green/2nd-color/9.png new file mode 100644 index 0000000..c0966e8 Binary files /dev/null and b/static/themes/clear-green/2nd-color/9.png differ diff --git a/static/themes/clear-green/2nd-color/admin.png b/static/themes/clear-green/2nd-color/admin.png new file mode 100644 index 0000000..5f6f477 Binary files /dev/null and b/static/themes/clear-green/2nd-color/admin.png differ diff --git a/static/themes/clear-green/2nd-color/back.png b/static/themes/clear-green/2nd-color/back.png new file mode 100644 index 0000000..b6bb073 Binary files /dev/null and b/static/themes/clear-green/2nd-color/back.png differ diff --git a/static/themes/clear-green/2nd-color/delete.png b/static/themes/clear-green/2nd-color/delete.png new file mode 100644 index 0000000..9ec18be Binary files /dev/null and b/static/themes/clear-green/2nd-color/delete.png differ diff --git a/static/themes/clear-green/2nd-color/display.png b/static/themes/clear-green/2nd-color/display.png new file mode 100644 index 0000000..900e0d4 Binary files /dev/null and b/static/themes/clear-green/2nd-color/display.png differ diff --git a/static/themes/clear-green/2nd-color/download.png b/static/themes/clear-green/2nd-color/download.png new file mode 100644 index 0000000..0440c2d Binary files /dev/null and b/static/themes/clear-green/2nd-color/download.png differ diff --git a/static/themes/clear-green/2nd-color/download_flat.png b/static/themes/clear-green/2nd-color/download_flat.png new file mode 100644 index 0000000..5dadc91 Binary files /dev/null and b/static/themes/clear-green/2nd-color/download_flat.png differ diff --git a/static/themes/clear-green/2nd-color/edit.png b/static/themes/clear-green/2nd-color/edit.png new file mode 100644 index 0000000..f946e52 Binary files /dev/null and b/static/themes/clear-green/2nd-color/edit.png differ diff --git a/static/themes/clear-green/2nd-color/edit2.png b/static/themes/clear-green/2nd-color/edit2.png new file mode 100644 index 0000000..b56dac3 Binary files /dev/null and b/static/themes/clear-green/2nd-color/edit2.png differ diff --git a/static/themes/clear-green/2nd-color/favourite.png b/static/themes/clear-green/2nd-color/favourite.png new file mode 100644 index 0000000..1890722 Binary files /dev/null and b/static/themes/clear-green/2nd-color/favourite.png differ diff --git a/static/themes/clear-green/2nd-color/filter.png b/static/themes/clear-green/2nd-color/filter.png new file mode 100644 index 0000000..6646bb6 Binary files /dev/null and b/static/themes/clear-green/2nd-color/filter.png differ diff --git a/static/themes/clear-green/2nd-color/folder.png b/static/themes/clear-green/2nd-color/folder.png new file mode 100644 index 0000000..4dc3141 Binary files /dev/null and b/static/themes/clear-green/2nd-color/folder.png differ diff --git a/static/themes/clear-green/2nd-color/gps.png b/static/themes/clear-green/2nd-color/gps.png new file mode 100644 index 0000000..728061e Binary files /dev/null and b/static/themes/clear-green/2nd-color/gps.png differ diff --git a/static/themes/clear-green/2nd-color/home.png b/static/themes/clear-green/2nd-color/home.png new file mode 100644 index 0000000..2c99e48 Binary files /dev/null and b/static/themes/clear-green/2nd-color/home.png differ diff --git a/static/themes/clear-green/2nd-color/info.png b/static/themes/clear-green/2nd-color/info.png new file mode 100644 index 0000000..98cef14 Binary files /dev/null and b/static/themes/clear-green/2nd-color/info.png differ diff --git a/static/themes/clear-green/2nd-color/login.png b/static/themes/clear-green/2nd-color/login.png new file mode 100644 index 0000000..d53df47 Binary files /dev/null and b/static/themes/clear-green/2nd-color/login.png differ diff --git a/static/themes/clear-green/2nd-color/logout.png b/static/themes/clear-green/2nd-color/logout.png new file mode 100644 index 0000000..1a099de Binary files /dev/null and b/static/themes/clear-green/2nd-color/logout.png differ diff --git a/static/themes/clear-green/2nd-color/permission.png b/static/themes/clear-green/2nd-color/permission.png new file mode 100644 index 0000000..de95261 Binary files /dev/null and b/static/themes/clear-green/2nd-color/permission.png differ diff --git a/static/themes/clear-green/2nd-color/play.png b/static/themes/clear-green/2nd-color/play.png new file mode 100644 index 0000000..db911f3 Binary files /dev/null and b/static/themes/clear-green/2nd-color/play.png differ diff --git a/static/themes/clear-green/2nd-color/plus.png b/static/themes/clear-green/2nd-color/plus.png new file mode 100644 index 0000000..821e4a8 Binary files /dev/null and b/static/themes/clear-green/2nd-color/plus.png differ diff --git a/static/themes/clear-green/2nd-color/print.png b/static/themes/clear-green/2nd-color/print.png new file mode 100644 index 0000000..2da00ea Binary files /dev/null and b/static/themes/clear-green/2nd-color/print.png differ diff --git a/static/themes/clear-green/2nd-color/register.png b/static/themes/clear-green/2nd-color/register.png new file mode 100644 index 0000000..6605314 Binary files /dev/null and b/static/themes/clear-green/2nd-color/register.png differ diff --git a/static/themes/clear-green/2nd-color/save.png b/static/themes/clear-green/2nd-color/save.png new file mode 100644 index 0000000..8fa1407 Binary files /dev/null and b/static/themes/clear-green/2nd-color/save.png differ diff --git a/static/themes/clear-green/2nd-color/search.png b/static/themes/clear-green/2nd-color/search.png new file mode 100644 index 0000000..fffcbbd Binary files /dev/null and b/static/themes/clear-green/2nd-color/search.png differ diff --git a/static/themes/clear-green/2nd-color/settings.png b/static/themes/clear-green/2nd-color/settings.png new file mode 100644 index 0000000..20bcb7b Binary files /dev/null and b/static/themes/clear-green/2nd-color/settings.png differ diff --git a/static/themes/clear-green/2nd-color/shuffle.png b/static/themes/clear-green/2nd-color/shuffle.png new file mode 100644 index 0000000..38ddab2 Binary files /dev/null and b/static/themes/clear-green/2nd-color/shuffle.png differ diff --git a/static/themes/clear-green/2nd-color/sort.png b/static/themes/clear-green/2nd-color/sort.png new file mode 100644 index 0000000..4a51a2c Binary files /dev/null and b/static/themes/clear-green/2nd-color/sort.png differ diff --git a/static/themes/clear-green/2nd-color/staging.png b/static/themes/clear-green/2nd-color/staging.png new file mode 100644 index 0000000..690cd66 Binary files /dev/null and b/static/themes/clear-green/2nd-color/staging.png differ diff --git a/static/themes/clear-green/2nd-color/stop.png b/static/themes/clear-green/2nd-color/stop.png new file mode 100644 index 0000000..6581062 Binary files /dev/null and b/static/themes/clear-green/2nd-color/stop.png differ diff --git a/static/themes/clear-green/2nd-color/task.png b/static/themes/clear-green/2nd-color/task.png new file mode 100644 index 0000000..6e84cd2 Binary files /dev/null and b/static/themes/clear-green/2nd-color/task.png differ diff --git a/static/themes/clear-green/2nd-color/upload.png b/static/themes/clear-green/2nd-color/upload.png new file mode 100644 index 0000000..0cbfc55 Binary files /dev/null and b/static/themes/clear-green/2nd-color/upload.png differ diff --git a/static/themes/clear-green/2nd-color/user.png b/static/themes/clear-green/2nd-color/user.png new file mode 100644 index 0000000..2a6784d Binary files /dev/null and b/static/themes/clear-green/2nd-color/user.png differ diff --git a/static/themes/clear-green/2nd-color/view.png b/static/themes/clear-green/2nd-color/view.png new file mode 100644 index 0000000..cc5e0c4 Binary files /dev/null and b/static/themes/clear-green/2nd-color/view.png differ diff --git a/static/themes/clear-green/search.png b/static/themes/clear-green/search.png new file mode 100644 index 0000000..5efe342 Binary files /dev/null and b/static/themes/clear-green/search.png differ diff --git a/static/themes/clear-green/transparency.png b/static/themes/clear-green/transparency.png new file mode 100644 index 0000000..8e4faa6 Binary files /dev/null and b/static/themes/clear-green/transparency.png differ diff --git a/static/themes/clear-red/1st-color/0.png b/static/themes/clear-red/1st-color/0.png new file mode 100644 index 0000000..9d87795 Binary files /dev/null and b/static/themes/clear-red/1st-color/0.png differ diff --git a/static/themes/clear-red/1st-color/1.png b/static/themes/clear-red/1st-color/1.png new file mode 100644 index 0000000..24a3073 Binary files /dev/null and b/static/themes/clear-red/1st-color/1.png differ diff --git a/static/themes/clear-red/1st-color/2.png b/static/themes/clear-red/1st-color/2.png new file mode 100644 index 0000000..25f2ed6 Binary files /dev/null and b/static/themes/clear-red/1st-color/2.png differ diff --git a/static/themes/clear-red/1st-color/3.png b/static/themes/clear-red/1st-color/3.png new file mode 100644 index 0000000..9097389 Binary files /dev/null and b/static/themes/clear-red/1st-color/3.png differ diff --git a/static/themes/clear-red/1st-color/4.png b/static/themes/clear-red/1st-color/4.png new file mode 100644 index 0000000..9a418a5 Binary files /dev/null and b/static/themes/clear-red/1st-color/4.png differ diff --git a/static/themes/clear-red/1st-color/5.png b/static/themes/clear-red/1st-color/5.png new file mode 100644 index 0000000..e1f7fd7 Binary files /dev/null and b/static/themes/clear-red/1st-color/5.png differ diff --git a/static/themes/clear-red/1st-color/6.png b/static/themes/clear-red/1st-color/6.png new file mode 100644 index 0000000..ff10231 Binary files /dev/null and b/static/themes/clear-red/1st-color/6.png differ diff --git a/static/themes/clear-red/1st-color/7.png b/static/themes/clear-red/1st-color/7.png new file mode 100644 index 0000000..8251d8c Binary files /dev/null and b/static/themes/clear-red/1st-color/7.png differ diff --git a/static/themes/clear-red/1st-color/8.png b/static/themes/clear-red/1st-color/8.png new file mode 100644 index 0000000..3237c5d Binary files /dev/null and b/static/themes/clear-red/1st-color/8.png differ diff --git a/static/themes/clear-red/1st-color/9.png b/static/themes/clear-red/1st-color/9.png new file mode 100644 index 0000000..cb5cb83 Binary files /dev/null and b/static/themes/clear-red/1st-color/9.png differ diff --git a/static/themes/clear-red/1st-color/admin.png b/static/themes/clear-red/1st-color/admin.png new file mode 100644 index 0000000..4b471bc Binary files /dev/null and b/static/themes/clear-red/1st-color/admin.png differ diff --git a/static/themes/clear-red/1st-color/back.png b/static/themes/clear-red/1st-color/back.png new file mode 100644 index 0000000..16ea327 Binary files /dev/null and b/static/themes/clear-red/1st-color/back.png differ diff --git a/static/themes/clear-red/1st-color/delete.png b/static/themes/clear-red/1st-color/delete.png new file mode 100644 index 0000000..acebbc5 Binary files /dev/null and b/static/themes/clear-red/1st-color/delete.png differ diff --git a/static/themes/clear-red/1st-color/display.png b/static/themes/clear-red/1st-color/display.png new file mode 100644 index 0000000..0e9f29d Binary files /dev/null and b/static/themes/clear-red/1st-color/display.png differ diff --git a/static/themes/clear-red/1st-color/download.png b/static/themes/clear-red/1st-color/download.png new file mode 100644 index 0000000..fbcb880 Binary files /dev/null and b/static/themes/clear-red/1st-color/download.png differ diff --git a/static/themes/clear-red/1st-color/edit.png b/static/themes/clear-red/1st-color/edit.png new file mode 100644 index 0000000..b98e5b2 Binary files /dev/null and b/static/themes/clear-red/1st-color/edit.png differ diff --git a/static/themes/clear-red/1st-color/edit2.png b/static/themes/clear-red/1st-color/edit2.png new file mode 100644 index 0000000..0d11150 Binary files /dev/null and b/static/themes/clear-red/1st-color/edit2.png differ diff --git a/static/themes/clear-red/1st-color/favourite.png b/static/themes/clear-red/1st-color/favourite.png new file mode 100644 index 0000000..0018eba Binary files /dev/null and b/static/themes/clear-red/1st-color/favourite.png differ diff --git a/static/themes/clear-red/1st-color/filter.png b/static/themes/clear-red/1st-color/filter.png new file mode 100644 index 0000000..6209a1e Binary files /dev/null and b/static/themes/clear-red/1st-color/filter.png differ diff --git a/static/themes/clear-red/1st-color/folder.png b/static/themes/clear-red/1st-color/folder.png new file mode 100644 index 0000000..529e699 Binary files /dev/null and b/static/themes/clear-red/1st-color/folder.png differ diff --git a/static/themes/clear-red/1st-color/gps.png b/static/themes/clear-red/1st-color/gps.png new file mode 100644 index 0000000..9faf11f Binary files /dev/null and b/static/themes/clear-red/1st-color/gps.png differ diff --git a/static/themes/clear-red/1st-color/help.png b/static/themes/clear-red/1st-color/help.png new file mode 100644 index 0000000..996636f Binary files /dev/null and b/static/themes/clear-red/1st-color/help.png differ diff --git a/static/themes/clear-red/1st-color/info.png b/static/themes/clear-red/1st-color/info.png new file mode 100644 index 0000000..94f64c6 Binary files /dev/null and b/static/themes/clear-red/1st-color/info.png differ diff --git a/static/themes/clear-red/1st-color/is_favourite.png b/static/themes/clear-red/1st-color/is_favourite.png new file mode 100644 index 0000000..8e022b1 Binary files /dev/null and b/static/themes/clear-red/1st-color/is_favourite.png differ diff --git a/static/themes/clear-red/1st-color/login.png b/static/themes/clear-red/1st-color/login.png new file mode 100644 index 0000000..d3011f1 Binary files /dev/null and b/static/themes/clear-red/1st-color/login.png differ diff --git a/static/themes/clear-red/1st-color/logout.png b/static/themes/clear-red/1st-color/logout.png new file mode 100644 index 0000000..ae6a3ec Binary files /dev/null and b/static/themes/clear-red/1st-color/logout.png differ diff --git a/static/themes/clear-red/1st-color/permission.png b/static/themes/clear-red/1st-color/permission.png new file mode 100644 index 0000000..e624c79 Binary files /dev/null and b/static/themes/clear-red/1st-color/permission.png differ diff --git a/static/themes/clear-red/1st-color/play.png b/static/themes/clear-red/1st-color/play.png new file mode 100644 index 0000000..494b970 Binary files /dev/null and b/static/themes/clear-red/1st-color/play.png differ diff --git a/static/themes/clear-red/1st-color/plus.png b/static/themes/clear-red/1st-color/plus.png new file mode 100644 index 0000000..242782c Binary files /dev/null and b/static/themes/clear-red/1st-color/plus.png differ diff --git a/static/themes/clear-red/1st-color/print.png b/static/themes/clear-red/1st-color/print.png new file mode 100644 index 0000000..7fbfde8 Binary files /dev/null and b/static/themes/clear-red/1st-color/print.png differ diff --git a/static/themes/clear-red/1st-color/register.png b/static/themes/clear-red/1st-color/register.png new file mode 100644 index 0000000..47488a4 Binary files /dev/null and b/static/themes/clear-red/1st-color/register.png differ diff --git a/static/themes/clear-red/1st-color/save.png b/static/themes/clear-red/1st-color/save.png new file mode 100644 index 0000000..d3685fb Binary files /dev/null and b/static/themes/clear-red/1st-color/save.png differ diff --git a/static/themes/clear-red/1st-color/search.png b/static/themes/clear-red/1st-color/search.png new file mode 100644 index 0000000..8f45cd4 Binary files /dev/null and b/static/themes/clear-red/1st-color/search.png differ diff --git a/static/themes/clear-red/1st-color/settings.png b/static/themes/clear-red/1st-color/settings.png new file mode 100644 index 0000000..0359827 Binary files /dev/null and b/static/themes/clear-red/1st-color/settings.png differ diff --git a/static/themes/clear-red/1st-color/shuffle.png b/static/themes/clear-red/1st-color/shuffle.png new file mode 100644 index 0000000..2d81292 Binary files /dev/null and b/static/themes/clear-red/1st-color/shuffle.png differ diff --git a/static/themes/clear-red/1st-color/sort.png b/static/themes/clear-red/1st-color/sort.png new file mode 100644 index 0000000..520752c Binary files /dev/null and b/static/themes/clear-red/1st-color/sort.png differ diff --git a/static/themes/clear-red/1st-color/staging.png b/static/themes/clear-red/1st-color/staging.png new file mode 100644 index 0000000..ae10535 Binary files /dev/null and b/static/themes/clear-red/1st-color/staging.png differ diff --git a/static/themes/clear-red/1st-color/stop.png b/static/themes/clear-red/1st-color/stop.png new file mode 100644 index 0000000..c79a3be Binary files /dev/null and b/static/themes/clear-red/1st-color/stop.png differ diff --git a/static/themes/clear-red/1st-color/task.png b/static/themes/clear-red/1st-color/task.png new file mode 100644 index 0000000..f7b3944 Binary files /dev/null and b/static/themes/clear-red/1st-color/task.png differ diff --git a/static/themes/clear-red/1st-color/upload.png b/static/themes/clear-red/1st-color/upload.png new file mode 100644 index 0000000..5e09aea Binary files /dev/null and b/static/themes/clear-red/1st-color/upload.png differ diff --git a/static/themes/clear-red/1st-color/user.png b/static/themes/clear-red/1st-color/user.png new file mode 100644 index 0000000..2f23c5d Binary files /dev/null and b/static/themes/clear-red/1st-color/user.png differ diff --git a/static/themes/clear-red/1st-color/view.png b/static/themes/clear-red/1st-color/view.png new file mode 100644 index 0000000..589d497 Binary files /dev/null and b/static/themes/clear-red/1st-color/view.png differ diff --git a/static/themes/clear-red/2nd-color/0.png b/static/themes/clear-red/2nd-color/0.png new file mode 100644 index 0000000..c257dd9 Binary files /dev/null and b/static/themes/clear-red/2nd-color/0.png differ diff --git a/static/themes/clear-red/2nd-color/1.png b/static/themes/clear-red/2nd-color/1.png new file mode 100644 index 0000000..0a286e3 Binary files /dev/null and b/static/themes/clear-red/2nd-color/1.png differ diff --git a/static/themes/clear-red/2nd-color/2.png b/static/themes/clear-red/2nd-color/2.png new file mode 100644 index 0000000..a447682 Binary files /dev/null and b/static/themes/clear-red/2nd-color/2.png differ diff --git a/static/themes/clear-red/2nd-color/3.png b/static/themes/clear-red/2nd-color/3.png new file mode 100644 index 0000000..515a019 Binary files /dev/null and b/static/themes/clear-red/2nd-color/3.png differ diff --git a/static/themes/clear-red/2nd-color/4.png b/static/themes/clear-red/2nd-color/4.png new file mode 100644 index 0000000..64e0123 Binary files /dev/null and b/static/themes/clear-red/2nd-color/4.png differ diff --git a/static/themes/clear-red/2nd-color/5.png b/static/themes/clear-red/2nd-color/5.png new file mode 100644 index 0000000..53556d0 Binary files /dev/null and b/static/themes/clear-red/2nd-color/5.png differ diff --git a/static/themes/clear-red/2nd-color/6.png b/static/themes/clear-red/2nd-color/6.png new file mode 100644 index 0000000..82a437b Binary files /dev/null and b/static/themes/clear-red/2nd-color/6.png differ diff --git a/static/themes/clear-red/2nd-color/7.png b/static/themes/clear-red/2nd-color/7.png new file mode 100644 index 0000000..7b4e399 Binary files /dev/null and b/static/themes/clear-red/2nd-color/7.png differ diff --git a/static/themes/clear-red/2nd-color/8.png b/static/themes/clear-red/2nd-color/8.png new file mode 100644 index 0000000..52c6bc5 Binary files /dev/null and b/static/themes/clear-red/2nd-color/8.png differ diff --git a/static/themes/clear-red/2nd-color/9.png b/static/themes/clear-red/2nd-color/9.png new file mode 100644 index 0000000..c0966e8 Binary files /dev/null and b/static/themes/clear-red/2nd-color/9.png differ diff --git a/static/themes/clear-red/2nd-color/admin.png b/static/themes/clear-red/2nd-color/admin.png new file mode 100644 index 0000000..5f6f477 Binary files /dev/null and b/static/themes/clear-red/2nd-color/admin.png differ diff --git a/static/themes/clear-red/2nd-color/back.png b/static/themes/clear-red/2nd-color/back.png new file mode 100644 index 0000000..b6bb073 Binary files /dev/null and b/static/themes/clear-red/2nd-color/back.png differ diff --git a/static/themes/clear-red/2nd-color/delete.png b/static/themes/clear-red/2nd-color/delete.png new file mode 100644 index 0000000..9ec18be Binary files /dev/null and b/static/themes/clear-red/2nd-color/delete.png differ diff --git a/static/themes/clear-red/2nd-color/display.png b/static/themes/clear-red/2nd-color/display.png new file mode 100644 index 0000000..900e0d4 Binary files /dev/null and b/static/themes/clear-red/2nd-color/display.png differ diff --git a/static/themes/clear-red/2nd-color/download.png b/static/themes/clear-red/2nd-color/download.png new file mode 100644 index 0000000..0440c2d Binary files /dev/null and b/static/themes/clear-red/2nd-color/download.png differ diff --git a/static/themes/clear-red/2nd-color/download_flat.png b/static/themes/clear-red/2nd-color/download_flat.png new file mode 100644 index 0000000..5dadc91 Binary files /dev/null and b/static/themes/clear-red/2nd-color/download_flat.png differ diff --git a/static/themes/clear-red/2nd-color/edit.png b/static/themes/clear-red/2nd-color/edit.png new file mode 100644 index 0000000..f946e52 Binary files /dev/null and b/static/themes/clear-red/2nd-color/edit.png differ diff --git a/static/themes/clear-red/2nd-color/edit2.png b/static/themes/clear-red/2nd-color/edit2.png new file mode 100644 index 0000000..b56dac3 Binary files /dev/null and b/static/themes/clear-red/2nd-color/edit2.png differ diff --git a/static/themes/clear-red/2nd-color/favourite.png b/static/themes/clear-red/2nd-color/favourite.png new file mode 100644 index 0000000..1890722 Binary files /dev/null and b/static/themes/clear-red/2nd-color/favourite.png differ diff --git a/static/themes/clear-red/2nd-color/filter.png b/static/themes/clear-red/2nd-color/filter.png new file mode 100644 index 0000000..6646bb6 Binary files /dev/null and b/static/themes/clear-red/2nd-color/filter.png differ diff --git a/static/themes/clear-red/2nd-color/folder.png b/static/themes/clear-red/2nd-color/folder.png new file mode 100644 index 0000000..4dc3141 Binary files /dev/null and b/static/themes/clear-red/2nd-color/folder.png differ diff --git a/static/themes/clear-red/2nd-color/gps.png b/static/themes/clear-red/2nd-color/gps.png new file mode 100644 index 0000000..728061e Binary files /dev/null and b/static/themes/clear-red/2nd-color/gps.png differ diff --git a/static/themes/clear-red/2nd-color/home.png b/static/themes/clear-red/2nd-color/home.png new file mode 100644 index 0000000..2c99e48 Binary files /dev/null and b/static/themes/clear-red/2nd-color/home.png differ diff --git a/static/themes/clear-red/2nd-color/info.png b/static/themes/clear-red/2nd-color/info.png new file mode 100644 index 0000000..98cef14 Binary files /dev/null and b/static/themes/clear-red/2nd-color/info.png differ diff --git a/static/themes/clear-red/2nd-color/login.png b/static/themes/clear-red/2nd-color/login.png new file mode 100644 index 0000000..d53df47 Binary files /dev/null and b/static/themes/clear-red/2nd-color/login.png differ diff --git a/static/themes/clear-red/2nd-color/logout.png b/static/themes/clear-red/2nd-color/logout.png new file mode 100644 index 0000000..1a099de Binary files /dev/null and b/static/themes/clear-red/2nd-color/logout.png differ diff --git a/static/themes/clear-red/2nd-color/permission.png b/static/themes/clear-red/2nd-color/permission.png new file mode 100644 index 0000000..de95261 Binary files /dev/null and b/static/themes/clear-red/2nd-color/permission.png differ diff --git a/static/themes/clear-red/2nd-color/play.png b/static/themes/clear-red/2nd-color/play.png new file mode 100644 index 0000000..db911f3 Binary files /dev/null and b/static/themes/clear-red/2nd-color/play.png differ diff --git a/static/themes/clear-red/2nd-color/plus.png b/static/themes/clear-red/2nd-color/plus.png new file mode 100644 index 0000000..821e4a8 Binary files /dev/null and b/static/themes/clear-red/2nd-color/plus.png differ diff --git a/static/themes/clear-red/2nd-color/print.png b/static/themes/clear-red/2nd-color/print.png new file mode 100644 index 0000000..2da00ea Binary files /dev/null and b/static/themes/clear-red/2nd-color/print.png differ diff --git a/static/themes/clear-red/2nd-color/register.png b/static/themes/clear-red/2nd-color/register.png new file mode 100644 index 0000000..6605314 Binary files /dev/null and b/static/themes/clear-red/2nd-color/register.png differ diff --git a/static/themes/clear-red/2nd-color/save.png b/static/themes/clear-red/2nd-color/save.png new file mode 100644 index 0000000..8fa1407 Binary files /dev/null and b/static/themes/clear-red/2nd-color/save.png differ diff --git a/static/themes/clear-red/2nd-color/search.png b/static/themes/clear-red/2nd-color/search.png new file mode 100644 index 0000000..fffcbbd Binary files /dev/null and b/static/themes/clear-red/2nd-color/search.png differ diff --git a/static/themes/clear-red/2nd-color/settings.png b/static/themes/clear-red/2nd-color/settings.png new file mode 100644 index 0000000..20bcb7b Binary files /dev/null and b/static/themes/clear-red/2nd-color/settings.png differ diff --git a/static/themes/clear-red/2nd-color/shuffle.png b/static/themes/clear-red/2nd-color/shuffle.png new file mode 100644 index 0000000..38ddab2 Binary files /dev/null and b/static/themes/clear-red/2nd-color/shuffle.png differ diff --git a/static/themes/clear-red/2nd-color/sort.png b/static/themes/clear-red/2nd-color/sort.png new file mode 100644 index 0000000..4a51a2c Binary files /dev/null and b/static/themes/clear-red/2nd-color/sort.png differ diff --git a/static/themes/clear-red/2nd-color/staging.png b/static/themes/clear-red/2nd-color/staging.png new file mode 100644 index 0000000..690cd66 Binary files /dev/null and b/static/themes/clear-red/2nd-color/staging.png differ diff --git a/static/themes/clear-red/2nd-color/stop.png b/static/themes/clear-red/2nd-color/stop.png new file mode 100644 index 0000000..6581062 Binary files /dev/null and b/static/themes/clear-red/2nd-color/stop.png differ diff --git a/static/themes/clear-red/2nd-color/task.png b/static/themes/clear-red/2nd-color/task.png new file mode 100644 index 0000000..6e84cd2 Binary files /dev/null and b/static/themes/clear-red/2nd-color/task.png differ diff --git a/static/themes/clear-red/2nd-color/upload.png b/static/themes/clear-red/2nd-color/upload.png new file mode 100644 index 0000000..0cbfc55 Binary files /dev/null and b/static/themes/clear-red/2nd-color/upload.png differ diff --git a/static/themes/clear-red/2nd-color/user.png b/static/themes/clear-red/2nd-color/user.png new file mode 100644 index 0000000..2a6784d Binary files /dev/null and b/static/themes/clear-red/2nd-color/user.png differ diff --git a/static/themes/clear-red/2nd-color/view.png b/static/themes/clear-red/2nd-color/view.png new file mode 100644 index 0000000..cc5e0c4 Binary files /dev/null and b/static/themes/clear-red/2nd-color/view.png differ diff --git a/static/themes/clear-red/search.png b/static/themes/clear-red/search.png new file mode 100644 index 0000000..5efe342 Binary files /dev/null and b/static/themes/clear-red/search.png differ diff --git a/static/themes/clear-red/transparency.png b/static/themes/clear-red/transparency.png new file mode 100644 index 0000000..8e4faa6 Binary files /dev/null and b/static/themes/clear-red/transparency.png differ diff --git a/static/themes/white/0.png b/static/themes/white/0.png new file mode 100644 index 0000000..1063c1e Binary files /dev/null and b/static/themes/white/0.png differ diff --git a/static/themes/white/1.png b/static/themes/white/1.png new file mode 100644 index 0000000..7694dc1 Binary files /dev/null and b/static/themes/white/1.png differ diff --git a/static/themes/white/2.png b/static/themes/white/2.png new file mode 100644 index 0000000..ca93c87 Binary files /dev/null and b/static/themes/white/2.png differ diff --git a/static/themes/white/3.png b/static/themes/white/3.png new file mode 100644 index 0000000..d87ad7a Binary files /dev/null and b/static/themes/white/3.png differ diff --git a/static/themes/white/4.png b/static/themes/white/4.png new file mode 100644 index 0000000..fa7701d Binary files /dev/null and b/static/themes/white/4.png differ diff --git a/static/themes/white/5.png b/static/themes/white/5.png new file mode 100644 index 0000000..6b5292a Binary files /dev/null and b/static/themes/white/5.png differ diff --git a/static/themes/white/6.png b/static/themes/white/6.png new file mode 100644 index 0000000..a4da2a4 Binary files /dev/null and b/static/themes/white/6.png differ diff --git a/static/themes/white/7.png b/static/themes/white/7.png new file mode 100644 index 0000000..dfab064 Binary files /dev/null and b/static/themes/white/7.png differ diff --git a/static/themes/white/8.png b/static/themes/white/8.png new file mode 100644 index 0000000..c4c66fb Binary files /dev/null and b/static/themes/white/8.png differ diff --git a/static/themes/white/9.png b/static/themes/white/9.png new file mode 100644 index 0000000..66ccf77 Binary files /dev/null and b/static/themes/white/9.png differ diff --git a/static/themes/white/admin.png b/static/themes/white/admin.png new file mode 100644 index 0000000..1f816c2 Binary files /dev/null and b/static/themes/white/admin.png differ diff --git a/static/themes/white/back.png b/static/themes/white/back.png new file mode 100644 index 0000000..aea94c7 Binary files /dev/null and b/static/themes/white/back.png differ diff --git a/static/themes/white/delete.png b/static/themes/white/delete.png new file mode 100644 index 0000000..b8dcf2d Binary files /dev/null and b/static/themes/white/delete.png differ diff --git a/static/themes/white/display.png b/static/themes/white/display.png new file mode 100644 index 0000000..1967ef5 Binary files /dev/null and b/static/themes/white/display.png differ diff --git a/static/themes/white/download.png b/static/themes/white/download.png new file mode 100644 index 0000000..507eaf6 Binary files /dev/null and b/static/themes/white/download.png differ diff --git a/static/themes/white/download_flat.png b/static/themes/white/download_flat.png new file mode 100644 index 0000000..8fa2121 Binary files /dev/null and b/static/themes/white/download_flat.png differ diff --git a/static/themes/white/edit.png b/static/themes/white/edit.png new file mode 100644 index 0000000..451a714 Binary files /dev/null and b/static/themes/white/edit.png differ diff --git a/static/themes/white/edit2.png b/static/themes/white/edit2.png new file mode 100644 index 0000000..4e708a9 Binary files /dev/null and b/static/themes/white/edit2.png differ diff --git a/static/themes/white/favourite.png b/static/themes/white/favourite.png new file mode 100644 index 0000000..ca9a624 Binary files /dev/null and b/static/themes/white/favourite.png differ diff --git a/static/themes/white/filter.png b/static/themes/white/filter.png new file mode 100644 index 0000000..cf698e8 Binary files /dev/null and b/static/themes/white/filter.png differ diff --git a/static/themes/white/folder.png b/static/themes/white/folder.png new file mode 100644 index 0000000..5f0284b Binary files /dev/null and b/static/themes/white/folder.png differ diff --git a/static/themes/white/gps.png b/static/themes/white/gps.png new file mode 100644 index 0000000..a7ca90d Binary files /dev/null and b/static/themes/white/gps.png differ diff --git a/static/themes/white/home.png b/static/themes/white/home.png new file mode 100644 index 0000000..53e142e Binary files /dev/null and b/static/themes/white/home.png differ diff --git a/static/themes/white/info.png b/static/themes/white/info.png new file mode 100644 index 0000000..e5a515b Binary files /dev/null and b/static/themes/white/info.png differ diff --git a/static/themes/white/login.png b/static/themes/white/login.png new file mode 100644 index 0000000..a113b1d Binary files /dev/null and b/static/themes/white/login.png differ diff --git a/static/themes/white/logout.png b/static/themes/white/logout.png new file mode 100644 index 0000000..fb541f5 Binary files /dev/null and b/static/themes/white/logout.png differ diff --git a/static/themes/white/permission.png b/static/themes/white/permission.png new file mode 100644 index 0000000..46f0e5d Binary files /dev/null and b/static/themes/white/permission.png differ diff --git a/static/themes/white/play.png b/static/themes/white/play.png new file mode 100644 index 0000000..73fe60a Binary files /dev/null and b/static/themes/white/play.png differ diff --git a/static/themes/white/plus.png b/static/themes/white/plus.png new file mode 100644 index 0000000..e9596ba Binary files /dev/null and b/static/themes/white/plus.png differ diff --git a/static/themes/white/print.png b/static/themes/white/print.png new file mode 100644 index 0000000..e7dd8b5 Binary files /dev/null and b/static/themes/white/print.png differ diff --git a/static/themes/white/register.png b/static/themes/white/register.png new file mode 100644 index 0000000..bcfb77b Binary files /dev/null and b/static/themes/white/register.png differ diff --git a/static/themes/white/save.png b/static/themes/white/save.png new file mode 100644 index 0000000..b5ce17e Binary files /dev/null and b/static/themes/white/save.png differ diff --git a/static/themes/white/search.png b/static/themes/white/search.png new file mode 100644 index 0000000..bf332bb Binary files /dev/null and b/static/themes/white/search.png differ diff --git a/static/themes/white/settings.png b/static/themes/white/settings.png new file mode 100644 index 0000000..df2a7a8 Binary files /dev/null and b/static/themes/white/settings.png differ diff --git a/static/themes/white/shuffle.png b/static/themes/white/shuffle.png new file mode 100644 index 0000000..a6474bc Binary files /dev/null and b/static/themes/white/shuffle.png differ diff --git a/static/themes/white/sort.png b/static/themes/white/sort.png new file mode 100644 index 0000000..77d0ad6 Binary files /dev/null and b/static/themes/white/sort.png differ diff --git a/static/themes/white/staging.png b/static/themes/white/staging.png new file mode 100644 index 0000000..ba6c81a Binary files /dev/null and b/static/themes/white/staging.png differ diff --git a/static/themes/white/stop.png b/static/themes/white/stop.png new file mode 100644 index 0000000..ec548fa Binary files /dev/null and b/static/themes/white/stop.png differ diff --git a/static/themes/white/task.png b/static/themes/white/task.png new file mode 100644 index 0000000..4cb8d35 Binary files /dev/null and b/static/themes/white/task.png differ diff --git a/static/themes/white/upload.png b/static/themes/white/upload.png new file mode 100644 index 0000000..5d1fc79 Binary files /dev/null and b/static/themes/white/upload.png differ diff --git a/static/themes/white/user.png b/static/themes/white/user.png new file mode 100644 index 0000000..645069d Binary files /dev/null and b/static/themes/white/user.png differ diff --git a/static/themes/white/view.png b/static/themes/white/view.png new file mode 100644 index 0000000..e1f374b Binary files /dev/null and b/static/themes/white/view.png differ diff --git a/templates/themes/clear-blue/base.css b/templates/themes/clear-blue/base.css new file mode 100644 index 0000000..23476a8 --- /dev/null +++ b/templates/themes/clear-blue/base.css @@ -0,0 +1,662 @@ +{% load static %} +/* +* Common +*/ +html { + color: #333333; + font-family: sans-serif; + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; +} + +body { + margin-bottom: 0; +} + +.app-content { + padding-top: 30px; + padding-bottom: 30px; + padding-left: 10px; + padding-right: 10px; +} + +h1 { + padding: 6px; + background-color: #f2f2f2; + border-left:5px solid #333333; + border-bottom:5px solid #333333; + font-size: 22px; +} + +.image_bg h1 { + margin: 2px 0px; + margin-bottom: 4px; + border-left:0px; + border-bottom:0px; +} + +h2 { + padding: 6px; + background-color: #f2f2f2; + border-left:3px solid #333333; + border-bottom:3px solid #333333; + font-size: 18px; +} + +h3 { + padding: 6px; + background-color: #f2f2f2; + font-size: 14px; +} + +ul { + list-style-type: square; + padding: 10px 30px; +} + +a { + color: #3c5871; + font-weight: bold; +} + +a:hover { + background: #80baf1; +} + +table { + opacity: 0.75; + background-color: #ffffff; + border-collapse: collapse; + width: 100%; + margin: 2px 0px; +} + +td, th { + border: 1px solid #dddddd; + text-align: left; + padding: 8px; +} + +tr:nth-child(even) { + background-color: #dddddd; +} +/* +* Forms +*/ +.form { + background-color: #f2f2f2; + padding: 10px 20px; + margin: 5px 10px; + margin-bottom: 10px; +} + +input[type=text], select { + width: 100%; + padding: 5px 10px; + margin: 4px 0; + display: inline-block; + border: 1px solid #cccccc; + border-radius: 3px; + box-sizing: border-box; +} + +textarea { + width: 100%; + padding: 5px 10px; + margin: 4px 0; + display: inline-block; + border: 1px solid #cccccc; + border-radius: 3px; + box-sizing: border-box; +} + +input[type=password], select { + width: 100%; + padding: 5px 10px; + margin: 4px 0; + display: inline-block; + border: 1px solid #ccc; + border-radius: 3px; + box-sizing: border-box; +} + +input[type=email], select { + width: 100%; + padding: 5px 10px; + margin: 4px 0; + display: inline-block; + border: 1px solid #cccccc; + border-radius: 3px; + box-sizing: border-box; +} + +input[type=select], select { + width: 100%; + padding: 5px 10px; + margin: 4px 0; + display: inline-block; + border: 1px solid #cccccc; + border-radius: 3px; + box-sizing: border-box; +} + +input[type=file], select { + width: 100%; + padding: 5px 10px; + margin: 4px 0; + display: inline-block; + border: 1px solid #ccc; + border-radius: 3px; + box-sizing: border-box; +} + +p { + margin: 12px 0; +} + +input[type=submit] { + width: 100%; + background-color: #4CAF50; + color: white; + padding: 10px 15px; + margin: 8px 0; + border: none; + border-radius: 3px; + cursor: pointer; +} + +input[type=submit]:hover { + background-color: #45a049; +} + +label { + font-weight: bold; +} + +ul.errorlist { + color: red; +} + +/* +* Navigation- and Menubars +*/ +.titlebar { + overflow: hidden; + background-color: #333333; + color: #80baf1; + padding: 14px 16px; + padding-left:75px; + font-size: 22px; + max-height: 50px; +} + +.page-logo { + display: inline; + position: absolute; + top: 0px; + left: 0px; +} + +.page-logo:hover { + background-color: transparent; +} + +.titlebar input[type=text] { + color: #3796f0; + font-weight: bold; + float: right; + width: 34px; + height: 34px; + border: none; + padding: 7px 7px; + padding-left: 5px; + padding-right: 34px; + border-radius: 2px; + margin: 0; + -webkit-transition: width 0.4s ease-in-out; + transition: width 0.4s ease-in-out; + background-color: #4285f4; + background-image: url('{% static 'themes/'|add:settings.page_theme|add:'/search.png' %}'); + background-position: 0px 0px; + background-repeat: no-repeat; +} + +.titlebar input[type=text]/*:focus*/ { + float: right; + display: block; + padding-right: 43px; + text-align: left; + width: 300px; + background-position: 263px 0px; + max-width: 100%; + margin: 0; + background-color: white; +} + +/* +* MENUBAR +*/ +.menubar { + overflow: hidden; + background-color: #333; + z-index: 50; +} + +.bottombar { + position: fixed; + bottom: 0; + left: 0; + width: calc(100% - 16px); + margin-left: 8px; + max-height: 53px; +} + +.bottomspace { + min-height: 53px; +} + +.menubar a { + float: left; + font-size: 18px; + color: #80baf1; + text-align: center; + padding: 4px 15px; + text-decoration: none; + font-weight: normal; +} + + .menubar-slim a { + padding: 2px 2px; + font-weight: normal; +} + +.dropdown { + float: left; + overflow: hidden; +} + +.dropdown .dropbtn { + font-size: 18px; + border: none; + outline: none; + color: #80baf1; + padding: 4px 15px; + background-color: inherit; + font-family: inherit; + margin: 0; +} + +.dropdown-slim .dropbtn-slim { + padding: 2px 2px; +} + +.menubar a:hover, .dropdown:hover .dropbtn { + background-color: #3c5871; +} + +.dropdown-content { + display: none; + position: absolute; + background-color: #f9f9f9; + min-width: 50px; + box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); + z-index: 25; +} + +.dropdown-content a { + float: none; + color: #333; + padding: 12px 16px; + text-decoration: none; + display: block; + text-align: left; + font-weight: normal; +} + +.dropdown-content a:hover { + background-color: #ddd; +} + +.dropdown:hover .dropdown-content { + display: block; +} + +/* +* NAVIGATIONBAR +*/ +ul.navigationbar { + list-style-type: none; + margin: 0; + padding: 0; + overflow: hidden; + background-color: #3c5871; + max-height: 24px; +} + +li.navigationbar { + color: #333333; + float: left; + font-size: 16px; +} + +li.navigationbar a { + display: block; + color: #333333; + text-align: center; + padding: 2px 2px; + text-decoration: none; + font-weight: normal; +} + +li.navigationbar a:hover { + background-color: #80baf1; +} + +.active_menu { + background-color: #3c5871; +} + +/* When the screen is less than (n*100+250)px wide, reduce content to be shown */ +@media screen and (max-width: calc({{actionbar|length}} * 100px + 250px)) { + .action_menu_hide { + display: none + } +} + +/* When the screen is less than (n*100+250)px wide, reduce content to be shown */ +@media screen and (max-width: calc({{menubar|length}} * 100px + 250px)) { + .menu_hide { + display: none + } +} + +/* When the screen is less than (n*14+75+350)px wide, reduce content to be shown */ +@media screen and (max-width: calc({{title|length}} * 15px + 75px + 350px)) { + .title_hide { + display: none + } +} + +/* +* Flash (Hint, Info, Error) +*/ +.hidden { + display: none; +} + +.fixed { + position: fixed; + top: 30px; + width: 100%; /* so wie flash */ + padding-right:15px; + cursor: cell; +} + +.flash{ + margin: 0px; + display: block; + padding-top: 16px; + padding-bottom: 16px; + padding-left: 10px; + padding-right: 10px; + font-size: 16px; +} + +.flash > a { + text-decoration: none; + font-weight: bold; +} + +.flash > a:hover { + background: none; + text-decoration: underline; +} + +.flash-hint { + color: #205b00; + background-color: rgba(221, 255, 221, 0.9); + border-left: 6px solid #205b00; +} + +.flash-hint > a { + color: #205b00; +} + +.flash-info { + color: #204a87; + background-color: rgba(212, 239, 255, 0.9); + border-left: 6px solid #204a87; +} + +.flash-info > a { + color: #204a87; +} + +.flash-error { + color: #a40000; + background-color: rgba(255, 221, 221, 0.9); + border-left: 6px solid #a40000; +} + +.flash-error > a { + color: #a40000; +} + +.close-flash { + background: #323232; + opacity:1; + color: #FFFFFF; + line-height: 25px; + position: absolute; + top: 12px; + right: 30px; + text-align: center; + width: 24px; + text-decoration: none; + font-weight: bold; + -webkit-border-radius: 12px; + -moz-border-radius: 12px; + border-radius: 12px; + -moz-box-shadow: 1px 1px 3px #000000; + -webkit-box-shadow: 1px 1px 3px #000000; + box-shadow: 1px 1px 3px #000000; +} + +#fixed:hover .close-flash { + background: #a40000; + opacity:1; + color: #FFFFFF; +} +/* +* Items +*/ +div.itemname { + font-weight: bold; + padding: 2px; + font-size: 14px; + text-align: center; +} + +div.datetime { + font-style: italic; + padding: 2px; + font-size: 12px; + text-align: center; +} + +audio { + width: 100%; + margin: 2px 0px; + padding: 1px; + min-width: 300px; + display: block; +} + +* { + box-sizing: border-box; +} + +.container { + position: relative; + z-index: 1; +} + +.tag { + border: 2px solid rgba(255,100,100,.55); + display:block; + position:absolute; +} + +.tag:hover { + border: 3px solid rgba(255,100,100,.85); + background-color: transparent; +} + +.image { + float: left; + margin: 6px; +} + +.image_bg { + background: #333333; + padding: 6px; +} + +.image_bg:hover { + background: #3c5871; +} + +.webnail { + max-width: 90vw; + max-height: 90vh; +} + +.clearfix:after { + content: ""; + display: table; + clear: both; +} + +/* +* Modal Dialog +*/ +.modalDialog { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + background: rgba(0,0,0,0.8); + z-index: 99999; + opacity:0; + -webkit-transition: opacity 400ms ease-in; + -moz-transition: opacity 400ms ease-in; + transition: opacity 400ms ease-in; + pointer-events: none; +} + +.modalDialog:target { + opacity:1; + pointer-events: auto; +} + +.modalDialog > div { + width:calc(100% - 60px); + height: calc(100vh - 60px); + overflow-y: auto; + position: relative; + margin-top: 30px; + margin-left: 30px; + padding: 5px 20px 13px 20px; + border-radius: 10px; + background: #ffffff; + background: -moz-linear-gradient(#ffffff, #999999); + background: -webkit-linear-gradient(#ffffff, #999999); + background: -o-linear-gradient(#ffffff, #999999); + opacity:0.9; +} + +.close { + background: #606061; + opacity:1; + color: #FFFFFF; + line-height: 25px; + position: absolute; + right: 20px; + text-align: center; + top: 20px; + width: 24px; + text-decoration: none; + font-weight: bold; + -webkit-border-radius: 12px; + -moz-border-radius: 12px; + border-radius: 12px; + -moz-box-shadow: 1px 1px 3px #000000; + -webkit-box-shadow: 1px 1px 3px #000000; + box-shadow: 1px 1px 3px #000000; +} + +.close:hover { + background: #3c5871; + opacity:1; + color: #FFFFFF; +} + +.modal-info { + margin: 0px; + display: block; + padding-top: 16px; + padding-bottom: 16px; + padding-left: 10px; + padding-right: 10px; + font-size: 16px; + color: #204a87; + background-color: #daefff; + border-left: 6px solid #204a87; +} + +.modal-info > a { + text-decoration: none; + font-weight: bold; + color: #204a87; +} + +.modal-info > a:hover { + background: none; + text-decoration: underline; +} +.image_modal { + display: flex; + vertical-align: middle; +} + +.webnail_modal { + display: block; + max-width: 100%; + max-height: 100%; + margin: auto; + zoom: 2; +} + +/* + * Sticky Header + */ +/* Page content */ +.content { +} + +/* The sticky class is added to the header with JS when it reaches its scroll position */ +.sticky { + position: fixed; + top: 0; + width: calc(100% - 16px); +} + +.sticky-submenu { + position: fixed; +} + +/* Add some top padding to the page content to prevent sudden quick movement (as the header gets a new position at the top of the page (position:fixed and top:0) */ +.sticky + .content { + padding-top: 30px; +} diff --git a/templates/themes/clear-blue/base.html b/templates/themes/clear-blue/base.html new file mode 100644 index 0000000..dc6a769 --- /dev/null +++ b/templates/themes/clear-blue/base.html @@ -0,0 +1,115 @@ +{% load static %} +{% load i18n %} + + + + {{ title }} + + + + +{% block head_extensions %}{% endblock %} + + + + + + +{% block modal %}{% endblock %} + +
+ + {{ title }} + +
+ +{% with bar=menubar %}{% include 'themes/'|add:settings.page_theme|add:'/menubar.html' %}{% endwith %} + +{% include 'themes/'|add:settings.page_theme|add:'/navigationbar.html' %} + +{% with bar=actionbar abar=True %}{% include 'themes/'|add:settings.page_theme|add:'/menubar.html' %}{% endwith %} + +
+{% if messages %} +
+ {% for message in messages %} + {% if message.tags == "success" %} +

{{ message|safe }}

+ {% else %} + {% if message.tags == "info" %} +

{{ message|safe }}

+ {% else %} +

{{ message|safe }}

+ {% endif %} + {% endif %} + {% endfor %} +
+{% endif %} + +
+{% block content %}{% endblock %} +
+ +
+ +{% with bar=bottombar bottom=True %}{% include 'themes/'|add:settings.page_theme|add:'/menubar.html' %}{% endwith %} +
+ +{% if messages %} + +{% endif %} + + + + diff --git a/templates/themes/clear-blue/menubar.html b/templates/themes/clear-blue/menubar.html new file mode 100644 index 0000000..d6acada --- /dev/null +++ b/templates/themes/clear-blue/menubar.html @@ -0,0 +1,16 @@ + diff --git a/templates/themes/clear-blue/navigationbar.html b/templates/themes/clear-blue/navigationbar.html new file mode 100644 index 0000000..8836ab5 --- /dev/null +++ b/templates/themes/clear-blue/navigationbar.html @@ -0,0 +1,5 @@ + diff --git a/templates/themes/clear-green/base.css b/templates/themes/clear-green/base.css new file mode 100644 index 0000000..972d067 --- /dev/null +++ b/templates/themes/clear-green/base.css @@ -0,0 +1,662 @@ +{% load static %} +/* +* Common +*/ +html { + color: #333333; + font-family: sans-serif; + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; +} + +body { + margin-bottom: 0; +} + +.app-content { + padding-top: 30px; + padding-bottom: 30px; + padding-left: 10px; + padding-right: 10px; +} + +h1 { + padding: 6px; + background-color: #f2f2f2; + border-left:5px solid #333333; + border-bottom:5px solid #333333; + font-size: 22px; +} + +.image_bg h1 { + margin: 2px 0px; + margin-bottom: 4px; + border-left:0px; + border-bottom:0px; +} + +h2 { + padding: 6px; + background-color: #f2f2f2; + border-left:3px solid #333333; + border-bottom:3px solid #333333; + font-size: 18px; +} + +h3 { + padding: 6px; + background-color: #f2f2f2; + font-size: 14px; +} + +ul { + list-style-type: square; + padding: 10px 30px; +} + +a { + color: #00bb00; + font-weight: bold; +} + +a:hover { + background: #cafec7; +} + +table { + opacity: 0.75; + background-color: #ffffff; + border-collapse: collapse; + width: 100%; + margin: 2px 0px; +} + +td, th { + border: 1px solid #dddddd; + text-align: left; + padding: 8px; +} + +tr:nth-child(even) { + background-color: #dddddd; +} +/* +* Forms +*/ +.form { + background-color: #f2f2f2; + padding: 10px 20px; + margin: 5px 10px; + margin-bottom: 10px; +} + +input[type=text], select { + width: 100%; + padding: 5px 10px; + margin: 4px 0; + display: inline-block; + border: 1px solid #cccccc; + border-radius: 3px; + box-sizing: border-box; +} + +textarea { + width: 100%; + padding: 5px 10px; + margin: 4px 0; + display: inline-block; + border: 1px solid #cccccc; + border-radius: 3px; + box-sizing: border-box; +} + +input[type=password], select { + width: 100%; + padding: 5px 10px; + margin: 4px 0; + display: inline-block; + border: 1px solid #ccc; + border-radius: 3px; + box-sizing: border-box; +} + +input[type=email], select { + width: 100%; + padding: 5px 10px; + margin: 4px 0; + display: inline-block; + border: 1px solid #cccccc; + border-radius: 3px; + box-sizing: border-box; +} + +input[type=select], select { + width: 100%; + padding: 5px 10px; + margin: 4px 0; + display: inline-block; + border: 1px solid #cccccc; + border-radius: 3px; + box-sizing: border-box; +} + +input[type=file], select { + width: 100%; + padding: 5px 10px; + margin: 4px 0; + display: inline-block; + border: 1px solid #ccc; + border-radius: 3px; + box-sizing: border-box; +} + +p { + margin: 12px 0; +} + +input[type=submit] { + width: 100%; + background-color: #4CAF50; + color: white; + padding: 10px 15px; + margin: 8px 0; + border: none; + border-radius: 3px; + cursor: pointer; +} + +input[type=submit]:hover { + background-color: #45a049; +} + +label { + font-weight: bold; +} + +ul.errorlist { + color: red; +} + +/* +* Navigation- and Menubars +*/ +.titlebar { + overflow: hidden; + background-color: #333333; + color: #cafec7; + padding: 14px 16px; + padding-left:75px; + font-size: 22px; + max-height: 50px; +} + +.page-logo { + display: inline; + position: absolute; + top: 0px; + left: 0px; +} + +.page-logo:hover { + background-color: transparent; +} + +.titlebar input[type=text] { + color: #4285f4; + font-weight: bold; + float: right; + width: 34px; + height: 34px; + border: none; + padding: 7px 7px; + padding-left: 5px; + padding-right: 34px; + border-radius: 2px; + margin: 0; + -webkit-transition: width 0.4s ease-in-out; + transition: width 0.4s ease-in-out; + background-color: #4285f4; + background-image: url('{% static 'themes/'|add:settings.page_theme|add:'/search.png' %}'); + background-position: 0px 0px; + background-repeat: no-repeat; +} + +.titlebar input[type=text]/*:focus*/ { + float: right; + display: block; + padding-right: 43px; + text-align: left; + width: 300px; + background-position: 263px 0px; + max-width: 100%; + margin: 0; + background-color: white; +} + +/* +* MENUBAR +*/ +.menubar { + overflow: hidden; + background-color: #333; + z-index: 50; +} + +.bottombar { + position: fixed; + bottom: 0; + left: 0; + width: calc(100% - 16px); + margin-left: 8px; + max-height: 53px; +} + +.bottomspace { + min-height: 53px; +} + +.menubar a { + float: left; + font-size: 18px; + color: #cafec7; + text-align: center; + padding: 4px 15px; + text-decoration: none; + font-weight: normal; +} + + .menubar-slim a { + padding: 2px 2px; + font-weight: normal; +} + +.dropdown { + float: left; + overflow: hidden; +} + +.dropdown .dropbtn { + font-size: 18px; + border: none; + outline: none; + color: #cafec7; + padding: 4px 15px; + background-color: inherit; + font-family: inherit; + margin: 0; +} + +.dropdown-slim .dropbtn-slim { + padding: 2px 2px; +} + +.menubar a:hover, .dropdown:hover .dropbtn { + background-color: #00bb00; +} + +.dropdown-content { + display: none; + position: absolute; + background-color: #f9f9f9; + min-width: 50px; + box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); + z-index: 25; +} + +.dropdown-content a { + float: none; + color: #333; + padding: 12px 16px; + text-decoration: none; + display: block; + text-align: left; + font-weight: normal; +} + +.dropdown-content a:hover { + background-color: #ddd; +} + +.dropdown:hover .dropdown-content { + display: block; +} + +/* +* NAVIGATIONBAR +*/ +ul.navigationbar { + list-style-type: none; + margin: 0; + padding: 0; + overflow: hidden; + background-color: #00bb00; + max-height: 24px; +} + +li.navigationbar { + color: #333333; + float: left; + font-size: 16px; +} + +li.navigationbar a { + display: block; + color: #333333; + text-align: center; + padding: 2px 2px; + text-decoration: none; + font-weight: normal; +} + +li.navigationbar a:hover { + background-color: #cafec7; +} + +.active_menu { + background-color: #00bb00; +} + +/* When the screen is less than (n*100+250)px wide, reduce content to be shown */ +@media screen and (max-width: calc({{actionbar|length}} * 100px + 250px)) { + .action_menu_hide { + display: none + } +} + +/* When the screen is less than (n*100+250)px wide, reduce content to be shown */ +@media screen and (max-width: calc({{menubar|length}} * 100px + 250px)) { + .menu_hide { + display: none + } +} + +/* When the screen is less than (n*14+75+350)px wide, reduce content to be shown */ +@media screen and (max-width: calc({{title|length}} * 15px + 75px + 350px)) { + .title_hide { + display: none + } +} + +/* +* Flash (Hint, Info, Error) +*/ +.hidden { + display: none; +} + +.fixed { + position: fixed; + top: 30px; + width: 100%; /* so wie flash */ + padding-right:15px; + cursor: cell; +} + +.flash{ + margin: 0px; + display: block; + padding-top: 16px; + padding-bottom: 16px; + padding-left: 10px; + padding-right: 10px; + font-size: 16px; +} + +.flash > a { + text-decoration: none; + font-weight: bold; +} + +.flash > a:hover { + background: none; + text-decoration: underline; +} + +.flash-hint { + color: #205b00; + background-color: rgba(221, 255, 221, 0.9); + border-left: 6px solid #205b00; +} + +.flash-hint > a { + color: #205b00; +} + +.flash-info { + color: #204a87; + background-color: rgba(212, 239, 255, 0.9); + border-left: 6px solid #204a87; +} + +.flash-info > a { + color: #204a87; +} + +.flash-error { + color: #a40000; + background-color: rgba(255, 221, 221, 0.9); + border-left: 6px solid #a40000; +} + +.flash-error > a { + color: #a40000; +} + +.close-flash { + background: #323232; + opacity:1; + color: #FFFFFF; + line-height: 25px; + position: absolute; + top: 12px; + right: 30px; + text-align: center; + width: 24px; + text-decoration: none; + font-weight: bold; + -webkit-border-radius: 12px; + -moz-border-radius: 12px; + border-radius: 12px; + -moz-box-shadow: 1px 1px 3px #000000; + -webkit-box-shadow: 1px 1px 3px #000000; + box-shadow: 1px 1px 3px #000000; +} + +#fixed:hover .close-flash { + background: #a40000; + opacity:1; + color: #FFFFFF; +} +/* +* Items +*/ +div.itemname { + font-weight: bold; + padding: 2px; + font-size: 14px; + text-align: center; +} + +div.datetime { + font-style: italic; + padding: 2px; + font-size: 12px; + text-align: center; +} + +audio { + width: 100%; + margin: 2px 0px; + padding: 1px; + min-width: 300px; + display: block; +} + +* { + box-sizing: border-box; +} + +.container { + position: relative; + z-index: 1; +} + +.tag { + border: 2px solid rgba(255,100,100,.55); + display:block; + position:absolute; +} + +.tag:hover { + border: 3px solid rgba(255,100,100,.85); + background-color: transparent; +} + +.image { + float: left; + margin: 6px; +} + +.image_bg { + background: #333333; + padding: 6px; +} + +.image_bg:hover { + background: #00bb00; +} + +.webnail { + max-width: 90vw; + max-height: 90vh; +} + +.clearfix:after { + content: ""; + display: table; + clear: both; +} + +/* +* Modal Dialog +*/ +.modalDialog { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + background: rgba(0,0,0,0.8); + z-index: 99999; + opacity:0; + -webkit-transition: opacity 400ms ease-in; + -moz-transition: opacity 400ms ease-in; + transition: opacity 400ms ease-in; + pointer-events: none; +} + +.modalDialog:target { + opacity:1; + pointer-events: auto; +} + +.modalDialog > div { + width:calc(100% - 60px); + height: calc(100vh - 60px); + overflow-y: auto; + position: relative; + margin-top: 30px; + margin-left: 30px; + padding: 5px 20px 13px 20px; + border-radius: 10px; + background: #ffffff; + background: -moz-linear-gradient(#ffffff, #999999); + background: -webkit-linear-gradient(#ffffff, #999999); + background: -o-linear-gradient(#ffffff, #999999); + opacity:0.9; +} + +.close { + background: #606061; + opacity:1; + color: #FFFFFF; + line-height: 25px; + position: absolute; + right: 20px; + text-align: center; + top: 20px; + width: 24px; + text-decoration: none; + font-weight: bold; + -webkit-border-radius: 12px; + -moz-border-radius: 12px; + border-radius: 12px; + -moz-box-shadow: 1px 1px 3px #000000; + -webkit-box-shadow: 1px 1px 3px #000000; + box-shadow: 1px 1px 3px #000000; +} + +.close:hover { + background: #00bb00; + opacity:1; + color: #FFFFFF; +} + +.modal-info { + margin: 0px; + display: block; + padding-top: 16px; + padding-bottom: 16px; + padding-left: 10px; + padding-right: 10px; + font-size: 16px; + color: #204a87; + background-color: #daefff; + border-left: 6px solid #204a87; +} + +.modal-info > a { + text-decoration: none; + font-weight: bold; + color: #204a87; +} + +.modal-info > a:hover { + background: none; + text-decoration: underline; +} +.image_modal { + display: flex; + vertical-align: middle; +} + +.webnail_modal { + display: block; + max-width: 100%; + max-height: 100%; + margin: auto; + zoom: 2; +} + +/* + * Sticky Header + */ +/* Page content */ +.content { +} + +/* The sticky class is added to the header with JS when it reaches its scroll position */ +.sticky { + position: fixed; + top: 0; + width: calc(100% - 16px); +} + +.sticky-submenu { + position: fixed; +} + +/* Add some top padding to the page content to prevent sudden quick movement (as the header gets a new position at the top of the page (position:fixed and top:0) */ +.sticky + .content { + padding-top: 30px; +} diff --git a/templates/themes/clear-green/base.html b/templates/themes/clear-green/base.html new file mode 100644 index 0000000..dc6a769 --- /dev/null +++ b/templates/themes/clear-green/base.html @@ -0,0 +1,115 @@ +{% load static %} +{% load i18n %} + + + + {{ title }} + + + + +{% block head_extensions %}{% endblock %} + + + + + + +{% block modal %}{% endblock %} + +
+ + {{ title }} + +
+ +{% with bar=menubar %}{% include 'themes/'|add:settings.page_theme|add:'/menubar.html' %}{% endwith %} + +{% include 'themes/'|add:settings.page_theme|add:'/navigationbar.html' %} + +{% with bar=actionbar abar=True %}{% include 'themes/'|add:settings.page_theme|add:'/menubar.html' %}{% endwith %} + +
+{% if messages %} +
+ {% for message in messages %} + {% if message.tags == "success" %} +

{{ message|safe }}

+ {% else %} + {% if message.tags == "info" %} +

{{ message|safe }}

+ {% else %} +

{{ message|safe }}

+ {% endif %} + {% endif %} + {% endfor %} +
+{% endif %} + +
+{% block content %}{% endblock %} +
+ +
+ +{% with bar=bottombar bottom=True %}{% include 'themes/'|add:settings.page_theme|add:'/menubar.html' %}{% endwith %} +
+ +{% if messages %} + +{% endif %} + + + + diff --git a/templates/themes/clear-green/menubar.html b/templates/themes/clear-green/menubar.html new file mode 100644 index 0000000..d6acada --- /dev/null +++ b/templates/themes/clear-green/menubar.html @@ -0,0 +1,16 @@ + diff --git a/templates/themes/clear-green/navigationbar.html b/templates/themes/clear-green/navigationbar.html new file mode 100644 index 0000000..8836ab5 --- /dev/null +++ b/templates/themes/clear-green/navigationbar.html @@ -0,0 +1,5 @@ + diff --git a/templates/themes/clear-red/base.css b/templates/themes/clear-red/base.css new file mode 100644 index 0000000..57e5df3 --- /dev/null +++ b/templates/themes/clear-red/base.css @@ -0,0 +1,662 @@ +{% load static %} +/* +* Common +*/ +html { + color: #333333; + font-family: sans-serif; + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; +} + +body { + margin-bottom: 0; +} + +.app-content { + padding-top: 30px; + padding-bottom: 30px; + padding-left: 10px; + padding-right: 10px; +} + +h1 { + padding: 6px; + background-color: #f2f2f2; + border-left:5px solid #333333; + border-bottom:5px solid #333333; + font-size: 22px; +} + +.image_bg h1 { + margin: 2px 0px; + margin-bottom: 4px; + border-left:0px; + border-bottom:0px; +} + +h2 { + padding: 6px; + background-color: #f2f2f2; + border-left:3px solid #333333; + border-bottom:3px solid #333333; + font-size: 18px; +} + +h3 { + padding: 6px; + background-color: #f2f2f2; + font-size: 14px; +} + +ul { + list-style-type: square; + padding: 10px 30px; +} + +a { + color: #dd0000; + font-weight: bold; +} + +a:hover { + background: #ffe2e2; +} + +table { + opacity: 0.75; + background-color: #ffffff; + border-collapse: collapse; + width: 100%; + margin: 2px 0px; +} + +td, th { + border: 1px solid #dddddd; + text-align: left; + padding: 8px; +} + +tr:nth-child(even) { + background-color: #dddddd; +} +/* +* Forms +*/ +.form { + background-color: #f2f2f2; + padding: 10px 20px; + margin: 5px 10px; + margin-bottom: 10px; +} + +input[type=text], select { + width: 100%; + padding: 5px 10px; + margin: 4px 0; + display: inline-block; + border: 1px solid #cccccc; + border-radius: 3px; + box-sizing: border-box; +} + +textarea { + width: 100%; + padding: 5px 10px; + margin: 4px 0; + display: inline-block; + border: 1px solid #cccccc; + border-radius: 3px; + box-sizing: border-box; +} + +input[type=password], select { + width: 100%; + padding: 5px 10px; + margin: 4px 0; + display: inline-block; + border: 1px solid #ccc; + border-radius: 3px; + box-sizing: border-box; +} + +input[type=email], select { + width: 100%; + padding: 5px 10px; + margin: 4px 0; + display: inline-block; + border: 1px solid #cccccc; + border-radius: 3px; + box-sizing: border-box; +} + +input[type=select], select { + width: 100%; + padding: 5px 10px; + margin: 4px 0; + display: inline-block; + border: 1px solid #cccccc; + border-radius: 3px; + box-sizing: border-box; +} + +input[type=file], select { + width: 100%; + padding: 5px 10px; + margin: 4px 0; + display: inline-block; + border: 1px solid #ccc; + border-radius: 3px; + box-sizing: border-box; +} + +p { + margin: 12px 0; +} + +input[type=submit] { + width: 100%; + background-color: #4CAF50; + color: white; + padding: 10px 15px; + margin: 8px 0; + border: none; + border-radius: 3px; + cursor: pointer; +} + +input[type=submit]:hover { + background-color: #45a049; +} + +label { + font-weight: bold; +} + +ul.errorlist { + color: red; +} + +/* +* Navigation- and Menubars +*/ +.titlebar { + overflow: hidden; + background-color: #333333; + color: #ffe2e2; + padding: 14px 16px; + padding-left:75px; + font-size: 22px; + max-height: 50px; +} + +.page-logo { + display: inline; + position: absolute; + top: 0px; + left: 0px; +} + +.page-logo:hover { + background-color: transparent; +} + +.titlebar input[type=text] { + color: #4285f4; + font-weight: bold; + float: right; + width: 34px; + height: 34px; + border: none; + padding: 7px 7px; + padding-left: 5px; + padding-right: 34px; + border-radius: 2px; + margin: 0; + -webkit-transition: width 0.4s ease-in-out; + transition: width 0.4s ease-in-out; + background-color: #4285f4; + background-image: url('{% static 'themes/'|add:settings.page_theme|add:'/search.png' %}'); + background-position: 0px 0px; + background-repeat: no-repeat; +} + +.titlebar input[type=text]/*:focus*/ { + float: right; + display: block; + padding-right: 43px; + text-align: left; + width: 300px; + background-position: 263px 0px; + max-width: 100%; + margin: 0; + background-color: white; +} + +/* +* MENUBAR +*/ +.menubar { + overflow: hidden; + background-color: #333; + z-index: 50; +} + +.bottombar { + position: fixed; + bottom: 0; + left: 0; + width: calc(100% - 16px); + margin-left: 8px; + max-height: 53px; +} + +.bottomspace { + min-height: 53px; +} + +.menubar a { + float: left; + font-size: 18px; + color: #ffe2e2; + text-align: center; + padding: 4px 15px; + text-decoration: none; + font-weight: normal; +} + + .menubar-slim a { + padding: 2px 2px; + font-weight: normal; +} + +.dropdown { + float: left; + overflow: hidden; +} + +.dropdown .dropbtn { + font-size: 18px; + border: none; + outline: none; + color: #ffe2e2; + padding: 4px 15px; + background-color: inherit; + font-family: inherit; + margin: 0; +} + +.dropdown-slim .dropbtn-slim { + padding: 2px 2px; +} + +.menubar a:hover, .dropdown:hover .dropbtn { + background-color: #dd0000; +} + +.dropdown-content { + display: none; + position: absolute; + background-color: #f9f9f9; + min-width: 50px; + box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); + z-index: 25; +} + +.dropdown-content a { + float: none; + color: #333; + padding: 12px 16px; + text-decoration: none; + display: block; + text-align: left; + font-weight: normal; +} + +.dropdown-content a:hover { + background-color: #ddd; +} + +.dropdown:hover .dropdown-content { + display: block; +} + +/* +* NAVIGATIONBAR +*/ +ul.navigationbar { + list-style-type: none; + margin: 0; + padding: 0; + overflow: hidden; + background-color: #dd0000; + max-height: 24px; +} + +li.navigationbar { + color: #333333; + float: left; + font-size: 16px; +} + +li.navigationbar a { + display: block; + color: #333333; + text-align: center; + padding: 2px 2px; + text-decoration: none; + font-weight: normal; +} + +li.navigationbar a:hover { + background-color: #ffe2e2; +} + +.active_menu { + background-color: #dd0000; +} + +/* When the screen is less than (n*100+250)px wide, reduce content to be shown */ +@media screen and (max-width: calc({{actionbar|length}} * 100px + 250px)) { + .action_menu_hide { + display: none + } +} + +/* When the screen is less than (n*100+250)px wide, reduce content to be shown */ +@media screen and (max-width: calc({{menubar|length}} * 100px + 250px)) { + .menu_hide { + display: none + } +} + +/* When the screen is less than (n*14+75+350)px wide, reduce content to be shown */ +@media screen and (max-width: calc({{title|length}} * 15px + 75px + 350px)) { + .title_hide { + display: none + } +} + +/* +* Flash (Hint, Info, Error) +*/ +.hidden { + display: none; +} + +.fixed { + position: fixed; + top: 30px; + width: 100%; /* so wie flash */ + padding-right:15px; + cursor: cell; +} + +.flash{ + margin: 0px; + display: block; + padding-top: 16px; + padding-bottom: 16px; + padding-left: 10px; + padding-right: 10px; + font-size: 16px; +} + +.flash > a { + text-decoration: none; + font-weight: bold; +} + +.flash > a:hover { + background: none; + text-decoration: underline; +} + +.flash-hint { + color: #205b00; + background-color: rgba(221, 255, 221, 0.9); + border-left: 6px solid #205b00; +} + +.flash-hint > a { + color: #205b00; +} + +.flash-info { + color: #204a87; + background-color: rgba(212, 239, 255, 0.9); + border-left: 6px solid #204a87; +} + +.flash-info > a { + color: #204a87; +} + +.flash-error { + color: #a40000; + background-color: rgba(255, 221, 221, 0.9); + border-left: 6px solid #a40000; +} + +.flash-error > a { + color: #a40000; +} + +.close-flash { + background: #323232; + opacity:1; + color: #FFFFFF; + line-height: 25px; + position: absolute; + top: 12px; + right: 30px; + text-align: center; + width: 24px; + text-decoration: none; + font-weight: bold; + -webkit-border-radius: 12px; + -moz-border-radius: 12px; + border-radius: 12px; + -moz-box-shadow: 1px 1px 3px #000000; + -webkit-box-shadow: 1px 1px 3px #000000; + box-shadow: 1px 1px 3px #000000; +} + +#fixed:hover .close-flash { + background: #a40000; + opacity:1; + color: #FFFFFF; +} +/* +* Items +*/ +div.itemname { + font-weight: bold; + padding: 2px; + font-size: 14px; + text-align: center; +} + +div.datetime { + font-style: italic; + padding: 2px; + font-size: 12px; + text-align: center; +} + +audio { + width: 100%; + margin: 2px 0px; + padding: 1px; + min-width: 300px; + display: block; +} + +* { + box-sizing: border-box; +} + +.container { + position: relative; + z-index: 1; +} + +.tag { + border: 2px solid rgba(255,100,100,.55); + display:block; + position:absolute; +} + +.tag:hover { + border: 3px solid rgba(255,100,100,.85); + background-color: transparent; +} + +.image { + float: left; + margin: 6px; +} + +.image_bg { + background: #333333; + padding: 6px; +} + +.image_bg:hover { + background: #dd0000; +} + +.webnail { + max-width: 90vw; + max-height: 90vh; +} + +.clearfix:after { + content: ""; + display: table; + clear: both; +} + +/* +* Modal Dialog +*/ +.modalDialog { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + background: rgba(0,0,0,0.8); + z-index: 99999; + opacity:0; + -webkit-transition: opacity 400ms ease-in; + -moz-transition: opacity 400ms ease-in; + transition: opacity 400ms ease-in; + pointer-events: none; +} + +.modalDialog:target { + opacity:1; + pointer-events: auto; +} + +.modalDialog > div { + width:calc(100% - 60px); + height: calc(100vh - 60px); + overflow-y: auto; + position: relative; + margin-top: 30px; + margin-left: 30px; + padding: 5px 20px 13px 20px; + border-radius: 10px; + background: #ffffff; + background: -moz-linear-gradient(#ffffff, #999999); + background: -webkit-linear-gradient(#ffffff, #999999); + background: -o-linear-gradient(#ffffff, #999999); + opacity:0.9; +} + +.close { + background: #606061; + opacity:1; + color: #FFFFFF; + line-height: 25px; + position: absolute; + right: 20px; + text-align: center; + top: 20px; + width: 24px; + text-decoration: none; + font-weight: bold; + -webkit-border-radius: 12px; + -moz-border-radius: 12px; + border-radius: 12px; + -moz-box-shadow: 1px 1px 3px #000000; + -webkit-box-shadow: 1px 1px 3px #000000; + box-shadow: 1px 1px 3px #000000; +} + +.close:hover { + background: #dd0000; + opacity:1; + color: #FFFFFF; +} + +.modal-info { + margin: 0px; + display: block; + padding-top: 16px; + padding-bottom: 16px; + padding-left: 10px; + padding-right: 10px; + font-size: 16px; + color: #204a87; + background-color: #daefff; + border-left: 6px solid #204a87; +} + +.modal-info > a { + text-decoration: none; + font-weight: bold; + color: #204a87; +} + +.modal-info > a:hover { + background: none; + text-decoration: underline; +} +.image_modal { + display: flex; + vertical-align: middle; +} + +.webnail_modal { + display: block; + max-width: 100%; + max-height: 100%; + margin: auto; + zoom: 2; +} + +/* + * Sticky Header + */ +/* Page content */ +.content { +} + +/* The sticky class is added to the header with JS when it reaches its scroll position */ +.sticky { + position: fixed; + top: 0; + width: calc(100% - 16px); +} + +.sticky-submenu { + position: fixed; +} + +/* Add some top padding to the page content to prevent sudden quick movement (as the header gets a new position at the top of the page (position:fixed and top:0) */ +.sticky + .content { + padding-top: 30px; +} diff --git a/templates/themes/clear-red/base.html b/templates/themes/clear-red/base.html new file mode 100644 index 0000000..dc6a769 --- /dev/null +++ b/templates/themes/clear-red/base.html @@ -0,0 +1,115 @@ +{% load static %} +{% load i18n %} + + + + {{ title }} + + + + +{% block head_extensions %}{% endblock %} + + + + + + +{% block modal %}{% endblock %} + +
+ + {{ title }} + +
+ +{% with bar=menubar %}{% include 'themes/'|add:settings.page_theme|add:'/menubar.html' %}{% endwith %} + +{% include 'themes/'|add:settings.page_theme|add:'/navigationbar.html' %} + +{% with bar=actionbar abar=True %}{% include 'themes/'|add:settings.page_theme|add:'/menubar.html' %}{% endwith %} + +
+{% if messages %} +
+ {% for message in messages %} + {% if message.tags == "success" %} +

{{ message|safe }}

+ {% else %} + {% if message.tags == "info" %} +

{{ message|safe }}

+ {% else %} +

{{ message|safe }}

+ {% endif %} + {% endif %} + {% endfor %} +
+{% endif %} + +
+{% block content %}{% endblock %} +
+ +
+ +{% with bar=bottombar bottom=True %}{% include 'themes/'|add:settings.page_theme|add:'/menubar.html' %}{% endwith %} +
+ +{% if messages %} + +{% endif %} + + + + diff --git a/templates/themes/clear-red/menubar.html b/templates/themes/clear-red/menubar.html new file mode 100644 index 0000000..d6acada --- /dev/null +++ b/templates/themes/clear-red/menubar.html @@ -0,0 +1,16 @@ + diff --git a/templates/themes/clear-red/navigationbar.html b/templates/themes/clear-red/navigationbar.html new file mode 100644 index 0000000..8836ab5 --- /dev/null +++ b/templates/themes/clear-red/navigationbar.html @@ -0,0 +1,5 @@ + diff --git a/tests.py b/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/views.py b/views.py new file mode 100644 index 0000000..91ea44a --- /dev/null +++ b/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here.