feat: account-registration
This commit is contained in:
parent
9a52748041
commit
adb2d9dc88
32
app/Helpers/CustomHelper.php
Normal file
32
app/Helpers/CustomHelper.php
Normal file
@ -0,0 +1,32 @@
|
||||
<?php
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
// Template
|
||||
// if (! function_exists('my_custom_function')) {
|
||||
// function my_custom_function($param) {
|
||||
// }
|
||||
// }
|
||||
|
||||
if (! function_exists('store_file')) {
|
||||
function store_file($file, $path, $disk = 'public')
|
||||
{
|
||||
if (isset($file)) {
|
||||
$randomFilename = Str::random(35).time().'.'.$file->getClientOriginalExtension();
|
||||
$originalFileName = Str::slug(pathinfo($file->getClientOriginalName(), PATHINFO_FILENAME)).'.'.$file->getClientOriginalExtension();
|
||||
|
||||
$file->storeAs($path, $randomFilename, $disk);
|
||||
|
||||
return [
|
||||
'randomFileName' => $randomFilename,
|
||||
'originalFileName' => $originalFileName,
|
||||
'isSuccess' => true,
|
||||
];
|
||||
} else {
|
||||
return [
|
||||
'randomFileName' => null,
|
||||
'originalFileName' => null,
|
||||
'isSuccess' => false,
|
||||
];
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -3,29 +3,165 @@
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Http\Requests\LoginRequest;
|
||||
use App\Http\Requests\RegisterRequest;
|
||||
use App\Models\Company;
|
||||
use App\Models\Journalist;
|
||||
use App\Models\Media;
|
||||
use App\Models\User;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class AuthController extends Controller
|
||||
{
|
||||
public function login(){
|
||||
return view('auth.login', [
|
||||
'title' => 'Login'
|
||||
'title' => 'Masuk'
|
||||
]);
|
||||
}
|
||||
|
||||
public function loginAction(LoginRequest $request){
|
||||
$credentials = $request->validated();
|
||||
$validatedData = $request->validated();
|
||||
|
||||
if(Auth::attempt($credentials)){
|
||||
if(Auth::attempt($validatedData)){
|
||||
$request->session()->regenerate();
|
||||
return redirect()->intended('/dashboard/overview');
|
||||
// return redirect()->intended('/dashboard/overview');
|
||||
return "masuk";
|
||||
}else{
|
||||
return redirect()->back();
|
||||
}
|
||||
}
|
||||
|
||||
public function register(){}
|
||||
public function register(){
|
||||
return view('auth.register', [
|
||||
'title' => 'Daftar'
|
||||
]);
|
||||
}
|
||||
|
||||
public function registerAction(){}
|
||||
public function registerAction(RegisterRequest $request){
|
||||
|
||||
public function logout(){}
|
||||
DB::beginTransaction();
|
||||
|
||||
try{
|
||||
$validatedData = $request->validated();
|
||||
|
||||
$createdUser = User::create([
|
||||
'name' => $validatedData['name'],
|
||||
'email' => $validatedData['email'],
|
||||
'password' => $validatedData['password'],
|
||||
'status' => '0',
|
||||
'role_id' => '3',
|
||||
]);
|
||||
|
||||
$companyFiles = [
|
||||
'company_director_nik_doc',
|
||||
'company_deed_incorporation_doc',
|
||||
'company_siup_nib_doc',
|
||||
'company_npwp_doc',
|
||||
'company_pkp_doc',
|
||||
'company_annual_tax_return_doc',
|
||||
'company_domicile_certificate_doc',
|
||||
'company_profile_doc',
|
||||
'company_cooperation_request_doc',
|
||||
];
|
||||
|
||||
$companyFileNames = [];
|
||||
foreach($companyFiles as $file){
|
||||
$companyFileNames[$file] = store_file($validatedData[$file], '/uploads/companies', 'public')['randomFileName'];
|
||||
}
|
||||
|
||||
$createdCompany = Company::create([
|
||||
'name' => $validatedData['company_name'],
|
||||
'email' => $validatedData['company_email'],
|
||||
'address' => $validatedData['company_address'],
|
||||
'director_name' => $validatedData['company_director_name'],
|
||||
'director_nik' => $validatedData['company_director_nik'],
|
||||
'director_nik_doc' => $companyFileNames['company_director_nik_doc'],
|
||||
'deed_incorporation' => $validatedData['company_deed_incorporation'],
|
||||
'deed_incorporation_doc' => $companyFileNames['company_deed_incorporation_doc'],
|
||||
'siup_nib' => $validatedData['company_siup_nib'],
|
||||
'siup_nib_doc' => $companyFileNames['company_siup_nib_doc'],
|
||||
'npwp' => $validatedData['company_npwp'],
|
||||
'npwp_doc' => $companyFileNames['company_npwp_doc'],
|
||||
'pkp' => $validatedData['company_pkp'],
|
||||
'pkp_doc' => $companyFileNames['company_pkp_doc'],
|
||||
'annual_tax_return' => $validatedData['company_annual_tax_return'],
|
||||
'annual_tax_return_doc' => $companyFileNames['company_annual_tax_return_doc'],
|
||||
'domicile_certificate' => $validatedData['company_domicile_certificate'],
|
||||
'domicile_certificate_doc' => $companyFileNames['company_domicile_certificate_doc'],
|
||||
'profile' => $validatedData['company_profile'],
|
||||
'profile_doc' => $companyFileNames['company_profile_doc'],
|
||||
'cooperation_request' => $validatedData['company_cooperation_request'],
|
||||
'cooperation_request_doc' => $companyFileNames['company_cooperation_request_doc'],
|
||||
'user_id' => $createdUser->id,
|
||||
]);
|
||||
|
||||
$mediaFiles = [
|
||||
'media_journalism_organization_doc',
|
||||
'media_press_council_certificate_doc'
|
||||
];
|
||||
|
||||
$mediaFileNames = [];
|
||||
foreach($mediaFiles as $file){
|
||||
$mediaFileNames[$file] = store_file($validatedData[$file], '/uploads/media', 'public')['randomFileName'];
|
||||
}
|
||||
|
||||
$createdMedia = Media::create([
|
||||
'name' => $validatedData['media_name'],
|
||||
'address' => $validatedData['media_address'],
|
||||
'link' => $validatedData['media_link'],
|
||||
'type' => $validatedData['media_type'],
|
||||
'classification' => $validatedData['media_classification'],
|
||||
'journalism_organization' => $validatedData['media_journalism_organization'],
|
||||
'journalism_organization_doc' => $mediaFileNames['media_journalism_organization_doc'],
|
||||
'press_council_certificate' => $validatedData['media_press_council_certificate'],
|
||||
'press_council_certificate_doc' => $mediaFileNames['media_press_council_certificate_doc'],
|
||||
'company_id' => $createdCompany->id,
|
||||
]);
|
||||
|
||||
$journalistFiles = [
|
||||
'journalist_press_card_doc',
|
||||
'journalist_ukw_sertificate_doc'
|
||||
];
|
||||
|
||||
$journalistFileNames = [];
|
||||
foreach($journalistFiles as $file){
|
||||
$journalistFileNames[$file] = store_file($validatedData[$file], '/uploads/journalists', 'public')['randomFileName'];
|
||||
}
|
||||
|
||||
$createdJournalist = Journalist::create([
|
||||
'name' => $validatedData['journalist_name'],
|
||||
'email' => $validatedData['journalist_email'],
|
||||
'phone_number' => $validatedData['journalist_phone_number'],
|
||||
'press_card' => $validatedData['journalist_press_card'],
|
||||
'press_card_doc' => $journalistFileNames['journalist_press_card_doc'],
|
||||
'ukw_sertificate' => $validatedData['journalist_ukw_sertificate'],
|
||||
'ukw_sertificate_doc' => $journalistFileNames['journalist_ukw_sertificate_doc'],
|
||||
'media_id' => $createdMedia->id,
|
||||
]);
|
||||
|
||||
DB::commit();
|
||||
return redirect()->route('auth.register.success');
|
||||
|
||||
}catch(\Exception $e){
|
||||
DB::rollBack();
|
||||
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
public function registerSuccess(){
|
||||
return view('auth.register-success', [
|
||||
'title' => 'Daftar Berhasil'
|
||||
]);
|
||||
}
|
||||
|
||||
public function logout(Request $request){
|
||||
Auth::logout();
|
||||
|
||||
$request->session()->invalidate();
|
||||
$request->session()->regenerateToken();
|
||||
|
||||
return redirect()->route('login');
|
||||
}
|
||||
}
|
||||
|
||||
77
app/Http/Requests/RegisterRequest.php
Normal file
77
app/Http/Requests/RegisterRequest.php
Normal file
@ -0,0 +1,77 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Validation\Rules\Password;
|
||||
|
||||
class RegisterRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*/
|
||||
public function authorize(): bool
|
||||
{
|
||||
return !Auth::check();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string>
|
||||
*/
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
// Login credential
|
||||
'name' => ['required'],
|
||||
'email' => ['required', 'email'],
|
||||
'password' => ['required', 'confirmed', Password::min(8)
|
||||
->mixedCase()
|
||||
->numbers()
|
||||
->symbols()],
|
||||
// Company
|
||||
'company_name' => ['required', 'max:100'],
|
||||
'company_email' => ['required', 'max:100', 'email'],
|
||||
'company_address' => ['required'],
|
||||
'company_director_name' => ['required', 'max:100'],
|
||||
'company_director_nik' => ['required', 'max:100'],
|
||||
'company_director_nik_doc' => ['required', 'file', 'mimes:pdf', 'max:2048'],
|
||||
'company_deed_incorporation' => ['required', 'max:100'],
|
||||
'company_deed_incorporation_doc' => ['required', 'file', 'mimes:pdf', 'max:2048'],
|
||||
'company_siup_nib' => ['required', 'max:100'],
|
||||
'company_siup_nib_doc' => ['required', 'file', 'mimes:pdf', 'max:2048'],
|
||||
'company_npwp' => ['required', 'max:100'],
|
||||
'company_npwp_doc' => ['required', 'file', 'mimes:pdf', 'max:2048'],
|
||||
'company_pkp' => ['required', 'max:100'],
|
||||
'company_pkp_doc' => ['required', 'file', 'mimes:pdf', 'max:2048'],
|
||||
'company_annual_tax_return' => ['required', 'max:100'],
|
||||
'company_annual_tax_return_doc' => ['required', 'file', 'mimes:pdf', 'max:2048'],
|
||||
'company_domicile_certificate' => ['required', 'max:100'],
|
||||
'company_domicile_certificate_doc' => ['required', 'file', 'mimes:pdf', 'max:2048'],
|
||||
'company_profile' => ['required', 'max:100'],
|
||||
'company_profile_doc' => ['required', 'file', 'mimes:pdf', 'max:2048'],
|
||||
'company_cooperation_request' => ['required', 'max:100'],
|
||||
'company_cooperation_request_doc' => ['required', 'file', 'mimes:pdf', 'max:2048'],
|
||||
// Media
|
||||
'media_name' => ['required', 'max:100'],
|
||||
'media_address' => ['required'],
|
||||
'media_link' => ['required'],
|
||||
'media_type' => ['required'],
|
||||
'media_classification' => ['required'],
|
||||
'media_journalism_organization' => ['required', 'max:100'],
|
||||
'media_journalism_organization_doc' => ['required', 'file', 'mimes:pdf', 'max:2048'],
|
||||
'media_press_council_certificate' => ['required', 'max:100'],
|
||||
'media_press_council_certificate_doc' => ['required', 'file', 'mimes:pdf', 'max:2048'],
|
||||
// Journalist
|
||||
'journalist_name' => ['required', 'max:100'],
|
||||
'journalist_email' => ['required', 'max:100', 'email'],
|
||||
'journalist_phone_number' => ['required', 'max:100'],
|
||||
'journalist_press_card' => ['required', 'max:100'],
|
||||
'journalist_press_card_doc' => ['required', 'file', 'mimes:pdf', 'max:2048'],
|
||||
'journalist_ukw_sertificate' => ['required', 'max:100'],
|
||||
'journalist_ukw_sertificate_doc' => ['required', 'file', 'mimes:pdf', 'max:2048'],
|
||||
];
|
||||
}
|
||||
}
|
||||
36
app/Models/Company.php
Normal file
36
app/Models/Company.php
Normal file
@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class Company extends Model
|
||||
{
|
||||
protected $table = 'companies';
|
||||
|
||||
protected $fillable = [
|
||||
'name',
|
||||
'email',
|
||||
'address',
|
||||
'director_name',
|
||||
'director_nik',
|
||||
'director_nik_doc',
|
||||
'deed_incorporation',
|
||||
'deed_incorporation_doc',
|
||||
'siup_nib',
|
||||
'siup_nib_doc',
|
||||
'npwp',
|
||||
'npwp_doc',
|
||||
'pkp',
|
||||
'pkp_doc',
|
||||
'annual_tax_return',
|
||||
'annual_tax_return_doc',
|
||||
'domicile_certificate',
|
||||
'domicile_certificate_doc',
|
||||
'profile',
|
||||
'profile_doc',
|
||||
'cooperation_request',
|
||||
'cooperation_request_doc',
|
||||
'user_id'
|
||||
];
|
||||
}
|
||||
21
app/Models/Journalist.php
Normal file
21
app/Models/Journalist.php
Normal file
@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class Journalist extends Model
|
||||
{
|
||||
protected $table = 'journalists';
|
||||
|
||||
protected $fillable = [
|
||||
'name',
|
||||
'email',
|
||||
'phone_number',
|
||||
'press_card',
|
||||
'press_card_doc',
|
||||
'ukw_sertificate',
|
||||
'ukw_sertificate_doc',
|
||||
'media_id',
|
||||
];
|
||||
}
|
||||
23
app/Models/Media.php
Normal file
23
app/Models/Media.php
Normal file
@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class Media extends Model
|
||||
{
|
||||
protected $table = 'media';
|
||||
|
||||
protected $fillable = [
|
||||
'name',
|
||||
'address',
|
||||
'link',
|
||||
'type',
|
||||
'classification',
|
||||
'journalism_organization',
|
||||
'journalism_organization_doc',
|
||||
'press_council_certificate',
|
||||
'press_council_certificate_doc',
|
||||
'company_id',
|
||||
];
|
||||
}
|
||||
15
app/Models/Role.php
Normal file
15
app/Models/Role.php
Normal file
@ -0,0 +1,15 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class Role extends Model
|
||||
{
|
||||
protected $table = 'user_roles';
|
||||
|
||||
protected $fillable = [
|
||||
'name',
|
||||
'description'
|
||||
];
|
||||
}
|
||||
@ -21,6 +21,8 @@ class User extends Authenticatable
|
||||
'name',
|
||||
'email',
|
||||
'password',
|
||||
'status',
|
||||
'role_id'
|
||||
];
|
||||
|
||||
/**
|
||||
|
||||
@ -27,7 +27,10 @@
|
||||
"App\\": "app/",
|
||||
"Database\\Factories\\": "database/factories/",
|
||||
"Database\\Seeders\\": "database/seeders/"
|
||||
}
|
||||
},
|
||||
"files": [
|
||||
"app/Helpers/CustomHelper.php"
|
||||
]
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": {
|
||||
@ -71,4 +74,4 @@
|
||||
},
|
||||
"minimum-stability": "stable",
|
||||
"prefer-stable": true
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::create('user_roles', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->string('name');
|
||||
$table->text('description')->nullable();
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('roles');
|
||||
}
|
||||
};
|
||||
@ -17,6 +17,9 @@ public function up(): void
|
||||
$table->string('email')->unique();
|
||||
$table->timestamp('email_verified_at')->nullable();
|
||||
$table->string('password');
|
||||
$table->enum('status', ['0', '1', '2'])->default('0');
|
||||
$table->unsignedBigInteger('role_id');
|
||||
$table->foreign('role_id')->references('id')->on('user_roles');
|
||||
$table->rememberToken();
|
||||
$table->timestamps();
|
||||
});
|
||||
|
||||
@ -0,0 +1,51 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::create('companies', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->string('name');
|
||||
$table->string('email');
|
||||
$table->text('address');
|
||||
$table->string('director_name');
|
||||
$table->string('director_nik');
|
||||
$table->string('director_nik_doc')->nullable();
|
||||
$table->string('deed_incorporation');
|
||||
$table->string('deed_incorporation_doc')->nullable();
|
||||
$table->string('siup_nib');
|
||||
$table->string('siup_nib_doc')->nullable();
|
||||
$table->string('npwp');
|
||||
$table->string('npwp_doc')->nullable();
|
||||
$table->string('pkp');
|
||||
$table->string('pkp_doc')->nullable();
|
||||
$table->string('annual_tax_return');
|
||||
$table->string('annual_tax_return_doc')->nullable();
|
||||
$table->string('domicile_certificate');
|
||||
$table->string('domicile_certificate_doc')->nullable();
|
||||
$table->string('profile');
|
||||
$table->string('profile_doc')->nullable();
|
||||
$table->string('cooperation_request');
|
||||
$table->string('cooperation_request_doc')->nullable();
|
||||
$table->unsignedBigInteger('user_id');
|
||||
$table->foreign('user_id')->references('id')->on('users');
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('companies');
|
||||
}
|
||||
};
|
||||
38
database/migrations/2025_02_25_024752_create_media_table.php
Normal file
38
database/migrations/2025_02_25_024752_create_media_table.php
Normal file
@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::create('media', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->string('name');
|
||||
$table->text('address');
|
||||
$table->string('link');
|
||||
$table->enum('type', ['online','print','radio','television']);
|
||||
$table->enum('classification', ['local', 'regional', 'national']);
|
||||
$table->string('journalism_organization');
|
||||
$table->string('journalism_organization_doc')->nullable();
|
||||
$table->string('press_council_certificate');
|
||||
$table->string('press_council_certificate_doc')->nullable();
|
||||
$table->unsignedBigInteger('company_id');
|
||||
$table->foreign('company_id')->references('id')->on('companies');
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('media');
|
||||
}
|
||||
};
|
||||
@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::create('journalists', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->string('name');
|
||||
$table->string('email');
|
||||
$table->string('phone_number');
|
||||
$table->string('press_card');
|
||||
$table->string('press_card_doc')->nullable();
|
||||
$table->string('ukw_sertificate');
|
||||
$table->string('ukw_sertificate_doc')->nullable();
|
||||
$table->unsignedBigInteger('media_id');
|
||||
$table->foreign('media_id')->references('id')->on('media');
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('journalists');
|
||||
}
|
||||
};
|
||||
17
database/seeders/CompanySeeder.php
Normal file
17
database/seeders/CompanySeeder.php
Normal file
@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class CompanySeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* Run the database seeds.
|
||||
*/
|
||||
public function run(): void
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
@ -13,11 +13,7 @@ class DatabaseSeeder extends Seeder
|
||||
*/
|
||||
public function run(): void
|
||||
{
|
||||
// User::factory(10)->create();
|
||||
|
||||
User::factory()->create([
|
||||
'name' => 'Test User',
|
||||
'email' => 'test@example.com',
|
||||
]);
|
||||
$this->call(RoleSeeder::class);
|
||||
$this->call(UserSeeder::class);
|
||||
}
|
||||
}
|
||||
|
||||
17
database/seeders/JournalistSeeder.php
Normal file
17
database/seeders/JournalistSeeder.php
Normal file
@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class JournalistSeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* Run the database seeds.
|
||||
*/
|
||||
public function run(): void
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
17
database/seeders/MediaSeeder.php
Normal file
17
database/seeders/MediaSeeder.php
Normal file
@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class MediaSeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* Run the database seeds.
|
||||
*/
|
||||
public function run(): void
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
23
database/seeders/RoleSeeder.php
Normal file
23
database/seeders/RoleSeeder.php
Normal file
@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Models\Role;
|
||||
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class RoleSeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* Run the database seeds.
|
||||
*/
|
||||
public function run(): void
|
||||
{
|
||||
Role::insert([
|
||||
['name' => "Administrator", 'description' => null],
|
||||
['name' => "Monitoring Admin", 'description' => null],
|
||||
['name' => "Company", 'description' => null],
|
||||
['name' => "Content Admin", 'description' => null],
|
||||
]);
|
||||
}
|
||||
}
|
||||
24
database/seeders/UserSeeder.php
Normal file
24
database/seeders/UserSeeder.php
Normal file
@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Models\User;
|
||||
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class UserSeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* Run the database seeds.
|
||||
*/
|
||||
public function run(): void
|
||||
{
|
||||
$createdUser = User::create([
|
||||
'name' => 'Administrator',
|
||||
'email' => 'admin@gmail.com',
|
||||
'password' => 'Rahasia123@',
|
||||
'status' => '1',
|
||||
'role_id' => '1'
|
||||
]);
|
||||
}
|
||||
}
|
||||
@ -3,3 +3,29 @@ .auth-validation-error{
|
||||
color: red;
|
||||
font-size: 0.7rem;
|
||||
}
|
||||
|
||||
.required-input{
|
||||
color: red;
|
||||
font-weight: bolder;
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
|
||||
#password-strength-status {
|
||||
margin-top: 5px;
|
||||
font-size: 12px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.invalid {
|
||||
color: red;
|
||||
border-color: red;
|
||||
}
|
||||
|
||||
.valid {
|
||||
color: green;
|
||||
border-color: green;
|
||||
}
|
||||
|
||||
input:focus {
|
||||
outline: none; /* Menghilangkan outline default */
|
||||
}
|
||||
|
||||
@ -8,7 +8,7 @@ .email-wraper {
|
||||
width: 100%;
|
||||
}
|
||||
.email-wraper a {
|
||||
color: #854fff;
|
||||
color: #3572EF;
|
||||
word-break: break-all;
|
||||
}
|
||||
.email-wraper .link-block {
|
||||
@ -46,7 +46,7 @@ .email-warning {
|
||||
border-bottom: #f4bd0e;
|
||||
}
|
||||
.email-btn {
|
||||
background: #854fff;
|
||||
background: #3572EF;
|
||||
border-radius: 4px;
|
||||
color: #ffffff !important;
|
||||
display: inline-block;
|
||||
@ -71,12 +71,12 @@ .email-logo {
|
||||
}
|
||||
.email-title {
|
||||
font-size: 13px;
|
||||
color: #854fff;
|
||||
color: #3572EF;
|
||||
padding-top: 12px;
|
||||
}
|
||||
.email-heading {
|
||||
font-size: 18px;
|
||||
color: #854fff;
|
||||
color: #3572EF;
|
||||
font-weight: 600;
|
||||
margin: 0;
|
||||
line-height: 1.4;
|
||||
@ -101,7 +101,7 @@ .email-heading-s2 {
|
||||
}
|
||||
.email-heading-s3 {
|
||||
font-size: 18px;
|
||||
color: #854fff;
|
||||
color: #3572EF;
|
||||
font-weight: 400;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
@ -144,4 +144,4 @@ @media (max-width: 480px) {
|
||||
.email-ul-col2 li {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
29
public/assets/dashboard/js/custom.js
Normal file
29
public/assets/dashboard/js/custom.js
Normal file
@ -0,0 +1,29 @@
|
||||
document.getElementById("email").addEventListener("keyup", function() {
|
||||
var password = this.value;
|
||||
var strengthStatus = document.getElementById("password-strength-status");
|
||||
var colorClass = '';
|
||||
|
||||
console.log("Password input:", password); // Menambahkan log untuk debug
|
||||
|
||||
// Regex untuk memeriksa kriteria kata sandi
|
||||
var hasUpper = /[A-Z]/.test(password); // Memeriksa huruf besar
|
||||
var hasLower = /[a-z]/.test(password); // Memeriksa huruf kecil
|
||||
var hasNumber = /\d/.test(password); // Memeriksa angka
|
||||
var hasSymbol = /[!@#$%^&*(),.?":{}|<>]/.test(password); // Memeriksa simbol
|
||||
|
||||
// Cek apakah kata sandi memenuhi semua kriteria
|
||||
if (hasUpper && hasLower && hasNumber && hasSymbol) {
|
||||
strengthStatus.textContent = 'Kata sandi valid';
|
||||
colorClass = 'valid'; // Jika valid, set warna hijau
|
||||
} else {
|
||||
strengthStatus.textContent = 'Kata sandi tidak memenuhi syarat';
|
||||
colorClass = 'invalid'; // Jika tidak memenuhi syarat, set warna merah
|
||||
}
|
||||
|
||||
// Ubah warna input dan border sesuai dengan status
|
||||
this.classList.remove("invalid", "valid");
|
||||
this.classList.add(colorClass);
|
||||
|
||||
// Set warna indikator kekuatan
|
||||
strengthStatus.className = colorClass;
|
||||
});
|
||||
@ -118,7 +118,7 @@
|
||||
|
||||
NioApp.PassSwitch = function () {
|
||||
NioApp.Passcode('.passcode-switch');
|
||||
}; // Toastr Message @v1.0
|
||||
}; // Toastr Message @v1.0
|
||||
|
||||
|
||||
NioApp.Toast = function (msg, ttype, opt) {
|
||||
@ -456,9 +456,9 @@
|
||||
headerTag: ".nk-wizard-head",
|
||||
bodyTag: ".nk-wizard-content",
|
||||
labels: {
|
||||
finish: "Submit",
|
||||
finish: "Daftar",
|
||||
next: "Lanjut",
|
||||
previous: "Prev",
|
||||
previous: "Kembali",
|
||||
loading: "Loading ..."
|
||||
},
|
||||
titleTemplate: '<span class="number"></span> #title#',
|
||||
@ -483,7 +483,7 @@
|
||||
return $self_id.valid();
|
||||
},
|
||||
onFinished: function onFinished(event, currentIndex) {
|
||||
window.location.href = "#";
|
||||
$self_id.submit();
|
||||
}
|
||||
}).validate({
|
||||
errorElement: "span",
|
||||
@ -999,4 +999,4 @@
|
||||
|
||||
NioApp.init();
|
||||
return NioApp;
|
||||
}(NioApp, jQuery);
|
||||
}(NioApp, jQuery);
|
||||
|
||||
BIN
public/assets/defaults/checked.png
Normal file
BIN
public/assets/defaults/checked.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 14 KiB |
BIN
public/assets/defaults/facebook.png
Normal file
BIN
public/assets/defaults/facebook.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.2 KiB |
BIN
public/assets/defaults/instagram.png
Normal file
BIN
public/assets/defaults/instagram.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 16 KiB |
BIN
public/assets/defaults/twitter.png
Normal file
BIN
public/assets/defaults/twitter.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 13 KiB |
BIN
public/assets/defaults/youtube.png
Normal file
BIN
public/assets/defaults/youtube.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 13 KiB |
@ -75,7 +75,7 @@
|
||||
</div>
|
||||
</form><!-- form -->
|
||||
<div class="text-center mt-5">
|
||||
<span class="fw-500">Belum memiliki akun? <a href="#">Buat akun</a></span>
|
||||
<span class="fw-500">Belum memiliki akun? <a href="{{route('auth.register')}}">Buat akun</a></span>
|
||||
</div>
|
||||
</div><!-- .nk-block -->
|
||||
<div class="nk-block nk-auth-footer">
|
||||
|
||||
107
resources/views/auth/register-success.blade.php
Normal file
107
resources/views/auth/register-success.blade.php
Normal file
@ -0,0 +1,107 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zxx" class="js">
|
||||
|
||||
<head>
|
||||
<base href="../">
|
||||
<meta charset="utf-8">
|
||||
<meta name="author" content="Softnio">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="description" content="A powerful and conceptual apps base dashboard template that especially build for developers and programmers.">
|
||||
<!-- Fav Icon -->
|
||||
<link rel="shortcut icon" href="./images/favicon.png">
|
||||
<!-- Page Title -->
|
||||
<title>{{$title}} - App Name</title>
|
||||
<!-- StyleSheets -->
|
||||
<link rel="stylesheet" href="{{asset('assets/dashboard/css/dashlite.css?ver=3.0.3')}}">
|
||||
<link id="skin-default" rel="stylesheet" href="{{asset('assets/dashboard/css/theme.css?ver=3.0.3')}}">
|
||||
<link rel="stylesheet" href="{{asset('assets/dashboard/css/style-email.css')}}">
|
||||
</head>
|
||||
|
||||
<body class="nk-body bg-lighter npc-default has-sidebar ">
|
||||
<div class="nk-app-root">
|
||||
<!-- main @s -->
|
||||
<div class="nk-main ">
|
||||
<!-- wrap @s -->
|
||||
<div class="nk-wrap ">
|
||||
<!-- content @s -->
|
||||
<div class="nk-content ">
|
||||
<div class="container-fluid">
|
||||
<div class="nk-content-inner">
|
||||
<div class="nk-content-body">
|
||||
<div class="content-page wide-md m-auto">
|
||||
<!-- here -->
|
||||
<div class="nk-block">
|
||||
<div class="card">
|
||||
<div class="card-inner">
|
||||
<table class="email-wraper">
|
||||
<tr>
|
||||
<td class="py-5">
|
||||
<table class="email-header">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="text-center pb-4">
|
||||
<a href="#"><img class="email-logo" src="{{asset('assets/defaults/simedkom-logo-full.png')}}" alt="logo"></a>
|
||||
<p class="email-title">Sistem Media Komunikasi Kabupaten Purwakarta</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="email-body text-center">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="px-3 px-sm-5 pt-3 pt-sm-5 pb-4">
|
||||
<img class="w-100px" src="{{asset('assets/defaults/checked.png')}}" alt="Verified">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="px-3 px-sm-5 pb-3 pb-sm-5">
|
||||
<h5 class="text-success mb-3">Akun Anda berhasil dibuat.</h5>
|
||||
<p>Kami telah menerima pendaftaran Anda. Harap tunggu hingga akun Anda diverifikasi oleh admin sebelum dapat digunakan. Anda hanya dapat login menggunakan akun yang sudah terverifikasi. Terimakasih.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="px-3 px-sm-5 pb-3 pb-sm-5">
|
||||
<a href="{{route('login')}}">Kembali</a>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="email-footer">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="text-center pt-4">
|
||||
<p class="email-copyright-text">Copyright © 2025 Diskominfo Purwakarta. All rights reserved.</p>
|
||||
<ul class="email-social">
|
||||
<li><a href="javascript:void(0);"><img src="{{asset('assets/defaults/instagram.png')}}" alt=""></a></li>
|
||||
<li><a href="javascript:void(0);"><img src="{{asset('assets/defaults/facebook.png')}}" alt=""></a></li>
|
||||
<li><a href="javascript:void(0);"><img src="{{asset('assets/defaults/youtube.png')}}" alt=""></a></li>
|
||||
<li><a href="javascript:void(0);"><img src="{{asset('assets/defaults/twitter.png')}}" alt=""></a></li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- .nk-block -->
|
||||
</div><!-- .content-page -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- content @e -->
|
||||
</div>
|
||||
<!-- wrap @e -->
|
||||
</div>
|
||||
<!-- main @e -->
|
||||
</div>
|
||||
<!-- app-root @e -->
|
||||
<!-- JavaScript -->
|
||||
<script src="{{asset('assets/dashboard/js/bundle.js?ver=3.0.3')}}"></script>
|
||||
<script src="{{asset('assets/dashboard/js/scripts.js?ver=3.0.3')}}"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
620
resources/views/auth/register.blade.php
Normal file
620
resources/views/auth/register.blade.php
Normal file
@ -0,0 +1,620 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zxx" class="js">
|
||||
|
||||
<head>
|
||||
<base href="../../../">
|
||||
<meta charset="utf-8">
|
||||
<meta name="author" content="Softnio">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="description" content="A powerful and conceptual apps base dashboard template that especially build for developers and programmers.">
|
||||
<!-- Fav Icon -->
|
||||
<link rel="shortcut icon" href="{{asset('assets/defaults/simedkom-logo-circle.png')}}">
|
||||
<!-- Page Title -->
|
||||
<title>Register | App Name</title>
|
||||
<!-- StyleSheets -->
|
||||
<link rel="stylesheet" href="{{asset('assets/dashboard/css/dashlite.css?ver=3.0.3')}}">
|
||||
<link rel="stylesheet" href="{{asset('assets/dashboard/css/custom.css')}}">
|
||||
<link id="skin-default" rel="stylesheet" href="{{asset('assets/dashboard/css/theme.css?ver=3.0.3')}}">
|
||||
</head>
|
||||
|
||||
<body class="nk-body bg-white npc-default pg-auth">
|
||||
<div class="nk-app-root">
|
||||
<!-- main @s -->
|
||||
<div class="nk-main ">
|
||||
<!-- wrap @s -->
|
||||
<div class="nk-wrap nk-wrap-nosidebar">
|
||||
<!-- content @s -->
|
||||
<div class="nk-content ">
|
||||
<div class="nk-split nk-split-page nk-split-md">
|
||||
<div class="nk-split-content nk-block-area nk-block-area-column nk-auth-container bg-white w-lg-45">
|
||||
<div class="nk-block nk-block-middle nk-auth-body">
|
||||
<div class="brand-logo pb-5">
|
||||
<a href="html/index.html" class="logo-link">
|
||||
<img class="logo-light logo-img logo-img-lg" src="{{asset('assets/defaults/simedkom-logo-full.png')}}" srcset="{{asset('assets/defaults/simedkom-logo-full.png')}}" alt="logo">
|
||||
<img class="logo-dark logo-img logo-img-lg" src="{{asset('assets/defaults/simedkom-logo-full.png')}}" srcset="{{asset('assets/defaults/simedkom-logo-full.png')}}" alt="logo-dark">
|
||||
</a>
|
||||
</div>
|
||||
<div class="nk-block-head">
|
||||
<div class="nk-block-head-content">
|
||||
@foreach ($errors->all() as $err)
|
||||
{{ $err . " " }}
|
||||
@endforeach
|
||||
<h5 class="nk-block-title">Daftar Akun</h5>
|
||||
<div class="nk-block-des">
|
||||
<p>Buat akun baru untuk mengakses panel.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- .nk-block-head -->
|
||||
<form action="{{route('auth.register.action')}}" class="nk-wizard nk-wizard-simple is-alter" id="wizard-01" method="post" enctype="multipart/form-data">
|
||||
@csrf
|
||||
<div class="nk-wizard-head">
|
||||
<h5>Step 1</h5>
|
||||
</div>
|
||||
<div class="nk-wizard-content">
|
||||
<div class="row gy-3">
|
||||
<h5>Kredensial Login</h5>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="name">Nama Lengkap<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="text" class="form-control required" required id="name" name="name" placeholder="Masukan nama lengkap" value="{{old('name')}}">
|
||||
</div>
|
||||
@error('name')
|
||||
<span class="auth-validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="email">Email<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="text" class="form-control required" required id="email" name="email" placeholder="Masukan email" value="{{old('email')}}">
|
||||
</div>
|
||||
@error('email')
|
||||
<span class="auth-validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="password">Kata Sandi<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="password" class="form-control required" required id="password" name="password" placeholder="Masukan kata sandi">
|
||||
<div id="password-strength-status"></div>
|
||||
</div>
|
||||
@error('password')
|
||||
<span class="auth-validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="password-confirmation">Ulangi Kata Sandi<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="password" class="form-control required" required id="password-confirmation" name="password_confirmation" placeholder="Ulangi kata sandi">
|
||||
</div>
|
||||
@error('repeat_password')
|
||||
<span class="auth-validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="nk-wizard-head">
|
||||
<h5>Step 2</h5>
|
||||
</div>
|
||||
<div class="nk-wizard-content">
|
||||
<div class="row gy-3">
|
||||
<h5>Data Perusahaan</h5>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="company-name">Nama Perusahaan<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="text" class="form-control required" required id="company-name" name="company_name" placeholder="Masukan nama perusahaan" value="{{old('company_name')}}">
|
||||
</div>
|
||||
@error('company_name')
|
||||
<span class="auth-validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="company-email">Email Perusahaan<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="text" class="form-control required" required id="company-email" name="company_email" placeholder="Masukan email perusahaan" value="{{old('company_email')}}">
|
||||
</div>
|
||||
@error('company_email')
|
||||
<span class="auth-validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="company_address">Alamat Perusahaan<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<textarea class="form-control form-control-sm required" required id="company_address" placeholder="Masukan alamat perusahaan" name="company_address">{{old('company_address')}}</textarea>
|
||||
@error('company_email')
|
||||
<span class="auth-validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="company-director-name">Direktur Perusahaan<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="text" class="form-control required" required id="company-director-name" name="company_director_name" placeholder="Masukan direktur perusahaan" value="{{old('company_director_name')}}">
|
||||
</div>
|
||||
@error('company_director_name')
|
||||
<span class="auth-validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="company-director-nik">NIK Direktur<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="text" class="form-control required" required id="company-director-nik" name="company_director_nik" placeholder="Masukan NIK direktur perusahaan" value="{{old('company_director_nik')}}">
|
||||
</div>
|
||||
@error('company_director_nik')
|
||||
<span class="auth-validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="company-director-nik-document">Dokumen NIK Direktur</label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="file" accept=".pdf" class="form-control" id="company-director-nik-document" name="company_director_nik_doc">
|
||||
</div>
|
||||
@error('company_director_nik_doc')
|
||||
<span class="auth-validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="deed-incorporation">Akta Pendirian<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="text" class="form-control required" required id="deed-incorporation" name="company_deed_incorporation" placeholder="Masukan akta pendirian" value="{{old('company_deed_incorporation')}}">
|
||||
</div>
|
||||
@error('company_deed_incorporation')
|
||||
<span class="auth-validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="deed-incorporation-document">Dokumen Akta Pendirian</label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="file" accept=".pdf" class="form-control" id="deed-incorporation-document" name="company_deed_incorporation_doc">
|
||||
</div>
|
||||
@error('company_deed_incorporation_doc')
|
||||
<span class="auth-validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="siup-nib">SIUP / NIB<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="text" class="form-control required" required id="siup-nib" name="company_siup_nib" placeholder="Masukan SIUP / NIB" value="{{old('company_siup_nib')}}">
|
||||
</div>
|
||||
@error('company_siup_nib')
|
||||
<span class="auth-validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="siup-nib-document">Dokumen SIUP / NIB</label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="file" accept=".pdf" class="form-control" id="siup-nib-document" name="company_siup_nib_doc">
|
||||
</div>
|
||||
@error('company_siup_nib_doc')
|
||||
<span class="auth-validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="npwp">NPWP<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="text" class="form-control required" required id="npwp" name="company_npwp" placeholder="Masukan NPWP" value="{{old('company_npwp')}}">
|
||||
</div>
|
||||
@error('company_npwp')
|
||||
<span class="auth-validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="npwp-document">Dokumen NPWP</label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="file" accept=".pdf" class="form-control" id="npwp-document" name="company_npwp_doc">
|
||||
</div>
|
||||
@error('company_npwp_doc')
|
||||
<span class="auth-validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="pkp">PKP<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="text" class="form-control required" required id="pkp" name="company_pkp" placeholder="Masukan PKP" value="{{old('company_pkp')}}">
|
||||
</div>
|
||||
@error('company_pkp')
|
||||
<span class="auth-validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="pkp-document">Dokumen PKP</label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="file" accept=".pdf" class="form-control" id="pkp-document" name="company_pkp_doc">
|
||||
</div>
|
||||
@error('company_pkp_doc')
|
||||
<span class="auth-validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="annual-tax-return">SPT Tahunan<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="text" class="form-control required" required id="annual-tax-return" name="company_annual_tax_return" placeholder="Masukan SPT Tahunan" value="{{old('company_annual_tax_return')}}">
|
||||
</div>
|
||||
@error('company_annual_tax_return')
|
||||
<span class="auth-validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="annual-tax-return-document">Dokumen SPT Tahunan</label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="file" accept=".pdf" class="form-control" id="annual-tax-return-document" name="company_annual_tax_return_doc">
|
||||
</div>
|
||||
@error('company_annual_tax_return_doc')
|
||||
<span class="auth-validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="domicile-certificate">Suket Domisili<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="text" class="form-control required" required id="domicile-certificate" name="company_domicile_certificate" placeholder="Masukan suket domisili" value="{{old('company_domicile_certificate')}}">
|
||||
</div>
|
||||
@error('company_domicile_certificate')
|
||||
<span class="auth-validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="domicile-certificate-document">Dokumen Suket Domisili</label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="file" accept=".pdf" class="form-control" id="domicile-certificate-document" name="company_domicile_certificate_doc">
|
||||
</div>
|
||||
@error('company_domicile_certificate_doc')
|
||||
<span class="auth-validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="company-profile">Profil Perusahaan<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="text" class="form-control required" required id="company-profile" name="company_profile" placeholder="Masukan profil perusahaan" value="{{old('company_profile')}}">
|
||||
</div>
|
||||
@error('company_profile')
|
||||
<span class="auth-validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="company-profile-document">Dokumen Profil Perusahaan<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="file" accept=".pdf" class="form-control required" required id="company-profile-document" name="company_profile_doc">
|
||||
</div>
|
||||
@error('company_profile_doc')
|
||||
<span class="auth-validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="cooperation-request">Permohonan Kerjasama<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="text" class="form-control required" required id="cooperation-request" name="company_cooperation_request" placeholder="Masukan permohonan kerjasama" value="{{old('company_cooperation_request')}}">
|
||||
</div>
|
||||
@error('company_cooperation_request')
|
||||
<span class="auth-validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="cooperation-request-document">Dokumen Permohonan Kerjasama</label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="file" accept=".pdf" class="form-control" id="cooperation-request-document" name="company_cooperation_request_doc">
|
||||
</div>
|
||||
@error('company_cooperation_request_doc')
|
||||
<span class="auth-validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- .row -->
|
||||
</div>
|
||||
<div class="nk-wizard-head">
|
||||
<h5>Step 3</h5>
|
||||
</div>
|
||||
<div class="nk-wizard-content">
|
||||
<div class="row gy-2">
|
||||
<h5>Data Media</h5>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="media-name">Nama Media<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="text" class="form-control required" required id="media-name" name="media_name" placeholder="Masukan nama media" value="{{old('media_name')}}">
|
||||
</div>
|
||||
@error('media_name')
|
||||
<span class="auth-validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="media-address">Alamat Media<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<textarea class="form-control form-control-sm required" required id="media-address" placeholder="Masukan alamat perusahaan" name="media_address">{{old('media_address')}}</textarea>
|
||||
@error('media_address')
|
||||
<span class="auth-validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
@error('media_address')
|
||||
<span class="auth-validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="media-link">Link Media<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="text" class="form-control required" required id="media-link" name="media_link" placeholder="Masukan nama media" value="{{old('media_link')}}">
|
||||
</div>
|
||||
@error('media_link')
|
||||
<span class="auth-validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<label class="form-label">Jenis<span class="required-input">*</span></label>
|
||||
<ul class="d-flex flex-wrap g-2">
|
||||
<li>
|
||||
<div class="custom-control custom-radio">
|
||||
<input type="radio" class="custom-control-input" name="media_type" id="online" value="online" {{ old('media_type') == 'online' ? 'checked' : '' }}>
|
||||
<label class="custom-control-label" for="online">Online</label>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="custom-control custom-radio">
|
||||
<input type="radio" class="custom-control-input" name="media_type" id="print" value="print" {{ old('media_type') == 'print' ? 'checked' : '' }}>
|
||||
<label class="custom-control-label" for="print">Cetak</label>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="custom-control custom-radio">
|
||||
<input type="radio" class="custom-control-input" name="media_type" id="radio" value="radio" {{ old('media_type') == 'radio' ? 'checked' : '' }}>
|
||||
<label class="custom-control-label" for="radio">Radio</label>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="custom-control custom-radio">
|
||||
<input type="radio" class="custom-control-input" name="media_type" id="television" value="television" {{ old('media_type') == 'television' ? 'checked' : '' }}>
|
||||
<label class="custom-control-label" for="television">Televisi</label>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
@error('media_type')
|
||||
<span class="auth-validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<label class="form-label">Klasifikasi<span class="required-input">*</span></label>
|
||||
<ul class="d-flex flex-wrap g-2">
|
||||
<li>
|
||||
<div class="custom-control custom-radio">
|
||||
<input type="radio" class="custom-control-input" name="media_classification" id="local" value="local" {{ old('media_classification') == 'local' ? 'checked' : '' }}>
|
||||
<label class="custom-control-label" for="local">Lokal</label>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="custom-control custom-radio">
|
||||
<input type="radio" class="custom-control-input" name="media_classification" id="regional" value="regional" {{ old('media_classification') == 'regional' ? 'checked' : '' }}>
|
||||
<label class="custom-control-label" for="regional">Regional</label>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="custom-control custom-radio">
|
||||
<input type="radio" class="custom-control-input" name="media_classification" id="national" value="national" {{ old('media_classification') == 'national' ? 'checked' : '' }}>
|
||||
<label class="custom-control-label" for="national">Nasional</label>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
@error('media_classification')
|
||||
<span class="auth-validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="journalism-organization">Organisasi Kewartawanan<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="text" class="form-control required" required id="journalism-organization" name="media_journalism_organization" placeholder="Masukan organisasi kewartawanan" value="{{old('media_journalism_organization')}}">
|
||||
</div>
|
||||
@error('media_journalism_organization')
|
||||
<span class="auth-validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="journalism-organization-document">Dokumen Organisasi Kewartawanan</label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="file" accept=".pdf" class="form-control" id="journalism-organization-document" name="media_journalism_organization_doc">
|
||||
</div>
|
||||
@error('media_journalism_organization_doc')
|
||||
<span class="auth-validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="press-council-certificate">Sertifikat Dewan Pers<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="text" class="form-control required" required id="press-council-certificate" name="media_press_council_certificate" placeholder="Masukan sertifikat dewan pers" value="{{old('media_press_council_certificate')}}">
|
||||
</div>
|
||||
@error('media_press_council_certificate')
|
||||
<span class="auth-validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="press-council-certificate-document">Dokumen Sertifikat Dewan Pers</label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="file" accept=".pdf" class="form-control" id="press-council-certificate-document" name="media_press_council_certificate_doc">
|
||||
</div>
|
||||
@error('media_press_council_certificate_doc')
|
||||
<span class="auth-validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- .row -->
|
||||
</div>
|
||||
<div class="nk-wizard-head">
|
||||
<h5>Step 4</h5>
|
||||
</div>
|
||||
<div class="nk-wizard-content">
|
||||
<div class="row gy-2">
|
||||
<h5>Data Jurnalis</h5>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="journalist-name">Nama Jurnalis<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="text" class="form-control required" required id="journalist-name" name="journalist_name" placeholder="Masukan nama jurnalis" value="{{old('journalist_name')}}">
|
||||
</div>
|
||||
@error('journalist_name')
|
||||
<span class="auth-validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="journalist-email">Email Jurnalis<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="email" class="form-control required" required id="journalist-email" name="journalist_email" placeholder="Masukan email jurnalis" value="{{old('journalist_email')}}">
|
||||
</div>
|
||||
@error('journalist_email')
|
||||
<span class="auth-validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="journalist-phone-number">Nomor Telepon<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="text" class="form-control required" required id="journalist-phone-number" name="journalist_phone_number" placeholder="Masukan nonor telepon jurnalis" value="{{old('journalist_phone_number')}}">
|
||||
</div>
|
||||
@error('journalist_phone_number')
|
||||
<span class="auth-validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="journalist-press-card">Kartu Pers<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="text" class="form-control required" required id="journalist-press-card" name="journalist_press_card" placeholder="Masukan kartu pers" value="{{old('journalist_press_card')}}">
|
||||
</div>
|
||||
@error('journalist_press_card')
|
||||
<span class="auth-validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="journalist-press-card-document">Dokumen Kartu Pers<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="file" accept=".pdf" class="form-control" id="journalist-press-card-document" name="journalist_press_card_doc">
|
||||
</div>
|
||||
@error('journalist_press_card_doc')
|
||||
<span class="auth-validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="ukw-sertificate">Sertifikat UKW<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="text" class="form-control required" required id="ukw-sertificate" name="journalist_ukw_sertificate" placeholder="Masukan sertifikat UKW" value="{{old('journalist_ukw_sertificate')}}">
|
||||
</div>
|
||||
@error('journalist_ukw_sertificate')
|
||||
<span class="auth-validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="ukw-sertificate-document">Dokumen Sertifikat UKW<span class="required-input">*</span></label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="file" accept=".pdf" class="form-control" id="ukw-sertificate-document" name="journalist_ukw_sertificate_doc">
|
||||
</div>
|
||||
@error('journalist_ukw_sertificate_doc')
|
||||
<span class="auth-validation-error">{{$message}}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- .row -->
|
||||
</div>
|
||||
</form>
|
||||
<div class="form-note-s2 pt-4">Sudah memiliki akun ? <a href="{{route('login')}}"><strong>Masuk</strong></a>
|
||||
</div>
|
||||
</div><!-- .nk-block -->
|
||||
<div class="nk-block nk-auth-footer">
|
||||
<div class="mt-3 text-center">
|
||||
<p>© 2025 Diskominfo Purwakarta</p>
|
||||
</div>
|
||||
</div><!-- .nk-block -->
|
||||
</div><!-- nk-split-content -->
|
||||
<div class="nk-split-content nk-split-stretch bg-abstract"></div><!-- nk-split-content -->
|
||||
</div><!-- nk-split -->
|
||||
</div>
|
||||
<!-- wrap @e -->
|
||||
</div>
|
||||
<!-- content @e -->
|
||||
</div>
|
||||
<!-- main @e -->
|
||||
</div>
|
||||
<!-- app-root @e -->
|
||||
<!-- JavaScript -->
|
||||
<script src="{{asset('assets/dashboard/js/bundle.js?ver=3.0.3')}}"></script>
|
||||
<script src="{{asset('assets/dashboard/js/scripts.js?ver=3.0.3')}}"></script>
|
||||
<script src="{{asset('assets/dashboard/js/libs/tagify.js?ver=3.0.3')}}"></script>
|
||||
<script src="{{asset('assets/dashboard/js/custom.js')}}"></script>
|
||||
{{-- <script>
|
||||
// Menambahkan log untuk memastikan script berjalan
|
||||
console.log("Script loaded!");
|
||||
|
||||
document.getElementById("password").addEventListener("input", function() {
|
||||
var password = this.value;
|
||||
console.log("Password input:", password);
|
||||
});
|
||||
</script> --}}
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@ -7,13 +7,20 @@
|
||||
return view('welcome');
|
||||
});
|
||||
|
||||
Route::controller(AuthController::class)->group(function(){
|
||||
Route::prefix('auth')->group(function(){
|
||||
Route::prefix('auth')->group(function(){
|
||||
Route::controller(AuthController::class)->group(function(){
|
||||
Route::get('/login', 'login')->name('login');
|
||||
|
||||
Route::name('auth.')->group(function(){
|
||||
Route::post('/login', 'loginAction')->name('login.action');
|
||||
Route::get('/register', 'register')->name('register');
|
||||
Route::post('/register', 'registerAction')->name('register.action');
|
||||
Route::get('/register-success', 'registerSuccess')->name('register.success');
|
||||
Route::get('/logout', 'logout')->name('logout');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Route::middleware(['auth'])->group(function(){
|
||||
|
||||
});
|
||||
|
||||
Loading…
Reference in New Issue
Block a user