Skip to content

Commit 468d9a9

Browse files
committed
live search added
1 parent 9ce0a51 commit 468d9a9

File tree

1 file changed

+34
-9
lines changed

1 file changed

+34
-9
lines changed

pages/cookiegroup.php

Lines changed: 34 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -154,15 +154,24 @@
154154
$db = rex_sql::factory();
155155
$db->setTable(rex::getTable('consent_manager_cookie'));
156156
$db->setWhere('clang_id = ' . $clang_id . ' AND uid != "consent_manager" ORDER BY uid ASC');
157-
$db->select('DISTINCT uid, service_name, variant');
157+
$db->select('DISTINCT pid, uid, service_name, variant');
158158
$cookies = $db->getArray();
159159

160+
$cookieLinks = [];
161+
foreach ($cookies as $c) {
162+
$cookieLinks[$c['uid']] = rex_url::backendPage('consent_manager/cookie', ['func' => 'edit', 'pid' => $c['pid']]);
163+
}
164+
160165
if ($clang_id === rex_clang::getStartId() || true !== $form->isEditMode()) {
161166
if ([] !== $cookies) {
162167
// Styling und Buttons
163-
$html = '<div id="cm-cookie-buttons-wrapper" class="btn-group btn-group-xs" style="margin-bottom: 5px;">';
168+
$html = '<div id="cm-cookie-toolbar" class="input-group input-group-xs" style="margin-bottom: 5px;">';
169+
$html .= '<span class="input-group-btn">';
164170
$html .= '<button type="button" class="btn btn-info cm-select-all"><i class="fa fa-check-square-o"></i> Alle auswählen</button>';
165171
$html .= '<button type="button" class="btn btn-default cm-deselect-all"><i class="fa fa-square-o"></i> Alle abwählen</button>';
172+
$html .= '</span>';
173+
$html .= '<input type="text" id="cm-cookie-search" class="form-control" placeholder="Suche...">';
174+
$html .= '<span class="input-group-addon"><i class="rex-icon rex-icon-search"></i></span>';
166175
$html .= '</div>';
167176

168177
$html .= '<script nonce="' . rex_response::getNonce() . '">
@@ -175,20 +184,36 @@
175184
$checkboxes.first().closest(".rex-form-group").addClass("consent-manager-cookie-list");
176185
}
177186
178-
// Buttons Wrapper
179-
var $btnWrapper = $("#cm-cookie-buttons-wrapper");
187+
// Toolbar Wrapper
188+
var $toolbar = $("#cm-cookie-toolbar");
180189
181190
// Optional: Label des Button-Containers leeren, falls vorhanden
182-
$btnWrapper.closest(".rex-form-group").find("dt").html("&nbsp;");
191+
$toolbar.closest(".rex-form-group").find("dt").html("&nbsp;");
183192
184193
// Select All Handler
185-
$btnWrapper.on("click", ".cm-select-all", function() {
186-
$checkboxes.prop("checked", true);
194+
$toolbar.on("click", ".cm-select-all", function() {
195+
$checkboxes.filter(":visible").prop("checked", true);
187196
});
188197
189198
// Deselect All Handler
190-
$btnWrapper.on("click", ".cm-deselect-all", function() {
191-
$checkboxes.prop("checked", false);
199+
$toolbar.on("click", ".cm-deselect-all", function() {
200+
$checkboxes.filter(":visible").prop("checked", false);
201+
});
202+
203+
// Live Search Handler
204+
$("#cm-cookie-search").on("keyup", function() {
205+
var value = $(this).val().toLowerCase();
206+
$checkboxes.each(function() {
207+
var $input = $(this);
208+
var text = $input.closest("label").text().toLowerCase();
209+
var $wrapper = $input.closest(".checkbox");
210+
211+
if (text.indexOf(value) > -1) {
212+
$wrapper.show();
213+
} else {
214+
$wrapper.hide();
215+
}
216+
});
192217
});
193218
});
194219
</script>';

0 commit comments

Comments
 (0)