Installed grappelli inline with the source
41
3rd_party_apps/grappelli/README
Executable file
@@ -0,0 +1,41 @@
|
||||
Grappelli: A jazzy skin for the Django Admin-Interface (only available for standard-compliant browsers).
|
||||
|
||||
Grappelli customizes django's admin by overwriting templates and media files only. No python code of django.contib.admin is overwritten.
|
||||
|
||||
|
||||
# Documentation #
|
||||
|
||||
* Changelog http://code.google.com/p/django-grappelli/wiki/changelog_2_1
|
||||
* Installation http://code.google.com/p/django-grappelli/wiki/Installation_2_1
|
||||
* Setup http://code.google.com/p/django-grappelli/wiki/setup_2_1
|
||||
* Available Settings http://code.google.com/p/django-grappelli/wiki/settings_2_1
|
||||
* Model Admin http://code.google.com/p/django-grappelli/wiki/modeladminoptions_2_1
|
||||
* Inline Model Admin http://code.google.com/p/django-grappelli/wiki/inlinemodeladminoptions_2_1
|
||||
* Related Lookups http://code.google.com/p/django-grappelli/wiki/relatedlookups_2_1
|
||||
* Generic Relationships http://code.google.com/p/django-grappelli/wiki/generic_2_1
|
||||
* Using TinyMCE http://code.google.com/p/django-grappelli/wiki/tinymce_2_1
|
||||
* Custom the Admin Index Page http://code.google.com/p/django-grappelli/wiki/customizingindex_2_1
|
||||
* JavaScript customizations: grappelli/media/js/GRAPPELLI_INFO.txt
|
||||
|
||||
|
||||
# Information #
|
||||
|
||||
* FAQ http://code.google.com/p/django-grappelli/wiki/FAQ
|
||||
* Features http://code.google.com/p/django-grappelli/wiki/Features
|
||||
* Release Notes http://code.google.com/p/django-grappelli/wiki/releasenotes
|
||||
* Django Issues http://code.google.com/p/django-grappelli/wiki/djangoissues
|
||||
* Reviews http://code.google.com/p/django-grappelli/wiki/Reviews
|
||||
|
||||
|
||||
# Discussion/Questions #
|
||||
|
||||
Use the Grappelli Google-Group for asking questions, discuss development- and improvement-issues and
|
||||
stay informed about changes/updates: http://groups.google.com/group/django-grappelli.
|
||||
|
||||
|
||||
# Branches/Versions #
|
||||
|
||||
* Trunk, Grappelli 2.1: Compatible with Django 1.2
|
||||
* Branch grappelli_2: Compatible with Django 1.1
|
||||
* Branch grappelli_2_2: JS-refactoring (in progress)
|
||||
|
||||
1
3rd_party_apps/grappelli/__init__.py
Executable file
@@ -0,0 +1 @@
|
||||
VERSION = '2.2'
|
||||
150
3rd_party_apps/grappelli/actions.py
Executable file
@@ -0,0 +1,150 @@
|
||||
# coding: utf-8
|
||||
|
||||
# PYTHON IMPORTS
|
||||
from datetime import datetime
|
||||
import csv
|
||||
import re
|
||||
from types import *
|
||||
|
||||
# DJANGO IMPORTS
|
||||
from django.contrib.admin import helpers
|
||||
from django.utils.encoding import force_unicode
|
||||
from django.shortcuts import render_to_response
|
||||
from django import template
|
||||
from django.contrib.admin.util import unquote
|
||||
from django.http import HttpResponse
|
||||
from django.utils.translation import ugettext as _
|
||||
|
||||
|
||||
def get_csv_export_fields(modeladmin, included):
|
||||
"""
|
||||
Return a sequence of tuples which should be included in the export.
|
||||
"""
|
||||
model_fields = [f.name for f in modeladmin.model._meta.fields]
|
||||
#for relation in modeladmin.csv_follow_relations:
|
||||
# for field in modeladmin.model._meta.get_field_by_name(relation)[0].rel.to._meta.fields:
|
||||
# fields.append([relation, field.name])
|
||||
fields = []
|
||||
for item in modeladmin.list_display:
|
||||
if item != "action_checkbox":
|
||||
if csv_get_fieldname(item) in included:
|
||||
fields.append(item)
|
||||
elif isinstance(item, FunctionType) and (item.__name__ in included):
|
||||
fields.append(item)
|
||||
|
||||
for f in model_fields:
|
||||
if (csv_get_fieldname(f) in included) and (csv_get_fieldname(f) not in fields):
|
||||
fields.append(f)
|
||||
return fields
|
||||
|
||||
|
||||
def get_csv_export_field_names(modeladmin):
|
||||
model_fields = [f for f in modeladmin.model._meta.fields]
|
||||
#for relation in modeladmin.csv_follow_relations:
|
||||
# for field in modeladmin.model._meta.get_field_by_name(relation)[0].rel.to._meta.fields:
|
||||
# fields.append([relation, field.name])
|
||||
fields = []
|
||||
for item in modeladmin.list_display:
|
||||
if isinstance(item, FunctionType):
|
||||
fields.append([item.__name__, item.short_description])
|
||||
elif item != "action_checkbox":
|
||||
appended = False
|
||||
for f in model_fields:
|
||||
if f.name == item:
|
||||
fields.append([f.name, f.verbose_name])
|
||||
appended = True
|
||||
break
|
||||
if not appended:
|
||||
fields.append([item, item])
|
||||
|
||||
for f in model_fields:
|
||||
inserted = False
|
||||
for item in fields:
|
||||
if item[0] == f.name:
|
||||
inserted = True
|
||||
break
|
||||
if not inserted:
|
||||
fields.append([f.name, f.verbose_name])
|
||||
return fields
|
||||
|
||||
|
||||
def csv_get_export_filename(modeladmin):
|
||||
ts = datetime.now().strftime('%Y-%m-%d_%H-%M-%S')
|
||||
return '%s_%s_%s_export.csv' % (ts, modeladmin.model._meta.app_label, modeladmin.model._meta.module_name)
|
||||
|
||||
|
||||
def csv_resolve_field(row, fieldname):
|
||||
if isinstance(fieldname, basestring):
|
||||
if isinstance(getattr(row, fieldname), MethodType):
|
||||
return getattr(row, fieldname)()
|
||||
else:
|
||||
return getattr(row, fieldname)
|
||||
elif isinstance(fieldname, FunctionType):
|
||||
return fieldname(row)
|
||||
else:
|
||||
obj = row
|
||||
for bit in fieldname:
|
||||
obj = getattr(obj, bit)
|
||||
return obj
|
||||
|
||||
|
||||
def csv_get_fieldname(field):
|
||||
if isinstance(field, basestring):
|
||||
return field
|
||||
elif isinstance(field, FunctionType):
|
||||
return field.short_description
|
||||
return '.'.join(field)
|
||||
|
||||
|
||||
def csv_export_selected(modeladmin, request, queryset):
|
||||
if request.POST.get('post'):
|
||||
csv_export_url = '~csv/'
|
||||
csv_export_dialect = 'excel'
|
||||
#csv_follow_relations = []
|
||||
csv_export_fmtparam = {
|
||||
'delimiter': ';',
|
||||
'quotechar': '"',
|
||||
'quoting': csv.QUOTE_MINIMAL,
|
||||
}
|
||||
fields = get_csv_export_fields(modeladmin, request.POST.getlist('_fields'))
|
||||
headers = [csv_get_fieldname(f) for f in fields]
|
||||
|
||||
response = HttpResponse(mimetype='text/csv')
|
||||
response['Content-Disposition'] = 'attachment; filename=%s' % csv_get_export_filename(modeladmin)
|
||||
writer = csv.writer(response, csv_export_dialect, **csv_export_fmtparam)
|
||||
writer.writerow(headers)
|
||||
for row in queryset:
|
||||
csvrow = [f.encode('utf-8') if isinstance(f, unicode) else f for f in [csv_resolve_field(row, f) for f in fields]]
|
||||
writer.writerow(csvrow)
|
||||
return response
|
||||
|
||||
fields = get_csv_export_field_names(modeladmin)
|
||||
|
||||
list_display = []
|
||||
for item in modeladmin.list_display:
|
||||
if isinstance(item, basestring):
|
||||
list_display.append(item)
|
||||
else:
|
||||
list_display.append(item.__name__)
|
||||
|
||||
opts = modeladmin.model._meta
|
||||
app_label = opts.app_label
|
||||
context = {
|
||||
"title": _("Export as CSV"),
|
||||
"object_name": force_unicode(opts.verbose_name),
|
||||
'queryset': queryset,
|
||||
"opts": opts,
|
||||
"root_path": modeladmin.admin_site.root_path,
|
||||
"app_label": app_label,
|
||||
'action_checkbox_name': helpers.ACTION_CHECKBOX_NAME,
|
||||
'fields': fields,
|
||||
'list_display': list_display,
|
||||
}
|
||||
|
||||
# Display the confirmation page
|
||||
return render_to_response([
|
||||
"admin/%s/%s/csv_export_selected_confirmation.html" % (app_label, opts.object_name.lower()),
|
||||
"admin/%s/csv_export_selected_confirmation.html" % app_label,
|
||||
"admin/csv_export_selected_confirmation.html"
|
||||
], context, context_instance=template.RequestContext(request))
|
||||
csv_export_selected.short_description = "Export selection as CSV"
|
||||
67
3rd_party_apps/grappelli/admin.py
Executable file
@@ -0,0 +1,67 @@
|
||||
# coding: utf-8
|
||||
|
||||
# DJANGO IMPORTS
|
||||
from django.contrib import admin
|
||||
from django.contrib.admin import sites
|
||||
from django.contrib.admin import ModelAdmin
|
||||
|
||||
from django.utils.functional import update_wrapper
|
||||
from django.views.decorators.csrf import csrf_protect
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.views.decorators.cache import never_cache
|
||||
|
||||
from django.conf import settings
|
||||
|
||||
|
||||
class AdminSite(sites.AdminSite):
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
self.grappelli_title = kwargs.pop('title', 'Grappelli')
|
||||
self.grappelli_headline = kwargs.pop('headline', 'Grappelli')
|
||||
super(AdminSite, self).__init__(*args, **kwargs)
|
||||
|
||||
def annotate_context(self, extra_context):
|
||||
extra_context = extra_context or {}
|
||||
extra_context.update({
|
||||
'grappelli_admin_title': self.grappelli_title,
|
||||
'grappelli_admin_headline': self.grappelli_headline,
|
||||
})
|
||||
return extra_context
|
||||
|
||||
def admin_view(self, view, cacheable=False):
|
||||
# not everything can take extra_context
|
||||
excludes = [
|
||||
'password_change',
|
||||
'password_change_done',
|
||||
'i18n_javascript',
|
||||
'login',
|
||||
'logout',
|
||||
'user_change_password',
|
||||
]
|
||||
def inner(request, *args, **kwargs):
|
||||
if not self.has_permission(request):
|
||||
return self.login(request)
|
||||
if view.__name__ not in excludes:
|
||||
extra_context = kwargs.get('extra_context', {})
|
||||
extra_context = self.annotate_context(extra_context)
|
||||
kwargs['extra_context'] = extra_context
|
||||
return view(request, *args, **kwargs)
|
||||
if not cacheable:
|
||||
inner = never_cache(inner)
|
||||
# We add csrf_protect here so this function can be used as a utility
|
||||
# function for any view, without having to repeat 'csrf_protect'.
|
||||
if not getattr(view, 'csrf_exempt', False):
|
||||
inner = csrf_protect(inner)
|
||||
return update_wrapper(inner, view)
|
||||
|
||||
|
||||
class RelatedLookupAdmin(admin.ModelAdmin):
|
||||
|
||||
def has_change_permission(self, request, obj=None):
|
||||
if not obj:
|
||||
opts = self.opts
|
||||
if request.user.has_perm(opts.app_label + '.view_' + opts.object_name.lower()):
|
||||
return True
|
||||
return super(RelatedLookupAdmin, self).has_change_permission(request, obj)
|
||||
|
||||
|
||||
22
3rd_party_apps/grappelli/context_processors.py
Executable file
@@ -0,0 +1,22 @@
|
||||
# coding: utf-8
|
||||
|
||||
from django.conf import settings
|
||||
|
||||
def admin_template_path(request):
|
||||
|
||||
# default templates for "grappelli standalone"
|
||||
template_path = "admin/_grappelli/"
|
||||
|
||||
if getattr(settings, 'ADMIN_TOOLS_INDEX_DASHBOARD', False):
|
||||
apps = getattr(settings, 'INSTALLED_APPS')
|
||||
if apps.count("admin_tools.dashboard"):
|
||||
# seems to be a grappelli+admin_tools setup
|
||||
# so we use the other templates
|
||||
template_path = "admin/_grappelli_admin_tools/"
|
||||
|
||||
return {
|
||||
"admin_template_index": "%sindex.html" % template_path,
|
||||
"admin_template_app_index": "%sapp_index.html" % template_path,
|
||||
"admin_template_base": "%sbase.html" % template_path,
|
||||
"admin_template_base_site": "%sbase_site.html" % template_path,
|
||||
}
|
||||
34
3rd_party_apps/grappelli/media/css/base.css
Executable file
@@ -0,0 +1,34 @@
|
||||
|
||||
|
||||
|
||||
/* Reset Styles (reset.css of Blueprint www.blueprintcss.org)
|
||||
------------------------------------------------------------------------------------------------------ */
|
||||
|
||||
@import url('reset.css');
|
||||
|
||||
|
||||
|
||||
/* Grappelli Styles:
|
||||
The core settings of Grappelli are defined here.
|
||||
Do not change them (better use your own skins/css in the next section).
|
||||
------------------------------------------------------------------------------------------------------ */
|
||||
|
||||
@import url('typography.css');
|
||||
@import url('structures.css');
|
||||
@import url('components.css');
|
||||
@import url('tools.css');
|
||||
@import url('forms.css');
|
||||
@import url('buttons.css');
|
||||
@import url('tables.css');
|
||||
|
||||
|
||||
|
||||
/* Grappelli Skins & Custom Styles:
|
||||
Use the delivered Grappelli skins or import your own skins/css here
|
||||
------------------------------------------------------------------------------------------------------ */
|
||||
|
||||
/* Grappelli Basic Skin: The Plain Version */
|
||||
/*@import url('grappelli-skin-basic.css');*/
|
||||
|
||||
/* Grappelli Default Skin: Adds Border-Radius & Background-Gradients to the Grappelli Basic Skin */
|
||||
@import url('grappelli-skin-default.css');
|
||||
369
3rd_party_apps/grappelli/media/css/buttons.css
Executable file
@@ -0,0 +1,369 @@
|
||||
|
||||
|
||||
|
||||
/* Submit, Delete & Cancel Buttons
|
||||
------------------------------------------------------------------------------------------------------ */
|
||||
|
||||
input[type=submit], input[type=reset], input[type=button], button {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
padding: 4px 5px 5px;
|
||||
width: auto;
|
||||
height: 25px;
|
||||
box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;
|
||||
cursor: pointer;
|
||||
}
|
||||
@media screen and (-webkit-min-device-pixel-ratio:0) {
|
||||
input[type=submit], input[type=reset], input[type=button], button {
|
||||
padding: 5px 8px 4px;
|
||||
}
|
||||
}
|
||||
|
||||
.submit-row a.delete-link,
|
||||
.submit-row a.cancel-link {
|
||||
display: block;
|
||||
padding: 5px 10px;
|
||||
font-weight: bold;
|
||||
}
|
||||
.submit-row input[type=submit],
|
||||
.submit-row input[type=button] {
|
||||
padding: 5px 10px;
|
||||
height: 28px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
input[type=submit],
|
||||
#bookmark-add-cancel,
|
||||
.submit-row a.delete-link:link, .submit-row a.delete-link:visited,
|
||||
.submit-row a.cancel-link:link, .submit-row a.cancel-link:visited,
|
||||
.submit-row input[type=button] {
|
||||
opacity: .6;
|
||||
}
|
||||
|
||||
input[type=submit]:hover,
|
||||
#bookmark-add-cancel:hover,
|
||||
.submit-row a.delete-link:hover, .submit-row a.delete-link:active,
|
||||
.submit-row a.cancel-link:hover, .submit-row a.cancel-link:active,
|
||||
.submit-row input[type=button]:hover {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
input[type=submit].default {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Icons & Buttons
|
||||
------------------------------------------------------------------------------------------------------ */
|
||||
|
||||
button.fb_show,
|
||||
button.ui-datepicker-trigger,
|
||||
button.ui-timepicker-trigger,
|
||||
button.ui-gAutocomplete-browse,
|
||||
button.ui-gAutoSlugField-toggle,
|
||||
button.ui-gFacelist-browse,
|
||||
a.button,
|
||||
.vDateField + span a,
|
||||
.vTimeField + span a,
|
||||
a.fb_show,
|
||||
a.related-lookup,
|
||||
a.add-another {
|
||||
position: relative;
|
||||
margin-left: -25px;
|
||||
}
|
||||
|
||||
button.fb_show,
|
||||
button.ui-gAutocomplete-browse,
|
||||
button.ui-gFacelist-browse,
|
||||
button.ui-gAutoSlugField-toggle,
|
||||
button.ui-datepicker-trigger,
|
||||
button.ui-timepicker-trigger,
|
||||
button.fb_show:hover,
|
||||
button.ui-gAutocomplete-browse:hover,
|
||||
button.ui-gFacelist-browse:hover,
|
||||
button.ui-gAutoSlugField-toggle:hover,
|
||||
button.ui-datepicker-trigger:hover,
|
||||
button.ui-timepicker-trigger:hover {
|
||||
width: 25px;
|
||||
background: 50% 50% no-repeat;
|
||||
}
|
||||
button.fb_show[disabled],
|
||||
button.ui-gAutocomplete-browse[disabled],
|
||||
button.ui-gFacelist-browse[disabled],
|
||||
button.ui-gAutoSlugField-toggle[disabled],
|
||||
button.ui-datepicker-trigger[disabled],
|
||||
button.ui-timepicker-trigger[disabled],
|
||||
input[disabled] + a {
|
||||
background: 50% 50% no-repeat !important;
|
||||
opacity: 0.3;
|
||||
cursor: auto !important;
|
||||
}
|
||||
|
||||
#changelist table button {
|
||||
top: -5px;
|
||||
margin-bottom: -12px;
|
||||
}
|
||||
@media screen and (-webkit-min-device-pixel-ratio:0) {
|
||||
#changelist table button {
|
||||
margin-bottom: -11px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Hide Images in Templates ........................................... */
|
||||
|
||||
a.add-another img, a.related-lookup img {
|
||||
opacity: 0;
|
||||
}
|
||||
a.related-lookup img {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
/* Autocomplete Button ......................................... */
|
||||
|
||||
button.ui-gAutocomplete-browse,
|
||||
button.ui-gFacelist-browse {
|
||||
background-image: url('../img/icons/icon-related-lookup.png');
|
||||
}
|
||||
button.ui-gAutocomplete-browse:hover,
|
||||
button.ui-gFacelist-browse:hover {
|
||||
background-image: url('../img/icons/icon-related-lookup-hover.png');
|
||||
}
|
||||
button.ui-gAutocomplete-browse[disabled], button.ui-gAutocomplete-browse[disabled]:hover,
|
||||
button.ui-gFacelist-browse[disabled], button.ui-gFacelist-browse[disabled]:hover {
|
||||
background-image: url('../img/icons/icon-related-lookup-hover.png') !important;
|
||||
}
|
||||
|
||||
|
||||
/* AutoSlugField Button ......................................... */
|
||||
|
||||
/* TODO: lock/unlock icons .. */
|
||||
|
||||
button.ui-gAutoSlugField-toggle {
|
||||
background-image: url('../img/icons/icon-related-lookup.png');
|
||||
}
|
||||
button.ui-gAutoSlugField-toggle:hover {
|
||||
background-image: url('../img/icons/icon-related-lookup-hover.png');
|
||||
}
|
||||
button.ui-gAutoSlugField-toggle[disabled], button.ui-gAutoSlugField-toggle[disabled]:hover {
|
||||
background-image: url('../img/icons/icon-related-lookup-hover.png') !important;
|
||||
}
|
||||
|
||||
|
||||
/* Datepicker Button ......................................... */
|
||||
|
||||
button.ui-datepicker-trigger {
|
||||
background-image: url('../img/icons/icon-datepicker.png');
|
||||
}
|
||||
button.ui-datepicker-trigger:hover {
|
||||
background-image: url('../img/icons/icon-datepicker-hover.png');
|
||||
}
|
||||
button.ui-datepicker-trigger[disabled], button.ui-datepicker-trigger[disabled]:hover {
|
||||
background-image: url('../img/icons/icon-datepicker-hover.png') !important;
|
||||
}
|
||||
|
||||
|
||||
/* Timepicker Button ......................................... */
|
||||
|
||||
button.ui-timepicker-trigger {
|
||||
background-image: url('../img/icons/icon-timepicker.png');
|
||||
}
|
||||
button.ui-timepicker-trigger:hover {
|
||||
background-image: url('../img/icons/icon-timepicker-hover.png');
|
||||
}
|
||||
button.ui-timepicker-trigger[disabled], button.ui-timepicker-trigger[disabled]:hover {
|
||||
background-image: url('../img/icons/icon-timepicker-hover.png') !important;
|
||||
}
|
||||
|
||||
|
||||
/* Search Button ......................................... */
|
||||
|
||||
button.search {
|
||||
position: relative;
|
||||
float: right;
|
||||
top: 0;
|
||||
right: 5px;
|
||||
margin: 0 0 0 -30px;
|
||||
background: url('../img/icons/icon-search.png') 0 50% no-repeat scroll;
|
||||
}
|
||||
button.search:hover {
|
||||
background: url('../img/icons/icon-search-hover.png') 0 50% no-repeat scroll;
|
||||
}
|
||||
button.search[disabled], button.search[disabled]:hover {
|
||||
background: url('../img/icons/icon-search-hover.png') 0 50% no-repeat scroll !important;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Links as Buttons
|
||||
------------------------------------------------------------------------------------------------------ */
|
||||
|
||||
a.button,
|
||||
.datecrumbs a,
|
||||
.datecrumbs span {
|
||||
display: inline-block;
|
||||
padding: 4px 8px 4px;
|
||||
font-size: 11px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
|
||||
/* Drop-Down Button ......................................... */
|
||||
|
||||
a.button.drop-down {
|
||||
float: right;
|
||||
padding-left: 20px;
|
||||
padding-top: 3px;
|
||||
}
|
||||
a.button.drop-down[class*="selected"] {
|
||||
position: relative;
|
||||
z-index: 1000;
|
||||
height: 17px;
|
||||
}
|
||||
a.button.drop-down:link, a.button.drop-down:visited {
|
||||
background: url('../img/icons/icon-dropdown.png') 3px 3px no-repeat;
|
||||
}
|
||||
a.button.drop-down[class*="selected"],
|
||||
a.button.drop-down:hover, a.button.drop-down:active {
|
||||
background: url('../img/icons/icon-dropdown-hover.png') 3px 3px no-repeat;
|
||||
}
|
||||
|
||||
|
||||
/* Filebrowser & Related Lookup ......................................... */
|
||||
|
||||
a.fb_show img {
|
||||
width: 0;
|
||||
height: 0;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
a.fb_show,
|
||||
a.related-lookup {
|
||||
display: inline-block;
|
||||
margin-bottom: -5px;
|
||||
width: 23px;
|
||||
height: 23px;
|
||||
font-size: 0;
|
||||
line-height: 0;
|
||||
background: 50% 50% no-repeat;
|
||||
}
|
||||
|
||||
a.fb_show:link, a.fb_show:visited,
|
||||
.tinyMCE .browse span {
|
||||
background-image: url('../img/icons/icon-fb-show.png');
|
||||
}
|
||||
a.fb_show:hover, a.fb_show:active,
|
||||
.tinyMCE .browse span:hover {
|
||||
background-image: url('../img/icons/icon-fb-show-hover.png');
|
||||
}
|
||||
a.related-lookup:link, a.related-lookup:visited {
|
||||
background-image: url('../img/icons/icon-related-lookup.png');
|
||||
}
|
||||
a.related-lookup:hover, a.related-lookup:active {
|
||||
background-image: url('../img/icons/icon-related-lookup-hover.png');
|
||||
}
|
||||
|
||||
input[disabled] + a.fb_show {
|
||||
background-image: url('../img/icons/icon-fb-show-hover.png') !important;
|
||||
}
|
||||
input[disabled] + a.related-lookup {
|
||||
background-image: url('../img/icons/icon-related-lookup-hover.png') !important;
|
||||
}
|
||||
|
||||
a.related-lookup + strong {
|
||||
position: relative;
|
||||
top: -4px;
|
||||
margin-left: 5px;
|
||||
font-size: 11px;
|
||||
font-weight: bold;
|
||||
}
|
||||
#changelist table a.fb_show,
|
||||
#changelist table a.related-lookup {
|
||||
top: -5px;
|
||||
margin-bottom: -12px;
|
||||
}
|
||||
#changelist table a.related-lookup + strong {
|
||||
top: -1px;
|
||||
}
|
||||
|
||||
|
||||
/* Add Another ......................................... */
|
||||
|
||||
a.add-another {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
margin-left: 3px;
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
vertical-align: top;
|
||||
font-size: 11px;
|
||||
line-height: 16px;
|
||||
background: 50% 50% no-repeat;
|
||||
}
|
||||
|
||||
a.add-another:link, a.add-another:visited {
|
||||
background-image: url('../img/icons/icon-add_another.png');
|
||||
}
|
||||
a.add-another:hover, a.add-another:active {
|
||||
background-image: url('../img/icons/icon-add_another-hover.png');
|
||||
}
|
||||
|
||||
.change-list table tbody a.add-another {
|
||||
position: relative;
|
||||
top: -7px;
|
||||
}
|
||||
|
||||
.radiolist.inline + a.add-another,
|
||||
.checkboxlist.inline + a.add-another {
|
||||
float: left;
|
||||
margin-left: -20px;
|
||||
margin-right: -10000px;
|
||||
}
|
||||
.row.cells ul.radiolist.inline + a.add-another,
|
||||
.row.cells ul.checkboxlist.inline + a.add-another {
|
||||
float: none;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Unknown, Yes & No Workaround
|
||||
------------------------------------------------------------------------------------------------------ */
|
||||
|
||||
img[src$="img/admin/icon-unknown.gif"] {
|
||||
padding: 5px;
|
||||
width: 0;
|
||||
height: 0;
|
||||
background: url('../img/icons/icon-unknown.png') 0 50% no-repeat;
|
||||
}
|
||||
img[src$="img/admin/icon-no.gif"] {
|
||||
padding: 5px;
|
||||
width: 0;
|
||||
height: 0;
|
||||
background: url('../img/icons/icon-no.png') 0 50% no-repeat;
|
||||
}
|
||||
img[src$="img/admin/icon-yes.gif"] {
|
||||
padding: 5px;
|
||||
width: 0;
|
||||
height: 0;
|
||||
background: url('../img/icons/icon-yes.png') 0 50% no-repeat;
|
||||
}
|
||||
|
||||
#changelist form table img[src$="img/admin/icon-unknown.gif"] {
|
||||
position: relative;
|
||||
top: 2px;
|
||||
vertical-align: top;
|
||||
}
|
||||
#changelist form table img[src$="img/admin/icon-no.gif"] {
|
||||
position: relative;
|
||||
top: 3px;
|
||||
vertical-align: top;
|
||||
}
|
||||
#changelist form table img[src$="img/admin/icon-yes.gif"] {
|
||||
position: relative;
|
||||
top: 2px;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
864
3rd_party_apps/grappelli/media/css/components.css
Executable file
444
3rd_party_apps/grappelli/media/css/datepicker/grappelli-theme-extensions.css
Executable file
@@ -0,0 +1,444 @@
|
||||
|
||||
body {
|
||||
/* background: #e4f !important;*/
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* Widget Basics
|
||||
------------------------------------------------------------------------------------------------------ */
|
||||
|
||||
.module.ui-widget {
|
||||
border: none;
|
||||
background: #fff;
|
||||
}
|
||||
.ui-widget-content {
|
||||
border: 1px solid #ccc;
|
||||
border-bottom-left-radius: 5px; -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px;
|
||||
border-bottom-right-radius: 5px; -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px;
|
||||
background: #eee;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Accordion
|
||||
------------------------------------------------------------------------------------------------------ */
|
||||
|
||||
|
||||
/* Overlays */
|
||||
.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
|
||||
.ui-accordion .ui-accordion-li-fix { display: inline; }
|
||||
.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
|
||||
.ui-accordion .ui-accordion-header a {
|
||||
display: block;
|
||||
font-size: 1em;
|
||||
padding: 0 0 0 12px;
|
||||
}
|
||||
.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
|
||||
.ui-accordion .ui-accordion-content {
|
||||
top: 0;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
padding: 5px 15px;
|
||||
border-top: 1px solid #fff;
|
||||
}
|
||||
.ui-accordion .ui-accordion-content-active { display: block; }/* Datepicker
|
||||
----------------------------------*/
|
||||
|
||||
|
||||
|
||||
.ui-accordion-header {
|
||||
margin-top: 2px !important;
|
||||
cursor: pointer;
|
||||
outline: none;
|
||||
}
|
||||
.ui-accordion .ui-accordion-header a {
|
||||
padding: 0 0 0 12px;
|
||||
color: #444;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.ui-accordion-header.ui-state-default {
|
||||
border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;
|
||||
}
|
||||
.ui-accordion-header.ui-state-active {
|
||||
border-bottom-left-radius: 0; -moz-border-radius-bottomleft: 0; -webkit-border-bottom-left-radius: 0;
|
||||
border-bottom-right-radius: 0; -moz-border-radius-bottomright: 0; -webkit-border-bottom-right-radius: 0;
|
||||
}
|
||||
|
||||
|
||||
/* Accordion Module ......................................... */
|
||||
|
||||
.module .ui-accordion-header.ui-state-default {
|
||||
border: 1px solid #bdbdbd;
|
||||
background-color: #a1d4e5;
|
||||
}
|
||||
.module .ui-accordion-header.ui-state-default:hover {
|
||||
background-color: #d6d6d6;
|
||||
}
|
||||
.module .ui-accordion-header.ui-state-active {
|
||||
border: 1px solid #bdbdbd;
|
||||
background-color: #d6d6d6;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Accordion Module in Group......................................... */
|
||||
|
||||
.group .module .ui-accordion-header.ui-state-default {
|
||||
border: 1px solid #c7c7c7;
|
||||
background-color: #cee9f2;
|
||||
}
|
||||
.group .module .ui-accordion-header.ui-state-default:hover {
|
||||
background-color: #e0e0e0;
|
||||
}
|
||||
.group .module .ui-accordion-header.ui-state-active {
|
||||
border: 1px solid #c7c7c7;
|
||||
background-color: #e0e0e0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/*.module .ui-accordion-header {
|
||||
border-top: 1px solid #e4f;
|
||||
}*/
|
||||
.group .module .ui-accordion-header {
|
||||
border-top: 1px solid #4ef;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Datepicker
|
||||
------------------------------------------------------------------------------------------------------ */
|
||||
|
||||
|
||||
/*button.ui-datepicker-trigger {
|
||||
margin-left: 5px;
|
||||
width: 25px;
|
||||
background: #4ef url('/media/grappelli/img/icons/icon-calendar.png') 50% 50% no-repeat;
|
||||
}
|
||||
button.ui-datepicker-trigger:hover {
|
||||
background: transparent url('/media/grappelli/img/icons/icon-calendar-hover.png') 50% 50% no-repeat;
|
||||
}*/
|
||||
|
||||
.ui-datepicker {
|
||||
width: auto !important; padding: 3px 3px 0;
|
||||
border-color: #bdbdbd;
|
||||
box-shadow: 0 0 10px #333; -moz-box-shadow: 0 0 10px #333; -webkit-box-shadow: 0 0 10px #333;
|
||||
}
|
||||
.ui-datepicker .ui-datepicker-header {
|
||||
padding: 2px 0;
|
||||
height: 25px;
|
||||
}
|
||||
.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next {
|
||||
position: absolute;
|
||||
top: 4px;
|
||||
width: 1.8em;
|
||||
height: 1.8em;
|
||||
}
|
||||
.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 3px; }
|
||||
.ui-datepicker .ui-datepicker-prev { left:2px; }
|
||||
.ui-datepicker .ui-datepicker-next { right:2px; }
|
||||
.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
|
||||
.ui-datepicker .ui-datepicker-next-hover { right:1px; }
|
||||
.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }
|
||||
.ui-datepicker .ui-datepicker-title {
|
||||
margin: 3px 25px 2px;
|
||||
line-height: 1.8em;
|
||||
text-align: center;
|
||||
}
|
||||
.ui-datepicker .ui-datepicker-title select {
|
||||
float:left;
|
||||
font-size:1em;
|
||||
margin: -3px 0 -1px !important;
|
||||
min-width: 30px;
|
||||
}
|
||||
.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
|
||||
.ui-datepicker select.ui-datepicker-month,
|
||||
.ui-datepicker select.ui-datepicker-year { width: 49%;}
|
||||
.ui-datepicker .ui-datepicker-title select.ui-datepicker-year {
|
||||
float: right;
|
||||
}
|
||||
.ui-datepicker table {
|
||||
width: 100%;
|
||||
font-size: 12px;
|
||||
margin: 0 0 2px;
|
||||
}
|
||||
.ui-datepicker th { padding: 5px 0; text-align: center; font-weight: bold; border: 0; }
|
||||
.ui-datepicker td {
|
||||
min-width: 25px;
|
||||
border: 0; padding: 1px;
|
||||
}
|
||||
.ui-datepicker td span, .ui-datepicker td a {
|
||||
padding: 4px 0 3px;
|
||||
text-align: center;
|
||||
border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px;
|
||||
}
|
||||
.ui-datepicker td a.ui-state-hover {
|
||||
color: #fff !important;
|
||||
border-color: #444 !important;
|
||||
background: #444 !important;
|
||||
}
|
||||
.ui-datepicker td a.ui-state-active {
|
||||
/* color: #fff;*/
|
||||
/* border-color: #aaa;*/
|
||||
background: #fff;
|
||||
}
|
||||
.ui-datepicker td a.ui-state-highlight {
|
||||
/* color: #fff;*/
|
||||
border-color: #bababa;
|
||||
background: #D6D6D6;
|
||||
}
|
||||
.ui-datepicker .ui-datepicker-buttonpane {
|
||||
background-image: none;
|
||||
margin: 10px 0 0;
|
||||
padding: 0;
|
||||
border-left: 0;
|
||||
border-right: 0;
|
||||
border-bottom: 0;
|
||||
}
|
||||
.ui-datepicker .ui-datepicker-buttonpane button {
|
||||
float: right;
|
||||
margin: 3px 0;
|
||||
padding: 4px 5px 5px;
|
||||
height: 25px;
|
||||
font-size: 12px;
|
||||
background: #fff;
|
||||
cursor: pointer;
|
||||
}
|
||||
.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {
|
||||
opacity: 1 !important;
|
||||
color: #fff; font-weight: bold;
|
||||
border-color: #309bbf;
|
||||
background: #309bbf;
|
||||
}
|
||||
.ui-datepicker .ui-datepicker-buttonpane button.ui-state-hover {
|
||||
color: #fff !important;
|
||||
border-color: #444 !important;
|
||||
background: #444 !important;
|
||||
}
|
||||
|
||||
.ui-datepicker-multi .ui-datepicker-group-first .ui-datepicker-title,
|
||||
.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-title {
|
||||
margin-right: 5px !important;
|
||||
}
|
||||
.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-title,
|
||||
.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-title {
|
||||
margin-left: 5px !important;
|
||||
}
|
||||
|
||||
.ui-datepicker-multi .ui-datepicker-group table {
|
||||
width: 95%;
|
||||
}
|
||||
.ui-datepicker-multi .ui-datepicker-group-first table,
|
||||
.ui-datepicker-multi .ui-datepicker-group-middle table {
|
||||
margin-right: 5px !important;
|
||||
}
|
||||
.ui-datepicker-multi .ui-datepicker-group-middle table,
|
||||
.ui-datepicker-multi .ui-datepicker-group-last table {
|
||||
margin-left: 5px !important;
|
||||
}
|
||||
.ui-datepicker-multi .ui-datepicker-group-middle table {
|
||||
margin-left: 3px !important;
|
||||
}
|
||||
.ui-datepicker-multi .ui-datepicker-buttonpane {
|
||||
border: none;
|
||||
}
|
||||
|
||||
.ui-datepicker-append {
|
||||
margin-left: 6px; color: #999; font-size: 10px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Tabs
|
||||
------------------------------------------------------------------------------------------------------ */
|
||||
|
||||
.ui-tabs {
|
||||
padding: 0; zoom: 1;
|
||||
}
|
||||
.ui-tabs .ui-tabs-nav {
|
||||
padding: 0;
|
||||
color: #444; font-size: 12px;
|
||||
border: none;
|
||||
border-bottom: 1px solid #bdbdbd;
|
||||
border-bottom-left-radius: 0; -moz-border-radius-bottomleft: 0; -webkit-border-bottom-left-radius: 0;
|
||||
/* -moz-border-radius-bottomright: 0;*/
|
||||
background: none;
|
||||
}
|
||||
.ui-tabs .ui-tabs-nav li {
|
||||
position: relative; float: left;
|
||||
border-bottom-width: 1px !important;
|
||||
margin: 0 .2em -1px 0;
|
||||
padding: 0;
|
||||
}
|
||||
.ui-tabs .ui-tabs-nav li a { float: left; text-decoration: none; padding: .5em 1em; }
|
||||
.ui-tabs .ui-tabs-nav li.ui-tabs-selected {
|
||||
padding-bottom: 0px; border-bottom-width: 1px;
|
||||
}
|
||||
.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
|
||||
.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
|
||||
.ui-tabs .ui-tabs-panel {
|
||||
padding: 0;
|
||||
display: block;
|
||||
border: 1px solid #bdbdbd;
|
||||
border-top: 1px solid #fff;
|
||||
border-top-right-radius: 5px; -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px;
|
||||
background: #eee;
|
||||
}
|
||||
.ui-tabs .ui-tabs-hide { display: none !important; }
|
||||
|
||||
|
||||
|
||||
|
||||
/* gAutocomplete
|
||||
------------------------------------------------------------------------------------------------------ */
|
||||
|
||||
.ui-gAutocomplete-wrapper {
|
||||
position: absolute;
|
||||
z-index: 400;
|
||||
}
|
||||
ul.ui-gAutocomplete-results {
|
||||
margin-top: 4px;
|
||||
padding: 5px;
|
||||
border: 1px solid #ddd;
|
||||
border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;
|
||||
box-shadow: 0 0 3px #444; -moz-box-shadow: 0 0 3px #444; -webkit-box-shadow: 0 0 3px #444;
|
||||
background: #fff;
|
||||
}
|
||||
ul.ui-gAutocomplete-results li {
|
||||
padding: 2px 5px;
|
||||
color: #666;
|
||||
cursor: pointer;
|
||||
}
|
||||
ul.ui-gAutocomplete-results li:hover {
|
||||
background: #e1f0f5;
|
||||
}
|
||||
ul.ui-gAutocomplete-results li:first-child {
|
||||
border-top-left-radius: 4px; -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px;
|
||||
border-top-right-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px;
|
||||
}
|
||||
ul.ui-gAutocomplete-results li:last-child {
|
||||
border-bottom-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px;
|
||||
border-bottom-right-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px;
|
||||
}
|
||||
ul.ui-gAutocomplete-results li + li {
|
||||
border-top: 1px solid #eee;
|
||||
}
|
||||
|
||||
ul.ui-gAutocomplete-results li b {
|
||||
margin: 0 1px;
|
||||
color: #444;
|
||||
/* text-decoration: underline;*/
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* gFacelist
|
||||
------------------------------------------------------------------------------------------------------ */
|
||||
|
||||
/*span.ui-gFacelist-message {
|
||||
display: inline-block;
|
||||
height: 25px;
|
||||
background: #fff;
|
||||
margin: 0;
|
||||
padding: 3px 5px 4px;
|
||||
vertical-align: middle;
|
||||
color: #666; font-family: Arial, sans-serif; font-size: 12px; font-weight: bold;
|
||||
border: 1px solid #bbb;
|
||||
border-color: #ccc #ddd #ddd #ccc;
|
||||
border-top-left-radius: 3px; -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px;
|
||||
border-top-right-radius: 3px; -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px;
|
||||
box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;
|
||||
outline: none;
|
||||
}*/
|
||||
|
||||
.ui-gFacelist-toolbar input.ui-gAutocomplete-autocomplete {
|
||||
/* margin-top: 4px;*/
|
||||
/* width: 100px;*/
|
||||
border-bottom-left-radius: 0; -moz-border-radius-bottomleft: 0; -webkit-border-bottom-left-radius: 0;
|
||||
}
|
||||
.ui-gFacelist-toolbar button {
|
||||
border-bottom-right-radius: 0; -moz-border-radius-bottomright: 0; -webkit-border-bottom-right-radius: 0;
|
||||
}
|
||||
|
||||
.ui-gFacelist-toolbar .ui-gAutocomplete-wrapper {
|
||||
margin-top: -4px;
|
||||
}
|
||||
|
||||
ul.ui-gFacelist-facelist {
|
||||
position: relative; float: left; clear: both;
|
||||
padding: 0px 5px 5px;
|
||||
border: 1px solid #bbb;
|
||||
border-color: #ccc #ddd #ddd #ccc;
|
||||
border-top: none;
|
||||
border-bottom-left-radius: 5px; -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px;
|
||||
border-bottom-right-radius: 5px; -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px;
|
||||
box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;
|
||||
background: #fff;
|
||||
|
||||
}
|
||||
li.ui-gFacelist-item {
|
||||
position: relative; float: left;
|
||||
margin-top: 5px; padding: 3px 6px 2px;
|
||||
width: auto;
|
||||
font-weight: bold;
|
||||
border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px;
|
||||
background: #ddd;
|
||||
}
|
||||
li.ui-gFacelist-item {
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
a.ui-gFacelist-item-remove {
|
||||
display: inline-block;
|
||||
margin: 0 0 -3px 0;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
background: transparent 100% 3px no-repeat;
|
||||
}
|
||||
a.ui-gFacelist-item-remove:link, a.ui-gFacelist-item-remove:visited {
|
||||
background-image: url('/media/grappelli/img/icons/icon-tools-delete-handler.png');
|
||||
}
|
||||
a.ui-gFacelist-item-remove:hover, a.ui-gFacelist-item-remove:active {
|
||||
background-image: url('/media/grappelli/img/icons/icon-tools-delete-handler-hover.png');
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* Datepicker Fields in Grid (Normal - 22px)
|
||||
------------------------------------------------------------------------------------------------------ */
|
||||
|
||||
/*.span-24 input.vDateField.hasDatepicker { width: 880px; }
|
||||
.span-23 input.vDateField.hasDatepicker { width: 840px; }
|
||||
.span-22 input.vDateField.hasDatepicker { width: 800px; }
|
||||
.span-21 input.vDateField.hasDatepicker { width: 760px; }
|
||||
.span-20 input.vDateField.hasDatepicker { width: 720px; }
|
||||
.span-19 input.vDateField.hasDatepicker { width: 680px; }
|
||||
.span-18 input.vDateField.hasDatepicker { width: 640px; }
|
||||
.span-17 input.vDateField.hasDatepicker { width: 600px; }
|
||||
.span-16 input.vDateField.hasDatepicker { width: 560px; }
|
||||
.span-15 input.vDateField.hasDatepicker { width: 520px; }
|
||||
.span-14 input.vDateField.hasDatepicker { width: 480px; }
|
||||
.span-13 input.vDateField.hasDatepicker { width: 440px; }
|
||||
.span-12 input.vDateField.hasDatepicker { width: 400px; }
|
||||
.span-11 input.vDateField.hasDatepicker { width: 360px; }
|
||||
.span-10 input.vDateField.hasDatepicker { width: 320px; }
|
||||
.span-9 input.vDateField.hasDatepicker { width: 280px; }
|
||||
.span-8 input.vDateField.hasDatepicker { width: 240px; }
|
||||
.span-7 input.vDateField.hasDatepicker { width: 200px; }
|
||||
.span-6 input.vDateField.hasDatepicker { width: 160px; }
|
||||
.span-5 input.vDateField.hasDatepicker { width: 120px; }
|
||||
.span-4 input.vDateField.hasDatepicker { width: 80px; }
|
||||
|
||||
.form-cell.span-12 label + input.vDateField.hasDatepicker {
|
||||
width: 250px;
|
||||
}
|
||||
.form-cell.span-8 label + input[type=text].vDateField.hasDatepicker {
|
||||
width: 90px;
|
||||
}*/
|
||||
809
3rd_party_apps/grappelli/media/css/forms.css
Executable file
1294
3rd_party_apps/grappelli/media/css/grappelli-skin-basic.css
Executable file
1762
3rd_party_apps/grappelli/media/css/grappelli-skin-default.css
Executable file
596
3rd_party_apps/grappelli/media/css/jquery-ui-grappelli-extensions.css
Executable file
38
3rd_party_apps/grappelli/media/css/reset.css
Executable file
@@ -0,0 +1,38 @@
|
||||
/* --------------------------------------------------------------
|
||||
|
||||
reset.css
|
||||
* Resets default browser CSS.
|
||||
|
||||
-------------------------------------------------------------- */
|
||||
|
||||
html, body, div, span, object, iframe,
|
||||
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
|
||||
a, abbr, acronym, address, code,
|
||||
del, dfn, em, img, q, dl, dt, dd, ol, ul, li,
|
||||
fieldset, form, label, legend,
|
||||
table, caption, tbody, tfoot, thead, tr, th, td {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
font-weight: inherit;
|
||||
font-style: inherit;
|
||||
font-size: 100%;
|
||||
font-family: inherit;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
body {
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
/* Tables still need 'cellspacing="0"' in the markup. */
|
||||
table { border-collapse: separate; border-spacing: 0; }
|
||||
caption, th, td { text-align: left; font-weight: normal; }
|
||||
table, td, th { vertical-align: middle; }
|
||||
|
||||
/* Remove possible quote marks (") from <q>, <blockquote>. */
|
||||
blockquote:before, blockquote:after, q:before, q:after { content: ""; }
|
||||
blockquote, q { quotes: "" ""; }
|
||||
|
||||
/* Remove annoying border on linked images. */
|
||||
a img { border: none; }
|
||||
654
3rd_party_apps/grappelli/media/css/structures.css
Executable file
140
3rd_party_apps/grappelli/media/css/tables.css
Executable file
@@ -0,0 +1,140 @@
|
||||
|
||||
|
||||
|
||||
/* Basic Table Settings
|
||||
------------------------------------------------------------------------------------------------------ */
|
||||
|
||||
table {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border-spacing: none;
|
||||
}
|
||||
td, th {
|
||||
vertical-align: top;
|
||||
padding: 10px 10px 9px;
|
||||
font-size: 11px;
|
||||
line-height: 15px;
|
||||
}
|
||||
th {
|
||||
text-align: left;
|
||||
font-size: 12px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
|
||||
/* Thead ................................................... */
|
||||
|
||||
thead th,
|
||||
tfoot td {
|
||||
padding: 5px 10px;
|
||||
font-size: 11px;
|
||||
line-height: 12px;
|
||||
font-weight: normal;
|
||||
}
|
||||
thead th.sorted {
|
||||
font-weight: bold;
|
||||
}
|
||||
thead th a {
|
||||
position: relative;
|
||||
display: block;
|
||||
margin: -5px -10px -4px;
|
||||
padding: 4px 10px 4px;
|
||||
height: 100% !important;
|
||||
white-space: nowrap;
|
||||
}
|
||||
thead th.ascending a:after {
|
||||
content: url('../img/icons/icon-th-ascending.png');
|
||||
}
|
||||
thead th.descending a:after {
|
||||
content: url('../img/icons/icon-th-descending.png');
|
||||
}
|
||||
|
||||
|
||||
/* Tbody ................................................... */
|
||||
|
||||
thead th.optional {
|
||||
font-weight: normal !important;
|
||||
}
|
||||
tr.row-label td {
|
||||
margin-top: -1px;
|
||||
padding-top: 2px;
|
||||
padding-bottom: 0;
|
||||
font-size: 9px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Table XFull
|
||||
------------------------------------------------------------------------------------------------------ */
|
||||
|
||||
table.xfull {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Changelist Table
|
||||
------------------------------------------------------------------------------------------------------ */
|
||||
|
||||
#changelist table {
|
||||
position: relative;
|
||||
margin: -1px !important;
|
||||
}
|
||||
|
||||
#changelist form table tbody td, #changelist form table tbody th {
|
||||
padding-top: 10px;
|
||||
padding-bottom: 9px;
|
||||
line-height: 16px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Orderable Tables
|
||||
------------------------------------------------------------------------------------------------------ */
|
||||
|
||||
table.orderable tbody tr td:hover {
|
||||
cursor: move;
|
||||
}
|
||||
|
||||
table.orderable tbody tr td:first-child {
|
||||
padding-left: 14px;
|
||||
background-image: url(../img/admin/nav-bg-grabber.gif);
|
||||
background-repeat: repeat-y;
|
||||
}
|
||||
|
||||
table.orderable-initalized .order-cell, body>tr>td.order-cell {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Change History
|
||||
------------------------------------------------------------------------------------------------------ */
|
||||
|
||||
table#change-history {
|
||||
width: 100%;
|
||||
}
|
||||
table#change-history tbody th {
|
||||
width: 150px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Documentation
|
||||
------------------------------------------------------------------------------------------------------ */
|
||||
|
||||
.model-index table {
|
||||
width: 100%;
|
||||
}
|
||||
.model-index table th {
|
||||
padding: 7px 10px 8px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Other Classes
|
||||
------------------------------------------------------------------------------------------------------ */
|
||||
|
||||
table .nowrap {
|
||||
white-space: nowrap;
|
||||
}
|
||||
266
3rd_party_apps/grappelli/media/css/tools.css
Executable file
@@ -0,0 +1,266 @@
|
||||
|
||||
|
||||
|
||||
/* Tools Basics
|
||||
------------------------------------------------------------------------------------------------------ */
|
||||
|
||||
.tools {
|
||||
position: relative;
|
||||
float: right;
|
||||
clear: both;
|
||||
padding: 6px 10px;
|
||||
font-size: 11px;
|
||||
font-weight: bold;
|
||||
}
|
||||
ul.tools {
|
||||
padding: 0;
|
||||
list-style-type: none;
|
||||
white-space: nowrap;
|
||||
}
|
||||
ul.tools:empty {
|
||||
display: none;
|
||||
}
|
||||
ul.tools li {
|
||||
position: relative;
|
||||
float: left;
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
margin-left: 5px;
|
||||
padding: 6px 0;
|
||||
min-width: 12px;
|
||||
}
|
||||
ul.tools li:last-child {
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* H1 + Tools
|
||||
------------------------------------------------------------------------------------------------------ */
|
||||
|
||||
h1 + .tools,
|
||||
.grappelli-h1 + .tools {
|
||||
position: relative;
|
||||
float: right;
|
||||
clear: right;
|
||||
z-index: 900;
|
||||
margin-top: -34px;
|
||||
margin-bottom: -34px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
h1 + .tools li,
|
||||
h1 + .tools li:last-child {
|
||||
float: left;
|
||||
margin: 0 0 0 3px;
|
||||
padding: 0;
|
||||
}
|
||||
h1 + .tools a {
|
||||
display: block;
|
||||
margin: 0;
|
||||
padding: 4px 15px;
|
||||
width: auto;
|
||||
height: 17px;
|
||||
font-size: 11px;
|
||||
opacity: .6;
|
||||
}
|
||||
h1 + .tools a:hover, h1 + .tools a:active {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
h1 + .tools a.add-handler:link, h1 + .tools a.add-handler:visited {
|
||||
padding-left: 30px;
|
||||
background: url('../img/icons/icon-object-tools-add-handler.png') 0 50% no-repeat scroll;
|
||||
}
|
||||
h1 + .tools a.add-handler:hover, h1 + .tools a.add-handler:active {
|
||||
background: url('../img/icons/icon-object-tools-add-handler.png') 0 50% no-repeat scroll;
|
||||
}
|
||||
|
||||
|
||||
/* Focused Buttons ................................................... */
|
||||
|
||||
h1 + .tools a.focus {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/* Tools
|
||||
------------------------------------------------------------------------------------------------------ */
|
||||
|
||||
.group .tools,
|
||||
.module .tools {
|
||||
position: relative;
|
||||
float: right;
|
||||
clear: both;
|
||||
padding: 6px 10px;
|
||||
font-size: 11px;
|
||||
font-weight: bold;
|
||||
}
|
||||
.group ul.tools,
|
||||
.module ul.tools {
|
||||
padding: 0 2px;
|
||||
list-style-type: none;
|
||||
}
|
||||
.group ul.tools li,
|
||||
.module ul.tools li {
|
||||
position: relative;
|
||||
float: left;
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
margin-left: 5px;
|
||||
padding: 6px 2px;
|
||||
}
|
||||
.group ul.tools li:last-child,
|
||||
.module ul.tools li:last-child {
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
|
||||
/* 1st Level H2 + Tools ......................................... */
|
||||
|
||||
.group h2+.tools,
|
||||
.module h2+.tools {
|
||||
top: -29px;
|
||||
right: 0;
|
||||
margin-bottom: -29px;
|
||||
}
|
||||
.group h2+.tools {
|
||||
right: 1px;
|
||||
}
|
||||
.module.collapse.closed h2+.tools {
|
||||
top: -28px;
|
||||
}
|
||||
|
||||
|
||||
/* 2nd Level H3 + Tools ......................................... */
|
||||
|
||||
.module h3+.tools {
|
||||
top: -27px;
|
||||
right: 0;
|
||||
margin-bottom: -27px;
|
||||
}
|
||||
.module h3+ul.tools li {
|
||||
padding-top: 5px;
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
|
||||
|
||||
/* 3rd Level H4 + Tools ......................................... */
|
||||
|
||||
.module h4+.tools {
|
||||
top: -24px;
|
||||
right: 0;
|
||||
margin-bottom: -24px;
|
||||
}
|
||||
.module h4+ul.tools li {
|
||||
padding-top: 3px;
|
||||
padding-bottom: 4px;
|
||||
}
|
||||
|
||||
|
||||
/* Tools in Tabular Groups ......................................... */
|
||||
|
||||
.module.table .th .tools,
|
||||
.module.table .td .tools {
|
||||
top: -5px;
|
||||
right: -20px;
|
||||
margin-left: -20px;
|
||||
margin-bottom: -15px;
|
||||
}
|
||||
.module.table .th .tools li,
|
||||
.module.table .td .tools li {
|
||||
padding-top: 10px;
|
||||
padding-bottom: 9px;
|
||||
}
|
||||
|
||||
|
||||
/* Links ................................................... */
|
||||
|
||||
.tools a {
|
||||
position: relative;
|
||||
display: block;
|
||||
margin: -6px 0;
|
||||
padding: 6px 0px;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-position: 50% 50%;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
.tools a.icon {
|
||||
margin: -6px 0;
|
||||
padding: 6px 0px;
|
||||
width: 12px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.module.table .th .tools a,
|
||||
.module.table .td .tools a {
|
||||
margin: -9px 0;
|
||||
padding: 9px 0px;
|
||||
}
|
||||
.module.table .th .tools a.icon,
|
||||
.module.table .td .tools a.icon {
|
||||
margin: -9px 0;
|
||||
padding: 9px 0px;
|
||||
}
|
||||
|
||||
|
||||
/* Icons ................................................... */
|
||||
|
||||
.tools a.drag-handler:link, .tools a.drag-handler:visited {
|
||||
background-image: url('../img/icons/icon-tools-drag-handler.png');
|
||||
}
|
||||
.tools a.drag-handler:hover, .tools a.drag-handler:active {
|
||||
background-image: url('../img/icons/icon-tools-drag-handler-hover.png');
|
||||
}
|
||||
.predelete-items a.drag-handler, .predelete-item a.drag-handler {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.tools a.viewsite-link:link, .tools a.viewsite-link:visited {
|
||||
background-image: url('../img/icons/icon-tools-viewsite-link.png');
|
||||
opacity: .4;
|
||||
}
|
||||
.tools a.viewsite-link:hover, .tools a.viewsite-link:active {
|
||||
background-image: url('../img/icons/icon-tools-viewsite-link-hover.png');
|
||||
}
|
||||
|
||||
.tools a.delete-handler:link, .tools a.delete-handler:visited,
|
||||
.predelete .tools a.delete-handler:hover, .predelete .tools a.delete-handler:active {
|
||||
background-image: url('../img/icons/icon-tools-delete-handler.png');
|
||||
}
|
||||
.tools a.delete-handler:hover, .tools a.delete-handler:active,
|
||||
.predelete .tools a.delete-handler:link, .predelete .tools a.delete-handler:visited {
|
||||
background-image: url('../img/icons/icon-tools-delete-handler-hover.png');
|
||||
}
|
||||
|
||||
.tools a.remove-handler:link, .tools a.remove-handler:visited {
|
||||
background-image: url('../img/icons/icon-tools-remove-handler.png');
|
||||
}
|
||||
.tools a.remove-handler:hover, .tools a.remove-handler:active {
|
||||
background-image: url('../img/icons/icon-tools-remove-handler-hover.png');
|
||||
}
|
||||
|
||||
.tools a.add-handler:link, .tools a.add-handler:visited {
|
||||
background-image: url('../img/icons/icon-tools-add-handler.png');
|
||||
}
|
||||
.tools a.add-handler:hover, .tools a.add-handler:active {
|
||||
background-image: url('../img/icons/icon-tools-add-handler-hover.png');
|
||||
}
|
||||
|
||||
.tools a.open-handler:link, .tools a.open-handler:visited {
|
||||
background-image: url('../img/icons/icon-tools-open-handler.png');
|
||||
}
|
||||
.tools a.open-handler:hover, .tools a.open-handler:active {
|
||||
background-image: url('../img/icons/icon-tools-open-handler-hover.png');
|
||||
}
|
||||
|
||||
.tools a.close-handler:link, .tools a.close-handler:visited {
|
||||
background-image: url('../img/icons/icon-tools-close-handler.png');
|
||||
}
|
||||
.tools a.close-handler:hover, .tools a.close-handler:active {
|
||||
background-image: url('../img/icons/icon-tools-close-handler-hover.png');
|
||||
}
|
||||
268
3rd_party_apps/grappelli/media/css/typography.css
Executable file
@@ -0,0 +1,268 @@
|
||||
|
||||
/* typography.css:
|
||||
2009 / vonautomatisch werkstaetten / vonautomatisch.at
|
||||
------------------------------------------------------------------------------------------------------ */
|
||||
|
||||
|
||||
|
||||
/* Headings
|
||||
------------------------------------------------------------------------------------------------------ */
|
||||
|
||||
h1, h2, h3, h4 {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
h1 {
|
||||
position: relative;
|
||||
z-index: 800;
|
||||
margin: 26px 0 10px;
|
||||
font-size: 16px;
|
||||
line-height: 20px;
|
||||
}
|
||||
.pretitle + h1 {
|
||||
margin-top: 0;
|
||||
}
|
||||
h2 {
|
||||
font-size: 13px;
|
||||
}
|
||||
h3 {
|
||||
font-size: 12px;
|
||||
}
|
||||
h4, h5 {
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Paragraphs
|
||||
------------------------------------------------------------------------------------------------------ */
|
||||
|
||||
.module p.help,
|
||||
p.help {
|
||||
padding: 5px 0;
|
||||
font-size: 10px !important;
|
||||
line-height: 12px;
|
||||
}
|
||||
|
||||
p.readonly {
|
||||
margin: 0 !important;
|
||||
padding: 3px 0 !important;
|
||||
color: #666;
|
||||
font-size: 12px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.fb_show + p.help a {
|
||||
display: inline-block;
|
||||
padding: 3px;
|
||||
font-size: 0;
|
||||
line-height: 0;
|
||||
}
|
||||
.fb_show + p.help a img {
|
||||
margin: 0;
|
||||
font-size: 0;
|
||||
line-height: 0;
|
||||
}
|
||||
.container-grid > p:first-child, .container-flexible > p:first-child,
|
||||
.container-grid .column > p:first-child, .container-flexible .column > p:first-child {
|
||||
margin: 0 0 10px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Links
|
||||
------------------------------------------------------------------------------------------------------ */
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
outline: none;
|
||||
cursor: pointer;
|
||||
}
|
||||
a.back {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Listings
|
||||
------------------------------------------------------------------------------------------------------ */
|
||||
|
||||
ul, li {
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Blockquote, Pre, Code
|
||||
------------------------------------------------------------------------------------------------------ */
|
||||
|
||||
blockquote {
|
||||
margin-left: 2px;
|
||||
padding-left: 4px;
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
code, pre {
|
||||
font-size: 11px;
|
||||
font-family: "Bitstream Vera Sans Mono", Monaco, "Courier New", Courier, monospace;
|
||||
}
|
||||
|
||||
pre.literal-block {
|
||||
margin: 10px;
|
||||
padding: 6px 8px;
|
||||
}
|
||||
|
||||
hr {
|
||||
clear: both;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
height: 1px;
|
||||
font-size: 1px;
|
||||
line-height: 1px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Table Typography
|
||||
------------------------------------------------------------------------------------------------------ */
|
||||
|
||||
th.focus,
|
||||
td.focus {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* RTE (Rich Text Edited)
|
||||
------------------------------------------------------------------------------------------------------ */
|
||||
|
||||
.rte h2.subhead {
|
||||
margin: 0;
|
||||
font-size: 12px;
|
||||
}
|
||||
.rte h3 {
|
||||
margin: 10px -10px 10px;
|
||||
padding: 7px 10px 6px;
|
||||
font-size: 12px !important;
|
||||
}
|
||||
.rte h2 + h3 {
|
||||
margin-top: -11px !important;
|
||||
}
|
||||
.rte h4 {
|
||||
margin: 10px 0 0;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.rte p {
|
||||
margin: 10px 0;
|
||||
}
|
||||
.rte .module p {
|
||||
margin: 10px 0;
|
||||
padding: 0 10px;
|
||||
}
|
||||
.rte > p:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.rte .group h2 + p,
|
||||
.rte .module h2 + p {
|
||||
margin: 5px 0;
|
||||
padding: 0 10px;
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
.rte table p {
|
||||
margin: 0 !important;
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
/* Workaround for problem reported in django-ticket #11817 */
|
||||
.rte h2 p,
|
||||
.rte h4 p {
|
||||
margin: 0 !important;
|
||||
padding: 0 !important;
|
||||
font-weight: normal;
|
||||
}
|
||||
.rte h2 p {
|
||||
font-weight: bold !important;
|
||||
}
|
||||
.rte h4:empty,
|
||||
.rte p:empty,
|
||||
.rte hr,
|
||||
.rte br:first-child {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.rte ul, .rte ol {
|
||||
margin: 10px 0 0 20px;
|
||||
padding: 0 0 0 10px;
|
||||
font-weight: normal !important;
|
||||
}
|
||||
ul.rte ul, ul.rte ol,
|
||||
ol.rte ul, ol.rte ol {
|
||||
margin: 0 0 0 20px;
|
||||
font-size: 12px;
|
||||
line-height: 14px;
|
||||
}
|
||||
.rte ul li, .rte ol li {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.rte ul li {
|
||||
list-style-type: disc;
|
||||
}
|
||||
.rte ol li {
|
||||
list-style-type: decimal;
|
||||
}
|
||||
|
||||
.delete-confirmation ul.rte>li {
|
||||
padding-bottom: 9px;
|
||||
font-weight: bold;
|
||||
}
|
||||
.delete-confirmation ul.rte>li:last-child {
|
||||
padding-bottom: 0;
|
||||
}
|
||||
.delete-confirmation ul.rte>li+li {
|
||||
padding-top: 8px !important;
|
||||
}
|
||||
.delete-confirmation ul.rte>li>ul {
|
||||
margin-top: 2px;
|
||||
}
|
||||
.delete-confirmation ul.rte>li>ul>li {
|
||||
list-style-type: none;
|
||||
margin: 0 0 0 -30px !important;
|
||||
padding: 5px 0;
|
||||
}
|
||||
.delete-confirmation ul.rte>li>ul>li:last-child {
|
||||
padding-bottom: 0;
|
||||
}
|
||||
.delete-confirmation ul.rte>li>ul>li>ul>li {
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
.rte dd ul, .rte dd ol {
|
||||
margin-top: 0;
|
||||
}
|
||||
.rte blockquote {
|
||||
margin: 10px;
|
||||
}
|
||||
.rte dl, .rte dt, .rte dd {
|
||||
margin: 0;
|
||||
}
|
||||
.rte dl {
|
||||
padding: 5px 10px;
|
||||
}
|
||||
.rte dt {
|
||||
font-weight: bold;
|
||||
}
|
||||
.rte dd + dt {
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Other Styles
|
||||
------------------------------------------------------------------------------------------------------ */
|
||||
|
||||
.small { font-size: 10px; }
|
||||
.fw-normal { font-weight: normal; }
|
||||
BIN
3rd_party_apps/grappelli/media/img/admin/arrow-down.gif
Executable file
|
After Width: | Height: | Size: 80 B |
BIN
3rd_party_apps/grappelli/media/img/admin/arrow-up.gif
Executable file
|
After Width: | Height: | Size: 838 B |
BIN
3rd_party_apps/grappelli/media/img/admin/browser-warning-bg.png
Executable file
|
After Width: | Height: | Size: 18 KiB |
BIN
3rd_party_apps/grappelli/media/img/admin/browser-warning-box-bg.png
Executable file
|
After Width: | Height: | Size: 130 B |
BIN
3rd_party_apps/grappelli/media/img/admin/browser-warning-box-bottom.png
Executable file
|
After Width: | Height: | Size: 234 B |
BIN
3rd_party_apps/grappelli/media/img/admin/browser-warning-box-top.png
Executable file
|
After Width: | Height: | Size: 348 B |
BIN
3rd_party_apps/grappelli/media/img/admin/browser_chrome.gif
Executable file
|
After Width: | Height: | Size: 3.7 KiB |
BIN
3rd_party_apps/grappelli/media/img/admin/browser_firefox.gif
Executable file
|
After Width: | Height: | Size: 4.1 KiB |
BIN
3rd_party_apps/grappelli/media/img/admin/browser_safari.gif
Executable file
|
After Width: | Height: | Size: 4.8 KiB |
BIN
3rd_party_apps/grappelli/media/img/admin/browser_title_bg.gif
Executable file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
3rd_party_apps/grappelli/media/img/admin/changelist-bg.gif
Executable file
|
After Width: | Height: | Size: 58 B |
BIN
3rd_party_apps/grappelli/media/img/admin/changelist-bg_rtl.gif
Executable file
|
After Width: | Height: | Size: 75 B |
BIN
3rd_party_apps/grappelli/media/img/admin/chooser-bg.gif
Executable file
|
After Width: | Height: | Size: 199 B |
BIN
3rd_party_apps/grappelli/media/img/admin/chooser_stacked-bg.gif
Executable file
|
After Width: | Height: | Size: 212 B |
BIN
3rd_party_apps/grappelli/media/img/admin/default-bg-reverse.gif
Executable file
|
After Width: | Height: | Size: 843 B |
BIN
3rd_party_apps/grappelli/media/img/admin/default-bg.gif
Executable file
|
After Width: | Height: | Size: 844 B |
BIN
3rd_party_apps/grappelli/media/img/admin/deleted-overlay.gif
Executable file
|
After Width: | Height: | Size: 45 B |
BIN
3rd_party_apps/grappelli/media/img/admin/icon-no.gif
Executable file
|
After Width: | Height: | Size: 176 B |
BIN
3rd_party_apps/grappelli/media/img/admin/icon-unknown.gif
Executable file
|
After Width: | Height: | Size: 130 B |
BIN
3rd_party_apps/grappelli/media/img/admin/icon-yes.gif
Executable file
|
After Width: | Height: | Size: 299 B |
BIN
3rd_party_apps/grappelli/media/img/admin/icon_addlink.gif
Executable file
|
After Width: | Height: | Size: 119 B |
BIN
3rd_party_apps/grappelli/media/img/admin/icon_alert.gif
Executable file
|
After Width: | Height: | Size: 145 B |
BIN
3rd_party_apps/grappelli/media/img/admin/icon_calendar.gif
Executable file
|
After Width: | Height: | Size: 192 B |
BIN
3rd_party_apps/grappelli/media/img/admin/icon_changelink.gif
Executable file
|
After Width: | Height: | Size: 119 B |
BIN
3rd_party_apps/grappelli/media/img/admin/icon_clock.gif
Executable file
|
After Width: | Height: | Size: 390 B |
BIN
3rd_party_apps/grappelli/media/img/admin/icon_deletelink.gif
Executable file
|
After Width: | Height: | Size: 181 B |
BIN
3rd_party_apps/grappelli/media/img/admin/icon_error.gif
Executable file
|
After Width: | Height: | Size: 319 B |
BIN
3rd_party_apps/grappelli/media/img/admin/icon_searchbox.png
Executable file
|
After Width: | Height: | Size: 667 B |
BIN
3rd_party_apps/grappelli/media/img/admin/icon_success.gif
Executable file
|
After Width: | Height: | Size: 341 B |
BIN
3rd_party_apps/grappelli/media/img/admin/inline-delete-8bit.png
Executable file
|
After Width: | Height: | Size: 477 B |
BIN
3rd_party_apps/grappelli/media/img/admin/inline-delete.png
Executable file
|
After Width: | Height: | Size: 781 B |
BIN
3rd_party_apps/grappelli/media/img/admin/inline-restore-8bit.png
Executable file
|
After Width: | Height: | Size: 447 B |
BIN
3rd_party_apps/grappelli/media/img/admin/inline-restore.png
Executable file
|
After Width: | Height: | Size: 623 B |
BIN
3rd_party_apps/grappelli/media/img/admin/inline-splitter-bg.gif
Executable file
|
After Width: | Height: | Size: 102 B |
BIN
3rd_party_apps/grappelli/media/img/admin/nav-bg-grabber.gif
Executable file
|
After Width: | Height: | Size: 116 B |
BIN
3rd_party_apps/grappelli/media/img/admin/nav-bg-reverse.gif
Executable file
|
After Width: | Height: | Size: 186 B |
BIN
3rd_party_apps/grappelli/media/img/admin/nav-bg.gif
Executable file
|
After Width: | Height: | Size: 273 B |
BIN
3rd_party_apps/grappelli/media/img/admin/selector-add.gif
Executable file
|
After Width: | Height: | Size: 606 B |
BIN
3rd_party_apps/grappelli/media/img/admin/selector-addall.gif
Executable file
|
After Width: | Height: | Size: 358 B |
BIN
3rd_party_apps/grappelli/media/img/admin/selector-remove.gif
Executable file
|
After Width: | Height: | Size: 398 B |
BIN
3rd_party_apps/grappelli/media/img/admin/selector-removeall.gif
Executable file
|
After Width: | Height: | Size: 355 B |
BIN
3rd_party_apps/grappelli/media/img/admin/selector-search.gif
Executable file
|
After Width: | Height: | Size: 552 B |
BIN
3rd_party_apps/grappelli/media/img/admin/selector_stacked-add.gif
Executable file
|
After Width: | Height: | Size: 612 B |
BIN
3rd_party_apps/grappelli/media/img/admin/selector_stacked-remove.gif
Executable file
|
After Width: | Height: | Size: 401 B |
BIN
3rd_party_apps/grappelli/media/img/admin/tool-left.gif
Executable file
|
After Width: | Height: | Size: 197 B |
BIN
3rd_party_apps/grappelli/media/img/admin/tool-left_over.gif
Executable file
|
After Width: | Height: | Size: 203 B |
BIN
3rd_party_apps/grappelli/media/img/admin/tool-right.gif
Executable file
|
After Width: | Height: | Size: 198 B |
BIN
3rd_party_apps/grappelli/media/img/admin/tool-right_over.gif
Executable file
|
After Width: | Height: | Size: 200 B |
BIN
3rd_party_apps/grappelli/media/img/admin/tooltag-add.gif
Executable file
|
After Width: | Height: | Size: 932 B |
BIN
3rd_party_apps/grappelli/media/img/admin/tooltag-add_over.gif
Executable file
|
After Width: | Height: | Size: 336 B |
BIN
3rd_party_apps/grappelli/media/img/admin/tooltag-arrowright.gif
Executable file
|
After Width: | Height: | Size: 351 B |
BIN
3rd_party_apps/grappelli/media/img/admin/tooltag-arrowright_over.gif
Executable file
|
After Width: | Height: | Size: 354 B |
BIN
3rd_party_apps/grappelli/media/img/backgrounds/changelist-results.png
Executable file
|
After Width: | Height: | Size: 244 B |
BIN
3rd_party_apps/grappelli/media/img/backgrounds/tooltip-pointer.png
Executable file
|
After Width: | Height: | Size: 302 B |
BIN
3rd_party_apps/grappelli/media/img/backgrounds/ui-sortable-placeholder.png
Executable file
|
After Width: | Height: | Size: 259 B |
BIN
3rd_party_apps/grappelli/media/img/grappelli-icon.png
Executable file
|
After Width: | Height: | Size: 423 B |
BIN
3rd_party_apps/grappelli/media/img/icons/icon-actionlist_addlink-hover.png
Executable file
|
After Width: | Height: | Size: 152 B |
BIN
3rd_party_apps/grappelli/media/img/icons/icon-actionlist_addlink.png
Executable file
|
After Width: | Height: | Size: 152 B |
BIN
3rd_party_apps/grappelli/media/img/icons/icon-actionlist_changelink-hover.png
Executable file
|
After Width: | Height: | Size: 131 B |
BIN
3rd_party_apps/grappelli/media/img/icons/icon-actionlist_changelink.png
Executable file
|
After Width: | Height: | Size: 132 B |
BIN
3rd_party_apps/grappelli/media/img/icons/icon-actionlist_deletelink.png
Executable file
|
After Width: | Height: | Size: 137 B |
BIN
3rd_party_apps/grappelli/media/img/icons/icon-actions-add-link-hover.png
Executable file
|
After Width: | Height: | Size: 152 B |
BIN
3rd_party_apps/grappelli/media/img/icons/icon-actions-add-link.png
Executable file
|
After Width: | Height: | Size: 152 B |
BIN
3rd_party_apps/grappelli/media/img/icons/icon-actions-change-link-hover.png
Executable file
|
After Width: | Height: | Size: 131 B |
BIN
3rd_party_apps/grappelli/media/img/icons/icon-actions-change-link.png
Executable file
|
After Width: | Height: | Size: 132 B |
BIN
3rd_party_apps/grappelli/media/img/icons/icon-actions-delete-link.png
Executable file
|
After Width: | Height: | Size: 137 B |
BIN
3rd_party_apps/grappelli/media/img/icons/icon-actions_changelist.png
Executable file
|
After Width: | Height: | Size: 369 B |
BIN
3rd_party_apps/grappelli/media/img/icons/icon-add_another-hover.png
Executable file
|
After Width: | Height: | Size: 165 B |
BIN
3rd_party_apps/grappelli/media/img/icons/icon-add_another.png
Executable file
|
After Width: | Height: | Size: 166 B |
BIN
3rd_party_apps/grappelli/media/img/icons/icon-addlink-hover.png
Executable file
|
After Width: | Height: | Size: 165 B |
BIN
3rd_party_apps/grappelli/media/img/icons/icon-addlink.png
Executable file
|
After Width: | Height: | Size: 166 B |
|
After Width: | Height: | Size: 152 B |
BIN
3rd_party_apps/grappelli/media/img/icons/icon-admin_tools-dropdown-active.png
Executable file
|
After Width: | Height: | Size: 150 B |
BIN
3rd_party_apps/grappelli/media/img/icons/icon-admin_tools-dropdown-hover.png
Executable file
|
After Width: | Height: | Size: 150 B |
BIN
3rd_party_apps/grappelli/media/img/icons/icon-admin_tools-dropdown.png
Executable file
|
After Width: | Height: | Size: 165 B |
BIN
3rd_party_apps/grappelli/media/img/icons/icon-bookmark_add-hover.png
Executable file
|
After Width: | Height: | Size: 171 B |
BIN
3rd_party_apps/grappelli/media/img/icons/icon-bookmark_add-inactive.png
Executable file
|
After Width: | Height: | Size: 171 B |
BIN
3rd_party_apps/grappelli/media/img/icons/icon-bookmark_add.png
Executable file
|
After Width: | Height: | Size: 171 B |
BIN
3rd_party_apps/grappelli/media/img/icons/icon-bookmark_manage-hover.png
Executable file
|
After Width: | Height: | Size: 2.9 KiB |
BIN
3rd_party_apps/grappelli/media/img/icons/icon-bookmark_manage.png
Executable file
|
After Width: | Height: | Size: 2.9 KiB |
BIN
3rd_party_apps/grappelli/media/img/icons/icon-bookmark_remove-hover.png
Executable file
|
After Width: | Height: | Size: 143 B |
BIN
3rd_party_apps/grappelli/media/img/icons/icon-bookmark_remove-inactive.png
Executable file
|
After Width: | Height: | Size: 214 B |