Files
Disco/Disco.Web/ClientSource/Scripts/Modules/Disco-DocumentBulkGenerate.min.js
2023-04-27 14:54:32 +10:00

1 line
9.0 KiB
JavaScript

$(()=>{function u(){var i,t;n.length>0&&f.find("tbody tr:first-child").hide();const u=f.find("tbody");let r=0;for(i=0;i<n.length;i++)if(t=n[i],t.checkbox===undefined){const n=$('<tr><td><input id="BulkGenerate_User_'+i.toString()+'" type="checkbox" /><\/td><td><label for="BulkGenerate_User_'+i.toString()+'"><\/label><\/td><td><span class="name"><\/span><\/td><td><span class="scope"><\/span><\/td><\/tr>'),f=n.find("input")[0],e=n.find("label"),o=n.find("span.name"),s=n.find("span.scope");e.text(t.Id);s.text(t.Scope);t.IsError?(n.addClass("error"),f.checked=!1,f.disabled=!0):(f.checked=!0,o.text(t.DisplayName),r++);t.checkbox=f;u.append(n)}else!t.IsError&&t.checkbox.checked&&r++;r>0?$("#BulkGenerate").attr("disabled",null):$("#BulkGenerate").attr("disabled","disabled")}function t(t){let i=0;for(var r=0;r<t.length;r++){const f=t[r],u=n.find(n=>n.Id===f.Id);u===undefined||f.IsError?(n.push(f),i++):u.checkbox===undefined||u.checkbox.checked||u.IsError||(u.checkbox.checked=!0,i++)}i&&u()}function i(t){let r=0;for(var i=0;i<t.length;i++){const f=t[i],u=n.find(n=>n.Id===f.Id);u!==undefined&&u.checkbox!==undefined&&(u.checkbox.checked=!1,r++)}r&&u()}function r(t){let r=0;for(var i=0;i<n.length;i++){const u=n[i];t.find(n=>n.Id===u.Id)||(u.checkbox.checked=!1,r++)}r&&u()}const n=[],f=$("#DocumentTemplate_BulkGenerate table");f.on("change",'input[type="checkbox"]',()=>{u()});$("#BulkGenerate").click(()=>{var i,t;let r=[];for(i=0;i<n.length;i++)t=n[i],!t.IsError&&t.checkbox!==undefined&&t.checkbox.checked&&r.push(t.Id);r.length>0&&($("#DocumentTemplate_BulkGenerate_DataIds").val(r.join("\r\n")),$("#BulkGenerate").closest("form").submit())});let e=null;$("#AddUsers").click(n=>{n.preventDefault();let u=e;if(!u){const n=function(n){const t=u.find("form")[0];if(t.reportValidity()){const i=new FormData(t);fetch(t.action,{method:"POST",body:i}).then(n=>n.json()).then(t=>{n(t),u.find("textarea").html("").val(""),u.dialog("close"),u.dialog("enable")}).catch(n=>{alert("Failed to validate users: "+n)})}u.dialog("disable")};u=$("#DocumentTemplate_BulkGenerate_Dialog_AddUsers").dialog({resizable:!1,modal:!0,autoOpen:!1,width:460,buttons:{"Exclude Other Users":function(){n(r)},"Exclude Users":function(){n(i)},"Add Users":function(){n(t)}}});e=u}return u.dialog("open"),!1});let o=null;$("#AddGroupMembers").click(n=>{n.preventDefault();let u=o;if(!u){const n=function(n){const t=u.find("form")[0];if(t.reportValidity()){const i=new FormData(t);fetch(t.action,{method:"POST",body:i}).then(n=>n.json()).then(t=>{n(t),u.find('input[type="text"]').val(""),u.dialog("close"),u.dialog("enable")}).catch(n=>{alert("Failed to validate group: "+n)})}u.dialog("disable")};u=$("#DocumentTemplate_BulkGenerate_Dialog_AddGroupMembers").dialog({resizable:!1,modal:!0,autoOpen:!1,width:460,buttons:{"Exclude Non-Group Members":function(){n(r)},"Exclude Group Members":function(){n(i)},"Add Group Members":function(){n(t)}}});const f=u.find('input[type="text"]');f.autocomplete({source:f.attr("data-autocomplete-src"),minLength:2,select:function(n,t){return f.val(t.item.Id),!1}}).data("ui-autocomplete")._renderItem=function(n,t){return $("<li>").data("item.autocomplete",t).append("<a><strong>"+t.Name+"<\/strong><br>"+t.Id+" ("+t.Type+")<\/a>").appendTo(n)};o=u}return u.dialog("open"),!1});let s=null;$("#AddUserFlag").click(n=>{n.preventDefault();let u=s;if(!u){const n=function(n){const t=u.find("form")[0];if(t.reportValidity()){const i=new FormData(t);fetch(t.action,{method:"POST",body:i}).then(n=>n.json()).then(t=>{n(t),u.find('input[name="flagId"]').val(""),u.find("div.item").removeClass("selected"),u.dialog("close"),u.dialog("enable")}).catch(n=>{alert("Failed to validate user flag: "+n)})}u.dialog("disable")};u=$("#DocumentTemplate_BulkGenerate_Dialog_AddUserFlag").dialog({resizable:!1,modal:!0,autoOpen:!1,width:460,buttons:{"Exclude Unassigned Users":function(){n(r)},"Exclude Assigned Users":function(){n(i)},"Add Assigned Users":function(){n(t)}}});const f=u.find('input[name="flagId"]');u.on("click","div.item:not(.disabled)",n=>{n.preventDefault();const t=$(n.currentTarget);return f.val(t.attr("data-userflagid")),u.find("div.item").removeClass("selected"),t.addClass("selected"),!1});s=u}return u.dialog("open"),!1});let h=null;$("#AddDeviceProfile").click(n=>{n.preventDefault();let u=h;if(!u){const n=function(n){const t=u.find("form")[0],i=u.find('input[name="deviceProfileId"]');if(i.val()&&t.reportValidity()){const r=new FormData(t);fetch(t.action,{method:"POST",body:r}).then(n=>n.json()).then(t=>{n(t),i.val(""),u.find("div.item").removeClass("selected"),u.dialog("close"),u.dialog("enable")}).catch(n=>{alert("Failed to validate device profile: "+n)});u.dialog("disable")}};u=$("#DocumentTemplate_BulkGenerate_Dialog_AddDeviceProfile").dialog({resizable:!1,modal:!0,autoOpen:!1,width:460,buttons:{"Exclude Unassigned Users":function(){n(r)},"Exclude Assigned Users":function(){n(i)},"Add Assigned Users":function(){n(t)}}});const f=u.find('input[name="deviceProfileId"]');u.on("click","div.item:not(.disabled)",n=>{n.preventDefault();const t=$(n.currentTarget);return f.val(t.attr("data-id")),u.find("div.item").removeClass("selected"),t.addClass("selected"),!1});h=u}return u.dialog("open"),!1});let c=null;$("#AddDeviceBatch").click(n=>{n.preventDefault();let u=c;if(!u){const n=function(n){const t=u.find("form")[0],i=u.find('input[name="deviceBatchId"]');if(i.val()&&t.reportValidity()){const r=new FormData(t);fetch(t.action,{method:"POST",body:r}).then(n=>n.json()).then(t=>{n(t),i.val(""),u.find("div.item").removeClass("selected"),u.dialog("close"),u.dialog("enable")}).catch(n=>{alert("Failed to validate device batch: "+n)});u.dialog("disable")}};u=$("#DocumentTemplate_BulkGenerate_Dialog_AddDeviceBatch").dialog({resizable:!1,modal:!0,autoOpen:!1,width:460,buttons:{"Exclude Unassigned Users":function(){n(r)},"Exclude Assigned Users":function(){n(i)},"Add Assigned Users":function(){n(t)}}});const f=u.find('input[name="deviceBatchId"]');u.on("click","div.item:not(.disabled)",n=>{n.preventDefault();const t=$(n.currentTarget);return f.val(t.attr("data-id")),u.find("div.item").removeClass("selected"),t.addClass("selected"),!1});c=u}return u.dialog("open"),!1});let l=null;$("#AddDocumentAttachment").click(n=>{n.preventDefault();let u=l;if(!u){const n=function(n){const t=u.find("form")[0],i=u.find('input[name="documentTemplateId"]');if(i.val()&&t.reportValidity()){const r=new FormData(t);fetch(t.action,{method:"POST",body:r}).then(n=>n.json()).then(t=>{n(t),i.val(""),u.find("div.item").removeClass("selected"),u.dialog("close"),u.dialog("enable")}).catch(n=>{alert("Failed to validate device batch: "+n)});u.dialog("disable")}};u=$("#DocumentTemplate_BulkGenerate_Dialog_AddDocumentAttachment").dialog({resizable:!1,modal:!0,autoOpen:!1,width:460,buttons:{"Exclude Unassigned Users":function(){n(r)},"Exclude Assigned Users":function(){n(i)},"Add Assigned Users":function(){n(t)}}});const f=u.find('input[name="documentTemplateId"]');u.on("click","div.item:not(.disabled)",n=>{n.preventDefault();const t=$(n.currentTarget);return f.val(t.attr("data-id")),u.find("div.item").removeClass("selected"),t.addClass("selected"),!1});l=u}return u.dialog("open"),!1});let a=null;$("#AddUserDetail").click(n=>{n.preventDefault();let u=a;if(!u){const f=function(n){const t=u.find("form")[0],i=$(t).find('input[name="key"]');if(i.val()&&t.reportValidity()){const r=new FormData(t);fetch(t.action,{method:"POST",body:r}).then(n=>n.json()).then(r=>{n(r),i.val(""),$(t).find('input[name="value"]').val(""),$("#DocumentTemplate_BulkGenerate_Dialog_AddUserDetail_Value").empty(),u.find("div.item").removeClass("selected"),u.dialog("close"),u.dialog("enable")}).catch(n=>{alert("Failed to validate user detail: "+n)});u.dialog("disable")}};u=$("#DocumentTemplate_BulkGenerate_Dialog_AddUserDetail").dialog({resizable:!1,modal:!0,autoOpen:!1,width:690,buttons:{"Exclude Unmatched Users":function(){f(r)},"Exclude Matched Users":function(){f(i)},"Add Matched Users":function(){f(t)}}});const s=u.find('input[name="key"]'),e=u.find('input[name="value"]'),o=u.find("#DocumentTemplate_BulkGenerate_Dialog_AddUserDetail_Key"),n=u.find("#DocumentTemplate_BulkGenerate_Dialog_AddUserDetail_Value");o.on("click","div.item:not(.disabled)",t=>{t.preventDefault();const i=$(t.currentTarget),f=i.attr("data-id");s.val(f);o.find("div.item").removeClass("selected");i.addClass("selected");n.empty();n.append($('<i class="ajaxLoading" title="Loading"><\/i>'));const r=u.find("form")[1],h=new FormData(r);return fetch(r.action,{method:"POST",body:h}).then(n=>n.json()).then(t=>{n.empty();const i=$('<div class="item selected" data-id=""><i class="fa fa-info fa-fw fa-lg"><\/i><em>All Matched Users<\/em><\/div>');i.appendTo(n);e.val("");t.map(t=>{const i=$('<div class="item"><i class="fa fa-info fa-fw fa-lg"><\/i ><\/div>');i.attr("data-id",t);const r=$("<span>").text(t);r.appendTo(i);i.appendTo(n)})}).catch(n=>{alert("Failed to validate user detail: "+n)}),u.dialog("disable"),!1});n.on("click","div.item:not(.disabled)",t=>{t.preventDefault();const i=$(t.currentTarget);e.val(i.attr("data-id"));n.find("div.item").removeClass("selected");i.addClass("selected")});a=u}return u.dialog("open"),!1})});