You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

145 lines
3.2 KiB

3 years ago
class shoppingFunc {
processItems(itemArr, itemLabel) {
let tempAr = this.BuildList(this.updateShopIt(itemArr, itemLabel), ",");
return "[" + tempAr + "]"
}
updateShopIt(itemArr, itemLabel) {
let tempAr = itemArr;
let num = 0;
for (let i = 0; i < tempAr.length; i++) {
let amount = tempAr[i].split(" ")[0] + " ";
let radicale = tempAr[i].replace(tempAr[i].split(" ")[0] + " " + tempAr[i].split(" ")[1], "");
switch(itemLabel) {
case !Boolean(itemLabel):
amount = amount + num.toString()
break;
default:
if (radicale.contains(itemLabel)) {
amount = amount + (parseFloat(tempAr[i].split(" ")[1]) + 1).toString()
}
break;
}
tempAr[i] = "\"" + amount + radicale + "\""
}
return tempAr
}
BuildList(arg1, construct) {
let TempS = ""
for (let i = 0; i < arg1.length; i++) {
if (Boolean(arg1[i])) {
if (TempS == "") {
TempS = arg1[i]
} else {
TempS = TempS + construct + arg1[i]
}
}
}
return TempS
}
resetList(args) {
const {
that,
app,
dv,
theme,
listOfIt,
} = args;
// const { update } = app.plugins.plugins["metaedit"].api
const { createButton } = app.plugins.plugins["buttons"]
// var myButton = document.createElement("button");
const updateSct = listOfIt //this.getSctName(theme) //await dv.suggester(["groceries", "health", "household"], ["groceries", "health", "household"]); //"Groceries" //
const btnStr = this.getBtnName(theme, updateSct)
// const itemAr = this.getPoint(dv.page("01.02 Home/@Shopping list.md"), updateSct);
// const updateStr = this.processItems(itemAr, false);
// myButton.innerHTML = "\"" + this.getBtnName(theme, updateSct) + "\""
// myButton.addEventListener ("click", function() {this.updateList(updateSct, updateStr, dv.page("01.02 Home/@Shopping list.md").file.path)});
//return (async () => {
dv.el('div',
createButton({
app,
el: that.container,
args: { name: btnStr, color: 'blue' },
clickOverride: { click: this.getEditApi() /*await update*/, params: [updateSct, this.processItems(this.getPoint(dv.page("01.02 Home/@Shopping list.md"), updateSct), false), dv.page("01.02 Home/@Shopping list.md").file.path]}
}),
)
// })();
// dv.container.appendElement(myButton)
}
async getEditApi() {
const { update } = app.plugins.plugins["metaedit"].api
return await update
}
getBtnName(arg1, arg2) {
let tempresult = "Test";
switch(arg1) {
case 'to0':
tempresult = "Reset " + arg2 + " list"
break;
case 'add':
tempresult = "Add a " + arg2 + " item"
break;
}
return tempresult
}
getPoint(p, datapoint) {
let result = null
switch(datapoint) {
case 'Groceries':
result = p.Groceries
break;
case 'Health':
result = p.Health
break;
case 'Household':
result = p.Household
break;
case 'type':
result = p.DocType
break;
case 'createddate':
result = p.Date
break;
case 'tag':
result = p.Tag
break;
case 'hierarchy':
result = p.Hierarchy
break;
case 'alias':
result = p.Alias
break;
case 'location':
result = p.location
break;
}
return result
}
}