Software: Apache. PHP/8.1.30 uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root) Safe-mode: OFF (not secure) /home/picotech/domains/ecom1.picotech.app/public_html_ecom1/public/dist/js/custom/ drwxr-xr-x |
Viewing file: Select action/file-type: 'use strict'; $.fn.isInViewport = function () { if (this.length == 0) { return false; } return this[0].getBoundingClientRect().top < $(window).height(); }; class AjaxRequest { // Fetch data from the url static async call(url, params = {}) { let options = Object.assign( { method: "GET", // *GET, POST, PUT, DELETE, etc. headers: { "Content-Type": "application/json", Accept: "application/json", }, }, params ); let data = await fetch(url, options) .then((response) => response.json()) .then((data) => data.response); return data; } } class Dashboard { element; fetched = false; links = []; params = {}; static getObject() { // Returns the class object if (this.myself == null) { // If object is not already available then create a new one this.myself = new this(); } return this.myself; } async update(url) { this.fetched = true; let data = await AjaxRequest.call(url, this.params); // Make api call to fetch data if (this.getStatus(data)) { // render 5 row in the table this.renderData(this.element, data); } else { throw new Error(this.getErrMessage(data)); } } dataAlreadyFetched(url) { if (dashboardAjaxData[url] == undefined) { return false; } return true; } getFromFetchedData(url) { return dashboardAjaxData[url]; } sliceData(data, count = 5) { return data.slice(0, count); } // Hide place holder and show the data switchView() { this.element.find(".placeholder-data").addClass("d-none"); this.element.find(".original-data").removeClass("d-none"); } sync(url) { if (!this.hasObject()) { return; } if (!this.fetched && this.element.isInViewport() && url) { this.update(url); } } hasObject() { if (this.element == undefined || this.element.length < 1) { return false; } return true; } renderData() { throw new Error("Must implement renderData() method."); } getStatus(data) { if (data.status && data.status.code && data.status.code == 200) { return true; } return false; } getErrMessage(data) { return data.status.message; } formatString(str, len = 20, ending = "...") { if (str.length > len - ending.length) { return str.substr(0, len) + ending; } return str; } formatUrl(url, param, key = null) { if (!key) { return url.replace("__id__", param); } return url.replace(key, param); } addLink(url, key) { this.links[key] = url; return this; } getLink(type, param, key = null) { if (this.links[type] == undefined) { return "#"; } if (!key) { return this.links[type].replace("__id__", param); } return this.links[type].replace(key, param); } setParams(params) { this.params = params; return this; } resetFetch() { this.fetched = false; return this; } } class DashReport extends Dashboard { static myself = null; constructor() { super(); super.element = $("#dashboard-reports"); } // render table row from the data renderData(parent, data) { data = super.sliceData(data.records); let tr = ""; data.forEach((item) => { tr += "<tr class='unread'><td><img></td>"; tr += "<td><h6>" + item.title.substr(0, 20) + "</H6></td>"; tr += '<td class=""><h6>11 MAY 12:56</h6></td>'; tr += '<td class=""><a href="#!" class="label bg-c-blue text-white f-12">View</a></td>'; tr += "</tr>"; }); parent.find(".original-data").append(tr); super.switchView(); } } class VendorStats extends Dashboard { static myself = null; constructor() { super(); super.element = $("#vendor-stat"); } // render table row from the data renderData(parent, data) { data = super.sliceData(data.records); let tr = ""; data.forEach((item) => { if (item.name) { tr += '<tr class="unread"><td><h6 class="mb-0" data-url="' + item.url + '">' + item.name.substr(0, 20) + "</H6></td>"; tr += '<td class="text-center">'; for (let index = 1; index <= 5; index++) { if (item.ratings > 0) { tr += '<span><i class="fa fa-star f-12 text-c-yellow"></i></span>'; } else { tr += '<span"><i class="fa fa-star f-12 star-inactive"></i></a>'; } item.ratings--; } tr += "</td>"; tr += '<td><h6 class="text-center mb-0">' + item.orders + "</h6></td>"; tr += '<td><h6 class="text-center mb-0">' + item.sales + "</h6></td>"; tr += '<td class="text-center"><a href="' + super.getLink("edit", item.id) + '" class="label view-color-btn f-12 text-2c">' + jsLang("VIEW") + "</a></td>"; tr += "</tr>"; } }); if (data.length == 0) { parent.find(".original-data").siblings('thead').remove(); tr = `<tr class="border-0"><td colspan="2" class="border-0">${jsLang('No data found.')}</td></tr>` } parent.find(".original-data").append(tr); super.switchView(); } } class MostVisitedReport extends Dashboard { static myself = null; constructor() { super(); super.element = $("#most-visited-page"); } renderData(parent, data) { data = super.sliceData(data.records); let tr = ""; data.forEach((item) => { tr += '<tr class="unread">'; tr += "<td><h6 class='mb-0'>" + item.title.substr(0, 20) + "</h6></td>"; tr += '<td class="text-right"><h6 class="mb-0">' + Math.floor(Math.random() * 100 + 50) + "</h6></td>"; tr += "</tr>"; }); parent.find(".original-data").append(tr); super.switchView(); } } class CustomerComplain extends Dashboard { static myself = null; constructor() { super(); super.element = $("#customer-complain"); } renderData(parent, data) { super.switchView(); } } class MostActiveUsers extends Dashboard { static myself = null; constructor() { super(); super.element = $("#most-active-users"); } isVendor = document.getElementById('vendor_dashboard_container'); admin(data) { let row = ''; data.forEach((item) => { row += ` <tr class='unread'> <td><a class="mb-0" target="_blank" href="${item.profile}">${super.formatString(item.name)}</a></td> <td class="text-right">${item.total}</td> </tr> `; }); return row; } vendor(data) { let row = ''; data.forEach((item) => { row += ` <tr class='unread'> <td><span class=" mb-0">${super.formatString(item.name)}</span></td> <td class="text-right">${item.total}</td> </tr> `; }); return row } renderData(parent, data) { data = super.sliceData(data.records); let tr = ""; if (this.isVendor) { tr = this.vendor(data); } else { tr = this.admin(data); } if (data.length == 0) { parent.find(".original-data").siblings('thead').remove(); tr = `<tr class="border-0"><td colspan="2" class="border-0">${jsLang('No data found.')}</td></tr>` } parent.find(".original-data").append(tr); super.switchView(); } } class MostSoldProducts extends Dashboard { static myself = null; constructor() { super(); super.element = $("#most-sold-products"); } renderData(parent, data) { data = super.sliceData(data.records); let tr = ""; data.forEach((item) => { tr += "<tr class='unread'>"; tr += `<td><a class='mb-0' href='${ item.url }' target="${item.url == 'javascript:void(0)' ? '_self' : '_blank'}">${super.formatString(item.name)}</a></td>`; tr += '<td class="text-right">' + item.total + " </td>"; tr += "</tr>"; }); if (data.length == 0) { parent.find(".original-data").siblings('thead').remove(); tr = `<tr class="border-0"><td colspan="2" class="border-0">${jsLang('No data found.')}</td></tr>` } parent.find(".original-data").append(tr); super.switchView(); } } var ctx = $('#chart-area-2'); ctx.height(335); class SaleOfThisMonth extends Dashboard { static myself = null; constructor() { super(); super.element = $("#sale-of-this-month"); } renderData(parent, data) { this.lineChart(parent, data); super.switchView(); } lineChart = (parent, data) => { parent.find(".placeholder").addClass("d-none"); let chartCanvas = parent.find("#chart-area-2"); chartCanvas.removeClass("d-none"); this.updateChart(chartCanvas[0], data.records); }; dayMonth(monthNumber) { const date = new Date(); date.setMonth(monthNumber - 1); let year = date.getFullYear().toLocaleString(localeString); if (monthNumber <= 0) { monthNumber += 12; } return date.toLocaleString(localeString, { month: 'short', }) + ' ' + year; } monthToColor(month) { var color; if (month % 3 == 0) { color = "rgba(252, 202, 25, 1)" } else if (month % 3 == 1) { color = "rgba(227, 147, 255, 1)" } else { color = "rgba(0, 223, 255, 1)" } return color } updateChart = (chartCanvas, data) => { var bar = chartCanvas.getContext("2d"); var dataChart = []; for (const key in data.values) { var theme_color = bar.createLinearGradient(0, 0, 500, 0); theme_color.addColorStop(1, this.monthToColor(key)); let obj = { label: this.dayMonth(key), data: data.values[key], borderWidth: 4, borderColor: theme_color, backgroundColor: theme_color, hoverborderColor: theme_color, hoverBackgroundColor: theme_color, tension: 0.1, } dataChart.push(obj); } var data1 = { labels: data.dates, datasets: dataChart }; var myBarChart = new Chart(bar, { type: "line", data: data1, responsive: true, fill: true, options: { scales: { y: { title: { display: true, text: jsLang('Sales'), }, }, }, }, }); }; } class VendorReq extends Dashboard { static myself = null; constructor() { super(); super.element = $("#vendor-request"); } // render table row from the data renderData(parent, data) { data = super.sliceData(data.records); let tr = ""; let counter = 1; data.forEach((user) => { tr += '<tr class="unread">'; tr += '<td> <img class="rounded-circle w-30p" src="' + user.file_url + '" alt="activity-user"> </td>'; tr += '<td><h6 class="mb-0" data-url="' + user.url + '">' + user.name.substr(0, 20) + "</h6></td>"; tr += '<td class="text-center"> <h6 class="text-muted mb-0">' + user.created_at + "</h6></td>"; tr += '<td class="text-right"> <a target="_blank" href="' + user.view + '" class="label view-color-btn text-2c f-12">' + jsLang("View") + '</a><a class="label f-12 text-white accept-color-btn" target="_blank" href="' + user.view + '">' + jsLang("Accept") + '</a><a class="label text-white f-12 reject-color-btn" target="_blank" href="' + user.view + '">' + jsLang("Reject") + "</a></td>"; tr += "</tr>"; }); if (data.length == 0) { parent.find(".original-data").siblings('thead').remove(); tr = `<tr class="border-0"><td colspan="2" class="border-0">${jsLang('No data found.')}</td></tr>` } parent.find(".original-data").append(tr); super.switchView(); } } $(document).ready(function () { const checkStatus = () => { DashReport.getObject().sync(); MostVisitedReport.getObject().sync(); CustomerComplain.getObject().sync(); VendorStats.getObject() .addLink(vendorEdiUrl, "edit") .sync(vendorStatsUrl); MostActiveUsers.getObject().sync(mostActiveUsersUrl); MostSoldProducts.getObject().sync(mostSoldProductsUrl); SaleOfThisMonth.getObject().sync(salesOfThisMonth); if (typeof vendorReqsUrl !== 'undefined') { VendorReq.getObject() .addLink(vendorReqsUrl, "edit") .sync(vendorReqsUrl); } }; $(document).on('scroll', () => { checkStatus(); }); $(document).on("click", ".daily", function (e) { e.preventDefault(); switchReload(); VendorStats.getObject().resetFetch().sync(vendorStatsUrlDaily); }); $(document).on("click", ".weekly", function (e) { e.preventDefault(); switchReload(); VendorStats.getObject().resetFetch().sync(vendorStatsUrlWeekly); }); $(document).on("click", ".monthly", function (e) { e.preventDefault(); switchReload(); VendorStats.getObject().resetFetch().sync(vendorStatsUrlMonthly); }); $(document).on("click", ".yearly", function (e) { e.preventDefault(); switchReload(); VendorStats.getObject().resetFetch().sync(vendorStatsUrlYearly); }); $(document).on("click", ".vendor-req", function (e) { e.preventDefault(); let url = $(this).attr("data-url"); VendorReqSwitchReload(); VendorReq.getObject().resetFetch().sync(url); }); function switchReload() { $(".placeholder-data-sta").removeClass("d-none"); $(".original-data-sta").addClass("d-none"); $(".original-data-sta").empty(); } function VendorReqSwitchReload() { $(".placeholder-data-req").removeClass("d-none"); $(".original-data-req").addClass("d-none"); $(".original-data-req").empty(); } checkStatus(); }); |
:: Command execute :: | |
--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0043 ]-- |