View | Details | Raw Unified | Return to bug 41151
Collapse All | Expand All

(-)a/koha-tmpl/intranet-tmpl/prog/js/vue/components/KohaTable.vue (-58 / +7 lines)
Lines 115-163 export default { Link Here
115
                        searchable_field => {
115
                        searchable_field => {
116
                            var _customRender = (function (searchable_field) {
116
                            var _customRender = (function (searchable_field) {
117
                                var _render = function (data, type, row, meta) {
117
                                var _render = function (data, type, row, meta) {
118
                                    const fieldValues =
118
                                    return row._strings.additional_field_values
119
                                        row._strings.additional_field_values
119
                                        .filter(
120
                                            .filter(
120
                                            field =>
121
                                                field =>
121
                                                field.field_id ==
122
                                                    field.field_id ==
122
                                                searchable_field.extended_attribute_type_id
123
                                                    searchable_field.extended_attribute_type_id
123
                                        )
124
                                            )
124
                                        .map(el => el.value_str);
125
                                            .map(el => el.value_str);
126
127
                                    if (fieldValues.length === 0) {
128
                                        return "";
129
                                    }
130
131
                                    const valueStr = fieldValues[0];
132
133
                                    // Check if there are multiple comma-separated values
134
                                    if (valueStr && valueStr.includes(",")) {
135
                                        const values = valueStr
136
                                            .split(",")
137
                                            .map(v => v.trim())
138
                                            .filter(v => v);
139
                                        if (values.length > 1) {
140
                                            // For export, return newline-separated values
141
                                            // CSV/Excel export will properly quote cells containing newlines
142
                                            if (type === "export") {
143
                                                return values.join("\n");
144
                                            }
145
                                            // For display, return as unordered list
146
                                            return (
147
                                                '<ul class="additional-field-list">' +
148
                                                values
149
                                                    .map(
150
                                                        v =>
151
                                                            "<li>" + v + "</li>"
152
                                                    )
153
                                                    .join("") +
154
                                                "</ul>"
155
                                            );
156
                                        }
157
                                    }
158
159
                                    // Single value, return as-is
160
                                    return valueStr;
161
                                };
125
                                };
162
                                return _render;
126
                                return _render;
163
                            })(searchable_field);
127
                            })(searchable_field);
Lines 377-393 export default { Link Here
377
    },
341
    },
378
};
342
};
379
</script>
343
</script>
380
381
<style>
382
/* Additional fields list styling in datatable */
383
.additional-field-list {
384
    margin: 0;
385
    padding-left: 1.2em;
386
    list-style-type: disc;
387
}
388
389
.additional-field-list li {
390
    padding: 0.1rem 0;
391
    line-height: 1.4;
392
}
393
</style>
394
- 

Return to bug 41151