Init Repo
This commit is contained in:
@@ -0,0 +1,104 @@
|
||||
/**
|
||||
* Verification script for Asset Bulk Operations implementation
|
||||
* This script checks if all required components are properly implemented
|
||||
*/
|
||||
|
||||
import fs from 'fs';
|
||||
import path from 'path';
|
||||
import { fileURLToPath } from 'url';
|
||||
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = path.dirname(__filename);
|
||||
|
||||
function checkFileExists(filePath) {
|
||||
return fs.existsSync(path.join(__dirname, filePath));
|
||||
}
|
||||
|
||||
function checkFileContains(filePath, searchString) {
|
||||
if (!checkFileExists(filePath)) return false;
|
||||
const content = fs.readFileSync(path.join(__dirname, filePath), 'utf8');
|
||||
return content.includes(searchString);
|
||||
}
|
||||
|
||||
function runVerification() {
|
||||
console.log('🔍 Verifying Asset Bulk Operations Implementation...\n');
|
||||
|
||||
const checks = [
|
||||
{
|
||||
name: 'Asset Columns - Bulk Operations Header',
|
||||
check: () => checkFileContains('src/components/asset/columns.ts', 'onBulkTaskStatusChange'),
|
||||
description: 'Column headers show bulk operation controls when assets are selected'
|
||||
},
|
||||
{
|
||||
name: 'Asset Columns - Popover Interface',
|
||||
check: () => checkFileContains('src/components/asset/columns.ts', 'PopoverContent'),
|
||||
description: 'Popover interface for bulk operations matching shot table'
|
||||
},
|
||||
{
|
||||
name: 'Assets Store - Bulk Update Method',
|
||||
check: () => checkFileContains('src/stores/assets.ts', 'bulkUpdateTaskStatus'),
|
||||
description: 'Assets store has bulk task status update method'
|
||||
},
|
||||
{
|
||||
name: 'Assets Store - Optimistic Updates',
|
||||
check: () => checkFileContains('src/stores/assets.ts', 'originalStates'),
|
||||
description: 'Optimistic updates with rollback on failure'
|
||||
},
|
||||
{
|
||||
name: 'Asset Browser - Bulk Handler',
|
||||
check: () => checkFileContains('src/components/asset/AssetBrowser.vue', 'handleBulkTaskStatusChange'),
|
||||
description: 'Asset browser handles bulk task status changes'
|
||||
},
|
||||
{
|
||||
name: 'Task Service - Bulk API',
|
||||
check: () => checkFileContains('src/services/task.ts', 'bulkUpdateStatus'),
|
||||
description: 'Task service has bulk status update API method'
|
||||
},
|
||||
{
|
||||
name: 'Task Statuses Store Integration',
|
||||
check: () => checkFileContains('src/components/asset/AssetBrowser.vue', 'taskStatusesStore.fetchProjectStatuses'),
|
||||
description: 'Task statuses are loaded for bulk operations'
|
||||
}
|
||||
];
|
||||
|
||||
let passed = 0;
|
||||
let failed = 0;
|
||||
|
||||
checks.forEach((check, index) => {
|
||||
const result = check.check();
|
||||
const status = result ? '✅ PASS' : '❌ FAIL';
|
||||
const number = (index + 1).toString().padStart(2, '0');
|
||||
|
||||
console.log(`${number}. ${status} ${check.name}`);
|
||||
console.log(` ${check.description}`);
|
||||
|
||||
if (result) {
|
||||
passed++;
|
||||
} else {
|
||||
failed++;
|
||||
}
|
||||
console.log('');
|
||||
});
|
||||
|
||||
console.log('📊 Summary:');
|
||||
console.log(` ✅ Passed: ${passed}`);
|
||||
console.log(` ❌ Failed: ${failed}`);
|
||||
console.log(` 📈 Success Rate: ${Math.round((passed / checks.length) * 100)}%`);
|
||||
|
||||
if (failed === 0) {
|
||||
console.log('\n🎉 All bulk operations components are properly implemented!');
|
||||
console.log('\n📋 Implementation Features:');
|
||||
console.log(' • Column headers show bulk controls when assets selected');
|
||||
console.log(' • Popover interface displays all available task statuses');
|
||||
console.log(' • Optimistic updates with automatic rollback on failure');
|
||||
console.log(' • Efficient bulk API calls using /tasks/bulk/status endpoint');
|
||||
console.log(' • Toast notifications for user feedback');
|
||||
console.log(' • Automatic task creation if tasks don\'t exist');
|
||||
console.log(' • Integration with existing task status update handlers');
|
||||
} else {
|
||||
console.log('\n⚠️ Some components need attention. Please check the failed items above.');
|
||||
}
|
||||
}
|
||||
|
||||
// Run verification
|
||||
runVerification();
|
||||
Reference in New Issue
Block a user