Files
cabinet/assets/controllers/searchOrderByInput_controller.js
2026-05-28 12:09:28 +03:00

74 lines
2.6 KiB
JavaScript

import { Controller } from 'stimulus';
/*
* This is an example Stimulus controller!
*
* Any element with a data-controller="searchOrderByInput" attribute will cause
* this controller to be executed. The name "searchOrderByInput" comes from the filename:
* searchOrderByInput_controller.js -> "searchOrderByInput"
*
* Delete this file or adapt it for your use!
*/
export default class extends Controller {
connect() {
var val = document.getElementById("specialist_search_order_by").value;
var items = this.element.querySelectorAll('span');
if (val) {
check(val, false);
}
items.forEach(function(el) {
el.addEventListener('click', function(evn) {
check(evn.target.id, true);
});
})
function check(index, redirect) {
console.log(index)
var array = index.split('.');
var id = array[0];
var sort = array[1];
items.forEach(function(item) {
var iconASC = item.querySelector('.fa-sort-amount-asc');
var iconDESC = item.querySelector('.fa-sort-amount-desc');
item.classList.remove('sort-line__item--active');
if (id == item.id) {
item.classList.add('sort-line__item--active');
if (sort == 'desc') {
item.classList.remove('asc');
}
if (item.classList.contains('asc')) {
iconASC.classList.remove('d-none');
iconDESC.classList.add('d-none');
item.classList.remove('asc');
document.getElementById("specialist_search_order_by").value = item.id + '.asc';
if (redirect) {
document.querySelector('.submit-filter').click();
}
} else {
iconDESC.classList.remove('d-none');
iconASC.classList.add('d-none');
item.classList.add('asc');
document.getElementById("specialist_search_order_by").value = item.id + '.desc';
if (redirect) {
document.querySelector('.submit-filter').click();
}
}
} else {
iconDESC.classList.add('d-none');
iconASC.classList.add('d-none');
item.classList.add('asc');
}
});
};
}
}