534 lines
11 KiB
JavaScript
534 lines
11 KiB
JavaScript
|
|
var m_ProfileItem;
|
|
|
|
var FilamentPriority=new Array( "pla","abs","pet","tpu","pc");
|
|
var VendorPriority=new Array("bambu lab","bambulab","bbl","kexcelled","polymaker","esun","generic");
|
|
|
|
function OnInit()
|
|
{
|
|
TranslatePage();
|
|
|
|
RequestProfile();
|
|
|
|
//m_ProfileItem=cData;
|
|
//SortUI();
|
|
}
|
|
|
|
function RequestProfile()
|
|
{
|
|
var tSend={};
|
|
tSend['sequence_id']=Math.round(new Date() / 1000);
|
|
tSend['command']="request_userguide_profile";
|
|
|
|
SendWXMessage( JSON.stringify(tSend) );
|
|
}
|
|
|
|
//function RequestModelSelect()
|
|
//{
|
|
// var tSend={};
|
|
// tSend['sequence_id']=Math.round(new Date() / 1000);
|
|
// tSend['command']="request_userguide_modelselected";
|
|
//
|
|
// SendWXMessage( JSON.stringify(tSend) );
|
|
//}
|
|
|
|
function HandleStudio(pVal)
|
|
{
|
|
let strCmd=pVal['command'];
|
|
//alert(strCmd);
|
|
|
|
if(strCmd=='response_userguide_profile')
|
|
{
|
|
m_ProfileItem=pVal['response'];
|
|
SortUI();
|
|
}
|
|
}
|
|
|
|
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<nMode;n++)
|
|
{
|
|
let OneMode=m_ProfileItem["model"][n];
|
|
|
|
if( OneMode["nozzle_selected"]!="" )
|
|
ModelList.push(OneMode["model"]);
|
|
}
|
|
|
|
//machine
|
|
// let HtmlMachine='';
|
|
//
|
|
// let nMachine=m_ProfileItem['machine'].length;
|
|
// for(let n=0;n<nMachine;n++)
|
|
// {
|
|
// let OneMachine=m_ProfileItem['machine'][n];
|
|
//
|
|
// let sName=OneMachine['name'];
|
|
// let sModel=OneMachine['model'];
|
|
//
|
|
// if( ModelList.in_array(sModel) )
|
|
// {
|
|
// HtmlMachine+='<div><input type="checkbox" mode="'+sModel+'" onChange="MachineClick()" />'+sName+'</div>';
|
|
// }
|
|
// }
|
|
//
|
|
// $('#MachineList .CValues').append(HtmlMachine);
|
|
// $('#MachineList .CValues input').prop("checked",true);
|
|
// if(nMachine<=1)
|
|
// {
|
|
// $('#MachineList').hide();
|
|
// }
|
|
|
|
//machine
|
|
let HtmlMode='';
|
|
nMode=ModelList.length;
|
|
for(let n=0;n<nMode;n++)
|
|
{
|
|
let sModel=ModelList[n];
|
|
|
|
HtmlMode+='<div><input type="checkbox" mode="'+sModel+'" onChange="MachineClick()" />'+sModel+'</div>';
|
|
}
|
|
|
|
$('#MachineList .CValues').append(HtmlMode);
|
|
$('#MachineList .CValues input').prop("checked",true);
|
|
if(nMode<=1)
|
|
{
|
|
$('#MachineList').hide();
|
|
}
|
|
|
|
//Filament
|
|
let HtmlFilament='';
|
|
let SelectNumber=0;
|
|
|
|
var TypeHtmlArray={};
|
|
var VendorHtmlArray={};
|
|
for( let key in m_ProfileItem['filament'] )
|
|
{
|
|
let OneFila=m_ProfileItem['filament'][key];
|
|
|
|
let fShortName=GetFilamentShortname( OneFila['name'] );
|
|
let fVendor=OneFila['vendor'];
|
|
let fType=OneFila['type'];
|
|
let fSelect=OneFila['selected'];
|
|
let fModel=OneFila['models']
|
|
|
|
// if(OneFila['name'].indexOf("K5 PLA Wood")>0)
|
|
// {
|
|
// let b=1+2;
|
|
// }
|
|
|
|
let bFind=false;
|
|
let bCheck=$("#MachineList input:first").prop("checked");
|
|
if(bCheck)
|
|
{
|
|
bFind=true;
|
|
}
|
|
else
|
|
{
|
|
//check in modellist
|
|
let nModelAll=ModelList.length;
|
|
for(let m=0;m<nModelAll;m++)
|
|
{
|
|
let sOne=ModelList[m];
|
|
|
|
if(fModel.indexOf(sOne)>=0)
|
|
{
|
|
bFind=true;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
if(bFind)
|
|
{
|
|
//Type
|
|
let LowType=fType.toLowerCase();
|
|
if(!TypeHtmlArray.hasOwnProperty(LowType))
|
|
{
|
|
let HtmlType='<div><input type="checkbox" filatype="'+fType+'" onChange="FilaClick()" />'+fType+'</div>';
|
|
|
|
TypeHtmlArray[LowType]=HtmlType;
|
|
}
|
|
|
|
//Vendor
|
|
let lowVendor=fVendor.toLowerCase();
|
|
if(!VendorHtmlArray.hasOwnProperty(lowVendor))
|
|
{
|
|
let HtmlVendor='<div><input type="checkbox" vendor="'+fVendor+'" onChange="VendorClick()" />'+fVendor+'</div>';
|
|
|
|
VendorHtmlArray[lowVendor]=HtmlVendor;
|
|
}
|
|
|
|
//Filament
|
|
let pFila=$("#ItemBlockArea input[vendor='"+fVendor+"'][filatype='"+fType+"'][name='"+fShortName+"']");
|
|
if(pFila.length==0)
|
|
{
|
|
let HtmlFila='<div class="MItem"><input type="checkbox" vendor="'+fVendor+'" filatype="'+fType+'" model="'+fModel+'" name="'+fShortName+'" />'+fShortName+'</div>';
|
|
|
|
$("#ItemBlockArea").append(HtmlFila);
|
|
|
|
if(fSelect==1)
|
|
{
|
|
$("#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);
|
|
}
|
|
else
|
|
{
|
|
let strModel=pFila.attr("model");
|
|
|
|
pFila.attr("model", strModel+fModel);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Sort TypeArray
|
|
let TypeAdvNum=FilamentPriority.length;
|
|
for( let n=0;n<TypeAdvNum;n++ )
|
|
{
|
|
let strType=FilamentPriority[n];
|
|
|
|
if( TypeHtmlArray.hasOwnProperty( strType ) )
|
|
{
|
|
$("#FilatypeList .CValues").append( TypeHtmlArray[strType] );
|
|
delete( TypeHtmlArray[strType] );
|
|
}
|
|
}
|
|
for(let key in TypeHtmlArray )
|
|
{
|
|
$("#FilatypeList .CValues").append( TypeHtmlArray[key] );
|
|
}
|
|
$("#FilatypeList .CValues input").prop("checked",true);
|
|
|
|
//Sort VendorArray
|
|
let VendorAdvNum=VendorPriority.length;
|
|
for( let n=0;n<VendorAdvNum;n++ )
|
|
{
|
|
let strVendor=VendorPriority[n];
|
|
|
|
if( VendorHtmlArray.hasOwnProperty( strVendor ) )
|
|
{
|
|
$("#VendorList .CValues").append( VendorHtmlArray[strVendor] );
|
|
delete( VendorHtmlArray[strVendor] );
|
|
}
|
|
}
|
|
for(let key in VendorHtmlArray )
|
|
{
|
|
$("#VendorList .CValues").append( VendorHtmlArray[key] );
|
|
}
|
|
$("#VendorList .CValues input").prop("checked",true);
|
|
|
|
//------
|
|
if(SelectNumber==0)
|
|
ChooseDefaultFilament();
|
|
}
|
|
|
|
|
|
function ChooseAllMachine()
|
|
{
|
|
let bCheck=$("#MachineList input:first").prop("checked");
|
|
|
|
$("#MachineList input").prop("checked",bCheck);
|
|
|
|
SortFilament();
|
|
}
|
|
|
|
function MachineClick()
|
|
{
|
|
let nChecked=$("#MachineList input:gt(0):checked").length
|
|
let nAll =$("#MachineList input:gt(0)").length
|
|
|
|
if(nAll==nChecked)
|
|
{
|
|
$("#MachineList input:first").prop("checked",true);
|
|
}
|
|
else
|
|
{
|
|
$("#MachineList input:first").prop("checked",false);
|
|
}
|
|
|
|
SortFilament();
|
|
}
|
|
|
|
function ChooseAllFilament()
|
|
{
|
|
let bCheck=$("#FilatypeList input:first").prop("checked");
|
|
$("#FilatypeList input").prop("checked",bCheck);
|
|
|
|
SortFilament();
|
|
}
|
|
|
|
function FilaClick()
|
|
{
|
|
let nChecked=$("#FilatypeList input:gt(0):checked").length
|
|
let nAll =$("#FilatypeList input:gt(0)").length
|
|
|
|
if(nAll==nChecked)
|
|
{
|
|
$("#FilatypeList input:first").prop("checked",true);
|
|
}
|
|
else
|
|
{
|
|
$("#FilatypeList input:first").prop("checked",false);
|
|
}
|
|
|
|
SortFilament();
|
|
}
|
|
|
|
function ChooseAllVendor()
|
|
{
|
|
let bCheck=$("#VendorList input:first").prop("checked");
|
|
$("#VendorList input").prop("checked",bCheck);
|
|
|
|
SortFilament();
|
|
}
|
|
|
|
function VendorClick()
|
|
{
|
|
let nChecked=$("#VendorList input:gt(0):checked").length
|
|
let nAll =$("#VendorList input:gt(0)").length
|
|
|
|
if(nAll==nChecked)
|
|
{
|
|
$("#VendorList input:first").prop("checked",true);
|
|
}
|
|
else
|
|
{
|
|
$("#VendorList input:first").prop("checked",false);
|
|
}
|
|
|
|
SortFilament();
|
|
}
|
|
|
|
|
|
|
|
function SortFilament()
|
|
{
|
|
let FilaNodes=$("#ItemBlockArea .MItem");
|
|
let nFilament=FilaNodes.length;
|
|
//$("#ItemBlockArea .MItem").hide();
|
|
|
|
//ModelList
|
|
let pModel=$("#MachineList input:checked");
|
|
let nModel=pModel.length;
|
|
let ModelList=new Array();
|
|
for(let n=0;n<nModel;n++)
|
|
{
|
|
let OneModel=pModel[n];
|
|
ModelList.push( OneModel.getAttribute("mode") );
|
|
}
|
|
|
|
//TypeList
|
|
let pType=$("#FilatypeList input:gt(0):checked");
|
|
let nType=pType.length;
|
|
let TypeList=new Array();
|
|
for(let n=0;n<nType;n++)
|
|
{
|
|
let OneType=pType[n];
|
|
TypeList.push( OneType.getAttribute("filatype") );
|
|
}
|
|
|
|
//VendorList
|
|
let pVendor=$("#VendorList input:gt(0):checked");
|
|
let nVendor=pVendor.length;
|
|
let VendorList=new Array();
|
|
for(let n=0;n<nVendor;n++)
|
|
{
|
|
let OneVendor=pVendor[n];
|
|
VendorList.push( OneVendor.getAttribute("vendor") );
|
|
}
|
|
|
|
|
|
//Update Filament UI
|
|
for(let m=0;m<nFilament;m++)
|
|
{
|
|
let OneNode=FilaNodes[m];
|
|
let OneFF=OneNode.getElementsByTagName("input")[0];
|
|
|
|
let fModel=OneFF.getAttribute("model");
|
|
let fVendor=OneFF.getAttribute("vendor");
|
|
let fType=OneFF.getAttribute("filatype");
|
|
let fName=OneFF.getAttribute("name");
|
|
|
|
if(TypeList.in_array(fType) && VendorList.in_array(fVendor))
|
|
{
|
|
let HasModel=false;
|
|
for(let m=0;m<nModel;m++)
|
|
{
|
|
let ModelSrc=ModelList[m];
|
|
|
|
if( ModelSrc=="all" || fModel.indexOf(ModelSrc)>=0)
|
|
{
|
|
HasModel=true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if(HasModel || fModel=='')
|
|
$(OneNode).show();
|
|
else
|
|
$(OneNode).hide();
|
|
}
|
|
else
|
|
$(OneNode).hide();
|
|
}
|
|
}
|
|
|
|
function ChooseDefaultFilament()
|
|
{
|
|
//ModelList
|
|
let pModel=$("#MachineList input:gt(0):checked");
|
|
let nModel=pModel.length;
|
|
let ModelList=new Array();
|
|
for(let n=0;n<nModel;n++)
|
|
{
|
|
let OneModel=pModel[n];
|
|
ModelList.push( OneModel.getAttribute("mode") );
|
|
}
|
|
|
|
//Filament
|
|
let FilaNodes=$("#ItemBlockArea .MItem");
|
|
let nFilament=FilaNodes.length;
|
|
for(let m=0;m<nFilament;m++)
|
|
{
|
|
let OneNode=FilaNodes[m];
|
|
let OneFF=OneNode.getElementsByTagName("input")[0];
|
|
$(OneFF).prop("checked",false);
|
|
|
|
let fModel=OneFF.getAttribute("model");
|
|
|
|
let HasModel=false;
|
|
for(let m=0;m<nModel;m++)
|
|
{
|
|
let ModelSrc=ModelList[m];
|
|
|
|
if( fModel.indexOf(ModelSrc)>=0)
|
|
{
|
|
HasModel=true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if(HasModel)
|
|
$(OneFF).prop("checked",true);
|
|
}
|
|
|
|
ShowNotice(0);
|
|
}
|
|
|
|
function SelectAllFilament( nShow )
|
|
{
|
|
if( nShow==0 )
|
|
{
|
|
$('#ItemBlockArea input').prop("checked",false);
|
|
}
|
|
else
|
|
{
|
|
$('#ItemBlockArea input').prop("checked",true);
|
|
}
|
|
}
|
|
|
|
function ShowNotice( nShow )
|
|
{
|
|
if(nShow==0)
|
|
{
|
|
$("#NoticeMask").hide();
|
|
$("#NoticeBody").hide();
|
|
}
|
|
else
|
|
{
|
|
$("#NoticeMask").show();
|
|
$("#NoticeBody").show();
|
|
}
|
|
}
|
|
|
|
|
|
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<nAll;n++)
|
|
{
|
|
let sName=FilaSelectedList[n].getAttribute("name");
|
|
|
|
for( let key in m_ProfileItem['filament'] )
|
|
{
|
|
let FName=GetFilamentShortname(key);
|
|
|
|
if(FName==sName)
|
|
FilaArray.push(key);
|
|
}
|
|
}
|
|
|
|
var tSend={};
|
|
tSend['sequence_id']=Math.round(new Date() / 1000);
|
|
tSend['command']="save_userguide_filaments";
|
|
tSend['data']={};
|
|
tSend['data']['filament']=FilaArray;
|
|
|
|
SendWXMessage( JSON.stringify(tSend) );
|
|
|
|
return true;
|
|
}
|
|
|
|
|
|
function ReturnPreviewPage()
|
|
{
|
|
let nMode=m_ProfileItem["model"].length;
|
|
|
|
if( nMode==1)
|
|
document.location.href="../3/index.html";
|
|
else
|
|
document.location.href="../21/index.html";
|
|
}
|
|
|
|
|
|
function GotoNewFeature()
|
|
{
|
|
let bRet=ResponseFilamentResult();
|
|
|
|
if(bRet)
|
|
window.location.href="../5/index.html";
|
|
}
|
|
|
|
function FinishGuide()
|
|
{
|
|
let bRet=ResponseFilamentResult();
|
|
|
|
if(bRet)
|
|
{
|
|
var tSend={};
|
|
tSend['sequence_id']=Math.round(new Date() / 1000);
|
|
tSend['command']="user_guide_finish";
|
|
tSend['data']={};
|
|
tSend['data']['action']="finish";
|
|
|
|
SendWXMessage( JSON.stringify(tSend) );
|
|
}
|
|
//window.location.href="../6/index.html";
|
|
}
|
|
|
|
|
|
|
|
|