From 5463fa73908d16c8f6da37a2dc16461ab049d74e Mon Sep 17 00:00:00 2001 From: checktheroads Date: Fri, 30 Jul 2021 00:56:54 -0700 Subject: [PATCH] Closes #6808: Determine option disabled status via disabled-indicator attribute --- netbox/project-static/dist/netbox.js | Bin 312222 -> 312442 bytes netbox/project-static/dist/netbox.js.map | Bin 1115424 -> 1116298 bytes netbox/project-static/src/select/api.ts | 21 ++++++++++++++++++++- 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/netbox/project-static/dist/netbox.js b/netbox/project-static/dist/netbox.js index 6ca2fc7a26bb61794387d02b6a2e5d74069fde40..7033c4b251fca8065305904fb6f7e37857ec2304 100644 GIT binary patch delta 15044 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 delta 14968 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 delta 193 zcmeC0=(3>8rJ;qfg{g(Pg{6hHg{_6Xg`e<95D_ zToqEnE}p@TPCl+K@s1%OL7q;bA+EvO=f39JE7NYx#SO$fK+Frod_c^<-I`0lYP)c@ zTZ&Gkqhq9wtD|G3la8~arR(&Lg91~S!po*>9};-U = []; + /** + * Array of properties which if truthy on an API object should be considered disabled. + */ + private disabledAttributes: Array = DISABLED_ATTRIBUTES; + constructor(base: HTMLSelectElement) { // Initialize readonly properties. this.base = base; @@ -141,6 +146,7 @@ class APISelect { this.loadEvent = new Event(`netbox.select.onload.${base.name}`); this.placeholder = this.getPlaceholder(); this.disabledOptions = this.getDisabledOptions(); + this.disabledAttributes = this.getDisabledAttributes(); this.slim = new SlimSelect({ select: this.base, @@ -335,7 +341,7 @@ class APISelect { data[key] = String(v); } // Set option to disabled if the result contains a matching key and is truthy. - if (DISABLED_ATTRIBUTES.some(key => key.toLowerCase() === k.toLowerCase())) { + if (this.disabledAttributes.some(key => key.toLowerCase() === k.toLowerCase())) { if (typeof v === 'string' && v.toLowerCase() !== 'false') { disabled = true; } else if (typeof v === 'boolean' && v === true) { @@ -546,6 +552,19 @@ class APISelect { return disabledOptions; } + /** + * Get this element's disabled attribute keys. For example, if `disabled-indicator` is set to + * `'_occupied'` and an API object contains `{ _occupied: true }`, the option will be disabled. + */ + private getDisabledAttributes(): string[] { + let disabled = [...DISABLED_ATTRIBUTES] as string[]; + const attr = this.base.getAttribute('disabled-indicator'); + if (isTruthy(attr)) { + disabled = [...disabled, attr]; + } + return disabled; + } + /** * Parse the `data-url` attribute to add any Django template variables to `pathValues` as keys * with empty values. As those keys' corresponding form fields' values change, `pathValues` will