diff --git a/lib/app/communications/customer.js b/lib/app/communications/customer.js index f6f9da8..f1953d2 100644 --- a/lib/app/communications/customer.js +++ b/lib/app/communications/customer.js @@ -136,7 +136,7 @@ class CustomerCommunication { if (c.OptOut || c.OptOut_BC || c.selected === false) { continue; } - const mp = String(c.MobilePhone).trim(); + const mp = String(c.MobilePhoneDisplayText).trim(); const email = String(c.Email).trim(); const pref = String(c.ContactPreference); if ((pref !== '1') && !isPhone(mp) || @@ -228,6 +228,21 @@ class CustomerCommunication { div.style.display = ''; } } + /** + * @param {String} code + */ + set companyCode(code) { + this.#option.companyCode = code; + const div = this.#container.querySelector('.title-company'); + if (nullOrEmpty(this.#option.companyName)) { + div.style.display = 'none'; + } else { + div.innerText = this.#option.companyName; + if (!nullOrEmpty(code)) + div.innerText = this.#option.companyName + "/" + code; + div.style.display = ''; + } + } get followers() { return [...this.#followers.children].map(el => { @@ -335,7 +350,11 @@ class CustomerCommunication { if (nullOrEmpty(option.companyName)) { div.style.display = 'none'; } else { - div.innerText = option.companyName; + if (nullOrEmpty(option.companyCode)) { + div.innerText = option.companyName; + } else { + div.innerText = option.companyName + "/" + option.companyCode; + } } }) ), @@ -450,7 +469,11 @@ class CustomerCommunication { if (nullOrEmpty(option.companyName)) { div.style.display = 'none'; } else { - div.innerText = option.companyName; + if (nullOrEmpty(option.companyCode)) { + div.innerText = option.companyName; + } else { + div.innerText = option.companyName + "/" + option.companyCode; + } } }) ), diff --git a/lib/ui/css/popup.scss b/lib/ui/css/popup.scss index 5670209..bc24cd7 100644 --- a/lib/ui/css/popup.scss +++ b/lib/ui/css/popup.scss @@ -32,6 +32,7 @@ $buttonHeight: 28px; .ui-popup-container { min-width: 400px; max-width: 800px; + max-height: 90vh; background-color: var(--bg-color); border-radius: var(--corner-radius); box-shadow: 0 2px 8px var(--shadow-color); diff --git a/lib/ui/grid/grid.d.ts b/lib/ui/grid/grid.d.ts index a5edad8..50c37d9 100644 --- a/lib/ui/grid/grid.d.ts +++ b/lib/ui/grid/grid.d.ts @@ -45,7 +45,7 @@ interface GridColumnDefinition { allcheck?: boolean; events?: { [event: string]: any }; attrs?: { [key: string]: string } | ((item: GridItem | any) => { [key: string]: string }); - // TODO: allowFilter?: boolean; + allowFilter?: boolean; filter?: (item: GridItem | any) => any; sortFilter?: (a: GridItem | any, b: GridItem | any) => -1 | 0 | 1; bgFilter?: (item: GridItem | any) => string; diff --git a/lib/ui/grid/grid.js b/lib/ui/grid/grid.js index 26e973f..8838b4f 100644 --- a/lib/ui/grid/grid.js +++ b/lib/ui/grid/grid.js @@ -1116,7 +1116,7 @@ class Grid { reset.innerText = this.langs.reset; reset.addEventListener('click', () => { this.#set(col.key, 'filter', null); - // TODO: change __filtered + this.#colAttrs.__filtered = this.columns.some(c => this.#get(c.key, 'filter') != null) this.#refreshSource(); if (typeof col.onFiltered === 'function') { col.onFiltered.call(this, col);