diff --git a/addons/default/visiosoft/profile-module/resources/assets/js/location.js b/addons/default/visiosoft/profile-module/resources/assets/js/location.js new file mode 100644 index 000000000..44ad4990b --- /dev/null +++ b/addons/default/visiosoft/profile-module/resources/assets/js/location.js @@ -0,0 +1,64 @@ +new Promise(function (resolve, reject) { + if (parseInt(default_country)) { + getCities(parseInt(default_country)); + $('select[name="country"]').val(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; + } + } +}); + +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(""); + }); + }) +} + +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(""); + }); + }) +} + +$(document).on('change', 'select[name="country"]', function () { + getCities($(this).val()); +}); + +$(document).on('change', 'select[name="city"]', function () { + getDistricts($(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/profile-module/resources/views/field.twig b/addons/default/visiosoft/profile-module/resources/views/field.twig new file mode 100644 index 000000000..e51c5d76e --- /dev/null +++ b/addons/default/visiosoft/profile-module/resources/views/field.twig @@ -0,0 +1,27 @@ +{% if form.options.title or form.options.description %} +
+ + {% if form.options.title %} +
+

+ {{ trans(form.options.title)|raw }} + + {% if form.options.description %} + +
{{ trans(form.options.description)|raw }} +
+ {% endif %} +

+
+ {% endif %} + +
+{% endif %} + + +{{ asset_add("scripts.js","visiosoft.module.profile::assets/js/location.js") }} \ No newline at end of file diff --git a/addons/default/visiosoft/profile-module/src/Adress/Table/AdressTableBuilder.php b/addons/default/visiosoft/profile-module/src/Adress/Table/AdressTableBuilder.php index f3fcd2b66..421cd1600 100644 --- a/addons/default/visiosoft/profile-module/src/Adress/Table/AdressTableBuilder.php +++ b/addons/default/visiosoft/profile-module/src/Adress/Table/AdressTableBuilder.php @@ -1,7 +1,6 @@ [ 'filter' => 'search', 'fields' => [ - 'user', + 'adress_name', ], ], ]; @@ -34,7 +33,10 @@ class AdressTableBuilder extends TableBuilder * @var array|string */ protected $columns = [ - 'first_name','last_name','email' + 'first_name' => 'entry.user.first_name', + 'last_name' => 'entry.user.last_name', + 'adress_name', + 'adress_gsm_phone' ]; /** diff --git a/addons/default/visiosoft/profile-module/src/Http/Controller/Admin/AdressController.php b/addons/default/visiosoft/profile-module/src/Http/Controller/Admin/AdressController.php index eaa4a7e89..7c606f061 100644 --- a/addons/default/visiosoft/profile-module/src/Http/Controller/Admin/AdressController.php +++ b/addons/default/visiosoft/profile-module/src/Http/Controller/Admin/AdressController.php @@ -1,10 +1,9 @@ get(); - $table->setTableEntries($users); + $table->setColumns(array_merge($table->getColumns(), [ + 'city' => [ + 'value' => function (EntryInterface $entry, CityRepositoryInterface $cityRepository) { + return $cityRepository->find($entry->city)->name; + }, + ], + ])); + return $table->render(); } @@ -33,7 +38,9 @@ class AdressController extends AdminController */ public function create(AdressFormBuilder $form) { - return $this->view->make('visiosoft.module.profile::admin/adress/create'); + $form->setOption('heading', "visiosoft.module.profile::field"); + + return $form->render(); } /** @@ -45,9 +52,9 @@ class AdressController extends AdminController */ public function edit(AdressFormBuilder $form, $id) { - $adress = ProfileAdressEntryModel::query()->find($id); - $country = CountryModel::all(); - return $this->view->make('visiosoft.module.profile::admin/adress/edit',compact('adress','country')); + $form->setOption('heading', "visiosoft.module.profile::field"); + + return $form->render($id); } public function adresList(AdressTableBuilder $table, $id)