From 038e85bf45a551ea6a08bd6f29e8cc7367a105d4 Mon Sep 17 00:00:00 2001 From: Diatrex Date: Wed, 28 Apr 2021 15:26:10 +0300 Subject: [PATCH] #3553 Ad post contact - Options Design --- .../resources/views/new-ad/new-create.twig | 3 +- .../resources/css/lookup.css | 15 - .../resources/css/lookup.scss | 285 ++++++++++++++++++ .../resources/images/close.svg | 6 + .../resources/images/plus.svg | 12 + .../resources/views/lookup.twig | 14 +- .../resources/views/table/ajax.twig | 53 ++++ .../resources/views/table/ajax/filters.twig | 27 ++ .../resources/views/table/ajax/header.twig | 36 +++ .../resources/views/table/ajax/heading.twig | 19 ++ .../resources/views/table/ajax/views.twig | 14 + .../resources/views/table/partials/body.twig | 20 +- .../resources/views/table/table.twig | 6 +- .../src/Http/Controller/LookupController.php | 4 - .../src/Table/LookupTableBuilder.php | 5 +- 15 files changed, 485 insertions(+), 34 deletions(-) delete mode 100644 addons/default/visiosoft/multiple-field_type/resources/css/lookup.css create mode 100644 addons/default/visiosoft/multiple-field_type/resources/css/lookup.scss create mode 100644 addons/default/visiosoft/multiple-field_type/resources/images/close.svg create mode 100644 addons/default/visiosoft/multiple-field_type/resources/images/plus.svg create mode 100644 addons/default/visiosoft/multiple-field_type/resources/views/table/ajax.twig create mode 100644 addons/default/visiosoft/multiple-field_type/resources/views/table/ajax/filters.twig create mode 100644 addons/default/visiosoft/multiple-field_type/resources/views/table/ajax/header.twig create mode 100644 addons/default/visiosoft/multiple-field_type/resources/views/table/ajax/heading.twig create mode 100644 addons/default/visiosoft/multiple-field_type/resources/views/table/ajax/views.twig diff --git a/addons/default/visiosoft/advs-module/resources/views/new-ad/new-create.twig b/addons/default/visiosoft/advs-module/resources/views/new-ad/new-create.twig index 01aaf5a35..6f878bd5f 100644 --- a/addons/default/visiosoft/advs-module/resources/views/new-ad/new-create.twig +++ b/addons/default/visiosoft/advs-module/resources/views/new-ad/new-create.twig @@ -164,8 +164,7 @@ -
-{# {{ dd(form.fields.product_options_value) }}#} +
{{ form.fields.product_options_value.configSet('cat1', adv.cat1).input|raw }}
diff --git a/addons/default/visiosoft/multiple-field_type/resources/css/lookup.css b/addons/default/visiosoft/multiple-field_type/resources/css/lookup.css deleted file mode 100644 index f9e2ac372..000000000 --- a/addons/default/visiosoft/multiple-field_type/resources/css/lookup.css +++ /dev/null @@ -1,15 +0,0 @@ -.multiple-field_type .selected { - margin-top: 15px; -} -.multiple-field_type .selected table tr td { - padding: 0.5rem; - border-top: none; - border-bottom: none; -} -.multiple-field_type .selected table tr td:first-of-type { - width: 0; - padding-right: 15px; -} -.multiple-field_type .selected table tr td:last-of-type { - padding-left: 15px; -} \ No newline at end of file diff --git a/addons/default/visiosoft/multiple-field_type/resources/css/lookup.scss b/addons/default/visiosoft/multiple-field_type/resources/css/lookup.scss new file mode 100644 index 000000000..e8aa9fb14 --- /dev/null +++ b/addons/default/visiosoft/multiple-field_type/resources/css/lookup.scss @@ -0,0 +1,285 @@ +/* Main styles */ +.multiple-field_type .selected { + margin-top: 15px; +} + +.multiple-field_type .selected table tr td { + padding: 0.5rem; + border-top: none; + border-bottom: none; +} + +.multiple-field_type .selected table tr td:first-of-type { + width: 0; + padding-right: 15px; +} + +.multiple-field_type .selected table tr td:last-of-type { + padding-left: 15px; +} +/* End main styles */ + +/* Button */ +.multiple-select-btn { + background-color: #6E5DDB; + padding: 1rem 2rem; + font-family: 'Poppins', sans-serif; + font-size: 18px; + border-radius: .25rem; + border: 0; + color: #fff; + display: inline-flex; + align-items: center; + margin-bottom: 2rem; + + &:hover { + color: #fff; + } +} +/* End Button */ + +/* Modal */ +.modal { + .modal-dialog { + @media only screen and (min-width: 576px) { + max-width: 840px; + margin: 1.75rem auto; + } + + .modal-content { + .modal-header { + padding: 0; + display: block; + border: 0; + + .btn-wrapper { + text-align: right; + + button { + margin: 1.5rem 1.5rem .25rem; + padding: 0; + background: none; + border: 0; + + svg { + width: 2.25rem; + height: auto; + } + } + } + + h4 { + color: #6E5DDB; + padding: 0 5rem; + } + } + + .table-filters { + padding: 0 5rem; + margin: 2rem 0; + + form { + justify-content: space-between; + + select { + border: 0; + box-shadow: 0 .125rem .25rem rgba(0, 0, 0, .075); + font-size: 14px; + font-family: 'Poppins', sans-serif; + font-weight: 500; + padding: .5rem 1.5rem; + height: initial; + } + + .filter-buttons { + button { + background-color: #6e5ddb; + color: #fff; + } + + a { + border-color: #6e5ddb; + color: #6e5ddb; + } + } + } + } + + .table-responsive { + padding: 0 5rem; + + table { + thead { + tr { + th { + border-bottom: 1px solid #E5E5E5; + border-top: 0; + font-family: 'Poppins', sans-serif; + font-size: 19px; + font-weight: 600; + color: #505050; + + &.buttons { + display: none; + } + + a { + color: #505050; + } + } + } + } + + tbody { + td { + border-bottom: 1px solid #E5E5E5; + font-size: 19px; + font-family: 'Poppins', sans-serif; + font-weight: 500; + color: #505050; + + &.buttons { + display: none; + } + } + } + + tfoot { + th { + border: 0; + padding: 1.35rem 0 !important; + + button { + background-color: #6E5DDB; + padding: 1rem 2rem; + font-family: 'Poppins', sans-serif; + font-size: 18px; + border-radius: .25rem; + border: 0; + color: #fff; + display: inline-flex; + align-items: center; + + &:focus { + box-shadow: unset; + } + + i { + margin-right: .25rem; + } + } + } + + td { + padding: .5rem 0; + border: 0; + color: #999; + + small { + font-size: 15px; + color: #999 !important; + font-family: 'Poppins', sans-serif; + } + } + } + } + } + } + } +} +/* End Modal */ + +/* Value table */ +.multiple-field_type-value-table { + .table-responsive { + padding: 0 4rem; + + table { + thead { + tr { + th { + border-bottom: 1px solid #E5E5E5; + border-top: 0; + font-family: 'Poppins', sans-serif; + font-size: 19px; + font-weight: 600; + color: #505050; + + a { + color: #505050; + } + } + } + } + + tbody { + td { + border-bottom: 1px solid #E5E5E5; + font-size: 19px; + font-family: 'Poppins', sans-serif; + font-weight: 500; + color: #505050; + + &.buttons { + a { + background-color: unset; + border: 0; + color: #DC3545; + font-family: 'Poppins', sans-serif; + font-weight: 500; + display: inline-flex; + align-items: center; + line-height: 1; + font-size: 17px; + cursor: pointer; + } + + i { + margin-right: .5rem; + } + } + } + } + + tfoot { + th { + border: 0; + padding: 1.35rem 0 !important; + + button { + background-color: #6E5DDB; + padding: 1rem 2rem; + font-family: 'Poppins', sans-serif; + font-size: 18px; + border-radius: .25rem; + border: 0; + color: #fff; + display: inline-flex; + align-items: center; + + &:focus { + box-shadow: unset; + } + + i { + margin-right: .25rem; + } + } + } + + td { + padding: .5rem 0; + border: 0; + color: #999; + + small { + font-size: 15px; + color: #999 !important; + font-family: 'Poppins', sans-serif; + } + } + } + } + } +} +/* End Value table */ diff --git a/addons/default/visiosoft/multiple-field_type/resources/images/close.svg b/addons/default/visiosoft/multiple-field_type/resources/images/close.svg new file mode 100644 index 000000000..85882199b --- /dev/null +++ b/addons/default/visiosoft/multiple-field_type/resources/images/close.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/addons/default/visiosoft/multiple-field_type/resources/images/plus.svg b/addons/default/visiosoft/multiple-field_type/resources/images/plus.svg new file mode 100644 index 000000000..dc901980f --- /dev/null +++ b/addons/default/visiosoft/multiple-field_type/resources/images/plus.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/addons/default/visiosoft/multiple-field_type/resources/views/lookup.twig b/addons/default/visiosoft/multiple-field_type/resources/views/lookup.twig index 5ef47cca3..1aa990961 100644 --- a/addons/default/visiosoft/multiple-field_type/resources/views/lookup.twig +++ b/addons/default/visiosoft/multiple-field_type/resources/views/lookup.twig @@ -1,9 +1,15 @@ -{{ asset_add('styles.css', 'visiosoft.field_type.multiple::css/lookup.css') }} +{{ asset_add('styles.css', 'visiosoft.field_type.multiple::css/lookup.scss') }} {{ asset_add('scripts.js', 'visiosoft.field_type.multiple::js/lookup.js') }} - - {{ icon('search') }} - {{ trans('streams::button.select') }}ss + + + + + {{ img('visiosoft.field_type.multiple::images/plus.svg').data|raw }} + {{ trans('streams::button.select') }} + diff --git a/addons/default/visiosoft/multiple-field_type/resources/views/table/ajax.twig b/addons/default/visiosoft/multiple-field_type/resources/views/table/ajax.twig new file mode 100644 index 000000000..ebdbf87f0 --- /dev/null +++ b/addons/default/visiosoft/multiple-field_type/resources/views/table/ajax.twig @@ -0,0 +1,53 @@ +{{ asset_add("scripts.js", "streams::js/table/table.js") }} + +{% if not actions.isEmpty() %} + {{ asset_add("scripts.js", "streams::js/table/actions.js") }} +{% endif %} + +{% if table.options.sortable %} + {{ asset_add("scripts.js", "streams::js/table/sortable.js") }} +{% endif %} + +{{ view("visiosoft.field_type.multiple::table/ajax/heading", {'table': table}) }} + +{{ view("visiosoft.field_type.multiple::table/ajax/views", {'table': table}) }} +{{ view("visiosoft.field_type.multiple::table/ajax/filters", {'table': table}) }} + +{% if table.rows.isEmpty() %} + {% block no_results %} +
+

+ {{ trans(table.options.get('no_results_message', 'streams::message.no_results')) }} +

+
+ {% endblock %} +{% endif %} + +{% if not table.rows.isEmpty() %} + + {{ form_open({'url': url_full(), 'class': 'ajax'}) }} + +
+ + + {{ view("visiosoft.field_type.multiple::table/ajax/header", {'table': table}) }} + + {% block body %} + {{ view("visiosoft.field_type.multiple::table/partials/body", {'table': table}) }} + {% endblock %} + + {{ view("streams::table/partials/footer", {'table': table}) }} + +
+
+ + {{ form_close() }} + +{% endif %} diff --git a/addons/default/visiosoft/multiple-field_type/resources/views/table/ajax/filters.twig b/addons/default/visiosoft/multiple-field_type/resources/views/table/ajax/filters.twig new file mode 100644 index 000000000..4f7da5608 --- /dev/null +++ b/addons/default/visiosoft/multiple-field_type/resources/views/table/ajax/filters.twig @@ -0,0 +1,27 @@ +{% if not table.filters.isEmpty() %} +
+ + {{ form_open({'method': 'get', 'id': 'filters', 'url': url_full(), 'class': 'ajax form-inline'}) }} + + + + {% for filter in table.filters %} +
+ {{ filter.input|raw }} +
+ {% endfor %} + +
+ + + {{ icon(table.options.filters.clear_icon ? table.options.filters.clear_icon) }} + {{ trans(table.options.filters.clear_text ?: 'streams::button.clear') }} + +
+ {{ form_close() }} + +
+{% endif %} diff --git a/addons/default/visiosoft/multiple-field_type/resources/views/table/ajax/header.twig b/addons/default/visiosoft/multiple-field_type/resources/views/table/ajax/header.twig new file mode 100644 index 000000000..5e0af80c6 --- /dev/null +++ b/addons/default/visiosoft/multiple-field_type/resources/views/table/ajax/header.twig @@ -0,0 +1,36 @@ + + + + {% if table.options.sortable %} +   + {% endif %} + + {% if not table.actions.isEmpty() %} + + + + {% endif %} + + {% for header in table.headers %} + + {% if header.sortable %} + + {{ html_link(url_current() ~ '?' ~ header.getQueryString(), trans(header.heading), {'class': 'ajax'}) }} + + {% if header.direction == 'asc' %} + {{ icon('sort-ascending', 'text-muted') }} + {% elseif header.direction == 'desc' %} + {{ icon('sort-descending', 'text-muted') }} + {% else %} + {{ icon('sortable', 'text-muted') }} + {% endif %} + + {% else %} + {{ trans(header.heading)|raw }} + {% endif %} + + {% endfor %} + +   + + diff --git a/addons/default/visiosoft/multiple-field_type/resources/views/table/ajax/heading.twig b/addons/default/visiosoft/multiple-field_type/resources/views/table/ajax/heading.twig new file mode 100644 index 000000000..2cefe0a14 --- /dev/null +++ b/addons/default/visiosoft/multiple-field_type/resources/views/table/ajax/heading.twig @@ -0,0 +1,19 @@ +{% if (table.options.title or table.options.description) and table.options.title %} + +{% endif %} diff --git a/addons/default/visiosoft/multiple-field_type/resources/views/table/ajax/views.twig b/addons/default/visiosoft/multiple-field_type/resources/views/table/ajax/views.twig new file mode 100644 index 000000000..43250ffc0 --- /dev/null +++ b/addons/default/visiosoft/multiple-field_type/resources/views/table/ajax/views.twig @@ -0,0 +1,14 @@ +{% if not table.views.isEmpty() %} + +{% endif %} diff --git a/addons/default/visiosoft/multiple-field_type/resources/views/table/partials/body.twig b/addons/default/visiosoft/multiple-field_type/resources/views/table/partials/body.twig index bbd67a298..176f1dbd0 100644 --- a/addons/default/visiosoft/multiple-field_type/resources/views/table/partials/body.twig +++ b/addons/default/visiosoft/multiple-field_type/resources/views/table/partials/body.twig @@ -1,13 +1,23 @@ {% for row in table.rows %} - + - - {{ icon('fa fa-arrows handle') }} - + {% if table.options.sortable %} + + {{ icon('fa fa-arrows handle') }} + + + {% endif %} + + {% if not table.actions.isEmpty() %} + + + + {% endif %} {% for column in row.columns %} - + {{ column.value|raw }} {% endfor %} diff --git a/addons/default/visiosoft/multiple-field_type/resources/views/table/table.twig b/addons/default/visiosoft/multiple-field_type/resources/views/table/table.twig index a1d7688b0..e11a8d90a 100644 --- a/addons/default/visiosoft/multiple-field_type/resources/views/table/table.twig +++ b/addons/default/visiosoft/multiple-field_type/resources/views/table/table.twig @@ -2,14 +2,16 @@ {% if not table.rows.isEmpty() %} {% block panel %} -
+
+ {{ view("visiosoft.field_type.multiple::table/ajax/header", {'table': table}) }} + {% block body %} {{ view("visiosoft.field_type.multiple::table/partials/body", {'table': table}) }} {% endblock %} diff --git a/addons/default/visiosoft/multiple-field_type/src/Http/Controller/LookupController.php b/addons/default/visiosoft/multiple-field_type/src/Http/Controller/LookupController.php index fa18a6ea9..6bc0c6961 100644 --- a/addons/default/visiosoft/multiple-field_type/src/Http/Controller/LookupController.php +++ b/addons/default/visiosoft/multiple-field_type/src/Http/Controller/LookupController.php @@ -1,17 +1,13 @@ false, - 'title' => 'visiosoft.field_type.multiple::message.select_entries', + 'sortable' => false, + 'title' => 'visiosoft.field_type.multiple::message.select_entries', + 'table_view' => 'visiosoft.field_type.multiple::table/ajax', ]; /**