function imageFormatter(value) { if (value) { return '' + '' + '' } else { return '-' } } function galleryImageFormatter(value) { if (value) { let html = '" return html; } else { return '-' } } function subCategoryFormatter(value, row) { const subcategoriesLabel = window?.languageLabels["Subcategories"] || "Subcategories"; let url = `/category/${row.id}/subcategories`; return '
' + value + ' '+ subcategoriesLabel + '
'; } function customFieldFormatter(value, row) { const customFieldsLabel =window?.languageLabels["Custom Fields"] || "Custom Fields"; let url = `/category/${row.id}/custom-fields`; return '
' + value + ' ' + customFieldsLabel + '
'; } function statusSwitchFormatter(value, row) { return `
` } function autoApproveItemSwitchFormatter(value, row) { return `
`; } function itemStatusSwitchFormatter(value, row) { return `
` } function userStatusSwitchFormatter(value, row) { return `
` } function trans(label) { // return window.languageLabels.hasOwnProperty(label) ? window.languageLabels[label] : label; return window?.languageLabels[label] || label; } function itemStatusFormatter(value) { const statusMap = { "review": { badge: "primary", text: window?.languageLabels?.["Under Review"] || "Under Review" }, "approved": { badge: "success", text: window?.languageLabels?.["Approved"] || "Approved" }, "permanent rejected": { badge: "danger", text: window?.languageLabels?.["Permanent Rejected"] || "Permanent Rejected" }, "sold out": { badge: "warning", text: window?.languageLabels?.["Sold Out"] || "Sold Out" }, "featured": { badge: "black", text: window?.languageLabels?.["Featured"] || "Featured" }, "inactive": { badge: "danger", text: window?.languageLabels?.["Inactive"] || "Inactive" }, "expired": { badge: "danger", text: window?.languageLabels?.["Expired"] || "Expired" }, "soft rejected": { badge: "black", text: window?.languageLabels?.["Soft Rejected"] || "Soft Rejected" }, "resubmitted": { badge: "primary", text: window?.languageLabels?.["Resubmitted"] || "Resubmitted" }, }; const status = statusMap[value] || { badge: "secondary", text: value || "Unknown" }; return `${status.text}`; } function featuredItemStatusFormatter(value) { let badgeClass, badgeText; if (value == "Not-Featured") { badgeClass = 'primary'; badgeText = window?.languageLabels["Not-featured"] || "Not-featured"; } else if (value == "Featured") { badgeClass = 'success'; badgeText = window?.languageLabels["Featured"] || "Featured"; } return '' + badgeText + ''; } function status_badge(value, row) { let badgeClass, badgeText; if (value == '0') { badgeClass = 'danger'; badgeText = 'OFF'; } else { badgeClass = 'success'; badgeText = 'ON'; } return '' + badgeText + ''; } function userStatusBadgeFormatter(value, row) { let badgeClass, badgeText; if (value == '0') { badgeClass = 'danger'; badgeText = 'Inactive'; } else { badgeClass = 'success'; badgeText = 'Active'; } return '' + badgeText + ''; } function styleImageFormatter(value, row) { return 'style_4'; } function filterTextFormatter(value) { let filter; if (value == "most_liked") { filter = "Most Liked"; } else if (value == "price_criteria") { filter = "Price Criteria"; } else if (value == "category_criteria") { filter = "Category Criteria"; } else if (value == "most_viewed") { filter = "Most Viewed"; } return filter; } function adminFile(value, row) { return " View File < /a>"; } function appFile(value, row) { return " View File < /a>"; } function textReadableFormatter(value, row) { let string = value.replace("_", " "); return string.charAt(0).toUpperCase() + string.slice(1); } function userPackageStatusBadgeFormatter(value) { let badgeClass, badgeText; if (value == 'Expired') { badgeClass = 'danger'; badgeText = 'Expired'; } else { badgeClass = 'success'; badgeText = 'Active'; } return '' + badgeText + ''; } function unlimitedBadgeFormatter(value) { if (!value) { return 'Unlimited'; } return value; } function detailFormatter(index, row) { let html = [] if (row.translations && row.translations.length > 0) { $.each(row.translations, function (key, value) { html.push('

' + value.language.name + ': ' + value.description + '

') }) } else { const noTranslations = window?.languageLabels?.["No translations available"] || "No translations available"; html.push('

' + noTranslations + '

') } return html.join('') } function truncateDescription(value, row, index) { if (!value) { return 'No Description Available'; } // Create a temporary DOM element to handle HTML safely let tempDiv = document.createElement("div"); tempDiv.innerHTML = value; let textContent = tempDiv.textContent || tempDiv.innerText || ""; if (textContent.length > 100) { let shortText = textContent.substring(0, 50); return `
${shortText}... ${window?.languageLabels?.["View More"] || "View More"}
`; } else { return value; } } function videoLinkFormatter(value, row, index) { if (!value) { return ''; } const maxLength = 20; const displayText = value.length > maxLength ? value.substring(0, maxLength) + '...' : value; return `${displayText}`; } function dateFormatter(value, row, index) { if (!value) { return '-'; } try { const date = new Date(value); if (isNaN(date.getTime())) { return '-'; } // Format: MM/DD/YYYY HH:MM AM/PM (US format) const month = String(date.getMonth() + 1).padStart(2, '0'); const day = String(date.getDate()).padStart(2, '0'); const year = date.getFullYear(); let hours = date.getHours(); const minutes = String(date.getMinutes()).padStart(2, '0'); const ampm = hours >= 12 ? 'PM' : 'AM'; hours = hours % 12; hours = hours ? hours : 12; // the hour '0' should be '12' const formattedHours = String(hours).padStart(2, '0'); return `${month}/${day}/${year} ${formattedHours}:${minutes} ${ampm}`; } catch (error) { console.error('Date formatting error:', error); return '-'; } } function sellerverificationStatusFormatter(value) { let badgeClass, badgeText; if (value == "review") { badgeClass = 'primary'; badgeText = window?.languageLabels?.["Under Review"] || "Under Review"; } else if (value == "approved") { badgeClass = 'success'; badgeText = window?.languageLabels?.["Approved"] || "Approved"; } else if (value == "rejected") { badgeClass = 'danger'; badgeText = window?.languageLabels?.["Rejected"] || "Rejected"; } else if (value == "pending") { badgeClass = 'warning'; badgeText = window?.languageLabels?.["Pending"] || "Pending"; } return '' + badgeText + ''; } function categoryNameFormatter(value, row) { let buttonHtml = ''; let count = parseInt(row.subcategories_count); if (count > 0) { buttonHtml = ``; } else { buttonHtml = ``; } return `${buttonHtml}${value}`; } function subCategoryNameFormatter(value, row, level) { let dataLevel = 0; let indent = level * 35; let buttonHtml = ''; let count = parseInt(row.subcategories_count); if (count > 0) { buttonHtml = ``; } else { buttonHtml = ``; } dataLevel += 1; return `
${buttonHtml}${value}
`; } function descriptionFormatter(value, row, index) { if (value.length >= 50) { return '
' + value.substring(0, 50) + '... ' + (window?.languageLabels["View More"]) + '
' + ''; } else { return value; } } function rejectedReasonFormatter(value, row, index) { if (value !== null && value !== undefined && value !== '') { if (value.length > 20) { return '
' + value.substring(0, 100) + '... ' + (window?.languageLabels["View More"]) + '
' + ''; } else { return value; } } return '-'; } function ratingFormatter(value, row, index) { const maxRating = 5; let stars = ''; for (let i = 1; i <= maxRating; i++) { if (i <= Math.floor(value)) { stars += ''; } else if (i === Math.ceil(value) && value % 1 !== 0) { stars += ''; } else { stars += ''; } } return stars; } function reportStatusFormatter(value) { let badgeClass, badgeText; if (value == "reported") { badgeClass = 'primary'; badgeText = window?.languageLabels?.["Reported"] || "Reported"; } else if (value == "approved") { badgeClass = 'success'; badgeText = window?.languageLabels?.["Approved"] || "Approved"; } else if (value == "rejected") { badgeClass = 'danger'; badgeText = window?.languageLabels?.["Rejected"] || "Rejected"; } return '' + badgeText + ''; } function typeFormatter(value, row) { if (value === 'App\\Models\\Category') { return 'Category'; } else if (value === 'App\\Models\\Item') { return 'Advertisement'; } else { return '-'; } } function packageTypeFormatter(value, row, index) { if (value === 'item_listing') { return '' + (window?.languageLabels["Item Listing (Ads)"]) + ''; } else if (value === 'advertisement') { return '' + (window?.languageLabels["Advertisement (Featured Ads)"]) + ''; } return value; } function categoryNamesFormatter(value, row, index) { if (row.is_global == 1) { return '' + (window?.languageLabels["Global"]) + ''; } if (value === 'Category Based') { return '' + (window?.languageLabels["Category Based"]) + ''; } return '' + (window?.languageLabels["Category Based"]) + ''; }