qz, auto-table control, auto-git pull, etc

This commit is contained in:
2026-02-12 16:18:43 +07:00
parent eb62ba5ee1
commit 71e587a8ca
10 changed files with 724 additions and 565 deletions
+4 -5
View File
@@ -4,9 +4,9 @@
Desc. : CSS Default Configuration
Created By : Siau Pheng ([email protected]).
Created Date : December 20th, 2007.
Last Modified : December 5th, 2025.
Last Modified : February 7th, 2026.
(c) 2009 - 2025, 3FONIA Software; WWW.3FONIA.COM.
(c) 2009 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
@@ -329,9 +329,6 @@ ul.dtr-details li.hidden { visibility: hidden !important; display: none !importa
font-weight: bolder !important;
font-size: 1.1rem;
}
.select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option.select2-results__option--highlighted {
background-color: var(--bs-yellow);
}
/******************************** Autocomplete ********************************/
@@ -487,6 +484,8 @@ input.double, input.integer, input.number {
.footer a {
text-decoration: none;
--bs-text-opacity: 1;
}
.footer a:not(#divQZStatus) {
color: inherit !important;
}
+1 -1
View File
@@ -586,4 +586,4 @@ select + .select2-container--bootstrap-5 {
}
.form-select-lg ~ .select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__clear {
right: 1rem;
}
}
+126 -70
View File
@@ -19,7 +19,9 @@
text-overflow: ellipsis;
white-space: nowrap; }
.select2-container .select2-selection--single .select2-selection__clear {
position: relative; }
background-color: transparent;
border: none;
font-size: 1em; }
.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered {
padding-right: 8px;
padding-left: 20px; }
@@ -31,21 +33,29 @@
user-select: none;
-webkit-user-select: none; }
.select2-container .select2-selection--multiple .select2-selection__rendered {
display: inline-block;
overflow: hidden;
padding-left: 8px;
text-overflow: ellipsis;
white-space: nowrap; }
.select2-container .select2-search--inline {
float: left; }
.select2-container .select2-search--inline .select2-search__field {
box-sizing: border-box;
border: none;
font-size: 100%;
margin-top: 5px;
display: inline;
list-style: none;
padding: 0; }
.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button {
-webkit-appearance: none; }
.select2-container .select2-selection--multiple .select2-selection__clear {
background-color: transparent;
border: none;
font-size: 1em; }
.select2-container .select2-search--inline .select2-search__field {
box-sizing: border-box;
border: none;
font-size: 100%;
margin-top: 5px;
margin-left: 5px;
padding: 0;
max-width: 100%;
resize: none;
height: 18px;
vertical-align: bottom;
font-family: sans-serif;
overflow: hidden;
word-break: keep-all; }
.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button {
-webkit-appearance: none; }
.select2-dropdown {
background-color: white;
@@ -70,8 +80,9 @@
padding: 6px;
user-select: none;
-webkit-user-select: none; }
.select2-results__option[aria-selected] {
cursor: pointer; }
.select2-results__option--selectable {
cursor: pointer; }
.select2-container--open .select2-dropdown {
left: 0; }
@@ -137,7 +148,10 @@
.select2-container--default .select2-selection--single .select2-selection__clear {
cursor: pointer;
float: right;
font-weight: bold; }
font-weight: bold;
height: 26px;
margin-right: 20px;
padding-right: 0px; }
.select2-container--default .select2-selection--single .select2-selection__placeholder {
color: #999; }
.select2-container--default .select2-selection--single .select2-selection__arrow {
@@ -179,49 +193,79 @@
background-color: white;
border: 1px solid #aaa;
border-radius: 4px;
cursor: text; }
.select2-container--default .select2-selection--multiple .select2-selection__rendered {
box-sizing: border-box;
list-style: none;
margin: 0;
padding: 0 5px;
width: 100%; }
.select2-container--default .select2-selection--multiple .select2-selection__rendered li {
list-style: none; }
cursor: text;
padding-bottom: 5px;
padding-right: 5px;
position: relative; }
.select2-container--default .select2-selection--multiple.select2-selection--clearable {
padding-right: 25px; }
.select2-container--default .select2-selection--multiple .select2-selection__clear {
cursor: pointer;
float: right;
font-weight: bold;
margin-top: 5px;
height: 20px;
margin-right: 10px;
margin-top: 5px;
position: absolute;
right: 0;
padding: 1px; }
.select2-container--default .select2-selection--multiple .select2-selection__choice {
background-color: #e4e4e4;
border: 1px solid #aaa;
border-radius: 4px;
cursor: default;
float: left;
margin-right: 5px;
box-sizing: border-box;
display: inline-block;
margin-left: 5px;
margin-top: 5px;
padding: 0 5px; }
padding: 0;
padding-left: 20px;
position: relative;
max-width: 100%;
overflow: hidden;
text-overflow: ellipsis;
vertical-align: bottom;
white-space: nowrap; }
.select2-container--default .select2-selection--multiple .select2-selection__choice__display {
cursor: default;
padding-left: 2px;
padding-right: 5px; }
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
background-color: transparent;
border: none;
border-right: 1px solid #aaa;
border-top-left-radius: 4px;
border-bottom-left-radius: 4px;
color: #999;
cursor: pointer;
display: inline-block;
font-size: 1em;
font-weight: bold;
margin-right: 2px; }
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {
color: #333; }
.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice, .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-search--inline {
float: right; }
padding: 0 4px;
position: absolute;
left: 0;
top: 0; }
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover, .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:focus {
background-color: #f1f1f1;
color: #333;
outline: none; }
.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
margin-left: 5px;
margin-right: auto; }
.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__display {
padding-left: 5px;
padding-right: 2px; }
.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove {
margin-left: 2px;
border-left: 1px solid #aaa;
border-right: none;
border-top-left-radius: 0;
border-bottom-left-radius: 0;
border-top-right-radius: 4px;
border-bottom-right-radius: 4px; }
.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__clear {
float: left;
margin-left: 10px;
margin-right: auto; }
.select2-container--default.select2-container--focus .select2-selection--multiple {
@@ -257,15 +301,6 @@
max-height: 200px;
overflow-y: auto; }
.select2-container--default .select2-results__option[role=group] {
padding: 0; }
.select2-container--default .select2-results__option[aria-disabled=true] {
color: #999; }
.select2-container--default .select2-results__option[aria-selected=true] {
background-color: #ddd; }
.select2-container--default .select2-results__option .select2-results__option {
padding-left: 1em; }
.select2-container--default .select2-results__option .select2-results__option .select2-results__group {
@@ -286,7 +321,16 @@
margin-left: -5em;
padding-left: 6em; }
.select2-container--default .select2-results__option--highlighted[aria-selected] {
.select2-container--default .select2-results__option--group {
padding: 0; }
.select2-container--default .select2-results__option--disabled {
color: #999; }
.select2-container--default .select2-results__option--selected {
background-color: #ddd; }
.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable {
background-color: #5897fb;
color: white; }
@@ -314,7 +358,8 @@
cursor: pointer;
float: right;
font-weight: bold;
margin-right: 10px; }
height: 26px;
margin-right: 20px; }
.select2-container--classic .select2-selection--single .select2-selection__placeholder {
color: #999; }
.select2-container--classic .select2-selection--single .select2-selection__arrow {
@@ -391,41 +436,52 @@
border: 1px solid #aaa;
border-radius: 4px;
cursor: text;
outline: 0; }
outline: 0;
padding-bottom: 5px;
padding-right: 5px; }
.select2-container--classic .select2-selection--multiple:focus {
border: 1px solid #5897fb; }
.select2-container--classic .select2-selection--multiple .select2-selection__rendered {
list-style: none;
margin: 0;
padding: 0 5px; }
.select2-container--classic .select2-selection--multiple .select2-selection__clear {
display: none; }
.select2-container--classic .select2-selection--multiple .select2-selection__choice {
background-color: #e4e4e4;
border: 1px solid #aaa;
border-radius: 4px;
cursor: default;
float: left;
margin-right: 5px;
display: inline-block;
margin-left: 5px;
margin-top: 5px;
padding: 0 5px; }
padding: 0; }
.select2-container--classic .select2-selection--multiple .select2-selection__choice__display {
cursor: default;
padding-left: 2px;
padding-right: 5px; }
.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove {
background-color: transparent;
border: none;
border-top-left-radius: 4px;
border-bottom-left-radius: 4px;
color: #888;
cursor: pointer;
display: inline-block;
font-size: 1em;
font-weight: bold;
margin-right: 2px; }
padding: 0 4px; }
.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover {
color: #555; }
color: #555;
outline: none; }
.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
float: right;
margin-left: 5px;
margin-right: auto; }
.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__display {
padding-left: 5px;
padding-right: 2px; }
.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove {
margin-left: 2px;
margin-right: auto; }
border-top-left-radius: 0;
border-bottom-left-radius: 0;
border-top-right-radius: 4px;
border-bottom-right-radius: 4px; }
.select2-container--classic.select2-container--open .select2-selection--multiple {
border: 1px solid #5897fb; }
@@ -462,13 +518,13 @@
max-height: 200px;
overflow-y: auto; }
.select2-container--classic .select2-results__option[role=group] {
.select2-container--classic .select2-results__option--group {
padding: 0; }
.select2-container--classic .select2-results__option[aria-disabled=true] {
.select2-container--classic .select2-results__option--disabled {
color: grey; }
.select2-container--classic .select2-results__option--highlighted[aria-selected] {
.select2-container--classic .select2-results__option--highlighted.select2-results__option--selectable {
background-color: #3875d7;
color: white; }
+31 -18
View File
@@ -4,7 +4,7 @@
Desc. : JS - Fonia Custom Class v3
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : June 19th, 2009.
Last Modified : January 26th, 2026.
Last Modified : February 10th, 2026.
(c) 2009 - 2026, 3FONIA Software; WWW.3FONIA.COM.
@@ -13,7 +13,7 @@
'use strict';
var FoniaJS = {
version: "3.1.1",
version: "3.1.2",
APP_ID: 0,
APP_SID: "",
WEB_HOST: "",
@@ -336,18 +336,14 @@ var FoniaJS = {
$('.option-tags').each((i, el) => {
const elm = $(el);
if (!jQuery.isFunction(jQuery.fn.select2)) return;
var _opts = {tags: false, dropdownAutoWidth: true, width: 'auto', theme: 'bootstrap-5'};
var _opts = {tags: false, dropdownAutoWidth: true, width: 'auto', theme: 'bootstrap-5', language: 'id'};
var _dmodal = elm.closest('div.modal');
if ($(_dmodal).hasClass('modal')) _opts.dropdownParent = _dmodal;
if (_dmodal.length) _opts.dropdownParent = _dmodal;
var _sel2 = elm.select2(_opts);
if (elm.prop('required')) elm.removeAttr('required');
//_sel2.on('select2:close', (e) =>{ $(e.target).valid(); });
});
$('[data-toggle="tooltip"]').tooltip();
/*$('.colorpic').each((i, el) => {
$(el).prop('background-color', $(el).val());
});*/
if('function' == typeof jQuery.fn.datepicker){
$('.pickdate').datepicker({
format: 'dd-mm-yyyy',
@@ -364,13 +360,21 @@ var FoniaJS = {
RequestParam: function(aparam) {
var tmp_hasil = [];
var tmp_array = aparam;
$('input').each((i, el) => {
/*if (el.id.indexOf('_db')!==-1){
/*$('input').each((i, el) => {
if (el.id.indexOf('_db')!==-1){
tmp_array.push(el.id);
}*/
if (el.id.indexOf('_cbox')!==-1){
tmp_array.push(el.id + '=' + el.value);
}
});*/
var tmp_cblist = {};
$('tbody input[id*="cbox"][type="checkbox"]:checked').map((i, b) => {
const arr = b.id.split('_');
if (!tmp_cblist[arr[0]]) tmp_cblist[arr[0]] = [];
tmp_cblist[arr[0]].push(arr[2]);
// for compatible only
tmp_array.push(b.id + '=' + b.value);
});
$.each(tmp_cblist, (i, b) => {
tmp_array.push('List_CB_' + i + '=' + b.join());
});
tmp_array.map(nilai => {
if (typeof nilai === "string") {
@@ -594,6 +598,11 @@ var FoniaJS = {
}
$(elm).nextAll('div.bootstrap-autocomplete').remove();
$(elm).off();
//fixed hidden on modal
var _dbody = $(elm).closest('div.modal-body');
var _dcont = $(elm).closest('div.modal-content');
if (_dbody.length) $(_dbody).css('overflow', 'visible');
if (_dcont.length) $(_dcont).css('overflow', 'visible');
new AutoComplete(elm, objComp);
},
getAppID: function() {
@@ -786,11 +795,15 @@ class _Request_JSONF extends _Request {
var json = {}, jsono = {'draw':0,'recordsTotal':0,'recordsFiltered':0,'data':[]};
try {
json = jQuery.parseJSON(data);
if (!jQuery.isEmptyObject(json) && json[0].draw){
jsono.draw = json[0].draw;
jsono.recordsTotal = json[0].recordsTotal;
jsono.recordsFiltered = json[0].recordsFiltered;
jsono.data = json[0].data;
if (!jQuery.isEmptyObject(json) && json.length > 0){
$(json).each((i, lini) => {
if (lini.type == 'table-live' && lini.id == ini.id) {
jsono.draw = lini.config.draw;
jsono.recordsTotal = lini.config.recordsTotal;
jsono.recordsFiltered = lini.config.recordsFiltered;
jsono.data = lini.data;
}
});
}
} catch (e){
console.log(e);
+27 -17
View File
@@ -4,16 +4,25 @@
Desc. : JS Setup QZ Connection
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : May 27th, 2007.
Last Modified : January 9th, 2021.
Last Modified : February 8th, 2026.
(c) 2008 - 2021, 3FONIA Software; WWW.3FONIA.COM.
(c) 2008 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
function startConnection() {
function launchQZ() {
if (!qz.websocket.isActive()) {
window.location.assign("qz:launch");
//Retry 5 times, pausing 1 second between each attempt
startConnection({ retries: 5, delay: 1 });
}
}
function startConnection(config) {
config = config ? config : {};
if (!qz.websocket.isActive()) {
_updateState('Waiting');
qz.websocket.connect().then(function() {
qz.websocket.connect(config).then(() => {
_updateState('Active');
_findDefaultPrinter();
});
@@ -24,7 +33,7 @@ function startConnection() {
function endConnection(){
if (qz.websocket.isActive()) {
qz.websocket.disconnect().then(function() {
qz.websocket.disconnect().then(() => {
_updateState('Inactive');
});
} else {
@@ -33,7 +42,7 @@ function endConnection(){
}
function _findDefaultPrinter(){
qz.printers.getDefault().then(function(data) {
qz.printers.getDefault().then((data) => {
var _printer = data;
if (typeof data === 'object' && data.name == undefined) {
if (data.file != undefined) _printer = "FILE: " + data.file;
@@ -44,35 +53,36 @@ function _findDefaultPrinter(){
}
FoniaJS._def_printer = data;
FoniaJS._def_printname = _printer;
$(_divStatus).html($(_divStatus).html() + ' // ' + _printer);
setTimeout(() => $(_divStatus).html($(_divStatus).html() + ' // ' + _printer), 2000);
});
}
function _updateState(text){
$(_divStatus).html(text);
$(_divStatus).html(text).removeClass('border-success border-warning text-success');
if (text == "Active") {
$(_divStatus).css("background-color", "#AAFFAA");
$(_divStatus).addClass('border-success text-success');
} else {
$(_divStatus).css("background-color", "#FFFFC0");
$(_divStatus).addClass('border-warning');
}
}
var _divStatus = '#divQZStatus';
const _divStatus = '#divQZStatus';
if (typeof qz !== 'undefined') {
qz.security.setCertificatePromise(function(resolve, reject) {
jQuery.ajax({ url:FoniaJS.WEB_PATH+'assets/signing/cert.pem', cache:false, dataType:'text' }).then(resolve, reject);
qz.security.setSignatureAlgorithm("SHA512");
qz.security.setCertificatePromise((resolve, reject) => {
jQuery.ajax({url:FoniaJS.WEB_PATH+'assets/signing/cert.pem', cache:false, dataType:'text'}).then(resolve, reject);
});
qz.security.setSignaturePromise(function(toSign) {
return function(resolve, reject) {
qz.security.setSignaturePromise((toSign) => {
return (resolve, reject) => {
jQuery.post(FoniaJS.WEB_PATH+"assets/signing/sign.php?req="+toSign).then(resolve, reject);
};
});
qz.websocket.setClosedCallbacks(function(evt) {
qz.websocket.setClosedCallbacks((evt) => {
_updateState('Inactive');
if (evt.reason) console.info("Connection closed: " + evt.reason);
});
qz.websocket.setErrorCallbacks(function(evt){
qz.websocket.setErrorCallbacks((evt) => {
_updateState('Error');
if (evt.target != undefined) {
var err = (evt.target.readyState >= 2) ? "Connection to QZ Tray was closed" : "A connection error occurred, check log for details";
+467 -352
View File
File diff suppressed because it is too large Load Diff
+26 -2
View File
File diff suppressed because one or more lines are too long