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)