diff --git a/src/Controllers/BadasoAuthController.php b/src/Controllers/BadasoAuthController.php index 155abbc0b..cf0c22121 100644 --- a/src/Controllers/BadasoAuthController.php +++ b/src/Controllers/BadasoAuthController.php @@ -175,6 +175,8 @@ public function register(Request $request) 'phone' => 'required|numeric|min:6', 'email' => 'required|string|email|max:255|unique:Uasoft\Badaso\Models\User', 'password' => 'required|string|min:6|confirmed', + 'address' => 'required|string|max:255', + 'gender' => 'required|string', ]); $user = User::create([ @@ -183,6 +185,8 @@ public function register(Request $request) 'phone' => $request->get('phone'), 'email' => $request->get('email'), 'password' => Hash::make($request->get('password')), + 'address' => $request->get('address'), + 'gender' => $request->get('gender'), ]); $role = $this->getCustomerRole(); @@ -540,14 +544,20 @@ public function updateProfile(Request $request) 'name' => 'required|string|max:255', 'username' => "required|string|max:255|alpha_num|unique:Uasoft\Badaso\Models\User,username,{$user_id}", 'avatar' => 'nullable', + 'phone' => 'nullable', + 'address' => 'nullable', + 'gender' => 'nullable', ]); $user = User::find($user->id); $user->name = $request->name; $user->username = $request->username; + $user->phone = $request->phone; + $user->address = $request->address; $user->avatar = $request->avatar; $user->additional_info = $request->additional_info; + $user->gender = $request->gender; $user->save(); DB::commit(); diff --git a/src/Controllers/BadasoUserController.php b/src/Controllers/BadasoUserController.php index 2f4295cbb..1448fe321 100644 --- a/src/Controllers/BadasoUserController.php +++ b/src/Controllers/BadasoUserController.php @@ -57,6 +57,9 @@ public function edit(Request $request) 'username' => "required|string|max:255|alpha_num|unique:Uasoft\Badaso\Models\User,username,{$request->id}", 'name' => 'required', 'avatar' => 'nullable', + 'phone' => 'nullable', + 'address' => 'nullable', + 'gender' => 'nullable', ]); $user = User::find($request->id); @@ -64,7 +67,10 @@ public function edit(Request $request) $user->name = $request->name; $user->email = $request->email; + $user->phone = $request->phone; + $user->address = $request->address; $user->avatar = $request->avatar; + $user->gender = $request->gender; $user->additional_info = $request->additional_info; if ($request->password && $request->password != '') { $user->password = Hash::make($request->password); @@ -104,14 +110,20 @@ public function add(Request $request) 'name' => 'required|string|max:255', 'username' => 'required|string|max:255|alpha_num|unique:Uasoft\Badaso\Models\User,username', 'avatar' => 'nullable', + 'phone' => 'required|numeric|min:6', + 'address' => 'nullable', + 'gender' => 'required|string', ]); $user = new User(); $user->name = $request->name; $user->username = $request->username; + $user->phone = $request->phone; + $user->address = $request->address; $user->email = $request->email; $user->avatar = $request->avatar; $user->additional_info = $request->additional_info; + $user->gender = $request->gender; $user->password = Hash::make($request->password); if ($request->email_verified) { $user->email_verified_at = date('Y-m-d H:i:s'); diff --git a/src/Migrations/2023_09_22_084333_add_address_to_badaso_users_table.php b/src/Migrations/2023_09_22_084333_add_address_to_badaso_users_table.php new file mode 100644 index 000000000..6effee1f4 --- /dev/null +++ b/src/Migrations/2023_09_22_084333_add_address_to_badaso_users_table.php @@ -0,0 +1,32 @@ +text('address')->nullable()->after('phone'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table(config('badaso.database.prefix').'users', function (Blueprint $table) { + $table->dropColumn('address'); + }); + } +} diff --git a/src/Migrations/2023_09_25_034306_add_gender_to_badaso_users_table.php b/src/Migrations/2023_09_25_034306_add_gender_to_badaso_users_table.php new file mode 100644 index 000000000..5ef085a1d --- /dev/null +++ b/src/Migrations/2023_09_25_034306_add_gender_to_badaso_users_table.php @@ -0,0 +1,32 @@ +enum('gender', ['man', 'woman'])->nullable()->after('additional_info'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table(config('badaso.database.prefix').'users', function (Blueprint $table) { + $table->dropColumn('gender'); + }); + } +} diff --git a/src/Models/User.php b/src/Models/User.php index 5aa62034d..7b1455ea1 100644 --- a/src/Models/User.php +++ b/src/Models/User.php @@ -39,6 +39,8 @@ public function __construct(array $attributes = []) 'email', 'password', 'avatar', + 'address', + 'gender', 'additional_info', 'last_sent_token_at', ]; diff --git a/src/resources/js/lang/modules/en.js b/src/resources/js/lang/modules/en.js index 036760c10..8da2cb4b1 100644 --- a/src/resources/js/lang/modules/en.js +++ b/src/resources/js/lang/modules/en.js @@ -40,16 +40,22 @@ export default { field: { name: "Name", username: "Username", - phone:"Phone", + phone: "Phone", + address: "Address", email: "Email", password: "Password", passwordConfirmation: "Password Confirmation", + gender: "Gender", }, button: "Register", existingAccount: { text: "Do you have an account?", link: "Login", }, + gender: { + man: "Man", + woman: "Woman", + }, }, forgotPassword: { @@ -125,6 +131,9 @@ export default { newPasswordConfirmation: "New Password Confirmation", name: "Name", avatar: "Avatar", + phone: "Phone Number", + address: "Address", + gender: "Gender", additionalInfo: "Additional info(optional)", token: "Verification Code", buttons: { @@ -251,7 +260,7 @@ export default { edit: { multiple: "Update Configurations", }, - maintenanceMode: "Maintenance setting is readonly." + maintenanceMode: "Maintenance setting is readonly.", }, crud: { @@ -666,6 +675,14 @@ export default { title: "Username", placeholder: "Username", }, + phone: { + title: "Phone Number", + placeholder: "Phone Number", + }, + address: { + title: "Address", + placeholder: "Address", + }, email: { title: "Email", placeholder: "Email", @@ -682,6 +699,10 @@ export default { title: "Avatar", placeholder: "Avatar", }, + gender: { + title: "Gender", + placeholder: "Gender", + }, additionalInfo: { title: "Additional Info (JSON)", placeholder: "Additional Info (JSON)", @@ -701,6 +722,14 @@ export default { title: "Username", placeholder: "Username", }, + phone: { + title: "Phone Number", + placeholder: "Phone Number", + }, + address: { + title: "Address", + placeholder: "Address", + }, email: { title: "Email", placeholder: "Email", @@ -717,6 +746,10 @@ export default { title: "Avatar", placeholder: "New Avatar", }, + gender: { + title: "Gender", + placeholder: "Gender", + }, additionalInfo: { title: "Additional Info (JSON)", placeholder: "Additional Info (JSON)", @@ -730,7 +763,10 @@ export default { avatar: "Avatar", name: "Name", username: "Username", + phone: "Phone Number", + address: "Address", email: "Email", + gender: "Gender", additionalInfo: "Additional Info", emailVerified: "Is Email Verified", }, @@ -747,6 +783,10 @@ export default { text: "Roles has been set", }, }, + gender: { + man: "Man", + woman: "Woman", + }, }, role: { @@ -850,7 +890,7 @@ export default { isPublic: "Is Public", action: "Action", rolesCanSeeAllData: "Roles Can See All Data", - fieldIdentifyRelatedUser: "Field Identify Related User" + fieldIdentifyRelatedUser: "Field Identify Related User", }, footer: { descriptionTitle: "Registries", @@ -901,7 +941,7 @@ export default { fieldIdentifyRelatedUser: { title: "Column for identify user related data", placeholder: "Column for identify user related data", - } + }, }, button: "Save", }, @@ -922,7 +962,7 @@ export default { }, button: "Edit", rolesCanSeeAllData: "Roles Can See All Data", - fieldIdentifyRelatedUser: "Field Identify Related User" + fieldIdentifyRelatedUser: "Field Identify Related User", }, }, diff --git a/src/resources/js/lang/modules/id.js b/src/resources/js/lang/modules/id.js index 36083b50a..0b9dba764 100644 --- a/src/resources/js/lang/modules/id.js +++ b/src/resources/js/lang/modules/id.js @@ -40,7 +40,9 @@ export default { field: { name: "Nama", username: "Username", - phone: "Phone", + phone: "No Telp/Hp", + address: "Alamat", + gender: "Jenis Kelamin", email: "Email", password: "Kata sandi", passwordConfirmation: "Konfirmasi kata sandi", @@ -125,6 +127,9 @@ export default { newPasswordConfirmation: "New Password Confirmation", name: "Name", avatar: "Avatar", + phone: "No Telp/Hp", + address: "Alamat", + gender: "Jenis Kelamin", additionalInfo: "Additional info(optional)", token: "Verification Code", buttons: { @@ -251,7 +256,7 @@ export default { edit: { multiple: "Simpan Konfigurasi", }, - maintenanceMode: "Pengaturan maintenance hanya readonly." + maintenanceMode: "Pengaturan maintenance hanya readonly.", }, crud: { @@ -650,6 +655,14 @@ export default { title: "Username", placeholder: "Username", }, + phone: { + title: "No Telp/Hp", + placeholder: "No Telp/Hp", + }, + address: { + title: "Alamat", + placeholder: "Alamat", + }, password: { title: "Kata sandi", placeholder: "Kata sandi", @@ -662,6 +675,9 @@ export default { title: "Avatar", placeholder: "Avatar", }, + gender: { + title: "Jenis Kelamin", + }, additionalInfo: { title: "Info Tambahan (JSON)", placeholder: "Info Tambahan (JSON)", @@ -681,6 +697,14 @@ export default { title: "Username", placeholder: "Username", }, + phone: { + title: "No Telp/Hp", + placeholder: "No Telp/Hp", + }, + address: { + title: "Alamat", + placeholder: "Alamat", + }, email: { title: "Email", placeholder: "Email", @@ -697,6 +721,9 @@ export default { title: "Avatar", placeholder: "Avatar Baru", }, + gender: { + title: "Jenis Kelamin", + }, additionalInfo: { title: "Info Tambahan (JSON)", placeholder: "Info Tambahan (JSON)", @@ -710,7 +737,10 @@ export default { avatar: "Avatar", name: "Nama", username: "Username", + phone: "No Telp/Hp", + address: "Alamat", email: "Email", + gender: "Jenis Kelamin", additionalInfo: "Info Tambahan", emailVerified: "Email Diverifikasi", }, @@ -825,7 +855,7 @@ export default { isPublic: "Publik", action: "Aksi", rolesCanSeeAllData: "Role yang dapat melihat semua data", - fieldIdentifyRelatedUser: "Kolom relasi untuk identifikasi data user" + fieldIdentifyRelatedUser: "Kolom relasi untuk identifikasi data user", }, help: { alwaysAllow: @@ -881,7 +911,7 @@ export default { fieldIdentifyRelatedUser: { title: "Kolom relasi untuk identifikasi data user", placeholder: "Kolom relasi untuk identifikasi data user", - } + }, }, button: "Simpan", }, @@ -902,7 +932,7 @@ export default { }, button: "Ubah", rolesCanSeeAllData: "Role yang dapat melihat semua data", - fieldIdentifyRelatedUser: "Kolom relasi untuk identifikasi data user" + fieldIdentifyRelatedUser: "Kolom relasi untuk identifikasi data user", }, }, diff --git a/src/resources/js/pages/auth/register.vue b/src/resources/js/pages/auth/register.vue index 4d033bbc5..42caa7c27 100644 --- a/src/resources/js/pages/auth/register.vue +++ b/src/resources/js/pages/auth/register.vue @@ -133,6 +133,34 @@ v-model="passwordConfirmation" class="register__input" /> + +
+
+ + {{ info }} + +
+
+ +
+
+ export default { name: "AuthRegister", - data: () => ({ - errors: {}, - name: "", - username: "", - phone:"", - email: "", - password: "", - passwordConfirmation: "", - baseUrl: process.env.MIX_ADMIN_PANEL_ROUTE_PREFIX - ? process.env.MIX_ADMIN_PANEL_ROUTE_PREFIX - : "badaso-dashboard", - }), + data() { + return { + errors: {}, + name: "", + username: "", + phone:"", + address:"", + gender:"", + email: "", + password: "", + passwordConfirmation: "", + baseUrl: process.env.MIX_ADMIN_PANEL_ROUTE_PREFIX + ? process.env.MIX_ADMIN_PANEL_ROUTE_PREFIX + : "badaso-dashboard", + genderitems: [ + { label: this.$t("user.gender.man"), value: "man" }, + { label: this.$t("user.gender.woman"), value: "woman" }, + ], + }; + }, methods: { register() { this.$openLoader(); @@ -175,9 +211,11 @@ export default { name: this.name, username: this.username, phone:this.phone, + address:this.address, email: this.email, password: this.password, passwordConfirmation: this.passwordConfirmation, + gender: this.gender, }) .then((response) => { this.$closeLoader(); diff --git a/src/resources/js/pages/user-management/add.vue b/src/resources/js/pages/user-management/add.vue index fffa54ca8..290920bdb 100644 --- a/src/resources/js/pages/user-management/add.vue +++ b/src/resources/js/pages/user-management/add.vue @@ -46,6 +46,21 @@ offLabel="No" :tooltip="$t('user.help.emailVerified')" > + + + ({ + data() { + return { errors: {}, user: { email: "", name: "", username: "", + phone: "", + address: "", avatar: "", password: "", emailVerified: false, additionalInfo: "", + gender:"", }, - }), + gender: [ + { label: this.$t("user.gender.man"), value: "man" }, + { label: this.$t("user.gender.woman"), value: "woman" }, + ], + }; + }, mounted() {}, methods: { submitForm() { @@ -106,15 +137,7 @@ export default { } this.$openLoader(); this.$api.badasoUser - .add({ - email: this.user.email, - name: this.user.name, - username: this.user.username, - avatar: this.user.avatar, - password: this.user.password, - emailVerified: this.user.emailVerified, - additionalInfo: this.user.additionalInfo, - }) + .add(this.user) .then((response) => { this.$closeLoader(); this.$router.push({ name: "UserManagementBrowse" }); diff --git a/src/resources/js/pages/user-management/edit.vue b/src/resources/js/pages/user-management/edit.vue index 0a61167d6..3b2ff3c98 100644 --- a/src/resources/js/pages/user-management/edit.vue +++ b/src/resources/js/pages/user-management/edit.vue @@ -46,6 +46,21 @@ offLabel="No" :tooltip="$t('user.help.emailVerified')" > + + + ({ - errors: {}, + data() { + return { + errors: {}, user: { email: "", name: "", username: "", + phone: "", + address: "", avatar: "", password: "", emailVerified: false, additionalInfo: "", + gender:"", }, - }), + gender: [ + { label: this.$t("user.gender.man"), value: "man" }, + { label: this.$t("user.gender.woman"), value: "woman" }, + ], + }; + }, computed: { loggedInUser: { get() { @@ -140,10 +171,13 @@ export default { email: this.user.email, name: this.user.name, username: this.user.username, + phone: this.user.phone, + address: this.user.address, avatar: this.user.avatar ? this.user.avatar.base64 : null, password: this.user.password, emailVerified: this.user.emailVerified, additionalInfo: JSON.stringify(this.user.additionalInfo), + gender: this.user.gender, }) .then((response) => { if (this.loggedInUser.id == this.user.id) { diff --git a/src/resources/js/pages/user-management/read.vue b/src/resources/js/pages/user-management/read.vue index dfb67a2e0..bbf8bafd4 100644 --- a/src/resources/js/pages/user-management/read.vue +++ b/src/resources/js/pages/user-management/read.vue @@ -42,6 +42,18 @@ {{ $t("user.detail.username") }} {{ user.username }} + + + {{ $t("user.detail.gender") }} + {{ user.gender }} + + + {{ $t("user.detail.phone") }} + {{ user.phone }} + + + {{ $t("user.detail.address") }} + {{ user.address }} {{ $t("user.detail.email") }} diff --git a/src/resources/js/pages/user/profile.vue b/src/resources/js/pages/user/profile.vue index fc557b8e4..0f198cf2a 100644 --- a/src/resources/js/pages/user/profile.vue +++ b/src/resources/js/pages/user/profile.vue @@ -21,6 +21,21 @@ :placeholder="$t('myProfile.username')" :alert="errors.username" > + + + ({ - errors: {}, - user: { - email: "", - name: "", - username: "", - avatar: "", - additionalInfo: "", - oldPassword: "", - newPassword: "", - newPasswordConfirmation: "", - }, - token: "", - shouldVerifyEmail: false, - }), + data() { + return{ + errors: {}, + user: { + email: "", + name: "", + username: "", + avatar: "", + phone:"", + address:"", + additionalInfo: "", + oldPassword: "", + newPassword: "", + newPasswordConfirmation: "", + gender:"", + }, + token: "", + shouldVerifyEmail: false, + gender: [ + { label: this.$t("user.gender.man"), value: "man" }, + { label: this.$t("user.gender.woman"), value: "woman" }, + ], + }; + }, mounted() { this.getUser(); }, @@ -183,6 +214,9 @@ export default { name: this.user.name, username: this.user.username, avatar: this.user.avatar, + phone: this.user.phone, + address: this.user.address, + gender: this.user.gender, additionalInfo: this.user.additionalInfo !== "" ? JSON.stringify(this.user.additionalInfo)