Remove unused blade settings pages not linked from UI Convert remaining frontend pages to SPA actions Convert settings user_settings and general to SPA actions Convert settings profile pages to SPA actions Convert contacts and projects add/edit pages to SPA actions Convert clients add/edit page to SPA action with loading pattern Refactor component scoped IDs from $id to $sid Fix jqhtml comment syntax and implement universal error component system Update all application code to use new unified error system Remove all backwards compatibility - unified error system complete Phase 5: Remove old response classes Phase 3-4: Ajax response handler sends new format, old helpers deprecated Phase 2: Add client-side unified error foundation Phase 1: Add server-side unified error foundation Add unified Ajax error response system with constants 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
74 lines
8.9 KiB
JavaScript
Executable File
74 lines
8.9 KiB
JavaScript
Executable File
"use strict";
|
|
|
|
class Advanced_Search_Panel extends Component {
|
|
on_ready() {
|
|
// Populate dropdowns if provided
|
|
if (this.args.categories) {
|
|
this.$sid('category').set_options(this.args.categories);
|
|
}
|
|
if (this.args.tags) {
|
|
this.$sid('tags').set_options(this.args.tags);
|
|
}
|
|
|
|
// Search button
|
|
this.$sid('search_btn').on('click', e => {
|
|
e.preventDefault();
|
|
this.perform_search();
|
|
});
|
|
|
|
// Reset button
|
|
this.$sid('reset_btn').on('click', e => {
|
|
e.preventDefault();
|
|
this.reset();
|
|
});
|
|
|
|
// Close button
|
|
this.$sid('close_btn').on('click', () => {
|
|
if (this.args.on_close) {
|
|
this.args.on_close();
|
|
} else {
|
|
this.$.hide();
|
|
}
|
|
});
|
|
|
|
// Form submit
|
|
this.$sid('search_form').on('submit', e => {
|
|
e.preventDefault();
|
|
this.perform_search();
|
|
});
|
|
}
|
|
perform_search() {
|
|
const criteria = {
|
|
keywords: this.$sid('keywords').get_value(),
|
|
category: this.$sid('category').get_value(),
|
|
tags: this.$sid('tags').get_value(),
|
|
from_date: this.$sid('from_date').get_value(),
|
|
to_date: this.$sid('to_date').get_value(),
|
|
sort_by: this.$sid('sort_by').val(),
|
|
exact_match: this.$sid('exact_match').is(':checked')
|
|
};
|
|
|
|
// Remove empty values
|
|
Object.keys(criteria).forEach(key => {
|
|
if (!criteria[key] || is_array(criteria[key]) && criteria[key].length === 0) {
|
|
delete criteria[key];
|
|
}
|
|
});
|
|
if (this.args.on_search) {
|
|
this.args.on_search(criteria);
|
|
}
|
|
}
|
|
reset() {
|
|
this.$sid('keywords').set_value('');
|
|
this.$sid('category').set_value('');
|
|
this.$sid('tags').set_value([]);
|
|
this.$sid('from_date').set_value('');
|
|
this.$sid('to_date').set_value('');
|
|
this.$sid('sort_by').val('relevance');
|
|
this.$sid('exact_match').prop('checked', false);
|
|
if (this.args.on_reset) {
|
|
this.args.on_reset();
|
|
}
|
|
}
|
|
}
|
|
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBZHZhbmNlZF9TZWFyY2hfUGFuZWwiLCJKcWh0bWxfQ29tcG9uZW50Iiwib25fcmVhZHkiLCJhcmdzIiwiY2F0ZWdvcmllcyIsIiRpZCIsInNldF9vcHRpb25zIiwidGFncyIsIm9uIiwiZSIsInByZXZlbnREZWZhdWx0IiwicGVyZm9ybV9zZWFyY2giLCJyZXNldCIsIm9uX2Nsb3NlIiwiJCIsImhpZGUiLCJjcml0ZXJpYSIsImtleXdvcmRzIiwiZ2V0X3ZhbHVlIiwiY2F0ZWdvcnkiLCJmcm9tX2RhdGUiLCJ0b19kYXRlIiwic29ydF9ieSIsInZhbCIsImV4YWN0X21hdGNoIiwiaXMiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsImtleSIsImlzX2FycmF5IiwibGVuZ3RoIiwib25fc2VhcmNoIiwic2V0X3ZhbHVlIiwicHJvcCIsIm9uX3Jlc2V0Il0sInNvdXJjZXMiOlsicnN4L3RoZW1lL2NvbXBvbmVudHMvX2FyY2hpdmVkL3VuZmluaXNoZWQvQWR2YW5jZWRfU2VhcmNoX1BhbmVsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNsYXNzIEFkdmFuY2VkX1NlYXJjaF9QYW5lbCBleHRlbmRzIEpxaHRtbF9Db21wb25lbnQge1xuICAgIG9uX3JlYWR5KCkge1xuICAgICAgICAvLyBQb3B1bGF0ZSBkcm9wZG93bnMgaWYgcHJvdmlkZWRcbiAgICAgICAgaWYgKHRoaXMuYXJncy5jYXRlZ29yaWVzKSB7XG4gICAgICAgICAgICB0aGlzLiRpZCgnY2F0ZWdvcnknKS5zZXRfb3B0aW9ucyh0aGlzLmFyZ3MuY2F0ZWdvcmllcyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5hcmdzLnRhZ3MpIHtcbiAgICAgICAgICAgIHRoaXMuJGlkKCd0YWdzJykuc2V0X29wdGlvbnModGhpcy5hcmdzLnRhZ3MpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2VhcmNoIGJ1dHRvblxuICAgICAgICB0aGlzLiRpZCgnc2VhcmNoX2J0bicpLm9uKCdjbGljaycsIChlKSA9PiB7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB0aGlzLnBlcmZvcm1fc2VhcmNoKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFJlc2V0IGJ1dHRvblxuICAgICAgICB0aGlzLiRpZCgncmVzZXRfYnRuJykub24oJ2NsaWNrJywgKGUpID0+IHtcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gQ2xvc2UgYnV0dG9uXG4gICAgICAgIHRoaXMuJGlkKCdjbG9zZV9idG4nKS5vbignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5hcmdzLm9uX2Nsb3NlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hcmdzLm9uX2Nsb3NlKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuJC5oaWRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEZvcm0gc3VibWl0XG4gICAgICAgIHRoaXMuJGlkKCdzZWFyY2hfZm9ybScpLm9uKCdzdWJtaXQnLCAoZSkgPT4ge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgdGhpcy5wZXJmb3JtX3NlYXJjaCgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwZXJmb3JtX3NlYXJjaCgpIHtcbiAgICAgICAgY29uc3QgY3JpdGVyaWEgPSB7XG4gICAgICAgICAgICBrZXl3b3JkczogdGhpcy4kaWQoJ2tleXdvcmRzJykuZ2V0X3ZhbHVlKCksXG4gICAgICAgICAgICBjYXRlZ29yeTogdGhpcy4kaWQoJ2NhdGVnb3J5JykuZ2V0X3ZhbHVlKCksXG4gICAgICAgICAgICB0YWdzOiB0aGlzLiRpZCgndGFncycpLmdldF92YWx1ZSgpLFxuICAgICAgICAgICAgZnJvbV9kYXRlOiB0aGlzLiRpZCgnZnJvbV9kYXRlJykuZ2V0X3ZhbHVlKCksXG4gICAgICAgICAgICB0b19kYXRlOiB0aGlzLiRpZCgndG9fZGF0ZScpLmdldF92YWx1ZSgpLFxuICAgICAgICAgICAgc29ydF9ieTogdGhpcy4kaWQoJ3NvcnRfYnknKS52YWwoKSxcbiAgICAgICAgICAgIGV4YWN0X21hdGNoOiB0aGlzLiRpZCgnZXhhY3RfbWF0Y2gnKS5pcygnOmNoZWNrZWQnKVxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIFJlbW92ZSBlbXB0eSB2YWx1ZXNcbiAgICAgICAgT2JqZWN0LmtleXMoY3JpdGVyaWEpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICAgIGlmICghY3JpdGVyaWFba2V5XSB8fCAoaXNfYXJyYXkoY3JpdGVyaWFba2V5XSkgJiYgY3JpdGVyaWFba2V5XS5sZW5ndGggPT09IDApKSB7XG4gICAgICAgICAgICAgICAgZGVsZXRlIGNyaXRlcmlhW2tleV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICh0aGlzLmFyZ3Mub25fc2VhcmNoKSB7XG4gICAgICAgICAgICB0aGlzLmFyZ3Mub25fc2VhcmNoKGNyaXRlcmlhKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlc2V0KCkge1xuICAgICAgICB0aGlzLiRpZCgna2V5d29yZHMnKS5zZXRfdmFsdWUoJycpO1xuICAgICAgICB0aGlzLiRpZCgnY2F0ZWdvcnknKS5zZXRfdmFsdWUoJycpO1xuICAgICAgICB0aGlzLiRpZCgndGFncycpLnNldF92YWx1ZShbXSk7XG4gICAgICAgIHRoaXMuJGlkKCdmcm9tX2RhdGUnKS5zZXRfdmFsdWUoJycpO1xuICAgICAgICB0aGlzLiRpZCgndG9fZGF0ZScpLnNldF92YWx1ZSgnJyk7XG4gICAgICAgIHRoaXMuJGlkKCdzb3J0X2J5JykudmFsKCdyZWxldmFuY2UnKTtcbiAgICAgICAgdGhpcy4kaWQoJ2V4YWN0X21hdGNoJykucHJvcCgnY2hlY2tlZCcsIGZhbHNlKTtcblxuICAgICAgICBpZiAodGhpcy5hcmdzLm9uX3Jlc2V0KSB7XG4gICAgICAgICAgICB0aGlzLmFyZ3Mub25fcmVzZXQoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxNQUFNQSxxQkFBcUIsU0FBU0MsZ0JBQWdCLENBQUM7RUFDakRDLFFBQVFBLENBQUEsRUFBRztJQUNQO0lBQ0EsSUFBSSxJQUFJLENBQUNDLElBQUksQ0FBQ0MsVUFBVSxFQUFFO01BQ3RCLElBQUksQ0FBQ0MsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDQyxXQUFXLENBQUMsSUFBSSxDQUFDSCxJQUFJLENBQUNDLFVBQVUsQ0FBQztJQUMxRDtJQUVBLElBQUksSUFBSSxDQUFDRCxJQUFJLENBQUNJLElBQUksRUFBRTtNQUNoQixJQUFJLENBQUNGLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQ0MsV0FBVyxDQUFDLElBQUksQ0FBQ0gsSUFBSSxDQUFDSSxJQUFJLENBQUM7SUFDaEQ7O0lBRUE7SUFDQSxJQUFJLENBQUNGLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQ0csRUFBRSxDQUFDLE9BQU8sRUFBR0MsQ0FBQyxJQUFLO01BQ3RDQSxDQUFDLENBQUNDLGNBQWMsQ0FBQyxDQUFDO01BQ2xCLElBQUksQ0FBQ0MsY0FBYyxDQUFDLENBQUM7SUFDekIsQ0FBQyxDQUFDOztJQUVGO0lBQ0EsSUFBSSxDQUFDTixHQUFHLENBQUMsV0FBVyxDQUFDLENBQUNHLEVBQUUsQ0FBQyxPQUFPLEVBQUdDLENBQUMsSUFBSztNQUNyQ0EsQ0FBQyxDQUFDQyxjQUFjLENBQUMsQ0FBQztNQUNsQixJQUFJLENBQUNFLEtBQUssQ0FBQyxDQUFDO0lBQ2hCLENBQUMsQ0FBQzs7SUFFRjtJQUNBLElBQUksQ0FBQ1AsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDRyxFQUFFLENBQUMsT0FBTyxFQUFFLE1BQU07TUFDcEMsSUFBSSxJQUFJLENBQUNMLElBQUksQ0FBQ1UsUUFBUSxFQUFFO1FBQ3BCLElBQUksQ0FBQ1YsSUFBSSxDQUFDVSxR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
|