This commit is contained in:
Meylis Gazakow 2022-02-21 16:28:28 +03:00
commit 8736b3df13
37 changed files with 642 additions and 100 deletions

View File

@ -140,6 +140,23 @@ return [
'new_message' => 'New message',
'payment_reviewed' => 'Payment has been reviewed',
'product_reviewed' => 'Post has been reviewed',
'api' => [
'sign_up_excp' => 'Registration error',
'bank_services_unavailable' => 'Bank services are unavailable.',
'online_payment_failed' => 'Online payment has been failed.',
'bank_payment_saved' => 'The bank transfer payment saved. Admin will consider it and approve later.',
'bank_payment_failed' => 'The bank transfer payment failed.',
// 'contact_message_sent' => 'Contact message has been sent',
'cannot_verify_invalid_email' => 'Cannot verify. Invalid email address.',
'verification_link_sent' => 'Verification link has been sent to your email. Log in to tmex.gov.tm before checking your email.',
'email_already_verified' => 'You have already verified your email address.',
'sms_sent' => 'SMS has been sent.',
'sms_not_sent_error' => 'SMS has not been sent. Error.',
'user_not_tm_resident' => 'This user is not a resident.',
'phone_already_verified' => 'You have already verified your phone number.',
'phone_verified_message' => 'Your phone number has been succesfully verified',
'phone_verification_code_invalid' => 'Invalid sms code',
],
/*
|--------------------------------------------------------------------------

View File

@ -140,6 +140,23 @@ return [
'new_message' => 'Новое сообщение',
'payment_reviewed' => 'Платеж рассмотрен',
'product_reviewed' => 'Объявление рассмотрено',
'api' => [
'sign_up_excp' => 'Ошибка при регистрации',
'bank_services_unavailable' => 'Службы банка недоступны.',
'online_payment_failed' => 'Онлайн оплата не прошла.',
'bank_payment_saved' => 'Оплата банковским переводом сохранена и позже будет проверена администратором.',
'bank_payment_failed' => 'Оплата банковским переводом не прошла.',
// 'contact_message_sent' => 'Письмо отправлено.',
'cannot_verify_invalid_email' => 'Верификация Email невозможна. Неверный Email',
'verification_link_sent' => 'Ссылка для подтверждения отправлена на ваш Email. Авторизуйтесь на tmex.gov.tm перед проверкой Email.',
'email_already_verified' => 'Вы уже подтвердили свой Email.',
'sms_sent' => 'СМС отправлен.',
'sms_not_sent_error' => 'СМС не отправлен. Ошибка.',
'user_not_tm_resident' => 'Пользователь не является резидентом.',
'phone_already_verified' => 'Номер телефона уже подтвержден.',
'phone_verified_message' => 'Ваш номер телефона подтвержден',
'phone_verification_code_invalid' => 'Неверный СМС код',
],
/*
|--------------------------------------------------------------------------

View File

@ -142,6 +142,23 @@ return [
'new_message' => 'Täze hat',
'payment_reviewed' => 'Töleg gözden geçirildi',
'product_reviewed' => 'Bildiriş gözden geçirildi',
'api' => [
'sign_up_excp' => 'Hasaba alyş ýalňyşy',
'bank_services_unavailable' => 'Bank hyzmatlary elýeterli däl.',
'online_payment_failed' => 'Onlaýn töleg geçmedi.',
'bank_payment_saved' => 'Bank üsti bilen töleg ýazyldy we soňra administrator tarapyndan gözden geçiriler.',
'bank_payment_failed' => 'Bank üsti bilen töleg geçmedi.',
// 'contact_message_sent' => 'Hat ugradyldy.',
'cannot_verify_invalid_email' => 'Tassyklama grçmedi. El. bukjaňyz nädogry.',
'verification_link_sent' => 'Tassyklama düwmesi El. bukjaňyza iberildi. El. bukjaňyzy barlamazdan öň tmex.gov.tm-da şahsy hasabyňyza giriň.',
'email_already_verified' => 'Siziň el. bukjaňyz eýýäm tassyklanan.',
'sms_sent' => 'SMS iberildi.',
'sms_not_sent_error' => 'SMS iberilmedi. Ýalňyş.',
'user_not_tm_resident' => 'Ulanyjy ýerli ýaşaýjy däl.',
'phone_already_verified' => 'Siziň telefon belgiňiz eýýäm tassyklanan.',
'phone_verified_message' => 'Siziň telefon belgiňiz tassyklandy',
'phone_verification_code_invalid' => 'Nädogry SMS kody',
],
/*
|--------------------------------------------------------------------------

View File

@ -34,16 +34,16 @@ class EmailVerificationController extends KabinetAPIController
} catch(Throwable $th) {
\Log::info($th);
return response()->json('Cannot verify. Invalid email address.', 400);
return response()->json(trans('validation.api.cannot_verify_invalid_email', [], $inputData['locale']), 400);
}
$this->user->email_activation_code = $code;
$this->user->save();
return response()->json('Verification link has been sent. Log in to tmex.gov.tm before checking your email.', 201);
return response()->json(trans('validation.api.verification_link_sent', [], $inputData['locale']), 201);
} else {
return response()->json('You have already verified your email address.', 200);
return response()->json(trans('validation.api.email_already_verified', [], $inputData['locale']), 200);
}
}
}

View File

@ -30,12 +30,24 @@ class SmsController extends KabinetAPIController
if($this->user->dial_code != '+993') {
return response()->json([
'dial_code' => $this->user->dial_code,
'message' => 'This user is not a resident of Turkmenistan.'
'result' => 1,
'message' => [
'ru' => trans('validation.api.user_not_tm_resident', [], 'ru'),
'en' => trans('validation.api.user_not_tm_resident', [], 'en'),
'tm' => trans('validation.api.user_not_tm_resident', [], 'tm'),
]
], 400);
}
if($this->user->phone_verified && $this->user->dial_code == '+993') {
return response()->json('User phone already verified', 200);
return response()->json([
'result' => 1,
'message' => [
'ru' => trans('validation.api.phone_already_verified', [], 'ru'),
'en' => trans('validation.api.phone_already_verified', [], 'en'),
'tm' => trans('validation.api.phone_already_verified', [], 'tm'),
]
], 200);
}
$code = random_int(1000, 9999);
@ -49,21 +61,33 @@ class SmsController extends KabinetAPIController
$this->user->save();
return response()->json([
'result' => $result,
'message' => 'Message has been succesfully sent'
'message' => [
'ru' => trans('validation.api.sms_sent', [], 'ru'),
'en' => trans('validation.api.sms_sent', [], 'en'),
'tm' => trans('validation.api.sms_sent', [], 'tm'),
]
], 201);
break;
case 1:
return response()->json([
'result' => $result,
'message' => 'Error'
'message' => [
'ru' => trans('validation.api.sms_not_sent_error', [], 'ru'),
'en' => trans('validation.api.sms_not_sent_error', [], 'en'),
'tm' => trans('validation.api.sms_not_sent_error', [], 'tm'),
]
], 500);
break;
default:
return response()->json([
'result' => $result,
'message' => 'Error'
'message' => [
'ru' => trans('validation.api.sms_not_sent_error', [], 'ru'),
'en' => trans('validation.api.sms_not_sent_error', [], 'en'),
'tm' => trans('validation.api.sms_not_sent_error', [], 'tm'),
]
], 500);
break;
}
@ -74,12 +98,24 @@ class SmsController extends KabinetAPIController
if($this->user->dial_code != '+993') {
return response()->json([
'dial_code' => $this->user->dial_code,
'message' => 'This user is not a resident of Turkmenistan.'
'status' => false,
'message' => [
'ru' => trans('validation.api.user_not_tm_resident', [], 'ru'),
'en' => trans('validation.api.user_not_tm_resident', [], 'en'),
'tm' => trans('validation.api.user_not_tm_resident', [], 'tm'),
]
], 400);
}
if($this->user->phone_verified && $this->user->dial_code == '+993') {
return response()->json('User phone already verified', 200);
return response()->json([
'status' => false,
'message' => [
'ru' => trans('validation.api.phone_already_verified', [], 'ru'),
'en' => trans('validation.api.phone_already_verified', [], 'en'),
'tm' => trans('validation.api.phone_already_verified', [], 'tm'),
]
], 200);
}
$validator = Validator::make($request->all(), [
@ -93,9 +129,23 @@ class SmsController extends KabinetAPIController
$this->user->phone_verified = true;
$this->user->phone_activation_code = null;
$this->user->save();
return response()->json('User phone has been succesfully verified', 201);
return response()->json([
'status' => true,
'message' => [
'ru' => trans('validation.api.phone_verified_message', [], 'ru'),
'en' => trans('validation.api.phone_verified_message', [], 'en'),
'tm' => trans('validation.api.phone_verified_message', [], 'tm'),
]
], 201);
} else {
return response()->json('Wrong sms code', 400);
return response()->json([
'status' => false,
'message' => [
'ru' => trans('validation.api.phone_verification_code_invalid', [], 'ru'),
'en' => trans('validation.api.phone_verification_code_invalid', [], 'en'),
'tm' => trans('validation.api.phone_verification_code_invalid', [], 'tm'),
]
], 400);
}
}
}

View File

@ -68,14 +68,24 @@ class TransactionsApiController extends KabinetAPIController
return response()->json(['formUrl' => $result['formUrl']], 200);
} else {
return response()->json('bank services are unavailable', 200);
return response()->json(['error' => [
'ru' => trans('validation.api.bank_services_unavailable', [], 'ru'),
'en' => trans('validation.api.bank_services_unavailable', [], 'en'),
'tm' => trans('validation.api.bank_services_unavailable', [], 'tm'),
]], 200);
}
} catch(\Throwable $th){
$payment->status = 'failed';
$payment->save();
return response()->json(['message' => $th->getMessage()], 500);
Log::info($th->getMessage());
return response()->json(['error' => [
'ru' => trans('validation.api.online_payment_failed', [], 'ru'),
'en' => trans('validation.api.online_payment_failed', [], 'en'),
'tm' => trans('validation.api.online_payment_failed', [], 'tm'),
]], 500);
}
}
elseif($payment->payment_type == 'bank'){
@ -84,9 +94,17 @@ class TransactionsApiController extends KabinetAPIController
if($payment->save()){
Event::fire('tps.payment.received',$payment);
return response()->json('The payment saved. Admin will consider it and approve later', 200);
return response()->json(['success' => [
'ru' => trans('validation.api.bank_payment_saved', [], 'ru'),
'en' => trans('validation.api.bank_payment_saved', [], 'en'),
'tm' => trans('validation.api.bank_payment_saved', [], 'tm'),
]], 200);
} else {
return response()->json('The payment saving failed.', 500);
return response()->json(['error' => [
'ru' => trans('validation.api.bank_payment_failed', [], 'ru'),
'en' => trans('validation.api.bank_payment_failed', [], 'en'),
'tm' => trans('validation.api.bank_payment_failed', [], 'tm'),
]], 500);
}
}

View File

@ -1 +1,5 @@
<p class="form_txt">{{ 'auth.password_reset_check'|_ }}</p>
<div class="pass_change">
<div class="pass_title">
{{ 'auth.password_reset_check'|_ }}
</div>
</div>

View File

@ -1 +1,14 @@
<p class="form_txt">{{ 'auth.password_reset_complete'|_ }}</p>
<div class="pass_change">
<div class="pass_title">
{{ 'auth.password_reset_complete'|_ }}
</div>
<form
class="password_form"
action="/"
method="get">
<div class="btn_bg">
<button type="submit" class="pass_btn">OK</button>
</div>
</form>
</div>

View File

@ -1,7 +1,12 @@
<div id="partialUserResetForm">
{% if __SELF__.code == null %}
{% partial __SELF__ ~ '::restore' %}
{% else %}
{% partial __SELF__ ~ '::reset' %}
{% endif %}
</div>
<section class="password active">
<div class="auto_container">
<div class="pass_wrap" id="partialUserResetForm">
{% if __SELF__.code == null %}
{% partial __SELF__ ~ '::restore' %}
{% else %}
{% partial __SELF__ ~ '::reset' %}
{% endif %}
</div>
</div>
</section>

View File

@ -1,22 +1,22 @@
<p class="form_txt">
{{ 'auth.password_reset_check_mail_message'|_ }}
</p>
<form
class="post_form"
data-request="{{ __SELF__ }}::onResetPassword"
data-request-update="'{{ __SELF__ }}::complete': '#partialUserResetForm'">
<!-- <div class="post_input"> -->
<!-- <label for="resetCode">{{ 'auth.password_reset_code'|_ }}</label> -->
<input name="code" type="hidden" class="form-control" id="resetCode" placeholder="{{ 'auth.password_reset_code'|_ }}" value="{{ __SELF__.code }}" required>
<!-- </div> -->
<div class="post_input">
<label for="resetPassword">{{ 'account.new_password'|_ }}</label>
<input name="password" type="password" class="form-control" id="resetPassword" placeholder="{{ 'account.new_password'|_ }}" required>
<div class="pass_change">
<div class="pass_title">
{{ 'account.new_password'|_ }}
</div>
<form
class="password_form"
data-request="{{ __SELF__ }}::onResetPassword"
data-request-update="'{{ __SELF__ }}::complete': '#partialUserResetForm'">
<div class="pass_input">
<input name="code" type="hidden" class="form-control" id="resetCode" placeholder="{{ 'auth.password_reset_code'|_ }}" value="{{ __SELF__.code }}" required>
</div>
<div class="btn_bg">
<button type="submit" class="post_btn" data-attach-loading>{{ 'auth.password_reset_btn'|_ }}</button>
</div>
</form>
<div class="pass_input">
<input name="password" type="password" class="form-control" id="resetPassword" placeholder="{{ 'account.new_password'|_ }}" required>
</div>
<div class="btn_bg">
<button type="submit" class="pass_btn" data-attach-loading>{{ 'auth.password_reset_btn'|_ }}</button>
</div>
</form>
</div>

View File

@ -1,17 +1,17 @@
<p class="form_txt">
<strong>{{ 'auth.password_reset'|_ }}</strong> {{ 'auth.password_reset_enter_email'|_ }}
</p>
<form
class="post_form"
data-request="{{ __SELF__ }}::onRestorePassword"
data-request-update="'{{ __SELF__ }}::check': '#partialUserResetForm'">
<div class="post_input">
<label for="userRestoreEmail">{{'auth.email'|_}}</label>
<input name="email" type="email" required class="form-control" id="userRestoreEmail" placeholder="{{'auth.email'|_}}">
<div class="pass_mail">
<div class="pass_title">
{{ 'auth.password_reset'|_ }}
</div>
<div class="btn_bg">
<button type="submit" class="post_btn" data-attach-loading>{{ 'auth.password_restore_btn'|_ }}</button>
</div>
</form>
<form
class="password_form"
data-request="{{ __SELF__ }}::onRestorePassword"
data-request-update="'{{ __SELF__ }}::check': '#partialUserResetForm'">
<div class="pass_input">
<input name="email" type="email" required class="form-control" id="userRestoreEmail" placeholder="{{'auth.email'|_}}">
</div>
<div class="btn_bg">
<button type="submit" class="pass_btn" data-attach-loading>{{ 'auth.password_restore_btn'|_ }}</button>
</div>
</form>
</div>

View File

@ -201,7 +201,7 @@ return [
'email_verification_check_message' => 'El. bukjaňyzy barlamygyňyzy haýyş edýäris',
'email_verified_message' => 'Siziň el. bukjaňyz tassyklandy',
'email_verification_link_invalid' => 'Tassyklama kody nädogry',
'email_already_verified' => 'Siz el. bukjaňyz eýýäm tassyklanan',
'email_already_verified' => 'Siz el. bukjaňyz eýýäm tassyklanan',
'phone_verified_message' => 'Siziň el telefonyňyz tassyklandy',
'phone_verification_code_invalid' => 'Nädogry SMS kody',
],

View File

@ -36,6 +36,10 @@ class PaymentApi extends ComponentBase
$payment_id = $this->property('payment_id');
$payment = Payment::find($payment_id);
if(is_null($payment)) {
return Redirect::to('/404');
}
if($payment && \Input::get('status') === 'success' && \Input::get('orderId') === $payment->order_id) {
$responce = json_decode(CardApi::getStatus($payment->order_id), true);

View File

@ -109,11 +109,16 @@ Route::group(['prefix' => 'api'], function() {
$credentials = Input::only($login_fields);
$rules = [
'email' => 'required|between:6,191|email',
'username' => 'required|digits_between:8,20|numeric',
'email' => 'required|between:6,191|email|unique:users',
'username' => 'required|numeric|unique:users',
'dial_code' => 'required',
];
// to check username
$credentials = array_merge($credentials,[
'username' => $credentials['dial_code'] . $credentials['username']
]);
$validation = \Validator::make($credentials, $rules,(new UserModel)->messages);
if ($validation->fails()) {
return Response::json(['error' => $validation->errors()], 400);
@ -130,9 +135,7 @@ Route::group(['prefix' => 'api'], function() {
if (!array_key_exists('password_confirmation', $credentials) && array_key_exists('password', $credentials)) {
$credentials['password_confirmation'] = $credentials['password'];
}
$userModel = Auth::register(array_merge($credentials,[
'username' => $credentials['dial_code'] . $credentials['username']
]), $automaticActivation);
$userModel = Auth::register($credentials, $automaticActivation);
if ($userModel->methodExists('getAuthApiSignupAttributes')) {
$user = $userModel->getAuthApiSignupAttributes();
@ -151,7 +154,14 @@ Route::group(['prefix' => 'api'], function() {
];
}
} catch (Exception $e) {
return Response::json(['error' => $e->getMessage()], 401);
\Log::info($e->getMessage());
return Response::json(['error' => [
'ru' => trans('validation.api.sign_up_excp', [], 'ru'),
'en' => trans('validation.api.sign_up_excp', [], 'en'),
'tm' => trans('validation.api.sign_up_excp', [], 'tm'),
]], 401);
}
$token = JWTAuth::fromUser($userModel);

View File

@ -156,6 +156,51 @@ li {
}
/* Accaunt ============================================ */
.acc_lang {
position: fixed;
top: 50px;
right: 80px;
background: #fff;
border-radius: 10px;
z-index: 130;
}
.acc_lang .auto_container {
padding: 0;
}
.acc_lang .inner {
display: flex;
align-items: center;
padding: 10px 15px;
}
.acc_lang-item {
font-size: 14px;
font-weight: 600;
line-height: 1.5;
text-transform: uppercase;
display: block;
margin-right: 20px;
transition: .2s linear;
-ms-transition: .2s linear;
-webkit-transition: .2s linear;
}
.acc_lang-item:hover {
color: var(--blue);
}
.acc_lang-item:last-child {
margin-right: 0;
}
/* Accaunt end ======================================== */
/* Home page */
/* Register ============================================ */
.register {
@ -186,12 +231,26 @@ li {
position: absolute;
top: 0;
left: 0;
background: rgba(0, 49, 151, .5);
/* background: rgba(0, 49, 151, .5); */
background: url("../images/IMG-2.png") no-repeat center;
background-size: cover;
width: 100%;
height: 100%;
z-index: -2;
}
.register::before {
content: '';
position: absolute;
top: 0;
left: 0;
background: rgba(0, 49, 151, .3);
width: 100%;
height: 100%;
z-index: -1;
}
.register_wrap {
/* position: absolute;
top: 50%;
@ -769,6 +828,30 @@ li {
display: none;
}
.password::after {
content: '';
position: absolute;
top: 0;
left: 0;
/* background: rgba(0, 49, 151, .5); */
background: url("../images/IMG-2.png") no-repeat center;
background-size: cover;
width: 100%;
height: 100%;
z-index: -2;
}
.password::before {
content: '';
position: absolute;
top: 0;
left: 0;
background: rgba(0, 49, 151, .3);
width: 100%;
height: 100%;
z-index: -1;
}
.password.active {
display: block;
}
@ -808,7 +891,7 @@ li {
background: #fff;
padding: 80px 60px;
display: none;
/* display: none; */
}
.pass_title {
@ -855,6 +938,11 @@ li {
padding: 20px 0;
}
.password_form .btn_bg {
margin: 25px 0;
width: 100%;
}
/* Change Password end ============================================= */
@ -6780,11 +6868,6 @@ input::-webkit-calendar-picker-indicator {
text-align: center;
}
.form_txt {
font-size: 16px;
margin-bottom: 15px;
}
.contact_input {
margin: 10px 0;
}
@ -6983,4 +7066,4 @@ input::-webkit-calendar-picker-indicator {
font-size: 12px;
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 MiB

View File

@ -0,0 +1,102 @@
// timing ====================
function sleep(time) {
return new Promise((resolve) => setTimeout(resolve, time));
}
// timing ====================
let register = document.querySelector('.register');
let register_btn = document.querySelectorAll('.register_btn');
let log_in = document.querySelectorAll('.log_in');
let btn_1 = document.querySelector('#btn-1');
let btn_2 = document.querySelector('#btn-2');
let register_content = document.querySelector('.register_content');
let register_content_2 = document.querySelector('.register_content_2');
let phone_box = document.querySelectorAll('.phone_box');
let iti__country = document.querySelectorAll('.iti__country');
let iti__country_list = document.querySelectorAll('.iti__country-list');
if (register_btn != undefined) {
register_btn.forEach(x => {
x.addEventListener('click', function () {
sleep(2).then(() => {
register.classList.toggle('active');
btn_2.classList.add('active');
btn_1.classList.remove('active');
selectElement('body').classList.add('active');
register_content.classList.add('active');
register_content_2.classList.remove('active');
});
});
})
}
if (log_in != undefined) {
log_in.forEach(x => {
x.addEventListener('click', function () {
sleep(2).then(() => {
register.classList.toggle('active');
btn_1.classList.add('active');
btn_2.classList.remove('active');
selectElement('body').classList.add('active');
register_content.classList.remove('active');
register_content_2.classList.add('active');
});
});
})
}
if (btn_1 != undefined) {
btn_1.addEventListener('click', function () {
sleep(2).then(() => {
btn_1.classList.add('active');
btn_2.classList.remove('active');
register_content.classList.remove('active');
register_content_2.classList.add('active');
});
});
}
if (btn_2 != undefined) {
btn_2.addEventListener('click', function () {
sleep(2).then(() => {
btn_2.classList.add('active');
btn_1.classList.remove('active');
register_content.classList.add('active');
register_content_2.classList.remove('active');
});
});
}
if (phone_box != undefined) {
phone_box.forEach(x => {
x.addEventListener('click', function () {
sleep(2).then(() => {
iti__country_list.forEach(e => {
e.classList.toggle('active');
})
});
});
})
}
if (iti__country != undefined) {
iti__country.forEach(x => {
x.addEventListener('click', function () {
sleep(2).then(() => {
iti__country_list.forEach(e => {
e.classList.remove('active');
})
});
});
})
}

View File

@ -0,0 +1,100 @@
[localePicker]
forceUrl = 1
[account]
redirect = "index"
paramCode = "code"
forceSecure = 0
requirePassword = 0
view = "signin"
[session]
security = "all"
==
<?php
function onStart(){
$this['email'] = TPS\Birzha\Models\Settings::getValue('email');
$this['short_name'] = TPS\Birzha\Models\Settings::getValue('short_name');
}
?>
==
<!DOCTYPE html>
<html lang="{{activeLocale}}">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;700&display=swap" rel="stylesheet">
<!-- <link rel="icon" type="image/svg" href="{{ 'assets/images/svg/fav_icon.svg'|theme }}"> -->
<link rel="icon" href="{{'assets/images/svg/fav_icon.svg'|theme}}" sizes="32x32">
<link rel="icon" href="{{'assets/images/svg/fav_icon.svg'|theme}}" sizes="192x192">
<link rel="apple-touch-icon-precomposed" href="{{'assets/images/svg/fav_icon.svg'|theme}}">
<meta name="msapplication-TileImage" content="{{'assets/images/svg/fav_icon.svg'|theme}}">
{% styles %}
<link rel="stylesheet" href="{{'assets/css/main.css'|theme}}">
<link rel="stylesheet" href="{{'assets/css/phone_box.css'|theme}}">
<!-- <link href="{{ ['assets/css/main.css']|theme }}" rel="stylesheet">-->
<title>{{this.page.title}}</title>
</head>
<body>
{% flash success %}
<p data-control="flash-message" data-interval="5" class="success">
{{ message }}
</p>
{% endflash %}
{% flash error %}
<p data-control="flash-message" data-interval="5" class="error">
{{ message }}
</p>
{% endflash %}
<div class="acc_lang">
<div class="auto_container">
<div class="inner">
{% for code, name in locales %}
<a href="#" class="acc_lang-item" data-request="onSwitchLocale" data-request-data="locale: '{{code}}'">
{{ code }}
</a>
{% endfor %}
</div>
</div>
</div>
{% page %}
<script src="{{'assets/js/jquery.js'|theme}}"></script>
{% framework extras %}
{% scripts %}
<script src="{{'assets/js/accaunt.js'|theme}}"></script>
<script>
$('.iti__country').click(function (e) {
let flagClass = $(this).find('.iti__flag').attr("class").split(/\s+/)[1]
let oldClasses = $('.phone_box-flag').attr("class").split(/\s+/);
delete(oldClasses[2])
$('.phone_box-flag').attr('class', oldClasses.join(' '))
$('.phone_box-flag').addClass(flagClass)
// todo code
let code = $(this).find('.iti__dial-code').text()
$('.phone_box-code').html(code)
$('input[name="dial_code"]').val(code)
})
</script>
</body>
</html>

View File

@ -9,11 +9,11 @@ localeTitle[ru] = "bank_result"
localeUrl[en] = "/bank_result/:payment_id"
localeUrl[ru] = "/bank_result/:payment_id"
[paymentapi]
payment_id = "{{ :payment_id }}"
[session]
security = "user"
redirect = "index"
redirect = "vojti"
[paymentapi]
payment_id = "{{ :payment_id }}"
==
{% component 'paymentapi' %}

View File

@ -9,6 +9,10 @@ localeTitle[ru] = "Категория"
localeUrl[en] = "/category/:slug"
localeUrl[ru] = "/category/:slug"
[session]
security = "user"
redirect = "vojti"
[categories]
active = 1
slug = "{{ :slug }}"

View File

@ -9,6 +9,10 @@ localeTitle[ru] = "Contact us"
localeUrl[en] = "/contact-us"
localeUrl[ru] = "/contact-us"
[session]
security = "user"
redirect = "vojti"
[TPS\Birzha\Components\ContactForm contactForm]
==
{% component 'contactForm' %}

View File

@ -10,6 +10,10 @@ localeTitle[ru] = "Главная страница"
localeUrl[en] = "/"
localeUrl[ru] = "/"
[session]
security = "user"
redirect = "vojti"
[offers]
perPage = 0
sortOrder = "desc"

View File

@ -3,14 +3,14 @@ url = "/add-offer"
layout = "default"
is_hidden = 0
[viewBag]
localeTitle[ru] = "Добавить объявление"
[offerform]
[session]
security = "user"
redirect = "index"
[viewBag]
localeTitle[ru] = "Добавить объявление"
redirect = "vojti"
==
<!-- here is component offerForm -->
{% component 'offerform' %}

View File

@ -13,6 +13,6 @@ localeUrl[ru] = "/balance"
[session]
security = "user"
redirect = "index"
redirect = "vojti"
==
{% component 'balance' %}

View File

@ -8,11 +8,13 @@ localeUrl[en] = "/edit-post/:id"
localeUrl[ru] = "/edit-post/:id"
localeTitle[ru] = "Изменить объявление"
[session]
security = "user"
redirect = "vojti"
[offerform]
productId = "{{ :id }}"
[session]
security = "user"
redirect = "index"
==
{% component 'offerform' %}

View File

@ -7,10 +7,10 @@ is_hidden = 0
localeTitle[ru] = "Сообщения"
localeUrl[ru] = "/messages"
[messages]
[session]
security = "user"
redirect = "index"
redirect = "vojti"
[messages]
==
{% component 'messages' %}

View File

@ -9,11 +9,12 @@ localeTitle[ru] = "My posts"
localeUrl[en] = "/my-posts"
localeUrl[ru] = "/my-posts"
[session]
security = "user"
redirect = "vojti"
[myOffers]
perPage = 0
[session]
security = "user"
redirect = "index"
==
{% component 'myOffers' %}

View File

@ -11,7 +11,7 @@ localeTitle[ru] = "Профиль"
[session]
security = "user"
redirect = "index"
redirect = "vojti"
==
<!-- Add post ============================================================= -->
<section class="post">

View File

@ -2,14 +2,19 @@ title = "Balans taryhy"
url = "/balans-taryhy"
layout = "default"
is_hidden = 0
[session]
security = "user"
redirect = "vojti"
==
<?php
function onStart() {
$this['transactions'] = \Auth::user()->transactions()->orderBy('id', 'desc')->paginate(5);
if(\Auth::user()) {
$this['transactions'] = \Auth::user()->transactions()->orderBy('id', 'desc')->paginate(5);
}
}
?>
==
<section class="post">
<div class="auto_container">
<div class="post_wrap">

View File

@ -5,7 +5,7 @@ is_hidden = 0
[session]
security = "user"
redirect = "index"
redirect = "vojti"
[emailverify]
code = "{{ :code }}"

View File

@ -9,6 +9,10 @@ localeTitle[ru] = "Категории"
localeUrl[en] = "/categories"
localeUrl[ru] = "/kategorii"
[session]
security = "user"
redirect = "vojti"
[categories]
active = 1
slug = "{{ :slug }}"

View File

@ -9,6 +9,10 @@ localeTitle[ru] = "Объявление"
localeUrl[en] = "/offer/:slug/:id"
localeUrl[ru] = "/offer/:slug/:id"
[session]
security = "user"
redirect = "vojti"
[singleoffer]
productSlug = "{{ :slug }}"
offerId = "{{ :id }}"

View File

@ -8,8 +8,11 @@ localeTitle[en] = "Privacy policy"
localeTitle[ru] = "Политика конфиденциальности"
localeUrl[en] = "/privacy-policy"
localeUrl[ru] = "/politika-konfidencialnosti"
==
[session]
security = "user"
redirect = "vojti"
==
<section class="thanks">
<div class="auto_container">
<div class="thanks_wrap">

View File

@ -1,6 +1,6 @@
title = "Açar çalyşmak"
url = "/password-reset"
layout = "default"
layout = "account"
is_hidden = 0
[viewBag]

View File

@ -7,6 +7,10 @@ is_hidden = 0
localeTitle[en] = "Search results"
localeTitle[ru] = "Результаты поиска"
[session]
security = "user"
redirect = "vojti"
[searchResults]
resultsPerPage = 3
showProviderBadge = 1

View File

@ -8,6 +8,10 @@ localeTitle[en] = "Trade terms"
localeTitle[ru] = "Условия торгов"
localeUrl[en] = "/trade-terms"
localeUrl[ru] = "/uslovia-torgov"
[session]
security = "user"
redirect = "vojti"
==
<?php
function onStart() {

View File

@ -0,0 +1,63 @@
title = "Girmek"
url = "/girmek"
layout = "account"
is_hidden = 0
[viewBag]
localeTitle[en] = "Auth"
localeTitle[ru] = "Войти"
localeUrl[en] = "/auth"
localeUrl[ru] = "/vojti"
==
<!-- Register ======================================================== -->
<section class="register active">
<div class="auto_container">
<div class="register_wrap">
<div class="register_body">
<div class="register_buttons">
<div class="user_btn" id="btn-1">
<img src="{{ 'assets/images/svg/log-in-blue.svg'|theme }}" alt="">
<span><nobr>{{ 'topnav.login'|_ }}</nobr></span>
</div>
{% if canRegister %}
<div class="user_btn active" id="btn-2">
<img src="{{ 'assets/images/svg/user-plus-blue.svg'|theme }}" alt="">
<span><nobr>{{ 'topnav.reg'|_ }}</nobr></span>
</div>
{% endif %}
</div>
<div class="register_banner">
<div class="register_logo">
<img src="{{ 'assets/images/register_logo.png'|theme }}" alt="">
</div>
<div class="register_title">
{{ short_name }}
</div>
<div class="register_text">
{{ 'site.name'|_ }}
</div>
<div class="register_foot">
<div class="register_mail">
<img src="{{ 'assets/images/svg/login_mail.svg'|theme }}" alt="">
</div>
<a href="#" class="register_link">
{{email|default('info@exchange.gov.tm')}}
</a>
</div>
</div>
{% if canRegister %}
<div class="register_content active">
{% component 'account' view = 'signup'%}
</div>
{% endif %}
<div class="register_content_2">
{% component 'account' view = 'signin'%}
</div>
</div>
</div>
</div>
</section>
<!-- Register end ==================================================== -->