From b2783d11c1f973016e0dce4cc4e2248b48ac3cb1 Mon Sep 17 00:00:00 2001 From: FahrianAfdholi <16521492@mahasiswa.itb.ac.id> Date: Sun, 8 Oct 2023 23:22:18 +0700 Subject: [PATCH] fixed: EditMeal.php --- app/views/addfact/index.php | 64 ++++++------ app/views/editmeal/index.php | 133 ++++++++++++------------ public/css/addfact.css | 15 +++ server/controller/auth/cms/AddFact.php | 51 +++++++++ server/controller/auth/cms/EditMeal.php | 83 +++++++++++++++ server/handler/data/File.php | 3 +- server/handler/data/Ingredients.php | 13 +++ server/handler/data/Meal.php | 3 +- 8 files changed, 269 insertions(+), 96 deletions(-) create mode 100644 server/controller/auth/cms/AddFact.php create mode 100644 server/controller/auth/cms/EditMeal.php diff --git a/app/views/addfact/index.php b/app/views/addfact/index.php index 7c1f60e..904ab3f 100644 --- a/app/views/addfact/index.php +++ b/app/views/addfact/index.php @@ -9,39 +9,45 @@ <title>Document</title> </head> <body> - <div class="content"> - <div class="imagecontainer"> - <img src="../../../assets/Nopict.png" alt="defaultProfPic" class="photoProfile"> - <div class="editPhotoButton"> - <label for="file" class="labelFile">Upload Photo</label> - <input type="file" name="file" id="file" class="file" accept="image/*,video/*"> + <form action="../../../server/controller/auth/cms/AddFact.php" method="POST" enctype="multipart/form-data"> + <div class="content"> + <div class="imagecontainer"> + <img src="../../../assets/Nopict.png" alt="defaultProfPic" class="photoProfile"> + <div class="editPhotoButton"> + <label for="file" class="labelFile">Upload Photo</label> + <input type="file" name="file" id="file" class="file" accept="image/*,video/*"> + </div> </div> - </div> - <div class="editcontainer"> - <div class="factinformation"> - <h2 class="facttitle">Fact Information</h2> - <div class="nametype"> - <div class="name-container"> - <div class="factname"> - <p class="labelname">Video File</p> - <label for="file" class="labelFile">Upload Video</label> - <input type="file" name="videofile" id="videofile" class="videofile" accept="image/*,video/*"> + <div class="editcontainer"> + <div class="factinformation"> + <h2 class="facttitle">Fact Information</h2> + <div class="nametype"> + <div class="name-container"> + <div class="factname"> + <p class="labelname">Video File</p> + <label for="file" class="labelFile">Upload Video</label> + <input type="file" name="videofile" id="videofile" class="videofile" accept="image/*,video/*"> + </div> </div> </div> + <div class="videotitle"> + <p class="labeldescription">Video Title</p> + <input type="text" placeholder="Title" class="inputtitle" id="edittitle" name="facttitle"> + </div> + <div class="facthighlight"> + <p class="labelhighlight">Fact Highlight</p> + <textarea name="facthighlight" id="facthighlight" class="inputhighlight" placeholder="Highlight"></textarea> + </div> + <div class="factdescription"> + <p class="labeldescription">Fact Description</p> + <textarea name="factdescription" id="factdescription" class="inputdescription" placeholder="Description"></textarea> + </div> + </div> - <div class="videotitle"> - <p class="labeldescription">Video Title</p> - <input type="text" placeholder="Title" class="inputtitle" id="edittitle" name="facttitle"> - </div> - <div class="factdescription"> - <p class="labeldescription">Fact Description</p> - <textarea name="factdescription" id="factdescription"class="inputdescription" placeholder="Description"></textarea> - </div> - - </div> - - <button type="submit" class="submitButton" name="submit">Save Change</button> - </div> + + <button type="submit" class="submitButton" name="submit">Save Change</button> + </div> + </form> </body> </html> \ No newline at end of file diff --git a/app/views/editmeal/index.php b/app/views/editmeal/index.php index 1b01f73..464b2d3 100644 --- a/app/views/editmeal/index.php +++ b/app/views/editmeal/index.php @@ -16,80 +16,83 @@ </script> </head> <body> - <div class="content"> - <div class="imagecontainer"> - <img src="../../../assets/Nopict.png" alt="defaultProfPic" class="photoProfile" id="image"> - <div class="editPhotoButton"> - <label for="file" class="labelFile">Upload Photo</label> - <input type="file" name="file" id="file" class="file" accept="image/*"> + <form action="../../../server/controller/auth/cms/EditMeal.php" method="POST" enctype="multipart/form-data"> + <input hidden="hidden" value=<?php echo $id ?>; name="test"> + <div class="content"> + <div class="imagecontainer"> + <img src="../../../assets/Nopict.png" alt="defaultProfPic" class="photoProfile" id="image"> + <div class="editPhotoButton"> + <label for="file" class="labelFile">Upload Photo</label> + <input type="file" name="file" id="file" class="file" accept="image/*"> + </div> </div> - </div> - <div class="editcontainer"> - <div class="mealinformation"> - <h2 class="mealtitle">Meal Information</h2> - <div class="nametype"> - <div class="name-container"> - <div class="mealname"> - <p class="labelname">Meal Name</p> - <input type="text" placeholder="Meal Name" class="inputname" id="title" name="mealname"> + <div class="editcontainer"> + <div class="mealinformation"> + <h2 class="mealtitle">Meal Information</h2> + <div class="nametype"> + <div class="name-container"> + <div class="mealname"> + <p class="labelname">Meal Name</p> + <input type="text" placeholder="Meal Name" class="inputname" id="title" name="mealname"> + </div> + </div> + <div class="mealtype"> + <p class="labeltype">Meal Type</p> + <select name="mealtype" class="inputtype"> + <option value="breakfast">Breakfast</option> + <option value="lunch">Lunch</option> + <option value="dinner">Dinner</option> + </select> </div> </div> - <div class="mealtype"> - <p class="labeltype">Meal Type</p> - <select name="mealtype" class="inputtype"> - <option value="breakfast">Breakfast</option> - <option value="lunch">Lunch</option> - <option value="dinner">Dinner</option> - </select> + <div class="mealhighlight"> + <p class="labeldescription">Meal Highlight</p> + <input name="mealdescription" id="highlight"class="inputhighlight" placeholder="Highlight"></textarea> + </div> + <div class="mealdescription"> + <p class="labeldescription">Meal Description</p> + <textarea name="mealdescription" id="description"class="inputdescription" placeholder="Description"></textarea> + </div> + <div class="mealingredients"> + <p class="labelingredients">Meal Ingredients</p> + <ul id="ingredientList"> + <!-- Existing list items go here --> + </ul> + <button type="button" class="addbutton" id="addIngredientBtn">Add</button> </div> </div> - <div class="mealhighlight"> - <p class="labeldescription">Meal Highlight</p> - <input name="mealdescription" id="highlight"class="inputhighlight" placeholder="Highlight"></textarea> - </div> - <div class="mealdescription"> - <p class="labeldescription">Meal Description</p> - <textarea name="mealdescription" id="description"class="inputdescription" placeholder="Description"></textarea> - </div> - <div class="mealingredients"> - <p class="labelingredients">Meal Ingredients</p> - <ul id="ingredientList"> - <!-- Existing list items go here --> - </ul> - <button type="button" class="addbutton" id="addIngredientBtn">Add</button> - </div> - </div> - <div class="mealnutrition"> - <h2 class="mealtitle">Meal Nutrition</h2> - <div class="nutritioncontainer"> - <div class="calcabs"> - <div class="nutrition"> - <p class="labelnutrition">Calories</p> - <input type="text" placeholder="Calories" class="inputnutrition" id="editCalories" name="calories"> + <div class="mealnutrition"> + <h2 class="mealtitle">Meal Nutrition</h2> + <div class="nutritioncontainer"> + <div class="calcabs"> + <div class="nutrition"> + <p class="labelnutrition">Calories</p> + <input type="text" placeholder="Calories" class="inputnutrition" id="editCalories" name="calories"> + </div> + <div class="nutrition"> + <p class="labelnutrition">Carbohydrates</p> + <input type="text" placeholder="Carbohydrates" class="inputnutrition" id="editCarbohydrates" name="carbohydrates"> + </div> </div> - <div class="nutrition"> - <p class="labelnutrition">Carbohydrates</p> - <input type="text" placeholder="Carbohydrates" class="inputnutrition" id="editCarbohydrates" name="carbohydrates"> + <div class="profat"> + <div class="nutrition"> + <p class="labelnutrition">Protein</p> + <input type="text" placeholder="Protein" class="inputnutrition" id="editProtein" name="protein"> + </div> + <div class="nutrition"> + <p class="labelnutrition">Fat</p> + <input type="text" placeholder="Fat" class="inputnutrition" id="editFat" name="fat"> + </div> </div> - </div> - <div class="profat"> <div class="nutrition"> - <p class="labelnutrition">Protein</p> - <input type="text" placeholder="Protein" class="inputnutrition" id="editProtein" name="protein"> - </div> - <div class="nutrition"> - <p class="labelnutrition">Fat</p> - <input type="text" placeholder="Fat" class="inputnutrition" id="editFat" name="fat"> - </div> + <p class="labelnutrition">Sugar</p> + <input type="text" placeholder="Sugar" class="inputnutrition" id="editsugar" name="sugar"> + </div> </div> - <div class="nutrition"> - <p class="labelnutrition">Sugar</p> - <input type="text" placeholder="Sugar" class="inputnutrition" id="editsugar" name="sugar"> - </div> - </div> - - <button type="submit" class="submitButton" name="submit">Save Change</button> - </div> + + <button type="submit" class="submitButton" name="submit">Save Change</button> + </div> + </form> </body> </html> \ No newline at end of file diff --git a/public/css/addfact.css b/public/css/addfact.css index 9a3c5df..3f3d8dd 100644 --- a/public/css/addfact.css +++ b/public/css/addfact.css @@ -152,6 +152,21 @@ outline: none; } +.facthighlight { + font-size: 18px; + font-weight: 600; + border-bottom: 1px solid #EF4800; + margin-right: 25px; +} + +.inputhighlight { + width: 575px; + height: 20px; + border: none; + padding-left: 10px; + outline: none; +} + .submitButton { background-color: #BA540B; diff --git a/server/controller/auth/cms/AddFact.php b/server/controller/auth/cms/AddFact.php new file mode 100644 index 0000000..30f9cbd --- /dev/null +++ b/server/controller/auth/cms/AddFact.php @@ -0,0 +1,51 @@ +<?php + +require_once "../../../../server/handler/data/File.php"; + + +use data\File; + + + +if(isset($_POST['submit'])) { + $file = new File(); + + $targetDirectory = "../../../../assets/content/"; + + $writeDirectory = "../../../../assets/content/"; + + if (!empty($_FILES['file']['name'])) { + + $t = $_FILES['file']['name']; + echo "<script>console.log('$t')</script>"; +// $file_name = $_FILES['file']['name']; +// $tmp_name = $_FILES['file']['tmp_name']; +// $extension = pathinfo($file_name, PATHINFO_EXTENSION); +// $file_up_name = time() . "." . $extension; +// move_uploaded_file($tmp_name, $targetDirectory . $file_up_name); +// +// $id_file_photo = $file->Insert($file_name,'../../assets/content/'.$file_up_name,'photo'); + } + + if (!empty($_FILES['videofile']['name'])) { + if (!empty($_FILES['videofile'])){ + $t = $_FILES['videofile']['name']; + + echo "<script>console.log('$t')</script>"; + } + +// $file_name = $_FILES['file']['name']; +// $tmp_name = $_FILES['file']['tmp_name']; +// $extension = pathinfo($file_name, PATHINFO_EXTENSION); +// $file_up_name = time() . "." . $extension; +// move_uploaded_file($tmp_name, $targetDirectory . $file_up_name); +// +// $id_file_photo = $file->Insert($file_name,'../../assets/content/'.$file_up_name,'photo'); + } + + + +// echo "<script>window.location.href='/?cms'</script>"; + + +} diff --git a/server/controller/auth/cms/EditMeal.php b/server/controller/auth/cms/EditMeal.php new file mode 100644 index 0000000..a3aee38 --- /dev/null +++ b/server/controller/auth/cms/EditMeal.php @@ -0,0 +1,83 @@ +<?php + +require_once "../../../../server/handler/data/File.php"; +require_once "../../../../server/handler/data/Nutrition.php"; +require_once "../../../../server/handler/data/Meal.php"; +require_once "../../../../server/handler/data/Ingredients.php"; + + +use data\File; +use data\Meal; +use data\Nutrition; +use data\Ingredients; + +if (isset($_POST['submit'])){ + $a = explode(";",$_POST['test']); + $id = $a[0]; + $meal = new Meal(); + $file = new File(); + $nutrition = new Nutrition(); + $ingredients = new Ingredients(); + + $get_meals = $meal->FindById($id)[0]; + $get_ingredients = $ingredients->FindByMeals($id); + $get_nutrition = $ingredients->FindByMeals($id); + $get_file = $file->FindById($get_meals['id_photo']); + + if (!empty($_FILES['file']['name'])){ + $targetDirectory = "../../../../assets/meals/"; + + $writeDirectory = "../../../../assets/meals/"; + $file_name = $_FILES['file']['name']; + $tmp_name = $_FILES['file']['tmp_name']; + $extension = pathinfo($file_name, PATHINFO_EXTENSION); + $file_up_name = time() . "." . $extension; + move_uploaded_file($tmp_name, $targetDirectory . $file_up_name); + + $file->Update($file->FindById($get_meals['id_photo']),$file_name,'../../assets/meals/'.$file_up_name,'photo'); + } + if (isset($_POST['mealname'])){ + $get_meals['title'] = $_POST['mealname']; + } + if (isset($_POST['mealhighlight'])){ + $get_meals['highlight'] = $_POST['mealhighlight']; + } + if (isset($_POST['mealtype'])){ + $get_meals['type'] = $_POST['mealtype']; + } + if (isset($_POST['calories'])){ + $get_meals['calorie'] = $_POST['calories']; + $get_nutrition['calorie'] = $_POST['calories']; + } + if (isset($_POST['carbohydrates'])){ + $get_nutrition['carbo'] = $_POST['carbohydrates']; + } + if (isset($_POST['protein'])){ + $get_nutrition['protein'] = $_POST['protein']; + } + if (isset($_POST['sugar'])){ + $get_nutrition['sugar'] = $_POST['sugar']; + } + if (isset($_POST['fat'])){ + $get_nutrition['fat'] = $_POST['fat']; + } + + if(isset($_POST['item'])) { + $ingredients->DeleteByIdMeals($id); + $items = $_POST['item']; + foreach ($items as $index => $itemData) { + $ing = $itemData['ingredients']; + $info = $itemData['information']; + $ingredients->Insert($ing,$info,$id); + } + } + + $c = json_encode($get_meals); + + echo "<script>console.log('$c')</script>"; + + + $meal->Update($get_meals['id'],$get_meals['title'],$get_meals['highlight'],$get_meals['description'],$get_meals['type'],$get_meals['calorie'],$get_meals['id_photo']); + + echo "<script>window.location.href='/?cms'</script>"; +} diff --git a/server/handler/data/File.php b/server/handler/data/File.php index b34b469..5013eac 100644 --- a/server/handler/data/File.php +++ b/server/handler/data/File.php @@ -3,8 +3,9 @@ namespace data; use Database; +require_once (__DIR__."/../../db/Database.php"); -// require_once "server/db/Database.php"; +// require_once __DIR__."../../../db/Database.php"; class File diff --git a/server/handler/data/Ingredients.php b/server/handler/data/Ingredients.php index 73652be..1d8cf7e 100644 --- a/server/handler/data/Ingredients.php +++ b/server/handler/data/Ingredients.php @@ -61,6 +61,19 @@ class Ingredients $this->db->Disconnect(); } + public function DeleteByIdMeals($id){ + $this->db->Connect(); + $conn = $this->db->getDb(); + + $delete_data = pg_query_params($conn, "DELETE FROM ingredients WHERE id_meals = $1", array($id)); + + if (!$delete_data) die("failed to delete values: ".pg_last_error()); + + echo "<script>console.log('successfully delete ingredients')</script>"; + + $this->db->Disconnect(); + } + public function FindAll(){ $this->db->Connect(); $conn = $this->db->getDb(); diff --git a/server/handler/data/Meal.php b/server/handler/data/Meal.php index 0746f66..0a460cb 100644 --- a/server/handler/data/Meal.php +++ b/server/handler/data/Meal.php @@ -242,7 +242,7 @@ class Meal $conn = $this->db->getDb(); $exec = pg_query_params($conn, "SELECT m.id id, m.title title, m.highlight highlight, m.description description, m.type type, m.calorie calorie, - (SELECT path FROM file f WHERE f.id = m.id_file) as path_photo, + (SELECT path FROM file f WHERE f.id = m.id_file) as path_photo, m.id_file as id_photo, m.created_at created_at, m.updated_at updated_at FROM meals m WHERE m.id = $1 ORDER BY m.updated_at", array($id)); @@ -257,6 +257,7 @@ class Meal 'type' => $row['type'], 'calorie' => $row['calorie'], 'path_photo'=>$row['path_photo'], + 'id_photo'=>$row['id_photo'], 'created_at' => $row['created_at'], 'updated_at' => $row['updated_at'] ); -- GitLab