From 112dcbb877302993fd68b85f00a5c965229cf4a6 Mon Sep 17 00:00:00 2001 From: Ivan Kovalkovskyi Date: Fri, 25 Sep 2015 17:17:11 +0300 Subject: [PATCH 01/12] delete LinkedIn and Google+ login buttons --- templates/client/popups/login.html | 2 -- templates/client/popups/register.html | 2 -- 2 files changed, 4 deletions(-) diff --git a/templates/client/popups/login.html b/templates/client/popups/login.html index 12ff1fbf..000c6c8d 100644 --- a/templates/client/popups/login.html +++ b/templates/client/popups/login.html @@ -36,8 +36,6 @@ - Все переводчики + {% trans 'Все переводчики' %} diff --git a/templates/client/accounts/translators/translators_by.html b/templates/client/accounts/translators/translators_by.html index e3586b48..48576f3a 100644 --- a/templates/client/accounts/translators/translators_by.html +++ b/templates/client/accounts/translators/translators_by.html @@ -4,7 +4,7 @@ {% block bread_scrumbs %} {% endblock %} diff --git a/templates/client/base_catalog.html b/templates/client/base_catalog.html index 46746b57..6582dc3e 100644 --- a/templates/client/base_catalog.html +++ b/templates/client/base_catalog.html @@ -1,4 +1,4 @@ -{% extends 'blank.html' %} +{% extends 'client/blank.html' %} {% load static %} {% load i18n %} diff --git a/templates/client/base_page.html b/templates/client/base_page.html new file mode 100644 index 00000000..a76f1c26 --- /dev/null +++ b/templates/client/base_page.html @@ -0,0 +1,113 @@ +{% extends 'blank.html' %} + +{% load static %} +{% load i18n %} +{% load template_filters %} + + +{% block main_part %} +
+
+ + +
+ {% with search_form=search_form %} + {% include 'client/includes/catalog_search.html' %} + {% endwith %} + {% block under_search_baner %} + {% include 'client/includes/banners/under_search.html' %} + {% endblock %} + + {% block bread_scrumbs %} + + {% endblock %} + +
+ {% block page_title %} + + {% endblock %} +
+ + {% block page_filter %} + {% endblock %} + + {% block page_body %} +
+ {% block content_list %} + {% endblock %} + + {% block paginator %} + + + {% endblock %} + + {% block content_footer_banner %} + {% endblock %} +
+ + {% block content_text %} + {% comment %} + {% with filter=filter %} + {% include 'includes/event_list_description.html' %} + {% endwith %} + {% endcomment %} + + {% endblock %} + {% endblock %} +
+
+
+{% endblock %} diff --git a/templates/client/blank.html b/templates/client/blank.html index 00219448..9d78fc79 100644 --- a/templates/client/blank.html +++ b/templates/client/blank.html @@ -21,7 +21,7 @@ This template include basic anf main styles and js files, - {% include 'includes/meta.html' %} + {% include 'client/includes/meta.html' %} @@ -45,6 +45,9 @@ This template include basic anf main styles and js files, + {% block head_scripts %} + + {% endblock %} {% if request.GET.debug == '1' %} {% else %} @@ -77,17 +80,21 @@ This template include basic anf main styles and js files, socialInputMask:['http://','https://'] }); + + + + + - - - @@ -136,76 +143,9 @@ This template include basic anf main styles and js files, {% endif %} {% include 'client/popups/callback.html' %} + {% include 'client/includes/banners/popup.html' %} + {% include 'client/includes/banners/popup_2.html' %} {% block popup_banner %} - {% if not request.COOKIES.popover_test1 %} - {% if theme_for_filter %} - - {% if theme_for_filter.id == 54 or theme_for_filter.id == 26 or theme_for_filter.id == 22 or theme_for_filter.id == 15 or theme_for_filter.id == 44 or theme_for_filter.id == 30 %} - {% with r=False|random3 %} - {% if r == 1 %} - {% include 'client/popups/cemat_modal.html' %} - {% else %} - {% if r == 2 %} - {% include 'client/popups/cemat_banner1.html' %} - {% else %} - {% include 'client/popups/cemat_banner2.html' %} - {% endif %} - {% endif %} - {% endwith %} - {% endif %} - - {% if theme_for_filter.id == 32 %} - {% with r=False|random3 %} - {% if r == 1 %} - {% include 'client/popups/cemat_modal.html' %} - {% endif %} - {% if r == 2 %} - {% include 'client/popups/cemat_banner1.html' %} - {% endif %} - {% if r == 0 %} - {% include 'client/popups/cemat_banner2.html' %} - {% endif %} - {% endwith %} - {% endif %} - - - - - {% endif %} - {% endif %} {% endblock %} {# if user doesnt have url- show form #} {% if 'partial_pipeline' not in request.session %} @@ -236,5 +176,16 @@ This template include basic anf main styles and js files, {% endif %} + + + + diff --git a/templates/client/expobanners/banner_stat.html b/templates/client/expobanners/banner_stat.html index da8af1c1..036d7e69 100644 --- a/templates/client/expobanners/banner_stat.html +++ b/templates/client/expobanners/banner_stat.html @@ -1,8 +1,37 @@ {% extends 'base_catalog.html' %} +{% load i18n %} + +{% block styles %} + +{% endblock %} {% block page_title %}
-

{{ object }}. Статистика

+

{{ object }}. {% trans 'Статистика' %}

{% endblock %} @@ -31,7 +60,7 @@ {% endif %}
- +
@@ -41,11 +70,11 @@ - - - - - + + + + + diff --git a/templates/client/expobanners/paid_stat.html b/templates/client/expobanners/paid_stat.html index ba695d71..4a393274 100644 --- a/templates/client/expobanners/paid_stat.html +++ b/templates/client/expobanners/paid_stat.html @@ -1,8 +1,37 @@ -{% extends 'base_catalog.html' %} +{% extends 'client/base_catalog.html' %} +{% load i18n %} + +{% block styles %} + +{% endblock %} {% block page_title %}
-

{{ object.get_event }}. Статистика

+

{{ object.get_event }}. {% trans 'Статистика' %}

{% endblock %} @@ -31,7 +60,7 @@ {% endif %}
- +
@@ -41,11 +70,11 @@
ДатаПоказыКликиУникальные показыУникальные клики{% trans 'Дата' %}{% trans 'Показы' %}{% trans 'Клики' %}{% trans 'Уникальные показы' %}{% trans 'Уникальные клики' %}
- - - - - + + + + + diff --git a/templates/client/exposition/exposition_detail.html b/templates/client/exposition/exposition_detail.html index 3910dd18..4750c1c4 100644 --- a/templates/client/exposition/exposition_detail.html +++ b/templates/client/exposition/exposition_detail.html @@ -1,4 +1,4 @@ -{% extends 'base_catalog.html' %} +{% extends 'client/base_catalog.html' %} {% load i18n %} {% load template_filters %} @@ -26,73 +26,4 @@ {% block paginator %} -{% endblock %} - -{% block popup%} - -{% if not request.COOKIES.popover_test1 %} - - {% with theme_ids=object.theme_ids %} - {% if 32 in theme_ids %} - {% with r=False|random3 %} - {% if r == 0 %} - {% include 'client/popups/cemat_modal.html' %} - {% endif %} - {% if r == 1 %} - {% include 'client/popups/cemat_banner1.html' %} - {% endif %} - {% if r == 2 %} - {% include 'client/popups/cemat_banner2.html' %} - {% endif %} - {% endwith %} - {% else %} - {% if 54 in theme_ids or 26 in theme_ids or 22 in theme_ids or 15 in theme_ids or 44 in theme_ids or 30 in theme_ids %} - {% with r=False|random3 %} - {% if r == 1 %} - {% include 'client/popups/cemat_modal.html' %} - {% else %} - {% if r == 2 %} - {% include 'client/popups/cemat_banner1.html' %} - {% else %} - {% include 'client/popups/cemat_banner2.html' %} - {% endif %} - {% endif %} - {% endwith %} - - {% endif %} - {% endif %} - {% endwith %} - -{% endif %} - -{% endblock %} +{% endblock %} \ No newline at end of file diff --git a/templates/client/exposition/exposition_price.html b/templates/client/exposition/exposition_price.html new file mode 100644 index 00000000..6e341365 --- /dev/null +++ b/templates/client/exposition/exposition_price.html @@ -0,0 +1,219 @@ +{% extends 'base_catalog.html' %} +{% load static %} +{% load i18n %} +{% load template_filters %} + + +{% block content_list %} + +{% block content_text %} +{% block page_body %} +
+
+ + +
+
+
+ {% if object_list.0.main_title %} + {{ object_list.0.main_title|safe }} + {% else %} + {{ object_list.0.name|safe }} + {% endif %} +
+
+ +
+ {% with obj=object_list.0 %} + {% include 'client/includes/show_date_block.html' %} + {% endwith %} +
+ {% if object_list.0.place %} +
+
+
+ {{ object_list.0.place.address.address }} +
+ +
+ + +
+ {% endif %} + + +
+
+
+
{% trans 'Стоимость посещения и участия' %}
+
+ +
+
+ +
+
{% trans 'Для посещения' %}
+ +
{% trans 'Стоимость билетов' %}
+ +
+ +
    + {% if object_list.0.price_day %} +
  • +
    {{ object_list.0.price_day }} €
    +
    {% trans 'на 1 день' %}
    +
  • + {% endif %} + {% if object_list.0.price_all %} +
  • +
    {{ object_list.0.price_all }} €
    +
    {% trans 'на все дни' %}
    +
  • + {% endif %} + +
+ +
{% trans 'Предварительная регистрация' %}
+ +
+ +
+ +
    + {% if object_list.0.price_day_bar %} +
  • +
    {{ object_list.0.price_day_bar }} €
    + +
    на 1 день
    +
  • + {% endif %} + {% if object_list.0.price_all_bar %} +
  • +
    {{ object_list.0.price_all_bar }} €
    +
    {% trans 'на все дни' %}
    +
  • + {% endif %} + +
+ +
{% trans 'Регистрация на' %} {% trans 'стойке' %}
+ +
+ +
+ +
+
{% trans 'Выставка открыта для' %}:
+
    + {{ object_list.0.get_audience }} + +
+
+
+ +
+ +
+
{% trans 'Для участия' %}
+ +
{% trans 'Стоимость аренды 1м²' %}
+ +
    + {% if object_list.0.max_closed_equipped_area %} +
  • + +
    {{ object_list.0.max_closed_equipped_area }} €
    +
    {% trans 'оборудованная площадь' %}
    +
  • + {% endif %} + + {% if object_list.0.max_closed_area %} +
  • +
    {{ object_list.0.max_closed_area }} €
    +
    {% trans 'необорудованная площадь' %}
    +
  • + {% endif %} + + {% if object_list.0.max_open_area %} +
  • +
    {{ object_list.0.max_open_area }} €
    +
    {% trans 'открытая площадь' %}
    +
  • + {% endif %} + +
+ + {% trans 'Заявка на участие' %} + +
+ {% if object_list.0.min_stand_size %} +

{% trans 'Минимальный размер стенда' %} — {{ object_list.0.min_stand_size }}м²

+ {% endif %} + {% if object_list.0.registration_payment %} +

{% trans 'Регистрационный взнос' %} — {{ object_list.0.registration_payment }}€

+ {% endif %} + {% if object_list.0.application_deadline %} +

{% trans 'Крайний срок подачи заявки' %} — {{ object_list.0.application_deadline }}

+ {% endif %} + +
+ +
+
+
+ +
+
+ +
+ + +
+ +
+{% endblock %} +{% endblock %} +{% endblock %} diff --git a/templates/client/exposition/exposition_programm.html b/templates/client/exposition/exposition_programm.html index 41a296bf..777847f6 100644 --- a/templates/client/exposition/exposition_programm.html +++ b/templates/client/exposition/exposition_programm.html @@ -32,7 +32,7 @@
{% if object_list.0.discount %} - Скидка -{{ object_list.0.discount }}% + {% trans 'Скидка' %} -{{ object_list.0.discount }}%
{{ object_list.0.discount_description|safe }}
{% endif %}
@@ -95,7 +95,7 @@
{{ pr.name }}
- {{ pr.programe|safe }}Организатор: {{ pr.speaker }} + {{ pr.programe|safe }}{% trans 'Организатор' %}: {{ pr.speaker }}
{{ pr.place }}
diff --git a/templates/client/gulpfile.js b/templates/client/gulpfile.js index e3b6b790..a745901b 100644 --- a/templates/client/gulpfile.js +++ b/templates/client/gulpfile.js @@ -1,81 +1,81 @@ -var gulp = require('gulp'), - uglify = require('gulp-uglify'), - concat = require('gulp-concat'), - rename = require("gulp-rename"), - autoprefixer = require('gulp-autoprefixer'), - cssmin = require('gulp-cssmin'), - newer = require('gulp-newer'); - -gulp.task('make-vendor-js', function () { - gulp.src([ - 'static_client/js/plugins.js', - 'static_client/js/plugins/select2.min.js', - 'static_client/js/plugins/select2_locale_ru.js', - 'static_client/js/jquery.ui.datepicker-ru.js', - 'static_client/js/jquery.mousewheel.min.js', - 'static_client/js/idangerous.swiper-2.4.min.js', - 'static_client/js/jquery.mCustomScrollbar.concat.min.js', - 'static_client/lib/fancybox/jquery.fancybox.js', - 'static_client/js/jquery.placeholder.js', - 'static_client/js/jquery.phototag.js', - 'static_client/js/dna.min.js', - 'static_client/js/main.js', - 'static_client/js/scripts.js', - 'static_client/js/Base64.js' - ]) - .pipe(concat('vendor.js')) - .pipe(gulp.dest('static_client/js/')) - .pipe(uglify()) - .pipe(rename('vendor.min.js')) - .pipe(gulp.dest('static_client/js_min/')) - -}); -gulp.task('make-vendor-css', function () { - gulp.src([ - 'static_client/css/normalize.min.css', - 'static_client/css/idangerous.swiper.css', - 'static_client/css/jquery.mCustomScrollbar.min.css', - 'static_client/css/jquery-ui-1.10.3.custom.css', - 'static_client/css/jquery.mousewheel.min.js', - 'static_client/lib/fancybox/jquery.fancybox.css', - 'static_client/css/phototag.css', - 'static_client/css/regions.css', - 'static_client/css/select2.css' - ]) - .pipe(concat('vendor.css')) - .pipe(gulp.dest('static_client/css/')) - .pipe(cssmin()) - .pipe(rename('vendor.min.css')) - .pipe(gulp.dest('static_client/css_min/')) - -}); -gulp.task('main-css', function () { - gulp.src('static_client/css/main.css') - .pipe(newer('static_client/css_min/')) - .pipe(autoprefixer({ - browsers:['> 1%', 'Opera > 11', 'Explorer >= 8', 'Firefox >20', 'Chrome > 20'] - })) - .pipe(gulp.dest('static_client/css/')) - .pipe(cssmin()) - .pipe(rename('main.min.css')) - .pipe(gulp.dest('static_client/css_min/')) - -}); -gulp.task('minify-modules', function () { - gulp.src('static_client/js/_modules/*.js') - .pipe(newer('static_client/js_min/_modules')) - .pipe(uglify()) - .pipe(rename({extname: ".min.js"})) - .pipe(gulp.dest('static_client/js_min/_modules')) - -}); -gulp.task('production',['make-vendor-js','make-vendor-css','main-css','minify-modules']); -gulp.task('watch-js', function () { - gulp.watch("static_client/js/_modules/*.js", ["minify-modules"]); -}); -gulp.task('watch-css', function () { - gulp.watch("static_client/css/main.css", ["main-css"]); -}); -gulp.task('watch-workflow', function () { - gulp.watch(["static_client/css/main.css","static_client/js/_modules/*.js"], ["main-css","minify-modules"]); -}); +var gulp = require('gulp'), + uglify = require('gulp-uglify'), + concat = require('gulp-concat'), + rename = require("gulp-rename"), + autoprefixer = require('gulp-autoprefixer'), + cssmin = require('gulp-cssmin'), + newer = require('gulp-newer'); + +gulp.task('make-vendor-js', function () { + gulp.src([ + 'static_client/js/plugins.js', + 'static_client/js/plugins/select2.min.js', + 'static_client/js/plugins/select2_locale_ru.js', + 'static_client/js/jquery.ui.datepicker-ru.js', + 'static_client/js/jquery.mousewheel.min.js', + 'static_client/js/idangerous.swiper-2.4.min.js', + 'static_client/js/jquery.mCustomScrollbar.concat.min.js', + 'static_client/lib/fancybox/jquery.fancybox.js', + 'static_client/js/jquery.placeholder.js', + 'static_client/js/jquery.phototag.js', + 'static_client/js/dna.min.js', + 'static_client/js/main.js', + 'static_client/js/scripts.js', + 'static_client/js/Base64.js' + ]) + .pipe(concat('vendor.js')) + .pipe(gulp.dest('static_client/js/')) + .pipe(uglify()) + .pipe(rename('vendor.min.js')) + .pipe(gulp.dest('static_client/js_min/')) + +}); +gulp.task('make-vendor-css', function () { + gulp.src([ + 'static_client/css/normalize.min.css', + 'static_client/css/idangerous.swiper.css', + 'static_client/css/jquery.mCustomScrollbar.min.css', + 'static_client/css/jquery-ui-1.10.3.custom.css', + 'static_client/css/jquery.mousewheel.min.js', + 'static_client/lib/fancybox/jquery.fancybox.css', + 'static_client/css/phototag.css', + 'static_client/css/regions.css', + 'static_client/css/select2.css' + ]) + .pipe(concat('vendor.css')) + .pipe(gulp.dest('static_client/css/')) + .pipe(cssmin()) + .pipe(rename('vendor.min.css')) + .pipe(gulp.dest('static_client/css_min/')) + +}); +gulp.task('main-css', function () { + gulp.src('static_client/css/main.css') + .pipe(newer('static_client/css_min/')) + .pipe(autoprefixer({ + browsers:['> 1%', 'Opera > 11', 'Explorer >= 8', 'Firefox >20', 'Chrome > 20'] + })) + .pipe(gulp.dest('static_client/css/')) + .pipe(cssmin()) + .pipe(rename('main.min.css')) + .pipe(gulp.dest('static_client/css_min/')) + +}); +gulp.task('minify-modules', function () { + gulp.src('static_client/js/_modules/*.js') + .pipe(newer('static_client/js_min/_modules')) + .pipe(uglify()) + .pipe(rename({extname: ".min.js"})) + .pipe(gulp.dest('static_client/js_min/_modules')) + +}); +gulp.task('production',['make-vendor-js','make-vendor-css','main-css','minify-modules']); +gulp.task('watch-js', function () { + gulp.watch("static_client/js/_modules/*.js", ["minify-modules"]); +}); +gulp.task('watch-css', function () { + gulp.watch("static_client/css/main.css", ["main-css"]); +}); +gulp.task('watch-workflow', function () { + gulp.watch(["static_client/css/main.css","static_client/js/_modules/*.js"], ["main-css","minify-modules"]); +}); diff --git a/templates/client/includes/accounts/calendar_list.html b/templates/client/includes/accounts/calendar_list.html index f27fa55c..ce36cf5d 100644 --- a/templates/client/includes/accounts/calendar_list.html +++ b/templates/client/includes/accounts/calendar_list.html @@ -38,7 +38,7 @@
- +
diff --git a/templates/client/includes/article/blog_list.html b/templates/client/includes/article/blog_list.html index 0c70bd85..afd7969d 100644 --- a/templates/client/includes/article/blog_list.html +++ b/templates/client/includes/article/blog_list.html @@ -14,7 +14,7 @@ {% include 'client/includes/banners/catalog_inner_2.html' %} {% endif %} - {% if forloop.counter == 8 %} + {% if forloop.counter == 10 %} {% include 'client/includes/banners/catalog_inner.html' %} {%endif %} {% endfor %} diff --git a/templates/client/includes/article/news_list.html b/templates/client/includes/article/news_list.html index b2cc424b..8171901d 100644 --- a/templates/client/includes/article/news_list.html +++ b/templates/client/includes/article/news_list.html @@ -14,7 +14,7 @@ {% include 'client/includes/banners/catalog_inner_2.html' %} {% endif %} - {% if forloop.counter == 8 %} + {% if forloop.counter == 10 %} {% include 'client/includes/banners/catalog_inner.html' %} {%endif %} {% endfor %} diff --git a/templates/client/includes/banners/aside_2.html b/templates/client/includes/banners/aside_2.html index 439bfe68..0c637c72 100644 --- a/templates/client/includes/banners/aside_2.html +++ b/templates/client/includes/banners/aside_2.html @@ -5,17 +5,18 @@ yandex_partner_id = 58151; yandex_site_bg_color = 'FFFFF'; yandex_ad_format = 'direct'; - yandex_font_size = 1; - yandex_direct_type = 'vertical'; - yandex_direct_limit = 3; + yandex_direct_type = 'posterVertical'; + yandex_direct_border_type = 'ad'; + yandex_direct_limit = 2; yandex_direct_title_font_size = 3; yandex_direct_links_underline = false; - yandex_direct_title_color = '666666'; - yandex_direct_url_color = '000000'; + yandex_direct_border_color = 'CCCCCC'; + yandex_direct_title_color = '333333'; + yandex_direct_url_color = '666666'; yandex_direct_text_color = '000000'; yandex_direct_hover_color = 'FF8000'; - yandex_direct_sitelinks_color = 'FF8000'; - yandex_direct_favicon = false; + yandex_direct_sitelinks_color = '333333'; + yandex_direct_favicon = true; yandex_no_sitelinks = false; document.write(''); diff --git a/templates/client/includes/banners/aside_4.html b/templates/client/includes/banners/aside_4.html index 94d6023e..28a2f1c6 100644 --- a/templates/client/includes/banners/aside_4.html +++ b/templates/client/includes/banners/aside_4.html @@ -1,4 +1,13 @@
+ + + +
\ No newline at end of file diff --git a/templates/client/includes/banners/catalog_inner.html b/templates/client/includes/banners/catalog_inner.html index ccf1add4..272f9963 100644 --- a/templates/client/includes/banners/catalog_inner.html +++ b/templates/client/includes/banners/catalog_inner.html @@ -1,26 +1,11 @@ -
- - +
+ + + +
\ No newline at end of file diff --git a/templates/client/includes/banners/catalog_inner_2.html b/templates/client/includes/banners/catalog_inner_2.html index b8ec5c0f..fd12557e 100644 --- a/templates/client/includes/banners/catalog_inner_2.html +++ b/templates/client/includes/banners/catalog_inner_2.html @@ -1,2 +1,23 @@
+ +
\ No newline at end of file diff --git a/templates/client/includes/banners/detail_inner.html b/templates/client/includes/banners/detail_inner.html index 6d0760aa..e28563bd 100644 --- a/templates/client/includes/banners/detail_inner.html +++ b/templates/client/includes/banners/detail_inner.html @@ -1,25 +1,22 @@
+ yandex_partner_id = 58151; + yandex_site_bg_color = 'FFFFF'; + yandex_ad_format = 'direct'; + yandex_direct_type = 'posterHorizontal'; + yandex_direct_border_type = 'block'; + yandex_direct_limit = 3; + yandex_direct_title_font_size = 3; + yandex_direct_border_radius = true; + yandex_direct_links_underline = false; + yandex_direct_border_color = 'FBE5C0'; + yandex_direct_title_color = '333333'; + yandex_direct_url_color = '666666'; + yandex_direct_text_color = '000000'; + yandex_direct_hover_color = 'FF8000'; + yandex_direct_sitelinks_color = '333333'; + yandex_direct_favicon = true; + yandex_no_sitelinks = false; + document.write(''); +
\ No newline at end of file diff --git a/templates/client/includes/banners/expo_list_baner.html b/templates/client/includes/banners/expo_list_baner.html new file mode 100644 index 00000000..eab61fee --- /dev/null +++ b/templates/client/includes/banners/expo_list_baner.html @@ -0,0 +1,6 @@ +{% load static %} +
+ {% if theme_for_filter.id in banner_themes or tag_for_filter.id in banner_tags %} + + {% endif %} +
\ No newline at end of file diff --git a/templates/client/includes/banners/tops.html b/templates/client/includes/banners/tops.html index 142e63a4..f1678855 100644 --- a/templates/client/includes/banners/tops.html +++ b/templates/client/includes/banners/tops.html @@ -1,13 +1,7 @@ +{% load static %} +
- \ No newline at end of file + + \ No newline at end of file diff --git a/templates/client/includes/banners/under_search.html b/templates/client/includes/banners/under_search.html new file mode 100644 index 00000000..8212f939 --- /dev/null +++ b/templates/client/includes/banners/under_search.html @@ -0,0 +1,19 @@ +{% load static %} +{% load template_filters %} + +
+ {% with r=False|random4 %} + {% ifequal r 0 %} + + {% endifequal %} + {% ifequal r 1 %} + + {% endifequal %} + {% ifequal r 2 %} + + {% endifequal %} + {% ifequal r 3 %} + + {% endifequal %} + {% endwith %} +
\ No newline at end of file diff --git a/templates/client/includes/company/company_edit.html b/templates/client/includes/company/company_edit.html index 4c72783a..fe190731 100644 --- a/templates/client/includes/company/company_edit.html +++ b/templates/client/includes/company/company_edit.html @@ -80,9 +80,9 @@
- +
- закрыть + {% trans 'закрыть' %} @@ -101,7 +101,7 @@
{{ name_form.name.value }}
- редактировать + {% trans 'редактировать' %}
{% csrf_token %} @@ -196,11 +196,11 @@
- +
- закрыть + {% trans 'закрыть' %}
diff --git a/templates/client/includes/company/company_list.html b/templates/client/includes/company/company_list.html index 89614691..b0089a78 100644 --- a/templates/client/includes/company/company_list.html +++ b/templates/client/includes/company/company_list.html @@ -64,7 +64,7 @@ {% include 'client/includes/banners/catalog_inner_2.html' %} {% endif %} - {% if forloop.counter == 8 %} + {% if forloop.counter == 10 %} {% include 'client/includes/banners/catalog_inner.html' %} {%endif %} {% endfor %} diff --git a/templates/client/includes/company/company_object.html b/templates/client/includes/company/company_object.html index 57bb11b5..93489d5c 100644 --- a/templates/client/includes/company/company_object.html +++ b/templates/client/includes/company/company_object.html @@ -216,6 +216,7 @@ {% trans 'Все события' %} {% endif %} + {% include 'client/includes/banners/detail_inner_3.html' %} {% if company.get_expositions_number > 0 or company.get_conferences_number > 0 or company.get_seminars_number > 0 %}
{% endif %} diff --git a/templates/client/includes/conference/conference_list.html b/templates/client/includes/conference/conference_list.html index c1d2487f..d3084307 100644 --- a/templates/client/includes/conference/conference_list.html +++ b/templates/client/includes/conference/conference_list.html @@ -96,7 +96,7 @@ {% include 'client/includes/banners/catalog_inner_2.html' %} {% endif %} - {% if forloop.counter == 8 %} + {% if forloop.counter == 10 %} {% include 'client/includes/banners/catalog_inner.html' %} {%endif %} {% endfor %} diff --git a/templates/client/includes/conference/conference_object.html b/templates/client/includes/conference/conference_object.html index 02b61d28..621db3dd 100644 --- a/templates/client/includes/conference/conference_object.html +++ b/templates/client/includes/conference/conference_object.html @@ -135,13 +135,15 @@ {% endwith %} {% endif %} - {% if event.description %}
{% if event.event_type == 'expo' %}{% trans 'О выставке' %}{% else %}{% trans 'О конференции' %}{% endif %} {{ event.name|safe }}
-
{{ event.description|safe|linebreaks }}
+ {% if event.description %} +
{{ event.description|safe|linebreaks }}
+ {% else %} + {% include "client/includes/conference/default_description.html" with conf=event %} + {% endif %}

- {% endif %}
{% trans 'Дополнительная информация' %}
    @@ -332,6 +334,7 @@
{% endif %} + {% include 'client/includes/banners/detail_inner_3.html' %}
{% trans 'Смотрите также:' %}
{% trans "Конференции" %} {% if request.LANGUAGE_CODE == 'ru' and event.city.inflect %}{{ event.city.inflect }}{% else %}{% trans 'in' %} {{ event.city.name }}{% endif %} diff --git a/templates/client/includes/exposition/expo_list_paid.html b/templates/client/includes/exposition/expo_list_paid.html new file mode 100644 index 00000000..6d8e954a --- /dev/null +++ b/templates/client/includes/exposition/expo_list_paid.html @@ -0,0 +1,154 @@ +{% load static %} +{% load i18n %} +{% load template_filters %} +{% with objects=object_list %} + {% if objects %} +
    + + {% for obj in objects %} +
  • +
    + + {% if obj.canceled %} +
    + {% else %} + {% if obj.expohit %} +
    + {% endif %} + {% endif %} +
    + {% with obj=obj %} + {% include 'client/includes/show_logo.html' %} + {% endwith %} +
    +
    +
    +
    + {% if obj.quality_label.ufi.is_set %} +
    + +
    + {% endif %} +
    + +
    +
    + {{ obj.main_title|safe }} +
    +
    +
    +
    + {% with obj=obj %} + {% include 'client/includes/show_date_block.html' %} + {% endwith %} +
    + {% if obj.country %} +
    + {{ obj.country }}, {{ obj.city }} + {% if obj.place %} + , {{ obj.place }} + {% endif %} +
    + {% endif %} +
    +
    +
    +
    + {% include 'client/includes/exposition/services.html' with obj=obj %} + {% include 'client/includes/calendar_button.html' with obj=obj%} +
    + {% with note=obj|note_by_user:request.user %} + {% trans 'заметка' %} +
    +
    + + +
    + {% endwith %} +
    + {% if request.user.is_admin %} + + {% endif %} +
    +
    +
    + {% include 'client/buttons/booking_button.html' with object=obj %} +
    +
    +
    +
    +
    + {% if obj.visitors %} + {{ obj.visitors }} + {% endif %} + {% if obj.members %} + {{ obj.members }} + {% endif %} +
    +
    + {% include 'client/includes/exposition/tags.html' with obj=obj %} +
    +
    +
  • + + {% if forloop.counter == 8 %} + + + {%endif %} + {% endfor %} + +
+ {% else %} +

+ + {% trans "Выставки по указанным параметрам не найдены. Попробуйте задать менее точный запрос по теме или расширить период времени" %} + +

+ {% endif %} + +{% endwith %} + + + +{% block scripts %} +{% if request.GET.debug == '1' %} + +{% else %} + +{% endif %} +{% endblock %} \ No newline at end of file diff --git a/templates/client/includes/exposition/expo_paid.html b/templates/client/includes/exposition/expo_paid.html index 487cca85..0fc07f89 100644 --- a/templates/client/includes/exposition/expo_paid.html +++ b/templates/client/includes/exposition/expo_paid.html @@ -286,7 +286,7 @@ {% if exposition.area %} {% else %} {% if exposition.members or exposition.visitors or exposition.foundation_year %} -

 Статистика

+

 {% trans 'Статистика' %}

{% endif %} {% endif %} {% if exposition.members or exposition.visitors or exposition.foundation_year or exposition.area %} diff --git a/templates/client/includes/exposition/expo_top.html b/templates/client/includes/exposition/expo_top.html index 639c0425..dbe0056e 100644 --- a/templates/client/includes/exposition/expo_top.html +++ b/templates/client/includes/exposition/expo_top.html @@ -5,10 +5,10 @@
    {% for obj in objects %} -
  • +
  • {% endif %}
    - +
    {{ obj.main_title|safe }} diff --git a/templates/client/includes/exposition/exposition_list.html b/templates/client/includes/exposition/exposition_list.html index 6f27536d..5730ceb8 100644 --- a/templates/client/includes/exposition/exposition_list.html +++ b/templates/client/includes/exposition/exposition_list.html @@ -104,7 +104,7 @@ {% include 'client/includes/banners/catalog_inner_2.html' %} {% endif %} - {% if forloop.counter == 8 %} + {% if forloop.counter == 10 %} {% include 'client/includes/banners/catalog_inner.html' %} {%endif %} {% endfor %} diff --git a/templates/client/includes/exposition/exposition_object.html b/templates/client/includes/exposition/exposition_object.html index dc783ff0..a03fae65 100644 --- a/templates/client/includes/exposition/exposition_object.html +++ b/templates/client/includes/exposition/exposition_object.html @@ -67,7 +67,7 @@
- +\1 {% endif %}
@@ -136,15 +136,18 @@
{% endwith %} {% endif %} - {% if exposition.description %}
{% trans 'О выставке' %} {{ exposition.name|safe }}
-
{{ exposition.description|safe|linebreaks }}
+ {% if exposition.description %} +
{{ exposition.description|safe|linebreaks }}
+ {%else %} + {% include "client/includes/exposition/default_description.html" with expo=exposition %} + {% endif %} +

- {% endif %} {% include 'client/includes/banners/expo_detail.html' %} -
+
{% trans 'Дополнительная информация' %}
+ {% include 'client/includes/banners/detail_inner_3.html' %} {% endif %}
{% trans 'Смотрите также:' %}
diff --git a/templates/client/includes/exposition/members.html b/templates/client/includes/exposition/members.html index d0bd4e4a..ee143f72 100644 --- a/templates/client/includes/exposition/members.html +++ b/templates/client/includes/exposition/members.html @@ -53,7 +53,7 @@ {% include 'client/includes/banners/catalog_inner_2.html' %} {% endif %} - {% if forloop.counter == 8 %} + {% if forloop.counter == 10 %} {% include 'client/includes/banners/catalog_inner.html' %} {%endif %} {% endfor %} diff --git a/templates/client/includes/exposition/search_result.html b/templates/client/includes/exposition/search_result.html index 93bc23af..5f791b9d 100644 --- a/templates/client/includes/exposition/search_result.html +++ b/templates/client/includes/exposition/search_result.html @@ -87,7 +87,7 @@ {% include 'client/includes/banners/catalog_inner_2.html' %} {% endif %} - {% if forloop.counter == 8 %} + {% if forloop.counter == 10 %} {% include 'client/includes/banners/catalog_inner.html' %} {%endif %} {% endfor %} diff --git a/templates/client/includes/exposition/visitors.html b/templates/client/includes/exposition/visitors.html index 0958316b..d6254aab 100644 --- a/templates/client/includes/exposition/visitors.html +++ b/templates/client/includes/exposition/visitors.html @@ -55,7 +55,7 @@ {% include 'client/includes/banners/catalog_inner_2.html' %} {% endif %} - {% if forloop.counter == 8 %} + {% if forloop.counter == 10 %} {% include 'client/includes/banners/catalog_inner.html' %} {%endif %} {% endfor %} diff --git a/templates/client/includes/header.html b/templates/client/includes/header.html index 911ea5a4..be5848e3 100644 --- a/templates/client/includes/header.html +++ b/templates/client/includes/header.html @@ -11,14 +11,7 @@
-
- {% if user.is_authenticated %} - {% if user.organiser %} - - {% endif %} - {% endif %} -
{% endif %} + {% include 'client/includes/banners/detail_inner_3.html' %} {% endblock %} {% block scripts %} diff --git a/templates/client/includes/seo_text.html b/templates/client/includes/seo_text.html index 2a29c7eb..9ed0dbf8 100644 --- a/templates/client/includes/seo_text.html +++ b/templates/client/includes/seo_text.html @@ -1,3 +1,3 @@ -
-

{{ object.title }}

{{ object.body|safe }} +
+

{{ object.title }}

{{ object.body|safe }}
\ No newline at end of file diff --git a/templates/client/page/page_view.html b/templates/client/page/page_view.html index d233787f..6b5f9894 100644 --- a/templates/client/page/page_view.html +++ b/templates/client/page/page_view.html @@ -1,19 +1,19 @@ -{% extends 'client/base_catalog.html' %} -{% load static %} -{% load i18n %} - -{% block bread_scrumbs %} -
-{% endblock %} - -{% block page_title %} -

{{ object.h1 }}

-{% endblock %} -{% block page_body %} - - {{ object.body|safe|striptags}} - +{% extends 'client/base_catalog.html' %} +{% load static %} +{% load i18n %} + +{% block bread_scrumbs %} + +{% endblock %} + +{% block page_title %} +

{{ object.h1 }}

+{% endblock %} +{% block page_body %} + + {{ object.body|safe|striptags}} + {% endblock %} \ No newline at end of file diff --git a/templates/client/popups/cemat_modal.html b/templates/client/popups/cemat_modal.html index fb497d72..d6c437d9 100644 --- a/templates/client/popups/cemat_modal.html +++ b/templates/client/popups/cemat_modal.html @@ -16,7 +16,7 @@
- +
diff --git a/templates/client/popups/login.html b/templates/client/popups/login.html index 12ff1fbf..000c6c8d 100644 --- a/templates/client/popups/login.html +++ b/templates/client/popups/login.html @@ -36,8 +36,6 @@
  • -
  • -
  • diff --git a/templates/client/popups/register.html b/templates/client/popups/register.html index 6e4e5204..333ca6b5 100644 --- a/templates/client/popups/register.html +++ b/templates/client/popups/register.html @@ -56,8 +56,6 @@
    • -
    • -
    • diff --git a/templates/client/robots.txt b/templates/client/robots.txt index 13f41eb9..3acbc649 100644 --- a/templates/client/robots.txt +++ b/templates/client/robots.txt @@ -43,6 +43,8 @@ Disallow: /callback/ Disallow: /register/ Disallow: /register-complete/ Disallow: /registration/reply/ +Disallow: /wizard/ +Disallow: /acquire_email/ Disallow: /address_book_process.php Disallow: /account.php Disallow: /account_edit.php @@ -145,6 +147,8 @@ Disallow: /callback/ Disallow: /register/ Disallow: /register-complete/ Disallow: /registration/reply/ +Disallow: /wizard/ +Disallow: /acquire_email/ Disallow: /address_book_process.php Disallow: /account.php Disallow: /account_edit.php @@ -247,6 +251,8 @@ Disallow: /callback/ Disallow: /register/ Disallow: /register-complete/ Disallow: /registration/reply/ +Disallow: /wizard/ +Disallow: /acquire_email/ Disallow: /address_book_process.php Disallow: /account.php Disallow: /account_edit.php diff --git a/templates/client/specialist_catalog/catalog_detailed.html b/templates/client/specialist_catalog/catalog_detailed.html new file mode 100644 index 00000000..d087aca8 --- /dev/null +++ b/templates/client/specialist_catalog/catalog_detailed.html @@ -0,0 +1,337 @@ +{% extends "client/base_catalog.html" %} +{% load static %} +{% load thumbnail %} +{% load i18n %} + + +{% block bread_scrumbs %} + +{% endblock %} + +{% block page_body%} +
      + +
      + +
      + + +
      +
      +
      {{ object.title }}
      +
      + +
      + {{ object.main_descr|safe }} +
      +
      + +
      + +{# #} +
      + {% thumbnail object.place_photo "957x400" crop="center" as im %} + + {% endthumbnail %} +
      + +{# #} +{#
      #} +{# #} +{# #} +{#
      #} +{# #} +{#
      #} +
      + +
      +
      + {% if object.big_cities %} +
      +

      Крупные города:

      + {{ object.big_cities|safe }} +
      + {% endif %} + +
      + +
      +
      +

      Коротко о наших преимуществах:

      +
      + {{ object.benefits|safe }} +
      +
      +
      + +{# ----------------------------------------- FORM ----------------------------------------------#} +
      +
      {% csrf_token %} + +
      + +
      + +
      {% trans 'Информация о переводе' %}
      + +
      + +
      + {{ form.languages }} + +
      + +
      + {{ form.themes }} + + +
      +
      + +
      + +
      + {{ form.days }} {% trans 'дней' %} +
      + +
      + {{ form.hours }} {% trans 'часов в день' %} +
      +
      + +
      + +
      +
      +
      + + {{ form.fr }} +
      + {{ form.fr.errors }} + +
      +
      +
      + + {{ form.to }} +
      + {{ form.to.errors }} + +
      +
      +
      +
      +
      + +
      + +
      + +
      + +
      {% trans 'Ваши контактные данные' %}
      + {% if not object %} +
      +
      + {{ form.event }} +
      + {{ form.event.errors }} + +
      +
      +
      + {% endif %} + +
      +
      + {{ form.person_inf }} +
      + {{ form.person_inf.errors }} + +
      +
      +
      + +
      +
      + {{ form.country }} +
      + {{ form.country.errors }} + +
      +
      + +
      + {{ form.city }} +
      + {{ form.city.errors }} + +
      +
      +
      + +
      +
      + {{ form.phone }} +
      + {{ form.phone.errors }} + +
      +
      + +
      + {{ form.person }} +
      + {{ form.person.errors }} + +
      +
      +
      + +
      + +
      + +
      + +
      +
      +
      + +
      +
      +
      + +
      + + +
      +{# ----------------------------------------- END FORM -------------------------------------------#} + +
      +
      +
      +
      +
      +
      от {{ object.price }} {{ object.currency }} / день
      + +
      +
      +
      +
      +
      + + + + +
      + {% if request.GET.debug == '1' %} + + {% else %} + + {% endif %} + + + + + + {% with object.specialists.all as specialists %} + {% if specialists %} +
      +
      Наши специалисты
      + + + +
      + {% endif %} + {% endwith %} + +
      + {% with object.feedback_set.all as feedbacks %} + {% if feedbacks %} +
      + +
      +
      Отзывы клиентов:
      +
      + {% for feedback in feedbacks %} +
      +
      + +
      + {% thumbnail feedback.logo "100x100" crop="center" as im %} + + {% endthumbnail %} +
      +
      +
      +
      +
      {{ feedback.company }}
      +
      +
      + +
      {{ feedback.name }}
      + +
      + {{ feedback.text }} +
      +
      + +
      +
      + {% endfor %} +
      +
      + +
      + {% endif %} + {% endwith %} + +
      + +{% endblock %} \ No newline at end of file diff --git a/templates/client/static_client/css/jquery.mCustomScrollbar.min.css b/templates/client/static_client/css/jquery.mCustomScrollbar.min.css index e4863f7c..34fbece6 100644 --- a/templates/client/static_client/css/jquery.mCustomScrollbar.min.css +++ b/templates/client/static_client/css/jquery.mCustomScrollbar.min.css @@ -1,1313 +1,1313 @@ -.mCustomScrollbar { - -ms-touch-action: none; - touch-action: none -} - -.mCustomScrollbar.mCS_no_scrollbar { - -ms-touch-action: auto; - touch-action: auto -} - -.mCustomScrollBox { - position: relative; - - height: 100%; - max-width: 100%; - outline: 0; - direction: ltr -} - -.mCSB_container { - width: auto; - height: auto -} - -.mCSB_inside > .mCSB_container { - margin-right: 30px -} - -.mCSB_container.mCS_no_scrollbar_y.mCS_y_hidden { - margin-right: 0 -} - -.mCS-dir-rtl > .mCSB_inside > .mCSB_container { - margin-right: 0; - margin-left: 30px -} - -.mCS-dir-rtl > .mCSB_inside > .mCSB_container.mCS_no_scrollbar_y.mCS_y_hidden { - margin-left: 0 -} - -.mCSB_scrollTools { - position: absolute; - width: 16px; - height: auto; - left: auto; - top: 0; - right: 0; - bottom: 0 -} - -.mCSB_outside + .mCSB_scrollTools { - right: -26px -} - -.mCS-dir-rtl > .mCSB_inside > .mCSB_scrollTools, .mCS-dir-rtl > .mCSB_outside + .mCSB_scrollTools { - right: auto; - left: 0 -} - -.mCS-dir-rtl > .mCSB_outside + .mCSB_scrollTools { - left: -26px -} - -.mCSB_scrollTools .mCSB_draggerContainer { - position: absolute; - top: 0; - left: 0; - bottom: 0; - right: 0; - height: auto -} - -.mCSB_scrollTools a + .mCSB_draggerContainer { - margin: 20px 0 -} - -.mCSB_scrollTools .mCSB_draggerRail { - width: 2px; - height: 100%; - margin: 0 auto; - -webkit-border-radius: 16px; - -moz-border-radius: 16px; - border-radius: 16px -} - -.mCSB_scrollTools .mCSB_dragger { - cursor: pointer; - width: 100%; - height: 30px; - z-index: 1 -} - -.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { - position: relative; - width: 4px; - height: 100%; - margin: 0 auto; - -webkit-border-radius: 16px; - -moz-border-radius: 16px; - border-radius: 16px; - text-align: center -} - -.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar, .mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar { - width: 12px -} - -.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, .mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail { - width: 8px -} - -.mCSB_scrollTools .mCSB_buttonUp, .mCSB_scrollTools .mCSB_buttonDown { - display: block; - position: absolute; - height: 20px; - width: 100%; - overflow: hidden; - margin: 0 auto; - cursor: pointer -} - -.mCSB_scrollTools .mCSB_buttonDown { - bottom: 0 -} - -.mCSB_horizontal.mCSB_inside > .mCSB_container { - margin-right: 0; - margin-bottom: 30px -} - -.mCSB_horizontal.mCSB_outside > .mCSB_container { - min-height: 100% -} - -.mCSB_horizontal > .mCSB_container.mCS_no_scrollbar_x.mCS_x_hidden { - margin-bottom: 0 -} - -.mCSB_scrollTools.mCSB_scrollTools_horizontal { - width: auto; - height: 16px; - top: auto; - right: 0; - bottom: 0; - left: 0 -} - -.mCustomScrollBox + .mCSB_scrollTools.mCSB_scrollTools_horizontal, .mCustomScrollBox + .mCSB_scrollTools + .mCSB_scrollTools.mCSB_scrollTools_horizontal { - bottom: -26px -} - -.mCSB_scrollTools.mCSB_scrollTools_horizontal a + .mCSB_draggerContainer { - margin: 0 20px -} - -.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_draggerRail { - width: 100%; - height: 2px; - margin: 7px 0 -} - -.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_dragger { - width: 30px; - height: 100%; - left: 0 -} - -.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar { - width: 100%; - height: 4px; - margin: 6px auto -} - -.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar, .mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar { - height: 12px; - margin: 2px auto -} - -.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, .mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail { - height: 8px; - margin: 4px 0 -} - -.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonLeft, .mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonRight { - display: block; - position: absolute; - width: 20px; - height: 100%; - overflow: hidden; - margin: 0 auto; - cursor: pointer -} - -.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonLeft { - left: 0 -} - -.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonRight { - right: 0 -} - -.mCSB_container_wrapper { - position: absolute; - height: auto; - width: auto; - overflow: hidden; - top: 0; - left: 0; - right: 0; - bottom: 0; - margin-right: 30px; - margin-bottom: 30px -} - -.mCSB_container_wrapper > .mCSB_container { - padding-right: 30px; - padding-bottom: 30px -} - -.mCSB_vertical_horizontal > .mCSB_scrollTools.mCSB_scrollTools_vertical { - bottom: 20px -} - -.mCSB_vertical_horizontal > .mCSB_scrollTools.mCSB_scrollTools_horizontal { - right: 20px -} - -.mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden + .mCSB_scrollTools.mCSB_scrollTools_vertical { - bottom: 0 -} - -.mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden + .mCSB_scrollTools ~ .mCSB_scrollTools.mCSB_scrollTools_horizontal, .mCS-dir-rtl > .mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside > .mCSB_scrollTools.mCSB_scrollTools_horizontal { - right: 0 -} - -.mCS-dir-rtl > .mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside > .mCSB_scrollTools.mCSB_scrollTools_horizontal { - left: 20px -} - -.mCS-dir-rtl > .mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside > .mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden + .mCSB_scrollTools ~ .mCSB_scrollTools.mCSB_scrollTools_horizontal { - left: 0 -} - -.mCS-dir-rtl > .mCSB_inside > .mCSB_container_wrapper { - margin-right: 0; - margin-left: 30px -} - -.mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden > .mCSB_container { - padding-right: 0; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box -} - -.mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden > .mCSB_container { - padding-bottom: 0; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box -} - -.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside > .mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden { - margin-right: 0; - margin-left: 0 -} - -.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside > .mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden { - margin-bottom: 0 -} - -.mCSB_scrollTools, .mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCSB_scrollTools .mCSB_buttonUp, .mCSB_scrollTools .mCSB_buttonDown, .mCSB_scrollTools .mCSB_buttonLeft, .mCSB_scrollTools .mCSB_buttonRight { - -webkit-transition: opacity .2s ease-in-out, background-color .2s ease-in-out; - -moz-transition: opacity .2s ease-in-out, background-color .2s ease-in-out; - -o-transition: opacity .2s ease-in-out, background-color .2s ease-in-out; - transition: opacity .2s ease-in-out, background-color .2s ease-in-out -} - -.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger_bar, .mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerRail, .mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger_bar, .mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerRail { - -webkit-transition: width .2s ease-out .2s, height .2s ease-out .2s, margin-left .2s ease-out .2s, margin-right .2s ease-out .2s, margin-top .2s ease-out .2s, margin-bottom .2s ease-out .2s, opacity .2s ease-in-out, background-color .2s ease-in-out; - -moz-transition: width .2s ease-out .2s, height .2s ease-out .2s, margin-left .2s ease-out .2s, margin-right .2s ease-out .2s, margin-top .2s ease-out .2s, margin-bottom .2s ease-out .2s, opacity .2s ease-in-out, background-color .2s ease-in-out; - -o-transition: width .2s ease-out .2s, height .2s ease-out .2s, margin-left .2s ease-out .2s, margin-right .2s ease-out .2s, margin-top .2s ease-out .2s, margin-bottom .2s ease-out .2s, opacity .2s ease-in-out, background-color .2s ease-in-out; - transition: width .2s ease-out .2s, height .2s ease-out .2s, margin-left .2s ease-out .2s, margin-right .2s ease-out .2s, margin-top .2s ease-out .2s, margin-bottom .2s ease-out .2s, opacity .2s ease-in-out, background-color .2s ease-in-out -} - -.mCSB_scrollTools { - opacity: .75; - filter: "alpha(opacity=75)"; - -ms-filter: "alpha(opacity=75)" -} - -.mCS-autoHide > .mCustomScrollBox > .mCSB_scrollTools, .mCS-autoHide > .mCustomScrollBox ~ .mCSB_scrollTools { - opacity: 0; - filter: "alpha(opacity=0)"; - -ms-filter: "alpha(opacity=0)" -} - -.mCustomScrollbar > .mCustomScrollBox > .mCSB_scrollTools.mCSB_scrollTools_onDrag, .mCustomScrollbar > .mCustomScrollBox ~ .mCSB_scrollTools.mCSB_scrollTools_onDrag, .mCustomScrollBox:hover > .mCSB_scrollTools, .mCustomScrollBox:hover ~ .mCSB_scrollTools, .mCS-autoHide:hover > .mCustomScrollBox > .mCSB_scrollTools, .mCS-autoHide:hover > .mCustomScrollBox ~ .mCSB_scrollTools { - opacity: 1; - filter: "alpha(opacity=100)"; - -ms-filter: "alpha(opacity=100)" -} - -.mCSB_scrollTools .mCSB_draggerRail { - background-color: #000; - background-color: rgba(0, 0, 0, 0.4); - filter: "alpha(opacity=40)"; - -ms-filter: "alpha(opacity=40)" -} - -.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { - background-color: #fff; - background-color: rgba(255, 255, 255, 0.75); - filter: "alpha(opacity=75)"; - -ms-filter: "alpha(opacity=75)" -} - -.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar { - background-color: #fff; - background-color: rgba(255, 255, 255, 0.85); - filter: "alpha(opacity=85)"; - -ms-filter: "alpha(opacity=85)" -} - -.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar { - background-color: #fff; - background-color: rgba(255, 255, 255, 0.9); - filter: "alpha(opacity=90)"; - -ms-filter: "alpha(opacity=90)" -} - -.mCSB_scrollTools .mCSB_buttonUp, .mCSB_scrollTools .mCSB_buttonDown, .mCSB_scrollTools .mCSB_buttonLeft, .mCSB_scrollTools .mCSB_buttonRight { - background-image: url(mCSB_buttons.png); - background-repeat: no-repeat; - opacity: .4; - filter: "alpha(opacity=40)"; - -ms-filter: "alpha(opacity=40)" -} - -.mCSB_scrollTools .mCSB_buttonUp { - background-position: 0 0 -} - -.mCSB_scrollTools .mCSB_buttonDown { - background-position: 0 -20px -} - -.mCSB_scrollTools .mCSB_buttonLeft { - background-position: 0 -40px -} - -.mCSB_scrollTools .mCSB_buttonRight { - background-position: 0 -56px -} - -.mCSB_scrollTools .mCSB_buttonUp:hover, .mCSB_scrollTools .mCSB_buttonDown:hover, .mCSB_scrollTools .mCSB_buttonLeft:hover, .mCSB_scrollTools .mCSB_buttonRight:hover { - opacity: .75; - filter: "alpha(opacity=75)"; - -ms-filter: "alpha(opacity=75)" -} - -.mCSB_scrollTools .mCSB_buttonUp:active, .mCSB_scrollTools .mCSB_buttonDown:active, .mCSB_scrollTools .mCSB_buttonLeft:active, .mCSB_scrollTools .mCSB_buttonRight:active { - opacity: .9; - filter: "alpha(opacity=90)"; - -ms-filter: "alpha(opacity=90)" -} - -.mCS-dark.mCSB_scrollTools .mCSB_draggerRail { - background-color: #000; - background-color: rgba(0, 0, 0, 0.15) -} - -.mCS-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { - background-color: #000; - background-color: rgba(0, 0, 0, 0.75) -} - -.mCS-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar { - background-color: rgba(0, 0, 0, 0.85) -} - -.mCS-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar { - background-color: rgba(0, 0, 0, 0.9) -} - -.mCS-dark.mCSB_scrollTools .mCSB_buttonUp { - background-position: -80px 0 -} - -.mCS-dark.mCSB_scrollTools .mCSB_buttonDown { - background-position: -80px -20px -} - -.mCS-dark.mCSB_scrollTools .mCSB_buttonLeft { - background-position: -80px -40px -} - -.mCS-dark.mCSB_scrollTools .mCSB_buttonRight { - background-position: -80px -56px -} - -.mCS-light-2.mCSB_scrollTools .mCSB_draggerRail, .mCS-dark-2.mCSB_scrollTools .mCSB_draggerRail { - width: 4px; - background-color: #fff; - background-color: rgba(255, 255, 255, 0.1); - -webkit-border-radius: 1px; - -moz-border-radius: 1px; - border-radius: 1px -} - -.mCS-light-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-dark-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { - width: 4px; - background-color: #fff; - background-color: rgba(255, 255, 255, 0.75); - -webkit-border-radius: 1px; - -moz-border-radius: 1px; - border-radius: 1px -} - -.mCS-light-2.mCSB_scrollTools_horizontal .mCSB_draggerRail, .mCS-dark-2.mCSB_scrollTools_horizontal .mCSB_draggerRail, .mCS-light-2.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-dark-2.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar { - width: 100%; - height: 4px; - margin: 6px auto -} - -.mCS-light-2.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar { - background-color: #fff; - background-color: rgba(255, 255, 255, 0.85) -} - -.mCS-light-2.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-light-2.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar { - background-color: #fff; - background-color: rgba(255, 255, 255, 0.9) -} - -.mCS-light-2.mCSB_scrollTools .mCSB_buttonUp { - background-position: -32px 0 -} - -.mCS-light-2.mCSB_scrollTools .mCSB_buttonDown { - background-position: -32px -20px -} - -.mCS-light-2.mCSB_scrollTools .mCSB_buttonLeft { - background-position: -40px -40px -} - -.mCS-light-2.mCSB_scrollTools .mCSB_buttonRight { - background-position: -40px -56px -} - -.mCS-dark-2.mCSB_scrollTools .mCSB_draggerRail { - background-color: #000; - background-color: rgba(0, 0, 0, 0.1); - -webkit-border-radius: 1px; - -moz-border-radius: 1px; - border-radius: 1px -} - -.mCS-dark-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { - background-color: #000; - background-color: rgba(0, 0, 0, 0.75); - -webkit-border-radius: 1px; - -moz-border-radius: 1px; - border-radius: 1px -} - -.mCS-dark-2.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar { - background-color: #000; - background-color: rgba(0, 0, 0, 0.85) -} - -.mCS-dark-2.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-dark-2.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar { - background-color: #000; - background-color: rgba(0, 0, 0, 0.9) -} - -.mCS-dark-2.mCSB_scrollTools .mCSB_buttonUp { - background-position: -112px 0 -} - -.mCS-dark-2.mCSB_scrollTools .mCSB_buttonDown { - background-position: -112px -20px -} - -.mCS-dark-2.mCSB_scrollTools .mCSB_buttonLeft { - background-position: -120px -40px -} - -.mCS-dark-2.mCSB_scrollTools .mCSB_buttonRight { - background-position: -120px -56px -} - -.mCS-light-thick.mCSB_scrollTools .mCSB_draggerRail, .mCS-dark-thick.mCSB_scrollTools .mCSB_draggerRail { - width: 4px; - background-color: #fff; - background-color: rgba(255, 255, 255, 0.1); - -webkit-border-radius: 2px; - -moz-border-radius: 2px; - border-radius: 2px -} - -.mCS-light-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-dark-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { - width: 6px; - background-color: #fff; - background-color: rgba(255, 255, 255, 0.75); - -webkit-border-radius: 2px; - -moz-border-radius: 2px; - border-radius: 2px -} - -.mCS-light-thick.mCSB_scrollTools_horizontal .mCSB_draggerRail, .mCS-dark-thick.mCSB_scrollTools_horizontal .mCSB_draggerRail { - width: 100%; - height: 4px; - margin: 6px 0 -} - -.mCS-light-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-dark-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar { - width: 100%; - height: 6px; - margin: 5px auto -} - -.mCS-light-thick.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar { - background-color: #fff; - background-color: rgba(255, 255, 255, 0.85) -} - -.mCS-light-thick.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-light-thick.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar { - background-color: #fff; - background-color: rgba(255, 255, 255, 0.9) -} - -.mCS-light-thick.mCSB_scrollTools .mCSB_buttonUp { - background-position: -16px 0 -} - -.mCS-light-thick.mCSB_scrollTools .mCSB_buttonDown { - background-position: -16px -20px -} - -.mCS-light-thick.mCSB_scrollTools .mCSB_buttonLeft { - background-position: -20px -40px -} - -.mCS-light-thick.mCSB_scrollTools .mCSB_buttonRight { - background-position: -20px -56px -} - -.mCS-dark-thick.mCSB_scrollTools .mCSB_draggerRail { - background-color: #000; - background-color: rgba(0, 0, 0, 0.1); - -webkit-border-radius: 2px; - -moz-border-radius: 2px; - border-radius: 2px -} - -.mCS-dark-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { - background-color: #000; - background-color: rgba(0, 0, 0, 0.75); - -webkit-border-radius: 2px; - -moz-border-radius: 2px; - border-radius: 2px -} - -.mCS-dark-thick.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar { - background-color: #000; - background-color: rgba(0, 0, 0, 0.85) -} - -.mCS-dark-thick.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-dark-thick.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar { - background-color: #000; - background-color: rgba(0, 0, 0, 0.9) -} - -.mCS-dark-thick.mCSB_scrollTools .mCSB_buttonUp { - background-position: -96px 0 -} - -.mCS-dark-thick.mCSB_scrollTools .mCSB_buttonDown { - background-position: -96px -20px -} - -.mCS-dark-thick.mCSB_scrollTools .mCSB_buttonLeft { - background-position: -100px -40px -} - -.mCS-dark-thick.mCSB_scrollTools .mCSB_buttonRight { - background-position: -100px -56px -} - -.mCS-light-thin.mCSB_scrollTools .mCSB_draggerRail { - background-color: #fff; - background-color: rgba(255, 255, 255, 0.1) -} - -.mCS-light-thin.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-dark-thin.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { - width: 2px -} - -.mCS-light-thin.mCSB_scrollTools_horizontal .mCSB_draggerRail, .mCS-dark-thin.mCSB_scrollTools_horizontal .mCSB_draggerRail { - width: 100% -} - -.mCS-light-thin.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-dark-thin.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar { - width: 100%; - height: 2px; - margin: 7px auto -} - -.mCS-dark-thin.mCSB_scrollTools .mCSB_draggerRail { - background-color: #000; - background-color: rgba(0, 0, 0, 0.15) -} - -.mCS-dark-thin.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { - background-color: #000; - background-color: rgba(0, 0, 0, 0.75) -} - -.mCS-dark-thin.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar { - background-color: #000; - background-color: rgba(0, 0, 0, 0.85) -} - -.mCS-dark-thin.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-dark-thin.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar { - background-color: #000; - background-color: rgba(0, 0, 0, 0.9) -} - -.mCS-dark-thin.mCSB_scrollTools .mCSB_buttonUp { - background-position: -80px 0 -} - -.mCS-dark-thin.mCSB_scrollTools .mCSB_buttonDown { - background-position: -80px -20px -} - -.mCS-dark-thin.mCSB_scrollTools .mCSB_buttonLeft { - background-position: -80px -40px -} - -.mCS-dark-thin.mCSB_scrollTools .mCSB_buttonRight { - background-position: -80px -56px -} - -.mCS-rounded.mCSB_scrollTools .mCSB_draggerRail { - background-color: #fff; - background-color: rgba(255, 255, 255, 0.15) -} - -.mCS-rounded.mCSB_scrollTools .mCSB_dragger, .mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger, .mCS-rounded-dots.mCSB_scrollTools .mCSB_dragger, .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger { - height: 14px -} - -.mCS-rounded.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-rounded-dots.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { - width: 14px; - margin: 0 1px -} - -.mCS-rounded.mCSB_scrollTools_horizontal .mCSB_dragger, .mCS-rounded-dark.mCSB_scrollTools_horizontal .mCSB_dragger, .mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_dragger, .mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_dragger { - width: 14px -} - -.mCS-rounded.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-rounded-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar { - height: 14px; - margin: 1px 0 -} - -.mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar, .mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar, .mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar, .mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar { - width: 16px; - height: 16px; - margin: -1px 0 -} - -.mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, .mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail, .mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, .mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail { - width: 4px -} - -.mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar, .mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar, .mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar, .mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar { - height: 16px; - width: 16px; - margin: 0 -1px -} - -.mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, .mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail, .mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, .mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail { - height: 4px; - margin: 6px 0 -} - -.mCS-rounded.mCSB_scrollTools .mCSB_buttonUp { - background-position: 0 -72px -} - -.mCS-rounded.mCSB_scrollTools .mCSB_buttonDown { - background-position: 0 -92px -} - -.mCS-rounded.mCSB_scrollTools .mCSB_buttonLeft { - background-position: 0 -112px -} - -.mCS-rounded.mCSB_scrollTools .mCSB_buttonRight { - background-position: 0 -128px -} - -.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { - background-color: #000; - background-color: rgba(0, 0, 0, 0.75) -} - -.mCS-rounded-dark.mCSB_scrollTools .mCSB_draggerRail { - background-color: #000; - background-color: rgba(0, 0, 0, 0.15) -} - -.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar, .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar { - background-color: #000; - background-color: rgba(0, 0, 0, 0.85) -} - -.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar, .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar { - background-color: #000; - background-color: rgba(0, 0, 0, 0.9) -} - -.mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonUp { - background-position: -80px -72px -} - -.mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonDown { - background-position: -80px -92px -} - -.mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonLeft { - background-position: -80px -112px -} - -.mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonRight { - background-position: -80px -128px -} - -.mCS-rounded-dots.mCSB_scrollTools_vertical .mCSB_draggerRail, .mCS-rounded-dots-dark.mCSB_scrollTools_vertical .mCSB_draggerRail { - width: 4px -} - -.mCS-rounded-dots.mCSB_scrollTools .mCSB_draggerRail, .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_draggerRail, .mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_draggerRail, .mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail { - background-color: transparent; - background-position: center -} - -.mCS-rounded-dots.mCSB_scrollTools .mCSB_draggerRail, .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_draggerRail { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAANElEQVQYV2NkIAAYiVbw//9/Y6DiM1ANJoyMjGdBbLgJQAX/kU0DKgDLkaQAvxW4HEvQFwCRcxIJK1XznAAAAABJRU5ErkJggg=="); - background-repeat: repeat-y; - opacity: .3; - filter: "alpha(opacity=30)"; - -ms-filter: "alpha(opacity=30)" -} - -.mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_draggerRail, .mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail { - height: 4px; - margin: 6px 0; - background-repeat: repeat-x -} - -.mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonUp { - background-position: -16px -72px -} - -.mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonDown { - background-position: -16px -92px -} - -.mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonLeft { - background-position: -20px -112px -} - -.mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonRight { - background-position: -20px -128px -} - -.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_draggerRail { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAALElEQVQYV2NkIAAYSVFgDFR8BqrBBEifBbGRTfiPZhpYjiQFBK3A6l6CvgAAE9kGCd1mvgEAAAAASUVORK5CYII=") -} - -.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonUp { - background-position: -96px -72px -} - -.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonDown { - background-position: -96px -92px -} - -.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonLeft { - background-position: -100px -112px -} - -.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonRight { - background-position: -100px -128px -} - -.mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { - background-repeat: repeat-y; - background-image: -moz-linear-gradient(left, rgba(255, 255, 255, 0.5) 0, rgba(255, 255, 255, 0) 100%); - background-image: -webkit-gradient(linear, left top, right top, color-stop(0, rgba(255, 255, 255, 0.5)), color-stop(100%, rgba(255, 255, 255, 0))); - background-image: -webkit-linear-gradient(left, rgba(255, 255, 255, 0.5) 0, rgba(255, 255, 255, 0) 100%); - background-image: -o-linear-gradient(left, rgba(255, 255, 255, 0.5) 0, rgba(255, 255, 255, 0) 100%); - background-image: -ms-linear-gradient(left, rgba(255, 255, 255, 0.5) 0, rgba(255, 255, 255, 0) 100%); - background-image: linear-gradient(to right, rgba(255, 255, 255, 0.5) 0, rgba(255, 255, 255, 0) 100%) -} - -.mCS-3d.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-thick-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar { - background-repeat: repeat-x; - background-image: -moz-linear-gradient(top, rgba(255, 255, 255, 0.5) 0, rgba(255, 255, 255, 0) 100%); - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, rgba(255, 255, 255, 0.5)), color-stop(100%, rgba(255, 255, 255, 0))); - background-image: -webkit-linear-gradient(top, rgba(255, 255, 255, 0.5) 0, rgba(255, 255, 255, 0) 100%); - background-image: -o-linear-gradient(top, rgba(255, 255, 255, 0.5) 0, rgba(255, 255, 255, 0) 100%); - background-image: -ms-linear-gradient(top, rgba(255, 255, 255, 0.5) 0, rgba(255, 255, 255, 0) 100%); - background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.5) 0, rgba(255, 255, 255, 0) 100%) -} - -.mCS-3d.mCSB_scrollTools_vertical .mCSB_dragger, .mCS-3d-dark.mCSB_scrollTools_vertical .mCSB_dragger { - height: 70px -} - -.mCS-3d.mCSB_scrollTools_horizontal .mCSB_dragger, .mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_dragger { - width: 70px -} - -.mCS-3d.mCSB_scrollTools, .mCS-3d-dark.mCSB_scrollTools { - opacity: 1; - filter: "alpha(opacity=30)"; - -ms-filter: "alpha(opacity=30)" -} - -.mCS-3d.mCSB_scrollTools .mCSB_draggerRail, .mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-dark.mCSB_scrollTools .mCSB_draggerRail, .mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { - -webkit-border-radius: 16px; - -moz-border-radius: 16px; - border-radius: 16px -} - -.mCS-3d.mCSB_scrollTools .mCSB_draggerRail, .mCS-3d-dark.mCSB_scrollTools .mCSB_draggerRail { - width: 8px; - background-color: #000; - background-color: rgba(0, 0, 0, 0.2); - box-shadow: inset 1px 0 1px rgba(0, 0, 0, 0.5), inset -1px 0 1px rgba(255, 255, 255, 0.2) -} - -.mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-3d.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar, .mCS-3d.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-3d.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar, .mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar, .mCS-3d-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-3d-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar { - background-color: #555 -} - -.mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { - width: 8px -} - -.mCS-3d.mCSB_scrollTools_horizontal .mCSB_draggerRail, .mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail { - width: 100%; - height: 8px; - margin: 4px 0; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.5), inset 0 -1px 1px rgba(255, 255, 255, 0.2) -} - -.mCS-3d.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar { - width: 100%; - height: 8px; - margin: 4px auto -} - -.mCS-3d.mCSB_scrollTools .mCSB_buttonUp { - background-position: -32px -72px -} - -.mCS-3d.mCSB_scrollTools .mCSB_buttonDown { - background-position: -32px -92px -} - -.mCS-3d.mCSB_scrollTools .mCSB_buttonLeft { - background-position: -40px -112px -} - -.mCS-3d.mCSB_scrollTools .mCSB_buttonRight { - background-position: -40px -128px -} - -.mCS-3d-dark.mCSB_scrollTools .mCSB_draggerRail { - background-color: #000; - background-color: rgba(0, 0, 0, 0.1); - box-shadow: inset 1px 0 1px rgba(0, 0, 0, 0.1) -} - -.mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail { - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.1) -} - -.mCS-3d-dark.mCSB_scrollTools .mCSB_buttonUp { - background-position: -112px -72px -} - -.mCS-3d-dark.mCSB_scrollTools .mCSB_buttonDown { - background-position: -112px -92px -} - -.mCS-3d-dark.mCSB_scrollTools .mCSB_buttonLeft { - background-position: -120px -112px -} - -.mCS-3d-dark.mCSB_scrollTools .mCSB_buttonRight { - background-position: -120px -128px -} - -.mCS-3d-thick.mCSB_scrollTools, .mCS-3d-thick-dark.mCSB_scrollTools { - opacity: 1; - filter: "alpha(opacity=30)"; - -ms-filter: "alpha(opacity=30)" -} - -.mCS-3d-thick.mCSB_scrollTools, .mCS-3d-thick-dark.mCSB_scrollTools, .mCS-3d-thick.mCSB_scrollTools .mCSB_draggerContainer, .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_draggerContainer { - -webkit-border-radius: 7px; - -moz-border-radius: 7px; - border-radius: 7px -} - -.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px -} - -.mCSB_inside + .mCS-3d-thick.mCSB_scrollTools_vertical, .mCSB_inside + .mCS-3d-thick-dark.mCSB_scrollTools_vertical { - right: 1px -} - -.mCS-3d-thick.mCSB_scrollTools_vertical, .mCS-3d-thick-dark.mCSB_scrollTools_vertical { - box-shadow: inset 1px 0 1px rgba(0, 0, 0, 0.1), inset 0 0 14px rgba(0, 0, 0, 0.5) -} - -.mCS-3d-thick.mCSB_scrollTools_horizontal, .mCS-3d-thick-dark.mCSB_scrollTools_horizontal { - bottom: 1px; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.1), inset 0 0 14px rgba(0, 0, 0, 0.5) -} - -.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { - box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.4); - width: 12px; - margin: 2px; - position: absolute; - height: auto; - top: 0; - bottom: 0; - left: 0; - right: 0 -} - -.mCS-3d-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-thick-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar { - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4) -} - -.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-thick.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar, .mCS-3d-thick.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-3d-thick.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar { - background-color: #555 -} - -.mCS-3d-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-thick-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar { - height: 12px; - width: auto -} - -.mCS-3d-thick.mCSB_scrollTools .mCSB_draggerContainer { - background-color: #000; - background-color: rgba(0, 0, 0, 0.05); - box-shadow: inset 1px 1px 16px rgba(0, 0, 0, 0.1) -} - -.mCS-3d-thick.mCSB_scrollTools .mCSB_draggerRail { - background-color: transparent -} - -.mCS-3d-thick.mCSB_scrollTools .mCSB_buttonUp { - background-position: -32px -72px -} - -.mCS-3d-thick.mCSB_scrollTools .mCSB_buttonDown { - background-position: -32px -92px -} - -.mCS-3d-thick.mCSB_scrollTools .mCSB_buttonLeft { - background-position: -40px -112px -} - -.mCS-3d-thick.mCSB_scrollTools .mCSB_buttonRight { - background-position: -40px -128px -} - -.mCS-3d-thick-dark.mCSB_scrollTools { - box-shadow: inset 0 0 14px rgba(0, 0, 0, 0.2) -} - -.mCS-3d-thick-dark.mCSB_scrollTools_horizontal { - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.1), inset 0 0 14px rgba(0, 0, 0, 0.2) -} - -.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { - box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.4), inset -1px 0 0 rgba(0, 0, 0, 0.2) -} - -.mCS-3d-thick-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar { - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4), inset 0 -1px 0 rgba(0, 0, 0, 0.2) -} - -.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar, .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar { - background-color: #777 -} - -.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_draggerContainer { - background-color: #fff; - background-color: rgba(0, 0, 0, 0.05); - box-shadow: inset 1px 1px 16px rgba(0, 0, 0, 0.1) -} - -.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_draggerRail { - background-color: transparent -} - -.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonUp { - background-position: -112px -72px -} - -.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonDown { - background-position: -112px -92px -} - -.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonLeft { - background-position: -120px -112px -} - -.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonRight { - background-position: -120px -128px -} - -.mCSB_outside + .mCS-minimal.mCSB_scrollTools_vertical, .mCSB_outside + .mCS-minimal-dark.mCSB_scrollTools_vertical { - right: 0; - margin: 12px 0 -} - -.mCustomScrollBox.mCS-minimal + .mCSB_scrollTools.mCSB_scrollTools_horizontal, .mCustomScrollBox.mCS-minimal + .mCSB_scrollTools + .mCSB_scrollTools.mCSB_scrollTools_horizontal, .mCustomScrollBox.mCS-minimal-dark + .mCSB_scrollTools.mCSB_scrollTools_horizontal, .mCustomScrollBox.mCS-minimal-dark + .mCSB_scrollTools + .mCSB_scrollTools.mCSB_scrollTools_horizontal { - bottom: 0; - margin: 0 12px -} - -.mCS-dir-rtl > .mCSB_outside + .mCS-minimal.mCSB_scrollTools_vertical, .mCS-dir-rtl > .mCSB_outside + .mCS-minimal-dark.mCSB_scrollTools_vertical { - left: 0; - right: auto -} - -.mCS-minimal.mCSB_scrollTools .mCSB_draggerRail, .mCS-minimal-dark.mCSB_scrollTools .mCSB_draggerRail { - background-color: transparent -} - -.mCS-minimal.mCSB_scrollTools_vertical .mCSB_dragger, .mCS-minimal-dark.mCSB_scrollTools_vertical .mCSB_dragger { - height: 50px -} - -.mCS-minimal.mCSB_scrollTools_horizontal .mCSB_dragger, .mCS-minimal-dark.mCSB_scrollTools_horizontal .mCSB_dragger { - width: 50px -} - -.mCS-minimal.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { - background-color: #fff; - background-color: rgba(255, 255, 255, 0.2); - filter: "alpha(opacity=20)"; - -ms-filter: "alpha(opacity=20)" -} - -.mCS-minimal.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-minimal.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar { - background-color: #fff; - background-color: rgba(255, 255, 255, 0.5); - filter: "alpha(opacity=50)"; - -ms-filter: "alpha(opacity=50)" -} - -.mCS-minimal-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { - background-color: #000; - background-color: rgba(0, 0, 0, 0.2); - filter: "alpha(opacity=20)"; - -ms-filter: "alpha(opacity=20)" -} - -.mCS-minimal-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-minimal-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar { - background-color: #000; - background-color: rgba(0, 0, 0, 0.5); - filter: "alpha(opacity=50)"; - -ms-filter: "alpha(opacity=50)" -} - -.mCS-light-3.mCSB_scrollTools .mCSB_draggerRail, .mCS-dark-3.mCSB_scrollTools .mCSB_draggerRail { - width: 6px; - background-color: #000; - background-color: rgba(0, 0, 0, 0.2) -} - -.mCS-light-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-dark-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { - width: 6px -} - -.mCS-light-3.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-dark-3.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-light-3.mCSB_scrollTools_horizontal .mCSB_draggerRail, .mCS-dark-3.mCSB_scrollTools_horizontal .mCSB_draggerRail { - width: 100%; - height: 6px; - margin: 5px 0 -} - -.mCS-light-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, .mCS-light-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail, .mCS-dark-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, .mCS-dark-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail { - width: 12px -} - -.mCS-light-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, .mCS-light-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail, .mCS-dark-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, .mCS-dark-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail { - height: 12px; - margin: 2px 0 -} - -.mCS-light-3.mCSB_scrollTools .mCSB_buttonUp { - background-position: -32px -72px -} - -.mCS-light-3.mCSB_scrollTools .mCSB_buttonDown { - background-position: -32px -92px -} - -.mCS-light-3.mCSB_scrollTools .mCSB_buttonLeft { - background-position: -40px -112px -} - -.mCS-light-3.mCSB_scrollTools .mCSB_buttonRight { - background-position: -40px -128px -} - -.mCS-dark-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { - background-color: #000; - background-color: rgba(0, 0, 0, 0.75) -} - -.mCS-dark-3.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar { - background-color: #000; - background-color: rgba(0, 0, 0, 0.85) -} - -.mCS-dark-3.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-dark-3.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar { - background-color: #000; - background-color: rgba(0, 0, 0, 0.9) -} - -.mCS-dark-3.mCSB_scrollTools .mCSB_draggerRail { - background-color: #000; - background-color: rgba(0, 0, 0, 0.1) -} - -.mCS-dark-3.mCSB_scrollTools .mCSB_buttonUp { - background-position: -112px -72px -} - -.mCS-dark-3.mCSB_scrollTools .mCSB_buttonDown { - background-position: -112px -92px -} - -.mCS-dark-3.mCSB_scrollTools .mCSB_buttonLeft { - background-position: -120px -112px -} - -.mCS-dark-3.mCSB_scrollTools .mCSB_buttonRight { - background-position: -120px -128px -} - -.mCS-inset.mCSB_scrollTools .mCSB_draggerRail, .mCS-inset-dark.mCSB_scrollTools .mCSB_draggerRail, .mCS-inset-2.mCSB_scrollTools .mCSB_draggerRail, .mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail, .mCS-inset-3.mCSB_scrollTools .mCSB_draggerRail, .mCS-inset-3-dark.mCSB_scrollTools .mCSB_draggerRail { - width: 12px; - background-color: #000; - background-color: rgba(0, 0, 0, 0.2) -} - -.mCS-inset.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-inset-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-inset-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-inset-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { - width: 6px; - margin: 3px 5px; - position: absolute; - height: auto; - top: 0; - bottom: 0; - left: 0; - right: 0 -} - -.mCS-inset.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-inset-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-inset-2.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-inset-2-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-inset-3.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-inset-3-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar { - height: 6px; - margin: 5px 3px; - position: absolute; - width: auto; - top: 0; - bottom: 0; - left: 0; - right: 0 -} - -.mCS-inset.mCSB_scrollTools_horizontal .mCSB_draggerRail, .mCS-inset-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail, .mCS-inset-2.mCSB_scrollTools_horizontal .mCSB_draggerRail, .mCS-inset-2-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail, .mCS-inset-3.mCSB_scrollTools_horizontal .mCSB_draggerRail, .mCS-inset-3-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail { - width: 100%; - height: 12px; - margin: 2px 0 -} - -.mCS-inset.mCSB_scrollTools .mCSB_buttonUp, .mCS-inset-2.mCSB_scrollTools .mCSB_buttonUp, .mCS-inset-3.mCSB_scrollTools .mCSB_buttonUp { - background-position: -32px -72px -} - -.mCS-inset.mCSB_scrollTools .mCSB_buttonDown, .mCS-inset-2.mCSB_scrollTools .mCSB_buttonDown, .mCS-inset-3.mCSB_scrollTools .mCSB_buttonDown { - background-position: -32px -92px -} - -.mCS-inset.mCSB_scrollTools .mCSB_buttonLeft, .mCS-inset-2.mCSB_scrollTools .mCSB_buttonLeft, .mCS-inset-3.mCSB_scrollTools .mCSB_buttonLeft { - background-position: -40px -112px -} - -.mCS-inset.mCSB_scrollTools .mCSB_buttonRight, .mCS-inset-2.mCSB_scrollTools .mCSB_buttonRight, .mCS-inset-3.mCSB_scrollTools .mCSB_buttonRight { - background-position: -40px -128px -} - -.mCS-inset-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { - background-color: #000; - background-color: rgba(0, 0, 0, 0.75) -} - -.mCS-inset-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar, .mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar, .mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar { - background-color: #000; - background-color: rgba(0, 0, 0, 0.85) -} - -.mCS-inset-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-inset-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar, .mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar, .mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar { - background-color: #000; - background-color: rgba(0, 0, 0, 0.9) -} - -.mCS-inset-dark.mCSB_scrollTools .mCSB_draggerRail, .mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail, .mCS-inset-3-dark.mCSB_scrollTools .mCSB_draggerRail { - background-color: #000; - background-color: rgba(0, 0, 0, 0.1) -} - -.mCS-inset-dark.mCSB_scrollTools .mCSB_buttonUp, .mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonUp, .mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonUp { - background-position: -112px -72px -} - -.mCS-inset-dark.mCSB_scrollTools .mCSB_buttonDown, .mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonDown, .mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonDown { - background-position: -112px -92px -} - -.mCS-inset-dark.mCSB_scrollTools .mCSB_buttonLeft, .mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonLeft, .mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonLeft { - background-position: -120px -112px -} - -.mCS-inset-dark.mCSB_scrollTools .mCSB_buttonRight, .mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonRight, .mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonRight { - background-position: -120px -128px -} - -.mCS-inset-2.mCSB_scrollTools .mCSB_draggerRail, .mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail { - background-color: transparent; - border-width: 1px; - border-style: solid; - border-color: #fff; - border-color: rgba(255, 255, 255, 0.2); - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box -} - -.mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail { - border-color: #000; - border-color: rgba(0, 0, 0, 0.2) -} - -.mCS-inset-3.mCSB_scrollTools .mCSB_draggerRail { - background-color: #fff; - background-color: rgba(255, 255, 255, 0.6) -} - -.mCS-inset-3-dark.mCSB_scrollTools .mCSB_draggerRail { - background-color: #000; - background-color: rgba(0, 0, 0, 0.6) -} - -.mCS-inset-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { - background-color: #000; - background-color: rgba(0, 0, 0, 0.75) -} - -.mCS-inset-3.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar { - background-color: #000; - background-color: rgba(0, 0, 0, 0.85) -} - -.mCS-inset-3.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-inset-3.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar { - background-color: #000; - background-color: rgba(0, 0, 0, 0.9) -} - -.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { - background-color: #fff; - background-color: rgba(255, 255, 255, 0.75) -} - -.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar { - background-color: #fff; - background-color: rgba(255, 255, 255, 0.85) -} - -.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar { - background-color: #fff; - background-color: rgba(255, 255, 255, 0.9) +.mCustomScrollbar { + -ms-touch-action: none; + touch-action: none +} + +.mCustomScrollbar.mCS_no_scrollbar { + -ms-touch-action: auto; + touch-action: auto +} + +.mCustomScrollBox { + position: relative; + + height: 100%; + max-width: 100%; + outline: 0; + direction: ltr +} + +.mCSB_container { + width: auto; + height: auto +} + +.mCSB_inside > .mCSB_container { + margin-right: 30px +} + +.mCSB_container.mCS_no_scrollbar_y.mCS_y_hidden { + margin-right: 0 +} + +.mCS-dir-rtl > .mCSB_inside > .mCSB_container { + margin-right: 0; + margin-left: 30px +} + +.mCS-dir-rtl > .mCSB_inside > .mCSB_container.mCS_no_scrollbar_y.mCS_y_hidden { + margin-left: 0 +} + +.mCSB_scrollTools { + position: absolute; + width: 16px; + height: auto; + left: auto; + top: 0; + right: 0; + bottom: 0 +} + +.mCSB_outside + .mCSB_scrollTools { + right: -26px +} + +.mCS-dir-rtl > .mCSB_inside > .mCSB_scrollTools, .mCS-dir-rtl > .mCSB_outside + .mCSB_scrollTools { + right: auto; + left: 0 +} + +.mCS-dir-rtl > .mCSB_outside + .mCSB_scrollTools { + left: -26px +} + +.mCSB_scrollTools .mCSB_draggerContainer { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + height: auto +} + +.mCSB_scrollTools a + .mCSB_draggerContainer { + margin: 20px 0 +} + +.mCSB_scrollTools .mCSB_draggerRail { + width: 2px; + height: 100%; + margin: 0 auto; + -webkit-border-radius: 16px; + -moz-border-radius: 16px; + border-radius: 16px +} + +.mCSB_scrollTools .mCSB_dragger { + cursor: pointer; + width: 100%; + height: 30px; + z-index: 1 +} + +.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { + position: relative; + width: 4px; + height: 100%; + margin: 0 auto; + -webkit-border-radius: 16px; + -moz-border-radius: 16px; + border-radius: 16px; + text-align: center +} + +.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar, .mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar { + width: 12px +} + +.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, .mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail { + width: 8px +} + +.mCSB_scrollTools .mCSB_buttonUp, .mCSB_scrollTools .mCSB_buttonDown { + display: block; + position: absolute; + height: 20px; + width: 100%; + overflow: hidden; + margin: 0 auto; + cursor: pointer +} + +.mCSB_scrollTools .mCSB_buttonDown { + bottom: 0 +} + +.mCSB_horizontal.mCSB_inside > .mCSB_container { + margin-right: 0; + margin-bottom: 30px +} + +.mCSB_horizontal.mCSB_outside > .mCSB_container { + min-height: 100% +} + +.mCSB_horizontal > .mCSB_container.mCS_no_scrollbar_x.mCS_x_hidden { + margin-bottom: 0 +} + +.mCSB_scrollTools.mCSB_scrollTools_horizontal { + width: auto; + height: 16px; + top: auto; + right: 0; + bottom: 0; + left: 0 +} + +.mCustomScrollBox + .mCSB_scrollTools.mCSB_scrollTools_horizontal, .mCustomScrollBox + .mCSB_scrollTools + .mCSB_scrollTools.mCSB_scrollTools_horizontal { + bottom: -26px +} + +.mCSB_scrollTools.mCSB_scrollTools_horizontal a + .mCSB_draggerContainer { + margin: 0 20px +} + +.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_draggerRail { + width: 100%; + height: 2px; + margin: 7px 0 +} + +.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_dragger { + width: 30px; + height: 100%; + left: 0 +} + +.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar { + width: 100%; + height: 4px; + margin: 6px auto +} + +.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar, .mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar { + height: 12px; + margin: 2px auto +} + +.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, .mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail { + height: 8px; + margin: 4px 0 +} + +.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonLeft, .mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonRight { + display: block; + position: absolute; + width: 20px; + height: 100%; + overflow: hidden; + margin: 0 auto; + cursor: pointer +} + +.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonLeft { + left: 0 +} + +.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonRight { + right: 0 +} + +.mCSB_container_wrapper { + position: absolute; + height: auto; + width: auto; + overflow: hidden; + top: 0; + left: 0; + right: 0; + bottom: 0; + margin-right: 30px; + margin-bottom: 30px +} + +.mCSB_container_wrapper > .mCSB_container { + padding-right: 30px; + padding-bottom: 30px +} + +.mCSB_vertical_horizontal > .mCSB_scrollTools.mCSB_scrollTools_vertical { + bottom: 20px +} + +.mCSB_vertical_horizontal > .mCSB_scrollTools.mCSB_scrollTools_horizontal { + right: 20px +} + +.mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden + .mCSB_scrollTools.mCSB_scrollTools_vertical { + bottom: 0 +} + +.mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden + .mCSB_scrollTools ~ .mCSB_scrollTools.mCSB_scrollTools_horizontal, .mCS-dir-rtl > .mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside > .mCSB_scrollTools.mCSB_scrollTools_horizontal { + right: 0 +} + +.mCS-dir-rtl > .mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside > .mCSB_scrollTools.mCSB_scrollTools_horizontal { + left: 20px +} + +.mCS-dir-rtl > .mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside > .mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden + .mCSB_scrollTools ~ .mCSB_scrollTools.mCSB_scrollTools_horizontal { + left: 0 +} + +.mCS-dir-rtl > .mCSB_inside > .mCSB_container_wrapper { + margin-right: 0; + margin-left: 30px +} + +.mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden > .mCSB_container { + padding-right: 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box +} + +.mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden > .mCSB_container { + padding-bottom: 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box +} + +.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside > .mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden { + margin-right: 0; + margin-left: 0 +} + +.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside > .mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden { + margin-bottom: 0 +} + +.mCSB_scrollTools, .mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCSB_scrollTools .mCSB_buttonUp, .mCSB_scrollTools .mCSB_buttonDown, .mCSB_scrollTools .mCSB_buttonLeft, .mCSB_scrollTools .mCSB_buttonRight { + -webkit-transition: opacity .2s ease-in-out, background-color .2s ease-in-out; + -moz-transition: opacity .2s ease-in-out, background-color .2s ease-in-out; + -o-transition: opacity .2s ease-in-out, background-color .2s ease-in-out; + transition: opacity .2s ease-in-out, background-color .2s ease-in-out +} + +.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger_bar, .mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerRail, .mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger_bar, .mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerRail { + -webkit-transition: width .2s ease-out .2s, height .2s ease-out .2s, margin-left .2s ease-out .2s, margin-right .2s ease-out .2s, margin-top .2s ease-out .2s, margin-bottom .2s ease-out .2s, opacity .2s ease-in-out, background-color .2s ease-in-out; + -moz-transition: width .2s ease-out .2s, height .2s ease-out .2s, margin-left .2s ease-out .2s, margin-right .2s ease-out .2s, margin-top .2s ease-out .2s, margin-bottom .2s ease-out .2s, opacity .2s ease-in-out, background-color .2s ease-in-out; + -o-transition: width .2s ease-out .2s, height .2s ease-out .2s, margin-left .2s ease-out .2s, margin-right .2s ease-out .2s, margin-top .2s ease-out .2s, margin-bottom .2s ease-out .2s, opacity .2s ease-in-out, background-color .2s ease-in-out; + transition: width .2s ease-out .2s, height .2s ease-out .2s, margin-left .2s ease-out .2s, margin-right .2s ease-out .2s, margin-top .2s ease-out .2s, margin-bottom .2s ease-out .2s, opacity .2s ease-in-out, background-color .2s ease-in-out +} + +.mCSB_scrollTools { + opacity: .75; + filter: "alpha(opacity=75)"; + -ms-filter: "alpha(opacity=75)" +} + +.mCS-autoHide > .mCustomScrollBox > .mCSB_scrollTools, .mCS-autoHide > .mCustomScrollBox ~ .mCSB_scrollTools { + opacity: 0; + filter: "alpha(opacity=0)"; + -ms-filter: "alpha(opacity=0)" +} + +.mCustomScrollbar > .mCustomScrollBox > .mCSB_scrollTools.mCSB_scrollTools_onDrag, .mCustomScrollbar > .mCustomScrollBox ~ .mCSB_scrollTools.mCSB_scrollTools_onDrag, .mCustomScrollBox:hover > .mCSB_scrollTools, .mCustomScrollBox:hover ~ .mCSB_scrollTools, .mCS-autoHide:hover > .mCustomScrollBox > .mCSB_scrollTools, .mCS-autoHide:hover > .mCustomScrollBox ~ .mCSB_scrollTools { + opacity: 1; + filter: "alpha(opacity=100)"; + -ms-filter: "alpha(opacity=100)" +} + +.mCSB_scrollTools .mCSB_draggerRail { + background-color: #000; + background-color: rgba(0, 0, 0, 0.4); + filter: "alpha(opacity=40)"; + -ms-filter: "alpha(opacity=40)" +} + +.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { + background-color: #fff; + background-color: rgba(255, 255, 255, 0.75); + filter: "alpha(opacity=75)"; + -ms-filter: "alpha(opacity=75)" +} + +.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar { + background-color: #fff; + background-color: rgba(255, 255, 255, 0.85); + filter: "alpha(opacity=85)"; + -ms-filter: "alpha(opacity=85)" +} + +.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar { + background-color: #fff; + background-color: rgba(255, 255, 255, 0.9); + filter: "alpha(opacity=90)"; + -ms-filter: "alpha(opacity=90)" +} + +.mCSB_scrollTools .mCSB_buttonUp, .mCSB_scrollTools .mCSB_buttonDown, .mCSB_scrollTools .mCSB_buttonLeft, .mCSB_scrollTools .mCSB_buttonRight { + background-image: url(mCSB_buttons.png); + background-repeat: no-repeat; + opacity: .4; + filter: "alpha(opacity=40)"; + -ms-filter: "alpha(opacity=40)" +} + +.mCSB_scrollTools .mCSB_buttonUp { + background-position: 0 0 +} + +.mCSB_scrollTools .mCSB_buttonDown { + background-position: 0 -20px +} + +.mCSB_scrollTools .mCSB_buttonLeft { + background-position: 0 -40px +} + +.mCSB_scrollTools .mCSB_buttonRight { + background-position: 0 -56px +} + +.mCSB_scrollTools .mCSB_buttonUp:hover, .mCSB_scrollTools .mCSB_buttonDown:hover, .mCSB_scrollTools .mCSB_buttonLeft:hover, .mCSB_scrollTools .mCSB_buttonRight:hover { + opacity: .75; + filter: "alpha(opacity=75)"; + -ms-filter: "alpha(opacity=75)" +} + +.mCSB_scrollTools .mCSB_buttonUp:active, .mCSB_scrollTools .mCSB_buttonDown:active, .mCSB_scrollTools .mCSB_buttonLeft:active, .mCSB_scrollTools .mCSB_buttonRight:active { + opacity: .9; + filter: "alpha(opacity=90)"; + -ms-filter: "alpha(opacity=90)" +} + +.mCS-dark.mCSB_scrollTools .mCSB_draggerRail { + background-color: #000; + background-color: rgba(0, 0, 0, 0.15) +} + +.mCS-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { + background-color: #000; + background-color: rgba(0, 0, 0, 0.75) +} + +.mCS-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar { + background-color: rgba(0, 0, 0, 0.85) +} + +.mCS-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar { + background-color: rgba(0, 0, 0, 0.9) +} + +.mCS-dark.mCSB_scrollTools .mCSB_buttonUp { + background-position: -80px 0 +} + +.mCS-dark.mCSB_scrollTools .mCSB_buttonDown { + background-position: -80px -20px +} + +.mCS-dark.mCSB_scrollTools .mCSB_buttonLeft { + background-position: -80px -40px +} + +.mCS-dark.mCSB_scrollTools .mCSB_buttonRight { + background-position: -80px -56px +} + +.mCS-light-2.mCSB_scrollTools .mCSB_draggerRail, .mCS-dark-2.mCSB_scrollTools .mCSB_draggerRail { + width: 4px; + background-color: #fff; + background-color: rgba(255, 255, 255, 0.1); + -webkit-border-radius: 1px; + -moz-border-radius: 1px; + border-radius: 1px +} + +.mCS-light-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-dark-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { + width: 4px; + background-color: #fff; + background-color: rgba(255, 255, 255, 0.75); + -webkit-border-radius: 1px; + -moz-border-radius: 1px; + border-radius: 1px +} + +.mCS-light-2.mCSB_scrollTools_horizontal .mCSB_draggerRail, .mCS-dark-2.mCSB_scrollTools_horizontal .mCSB_draggerRail, .mCS-light-2.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-dark-2.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar { + width: 100%; + height: 4px; + margin: 6px auto +} + +.mCS-light-2.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar { + background-color: #fff; + background-color: rgba(255, 255, 255, 0.85) +} + +.mCS-light-2.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-light-2.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar { + background-color: #fff; + background-color: rgba(255, 255, 255, 0.9) +} + +.mCS-light-2.mCSB_scrollTools .mCSB_buttonUp { + background-position: -32px 0 +} + +.mCS-light-2.mCSB_scrollTools .mCSB_buttonDown { + background-position: -32px -20px +} + +.mCS-light-2.mCSB_scrollTools .mCSB_buttonLeft { + background-position: -40px -40px +} + +.mCS-light-2.mCSB_scrollTools .mCSB_buttonRight { + background-position: -40px -56px +} + +.mCS-dark-2.mCSB_scrollTools .mCSB_draggerRail { + background-color: #000; + background-color: rgba(0, 0, 0, 0.1); + -webkit-border-radius: 1px; + -moz-border-radius: 1px; + border-radius: 1px +} + +.mCS-dark-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { + background-color: #000; + background-color: rgba(0, 0, 0, 0.75); + -webkit-border-radius: 1px; + -moz-border-radius: 1px; + border-radius: 1px +} + +.mCS-dark-2.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar { + background-color: #000; + background-color: rgba(0, 0, 0, 0.85) +} + +.mCS-dark-2.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-dark-2.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar { + background-color: #000; + background-color: rgba(0, 0, 0, 0.9) +} + +.mCS-dark-2.mCSB_scrollTools .mCSB_buttonUp { + background-position: -112px 0 +} + +.mCS-dark-2.mCSB_scrollTools .mCSB_buttonDown { + background-position: -112px -20px +} + +.mCS-dark-2.mCSB_scrollTools .mCSB_buttonLeft { + background-position: -120px -40px +} + +.mCS-dark-2.mCSB_scrollTools .mCSB_buttonRight { + background-position: -120px -56px +} + +.mCS-light-thick.mCSB_scrollTools .mCSB_draggerRail, .mCS-dark-thick.mCSB_scrollTools .mCSB_draggerRail { + width: 4px; + background-color: #fff; + background-color: rgba(255, 255, 255, 0.1); + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + border-radius: 2px +} + +.mCS-light-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-dark-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { + width: 6px; + background-color: #fff; + background-color: rgba(255, 255, 255, 0.75); + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + border-radius: 2px +} + +.mCS-light-thick.mCSB_scrollTools_horizontal .mCSB_draggerRail, .mCS-dark-thick.mCSB_scrollTools_horizontal .mCSB_draggerRail { + width: 100%; + height: 4px; + margin: 6px 0 +} + +.mCS-light-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-dark-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar { + width: 100%; + height: 6px; + margin: 5px auto +} + +.mCS-light-thick.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar { + background-color: #fff; + background-color: rgba(255, 255, 255, 0.85) +} + +.mCS-light-thick.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-light-thick.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar { + background-color: #fff; + background-color: rgba(255, 255, 255, 0.9) +} + +.mCS-light-thick.mCSB_scrollTools .mCSB_buttonUp { + background-position: -16px 0 +} + +.mCS-light-thick.mCSB_scrollTools .mCSB_buttonDown { + background-position: -16px -20px +} + +.mCS-light-thick.mCSB_scrollTools .mCSB_buttonLeft { + background-position: -20px -40px +} + +.mCS-light-thick.mCSB_scrollTools .mCSB_buttonRight { + background-position: -20px -56px +} + +.mCS-dark-thick.mCSB_scrollTools .mCSB_draggerRail { + background-color: #000; + background-color: rgba(0, 0, 0, 0.1); + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + border-radius: 2px +} + +.mCS-dark-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { + background-color: #000; + background-color: rgba(0, 0, 0, 0.75); + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + border-radius: 2px +} + +.mCS-dark-thick.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar { + background-color: #000; + background-color: rgba(0, 0, 0, 0.85) +} + +.mCS-dark-thick.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-dark-thick.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar { + background-color: #000; + background-color: rgba(0, 0, 0, 0.9) +} + +.mCS-dark-thick.mCSB_scrollTools .mCSB_buttonUp { + background-position: -96px 0 +} + +.mCS-dark-thick.mCSB_scrollTools .mCSB_buttonDown { + background-position: -96px -20px +} + +.mCS-dark-thick.mCSB_scrollTools .mCSB_buttonLeft { + background-position: -100px -40px +} + +.mCS-dark-thick.mCSB_scrollTools .mCSB_buttonRight { + background-position: -100px -56px +} + +.mCS-light-thin.mCSB_scrollTools .mCSB_draggerRail { + background-color: #fff; + background-color: rgba(255, 255, 255, 0.1) +} + +.mCS-light-thin.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-dark-thin.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { + width: 2px +} + +.mCS-light-thin.mCSB_scrollTools_horizontal .mCSB_draggerRail, .mCS-dark-thin.mCSB_scrollTools_horizontal .mCSB_draggerRail { + width: 100% +} + +.mCS-light-thin.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-dark-thin.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar { + width: 100%; + height: 2px; + margin: 7px auto +} + +.mCS-dark-thin.mCSB_scrollTools .mCSB_draggerRail { + background-color: #000; + background-color: rgba(0, 0, 0, 0.15) +} + +.mCS-dark-thin.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { + background-color: #000; + background-color: rgba(0, 0, 0, 0.75) +} + +.mCS-dark-thin.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar { + background-color: #000; + background-color: rgba(0, 0, 0, 0.85) +} + +.mCS-dark-thin.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-dark-thin.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar { + background-color: #000; + background-color: rgba(0, 0, 0, 0.9) +} + +.mCS-dark-thin.mCSB_scrollTools .mCSB_buttonUp { + background-position: -80px 0 +} + +.mCS-dark-thin.mCSB_scrollTools .mCSB_buttonDown { + background-position: -80px -20px +} + +.mCS-dark-thin.mCSB_scrollTools .mCSB_buttonLeft { + background-position: -80px -40px +} + +.mCS-dark-thin.mCSB_scrollTools .mCSB_buttonRight { + background-position: -80px -56px +} + +.mCS-rounded.mCSB_scrollTools .mCSB_draggerRail { + background-color: #fff; + background-color: rgba(255, 255, 255, 0.15) +} + +.mCS-rounded.mCSB_scrollTools .mCSB_dragger, .mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger, .mCS-rounded-dots.mCSB_scrollTools .mCSB_dragger, .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger { + height: 14px +} + +.mCS-rounded.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-rounded-dots.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { + width: 14px; + margin: 0 1px +} + +.mCS-rounded.mCSB_scrollTools_horizontal .mCSB_dragger, .mCS-rounded-dark.mCSB_scrollTools_horizontal .mCSB_dragger, .mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_dragger, .mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_dragger { + width: 14px +} + +.mCS-rounded.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-rounded-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar { + height: 14px; + margin: 1px 0 +} + +.mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar, .mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar, .mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar, .mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar { + width: 16px; + height: 16px; + margin: -1px 0 +} + +.mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, .mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail, .mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, .mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail { + width: 4px +} + +.mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar, .mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar, .mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar, .mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar { + height: 16px; + width: 16px; + margin: 0 -1px +} + +.mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, .mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail, .mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, .mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail { + height: 4px; + margin: 6px 0 +} + +.mCS-rounded.mCSB_scrollTools .mCSB_buttonUp { + background-position: 0 -72px +} + +.mCS-rounded.mCSB_scrollTools .mCSB_buttonDown { + background-position: 0 -92px +} + +.mCS-rounded.mCSB_scrollTools .mCSB_buttonLeft { + background-position: 0 -112px +} + +.mCS-rounded.mCSB_scrollTools .mCSB_buttonRight { + background-position: 0 -128px +} + +.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { + background-color: #000; + background-color: rgba(0, 0, 0, 0.75) +} + +.mCS-rounded-dark.mCSB_scrollTools .mCSB_draggerRail { + background-color: #000; + background-color: rgba(0, 0, 0, 0.15) +} + +.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar, .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar { + background-color: #000; + background-color: rgba(0, 0, 0, 0.85) +} + +.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar, .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar { + background-color: #000; + background-color: rgba(0, 0, 0, 0.9) +} + +.mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonUp { + background-position: -80px -72px +} + +.mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonDown { + background-position: -80px -92px +} + +.mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonLeft { + background-position: -80px -112px +} + +.mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonRight { + background-position: -80px -128px +} + +.mCS-rounded-dots.mCSB_scrollTools_vertical .mCSB_draggerRail, .mCS-rounded-dots-dark.mCSB_scrollTools_vertical .mCSB_draggerRail { + width: 4px +} + +.mCS-rounded-dots.mCSB_scrollTools .mCSB_draggerRail, .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_draggerRail, .mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_draggerRail, .mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail { + background-color: transparent; + background-position: center +} + +.mCS-rounded-dots.mCSB_scrollTools .mCSB_draggerRail, .mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_draggerRail { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAANElEQVQYV2NkIAAYiVbw//9/Y6DiM1ANJoyMjGdBbLgJQAX/kU0DKgDLkaQAvxW4HEvQFwCRcxIJK1XznAAAAABJRU5ErkJggg=="); + background-repeat: repeat-y; + opacity: .3; + filter: "alpha(opacity=30)"; + -ms-filter: "alpha(opacity=30)" +} + +.mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_draggerRail, .mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail { + height: 4px; + margin: 6px 0; + background-repeat: repeat-x +} + +.mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonUp { + background-position: -16px -72px +} + +.mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonDown { + background-position: -16px -92px +} + +.mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonLeft { + background-position: -20px -112px +} + +.mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonRight { + background-position: -20px -128px +} + +.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_draggerRail { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAALElEQVQYV2NkIAAYSVFgDFR8BqrBBEifBbGRTfiPZhpYjiQFBK3A6l6CvgAAE9kGCd1mvgEAAAAASUVORK5CYII=") +} + +.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonUp { + background-position: -96px -72px +} + +.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonDown { + background-position: -96px -92px +} + +.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonLeft { + background-position: -100px -112px +} + +.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonRight { + background-position: -100px -128px +} + +.mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { + background-repeat: repeat-y; + background-image: -moz-linear-gradient(left, rgba(255, 255, 255, 0.5) 0, rgba(255, 255, 255, 0) 100%); + background-image: -webkit-gradient(linear, left top, right top, color-stop(0, rgba(255, 255, 255, 0.5)), color-stop(100%, rgba(255, 255, 255, 0))); + background-image: -webkit-linear-gradient(left, rgba(255, 255, 255, 0.5) 0, rgba(255, 255, 255, 0) 100%); + background-image: -o-linear-gradient(left, rgba(255, 255, 255, 0.5) 0, rgba(255, 255, 255, 0) 100%); + background-image: -ms-linear-gradient(left, rgba(255, 255, 255, 0.5) 0, rgba(255, 255, 255, 0) 100%); + background-image: linear-gradient(to right, rgba(255, 255, 255, 0.5) 0, rgba(255, 255, 255, 0) 100%) +} + +.mCS-3d.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-thick-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar { + background-repeat: repeat-x; + background-image: -moz-linear-gradient(top, rgba(255, 255, 255, 0.5) 0, rgba(255, 255, 255, 0) 100%); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, rgba(255, 255, 255, 0.5)), color-stop(100%, rgba(255, 255, 255, 0))); + background-image: -webkit-linear-gradient(top, rgba(255, 255, 255, 0.5) 0, rgba(255, 255, 255, 0) 100%); + background-image: -o-linear-gradient(top, rgba(255, 255, 255, 0.5) 0, rgba(255, 255, 255, 0) 100%); + background-image: -ms-linear-gradient(top, rgba(255, 255, 255, 0.5) 0, rgba(255, 255, 255, 0) 100%); + background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.5) 0, rgba(255, 255, 255, 0) 100%) +} + +.mCS-3d.mCSB_scrollTools_vertical .mCSB_dragger, .mCS-3d-dark.mCSB_scrollTools_vertical .mCSB_dragger { + height: 70px +} + +.mCS-3d.mCSB_scrollTools_horizontal .mCSB_dragger, .mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_dragger { + width: 70px +} + +.mCS-3d.mCSB_scrollTools, .mCS-3d-dark.mCSB_scrollTools { + opacity: 1; + filter: "alpha(opacity=30)"; + -ms-filter: "alpha(opacity=30)" +} + +.mCS-3d.mCSB_scrollTools .mCSB_draggerRail, .mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-dark.mCSB_scrollTools .mCSB_draggerRail, .mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { + -webkit-border-radius: 16px; + -moz-border-radius: 16px; + border-radius: 16px +} + +.mCS-3d.mCSB_scrollTools .mCSB_draggerRail, .mCS-3d-dark.mCSB_scrollTools .mCSB_draggerRail { + width: 8px; + background-color: #000; + background-color: rgba(0, 0, 0, 0.2); + box-shadow: inset 1px 0 1px rgba(0, 0, 0, 0.5), inset -1px 0 1px rgba(255, 255, 255, 0.2) +} + +.mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-3d.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar, .mCS-3d.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-3d.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar, .mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar, .mCS-3d-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-3d-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar { + background-color: #555 +} + +.mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { + width: 8px +} + +.mCS-3d.mCSB_scrollTools_horizontal .mCSB_draggerRail, .mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail { + width: 100%; + height: 8px; + margin: 4px 0; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.5), inset 0 -1px 1px rgba(255, 255, 255, 0.2) +} + +.mCS-3d.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar { + width: 100%; + height: 8px; + margin: 4px auto +} + +.mCS-3d.mCSB_scrollTools .mCSB_buttonUp { + background-position: -32px -72px +} + +.mCS-3d.mCSB_scrollTools .mCSB_buttonDown { + background-position: -32px -92px +} + +.mCS-3d.mCSB_scrollTools .mCSB_buttonLeft { + background-position: -40px -112px +} + +.mCS-3d.mCSB_scrollTools .mCSB_buttonRight { + background-position: -40px -128px +} + +.mCS-3d-dark.mCSB_scrollTools .mCSB_draggerRail { + background-color: #000; + background-color: rgba(0, 0, 0, 0.1); + box-shadow: inset 1px 0 1px rgba(0, 0, 0, 0.1) +} + +.mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail { + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.1) +} + +.mCS-3d-dark.mCSB_scrollTools .mCSB_buttonUp { + background-position: -112px -72px +} + +.mCS-3d-dark.mCSB_scrollTools .mCSB_buttonDown { + background-position: -112px -92px +} + +.mCS-3d-dark.mCSB_scrollTools .mCSB_buttonLeft { + background-position: -120px -112px +} + +.mCS-3d-dark.mCSB_scrollTools .mCSB_buttonRight { + background-position: -120px -128px +} + +.mCS-3d-thick.mCSB_scrollTools, .mCS-3d-thick-dark.mCSB_scrollTools { + opacity: 1; + filter: "alpha(opacity=30)"; + -ms-filter: "alpha(opacity=30)" +} + +.mCS-3d-thick.mCSB_scrollTools, .mCS-3d-thick-dark.mCSB_scrollTools, .mCS-3d-thick.mCSB_scrollTools .mCSB_draggerContainer, .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_draggerContainer { + -webkit-border-radius: 7px; + -moz-border-radius: 7px; + border-radius: 7px +} + +.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px +} + +.mCSB_inside + .mCS-3d-thick.mCSB_scrollTools_vertical, .mCSB_inside + .mCS-3d-thick-dark.mCSB_scrollTools_vertical { + right: 1px +} + +.mCS-3d-thick.mCSB_scrollTools_vertical, .mCS-3d-thick-dark.mCSB_scrollTools_vertical { + box-shadow: inset 1px 0 1px rgba(0, 0, 0, 0.1), inset 0 0 14px rgba(0, 0, 0, 0.5) +} + +.mCS-3d-thick.mCSB_scrollTools_horizontal, .mCS-3d-thick-dark.mCSB_scrollTools_horizontal { + bottom: 1px; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.1), inset 0 0 14px rgba(0, 0, 0, 0.5) +} + +.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { + box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.4); + width: 12px; + margin: 2px; + position: absolute; + height: auto; + top: 0; + bottom: 0; + left: 0; + right: 0 +} + +.mCS-3d-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-thick-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar { + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4) +} + +.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-thick.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar, .mCS-3d-thick.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-3d-thick.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar { + background-color: #555 +} + +.mCS-3d-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-thick-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar { + height: 12px; + width: auto +} + +.mCS-3d-thick.mCSB_scrollTools .mCSB_draggerContainer { + background-color: #000; + background-color: rgba(0, 0, 0, 0.05); + box-shadow: inset 1px 1px 16px rgba(0, 0, 0, 0.1) +} + +.mCS-3d-thick.mCSB_scrollTools .mCSB_draggerRail { + background-color: transparent +} + +.mCS-3d-thick.mCSB_scrollTools .mCSB_buttonUp { + background-position: -32px -72px +} + +.mCS-3d-thick.mCSB_scrollTools .mCSB_buttonDown { + background-position: -32px -92px +} + +.mCS-3d-thick.mCSB_scrollTools .mCSB_buttonLeft { + background-position: -40px -112px +} + +.mCS-3d-thick.mCSB_scrollTools .mCSB_buttonRight { + background-position: -40px -128px +} + +.mCS-3d-thick-dark.mCSB_scrollTools { + box-shadow: inset 0 0 14px rgba(0, 0, 0, 0.2) +} + +.mCS-3d-thick-dark.mCSB_scrollTools_horizontal { + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.1), inset 0 0 14px rgba(0, 0, 0, 0.2) +} + +.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { + box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.4), inset -1px 0 0 rgba(0, 0, 0, 0.2) +} + +.mCS-3d-thick-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar { + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4), inset 0 -1px 0 rgba(0, 0, 0, 0.2) +} + +.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar, .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar { + background-color: #777 +} + +.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_draggerContainer { + background-color: #fff; + background-color: rgba(0, 0, 0, 0.05); + box-shadow: inset 1px 1px 16px rgba(0, 0, 0, 0.1) +} + +.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_draggerRail { + background-color: transparent +} + +.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonUp { + background-position: -112px -72px +} + +.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonDown { + background-position: -112px -92px +} + +.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonLeft { + background-position: -120px -112px +} + +.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonRight { + background-position: -120px -128px +} + +.mCSB_outside + .mCS-minimal.mCSB_scrollTools_vertical, .mCSB_outside + .mCS-minimal-dark.mCSB_scrollTools_vertical { + right: 0; + margin: 12px 0 +} + +.mCustomScrollBox.mCS-minimal + .mCSB_scrollTools.mCSB_scrollTools_horizontal, .mCustomScrollBox.mCS-minimal + .mCSB_scrollTools + .mCSB_scrollTools.mCSB_scrollTools_horizontal, .mCustomScrollBox.mCS-minimal-dark + .mCSB_scrollTools.mCSB_scrollTools_horizontal, .mCustomScrollBox.mCS-minimal-dark + .mCSB_scrollTools + .mCSB_scrollTools.mCSB_scrollTools_horizontal { + bottom: 0; + margin: 0 12px +} + +.mCS-dir-rtl > .mCSB_outside + .mCS-minimal.mCSB_scrollTools_vertical, .mCS-dir-rtl > .mCSB_outside + .mCS-minimal-dark.mCSB_scrollTools_vertical { + left: 0; + right: auto +} + +.mCS-minimal.mCSB_scrollTools .mCSB_draggerRail, .mCS-minimal-dark.mCSB_scrollTools .mCSB_draggerRail { + background-color: transparent +} + +.mCS-minimal.mCSB_scrollTools_vertical .mCSB_dragger, .mCS-minimal-dark.mCSB_scrollTools_vertical .mCSB_dragger { + height: 50px +} + +.mCS-minimal.mCSB_scrollTools_horizontal .mCSB_dragger, .mCS-minimal-dark.mCSB_scrollTools_horizontal .mCSB_dragger { + width: 50px +} + +.mCS-minimal.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { + background-color: #fff; + background-color: rgba(255, 255, 255, 0.2); + filter: "alpha(opacity=20)"; + -ms-filter: "alpha(opacity=20)" +} + +.mCS-minimal.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-minimal.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar { + background-color: #fff; + background-color: rgba(255, 255, 255, 0.5); + filter: "alpha(opacity=50)"; + -ms-filter: "alpha(opacity=50)" +} + +.mCS-minimal-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { + background-color: #000; + background-color: rgba(0, 0, 0, 0.2); + filter: "alpha(opacity=20)"; + -ms-filter: "alpha(opacity=20)" +} + +.mCS-minimal-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-minimal-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar { + background-color: #000; + background-color: rgba(0, 0, 0, 0.5); + filter: "alpha(opacity=50)"; + -ms-filter: "alpha(opacity=50)" +} + +.mCS-light-3.mCSB_scrollTools .mCSB_draggerRail, .mCS-dark-3.mCSB_scrollTools .mCSB_draggerRail { + width: 6px; + background-color: #000; + background-color: rgba(0, 0, 0, 0.2) +} + +.mCS-light-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-dark-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { + width: 6px +} + +.mCS-light-3.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-dark-3.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-light-3.mCSB_scrollTools_horizontal .mCSB_draggerRail, .mCS-dark-3.mCSB_scrollTools_horizontal .mCSB_draggerRail { + width: 100%; + height: 6px; + margin: 5px 0 +} + +.mCS-light-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, .mCS-light-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail, .mCS-dark-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, .mCS-dark-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail { + width: 12px +} + +.mCS-light-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, .mCS-light-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail, .mCS-dark-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, .mCS-dark-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail { + height: 12px; + margin: 2px 0 +} + +.mCS-light-3.mCSB_scrollTools .mCSB_buttonUp { + background-position: -32px -72px +} + +.mCS-light-3.mCSB_scrollTools .mCSB_buttonDown { + background-position: -32px -92px +} + +.mCS-light-3.mCSB_scrollTools .mCSB_buttonLeft { + background-position: -40px -112px +} + +.mCS-light-3.mCSB_scrollTools .mCSB_buttonRight { + background-position: -40px -128px +} + +.mCS-dark-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { + background-color: #000; + background-color: rgba(0, 0, 0, 0.75) +} + +.mCS-dark-3.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar { + background-color: #000; + background-color: rgba(0, 0, 0, 0.85) +} + +.mCS-dark-3.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-dark-3.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar { + background-color: #000; + background-color: rgba(0, 0, 0, 0.9) +} + +.mCS-dark-3.mCSB_scrollTools .mCSB_draggerRail { + background-color: #000; + background-color: rgba(0, 0, 0, 0.1) +} + +.mCS-dark-3.mCSB_scrollTools .mCSB_buttonUp { + background-position: -112px -72px +} + +.mCS-dark-3.mCSB_scrollTools .mCSB_buttonDown { + background-position: -112px -92px +} + +.mCS-dark-3.mCSB_scrollTools .mCSB_buttonLeft { + background-position: -120px -112px +} + +.mCS-dark-3.mCSB_scrollTools .mCSB_buttonRight { + background-position: -120px -128px +} + +.mCS-inset.mCSB_scrollTools .mCSB_draggerRail, .mCS-inset-dark.mCSB_scrollTools .mCSB_draggerRail, .mCS-inset-2.mCSB_scrollTools .mCSB_draggerRail, .mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail, .mCS-inset-3.mCSB_scrollTools .mCSB_draggerRail, .mCS-inset-3-dark.mCSB_scrollTools .mCSB_draggerRail { + width: 12px; + background-color: #000; + background-color: rgba(0, 0, 0, 0.2) +} + +.mCS-inset.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-inset-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-inset-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-inset-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { + width: 6px; + margin: 3px 5px; + position: absolute; + height: auto; + top: 0; + bottom: 0; + left: 0; + right: 0 +} + +.mCS-inset.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-inset-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-inset-2.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-inset-2-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-inset-3.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar, .mCS-inset-3-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar { + height: 6px; + margin: 5px 3px; + position: absolute; + width: auto; + top: 0; + bottom: 0; + left: 0; + right: 0 +} + +.mCS-inset.mCSB_scrollTools_horizontal .mCSB_draggerRail, .mCS-inset-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail, .mCS-inset-2.mCSB_scrollTools_horizontal .mCSB_draggerRail, .mCS-inset-2-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail, .mCS-inset-3.mCSB_scrollTools_horizontal .mCSB_draggerRail, .mCS-inset-3-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail { + width: 100%; + height: 12px; + margin: 2px 0 +} + +.mCS-inset.mCSB_scrollTools .mCSB_buttonUp, .mCS-inset-2.mCSB_scrollTools .mCSB_buttonUp, .mCS-inset-3.mCSB_scrollTools .mCSB_buttonUp { + background-position: -32px -72px +} + +.mCS-inset.mCSB_scrollTools .mCSB_buttonDown, .mCS-inset-2.mCSB_scrollTools .mCSB_buttonDown, .mCS-inset-3.mCSB_scrollTools .mCSB_buttonDown { + background-position: -32px -92px +} + +.mCS-inset.mCSB_scrollTools .mCSB_buttonLeft, .mCS-inset-2.mCSB_scrollTools .mCSB_buttonLeft, .mCS-inset-3.mCSB_scrollTools .mCSB_buttonLeft { + background-position: -40px -112px +} + +.mCS-inset.mCSB_scrollTools .mCSB_buttonRight, .mCS-inset-2.mCSB_scrollTools .mCSB_buttonRight, .mCS-inset-3.mCSB_scrollTools .mCSB_buttonRight { + background-position: -40px -128px +} + +.mCS-inset-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { + background-color: #000; + background-color: rgba(0, 0, 0, 0.75) +} + +.mCS-inset-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar, .mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar, .mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar { + background-color: #000; + background-color: rgba(0, 0, 0, 0.85) +} + +.mCS-inset-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-inset-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar, .mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar, .mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar { + background-color: #000; + background-color: rgba(0, 0, 0, 0.9) +} + +.mCS-inset-dark.mCSB_scrollTools .mCSB_draggerRail, .mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail, .mCS-inset-3-dark.mCSB_scrollTools .mCSB_draggerRail { + background-color: #000; + background-color: rgba(0, 0, 0, 0.1) +} + +.mCS-inset-dark.mCSB_scrollTools .mCSB_buttonUp, .mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonUp, .mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonUp { + background-position: -112px -72px +} + +.mCS-inset-dark.mCSB_scrollTools .mCSB_buttonDown, .mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonDown, .mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonDown { + background-position: -112px -92px +} + +.mCS-inset-dark.mCSB_scrollTools .mCSB_buttonLeft, .mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonLeft, .mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonLeft { + background-position: -120px -112px +} + +.mCS-inset-dark.mCSB_scrollTools .mCSB_buttonRight, .mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonRight, .mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonRight { + background-position: -120px -128px +} + +.mCS-inset-2.mCSB_scrollTools .mCSB_draggerRail, .mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail { + background-color: transparent; + border-width: 1px; + border-style: solid; + border-color: #fff; + border-color: rgba(255, 255, 255, 0.2); + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box +} + +.mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail { + border-color: #000; + border-color: rgba(0, 0, 0, 0.2) +} + +.mCS-inset-3.mCSB_scrollTools .mCSB_draggerRail { + background-color: #fff; + background-color: rgba(255, 255, 255, 0.6) +} + +.mCS-inset-3-dark.mCSB_scrollTools .mCSB_draggerRail { + background-color: #000; + background-color: rgba(0, 0, 0, 0.6) +} + +.mCS-inset-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { + background-color: #000; + background-color: rgba(0, 0, 0, 0.75) +} + +.mCS-inset-3.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar { + background-color: #000; + background-color: rgba(0, 0, 0, 0.85) +} + +.mCS-inset-3.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-inset-3.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar { + background-color: #000; + background-color: rgba(0, 0, 0, 0.9) +} + +.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar { + background-color: #fff; + background-color: rgba(255, 255, 255, 0.75) +} + +.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar { + background-color: #fff; + background-color: rgba(255, 255, 255, 0.85) +} + +.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar { + background-color: #fff; + background-color: rgba(255, 255, 255, 0.9) } \ No newline at end of file diff --git a/templates/client/static_client/html-cut/paid_exposition.html b/templates/client/static_client/html-cut/paid_exposition.html index 030d4b7a..d4407d2e 100644 --- a/templates/client/static_client/html-cut/paid_exposition.html +++ b/templates/client/static_client/html-cut/paid_exposition.html @@ -1,2633 +1,2633 @@ - - - - - - - - - - - - - Water Expo China 2014 - расписание, участники, билеты на Expomap.ru - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      -
      - -
      - - -
      -
      - - -
      - - - - - - - - - - - - -
      - - -
      - - - - - -
      - - - - - - - -
      -
      - - -
      -
      -
      - - Китайская международная выставка технологий водоподготовки, очистки сточных вод и управления водными ресурсами Water Expo China 2014 - -
      -
      - -
      - - - - - - - - - - - - - с - - 1 по Дек. 3, 2014 - - - - - - - -
      - -
      -
      -
      - No.7 Tianchen East Road, Chaoyang District, Beijing, 100105, China -
      - -
      - - -
      - -
      - -
      - -
      -
      - - - - - - -
      -
      Посетить/участвовать в выставке
      - -
      - - - -
      -
      Дополнительная информация
      - -
      - -
      Организатор:
      -
      - - - CHES (Chinese Hydraulic Engineering Society)
      - - NürnbergMesse China Co., Ltd
      - - Messe Frankfurt (Shanghai) Co Ltd.
      - - -
      - - -
      Веб-сайт:
      -
      - http://www.waterexpo.cn -
      - - - -
      Аудитория:
      -
      - Специалисты -
      - - - -
      Периодичность:
      -
      Ежегодно
      - - - -
      Экспонируемые продукты:
      -
      Автоматические системы управления
      Арматура и клапаны
      Водоочистка, водоподача и водоподготовка
      Газовые горелки и котлы
      Контрольно-измерительные приборы
      Насосное оборудование
      Санитарно-техническое оборудование
      Технологии водоснабжения и сточных вод
      Системы отопления
      Трубы и трубопроводы
      Фитинги и клапаны
      Бани, сауны, бассейны; Вихревые, массажные ванны
      Оборудование для аквапарков, саун и СПА
      Очистители воды
      Химические компоненты для бассейнов
      Системы водосбережения
      Энергоэффективность
      - - - - -
      - -
      -
      -
      -
      - - - -
      -
      Участники
      -

      Привлекайте целевых посетителей на стенд

      -

      Рекламировать участника

      -
      - - -
      - -
      - -
      -
      Посетители
      -
      -
        - - -
      - - - -

      Пока никто не отметился на событии.

      - - - - - - - - - Я планирую посетить - - - - -
      -
      - - -
      - - -

       Статистика

      - - - -
      - - - -
      - - -
      450 участников
      - - -
      24311 посетителей
      - - -
      Основано в 1989 году
      - -
      -
      - - - - -
      - - - - - - - -
      - -
      -
      Ближайшие выставки по тематике «Экология, очистка, утилизация»
      - -
      - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - - - - - - - - - - - - - -
      -
      -
      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      -
      - - - - - - - - - - - - - - - -
      - - - - - - - - - - - - - - + + + + + + + + + + + + + Water Expo China 2014 - расписание, участники, билеты на Expomap.ru + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      +
      + +
      + + +
      +
      + + +
      + + + + + + + + + + + + +
      + + +
      + + + + + +
      + + + + + + + +
      +
      + + +
      +
      +
      + + Китайская международная выставка технологий водоподготовки, очистки сточных вод и управления водными ресурсами Water Expo China 2014 + +
      +
      + +
      + + + + + + + + + + + + + с + + 1 по Дек. 3, 2014 + + + + + + + +
      + +
      +
      +
      + No.7 Tianchen East Road, Chaoyang District, Beijing, 100105, China +
      + +
      + + +
      + +
      + +
      + +
      +
      + + + + + + +
      +
      Посетить/участвовать в выставке
      + +
      + + + +
      +
      Дополнительная информация
      + +
      + +
      Организатор:
      +
      + + + CHES (Chinese Hydraulic Engineering Society)
      + + NürnbergMesse China Co., Ltd
      + + Messe Frankfurt (Shanghai) Co Ltd.
      + + +
      + + +
      Веб-сайт:
      +
      + http://www.waterexpo.cn +
      + + + +
      Аудитория:
      +
      + Специалисты +
      + + + +
      Периодичность:
      +
      Ежегодно
      + + + +
      Экспонируемые продукты:
      +
      Автоматические системы управления
      Арматура и клапаны
      Водоочистка, водоподача и водоподготовка
      Газовые горелки и котлы
      Контрольно-измерительные приборы
      Насосное оборудование
      Санитарно-техническое оборудование
      Технологии водоснабжения и сточных вод
      Системы отопления
      Трубы и трубопроводы
      Фитинги и клапаны
      Бани, сауны, бассейны; Вихревые, массажные ванны
      Оборудование для аквапарков, саун и СПА
      Очистители воды
      Химические компоненты для бассейнов
      Системы водосбережения
      Энергоэффективность
      + + + + +
      + +
      +
      +
      +
      + + + +
      +
      Участники
      +

      Привлекайте целевых посетителей на стенд

      +

      Рекламировать участника

      +
      + + +
      + +
      + +
      +
      Посетители
      +
      +
        + + +
      + + + +

      Пока никто не отметился на событии.

      + + + + + + + + + Я планирую посетить + + + + +
      +
      + + +
      + + +

       Статистика

      + + + +
      + + + +
      + + +
      450 участников
      + + +
      24311 посетителей
      + + +
      Основано в 1989 году
      + +
      +
      + + + + +
      + + + + + + + +
      + +
      +
      Ближайшие выставки по тематике «Экология, очистка, утилизация»
      + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + + + + + + + + + + + + + +
      +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + +
      +
      + + + + + + + + + + + + + + + +
      + + + + + + + + + + + + + + diff --git a/templates/client/static_client/js/Base64.js b/templates/client/static_client/js/Base64.js index 050360eb..a4ec5d22 100644 --- a/templates/client/static_client/js/Base64.js +++ b/templates/client/static_client/js/Base64.js @@ -1,134 +1,134 @@ -var Base64 = { - - // private property - _keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", - - // public method for encoding - encode : function (input) { - var output = ""; - var chr1, chr2, chr3, enc1, enc2, enc3, enc4; - var i = 0; - - input = Base64._utf8_encode(input); - - while (i < input.length) { - - chr1 = input.charCodeAt(i++); - chr2 = input.charCodeAt(i++); - chr3 = input.charCodeAt(i++); - - enc1 = chr1 >> 2; - enc2 = ((chr1 & 3) << 4) | (chr2 >> 4); - enc3 = ((chr2 & 15) << 2) | (chr3 >> 6); - enc4 = chr3 & 63; - - if (isNaN(chr2)) { - enc3 = enc4 = 64; - } else if (isNaN(chr3)) { - enc4 = 64; - } - - output = output + - this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) + - this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4); - - } - - return output; - }, - - // public method for decoding - decode : function (input) { - var output = ""; - var chr1, chr2, chr3; - var enc1, enc2, enc3, enc4; - var i = 0; - - input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); - - while (i < input.length) { - - enc1 = this._keyStr.indexOf(input.charAt(i++)); - enc2 = this._keyStr.indexOf(input.charAt(i++)); - enc3 = this._keyStr.indexOf(input.charAt(i++)); - enc4 = this._keyStr.indexOf(input.charAt(i++)); - - chr1 = (enc1 << 2) | (enc2 >> 4); - chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); - chr3 = ((enc3 & 3) << 6) | enc4; - - output = output + String.fromCharCode(chr1); - - if (enc3 != 64) { - output = output + String.fromCharCode(chr2); - } - if (enc4 != 64) { - output = output + String.fromCharCode(chr3); - } - - } - - output = Base64._utf8_decode(output); - - return output; - - }, - - // private method for UTF-8 encoding - _utf8_encode : function (string) { - string = string.replace(/\r\n/g,"\n"); - var utftext = ""; - - for (var n = 0; n < string.length; n++) { - - var c = string.charCodeAt(n); - - if (c < 128) { - utftext += String.fromCharCode(c); - } - else if((c > 127) && (c < 2048)) { - utftext += String.fromCharCode((c >> 6) | 192); - utftext += String.fromCharCode((c & 63) | 128); - } - else { - utftext += String.fromCharCode((c >> 12) | 224); - utftext += String.fromCharCode(((c >> 6) & 63) | 128); - utftext += String.fromCharCode((c & 63) | 128); - } - - } - - return utftext; - }, - - // private method for UTF-8 decoding - _utf8_decode : function (utftext) { - var string = ""; - var i = 0; - var c = c1 = c2 = 0; - - while ( i < utftext.length ) { - - c = utftext.charCodeAt(i); - - if (c < 128) { - string += String.fromCharCode(c); - i++; - } - else if((c > 191) && (c < 224)) { - c2 = utftext.charCodeAt(i+1); - string += String.fromCharCode(((c & 31) << 6) | (c2 & 63)); - i += 2; - } - else { - c2 = utftext.charCodeAt(i+1); - c3 = utftext.charCodeAt(i+2); - string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)); - i += 3; - } - - } - - return string; - } +var Base64 = { + + // private property + _keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", + + // public method for encoding + encode : function (input) { + var output = ""; + var chr1, chr2, chr3, enc1, enc2, enc3, enc4; + var i = 0; + + input = Base64._utf8_encode(input); + + while (i < input.length) { + + chr1 = input.charCodeAt(i++); + chr2 = input.charCodeAt(i++); + chr3 = input.charCodeAt(i++); + + enc1 = chr1 >> 2; + enc2 = ((chr1 & 3) << 4) | (chr2 >> 4); + enc3 = ((chr2 & 15) << 2) | (chr3 >> 6); + enc4 = chr3 & 63; + + if (isNaN(chr2)) { + enc3 = enc4 = 64; + } else if (isNaN(chr3)) { + enc4 = 64; + } + + output = output + + this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) + + this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4); + + } + + return output; + }, + + // public method for decoding + decode : function (input) { + var output = ""; + var chr1, chr2, chr3; + var enc1, enc2, enc3, enc4; + var i = 0; + + input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); + + while (i < input.length) { + + enc1 = this._keyStr.indexOf(input.charAt(i++)); + enc2 = this._keyStr.indexOf(input.charAt(i++)); + enc3 = this._keyStr.indexOf(input.charAt(i++)); + enc4 = this._keyStr.indexOf(input.charAt(i++)); + + chr1 = (enc1 << 2) | (enc2 >> 4); + chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); + chr3 = ((enc3 & 3) << 6) | enc4; + + output = output + String.fromCharCode(chr1); + + if (enc3 != 64) { + output = output + String.fromCharCode(chr2); + } + if (enc4 != 64) { + output = output + String.fromCharCode(chr3); + } + + } + + output = Base64._utf8_decode(output); + + return output; + + }, + + // private method for UTF-8 encoding + _utf8_encode : function (string) { + string = string.replace(/\r\n/g,"\n"); + var utftext = ""; + + for (var n = 0; n < string.length; n++) { + + var c = string.charCodeAt(n); + + if (c < 128) { + utftext += String.fromCharCode(c); + } + else if((c > 127) && (c < 2048)) { + utftext += String.fromCharCode((c >> 6) | 192); + utftext += String.fromCharCode((c & 63) | 128); + } + else { + utftext += String.fromCharCode((c >> 12) | 224); + utftext += String.fromCharCode(((c >> 6) & 63) | 128); + utftext += String.fromCharCode((c & 63) | 128); + } + + } + + return utftext; + }, + + // private method for UTF-8 decoding + _utf8_decode : function (utftext) { + var string = ""; + var i = 0; + var c = c1 = c2 = 0; + + while ( i < utftext.length ) { + + c = utftext.charCodeAt(i); + + if (c < 128) { + string += String.fromCharCode(c); + i++; + } + else if((c > 191) && (c < 224)) { + c2 = utftext.charCodeAt(i+1); + string += String.fromCharCode(((c & 31) << 6) | (c2 & 63)); + i += 2; + } + else { + c2 = utftext.charCodeAt(i+1); + c3 = utftext.charCodeAt(i+2); + string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)); + i += 3; + } + + } + + return string; + } } \ No newline at end of file diff --git a/templates/client/static_client/js/_modules/block.common.js b/templates/client/static_client/js/_modules/block.common.js index c61cda55..9dad6235 100644 --- a/templates/client/static_client/js/_modules/block.common.js +++ b/templates/client/static_client/js/_modules/block.common.js @@ -354,7 +354,7 @@ if (EXPO.common){ $staticFields = $('.'+validErrorClass); $waiter = $('#wait-ajax:not(.absolute)').css({'z-index': '8031'}); - $('.'+addClass+', .'+remClass).on('click', function(event){ + $('body').on('click', '.' + addClass + ', .' + remClass, function(event) { addText = self.opt.addCalendarText; remText = self.opt.removeCalendarText; event.preventDefault(); diff --git a/templates/client/static_client/js/_modules/block.exposition.list.js b/templates/client/static_client/js/_modules/block.exposition.list.js index e98f7d87..b659578a 100644 --- a/templates/client/static_client/js/_modules/block.exposition.list.js +++ b/templates/client/static_client/js/_modules/block.exposition.list.js @@ -37,10 +37,10 @@ if (EXPO.exposition.list){ response, self = this, handler = function (data) { - if (data.success){ + if (data.success) { console.log('ok'); $(self.DOMbutton).addClass('active'); - }else{ + } else { console.log('data not send'); } diff --git a/templates/client/static_client/js/_modules/block.newsFilter.js b/templates/client/static_client/js/_modules/block.newsFilter.js index 2fa4211f..50b974e7 100644 --- a/templates/client/static_client/js/_modules/block.newsFilter.js +++ b/templates/client/static_client/js/_modules/block.newsFilter.js @@ -1,109 +1,109 @@ -var EXPO = EXPO || {}; //isolated namespace -if (EXPO.newsFilter) { - console.warn('WARNING: EXPO.newsFilter is already defined!'); -} else { - EXPO.newsFilter = (function () { - /** - * private (visible inside this module only) variables - */ - /** - * @type {Object} - module API interafce realization - */ - var that = {}; - /** - * @type {Object} default setting - */ - that.opt = {}; - /** - * dependencies.Place where you can switch on dependencies for module - * @type {EXPO.common|*} - mostly used in project functions and data (block.common.js) - */ - var com = EXPO.common; - - /** - * current module general initialization - * @param {Object} options - options recieved from web page view - */ - - - that.init = function (options) { - // settings extending - $.extend(this.opt, options); - // begin of initialization - var self = this; - - $(function () { - var $page = $(".news-filter-block"), - $theme = $('.custom-select.theme select', $page), - $tags = $(".custom-select.tags input", $page), - $form = $page.children("form"); - $theme.attr("multiple","multiple"); - $theme.select2({ - placeholder: self.opt.theme.placeholder, - width: '368px', - maximumSelectionSize: 3 - - - - }); - $tags.val('0'); - $tags.select2({ - placeholder: self.opt.tags.placeholder, - width: '368px', - multiple: true, - maximumSelectionSize: 5, - ajax: { - - url: self.opt.tags.url, - dataType: "json", - quietMillis: 200, - - data: function(term, page){ - var themes = $theme.val(); - if(!themes){ - themes = []; - } - return {term: term, - page: page, - themes: themes}; - }, - - results: function (data) { - var results = []; - - $.each(data, function(index, item){ - results.push({ - id: item.id, - text: item.label - }); - }); - return {results: results}; - } - }, - initSelection : function(element, callback) { - var data = [], - dataObjArr; - element.val(''); - if($.trim(element.attr('data-predifined')) != '' && $.trim(element.attr('data-predifined')) != '[]'){ - dataObjArr = JSON.parse(element.attr('data-predifined')); - callback(dataObjArr); - }else{ - $(" .custom-select.tags .select2-input").width(336).addClass('select2-default').val(self.opt.tags.placeholder); - - } - - } - - }); - $tags.on('change', function (e) { - $form.submit(); - }); - $theme.on('change', function (e) { - $form.submit(); - }); - }); - - }; - return that; - }()); -} +var EXPO = EXPO || {}; //isolated namespace +if (EXPO.newsFilter) { + console.warn('WARNING: EXPO.newsFilter is already defined!'); +} else { + EXPO.newsFilter = (function () { + /** + * private (visible inside this module only) variables + */ + /** + * @type {Object} - module API interafce realization + */ + var that = {}; + /** + * @type {Object} default setting + */ + that.opt = {}; + /** + * dependencies.Place where you can switch on dependencies for module + * @type {EXPO.common|*} - mostly used in project functions and data (block.common.js) + */ + var com = EXPO.common; + + /** + * current module general initialization + * @param {Object} options - options recieved from web page view + */ + + + that.init = function (options) { + // settings extending + $.extend(this.opt, options); + // begin of initialization + var self = this; + + $(function () { + var $page = $(".news-filter-block"), + $theme = $('.custom-select.theme select', $page), + $tags = $(".custom-select.tags input", $page), + $form = $page.children("form"); + $theme.attr("multiple","multiple"); + $theme.select2({ + placeholder: self.opt.theme.placeholder, + width: '368px', + maximumSelectionSize: 3 + + + + }); + $tags.val('0'); + $tags.select2({ + placeholder: self.opt.tags.placeholder, + width: '368px', + multiple: true, + maximumSelectionSize: 5, + ajax: { + + url: self.opt.tags.url, + dataType: "json", + quietMillis: 200, + + data: function(term, page){ + var themes = $theme.val(); + if(!themes){ + themes = []; + } + return {term: term, + page: page, + themes: themes}; + }, + + results: function (data) { + var results = []; + + $.each(data, function(index, item){ + results.push({ + id: item.id, + text: item.label + }); + }); + return {results: results}; + } + }, + initSelection : function(element, callback) { + var data = [], + dataObjArr; + element.val(''); + if($.trim(element.attr('data-predifined')) != '' && $.trim(element.attr('data-predifined')) != '[]'){ + dataObjArr = JSON.parse(element.attr('data-predifined')); + callback(dataObjArr); + }else{ + $(" .custom-select.tags .select2-input").width(336).addClass('select2-default').val(self.opt.tags.placeholder); + + } + + } + + }); + $tags.on('change', function (e) { + $form.submit(); + }); + $theme.on('change', function (e) { + $form.submit(); + }); + }); + + }; + return that; + }()); +} diff --git a/templates/client/static_client/js/_modules/block.registration.completion.js b/templates/client/static_client/js/_modules/block.registration.completion.js index 67d623cb..dc1c5931 100644 --- a/templates/client/static_client/js/_modules/block.registration.completion.js +++ b/templates/client/static_client/js/_modules/block.registration.completion.js @@ -1,171 +1,171 @@ -var EXPO = EXPO || {}; //isolated namespace -EXPO.registration = EXPO.registration || {}; -if (EXPO.registration.completion) { - console.warn('WARNING: EXPO.registration..completion is already defined!'); -} else { - EXPO.registration.completion = (function () { - /** - * private (visible inside this module only) variables - */ - /** - * @type {Object} - module API interafce realization - */ - var that = {}, - /** - * fires when data is sended and response recieved - * @param {Object} data - data recieved from server - */ - registrationSuccess = function (data) { - var $item, - $popup = $('#end-reg'), - lineClass = 'pwf-line', - activeClass = EXPO.common.opt.activeClass, - phoneClass = 'phone', - labelClass = 'label', - errClass = EXPO.common.opt.errMessageClass; - $('.'+errClass,$popup).removeClass(activeClass); - if (data.success) { - location = data.redirect; - } - else { - console.log(data); - for (var property in data.errors) { - if (data.errors.hasOwnProperty(property)) { - $itemWrap = $('#id_'+property).closest('.'+lineClass); - $('.'+errClass,$itemWrap).addClass(activeClass).text(data.errors[property][0]); - if($itemWrap.hasClass(phoneClass)){ - $('.'+labelClass,$itemWrap).hide(); - }; - } - } - // err-message-box - } - }, - placeInput = function (width) { - $('#id_country') - .val('159') - .select2({ - placeholder: "Ваша страна", - width: width - }) - /** - * change phone code when country is selected by user - */ - .on("change", function () { - var phoneCode = $('option:selected', this).attr("data-phone-code"); - if($.trim(phoneCode) !=''){ - $('#id_code_country').select2("val",phoneCode); - }else{ - $('#id_code_country').select2("val",''); - - } - }); - - $('#id_city').select2({ - placeholder: "Ваш город", - width: width, - ajax: { - - url: "/city/get-city/", - dataType: "json", - quietMillis: 200, - - data: function(term, page, country){ - var country = $('#id_country').val(); - return {term: term, - page: page, - country: country}; - }, - - results: function (data) { - var results = []; - $.each(data, function(index, item){ - results.push({ - id: item.id, - text: item.label - }); - }); - return {results: results}; - } - }, - initSelection : function(element, callback) { - var id= $(element).val(); - var text = $(element).attr('data-init-text'); - callback({id: id, text:text}); - - } - - }); - }; - /** - * @type {Object} default setting - */ - that.opt = {}; - /** - * dependencies.Place where you can switch on dependencies for module - * @type {EXPO.common|*} - mostly used in project functions and data (block.common.js) - */ - var com = EXPO.common; - - $(function () { - var $form = $('#end-reg-form'); - $('body').addClass('body-fixed'); - placeInput('100%'); - $('#id_code_country').val('7').select2({ - width: '95px' - }); - - - - $.fancybox.open([ - { - href: '#end-reg' - } - ], { - closeBtn: false, // hide close button - closeClick: false, // prevents closing when clicking INSIDE fancybox - modal: true, - scrolling: 'no', - helpers: { - // prevents closing when clicking OUTSIDE fancybox - overlay: {closeClick: false}, - locked : true - }, - keys: { - // prevents closing when press ESC button - close: null - } - - }); - - - $form.on('submit', function (e) { - e.preventDefault(); - var url = $(this).attr('action'); - var formData = $(this).serialize(); - $.post(url, formData, registrationSuccess) - }); - $(".url-field:not(.err) input",$form).focusin(function () { - $(this).parent().siblings(".hint-box").fadeIn(); - }); - $(".url-field:not(err) input",$form).focusout(function () { - $(this).parent().siblings(".hint-box").fadeOut(); - }); - - - - }); - - /** - * current module general initialization - * @param {Object} options - options recieved from web page view - */ - that.init = function (options) { - // settings extending - $.extend(this.opt, options); - // begin of initialization - - }; - return that; - }()); -} +var EXPO = EXPO || {}; //isolated namespace +EXPO.registration = EXPO.registration || {}; +if (EXPO.registration.completion) { + console.warn('WARNING: EXPO.registration..completion is already defined!'); +} else { + EXPO.registration.completion = (function () { + /** + * private (visible inside this module only) variables + */ + /** + * @type {Object} - module API interafce realization + */ + var that = {}, + /** + * fires when data is sended and response recieved + * @param {Object} data - data recieved from server + */ + registrationSuccess = function (data) { + var $item, + $popup = $('#end-reg'), + lineClass = 'pwf-line', + activeClass = EXPO.common.opt.activeClass, + phoneClass = 'phone', + labelClass = 'label', + errClass = EXPO.common.opt.errMessageClass; + $('.'+errClass,$popup).removeClass(activeClass); + if (data.success) { + location = data.redirect; + } + else { + console.log(data); + for (var property in data.errors) { + if (data.errors.hasOwnProperty(property)) { + $itemWrap = $('#id_'+property).closest('.'+lineClass); + $('.'+errClass,$itemWrap).addClass(activeClass).text(data.errors[property][0]); + if($itemWrap.hasClass(phoneClass)){ + $('.'+labelClass,$itemWrap).hide(); + }; + } + } + // err-message-box + } + }, + placeInput = function (width) { + $('#id_country') + .val('159') + .select2({ + placeholder: "Ваша страна", + width: width + }) + /** + * change phone code when country is selected by user + */ + .on("change", function () { + var phoneCode = $('option:selected', this).attr("data-phone-code"); + if($.trim(phoneCode) !=''){ + $('#id_code_country').select2("val",phoneCode); + }else{ + $('#id_code_country').select2("val",''); + + } + }); + + $('#id_city').select2({ + placeholder: "Ваш город", + width: width, + ajax: { + + url: "/city/get-city/", + dataType: "json", + quietMillis: 200, + + data: function(term, page, country){ + var country = $('#id_country').val(); + return {term: term, + page: page, + country: country}; + }, + + results: function (data) { + var results = []; + $.each(data, function(index, item){ + results.push({ + id: item.id, + text: item.label + }); + }); + return {results: results}; + } + }, + initSelection : function(element, callback) { + var id= $(element).val(); + var text = $(element).attr('data-init-text'); + callback({id: id, text:text}); + + } + + }); + }; + /** + * @type {Object} default setting + */ + that.opt = {}; + /** + * dependencies.Place where you can switch on dependencies for module + * @type {EXPO.common|*} - mostly used in project functions and data (block.common.js) + */ + var com = EXPO.common; + + $(function () { + var $form = $('#end-reg-form'); + $('body').addClass('body-fixed'); + placeInput('100%'); + $('#id_code_country').val('7').select2({ + width: '95px' + }); + + + + $.fancybox.open([ + { + href: '#end-reg' + } + ], { + closeBtn: false, // hide close button + closeClick: false, // prevents closing when clicking INSIDE fancybox + modal: true, + scrolling: 'no', + helpers: { + // prevents closing when clicking OUTSIDE fancybox + overlay: {closeClick: false}, + locked : true + }, + keys: { + // prevents closing when press ESC button + close: null + } + + }); + + + $form.on('submit', function (e) { + e.preventDefault(); + var url = $(this).attr('action'); + var formData = $(this).serialize(); + $.post(url, formData, registrationSuccess) + }); + $(".url-field:not(.err) input",$form).focusin(function () { + $(this).parent().siblings(".hint-box").fadeIn(); + }); + $(".url-field:not(err) input",$form).focusout(function () { + $(this).parent().siblings(".hint-box").fadeOut(); + }); + + + + }); + + /** + * current module general initialization + * @param {Object} options - options recieved from web page view + */ + that.init = function (options) { + // settings extending + $.extend(this.opt, options); + // begin of initialization + + }; + return that; + }()); +} diff --git a/templates/client/static_client/js/_modules/page.about.js b/templates/client/static_client/js/_modules/page.about.js index cc600f4c..4e04497a 100644 --- a/templates/client/static_client/js/_modules/page.about.js +++ b/templates/client/static_client/js/_modules/page.about.js @@ -1,96 +1,96 @@ -var EXPO = EXPO || {}; //isolated namespace -if (EXPO.about) { - console.warn('WARNING: EXPO.about is already defined!'); -} else { - EXPO.about = (function () { - /** - * private (visible inside this module only) variables - */ - /** - * @type {Object} - module API interafce realization - */ - var that = {}; - /** - * @type {Object} default setting - */ - that.opt = {}; - /** - * dependencies.Place where you can switch on dependencies for module - * @type {EXPO.common|*} - mostly used in project functions and data (block.common.js) - */ - var com = EXPO.common; - - /** - * tabs object constructor - * @param options - options (id's and classes to specifie HTML elements) - * @constructor - */ - var Tabs = function (options) { - this.opt = options; - var self = this, - opt = this.opt, - tabClass = opt.tabClass, - activeClass = opt.activeClass; - /** - * tabs navigation menu - * @type {*|jQuery|HTMLElement} - * @public - */ - this.$tabsList = $('#'+opt.listId); - /** - * tabs body container - * @type {*|jQuery|HTMLElement} - * @public - */ - this.$tabs = $('#'+opt.tabsId); - /** - * short peview for content of each tabs - * @type {*|jQuery|HTMLElement} - * @public - */ - this.$tabsOpenings = $('#'+opt.tabsOpeningId); - - $('a',this.$tabsList).on('click', function () { - $(this).parent('li').addClass(activeClass).siblings().removeClass(activeClass); - var tabId = $(this).attr('href'); - tabId = tabId.replace('#',''); - self.setActive(tabId); - return false; - }); - - - }; - Tabs.prototype = { - /** - * make specified tab visible - * @param tabId - tab DOM id pararmeter - * @public - */ - setActive: function (tabId) { - var activeClass = this.opt.activeClass, - tabClass = this.opt.tabClass, - postfix = this.opt.postfix; - this.$tabs.children('.'+tabClass).hide().removeClass(activeClass); - this.$tabs.children('#'+tabId).fadeIn(function () { - $(this).addClass(activeClass) - }); - this.$tabsOpenings.children('.'+tabClass).removeClass(activeClass); - this.$tabsOpenings.children('#'+tabId+postfix).addClass(activeClass); - - } - }; - /** - * current module general initialization - * @param {Object} options - options recieved from web page view - */ - that.init = function (options) { - // settings extending - $.extend(this.opt, options); - // begin of initialization - var self = this; - this.tabs = new Tabs(this.opt.tabs); - - }; - return that; - }()); -} +var EXPO = EXPO || {}; //isolated namespace +if (EXPO.about) { + console.warn('WARNING: EXPO.about is already defined!'); +} else { + EXPO.about = (function () { + /** + * private (visible inside this module only) variables + */ + /** + * @type {Object} - module API interafce realization + */ + var that = {}; + /** + * @type {Object} default setting + */ + that.opt = {}; + /** + * dependencies.Place where you can switch on dependencies for module + * @type {EXPO.common|*} - mostly used in project functions and data (block.common.js) + */ + var com = EXPO.common; + + /** + * tabs object constructor + * @param options - options (id's and classes to specifie HTML elements) + * @constructor + */ + var Tabs = function (options) { + this.opt = options; + var self = this, + opt = this.opt, + tabClass = opt.tabClass, + activeClass = opt.activeClass; + /** + * tabs navigation menu + * @type {*|jQuery|HTMLElement} + * @public + */ + this.$tabsList = $('#'+opt.listId); + /** + * tabs body container + * @type {*|jQuery|HTMLElement} + * @public + */ + this.$tabs = $('#'+opt.tabsId); + /** + * short peview for content of each tabs + * @type {*|jQuery|HTMLElement} + * @public + */ + this.$tabsOpenings = $('#'+opt.tabsOpeningId); + + $('a',this.$tabsList).on('click', function () { + $(this).parent('li').addClass(activeClass).siblings().removeClass(activeClass); + var tabId = $(this).attr('href'); + tabId = tabId.replace('#',''); + self.setActive(tabId); + return false; + }); + + + }; + Tabs.prototype = { + /** + * make specified tab visible + * @param tabId - tab DOM id pararmeter + * @public + */ + setActive: function (tabId) { + var activeClass = this.opt.activeClass, + tabClass = this.opt.tabClass, + postfix = this.opt.postfix; + this.$tabs.children('.'+tabClass).hide().removeClass(activeClass); + this.$tabs.children('#'+tabId).fadeIn(function () { + $(this).addClass(activeClass) + }); + this.$tabsOpenings.children('.'+tabClass).removeClass(activeClass); + this.$tabsOpenings.children('#'+tabId+postfix).addClass(activeClass); + + } + }; + /** + * current module general initialization + * @param {Object} options - options recieved from web page view + */ + that.init = function (options) { + // settings extending + $.extend(this.opt, options); + // begin of initialization + var self = this; + this.tabs = new Tabs(this.opt.tabs); + + }; + return that; + }()); +} diff --git a/templates/client/static_client/js/_modules/page.advertising.js b/templates/client/static_client/js/_modules/page.advertising.js index 6726ba5d..3345c72a 100644 --- a/templates/client/static_client/js/_modules/page.advertising.js +++ b/templates/client/static_client/js/_modules/page.advertising.js @@ -1,51 +1,51 @@ -var EXPO = EXPO || {}; //isolated namespace -if (EXPO.advertising) { - console.warn('WARNING: EXPO.advertising is already defined!'); -} else { - EXPO.advertising = (function () { - /** - * private (visible inside this module only) variables - */ - /** - * @type {Object} - module API interafce realization - */ - var that = {}; - /** - * @type {Object} default setting - */ - that.opt = {}; - /** - * dependencies.Place where you can switch on dependencies for module - * @type {EXPO.common|*} - mostly used in project functions and data (block.common.js) - */ - var com = EXPO.common; - - /** - * current module general initialization - * @param {Object} options - options recieved from web page view - */ - that.init = function (options) { - /** - * default module options - * @type {Object} - */ - this.opt = { - linkClass:"advert-modal", - inputId:"id_type" - - }; - // settings extending - $.extend(this.opt, options); - // begin of initialization - var self = this, - opt = this.opt; - - $('.'+opt.linkClass).on("mousedown", function () { - $(document.getElementById(opt.inputId)).val($(this).attr("data-type-title")); - }); - - - }; - return that; - }()); -} +var EXPO = EXPO || {}; //isolated namespace +if (EXPO.advertising) { + console.warn('WARNING: EXPO.advertising is already defined!'); +} else { + EXPO.advertising = (function () { + /** + * private (visible inside this module only) variables + */ + /** + * @type {Object} - module API interafce realization + */ + var that = {}; + /** + * @type {Object} default setting + */ + that.opt = {}; + /** + * dependencies.Place where you can switch on dependencies for module + * @type {EXPO.common|*} - mostly used in project functions and data (block.common.js) + */ + var com = EXPO.common; + + /** + * current module general initialization + * @param {Object} options - options recieved from web page view + */ + that.init = function (options) { + /** + * default module options + * @type {Object} + */ + this.opt = { + linkClass:"advert-modal", + inputId:"id_type" + + }; + // settings extending + $.extend(this.opt, options); + // begin of initialization + var self = this, + opt = this.opt; + + $('.'+opt.linkClass).on("mousedown", function () { + $(document.getElementById(opt.inputId)).val($(this).attr("data-type-title")); + }); + + + }; + return that; + }()); +} diff --git a/templates/client/static_client/js/_modules/page.organizer.add.js b/templates/client/static_client/js/_modules/page.organizer.add.js index ba980f49..fc5aef32 100644 --- a/templates/client/static_client/js/_modules/page.organizer.add.js +++ b/templates/client/static_client/js/_modules/page.organizer.add.js @@ -1,86 +1,86 @@ -var EXPO = EXPO || {}; //isolated namespace -EXPO.organizer = EXPO.organizer || {}; - -if (EXPO.organizer.add) { - console.warn('WARNING: EXPO.eventsFeed is already defined!'); -} else { - EXPO.organizer.add = (function () { - /** - * private (visible inside this module only) variables - */ - /** - * @type {Object} - module API interafce realization - */ - var that = {}; - /** - * @type {Object} default setting - */ - that.opt = {}; - /** - * dependencies.Place where you can switch on dependencies for module - * @type {EXPO.common|*} - mostly used in project functions and data (block.common.js) - */ - var com = EXPO.common; - /** - * current module general initialization - * @param {Object} options - options recieved from web page view - */ - that.init = function (options) { - // settings extending - $.extend(this.opt, options); - // begin of initialization - var self = this; - $(function () { - /* Если на страницах "Добавить событие" не выбран ни один из типов форму делаем неактивной и наоборот */ - $('#'+self.opt.steps[0].id).each(function () { - var $form = $(this); - var $rads = $form.find('.'+self.opt.steps[0] .typeClass+' input[type="radio"]'); - var $formBody = $('.'+self.opt.steps[0].formBodyClass, $form); - - function formState () { - var radsChecked = $rads.filter(':checked').length > 0; - var $inputs = $formBody.find('input, select, textarea, button'); - var $selectBox = $formBody.find('div.c-select-box'); - - if (radsChecked) { - $formBody.removeClass('disabled'); - $selectBox.removeClass('disabled'); - $inputs.prop('disabled', false); - } else { - $formBody.addClass('disabled'); - $selectBox.addClass('disabled'); - $inputs.prop('disabled', true); - } - } - - formState(); - $rads.on('change', formState); - for(var i =0;i< self.opt.steps[0].dateClasses.length; i++){ - $('.'+self.opt.steps[0].dateClasses[i], $form).datepicker({ - dateFormat: 'dd.mm.yy', - showOn: 'button', - showOtherMonths: true, - constrainInput: true, - onClose: function( selectedDate ) { - var $dateInput; - if($(this).hasClass('dateFrom')){ - $dateInput = $(this).closest('.period').find('.'+self.opt.steps[0].dateClasses[1]); - $dateInput.datepicker( "option", "minDate", selectedDate ); - }else if($(this).hasClass('dateTo')){ - $dateInput = $(this).closest('.period').find('.'+self.opt.steps[0].dateClasses[0]); - $dateInput.datepicker( "option", "maxDate", selectedDate ); - }else if($(this).hasClass('dateFromLast')){ - $dateInput = $form.find('.date-to-date').find('.'+self.opt.steps[0].dateClasses[1]); - $dateInput.datepicker( "option", "minDate", selectedDate ); - } - } - }); - } - }); - }); - - - }; - return that; - }()); -} +var EXPO = EXPO || {}; //isolated namespace +EXPO.organizer = EXPO.organizer || {}; + +if (EXPO.organizer.add) { + console.warn('WARNING: EXPO.eventsFeed is already defined!'); +} else { + EXPO.organizer.add = (function () { + /** + * private (visible inside this module only) variables + */ + /** + * @type {Object} - module API interafce realization + */ + var that = {}; + /** + * @type {Object} default setting + */ + that.opt = {}; + /** + * dependencies.Place where you can switch on dependencies for module + * @type {EXPO.common|*} - mostly used in project functions and data (block.common.js) + */ + var com = EXPO.common; + /** + * current module general initialization + * @param {Object} options - options recieved from web page view + */ + that.init = function (options) { + // settings extending + $.extend(this.opt, options); + // begin of initialization + var self = this; + $(function () { + /* Если на страницах "Добавить событие" не выбран ни один из типов форму делаем неактивной и наоборот */ + $('#'+self.opt.steps[0].id).each(function () { + var $form = $(this); + var $rads = $form.find('.'+self.opt.steps[0] .typeClass+' input[type="radio"]'); + var $formBody = $('.'+self.opt.steps[0].formBodyClass, $form); + + function formState () { + var radsChecked = $rads.filter(':checked').length > 0; + var $inputs = $formBody.find('input, select, textarea, button'); + var $selectBox = $formBody.find('div.c-select-box'); + + if (radsChecked) { + $formBody.removeClass('disabled'); + $selectBox.removeClass('disabled'); + $inputs.prop('disabled', false); + } else { + $formBody.addClass('disabled'); + $selectBox.addClass('disabled'); + $inputs.prop('disabled', true); + } + } + + formState(); + $rads.on('change', formState); + for(var i =0;i< self.opt.steps[0].dateClasses.length; i++){ + $('.'+self.opt.steps[0].dateClasses[i], $form).datepicker({ + dateFormat: 'dd.mm.yy', + showOn: 'button', + showOtherMonths: true, + constrainInput: true, + onClose: function( selectedDate ) { + var $dateInput; + if($(this).hasClass('dateFrom')){ + $dateInput = $(this).closest('.period').find('.'+self.opt.steps[0].dateClasses[1]); + $dateInput.datepicker( "option", "minDate", selectedDate ); + }else if($(this).hasClass('dateTo')){ + $dateInput = $(this).closest('.period').find('.'+self.opt.steps[0].dateClasses[0]); + $dateInput.datepicker( "option", "maxDate", selectedDate ); + }else if($(this).hasClass('dateFromLast')){ + $dateInput = $form.find('.date-to-date').find('.'+self.opt.steps[0].dateClasses[1]); + $dateInput.datepicker( "option", "minDate", selectedDate ); + } + } + }); + } + }); + }); + + + }; + return that; + }()); +} diff --git a/templates/client/static_client/js/_modules/page.tour.js b/templates/client/static_client/js/_modules/page.tour.js index 2af20db5..a2773950 100644 --- a/templates/client/static_client/js/_modules/page.tour.js +++ b/templates/client/static_client/js/_modules/page.tour.js @@ -1,83 +1,83 @@ -var EXPO = EXPO || {}; //isolated namespace -if (EXPO.tour) { - console.warn('WARNING: EXPO.tour is already defined!'); -} else { - EXPO.tour = (function () { - /** - * private (visible inside this module only) variables - */ - /** - * @type {Object} - module API interafce realization - */ - var that = {}; - /** - * @type {Object} default setting - */ - that.opt = {}; - /** - * dependencies.Place where you can switch on dependencies for module - * @type {EXPO.common|*} - mostly used in project functions and data (block.common.js) - */ - var com = EXPO.common; - - /** - * current module general initialization - * @param {Object} options - options recieved from web page view - */ - that.init = function (options) { - /** - * default module options - * @type {Object} - */ - this.opt = { - fromDateId:"id_fr", - toDateId:"id_to" - - }; - // settings extending - $.extend(this.opt, options); - // begin of initialization - var self = this, - opt = this.opt, - $dateFrom = $(document.getElementById(opt.fromDateId)), - $dateTo = $(document.getElementById(opt.toDateId)); - $(function () { - $.datepicker.setDefaults($.datepicker.regional["ru"]); - - $dateFrom.datepicker({ - dateFormat: 'dd.mm.yy', - showOn: 'button', - showOtherMonths: true, - constrainInput: true, - onClose: function( selectedDate ) { - $dateTo.datepicker( "option", "minDate", selectedDate ); - } - }).inputmask("99.99.9999",{ - showMaskOnHover:false, - insertMode:false, - 'oncomplete': function () { - $activeField = this; - } - }); - $dateTo.datepicker({ - dateFormat: 'dd.mm.yy', - showOn: 'button', - showOtherMonths: true, - constrainInput: true, - onClose: function( selectedDate ) { - $dateFrom.datepicker( "option", "maxDate", selectedDate ); - } - }).inputmask("99.99.9999",{ - showMaskOnHover:false, - insertMode:false, - 'oncomplete': function () { - $activeField = this; - } - }); - }); - - - }; - return that; - }()); -} +var EXPO = EXPO || {}; //isolated namespace +if (EXPO.tour) { + console.warn('WARNING: EXPO.tour is already defined!'); +} else { + EXPO.tour = (function () { + /** + * private (visible inside this module only) variables + */ + /** + * @type {Object} - module API interafce realization + */ + var that = {}; + /** + * @type {Object} default setting + */ + that.opt = {}; + /** + * dependencies.Place where you can switch on dependencies for module + * @type {EXPO.common|*} - mostly used in project functions and data (block.common.js) + */ + var com = EXPO.common; + + /** + * current module general initialization + * @param {Object} options - options recieved from web page view + */ + that.init = function (options) { + /** + * default module options + * @type {Object} + */ + this.opt = { + fromDateId:"id_fr", + toDateId:"id_to" + + }; + // settings extending + $.extend(this.opt, options); + // begin of initialization + var self = this, + opt = this.opt, + $dateFrom = $(document.getElementById(opt.fromDateId)), + $dateTo = $(document.getElementById(opt.toDateId)); + $(function () { + $.datepicker.setDefaults($.datepicker.regional["ru"]); + + $dateFrom.datepicker({ + dateFormat: 'dd.mm.yy', + showOn: 'button', + showOtherMonths: true, + constrainInput: true, + onClose: function( selectedDate ) { + $dateTo.datepicker( "option", "minDate", selectedDate ); + } + }).inputmask("99.99.9999",{ + showMaskOnHover:false, + insertMode:false, + 'oncomplete': function () { + $activeField = this; + } + }); + $dateTo.datepicker({ + dateFormat: 'dd.mm.yy', + showOn: 'button', + showOtherMonths: true, + constrainInput: true, + onClose: function( selectedDate ) { + $dateFrom.datepicker( "option", "maxDate", selectedDate ); + } + }).inputmask("99.99.9999",{ + showMaskOnHover:false, + insertMode:false, + 'oncomplete': function () { + $activeField = this; + } + }); + }); + + + }; + return that; + }()); +} diff --git a/templates/client/static_client/js/_modules/page.translator.js b/templates/client/static_client/js/_modules/page.translator.js index faf7b628..75629092 100644 --- a/templates/client/static_client/js/_modules/page.translator.js +++ b/templates/client/static_client/js/_modules/page.translator.js @@ -1,83 +1,83 @@ -var EXPO = EXPO || {}; //isolated namespace -if (EXPO.translator) { - console.warn('WARNING: EXPO.translator is already defined!'); -} else { - EXPO.translator = (function () { - /** - * private (visible inside this module only) variables - */ - /** - * @type {Object} - module API interafce realization - */ - var that = {}; - /** - * @type {Object} default setting - */ - that.opt = {}; - /** - * dependencies.Place where you can switch on dependencies for module - * @type {EXPO.common|*} - mostly used in project functions and data (block.common.js) - */ - var com = EXPO.common; - - /** - * current module general initialization - * @param {Object} options - options recieved from web page view - */ - that.init = function (options) { - /** - * default module options - * @type {Object} - */ - this.opt = { - fromDateId:"id_fr", - toDateId:"id_to" - - }; - // settings extending - $.extend(this.opt, options); - // begin of initialization - var self = this, - opt = this.opt, - $dateFrom = $(document.getElementById(opt.fromDateId)), - $dateTo = $(document.getElementById(opt.toDateId)); - $(function () { - $.datepicker.setDefaults($.datepicker.regional["ru"]); - - $dateFrom.datepicker({ - dateFormat: 'dd.mm.yy', - showOn: 'button', - showOtherMonths: true, - constrainInput: true, - onClose: function( selectedDate ) { - $dateTo.datepicker( "option", "minDate", selectedDate ); - } - }).inputmask("99.99.9999",{ - showMaskOnHover:false, - insertMode:false, - 'oncomplete': function () { - $activeField = this; - } - }); - $dateTo.datepicker({ - dateFormat: 'dd.mm.yy', - showOn: 'button', - showOtherMonths: true, - constrainInput: true, - onClose: function( selectedDate ) { - $dateFrom.datepicker( "option", "maxDate", selectedDate ); - } - }).inputmask("99.99.9999",{ - showMaskOnHover:false, - insertMode:false, - 'oncomplete': function () { - $activeField = this; - } - }); - }); - - - }; - return that; - }()); -} +var EXPO = EXPO || {}; //isolated namespace +if (EXPO.translator) { + console.warn('WARNING: EXPO.translator is already defined!'); +} else { + EXPO.translator = (function () { + /** + * private (visible inside this module only) variables + */ + /** + * @type {Object} - module API interafce realization + */ + var that = {}; + /** + * @type {Object} default setting + */ + that.opt = {}; + /** + * dependencies.Place where you can switch on dependencies for module + * @type {EXPO.common|*} - mostly used in project functions and data (block.common.js) + */ + var com = EXPO.common; + + /** + * current module general initialization + * @param {Object} options - options recieved from web page view + */ + that.init = function (options) { + /** + * default module options + * @type {Object} + */ + this.opt = { + fromDateId:"id_fr", + toDateId:"id_to" + + }; + // settings extending + $.extend(this.opt, options); + // begin of initialization + var self = this, + opt = this.opt, + $dateFrom = $(document.getElementById(opt.fromDateId)), + $dateTo = $(document.getElementById(opt.toDateId)); + $(function () { + $.datepicker.setDefaults($.datepicker.regional["ru"]); + + $dateFrom.datepicker({ + dateFormat: 'dd.mm.yy', + showOn: 'button', + showOtherMonths: true, + constrainInput: true, + onClose: function( selectedDate ) { + $dateTo.datepicker( "option", "minDate", selectedDate ); + } + }).inputmask("99.99.9999",{ + showMaskOnHover:false, + insertMode:false, + 'oncomplete': function () { + $activeField = this; + } + }); + $dateTo.datepicker({ + dateFormat: 'dd.mm.yy', + showOn: 'button', + showOtherMonths: true, + constrainInput: true, + onClose: function( selectedDate ) { + $dateFrom.datepicker( "option", "maxDate", selectedDate ); + } + }).inputmask("99.99.9999",{ + showMaskOnHover:false, + insertMode:false, + 'oncomplete': function () { + $activeField = this; + } + }); + }); + + + }; + return that; + }()); +} diff --git a/templates/client/static_client/js_min/_modules/block.common.min.js b/templates/client/static_client/js_min/_modules/block.common.min.js index bbe0ad18..ec08a27c 100644 --- a/templates/client/static_client/js_min/_modules/block.common.min.js +++ b/templates/client/static_client/js_min/_modules/block.common.min.js @@ -1 +1 @@ -var EXPO=EXPO||{};EXPO.common?console.warn("WARNING: EXPO.common is already defined!"):EXPO.common=function(){var e,t={},s=function(e,t){return(e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.oMatchesSelector).call(e,t)};t.opt={};var r=function(e){this.fields=[],this.allIsClear=!1,this.ajaxUrl=e.getAttribute("action"),this.DOM=e,this._initFields(),this._eventController()};return r.prototype={_eventController:function(){var e=this;this.DOM.addEventListener?this.DOM.addEventListener("submit",function(t){return e.validate(),t.preventDefault(),!1},!1):this.DOM.attachEvent&&this.DOM.attachEvent("onsubmit",function(t){return e.validate(),t.preventDefault(),!1})},_initFields:function(){},validate:function(){var t,s=this,r=$(s.DOM).serialize(),o={},a="err-message-box",i=s.DOM.querySelector("."+a),n=i.innerHTML,l=function(r){var a,l;if(t=r,s.unHighlightFields(),t.success)i&&EXPO.common.removeClass(i,"active"),$(s.DOM).attr("id")==EXPO.common.opt.registerFormId?(a=$("#"+EXPO.common.opt.successRegisterId),l=$.trim($("#id_email",s.DOM).val()),$("."+EXPO.common.opt.resendLetterClass,a).attr("data-email",l),$.fancybox.close(!0),$.fancybox("#"+EXPO.common.opt.successRegisterId)):window.location.reload();else{EXPO.common.removeClass(i,"active"),o={},s.fields=[];for(var c in t.errors)t.errors.hasOwnProperty(c)&&("__all__"!=c?(o={name:c,id:"id_"+c,errorText:t.errors[c]},s.fields.push(o)):i&&(EXPO.common.addClass(i,"active"),n.indexOf(t.errors[c])<0&&i.insertAdjacentHTML("beforeend",t.errors[c]+" ")));s.highliteFields()}e.hide()};s.unHighlightFields(),e.show(),EXPO.common.postRequest(r,s.ajaxUrl,l)},highliteFields:function(){for(var e,t,s=0;s").attr("class","error").append(s);r.parent().addClass("required err").prepend(o)}))};"post"==o?$.post(s,r,a):$.get(s,r,a)}),$("form.simple-validate-register").on("submit",function(e){e.preventDefault();var t=$(this),s=t.attr("action"),r=$(this).serialize(),o=t.attr("method"),a=$("#pw-reg-complete"),i=$(".resend-letter",a),n=$.trim($("#id_email",t).val()),l=function(e){e.success?($(".error",t).remove(),$(".required.err",t).removeClass("required err"),$("input:text",t).val(""),$(".pwf-line .msg-help",t).each(function(){var e=$(this),t=e.attr("data-default");""!=$.trim(t)&&e.html("").text(t)}),i.attr("data-email",n),$.fancybox.close(!0),$.fancybox("#pw-reg-complete")):($(".error",t).remove(),$(".required.err",t).removeClass("required err"),$(".pwf-line .msg-help",t).each(function(){var e=$(this),t=e.attr("data-default");""!=$.trim(t)&&e.html("").text(t)}),$.each(e.errors,function(e,s){var r=$("#id_"+e,t),o=$("
      ").attr("class","error").append(s),a=r.closest(".pwf-line").find(".msg-help");r.parent().addClass("required err"),a.attr("data-default",a.text()),a.text("").prepend(o)}))};"post"==o?$.post(s,r,l):$.get(s,r,l)})}),$(function(){$.fancybox.helpers.overlay.overlay=$('
      ').appendTo("body"),$.fn.customRadioCheck=function(){return $(this).each(function(){function e(){if("radio"==s){var e=t.attr("name"),r=$('input[type="radio"]').filter('[name="'+e+'"]');r.each(function(){var e=$(this).closest(".custom-radio");e.removeClass("checked"),$(this).is(":checked")&&e.addClass("checked")})}else t.prop("checked")?o.addClass("checked"):o.removeClass("checked");t.trigger("blur")}var t=$(this),s=t.attr("type"),r=t.closest("label"),o=t.wrap("").parent();r.addClass("custom-radio-check"),e(),t.on("change",e)})},$("input[type='checkbox'], input[type='radio']").customRadioCheck()}),function(e){e.fn.inlineStyle=function(t){var s,r=this.attr("style");return r&&r.split(";").forEach(function(r){var o=r.split(":");e.trim(o[0])===t&&(s=o[1])}),s}}(jQuery),t.init=function(t){$.extend(this.opt,t);{var s,r=this,o=this.opt.addCalendarClass,a=this.opt.removeCalendarClass,i=this.opt.addCalendarText,n=this.opt.removeCalendarText,l=r.opt.staticValidation.errorClass,c=r.opt.staticValidation.containerClass;r.opt.staticValidation.blobClass}$(function(){s=$("."+l),e=$("#wait-ajax:not(.absolute)").css({"z-index":"8031"}),$("."+o+", ."+a).on("click",function(e){i=r.opt.addCalendarText,n=r.opt.removeCalendarText,e.preventDefault();var t=$(this),s=t.attr("href");$.get(s,function(e){e.not_authorized?$.fancybox.open("#"+r.opt.loginModalId):e.success&&(e.in?t.removeClass(o).addClass(a).text(n):t.removeClass(a).addClass(o).text(i))})}),s.length&&s.find("input:text").on("keyup",function(){""!=$.trim($(this).val())?$(this).closest("."+l).removeClass(l):$(this).closest("."+c).addClass(l)});for(var t=0;t=0;)r=r.replace(" "+s+" "," ");e.className=r.replace(/^\s+|\s+$/g," ")}return e},t.closest=function(e,s){for(var r=function(s){return t.hasClass(e,s)};e;){if(r(s))return e;e=e.parentNode}},t.children=function(e,t){for(var r,o=[],r=0,a=e.childNodes.length;a>r;++r)s(e.childNodes[r],t)&&o.push(e.childNodes[r]);return o},t.postRequest=function(e,t,s){e||(e=""),$.ajax({type:"POST",url:t,data:e,success:function(e){return"function"!=typeof s?e:(console.log("data recieved:"),console.log(e),console.log(JSON.stringify(e)),s(e),void 0)}})},t.getRequest=function(e,t,s){e||(e=""),$.ajax({type:"GET",url:t,data:e,success:function(e){return"function"!=typeof s?e:(console.log("data recieved:"),console.log(e),console.log(JSON.stringify(e)),s(e),void 0)}})},t.Modal=function(e){var t=this;this.id,this.opt=e,this.DOMwrap=document.getElementById(e.id),this.DOM=this.DOMwrap.querySelector("."+e.wrapClass),$(".modal-close",this.DOM).on("click",function(){t.close()}),$(".modals > *").on("click",function(e){$(e.target.parentNode).find(t.DOMwrap).length&&t.close()})},t.Modal.prototype={pullData:function(e){this.id=e.substr(1),$(e).show().siblings().hide(),this.refresh()},open:function(){$(this.DOMwrap).fadeIn(),t.addClass(document.body,"ov-hidden")},close:function(){$(this.DOMwrap).fadeOut(),t.removeClass(document.body,"ov-hidden")},refresh:function(){var e=this;e.DOM.style.width=e.opt.size[e.id].width+"px",e.DOM.style.minHeight=e.opt.size[e.id].height+"px",e.DOM.style.marginLeft=-(e.opt.size[e.id].width/2)+"px",e.DOM.style.marginTop=-(e.opt.size[e.id].height/2)+"px"}},t.SEOhide={seoContent:{},seoHrefs:{},decode:function(e){for(var t=$("["+e+"]"),s=0,r=t.length;r>s;s++){var o=t.eq(s),a=o.attr("data-hash");switch(o.data("type")){case"href":o.attr("href",Base64.decode(this.seoHrefs[a]));break;case"content":o.replaceWith(Base64.decode(this.seoContent[a]))}}}},t.nl2br=function(e,t){var s=t||"undefined"==typeof t?"
      ":"
      ";return(e+"").replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g,"$1"+s+"$2")},t}(); \ No newline at end of file +var EXPO=EXPO||{};EXPO.common?console.warn("WARNING: EXPO.common is already defined!"):EXPO.common=function(){var e,t={},s=function(e,t){return(e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.oMatchesSelector).call(e,t)};t.opt={};var r=function(e){this.fields=[],this.allIsClear=!1,this.ajaxUrl=e.getAttribute("action"),this.DOM=e,this._initFields(),this._eventController()};return r.prototype={_eventController:function(){var e=this;this.DOM.addEventListener?this.DOM.addEventListener("submit",function(t){return e.validate(),t.preventDefault(),!1},!1):this.DOM.attachEvent&&this.DOM.attachEvent("onsubmit",function(t){return e.validate(),t.preventDefault(),!1})},_initFields:function(){},validate:function(){var t,s=this,r=$(s.DOM).serialize(),o={},a="err-message-box",i=s.DOM.querySelector("."+a),n=i.innerHTML,l=function(r){var a,l;if(t=r,s.unHighlightFields(),t.success)i&&EXPO.common.removeClass(i,"active"),$(s.DOM).attr("id")==EXPO.common.opt.registerFormId?(a=$("#"+EXPO.common.opt.successRegisterId),l=$.trim($("#id_email",s.DOM).val()),$("."+EXPO.common.opt.resendLetterClass,a).attr("data-email",l),$.fancybox.close(!0),$.fancybox("#"+EXPO.common.opt.successRegisterId)):window.location.reload();else{EXPO.common.removeClass(i,"active"),o={},s.fields=[];for(var c in t.errors)t.errors.hasOwnProperty(c)&&("__all__"!=c?(o={name:c,id:"id_"+c,errorText:t.errors[c]},s.fields.push(o)):i&&(EXPO.common.addClass(i,"active"),n.indexOf(t.errors[c])<0&&i.insertAdjacentHTML("beforeend",t.errors[c]+" ")));s.highliteFields()}e.hide()};s.unHighlightFields(),e.show(),EXPO.common.postRequest(r,s.ajaxUrl,l)},highliteFields:function(){for(var e,t,s=0;s").attr("class","error").append(s);r.parent().addClass("required err").prepend(o)}))};"post"==o?$.post(s,r,a):$.get(s,r,a)}),$("form.simple-validate-register").on("submit",function(e){e.preventDefault();var t=$(this),s=t.attr("action"),r=$(this).serialize(),o=t.attr("method"),a=$("#pw-reg-complete"),i=$(".resend-letter",a),n=$.trim($("#id_email",t).val()),l=function(e){e.success?($(".error",t).remove(),$(".required.err",t).removeClass("required err"),$("input:text",t).val(""),$(".pwf-line .msg-help",t).each(function(){var e=$(this),t=e.attr("data-default");""!=$.trim(t)&&e.html("").text(t)}),i.attr("data-email",n),$.fancybox.close(!0),$.fancybox("#pw-reg-complete")):($(".error",t).remove(),$(".required.err",t).removeClass("required err"),$(".pwf-line .msg-help",t).each(function(){var e=$(this),t=e.attr("data-default");""!=$.trim(t)&&e.html("").text(t)}),$.each(e.errors,function(e,s){var r=$("#id_"+e,t),o=$("
      ").attr("class","error").append(s),a=r.closest(".pwf-line").find(".msg-help");r.parent().addClass("required err"),a.attr("data-default",a.text()),a.text("").prepend(o)}))};"post"==o?$.post(s,r,l):$.get(s,r,l)})}),$(function(){$.fancybox.helpers.overlay.overlay=$('
      ').appendTo("body"),$.fn.customRadioCheck=function(){return $(this).each(function(){function e(){if("radio"==s){var e=t.attr("name"),r=$('input[type="radio"]').filter('[name="'+e+'"]');r.each(function(){var e=$(this).closest(".custom-radio");e.removeClass("checked"),$(this).is(":checked")&&e.addClass("checked")})}else t.prop("checked")?o.addClass("checked"):o.removeClass("checked");t.trigger("blur")}var t=$(this),s=t.attr("type"),r=t.closest("label"),o=t.wrap("").parent();r.addClass("custom-radio-check"),e(),t.on("change",e)})},$("input[type='checkbox'], input[type='radio']").customRadioCheck()}),function(e){e.fn.inlineStyle=function(t){var s,r=this.attr("style");return r&&r.split(";").forEach(function(r){var o=r.split(":");e.trim(o[0])===t&&(s=o[1])}),s}}(jQuery),t.init=function(t){$.extend(this.opt,t);{var s,r=this,o=this.opt.addCalendarClass,a=this.opt.removeCalendarClass,i=this.opt.addCalendarText,n=this.opt.removeCalendarText,l=r.opt.staticValidation.errorClass,c=r.opt.staticValidation.containerClass;r.opt.staticValidation.blobClass}$(function(){s=$("."+l),e=$("#wait-ajax:not(.absolute)").css({"z-index":"8031"}),$("body").on("click","."+o+", ."+a,function(e){i=r.opt.addCalendarText,n=r.opt.removeCalendarText,e.preventDefault();var t=$(this),s=t.attr("href");$.get(s,function(e){e.not_authorized?$.fancybox.open("#"+r.opt.loginModalId):e.success&&(e.in?t.removeClass(o).addClass(a).text(n):t.removeClass(a).addClass(o).text(i))})}),s.length&&s.find("input:text").on("keyup",function(){""!=$.trim($(this).val())?$(this).closest("."+l).removeClass(l):$(this).closest("."+c).addClass(l)});for(var t=0;t=0;)r=r.replace(" "+s+" "," ");e.className=r.replace(/^\s+|\s+$/g," ")}return e},t.closest=function(e,s){for(var r=function(s){return t.hasClass(e,s)};e;){if(r(s))return e;e=e.parentNode}},t.children=function(e,t){for(var r,o=[],r=0,a=e.childNodes.length;a>r;++r)s(e.childNodes[r],t)&&o.push(e.childNodes[r]);return o},t.postRequest=function(e,t,s){e||(e=""),$.ajax({type:"POST",url:t,data:e,success:function(e){return"function"!=typeof s?e:(console.log("data recieved:"),console.log(e),console.log(JSON.stringify(e)),s(e),void 0)}})},t.getRequest=function(e,t,s){e||(e=""),$.ajax({type:"GET",url:t,data:e,success:function(e){return"function"!=typeof s?e:(console.log("data recieved:"),console.log(e),console.log(JSON.stringify(e)),s(e),void 0)}})},t.Modal=function(e){var t=this;this.id,this.opt=e,this.DOMwrap=document.getElementById(e.id),this.DOM=this.DOMwrap.querySelector("."+e.wrapClass),$(".modal-close",this.DOM).on("click",function(){t.close()}),$(".modals > *").on("click",function(e){$(e.target.parentNode).find(t.DOMwrap).length&&t.close()})},t.Modal.prototype={pullData:function(e){this.id=e.substr(1),$(e).show().siblings().hide(),this.refresh()},open:function(){$(this.DOMwrap).fadeIn(),t.addClass(document.body,"ov-hidden")},close:function(){$(this.DOMwrap).fadeOut(),t.removeClass(document.body,"ov-hidden")},refresh:function(){var e=this;e.DOM.style.width=e.opt.size[e.id].width+"px",e.DOM.style.minHeight=e.opt.size[e.id].height+"px",e.DOM.style.marginLeft=-(e.opt.size[e.id].width/2)+"px",e.DOM.style.marginTop=-(e.opt.size[e.id].height/2)+"px"}},t.SEOhide={seoContent:{},seoHrefs:{},decode:function(e){for(var t=$("["+e+"]"),s=0,r=t.length;r>s;s++){var o=t.eq(s),a=o.attr("data-hash");switch(o.data("type")){case"href":o.attr("href",Base64.decode(this.seoHrefs[a]));break;case"content":o.replaceWith(Base64.decode(this.seoContent[a]))}}}},t.nl2br=function(e,t){var s=t||"undefined"==typeof t?"
      ":"
      ";return(e+"").replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g,"$1"+s+"$2")},t}(); \ No newline at end of file diff --git a/templates/client/wizard/first_step.html b/templates/client/wizard/first_step.html index 08bcd4db..e216aecb 100644 --- a/templates/client/wizard/first_step.html +++ b/templates/client/wizard/first_step.html @@ -1,218 +1,209 @@ -{% extends 'client/base_catalog.html' %} - -{% block content_list %} - {{ form.errors }} -
      -
      -
      - {{ wizard.form.media }} -

      Шаг {{ wizard.steps.step1 }}. Основная информация

      -
      -
      {% csrf_token %} - {{ wizard.management_form }} - {# {% if wizard.form.forms %}#} - {# {{ wizard.form.management_form }}#} - {# {% for form in wizard.form.forms %}#} - {# {{ form }}#} - {# {% endfor %}#} - {# {% else %}#} - {% with wizard.form as form %} -
      -
      -
      - - {{ form.theme }} -
      -
      - - {{ form.tag }} -
      -
      -
      - -

      Описание выставки

      - -
      -
      - {{ form.name }} -
      -
      - -
      -
      - {{ form.main_title }} -
      -
      - -
      -
      - {{ form.description }} -
      -
      - -
      - -
      - - -
      -
      -
      - - {{ form.date_start }} -
      -
      - - {{ form.date_end }} -
      -
      -
      -
      - -
      - -
      - -

      Локация

      - -
      -
      -

      Место проведения:

      - {{ form.place }} -
      -
      - -
      -
      -

      Страна:

      - {{ form.country }} -
      - -
      -

      Город:

      - {{ form.city }} -
      -
      - -
      -
      - -
      -

      Дополнительная информация

      - -
      - - -
      - -
      -
      - - - -
      - -
      - {{ form.periodic }} -
      -
      - -
      - -
      -
      - -
      - - -
      - - - -
      -
      -
      - -
      -
      - {{ form.web_site }} - - {{ form.products }} - -
      - -
      -
      - -
      - - -
      -
      - {#
      #} - {# #} - {#
      #} - -
      - - {{ form.time_start }} -
      - -
      - - {{ form.time_end }} -
      - - {# #} -
      - -
      -
      - -
      -
      - - - -
      -
      -
      - -
      - -
      - -
      - - - - {% endwith %} -
      - -
      -
      -

      Шаг 2. Статистика и условия участия

      -
      -
      - -
      -
      -

      Шаг 3. Добавление фото

      -
      -
      - -
      -
      - {# {% endif %}#} -{% endblock %} +{% extends 'client/base_catalog.html' %} +{% load static %} + +{% block head_scripts %} + + +{% endblock %} + +{% block content_list %} + {{ form.errors }} +
      +
      +
      + {{ wizard.form.media }} +

      Шаг {{ wizard.steps.step1 }}. Основная информация

      +
      +
      {% csrf_token %} + {{ wizard.management_form }} + {% with wizard.form as form %} +
      +
      +
      + + {{ form.theme }} +
      +
      + + {{ form.tag }} +
      +
      +
      + +

      Описание выставки

      + +
      +
      + {{ form.name }} +
      +
      + +
      +
      + {{ form.main_title }} +
      +
      + +
      +
      + {{ form.description }} +
      +
      + +
      + +
      + + +
      +
      +
      + + {{ form.date_start }} +
      +
      + + {{ form.date_end }} +
      +
      +
      +
      + +
      + +
      + +

      Локация

      + +
      +
      +

      Место проведения:

      + {{ form.place }} +
      +
      + +
      +
      +

      Страна:

      + {{ form.country }} +
      + +
      +

      Город:

      + {{ form.city }} +
      +
      + +
      +
      + +
      +

      Дополнительная информация

      + +
      + + +
      + +
      +
      + + + +
      + +
      + Периодичность: + {{ form.periodic }} +
      +
      + +
      + +
      +
      + +
      + + +
      + + + +
      +
      +
      + +
      +
      + {{ form.web_site }} + + {{ form.products }} + +
      + +
      +
      + +
      + + +
      +
      +
      + + {{ form.time_start }} +
      + +
      + + {{ form.time_end }} +
      +
      +
      +
      + +
      +
      + + + +
      +
      +
      + +
      + +
      + +
      + + + + {% endwith %} +
      + +
      +
      +

      Шаг 2. Статистика и условия участия

      +
      +
      + +
      +
      +

      Шаг 3. Добавление фото

      +
      +
      + +
      +
      +{% endblock %} diff --git a/templates/client/wizard/second_step.html b/templates/client/wizard/second_step.html index 8ac6c79d..90018852 100644 --- a/templates/client/wizard/second_step.html +++ b/templates/client/wizard/second_step.html @@ -1,310 +1,261 @@ -{% extends 'client/base_catalog.html' %} - -{% block content_list %} - {{ form.errors }} -
      -

      Добавить событие

      -
      -
      - {{ wizard.form.media }} -
      -
      -

      Шаг 1. Основная информация

      - - -
      -
      - - - -
      -
      -

      Шаг 2. Статистика и условия участия

      - -
      -
      + 0,9 баллов к рейтингу
      -
      -
      - -
      {% csrf_token %} - {{ wizard.management_form }} - {% if wizard.form.forms %} - {{ wizard.form.management_form }} - {% for form in wizard.form.forms %} - {{ form }} - {% endfor %} - {% else %} - {% with wizard.form as form %} -
      - -
      - -
      - - {{ form.found_year }} -
      - -
      -
      - -
      - -
      - -
      - - -
      - -
      - {{ form.statistic_year }} -
      - -
      - -
      - {{ form.visitors }} -
      - -
      - {{ form.partisipants }} -
      - -
      - {{ form.square }} - м² -
      -
      - -
      -
      - -
      - - -
      - -
      -
      -
      -
      - {{ form.countries }} -
      -
      -
      -
      -
      - -
      - - - -
      - -
      - -

      Стоимость посещения и участия

      - -
      -
      - -
      -
      - -
      Стоимость билетов
      - -
      - -
        - -
      • - {{ form.one_day }} - -
      • - -
      • - {{ form.all_days }} - -
      • - -
      - -
      Предварительная регистрация
      - -
      - -
      - -
      - -
        - -
      • - {{ form.pre_one_day }} - -
      • - -
      • - {{ form.pre_all_days }} - -
      • - -
      - -
      Регистрация на стойке
      - -
      - -
      - -
      - -
      -
      - -
      Стоимость аренды 1м²
      - -
        - -
      • - {{ form.equiped }} - -
      • - -
      • - {{ form.unequiped }} - -
      • - -
      • - {{ form.open_square }} - -
      • - -
      - -
      - -
      - - -
      - {{ form.min_square }} - м² -
      -
      - -
      - -
      - - -
      - {{ form.registration_depos }} - -
      -
      - -
      - -
      - - -
      -
      -
      - {{ form.deadline_date }} -
      -
      -
      -
      - -
      -
      - -
      -
      - -
      - -
      - -
      -
      - - -
      -

      более полная информация повышает рейтинг вашего мероприятия и позволяет ранжировать - его выше других

      -
      -
      - -
      - - {% if wizard.steps.prev %} - - - {% endif %} - - -
      - - -
      -
      -
      -

      Шаг 3. Добавление фото

      - - -
      -
      -
      -{% endwith %} -{% endif %} - +{% extends 'client/base_catalog.html' %} +{% load static %} + + +{% block head_scripts %} + + +{% endblock %} + + +{% block content_list %} + {{ form.errors }} +
      +

      Добавить событие

      +
      +
      +
      {% csrf_token %} + + {{ wizard.form.media }} +
      +
      +

      Шаг 1. Основная информация

      + +
      + +
      +
      +
      + + +
      +
      +

      Шаг 2. Статистика и условия участия

      + +
      +
      + 0,9 баллов к рейтингу
      +
      +
      + + {{ wizard.management_form }} + {% if wizard.form.forms %} + {{ wizard.form.management_form }} + {% for form in wizard.form.forms %} + {{ form }} + {% endfor %} + {% else %} + {% with wizard.form as form %} +
      + +
      + +
      + + {{ form.found_year }} +
      + +
      +
      + +
      + +

      Стоимость посещения и участия

      + +
      +
      + +
      +
      + +
      Стоимость билетов
      + +
      + +
        + +
      • + {{ form.one_day }} + +
      • + +
      • + {{ form.all_days }} + +
      • + +
      + +
      Предварительная регистрация
      + +
      + +
      + +
      + +
        + +
      • + {{ form.pre_one_day }} + +
      • + +
      • + {{ form.pre_all_days }} + +
      • + +
      + +
      Регистрация на стойке
      + +
      + +
      + +
      + +
      +
      + +
      Стоимость аренды 1м²
      + +
        + +
      • + {{ form.equiped }} + +
      • + +
      • + {{ form.unequiped }} + +
      • + +
      • + {{ form.open_square }} + +
      • + +
      + +
      + +
      + + +
      + {{ form.min_square }} + м² +
      +
      + +
      + +
      + + +
      + {{ form.registration_depos }} + +
      +
      + +
      + +
      + + +
      +
      +
      + {{ form.deadline_date }} +
      +
      +
      +
      + +
      +
      + +
      +
      + +
      + +
      + +
      +
      + {# #} + +
      +

      более полная информация повышает рейтинг вашего мероприятия и позволяет + ранжировать + его выше других

      +
      +
      + +
      + + +
      + +
      +
      +
      +

      Шаг 3. Добавление фото

      + + +
      +
      + +
      + + {% endwith %} + {% endif %} + {% endblock %} \ No newline at end of file diff --git a/templates/client/wizard/third_step.html b/templates/client/wizard/third_step.html new file mode 100644 index 00000000..df135d76 --- /dev/null +++ b/templates/client/wizard/third_step.html @@ -0,0 +1,148 @@ +{% extends "client/base_catalog.html" %} + + +{% block styles %} + +{% endblock %} + +{% block content_list %} + {{ wizard.form.media }} + +
      +

      Добавить событие

      +
      + +
      +
      {% csrf_token %} + + +
      +
      +

      Шаг 1. Основная информация

      + +
      + +
      + +
      +
      +
      +
      +

      Шаг 2. Статистика и условия участия

      + +
      + +
      +
      +
      +
      +
      +

      Шаг 3. Добавление фото

      + +
      +
      + 1,2 балла к рейтингу
      +
      +
      + {{ form.errors }} + {{ wizard.management_form }} + {% if wizard.form.forms %} + {{ wizard.form.management_form }} + {% for form in wizard.form.forms %} + {{ form }} + {% endfor %} + {% else %} + {% with wizard.form as form %} +
      +
      +
      +
      + {{ form.attachments }} +
      + +
      +

      более полная информация повышает рейтинг вашего мероприятия и позволяет + ранжировать его выше других

      +
      +
      + +
      + +
        +
        + +
        + +
        + +
        + +
        +
        + +
        + {% endwith %} + {% endif %} +
        + + +
        + + {% comment %} {% endcomment %} + + +{% endblock %} \ No newline at end of file diff --git a/templates/client/wizard/wizard.html b/templates/client/wizard/wizard.html index 8735fb4c..0fc0748c 100644 --- a/templates/client/wizard/wizard.html +++ b/templates/client/wizard/wizard.html @@ -1,23 +1,23 @@ -{% extends 'client/base_catalog.html' %} -{% block content_list %} - {{ wizard.form.media }} -

        Step {{ wizard.steps.step1 }} of {{ wizard.steps.count }}

        -
        {% csrf_token %} -
    ДатаОфициальный сайтБилетыУчастиеПереходы с каталога{% trans 'Дата' %}{% trans 'Официальный сайт' %}{% trans 'Билеты' %}{% trans 'Участие' %}{% trans 'Переходы с каталога' %}
    -{{ wizard.management_form }} -{% if wizard.form.forms %} - {{ wizard.form.management_form }} - {% for form in wizard.form.forms %} - {{ form }} - {% endfor %} -{% else %} - {{ wizard.form }} -{% endif %} -
    -{% if wizard.steps.prev %} - - -{% endif %} - - +{% extends 'client/base_catalog.html' %} +{% block content_list %} + {{ wizard.form.media }} +

    Step {{ wizard.steps.step1 }} of {{ wizard.steps.count }}

    +
    {% csrf_token %} + +{{ wizard.management_form }} +{% if wizard.form.forms %} + {{ wizard.form.management_form }} + {% for form in wizard.form.forms %} + {{ form }} + {% endfor %} +{% else %} + {{ wizard.form }} +{% endif %} +
    +{% if wizard.steps.prev %} + + +{% endif %} + +
    {% endblock %} \ No newline at end of file diff --git a/theme/models.py b/theme/models.py index ee5c8f72..50ece870 100644 --- a/theme/models.py +++ b/theme/models.py @@ -246,7 +246,6 @@ def pre_save_handler(sender, **kwargs): if not obj.url: obj.url = ''.join([random.choice(string.ascii_lowercase) for n in xrange(8)]) -pre_save.connect(pre_save_handler, sender=Theme) pre_save.connect(pre_save_handler, sender=Tag) post_save.connect(post_save_handler, sender=Theme) diff --git a/translator/views.py b/translator/views.py index a6884462..30d277c5 100644 --- a/translator/views.py +++ b/translator/views.py @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- -from django.views.generic import ListView, DetailView +from django.views.generic import DetailView +from functions.custom_views import ListView from django.shortcuts import get_object_or_404 from django.views.generic.detail import SingleObjectMixin from django.utils.translation import ugettext as _ diff --git a/wizard/forms.py b/wizard/forms.py index 37bcdb7c..c2e76b1b 100644 --- a/wizard/forms.py +++ b/wizard/forms.py @@ -1,65 +1,75 @@ -# -*- coding: utf-8 -*- -from django import forms -from theme.models import Theme, Tag -from place_exposition.models import PlaceExposition -from city.models import City -from country.models import Country - -choices = ((0, ''), (1.0, u'Ежегодно'), (2.0, u'2 раза в год'), (3.0, u'3 раза в год'), (4.0, u'4 раза в год'), - (5.0, u'5 раз в год'), (0.5, u'Раз в 2 года'), ( - 0.33, u'Раз в 3 года'), (0.25, u'Раз в 4 года')) - - -class ExpoForm1(forms.Form): - """ - main information about exposition - """ - theme = forms.ModelChoiceField(queryset=Theme.objects.filter(id=50)) - tag = forms.ModelChoiceField(queryset=Tag.objects.filter(id=50)) - name = forms.CharField(max_length=255, widget=forms.TextInput(attrs={'placeholder': "Введите название выставки"})) - main_title = forms.CharField(max_length=255, widget=forms.TextInput(attrs={'placeholder': "Краткое описание выставки (необязательно)"})) - description = forms.CharField(widget=forms.Textarea(attrs={'placeholder': "Полное описание выставки", 'cols':30, 'rows':10})) - date_start = forms.DateField(widget=forms.TextInput(attrs={'class':'data dateFrom', 'placeholder':'дд.мм.гг'})) - date_end = forms.DateField(widget=forms.TextInput(attrs={'class':'data dateTo','placeholder':'дд.мм.гг'})) - country = forms.ModelChoiceField(queryset=Country.objects.filter(id=50)) - city = forms.ModelChoiceField(queryset=City.objects.language('ru').filter(id=900052419)) - place = forms.ModelChoiceField(queryset=PlaceExposition.objects.filter(id=50)) - audience1 = forms.BooleanField(required=False) - audience2 = forms.BooleanField(required=False) - audience3 = forms.BooleanField(required=False) - periodic = forms.ChoiceField(choices=choices) - membership1= forms.BooleanField(required=False) - membership2= forms.BooleanField(required=False) - membership3= forms.BooleanField(required=False) - web_site = forms.URLField(required=False, widget=forms.TextInput(attrs={'placeholder': "Веб-сайт (необязательно)"})) - products = forms.CharField(widget=forms.Textarea(attrs={'placeholder': "Экспонируемые продукты", 'cols':30, 'rows':10})) - time_start = forms.TimeField() - time_end = forms.TimeField() - logo = forms.ImageField(widget=forms.FileInput(attrs={'class':"button big icon-clip"}), required=False) - - -class ExpoForm2(forms.Form): - """ - statistics - """ - found_year = forms.IntegerField() - statistic_year = forms.IntegerField(widget=forms.TextInput(attrs={'placeholder':'введите год'})) - visitors = forms.IntegerField(widget=forms.TextInput(attrs={'placeholder':'количество посетителей'})) - partisipants = forms.IntegerField(widget=forms.TextInput(attrs={'placeholder':'количество учасников'})) - square = forms.FloatField(widget=forms.TextInput(attrs={'placeholder':'площадь'})) - countries = forms.ModelChoiceField(queryset=Country.objects.filter(id=50)) - - # ticket price - pre_one_day = forms.FloatField(widget=forms.TextInput(attrs={'placeholder':'на один день'})) - pre_all_days = forms.FloatField(widget=forms.TextInput(attrs={'placeholder':'на все дни'})) - one_day = forms.FloatField(widget=forms.TextInput(attrs={'placeholder':'на один день'})) - all_days = forms.FloatField(widget=forms.TextInput(attrs={'placeholder':'на все дни'})) - - # rent price - equiped = forms.FloatField(widget=forms.TextInput(attrs={'placeholder':'оборудованная площадь'})) - unequiped = forms.FloatField(widget=forms.TextInput(attrs={'placeholder':'необорудованная площадь'})) - open_square = forms.FloatField(widget=forms.TextInput(attrs={'placeholder':'открытая площадь'})) - min_square = forms.FloatField() - registration_depos = forms.FloatField() - deadline_date = forms.DateField(widget=forms.TextInput(attrs={'placeholder':'дд.мм.гг'})) - +# -*- coding: utf-8 -*- +from django import forms +from theme.models import Theme +from place_exposition.models import PlaceExposition +from country.models import Country +from multiupload.fields import MultiFileField, MultiFileInput + + +choices = ((0, ''), (1.0, u'Ежегодно'), (2.0, u'2 раза в год'), (3.0, u'3 раза в год'), (4.0, u'4 раза в год'), + (5.0, u'5 раз в год'), (0.5, u'Раз в 2 года'), ( + 0.33, u'Раз в 3 года'), (0.25, u'Раз в 4 года')) + +places = [(item.id, item.name) for item in PlaceExposition.objects.language().all()] +places.insert(0,('', 'Не выбрано')) + + +class ExpoForm1(forms.Form): + """ + main information about exposition + """ + name = forms.CharField(max_length=255, widget=forms.TextInput(attrs={'placeholder': "Введите название выставки"})) + main_title = forms.CharField(max_length=255, widget=forms.TextInput(attrs={'placeholder': "Краткое описание выставки (необязательно)"})) + description = forms.CharField(widget=forms.Textarea(attrs={'placeholder': "Полное описание выставки", 'cols':30, 'rows':10})) + date_start = forms.DateField(widget=forms.TextInput(attrs={'class':'data dateFrom', 'placeholder':'дд.мм.гг'})) + date_end = forms.DateField(widget=forms.TextInput(attrs={'class':'data dateTo','placeholder':'дд.мм.гг'})) + + country = forms.ChoiceField(label=u'Страна', choices=[(c.id, c.name) for c in Country.objects.all()], widget=forms.Select(attrs={'id':'id_country'})) + theme = forms.MultipleChoiceField(label='Тематики', choices=[(item.id, item.name) for item in Theme.objects.language().all()], widget=forms.SelectMultiple(attrs={'id':'id_theme'})) + place = forms.ChoiceField(label=u'Место проведения', required=False, choices=places, widget=forms.Select(attrs={'id':'id_place'})) + city = forms.CharField(label=u'Город', widget=forms.HiddenInput(attrs={'id':'id_city'})) + tag = forms.CharField(label=u'Теги', widget=forms.HiddenInput(attrs={'id':'id_tag'}), required=False) + + audience1 = forms.BooleanField(required=False) + audience2 = forms.BooleanField(required=False) + audience3 = forms.BooleanField(required=False) + periodic = forms.ChoiceField(choices=choices, required=False) + membership1 = forms.BooleanField(required=False) + membership2 = forms.BooleanField(required=False) + membership3 = forms.BooleanField(required=False) + web_site = forms.URLField(required=False, widget=forms.TextInput(attrs={'placeholder': "Веб-сайт (необязательно)"})) + products = forms.CharField(widget=forms.Textarea(attrs={'placeholder': "Экспонируемые продукты", 'cols':30, 'rows':10})) + time_start = forms.TimeField() + time_end = forms.TimeField() + logo = forms.ImageField(widget=forms.FileInput(attrs={'class':"button big icon-clip"}), required=False) + + +class ExpoForm2(forms.Form): + """ + statistics + """ + found_year = forms.IntegerField() + # ticket price + pre_one_day = forms.FloatField(widget=forms.TextInput(attrs={'placeholder':'на один день'})) + pre_all_days = forms.FloatField(widget=forms.TextInput(attrs={'placeholder':'на все дни'})) + one_day = forms.FloatField(widget=forms.TextInput(attrs={'placeholder':'на один день'})) + all_days = forms.FloatField(widget=forms.TextInput(attrs={'placeholder':'на все дни'})) + + # rent price + equiped = forms.FloatField(widget=forms.TextInput(attrs={'placeholder':'оборудованная площадь'})) + unequiped = forms.FloatField(widget=forms.TextInput(attrs={'placeholder':'необорудованная площадь'})) + open_square = forms.FloatField(widget=forms.TextInput(attrs={'placeholder':'открытая площадь'})) + min_square = forms.FloatField() + registration_depos = forms.FloatField() + deadline_date = forms.DateField(widget=forms.TextInput(attrs={'placeholder':'дд.мм.гг'})) + + +class ExpoForm3(forms.Form): + """ + photos from last expositions + """ + attachments = MultiFileField(min_num=0, max_num=6, max_file_size=1024*1024*5, widget=MultiFileInput( + attrs={'class':'button big icon-camera', 'value': u'выберите фотографии', 'id': 'files'} + )) + + diff --git a/wizard/models.py b/wizard/models.py index 71a83623..e69de29b 100644 --- a/wizard/models.py +++ b/wizard/models.py @@ -1,3 +0,0 @@ -from django.db import models - -# Create your models here. diff --git a/wizard/urls.py b/wizard/urls.py index bc42d249..527cd96d 100644 --- a/wizard/urls.py +++ b/wizard/urls.py @@ -1,8 +1,7 @@ -from django.conf.urls import patterns - -from wizard.forms import ExpoForm1, ExpoForm2 -from wizard.views import ExpoWizard - -urlpatterns = patterns('', - (r'^$', ExpoWizard.as_view([ExpoForm1, ExpoForm2])) -) \ No newline at end of file +from django.conf.urls import patterns, url +from .views import ExpoWizard +from .forms import ExpoForm1, ExpoForm2,ExpoForm3 + +formlist = [ExpoForm1,ExpoForm2, ExpoForm3] + +urlpatterns = patterns('', url(r'^$', ExpoWizard.as_view(formlist), name = 'add_exposition')) \ No newline at end of file diff --git a/wizard/views.py b/wizard/views.py index 30a3ad5a..01dadcac 100644 --- a/wizard/views.py +++ b/wizard/views.py @@ -1,64 +1,125 @@ -from django.shortcuts import render_to_response from django.contrib.formtools.wizard.views import SessionWizardView -from django.core.files.storage import default_storage, FileSystemStorage +from django.core.files.storage import FileSystemStorage +from django.http import HttpResponseRedirect, HttpResponseForbidden +from django.conf import settings +from django.contrib.auth.decorators import login_required +from django.utils.decorators import method_decorator +from django.core.exceptions import PermissionDenied + import os -from proj import settings -from wizard import forms -from exposition.models import Exposition, Statistic +from photologue.models import Photo +from exposition.models import Exposition from functions.form_check import translit_with_separator +from accounts.models import User +from country.models import Country +from city.models import City +from place_exposition.models import PlaceExposition +from theme.models import Tag, Theme + +class LoginRequiredMixin(object): + @method_decorator(login_required) + def dispatch(self, request, *args, **kwargs): + if not request.user.organiser: + raise PermissionDenied + return super(LoginRequiredMixin, self).dispatch(request, *args, **kwargs) # defining different template for every form -TEMPLATES = {'0':'client/wizard/first_step.html', '1':'client/wizard/second_step.html'} +TEMPLATES = { + '0': 'client/wizard/first_step.html', + '1': 'client/wizard/second_step.html', + '2': 'client/wizard/third_step.html' +} + +class ExpoWizard(LoginRequiredMixin, SessionWizardView): + """main view that handle all data from 3 forms(steps) and finally create an Exposition""" -class ExpoWizard(SessionWizardView): - location=os.path.join(settings.MEDIA_ROOT, 'temp', 'files') + # storing temporary files during upload + location = os.path.join(settings.MEDIA_ROOT, 'temp') file_storage = FileSystemStorage(location, settings.MEDIA_URL) + SUCCESS_URL = "/" + + def get_template_names(self): + return [TEMPLATES[self.steps.current]] def done(self, form_list, **kwargs): - upload_file = form_list[0].cleaned_data['logo'] + # getting data and files + upload_logo = form_list[0].cleaned_data.get('logo') + upload_images = self.request.FILES.getlist(u'2-attachments') data = self.get_all_cleaned_data() - expo = Exposition.objects.language('ru').create( - name = data.get('name'), - data_begin = data.get('date_start'), - data_end = data.get('date_end'), - main_title = data.get('main_title'), - description = data.get('description'), - products = data.get('products'), - country = data.get('country', 1), - city = data.get('city', 1), - place = data.get('place', 1), - periodic = data.get('periodic'), - web_page = data.get('web_site'), - logo = data.get('logo'), - - foundation_year = data.get('found_year'), - area = data.get('square'), - price_day = '%i %s'%(data.get('one_day'), self.request.POST['oneDayCurrency1']), - price_all = '%i %s'%(data.get('all_days'), self.request.POST['allDaysCurrency1']), - price_day_bar = '%i %s'%(data.get('pre_one_day'),self.request.POST['oneDayCurrency1']), - price_all_bar = '%i %s'%(data.get('pre_all_days'),self.request.POST['allDaysCurrency1']), - - min_area = data.get('min_square'), - registration_payment = data.get('registration_depos'), - application_deadline = data.get('deadline_date'), - min_closed_area = data.get('unequiped'), - min_open_area = data.get('open_square'), - min_closed_equipped_area = data.get('equiped'), - url = translit_with_separator(data.get('name')), - quality_label= 0, - audience = 0 + + # creating new exposition + lang = self.request.LANGUAGE_CODE + expo = Exposition.objects.language(lang).create( + name=data.get('name'), + data_begin=data.get('date_start'), + data_end=data.get('date_end'), + main_title=data.get('main_title'), + description=data.get('description'), + products=data.get('products'), + + country=Country.objects.language(lang).get(id=data.get('country')), + city=City.objects.language(lang).get(id=data.get('city')), + place=PlaceExposition.objects.language(lang).get(id=data.get('place')), + + periodic=data.get('periodic'), + web_page=data.get('web_site'), + logo=data.get('logo'), + + foundation_year=data.get('found_year'), + area=data.get('square'), + price_day=data.get('one_day'), + price_all=data.get('all_days'), + price_day_bar=data.get('pre_one_day'), + price_all_bar=data.get('pre_all_days'), + + min_area=data.get('min_square'), + registration_payment=data.get('registration_depos'), + application_deadline=data.get('deadline_date'), + min_closed_area=data.get('unequiped'), + min_open_area=data.get('open_square'), + min_closed_equipped_area=data.get('equiped'), + url=translit_with_separator(data.get('name')), + quality_label=0, + audience=0, + creator=User.objects.get(id=self.request.user.id) ) - expo.tag = [data.get('tag')] - expo.theme = [data.get('theme')] + # adding photo to gallery + photos = [] + for i, photo in enumerate(upload_images): + photos.append(Photo.objects.language(self.request.LANGUAGE_CODE).create( + image=photo, + title=data.get(u'pdescr_%i' % i, photo.name)) + ) + for photo in photos: + expo.upload_photo(photo) + + expo.tag = Tag.objects.language(lang).filter(id__in=data.get('tag').split(',')) + expo.theme = Theme.objects.language(lang).filter(id__in=data.get('theme')) + + # setting bit fields audience and quality_label + self.set_flags(expo, data) + expo.save() + + # remove temporary files if it has any + if upload_logo: + self.file_storage.delete(upload_logo.name) + if upload_images: + for f in upload_images: + self.file_storage.delete(f.name) + + return HttpResponseRedirect(self.SUCCESS_URL) + + @staticmethod + def set_flags(expo, data): if data['membership1']: - expo.quality_label = (expo.quality_label| Exposition.quality_label.exporating) + expo.quality_label = (expo.quality_label | Exposition.quality_label.exporating) if data['membership2']: - expo.quality_label = (expo.quality_label| Exposition.quality_label.rsva) + expo.quality_label = (expo.quality_label | Exposition.quality_label.rsva) if data['membership3']: - expo.quality_label = (expo.quality_label| Exposition.quality_label.ufi) + expo.quality_label = (expo.quality_label | Exposition.quality_label.ufi) if data['audience1']: expo.audience = (expo.audience | Exposition.audience.experts) @@ -67,23 +128,4 @@ class ExpoWizard(SessionWizardView): if data['audience3']: expo.audience = expo.audience | (getattr(Exposition.audience, 'general public')) - expo.save() - - Statistic.objects.language().create( - exposition = expo, - year = data.get('statistic_year'), - visitors = data.get('visitors'), - members = data.get('partisipants'), - countries = data.get('countries'), - area = data.get('square') - ) - - if upload_file: - self.file_storage.delete(upload_file.name) - return render_to_response('done.html', { - 'form_data': [form.cleaned_data for form in form_list], - }) - - def get_template_names(self): - return [TEMPLATES[self.steps.current]] From 799df0ea994a40f674b396e653ab3e20c0ae10d0 Mon Sep 17 00:00:00 2001 From: Ivan_Home_PC Date: Fri, 25 Sep 2015 22:54:36 +0300 Subject: [PATCH 05/12] downloaded from remote2 --- .../locale/en/LC_MESSAGES/django.po | 374 ++++++++++++++++++ functions/overrides.py | 19 + .../locale/en/LC_MESSAGES/django.po | 122 ++++++ .../admin/article/article_confirm_delete.html | 11 + templates/admin/expobanner/link_list.html | 38 ++ templates/admin/expobanner/main_list.html | 55 +++ templates/admin/expobanner/main_stat.html | 90 +++++ .../includes/banners/detail_inner_3.html | 11 + templates/client/includes/banners/popup.html | 2 + .../client/includes/banners/popup_2.html | 2 + .../conference/default_description.html | 21 + .../exposition/default_description.html | 34 ++ .../client/specialist_catalog/catalog.html | 32 ++ .../client/static_client/js/rejs/banners.js | 113 ++++++ .../client/static_client/js/rejs/tops.js | 69 ++++ wizard/description.txt | 2 + 16 files changed, 995 insertions(+) create mode 100644 django_messages/locale/en/LC_MESSAGES/django.po create mode 100644 functions/overrides.py create mode 100644 password_reset/locale/en/LC_MESSAGES/django.po create mode 100644 templates/admin/article/article_confirm_delete.html create mode 100644 templates/admin/expobanner/link_list.html create mode 100644 templates/admin/expobanner/main_list.html create mode 100644 templates/admin/expobanner/main_stat.html create mode 100644 templates/client/includes/banners/detail_inner_3.html create mode 100644 templates/client/includes/banners/popup.html create mode 100644 templates/client/includes/banners/popup_2.html create mode 100644 templates/client/includes/conference/default_description.html create mode 100644 templates/client/includes/exposition/default_description.html create mode 100644 templates/client/specialist_catalog/catalog.html create mode 100644 templates/client/static_client/js/rejs/banners.js create mode 100644 templates/client/static_client/js/rejs/tops.js create mode 100644 wizard/description.txt diff --git a/django_messages/locale/en/LC_MESSAGES/django.po b/django_messages/locale/en/LC_MESSAGES/django.po new file mode 100644 index 00000000..5831c0f2 --- /dev/null +++ b/django_messages/locale/en/LC_MESSAGES/django.po @@ -0,0 +1,374 @@ +# 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: 2015-09-08 13:44+0300\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" + +#: django_messages/admin.py:21 +msgid "group" +msgstr "" + +#: django_messages/admin.py:22 +msgid "Creates the message optionally for all users or a group of users." +msgstr "" + +#: django_messages/admin.py:30 +msgid "All users" +msgstr "" + +#: django_messages/admin.py:48 django_messages/models.py:94 +msgid "Message" +msgstr "" + +#: django_messages/admin.py:55 +msgid "Date/time" +msgstr "" + +#: django_messages/apps.py:6 django_messages/models.py:95 +msgid "Messages" +msgstr "" + +#: django_messages/fields.py:56 +#, python-format +msgid "The following usernames are incorrect: %(users)s" +msgstr "" + +#: django_messages/forms.py:17 django_messages/forms.py:66 +#: django_messages/models.py:55 +#: django_messages/templates/django_messages/inbox.html:10 +#: django_messages/templates/django_messages/outbox.html:10 +#: django_messages/templates/django_messages/trash.html:10 +#: django_messages/templates/django_messages/view.html:8 +msgid "Subject" +msgstr "" + +#: django_messages/forms.py:18 django_messages/forms.py:46 +#: django_messages/forms.py:67 django_messages/models.py:56 +msgid "Body" +msgstr "" + +#: django_messages/forms.py:65 django_messages/models.py:58 +#: django_messages/templates/django_messages/outbox.html:10 +#: django_messages/templates/django_messages/view.html:14 +msgid "Recipient" +msgstr "" + +#: django_messages/management.py:9 +msgid "Message Received" +msgstr "" + +#: django_messages/management.py:9 +msgid "you have received a message" +msgstr "" + +#: django_messages/management.py:10 +msgid "Message Sent" +msgstr "" + +#: django_messages/management.py:10 +msgid "you have sent a message" +msgstr "" + +#: django_messages/management.py:11 +msgid "Message Replied" +msgstr "" + +#: django_messages/management.py:11 +msgid "you have replied to a message" +msgstr "" + +#: django_messages/management.py:12 +msgid "Reply Received" +msgstr "" + +#: django_messages/management.py:12 +msgid "you have received a reply to a message" +msgstr "" + +#: django_messages/management.py:13 +msgid "Message Deleted" +msgstr "" + +#: django_messages/management.py:13 +msgid "you have deleted a message" +msgstr "" + +#: django_messages/management.py:14 +msgid "Message Recovered" +msgstr "" + +#: django_messages/management.py:14 +msgid "you have undeleted a message" +msgstr "" + +#: django_messages/models.py:57 +#: django_messages/templates/django_messages/inbox.html:10 +#: django_messages/templates/django_messages/trash.html:10 +#: django_messages/templates/django_messages/view.html:10 +msgid "Sender" +msgstr "" + +#: django_messages/models.py:59 +msgid "Parent message" +msgstr "" + +#: django_messages/models.py:60 +msgid "sent at" +msgstr "" + +#: django_messages/models.py:61 +msgid "read at" +msgstr "" + +#: django_messages/models.py:62 +msgid "replied at" +msgstr "" + +#: django_messages/models.py:63 +msgid "Sender deleted at" +msgstr "" + +#: django_messages/models.py:64 +msgid "Recipient deleted at" +msgstr "" + +#: django_messages/templates/django_messages/base.html:9 +#: django_messages/templates/django_messages/inbox.html:6 +#: django_messages/templates/django_messages/new_message.html:13 +msgid "Inbox" +msgstr "" + +#: django_messages/templates/django_messages/base.html:10 +#: django_messages/templates/django_messages/outbox.html:6 +msgid "Sent Messages" +msgstr "" + +#: django_messages/templates/django_messages/base.html:11 +msgid "New Message" +msgstr "" + +#: django_messages/templates/django_messages/base.html:12 +msgid "Trash" +msgstr "" + +#: django_messages/templates/django_messages/compose.html:4 +msgid "Compose Message" +msgstr "" + +#: django_messages/templates/django_messages/compose.html:10 +msgid "Send" +msgstr "" + +#: django_messages/templates/django_messages/inbox.html:10 +msgid "Received" +msgstr "" + +#: django_messages/templates/django_messages/inbox.html:10 +#: django_messages/templates/django_messages/outbox.html:10 +#: django_messages/templates/django_messages/trash.html:10 +msgid "Action" +msgstr "" + +#: django_messages/templates/django_messages/inbox.html:22 +#: django_messages/templates/django_messages/outbox.html:19 +#: django_messages/templates/django_messages/trash.html:19 +#: django_messages/templates/django_messages/view.html:13 +msgid "DATETIME_FORMAT" +msgstr "" + +#: django_messages/templates/django_messages/inbox.html:23 +#: django_messages/templates/django_messages/outbox.html:20 +msgid "delete" +msgstr "" + +#: django_messages/templates/django_messages/inbox.html:29 +#: django_messages/templates/django_messages/outbox.html:26 +#: django_messages/templates/django_messages/trash.html:26 +msgid "No messages." +msgstr "" + +#: django_messages/templates/django_messages/new_message.html:4 +#, python-format +msgid "" +"Hello %(recipient)s,\n" +"\n" +"you received a private message from %(sender)s with\n" +"the following contents:" +msgstr "" + +#: django_messages/templates/django_messages/new_message.html:12 +#, python-format +msgid "Sent from %(site_url)s" +msgstr "" + +#: django_messages/templates/django_messages/new_message.html:14 +#: django_messages/templates/django_messages/view.html:20 +msgid "Reply" +msgstr "" + +#: django_messages/templates/django_messages/outbox.html:10 +msgid "Sent" +msgstr "" + +#: django_messages/templates/django_messages/trash.html:6 +msgid "Deleted Messages" +msgstr "" + +#: django_messages/templates/django_messages/trash.html:10 +#: django_messages/templates/django_messages/view.html:12 +msgid "Date" +msgstr "" + +#: django_messages/templates/django_messages/trash.html:20 +msgid "undelete" +msgstr "" + +#: django_messages/templates/django_messages/trash.html:29 +msgid "" +"Deleted Messages are removed from the trash at unregular intervals, don't " +"rely on this feature for long-time storage." +msgstr "" + +#: django_messages/templates/django_messages/view.html:6 +msgid "View Message" +msgstr "" + +#: django_messages/templates/django_messages/view.html:22 +msgid "Delete" +msgstr "" + +#: django_messages/templates/notification/messages_deleted/full.txt:1 +#, python-format +msgid "You have deleted the message '%(message)s'." +msgstr "" + +#: django_messages/templates/notification/messages_deleted/notice.html:1 +#, python-format +msgid "" +"You have deleted the message %(message)s." +msgstr "" + +#: django_messages/templates/notification/messages_received/full.txt:1 +#, python-format +msgid "" +"%(message_sender)s has sent you a message:\n" +"\n" +"%(message)s\n" +"\n" +"%(message_body)s\n" +"\n" +"http://%(current_site)s%(message_url)s" +msgstr "" + +#: django_messages/templates/notification/messages_received/notice.html:2 +#, python-format +msgid "" +"You have received the message %(message)s " +"from %(message_sender)s." +msgstr "" + +#: django_messages/templates/notification/messages_received/short.txt:1 +#: django_messages/templates/notification/messages_reply_received/short.txt:1 +#, python-format +msgid "%(notice)s by %(message_sender)s" +msgstr "" + +#: django_messages/templates/notification/messages_recovered/full.txt:1 +#, python-format +msgid "You have recovered the message '%(message)s'." +msgstr "" + +#: django_messages/templates/notification/messages_recovered/notice.html:1 +#, python-format +msgid "" +"You have recovered the message %(message)s." +msgstr "" + +#: django_messages/templates/notification/messages_replied/full.txt:1 +#, python-format +msgid "" +"You have replied to '%(message_parent_msg)s' from %(message_recipient)s." +msgstr "" + +#: django_messages/templates/notification/messages_replied/notice.html:2 +#, python-format +msgid "" +"You have replied to %(message_parent_msg)s " +"from %(message_recipient)s." +msgstr "" + +#: django_messages/templates/notification/messages_reply_received/full.txt:1 +#, python-format +msgid "" +"%(message_sender)s replied to '%(message_parent_msg)s':\n" +"\n" +"%(message)s\n" +"\n" +"%(message_body)s\n" +"\n" +"http://%(current_site)s%(message_url)s" +msgstr "" + +#: django_messages/templates/notification/messages_reply_received/notice.html:2 +#, python-format +msgid "%(message_sender)s has sent you a reply to %(message_parent_msg)s." +msgstr "" + +#: django_messages/templates/notification/messages_sent/full.txt:1 +#, python-format +msgid "You have sent the message '%(message)s' to %(message_recipient)s." +msgstr "" + +#: django_messages/templates/notification/messages_sent/notice.html:2 +#, python-format +msgid "" +"You have sent the message %(message)s to " +"%(message_recipient)s." +msgstr "" + +#: django_messages/utils.py:26 +#, python-format +msgid "" +"%(sender)s wrote:\n" +"%(body)s" +msgstr "" + +#: django_messages/utils.py:54 +#, python-format +msgid "Re%(prefix)s: %(subject)s" +msgstr "" + +#: django_messages/utils.py:60 +#, python-format +msgid "New Message: %(subject)s" +msgstr "" + +#: django_messages/views.py:78 django_messages/views.py:114 +msgid "Message successfully sent." +msgstr "" + +#: django_messages/views.py:121 +#, python-format +msgid "Re: %(subject)s" +msgstr "" + +#: django_messages/views.py:157 +msgid "Message successfully deleted." +msgstr "" + +#: django_messages/views.py:184 +msgid "Message successfully recovered." +msgstr "" diff --git a/functions/overrides.py b/functions/overrides.py new file mode 100644 index 00000000..8a132cb7 --- /dev/null +++ b/functions/overrides.py @@ -0,0 +1,19 @@ +from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage + +class SeoPaginator(Paginator): + + def validate_number(self, number): + "Validates the given 1-based page number." + try: + number = int(number) + except (TypeError, ValueError): + raise PageNotAnInteger('That page number is not an integer') + if number < 1: + raise EmptyPage('That page number is less than 1') + if number > self.num_pages: + if number == 1 and self.allow_empty_first_page: + pass + else: + number = 1 + return number + diff --git a/password_reset/locale/en/LC_MESSAGES/django.po b/password_reset/locale/en/LC_MESSAGES/django.po new file mode 100644 index 00000000..ec6d3d10 --- /dev/null +++ b/password_reset/locale/en/LC_MESSAGES/django.po @@ -0,0 +1,122 @@ +# 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: 2015-09-08 13:44+0300\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" + +#: password_reset/forms.py:14 +msgid "Sorry, this user doesn't exist." +msgstr "" + +#: password_reset/forms.py:31 +msgid "Username" +msgstr "" + +#: password_reset/forms.py:32 +msgid "Email" +msgstr "" + +#: password_reset/forms.py:33 +msgid "Для восстановления пароля укажите email, который Вы регистрировали" +msgstr "" + +#: password_reset/forms.py:83 +msgid "Unable to find user." +msgstr "" + +#: password_reset/forms.py:89 +msgid "New password" +msgstr "" + +#: password_reset/forms.py:93 +msgid "New password (confirm)" +msgstr "" + +#: password_reset/forms.py:98 +msgid "The two passwords didn't match." +msgstr "" + +#: password_reset/templates/password_reset/recovery_done.html:3 +msgid "New password set" +msgstr "" + +#: password_reset/templates/password_reset/recovery_done.html:6 +msgid "" +"Your password has successfully been reset. You can use it right now on the " +"login page." +msgstr "" + +#: password_reset/templates/password_reset/recovery_email.txt:1 +#, python-format +msgid "Dear %(username)s," +msgstr "" + +#: password_reset/templates/password_reset/recovery_email.txt:3 +#, python-format +msgid "" +"You -- or someone pretending to be you -- has requested a password reset on " +"%(domain)s." +msgstr "" + +#: password_reset/templates/password_reset/recovery_email.txt:5 +msgid "You can set your new password by following this link:" +msgstr "" + +#: password_reset/templates/password_reset/recovery_email.txt:9 +msgid "" +"If you don't want to reset your password, simply ignore this email and it " +"will stay unchanged." +msgstr "" + +#: password_reset/templates/password_reset/recovery_email_subject.txt:1 +#, python-format +msgid "Password recovery on %(domain)s" +msgstr "" + +#: password_reset/templates/password_reset/recovery_form.html:5 +msgid "Password recovery" +msgstr "" + +#: password_reset/templates/password_reset/recovery_form.html:10 +msgid "Recover my password" +msgstr "" + +#: password_reset/templates/password_reset/reset.html:5 +#, python-format +msgid "" +"Sorry, this password reset link is invalid. You can still request a new one." +msgstr "" + +#: password_reset/templates/password_reset/reset.html:7 +#, python-format +msgid "Hi, %(username)s. Please choose your new password." +msgstr "" + +#: password_reset/templates/password_reset/reset.html:11 +msgid "Set new password" +msgstr "" + +#: password_reset/templates/password_reset/reset_sent.html:4 +msgid "Password recovery sent" +msgstr "" + +#: password_reset/templates/password_reset/reset_sent.html:7 +#, python-format +msgid "" +"An email was sent to %(email)s %(ago)s ago. Use the link in " +"it to set a new password." +msgstr "" diff --git a/templates/admin/article/article_confirm_delete.html b/templates/admin/article/article_confirm_delete.html new file mode 100644 index 00000000..ac15985c --- /dev/null +++ b/templates/admin/article/article_confirm_delete.html @@ -0,0 +1,11 @@ +{% extends 'base.html' %} +{% block sidebar %}{% endblock %} +{% block body %} +
    {% csrf_token %} +
    +

    Вы точно хотите удалить "{{ object }}" ?

    + + Нет +
    +
    +{% endblock %} \ No newline at end of file diff --git a/templates/admin/expobanner/link_list.html b/templates/admin/expobanner/link_list.html new file mode 100644 index 00000000..4a7ff172 --- /dev/null +++ b/templates/admin/expobanner/link_list.html @@ -0,0 +1,38 @@ +{% extends 'base.html' %} + +{% block body %} + +
    +
    +

    {{ verbose }}

    +
    +
    + {% block list_table %} + + + + + + + + + + + + {% for item in object_list %} + + + + + + + {% endfor %} + +
    Объектссылка для отслеживания  
    {{ item }}{{request.get_host}}{{ item.get_click_link }}Изменить Статистика
    + {% endblock %} +
    + {# pagination #} + {% include 'admin/includes/admin_pagination.html' with page_obj=object_list %} +
    + +{% endblock %} \ No newline at end of file diff --git a/templates/admin/expobanner/main_list.html b/templates/admin/expobanner/main_list.html new file mode 100644 index 00000000..a06a2411 --- /dev/null +++ b/templates/admin/expobanner/main_list.html @@ -0,0 +1,55 @@ +{% extends 'admin/base.html' %} + +{% block body %} + +
    +
    +

    Список выставок на главной

    +
    +
    + {% block list_table %} + +
    +
    + Только опубликование +
    +
    + + + + + + + + + + + + {% for item in object_list %} + + + + + + + + {% endfor %} + +
    ВыставкаПозиция   
    {{ item }}{{ item.main.position }}Изменить {% if item.main.public %}отключить{% else %}включить{% endif %} Статистика
    + {% endblock %} +
    + {# pagination #} + {% include 'admin/includes/admin_pagination.html' with page_obj=object_list %} +
    + +{% endblock %} \ No newline at end of file diff --git a/templates/admin/expobanner/main_stat.html b/templates/admin/expobanner/main_stat.html new file mode 100644 index 00000000..d186b92f --- /dev/null +++ b/templates/admin/expobanner/main_stat.html @@ -0,0 +1,90 @@ +{% extends 'admin/base.html' %} +{% load static %} +{% load i18n %} +{% block scripts %} + {# datetimepicker #} + + + +{% endblock %} + + +{% block body %} +
    +
    +
    +

    {{ object.get_event }}

    +
    +
    +
    +
    Линк на статистику: {{ request.get_host }}/expo-b/banner/{{ object.link.id }}/stat/
    +
    Пароль: {{ object.link.stat_pswd }}
    +
    + +
    +
    +
    + + + + + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + {% with stats=stats %} + {% for stat in stats %} + + + + + + + + + {% endfor %} + {% endwith %} + +
    ДатаПоказыКликиУникальные показыУникальные клики
    Всего{{ all.views }}{{ all.clicks }}{{ all.unique_views}}{{ all.unique_clicks }}
    {{ stat.date|date:"Y-m-d" }}{{ stat.view }}{{ stat.click }}{{ stat.unique_view }}{{ stat.unique_click }}
    +
    +
    +
    + +{% endblock %} \ No newline at end of file diff --git a/templates/client/includes/banners/detail_inner_3.html b/templates/client/includes/banners/detail_inner_3.html new file mode 100644 index 00000000..7315e28e --- /dev/null +++ b/templates/client/includes/banners/detail_inner_3.html @@ -0,0 +1,11 @@ +
    + + + + +
    \ No newline at end of file diff --git a/templates/client/includes/banners/popup.html b/templates/client/includes/banners/popup.html new file mode 100644 index 00000000..6152147d --- /dev/null +++ b/templates/client/includes/banners/popup.html @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/templates/client/includes/banners/popup_2.html b/templates/client/includes/banners/popup_2.html new file mode 100644 index 00000000..75c55929 --- /dev/null +++ b/templates/client/includes/banners/popup_2.html @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/templates/client/includes/conference/default_description.html b/templates/client/includes/conference/default_description.html new file mode 100644 index 00000000..b1c15031 --- /dev/null +++ b/templates/client/includes/conference/default_description.html @@ -0,0 +1,21 @@ +{% load i18n %} +
    +{% blocktrans with name=conf.name%} +

    Конференция {{name}} проходит {% endblocktrans %}{% include 'client/includes/show_date_block.html' with obj=conf %} +{% blocktrans with city=conf.name country=country.name name=conf.name id=conf.city.id code=request.LANGUAGE_CODE date1=conf.data_begin|date:'j' date2=conf.data_begin|date:'Y' date3=conf.data_begin|date:'n' date4=conf.data_end|date:'j' date5=conf.data_end|date:'Y' date6=conf.data_end|date:'n' %} + в городе {{city}}, {{country}}. +Посмотреть, как проехать в место проведения конференции, можно на сайте конгрессной площадки. +Деловая программа {{name}} разбита на секции по дням и размещается на сайте мероприятия с подробным списком +докладчиков конференции. Спикеров конференции {{name}} обычно окончательно утверждают за 1-2 месяца до начала конференции.

    +

    Ваши деловые контакты на {{name}}

    +

    Добавьте конференцию {{name}} в расписание, чтобы не потерять важное событие, + где встречаются профессионалы нужной Вам отрасли. Создавайте свой календарь мероприятий, просто нажав кнопку + "Добавить в календарь".

    +

    Планируете самостоятельную поездку на {{name}} ?

    +

    Если Вам требуется размещение, мы рекомендуем посмотреть отели и цены в период проведения конференции здесь. +Не забудьте проверить место и даты конференции на официальном сайте и в календаре организатора. Событие могут перенести, +отменить, объединить с проектом схожей тематики. Expomap не несет ответственности за неточности +предоставляемой информации. +Есть вопрос по участию в {{name}} ? Ответим по тел. +7 (499) 999-12-07

    + {% endblocktrans %} +
    \ No newline at end of file diff --git a/templates/client/includes/exposition/default_description.html b/templates/client/includes/exposition/default_description.html new file mode 100644 index 00000000..df26b1ea --- /dev/null +++ b/templates/client/includes/exposition/default_description.html @@ -0,0 +1,34 @@ +{% load i18n %} +
    + {% blocktrans with name=expo.name %} +

    Выставка {{ name }} проводится{% endblocktrans %} + {% include 'client/includes/show_date_block.html' with obj=expo %} + {% blocktrans with city=expo.city.name country=expo.country.name %} в городе {{ city }}, {{ country }} + .{% endblocktrans %} + {% blocktrans with name=expo.name id=expo.city.id code=request.LANGUAGE_CODE date1=expo.data_begin|date:'j' date2=expo.data_begin|date:'Y' date3=expo.data_begin|date:'n' date4=expo.data_end|date:'j' date5=expo.data_end|date:'Y' date6=expo.data_end|date:'n' %} + Экспонируемые продукты и разделы выставки Вы можете посмотреть ниже, в блоке + «Дополнительная информация». + Полный список участников {{ name }} размещается на официальном сайте выставки и постоянно обновляется. + Там же Вы сможете найти экспонентов предыдущего года. Деловая программа {{ name }} обычно публикуется ближе к + началу события.

    + +

    Ваш личный календарь

    +

    Добавьте выставку {{ name }} в календарь, чтобы не + потерять важное событие. Создавайте свой календарь мероприятий, + просто нажав кнопку Добавить в календарь.

    + +

    Планируете самостоятельную поездку на {{ name }}?

    +

    Мы рекомендуем посмотреть отели и цены в период проведения выставки + здесь. + {% endblocktrans %}{% if expo.place %} + {% blocktrans with name=expo.place.name url=expo.place.url %}Как добраться до выставочного центра {{ name }} можно + посмотреть + здесь.{% endblocktrans %} +{% endif %} + {% blocktrans with name=expo.name %} + Не забудьте проверить место и даты выставки на официальном сайте и в календаре выставочного комплекса. + Событие могут перенести, отменить, объединить с проектом схожей тематики. + Expomap не несет ответственности за неточности предоставляемой информации. + Есть вопрос о посещении или участии в {{ name }}? Ответим по тел. +7 (499) 999-12-07

    + {% endblocktrans %} +
    \ No newline at end of file diff --git a/templates/client/specialist_catalog/catalog.html b/templates/client/specialist_catalog/catalog.html new file mode 100644 index 00000000..bd24ce8d --- /dev/null +++ b/templates/client/specialist_catalog/catalog.html @@ -0,0 +1,32 @@ +{% extends "client/base_catalog.html" %} +{% load static %} +{% load i18n %} +{% load template_filters %} + +{% block bread_scrumbs %} + +{% endblock %} + + +{% block content_list %} + {% with objects=object_list %} + {% for obj in objects %} + {% set cur_word = obj.place.name %} + {% if cur_word|slice:":1"|lower != prev_word|slice:":1"|lower and forloop.counter != 1 %} + + {% endif %} + {% if cur_word|slice:":1"|lower != prev_word|slice:":1"|lower %} +
      +
      {{ cur_word|slice:":1"|upper }}
      + {% endif %} +
    • + {{ obj.place }} +
    • + {% set prev_word = obj.place.name %} + {% endfor %} + {% endwith %} + +{% endblock %} \ No newline at end of file diff --git a/templates/client/static_client/js/rejs/banners.js b/templates/client/static_client/js/rejs/banners.js new file mode 100644 index 00000000..70e4998b --- /dev/null +++ b/templates/client/static_client/js/rejs/banners.js @@ -0,0 +1,113 @@ +(function () { + "use strict"; + + var API_URL_ROOT = "/expo-b/get-banners/"; + + var getUrl = function () { + var search = []; + + var parts = /^\/([^\/]+)(?:\/|$)/i.exec(location.pathname); + if (parts) { + search.push("catalog=" + encodeURIComponent(parts[1])); + } else { + search.push("catalog="); + } + + var elements = $("[id^=\"expo_b_\"]"); + for (var j = 0; j < elements.length; j++) { + search.push("places=" + encodeURIComponent($(elements[j]).attr("id"))); + } + + var data = window.sendData; + if (data instanceof Object) { + for (var key in data) { + if (data.hasOwnProperty(key)) { + var value = data[key]; + + if (value instanceof Array) { + for (var i = 0, l = value.length; i < l; i++) { + search.push(encodeURIComponent(key) + "=" + encodeURIComponent(value[i])); + } + } else { + search.push(encodeURIComponent(key) + "=" + encodeURIComponent(value)); + } + } + } + } + + return API_URL_ROOT + "?" + search.join("&"); + }; + + var getBanners = function (url, callback) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", url, true); + + xhr.onreadystatechange = function (event) { + if (event.target.readyState === 4) { + if (event.target.status === 200) { + try { + callback(JSON.parse(event.target.responseText)); + } catch (error) { + // do nothing + } + } + } + }; + + xhr.send(); + }; + + var addBanner = function (banner) { + var parent = document.getElementById(banner.id); + + if (parent) { + if (banner.is_popup) { + if (banner.is_img) { + parent.innerHTML = + "
      " + + "\""
      "; + } else if (banner.is_html) { + parent.innerHTML = banner.text; + } + + $("#expo-form-popup").on("submit", function(e) { + e.preventDefault(); + window.location = $("#expo-form-popup").attr("action"); + }); + + setTimeout(function(){ + $.fancybox.open([{"href": "#" + banner.id}], {}); + }, 5000); + } else { + if (banner.is_img) { + var a = document.createElement("a"); + a.href = banner.url; + + var img = document.createElement("img"); + img.src = banner.img; + img.alt = banner.alt; + + a.appendChild(img); + parent.appendChild(a); + } else if (banner.is_html) { + parent.innerHTML = banner.text; + } + } + } + + }; + + var insertBanners = function (data) { + if (data instanceof Array) { + for (var i = 0, l = data.length; i < l; i++) { + addBanner(data[i]); + } + } + }; + + var main = function () { + getBanners(getUrl(), insertBanners); + }; + + window.addEventListener("load", main); +})(); diff --git a/templates/client/static_client/js/rejs/tops.js b/templates/client/static_client/js/rejs/tops.js new file mode 100644 index 00000000..31bee27b --- /dev/null +++ b/templates/client/static_client/js/rejs/tops.js @@ -0,0 +1,69 @@ +(function () { + "use strict"; + + var API_URL_ROOT = "/expo-b/get-tops/"; + var PARENT_ID = "expo_top_events"; + + var getUrl = function () { + var search = []; + + var parts = /^\/([^\/]+)(?:\/|$)/i.exec(location.pathname); + if (parts) { + search.push("catalog=" + encodeURIComponent(parts[1])); + } else { + search.push("catalog="); + } + + var data = window.sendData; + if (data instanceof Object) { + for (var key in data) { + if (data.hasOwnProperty(key)) { + var value = data[key]; + + if (value instanceof Array) { + for (var i = 0, l = value.length; i < l; i++) { + search.push(encodeURIComponent(key) + "=" + encodeURIComponent(value[i])); + } + } else { + search.push(encodeURIComponent(key) + "=" + encodeURIComponent(value)); + } + } + } + } + + return API_URL_ROOT + "?" + search.join("&"); + }; + + var getTops = function (url, callback) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", url, true); + + xhr.onreadystatechange = function (event) { + if (event.target.readyState === 4) { + if (event.target.status === 200) { + try { + callback(event.target.responseText); + } catch (error) { + // do nothing + } + } + } + }; + + xhr.send(); + }; + + var insertTops = function (text) { + var parent = document.getElementById(PARENT_ID); + + if (parent) { + parent.innerHTML = text; + } + }; + + var main = function () { + getTops(getUrl(), insertTops); + }; + + window.addEventListener("load", main); +})(); diff --git a/wizard/description.txt b/wizard/description.txt new file mode 100644 index 00000000..9da7860c --- /dev/null +++ b/wizard/description.txt @@ -0,0 +1,2 @@ +Должен был быть модуль для добавления событий и других даных через кабинет пользователя. +Остановленна разработка по ненадобности, так как делается функционал добавление событий через црм \ No newline at end of file From f92b1dfabdd30b8273d485d9dfbfd7102f03ef11 Mon Sep 17 00:00:00 2001 From: Ivan_Home_PC Date: Sun, 27 Sep 2015 19:40:01 +0300 Subject: [PATCH 06/12] Calendar hotfix --- core/utils.py | 32 +++++++++++++++++++++---- core/views.py | 4 ++-- templates/client/accounts/calendar.html | 4 ++-- 3 files changed, 31 insertions(+), 9 deletions(-) diff --git a/core/utils.py b/core/utils.py index 37a7f4ce..99b93844 100644 --- a/core/utils.py +++ b/core/utils.py @@ -7,6 +7,21 @@ http://www.simplistix.co.uk/presentations/python-excel.pdf import xlwt import datetime from django.core.exceptions import ObjectDoesNotExist +from django.conf import settings +from django.utils.translation import get_language + +current_lang = get_language()[:2] +if current_lang == 'ru': + header_list = [u'#', u'Название события',u'Даты',u'Краткое описание',u'Место проведения', u'Заметка', u'Ссылка на событие'] + main_header = u'Мой календарь собитий на {month} {year} года' +else: + header_list = [u'#', u'Event',u'Period',u'Short description',u'Place', u'Notes', u'Hyperlink'] + main_header = u'My event calendar on {month} {year}' + + + + + HEADER_STYLE = xlwt.easyxf('font: bold on') DEFAULT_STYLE = xlwt.easyxf() @@ -46,6 +61,12 @@ def get_column_cell(obj, name): def queryset_to_workbook(queryset, columns, report_date = None): + # localization + if current_lang == 'ru': + month_name = settings.MONTHES[report_date.strftime("%b").lower()]['name'] + else: + month_name = report_date.strftime("%B") + # defining styles for different types of cells main_style = xlwt.Style.easyxf( "font: name Calibri, height 600, bold False;" @@ -63,13 +84,13 @@ def queryset_to_workbook(queryset, columns, report_date = None): odd_style = xlwt.Style.easyxf( 'font: name Calibri, height 300, bold False;' 'borders: left thin, right thin, top thin, bottom thin;' - 'alignment: horizontal center, wrap True;' + 'alignment: horizontal center, vertical center, wrap True;' 'pattern: pattern solid, fore_color white;', ) even_style = xlwt.Style.easyxf( 'font: name Calibri, height 300, bold False;' 'borders: left thin, right thin, top thin, bottom thin;' - 'alignment: horizontal center, wrap True;' + 'alignment: horizontal center, vertical center, wrap True;' 'pattern: pattern solid, fore_color silver_ega;', ) # creating workbook and adding sheet @@ -78,14 +99,15 @@ def queryset_to_workbook(queryset, columns, report_date = None): sheet_name = u'My calendar {0}'.format(report_date.strftime('%Y-%B')) sheet = workbook.add_sheet(sheet_name) + # drawing head part with image - sheet.write_merge(0, 6, 0, 6, u'Мой календарь собитий на %s года' % report_date.strftime("%B %Y"), main_style) + sheet.write_merge(0, 6, 0, 6, main_header.format( + month = month_name,year = report_date.strftime("%Y")), main_style) for i in range(7): sheet.row(i).set_style(xlwt.Style.easyxf('font:height 300;')) - sheet.insert_bitmap('/home/www/proj/media/logo.bmp', row=0, col=5, x=0, y=0, scale_x=0.3, scale_y=2) + sheet.insert_bitmap('/home/www/proj/static/logo.bmp', row=0, col=5, x=0, y=0, scale_x=0.3, scale_y=2) # drawing headers - header_list = [u'#', u'Название события',u'Даты',u'Краткое описание',u'Место проведения', u'Заметка', u'Ссылка на событие'] for i, column in enumerate(columns): sheet.write(8, i, header_list[i], header_style) sheet.col(i).width = 8000 diff --git a/core/views.py b/core/views.py index 1ad5be9a..125c1f1f 100644 --- a/core/views.py +++ b/core/views.py @@ -282,9 +282,9 @@ def download_workbook(request): setattr(obj, 'dates', u'%s - %s'%(obj.data_begin.strftime('%d %B %Y'),obj.data_end.strftime('%d %B %Y'))) setattr(obj, 'full_place', u'%s, %s, %s' % (obj.country, obj.city, getattr(obj.place, 'name', ''))) try: - setattr(obj, 'link', u'http://www.expomap.ru%s)'%obj.get_absolute_url()) + setattr(obj, 'link', u'http://www.expomap.ru%s'%obj.get_absolute_url()) except: - setattr(obj, 'link', u'http://www.expomap.ru%s)'%obj.get_permanent_url()) + setattr(obj, 'link', u'http://www.expomap.ru%s'%obj.get_permanent_url()) columns = ( 'number', diff --git a/templates/client/accounts/calendar.html b/templates/client/accounts/calendar.html index d49542e5..6a1f8502 100644 --- a/templates/client/accounts/calendar.html +++ b/templates/client/accounts/calendar.html @@ -65,11 +65,11 @@ } console.log(clear_list); var query = $.param({data:clear_list}); - if(clear_list.Length > 0){ + if(clear_list.length > 0){ window.location.href = "/profile/calendar/export/?" + query; } else{ - alert({% trans "Не выбрано ни одного события!" %}) + alert('{% trans "Не выбрано ни одного события!" %}'); } }); From 28caafcce24f65987e284c10f86c543c6148e745 Mon Sep 17 00:00:00 2001 From: Ivan_Home_PC Date: Mon, 28 Sep 2015 00:45:31 +0300 Subject: [PATCH 07/12] article/blog fixes and improvements --- article/forms.py | 6 ++--- article/urls.py | 8 ++++--- article/views.py | 24 +++++++++++++------- templates/client/article/article.html | 14 +----------- templates/client/article/blog_list.html | 3 ++- templates/client/article/catalog.html | 10 +++++++- templates/client/includes/article_theme.html | 6 +++++ theme/views.py | 9 ++++---- 8 files changed, 47 insertions(+), 33 deletions(-) create mode 100644 templates/client/includes/article_theme.html diff --git a/article/forms.py b/article/forms.py index 2648f96b..54e6477f 100644 --- a/article/forms.py +++ b/article/forms.py @@ -19,7 +19,7 @@ from conference.models import Conference class BlogForm(forms.Form): type = Article.blog - theme = forms.ModelMultipleChoiceField(label='Тематики', queryset=Theme.objects.all(), required=False, + theme = forms.ModelMultipleChoiceField(label='Тематики', queryset=Theme.objects.exclude(article__id=None), required=False, widget=forms.SelectMultiple(attrs={'style':'width: 550px'})) publish_date = forms.DateField(label=u'Дата публикации', input_formats=['%Y-%m-%d', '%d.%m.%Y'], required=False) tag = forms.CharField(label=u'Теги', widget=forms.HiddenInput(), required=False) @@ -258,7 +258,7 @@ class BlogForm(forms.ModelForm): class ArticleFilterForm(forms.Form): theme = forms.MultipleChoiceField(label=_(u'Тематика:'), required=False, - choices=[(item.id, item.name) for item in Theme.objects.language().all()]) + choices=[(item.id, item.name) for item in Theme.objects.language().exclude(article__id=None)]) tag = forms.CharField(label=_(u'Теги:'), widget=forms.HiddenInput(), required=False) ''' @@ -295,4 +295,4 @@ class NewsFilterForm(forms.Form): super(NewsFilterForm, self).__init__(*args, **kwargs) ids = [item['theme'] for item in list(Article.objects.news().values('theme').distinct())] self.fields['theme'] = forms.MultipleChoiceField(label=_(u'Тематика:'), required=False, - choices=[(item.id, item.name) for item in Theme.objects.language().filter(id__in=ids)]) \ No newline at end of file + choices=[(item.id, item.name) for item in Theme.objects.language().exclude(article__id=None).filter(id__in=ids)]) \ No newline at end of file diff --git a/article/urls.py b/article/urls.py index a0faf232..482a9e76 100644 --- a/article/urls.py +++ b/article/urls.py @@ -1,11 +1,13 @@ # -*- coding: utf-8 -*- from django.conf.urls import patterns, url -from views import BlogList, NewsList, BlogDetail, NewsDetail, NewsTagCatalog, BlogsTagCatalog +from views import BlogList, NewsList, BlogDetail, NewsDetail, NewsTagCatalog, BlogsFilterCatalog urlpatterns = patterns('', - url(r'^blogs/tag/(?P.*)/page/(?P\d+)/$', BlogsTagCatalog.as_view(), {'meta_id':75}), + url(r'^blogs/tag/(?P.*)/page/(?P\d+)/$', BlogsFilterCatalog.as_view(), {'meta_id':75, 'filter':'tag'}), + url(r'^blogs/theme/(?P.*)/page/(?P\d+)/$', BlogsFilterCatalog.as_view(), {'filter':'theme'}), url(r'^blogs/page/(?P\d+)/$', BlogList.as_view(), {'meta_id':79}), - url(r'^blogs/tag/(?P.*)/$', BlogsTagCatalog.as_view(), {'meta_id':75}), + url(r'^blogs/tag/(?P.*)/$', BlogsFilterCatalog.as_view(), {'meta_id':75, 'filter':'tag'}), + url(r'^blogs/theme/(?P.*)/$', BlogsFilterCatalog.as_view(), {'filter':'theme'}), url(r'^blogs/$', BlogList.as_view(), {'meta_id':79}), diff --git a/article/views.py b/article/views.py index 952e4193..7b5c68ec 100644 --- a/article/views.py +++ b/article/views.py @@ -5,7 +5,7 @@ from functions.custom_views import ListView from django.http import HttpResponse from models import Article from forms import ArticleFilterForm -from theme.models import Tag +from theme.models import Tag, Theme from meta.views import MetadataMixin @@ -163,7 +163,7 @@ class NewsTagCatalog(MetadataMixin, ListView): -class BlogsTagCatalog(MetadataMixin, ListView): +class BlogsFilterCatalog(MetadataMixin, ListView): model = Article template_name = 'client/article/catalog.html' catalog_url = '/blogs/tag/' @@ -171,12 +171,19 @@ class BlogsTagCatalog(MetadataMixin, ListView): year = None month = None - def get_queryset(self): + def get_queryset(self, **kwargs): slug = self.kwargs.get('slug') - tag = get_object_or_404(Tag, url=slug) - self.kwargs['tag'] = tag - self.filter_object = tag - qs = Article.objects.blogs().filter(tag=tag) + filter = self.kwargs['filter'] + if filter == 'tag': + tag = get_object_or_404(Tag, url=slug) + self.kwargs['tag'] = tag + self.filter_object = tag + qs = Article.objects.blogs().filter(tag=tag) + else: + theme = get_object_or_404(Theme, url=slug) + self.kwargs['theme'] = theme + self.filter_object = theme + qs = Article.objects.blogs().filter(theme = theme) year = self.kwargs.get('year') if year: @@ -201,8 +208,9 @@ class BlogsTagCatalog(MetadataMixin, ListView): def get_context_data(self, **kwargs): - context = super(BlogsTagCatalog, self).get_context_data(**kwargs) + context = super(BlogsFilterCatalog, self).get_context_data(**kwargs) context['filter_object'] = self.filter_object + context['type'] = 'article' context['year'] = self.year context['month'] = self.month context['catalog_url'] = self.catalog_url diff --git a/templates/client/article/article.html b/templates/client/article/article.html index da51969d..71f5d860 100644 --- a/templates/client/article/article.html +++ b/templates/client/article/article.html @@ -19,7 +19,7 @@ {% include 'client/includes/article/article_logo.html' with obj=object %}

      {{ object.main_title }}

      - {{ object.publish_date|date:"d E Y" }}{{ object.author.get_full_name }} + {{ object.created|date:"d E Y" }}{% if object.theme.all.exists %}{% include 'includes/article_theme.html' with obj=object %}{% endif %} {% if request.user.is_admin %} {% trans 'изменить' %} {% endif %} @@ -30,18 +30,6 @@
      - - - - - - -
      {% trans 'Автор' %}:{% include 'includes/show_logo.html' with obj=object.author %} -

      {{ object.author.get_full_name }}

      - {% if object.author.profile.fb %} - - {% endif %} -
      {% if object.tag.all.exists %}
      {% include 'includes/article_tags.html' with obj=object %} diff --git a/templates/client/article/blog_list.html b/templates/client/article/blog_list.html index de840d8d..17c35b26 100644 --- a/templates/client/article/blog_list.html +++ b/templates/client/article/blog_list.html @@ -45,7 +45,8 @@ diff --git a/theme/urls.py b/theme/urls.py index d8305d20..88a81794 100644 --- a/theme/urls.py +++ b/theme/urls.py @@ -3,4 +3,5 @@ from django.conf.urls import patterns, url urlpatterns = patterns('', url(r'^get-tag/$', 'theme.views.get_tag'), + url(r'^get-article-tags/$', 'theme.views.get_article_tags'), ) \ No newline at end of file diff --git a/theme/views.py b/theme/views.py index e5271db1..1deadf9b 100644 --- a/theme/views.py +++ b/theme/views.py @@ -5,16 +5,30 @@ from theme.models import Tag def get_tag(request): #if request.is_ajax(): - themes = request.GET.getlist('themes[]') - term = request.GET['term'].capitalize() - qs = Tag.objects.language().exclude(theme__article__id=None).distinct() - if term: - qs = qs.filter(translations__name__contains=term) - if themes: - qs = qs.filter(theme__id__in=themes).order_by('translations__name') - result = [{'id': tag.id, 'label': '%s (%s)'%(tag.name, tag.theme.name)} for tag in qs] - result = sorted(result, key=lambda x:x['label']) + themes = request.GET.getlist('themes[]') + term = request.GET['term'].capitalize() + qs = Tag.objects.language().exclude(theme__article__id=None).distinct() + if term: + qs = qs.filter(translations__name__contains=term) + if themes: + qs = qs.filter(theme__id__in=themes).order_by('translations__name') + result = [{'id': tag.id, 'label': '%s (%s)'%(tag.name, tag.theme.name)} for tag in qs] + result = sorted(result, key=lambda x:x['label']) - return HttpResponse(json.dumps(result), content_type='application/json') + return HttpResponse(json.dumps(result), content_type='application/json') #else: # return HttpResponse('not ajax') + + +def get_article_tags(request): + themes = request.GET.getlist('themes[]') + term = request.GET['term'].capitalize() + qs = Tag.objects.language().exclude(article=None).filter(article__type=1).distinct() + if themes: + qs = qs.filter(theme__id__in=themes).order_by('translations__name') + if term: + qs = qs.filter(translations__name__contains=term) + result = [{'id': tag.id, 'label': '%s (%s)'%(tag.name, tag.theme.name)} for tag in qs] + result = sorted(result, key=lambda x:x['label']) + + return HttpResponse(json.dumps(result), content_type='application/json') \ No newline at end of file From ec58ac03c022cc7b31b1551c7e96dc436d784092 Mon Sep 17 00:00:00 2001 From: Nazar Kotjuk Date: Mon, 28 Sep 2015 21:31:42 +0300 Subject: [PATCH 12/12] Task 162 --- functions/form_check.py | 14 ++++---------- settings/templatetags/template_filters.py | 6 ++++-- static/custom_js/main.js | 4 ++-- .../includes/exposition/exposition_object.html | 1 - templates/client/includes/exposition/price.html | 16 ++++++++-------- 5 files changed, 18 insertions(+), 23 deletions(-) diff --git a/functions/form_check.py b/functions/form_check.py index cfbe998f..19b93f86 100644 --- a/functions/form_check.py +++ b/functions/form_check.py @@ -15,12 +15,9 @@ def is_positive_integer(data, else: raise ValidationError(msg) - -from slugify import slugify - +from django.utils.encoding import smart_str, smart_unicode +import unicodedata def translit_with_separator(string, separator='-'): - - #return slugify(string) """ Trsanslit string and replace "bad" symbols for separator @@ -30,15 +27,13 @@ def translit_with_separator(string, separator='-'): #make string unicode string = string.strip() - string = u'%s'%string + string = smart_unicode(string) #make string translit try: st = pytils.translit.translify(string) except ValueError: - # remove exception symbs(hack) - string = string.replace(u'\u200e', '') - string = string.replace(u'\u200b', '') + string = unicodedata.normalize('NFKD', string).encode('ascii','ignore') st = pytils.translit.translify(string) #replace "bad" symbols for '-'symbol @@ -54,7 +49,6 @@ def translit_with_separator(string, separator='-'): return st.lower() - def is_latin_char(uchr): latin_letters= {} try: return latin_letters[uchr] diff --git a/settings/templatetags/template_filters.py b/settings/templatetags/template_filters.py index fb26e631..7f1fbb7a 100644 --- a/settings/templatetags/template_filters.py +++ b/settings/templatetags/template_filters.py @@ -141,8 +141,10 @@ def timesince_exp(value, date=None): """ delta = timedelta(days=28) d = date -value - if d>delta: - return True + + if d > delta: + if date.month== value.month: + return True return False @register.filter diff --git a/static/custom_js/main.js b/static/custom_js/main.js index 7f2f0d3b..3fde29bd 100644 --- a/static/custom_js/main.js +++ b/static/custom_js/main.js @@ -88,7 +88,8 @@ function postTimetable(data, textStatus){ function postStat(data, textStatus){ if(data.success){ - location.reload; + + window.location.reload(); } else{ $.each(data.errors, function(field_name, errors){ @@ -424,7 +425,6 @@ $(document).ready(function(){ $('#stat_form').on('submit', function(e){//submit(function(){ e.preventDefault(); var url = '/admin/ajax_post_stat/' + $('#obj_id').val() + '/'; - console.log(url) var formData = $(this).serialize(); $.ajax({ diff --git a/templates/client/includes/exposition/exposition_object.html b/templates/client/includes/exposition/exposition_object.html index 53552c55..48034fe6 100644 --- a/templates/client/includes/exposition/exposition_object.html +++ b/templates/client/includes/exposition/exposition_object.html @@ -73,7 +73,6 @@
      -\1 {% endif %}
      diff --git a/templates/client/includes/exposition/price.html b/templates/client/includes/exposition/price.html index f2470f8b..fd040251 100644 --- a/templates/client/includes/exposition/price.html +++ b/templates/client/includes/exposition/price.html @@ -129,7 +129,7 @@
    • {{ exposition.price_day_bar }} {% if exposition.price_day_bar|isdigit %}{{ exposition.get_currency_html }}{% endif %}
      -
      на 1 день
      +
      {% trans 'на 1 день' %}
    • {% endif %} {% if exposition.price_all_bar %} @@ -177,14 +177,14 @@
      {% trans 'Стоимость аренды 1м²' %}
      - {% if exposition.max_closed_equipped_area or exposition.max_closed_area or exposition.max_open_area %} + {% if exposition.max_closed_equipped_area or exposition.max_closed_area or exposition.max_open_area or exposition.min_closed_area %}
        - {% if exposition.max_closed_equipped_area %} + {% if exposition.max_closed_equipped_area or exposition.min_closed_equipped_area %}
      • {% if exposition.min_closed_equipped_area %} - {{ exposition.min_closed_equipped_area }}-{{ exposition.max_closed_equipped_area }} {{ exposition.get_currency_html }} + {{ exposition.min_closed_equipped_area }}{% if exposition.min_closed_equipped_area %}-{{ exposition.max_closed_equipped_area }}{% endif %} {{ exposition.get_currency_html }} {% else %} {{ exposition.max_closed_equipped_area }} {{ exposition.get_currency_html }} {% endif %} @@ -193,11 +193,11 @@
      • {% endif %} - {% if exposition.max_closed_area %} + {% if exposition.max_closed_area or exposition.min_closed_area %}
      • {% if exposition.min_closed_area %} - {{ exposition.min_closed_area }}-{{ exposition.max_closed_area }} {{ exposition.get_currency_html }} + {{ exposition.min_closed_area }}{% if exposition.max_closed_area %}-{{ exposition.max_closed_area }}{% endif %} {{ exposition.get_currency_html }} {% else %} {{ exposition.max_closed_area }} {{ exposition.get_currency_html }} {% endif %} @@ -206,11 +206,11 @@
      • {% endif %} - {% if exposition.max_open_area %} + {% if exposition.max_open_area or exposition.min_open_area %}
      • {% if exposition.min_open_area %} - {{ exposition.min_open_area }}-{{ exposition.max_open_area }} {{ exposition.get_currency_html }} + {{ exposition.min_open_area }}{% if exposition.max_open_area %}-{{ exposition.max_open_area }}{% endif %} {{ exposition.get_currency_html }} {% else %} {{ exposition.max_open_area }} {{ exposition.get_currency_html }} {% endif %}