From 280fe7928606934dc946daa523b28a40b106e565 Mon Sep 17 00:00:00 2001 From: Diatrex Date: Sat, 14 Nov 2020 12:39:28 +0300 Subject: [PATCH] =?UTF-8?q?#2647=20emlak24=20yap=C4=B1lacaklar=20&&=20make?= =?UTF-8?q?=20profile=20ads=20work=20with=20laravel=20pagination?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/Http/Controller/AjaxController.php | 7 +++- .../profile-module/resources/assets/js/ads.js | 37 ++++++++++++------- 2 files changed, 29 insertions(+), 15 deletions(-) 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 7f88318b2..f9525094c 100644 --- a/addons/default/visiosoft/advs-module/src/Http/Controller/AjaxController.php +++ b/addons/default/visiosoft/advs-module/src/Http/Controller/AjaxController.php @@ -76,7 +76,12 @@ class AjaxController extends PublicController } $my_advs = $my_advs->select(['id', 'cover_photo', 'slug', 'price', 'currency', 'city', 'country_id', 'cat1', 'cat2', 'status']) ->orderByDesc('id'); - $my_advs = $advRepository->addAttributes($my_advs->get()); + + if (\request()->paginate === 'true') { + $my_advs = $advRepository->addAttributes($my_advs->paginate(setting_value('streams::per_page'))); + } else { + $my_advs = $advRepository->addAttributes($my_advs->get()); + } foreach ($my_advs as $index => $ad) { $my_advs[$index]->detail_url = $this->adv_model->getAdvDetailLinkByModel($ad, 'list'); diff --git a/addons/default/visiosoft/profile-module/resources/assets/js/ads.js b/addons/default/visiosoft/profile-module/resources/assets/js/ads.js index c6b8b7454..435617e4a 100644 --- a/addons/default/visiosoft/profile-module/resources/assets/js/ads.js +++ b/addons/default/visiosoft/profile-module/resources/assets/js/ads.js @@ -3,18 +3,19 @@ var records_per_page = ads_per_page; var ads_type = ""; var objJson = []; +let totalAdvs = 0 function prevPage() { if (current_page > 1) { current_page--; - changePage(current_page); + getMyAdvs(ads_type) } } function nextPage(event) { if (current_page < numPages()) { current_page++; - changePage(current_page); + getMyAdvs(ads_type) } } @@ -30,12 +31,14 @@ function changePage(page) { listing_table.html(""); - if (objJson.length == 0) { - listing_table.html(''); + if (objJson.length === 0) { + listing_table.html(` + + `); } - for (var i = (page - 1) * records_per_page; i < (page * records_per_page) && i < objJson.length; i++) { + for (var i = 0; i < objJson.length; i++) { listing_table.append(addAdsRow(objJson[i].id, objJson[i].detail_url, objJson[i].cover_photo, objJson[i].name, objJson[i].price + " " + objJson[i].currency, objJson[i].city_name, objJson[i].country_name, objJson[i].cat1_name, objJson[i].cat2_name, objJson[i].status)); @@ -63,7 +66,7 @@ function changePage(page) { } function numPages() { - return Math.ceil(objJson.length / records_per_page); + return Math.ceil(totalAdvs / records_per_page); } function crud(params, url, type, callback) { @@ -78,15 +81,16 @@ function crud(params, url, type, callback) { } function getMyAdvs(type) { - crud({'type': type}, '/ajax/getAdvs', 'GET', function (callback) { + crud({'type': type, 'paginate': true, 'page': current_page}, '/ajax/getAdvs', 'GET', function (callback) { ads_type = type; - current_page = 1; - objJson = callback.content; - changePage(1); + objJson = callback.content.data; + totalAdvs = callback.content.total + changePage(current_page); }) } $('.profile-advs-tab a').on('click', function () { + current_page = 1 getMyAdvs($(this).attr('data-type')) }); @@ -128,7 +132,7 @@ function addAdsRow(id, href, image, name, price, city, country, cat1, cat2, stat } function dropdownRow(id, type) { - var dropdown = ""; + dropdown += ""; + + getBlock('profile/dropdown-ad', {'id': id}, function (r) { + $(`.my-ads-dropdown[data-id=${id}] .dropdown-menu`).append(r.html) + }) + return dropdown; } \ No newline at end of file