That didn’t seem to work either. Let me take a step back and explain what I’m trying to do. I am making a set of cards (a repeater). The cards can be edited, deleted, and their order can be changed. Because the repeater does not work with user inputs I have to use the repeater as just a way of selecting which collection entry I would like to interact with. I was able to get the arrows (order changers) to work just fine. Whats even more frustrating is that I used the exact method we’re having problems with now. You can see the code and cards bellow:
$w(“#repeater8”).onItemReady( ($w, itemData) => {
$w(“#moveright”).onClick((event) => {
let currentnumber = $w(“#dataset2”).getCurrentItem().order;
let nextnumber = (+ currentnumber) + 1;
wixData.query(“Featured”)
.eq(“order”, nextnumber)
.find()
.then( (results) => {
let currentcardupdate = {
“_id”: $w(“#dataset2”).getCurrentItem()._id,
“title”: $w(“#dataset2”).getCurrentItem().title,
“link”: $w(“#dataset2”).getCurrentItem().link,
“image”: $w(“#dataset2”).getCurrentItem().image,
“order”: nextnumber,
};
let nextcardupdate = {
“_id”: results.items[0]._id,
“title”: results.items[0].title,
“link”: results.items[0].link,
“image”: results.items[0].image,
“order”: (+ currentnumber),
};
wixData.update(“Featured”, currentcardupdate);
wixData.update(“Featured”, nextcardupdate);
resort();
});
});
$w(“#moveleft”).onClick((event) => {
let currentnumber = $w(“#dataset2”).getCurrentItem().order;
let prevtnumber = (+ currentnumber) - 1;
wixData.query(“Featured”)
.eq(“order”, prevtnumber)
.find()
.then( (results) => {
let currentcardupdate = {
“_id”: $w(“#dataset2”).getCurrentItem()._id,
“title”: $w(“#dataset2”).getCurrentItem().title,
“link”: $w(“#dataset2”).getCurrentItem().link,
“image”: $w(“#dataset2”).getCurrentItem().image,
“order”: prevtnumber,
};
let nextcardupdate = {
“_id”: results.items[0]._id,
“title”: results.items[0].title,
“link”: results.items[0].link,
“image”: results.items[0].image,
“order”: (+ currentnumber),
};
wixData.update(“Featured”, currentcardupdate);
wixData.update(“Featured”, nextcardupdate);
resort();
});
});
//--------pace where I add the code for the Edit and Delete buttons
});
function resort () {
$w(“#dataset2”).refresh();
if (debounceTimer) {
clearTimeout(debounceTimer);
debounceTimer = undefined;
}
debounceTimer = setTimeout(() => {
$w(“#dataset2”).setSort( wixData.sort()
.ascending(“order”)
);
}, 10);
}
However, when I added the code for the Edit and Delete button I started having problems. Now when I query a collection the return array is just 0. It’s exactly the same method as far as I can tell, but with different result. Here is the code for both:
$w(“#delete”).onClick((event) => {///////////////////////////////DELET BUTTON
let orderstring = $w(“#dataset2”).getCurrentItem().order;
let ordernumb = (+ orderstring);
//let currentitem = $w(“#dataset2”).getCurrentItem();
//wixData.remove(“Projects”, currentitem._id);
$w(“#dataset2”).remove();
console.log(“deleting ordernumb: " + ordernumb);
orederRecalibration (ordernumb);
});
$w(”#Edit").onClick((event) => { ///////////////////////////EDIT BUTTON
$w(“#columnStrip20”).expand();
let currentitem = $w(“#dataset2”).getCurrentItem();
console.log(currentitem);
wixData.query(‘Projects’)
.eq(“_id”, currentitem._id)
.find()
.then(res => {
console.log(res.items);
$w(“#input2”).value = res.items[0].title;
$w(“#dropdown2”).value = res.items[0].link;
$w(“#uploadButton2”).value = res.items[0].image;
let editorder = res.items[0].order;
});
Where the orederRecalibration function is as follows:
function orederRecalibration (oldnumb) {
//let newnumb = (+ oldnumb) + 1;
//console.log(“moving ordernumb : " + newnumb + “to ordernumb: " + oldnumb);
//let currentnumber = $w(”#dataset2”).getCurrentItem().order;
let nextnumber = (+ oldnumb) + 1;
wixData.query(“Featured”)
.eq(“order”, nextnumber)
.find()
.then( (results) => {
if (results.length > 0) {
let update = {
“_id”: results.item[0]._id,
“title”: results.item[0].title,
“link”: results.item[0].link,
“image”: results.item[0].image,
“order”: oldnumb,
};
wixData.update(“Featured”, update);
orederRecalibration(nextnumber);
}
resort ();
});
}
I have no idea what I’m doing wrong at this point haha. Again, thanks for all the help!