From 2f6823d58e042f9c066ceb83aa227d0b764e0e7c Mon Sep 17 00:00:00 2001 From: Diatrex Date: Tue, 3 Mar 2020 18:04:44 +0300 Subject: [PATCH 1/2] #996 Merge profile and users module --- .../resources/views/ad-detail/detail.twig | 1 - .../advs-module/src/Adv/AdvPresenter.php | 8 +- .../src/Http/Controller/advsController.php | 5 +- .../resources/js/users/filterLocation.js | 88 ++++++++ .../resources/views/form/partials/tabs.twig | 44 ++++ .../src/DefaultadminThemeServiceProvider.php | 4 + ....module.profile__create_profile_stream.php | 48 ----- .../views/ad-detail/contact-with.twig | 14 +- .../resources/views/profile/detail.twig | 13 +- .../Http/Controller/MyProfileController.php | 30 +-- .../Profile/Profile/ProfileFormBuilder.php | 7 +- .../Profile/Profile/ProfileFormHandler.php | 12 +- .../Register2/Register2FormHandler.php | 12 +- .../Profile/Validation/ValidateRegister.php | 6 +- .../src/ProfileModuleSeeder.php | 62 +++--- .../src/Seed/UsersFieldsSeeder.php | 194 ++++++++++++++++++ .../resources/lang/en/addon.php | 2 +- .../resources/lang/tr/addon.php | 2 +- 18 files changed, 403 insertions(+), 149 deletions(-) create mode 100644 addons/default/visiosoft/defaultadmin-theme/resources/js/users/filterLocation.js create mode 100644 addons/default/visiosoft/defaultadmin-theme/resources/views/form/partials/tabs.twig delete mode 100644 addons/default/visiosoft/profile-module/migrations/2018_11_15_131718_visiosoft.module.profile__create_profile_stream.php create mode 100644 addons/default/visiosoft/profile-module/src/Seed/UsersFieldsSeeder.php diff --git a/addons/default/visiosoft/advs-module/resources/views/ad-detail/detail.twig b/addons/default/visiosoft/advs-module/resources/views/ad-detail/detail.twig index a14c48af5..8374e3d88 100644 --- a/addons/default/visiosoft/advs-module/resources/views/ad-detail/detail.twig +++ b/addons/default/visiosoft/advs-module/resources/views/ad-detail/detail.twig @@ -26,7 +26,6 @@
- {% include "visiosoft.module.advs::ad-detail/partials/slider" %}
{% if setting_value('visiosoft.theme.base::ad_details') %} diff --git a/addons/default/visiosoft/advs-module/src/Adv/AdvPresenter.php b/addons/default/visiosoft/advs-module/src/Adv/AdvPresenter.php index 932d97d19..78c748412 100644 --- a/addons/default/visiosoft/advs-module/src/Adv/AdvPresenter.php +++ b/addons/default/visiosoft/advs-module/src/Adv/AdvPresenter.php @@ -46,11 +46,9 @@ class AdvPresenter extends EntryPresenter public function isCorporate() { - $user_id = $this->getObject()->created_by_id; - $profile = new ProfileModel(); - $profile = $profile->getProfile($user_id)->first(); - if ($profile != null) { - return $profile->register_type; + $user_id = $this->getObject()->created_by; + if ($user_id->register_type != null) { + return $user_id->register_type; } else { return 1; } 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 57d64ae85..03be0a7de 100644 --- a/addons/default/visiosoft/advs-module/src/Http/Controller/advsController.php +++ b/addons/default/visiosoft/advs-module/src/Http/Controller/advsController.php @@ -352,9 +352,6 @@ class AdvsController extends PublicController } } - $profile = $this->profile_model->getProfile($adv->created_by_id)->first(); - - if ($isCommentActive) { $CommentModel = new CommentModel(); $comments = $CommentModel->getComments($adv->id)->get(); @@ -367,7 +364,7 @@ class AdvsController extends PublicController $this->template->set('meta_image', $adv->cover_photo); if ($adv->created_by_id == isset(auth()->user()->id) OR $adv->status == "approved") { - return $this->view->make('visiosoft.module.advs::ad-detail/detail', compact('adv', 'complaints', 'recommended_advs', 'categories', 'features', 'profile', 'comments', 'qrSRC')); + return $this->view->make('visiosoft.module.advs::ad-detail/detail', compact('adv', 'complaints', 'recommended_advs', 'categories', 'features', 'comments', 'qrSRC')); } else { return back(); } diff --git a/addons/default/visiosoft/defaultadmin-theme/resources/js/users/filterLocation.js b/addons/default/visiosoft/defaultadmin-theme/resources/js/users/filterLocation.js new file mode 100644 index 000000000..b3c31aa8d --- /dev/null +++ b/addons/default/visiosoft/defaultadmin-theme/resources/js/users/filterLocation.js @@ -0,0 +1,88 @@ +new Promise(function (resolve, reject) { + if (parseInt(default_country)) { + getCities(parseInt(default_country)); + resolve(true); + } +}).then(function (resolve) { + if (resolve) { + if (parseInt(default_city)) { + getDistricts(parseInt(default_city)); + $('select[name="city"]').val(default_city); + return true; + } + } +}).then(function (resolve) { + if (resolve) { + if (parseInt(default_district)) { + getNeighborhoods(parseInt(default_district)); + $('select[name="district"]').val(default_district); + return true; + } + } +}).then(function (resolve) { + if (resolve) { + if (parseInt(default_neighborhood)) { + $('select[name="neighborhood"]').val(default_neighborhood) + } + } +}); + +function getCities(country) { + crud('id=' + country, '/ajax/getCities', 'POST', function (callback) { + cities = callback; + $('select[name="city"]').html(""); + $.each(cities, function (index, value) { + $('select[name="city"]').append(""); + }); + $('select[name="district"]').html(""); + $('select[name="neighborhood"]').html(""); + $('select[name="village"]').html(""); + }) +} + +function getDistricts(city) { + crud('id=' + city, '/ajax/getDistricts', 'POST', function (callback) { + cities = callback; + $('select[name="district"]').html(""); + $.each(cities, function (index, value) { + $('select[name="district"]').append(""); + }); + $('select[name="neighborhood"]').html(""); + $('select[name="village"]').html(""); + }) +} + +function getNeighborhoods(district) { + crud('id=' + district, '/ajax/getNeighborhoods', 'POST', function (callback) { + cities = callback; + $('select[name="neighborhood"]').html(""); + $.each(cities, function (index, value) { + $('select[name="neighborhood"]').append(""); + }); + $('select[name="village"]').html(""); + }) +} + +$(document).on('change', 'select[name="country"]', function () { + getCities($(this).val()); +}); + +$(document).on('change', 'select[name="city"]', function () { + getDistricts($(this).val()) +}); + +$(document).on('change', 'select[name="district"]', function () { + getNeighborhoods($(this).val()) +}); + +function crud(params, url, type, callback) { + $.ajax({ + type: type, + data: params, + async: false, + url: url, + success: function (response) { + callback(response); + }, + }); +} \ No newline at end of file diff --git a/addons/default/visiosoft/defaultadmin-theme/resources/views/form/partials/tabs.twig b/addons/default/visiosoft/defaultadmin-theme/resources/views/form/partials/tabs.twig new file mode 100644 index 000000000..1a3cfc7d3 --- /dev/null +++ b/addons/default/visiosoft/defaultadmin-theme/resources/views/form/partials/tabs.twig @@ -0,0 +1,44 @@ + + +
+ {% for slug, tab in section.tabs %} +
+ {% if tab.view %} + {% include tab.view %} + {% elseif tab.html %} + {{ parse(tab.html)|raw }} + {% elseif tab.rows %} + {% include "streams::form/partials/rows" with {"rows": tab.rows} %} + {% else %} + {% if tab.fields is empty %} +
+ {{ trans("streams::message.no_fields_available") }} +
+ {% else %} + + {% include "streams::form/partials/fields" with {"fields": tab.fields} %} + + {% endif %} + {% endif %} +
+ {% endfor %} +
+ +{{ asset_add("scripts.js", "visiosoft.theme.defaultadmin::js/users/filterLocation.js") }} diff --git a/addons/default/visiosoft/defaultadmin-theme/src/DefaultadminThemeServiceProvider.php b/addons/default/visiosoft/defaultadmin-theme/src/DefaultadminThemeServiceProvider.php index 4cfe1798a..49ac2b1ce 100644 --- a/addons/default/visiosoft/defaultadmin-theme/src/DefaultadminThemeServiceProvider.php +++ b/addons/default/visiosoft/defaultadmin-theme/src/DefaultadminThemeServiceProvider.php @@ -36,4 +36,8 @@ class DefaultadminThemeServiceProvider extends AddonServiceProvider AbstractPaginator::$defaultView = 'visiosoft.theme.defaultadmin::pagination/bootstrap-4'; AbstractPaginator::$defaultSimpleView = 'streams::pagination/simple-bootstrap-4'; } + + protected $overrides = [ + 'streams::form/partials/tabs' => 'visiosoft.theme.defaultadmin::form/partials/tabs', + ]; } diff --git a/addons/default/visiosoft/profile-module/migrations/2018_11_15_131718_visiosoft.module.profile__create_profile_stream.php b/addons/default/visiosoft/profile-module/migrations/2018_11_15_131718_visiosoft.module.profile__create_profile_stream.php deleted file mode 100644 index 8c407acb0..000000000 --- a/addons/default/visiosoft/profile-module/migrations/2018_11_15_131718_visiosoft.module.profile__create_profile_stream.php +++ /dev/null @@ -1,48 +0,0 @@ - 'profile', - 'title_column' => 'id', - 'translatable' => true, - 'trashable' => false, - 'searchable' => false, - 'sortable' => false, - ]; - - /** - * The stream assignments. - * - * @var array - */ - protected $assignments = [ - 'user', - 'file', - 'email' => [ - 'required' => true - ], - 'image', - 'country', - 'city', - 'district', - 'neighborhood', - 'village', - 'gsm_phone', - 'land_phone','office_phone','register_type', - 'identification_number', - 'notified_new_updates', - 'notified_about_ads', - 'receive_messages_email', - 'adv_listing_banner' - ]; - -} diff --git a/addons/default/visiosoft/profile-module/resources/views/ad-detail/contact-with.twig b/addons/default/visiosoft/profile-module/resources/views/ad-detail/contact-with.twig index fb63813a6..b811871f4 100644 --- a/addons/default/visiosoft/profile-module/resources/views/ad-detail/contact-with.twig +++ b/addons/default/visiosoft/profile-module/resources/views/ad-detail/contact-with.twig @@ -4,28 +4,28 @@ {% set showTheme = true %} {% endif %} {% if showTheme %} - {% set profile = findUserProfile(params.adv.created_by_id) %} - {% if profile.gsm_phone is not null %} + {% set user = params.adv.created_by %} + {% if user.gsm_phone is not null %}
{% endif %} - {% if profile.office_phone is not empty %} + {% if user.office_phone is not empty %}
{% endif %} - {% if profile.land_phone is not empty %} + {% if user.land_phone is not empty %}
{% endif %} diff --git a/addons/default/visiosoft/profile-module/resources/views/profile/detail.twig b/addons/default/visiosoft/profile-module/resources/views/profile/detail.twig index 7801bfed8..1f65a9f52 100644 --- a/addons/default/visiosoft/profile-module/resources/views/profile/detail.twig +++ b/addons/default/visiosoft/profile-module/resources/views/profile/detail.twig @@ -1,7 +1,7 @@ {% extends "theme::layouts/default" %} {% block content %} - {% set profile_photo = profiles.file %} + {% set profile_photo = user.file %} {% if profile_photo %} {% set profile_photo = file(profile_photo.id).url %} {% else %} @@ -16,7 +16,6 @@
-
{% if setting_value('visiosoft.module.profile::upload_avatar') %} @@ -26,11 +25,10 @@
{% endif %}
-

{{ user().first_name }} {{ user().last_name }}

+

{{ user.first_name }} {{ user.last_name }}

{{ auth_user().last_login_at|date("d/m/Y H:i:s") }}
-
@@ -39,7 +37,6 @@
-