diff --git a/addons/default/visiosoft/advs-module/migrations/2018_09_25_211014_visiosoft.module.advs__create_advs_fields.php b/addons/default/visiosoft/advs-module/migrations/2018_09_25_211014_visiosoft.module.advs__create_advs_fields.php index e6e21a7c7..3ab4d2d9b 100644 --- a/addons/default/visiosoft/advs-module/migrations/2018_09_25_211014_visiosoft.module.advs__create_advs_fields.php +++ b/addons/default/visiosoft/advs-module/migrations/2018_09_25_211014_visiosoft.module.advs__create_advs_fields.php @@ -250,5 +250,13 @@ class VisiosoftModuleAdvsCreateAdvsFields extends Migration 'default_value' => 0, ] ], + + // Options Fields + "adv" => [ + "type" => "anomaly.field_type.relationship", + "config" => [ + "related" => AdvModel::class, + ] + ] ]; } diff --git a/addons/default/visiosoft/advs-module/migrations/2020_06_05_120415_visiosoft.module.advs__create_options_stream.php b/addons/default/visiosoft/advs-module/migrations/2020_06_05_120415_visiosoft.module.advs__create_options_stream.php new file mode 100644 index 000000000..c00f35ae8 --- /dev/null +++ b/addons/default/visiosoft/advs-module/migrations/2020_06_05_120415_visiosoft.module.advs__create_options_stream.php @@ -0,0 +1,45 @@ + 'options', + 'title_column' => 'name', + 'translatable' => false, + 'versionable' => false, + 'trashable' => false, + 'searchable' => false, + 'sortable' => false, + ]; + + /** + * The stream assignments. + * + * @var array + */ + protected $assignments = [ + 'name' => [ + 'required' => true, + ], + 'adv' => [ + 'required' => true, + ], + ]; + +} diff --git a/addons/default/visiosoft/advs-module/resources/config/permissions.php b/addons/default/visiosoft/advs-module/resources/config/permissions.php index 33de065db..eae0b67cd 100644 --- a/addons/default/visiosoft/advs-module/resources/config/permissions.php +++ b/addons/default/visiosoft/advs-module/resources/config/permissions.php @@ -16,4 +16,9 @@ return [ 'write', 'delete', ], + 'options' => [ + 'read', + 'write', + 'delete', + ], ]; diff --git a/addons/default/visiosoft/advs-module/resources/js/new-create.js b/addons/default/visiosoft/advs-module/resources/js/new-create.js index c75f3693a..d19fcca5a 100644 --- a/addons/default/visiosoft/advs-module/resources/js/new-create.js +++ b/addons/default/visiosoft/advs-module/resources/js/new-create.js @@ -215,5 +215,44 @@ $(document).ready(function () { price = parseInt(price.replace(/\./g, '')); let decimal = parseInt($(".priceDecimalField").val()); $('.priceHidden').find('input').val(parseFloat(price + "." + decimal)); + }); + + // Add dynamic option creation + $(".options-tags").select2({ + tags: true, + tokenSeparators: [','] + }); + + let deletedOptions = []; + $('#selectOptions').on('select2:unselect', function (e) { + if (e.params.data.element.id) { + const id = e.params.data.element.id.substr(9); + deletedOptions.push(id); + } else { + let index = newOptions.indexOf(e.params.data.text); + if (index > -1) { + newOptions.splice(index, 1); + } + } + }); + + let newOptions = []; + $('#selectOptions').on('select2:select', function (e) { + if (e.params.data.element) { + let index = deletedOptions.indexOf(e.params.data.element.id.substr(9)); + if (index > -1) { + deletedOptions.splice(index, 1); + } + } else { + newOptions.push(e.params.data.text) + } + }); + + $('#createEditAdvForm').submit(function () { + $(this).append(``); + + $(this).append(``); + + return true; }) }); diff --git a/addons/default/visiosoft/advs-module/resources/lang/en/button.php b/addons/default/visiosoft/advs-module/resources/lang/en/button.php index 75eac762f..c84a77408 100644 --- a/addons/default/visiosoft/advs-module/resources/lang/en/button.php +++ b/addons/default/visiosoft/advs-module/resources/lang/en/button.php @@ -31,4 +31,5 @@ return [ 'update_category' => [ 'name' => 'Update Category' ], + 'new_option' => 'New Option', ]; diff --git a/addons/default/visiosoft/advs-module/resources/lang/en/permission.php b/addons/default/visiosoft/advs-module/resources/lang/en/permission.php index 762eea4c9..a75575d96 100644 --- a/addons/default/visiosoft/advs-module/resources/lang/en/permission.php +++ b/addons/default/visiosoft/advs-module/resources/lang/en/permission.php @@ -49,4 +49,12 @@ return [ 'delete' => 'Can delete cf values?', ], ], + 'options' => [ + 'name' => 'Options', + 'option' => [ + 'read' => 'Can read options?', + 'write' => 'Can create/edit options?', + 'delete' => 'Can delete options?', + ], + ], ]; diff --git a/addons/default/visiosoft/advs-module/resources/lang/en/section.php b/addons/default/visiosoft/advs-module/resources/lang/en/section.php index 1a3eeb889..d59a01842 100644 --- a/addons/default/visiosoft/advs-module/resources/lang/en/section.php +++ b/addons/default/visiosoft/advs-module/resources/lang/en/section.php @@ -40,4 +40,7 @@ return [ 'general' => 'General', 'ads' => 'Ads', 'user' => 'User', + 'options' => [ + 'title' => 'Options', + ], ]; diff --git a/addons/default/visiosoft/advs-module/resources/lang/en/stream.php b/addons/default/visiosoft/advs-module/resources/lang/en/stream.php index cd23e3479..29e720836 100644 --- a/addons/default/visiosoft/advs-module/resources/lang/en/stream.php +++ b/addons/default/visiosoft/advs-module/resources/lang/en/stream.php @@ -19,4 +19,7 @@ return [ 'cf_values' => [ 'name' => 'Cf values', ], + 'options' => [ + 'name' => 'Options', + ], ]; diff --git a/addons/default/visiosoft/advs-module/resources/lang/sq/field.php b/addons/default/visiosoft/advs-module/resources/lang/sq/field.php index fd7d6ff0b..86da72d9b 100644 --- a/addons/default/visiosoft/advs-module/resources/lang/sq/field.php +++ b/addons/default/visiosoft/advs-module/resources/lang/sq/field.php @@ -127,7 +127,7 @@ return [ 'sort' => 'Tipi', 'sort_by' => 'Rendit Sipas', 'pick_option' => 'Zgjidh një mundësi', - 'pick_ordering' => 'Merr Porosin', + 'pick_ordering' => 'Renditje', 'price_high' => 'Cmimi i larte deri tek i uleti', 'price_low' => 'Cmimi i ulet deri tek i larte', 'newest' => 'Më të Rejat', diff --git a/addons/default/visiosoft/advs-module/resources/views/ad-detail/partials/detail.twig b/addons/default/visiosoft/advs-module/resources/views/ad-detail/partials/detail.twig index e5c1cbac5..5a5c3e1b7 100644 --- a/addons/default/visiosoft/advs-module/resources/views/ad-detail/partials/detail.twig +++ b/addons/default/visiosoft/advs-module/resources/views/ad-detail/partials/detail.twig @@ -34,7 +34,7 @@ - {{ addBlock('ad-detail/details',{'adv':adv})|raw }} + {{ addBlock('ad-detail/details',{'adv':adv, 'options':options})|raw }} {{ addBlock('ad-detail/widget-details',{'adv':adv})|raw }} 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 435a6582b..5f36bdd84 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 @@ -20,6 +20,7 @@