Files
Facilitor/APPL/FAC/fac_report.js
Jos Groot Lipman b7500f90ee Merge 2021.1 Gold H/I patches
svn path=/Website/trunk/; revision=54162
2021-12-15 09:55:24 +00:00

96 lines
3.7 KiB
JavaScript

/*
$Revision$
$Id$
File: fac_report.js
*/
var awaiting_process_worker_info = false;
var width = "calc(100% - 23px)";
function toggleInputSelect()
{
var $inp = $(this).prev("input");
if ($inp && $inp.length == 1)
{ // 1e keer drukken maakt er een listbox van
if (awaiting_process_worker_info){
return; // Awaiting (any) process_worker_info
}
awaiting_process_worker_info = true;
var inp = $inp[0];
if ($(inp).hasClass("pinned"))
{
$(inp).val(""); // De gepinde waarde verwijderen zodat de hele lijst met waarden weer wordt opgehaald.
}
$.getJSON( "fac_report_worker.asp"
, $("[name=u2]").serialize() + "&distinct=" + inp.name
, FcltCallbackAndThenAlways(process_worker_info)
);
$(inp).show().val(L("lcl_rap_please_wait"));
$(inp).prop('disabled', true);
}
else // het is een DIV die er door de multiSelectToggle omheen is gezet, of gewoon een listbox
{
var inp = $(this).prev("select").length ? $(this).prev("select")[0] : $(this).prev().find("select")[0];
var inpClass = "fld";
$(this).prev().replaceWith('<input class="' + inpClass + '" id="' + inp.name +'" name="' + inp.name +'">');
//ruimte maken voor toggleInputSelect knop
$(this).prev().css("width", width);
}
}
function process_worker_info(data)
{
if (data.success)
{
var isReeks = data.distinct === "start_" + data.colname || data.distinct === "end_" + data.colname;
var inp = $("#" + data.distinct); // we krijgen de naam terug in data.distinct
var selClass = "reportmulti fld";
inp.replaceWith('<select id="{0}" class="{1}" name="{0}"></select>'.format(data.distinct, selClass));
var sel = $("#" + data.distinct);
if (data.values.length > 1)
sel.append($('<option></option>').val("").text(L("lcl_shared_alle") + " " + data.values.length));
for (var i = 0; i < data.values.length; i++)
{
var v = data.values[i][data.colname];
if (v === null)
{
sel.append($('<option></option>').val("NULL").text(L("lcl_shared_empty"))); // Lege waarde is hier een optie die toegevoegd moet worden.
break;
}
}
for (var i = 0; i < data.values.length; i++)
{
var v = data.values[i][data.colname];
if (v !== null)
sel.append($('<option></option>').val(v).text(v));
}
if (!isReeks)
{
$(sel).multiSelectToggle();
// alignment van de multitoggle na toggleInputSelect
$(sel).parent(".multitoggle").css("display", "inline-block")
.css("width", width);
$(".multi_select_toggle").css("margin-top", "3px");
}
}
awaiting_process_worker_info = false;
}
// Voeg overal de autoselect toggles toe
$(function ()
{
$("input.fld").after($("<span class='facautoreport'>" + I("fa-comment fa-lg") + "</span>")
.attr('title', L("lcl_usrrap_beware"))
.click(toggleInputSelect)
).css("width", width);
$("select.pinned").after($("<span class='facautoreport'>" + I("fa-comment fa-lg") + "</span>")
.attr('title', L("lcl_usrrap_beware"))
.click(toggleInputSelect)
);
setTimeout(function() { $("div.multitoggle").css({"width": width, "display": "inline-block"}); });
});