|
|
@ -44,6 +44,38 @@ function ItemGroup(p) { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function submit(f,item,i){ |
|
|
|
|
|
|
|
var correctedVal=Math.min(item.required,f.currentTarget.value); if (f.currentTarget.value>=item.required) {f.currentTarget.blur()}
|
|
|
|
|
|
|
|
axios.get(BACKEND_URL+"/lastUpdate") |
|
|
|
|
|
|
|
.then(async(data)=>{ |
|
|
|
|
|
|
|
if (new Date(data.data[0].last_modified)>lastModified) { |
|
|
|
|
|
|
|
console.log("Updating entries... "+[lastModified,data.data[0].last_modified]) |
|
|
|
|
|
|
|
setLastModified(new Date()) |
|
|
|
|
|
|
|
return await axios.get("https://projectdivar.com:4505/getData") |
|
|
|
|
|
|
|
.then((data)=>{ |
|
|
|
|
|
|
|
//setData(data.data)
|
|
|
|
|
|
|
|
setData1(data.data.slice(dataSplitters[0],dataSplitters[1])) |
|
|
|
|
|
|
|
setData2(data.data.slice(dataSplitters[1],dataSplitters[2])) |
|
|
|
|
|
|
|
setData3(data.data.slice(dataSplitters[2],dataSplitters[3])) |
|
|
|
|
|
|
|
setData4(data.data.slice(dataSplitters[3],data.data.length)) |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
.then((data)=>{ |
|
|
|
|
|
|
|
axios.post(BACKEND_URL+"/updateItem",{obtained:correctedVal,id:item.id,last_modified:new Date()}); |
|
|
|
|
|
|
|
var newData=[...displayData];newData[i].obtained=correctedVal; |
|
|
|
|
|
|
|
setLastModified(new Date()); |
|
|
|
|
|
|
|
setDisplayData(newData.sort((a,b)=>{ |
|
|
|
|
|
|
|
if (b.required===b.obtained&&a.required!==a.obtained) {return -1} |
|
|
|
|
|
|
|
if (b.required===b.obtained&&a.required===a.obtained) {return a.id-b.id} |
|
|
|
|
|
|
|
if (b.required!==b.obtained&&a.required!==a.obtained) {return a.id-b.id} |
|
|
|
|
|
|
|
})); |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
.catch((err)=>{ |
|
|
|
|
|
|
|
console.log(err.message) |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return <Accordion.Item className="bg-dark" eventKey={p.akey}> |
|
|
|
return <Accordion.Item className="bg-dark" eventKey={p.akey}> |
|
|
|
<Accordion.Header className="panel-body bg-dark">{p.name}</Accordion.Header> |
|
|
|
<Accordion.Header className="panel-body bg-dark">{p.name}</Accordion.Header> |
|
|
|
<Accordion.Body className="panel-body"> |
|
|
|
<Accordion.Body className="panel-body"> |
|
|
@ -52,36 +84,7 @@ function ItemGroup(p) { |
|
|
|
<img src={"https://xivapi.com"+item.icon}/> {item.name} |
|
|
|
<img src={"https://xivapi.com"+item.icon}/> {item.name} |
|
|
|
</Col> |
|
|
|
</Col> |
|
|
|
<Col> |
|
|
|
<Col> |
|
|
|
<input style={{width:"5em"}} value={item.obtained} className="mt-1 bg-secondary" onChange={(f)=>{var correctedVal=Math.min(item.required,f.currentTarget.value); if (f.currentTarget.value>=item.required) {f.currentTarget.blur()}
|
|
|
|
<input id={"input_"+item.id} style={{width:"5em"}} defaultValue={item.obtained} className="mt-1 bg-secondary" onKeyDown={(k)=>{if (k.key==='Enter') {submit({currentTarget:document.getElementById("input_"+item.id)},item,i)}}} onBlur={(f)=>{submit(f,item,i)}} type="number" min="0" max={item.required}/> / {item.required} {item.required!==item.obtained&&<FaCheckCircle style={{color:"green"}} onClick={(f)=>{ |
|
|
|
axios.get(BACKEND_URL+"/lastUpdate") |
|
|
|
|
|
|
|
.then(async(data)=>{ |
|
|
|
|
|
|
|
if (new Date(data.data[0].last_modified)>lastModified) { |
|
|
|
|
|
|
|
console.log("Updating entries... "+[lastModified,data.data[0].last_modified]) |
|
|
|
|
|
|
|
setLastModified(new Date()) |
|
|
|
|
|
|
|
return await axios.get("https://projectdivar.com:4505/getData") |
|
|
|
|
|
|
|
.then((data)=>{ |
|
|
|
|
|
|
|
//setData(data.data)
|
|
|
|
|
|
|
|
setData1(data.data.slice(dataSplitters[0],dataSplitters[1])) |
|
|
|
|
|
|
|
setData2(data.data.slice(dataSplitters[1],dataSplitters[2])) |
|
|
|
|
|
|
|
setData3(data.data.slice(dataSplitters[2],dataSplitters[3])) |
|
|
|
|
|
|
|
setData4(data.data.slice(dataSplitters[3],data.data.length)) |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
.then((data)=>{ |
|
|
|
|
|
|
|
axios.post(BACKEND_URL+"/updateItem",{obtained:correctedVal,id:item.id,last_modified:new Date()}); |
|
|
|
|
|
|
|
var newData=[...displayData];newData[i].obtained=correctedVal; |
|
|
|
|
|
|
|
setLastModified(new Date()); |
|
|
|
|
|
|
|
setDisplayData(newData.sort((a,b)=>{ |
|
|
|
|
|
|
|
if (b.required===b.obtained&&a.required!==a.obtained) {return -1} |
|
|
|
|
|
|
|
if (b.required===b.obtained&&a.required===a.obtained) {return a.id-b.id} |
|
|
|
|
|
|
|
if (b.required!==b.obtained&&a.required!==a.obtained) {return a.id-b.id} |
|
|
|
|
|
|
|
})); |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
.catch((err)=>{ |
|
|
|
|
|
|
|
console.log(err.message) |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
}} type="number" min="0" max={item.required}/> / {item.required} {item.required!==item.obtained&&<FaCheckCircle style={{color:"green"}} onClick={(f)=>{ |
|
|
|
|
|
|
|
var correctedVal=item.required; if (f.currentTarget.value>=item.required) {f.currentTarget.blur()} axios.post(BACKEND_URL+"/updateItem",{obtained:correctedVal,id:item.id,last_modified:new Date()}); var newData=[...displayData];newData[i].obtained=correctedVal;p.setLastModified(new Date());setDisplayData(newData.sort((a,b)=>{ |
|
|
|
var correctedVal=item.required; if (f.currentTarget.value>=item.required) {f.currentTarget.blur()} axios.post(BACKEND_URL+"/updateItem",{obtained:correctedVal,id:item.id,last_modified:new Date()}); var newData=[...displayData];newData[i].obtained=correctedVal;p.setLastModified(new Date());setDisplayData(newData.sort((a,b)=>{ |
|
|
|
if (b.required===b.obtained&&a.required!==a.obtained) {return -1} |
|
|
|
if (b.required===b.obtained&&a.required!==a.obtained) {return -1} |
|
|
|
if (b.required===b.obtained&&a.required===a.obtained) {return a.id-b.id} |
|
|
|
if (b.required===b.obtained&&a.required===a.obtained) {return a.id-b.id} |
|
|
|