1 async function getColumnValue(object, column, data) { 2 let type = column.typeName; 3 if (data == undefined) return value; 4 if (type == "EnumSelect") return getSelectColumnValue(column, data); 5 else if(type == "Select") return getSelectColumnValue(column, data); 6 else if (type == "EnumCheckBox") return getSelectColumnValue(column, data); 7 else if (type == "Enable") return getEnableColumnValue(column, data); 8 else if (type == "Radio") return getRadioColumnValue(column, data); 9 else if (type == "EnumRadio") return getRadioColumnValue(column, data); 10 else if (type == "ReferenceRadio") return getRadioColumnValue(column, data); 11 else if (type == "ReferenceSelect") return getReferenceRadioColumnValue(column, data); 12 else if (type == "PrerequisiteReferenceSelect") return await getPrerequisiteColumnValue(object, column, data); 13 else if (type == "AutoComplete") return await getAutoCompleteColumnValue(column, data); 14 else if(type == "Fraction") return getFractionColumnValue(column, data); 15 else if (type == "Currency") return getCurrencyColumnValue(column, data); 16 else if (type == "Number") return new Intl.NumberFormat('th-TH', {}).format(data[column.columnName]); 17 else if (type == "FileMatrix") return JSON.parse(data[column.columnName]); 18 else if (type == "Color") return `<input style="width:100%;" type="color" disabled value="${data[column.columnName]}"/>` 19 else if (type == "Status") return getStatusColumnValue(column, data); 20 else if (type == "Image") return await getImageColumnValue(column, data); 21 else if (type == "Date") return getDateColumnValue(column, data); 22 else if (type == "DateTime") return getDateTimeColumnValue(column, data); 23 else if (column.optionMap != undefined) return data[column.columnName]; 24 else return data[column.columnName]; 25} 26 27function getRadioColumnValue(column, data) { 28 let value = data[column.columnName]; 29 for (let j in column.option) { 30 if (column.option[j].value == value) return column.option[j].label; 31 } 32 return value 33} 34 35function getReferenceRadioColumnValue(column, data){ 36 if (column.option != undefined) { 37 column.optionMap = {} 38 for (let option of column.option) { 39 column.optionMap[option.value] = option.label; 40 } 41 } 42 if (column.optionMap == undefined) return "-"; 43 if (column.optionMap[data[column.columnName]] == undefined) return "-"; 44 if (column.optionMap[data[column.columnName]] != undefined){ 45 return column.optionMap[data[column.columnName]]; 46 } 47 return ""; 48} 49 50function getSelectColumnValue(column, data){ 51 let value = data[column.columnName]; 52 for (let j in column.option) { 53 if (column.option[j].value == value) return column.option[j].label; 54 } 55 return value 56} 57 58function getEnableColumnValue(column, data){ 59 let value = data[column.columnName]; 60 if (value) value = 'Enable'; 61 else value = 'Disable'; 62 return value; 63} 64 65function getReferenceSelectColumnValue(column, data){ 66 if (column.option != undefined) { 67 column.optionMap = {} 68 for (let option of column.option) { 69 column.optionMap[option.value] = option.label; 70 } 71 } 72 if (column.optionMap == undefined) return "-"; 73 if (column.optionMap[data[column.columnName]] == undefined) return "-"; 74 if (column.optionMap[data[column.columnName]] != undefined){ 75 return column.optionMap[data[column.columnName]]; 76 } 77 return ""; 78} 79 80async function getPrerequisiteColumnValue(object, column, data){ 81 if (column.tableURL) return '-'; 82 let value = data[column.columnName]; 83 let prerequisite = column.prerequisite.split('.'); 84 prerequisite = data[prerequisite[prerequisite.length-1]]; 85 if (prerequisite != undefined && prerequisite != -1) { 86 let results; 87 if (object.prerequisiteCache[column.url+prerequisite] == undefined) { 88 let response = await GET(column.url+prerequisite, undefined, 'json', true); 89 if (!response.isSuccess) return "-"; 90 results = response.results; 91 if (response.result != undefined) results = response.result; 92 object.prerequisiteCache[column.url+prerequisite] = {time: Date.now(), results: results}; 93 } else if (object.prerequisiteCache[column.url+prerequisite].time - Date.now() > 5000){ 94 let response = await GET(column.url+prerequisite, undefined, 'json', true); 95 if (!response.isSuccess) return "-"; 96 results = response.results; 97 if (response.result != undefined) results = response.result; 98 object.prerequisiteCache[column.url+prerequisite] = {time: Date.now(), results: results}; 99 } else { 100 results = object.prerequisiteCache[column.url+prerequisite].results; 101 } 102 let valueMap = {}; 103 try { 104 valueMap = results.reduce((a, v) => ({ ...a, [v.value]: v.label}), {}); 105 } catch (error) { 106 // console.error(error); 107 } 108 if (valueMap[value] == undefined){ 109 return "-" 110 } 111 value = valueMap[value]; 112 } else { 113 return '-' 114 } 115 return value; 116} 117 118async function getAutoCompleteColumnValue(column, data){ 119 let value = ""; 120 if (column.tableURL) return '-'; 121 if(data[column.columnName] == '') return value; 122 let response = await POST(`${column.url}/by/reference`, {'reference': data[column.columnName]}, undefined, 'json', true); 123 if (response == undefined) return value; 124 if (response.isSuccess) return response.label; 125 return ""; 126} 127 128function getFractionColumnValue(column, data){ 129 let fraction = data[column.columnName]; 130 let value = (new Fraction(fraction)).toString(); 131 value = new Intl.NumberFormat('th-TH', {}).format(value); 132 return value; 133} 134 135function getCurrencyColumnValue(column, data){ 136 let value = ""; 137 let currency = data[column.columnName]; 138 if (typeof currency != 'object') { 139 value = new Intl.NumberFormat('th-TH', { style: 'currency', currency: 'THB'}).format(currency); 140 } else { 141 value = new Intl.NumberFormat('th-TH', { style: 'currency', currency: currency.originCurrency}).format(currency.originValue); 142 } 143 return value; 144} 145 146function getStatusColumnValue(column, data){ 147 let item = data[column.columnName]; 148 let classList = item.classList != undefined ? item.classList.join(" "): ""; 149 let color = item.color != undefined ? item.color: ''; 150 if (column.option) { 151 let option = column.option[data[column.columnName]]; 152 if (option != undefined) { 153 color = option.color; 154 item = option; 155 } 156 } 157 let style = color != '' ? `style="background:${color} !important;"`: ''; 158 return `<div ${style} class="status_flag ${classList}"><span class="tooltiptext" localize>${item.label}</span></div>`; 159} 160 161async function getImageColumnValue(column, data){ 162 let item = data[column.columnName]; 163 let icon = await CREATE_SVG_ICON("Image"); 164 return `<div class="flex center"> 165 <div class="abstract_operation_button " rel="view" onclick="">${icon.icon}</div> 166 </div>` 167} 168 169function getDateColumnValue(column, data){ 170 if (data[column.columnName] != undefined && data[column.columnName] != 0) { 171 return new Intl.DateTimeFormat(LANGUAGE, {day: "2-digit", month: "2-digit", year: "numeric"}).format(new Date(data[column.columnName])) 172 } 173 return ""; 174} 175 176function getDateTimeColumnValue(column, data){ 177 if (data[column.columnName] != undefined && data[column.columnName] != 0) { 178 return new Intl.DateTimeFormat(LANGUAGE, {day: "2-digit", month: "2-digit", year: "numeric", hour: "2-digit", minute: "2-digit", second: "2-digit", hour12: false}).format(new Date(data[column.columnName])) 179 } 180 return ""; 181}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.