Form validation

This commit is contained in:
vedatakd 2020-01-10 10:57:08 +03:00
parent 468aec8ca5
commit 9ddb6c7510
21 changed files with 548 additions and 599 deletions

View File

@ -1,14 +0,0 @@
<?php
return [
'profile' => [
'read',
'write',
'delete',
],
'adress' => [
'read',
'write',
'delete',
],
];

View File

@ -0,0 +1,16 @@
<?php
return [
'monitoring' => [
'stacked' => false,
'tabs' => [
'general_setting' => [
'title' => 'visiosoft.module.profile::section.general_setting',
'fields' => [
'show_my_ads', 'upload_avatar'
],
],
],
],
];

View File

@ -0,0 +1,16 @@
<?php
return [
'upload_avatar' => [
'type' => 'anomaly.field_type.boolean',
'config' => [
'default_value' => 1
],
],
'show_my_ads' => [
'type' => 'anomaly.field_type.boolean',
'config' => [
'default_value' => 1
],
],
];

View File

@ -4,4 +4,6 @@ return [
'new_profile' => 'New Profile', 'new_profile' => 'New Profile',
'new_adress' => 'New Adress', 'new_adress' => 'New Adress',
'show' => 'Show Adress', 'show' => 'Show Adress',
'update_password' => 'Update Password',
'update_profile' => 'Update Profile',
]; ];

View File

@ -7,4 +7,5 @@ return [
'adress' => [ 'adress' => [
'title' => 'Adress', 'title' => 'Adress',
], ],
'general_setting' => 'General Settings',
]; ];

View File

@ -0,0 +1,10 @@
<?php
return [
'show_my_ads' => [
'name' => 'Show My Ads Tab',
],
'upload_avatar' => [
'name' => 'Avatar Upload',
],
];

View File

@ -1,7 +1,7 @@
<?php <?php
return[ return [
"title" =>"Profil", 'title' => 'Profil',
"name" =>"Profil Modülü", 'name' => 'Profil Modülü',
"description" =>"" 'description' => 'Profil Modülü'
]; ];

View File

@ -1,7 +1,7 @@
<?php <?php
return[ return [
"new_profile" =>"Yeni profil", 'new_profile' => 'Yeni Profil',
"new_adress" =>"Yeni Adres", 'new_adress' => 'Yeni Adres',
"show" =>"Adresi Göster" 'show' => 'Göster',
]; ];

View File

@ -1,533 +1,402 @@
<?php <?php
return[ return [
"file" => [ 'file' => [
"name" =>"Fotoğraflar", 'name' => 'Fotoğraflar'
], ],
"first_name" => [ 'first_name' => [
"name" =>"İsim", 'name' => 'İsim'
], ],
"last_name" => [ 'last_name' => [
"name" =>"Soyadı", 'name' => 'Soyisim'
], ],
"username" => [ 'username' => [
"name" =>"Kullanıcı adı", 'name' => 'Kullanıcı Adı'
], ],
"display_name" => [ 'display_name' => [
"name" =>"Ekran adı", 'name' => 'Görüntüleme İsmi'
], ],
"email" => [ 'email' => [
"name" =>"E-posta adresi", 'name' => 'Email Adresi'
], ],
"sitename" => [ 'sitename' => [
"name" =>"site adı", 'name' => 'siteadı'
], ],
"activated" => [ 'activated' => [
"name" =>"Kullanıcı aktif", 'name' => 'Aktif Kullanıcı'
], ],
"enabled" => [ 'enabled' => [
"name" =>"Kullanıcı Etkinleştir", 'name' => 'Kullanıcı Etkinleştir'
], ],
"country" => [ 'country' => [
"name" =>"ülke", 'name' => 'Ülke'
], ],
"city" => [ 'city' => [
"name" =>"Kent", 'name' => 'İl'
], ],
"district" => [ 'district' => [
"name" =>"İlçe", 'name' => 'İlçe'
], ],
"neighborhood" => [ 'neighborhood' => [
"name" =>"Komşuluk", 'name' => 'Mahalle'
], ],
"village" => [ 'village' => [
"name" =>"köy", 'name' => 'Köy'
], ],
"gsm_phone" => [ 'gsm_phone' => [
"name" =>"GSM Telefon Numarası", 'name' => 'GSM Numarası'
], ],
"land_phone" => [ 'land_phone' => [
"name" =>"Arsa Telefon Numarası", 'name' => 'Sabit Telefon'
], ],
"office_phone" => [ 'office_phone' => [
"name" =>"Ofis Telefon Numarası", 'name' => 'Ofis Telefonu'
], ],
"register_type" => [ 'register_type' => [
"name" =>"Kayıt türü", 'name' => 'Üyelik Tipi'
], ],
"identification_number" => [ 'identification_number' => [
"name" =>"Kimlik Numarası", 'name' => 'Kimlik Numarası'
], ],
"adress_name" => [ 'adress_name' => [
"name" =>"Adres İsmi", 'name' => 'Adres Ado'
], ],
"adress_first_name" => [ 'adress_first_name' => [
"name" =>"İsim", 'name' => 'İsim'
], ],
"adress_last_name" => [ 'adress_last_name' => [
"name" =>"Soyadı", 'name' => 'Soyisim'
], ],
"actions" => [ 'actions' => [
"name" =>"Eylemler", 'name' => 'İşlemler'
], ],
"adress_content" => [ 'adress_content' => [
"name" =>"Adres İçeriği", 'name' => 'Adres Detay'
], ],
"adress_post_code" => [ 'adress_post_code' => [
"name" =>"Posta Kodu", 'name' => 'Posta Kodu'
], ],
"adress_gsm_phone" => [ 'adress_gsm_phone' => [
"name" =>"GSM Telefonu", 'name' => 'Gsm Numarası'
], ],
"adress_land_phone" => [ 'adress_land_phone' => [
"name" =>"Sabit telefon", 'name' => 'Sabit Telefon'
], ],
"adress_country" => [ 'adress_country' => [
"name" =>"ülke", 'name' => 'Ülke'
], ],
"adress_city" => [ 'adress_city' => [
"name" =>"Kent", 'name' => 'İl'
], ],
"adress_district" => [ 'adress_district' => [
"name" =>"İlçe", 'name' => 'İlçe'
], ],
"adress_neighborhood" => [ 'adress_neighborhood' => [
"name" =>"Komşuluk", 'name' => 'Mahalle'
], ],
"adress_village" => [ 'adress_village' => [
"name" =>"köy", 'name' => 'Köy'
], ],
"messages" => [ 'messages' => [
"name" =>"Mesajlar", 'name' => 'Mesajlar'
], ],
"user_no" => [ 'user_no' => [
"name" =>"kullanıcı", 'name' => 'Kullanıcı'
], ],
"menu_profile" => [
"name" =>"Profil",
],
"menu_balance" => [
"name" =>"Denge",
],
"create" => [
"name" =>"yaratmak",
],
"edit" => [
"name" =>"Düzenle",
],
"list" => [
"name" =>"Liste",
/*Menu Button*/
'profile' => [
'name' => 'Profil'
], ],
"menu_address" => [ 'menu_balance' => [
"name" =>"Adres", 'name' => 'Bakiye'
], ],
"menu_orders" => [ 'create' => [
"name" =>"Emirler", 'name' => 'Oluştur'
], ],
"menu_favorites" => [ 'edit' => [
"name" =>"Favoriler", 'name' => 'Düzenle'
], ],
"menu_archived_ads" => [ 'list' => [
"name" =>"Arşivlenmiş ilanlar", 'name' => 'Listele'
], ],
"menu_pending_ads" => [ 'menu_address' => [
"name" =>"Onay bekleyen", 'name' => 'Adres'
], ],
"menu_delete_account" => [ 'menu_orders' => [
"name" =>"Hesabı kapat", 'name' => 'Siparişler'
], ],
"menu_my_ads" => [ 'menu_favorites' => [
"name" =>"İlanlarım", 'name' => 'Favoriler'
], ],
"menu_fav_ads" => [ 'menu_archived_ads' => [
"name" =>"Favori İlanlar", 'name' => 'Arşivlenen İlanlar'
], ],
"menu_hello_msg" => [ 'menu_pending_ads' => [
"name" =>"Merhaba", 'name' => 'Onay Bekleyenler'
], ],
"menu_last_msg" => [ 'menu_delete_account' => [
"name" =>"En son giriş yaptınız", 'name' => 'Hesabı Kapat'
], ],
"menu_packages" => [ 'menu_my_ads' => [
"name" =>"Benim paketleri", 'name' => 'İlanlarım'
], ],
"menu_adv_packages" => [ 'menu_fav_ads' => [
"name" =>"İlan Paketleri", 'name' => 'Favori İlanlarım'
], ],
"menu_time_packages" => [ 'menu_hello_msg' => [
"name" =>"Zaman Paketleri", 'name' => 'Merhaba'
], ],
"profile_details" => [ 'menu_last_msg' => [
"name" =>"profil detayları", 'name' => 'Son giriş zamanı'
], ],
"profile_photo" => [ 'menu_packages' => [
"name" =>"Profil resmi", 'name' => 'Paketlerim'
], ],
"adv_listing_banner" => [ 'menu_adv_packages' => [
"name" =>"İlan Listeleme Sayfa Afişi", 'name' => 'İlan Paketleri'
], ],
"approve" => [ 'menu_time_packages' => [
"name" =>"Onayla", 'name' => 'İlan Süre Paketleri'
], ],
"approved" => [ 'profile_details' => [
"name" =>"onaylı", 'name' => 'Profil Detayları'
], ],
"pending" => [ 'profile_photo' => [
"name" =>"kadar", 'name' => 'Profil Fotoğrafı'
], ],
"passive" => [ 'adv_listing_banner' => [
"name" =>"Pasif", 'name' => 'Listeleme Arkaplanı'
], ],
"pending_admin" => [ 'approve' => [
"name" =>"kadar", 'name' => 'Onayla'
], ],
"menu_messages" => [ 'approved' => [
"name" =>"Mesajlar", 'name' => 'Onaylandı'
], ],
"menu_my_purchase" => [ 'pending' => [
"name" =>"Satın Alma İşlemim", 'name' => 'Onay Sürecinde'
], ],
"menu_my_sales" => [ 'passive' => [
"name" =>"Satışlarım", 'name' => 'Devre Dışı'
], ],
"right_secure_trading_subject" => [ 'pending_admin' => [
"name" =>"Güvenli Ticaret", 'name' => 'Admin Onay Sürecinde'
], ],
"right_secure_trading_msg" => [ 'menu_messages' => [
"name" =>"Lorem ipsum dolor amet sitet, 'name' => 'Mesajlar'
başkası adipisicing elit",
], ],
"right_support_subject" => [ 'menu_my_purchase' => [
"name" =>"24/7 Destek", 'name' => 'Aldıklarım'
], ],
"right_support_msg" => [ 'menu_my_sales' => [
"name" =>"Lorem ipsum dolor amet sitet, 'name' => 'Satışlarım'
başkası adipisicing elit",
], ],
"right_easy_trading_subject" => [
"name" =>"Kolay Ticaret",
'disable_account' => [
'name' => 'Hesabı Dondur'
], ],
"right_easy_trading_msg" => [ 'disable_account_msg' => [
"name" =>"Lorem ipsum dolor amet sitet, 'name' => 'Hesabınız devre dışı bırakılacak.Bu işlem geri alınamaz'
başkası adipisicing elit",
], ],
"right_need_help_subject" => [
"name" =>"Yardıma mı ihtiyacınız var?",
], 'message_title' => 'Mesaj Başlığı',
"right_need_help_msg" => [ 'owner_name' => 'Mesaj',
"name" =>"Bir çağrı yap",
'favorites' => "Favoriler",
'fav_advs' => 'Favori İlanlar',
'fav_sellers' => "Favori Satıcılar",
'fav_searches' => "Favori Aramalar",
'posted_on' => "Yayınlayan",
'message_details' => "Mesaj Detayı",
'adv_no' => 'İlan Numarası',
'bill_address' => [
'name' => 'Fatura Adresi',
], ],
"disable_account" => [ 'delivery_address' => [
"name" =>"Hesabı devre dışı bırak", 'name' => 'Teslimat Adresi',
], ],
"disable_account_msg" => [ 'order_total' => [
"name" =>"Hesabınız devre dışı bırakılacak. Bu işlem geri alınamaz", 'name' => 'Toplam',
], ],
"message_title" =>"Mesaj Başlığı", 'order_date' => [
"owner_name" =>"Mesaj", 'name' => 'Sipariş Tarihi',
"favorites" =>"Favoriler",
"fav_advs" =>"Favori İlanlar",
"fav_sellers" =>"Fav Satıcıları",
"fav_searches" =>"Fav Aramalar",
"posted_on" =>"Yayınlanan",
"message_details" =>"Mesaj Detayları",
"adv_no" =>"İlan No",
"bill_address" => [
"name" =>"Fatura adresi",
], ],
"delivery_address" => [ 'order_no' => [
"name" =>"Teslim adresi", 'name' => 'Sipariş Numarası',
], ],
"order_total" => [ 'order_detail' => [
"name" =>"Genel Toplam", 'name' => 'Detaylar',
], ],
"order_date" => [ /*Detail Page Order*/
"name" =>"Sipariş tarihi", 'detail' => [
'name' => 'Detaylar',
], ],
"order_no" => [ 'back' => [
"name" =>"Sipariş Kimliği", 'name' => 'Geri',
], ],
"order_detail" => [ 'image' => [
"name" =>"Detayları göster", 'name' => 'Resim',
], ],
"detail" => [ 'subject' => [
"name" =>"detay", 'name' => 'Başlık',
], ],
"back" => [ 'price' => [
"name" =>"Geri", 'name' => 'Fiyat',
], ],
"image" => [ 'piece' => [
"name" =>"görüntü", 'name' => 'Adet',
], ],
"subject" => [ 'commission' => [
"name" =>"konu", 'name' => 'Komisyon',
], ],
"price" => [ 'total' => [
"name" =>"Fiyat", 'name' => 'Toplam',
], ],
"piece" => [ 'sub_total' => [
"name" =>"Parça", 'name' => 'Ara Toplam',
], ],
"commission" => [ 'sale' => [
"name" =>"komisyon", 'name' => 'İndirim',
], ],
"total" => [ 'awaiting_tracking_number' => [
"name" =>"Genel Toplam", 'name' => 'Takip Numarası Bekliyor',
], ],
"sub_total" => [ 'awaiting_payment_approval' => [
"name" =>"Ara toplam", 'name' => 'Ödeme Onayını Bekliyor',
], ],
"sale" => [ 'paid' => [
"name" =>"Satış", 'name' => 'Ödendi',
], ],
"awaiting_tracking_number" => [ 'cancelled' => [
"name" =>"Takip Numarası Bekleniyor", 'name' => 'İptal Edildi',
], ],
"awaiting_payment_approval" => [ 'waiting' => [
"name" =>"Ödeme Onayı Bekleniyor", 'name' => 'Bekleniyor',
], ],
"paid" => [ 'awaiting_dispatch' => [
"name" =>"Ücretli", 'name' => 'Teslimat Bekliyor',
], ],
"cancelled" => [ 'shipped' => [
"name" =>"İptal edildi", 'name' => 'Gönderen',
], ],
"waiting" => [ 'delivered' => [
"name" =>"bekleme", 'name' => 'Teslim Alan',
], ],
"awaiting_dispatch" => [ 'tracking_number' => [
"name" =>"Sevk Bekliyor", 'name' => 'Takip Numarası',
], ],
"shipped" => [ 'was_delivered' => [
"name" =>"gönderilen", 'name' => 'teslim edildi',
], ],
"delivered" => [ 'not_delivered' => [
"name" =>"teslim", 'name' => 'teslim edilemedi',
], ],
"tracking_number" => [ 'show_order_msg1' => [
"name" =>"Takip numarası", 'name' => 'İşlem sonucu mail ile bildirilecektir.',
], ],
"was_delivered" => [ 'show_order_msg2' => [
"name" =>"teslim edildi", 'name' => 'Ürün bir hafta içinde teslim edilmezse geri ödeme yapılacaktır.',
], ],
"not_delivered" => [ 'show_order_msg3' => [
"name" =>"teslim edilmedi", 'name' => 'İşlemin sonucu kayıtlı e-posta adresinize gönderildi.',
], ],
"show_order_msg1" => [
"name" =>"İşlem sonucu posta ile bildirilecektir.",
'awaiting_payment' => [
'name' => 'Ödeme Bekliyor',
], ],
"show_order_msg2" => [ 'please_entered_tracking_number' => [
"name" =>"Ürün bir hafta içinde teslim edilmezse geri ödeme yapılır.", 'name' => 'Lütfen Girilen Takip Numarasını Giriniz',
], ],
"show_order_msg3" => [ 'transport_days' => [
"name" =>"İşlem sonucu kayıtlı e-posta adresinize gönderildi.", 'name' => 'Teslimat Süresi',
], ],
"awaiting_payment" => [ 'product_not_delivered' => [
"name" =>"bekleyen ödeme", 'name' => 'Ürün teslim edilemedi.',
], ],
"please_entered_tracking_number" => [ 'status' => [
"name" =>"Lütfen Takip Numarasını Giriniz", 'name' => 'Durum',
], ],
"transport_days" => [ 'cancel_sale' => [
"name" =>"Ulaşım Günleri", 'name' => 'Satışı İptal Et',
], ],
"product_not_delivered" => [ 'send_again' => [
"name" =>"Ürün teslim edilmedi", 'name' => 'Tekrar Gönderildi',
], ],
"status" => [ 'content' => [
"name" =>"durum", 'name' => 'Detay',
], ],
"cancel_sale" => [ 'preferences_settings' => [
"name" =>"Satışı İptal Et", 'name' => 'Tercihler',
], ],
"send_again" => [
"name" =>"Tekrar göndereceğim",
],
"content" => [
"name" =>"içerik",
'corporate_settings' => [
'name' => 'Kurumsal Ayarlar',
], ],
"preferences_settings" => [ 'password' => [
"name" =>"Tercihler Ayarları", 'name' => 'Şifre',
], ],
"corporate_settings" => [ 'new_password' => [
"name" =>"Kurumsal Ayarlar", 'name' => 'Yeni Şifre',
], ],
"change_password" => [ 're_new_password' => [
"name" =>"Şifre değiştir", 'name' => 'Şifre Onayı',
], ],
"new_password" => [ 'confirm_password_input' => [
"name" =>"Yeni Şifre", 'name' => 'Şifremin değiştirilmesini onaylıyorum',
], ],
"re_new_password" => [ 'create_address' => [
"name" =>"Şifreyi Onayla", 'name' => 'Adres Oluştur',
], ],
"confirm_password_input" => [ 'edit_address' => [
"name" =>"Şifre değişikliğimi onaylıyorum", 'name' => 'Adres Düzenle',
], ],
"create_address" => [ 'balance_limit' => [
"name" =>"Adres Oluştur", 'name' => 'Bakiye',
], ],
"balance_limit" => [ 'active_ads' => [
"name" =>"Bakiye Sınırı", 'name' => 'Aktif İlanlar',
], ],
"active_ads" => [ 'subscriptions' => [
"name" =>"Aktif İlanlar", 'name' => 'Abonelikler',
], ],
"subscriptions" => [ 'go_subscriptions_page' => [
"name" =>"Abonelikler", 'name' => 'Aboneliklere git',
], ],
"go_subscriptions_page" => [ 'buy_package' => [
"name" =>"Abonelikler Sayfasına Git", 'name' => 'Paket Satın Al',
], ],
"buy_package" => [ 'expired_date' => [
"name" =>"Paket satın al", 'name' => 'Son Kullanım',
], ],
"expired_date" => [ 'category' => [
"name" =>"Son kullanma tarihi geçmiş", 'name' => 'Kategori',
], ],
"category" => [ 'ad_limit' => [
"name" =>"Kategori", 'name' => 'İlan Limiti',
], ],
"ad_limit" => [ 'publish_time' => [
"name" =>"İlan Sınırı", 'name' => 'Yayın Süresi',
], ],
"publish_time" => [ 'all_categories' => [
"name" =>"Yayınlanma Zamanı", 'name' => 'Tüm Kategoriler',
], ],
"all_categories" => [ 'day' => [
"name" =>"Tüm Kategoriler", 'name' => 'Gün',
], ],
"day" => [
"name" =>"Gün",
'individual' => [
'name' => 'Bireysel',
],
'corporate' => [
'name' => 'Kurumsal',
],
'details' => [
'name' => 'Detaylar'
], ],
]; ];

View File

@ -1,23 +1,22 @@
<?php <?php
return[ return [
"email" =>"E-Posta Alanınız Zorunlu!", "email" => "Eposta alanı zorunludur!",
"username" =>"Kullanıcı Adı Alan Zorunlu!", "username" => "Kullanıcı Adı alanı zorunludur!",
"success_update" =>"Profil Güncellemesi Başarıyla!", "success_update" => "Profil Başarıyla Güncellendi!",
"adress_success_update" =>"Adres Güncelleme Başarıyla!", "adress_success_update" => "Adres Başarıyla Güncellendi!",
"adress_success_create" =>"Adres Başarıyla Oluşturuldu!", "adress_success_create" => "Adres Başarıyla Oluşturuldu!",
"login_error" =>"Yanlış giriş veya şifre.", "login_error" => "Giriş Bilgileri Hatalıdır.",
"login_noMail_old_user" =>"Girdiğiniz e-posta adresi bulunamadı.", "login_noMail_old_user" => "Girdiğiniz e-posta adresi bulunamadı.",
"login_noMail_old_user2" =>"Lütfen e-posta adresini kontrol edip tekrar deneyin.", "login_noMail_old_user2" => "Lütfen e-posta adresini kontrol edip tekrar deneyin.",
"login_noMail_old_user3" =>"Sorun devam ederse, "login_noMail_old_user3" => "Sorun devam ederse, lütfen 'info@openclassify.com' adresinden iletişim kurun.",
lütfen \'info@openclassify.com\' adresinden iletişim kurun.", "login_info_old_user" => "E-posta adresinize yeni bir şifre gönderildi.",
"login_info_old_user" =>"E-posta adresinize yeni bir şifre gönderildi.", "success" => "İşlem Başarılı",
"success" =>"Başarılı", "no_packages_module" => "Paket Modülü Bulunamadı!",
"notified_new_updates" =>"Yeni güncellemelerden haberdar olmak istiyorum", "required_add" => "Lütfen gerekli tüm satırları doldurun.",
"notified_about_ads" =>"İlanlarım hakkında bildirimlere izin ver", "no_extend_package" => "İlan Yayınlama Süresi paketiniz bulunamadı.",
"receive_messages_email" =>"Mesajları e-posta olarak almak istiyorum.", "saved" => "Kayıt Edildi!",
"no_packages_module" =>"Paket Modülü Yok!", 'please_confirm_transaction' => 'Lütfen işlemi onaylayın',
"required_add" =>"Lütfen gerekli tüm satırları doldurunuz.", 'password_do_not_match' => 'Şifreler eşleşmiyor',
"no_extend_package" =>"İlan Paketlerini Genişletme", 'your_password_changed' => 'Şifreniz başarıyla güncellendi',
"saved" =>"Kaydedilen!"
]; ];

View File

@ -1,24 +0,0 @@
<?php
return[
"profile" => [
"name" =>"Profil",
"option" => [
"read" =>"Profili okuyabilir mi? ",
"write" =>"Profil oluşturabilir / düzenleyebilir mi? ",
"delete" =>"Profili silebilir miyim?"
],
],
"adress" => [
"name" =>"Adres",
"option" => [
"read" =>"Adresleri okuyabilir miyim? ",
"write" =>"Adres oluşturabilir / düzenleyebilir mi? ",
"delete" =>"Adresini silebilir miyim?",
],
],
];

View File

@ -1,13 +1,11 @@
<?php <?php
return[ return [
"profile" => [ 'profile' => [
"title" =>"Profil", 'title' => 'Profil',
],
], 'adress' => [
"adress" => [ 'title' => 'Adres',
"title" =>"Adres", ],
'general_setting' => 'Genel Ayarlar',
],
]; ];

View File

@ -0,0 +1,10 @@
<?php
return [
'show_my_ads' => [
'name' => 'İlanlarım Sekmesi Görünümü',
],
'upload_avatar' => [
'name' => 'Profil Fotoğrafı',
],
];

View File

@ -1,13 +1,10 @@
<?php <?php
return[ return [
"profile" => [ 'profile' => [
"name" =>"Profil", 'name' => 'Profil',
],
], 'adress' => [
"adress" => [ 'name' => 'Adres',
"name" =>"Adres", ],
],
]; ];

View File

@ -18,10 +18,12 @@
<div class="col-md-4 p-5"> <div class="col-md-4 p-5">
<div class="row"> <div class="row">
<div class="col-md-12 text-center align-middle"> {% if setting_value('visiosoft.module.profile::upload_avatar') %}
<img src="{{ profile_photo }}" class="img-responsive w-100" <div class="col-md-12 text-center align-middle">
style="max-width: 150px"> <img src="{{ profile_photo }}" class="img-responsive w-100"
</div> style="max-width: 150px">
</div>
{% endif %}
<div class="col-md-12 text-center align-middle text-white p-2 text-truncate"> <div class="col-md-12 text-center align-middle text-white p-2 text-truncate">
<h3>{{ user().first_name }} {{ user().last_name }}</h3> <h3>{{ user().first_name }} {{ user().last_name }}</h3>
<small>{{ auth_user().last_login_at|date("d/m/Y H:i:s") }}</small> <small>{{ auth_user().last_login_at|date("d/m/Y H:i:s") }}</small>
@ -36,105 +38,136 @@
<!-- User Profile Form Section--> <!-- User Profile Form Section-->
<div class="col-md-12 mt-5 bg-light profile-section"> <div class="col-md-12 mt-5 bg-light profile-section">
<nav>
<nav>
<div class="nav nav-tabs nav-fill" id="nav-tab" role="tablist"> <div class="nav nav-tabs nav-fill" id="nav-tab" role="tablist">
<a class="nav-item nav-link active text-dark" id="nav-detail-tab" data-toggle="tab" <a class="nav-item nav-link active text-dark" id="nav-profile-tab" data-toggle="tab"
href="#nav-detail" href="#nav-profile"
role="tab" aria-controls="nav-detail" aria-selected="true">Detail</a> role="tab" aria-controls="nav-profile" aria-selected="true">
{{ trans('visiosoft.module.profile::field.profile.name') }}
</a>
<a class="nav-item nav-link text-dark" id="nav-details-tab" data-toggle="tab"
href="#nav-details"
role="tab" aria-controls="nav-details" aria-selected="false">
{{ trans('visiosoft.module.profile::field.details.name') }}
</a>
<a class="nav-item nav-link text-dark" id="nav-password-tab" data-toggle="tab" <a class="nav-item nav-link text-dark" id="nav-password-tab" data-toggle="tab"
href="#nav-password" href="#nav-password"
role="tab" aria-controls="nav-password" aria-selected="false">Password</a> role="tab" aria-controls="nav-password" aria-selected="false">
<a class="nav-item nav-link text-dark" id="nav-other-tab" data-toggle="tab" {{ trans('visiosoft.module.profile::field.password.name') }}
href="#nav-other" </a>
role="tab" aria-controls="nav-other" aria-selected="false">Other</a>
</div> </div>
</nav> </nav>
{% set form = form('profile', 'profile').redirect('/profile/home').entry(profiles.id).actions(['update']).get() %}
{{ form_open({
'class': 'form ' ~ form.options.class ,
'enctype': 'multipart/form-data',
'data-name': 'profile',
'url': 'profile/update'
})|raw }}
<div class="tab-content py-3 px-3 px-sm-0" id="nav-tabContent"> <div class="tab-content py-3 px-3 px-sm-0" id="nav-tabContent">
<div class="tab-pane fade show active" id="nav-detail" role="tabpanel" <div class="tab-pane fade show active" id="nav-profile" role="tabpanel"
aria-labelledby="nav-detail-tab"> aria-labelledby="nav-profile-tab">
<div class="form-group"> <div class="col-12">
{{ form.fields.file|raw }} {% set userForm = form('userProfile').entry(auth_user().id).get() %}
{{ userForm.open()|raw }}
<div class="form-group">
<label class="control-label font-weight-bold">
{{ trans("visiosoft.module.profile::field.first_name.name") }}
</label>
{{ userForm.fields.first_name.input|raw }}
</div>
<div class="form-group">
<label class="control-label font-weight-bold">
{{ trans("visiosoft.module.profile::field.last_name.name") }}
</label>
{{ userForm.fields.last_name.input|raw }}
</div>
<div class="form-group">
<label class="control-label font-weight-bold">
{{ trans("visiosoft.module.profile::field.email.name") }}
</label>
<input value="{{ auth_user().email }}" type="text" disabled class="form-control">
</div>
<div class="form-group">
{{ userForm.actions|raw }}
</div>
{{ userForm.close()|raw }}
</div> </div>
<div class="form-group"> </div>
<label class="control-label font-weight-bold">{{ trans("visiosoft.module.profile::field.first_name.name") }}</label>
{{ users.first_name.input|raw }} <div class="tab-pane fade" id="nav-details" role="tabpanel"
</div> aria-labelledby="nav-details-tab">
<div class="form-group"> <div class="col-12">
<label class="control-label font-weight-bold">{{ trans("visiosoft.module.profile::field.last_name.name") }}</label> {% set profileForm = form('profile').entry(profiles.id).get() %}
{{ users.last_name.input|raw }}
</div> {{ profileForm.open()|raw }}
<div class="form-group required-profile-phone-field">
<label class="control-label font-weight-bold">{{ form.fields.gsm_phone.label }}</label> {% if setting_value('visiosoft.module.profile::upload_avatar') %}
<input type="text" class="form-control" id="phone" <div class="form-group">
value="{{ profiles.gsm_phone.value }}" name="gsm_phone"> {{ profileForm.fields.file|raw }}
</div> </div>
<div class="form-group"> {% endif %}
<label class="control-label font-weight-bold">{{ trans("visiosoft.module.profile::field.email.name") }}</label>
<input type="email" value="{{ users.email }}" name="email" placeholder="" <div class="form-group required-profile-phone-field">
class="form-control" <label class="control-label font-weight-bold">
data-field="email" data-field_name="email" {{ profileForm.fields.gsm_phone.label }}
data-provides="anomaly.field_type.email" disabled> </label>
</div> {{ profileForm.fields.gsm_phone.input|raw }}
<div class="form-group"> </div>
{{ form.actions|raw }} <div class="form-group required-profile-phone-field">
<label class="control-label font-weight-bold">
{{ profileForm.fields.office_phone.label }}
</label>
{{ profileForm.fields.office_phone.input|raw }}
</div>
<div class="form-group required-profile-phone-field">
<label class="control-label font-weight-bold">
{{ profileForm.fields.land_phone.label }}
</label>
{{ profileForm.fields.land_phone.input|raw }}
</div>
<div class=" form-group">
<label class="control-label font-weight-bold">{{ trans("visiosoft.module.profile::field.adv_listing_banner.name") }}</label>
{{ profileForm.fields.adv_listing_banner.input|raw }}
</div>
<div class=" form-group">
<label class="control-label font-weight-bold">{{ trans("visiosoft.module.profile::field.identification_number.name") }}</label>
{{ profileForm.fields.identification_number.input|raw }}
</div>
<div class="form-group">
<label class="control-label font-weight-bold">{{ trans("visiosoft.module.profile::field.register_type.name") }}</label>
{{ profileForm.fields.register_type.input|raw }}
</div>
<div class="form-group">
{{ profileForm.actions|raw }}
</div>
{{ profileForm.close()|raw }}
</div> </div>
</div> </div>
<div class="tab-pane fade" id="nav-password" role="tabpanel" aria-labelledby="nav-password-tab"> <div class="tab-pane fade" id="nav-password" role="tabpanel" aria-labelledby="nav-password-tab">
{% set passwordForm = form('updatePassword').get() %}
{{ passwordForm.open()|raw }}
<div class="form-group"> <div class="form-group">
<label class="font-weight-bold">{{ trans("visiosoft.module.profile::field.new_password.name") }}</label> <label class="font-weight-bold">{{ trans("visiosoft.module.profile::field.new_password.name") }}</label>
<input type="password" name="new_password" class="form-control"> {{ passwordForm.fields.new_password.input|raw }}
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="font-weight-bold">{{ trans("visiosoft.module.profile::field.re_new_password.name") }}</label> <label class="font-weight-bold">{{ trans("visiosoft.module.profile::field.re_new_password.name") }}</label>
<input type="password" name="re_new_password" class="form-control"> {{ passwordForm.fields.re_new_password.input|raw }}
</div>
<div class="form-group confirm-password-field">
<i class="fa fa-warning"></i>
<input type="checkbox" name="confirm_password_input">
<label>{{ trans("visiosoft.module.profile::field.confirm_password_input.name") }}
.</label>
</div>
<div class="form-group">
{{ form.actions|raw }}
</div>
</div>
<div class="tab-pane fade" id="nav-other" role="tabpanel" aria-labelledby="nav-other-tab">
<div class=" form-group">
<label class="control-label font-weight-bold">{{ trans("visiosoft.module.profile::field.adv_listing_banner.name") }}</label>
{{ form.fields.adv_listing_banner.input|raw }}
</div>
<div class=" form-group">
<label class="control-label font-weight-bold">{{ trans("visiosoft.module.profile::field.identification_number.name") }}</label>
{{ profiles.identification_number.input|raw }}
</div>
<div class="form-group">
<label class="control-label font-weight-bold">{{ trans("visiosoft.module.profile::field.register_type.name") }}</label>
{{ profiles.register_type.input|raw }}
</div>
<div class=" form-group">
<label class="control-label font-weight-bold">{{ trans("visiosoft.module.profile::field.office_phone.name") }}</label>
{{ profiles.office_phone.input|raw }}
</div>
<div class=" form-group">
<label class="control-label font-weight-bold">{{ trans("visiosoft.module.profile::field.land_phone.name") }}</label>
{{ profiles.land_phone.input|raw }}
</div>
<div class="form-group">
{{ form.actions|raw }}
</div> </div>
<div class="form-group confirm-password-field row pl-3">
{{ passwordForm.fields.confirm_password|raw }}
<div class="col-10">
<label>
{{ trans("visiosoft.module.profile::field.confirm_password_input.name") }}.
</label>
</div>
</div>
<div class="form-group">
{{ passwordForm.actions|raw }}
</div>
</div> </div>
{{ passwordForm.close|raw }}
</div> </div>
<!-- User Profile Form Section--> <!-- User Profile Form Section-->

View File

@ -120,36 +120,6 @@ class MyProfileController extends PublicController
'mySales', 'advs_count', 'fav_count', 'userbalance', 'balancespackage')); 'mySales', 'advs_count', 'fav_count', 'userbalance', 'balancespackage'));
} }
public function update(ProfileFormBuilder $form, Request $request, UserPassword $userPassword, ProfileRepositoryInterface $profileRepository)
{
$id = Auth::id();
$all = $request->all();
//updateUserFields && remove added fields
$all = $profileRepository->updateUserField($all);
if (isset($all['confirm_password_input']) and $all['confirm_password_input'] == "on") {
$all = $profileRepository->changePassword($all, $userPassword);
} else {
unset($all['new_password'], $all['re_new_password'], $all['confirm_password_input']);
}
if (isset($all['error'])) {
return redirect('/profile')->with('error', $all['error']);
}
unset($all['_token'], $all['action']);
$all['file_id'] = $all['file'];
if (isset($all['adv_listing_banner'])) {
$all['adv_listing_banner_id'] = $all['adv_listing_banner'];
unset($all['adv_listing_banner']);
}
unset($all['file']);
$profileModel = new ProfileModel();
$profileModel->getProfile($id)->update($all);
$message = [];
$message[] = trans('visiosoft.module.profile::message.success_update');
return redirect('/profile')->with('success', $message);
}
public function extendAds($id, $type, SettingRepositoryInterface $settings) public function extendAds($id, $type, SettingRepositoryInterface $settings)
{ {

View File

@ -17,4 +17,6 @@ interface ProfileRepositoryInterface extends EntryRepositoryInterface
public function changePassword($fields, $password); public function changePassword($fields, $password);
public function findByUserID($id); public function findByUserID($id);
public function CheckPhoneNumber($phoneNumber);
} }

View File

@ -6,6 +6,7 @@ use Anomaly\UsersModule\User\Password\Command\StartPasswordReset;
use Anomaly\UsersModule\User\Password\ForgotPasswordFormHandler; use Anomaly\UsersModule\User\Password\ForgotPasswordFormHandler;
use Anomaly\UsersModule\User\UserModel; use Anomaly\UsersModule\User\UserModel;
use Anomaly\UsersModule\User\UserPassword; use Anomaly\UsersModule\User\UserPassword;
use function CoffeeScript\t;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Redirect; use Illuminate\Support\Facades\Redirect;
@ -129,5 +130,13 @@ class ProfileRepository extends EntryRepository implements ProfileRepositoryInte
return $this->model->where('user_no_id', $id)->first(); return $this->model->where('user_no_id', $id)->first();
} }
public function CheckPhoneNumber($phoneNumber)
{
return $this->model
->where('gsm_phone', $phoneNumber)
->where('user_no_id','!=', Auth::id())
->first();
}
} }

View File

@ -0,0 +1,26 @@
<?php namespace Visiosoft\ProfileModule\Profile\User;
use Anomaly\Streams\Platform\Ui\Form\FormBuilder;
use Anomaly\UsersModule\User\UserModel;
class UserFormBuilder extends FormBuilder
{
protected $model = UserModel::class;
protected $fields = [
'first_name' => [
'required' => true,
],
'last_name' => [
'required' => true,
],
];
protected $actions = [
'update' => [
'text' => 'visiosoft.module.profile::button.update_profile'
],
];
}

View File

@ -0,0 +1,23 @@
<?php namespace Visiosoft\ProfileModule\Profile\User;
use Anomaly\Streams\Platform\Message\MessageBag;
use Anomaly\UsersModule\User\UserModel;
use Illuminate\Support\Facades\Auth;
class UserFormHandler
{
public function handle(
UserFormBuilder $builder,
MessageBag $messages,
UserModel $userModel
)
{
if (!$builder->canSave()) {
return;
}
$userModel->find(Auth::id())
->update($builder->getPostData());
$messages->success(trans('visiosoft.module.profile::message.success_update'));
}
}

View File

@ -7,12 +7,15 @@ 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\Profile\Contract\ProfileRepositoryInterface; use Visiosoft\ProfileModule\Profile\Contract\ProfileRepositoryInterface;
use Visiosoft\ProfileModule\Profile\Password\PasswordFormBuilder;
use Visiosoft\ProfileModule\Profile\Profile\ProfileFormBuilder;
use Visiosoft\ProfileModule\Profile\ProfileRepository; use Visiosoft\ProfileModule\Profile\ProfileRepository;
use Anomaly\Streams\Platform\Model\Profile\ProfileProfileEntryModel; use Anomaly\Streams\Platform\Model\Profile\ProfileProfileEntryModel;
use Visiosoft\ProfileModule\Profile\ProfileModel; use Visiosoft\ProfileModule\Profile\ProfileModel;
use Illuminate\Routing\Router; use Illuminate\Routing\Router;
use Visiosoft\ProfileModule\Profile\Register2\Register2FormBuilder; use Visiosoft\ProfileModule\Profile\Register2\Register2FormBuilder;
use Visiosoft\ProfileModule\Profile\sites\SitesFormBuilder; use Visiosoft\ProfileModule\Profile\sites\SitesFormBuilder;
use Visiosoft\ProfileModule\Profile\User\UserFormBuilder;
class ProfileModuleServiceProvider extends AddonServiceProvider class ProfileModuleServiceProvider extends AddonServiceProvider
{ {
@ -169,6 +172,9 @@ class ProfileModuleServiceProvider extends AddonServiceProvider
* @type array|null * @type array|null
*/ */
protected $bindings = [ protected $bindings = [
'updatePassword' => PasswordFormBuilder::class,
'userProfile' => UserFormBuilder::class,
'profile' => ProfileFormBuilder::class,
ProfileAdressEntryModel::class => AdressModel::class, ProfileAdressEntryModel::class => AdressModel::class,
ProfileProfileEntryModel::class => ProfileModel::class, ProfileProfileEntryModel::class => ProfileModel::class,
]; ];