diff --git a/js/GetData.js b/js/GetData.js index f227340..a92f424 100644 --- a/js/GetData.js +++ b/js/GetData.js @@ -14,444 +14,411 @@ * along with this program. If not, see . */ -/* utFoods DataBase Tools */ +/* KalTracker DataBase Tools */ function connectDB() { return LocalStorage.openDatabaseSync("kaltracker_db", "0.2", "keepsYourData", 2000000); } -// assign to homepage property the amount of calories ingested -function getTotalCalConsumed(){ - var total_cal_consumed = 'SELECT SUM(i.cal) AS totalcal \ - FROM ingestions i \ - WHERE i.date == "which_date"'.replace("which_date", logical_fields.application.date_utils.long_date); - var db = connectDB(); - var rsToQML - db.transaction(function (tx) { - var results = tx.executeSql(total_cal_consumed) - for (var i = 0; i < results.rows.length; i++) { - rsToQML = results.rows.item(i).totalcal - if(rsToQML == 0 || rsToQML == null){ - logical_fields.user_profile.plan.cal_consumed = 0 - } else{ - logical_fields.user_profile.plan.cal_consumed = rsToQML - } +var db = connectDB(); + +function getTotalCalConsumed() { + var total_cal_consumed = `SELECT SUM(i.cal) AS totalcal + FROM ingestions i + WHERE i.date == ?`; + db.transaction(function(tx) { + var results = tx.executeSql(total_cal_consumed, [logical_fields.application.date_utils.long_date]); + + if (results.rows.length > 0) { + var rsToQML = results.rows.item(0).totalcal; + logical_fields.user_profile.plan.cal_consumed = rsToQML || 0; + } else { + logical_fields.user_profile.plan.cal_consumed = 0; } - }) + }); } -//assign to homepage property the calories left -function getTotalCalRemaining(){ - var total_cal_remaining = 'WITH dif AS (SELECT (user.rec_cal - SUM(i.cal)) AS remaining \ - FROM ingestions i \ - JOIN user ON i.id_user = user.id \ - WHERE i.date == "which_date") \ - SELECT remaining FROM dif'.replace("which_date",logical_fields.application.date_utils.long_date); - var db = connectDB(); - db.transaction(function (tx) { - var results = tx.executeSql(total_cal_remaining) - for (var i = 0; i < results.rows.length; i++) { - var rsToQML = results.rows.item(i).remaining - if (rsToQML === null || rsToQML === 0 ){ - logical_fields.user_profile.plan.cal_remaining = app_settings.rec_cal + +function getTotalCalRemaining() { + var total_cal_remaining = `WITH dif AS ( + SELECT (u.rec_cal - SUM(i.cal)) AS remaining + FROM ingestions i, user u + WHERE i.id_user = u.id AND + i.date = ? + ) + SELECT remaining FROM dif`; + + db.transaction(function(tx) { + var results = tx.executeSql(total_cal_remaining, [logical_fields.application.date_utils.long_date]); + + if (results.rows.length > 0) { + var rsToQML = results.rows.item(0).remaining; + logical_fields.user_profile.plan.cal_remaining = rsToQML || app_settings.rec_cal; } else { - logical_fields.user_profile.plan.cal_remaining = rsToQML + logical_fields.user_profile.plan.cal_remaining = app_settings.rec_cal; } - } - }) + }); } -//assign to homepage property the amount foods ingested -function getTotalFoodsConsumed(){ - var total_foods_consumed = 'SELECT COUNT(i.id) AS totalFoods \ - FROM ingestions i \ - WHERE i.date == "which_date"'.replace("which_date", logical_fields.application.date_utils.long_date); - var db = connectDB(); - var rsToQML - db.transaction(function (tx) { - var results = tx.executeSql(total_foods_consumed) - for (var i = 0; i < results.rows.length; i++) { - rsToQML = results.rows.item(i).totalFoods - if(rsToQML == 0 || rsToQML == null){ - logical_fields.metrics.total_foods_consumed = 0 - } else{ - logical_fields.metrics.total_foods_consumed = rsToQML - } + +function getTotalFoodsConsumed() { + var total_foods_consumed = `SELECT COUNT(i.id) AS totalFoods + FROM ingestions i + WHERE i.date = ?`; + + db.transaction(function(tx) { + var results = tx.executeSql(total_foods_consumed, [logical_fields.application.date_utils.long_date]); + + if (results.rows.length > 0) { + var rsToQML = results.rows.item(0).totalFoods; + logical_fields.metrics.total_foods_consumed = rsToQML || 0; + } else { + logical_fields.metrics.total_foods_consumed = 0; } - }) + }); } -//assign to homepage property the amount calories ingested in breakfast -function getBreakfastCalories(){ - var total_cal_consumed_breakfast = 'SELECT SUM(i.cal) AS totalcal \ - FROM ingestions i \ - WHERE i.date == "which_date" AND i.meal = 0'.replace("which_date", logical_fields.application.date_utils.long_date); - var db = connectDB(); - var rsToQML - db.transaction(function (tx) { - var results = tx.executeSql(total_cal_consumed_breakfast) - for (var i = 0; i < results.rows.length; i++) { - rsToQML = results.rows.item(i).totalcal - if(rsToQML == 0 || rsToQML == null){ - logical_fields.metrics.total_cal_breakfast = 0 - } else{ - logical_fields.metrics.total_cal_breakfast = rsToQML - } - } - }) - } +function getBreakfastCalories() { + var total_cal_consumed_breakfast = `SELECT SUM(i.cal) AS totalcal + FROM ingestions i + WHERE i.date = ? AND i.meal = 0`; - function getYesterdayBreakfast(){ - filtered_meal_model.clear() - var yesterday_breakfast = 'SELECT id AS id, name AS name, nutriscore AS nutriscore, cal AS cal, fat AS fat, carbo AS carbo, protein AS protein \ - FROM ingestions i \ - WHERE i.date == "which_date" AND i.meal = 0'.replace("which_date", bottom_edge.yesterday_formated_date); - var db = connectDB(); - db.transaction(function (tx) { - var results = tx.executeSql(yesterday_breakfast) - for (var i = 0; i < results.rows.length; i++) { - filtered_meal_model.append({ - "id" : results.rows.item(i).id, - "name" : results.rows.item(i).name, - "nutriscore" : results.rows.item(i).nutriscore, - "cal" : results.rows.item(i).cal, - "fat" : results.rows.item(i).fat, - "carbo" : results.rows.item(i).carbo, - "protein" : results.rows.item(i).protein - }) - } - }) - } + db.transaction(function(tx) { + var results = tx.executeSql(total_cal_consumed_breakfast, [logical_fields.application.date_utils.long_date]); - //assign to homepage property the amount calories ingested in lunch - function getLunchCalories(){ - var total_cal_consumed_lunch = 'SELECT SUM(i.cal) AS totalcal \ - FROM ingestions i \ - WHERE i.date == "which_date" AND i.meal = 1'.replace("which_date", logical_fields.application.date_utils.long_date); - var db = connectDB(); - var rsToQML - db.transaction(function (tx) { - var results = tx.executeSql(total_cal_consumed_lunch) - for (var i = 0; i < results.rows.length; i++) { - rsToQML = results.rows.item(i).totalcal - if(rsToQML == 0 || rsToQML == null){ - logical_fields.metrics.total_cal_lunch = 0 - } else{ - logical_fields.metrics.total_cal_lunch = rsToQML + if (results.rows.length > 0) { + var rsToQML = results.rows.item(0).totalcal; + logical_fields.metrics.total_cal_breakfast = rsToQML || 0; + } else { + logical_fields.metrics.total_cal_breakfast = 0; } - } - }) - } + }); +} - function getYesterdayLunch(){ - filtered_meal_model.clear() - var yesterday_lunch = 'SELECT id AS id, name AS name, nutriscore AS nutriscore, cal AS cal, fat AS fat, carbo AS carbo, protein AS protein \ - FROM ingestions i \ - WHERE i.date == "which_date" AND i.meal = 1'.replace("which_date", bottom_edge.yesterday_formated_date); - var db = connectDB(); - db.transaction(function (tx) { - var results = tx.executeSql(yesterday_lunch) - for (var i = 0; i < results.rows.length; i++) { - filtered_meal_model.append({ - "id" : results.rows.item(i).id, - "name" : results.rows.item(i).name, - "nutriscore" : results.rows.item(i).nutriscore, - "cal" : results.rows.item(i).cal, - "fat" : results.rows.item(i).fat, - "carbo" : results.rows.item(i).carbo, - "protein" : results.rows.item(i).protein - }) - } - }) - } - //assign to homepage property the amount calories ingested in dinner - function getDinnerCalories(){ - var total_cal_consumed_dinner = 'SELECT SUM(i.cal) AS totalcal \ - FROM ingestions i \ - WHERE i.date == "which_date" AND i.meal = 2'.replace("which_date", logical_fields.application.date_utils.long_date); - var db = connectDB(); - var rsToQML - db.transaction(function (tx) { - var results = tx.executeSql(total_cal_consumed_dinner) - for (var i = 0; i < results.rows.length; i++) { - rsToQML = results.rows.item(i).totalcal - if(rsToQML == 0 || rsToQML == null){ - logical_fields.metrics.total_cal_dinner = 0 - } else{ - logical_fields.metrics.total_cal_dinner = rsToQML - } - } - }) - } +function getYesterdayBreakfast() { + filtered_meal_model.clear(); + var yesterday_breakfast = `SELECT id, name, nutriscore, cal, fat, carbo, protein + FROM ingestions + WHERE date = ? AND meal = 0`; + + db.transaction(function(tx) { + var results = tx.executeSql(yesterday_breakfast, [bottom_edge.yesterday_formated_date]); - function getYesterdayDinner(){ - filtered_meal_model.clear() - var yesterday_dinner = 'SELECT id AS id, name AS name, nutriscore AS nutriscore, cal AS cal, fat AS fat, carbo AS carbo, protein AS protein \ - FROM ingestions i \ - WHERE i.date == "which_date" AND i.meal = 2'.replace("which_date", bottom_edge.yesterday_formated_date); - var db = connectDB(); - db.transaction(function (tx) { - var results = tx.executeSql(yesterday_dinner) for (var i = 0; i < results.rows.length; i++) { - filtered_meal_model.append({ - "id" : results.rows.item(i).id, - "name" : results.rows.item(i).name, - "nutriscore" : results.rows.item(i).nutriscore, - "cal" : results.rows.item(i).cal, - "fat" : results.rows.item(i).fat, - "carbo" : results.rows.item(i).carbo, - "protein" : results.rows.item(i).protein - }) + var item = results.rows.item(i); + filtered_meal_model.append({ + "id": item.id, + "name": item.name, + "nutriscore": item.nutriscore, + "cal": item.cal, + "fat": item.fat, + "carbo": item.carbo, + "protein": item.protein + }); } - }) - } + }); +} + - //assign to homepage property the amount calories ingested in snacks - function getSnacksCalories(){ - var total_cal_consumed_snacks = 'SELECT SUM(i.cal) AS totalcal \ - FROM ingestions i \ - WHERE i.date == "which_date" AND i.meal = 3'.replace("which_date", logical_fields.application.date_utils.long_date); - var db = connectDB(); - var rsToQML - db.transaction(function (tx) { - var results = tx.executeSql(total_cal_consumed_snacks) +function getLunchCalories() { + var total_cal_consumed_lunch = `SELECT SUM(i.cal) AS totalcal + FROM ingestions i + WHERE i.date = ? AND i.meal = 1`; + + var tx = db.transaction(function(tx) { + var results = tx.executeSql(total_cal_consumed_lunch, [logical_fields.application.date_utils.long_date]); + var totalCalLunch = 0; for (var i = 0; i < results.rows.length; i++) { - rsToQML = results.rows.item(i).totalcal - if(rsToQML == 0 || rsToQML == null){ - logical_fields.metrics.total_cal_snacks = 0 - } else{ - logical_fields.metrics.total_cal_snacks = rsToQML - } + totalCalLunch = results.rows.item(i).totalcal; } - }) + logical_fields.metrics.total_cal_lunch = totalCalLunch || 0; + }); } + - function getYesterdaySnacks(){ + function getYesterdayLunch() { filtered_meal_model.clear() - var yesterday_snacks = 'SELECT id AS id, name AS name, nutriscore AS nutriscore, cal AS cal, fat AS fat, carbo AS carbo, protein AS protein \ - FROM ingestions i \ - WHERE i.date == "which_date" AND i.meal = 3'.replace("which_date", bottom_edge.yesterday_formated_date); - var db = connectDB(); + var yesterday_lunch = `SELECT id, name, nutriscore, cal, fat, carbo, protein + FROM ingestions + WHERE date = ? AND meal = 1`; + db.transaction(function (tx) { - var results = tx.executeSql(yesterday_snacks) + var results = tx.executeSql(yesterday_lunch, [bottom_edge.yesterday_formated_date]); for (var i = 0; i < results.rows.length; i++) { + var item = results.rows.item(i); filtered_meal_model.append({ - "id" : results.rows.item(i).id, - "name" : results.rows.item(i).name, - "nutriscore" : results.rows.item(i).nutriscore, - "cal" : results.rows.item(i).cal, - "fat" : results.rows.item(i).fat, - "carbo" : results.rows.item(i).carbo, - "protein" : results.rows.item(i).protein - }) + "id" : item.id, + "name" : item.name, + "nutriscore" : item.nutriscore, + "cal" : item.cal, + "fat" : item.fat, + "carbo" : item.carbo, + "protein" : item.protein + }); } - }) + }); + } + + + +function getDinnerCalories() { + var total_cal_consumed_dinner = `SELECT SUM(i.cal) AS totalcal + FROM ingestions i + WHERE i.date = ? AND i.meal = 2`; + + var tx = db.transaction(function(tx) { + var results = tx.executeSql(total_cal_consumed_dinner, [logical_fields.application.date_utils.long_date]); + var totalCalDinner = 0; + for (var i = 0; i < results.rows.length; i++) { + totalCalDinner = results.rows.item(i).totalcal; } + logical_fields.metrics.total_cal_dinner = totalCalDinner || 0; + }); +} + - //get cups - function getCups(){ - var water_cups = 'SELECT COUNT(cups) AS cups \ - FROM water_tracker \ - WHERE date == "which_date"'.replace("which_date", logical_fields.application.date_utils.long_date); - var db = connectDB(); - var rsToQML - db.transaction(function (tx) { - var results = tx.executeSql(water_cups) - for (var i = 0; i < results.rows.length; i++) { - rsToQML = results.rows.item(i).cups - if(rsToQML == 0 || rsToQML == null ){ - logical_fields.metrics.total_water_cups = 0 - } else{ - logical_fields.metrics.total_water_cups = rsToQML - } - - } -}) +function getYesterdayDinner() { + filtered_meal_model.clear(); + + var yesterday_dinner = `SELECT id, name, nutriscore, cal, fat, carbo, protein + FROM ingestions + WHERE date = ? AND meal = 2`; + + db.transaction(function (tx) { + var results = tx.executeSql(yesterday_dinner, [bottom_edge.yesterday_formated_date]); + for (var i = 0; i < results.rows.length; i++) { + var item = results.rows.item(i); + filtered_meal_model.append({ + "id": item.id, + "name": item.name, + "nutriscore": item.nutriscore, + "cal": item.cal, + "fat": item.fat, + "carbo": item.carbo, + "protein": item.protein + }); + } + }); } - var today_ingestions = 'SELECT i.id AS id, \ - i.date AS date, \ - i.name AS name, \ - i.cal AS cal \ - FROM ingestions i \ - WHERE i.date == date("now")'; - - function getTodayIngestions(){ - var db = connectDB(); - db.transaction(function (tx) { - var results = tx.executeSql(today_ingestions) - for (var i = 0; i < results.rows.length; i++) { - (function(){ - var j = i; - all_today_ingestions.append({"id": results.rows.item(j).id,"cal": results.rows.item(j).cal, "name": results.rows.item(j).name, "date": results.rows.item(j).date}) - })() - } - }) - } -function getCarboConsumed(){ - var total_carbo_consumed = 'SELECT SUM(carbo) as carbo \ - FROM ingestions i \ - JOIN user ON i.id_user = user.id \ - WHERE i.date == "which_date"'.replace("which_date",logical_fields.application.date_utils.long_date); - var db = connectDB(); - db.transaction(function (tx) { - var results = tx.executeSql(total_carbo_consumed) - for (var i = 0; i < results.rows.length; i++) { - var rsToQML = results.rows.item(i).carbo - if (rsToQML === null || rsToQML == 0.0){ - logical_fields.metrics.total_carbo_consumed = 0 - } else { - logical_fields.metrics.total_carbo_consumed = rsToQML - } - } - }) - } - function getFatConsumed(){ - var total_fat_consumed = 'SELECT SUM(fat) as fat \ - FROM ingestions i \ - JOIN user ON i.id_user = user.id \ - WHERE i.date == "which_date"'.replace("which_date",logical_fields.application.date_utils.long_date); - var db = connectDB(); - db.transaction(function (tx) { - var results = tx.executeSql(total_fat_consumed) - for (var i = 0; i < results.rows.length; i++) { - var rsToQML = results.rows.item(i).fat - if (rsToQML === null || rsToQML == 0.0){ - logical_fields.metrics.total_fat_consumed = 0 - } else { - logical_fields.metrics.total_fat_consumed = rsToQML - } - } - }) - } +function getSnacksCalories() { + var total_cal_consumed_snacks = `SELECT SUM(i.cal) AS totalcal + FROM ingestions i + WHERE i.date = ? AND i.meal = 3`; - function getProteinConsumed(){ - var total_protein_consumed = 'SELECT SUM(protein) as protein \ - FROM ingestions i \ - JOIN user ON i.id_user = user.id \ - WHERE i.date == "which_date"'.replace("which_date",logical_fields.application.date_utils.long_date); - var db = connectDB(); - db.transaction(function (tx) { - var results = tx.executeSql(total_protein_consumed) - for (var i = 0; i < results.rows.length; i++) { - var rsToQML = results.rows.item(i).protein - if (rsToQML === null || rsToQML == 0.0){ - logical_fields.metrics.total_protein_consumed = 0 - } else { - logical_fields.metrics.total_protein_consumed = rsToQML - } - } - }) - } + var tx = db.transaction(function(tx) { + var results = tx.executeSql(total_cal_consumed_snacks, [logical_fields.application.date_utils.long_date]); + var totalCalSnacks = 0; + for (var i = 0; i < results.rows.length; i++) { + totalCalSnacks = results.rows.item(i).totalcal; + } + logical_fields.metrics.total_cal_snacks = totalCalSnacks || 0; + }); +} + - var average_calories_month = 'SELECT strftime("%m", i.date) AS month,\ -AVG(i.cal) AS average \ -FROM ingestions i \ -WHERE strftime("%Y", i.date) == strftime("%Y", date()) \ -GROUP BY month \ -ORDER BY month DESC' +function getYesterdaySnacks() { + filtered_meal_model.clear(); + var yesterday_snacks = `SELECT id, name, nutriscore, cal, fat, carbo, protein + FROM ingestions + WHERE date = ? AND meal = 3`; -function getAverageCalories(){ - var db = connectDB(); db.transaction(function (tx) { - var results = tx.executeSql(average_calories_month) - for (var i = 0; i < results.rows.length; i++) { - (function(){ - var j = i; - avg_month_calories.append({"month": results.rows.item(j).month, "average": results.rows.item(j).average}) - })() + var results = tx.executeSql(yesterday_snacks, [bottom_edge.yesterday_formated_date]); + for (var i = 0; i < results.rows.length; i++) { + var item = results.rows.item(i); + filtered_meal_model.append({ + "id": item.id, + "name": item.name, + "nutriscore": item.nutriscore, + "cal": item.cal, + "fat": item.fat, + "carbo": item.carbo, + "protein": item.protein + }); } - }) + }); } -function getAllFoodsMonth(month_requested){ + +function getCups() { + var water_cups = `SELECT COUNT(cups) AS cups + FROM water_tracker + WHERE date = ?`; - var month_ingestions = 'SELECT i.date AS date,\ - i.name AS name,\ - i.cal AS cal \ - FROM ingestions i \ - WHERE strftime("%m", date) == "which_month"'.replace("which_month", month_requested) + var tx = db.transaction(function(tx) { + var results = tx.executeSql(water_cups, [logical_fields.application.date_utils.long_date]); + var totalWaterCups = 0; + for (var i = 0; i < results.rows.length; i++) { + totalWaterCups = results.rows.item(i).cups; + } + logical_fields.metrics.total_water_cups = totalWaterCups || 0; + }); +} + + +function getTodayIngestions() { + var today_ingestions = `SELECT i.id AS id, i.date AS date, i.name AS name, i.cal AS cal + FROM ingestions i + WHERE i.date = ?`; + + db.transaction(function (tx) { + var results = tx.executeSql(today_ingestions, [date("now")]); + for (var i = 0; i < results.rows.length; i++) { + var item = results.rows.item(i); + all_today_ingestions.append({ + "id": item.id, + "cal": item.cal, + "name": item.name, + "date": item.date + }); + } + }); +} + + +function getCarboConsumed() { + var total_carbo_consumed = `SELECT SUM(i.carbo) as carbo + FROM ingestions i, user u + WHERE i.id_user = u.id AND + i.date = ?`; - var db = connectDB(); - db.transaction(function (tx) { - var results = tx.executeSql(month_ingestions) - for (var i = 0; i < results.rows.length; i++) { - (function(){ - var j = i; - all_month_ingestions.append({"date": results.rows.item(j).date,"name": results.rows.item(j).name, "cal": results.rows.item(j).cal}) - })() - } - }) - } + var tx = db.transaction(function(tx) { + var results = tx.executeSql(total_carbo_consumed, [logical_fields.application.date_utils.long_date]); + var totalCarboConsumed = results.rows.item(0).carbo || 0; + logical_fields.metrics.total_carbo_consumed = totalCarboConsumed; + }); +} - function getNotes(){ - var all_notes = 'SELECT id AS id,note AS note, date AS date \ - FROM notes \ - ORDER BY id DESC' - - var db = connectDB(); - var rsToQML - - db.transaction(function (tx) { - var results = tx.executeSql(all_notes) - for (var i = 0; i < results.rows.length; i++) { - notes_list_model.append({ - "id": results.rows.item(i).id, - "note": results.rows.item(i).note, - "date": results.rows.item(i).date}) - } - }) - //return rsToQML - } +function getFatConsumed() { + var total_fat_consumed = `SELECT SUM(i.fat) as fat + FROM ingestions i, user u + WHERE i.id_user = u.id AND + i.date = ?`; + + var tx = db.transaction(function(tx) { + var results = tx.executeSql(total_fat_consumed, [logical_fields.application.date_utils.long_date]); + var totalFatConsumed = results.rows.item(0).fat || 0; + logical_fields.metrics.total_fat_consumed = totalFatConsumed; + }); +} + + +function getProteinConsumed() { + var total_protein_consumed = `SELECT SUM(i.protein) as protein + FROM ingestions i, user u + WHERE i.id_user = u.id AND + i.date = ?`; + + var tx = db.transaction(function(tx) { + var results = tx.executeSql(total_protein_consumed, [logical_fields.application.date_utils.long_date]); + var totalProteinConsumed = results.rows.item(0).protein || 0; + logical_fields.metrics.total_protein_consumed = totalProteinConsumed; + }); +} + + +function getAverageCalories() { + var average_calories_month = `SELECT strftime("%m", i.date) AS month, AVG(i.cal) AS average + FROM ingestions i + WHERE strftime("%Y", i.date) = ? + GROUP BY month + ORDER BY month DESC`; + + var tx = db.transaction(function(tx) { + var currentYear = new Date().getFullYear().toString(); + var results = tx.executeSql(average_calories_month, [currentYear]); + for (var i = 0; i < results.rows.length; i++) { + var item = results.rows.item(i); + avg_month_calories.append({ + "month": item.month, + "average": item.average + }); + } + }); +} + + +function getAllFoodsMonth(month_requested) { + var month_ingestions = `SELECT i.date AS date, i.name AS name, i.cal AS cal + FROM ingestions i + WHERE strftime("%m", date) = ?`; + + var tx = db.transaction(function(tx) { + var results = tx.executeSql(month_ingestions, [month_requested]); + for (var i = 0; i < results.rows.length; i++) { + var item = results.rows.item(i); + all_month_ingestions.append({ + "date": item.date, + "name": item.name, + "cal": item.cal + }); + } + }); +} + + +function getNotes() { + var all_notes = 'SELECT id, note, date FROM notes ORDER BY id DESC'; + + db.transaction(function (tx) { + var results = tx.executeSql(all_notes); + for (var i = 0; i < results.rows.length; i++) { + var item = results.rows.item(i); + notes_list_model.append({ + "id": item.id, + "note": item.note, + "date": item.date + }); + } + }); +} + /*Charts*/ /*Axis: for Weight Tracker --start--*/ -function getYWeightTracker(date_from, date_to){ - var get_y_weight_table = 'SELECT weight FROM weight_tracker wt \ - WHERE date(wt.date) <= date("which_date_to") AND date(wt.date) >= date("which_date_from") \ - ORDER BY wt.date ASC'.replace("which_date_to", date_to).replace("which_date_from", date_from) - var db = connectDB(); - var rs = ""; - db.transaction(function(tx) { - rs = tx.executeSql(get_y_weight_table); - }); + function getYWeightTracker(date_from, date_to) { + var get_y_weight_table = `SELECT weight FROM weight_tracker wt + WHERE date(wt.date) <= date(?) AND date(wt.date) >= date(?) + ORDER BY wt.date ASC`; - var weight_values = []; - for(var i =0;i < rs.rows.length;i++) { - weight_values.push(rs.rows.item(i).weight); + var tx = db.transaction(function(tx) { + var rs = tx.executeSql(get_y_weight_table, [date_to, date_from]); + return Array.from(rs.rows).map(function(row) { + return row.weight; + }); + }); + + return tx; } - return weight_values; -} /*X axis: measurement dates*/ -function getXWeightTracker(date_from, date_to){ - var get_x_weight_table = 'SELECT date FROM weight_tracker wt \ - WHERE date(wt.date) <= date("which_date_to") AND date(wt.date) >= date("which_date_from") \ - ORDER BY wt.date ASC'.replace("which_date_to", date_to).replace("which_date_from", date_from) - var db = connectDB(); + function getXWeightTracker(date_from, date_to) { + var get_x_weight_table = `SELECT date + FROM weight_tracker wt + WHERE date(wt.date) <= date(?) AND date(wt.date) >= date(?) + ORDER BY wt.date ASC`; - var rs = ""; - db.transaction(function(tx) { - rs = tx.executeSql(get_x_weight_table); - }); - - /* build the array */ - var date_registered = []; - for(var i =0;i < rs.rows.length;i++) { - date_registered.push(rs.rows.item(i).date); + var tx = db.transaction(function(tx) { + var rs = tx.executeSql(get_x_weight_table, [date_to, date_from]); + return Array.from(rs.rows).map(function(row) { + return row.date; + }); + }); + + return tx; } -return date_registered; -} + /* Axis: for Weight Tracker --end--*/ //populate chartLine @@ -474,24 +441,23 @@ return ChartLineData; /*Axis: for Weight Tracker --start--*/ - function getYNutriscore(){ - var get_y_nutriscores_values = 'SELECT COUNT(nutriscore) AS nutriscore \ - FROM ingestions \ - GROUP BY nutriscore \ - ORDER BY 1 ASC' - var db = connectDB(); - var rs = ""; - db.transaction(function(tx) { - rs = tx.executeSql(get_y_nutriscores_values); + function getYNutriscore() { + var get_y_nutriscores_values = `SELECT COUNT(nutriscore) AS nutriscore + FROM ingestions + GROUP BY nutriscore + ORDER BY 1 ASC`; + + var tx = db.transaction(function(tx) { + var rs = tx.executeSql(get_y_nutriscores_values); + return Array.from(rs.rows).map(function(row) { + return row.nutriscore; + }); }); - - var nutriscore_count = []; - for(var i =0;i < rs.rows.length;i++) { - nutriscore_count.push(rs.rows.item(i).nutriscore); - } - return nutriscore_count; + + return tx; } + /* Axis: for Weight Tracker --end--*/ function getChartBarData(){ diff --git a/po/kaltracker.ivoxavier.pot b/po/kaltracker.ivoxavier.pot index c76ddee..92b7f88 100644 --- a/po/kaltracker.ivoxavier.pot +++ b/po/kaltracker.ivoxavier.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: kaltracker.ivoxavier\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-07-10 09:28+0000\n" +"POT-Creation-Date: 2023-07-10 15:16+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -441,11 +441,11 @@ msgstr "" msgid "Product Macros" msgstr "" -#: ../qml/QuickAdditionPage.qml:65 ../qml/SetFoodPage.qml:87 +#: ../qml/QuickAdditionPage.qml:52 ../qml/SetFoodPage.qml:87 msgid "Stored!" msgstr "" -#: ../qml/QuickAdditionPage.qml:70 ../qml/SetFoodPage.qml:92 +#: ../qml/QuickAdditionPage.qml:57 ../qml/SetFoodPage.qml:92 msgid "Something went wrong. Please, restart the app and try again." msgstr "" diff --git a/qml/BodyMeasuresPage.qml b/qml/BodyMeasuresPage.qml index 07575b1..60d6fc7 100644 --- a/qml/BodyMeasuresPage.qml +++ b/qml/BodyMeasuresPage.qml @@ -52,8 +52,8 @@ Page{ property int user_weight : UserTable.getWeight() property string user_sex_at_birth : UserTable.getSexAtBirth() property double user_bmi : BMI.getBmi(user_height, user_weight) - property int user_ap_hi : UserTable.getApHi() - property int user_ap_lo : UserTable.getApLo() + property var user_ap_hi : UserTable.getApHi() + property var user_ap_lo : UserTable.getApLo() Component{ id: info_bmi diff --git a/qml/QuickAdditionPage.qml b/qml/QuickAdditionPage.qml index 077de6a..e3c8a20 100644 --- a/qml/QuickAdditionPage.qml +++ b/qml/QuickAdditionPage.qml @@ -45,19 +45,6 @@ Page{ } BackgroundStyle{} - - //receives meal category from HomePage.slotAddMeal - property int meal_quick_addition_page - - //food detail - property string product_name_quick_addition_page - property string nutriscore_quick_addition_page : "a" - - //macros for calculating nutriscore - property int cal_quick_addition_page - property double carbo_quick_addition_page : 0.0 - property double fat_quick_addition_page : 0.0 - property double protein_quick_addition_page : 0.0 Component{ diff --git a/qml/components/RowAbstractConfirmButton.qml b/qml/components/RowAbstractConfirmButton.qml index 2bc8fb4..cb315aa 100644 --- a/qml/components/RowAbstractConfirmButton.qml +++ b/qml/components/RowAbstractConfirmButton.qml @@ -38,32 +38,31 @@ Row{ anchors.fill: parent onClicked: { try{ - if(UserFoodsListTable.isUnique(product_name_quick_addition_page) >= 1){ + if(UserFoodsListTable.isUnique(logical_fields.ingestion.product_name) >= 1){ /* REGISTER INGESTION */ //item already on DB - IngestionsTable.saveIngestion(product_name_quick_addition_page, - nutriscore_quick_addition_page, cal_quick_addition_page, - fat_quick_addition_page, carbo_quick_addition_page, - protein_quick_addition_page, meal_quick_addition_page) - root.initDB() - PopupUtils.open(sucess_dialog) + IngestionsTable.saveIngestion(logical_fields.ingestion.product_name, + logical_fields.ingestion.nutriscore, logical_fields.ingestion.cal, + logical_fields.ingestion.fat, logical_fields.ingestion.carbo, + logical_fields.ingestion.protein, logical_fields.ingestion.meal_type) + } else{ /* CREATE NEW ENTRY */ //new item - UserFoodsListTable.saveIngestion(product_name_quick_addition_page, - nutriscore_quick_addition_page, cal_quick_addition_page, - fat_quick_addition_page, carbo_quick_addition_page, - protein_quick_addition_page) - root.initDB() + UserFoodsListTable.saveIngestion(logical_fields.ingestion.product_name, + logical_fields.ingestion.nutriscore, logical_fields.ingestion.cal, + logical_fields.ingestion.fat, logical_fields.ingestion.carbo, + logical_fields.ingestion.protein) /* REGISTER INGESTION */ - IngestionsTable.saveIngestion(product_name_quick_addition_page, - nutriscore_quick_addition_page, cal_quick_addition_page, - fat_quick_addition_page, carbo_quick_addition_page, - protein_quick_addition_page, meal_quick_addition_page) - root.initDB() - PopupUtils.open(sucess_dialog) + IngestionsTable.saveIngestion(logical_fields.ingestion.product_name, + logical_fields.ingestion.nutriscore, logical_fields.ingestion.cal, + logical_fields.ingestion.fat, logical_fields.ingestion.carbo, + logical_fields.ingestion.protein, logical_fields.ingestion.meal_type) } + + root.initDB() + PopupUtils.open(sucess_dialog) } catch (err){ PopupUtils.open(error_dialog) } diff --git a/qml/components/RowAbstractQuickAdditionButton.qml b/qml/components/RowAbstractQuickAdditionButton.qml index a417f6a..e9c117b 100644 --- a/qml/components/RowAbstractQuickAdditionButton.qml +++ b/qml/components/RowAbstractQuickAdditionButton.qml @@ -35,7 +35,7 @@ Row{ icon_source: "../../assets/apple-fruit-svgrepo-com.svg" MouseArea{ anchors.fill: parent - onClicked: page_stack.push(quick_addition_page,{meal_quick_addition_page : meal_quick_list_foods_page}) + onClicked: page_stack.push(quick_addition_page) } } } \ No newline at end of file diff --git a/qml/logicalFields/LogicalFields.qml b/qml/logicalFields/LogicalFields.qml index 3f81438..9741164 100644 --- a/qml/logicalFields/LogicalFields.qml +++ b/qml/logicalFields/LogicalFields.qml @@ -48,12 +48,12 @@ QtObject{ property QtObject ingestion : QtObject{ property string product_name - property string nutriscore + property string nutriscore : "a" property string nova_groups property int cal - property double carbo - property double fat - property double protein + property double carbo : 0.0 + property double fat : 0.0 + property double protein : 0.0 property int meal_type property int quantity_portions : 1 property double size_portions : 1 diff --git a/qml/plugins/ProductMacros.qml b/qml/plugins/ProductMacros.qml index 79b5779..218ccf6 100644 --- a/qml/plugins/ProductMacros.qml +++ b/qml/plugins/ProductMacros.qml @@ -35,24 +35,24 @@ GridLayout{ columns: 3 //first row - Text {Layout.alignment: Qt.AlignTop | Qt.AlignHCenter; text: fat_quick_addition_page; font.bold: true;color : app_style.label.labelColor } - Text {Layout.alignment: Qt.AlignTop | Qt.AlignHCenter;text: protein_quick_addition_page; font.bold: true;color : app_style.label.labelColor } - Text {Layout.alignment: Qt.AlignTop | Qt.AlignHCenter;text: carbo_quick_addition_page; font.bold: true;color : app_style.label.labelColor } + Text {Layout.alignment: Qt.AlignTop | Qt.AlignHCenter; text: logical_fields.ingestion.fat; font.bold: true;color : app_style.label.labelColor } + Text {Layout.alignment: Qt.AlignTop | Qt.AlignHCenter;text: logical_fields.ingestion.protein; font.bold: true;color : app_style.label.labelColor } + Text {Layout.alignment: Qt.AlignTop | Qt.AlignHCenter;text: logical_fields.ingestion.carbo; font.bold: true;color : app_style.label.labelColor } //second row NutrientSlider{ Layout.alignment: Qt.AlignCenter | Qt.AlignHCenter - onValueChanged: fat_quick_addition_page = Number(value.toFixed(1)) + onValueChanged: logical_fields.ingestion.fat = Number(value.toFixed(1)) } NutrientSlider{ Layout.alignment: Qt.AlignCenter | Qt.AlignHCenter - onValueChanged : protein_quick_addition_page = Number(value.toFixed(1)) + onValueChanged : logical_fields.ingestion.protein = Number(value.toFixed(1)) } NutrientSlider{ Layout.alignment: Qt.AlignCenter | Qt.AlignHCenter - onValueChanged : carbo_quick_addition_page = Number(value.toFixed(1)) + onValueChanged : logical_fields.ingestion.carbo = Number(value.toFixed(1)) } //third row diff --git a/qml/plugins/ProductNameCalories.qml b/qml/plugins/ProductNameCalories.qml index 51c5aa3..c918958 100644 --- a/qml/plugins/ProductNameCalories.qml +++ b/qml/plugins/ProductNameCalories.qml @@ -54,7 +54,7 @@ ColumnLayout{ horizontalAlignment: TextInput.AlignHCenter verticalAlignment: TextInput.AlignVCenter color : app_style.label.labelColor - onTextChanged: product_name_quick_addition_page = text + onTextChanged: logical_fields.ingestion.product_name = text } } @@ -83,7 +83,7 @@ ColumnLayout{ inputMethodHints: Qt.ImhDigitsOnly color : app_style.label.labelColor onEditingFinished:{ - cal_quick_addition_page = text + logical_fields.ingestion.cal = text } } } @@ -107,7 +107,7 @@ ColumnLayout{ i18n.tr("E: Bad Nutritional Quality")] selectedIndex: -1 onSelectedIndexChanged: { - nutriscore_quick_addition_page = selectedIndex == 0 ? + logical_fields.ingestion.nutriscore = selectedIndex == 0 ? "a" : selectedIndex == 1 ? "b" : selectedIndex == 2 ? "c" : selectedIndex == 3 ?