96 lines
3.7 KiB
JavaScript
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"}); });
|
|
});
|
|
|