Skip to content
Snippets Groups Projects
ProfileSettings.vue 7.78 KiB
<template>
    <main>
        <h1><br><br>Profilinnstillinger <br></h1>

        <div v-if="hasProfileImage" id = "profilepicture-container">
            <img width="100" src="../components/images/w66XcIlw.jpeg" alt="profile picture">
        </div>
        <div v-else id = "profilepicture-container">
            <Icon icon="material-symbols:person" :color=iconColor :style="{ fontSize: '500px'}" />
        </div>

        <h2>{{profile.name}}</h2>
        <button id="changeUserBtn" >Bytt bruker</button>

        <form @submit.prevent="submit">
            <label for="brukernavn">Profilnavn</label><br>
            <input type="text" required><br>
          <br>
            <h4>Brukertype</h4>
            <input type="radio" id="normal" value="false">
            <label for="normal"> Standard</label><br>

            <input type="radio" id="restricted" value="true" >
            <label for="restricted"> Begrenset - Kan ikke redigere ukeplan eller handleliste</label><br>

            <br>
            <h3>Profilbilde</h3>
            <div id="changeUserImage">
                <div v-if="hasProfileImage" id = "profilepicture-container">
                    <img width="50" src="../components/images/w66XcIlw.jpeg" alt="profile picture">
                </div>
                <div v-else id = "profilepicture-container">
                    <Icon icon="material-symbols:person" :color=iconColor :style="{ fontSize: '30px'}" />
                </div>
                <button>Endre bilde</button>
            </div>

            <div id = "submitbuttonBox">
                <button class="saveBtn" @click="saveUserSettings" >Lagre brukerinnstillinger</button>
                <button class="delBtn" @click="deleteUser">Slett brukerprofil</button>
            </div>

        </form>

        <h1>App-innstillinger</h1>

        <form @submit.prevent="submit">

            <h2>-Matpreferanser-</h2>
            <p class ="infoText">Hvis huket av, så vil du kun få oppskrifter av disse typene:</p>

            <input type="checkbox" id="vegetar" name="vegetar" value="vegetar">
            <label for="vegetar"> vegetar </label><br>
            <input type="checkbox" id="vegan" name="vegan" value="vegan">
            <label for="vegan"> vegan </label><br>

            <br>

            <h2>-Allergener-</h2>

            <p class ="infoText">Du vil ikke få forslag om oppskrifter med disse varene:</p>

            <input type="checkbox" id="gluten" name="gluten" value="Gluten">
            <label for="allergen"> gluten</label><br>
            <input type="checkbox" id="nøtter" name="nøtter" value="nøtter">
            <label for="allergen"> nøtter</label><br>
            <input type="checkbox" id="melk" name="melk" value="melk">
            <label for="allergen"> melk</label><br>

            <button class="saveBtn" @click="saveFoodPreference">Lagre matpreferanser <br>  og allergener</button>
        </form>

        <h1>Konto-innstillinger</h1>
        <form @submit.prevent="submit">

            <p class="infoText">OBS: Kontakt admin dersom du ønsker å oppdatere epost</p><br>

            <p>Epost:</p>

            <label for="password">Endre passord</label><br>
            <input type="password" id="password" >

            <button class="saveBtn" @click="saveAccountSettings">Lagre kontoinnstillinger</button>

          </form>
          <br>
          <br>
          <hr>

          <form  @submit.prevent="submit" id = "dangerZone">
          <h1>🔺FARESONE🔺</h1>
          <p class="infoText">Ved å trykke på knappen nedenfor, vil du slette din SmartMat-konto</p>
            <input type="checkbox" id="deletionCheckbox" v-model="deletionConfirmation">
            <label for="deletionCheckbox"> Jeg bekrefter jeg skjønner dette, og ønsker å slette kontoen min SmartMat-konto for alltid.</label><br>
            <button class="delBtn" @click="deleteAccount">SLETT KONTO</button>
          </form>

          <br><br><br>
    </main>
</template>
<script setup>




</script>


<script>
import {mapStores} from "pinia";
import {Icon} from "@iconify/vue";
import {API} from "@/util/API";
//import {useAuthStore} from "../stores/authStore";
import { useAuthStore } from "@/stores/authStore";
export default {
    name: "ProfileSettings",
    components: {Icon},
    setup() {
        //const store = useAuthStore();
        //this.curruser= store.user;
    },
    computed: {
        ...mapStores(useAuthStore),
        profile() {
            const store = useAuthStore();
            return store.profile
        },
        currentUser() {
            //return store.user;
        },
        currentProfile() {
            //return store.profile;
        },
        iconColor() {
            return "#000000"
        },
        hasProfileImage() {
            return false;
            //return this.profile.image.length > 0;
        }
    },
    data() {
        return {
            curruser : "",
            /*user: {
                id: "",
                username: "petter@hello.no",
                password: "",

            },
            qprofile: {
                name: "Petter",
                isRestricted: false,
                image: "../components/images/w66XcIlw.jpeg",
            },*/
            foodPreferences: [],
            allergens: [],
            deletionConfirmation: false,
        }
    },
    beforeMount(){
        //...mapStores(useAuthStore),

        //TODO: Hent bruker
        //todo hent profil
    },
    methods: {
      saveUserSettings(){
        alert("(Denne knappen gjør ingen ting) brukerinnstillinger lagret!")
          API.updateProfile(
              this.user.id,
              this.profile.name,
              this.profile.isRestricted,
              this.profile.image,
          );
      },
      saveAccountSettings(){
        alert("(Denne knappen gjør ingen ting) konto oppdatert")
          /*API.updateAccount(
              this.user.id,
              this.user.password,
              token);*/
      },
      deleteAccount(){
          if(this.deletionConfirmation===false){
              alert("Du må bekrefte at du vil slette konto ved å huke av boksen")
          }
          else {
              alert("(Denne knappen gjør ingen ting) men  account deleted")
              //API.deleteAccount(this.user.id, token);
          }

      },
      deleteUser(){
        alert("(Denne knappen gjør ingen ting)  bruker slettet")
      },
      saveFoodPreference() {
        alert("(Denne knappen gjør ingen ting) matpreferanser lagret")
      }
    }
}
</script>

<style scoped lang ="scss">
main {
  background-color: white;
  color:black;
  display:flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  width: 100%;
  text-align: left;
  left:0;
}

#profilepicture-container {
    display:flex;
    border-radius:50%;
    width:100px;
    height: 100px;
    background-color: white;
    justify-content: center;
    align-items: center;
    border: 3px solid base.$grey;
}

img {
  border-radius: 50%;
}

#changeUserImage {
    display:flex;
}

#changeUserImage #profilepicture-container {
  width: 50px;
  height: 50px;
}

.infoText {
  background-color: white;
  padding: .5em;
  margin: .4em;
}

form {
    background-color: base.$grey;
    color: black;
    align-content: end;
    padding: 2em;
    margin-top: 2em;
    margin-bottom: 2em;
}

input[type="text"],
input[type="password"]{
    width: 100%;
    padding: .5em;
}
#submitbuttonBox {
    display:flex;
    justify-content: space-between;
}
button {
    background-color: base.$red;
    color: black;

    border: 1px solid black;

    margin: 1em;
}


#changeUserBtn {
    padding:.9em;

}
button:hover{
   background-color: #282828;

 }

.saveBtn, .delBtn {
  background-color: base.$green;
  color: white;
  font-weight: bold;
  padding:.9em;
  border:none;
}
.delBtn {
  background-color: darkred;
}

#dangerZone {
  color: darkred;
}
</style>