From 2c854c08c5dee397d1b07faa4c1af5540cc6d212 Mon Sep 17 00:00:00 2001 From: vedatakd Date: Fri, 24 Apr 2020 04:43:13 +0300 Subject: [PATCH] #1279 --- .../advs-module/resources/css/new-create.css | 3 + .../resources/js/editContactInformation.js | 36 ++++++ .../advs-module/resources/lang/en/field.php | 6 +- .../resources/views/new-ad/new-create.twig | 59 +++++++++- .../views/new-ad/partials/modals.twig | 62 ++++++++++ .../src/Http/Controller/advsController.php | 13 ++- .../base-theme/resources/js/forgot.js | 1 + .../base-theme/resources/lang/en/button.php | 2 + .../base-theme/resources/lang/en/field.php | 1 + .../anomaly/users-module/password/forgot.twig | 96 ++++++++++++---- .../resources/js/addressSelect.js | 91 +++++++++++++++ .../resources/lang/en/field.php | 1 + .../resources/views/new-ad/map.twig | 95 ++++++++++++--- .../resources/views/new-ad/modals.twig | 108 ++++++++++++++++++ .../resources/lang/en/field.php | 5 +- .../resources/lang/en/message.php | 1 + .../src/Adress/AdressRepository.php | 5 + .../src/Adress/Command/GetAddressByUser.php | 34 ++++++ .../Contract/AdressRepositoryInterface.php | 2 +- .../Http/Controller/MyProfileController.php | 15 +++ .../src/Profile/Command/GetProfileDetail.php | 29 +++++ .../src/Profile/Validation/ValidateEmail.php | 2 +- .../src/ProfileModulePlugin.php | 24 ++++ .../src/ProfileModuleServiceProvider.php | 4 +- 24 files changed, 648 insertions(+), 47 deletions(-) create mode 100644 addons/default/visiosoft/advs-module/resources/css/new-create.css create mode 100644 addons/default/visiosoft/advs-module/resources/js/editContactInformation.js create mode 100644 addons/default/visiosoft/advs-module/resources/views/new-ad/partials/modals.twig create mode 100644 addons/default/visiosoft/base-theme/resources/js/forgot.js create mode 100644 addons/default/visiosoft/location-module/resources/js/addressSelect.js create mode 100755 addons/default/visiosoft/location-module/resources/views/new-ad/modals.twig create mode 100644 addons/default/visiosoft/profile-module/src/Adress/Command/GetAddressByUser.php create mode 100644 addons/default/visiosoft/profile-module/src/Profile/Command/GetProfileDetail.php diff --git a/addons/default/visiosoft/advs-module/resources/css/new-create.css b/addons/default/visiosoft/advs-module/resources/css/new-create.css new file mode 100644 index 000000000..a61a3beef --- /dev/null +++ b/addons/default/visiosoft/advs-module/resources/css/new-create.css @@ -0,0 +1,3 @@ +.editContact { + font-size: 13px; +} \ No newline at end of file diff --git a/addons/default/visiosoft/advs-module/resources/js/editContactInformation.js b/addons/default/visiosoft/advs-module/resources/js/editContactInformation.js new file mode 100644 index 000000000..a7ef1b429 --- /dev/null +++ b/addons/default/visiosoft/advs-module/resources/js/editContactInformation.js @@ -0,0 +1,36 @@ +// phoneMask("input[name='gsm_phone'],input[name='office_phone'],input[name='land_phone']") +$('.formEditInfo').on('submit', function (e) { + e.preventDefault(); + var form = $(this); + + crud(form.serialize() + "&action=update", '/ajax/update-user-info', 'POST', function (callback) { + if (callback.status == "success") { + var profile = callback.data; + $('.infoName').html(profile.first_name + " " + profile.last_name); + $('.infoGsmPhone').html(profile.gsm_phone); + $('.infoOfficePhone').html(profile.office_phone); + $('.infoLandPhone').html(profile.land_phone); + $('#editMyInfo').modal('hide'); + } + }) +}) + +$('.editInformationUser').on('click', function () { + $('#editMyInfo').modal('show'); + crud({}, '/ajax/update-user-info', 'POST', function (callback) { + if (callback.status == "success") { + var profile = callback.data; + intlTelInput(document.querySelector("input[name='gsm_phone']"), { + setNumber: profile.gsm_phone + }) + intlTelInput(document.querySelector("input[name='office_phone']"), { + setNumber: profile.office_phone + }) + intlTelInput(document.querySelector("input[name='land_phone']"), { + setNumber: profile.land_phone + }) + $('input[name="first_name"]').val(profile.first_name) + $('input[name="last_name"]').val(profile.last_name) + } + }) +}) \ No newline at end of file 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 bad7dd0ab..45487d61b 100644 --- a/addons/default/visiosoft/advs-module/resources/lang/en/field.php +++ b/addons/default/visiosoft/advs-module/resources/lang/en/field.php @@ -280,5 +280,9 @@ return [ 'views' => 'Views', // Detail page - "no_street_view" => "No street view image in this location" + "no_street_view" => "No street view image in this location", + 'edit_my_contact_info' => 'Edit My Contact Information', + 'update_my_contact_info' => 'update my contact info', + 'contact_info' => 'Contact information', + 'ad_info' => 'İlan Bilgileri', ]; 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 7f3807edb..43413da49 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 @@ -38,6 +38,59 @@
+ + +
{{ trans('visiosoft.module.advs::field.contact_info') }}
+
+
+
+
+ +
+
+ {{ getProfileDetail(auth_user().id).first_name }} + {{ getProfileDetail(auth_user().id).last_name }} +
+
+
+
+ +
+
+ {{ getProfileDetail(auth_user().id).gsm_phone }} +
+
+
+
+ +
+
+ {{ getProfileDetail(auth_user().id).office_phone }} +
+
+
+
+ +
+
+ {{ getProfileDetail(auth_user().id).land_phone }} +
+
+

+ + + {{ trans('visiosoft.module.advs::field.update_my_contact_info') }} + +

+
+ +
+ + +
{{ trans('visiosoft.module.advs::field.ad_info') }}
{% set fields = form.fields.base().pluck('field_name').all() %} @@ -69,7 +122,8 @@
- +
{{ form.fields.currency.setAttributes({ @@ -120,6 +174,8 @@ {{ form.close|raw }}
+ {% include "visiosoft.module.advs::new-ad/partials/modals" %} + {{ addBlock('new-ad/modals')|raw }} {{ asset_add("scripts.js", "visiosoft.module.advs::js/location.js") }} -{% endif %} \ No newline at end of file + {{ asset_add("scripts.js", "visiosoft.module.location::js/addressSelect.js") }} +{% endif %} + \ No newline at end of file diff --git a/addons/default/visiosoft/location-module/resources/views/new-ad/modals.twig b/addons/default/visiosoft/location-module/resources/views/new-ad/modals.twig new file mode 100755 index 000000000..864d79373 --- /dev/null +++ b/addons/default/visiosoft/location-module/resources/views/new-ad/modals.twig @@ -0,0 +1,108 @@ + + + +{{ asset_add("scripts.js", "visiosoft.module.profile::assets/js/country.js") }} +{{ asset_add("scripts.js", "visiosoft.module.carts::js/phoneField.js") }} + + diff --git a/addons/default/visiosoft/profile-module/resources/lang/en/field.php b/addons/default/visiosoft/profile-module/resources/lang/en/field.php index 71dc12d28..b9dfb1529 100644 --- a/addons/default/visiosoft/profile-module/resources/lang/en/field.php +++ b/addons/default/visiosoft/profile-module/resources/lang/en/field.php @@ -428,5 +428,8 @@ return [ 'details' => [ 'name' => 'Details' ], - + 'choose' => [ + 'name' => 'Choose' + ], + 'my_address' => 'My Address' ]; diff --git a/addons/default/visiosoft/profile-module/resources/lang/en/message.php b/addons/default/visiosoft/profile-module/resources/lang/en/message.php index 87daf6856..efe6bb1a3 100644 --- a/addons/default/visiosoft/profile-module/resources/lang/en/message.php +++ b/addons/default/visiosoft/profile-module/resources/lang/en/message.php @@ -27,6 +27,7 @@ return [ 'registered_phone' => 'This phone number has already been registered.', 'ajax_address_error' => 'No address or not authorized to view.', 'empty_password_sms_message' => 'Due to security issues, we changed your password! Your new password is:', + 'required_all' => "All Field is Required!", // Forgot Password 'email_phone_not_found' => 'The E-mail, Phone Number is not correct!', diff --git a/addons/default/visiosoft/profile-module/src/Adress/AdressRepository.php b/addons/default/visiosoft/profile-module/src/Adress/AdressRepository.php index 0d25e446f..ff52642bf 100644 --- a/addons/default/visiosoft/profile-module/src/Adress/AdressRepository.php +++ b/addons/default/visiosoft/profile-module/src/Adress/AdressRepository.php @@ -22,4 +22,9 @@ class AdressRepository extends EntryRepository implements AdressRepositoryInterf { $this->model = $model; } + + public function findByUser($user_id) + { + return $this->newQuery()->where('user_id', $user_id)->get(); + } } diff --git a/addons/default/visiosoft/profile-module/src/Adress/Command/GetAddressByUser.php b/addons/default/visiosoft/profile-module/src/Adress/Command/GetAddressByUser.php new file mode 100644 index 000000000..df16b713c --- /dev/null +++ b/addons/default/visiosoft/profile-module/src/Adress/Command/GetAddressByUser.php @@ -0,0 +1,34 @@ +id = $id; + } + + /** + * @param AdressRepositoryInterface $adressRepository + * @return \Anomaly\Streams\Platform\Model\EloquentModel|null + */ + public function handle(AdressRepositoryInterface $adressRepository) + { + if ($this->id) { + return $adressRepository->findByUser($this->id); + } + return null; + } +} diff --git a/addons/default/visiosoft/profile-module/src/Adress/Contract/AdressRepositoryInterface.php b/addons/default/visiosoft/profile-module/src/Adress/Contract/AdressRepositoryInterface.php index dbd7b129d..3c4cecd65 100644 --- a/addons/default/visiosoft/profile-module/src/Adress/Contract/AdressRepositoryInterface.php +++ b/addons/default/visiosoft/profile-module/src/Adress/Contract/AdressRepositoryInterface.php @@ -4,5 +4,5 @@ use Anomaly\Streams\Platform\Entry\Contract\EntryRepositoryInterface; interface AdressRepositoryInterface extends EntryRepositoryInterface { - + public function findByUser($user_id); } diff --git a/addons/default/visiosoft/profile-module/src/Http/Controller/MyProfileController.php b/addons/default/visiosoft/profile-module/src/Http/Controller/MyProfileController.php index fae3ade94..ca9874ed0 100644 --- a/addons/default/visiosoft/profile-module/src/Http/Controller/MyProfileController.php +++ b/addons/default/visiosoft/profile-module/src/Http/Controller/MyProfileController.php @@ -324,4 +324,19 @@ class MyProfileController extends PublicController return $this->view->make('visiosoft.module.profile::profile/ads'); } + public function updateAjaxProfile(UserRepositoryInterface $user) + { + $profile = $user->find(Auth::id()); + if (isset($this->request->action) and $this->request->action == "update") { + $profile->update([ + 'first_name' => $this->request->first_name, + 'last_name' => $this->request->last_name, + 'gsm_phone' => $this->request->gsm_phone, + 'office_phone' => $this->request->office_phone, + 'land_phone' => $this->request->land_phone, + ]); + } + return response()->json(['status' => 'success', 'data' => $profile]); + } + } diff --git a/addons/default/visiosoft/profile-module/src/Profile/Command/GetProfileDetail.php b/addons/default/visiosoft/profile-module/src/Profile/Command/GetProfileDetail.php new file mode 100644 index 000000000..6a38ea0e7 --- /dev/null +++ b/addons/default/visiosoft/profile-module/src/Profile/Command/GetProfileDetail.php @@ -0,0 +1,29 @@ +id = $id; + } + + public function handle(UserRepositoryInterface $user) + { + if ($this->id) { + return $user->find($this->id); + } + return null; + } +} diff --git a/addons/default/visiosoft/profile-module/src/Profile/Validation/ValidateEmail.php b/addons/default/visiosoft/profile-module/src/Profile/Validation/ValidateEmail.php index 09ab91bd4..77b5476f4 100644 --- a/addons/default/visiosoft/profile-module/src/Profile/Validation/ValidateEmail.php +++ b/addons/default/visiosoft/profile-module/src/Profile/Validation/ValidateEmail.php @@ -10,7 +10,7 @@ class ValidateEmail //Is email or phone number if (!filter_var($value, FILTER_VALIDATE_EMAIL)) { $possiblePhone = $value; - if (substr($value, 0, 1) == 0) { + if (substr($value, 0, 1) == "+") { $possiblePhone = substr($value, 1); } if ($user = $users->newQuery() diff --git a/addons/default/visiosoft/profile-module/src/ProfileModulePlugin.php b/addons/default/visiosoft/profile-module/src/ProfileModulePlugin.php index 9debabbd6..e0d4ed5ef 100644 --- a/addons/default/visiosoft/profile-module/src/ProfileModulePlugin.php +++ b/addons/default/visiosoft/profile-module/src/ProfileModulePlugin.php @@ -2,6 +2,8 @@ use Anomaly\Streams\Platform\Addon\Plugin\Plugin; use Visiosoft\ProfileModule\Adress\Command\GetAddress; +use Visiosoft\ProfileModule\Adress\Command\GetAddressByUser; +use Visiosoft\ProfileModule\Profile\Command\GetProfileDetail; class ProfileModulePlugin extends Plugin { @@ -19,6 +21,28 @@ class ProfileModulePlugin extends Plugin return null; } + return $ad; + } + ), + new \Twig_SimpleFunction( + 'getAddressByUser', + function ($user_id) { + + if (!$ad = $this->dispatch(new GetAddressByUser($user_id))) { + return null; + } + + return $ad; + } + ), + new \Twig_SimpleFunction( + 'getProfileDetail', + function ($user_id) { + + if (!$ad = $this->dispatch(new GetProfileDetail($user_id))) { + return null; + } + return $ad; } ) diff --git a/addons/default/visiosoft/profile-module/src/ProfileModuleServiceProvider.php b/addons/default/visiosoft/profile-module/src/ProfileModuleServiceProvider.php index 03b0ecb02..aae345323 100644 --- a/addons/default/visiosoft/profile-module/src/ProfileModuleServiceProvider.php +++ b/addons/default/visiosoft/profile-module/src/ProfileModuleServiceProvider.php @@ -117,8 +117,10 @@ class ProfileModuleServiceProvider extends AddonServiceProvider 'uses' => 'Visiosoft\ProfileModule\Http\Controller\MyProfileController@notification', ], + 'ajax/update-user-info' => 'Visiosoft\ProfileModule\Http\Controller\MyProfileController@updateAjaxProfile', + // Cache links - 'ajax/get-user-info' => 'Visiosoft\ProfileModule\Http\Controller\CacheController@getUserInfo' + 'ajax/get-user-info' => 'Visiosoft\ProfileModule\Http\Controller\CacheController@getUserInfo', ]; /**