mirror of
https://github.com/openclassify/openclassify.git
synced 2026-02-10 23:36:08 -06:00
add company address type
This commit is contained in:
parent
7429db5768
commit
8e6e4d1490
@ -139,7 +139,15 @@ class VisiosoftModuleProfileCreateProfileFields extends Migration
|
|||||||
'mode' => 'select',
|
'mode' => 'select',
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
'deleted_at' => 'anomaly.field_type.datetime'
|
'company' => 'anomaly.field_type.text',
|
||||||
|
'tax_number' => 'anomaly.field_type.text',
|
||||||
|
'tax_office' => 'anomaly.field_type.text',
|
||||||
|
'is_company' => [
|
||||||
|
'type' => 'anomaly.field_type.boolean',
|
||||||
|
'config' => [
|
||||||
|
'default_value' => false,
|
||||||
|
],
|
||||||
|
],
|
||||||
];
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -12,11 +12,11 @@ class VisiosoftModuleProfileCreateAdressStream extends Migration
|
|||||||
*/
|
*/
|
||||||
protected $stream = [
|
protected $stream = [
|
||||||
'slug' => 'adress',
|
'slug' => 'adress',
|
||||||
'title_column' => 'id',
|
'title_column' => 'id',
|
||||||
'translatable' => false,
|
'translatable' => false,
|
||||||
'trashable' => false,
|
'trashable' => true,
|
||||||
'searchable' => false,
|
'searchable' => false,
|
||||||
'sortable' => false,
|
'sortable' => false,
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -41,16 +41,17 @@ class VisiosoftModuleProfileCreateAdressStream extends Migration
|
|||||||
'city' => [
|
'city' => [
|
||||||
'required' => true,
|
'required' => true,
|
||||||
],
|
],
|
||||||
'district' => [
|
'district',
|
||||||
'required' => true,
|
|
||||||
],
|
|
||||||
'adress_content' => [
|
'adress_content' => [
|
||||||
'required' => true,
|
'required' => true,
|
||||||
],
|
],
|
||||||
'adress_gsm_phone' => [
|
'adress_gsm_phone' => [
|
||||||
'required' => true,
|
'required' => true,
|
||||||
],
|
],
|
||||||
'deleted_at'
|
'company',
|
||||||
|
'tax_number',
|
||||||
|
'tax_office',
|
||||||
|
'is_company',
|
||||||
];
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1 +0,0 @@
|
|||||||
phoneMask("input[name='adress_gsm_phone']")
|
|
||||||
@ -0,0 +1,51 @@
|
|||||||
|
$(document).on('change', 'select[name="country"]', function () {
|
||||||
|
Locations($(this).val(), 1, "city");
|
||||||
|
});
|
||||||
|
$(document).on('change', 'select[name="city"]', function () {
|
||||||
|
Locations($(this).val(), 2, "district")
|
||||||
|
});
|
||||||
|
|
||||||
|
function Locations(cat, level, name) {
|
||||||
|
$.ajax({
|
||||||
|
type: "GET",
|
||||||
|
async: false,
|
||||||
|
data: "cat=" + cat + "&level=" + level,
|
||||||
|
url: "/class/ajax",
|
||||||
|
success: function (msg) {
|
||||||
|
$('select[name="' + name + '"]').find('option').remove();
|
||||||
|
$('select[name="' + name + '"]').append('<option>...</option>');
|
||||||
|
$.each(msg, function (key, value) {
|
||||||
|
$('select[name="' + name + '"]').append('<option value="' + value.id + '">' + value.name + '</option>');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (country != "") {
|
||||||
|
//For Request
|
||||||
|
Locations(country, 1, "city");
|
||||||
|
|
||||||
|
if (city != "") {
|
||||||
|
$('select[name="city"]').val(city);
|
||||||
|
Locations(city, 2, "district");
|
||||||
|
|
||||||
|
if (district != "") {
|
||||||
|
$('select[name="district"]').val(district);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
//Set Default
|
||||||
|
$('select[name="country"]').val(default_country);
|
||||||
|
Locations(default_country, 1, "city");
|
||||||
|
|
||||||
|
if (default_city != "") {
|
||||||
|
$('select[name="city"]').val(default_city);
|
||||||
|
Locations(default_city, 2, "district");
|
||||||
|
|
||||||
|
if (default_district != "") {
|
||||||
|
$('select[name="district"]').val(default_district);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
phoneMask("input[name='adress_gsm_phone']");
|
||||||
@ -8,7 +8,7 @@ return [
|
|||||||
'general_setting' => [
|
'general_setting' => [
|
||||||
'title' => 'visiosoft.module.profile::section.general_setting',
|
'title' => 'visiosoft.module.profile::section.general_setting',
|
||||||
'fields' => [
|
'fields' => [
|
||||||
'show_my_ads', 'upload_avatar'
|
'show_my_ads', 'upload_avatar', 'show_tax_office'
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
|
|||||||
@ -13,4 +13,11 @@ return [
|
|||||||
'default_value' => 1
|
'default_value' => 1
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
|
|
||||||
|
'show_tax_office' => [
|
||||||
|
'type' => 'anomaly.field_type.boolean',
|
||||||
|
'config' => [
|
||||||
|
'default_value' => true,
|
||||||
|
],
|
||||||
|
],
|
||||||
];
|
];
|
||||||
@ -12,4 +12,6 @@ return [
|
|||||||
'edit' => 'Edit',
|
'edit' => 'Edit',
|
||||||
'go_profile' => 'Go to Profile Detail',
|
'go_profile' => 'Go to Profile Detail',
|
||||||
'go_user' => 'Go to User Detail',
|
'go_user' => 'Go to User Detail',
|
||||||
|
'personal' => 'Personal',
|
||||||
|
'corporate' => 'Corporate',
|
||||||
];
|
];
|
||||||
|
|||||||
@ -431,5 +431,15 @@ return [
|
|||||||
'choose' => [
|
'choose' => [
|
||||||
'name' => 'Choose'
|
'name' => 'Choose'
|
||||||
],
|
],
|
||||||
'my_address' => 'My Address'
|
'my_address' => 'My Address',
|
||||||
|
|
||||||
|
'company' => [
|
||||||
|
'name' => 'Company Name'
|
||||||
|
],
|
||||||
|
'tax_office' => [
|
||||||
|
'name' => 'Tax Office'
|
||||||
|
],
|
||||||
|
'tax_number' => [
|
||||||
|
'name' => 'Tax Number'
|
||||||
|
],
|
||||||
];
|
];
|
||||||
|
|||||||
@ -7,4 +7,8 @@ return [
|
|||||||
'upload_avatar' => [
|
'upload_avatar' => [
|
||||||
'name' => 'Avatar Upload',
|
'name' => 'Avatar Upload',
|
||||||
],
|
],
|
||||||
|
|
||||||
|
'show_tax_office' => [
|
||||||
|
'name' => 'Show Tax Office Field',
|
||||||
|
],
|
||||||
];
|
];
|
||||||
|
|||||||
@ -5,78 +5,99 @@
|
|||||||
{% block detail %}
|
{% block detail %}
|
||||||
<div class="row px-3">
|
<div class="row px-3">
|
||||||
<div class="col-md-12 bg-dark text-white p-5">
|
<div class="col-md-12 bg-dark text-white p-5">
|
||||||
<h3>{{ trans('visiosoft.module.profile::field.create_address.name') }}</h3>
|
<h3>
|
||||||
|
{% if request().segment(3) == "edit" %}
|
||||||
|
{{ trans('visiosoft.module.profile::field.edit_address.name') }}
|
||||||
|
{% else %}
|
||||||
|
{{ trans('visiosoft.module.profile::field.create_address.name') }}
|
||||||
|
{% endif %}
|
||||||
|
</h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-12 bg-light profile-section">
|
<div class="col-md-12 bg-light profile-section">
|
||||||
{% set form = form('profile', 'adress').entry(adress.id).actions({'save':'save'}).get() %}
|
{% set form = form('address').entry(id).actions({'save':'save'}).get() %}
|
||||||
{{ form_open({
|
|
||||||
'class': 'form ' ~ form.options.class ,
|
|
||||||
'enctype': 'multipart/form-data',
|
|
||||||
'url': 'profile/adress/create'
|
|
||||||
})|raw }}
|
|
||||||
<div class="py-3 px-3 px-sm-0">
|
|
||||||
|
|
||||||
<div class="form-group">
|
{% set isCompany = form.entry.is_company %}
|
||||||
<label class="control-label font-weight-bold">{{ form.fields.adress_name.label|raw }}</label>
|
|
||||||
{{ form.fields.adress_name.input|raw }}
|
<div class="card-header tab-card-header">
|
||||||
</div>
|
<ul class="nav nav-tabs card-header-tabs" role="tablist">
|
||||||
<div class="form-group">
|
<li class="nav-item {% if isCompany %}d-none{% endif %}">
|
||||||
<label class="control-label font-weight-bold">{{ form.fields.adress_gsm_phone.label|raw }}</label>
|
<a class="nav-link active show" id="personal-tab" data-toggle="tab" href="#personal"
|
||||||
{{ form.fields.adress_gsm_phone.input|raw }}
|
role="tab"
|
||||||
</div>
|
aria-controls="Personal" aria-selected="true">{{ trans('visiosoft.module.profile::button.personal') }}</a></li>
|
||||||
<div class="form-group">
|
<li class="nav-item">
|
||||||
<label class="control-label font-weight-bold">{{ form.fields.adress_first_name.label|raw }}</label>
|
<a class="nav-link {% if isCompany %}active show{% endif %}" id="corporate-tab" data-toggle="tab" href="#corporate" role="tab"
|
||||||
{{ form.fields.adress_first_name.input|raw }}
|
aria-controls="Corporate" aria-selected="false">{{ trans('visiosoft.module.profile::button.corporate') }}</a>
|
||||||
</div>
|
</li>
|
||||||
<div class="form-group">
|
</ul>
|
||||||
<label class="control-label font-weight-bold">{{ form.fields.adress_last_name.label|raw }}</label>
|
</div>
|
||||||
{{ form.fields.adress_last_name.input|raw }}
|
|
||||||
</div>
|
|
||||||
<div class="row form-group location-map">
|
<div class="tab-content">
|
||||||
<div class="col-sm-4">
|
<div class="tab-pane fade show active p-3 {% if isCompany %}d-none{% endif %}" id="personal" role="tabpanel"
|
||||||
<label class="control-label font-weight-bold">{{ form.fields.country.label|raw }}</label>
|
aria-labelledby="personal-tab">
|
||||||
<div class="input-wrapper">
|
{{ form_open({
|
||||||
<select name="country" class="custom-select form-control"
|
'class': 'form ' ~ form.options.class ,
|
||||||
data-content="{{ adress.country.id }}"
|
'enctype': 'multipart/form-data',
|
||||||
data-field_name="adress_country_id"
|
'url':form.options.url
|
||||||
data-provides="anomaly.field_type.select">
|
})|raw }}
|
||||||
{% for countryField in country %}
|
<div class="py-3 px-3 px-sm-0">
|
||||||
<option value="{{ countryField.id }}">{{ countryField.name }}</option>
|
|
||||||
{% endfor %}
|
{% include "visiosoft.module.profile::address/partials/fields" %}
|
||||||
</select>
|
|
||||||
|
<div class="form-group">
|
||||||
|
{{ form.actions|raw }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
{{ form_close() }}
|
||||||
|
|
||||||
<div class="col-sm-4 location-field city-data"
|
|
||||||
data-content="{{ adress.city }}">
|
|
||||||
<label class="control-label font-weight-bold">{{ form.fields.city.label|raw }}</label>
|
|
||||||
{{ form.fields.city.input|raw }}
|
|
||||||
</div>
|
|
||||||
<div class="col-sm-4 location-field district-data"
|
|
||||||
data-content="{{ adress.district }}">
|
|
||||||
<label class="control-label font-weight-bold">{{ form.fields.district.label|raw }}</label>
|
|
||||||
{{ form.fields.district.input|raw }}
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group location-map">
|
<div class="tab-pane fade p-3 {% if isCompany %}active show{% endif %}" id="corporate" role="tabpanel" aria-labelledby="corporate-tab">
|
||||||
<div class="col-sm-12">
|
{% set form = form('addressCompany').entry(id).actions({'save':'save'}).get() %}
|
||||||
<div class="row form-group add-title">
|
{{ form_open({
|
||||||
<label class="control-label font-weight-bold">{{ form.fields.adress_content.label|raw }}</label>
|
'class': 'form ' ~ form.options.class ,
|
||||||
{{ form.fields.adress_content.input|raw }}
|
'enctype': 'multipart/form-data',
|
||||||
|
'url':form.options.url
|
||||||
|
})|raw }}
|
||||||
|
<div class="py-3 px-3 px-sm-0">
|
||||||
|
|
||||||
|
<div class="form-group font-weight-bolder">
|
||||||
|
{{ form.fields.company|raw }}
|
||||||
</div>
|
</div>
|
||||||
|
{% if setting_value('visiosoft.module.profile::show_tax_office') %}
|
||||||
|
<div class="form-group font-weight-bolder">
|
||||||
|
{{ form.fields.tax_office|raw }}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
<div class="form-group font-weight-bolder">
|
||||||
|
{{ form.fields.tax_number|raw }}
|
||||||
|
</div>
|
||||||
|
{% include "visiosoft.module.profile::address/partials/fields" %}
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
{{ form.actions|raw }}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
{{ form_close() }}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
|
||||||
{{ form.actions|raw }}
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<script>
|
||||||
|
//For Request
|
||||||
|
var country = "{% if request().segment(3) == "edit" %}{{ form.fields.country.value.id }}{% else %}{{ form.fields.country.value|raw }}{% endif %}";
|
||||||
|
var city = "{% if request().segment(3) == "edit" %}{{ form.fields.city.value }}{% else %}{{ form.fields.city.value|raw }}{% endif %}";
|
||||||
|
var district = "{% if request().segment(3) == "edit" %}{{ form.fields.district.value }}{% else %}{{ form.fields.district.value|raw }}{% endif %}";
|
||||||
|
//Default
|
||||||
|
var default_country = "{{ setting_value('visiosoft.module.location::default_country') }}";
|
||||||
|
var default_city = "{{ setting_value('visiosoft.module.location::default_city') }}";
|
||||||
|
var default_district = "{{ setting_value('visiosoft.module.location::default_district') }}";
|
||||||
|
|
||||||
{{ asset_add("scripts.js", "visiosoft.module.profile::assets/js/country.js") }}
|
</script>
|
||||||
{{ asset_add("scripts.js", "visiosoft.module.profile::assets/js/address.js") }}
|
|
||||||
|
{{ asset_add("scripts.js", "visiosoft.module.profile::assets/js/create.js") }}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
{% endembed %}
|
{% endembed %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
@ -1,82 +0,0 @@
|
|||||||
{% extends "theme::layouts/default" %}
|
|
||||||
|
|
||||||
{% block content %}
|
|
||||||
{% embed 'visiosoft.module.profile::profile/index' %}
|
|
||||||
{% block detail %}
|
|
||||||
<div class="row px-3">
|
|
||||||
<div class="col-md-12 bg-dark text-white p-5">
|
|
||||||
<h3>{{ trans('visiosoft.module.profile::field.edit_address.name') }}</h3>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-12 bg-light profile-section">
|
|
||||||
{% set form = form('profile', 'adress').entry(adress.id).actions({'update':'update'}).get() %}
|
|
||||||
{{ form_open({
|
|
||||||
'class': 'form ' ~ form.options.class ,
|
|
||||||
'enctype': 'multipart/form-data',
|
|
||||||
'url': 'profile/adress/update/'~ adress.id
|
|
||||||
})|raw }}
|
|
||||||
<div class="py-3 px-3 px-sm-0">
|
|
||||||
|
|
||||||
<div class="form-group">
|
|
||||||
<label class="control-label font-weight-bold">{{ form.fields.adress_name.label|raw }}</label>
|
|
||||||
{{ form.fields.adress_name.input|raw }}
|
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
|
||||||
<label class="control-label font-weight-bold">{{ form.fields.adress_gsm_phone.label|raw }}</label>
|
|
||||||
{{ form.fields.adress_gsm_phone.input|raw }}
|
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
|
||||||
<label class="control-label font-weight-bold">{{ form.fields.adress_first_name.label|raw }}</label>
|
|
||||||
{{ form.fields.adress_first_name.input|raw }}
|
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
|
||||||
<label class="control-label font-weight-bold">{{ form.fields.adress_last_name.label|raw }}</label>
|
|
||||||
{{ form.fields.adress_last_name.input|raw }}
|
|
||||||
</div>
|
|
||||||
<div class="row form-group location-map">
|
|
||||||
<div class="col-sm-4">
|
|
||||||
<label class="control-label font-weight-bold">{{ form.fields.country.label|raw }}</label>
|
|
||||||
<div class="input-wrapper">
|
|
||||||
<select name="country" class="custom-select form-control"
|
|
||||||
data-content="{{ adress.country.id }}"
|
|
||||||
data-field_name="adress_country_id"
|
|
||||||
data-provides="anomaly.field_type.select">
|
|
||||||
{% for countryField in country %}
|
|
||||||
<option value="{{ countryField.id }}">{{ countryField.name }}</option>
|
|
||||||
{% endfor %}
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-sm-4 location-field city-data"
|
|
||||||
data-content="{{ adress.city }}">
|
|
||||||
<label class="control-label font-weight-bold">{{ form.fields.city.label|raw }}</label>
|
|
||||||
{{ form.fields.city.input|raw }}
|
|
||||||
</div>
|
|
||||||
<div class="col-sm-4 location-field district-data"
|
|
||||||
data-content="{{ adress.district }}">
|
|
||||||
<label class="control-label font-weight-bold">{{ form.fields.district.label|raw }}</label>
|
|
||||||
{{ form.fields.district.input|raw }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form-group location-map">
|
|
||||||
<div class="col-sm-12">
|
|
||||||
<div class="row form-group add-title">
|
|
||||||
<label class="control-label font-weight-bold">{{ form.fields.adress_content.label|raw }}</label>
|
|
||||||
{{ adress.adress_content.input|raw }}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
|
||||||
{{ form.actions|raw }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{{ asset_add("scripts.js", "visiosoft.module.profile::assets/js/country.js") }}
|
|
||||||
{{ asset_add("scripts.js", "visiosoft.module.profile::assets/js/address.js") }}
|
|
||||||
{% endblock %}
|
|
||||||
{% endembed %}
|
|
||||||
{% endblock %}
|
|
||||||
@ -0,0 +1,36 @@
|
|||||||
|
<div class="form-group font-weight-bolder">
|
||||||
|
{{ form.fields.adress_name|raw }}
|
||||||
|
</div>
|
||||||
|
<div class="form-group font-weight-bolder">
|
||||||
|
{{ form.fields.adress_gsm_phone|raw }}
|
||||||
|
</div>
|
||||||
|
<div class="form-group font-weight-bold">
|
||||||
|
{{ form.fields.adress_first_name|raw }}
|
||||||
|
</div>
|
||||||
|
<div class="form-group font-weight-bold">
|
||||||
|
{{ form.fields.adress_last_name|raw }}
|
||||||
|
</div>
|
||||||
|
<div class="row form-group location-map">
|
||||||
|
<div class="col-sm-4 font-weight-bold">
|
||||||
|
{{ form.fields.country|raw }}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-sm-4 location-field city-data font-weight-bold"
|
||||||
|
data-content="{{ adress.city }}">
|
||||||
|
{{ form.fields.city|raw }}
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-4 location-field district-data font-weight-bold"
|
||||||
|
data-content="{{ adress.district }}">
|
||||||
|
{{ form.fields.district|raw }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group location-map">
|
||||||
|
<div class="col-sm-12">
|
||||||
|
<div class="row form-group add-title">
|
||||||
|
<label class="control-label font-weight-bolder"
|
||||||
|
for="country">{{ form.fields.adress_content.label|raw }} <span
|
||||||
|
class="required">*</span></label>
|
||||||
|
{{ form.fields.adress_content.input|raw }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
@ -5,14 +5,6 @@ use Anomaly\Streams\Platform\Ui\Form\FormBuilder;
|
|||||||
class AdressFormBuilder extends FormBuilder
|
class AdressFormBuilder extends FormBuilder
|
||||||
{
|
{
|
||||||
|
|
||||||
/**
|
|
||||||
* The form fields.
|
|
||||||
*
|
|
||||||
* @var array|string
|
|
||||||
*/
|
|
||||||
protected $fields = [
|
|
||||||
];
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Additional validation rules.
|
* Additional validation rules.
|
||||||
*
|
*
|
||||||
@ -49,6 +41,8 @@ class AdressFormBuilder extends FormBuilder
|
|||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
protected $options = [
|
protected $options = [
|
||||||
|
'redirect' => '/profile/address',
|
||||||
|
'success_message' => 'visiosoft.module.profile::message.adress_success_create',
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -0,0 +1,36 @@
|
|||||||
|
<?php namespace Visiosoft\ProfileModule\Adress\Form;
|
||||||
|
|
||||||
|
|
||||||
|
class AdressFormFields
|
||||||
|
{
|
||||||
|
|
||||||
|
public function handle(AdressFormBuilder $builder)
|
||||||
|
{
|
||||||
|
$builder->setFields(
|
||||||
|
[
|
||||||
|
'adress_name' => [
|
||||||
|
'required' => true,
|
||||||
|
],
|
||||||
|
'adress_gsm_phone' => [
|
||||||
|
'required' => true,
|
||||||
|
],
|
||||||
|
'adress_first_name' => [
|
||||||
|
'required' => true,
|
||||||
|
],
|
||||||
|
'adress_last_name' => [
|
||||||
|
'required' => true,
|
||||||
|
],
|
||||||
|
'country' => [
|
||||||
|
'required' => true,
|
||||||
|
],
|
||||||
|
'city' => [
|
||||||
|
'required' => true,
|
||||||
|
],
|
||||||
|
'district',
|
||||||
|
'adress_content' => [
|
||||||
|
'required' => true,
|
||||||
|
],
|
||||||
|
]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,30 @@
|
|||||||
|
<?php namespace Visiosoft\ProfileModule\Adress\Form;
|
||||||
|
|
||||||
|
use Anomaly\UsersModule\User\Contract\UserInterface;
|
||||||
|
use Anomaly\UsersModule\User\Event\UserHasRegistered;
|
||||||
|
use Anomaly\UsersModule\User\Register\Command\HandleAutomaticRegistration;
|
||||||
|
use Anomaly\UsersModule\User\Register\Command\HandleEmailRegistration;
|
||||||
|
use Anomaly\UsersModule\User\Register\Command\HandleManualRegistration;
|
||||||
|
use Anomaly\UsersModule\User\UserActivator;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
|
||||||
|
|
||||||
|
class AdressFormHandler
|
||||||
|
{
|
||||||
|
|
||||||
|
public function handle(
|
||||||
|
AdressFormBuilder $builder)
|
||||||
|
{
|
||||||
|
if (!$builder->canSave()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$builder->saveForm();
|
||||||
|
|
||||||
|
$entry = $builder->getFormEntry();
|
||||||
|
|
||||||
|
$entry->user_id = Auth::id();
|
||||||
|
|
||||||
|
$entry->save();
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,65 @@
|
|||||||
|
<?php namespace Visiosoft\ProfileModule\Adress\FormCompany;
|
||||||
|
|
||||||
|
use Anomaly\Streams\Platform\Ui\Form\FormBuilder;
|
||||||
|
use Visiosoft\ProfileModule\Adress\AdressModel;
|
||||||
|
|
||||||
|
class AddressCompanyFormBuilder extends FormBuilder
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Additional validation rules.
|
||||||
|
*
|
||||||
|
* @var array|string
|
||||||
|
*/
|
||||||
|
protected $model = AdressModel::class;
|
||||||
|
|
||||||
|
protected $rules = [];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fields to skip.
|
||||||
|
*
|
||||||
|
* @var array|string
|
||||||
|
*/
|
||||||
|
protected $skips = [];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The form actions.
|
||||||
|
*
|
||||||
|
* @var array|string
|
||||||
|
*/
|
||||||
|
protected $actions = [];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The form buttons.
|
||||||
|
*
|
||||||
|
* @var array|string
|
||||||
|
*/
|
||||||
|
protected $buttons = [
|
||||||
|
'cancel',
|
||||||
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The form options.
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
protected $options = [
|
||||||
|
'redirect' => '/profile/address',
|
||||||
|
'success_message' => 'visiosoft.module.profile::message.adress_success_create',
|
||||||
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The form sections.
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
protected $sections = [];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The form assets.
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
protected $assets = [];
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,48 @@
|
|||||||
|
<?php namespace Visiosoft\ProfileModule\Adress\FormCompany;
|
||||||
|
|
||||||
|
|
||||||
|
class AddressCompanyFormFields
|
||||||
|
{
|
||||||
|
|
||||||
|
public function handle(AddressCompanyFormBuilder $builder)
|
||||||
|
{
|
||||||
|
$builder->setFields(
|
||||||
|
[
|
||||||
|
'company' => [
|
||||||
|
'required' => true,
|
||||||
|
],
|
||||||
|
'tax_number' => [
|
||||||
|
'required' => true,
|
||||||
|
],
|
||||||
|
'adress_name' => [
|
||||||
|
'required' => true,
|
||||||
|
],
|
||||||
|
'adress_gsm_phone' => [
|
||||||
|
'required' => true,
|
||||||
|
],
|
||||||
|
'adress_first_name' => [
|
||||||
|
'required' => true,
|
||||||
|
],
|
||||||
|
'adress_last_name' => [
|
||||||
|
'required' => true,
|
||||||
|
],
|
||||||
|
'country' => [
|
||||||
|
'required' => true,
|
||||||
|
],
|
||||||
|
'city' => [
|
||||||
|
'required' => true,
|
||||||
|
],
|
||||||
|
'district',
|
||||||
|
'adress_content' => [
|
||||||
|
'required' => true,
|
||||||
|
],
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
if (setting_value('visiosoft.module.profile::show_tax_office')) {
|
||||||
|
$builder->addField('tax_office', [
|
||||||
|
'required' => true,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,25 @@
|
|||||||
|
<?php namespace Visiosoft\ProfileModule\Adress\FormCompany;
|
||||||
|
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
|
||||||
|
|
||||||
|
class AddressCompanyFormHandler
|
||||||
|
{
|
||||||
|
|
||||||
|
public function handle(
|
||||||
|
AddressCompanyFormBuilder $builder)
|
||||||
|
{
|
||||||
|
if (!$builder->canSave()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$builder->saveForm();
|
||||||
|
|
||||||
|
$entry = $builder->getFormEntry();
|
||||||
|
|
||||||
|
$entry->user_id = Auth::id();
|
||||||
|
$entry->is_company = true;
|
||||||
|
|
||||||
|
$entry->save();
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,50 @@
|
|||||||
|
<?php namespace Visiosoft\ProfileModule\Http\Controller;
|
||||||
|
|
||||||
|
use Anomaly\Streams\Platform\Entry\Contract\EntryInterface;
|
||||||
|
use Anomaly\Streams\Platform\Model\Profile\ProfileAdressEntryModel;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Visiosoft\LocationModule\City\Contract\CityRepositoryInterface;
|
||||||
|
use Visiosoft\ProfileModule\Adress\AdressModel;
|
||||||
|
use Visiosoft\ProfileModule\Adress\Form\AdressFormBuilder;
|
||||||
|
use Visiosoft\ProfileModule\Adress\Table\AdressTableBuilder;
|
||||||
|
use Anomaly\Streams\Platform\Http\Controller\AdminController;
|
||||||
|
|
||||||
|
class AddressController extends AdminController
|
||||||
|
{
|
||||||
|
private $address;
|
||||||
|
|
||||||
|
public function __construct(AdressModel $address)
|
||||||
|
{
|
||||||
|
$this->address = $address;
|
||||||
|
parent::__construct();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function index(AdressTableBuilder $table)
|
||||||
|
{
|
||||||
|
$address = $this->address->getUserAdress();
|
||||||
|
return $this->view->make('visiosoft.module.profile::address/list', compact('address'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
return $this->view->make('visiosoft.module.profile::address/create');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function edit($id)
|
||||||
|
{
|
||||||
|
return $this->view->make('visiosoft.module.profile::address/create', compact('id'));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function delete($id)
|
||||||
|
{
|
||||||
|
$address = $this->address->newQuery()->find($id);
|
||||||
|
|
||||||
|
if ($address->user_id == Auth::id()) {
|
||||||
|
$address->delete();
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->redirect->back();
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -132,71 +132,6 @@ class MyProfileController extends PublicController
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function adressEdit($id)
|
|
||||||
{
|
|
||||||
$adressModel = new AdressModel();
|
|
||||||
$adress = $adressModel->getAdressFirst($id);
|
|
||||||
if ($adress->getAttribute('user_id') == Auth::id()) {
|
|
||||||
$country = CountryModel::all();
|
|
||||||
return $this->view->make('visiosoft.module.profile::address/edit', compact('adress', 'country'));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public function adressSoftDelete($id)
|
|
||||||
{
|
|
||||||
$address = $this->adressRepository->find($id);
|
|
||||||
if ($address->user_id == Auth::id()) {
|
|
||||||
$address->update([
|
|
||||||
'deleted_at' => date('Y-m-d H:i:s')
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
return $this->redirect->back();
|
|
||||||
}
|
|
||||||
|
|
||||||
public function adressUpdate(AdressFormBuilder $form, Request $request, $id)
|
|
||||||
{
|
|
||||||
$error = $form->build()->validate()->getFormErrors()->getMessages();
|
|
||||||
if (!empty($error)) {
|
|
||||||
return $this->redirect->back();
|
|
||||||
}
|
|
||||||
|
|
||||||
$adressModel = new AdressModel();
|
|
||||||
$adress = $adressModel->getAdressFirst($id);
|
|
||||||
|
|
||||||
if ($adress->getAttribute('user_id') == Auth::id()) {
|
|
||||||
|
|
||||||
$New_value = $request->all();
|
|
||||||
$New_value['country_id'] = $New_value['country'];
|
|
||||||
unset($New_value['_token'], $New_value['action'], $New_value['country']);
|
|
||||||
$adressModel->getAdress($id)->update($New_value);
|
|
||||||
|
|
||||||
$message = [];
|
|
||||||
$message[] = trans('visiosoft.module.profile::message.adress_success_update');
|
|
||||||
return redirect(route('profile::address'))->with('success', $message);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public function adressCreate(AdressFormBuilder $form, Request $request)
|
|
||||||
{
|
|
||||||
if (isset($request->request->all()['action']) == "save") {
|
|
||||||
$error = $form->build()->validate()->getFormErrors()->getMessages();
|
|
||||||
if (!empty($error)) {
|
|
||||||
return $this->redirect->back();
|
|
||||||
}
|
|
||||||
$new_adress = $request->request->all();
|
|
||||||
unset($new_adress['action'], $new_adress['_to*ken']);
|
|
||||||
$new_adress['user_id'] = Auth::id();
|
|
||||||
|
|
||||||
$adressModel = new AdressModel();
|
|
||||||
$adressModel->getAdress()->create($new_adress);
|
|
||||||
|
|
||||||
$message = [];
|
|
||||||
$message[] = trans('visiosoft.module.profile::message.adress_success_create');
|
|
||||||
return redirect(route('profile::address'))->with('success', $message);
|
|
||||||
}
|
|
||||||
$country = CountryModel::all();
|
|
||||||
return $this->view->make('visiosoft.module.profile::address/create', compact('country'));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function adressAjaxCreate(AdressFormBuilder $form, Request $request)
|
public function adressAjaxCreate(AdressFormBuilder $form, Request $request)
|
||||||
{
|
{
|
||||||
@ -274,13 +209,6 @@ class MyProfileController extends PublicController
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function Address()
|
|
||||||
{
|
|
||||||
$address = new AdressModel();
|
|
||||||
$address = $address->getUserAdress();
|
|
||||||
return $this->view->make('visiosoft.module.profile::address/list', compact('address'));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function disableAccount()
|
public function disableAccount()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|||||||
@ -5,6 +5,8 @@ use Visiosoft\ProfileModule\Adress\Contract\AdressRepositoryInterface;
|
|||||||
use Visiosoft\ProfileModule\Adress\AdressRepository;
|
use Visiosoft\ProfileModule\Adress\AdressRepository;
|
||||||
use Anomaly\Streams\Platform\Model\Profile\ProfileAdressEntryModel;
|
use Anomaly\Streams\Platform\Model\Profile\ProfileAdressEntryModel;
|
||||||
use Visiosoft\ProfileModule\Adress\AdressModel;
|
use Visiosoft\ProfileModule\Adress\AdressModel;
|
||||||
|
use Visiosoft\ProfileModule\Adress\Form\AdressFormBuilder;
|
||||||
|
use Visiosoft\ProfileModule\Adress\FormCompany\AddressCompanyFormBuilder;
|
||||||
use Visiosoft\ProfileModule\Http\Middleware\authCheck;
|
use Visiosoft\ProfileModule\Http\Middleware\authCheck;
|
||||||
use Visiosoft\ProfileModule\Profile\Password\ForgotPassFormBuilder;
|
use Visiosoft\ProfileModule\Profile\Password\ForgotPassFormBuilder;
|
||||||
use Visiosoft\ProfileModule\Profile\Password\PasswordFormBuilder;
|
use Visiosoft\ProfileModule\Profile\Password\PasswordFormBuilder;
|
||||||
@ -67,14 +69,7 @@ class ProfileModuleServiceProvider extends AddonServiceProvider
|
|||||||
'admin/profile/editAdress/{id}' => 'Visiosoft\ProfileModule\Http\Controller\Admin\AdressController@edit',
|
'admin/profile/editAdress/{id}' => 'Visiosoft\ProfileModule\Http\Controller\Admin\AdressController@edit',
|
||||||
'admin/profile/update/{id}' => 'Visiosoft\ProfileModule\Http\Controller\Admin\AdressController@adressupdate',
|
'admin/profile/update/{id}' => 'Visiosoft\ProfileModule\Http\Controller\Admin\AdressController@adressupdate',
|
||||||
'profile/adress/update/{id}' => 'Visiosoft\ProfileModule\Http\Controller\MyProfileController@adressUpdate',
|
'profile/adress/update/{id}' => 'Visiosoft\ProfileModule\Http\Controller\MyProfileController@adressUpdate',
|
||||||
'profile/address' => [
|
|
||||||
'as' => 'profile::address',
|
|
||||||
'uses' => 'Visiosoft\ProfileModule\Http\Controller\MyProfileController@Address',
|
|
||||||
],
|
|
||||||
'profile/adress/create' => [
|
|
||||||
'as' => 'visiosoft.module.profile::adress_create',
|
|
||||||
'uses' => 'Visiosoft\ProfileModule\Http\Controller\MyProfileController@adressCreate'
|
|
||||||
],
|
|
||||||
'profile/adress/ajaxCreate' => [
|
'profile/adress/ajaxCreate' => [
|
||||||
'as' => 'visiosoft.module.profile::adress_ajax_create',
|
'as' => 'visiosoft.module.profile::adress_ajax_create',
|
||||||
'uses' => 'Visiosoft\ProfileModule\Http\Controller\MyProfileController@adressAjaxCreate'
|
'uses' => 'Visiosoft\ProfileModule\Http\Controller\MyProfileController@adressAjaxCreate'
|
||||||
@ -87,14 +82,6 @@ class ProfileModuleServiceProvider extends AddonServiceProvider
|
|||||||
'as' => 'visiosoft.module.profile::adress_ajax_detail',
|
'as' => 'visiosoft.module.profile::adress_ajax_detail',
|
||||||
'uses' => 'Visiosoft\ProfileModule\Http\Controller\MyProfileController@adressAjaxDetail'
|
'uses' => 'Visiosoft\ProfileModule\Http\Controller\MyProfileController@adressAjaxDetail'
|
||||||
],
|
],
|
||||||
'profile/adress/edit/{id}' => [
|
|
||||||
'as' => 'visiosoft.module.profile::address_edit',
|
|
||||||
'uses' => 'Visiosoft\ProfileModule\Http\Controller\MyProfileController@adressEdit'
|
|
||||||
],
|
|
||||||
'profile/adress/soft-del/{id}' => [
|
|
||||||
'as' => 'visiosoft.module.profile::address_soft_delete',
|
|
||||||
'uses' => 'Visiosoft\ProfileModule\Http\Controller\MyProfileController@adressSoftDelete'
|
|
||||||
],
|
|
||||||
|
|
||||||
/* Profile */
|
/* Profile */
|
||||||
'profile/edit' => 'Visiosoft\ProfileModule\Http\Controller\MyProfileController@edit',
|
'profile/edit' => 'Visiosoft\ProfileModule\Http\Controller\MyProfileController@edit',
|
||||||
@ -128,6 +115,26 @@ class ProfileModuleServiceProvider extends AddonServiceProvider
|
|||||||
|
|
||||||
'ajax/update-user-info' => 'Visiosoft\ProfileModule\Http\Controller\MyProfileController@updateAjaxProfile',
|
'ajax/update-user-info' => 'Visiosoft\ProfileModule\Http\Controller\MyProfileController@updateAjaxProfile',
|
||||||
|
|
||||||
|
|
||||||
|
//Address
|
||||||
|
'profile/address' => [
|
||||||
|
'as' => 'profile::address',
|
||||||
|
'uses' => 'Visiosoft\ProfileModule\Http\Controller\AddressController@index',
|
||||||
|
],
|
||||||
|
'profile/adress/create' => [
|
||||||
|
'as' => 'visiosoft.module.profile::adress_create',
|
||||||
|
'uses' => 'Visiosoft\ProfileModule\Http\Controller\AddressController@create'
|
||||||
|
],
|
||||||
|
'profile/adress/edit/{id}' => [
|
||||||
|
'as' => 'visiosoft.module.profile::address_edit',
|
||||||
|
'uses' => 'Visiosoft\ProfileModule\Http\Controller\AddressController@edit'
|
||||||
|
],
|
||||||
|
'profile/adress/delete/{id}' => [
|
||||||
|
'as' => 'visiosoft.module.profile::address_soft_delete',
|
||||||
|
'uses' => 'Visiosoft\ProfileModule\Http\Controller\AddressController@delete'
|
||||||
|
],
|
||||||
|
|
||||||
|
|
||||||
// Cache links
|
// Cache links
|
||||||
'ajax/get-user-info' => 'Visiosoft\ProfileModule\Http\Controller\CacheController@getUserInfo',
|
'ajax/get-user-info' => 'Visiosoft\ProfileModule\Http\Controller\CacheController@getUserInfo',
|
||||||
];
|
];
|
||||||
@ -189,6 +196,8 @@ class ProfileModuleServiceProvider extends AddonServiceProvider
|
|||||||
'userProfile' => UserFormBuilder::class,
|
'userProfile' => UserFormBuilder::class,
|
||||||
'profile' => ProfileFormBuilder::class,
|
'profile' => ProfileFormBuilder::class,
|
||||||
'signIn' => SignInFormBuilder::class,
|
'signIn' => SignInFormBuilder::class,
|
||||||
|
'address' => AdressFormBuilder::class,
|
||||||
|
'addressCompany' => AddressCompanyFormBuilder::class,
|
||||||
ProfileAdressEntryModel::class => AdressModel::class,
|
ProfileAdressEntryModel::class => AdressModel::class,
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user