From 7da211e67a15fa3235d1744842e81d2f2692607f Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Fri, 9 Feb 2024 13:56:53 -0500 Subject: [PATCH] Add support for annotating a numeric count on dropdown options --- netbox/project-static/dist/netbox.js | Bin 375641 -> 375823 bytes netbox/project-static/dist/netbox.js.map | Bin 340643 -> 340766 bytes .../src/select/classes/dynamicTomSelect.ts | 8 ++++++-- netbox/project-static/src/select/dynamic.ts | 3 +++ 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/netbox/project-static/dist/netbox.js b/netbox/project-static/dist/netbox.js index 377984e076f9ad7d114937c89aeb331d1810f57c..bafb33d53671839c7d37bae75cb0a75cdcddaa76 100644 GIT binary patch delta 158 zcmcclO|1WiSVIeA3sVd878ddL>2upz{HF)Evv^GxZ)b60P0laPE14eG&Y~m?X6mM8 zrskw5Y1Y)_mFDDZf78ygpH&Ae;|7w5Ra4VQ&C~-6*p_5QmtFEi4a>r|X)q$TK+`PcvcBo&M06#gWz9(OutVdV?j4)b>mh zmZvNViH^=uI-ZV>{yM&nj^R4)j*i|s-XJ2;(bdpN$9=o2CCh0xM*Zo64lHj}{T-bH pAgX~1-E|C{934%7ia^@IIy0RdT{E_Sb6^QzWVGDw?!*%F0RS|0E5-l- delta 75 zcmV-R0JQ&}<`kpl6o7;QgaU*Ev;^TZmoGE~K?PGmLoY;^+cN|u14lDOm(Mu_8n=%$ h1my&`ojC-;1_3jdU_b=yw|GGWNdW;fx57dMT=45)8U_FW diff --git a/netbox/project-static/src/select/classes/dynamicTomSelect.ts b/netbox/project-static/src/select/classes/dynamicTomSelect.ts index 96677f580..758462b60 100644 --- a/netbox/project-static/src/select/classes/dynamicTomSelect.ts +++ b/netbox/project-static/src/select/classes/dynamicTomSelect.ts @@ -35,9 +35,10 @@ export class DynamicTomSelect extends TomSelect { this.valueField = this.input.getAttribute('ts-value-field') || this.settings.valueField; this.labelField = this.input.getAttribute('ts-label-field') || this.settings.labelField; this.disabledField = this.input.getAttribute('ts-disabled-field') || this.settings.disabledField; - this.parentField = this.input.getAttribute('ts-parent-field') || null; - this.depthField = this.input.getAttribute('ts-depth-field') || '_depth'; this.descriptionField = this.input.getAttribute('ts-description-field') || 'description'; + this.depthField = this.input.getAttribute('ts-depth-field') || '_depth'; + this.parentField = this.input.getAttribute('ts-parent-field') || null; + this.countField = this.input.getAttribute('ts-count-field') || null; // Set the null option (if any) const nullOption = this.input.getAttribute('data-null-option'); @@ -156,6 +157,9 @@ export class DynamicTomSelect extends TomSelect { let parent: Dict = data[this.parentField] as Dict; option['parent'] = parent[this.labelField]; } + if (data[this.countField]) { + option['count'] = data[this.countField]; + } if (data[this.disabledField]) { option['disabled'] = data[this.disabledField]; } diff --git a/netbox/project-static/src/select/dynamic.ts b/netbox/project-static/src/select/dynamic.ts index d0233ab20..20912140b 100644 --- a/netbox/project-static/src/select/dynamic.ts +++ b/netbox/project-static/src/select/dynamic.ts @@ -21,6 +21,9 @@ function renderOption(data: TomOption, escape: typeof escape_html) { if (data['parent']) { html = `${html} ${escape(data['parent'])}`; } + if (data['count']) { + html = `${html} ${escape(data['count'])}`; + } if (data['description']) { html = `${html}
${escape(data['description'])}`; }