Sid Gifari File Manager
🏠 Root
/
home
/
genremedia08
/
thepassage.overlookedtracks.com
/
wp-content9
/
plugins
/
echo-knowledge-base
/
js
/
ai
/
Editing: admin-ai-training-data-table.min.js
(function(){"use strict";const{useState:e,useEffect:t,useCallback:a,createElement:n,Fragment:s,useContext:o,useRef:i,useMemo:l,createRoot:c}=wp.element;const{__:r}=wp.i18n;const{showError:d,showSuccess:p,makeApiRequest:u,showConfirmDialog:g,formatServerDateTime:b,useTableSearch:f,clearAllEPKBSessionStorage:h}=window.EPKB_AI_Util_React||{};const{useSyncContext:m}=window.EPKB_AI_Sync||{};const k=()=>{try{const e=o(window.EPKB_AI_TrainingDataCacheContext);return e||null}catch(e){return null}};const y=({collectionId:c,collectionName:m="",hasApiKey:y=true,onSelectedIdsChange:w,onBulkDeleteCallback:_,onSelectAllCallback:N,onTotalItemsChange:v,onTrainingDataChange:S,refreshTrigger:C=0,syncProgress:x=null,isSyncing:I=false,onFilterStateChange:T,initialStats:D=null,initialData:E=null,onStatsUpdate:P=null,selectedIds:A=null,onNoteEdit:$=null,isAIProEnabled:B=false,onActiveStatusTabChange:R=null,onStatusCountsChange:j=null})=>{const L=window.EPKB_AI_SyncContext?o(window.EPKB_AI_SyncContext):null;const[F,K]=e((()=>{if(E){if(E.all&&E.all.data){return E.all.data}else if(E.data){return E.data}}return[]}));const[M,O]=e([]);const z=A!==null?A:M;const[U,H]=e((()=>{if(D&&Object.keys(D).length>0){return{added:0,updated:0,outdated:0,error:0,pending:0,...D}}return{added:0,updated:0,outdated:0,error:0,pending:0}}));const[q,V]=e((()=>{if(L?.syncItems?.length>0&&L?.showSyncTab){return false}return!(E&&(E.all||E.data))}));const[J,G]=e(1);const[W,Y]=e((()=>{if(E){if(E.all&&E.all.pagination){return E.all.pagination.total_pages}else if(E.pagination){return E.pagination.total_pages}}return 1}));const[Q,X]=e(false);const[Z,ee]=e(new Set);const[te,ae]=e(new Set);const ne=20;const[se,oe]=e([]);const[ie,le]=e(false);const ce=L?.syncItems||se;const re=L?.setSyncItems||oe;const de=L?.showSyncTab!==undefined?L.showSyncTab:ie;const pe=L?.setShowSyncTab||le;const[ue,ge]=e((()=>{if(L?.syncItems?.length>0&&L?.showSyncTab&&L?.job?.collectionId===c){return"sync"}return"all"}));const[be,fe]=e([]);const[he,me]=e([]);const[ke,ye]=e(null);const[we,_e]=e("asc");const[Ne,ve]=e(false);const[Se,Ce]=e(false);const[xe,Ie]=e("");const[Te,De]=e([]);const Ee=a((async e=>{Ie(e||"");G(1);return null}),[]);const{searchTerm:Pe,displayedData:Ae,isSearching:$e,searchMessage:Be,handleSearchChange:Re,clearSearch:je}=f({data:F,allData:null,onServerSearch:Ee,searchFields:["title","type_name","type","item_type","url","item_id"]});const Le=a((()=>xe||ue!=="all"||he.length>0),[xe,ue,he]);const Fe=a((()=>{if(ue==="sync"){return[...ce].reverse()}let e=[...Ae];e.sort(((e,t)=>{const a=e&&e.status==="updating";const n=t&&t.status==="updating";if(a!==n){return a?-1:1}if(!ke)return 0;let s=e[ke];let o=t[ke];if(ke==="item_id"){s=parseInt(s)||0;o=parseInt(o)||0}if(ke==="last_synced"){s=new Date(s||0).getTime();o=new Date(o||0).getTime()}if(s<o)return we==="asc"?-1:1;if(s>o)return we==="asc"?1:-1;return 0}));return e}),[Ae,ue,ce,ke,we]);const Ke=a((()=>Fe()),[Fe]);const Me=a((()=>W),[W]);const Oe=k();const ze=a((()=>{const e=ue||"all";const t=he.length>0?`_type_${he.join("-")}`:"";const a=xe?`_search_${encodeURIComponent(xe)}`:"";return`collection_${c}_status_${e}_page_${J}${t}${a}`}),[c,J,ue,he,xe]);const Ue=a(((e,t)=>{K((a=>a.map((a=>{if(a.id===e){return{...a,status:t}}return a}))))}),[]);const He=i(true);const qe=i(false);t((()=>{He.current=true;qe.current=false;G(1);ge("all");me([]);Ie("")}),[c]);t((()=>{G(1)}),[ue,he,xe]);t((()=>{if(ue==="sync"){V(false);return}const e=()=>{if(!E||qe.current){return false}if(J!==1||he.length>0||xe){return false}if(E[ue]&&E[ue].data!==undefined){return true}if(ue==="all"&&E.data){return true}return false};if(e()){let e,t;if(E[ue]){e=E[ue].data;t=E[ue].pagination}else if(ue==="all"&&E.data){e=E.data;t=E.pagination}K(e);Y(t?t.total_pages:1);V(false);He.current=false;if(S){S(e)}}else{Ve()}}),[J,ue,he,xe,E,S]);const Ve=a((async(e=false)=>{if(ue==="sync"){V(false);return}const t=ze();const a={collection_id:c,page:J,per_page:ne};if(ue!=="all"){a.status=ue}if(he.length>0){a.type=he[0]}if(xe){a.search=xe}const n=!He.current&&!e&&Oe;if(n){const e=Oe.get(t);if(e&&e.data&&e.totalPages!==undefined){K(e.data);Y(e.totalPages);if(e.availableTypes){De(e.availableTypes)}if(S){S(e.data)}V(false);u("training-data",{params:a}).then((a=>{if(a.success){if(a.status_counts){const e={added:0,updated:0,outdated:0,error:0,pending:0,...a.status_counts};H(e);if(j){j(e)}}const n=a.pagination?Number(a.pagination.total_pages):1;if(n!==e.totalPages){Y(n)}if(a.available_types){De(a.available_types)}if(a.data){const s=a.data;const o=JSON.stringify(e.data);const i=JSON.stringify(s);if(o!==i){K((e=>{const o=new Map;e.forEach((e=>{if(e&&e.status==="updating"){o.set(String(e.item_id),e)}}));const i=s.map((e=>{const t=o.get(String(e.item_id));if(t){return{...e,status:"updating",last_synced:t.last_synced||e.last_synced}}return e}));if(Oe){Oe.set(t,{data:s,totalPages:n,availableTypes:a.available_types||[],timestamp:Date.now()})}if(S){S(i)}return i}))}else if(n!==e.totalPages){if(Oe){Oe.set(t,{data:e.data,totalPages:n,availableTypes:a.available_types||e.availableTypes||[],timestamp:Date.now()})}}}}})).catch((()=>{}));return}}V(true);try{const e=await u("training-data",{params:a});if(e.success){const a=e.data||[];const n=e.status_counts||{};const s=e.available_types||[];const o=e.pagination?Number(e.pagination.total_pages):1;if(Oe){Oe.set(t,{data:a,totalPages:o,availableTypes:s,timestamp:Date.now()})}De(s);K((e=>{const t=new Map;const n=new Set;const s=new Map;e.forEach((e=>{if(e.summarized_content){t.set(e.id,e.summarized_content)}if(e.status==="updating"){n.add(String(e.item_id));if(e.last_synced){s.set(String(e.item_id),e.last_synced)}}}));return a.map((e=>{const a=t.get(e.id);const o=n.has(String(e.item_id));const i=a&&!e.summarized_content?{...e,summarized_content:a}:e;if(o){return{...i,status:"updating",last_synced:s.get(String(e.item_id))||i.last_synced}}return i}))}));Y(o);const i={added:0,updated:0,outdated:0,error:0,pending:0,...n};H(i);if(j){j(i)}if(S){S(a)}}}catch(e){if(e.message!=="API key required"&&e.code!=="fetch_error"){console.error("Failed to fetch training data:",e);d(r("Failed to load training data","echo-knowledge-base"))}}finally{V(false);if(He.current){He.current=false}}}),[c,J,ze,S,j,Oe,Le,ue,he,xe]);const Je=a((e=>{if(e){const e=Ke();O(e.map((e=>e.id)))}else{O([])}}),[Ke]);const Ge=async()=>{X(true);qe.current=true;if(Oe){Oe.clearCollection(c)}h();const e=L&&L.job&&(L.job.status==="running"||L.job.status==="scheduled");await Ve(true);X(false);p(r("Data refreshed successfully","echo-knowledge-base"))};const We=a((async()=>{if(!M.length)return;const e=await g({title:r("Delete Selected Items","echo-knowledge-base"),message:r("Are you sure you want to delete the selected items?","echo-knowledge-base"),confirmText:r("Delete","echo-knowledge-base"),cancelText:r("Cancel","echo-knowledge-base"),confirmButtonClass:"epkb-ai-button-danger"});if(!e){return}ae(new Set(M));try{const e=await u("training-data/delete-selected",{method:"DELETE",data:{ids:M}});p(r("Items deleted successfully","echo-knowledge-base"));O([]);qe.current=true;setTimeout((()=>{ae(new Set);if(Oe){Oe.clearCollection(c)}Ve(true)}),500)}catch(e){console.error("Delete error:",e);if(e.message!=="API key required"&&!e._errorDisplayed){d(e.message||r("Failed to delete items","echo-knowledge-base"))}ae(new Set)}}),[M,ze,Oe,Ve]);t((()=>{if(C>0){qe.current=true;if(Oe){Oe.clearCollection(c)}Ve(true);O([])}}),[C]);t((()=>{const e=e=>{if(!e.target.closest(".epkb-ai-table-header-content")){ve(false);Ce(false)}};document.addEventListener("click",e);return()=>document.removeEventListener("click",e)}),[]);t((()=>{if(w){w(M)}}),[M,w]);t((()=>{if(_&&We){_((()=>{We()}))}}),[_,We]);t((()=>{if(N){N(Je)}}),[N,Je]);const Ye=l((()=>{if(U){return Object.keys(U).filter((e=>["added","updated","outdated","error","pending"].includes(e))).reduce(((e,t)=>e+(U[t]||0)),0)}return 0}),[U]);t((()=>{if(v){v(Ye)}}),[Ye,v]);t((()=>{if(T){const e=Pe!==""||be.length>0||he.length>0;T(e)}}),[Pe,be,he,T]);t((()=>{if(R){R(ue)}}),[ue,R]);t((()=>{if(j){j(U)}}),[U,j]);const Qe=i(null);t((()=>{if(L){const e=L.job?.status;const t=L.job?.collectionId;const a=L.syncItems&&L.syncItems.length>0;const n=e==="running"||e==="scheduled";const s=t===c;if(s&&(n||a)){if(!de){pe(true)}if(a||n){ge("sync");V(false)}}}}),[]);t((()=>{if(L&&L.job){const e=L.job.status;const t=L.job.collectionId;if(t!==c){Qe.current=e;return}if(e==="running"||e==="scheduled"){const e=Qe.current!=="running"&&Qe.current!=="scheduled";if(!de){pe(true);ge("sync")}else if(ue!=="sync"){ge("sync")}if(e){const e=[...z];if(e.length>0){setTimeout((()=>{O([]);if(w){w([])}}),100)}}}Qe.current=e;if(e==="completed"||e==="canceled"){re((t=>t.map((t=>({...t,status:e==="completed"?"completed":t.status==="completed"?"completed":"canceled"})))))}}}),[L?.job?.status,L?.job?.collectionId,de,z,F,w,c]);t((()=>{if(L&&L.registerPostUpdateHandler){const e=e=>{re((t=>{let a=[...t];e.forEach((e=>{const t=a.findIndex((t=>String(t.item_id)===String(e.id)));if(t!==-1){a[t]={...a[t],status:e.status==="synced"?"completed":e.status==="updating"?"syncing":e.status,error_message:e.error_message||e.message,last_synced:e.last_synced||(new Date).toISOString()}}else{const t=F.find((t=>String(t.item_id)===String(e.id)));if(t){if(e.status){a.push({id:t.id,item_id:t.item_id,title:t.title,type:t.item_type||t.type||"Article",type_name:t.type_name||t.type||"Article",status:e.status==="synced"?"completed":e.status==="updating"?"syncing":e.status||"syncing",error_message:e.error_message||e.message,last_synced:e.last_synced||(new Date).toISOString()})}}}}));a.sort(((e,t)=>{if(e.status==="syncing"&&t.status!=="syncing")return-1;if(e.status!=="syncing"&&t.status==="syncing")return 1;return 0}));return a}))};L.registerPostUpdateHandler(e);return()=>{if(L.unregisterPostUpdateHandler){L.unregisterPostUpdateHandler(e)}}}}),[L,F,de]);const Xe=e=>{if(M.includes(e)){O(M.filter((t=>t!==e)))}else{O([...M,e])}if(w){w([...M,e],true)}};const Ze=async e=>{const t=Array.isArray(e)?e:[e];const a=await g({title:r("Delete Items","echo-knowledge-base"),message:r("Are you sure you want to delete the selected items?","echo-knowledge-base"),confirmText:r("Delete","echo-knowledge-base"),cancelText:r("Cancel","echo-knowledge-base"),confirmButtonClass:"epkb-ai-button-danger"});if(!a){return}ae(new Set(t));try{await u("training-data/delete-selected",{method:"DELETE",data:{ids:t}});p(r("Items deleted successfully","echo-knowledge-base"));O([]);qe.current=true;setTimeout((()=>{ae(new Set);if(Oe){Oe.clearCollection(c)}Ve(true)}),500)}catch(e){if(e.message!=="API key required"&&!e._errorDisplayed){d(e.message||r("Failed to delete items","echo-knowledge-base"))}ae(new Set)}};const et=e=>{const t={added:{label:r("Added","echo-knowledge-base"),className:"status-added"},updated:{label:r("Updated","echo-knowledge-base"),className:"status-updated"},outdated:{label:r("Outdated","echo-knowledge-base"),className:"status-outdated"},error:{label:r("Error","echo-knowledge-base"),className:"status-error"},pending:{label:r("Pending","echo-knowledge-base"),className:"status-pending"},syncing:{label:r("Syncing","echo-knowledge-base"),className:"status-syncing"},completed:{label:r("Completed","echo-knowledge-base"),className:"status-completed"},canceled:{label:r("Canceled","echo-knowledge-base"),className:"status-canceled"}};const a=t[e]||{label:e,className:"status-pending"};return n("span",{className:`epkb-ai-status-badge ${a.className}`},a.label)};const tt=()=>["added","updated","outdated","error","pending"];const at=()=>{if(Te&&Te.length>0){return Te}const e=new Map;const t=F;t.forEach((t=>{const a=t.item_type||t.type||"Article";const n=t.type_name||t.type||"Article";if(!e.has(a)){e.set(a,n)}}));return Array.from(e,(([e,t])=>({value:e,label:t}))).sort(((e,t)=>e.label.localeCompare(t.label)))};const nt=async e=>{ge(e);G(1);if(R){R(e)}const t=e!=="all"||he.length>0};const st=async e=>{let t;if(he.includes(e)){t=he.filter((t=>t!==e))}else{t=[...he,e]}me(t);const a=ue!=="all"||t.length>0};const ot=e=>{if(ke===e){_e(we==="asc"?"desc":"asc")}else{ye(e);_e("asc")}};const it=a((()=>{const e={};if(U){Object.keys(U).forEach((t=>{if(["added","updated","outdated","error","pending"].includes(t)){const a=U[t]||0;if(a>0){e[t]=a}}}))}return e}),[U]);if(!q&&F.length===0&&!Le()){return n("div",{className:"epkb-ai-data-source-table"},n("div",{className:"epkb-ai-empty-state"},n("div",{className:"epkb-ai-empty-icon"},n("span",{className:"epkbfa epkbfa-file-text-o"})),n("h4",null,r("How to get started","echo-knowledge-base")),n("div",{style:{marginTop:"15px",marginBottom:"15px"}},n("p",{style:{marginBottom:"10px"}},"1. ",n("strong",null,r("Choose Training Data","echo-knowledge-base"))," — ",r("Pick the content types to include.","echo-knowledge-base")),n("p",{style:{marginBottom:"10px"}},"2. ",n("strong",null,r("Send Data to AI","echo-knowledge-base"))," — ",r("Select items in the table, then sync them.","echo-knowledge-base")),n("p",{style:{marginBottom:"10px"}},"3. ",n("strong",null,r("Other Actions","echo-knowledge-base"))," — ",r("Rename the collection or delete items.","echo-knowledge-base"))),n("p",null,r("Tip: Start with a small set to test the flow.","echo-knowledge-base")),n("button",{className:"epkb-ai-button epkb-ai-button-success",onClick:Ge,disabled:Q,style:{backgroundColor:"#46b450",borderColor:"#46b450",color:"#fff",padding:"8px 16px",fontSize:"14px",marginTop:"15px"}},Q?r("Refreshing...","echo-knowledge-base"):n(s,null,n("span",{className:"epkbfa epkbfa-refresh",style:{marginRight:"5px"}}),r("Refresh","echo-knowledge-base")))))}return n("div",{className:"epkb-ai-data-source-table"},n("div",{className:"epkb-ai-table-content"},n("div",{className:"epkb-ai-table-actions"},n("div",{className:"epkb-ai-table-actions-left"},n("div",{className:"epkb-ai-status-tabs-bar"},(()=>{const e=it();const t=["all"];const a={all:r("All","echo-knowledge-base"),sync:r("Sync","echo-knowledge-base"),error:r("Error","echo-knowledge-base"),pending:r("Pending","echo-knowledge-base"),outdated:r("Outdated","echo-knowledge-base"),added:r("Added","echo-knowledge-base"),updated:r("Updated","echo-knowledge-base")};if(de){t.push("sync")}if(e.error>0)t.push("error");if(e.pending>0)t.push("pending");if(e.outdated>0)t.push("outdated");if(e.added>0)t.push("added");if(e.updated>0)t.push("updated");return t.map((t=>{let s;if(t==="all"){s=Object.values(e).reduce(((e,t)=>e+t),0)}else if(t==="sync"){s=ce.length}else{s=e[t]||0}return n("button",{key:t,className:`epkb-ai-status-tab ${t===ue?"active":""} ${t==="sync"?"epkb-ai-sync-tab":""}`,onClick:()=>nt(t)},n("span",{className:"epkb-ai-tab-label"},a[t]),n("span",{className:"epkb-ai-tab-count"},`(${s})`))}))})(),I&&x&&n("div",{className:"epkb-ai-sync-progress-indicator"},n("span",{className:x.isRunning!==false?"epkb-ai-sync-icon epkbfa epkbfa-refresh fa-spin":"epkb-ai-sync-icon epkbfa epkbfa-check-circle",style:x.isRunning===false?{color:"#46b450"}:{}}),n("span",{className:"epkb-ai-sync-text"},x.isRunning!==false?r("Syncing","echo-knowledge-base"):r("Sync Complete","echo-knowledge-base")),n("span",{className:"epkb-ai-sync-percentage"},`${x.percentage||0}%`),n("span",{className:"epkb-ai-sync-separator"},"•"),n("span",{className:"epkb-ai-sync-total"},`${x.synced||0}/${x.total||0}`)))),n("div",{className:"epkb-ai-table-actions-right"},n("div",{className:"epkb-ai-search-input"},n("input",{type:"text",placeholder:r("Search by title, type, URL, or ID...","echo-knowledge-base"),value:Pe,onChange:e=>Re(e.target.value)}),n("span",{className:"epkb-ai-search-icon epkbfa epkbfa-search"})),n("button",{className:"epkb-ai-button epkb-ai-button-success",onClick:Ge,disabled:q||Q||I,style:{backgroundColor:"#46b450",borderColor:"#46b450",color:"#fff",padding:"6px 12px",fontSize:"14px",marginLeft:"10px",marginRight:M.length>0?"15px":"0"}},Q?r("Refreshing...","echo-knowledge-base"):n(s,null,n("span",{className:"epkbfa epkbfa-refresh",style:{marginRight:"5px"}}),r("Refresh","echo-knowledge-base"))),M.length>0&&n("span",{className:"epkb-ai-selected-count"},`${M.length} ${r("selected","echo-knowledge-base")}`))),q?n("div",{className:"epkb-ai-loading"},ue==="sync"?r("Preparing sync...","echo-knowledge-base"):r("Loading training data...","echo-knowledge-base")):n(s,null,n("table",{className:"epkb-ai-data-table"},n("thead",null,n("tr",null,n("th",{className:"epkb-ai-table-checkbox"},n("input",{type:"checkbox",checked:(()=>{const e=Ke();return z.length===e.length&&e.length>0})(),onChange:e=>Je(e.target.checked)})),n("th",null,r("Status","echo-knowledge-base")),n("th",null,n("div",{className:"epkb-ai-table-header-content"},n("span",null,r("Title","echo-knowledge-base")),n("span",{className:`epkb-ai-sort-label ${ke==="title"?"active":""}`,onClick:()=>ot("title")},ke==="title"?(we==="asc"?"↑":"↓")+" "+r("Sort","echo-knowledge-base"):r("Sort","echo-knowledge-base")))),n("th",{style:{position:"relative"}},n("div",{className:"epkb-ai-table-header-content"},n("span",null,r("Type","echo-knowledge-base")),n("span",{className:`epkb-ai-filter-label ${he.length>0?"active":""}`,onClick:async()=>{Ce(!Se)}},r("Filter","echo-knowledge-base")),Se&&n("div",{className:"epkb-ai-filter-dropdown",onClick:e=>e.stopPropagation()},at().map((e=>n("label",{key:e.value,className:"epkb-ai-filter-option"},n("input",{type:"checkbox",checked:he.includes(e.value),onChange:()=>st(e.value)}),n("span",null,e.label))))))),n("th",null,n("div",{className:"epkb-ai-table-header-content"},n("span",null,r("Updated","echo-knowledge-base")),n("span",{className:`epkb-ai-sort-label ${ke==="last_synced"?"active":""}`,onClick:()=>ot("last_synced")},ke==="last_synced"?(we==="asc"?"↑":"↓")+" "+r("Sort","echo-knowledge-base"):r("Sort","echo-knowledge-base")))))),n("tbody",null,Ke().length===0?n("tr",null,n("td",{colSpan:7,style:{textAlign:"center",padding:"20px"}},r("No training data found","echo-knowledge-base"))):Ke().map((e=>{let t="";if(te.has(e.id)){t="epkb-ai-deleting-row"}else if(e.status==="updating"||e.status==="syncing"){t="epkb-ai-syncing-row"}else if(e.status==="completed"){t="epkb-ai-sync-completed"}else if(Z.has(e.item_id)){t="epkb-ai-recently-synced"}const a=ue==="sync"?e.status==="syncing"?"syncing":e.status==="completed"?"updated":e.status==="canceled"?"canceled":e.status:e.status;return n("tr",{key:e.id,className:t,"data-item-id":e.id,onClick:t=>{const a=t.target;const n=a.tagName.toLowerCase();const s=n==="a"||n==="button"||n==="input"||a.closest("a")||a.closest("button")||a.closest("input");if(!s&&ue!=="sync"){Xe(e.id)}},style:{cursor:ue==="sync"?"default":"pointer"}},n("td",{className:"epkb-ai-table-checkbox"},ue==="sync"?null:n("input",{type:"checkbox",checked:z.includes(e.id),onChange:()=>Xe(e.id)})),n("td",null,et(a)),n("td",{className:"epkb-ai-table-title"},n("div",{style:{display:"flex",alignItems:"center",gap:"10px"}},e.type==="epkb_kb_files"?n("span",{style:{flex:1}},e.title):e.type==="aipro_ai_note"||e.type==="epkb_ai_note"?n("a",{href:`${window.epkb_ai_api.admin_url}admin.php?page=aipro-all-notes¬e_id=${e.item_id}${c?"&collection_id="+c:""}`,target:"_blank",rel:"noopener noreferrer",style:{color:"inherit",flex:1}},e.title):n("a",{href:`${window.epkb_ai_api.admin_url}post.php?post=${e.item_id}&action=edit`,target:"_blank",rel:"noopener noreferrer",style:{color:"inherit",flex:1}},e.title),n("button",{className:"epkb-ai-view-content-btn",onClick:t=>{t.preventDefault();t.stopPropagation();if((e.type==="aipro_ai_note"||e.type==="epkb_ai_note")&&B&&$){$({id:e.item_id,training_id:e.id,title:e.title})}else{if(window.EPKB_AI_ViewContentDialog&&typeof window.EPKB_AI_ViewContentDialog.show==="function"){window.EPKB_AI_ViewContentDialog.show(e.id,e.title,e)}}},title:(e.type==="aipro_ai_note"||e.type==="epkb_ai_note")&&B?r("Edit note","echo-knowledge-base"):e.status==="error"?r("View Error","echo-knowledge-base"):r("View content","echo-knowledge-base"),style:{background:"transparent",border:"none",cursor:"pointer",padding:"4px",color:e.status==="error"?"#d54e21":"#0073aa",fontSize:"16px"}},n("span",{className:(e.type==="aipro_ai_note"||e.type==="epkb_ai_note")&&B?"epkbfa epkbfa-edit":e.status==="error"?"epkbfa epkbfa-exclamation-triangle":"epkbfa epkbfa-eye"})))),n("td",null,e.type==="epkb_kb_files"?r("KB Files","echo-knowledge-base"):e.type_name||e.type||r("Article","echo-knowledge-base")),n("td",{className:"epkb-ai-table-date"},b&&(e.last_synced||e.created)?b(e.last_synced||e.created,r("Never","echo-knowledge-base")):r("Never","echo-knowledge-base")))})))),(Be||$e)&&n("div",{className:"epkb-ai-search-message",style:{textAlign:"center",padding:"10px",color:"#666",fontStyle:"italic"}},$e?r("Searching server for more results...","echo-knowledge-base"):Be),(()=>{const e=Me();if(e<=1){return null}return n("div",{className:"epkb-ai-pagination"},n("button",{disabled:J===1,onClick:()=>G(J-1),className:"epkb-ai-button epkb-ai-button-secondary"},r("Previous","echo-knowledge-base")),n("span",{className:"epkb-ai-page-info"},`${r("Page","echo-knowledge-base")} ${J} ${r("of","echo-knowledge-base")} ${e}`),n("button",{disabled:J===e,onClick:()=>G(J+1),className:"epkb-ai-button epkb-ai-button-secondary"},r("Next","echo-knowledge-base")))})())))};window.EPKB_AI_DataSourceTable=y;class w{constructor(){this.container=null;this.root=null;this.currentId=null}async show(e,t,a=null){this.currentId=e;if(!this.container){this.container=document.createElement("div");this.container.id="epkb-ai-view-content-dialog-root";document.body.appendChild(this.container);const{render:e,unmountComponentAtNode:t}=wp.element;if(typeof c==="function"){this.root=c(this.container)}else if(typeof e==="function"){this.root={render:t=>e(t,this.container),unmount:()=>{if(typeof t==="function"){t(this.container)}else{this.container.innerHTML=""}}}}}if(a&&a.status==="error"&&a.error_message){this.renderDialog({title:t||r("Error Details","echo-knowledge-base"),error:true,errorMessage:a.error_message,errorPostId:a.item_id,loading:false});return}this.renderDialog({title:t||r("Loading...","echo-knowledge-base"),loading:true});try{const n=await u(`training-data/${e}/content`,{method:"GET"});if(n&&n.data){const e=n.data;const s=a?.item_id||n.data?.item_id;if(s){const t=`epkb_summarized_content_${s}`;const a=sessionStorage.getItem(t);if(a){e.summarized_content=a}}this.renderDialog({title:e.title||t,content:e,loading:false})}else if(n&&n.success===false&&n.message){this.renderDialog({title:t||r("Error Details","echo-knowledge-base"),error:true,errorMessage:n.message,errorPostId:a?.item_id,loading:false})}else{throw new Error(r("Failed to load content","echo-knowledge-base"))}}catch(e){console.error("Failed to load content:",e);this.renderDialog({title:t||r("Error Details","echo-knowledge-base"),error:true,errorMessage:e.user_message||e.admin_message||e.message||r("Failed to load content","echo-knowledge-base"),errorPostId:a?.item_id,loading:false})}}renderDialog(e){const{title:t,content:a,loading:s,error:o,errorMessage:i,errorPostId:l}=e;const c=n("div",{className:"epkb-ai-view-content-dialog-overlay",onClick:e=>{if(e.target.className==="epkb-ai-view-content-dialog-overlay"){this.close()}}},n("div",{className:"epkb-ai-view-content-dialog"},n("div",{className:"epkb-ai-dialog-header",style:{position:"relative"}},n("h3",null,t),(a?.item_id||l)&&n("span",{style:{position:"absolute",right:"50px",top:"50%",transform:"translateY(-50%)",fontSize:"14px",color:"#666",fontWeight:"normal"}},n("strong",null,r("Post ID:","echo-knowledge-base"))," ",a?.item_id||l),n("button",{className:"epkb-ai-dialog-close",onClick:()=>this.close(),"aria-label":r("Close","echo-knowledge-base")},n("span",{className:"epkbfa epkbfa-times"}))),n("div",{className:"epkb-ai-dialog-body"},s?n("div",{className:"epkb-ai-loading-spinner"},n("span",{className:"epkb-loading-spinner-text"}," "+r("Loading content...","echo-knowledge-base"))):o?n("div",{className:"epkb-ai-error-content"},n("div",{className:"epkb-ai-error-icon"},n("span",{className:"epkbfa epkbfa-exclamation-triangle",style:{fontSize:"48px",color:"#d54e21"}})),n("h4",{style:{color:"#d54e21",marginTop:"20px"}},r("Error Processing Content","echo-knowledge-base")),n("div",{className:"epkb-ai-error-message",style:{marginTop:"15px",padding:"15px",backgroundColor:"#fef2f2",border:"1px solid #fee",borderRadius:"4px"}},n("p",{style:{margin:0,color:"#666"}},i))):a&&n("div",{className:"epkb-ai-content-tabs"},n("div",{className:"epkb-ai-content-tabs-header"},n("button",{className:"epkb-ai-content-tab-button active","data-tab":"original",onClick:e=>this.switchTab(e,"original")},r("Original Content","echo-knowledge-base")),n("button",{className:"epkb-ai-content-tab-button","data-tab":"processed",onClick:e=>this.switchTab(e,"processed")},r("Processed Content","echo-knowledge-base"))),n("div",{className:"epkb-ai-content-tabs-content"},n("div",{className:"epkb-ai-content-tab-panel active","data-panel":"original"},n("pre",{className:"epkb-ai-content-display"},a.doc_content||r("No content available","echo-knowledge-base"))),n("div",{className:"epkb-ai-content-tab-panel","data-panel":"processed"},(()=>{const e=a.processed_content;if(!e){return n("div",{className:"epkb-ai-content-display"},r("No processed content available","echo-knowledge-base"))}if(typeof marked!=="undefined"&&marked&&marked.parse){try{const t={breaks:true,gfm:true};const a=marked.parse(e,t);return n("div",{className:"epkb-ai-content-display epkb-ai-markdown-content",dangerouslySetInnerHTML:{__html:a}})}catch(t){console.error("Failed to parse markdown:",t);return n("pre",{className:"epkb-ai-content-display"},e)}}else{return n("pre",{className:"epkb-ai-content-display"},e)}})()))))));if(this.root&&typeof this.root.render==="function"){this.root.render(c)}}switchTab(e,t){const a=e.target.closest(".epkb-ai-view-content-dialog");a.querySelectorAll(".epkb-ai-content-tab-button").forEach((e=>{e.classList.toggle("active",e.dataset.tab===t)}));a.querySelectorAll(".epkb-ai-content-tab-panel").forEach((e=>{e.classList.toggle("active",e.dataset.panel===t)}))}close(){if(this.root&&typeof this.root.unmount==="function"){this.root.unmount();this.root=null}else if(this.container){const{unmountComponentAtNode:e}=wp.element;if(typeof e==="function"){e(this.container)}else{this.container.innerHTML=""}}if(this.container&&this.container.parentNode){this.container.parentNode.removeChild(this.container);this.container=null}this.currentId=null}}window.EPKB_AI_ViewContentDialog=new w})();
Save
Cancel