mirror of
https://github.com/we-promise/sure.git
synced 2026-04-10 15:54:48 +00:00
* feat: improve QIF import date format selection - Added a reusable date format auto-detection method. - Show a live preview of the first parsed date that updates client-side as the user changes the dropdown selection, via a new qif-date-format Stimulus controller. - Show an error alert and disable the submit button when no supported date format can parse the file's dates. * A few polishing fixes: - Missing return on redirects Stale REASONABLE_DATE_RANGE constant. - Replaced the frozen constant with a class method Bare inline rescue — Replaced Date.strptime(s, fmt) rescue nil with an explicit begin/rescue catching. - save!(validate: false) in controller — Changed to update_column(:column_mappings, ...) in qif_category_selections_controller.rb:22, matching the pattern used in detect_and_set_qif_date_format!. - Unescaped JSON in HTML attribute — Replaced the raw <div> with tag.div ... do block in show.html.erb:16, letting Rails properly escape the data attribute value. * fix: address review feedback for QIF date format feature - Add missing `return` after redirect for non-QIF imports - Pass date_format to parse_opening_balance in will_adjust_opening_anchor? - Return empty array when no usable date sample exists for format preview - Add sr-only label to date format select for accessibility - Consolidate duplicate try_parse_date/parse_qif_date into single method - Remove misleading ambiguity scoring comment from detect_date_format - Skip redundant sync_mappings when date format already triggered a sync Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Use %{product_name} interpolation in locale strings --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
16 lines
467 B
JavaScript
16 lines
467 B
JavaScript
import { Controller } from "@hotwired/stimulus";
|
|
|
|
// Updates the date preview text when the QIF date format dropdown changes.
|
|
// Previews are precomputed server-side and passed as a JSON value.
|
|
export default class extends Controller {
|
|
static targets = ["preview"];
|
|
static values = { previews: Object };
|
|
|
|
change(event) {
|
|
const format = event.target.value;
|
|
const date = this.previewsValue[format];
|
|
|
|
this.previewTarget.textContent = date || "";
|
|
}
|
|
}
|