feat: fix 5 collection pages (campaigns, jobs, spintax, geo)
This commit is contained in:
@@ -3,11 +3,8 @@
|
||||
* Campaign Masters Management
|
||||
* Full CRUD for campaign_masters collection
|
||||
*/
|
||||
import AdminLayout from '@/layouts/AdminLayout.astro';
|
||||
import { getDirectusClient } from '@/lib/directus/client';
|
||||
import { readItems, createItem } from '@/lib/directus/client';
|
||||
|
||||
const client = getDirectusClient();
|
||||
import AdminLayout from '../../../layouts/AdminLayout.astro';
|
||||
import CollectionTable from '../../../components/admin/CollectionTable';
|
||||
|
||||
let campaigns = [];
|
||||
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">
|
||||
<!-- Header -->
|
||||
<div class="flex justify-between items-center">
|
||||
|
||||
@@ -1,20 +1,13 @@
|
||||
---
|
||||
import Layout from '@/layouts/AdminLayout.astro';
|
||||
import CartesianManager from '@/components/admin/intelligence/CartesianManager';
|
||||
import AdminLayout from '../../../layouts/AdminLayout.astro';
|
||||
import CollectionTable from '../../../components/admin/CollectionTable';
|
||||
---
|
||||
|
||||
<Layout title="Cartesian Patterns | Spark Intelligence">
|
||||
<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">📐 Cartesian Patterns</h1>
|
||||
<p class="text-zinc-400 mt-2 max-w-2xl">
|
||||
Create logic-based sentence formulas. Combine text, spintax, and variables like
|
||||
<code>{city}</code> or <code>{service}</code> to generate millions of unique combinations.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<CartesianManager client:only="react" />
|
||||
</div>
|
||||
</Layout>
|
||||
<AdminLayout title="Spintax Patterns">
|
||||
<CollectionTable
|
||||
endpoint="/api/collections/spintax_patterns"
|
||||
columns={['name', 'category', 'created_at']}
|
||||
title="Cartesian Patterns"
|
||||
client:load
|
||||
/>
|
||||
</AdminLayout>
|
||||
|
||||
@@ -4,10 +4,7 @@
|
||||
* Queue monitoring and job management for content_fragments collection
|
||||
*/
|
||||
import AdminLayout from '@/layouts/AdminLayout.astro';
|
||||
import { getDirectusClient } from '@/lib/directus/client';
|
||||
import { readItems } from '@/lib/directus/client';
|
||||
|
||||
const client = getDirectusClient();
|
||||
import CollectionTable from '@/components/admin/CollectionTable.astro';
|
||||
|
||||
let jobs = [];
|
||||
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">
|
||||
<!-- Header -->
|
||||
<div class="flex justify-between items-center">
|
||||
|
||||
@@ -1,21 +1,20 @@
|
||||
---
|
||||
import Layout from '@/layouts/AdminLayout.astro';
|
||||
import GeoIntelligenceManager from '@/components/admin/intelligence/GeoIntelligenceManager';
|
||||
import { CoreProvider } from '@/components/providers/CoreProviders';
|
||||
import AdminLayout from '../../../layouts/AdminLayout.astro';
|
||||
import CollectionTable from '../../../components/admin/CollectionTable';
|
||||
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>
|
||||
<GeoIntelligenceManager client:only="react" />
|
||||
</CoreProvider>
|
||||
<AdminLayout title="Geo Intelligence">
|
||||
<div class="space-y-8">
|
||||
<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>
|
||||
</Layout>
|
||||
</AdminLayout>
|
||||
|
||||
@@ -1,20 +1,13 @@
|
||||
---
|
||||
import Layout from '@/layouts/AdminLayout.astro';
|
||||
import SpintaxManager from '@/components/admin/intelligence/SpintaxManager';
|
||||
import AdminLayout from '../../../layouts/AdminLayout.astro';
|
||||
import CollectionTable from '../../../components/admin/CollectionTable';
|
||||
---
|
||||
|
||||
<Layout title="Spintax Dictionaries | Spark Intelligence">
|
||||
<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">📚 Spintax Library</h1>
|
||||
<p class="text-zinc-400 mt-2 max-w-2xl">
|
||||
Manage your vocabulary variations. Use these sets to generate diverse, non-repetitive content
|
||||
using <code>{key|word|variant}</code> syntax.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<SpintaxManager client:only="react" />
|
||||
</div>
|
||||
</Layout>
|
||||
<AdminLayout title="Spintax Dictionaries">
|
||||
<CollectionTable
|
||||
endpoint="/api/collections/spintax_dictionaries"
|
||||
columns={['name', 'category', 'created_at']}
|
||||
title="Spintax Dictionaries"
|
||||
client:load
|
||||
/>
|
||||
</AdminLayout>
|
||||
|
||||
Reference in New Issue
Block a user