diff --git a/.env b/.env
index 982d4bbd0..73b7b350d 100644
--- a/.env
+++ b/.env
@@ -60,7 +60,6 @@ ERROR_PAGE_ADMIN_EMAIL=''
# If this is set to true, solutions to common problems are shown on error pages. Disable this, if you do not want your users to see them...
ERROR_PAGE_SHOW_HELP=1
-
###################################################################################
# SAML Single sign on-settings
###################################################################################
diff --git a/assets/controllers/elements/assembly_select_controller.js b/assets/controllers/elements/assembly_select_controller.js
new file mode 100644
index 000000000..98702d419
--- /dev/null
+++ b/assets/controllers/elements/assembly_select_controller.js
@@ -0,0 +1,70 @@
+import {Controller} from "@hotwired/stimulus";
+
+import "tom-select/dist/css/tom-select.bootstrap5.css";
+import '../../css/components/tom-select_extensions.css';
+import TomSelect from "tom-select";
+import {marked} from "marked";
+
+export default class extends Controller {
+ _tomSelect;
+
+ connect() {
+
+ let settings = {
+ allowEmptyOption: true,
+ plugins: ['dropdown_input', 'clear_button'],
+ searchField: ["name", "description", "category", "footprint"],
+ valueField: "id",
+ labelField: "name",
+ preload: "focus",
+ render: {
+ item: (data, escape) => {
+ return '' + (data.image ? "" : "") + escape(data.name) + '';
+ },
+ option: (data, escape) => {
+ if(data.text) {
+ return '' + escape(data.text) + '';
+ }
+
+ let tmp = '
' + marked.parseInline(data.description) + '
' : "") + + (data.category ? '' + escape(data.category) : ""); + + return tmp + '
' + + '