feat: fix 5 collection pages (campaigns, jobs, spintax, geo)

This commit is contained in:
cawcenter
2025-12-14 23:06:12 -05:00
parent 4e039e10c4
commit 2a0674e04f
5 changed files with 55 additions and 62 deletions

View File

@@ -3,11 +3,8 @@
* Campaign Masters Management * Campaign Masters Management
* Full CRUD for campaign_masters collection * Full CRUD for campaign_masters collection
*/ */
import AdminLayout from '@/layouts/AdminLayout.astro'; import AdminLayout from '../../../layouts/AdminLayout.astro';
import { getDirectusClient } from '@/lib/directus/client'; import CollectionTable from '../../../components/admin/CollectionTable';
import { readItems, createItem } from '@/lib/directus/client';
const client = getDirectusClient();
let campaigns = []; let campaigns = [];
let error = null; let error = null;
@@ -34,7 +31,14 @@ try {
} }
--- ---
<AdminLayout title="Campaign Masters"> <AdminLayout title="Campaigns">
<CollectionTable
endpoint="/api/collections/campaign_masters"
columns={['name', 'campaign_type', 'status', 'created_at']}
title="Campaigns"
client:load
/>
</AdminLayout>
<div class="space-y-6"> <div class="space-y-6">
<!-- Header --> <!-- Header -->
<div class="flex justify-between items-center"> <div class="flex justify-between items-center">

View File

@@ -1,20 +1,13 @@
--- ---
import Layout from '@/layouts/AdminLayout.astro'; import AdminLayout from '../../../layouts/AdminLayout.astro';
import CartesianManager from '@/components/admin/intelligence/CartesianManager'; import CollectionTable from '../../../components/admin/CollectionTable';
--- ---
<Layout title="Cartesian Patterns | Spark Intelligence"> <AdminLayout title="Spintax Patterns">
<div class="p-8 space-y-6"> <CollectionTable
<div class="flex justify-between items-start"> endpoint="/api/collections/spintax_patterns"
<div> columns={['name', 'category', 'created_at']}
<h1 class="text-3xl font-bold text-white tracking-tight">📐 Cartesian Patterns</h1> title="Cartesian Patterns"
<p class="text-zinc-400 mt-2 max-w-2xl"> client:load
Create logic-based sentence formulas. Combine text, spintax, and variables like />
<code>&#123;city&#125;</code> or <code>&#123;service&#125;</code> to generate millions of unique combinations. </AdminLayout>
</p>
</div>
</div>
<CartesianManager client:only="react" />
</div>
</Layout>

View File

@@ -4,10 +4,7 @@
* Queue monitoring and job management for content_fragments collection * Queue monitoring and job management for content_fragments collection
*/ */
import AdminLayout from '@/layouts/AdminLayout.astro'; import AdminLayout from '@/layouts/AdminLayout.astro';
import { getDirectusClient } from '@/lib/directus/client'; import CollectionTable from '@/components/admin/CollectionTable.astro';
import { readItems } from '@/lib/directus/client';
const client = getDirectusClient();
let jobs = []; let jobs = [];
let error = null; let error = null;
@@ -37,7 +34,14 @@ try {
} }
--- ---
<AdminLayout title="Generation Jobs"> <AdminLayout title="Generation Queue">
<CollectionTable
endpoint="/api/collections/generation_jobs"
columns={['job_type', 'status', 'progress', 'created_at']}
title="Generation Queue"
client:load
/>
</AdminLayout>
<div class="space-y-6"> <div class="space-y-6">
<!-- Header --> <!-- Header -->
<div class="flex justify-between items-center"> <div class="flex justify-between items-center">

View File

@@ -1,21 +1,20 @@
--- ---
import Layout from '@/layouts/AdminLayout.astro'; import AdminLayout from '../../../layouts/AdminLayout.astro';
import GeoIntelligenceManager from '@/components/admin/intelligence/GeoIntelligenceManager'; import CollectionTable from '../../../components/admin/CollectionTable';
import { CoreProvider } from '@/components/providers/CoreProviders'; import CampaignMap from '../../../components/admin/CampaignMap';
--- ---
<Layout title="Geo Intelligence | Spark Platform">
<div class="p-8 space-y-6">
<div class="flex justify-between items-start">
<div>
<h1 class="text-3xl font-bold text-white tracking-tight">🌍 Geo Intelligence</h1>
<p class="text-zinc-400 mt-2">
Visualize your market dominance. Manage region clusters and target specific cities for localized content campaigns.
</p>
</div>
</div>
<CoreProvider client:load> <AdminLayout title="Geo Intelligence">
<GeoIntelligenceManager client:only="react" /> <div class="space-y-8">
</CoreProvider> <CollectionTable
endpoint="/api/collections/geo_locations"
columns={['city', 'state', 'county', 'content_generated', 'created_at']}
title="Geographic Locations"
client:load
/>
<div class="h-96">
<CampaignMap client:load />
</div>
</div> </div>
</Layout> </AdminLayout>

View File

@@ -1,20 +1,13 @@
--- ---
import Layout from '@/layouts/AdminLayout.astro'; import AdminLayout from '../../../layouts/AdminLayout.astro';
import SpintaxManager from '@/components/admin/intelligence/SpintaxManager'; import CollectionTable from '../../../components/admin/CollectionTable';
--- ---
<Layout title="Spintax Dictionaries | Spark Intelligence"> <AdminLayout title="Spintax Dictionaries">
<div class="p-8 space-y-6"> <CollectionTable
<div class="flex justify-between items-start"> endpoint="/api/collections/spintax_dictionaries"
<div> columns={['name', 'category', 'created_at']}
<h1 class="text-3xl font-bold text-white tracking-tight">📚 Spintax Library</h1> title="Spintax Dictionaries"
<p class="text-zinc-400 mt-2 max-w-2xl"> client:load
Manage your vocabulary variations. Use these sets to generate diverse, non-repetitive content />
using <code>&#123;key|word|variant&#125;</code> syntax. </AdminLayout>
</p>
</div>
</div>
<SpintaxManager client:only="react" />
</div>
</Layout>