var m_ProfileItem; var FilamentPriority = new Array( "pla","abs","pet","tpu","pc"); var VendorPriority = new Array("generic"); function RequestProfile() { var tSend={}; tSend['sequence_id']=Math.round(new Date() / 1000); tSend['command']="request_userguide_profile"; SendWXMessage( JSON.stringify(tSend) ); } function GetFilamentShortname( sName ) { let sShort=sName.split('@')[0].trim(); return sShort; } function SortUI() { var ModelList=new Array(); let nMode=m_ProfileItem["model"].length; for(let n=0;n'+sModel['model']+''; } $('#MachineList .CValues').append(HtmlMode); $('#MachineList .CValues input').prop("checked",true); //if(nMode<=1) //{ // $('#MachineList').hide(); //} //Filament - Create sorted array with generic vendor first let FilamentArray=new Array(); let GenericFilamentArray=new Array(); for( let key in m_ProfileItem['filament'] ) { let OneFila=m_ProfileItem['filament'][key]; if(OneFila['vendor'].toLowerCase() === 'generic') GenericFilamentArray.push({key: key, data: OneFila}); else FilamentArray.push({key: key, data: OneFila}); } // Combine arrays with generic filaments first let SortedFilamentArray = GenericFilamentArray.concat(FilamentArray); let HtmlFilament=''; let SelectNumber=0; var TypeHtmlArray={}; var VendorHtmlArray={}; for( let n=0; n=0) { bFind=true; break; } } } } if(bFind) { //Type let LowType=fType.toLowerCase(); if(!TypeHtmlArray.hasOwnProperty(LowType)) { /* ORCA use label tag to allow checkbox to toggle when user ckicked to text */ let HtmlType=''; TypeHtmlArray[LowType]=HtmlType; } //Vendor let lowVendor=fVendor.toLowerCase(); if(!VendorHtmlArray.hasOwnProperty(lowVendor)) { /* ORCA use label tag to allow checkbox to toggle when user ckicked to text */ let HtmlVendor=''; VendorHtmlArray[lowVendor]=HtmlVendor; } //Filament let pFila=$("#ItemBlockArea input[vendor='"+fVendor+"'][filatype='"+fType+"'][name='"+fShortName+"']"); if(pFila.length==0) { /* ORCA use label tag to allow checkbox to toggle when user ckicked to text */ let HtmlFila=''; $("#ItemBlockArea").append(HtmlFila); } else { let strModel=pFila.attr("model"); let strFilalist=pFila.attr("filalist"); if(strModel == '' || fModel == '') pFila.attr("model", ''); else pFila.attr("model", strModel+fModel); pFila.attr("filalist", strFilalist+fWholeName+';'); } if(fSelect*1==1) { //alert( fWholeName+' - '+fShortName+' - '+fVendor+' - '+fType+' - '+fSelect+' - '+fModel ); $("#ItemBlockArea input[vendor='"+fVendor+"'][filatype='"+fType+"'][name='"+fShortName+"']").prop("checked",true); SelectNumber++; } // else // $("#ItemBlockArea input[vendor='"+fVendor+"'][model='"+fModel+"'][filatype='"+fType+"'][name='"+key+"']").prop("checked",false); } } //Sort TypeArray let TypeAdvNum=FilamentPriority.length; for( let n=0;n=0) { HasModel=true; break; } } if(HasModel || fModel=='') $(OneNode).show(); else $(OneNode).hide(); } else{ $(OneNode).hide(); //alert(fName) //debug non common filament type } } UpdateStats(); } function UpdateStats() { let $i = $("#ItemBlockArea"); let $allItems = $i.find(".MItem"); let $visibleItems = $i.find(".MItem:visible"); let $filteredItems = $visibleItems.filter(function() { return $(this).css('position') !== 'absolute'}); let visibleCount = Math.min($filteredItems.length, $visibleItems.length); $(".list-item-count").text( $i.find("input:checked").length + " / " + $allItems.length + ($allItems.length > visibleCount ? (" [" + visibleCount + "]") : "") // filtered items ); } function SelectAllFilament( nShow ) { // ORCA add ability to only select / unselect filted items if (document.querySelector('.cbr-filter-bar').value) { $('#ItemBlockArea .MItem:visible input') .filter(function() {return $(this).closest('.MItem').css('position') !== 'absolute'}) .prop("checked", nShow != 0); } else { $('#ItemBlockArea .MItem:visible input').prop("checked",nShow!=0); } UpdateStats(); } function ShowNotice( nShow ) { if(nShow==0) { $("#NoticeMask").hide(); $("#NoticeBody").hide(); } else { $("#NoticeMask").show(); $("#NoticeBody").show(); } } function ChooseDefaultFilament() { //ModelList let pModel=$("#MachineList input:gt(0)"); let nModel=pModel.length; let ModelList=new Array(); for(let n=0;n-1 ) { DefaultMaterialString+=OneMode['materials']+';'; } } let DefaultMaterialArray=DefaultMaterialString.split(';'); //alert(DefaultMaterialString); //Filament let FilaNodes=$("#ItemBlockArea .MItem"); let nFilament=FilaNodes.length; for(let m=0;m-1) { HasModel=true; break; } } if(HasModel) $(OneFF).prop("checked",true); } ShowNotice(0); UpdateStats(); } function ResponseFilamentResult() { let FilaSelectedList= $("#ItemBlockArea input:checked"); let nAll=FilaSelectedList.length; if( nAll==0 ) { ShowNotice(1); return false; } let FilaArray=new Array(); for(let n=0;n { if (el.getAttribute("onclear") == "1") { el.value = ''; el.dispatchEvent(new Event('input', {bubbles: true})); } }); el.addEventListener('mousemove', e => { const rc = el.getBoundingClientRect(); const onRight = el.value && (e.clientX - rc.left > rc.width - 32); el.setAttribute("onclear", onRight ? "1" : "0"); }); el.addEventListener('mouseleave', e => { el.setAttribute("onclear", "0"); }); } function initInputEvents(){ document.querySelectorAll('.cbr-search-bar').forEach(searchBar => { searchBar.addEventListener('input', function() { const search = this.value.trim().toLowerCase(), list = this.closest('.cbr-column').querySelector('.cbr-content'), items = list.querySelectorAll('label'); let hidden = 0; items.forEach((item, i) => { if(i == 0){ item.style.display ="block"; return; }; const text = item.querySelector("span").textContent.toLowerCase(); const hide = search && !text.includes(search); item.style.display = hide ? "none" : "block"; if(hide) hidden++; }); if(items.length - hidden == 1){ items[0].style.display = "none"; hidden++; } list.querySelector('.cbr-no-items').style.display = (hidden === items.length) ? "block" : "none"; }); addClearBtnEvents(searchBar); }); const filterBar = document.querySelector('.cbr-filter-bar'); const filterModeFilter = document.querySelector('.cbr-filter-mode-filter' ); const filterModeVisible = document.querySelector('.cbr-filter-mode-visible'); filterBar.addEventListener('input', function() { const search = this.value.trim().toLowerCase(); const list = this.closest('.cbr-column').querySelector('.cbr-content'); const items = list.querySelectorAll('label'); let hidden = 0; filterModeFilter.style.display = search ? "block" : "none"; filterModeVisible.style.display = search ? "none" : "block"; const showSel = search == "::checked"; const showUnsel = search == "::unchecked"; if(showSel || showUnsel){ items.forEach(item => { const cb = item.querySelector("input"); const hide = showSel ? !cb.checked : cb.checked; item.style.position = hide ? "absolute" : "unset"; if(hide) hidden++; }); } else { items.forEach(item => { const text = item.querySelector("span").textContent.toLowerCase(); const hide = search && !text.includes(search); item.style.position = hide ? "absolute" : "unset"; if(hide) hidden++; }); } list.querySelector('.cbr-no-items').style.display = (hidden === items.length) ? "block" : "none"; UpdateStats(); }); addClearBtnEvents(filterBar); document.querySelector('#filter-tags').addEventListener('change', e => { let v = e.target.value; filterBar.value = v == "1" ? "::checked" : "::unchecked"; filterBar.dispatchEvent(new Event('input', {bubbles: true})); filterBar.focus(); e.target.value = 0; // reset back to make dropdown items always selectable }); }