- Added primary_keyword, secondary_keywords, tags, and categories fields to Tasks model - Updated generate_content function to handle full JSON response with all SEO fields - Improved progress bar animation: smooth 1% increments every 300ms - Enhanced step detection for content generation vs clustering vs ideas - Fixed progress modal to show correct messages for each function type - Added comprehensive logging to Keywords and Tasks pages for AI functions - Fixed error handling to show meaningful error messages instead of generic failures
2 lines
4.9 KiB
JavaScript
2 lines
4.9 KiB
JavaScript
import{j as r}from"./vendor-react-core-DjsjKnCi.js";import{t as u,s as i,a as n,f as c,c as d,B as o}from"./page-clusters.config.tsx-9GAd-_h-.js";const g=t=>{const s=!t.activeSector;return{columns:[{...u,key:"idea_title",label:"Title",sortable:!0,sortField:"idea_title",toggleable:!0,toggleContentKey:"description",toggleContentLabel:"Content Outline",render:e=>r.jsx("span",{className:"text-gray-800 dark:text-white font-medium",children:e})},...s?[{...i,render:(e,a)=>r.jsx(o,{color:"info",size:"sm",variant:"light",children:a.sector_name||"-"})}]:[],{key:"content_structure",label:"Structure",sortable:!0,sortField:"content_structure",width:"150px",render:e=>r.jsx(o,{color:"info",size:"sm",variant:"light",children:(e==null?void 0:e.replace("_"," "))||"-"})},{key:"content_type",label:"Type",sortable:!0,sortField:"content_type",width:"120px",render:e=>r.jsx(o,{color:"info",size:"sm",variant:"light",children:(e==null?void 0:e.replace("_"," "))||"-"})},{key:"target_keywords",label:"Target Keywords",sortable:!1,width:"250px",render:e=>r.jsx("span",{className:"text-sm text-gray-600 dark:text-gray-400 truncate block max-w-[250px]",children:e||"-"})},{key:"keyword_cluster_name",label:"Cluster",sortable:!1,width:"200px",render:(e,a)=>a.keyword_cluster_name||"-"},{...n,sortable:!0,sortField:"status",render:e=>{const a={new:"warning",scheduled:"info",published:"success"};return r.jsx(o,{color:a[e]||"warning",size:"sm",children:e})}},{key:"estimated_word_count",label:"Words",sortable:!0,sortField:"estimated_word_count",width:"100px",render:e=>e.toLocaleString()},{...d,sortable:!0,sortField:"created_at",render:e=>c(e)}],filters:[{key:"search",label:"Search",type:"text",placeholder:"Search ideas..."},{key:"status",label:"Status",type:"select",options:[{value:"",label:"All Status"},{value:"new",label:"New"},{value:"scheduled",label:"Scheduled"},{value:"published",label:"Published"}]},{key:"content_structure",label:"Structure",type:"select",options:[{value:"",label:"All Structures"},{value:"cluster_hub",label:"Cluster Hub"},{value:"landing_page",label:"Landing Page"},{value:"pillar_page",label:"Pillar Page"},{value:"supporting_page",label:"Supporting Page"}]},{key:"content_type",label:"Type",type:"select",options:[{value:"",label:"All Types"},{value:"blog_post",label:"Blog Post"},{value:"article",label:"Article"},{value:"guide",label:"Guide"},{value:"tutorial",label:"Tutorial"}]},{key:"keyword_cluster_id",label:"Cluster",type:"select",options:[{value:"",label:"All Clusters"},...t.clusters.map(e=>({value:e.id.toString(),label:e.name}))],dynamicOptions:"clusters"}],formFields:e=>{var a;return[{key:"idea_title",label:"Title",type:"text",placeholder:"Enter idea title",required:!0,value:t.formData.idea_title||"",onChange:l=>t.setFormData({...t.formData,idea_title:l})},{key:"description",label:"Description",type:"textarea",placeholder:"Enter description",value:t.formData.description||"",onChange:l=>t.setFormData({...t.formData,description:l})},{key:"content_structure",label:"Content Structure",type:"select",value:t.formData.content_structure||"blog_post",onChange:l=>t.setFormData({...t.formData,content_structure:l}),options:[{value:"cluster_hub",label:"Cluster Hub"},{value:"landing_page",label:"Landing Page"},{value:"pillar_page",label:"Pillar Page"},{value:"supporting_page",label:"Supporting Page"}]},{key:"content_type",label:"Content Type",type:"select",value:t.formData.content_type||"blog_post",onChange:l=>t.setFormData({...t.formData,content_type:l}),options:[{value:"blog_post",label:"Blog Post"},{value:"article",label:"Article"},{value:"guide",label:"Guide"},{value:"tutorial",label:"Tutorial"}]},{key:"target_keywords",label:"Target Keywords",type:"text",placeholder:"Enter keywords (comma-separated)",value:t.formData.target_keywords||"",onChange:l=>t.setFormData({...t.formData,target_keywords:l})},{key:"keyword_cluster_id",label:"Cluster",type:"select",value:((a=t.formData.keyword_cluster_id)==null?void 0:a.toString())||"",onChange:l=>t.setFormData({...t.formData,keyword_cluster_id:l?parseInt(l):null}),options:[{value:"",label:"No Cluster"},...e.map(l=>({value:l.id.toString(),label:l.name}))]},{key:"estimated_word_count",label:"Estimated Word Count",type:"number",value:t.formData.estimated_word_count||1e3,onChange:l=>t.setFormData({...t.formData,estimated_word_count:l?parseInt(l):1e3})},{key:"status",label:"Status",type:"select",value:t.formData.status||"new",onChange:l=>t.setFormData({...t.formData,status:l}),options:[{value:"new",label:"New"},{value:"scheduled",label:"Scheduled"},{value:"published",label:"Published"}]}]},headerMetrics:[{label:"Total Ideas",value:0,accentColor:"blue",calculate:e=>e.totalCount||0},{label:"New",value:0,accentColor:"amber",calculate:e=>e.ideas.filter(a=>a.status==="new").length},{label:"Scheduled",value:0,accentColor:"blue",calculate:e=>e.ideas.filter(a=>a.status==="scheduled").length},{label:"Published",value:0,accentColor:"green",calculate:e=>e.ideas.filter(a=>a.status==="published").length}]}};export{g as c};
|