Add SEO fields to Tasks model, improve content generation response handling, and enhance progress bar animation
- 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
This commit is contained in:
6
frontend/dist/assets/js/index-DHgSgw93.js
vendored
Normal file
6
frontend/dist/assets/js/index-DHgSgw93.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
frontend/dist/assets/js/page-analytics.tsx-1KCk8AGD.js
vendored
Normal file
1
frontend/dist/assets/js/page-analytics.tsx-1KCk8AGD.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
import{j as e}from"./vendor-react-core-DjsjKnCi.js";import{H as n,a as i}from"./vendor-helmet-MZDArkdS.js";const c=({title:r,description:t})=>e.jsxs(n,{children:[e.jsx("title",{children:r}),e.jsx("meta",{name:"description",content:t})]}),x=({children:r})=>e.jsx(i,{children:r}),d=({title:r,children:t,className:s="",desc:a=""})=>e.jsxs("div",{className:`rounded-2xl border border-gray-200 bg-white dark:border-gray-800 dark:bg-white/[0.03] ${s}`,children:[e.jsxs("div",{className:"px-6 py-5",children:[e.jsx("h3",{className:"text-base font-medium text-gray-800 dark:text-white/90",children:r}),a&&e.jsx("p",{className:"mt-1 text-sm text-gray-500 dark:text-gray-400",children:a})]}),e.jsx("div",{className:"p-4 border-t border-gray-100 dark:border-gray-800 sm:p-6",children:e.jsx("div",{className:"space-y-6",children:t})})]});function o(){return e.jsxs(e.Fragment,{children:[e.jsx(c,{title:"Analytics - IGNY8",description:"Performance analytics"}),e.jsx(d,{title:"Coming Soon",desc:"Performance analytics",children:e.jsxs("div",{className:"text-center py-8",children:[e.jsx("p",{className:"text-gray-600 dark:text-gray-400",children:"Analytics - Coming Soon"}),e.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400 mt-2",children:"Performance analytics and reporting for data-driven decisions"})]})})]})}const p=Object.freeze(Object.defineProperty({__proto__:null,default:o},Symbol.toStringTag,{value:"Module"}));export{x as A,d as C,c as P,p as a};
|
||||
2
frontend/dist/assets/js/page-authpages-CY7hjDHU.js
vendored
Normal file
2
frontend/dist/assets/js/page-authpages-CY7hjDHU.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
frontend/dist/assets/js/page-bulk-action-modal.config.ts-D-0XtKwF.js
vendored
Normal file
1
frontend/dist/assets/js/page-bulk-action-modal.config.ts-D-0XtKwF.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
const t={"/planner/keywords":{export:{title:"Export Selected Keywords",message:e=>`You are about to export ${e} selected keyword${e!==1?"s":""}. The export will be downloaded as a CSV file.`,confirmText:"Export",itemNamePlural:"keywords"},updateStatus:{title:"Update Status",message:e=>`You are about to update the status of ${e} selected keyword${e!==1?"s":""}. Select the new status below.`,confirmText:"Update Status",itemNamePlural:"keywords",statusOptions:[{value:"active",label:"Active"},{value:"pending",label:"Pending"},{value:"archived",label:"Archived"}]}},"/planner/clusters":{export:{title:"Export Selected Clusters",message:e=>`You are about to export ${e} selected cluster${e!==1?"s":""}. The export will be downloaded as a CSV file.`,confirmText:"Export",itemNamePlural:"clusters"},updateStatus:{title:"Update Status",message:e=>`You are about to update the status of ${e} selected cluster${e!==1?"s":""}. Select the new status below.`,confirmText:"Update Status",itemNamePlural:"clusters",statusOptions:[{value:"active",label:"Active"},{value:"inactive",label:"Inactive"}]}},"/planner/ideas":{export:{title:"Export Selected Ideas",message:e=>`You are about to export ${e} selected idea${e!==1?"s":""}. The export will be downloaded as a CSV file.`,confirmText:"Export",itemNamePlural:"ideas"},updateStatus:{title:"Update Status",message:e=>`You are about to update the status of ${e} selected idea${e!==1?"s":""}. Select the new status below.`,confirmText:"Update Status",itemNamePlural:"ideas",statusOptions:[{value:"new",label:"New"},{value:"scheduled",label:"Scheduled"},{value:"published",label:"Published"}]}},"/writer/tasks":{export:{title:"Export Selected Tasks",message:e=>`You are about to export ${e} selected task${e!==1?"s":""}. The export will be downloaded as a CSV file.`,confirmText:"Export",itemNamePlural:"tasks"},updateStatus:{title:"Update Status",message:e=>`You are about to update the status of ${e} selected task${e!==1?"s":""}. Select the new status below.`,confirmText:"Update Status",itemNamePlural:"tasks",statusOptions:[{value:"queued",label:"Queued"},{value:"draft",label:"Draft"},{value:"in_progress",label:"In Progress"},{value:"completed",label:"Completed"}]}},"/writer/drafts":{export:{title:"Export Selected Drafts",message:e=>`You are about to export ${e} selected draft${e!==1?"s":""}. The export will be downloaded as a CSV file.`,confirmText:"Export",itemNamePlural:"drafts"},updateStatus:{title:"Update Status",message:e=>`You are about to update the status of ${e} selected draft${e!==1?"s":""}. Select the new status below.`,confirmText:"Update Status",itemNamePlural:"drafts",statusOptions:[{value:"draft",label:"Draft"},{value:"review",label:"Review"},{value:"published",label:"Published"}]}},"/writer/published":{export:{title:"Export Selected Published Content",message:e=>`You are about to export ${e} selected published content item${e!==1?"s":""}. The export will be downloaded as a CSV file.`,confirmText:"Export",itemNamePlural:"published content items"},updateStatus:{title:"Update Status",message:e=>`You are about to update the status of ${e} selected published content item${e!==1?"s":""}. Select the new status below.`,confirmText:"Update Status",itemNamePlural:"published content items",statusOptions:[{value:"published",label:"Published"},{value:"archived",label:"Archived"}]}}};function a(e){return t[e]||null}export{a as g};
|
||||
1
frontend/dist/assets/js/page-clusters.config.tsx-9GAd-_h-.js
vendored
Normal file
1
frontend/dist/assets/js/page-clusters.config.tsx-9GAd-_h-.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
frontend/dist/assets/js/page-components.tsx-DYfg5dka.js
vendored
Normal file
1
frontend/dist/assets/js/page-components.tsx-DYfg5dka.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
frontend/dist/assets/js/page-dashboard-DxYTR5eF.js
vendored
Normal file
1
frontend/dist/assets/js/page-dashboard-DxYTR5eF.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
frontend/dist/assets/js/page-delete-modal.config.ts-B7nUJ-QI.js
vendored
Normal file
1
frontend/dist/assets/js/page-delete-modal.config.ts-B7nUJ-QI.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
const t={"/planner/keywords":{title:"Delete Keywords",singleItemMessage:"You are about to delete this keyword. This action cannot be undone.",multipleItemsMessage:e=>`You are deleting ${e} keywords. This action cannot be undone.`,itemNameSingular:"keyword",itemNamePlural:"keywords"},"/planner/clusters":{title:"Delete Clusters",singleItemMessage:"You are about to delete this cluster. All associated keywords will remain but will no longer be grouped under this cluster.",multipleItemsMessage:e=>`You are deleting ${e} clusters. All associated keywords will remain but will no longer be grouped under these clusters.`,itemNameSingular:"cluster",itemNamePlural:"clusters"},"/planner/ideas":{title:"Delete Ideas",singleItemMessage:"You are about to delete this idea. This action cannot be undone.",multipleItemsMessage:e=>`You are deleting ${e} ideas. This action cannot be undone.`,itemNameSingular:"idea",itemNamePlural:"ideas"},"/writer/tasks":{title:"Delete Tasks",singleItemMessage:"You are about to delete this task. This action cannot be undone.",multipleItemsMessage:e=>`You are deleting ${e} tasks. This action cannot be undone.`,itemNameSingular:"task",itemNamePlural:"tasks"},"/writer/drafts":{title:"Delete Drafts",singleItemMessage:"You are about to delete this draft. This action cannot be undone.",multipleItemsMessage:e=>`You are deleting ${e} drafts. This action cannot be undone.`,itemNameSingular:"draft",itemNamePlural:"drafts"},"/writer/published":{title:"Delete Published Content",singleItemMessage:"You are about to delete this published content. This action cannot be undone.",multipleItemsMessage:e=>`You are deleting ${e} published content items. This action cannot be undone.`,itemNameSingular:"published content",itemNamePlural:"published content items"}};function s(e){return t[e]||null}export{s as g};
|
||||
1
frontend/dist/assets/js/page-help-j71zd25J.js
vendored
Normal file
1
frontend/dist/assets/js/page-help-j71zd25J.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
import{j as t}from"./vendor-react-core-DjsjKnCi.js";import{P as e,C as n}from"./page-analytics.tsx-1KCk8AGD.js";function s(){return t.jsxs(t.Fragment,{children:[t.jsx(e,{title:"Help & Support - IGNY8",description:"Documentation and support"}),t.jsx(n,{title:"Coming Soon",desc:"Documentation and support",children:t.jsxs("div",{className:"text-center py-8",children:[t.jsx("p",{className:"text-gray-600 dark:text-gray-400",children:"Help & Support - Coming Soon"}),t.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400 mt-2",children:"Documentation and support resources for getting started"})]})})]})}const l=Object.freeze(Object.defineProperty({__proto__:null,default:s},Symbol.toStringTag,{value:"Module"}));function o(){return t.jsxs(t.Fragment,{children:[t.jsx(e,{title:"Documentation - IGNY8",description:"Complete documentation"}),t.jsx(n,{title:"Coming Soon",desc:"Complete documentation",children:t.jsxs("div",{className:"text-center py-8",children:[t.jsx("p",{className:"text-gray-600 dark:text-gray-400",children:"Documentation - Coming Soon"}),t.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400 mt-2",children:"Comprehensive documentation and guides"})]})})]})}const d=Object.freeze(Object.defineProperty({__proto__:null,default:o},Symbol.toStringTag,{value:"Module"}));function i(){return t.jsxs(t.Fragment,{children:[t.jsx(e,{title:"System Testing - IGNY8",description:"System diagnostics"}),t.jsx(n,{title:"Coming Soon",desc:"System diagnostics",children:t.jsxs("div",{className:"text-center py-8",children:[t.jsx("p",{className:"text-gray-600 dark:text-gray-400",children:"System Testing - Coming Soon"}),t.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400 mt-2",children:"Test system functionality and diagnose issues"})]})})]})}const m=Object.freeze(Object.defineProperty({__proto__:null,default:i},Symbol.toStringTag,{value:"Module"}));function r(){return t.jsxs(t.Fragment,{children:[t.jsx(e,{title:"Function Testing - IGNY8",description:"Function testing"}),t.jsx(n,{title:"Coming Soon",desc:"Function testing",children:t.jsxs("div",{className:"text-center py-8",children:[t.jsx("p",{className:"text-gray-600 dark:text-gray-400",children:"Function Testing - Coming Soon"}),t.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400 mt-2",children:"Test individual functions and components"})]})})]})}const g=Object.freeze(Object.defineProperty({__proto__:null,default:r},Symbol.toStringTag,{value:"Module"}));export{d as D,g as F,l as H,m as S};
|
||||
1
frontend/dist/assets/js/page-ideas.config.tsx-Cr6kWRFa.js
vendored
Normal file
1
frontend/dist/assets/js/page-ideas.config.tsx-Cr6kWRFa.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
frontend/dist/assets/js/page-images.config.tsx-Dy4DVDQH.js
vendored
Normal file
1
frontend/dist/assets/js/page-images.config.tsx-Dy4DVDQH.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
import{j as l}from"./vendor-react-core-DjsjKnCi.js";import{a as r,f as s,c as n,B as t}from"./page-clusters.config.tsx-9GAd-_h-.js";const d=i=>({columns:[{key:"task_title",label:"Task",sortable:!1,width:"250px",render:(e,a)=>l.jsx("span",{className:"font-medium text-gray-800 dark:text-white/90",children:a.task_title||"-"})},{key:"image_type",label:"Image Type",sortable:!1,width:"150px",render:e=>l.jsx(t,{color:"info",size:"sm",variant:"light",children:(e==null?void 0:e.replace("_"," "))||"-"})},{key:"image_url",label:"Image",sortable:!1,width:"200px",render:e=>e?l.jsx("a",{href:e,target:"_blank",rel:"noopener noreferrer",className:"text-brand-500 hover:text-brand-600 text-sm truncate block max-w-[200px]",children:"View Image"}):l.jsx("span",{className:"text-gray-400",children:"-"})},{...r,sortable:!0,sortField:"status",render:e=>{const a={pending:"warning",generated:"success",failed:"error"};return l.jsx(t,{color:a[e]||"warning",size:"sm",children:e})}},{key:"position",label:"Position",sortable:!1,width:"100px",render:e=>e||0},{...n,sortable:!0,sortField:"created_at",render:e=>s(e)}],filters:[{key:"search",label:"Search",type:"text",placeholder:"Search by task title..."},{key:"image_type",label:"Image Type",type:"select",options:[{value:"",label:"All Types"},{value:"featured",label:"Featured Image"},{value:"desktop",label:"Desktop Image"},{value:"mobile",label:"Mobile Image"},{value:"in_article",label:"In-Article Image"}]},{key:"status",label:"Status",type:"select",options:[{value:"",label:"All Status"},{value:"pending",label:"Pending"},{value:"generated",label:"Generated"},{value:"failed",label:"Failed"}]}],headerMetrics:[{label:"Total Images",value:0,accentColor:"blue",calculate:e=>e.totalCount||0},{label:"Generated",value:0,accentColor:"green",calculate:e=>e.images.filter(a=>a.status==="generated").length},{label:"Pending",value:0,accentColor:"amber",calculate:e=>e.images.filter(a=>a.status==="pending").length},{label:"Failed",value:0,accentColor:"error",calculate:e=>e.images.filter(a=>a.status==="failed").length}]});export{d as c};
|
||||
1
frontend/dist/assets/js/page-keywords.config.tsx-CxJn1kF1.js
vendored
Normal file
1
frontend/dist/assets/js/page-keywords.config.tsx-CxJn1kF1.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
frontend/dist/assets/js/page-otherpage-CbNMllJl.js
vendored
Normal file
1
frontend/dist/assets/js/page-otherpage-CbNMllJl.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
import{j as e}from"./vendor-react-core-DjsjKnCi.js";import{G as t}from"./page-authpages-CY7hjDHU.js";import{L as a}from"./vendor-react-router-BJY_70Cr.js";import{P as r}from"./page-analytics.tsx-1KCk8AGD.js";function o(){return e.jsxs(e.Fragment,{children:[e.jsx(r,{title:"React.js 404 Dashboard | TailAdmin - React.js Admin Dashboard Template",description:"This is React.js 404 Dashboard page for TailAdmin - React.js Tailwind CSS Admin Dashboard Template"}),e.jsxs("div",{className:"relative flex flex-col items-center justify-center min-h-screen p-6 overflow-hidden z-1",children:[e.jsx(t,{}),e.jsxs("div",{className:"mx-auto w-full max-w-[242px] text-center sm:max-w-[472px]",children:[e.jsx("h1",{className:"mb-8 font-bold text-gray-800 text-title-md dark:text-white/90 xl:text-title-2xl",children:"ERROR"}),e.jsx("img",{src:"/images/error/404.svg",alt:"404",className:"dark:hidden"}),e.jsx("img",{src:"/images/error/404-dark.svg",alt:"404",className:"hidden dark:block"}),e.jsx("p",{className:"mt-10 mb-6 text-base text-gray-700 dark:text-gray-400 sm:text-lg",children:"We can’t seem to find the page you are looking for!"}),e.jsx(a,{to:"/",className:"inline-flex items-center justify-center rounded-lg border border-gray-300 bg-white px-5 py-3.5 text-sm font-medium text-gray-700 shadow-theme-xs hover:bg-gray-50 hover:text-gray-800 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400 dark:hover:bg-white/[0.03] dark:hover:text-gray-200",children:"Back to Home Page"})]}),e.jsxs("p",{className:"absolute text-sm text-center text-gray-500 -translate-x-1/2 bottom-6 left-1/2 dark:text-gray-400",children:["© ",new Date().getFullYear()," - TailAdmin"]})]})]})}export{o as N};
|
||||
1
frontend/dist/assets/js/page-reference-aC0iABvU.js
vendored
Normal file
1
frontend/dist/assets/js/page-reference-aC0iABvU.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
frontend/dist/assets/js/page-schedules.tsx-KBMo-Hzm.js
vendored
Normal file
1
frontend/dist/assets/js/page-schedules.tsx-KBMo-Hzm.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
import{j as t}from"./vendor-react-core-DjsjKnCi.js";import{P as e,C as s}from"./page-analytics.tsx-1KCk8AGD.js";import"./vendor-other-CdRIx1s3.js";import"./vendor-helmet-MZDArkdS.js";function i(){return t.jsxs(t.Fragment,{children:[t.jsx(e,{title:"Schedules - IGNY8",description:"Automation schedules"}),t.jsx(s,{title:"Coming Soon",desc:"Automation schedules",children:t.jsxs("div",{className:"text-center py-8",children:[t.jsx("p",{className:"text-gray-600 dark:text-gray-400",children:"Schedules - Coming Soon"}),t.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400 mt-2",children:"Content scheduling and automation for consistent publishing"})]})})]})}export{i as default};
|
||||
1
frontend/dist/assets/js/page-table-actions.config.tsx-BSR5Zo7l.js
vendored
Normal file
1
frontend/dist/assets/js/page-table-actions.config.tsx-BSR5Zo7l.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
import{j as e}from"./vendor-react-core-DjsjKnCi.js";import{S as s,a as o,b as n,c as l,d as b,e as w}from"./page-authpages-CY7hjDHU.js";const i=e.jsx(b,{className:"w-5 h-5"}),m=e.jsx(w,{className:"w-5 h-5"}),h=e.jsx(o,{className:"w-5 h-5"});function g(r){const a=d[r]||d.default;if(r==="/planner/keyword-opportunities")return{rowActions:a.rowActions||[],bulkActions:a.bulkActions||[]};const u=a.rowActions.filter(t=>t.key!=="edit"&&t.key!=="delete"&&t.key!=="export"),y=a.rowActions.find(t=>t.key==="edit"||t.key==="update")||{key:"edit",label:"Update",icon:i,variant:"primary"},x=a.rowActions.find(t=>t.key==="export")||{key:"export",label:"Export",icon:h,variant:"secondary"},c={key:"delete",label:"Delete",icon:m,variant:"danger"},k=a.bulkActions.filter(t=>t.key!=="delete"),p=a.bulkActions.find(t=>t.key==="delete")||c;return{rowActions:[y,...u,x,c],bulkActions:[...k,p]}}const d={"/planner/keyword-opportunities":{rowActions:[{key:"add_to_workflow",label:"Add",icon:e.jsx(n,{className:"w-5 h-5"}),variant:"success"}],bulkActions:[{key:"add_selected_to_workflow",label:"Add Selected to Workflow",icon:e.jsx(n,{className:"w-5 h-5"}),variant:"success"}]},"/planner/keywords":{rowActions:[{key:"edit",label:"Edit",icon:i,variant:"primary"}],bulkActions:[{key:"update_status",label:"Update Status",icon:e.jsx(s,{className:"w-4 h-4 text-success-500"}),variant:"secondary"},{key:"export",label:"Export Selected",icon:e.jsx(o,{className:"w-4 h-4 text-blue-light-500"}),variant:"secondary"},{key:"auto_cluster",label:"Auto-Cluster",icon:e.jsx(n,{className:"w-4 h-4 text-warning-500"}),variant:"secondary"}]},"/planner/clusters":{rowActions:[{key:"edit",label:"Edit",icon:i,variant:"primary"},{key:"generate_ideas",label:"Generate Ideas",icon:e.jsx(n,{className:"w-5 h-5"}),variant:"primary"}],bulkActions:[{key:"update_status",label:"Update Status",icon:e.jsx(s,{className:"w-4 h-4 text-success-500"}),variant:"secondary"},{key:"export",label:"Export Selected",icon:e.jsx(o,{className:"w-4 h-4 text-blue-light-500"}),variant:"secondary"},{key:"auto_generate_ideas",label:"Generate Ideas",icon:e.jsx(n,{className:"w-4 h-4 text-warning-500"}),variant:"secondary"}]},"/planner/ideas":{rowActions:[{key:"edit",label:"Edit",icon:i,variant:"primary"},{key:"queue_to_writer",label:"Queue to Writer",icon:e.jsx(l,{className:"w-5 h-5"}),variant:"primary"}],bulkActions:[{key:"update_status",label:"Update Status",icon:e.jsx(s,{className:"w-4 h-4 text-success-500"}),variant:"secondary"},{key:"export",label:"Export Selected",icon:e.jsx(o,{className:"w-4 h-4 text-blue-light-500"}),variant:"secondary"},{key:"queue_to_writer",label:"Queue to Writer",icon:e.jsx(l,{className:"w-4 h-4 text-brand-500"}),variant:"secondary"}]},"/writer/tasks":{rowActions:[{key:"edit",label:"Edit",icon:i,variant:"primary"},{key:"generate_content",label:"Generate Content",icon:e.jsx(n,{className:"w-5 h-5"}),variant:"primary"}],bulkActions:[{key:"update_status",label:"Update Status",icon:e.jsx(s,{className:"w-4 h-4 text-success-500"}),variant:"secondary"},{key:"export",label:"Export Selected",icon:e.jsx(o,{className:"w-4 h-4 text-blue-light-500"}),variant:"secondary"}]},"/writer/drafts":{rowActions:[{key:"edit",label:"Edit",icon:i,variant:"primary"}],bulkActions:[{key:"update_status",label:"Update Status",icon:e.jsx(s,{className:"w-4 h-4 text-success-500"}),variant:"secondary"},{key:"export",label:"Export Selected",icon:e.jsx(o,{className:"w-4 h-4 text-blue-light-500"}),variant:"secondary"},{key:"generate_images",label:"Generate Images",icon:e.jsx(n,{className:"w-4 h-4 text-purple-500"}),variant:"secondary"},{key:"publish",label:"Publish Selected",icon:e.jsx(s,{className:"w-4 h-4 text-success-500"}),variant:"secondary"}]},"/writer/published":{rowActions:[{key:"edit",label:"Edit",icon:i,variant:"primary"}],bulkActions:[{key:"update_status",label:"Update Status",icon:e.jsx(s,{className:"w-4 h-4 text-success-500"}),variant:"secondary"},{key:"export",label:"Export Selected",icon:e.jsx(o,{className:"w-4 h-4 text-blue-light-500"}),variant:"secondary"}]},default:{rowActions:[],bulkActions:[]}};export{g};
|
||||
1
frontend/dist/assets/js/page-tasks.config.tsx-mmlIGC4l.js
vendored
Normal file
1
frontend/dist/assets/js/page-tasks.config.tsx-mmlIGC4l.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
import{j as r}from"./vendor-react-core-DjsjKnCi.js";import{t as u,s as n,a as i,w as c,f as p,c as b,B as o}from"./page-clusters.config.tsx-9GAd-_h-.js";const m=t=>{const s=!t.activeSector;return{columns:[{...u,sortable:!0,sortField:"title",toggleable:!0,toggleContentKey:"content",toggleContentLabel:"Generated Content"},...s?[{...n,render:(e,a)=>r.jsx(o,{color:"info",size:"sm",variant:"light",children:a.sector_name||"-"})}]:[],{key:"cluster_name",label:"Cluster",sortable:!1,width:"200px",render:(e,a)=>a.cluster_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("_"," "))||"-"})},{...i,sortable:!0,sortField:"status",render:e=>{const a={queued:"warning",in_progress:"info",draft:"warning",review:"info",published:"success",completed:"success"};return r.jsx(o,{color:a[e]||"warning",size:"sm",children:(e==null?void 0:e.replace("_"," "))||e})}},{...c,sortable:!0,sortField:"word_count",render:e=>e.toLocaleString()},{...b,sortable:!0,sortField:"created_at",render:e=>p(e)}],filters:[{key:"search",label:"Search",type:"text",placeholder:"Search tasks..."},{key:"status",label:"Status",type:"select",options:[{value:"",label:"All Status"},{value:"queued",label:"Queued"},{value:"in_progress",label:"In Progress"},{value:"draft",label:"Draft"},{value:"review",label:"Review"},{value:"published",label:"Published"},{value:"completed",label:"Completed"}]},{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:"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:"title",label:"Title",type:"text",placeholder:"Enter task title",required:!0,value:t.formData.title||"",onChange:l=>t.setFormData({...t.formData,title:l})},{key:"description",label:"Description",type:"textarea",placeholder:"Enter description",value:t.formData.description||"",onChange:l=>t.setFormData({...t.formData,description:l})},{key:"keywords",label:"Keywords",type:"text",placeholder:"Enter keywords (comma-separated)",value:t.formData.keywords||"",onChange:l=>t.setFormData({...t.formData,keywords:l})},{key:"cluster_id",label:"Cluster",type:"select",value:((a=t.formData.cluster_id)==null?void 0:a.toString())||"",onChange:l=>t.setFormData({...t.formData,cluster_id:l?parseInt(l):null}),options:[{value:"",label:"No Cluster"},...e.map(l=>({value:l.id.toString(),label:l.name}))]},{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:"status",label:"Status",type:"select",value:t.formData.status||"queued",onChange:l=>t.setFormData({...t.formData,status:l}),options:[{value:"queued",label:"Queued"},{value:"in_progress",label:"In Progress"},{value:"draft",label:"Draft"},{value:"review",label:"Review"},{value:"published",label:"Published"},{value:"completed",label:"Completed"}]}]},headerMetrics:[{label:"Total Tasks",value:0,accentColor:"blue",calculate:e=>e.totalCount||0},{label:"Queued",value:0,accentColor:"amber",calculate:e=>e.tasks.filter(a=>a.status==="queued").length},{label:"In Progress",value:0,accentColor:"blue",calculate:e=>e.tasks.filter(a=>a.status==="in_progress").length},{label:"Published",value:0,accentColor:"green",calculate:e=>e.tasks.filter(a=>a.status==="published").length}]}};export{m as c};
|
||||
1
frontend/dist/assets/js/pages-billing-CR09bFDK.js
vendored
Normal file
1
frontend/dist/assets/js/pages-billing-CR09bFDK.js
vendored
Normal file
File diff suppressed because one or more lines are too long
3
frontend/dist/assets/js/pages-planner-COGkFLJh.js
vendored
Normal file
3
frontend/dist/assets/js/pages-planner-COGkFLJh.js
vendored
Normal file
File diff suppressed because one or more lines are too long
5
frontend/dist/assets/js/pages-settings-Da7wPw3M.js
vendored
Normal file
5
frontend/dist/assets/js/pages-settings-Da7wPw3M.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
frontend/dist/assets/js/pages-thinker-DjafPZNF.js
vendored
Normal file
1
frontend/dist/assets/js/pages-thinker-DjafPZNF.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
frontend/dist/assets/js/pages-writer-CjPEISlq.js
vendored
Normal file
1
frontend/dist/assets/js/pages-writer-CjPEISlq.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
frontend/dist/assets/js/vendor-helmet-MZDArkdS.js
vendored
Normal file
1
frontend/dist/assets/js/vendor-helmet-MZDArkdS.js
vendored
Normal file
File diff suppressed because one or more lines are too long
9
frontend/dist/assets/js/vendor-other-CdRIx1s3.js
vendored
Normal file
9
frontend/dist/assets/js/vendor-other-CdRIx1s3.js
vendored
Normal file
File diff suppressed because one or more lines are too long
41
frontend/dist/assets/js/vendor-react-core-DjsjKnCi.js
vendored
Normal file
41
frontend/dist/assets/js/vendor-react-core-DjsjKnCi.js
vendored
Normal file
File diff suppressed because one or more lines are too long
12
frontend/dist/assets/js/vendor-react-router-BJY_70Cr.js
vendored
Normal file
12
frontend/dist/assets/js/vendor-react-router-BJY_70Cr.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
frontend/dist/assets/js/vendor-state-CYwAWrAU.js
vendored
Normal file
1
frontend/dist/assets/js/vendor-state-CYwAWrAU.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
import{R as b}from"./vendor-react-core-DjsjKnCi.js";const H=t=>{let s;const e=new Set,o=(i,h)=>{const v=typeof i=="function"?i(s):i;if(!Object.is(v,s)){const g=s;s=h??(typeof v!="object"||v===null)?v:Object.assign({},s,v),e.forEach(m=>m(s,g))}},a=()=>s,u={setState:o,getState:a,getInitialState:()=>d,subscribe:i=>(e.add(i),()=>e.delete(i))},d=s=t(o,a,u);return u},j=t=>t?H(t):H,k=t=>t;function w(t,s=k){const e=b.useSyncExternalStore(t.subscribe,b.useCallback(()=>s(t.getState()),[t,s]),b.useCallback(()=>s(t.getInitialState()),[t,s]));return b.useDebugValue(e),e}const O=t=>{const s=j(t),e=o=>w(s,o);return Object.assign(e,s),e},F=t=>t?O(t):O;function E(t,s){let e;try{e=t()}catch{return}return{getItem:a=>{var r;const f=d=>d===null?null:JSON.parse(d,void 0),u=(r=e.getItem(a))!=null?r:null;return u instanceof Promise?u.then(f):f(u)},setItem:(a,r)=>e.setItem(a,JSON.stringify(r,void 0)),removeItem:a=>e.removeItem(a)}}const p=t=>s=>{try{const e=t(s);return e instanceof Promise?e:{then(o){return p(o)(e)},catch(o){return this}}}catch(e){return{then(o){return this},catch(o){return p(o)(e)}}}},x=(t,s)=>(e,o,a)=>{let r={storage:E(()=>localStorage),partialize:n=>n,version:0,merge:(n,S)=>({...S,...n}),...s},f=!1;const u=new Set,d=new Set;let i=r.storage;if(!i)return t((...n)=>{console.warn(`[zustand persist middleware] Unable to update item '${r.name}', the given storage is currently unavailable.`),e(...n)},o,a);const h=()=>{const n=r.partialize({...o()});return i.setItem(r.name,{state:n,version:r.version})},v=a.setState;a.setState=(n,S)=>(v(n,S),h());const g=t((...n)=>(e(...n),h()),o,a);a.getInitialState=()=>g;let m;const _=()=>{var n,S;if(!i)return;f=!1,u.forEach(c=>{var l;return c((l=o())!=null?l:g)});const y=((S=r.onRehydrateStorage)==null?void 0:S.call(r,(n=o())!=null?n:g))||void 0;return p(i.getItem.bind(i))(r.name).then(c=>{if(c)if(typeof c.version=="number"&&c.version!==r.version){if(r.migrate){const l=r.migrate(c.state,c.version);return l instanceof Promise?l.then(I=>[!0,I]):[!0,l]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}else return[!1,c.state];return[!1,void 0]}).then(c=>{var l;const[I,R]=c;if(m=r.merge(R,(l=o())!=null?l:g),e(m,!0),I)return h()}).then(()=>{y==null||y(m,void 0),m=o(),f=!0,d.forEach(c=>c(m))}).catch(c=>{y==null||y(void 0,c)})};return a.persist={setOptions:n=>{r={...r,...n},n.storage&&(i=n.storage)},clearStorage:()=>{i==null||i.removeItem(r.name)},getOptions:()=>r,rehydrate:()=>_(),hasHydrated:()=>f,onHydrate:n=>(u.add(n),()=>{u.delete(n)}),onFinishHydration:n=>(d.add(n),()=>{d.delete(n)})},r.skipHydration||_(),m||g},J=x;export{F as c,J as p};
|
||||
Reference in New Issue
Block a user