You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

109 lines
2.9 KiB
JavaScript

export function ffSelect(a) {
var ct = div().class('form-group').css('margin', '0');
var inpt = el('select').class('form-control form-s').name(a.name).id('s-' + a.name + Date.now())
.css('height', '38px');
if (a.readonly == true) {
inpt.attr('readonly', 'true')
.css({
background: '#2E7D32',
color: '#fff'
});
};
inpt.child(
el('option').val('').html('Pilih Data')
);
if (a.action != undefined) {
inpt.load(a.action);
};
a.data.forEach(function (dt) {
inpt.child(
el('option').val(dt.id).html(dt.id + '-' + dt.text)
);
});
if (a.val != undefined) {
inpt.addModule('val', a.val);
};
inpt.load(function (s) {
var id = s.el.id;
$('#' + id).select2();
if (s.el.val != undefined) {
$('#' + id).val(s.el.val).trigger('change');
};
// If readonly, also style select2
if (a.readonly == true) {
setTimeout(function() {
var sel2 = document.querySelector('#select2-' + id + '-container');
if(sel2) {
sel2.parentElement.style.background = '#2E7D32';
sel2.parentElement.style.color = '#fff';
}
}, 200);
}
});
ct.child(
inpt
);
return ct.get();
};
export function ffNum(a) {
var ct = div().class('form-group').css('margin', '0');
var inpt = el('input').type('text')
.class('form-control form-s').attr('num', true).name(a.name).id('s-' + a.name + Date.now()).hold('0').css({
textAlign: 'right',
height: '38px'
});
if (a.readonly == true) {
inpt.attr('readonly', 'true')
.css({
background: '#2E7D32',
color: '#fff'
});
};
if (a.val != undefined) {
inpt.val(Number(a.val).currency(0));
}
inpt.load(function (e) {
e.el.addEventListener('keyup', function () {
var c = this.value;
var pis = c.length - 1;
if (c[pis] == ".") {
c = c.substr(0, pis) + ",";
}
c = c.replace(/\./g, "");
this.value = formatRupiah(c, "");
}, false);
});
ct.child(
inpt
);
return ct.get();
};
export function ff(a) {
var ct = div().class('form-group').css('margin', '0');
var inpt = el('input').type('text')
.class('form-control form-s').name(a.name).id('s-' + a.name + Date.now()).hold('0').css({
textAlign: 'right',
height: '38px'
});
if (a.readonly == true) {
inpt.attr('readonly', 'true')
.css({
background: '#2E7D32',
color: '#fff'
});
};
if (a.val != undefined) {
inpt.val(a.val);
};
ct.child(
inpt
);
return ct.get();
};