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 4464b2885..d19fcca5a 100644
--- a/addons/default/visiosoft/advs-module/resources/js/new-create.js
+++ b/addons/default/visiosoft/advs-module/resources/js/new-create.js
@@ -219,6 +219,40 @@ $(document).ready(function () {
// Add dynamic option creation
$(".options-tags").select2({
- tags: true
+ 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/views/new-ad/new-create.twig b/addons/default/visiosoft/advs-module/resources/views/new-ad/new-create.twig
index e509c566d..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
@@ -104,7 +104,7 @@
name="options[]">
{% if count(options) %}
{% for option in options %}
-
+
{% endfor %}
{% endif %}
diff --git a/addons/default/visiosoft/advs-module/src/Http/Controller/advsController.php b/addons/default/visiosoft/advs-module/src/Http/Controller/advsController.php
index 949d147e6..dc63876d2 100644
--- a/addons/default/visiosoft/advs-module/src/Http/Controller/advsController.php
+++ b/addons/default/visiosoft/advs-module/src/Http/Controller/advsController.php
@@ -575,25 +575,24 @@ class AdvsController extends PublicController
}
// Create options
- $optionsIds = array();
- foreach ($request->options as $optionValue) {
- $option = $this->optionRepository->newQuery()
- ->where('name', $optionValue)
+ $deletedOptions = $request->deleted_options;
+ $newOptions = $request->new_options;
+ if (!empty($deletedOptions)) {
+ $deletedOptions = explode(',', $request->deleted_options);
+ $this->optionRepository->newQuery()
+ ->whereIn('id', $deletedOptions)
->where('adv_id', $request->update_id)
- ->first();
- if (!$option) {
- $option = $this->optionRepository->create([
- 'name' => $optionValue,
+ ->delete();
+ }
+ if (!empty($newOptions)) {
+ $newOptions = explode(',', $request->new_options);
+ foreach ($newOptions as $option) {
+ $this->optionRepository->create([
+ 'name' => $option,
'adv_id' => $request->update_id,
]);
}
- $optionsIds[] = $option->id;
}
- $this->optionRepository->newQuery()
- ->whereNotIn('id', $optionsIds)
- ->where('adv_id', $request->update_id)
- ->delete();
-
$adv->is_get_adv = $request->is_get_adv;
$adv->save();