Orders: order, return, invoice
This commit is contained in:
@@ -705,4 +705,39 @@ function format_number(value, decimal) {
|
||||
var parts = n.toString().split('.');
|
||||
parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ',');
|
||||
return parts.join('.');
|
||||
}
|
||||
|
||||
/**
|
||||
* set_btn_state(selector, enabled, hint)
|
||||
*
|
||||
* Enable or disable a button with consistent visual feedback:
|
||||
* enabled → restores original btn-* classes, removes disabled, clears title
|
||||
* disabled → swaps to btn-secondary, adds disabled attr, sets title hint
|
||||
*
|
||||
* Stores the original class on first call via data-original-class so
|
||||
* repeated calls always restore the correct variant.
|
||||
*
|
||||
* @param {string} selector jQuery selector e.g. '#btn_confirm'
|
||||
* @param {boolean} enabled true = enable, false = disable
|
||||
* @param {string} hint Tooltip text shown when disabled
|
||||
*/
|
||||
function set_btn_state(selector, enabled, hint) {
|
||||
var $btn = $(selector);
|
||||
if (!$btn.length) return;
|
||||
|
||||
// Store original classes once
|
||||
if (!$btn.data('original-class')) {
|
||||
$btn.data('original-class', $btn.attr('class'));
|
||||
}
|
||||
|
||||
if (enabled) {
|
||||
$btn.attr('class', $btn.data('original-class'))
|
||||
.prop('disabled', false)
|
||||
.attr('title', '');
|
||||
} else {
|
||||
$btn.attr('class', $btn.data('original-class')
|
||||
.replace(/btn-(outline-)?[a-z]+/g, '') + ' btn-light')
|
||||
.prop('disabled', true)
|
||||
.attr('title', hint || '');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user