Enhance refactor commands with controller-aware Route() updates and fix code quality violations
Add semantic token highlighting for 'that' variable and comment file references in VS Code extension Add Phone_Text_Input and Currency_Input components with formatting utilities Implement client widgets, form standardization, and soft delete functionality Add modal scroll lock and update documentation Implement comprehensive modal system with form integration and validation Fix modal component instantiation using jQuery plugin API Implement modal system with responsive sizing, queuing, and validation support Implement form submission with validation, error handling, and loading states Implement country/state selectors with dynamic data loading and Bootstrap styling Revert Rsx::Route() highlighting in Blade/PHP files Target specific PHP scopes for Rsx::Route() highlighting in Blade Expand injection selector for Rsx::Route() highlighting Add custom syntax highlighting for Rsx::Route() and Rsx.Route() calls Update jqhtml packages to v2.2.165 Add bundle path validation for common mistakes (development mode only) Create Ajax_Select_Input widget and Rsx_Reference_Data controller Create Country_Select_Input widget with default country support Initialize Tom Select on Select_Input widgets Add Tom Select bundle for enhanced select dropdowns Implement ISO 3166 geographic data system for country/region selection Implement widget-based form system with disabled state support 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -186,6 +186,31 @@
|
||||
"created_at": "2025-10-14T17:23:51+00:00",
|
||||
"created_by": "root",
|
||||
"command": "php artisan make:migration:safe add_experience_id_to_sessions"
|
||||
},
|
||||
"2025_10_28_025035_create_projects_table.php": {
|
||||
"created_at": "2025-10-28T02:50:35+00:00",
|
||||
"created_by": "root",
|
||||
"command": "php artisan make:migration:safe create_projects_table"
|
||||
},
|
||||
"2025_10_28_025113_create_tasks_table.php": {
|
||||
"created_at": "2025-10-28T02:51:13+00:00",
|
||||
"created_by": "root",
|
||||
"command": "php artisan make:migration:safe create_tasks_table"
|
||||
},
|
||||
"2025_10_28_043559_create_clients_table.php": {
|
||||
"created_at": "2025-10-28T04:35:59+00:00",
|
||||
"created_by": "root",
|
||||
"command": "php artisan make:migration:safe create_clients_table"
|
||||
},
|
||||
"2025_10_28_223500_create_geographic_data_tables.php": {
|
||||
"created_at": "2025-10-28T22:35:00+00:00",
|
||||
"created_by": "root",
|
||||
"command": "php artisan make:migration:safe create_geographic_data_tables"
|
||||
},
|
||||
"2025_10_29_034934_add_soft_deletes_to_core_tables.php": {
|
||||
"created_at": "2025-10-29T03:49:34+00:00",
|
||||
"created_by": "root",
|
||||
"command": "php artisan make:migration:safe add_soft_deletes_to_core_tables"
|
||||
}
|
||||
}
|
||||
}
|
||||
69
database/migrations/2025_10_28_025035_create_projects_table.php
Executable file
69
database/migrations/2025_10_28_025035_create_projects_table.php
Executable file
@@ -0,0 +1,69 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* IMPORTANT: Use raw MySQL queries for clarity and auditability
|
||||
* ✅ DB::statement() with raw SQL
|
||||
* ❌ Schema::create() with Blueprint
|
||||
*
|
||||
* REQUIRED: ALL tables MUST have: id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
||||
* No exceptions - every table needs this exact ID column (SIGNED for easier migrations)
|
||||
*
|
||||
* Integer types: Use BIGINT for all integers, TINYINT(1) for booleans only
|
||||
* Never use unsigned - all integers should be signed
|
||||
*
|
||||
* Migrations must be self-contained - no Model/Service references
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
DB::statement("
|
||||
CREATE TABLE projects (
|
||||
id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
site_id BIGINT NOT NULL,
|
||||
name VARCHAR(255) NOT NULL,
|
||||
description LONGTEXT,
|
||||
client_id BIGINT NOT NULL,
|
||||
client_department_id BIGINT NULL,
|
||||
contact_id BIGINT NULL,
|
||||
status BIGINT NOT NULL DEFAULT 1,
|
||||
priority BIGINT NOT NULL DEFAULT 2,
|
||||
start_date DATE NULL,
|
||||
due_date DATE NULL,
|
||||
completed_date DATE NULL,
|
||||
budget DECIMAL(15, 2) NULL,
|
||||
notes LONGTEXT,
|
||||
created_by BIGINT NULL,
|
||||
owner_user_id BIGINT NULL,
|
||||
created_at TIMESTAMP(3) NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||||
updated_at TIMESTAMP(3) NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
||||
updated_by BIGINT NULL,
|
||||
|
||||
INDEX idx_site_id (site_id),
|
||||
INDEX idx_client_id (client_id),
|
||||
INDEX idx_client_department_id (client_department_id),
|
||||
INDEX idx_contact_id (contact_id),
|
||||
INDEX idx_status (status),
|
||||
INDEX idx_priority (priority),
|
||||
INDEX idx_created_by (created_by),
|
||||
INDEX idx_owner_user_id (owner_user_id),
|
||||
INDEX idx_created_at (created_at),
|
||||
INDEX idx_updated_at (updated_at),
|
||||
INDEX idx_name (name)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
|
||||
");
|
||||
}
|
||||
|
||||
/**
|
||||
* down() method is prohibited in RSpade framework
|
||||
* Migrations should only move forward, never backward
|
||||
* You may remove this comment as soon as you see it and understand.
|
||||
*/
|
||||
};
|
||||
64
database/migrations/2025_10_28_025113_create_tasks_table.php
Executable file
64
database/migrations/2025_10_28_025113_create_tasks_table.php
Executable file
@@ -0,0 +1,64 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* IMPORTANT: Use raw MySQL queries for clarity and auditability
|
||||
* ✅ DB::statement() with raw SQL
|
||||
* ❌ Schema::create() with Blueprint
|
||||
*
|
||||
* REQUIRED: ALL tables MUST have: id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
||||
* No exceptions - every table needs this exact ID column (SIGNED for easier migrations)
|
||||
*
|
||||
* Integer types: Use BIGINT for all integers, TINYINT(1) for booleans only
|
||||
* Never use unsigned - all integers should be signed
|
||||
*
|
||||
* Migrations must be self-contained - no Model/Service references
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
DB::statement("
|
||||
CREATE TABLE tasks (
|
||||
id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
site_id BIGINT NOT NULL,
|
||||
title VARCHAR(255) NOT NULL,
|
||||
description LONGTEXT,
|
||||
taskable_type VARCHAR(255) NOT NULL,
|
||||
taskable_id BIGINT NOT NULL,
|
||||
status BIGINT NOT NULL DEFAULT 1,
|
||||
priority BIGINT NOT NULL DEFAULT 2,
|
||||
due_date DATE NULL,
|
||||
completed_date DATE NULL,
|
||||
assigned_to_user_id BIGINT NULL,
|
||||
notes LONGTEXT,
|
||||
created_by BIGINT NULL,
|
||||
created_at TIMESTAMP(3) NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||||
updated_at TIMESTAMP(3) NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
||||
updated_by BIGINT NULL,
|
||||
|
||||
INDEX idx_site_id (site_id),
|
||||
INDEX idx_taskable (taskable_type, taskable_id),
|
||||
INDEX idx_status (status),
|
||||
INDEX idx_priority (priority),
|
||||
INDEX idx_assigned_to_user_id (assigned_to_user_id),
|
||||
INDEX idx_created_by (created_by),
|
||||
INDEX idx_created_at (created_at),
|
||||
INDEX idx_updated_at (updated_at),
|
||||
INDEX idx_title (title)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
|
||||
");
|
||||
}
|
||||
|
||||
/**
|
||||
* down() method is prohibited in RSpade framework
|
||||
* Migrations should only move forward, never backward
|
||||
* You may remove this comment as soon as you see it and understand.
|
||||
*/
|
||||
};
|
||||
58
database/migrations/2025_10_28_043559_create_clients_table.php
Executable file
58
database/migrations/2025_10_28_043559_create_clients_table.php
Executable file
@@ -0,0 +1,58 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* IMPORTANT: Use raw MySQL queries for clarity and auditability
|
||||
* ✅ DB::statement() with raw SQL
|
||||
* ❌ Schema::create() with Blueprint
|
||||
*
|
||||
* REQUIRED: ALL tables MUST have: id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
||||
* No exceptions - every table needs this exact ID column (SIGNED for easier migrations)
|
||||
*
|
||||
* Integer types: Use BIGINT for all integers, TINYINT(1) for booleans only
|
||||
* Never use unsigned - all integers should be signed
|
||||
*
|
||||
* Migrations must be self-contained - no Model/Service references
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
// Add new columns to existing clients table
|
||||
DB::statement("
|
||||
ALTER TABLE clients
|
||||
ADD COLUMN email VARCHAR(255) NULL AFTER website,
|
||||
ADD COLUMN fax VARCHAR(50) NULL AFTER phone,
|
||||
ADD COLUMN address_street VARCHAR(255) NULL COMMENT 'renamed from address',
|
||||
ADD COLUMN address_country VARCHAR(100) NULL DEFAULT 'USA',
|
||||
ADD COLUMN industry VARCHAR(100) NULL,
|
||||
ADD COLUMN company_size VARCHAR(20) NULL COMMENT '1-10, 11-50, 51-200, 201-500, 501-1000, 1000+',
|
||||
ADD COLUMN established_year BIGINT NULL,
|
||||
ADD COLUMN revenue_range VARCHAR(50) NULL,
|
||||
ADD COLUMN facebook_url VARCHAR(255) NULL,
|
||||
ADD COLUMN twitter_handle VARCHAR(100) NULL,
|
||||
ADD COLUMN linkedin_url VARCHAR(255) NULL,
|
||||
ADD COLUMN instagram_handle VARCHAR(100) NULL,
|
||||
ADD COLUMN tags JSON NULL,
|
||||
ADD COLUMN status VARCHAR(20) NOT NULL DEFAULT 'active' COMMENT 'active, inactive, prospect, archived',
|
||||
ADD COLUMN preferred_contact_method VARCHAR(20) NULL DEFAULT 'email' COMMENT 'email, phone, text, any',
|
||||
ADD COLUMN newsletter_opt_in TINYINT(1) NOT NULL DEFAULT 0,
|
||||
ADD COLUMN deleted_at TIMESTAMP NULL DEFAULT NULL,
|
||||
ADD INDEX idx_email (email),
|
||||
ADD INDEX idx_status (status),
|
||||
ADD INDEX idx_deleted_at (deleted_at)
|
||||
");
|
||||
}
|
||||
|
||||
/**
|
||||
* down() method is prohibited in RSpade framework
|
||||
* Migrations should only move forward, never backward
|
||||
* You may remove this comment as soon as you see it and understand.
|
||||
*/
|
||||
};
|
||||
76
database/migrations/2025_10_28_223500_create_geographic_data_tables.php
Executable file
76
database/migrations/2025_10_28_223500_create_geographic_data_tables.php
Executable file
@@ -0,0 +1,76 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* IMPORTANT: Use raw MySQL queries for clarity and auditability
|
||||
* ✅ DB::statement() with raw SQL
|
||||
* ❌ Schema::create() with Blueprint
|
||||
*
|
||||
* REQUIRED: ALL tables MUST have: id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
||||
* No exceptions - every table needs this exact ID column (SIGNED for easier migrations)
|
||||
*
|
||||
* Integer types: Use BIGINT for all integers, TINYINT(1) for booleans only
|
||||
* Never use unsigned - all integers should be signed
|
||||
*
|
||||
* Migrations must be self-contained - no Model/Service references
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
// Countries table - ISO 3166-1 data
|
||||
DB::statement("
|
||||
CREATE TABLE countries (
|
||||
id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
alpha2 CHAR(2) NOT NULL UNIQUE COMMENT 'ISO 3166-1 alpha-2 code (US, CA, GB)',
|
||||
alpha3 CHAR(3) NOT NULL COMMENT 'ISO 3166-1 alpha-3 code (USA, CAN, GBR)',
|
||||
`numeric` CHAR(3) NOT NULL COMMENT 'ISO 3166-1 numeric code (840, 124, 826)',
|
||||
name VARCHAR(255) NOT NULL COMMENT 'Official country name',
|
||||
common_name VARCHAR(255) NULL COMMENT 'Common name if different from official',
|
||||
enabled TINYINT(1) NOT NULL DEFAULT 1 COMMENT 'Active status - disable instead of delete to preserve FKs',
|
||||
created_at TIMESTAMP NULL DEFAULT NULL,
|
||||
updated_at TIMESTAMP NULL DEFAULT NULL,
|
||||
INDEX idx_alpha2 (alpha2),
|
||||
INDEX idx_alpha3 (alpha3),
|
||||
INDEX idx_enabled (enabled)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
|
||||
");
|
||||
|
||||
// Regions table - ISO 3166-2 subdivisions (states, provinces, territories, etc.)
|
||||
DB::statement("
|
||||
CREATE TABLE regions (
|
||||
id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
code VARCHAR(10) NOT NULL COMMENT 'ISO 3166-2 code (US-CA, CA-ON, GB-ENG)',
|
||||
country_alpha2 CHAR(2) NOT NULL COMMENT 'Foreign key to countries.alpha2',
|
||||
name VARCHAR(255) NOT NULL COMMENT 'Subdivision name (California, Ontario, England)',
|
||||
type VARCHAR(50) NULL COMMENT 'Type: state, province, territory, country, etc.',
|
||||
enabled TINYINT(1) NOT NULL DEFAULT 1 COMMENT 'Active status - disable instead of delete',
|
||||
created_at TIMESTAMP NULL DEFAULT NULL,
|
||||
updated_at TIMESTAMP NULL DEFAULT NULL,
|
||||
INDEX idx_country (country_alpha2),
|
||||
INDEX idx_code (code),
|
||||
INDEX idx_enabled (enabled),
|
||||
UNIQUE KEY unique_country_code (country_alpha2, code),
|
||||
CONSTRAINT fk_regions_country
|
||||
FOREIGN KEY (country_alpha2)
|
||||
REFERENCES countries(alpha2)
|
||||
ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
|
||||
");
|
||||
|
||||
// Uncomment after verifying seeder works:
|
||||
// \Illuminate\Support\Facades\Artisan::call('rsx:seed:geographic-data');
|
||||
}
|
||||
|
||||
/**
|
||||
* down() method is prohibited in RSpade framework
|
||||
* Migrations should only move forward, never backward
|
||||
* You may remove this comment as soon as you see it and understand.
|
||||
*/
|
||||
};
|
||||
44
database/migrations/2025_10_29_034934_add_soft_deletes_to_core_tables.php
Executable file
44
database/migrations/2025_10_29_034934_add_soft_deletes_to_core_tables.php
Executable file
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* IMPORTANT: Use raw MySQL queries for clarity and auditability
|
||||
* ✅ DB::statement("ALTER TABLE core_tables ADD COLUMN new_field VARCHAR(255)")
|
||||
* ❌ Schema::table() with Blueprint
|
||||
*
|
||||
* Migrations must be self-contained - no Model/Service references
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
// Note: clients table already has soft delete columns from previous migration
|
||||
|
||||
// Add soft delete columns to contacts table
|
||||
DB::statement("ALTER TABLE contacts ADD COLUMN deleted_at TIMESTAMP NULL DEFAULT NULL AFTER updated_by");
|
||||
DB::statement("ALTER TABLE contacts ADD COLUMN deleted_by BIGINT NULL DEFAULT NULL AFTER deleted_at");
|
||||
DB::statement("ALTER TABLE contacts ADD INDEX idx_deleted_at (deleted_at)");
|
||||
|
||||
// Add soft delete columns to projects table
|
||||
DB::statement("ALTER TABLE projects ADD COLUMN deleted_at TIMESTAMP NULL DEFAULT NULL AFTER updated_by");
|
||||
DB::statement("ALTER TABLE projects ADD COLUMN deleted_by BIGINT NULL DEFAULT NULL AFTER deleted_at");
|
||||
DB::statement("ALTER TABLE projects ADD INDEX idx_deleted_at (deleted_at)");
|
||||
|
||||
// Add soft delete columns to tasks table
|
||||
DB::statement("ALTER TABLE tasks ADD COLUMN deleted_at TIMESTAMP NULL DEFAULT NULL AFTER updated_by");
|
||||
DB::statement("ALTER TABLE tasks ADD COLUMN deleted_by BIGINT NULL DEFAULT NULL AFTER deleted_at");
|
||||
DB::statement("ALTER TABLE tasks ADD INDEX idx_deleted_at (deleted_at)");
|
||||
}
|
||||
|
||||
/**
|
||||
* down() method is prohibited in RSpade framework
|
||||
* Migrations should only move forward, never backward
|
||||
* You may remove this comment as soon as you see it and understand.
|
||||
*/
|
||||
};
|
||||
Reference in New Issue
Block a user