diff --git a/locales/en/messages.json b/locales/en/messages.json index bdeb79a0..fdb1a0c3 100755 --- a/locales/en/messages.json +++ b/locales/en/messages.json @@ -31,6 +31,9 @@ "noticeTitle": { "message": "Notice" }, + "search": { + "message": "Search" + }, "dontShowAgain": { "message": "Don't show again" }, diff --git a/src/css/tabs/osd.less b/src/css/tabs/osd.less index fe6e22e9..7653e040 100644 --- a/src/css/tabs/osd.less +++ b/src/css/tabs/osd.less @@ -307,6 +307,9 @@ margin-top: 5px; margin-bottom: 8px; width: 100%; + .elements-search-field { + margin: 0 0 5px 0.5rem; + } } .switchable-field-flex { display: flex; diff --git a/src/js/tabs/osd.js b/src/js/tabs/osd.js index d8d8e607..6a471df5 100644 --- a/src/js/tabs/osd.js +++ b/src/js/tabs/osd.js @@ -3265,6 +3265,21 @@ osd.initialize = function (callback) { insertOrdered($displayFields, $field); } + // Add the search field and its functionality + $("#element-fields").prepend( + $( + ` + `, + ), + ); + $(".elements-search-field").on("input", function () { + const searchTerm = $(this).val().toLowerCase(); + $(".switchable-field").each(function () { + const fieldName = $(this).find("label").text().toLowerCase(); + $(this).toggle(fieldName.includes(searchTerm)); + }); + }); + GUI.switchery(); // buffer the preview OSD.data.preview = [];