Filament Selection dialog Fixes / Improvements (#12325)

* Update 22.js

* fix printer list empty

* switch to vertical scrolling on custom filaments

* Update 23.css

* add stats

* fix uncommon filament types

* fix setup wizerd styling

---------

Co-authored-by: SoftFever <softfeverever@gmail.com>
This commit is contained in:
yw4z
2026-02-26 18:42:49 +03:00
committed by GitHub
parent 72db7fa4df
commit c3bb4347da
10 changed files with 107 additions and 41 deletions

View File

@@ -66,22 +66,35 @@ function SortUI()
$('#MachineList .CValues').append(HtmlMode);
$('#MachineList .CValues input').prop("checked",true);
if(nMode<=1)
{
$('#MachineList').hide();
}
//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);
//Filament
let HtmlFilament='';
let SelectNumber=0;
var TypeHtmlArray={};
var VendorHtmlArray={};
var GenericFilamentHtmlArray={};
var NonGenericFilamentHtmlArray={};
for( let key in m_ProfileItem['filament'] )
for( let n=0; n<SortedFilamentArray.length; n++ )
{
let OneFila=m_ProfileItem['filament'][key];
let filamentItem = SortedFilamentArray[n];
let key = filamentItem.key;
let OneFila = filamentItem.data;
//alert(JSON.stringify(OneFila));
@@ -152,14 +165,9 @@ function SortUI()
if(pFila.length==0)
{
/* ORCA use label tag to allow checkbox to toggle when user ckicked to text */
let HtmlFila='<label class="MItem"><input type="checkbox" vendor="'+fVendor+'" filatype="'+fType+'" filalist="'+fWholeName+';'+'" model="'+fModel+'" name="'+fShortName+'" /><span>'+fShortName+'</span></label>';
let HtmlFila='<label class="MItem"><input type="checkbox" onChange="UpdateStats()" vendor="'+fVendor+'" filatype="'+fType+'" filalist="'+fWholeName+';'+'" model="'+fModel+'" name="'+fShortName+'" /><span>'+fShortName+'</span></label>';
// Separate generic and non-generic filaments
if(fVendor.toLowerCase() === 'generic') {
GenericFilamentHtmlArray[fShortName] = HtmlFila;
} else {
NonGenericFilamentHtmlArray[fShortName] = HtmlFila;
}
$("#ItemBlockArea").append(HtmlFila);
}
else
{
@@ -185,14 +193,6 @@ function SortUI()
// $("#ItemBlockArea input[vendor='"+fVendor+"'][model='"+fModel+"'][filatype='"+fType+"'][name='"+key+"']").prop("checked",false);
}
}
// Append filaments in order: generic first, then non-generic
for(let key in GenericFilamentHtmlArray) {
$("#ItemBlockArea").append(GenericFilamentHtmlArray[key]);
}
for(let key in NonGenericFilamentHtmlArray) {
$("#ItemBlockArea").append(NonGenericFilamentHtmlArray[key]);
}
//Sort TypeArray
let TypeAdvNum=FilamentPriority.length;
@@ -240,6 +240,8 @@ function SortUI()
$("#AcceptBtn").hide();
$("#GotoNetPluginBtn").show();
}
UpdateStats();
}
@@ -405,9 +407,28 @@ function SortFilament()
else
$(OneNode).hide();
}
else
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 ChooseDefaultFilament()
@@ -471,6 +492,8 @@ function ChooseDefaultFilament()
}
ShowNotice(0);
UpdateStats();
}
function SelectAllFilament( nShow )