diff --git a/addons/default/visiosoft/advs-module/resources/css/edit_category.css b/addons/default/visiosoft/advs-module/resources/css/edit_category.css
index b57b632d8..2f3d078ee 100644
--- a/addons/default/visiosoft/advs-module/resources/css/edit_category.css
+++ b/addons/default/visiosoft/advs-module/resources/css/edit_category.css
@@ -1,5 +1,4 @@
.cat-select {
- width: 100%;
border: none;
overflow-y: auto
}
@@ -11,28 +10,4 @@
padding-left: 10px;
font-size: 16px;
color: #505050;
-}
-
-.cat-item-2 {
- display: none;
-}
-
-.cat-item-3 {
- display: none;
-}
-
-.cat-item-3 .section {
- min-height: 320px;
-}
-
-.btn-1 {
- background-color: #00a651;
- padding: 5px 50px 7px;
- color: #fff;
- border: 1px solid #dadada;
- margin-right: 5px;
-}
-
-#cat1 span {
- font-size: 20px
}
\ No newline at end of file
diff --git a/addons/default/visiosoft/advs-module/resources/js/edit_cats.js b/addons/default/visiosoft/advs-module/resources/js/edit_cats.js
index 5863add8c..d3bf04e10 100644
--- a/addons/default/visiosoft/advs-module/resources/js/edit_cats.js
+++ b/addons/default/visiosoft/advs-module/resources/js/edit_cats.js
@@ -1,74 +1,128 @@
-function getCats(catId, divId, current = null) {
- if (divId != "") {
- $.ajax({
- type: 'get',
- url: '/ajax/getcats/' + divId,
- success: function (response) {
- if (response.length <= 0) {
- $('.cat-item-3').show();
- stop();
- } else {
- response.forEach(function (options) {
- $(catId).append("").closest('.cat-item-2').show();
- });
- }
- }
- }).promise().done(function () {
- if (current != null)
- $(current).val([divId]);
- })
- }
-
-};
-
-function hideCats(num) {
- var startNo = num;
- var endNo = 6;
-
- while (startNo <= endNo) {
- $('#cat' + startNo).html("").closest('.cat-item-2').hide();
- $('.cat-item-3').hide();
- startNo++;
- }
-};
-
-
-jQuery(document).ready(function ($) {
- $('select[name="cat1"], select[name="cat2"], select[name="cat3"], ' +
- 'select[name="cat4"], select[name="cat5"], select[name="cat6"], select[name="cat7"]').on('change', function () {
- var all = $(this).val();
- var data_level = $(this).attr('data-level');
- $(this).val(all[all.length - 1])
- divId = $(this).find('option:selected').val();
- if (divId == 0) {
- hideCats(parseInt(data_level) + 1);
- }
- hideCats(parseInt(data_level) + 1);
- getCats("#cat" + (parseInt(data_level) + 1), divId);
-
-
+function crud(params, url, type, callback) {
+ $.ajax({
+ type: type,
+ async: false,
+ data: params,
+ url: url,
+ success: function (response) {
+ callback(response);
+ },
});
+}
+
+var level = 0;
+var selected;
+var all_categories = {};
+var promiseForCategory = new Promise(function (resolve) {
+ $.each(categories, function (index, value) {
+ crud({'level': level, "cat": categories['cat' + level]}, '/class/ajaxCategory', 'POST', function (callback) {
+ // console.log('cat' + (level + 1), categories['cat' + level], callback)
+ all_categories['cat' + (level + 1)] = callback;
+ })
+ level++;
+ });
+ resolve(all_categories);
});
-jQuery(document).promise().done(function () {
- level = 1;
- getCats("#cat" + (level + 1), $("#cat" + level).attr('data-value'), "#cat" + level);
-}).promise().done(function () {
- level = 2;
- getCats("#cat" + (level + 1), $("#cat" + level).attr('data-value'), "#cat" + level);
-}).promise().done(function () {
- level = 3;
- getCats("#cat" + (level + 1), $("#cat" + level).attr('data-value'), "#cat" + level);
-}).promise().done(function () {
- level = 4;
- getCats("#cat" + (level + 1), $("#cat" + level).attr('data-value'), "#cat" + level);
-}).promise().done(function () {
- level = 5;
- getCats("#cat" + (level + 1), $("#cat" + level).attr('data-value'), "#cat" + level);
-}).promise().done(function () {
- level = 6;
- getCats("#cat" + (level + 1), $("#cat" + level).attr('data-value'), "#cat" + level);
-}).promise().done(function () {
- level = 7;
- getCats("#cat" + (level + 1), $("#cat" + level).attr('data-value'), "#cat" + level);
-});
\ No newline at end of file
+
+promiseForCategory.then(function (categories_list) {
+ level = 0;
+ $.each(categories_list, function (index, value) {
+ level++;
+ $('.category-row').append(CategoryField(index, level));
+ searchCategoryName(index)
+ $.each(value, function (index2, value2) {
+ selected = "";
+ if (id_list[index] == value2.id) {
+ selected = "selected";
+ }
+ $('.' + index).append("");
+ });
+ });
+ $('.category-row').append(completedField());
+})
+
+function CategoryField(name, level) {
+ return '
\n' +
+ '
\n' +
+ '
\n' +
+ ' \n' +
+ '
' +
+ '
\n' +
+ '
\n' +
+ '
';
+}
+
+function completedField() {
+ return '\n' +
+ '
\n' +
+ '
\n' +
+ continue_message +
+ '
\n' +
+ ' \n' +
+ ' \n' +
+ '
';
+}
+
+
+$(document).ready(function () {
+
+ $(".cat-select").on('change', function (e) {
+ if (Object.keys($(this).val()).length > 1) {
+ $('option[value="' + $(this).val().toString().split(',')[1] + '"]').prop('selected', false);
+ }
+ });
+ selectedValue()
+});
+
+
+function selectedValue() {
+ return $('.cat-select').on('change', function () {
+ var value = $(this).val();
+ var all_category_box = $('.category-row').find('.category-box');
+ var level = parseInt($(this).attr('data-level')) + 1;
+
+ //Remove right select fields
+ for (var i = level - 1; i <= all_category_box.length - 1; i++) {
+ all_category_box[i].remove();
+ }
+
+ scroolToSelect(all_category_box)
+
+ crud({"cat": value[0], 'level': level}, '/class/ajaxCategory', 'POST', function (callback) {
+ if (callback.length <= 0) {
+ $('.category-row').append(completedField());
+ } else {
+ $('.category-row').append(CategoryField('cat' + level, level));
+ $.each(callback, function (index, value) {
+ $('.cat' + level).append("");
+ });
+ }
+ selectedValue().unbind()
+ searchCategoryName('cat' + level)
+ return selectedValue();
+ })
+ })
+}
+
+function searchCategoryName(name) {
+ var searchField = $("#searchCategory-" + name);
+ searchField.unbind();
+ searchField.on("keyup", function () {
+ var value = this.value.toLowerCase().trim();
+ $('.' + name + ' option').show().filter(function () {
+ return $(this).text().toLowerCase().trim().indexOf(value) == -1;
+ }).hide();
+ });
+}
+
+function scroolToSelect(fields) {
+ //Scrool Screen
+ $([document.documentElement, document.body]).animate({
+ scrollTop: $(fields[fields.length - 1]).offset().top + 300
+ }, 1000);
+}
diff --git a/addons/default/visiosoft/advs-module/resources/lang/en/field.php b/addons/default/visiosoft/advs-module/resources/lang/en/field.php
index 6ed45aab7..63a720d02 100644
--- a/addons/default/visiosoft/advs-module/resources/lang/en/field.php
+++ b/addons/default/visiosoft/advs-module/resources/lang/en/field.php
@@ -249,5 +249,6 @@ return [
'yes' => [
'name' => 'Yes'
],
- "no_location" => "No location is selected."
+ "no_location" => "No location is selected.",
+ "continue" => 'Continue'
];
diff --git a/addons/default/visiosoft/advs-module/resources/lang/tr/field.php b/addons/default/visiosoft/advs-module/resources/lang/tr/field.php
index 2cb57bd24..18377bc0d 100644
--- a/addons/default/visiosoft/advs-module/resources/lang/tr/field.php
+++ b/addons/default/visiosoft/advs-module/resources/lang/tr/field.php
@@ -251,5 +251,6 @@ return [
'yes' => [
'name' => 'Evet'
],
- "no_location" => "Lokasyon eklenmemiş."
+ "no_location" => "Lokasyon eklenmemiş.",
+ "continue" => 'Devam Et'
];
diff --git a/addons/default/visiosoft/advs-module/resources/views/new-ad/edit-cat.twig b/addons/default/visiosoft/advs-module/resources/views/new-ad/edit-cat.twig
index 239826e7f..328e9fe23 100644
--- a/addons/default/visiosoft/advs-module/resources/views/new-ad/edit-cat.twig
+++ b/addons/default/visiosoft/advs-module/resources/views/new-ad/edit-cat.twig
@@ -1,115 +1,41 @@
{% extends layout('edit-cat') %}
{% block content %}
- {% set ad_Detail = adDetail(id) %}
-
-
-
+
+
+
+
+
{{ asset_add("scripts.js", "visiosoft.module.advs::js/edit_cats.js") }}
{{ asset_style("visiosoft.module.advs::css/edit_category.css") }}
{% endblock %}
diff --git a/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php b/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php
index d956664dd..8569b780f 100644
--- a/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php
+++ b/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php
@@ -363,5 +363,21 @@ class AdvRepository extends EntryRepository implements AdvRepositoryInterface
return $ads;
}
+ public function getCategoriesWithAdID($id)
+ {
+ $adv = $this->model->find($id);
+
+ if (!is_null($adv)) {
+ $categories = array();
+ foreach ($adv->toArray() as $key => $field) {
+ if (preg_match('/cat\d/', $key) and !is_null($field)) {
+ $categories[$key] = $field;
+ }
+ }
+ return $categories;
+ }
+ return null;
+ }
+
}
diff --git a/addons/default/visiosoft/advs-module/src/Adv/Contract/AdvRepositoryInterface.php b/addons/default/visiosoft/advs-module/src/Adv/Contract/AdvRepositoryInterface.php
index 13c083a8f..31e038bca 100644
--- a/addons/default/visiosoft/advs-module/src/Adv/Contract/AdvRepositoryInterface.php
+++ b/addons/default/visiosoft/advs-module/src/Adv/Contract/AdvRepositoryInterface.php
@@ -34,4 +34,6 @@ interface AdvRepositoryInterface extends EntryRepositoryInterface
public function latestAds();
+ public function getCategoriesWithAdID($id);
+
}
diff --git a/addons/default/visiosoft/advs-module/src/Http/Controller/AjaxController.php b/addons/default/visiosoft/advs-module/src/Http/Controller/AjaxController.php
index ea82429bd..bf8aac2a5 100644
--- a/addons/default/visiosoft/advs-module/src/Http/Controller/AjaxController.php
+++ b/addons/default/visiosoft/advs-module/src/Http/Controller/AjaxController.php
@@ -92,4 +92,5 @@ class AjaxController extends PublicController
return response()->json(['success' => true, 'content' => $my_advs, 'title' => $page_title]);
}
+
}
\ No newline at end of file
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 b5c3aa9c8..c92588e45 100644
--- a/addons/default/visiosoft/advs-module/src/Http/Controller/advsController.php
+++ b/addons/default/visiosoft/advs-module/src/Http/Controller/advsController.php
@@ -661,9 +661,9 @@ class AdvsController extends PublicController
redirect('/login?redirect=' . url()->current())->send();
}
- $is_ad = $this->adv_model->userAdv(true)->find($id);
+ $adv = $this->adv_model->userAdv(true)->find($id);
- if (is_null($is_ad)) {
+ if (is_null($adv)) {
abort(403);
}
@@ -677,14 +677,14 @@ class AdvsController extends PublicController
}
}
- $is_ad->update($params);
+ $adv->update($params);
$this->messages->success(trans('visiosoft.module.advs::message.updated_category_msg'));
return redirect('/advs/edit_advs/' . $id);
}
- $main_cats = $this->category_repository->mainCats();
+ $categories = $this->adv_repository->getCategoriesWithAdID($id);
- return $this->view->make('visiosoft.module.advs::new-ad/edit-cat', compact('main_cats', 'id'));
+ return $this->view->make('visiosoft.module.advs::new-ad/edit-cat', compact('id', 'adv','categories'));
}