From 7aff323e3a9c1cca87c72fc4bdab4f508c4ca43d Mon Sep 17 00:00:00 2001 From: Diatrex Date: Thu, 27 Feb 2020 18:13:06 +0300 Subject: [PATCH] #1004 Other users ads are showing in my profile --- .../src/Http/Controller/AjaxController.php | 4 - .../profile-module/resources/assets/js/ads.js | 77 +++++++++++++++++-- .../resources/views/profile/ads.twig | 15 +++- 3 files changed, 85 insertions(+), 11 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 bf8aac2a5..750325b75 100644 --- a/addons/default/visiosoft/advs-module/src/Http/Controller/AjaxController.php +++ b/addons/default/visiosoft/advs-module/src/Http/Controller/AjaxController.php @@ -78,7 +78,6 @@ class AjaxController extends PublicController } else { $page_title = trans('visiosoft.module.advs::field.my_adv.name'); $my_advs = $my_advs->myAdvsByUser(); - } $my_advs = $my_advs->orderByDesc('id'); $my_advs = $advRepository->addAttributes($my_advs->get()); @@ -86,11 +85,8 @@ class AjaxController extends PublicController foreach ($my_advs as $index => $ad) { $my_advs[$index]->detail_url = $this->adv_model->getAdvDetailLinkByModel($ad, 'list'); $my_advs[$index] = $this->adv_model->AddAdsDefaultCoverImage($ad); - } return response()->json(['success' => true, 'content' => $my_advs, 'title' => $page_title]); } - - } \ No newline at end of file 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 9e7350eef..8f5acc203 100644 --- a/addons/default/visiosoft/profile-module/resources/assets/js/ads.js +++ b/addons/default/visiosoft/profile-module/resources/assets/js/ads.js @@ -1,3 +1,70 @@ +var current_page = 1; +var records_per_page = ads_per_page; +var ads_type = ""; + +var objJson = []; + +function prevPage() +{ + if (current_page > 1) { + current_page--; + changePage(current_page); + } +} + +function nextPage(event) +{ + if (current_page < numPages()) { + current_page++; + changePage(current_page); + } +} + +function changePage(page) +{ + var btn_next = $("#btn_next"); + var btn_prev = $("#btn_prev"); + var listing_table = $("#nav-" + ads_type); + var page_span = $("#page"); + + // Validate page + if (page < 1) page = 1; + if (page > numPages()) page = numPages(); + + listing_table.html(""); + + for (var i = (page-1) * records_per_page; i < (page * records_per_page) && 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)); + } + + page_span.html(page + "/" + numPages()); + + if (numPages() === 1) { + page_span.hide(); + } else { + page_span.show(); + } + + if (page === 1) { + btn_prev.hide(); + } else { + btn_prev.show(); + } + + if (page === numPages()) { + btn_next.hide(); + } else { + btn_next.show(); + } +} + +function numPages() +{ + return Math.ceil(objJson.length / records_per_page); +} + function crud(params, url, type, callback) { $.ajax({ type: type, @@ -11,12 +78,10 @@ function crud(params, url, type, callback) { function getMyAds(type) { crud({'type': type}, '/ajax/getAds', 'GET', function (callback) { - $('#nav-' + type).html(""); - $.each(callback.content, function (index, adv) { - $('#nav-' + type).append(addAdsRow(adv.id, adv.detail_url, adv.cover_photo, adv.name, - adv.price + " " + adv.currency, - adv.city_name, adv.country_name, adv.cat1_name, adv.cat2_name, adv.status)); - }); + ads_type = type; + current_page = 1; + objJson = callback.content; + changePage(1); }) } diff --git a/addons/default/visiosoft/profile-module/resources/views/profile/ads.twig b/addons/default/visiosoft/profile-module/resources/views/profile/ads.twig index ef29a43d8..a52293ce0 100644 --- a/addons/default/visiosoft/profile-module/resources/views/profile/ads.twig +++ b/addons/default/visiosoft/profile-module/resources/views/profile/ads.twig @@ -10,7 +10,6 @@
@@ -59,6 +71,7 @@ var delete_ad = "{{ trans('visiosoft.module.profile::button.delete') }}"; var extend_ad = "{{ trans('visiosoft.module.profile::button.extend') }}"; var edit_ad = "{{ trans('visiosoft.module.profile::button.edit') }}"; + var ads_per_page = "{{ setting_value('streams::per_page') }}"; {{ asset_add('scripts.js','visiosoft.module.profile::assets/js/ads.js') }} {% endblock %} \ No newline at end of file