.
This commit is contained in:
		
							
								
								
									
										
											BIN
										
									
								
								express-server/public/images/Hintergrund.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								express-server/public/images/Hintergrund.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 9.0 MiB  | 
@@ -62,6 +62,7 @@ $(document).ready(function () {
 | 
				
			|||||||
                        success(res) {
 | 
					                        success(res) {
 | 
				
			||||||
                            console.log("add funktioniert");
 | 
					                            console.log("add funktioniert");
 | 
				
			||||||
                            $(".listen-ausgabe").html("");
 | 
					                            $(".listen-ausgabe").html("");
 | 
				
			||||||
 | 
					                            $(".shared-cards").html("");
 | 
				
			||||||
                            eigeneEinkaufslisten();
 | 
					                            eigeneEinkaufslisten();
 | 
				
			||||||
                            geteilteEinkaufslisten();
 | 
					                            geteilteEinkaufslisten();
 | 
				
			||||||
                            $(".EigeneListeAdd").modal("hide");
 | 
					                            $(".EigeneListeAdd").modal("hide");
 | 
				
			||||||
@@ -89,6 +90,7 @@ var globalegraddid = "";
 | 
				
			|||||||
// var globaleGetZwischenID = "";
 | 
					// var globaleGetZwischenID = "";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function eigeneEinkaufslisten() {
 | 
					function eigeneEinkaufslisten() {
 | 
				
			||||||
 | 
					    // $(".listen-ausgabe").remove();
 | 
				
			||||||
    firebase.auth().onAuthStateChanged(async function (user) {
 | 
					    firebase.auth().onAuthStateChanged(async function (user) {
 | 
				
			||||||
        if (user) {
 | 
					        if (user) {
 | 
				
			||||||
            firebase.auth().currentUser.getIdToken( /* forceRefresh */ true).then(function (idtoken) {
 | 
					            firebase.auth().currentUser.getIdToken( /* forceRefresh */ true).then(function (idtoken) {
 | 
				
			||||||
@@ -113,12 +115,14 @@ function eigeneEinkaufslisten() {
 | 
				
			|||||||
                                        success(data) {
 | 
					                                        success(data) {
 | 
				
			||||||
                                            const userinfo = data.name;
 | 
					                                            const userinfo = data.name;
 | 
				
			||||||
                                            const picture = data.picture;
 | 
					                                            const picture = data.picture;
 | 
				
			||||||
                                            console.log(data)
 | 
					                                            console.log(res)
 | 
				
			||||||
                                            for (let i = 0; i < res.length; i++) {
 | 
					                                            for (let i = 0; i < res.length; i++) {
 | 
				
			||||||
                                                const el = res[i];
 | 
					                                                const el = res[i];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                                                $('body').attr('name',`${idtoken}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                                                $(".listen-ausgabe").append(`<div class="col-md-12 karten">
 | 
					                                                $(".listen-ausgabe").append(`<div class="col-md-12 karten">
 | 
				
			||||||
                                <div class="card border-light mb-3 shadow-sm" style="max-width: 18rem;" id="${el.sl_id}">
 | 
					                                <div class="card border-light mb-3 shadow-sm" style="max-width: 18rem;min-width: 14rem;" id="${el.sl_id}">
 | 
				
			||||||
                                    <div class="card-header" style="background-color: #${el.color};">
 | 
					                                    <div class="card-header" style="background-color: #${el.color};">
 | 
				
			||||||
                                    <span>
 | 
					                                    <span>
 | 
				
			||||||
                                    <img src="${picture}" alt="Avatar" style="width:10%; border-radius: 50%;">
 | 
					                                    <img src="${picture}" alt="Avatar" style="width:10%; border-radius: 50%;">
 | 
				
			||||||
@@ -126,6 +130,7 @@ function eigeneEinkaufslisten() {
 | 
				
			|||||||
                                        <button class="btn edit"><i class="fas fa-pencil-alt "></i></button>
 | 
					                                        <button class="btn edit"><i class="fas fa-pencil-alt "></i></button>
 | 
				
			||||||
                                        <button class="btn trash"><i class="far fa-trash-alt"></i></button>
 | 
					                                        <button class="btn trash"><i class="far fa-trash-alt"></i></button>
 | 
				
			||||||
                                        <button class="btn sledit"><i class="far fa-edit"></i></button>
 | 
					                                        <button class="btn sledit"><i class="far fa-edit"></i></button>
 | 
				
			||||||
 | 
					                                        <button class="btn postshare"><i class="fas fa-share-alt"></i></button>
 | 
				
			||||||
                                    </div>
 | 
					                                    </div>
 | 
				
			||||||
                                    
 | 
					                                    
 | 
				
			||||||
                                    <div class="card-body">
 | 
					                                    <div class="card-body">
 | 
				
			||||||
@@ -138,6 +143,7 @@ function eigeneEinkaufslisten() {
 | 
				
			|||||||
                                            slbearbeiten();
 | 
					                                            slbearbeiten();
 | 
				
			||||||
                                            loeschen();
 | 
					                                            loeschen();
 | 
				
			||||||
                                            Detail();
 | 
					                                            Detail();
 | 
				
			||||||
 | 
					                                            shareinvite();
 | 
				
			||||||
                                            // groupHinzufügen()
 | 
					                                            // groupHinzufügen()
 | 
				
			||||||
                                        },
 | 
					                                        },
 | 
				
			||||||
                                        error(err) {
 | 
					                                        error(err) {
 | 
				
			||||||
@@ -165,7 +171,7 @@ function geteilteEinkaufslisten() {
 | 
				
			|||||||
    firebase.auth().onAuthStateChanged(async function (user) {
 | 
					    firebase.auth().onAuthStateChanged(async function (user) {
 | 
				
			||||||
        if (user) {
 | 
					        if (user) {
 | 
				
			||||||
            firebase.auth().currentUser.getIdToken( /* forceRefresh */ true).then(function (idtoken) {
 | 
					            firebase.auth().currentUser.getIdToken( /* forceRefresh */ true).then(function (idtoken) {
 | 
				
			||||||
                console.log("/sharedshoppinglists idtoke: ", idtoken)
 | 
					                // console.log("/sharedshoppinglists idtoke: ", idtoken)
 | 
				
			||||||
                $.ajax({
 | 
					                $.ajax({
 | 
				
			||||||
                    data: "GET",
 | 
					                    data: "GET",
 | 
				
			||||||
                    url: "/sharedshoppinglists",
 | 
					                    url: "/sharedshoppinglists",
 | 
				
			||||||
@@ -173,8 +179,41 @@ function geteilteEinkaufslisten() {
 | 
				
			|||||||
                        idtoken: idtoken
 | 
					                        idtoken: idtoken
 | 
				
			||||||
                    },
 | 
					                    },
 | 
				
			||||||
                    success(res) {
 | 
					                    success(res) {
 | 
				
			||||||
                        console.log("Geteilte Einkaufslisten");
 | 
					                        console.log(res);
 | 
				
			||||||
                        // $(".shared-cards").append(`<div class="col-md-6 col-lg-4 shoplisteid">${res}</div>`);
 | 
					                        for (let i = 0; i < res.length; i++) {
 | 
				
			||||||
 | 
					                            const el = res[i];
 | 
				
			||||||
 | 
					                        $.ajax({
 | 
				
			||||||
 | 
					                            type: "GET",
 | 
				
			||||||
 | 
					                            url: "/shoppinglist_json/" + res[i].sl_id,
 | 
				
			||||||
 | 
					                            data: {
 | 
				
			||||||
 | 
					                                idtoken: idtoken
 | 
				
			||||||
 | 
					                            },
 | 
				
			||||||
 | 
					                            success(result){
 | 
				
			||||||
 | 
					                                console.log(result);
 | 
				
			||||||
 | 
					                                
 | 
				
			||||||
 | 
					                                $(".shared-cards").append(`<div class="col-md-12 karten">
 | 
				
			||||||
 | 
					                                <div class="card border-light mb-3 shadow-sm" style="max-width: 18rem;min-width: 14rem;" id="${result.sl_id}">
 | 
				
			||||||
 | 
					                                    <div class="card-header" style="background-color: #${result.color};">
 | 
				
			||||||
 | 
					                                    <span>
 | 
				
			||||||
 | 
					                                    <img src="${result.admin.picture}" alt="Avatar" style="width:10%; border-radius: 50%;">
 | 
				
			||||||
 | 
					                                        ${result.admin.name}</span>
 | 
				
			||||||
 | 
					                                        <button class="btn shareedit"><i class="fas fa-pencil-alt "></i></button>
 | 
				
			||||||
 | 
					                                        <button class="btn sharetrash"><i class="far fa-trash-alt"></i></button>
 | 
				
			||||||
 | 
					                                        <button class="btn sledit"><i class="far fa-edit"></i></button>
 | 
				
			||||||
 | 
					                                    </div>
 | 
				
			||||||
 | 
					                                    
 | 
				
			||||||
 | 
					                                    <div class="card-body">
 | 
				
			||||||
 | 
					                                        <h5 class="card-title">${result.name}</h5>
 | 
				
			||||||
 | 
					                                        <p class="card-text">${result.description}</p>
 | 
				
			||||||
 | 
					                                    </div>
 | 
				
			||||||
 | 
					                                </div></div>`);
 | 
				
			||||||
 | 
					                                slbearbeiten();
 | 
				
			||||||
 | 
					                                loeschen();
 | 
				
			||||||
 | 
					                                sharedtail();
 | 
				
			||||||
 | 
					                            },error(err){
 | 
				
			||||||
 | 
					                                console.log(err);
 | 
				
			||||||
 | 
					                            }
 | 
				
			||||||
 | 
					                        })}
 | 
				
			||||||
                    },
 | 
					                    },
 | 
				
			||||||
                    error(err) {
 | 
					                    error(err) {
 | 
				
			||||||
                        console.error("/sharedshoppinglists error:", err);
 | 
					                        console.error("/sharedshoppinglists error:", err);
 | 
				
			||||||
@@ -187,19 +226,18 @@ function geteilteEinkaufslisten() {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function loeschen() {
 | 
					function selfexinvite(){
 | 
				
			||||||
    $(".trash").click(function () {
 | 
					$(".sharetrash").click(function(){
 | 
				
			||||||
 | 
					 | 
				
			||||||
    let card = $(this).closest(".card");
 | 
					    let card = $(this).closest(".card");
 | 
				
			||||||
        let id = card.attr("id");
 | 
					        let id = card.attr("id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // console.log(id);
 | 
					        firebase.auth().currentUser.getIdToken( /* forceRefresh */ true).then(function (idtoken) {
 | 
				
			||||||
 | 
					 | 
				
			||||||
        $.ajax({
 | 
					        $.ajax({
 | 
				
			||||||
            type: "DELETE",
 | 
					            type: "DELETE",
 | 
				
			||||||
            url: "/shoppinglist",
 | 
					            url: "/exitinvite",
 | 
				
			||||||
            data: {
 | 
					            data: {
 | 
				
			||||||
                sl_id: id
 | 
					                sl_id: id,
 | 
				
			||||||
 | 
					                idtoken: idtoken
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            success(res) {
 | 
					            success(res) {
 | 
				
			||||||
                console.log("card gelöscht");
 | 
					                console.log("card gelöscht");
 | 
				
			||||||
@@ -209,7 +247,128 @@ function loeschen() {
 | 
				
			|||||||
                console.log("error");
 | 
					                console.log("error");
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
 | 
					    }).catch((error) => console.error("Get id token client error: ", error));
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function sharedtail (){
 | 
				
			||||||
 | 
					    $(".shareedit").click(function(){
 | 
				
			||||||
 | 
					        $(".cardausgabe").hide();
 | 
				
			||||||
 | 
					        $(".sharecards").hide();
 | 
				
			||||||
 | 
					        $(".strich").hide();
 | 
				
			||||||
 | 
					        $(".detailcardausgabe").show();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        let card = $(this).closest(".card");
 | 
				
			||||||
 | 
					        let sl_id = card.attr("id");
 | 
				
			||||||
 | 
					        firebase.auth().currentUser.getIdToken( /* forceRefresh */ true).then(function (idtoken) {
 | 
				
			||||||
 | 
					        $.ajax({
 | 
				
			||||||
 | 
					            type: "GET",
 | 
				
			||||||
 | 
					            url: "/shoppinglist_json/" + sl_id,
 | 
				
			||||||
 | 
					            data: {
 | 
				
			||||||
 | 
					                idtoken: idtoken
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            success(result){
 | 
				
			||||||
 | 
					                Members = result.members
 | 
				
			||||||
 | 
					                var link = "/dash/" + idtoken;
 | 
				
			||||||
 | 
					                $(".kopf").attr("style", `background-color:#${result.color}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                                            console.log(result);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                                            $(".card-header").append(`<div class="shoplistid" id="${sl_id}">
 | 
				
			||||||
 | 
					                                        <a href="${link}" style="left: 5px; margin-top: -50px;color: black;">
 | 
				
			||||||
 | 
					                                            <i class="fas fa-caret-left"></i>
 | 
				
			||||||
 | 
					                                        </a>
 | 
				
			||||||
 | 
					                                        <button class="btn groupadd" data-toggle="modal" data-target=".ListenDetailAdd"><i class="fas fa-plus"></i></button>
 | 
				
			||||||
 | 
					                                        <h1 class="text-center">
 | 
				
			||||||
 | 
					                                            ${result.name}
 | 
				
			||||||
 | 
					                                        </h1><center><button class="btn btn-outline-lighht btn-xs showMembers">Alle Mitglieder</button></center></div>
 | 
				
			||||||
 | 
					                                    `);
 | 
				
			||||||
 | 
					                                            for (let i = 0; i < result.groups.length; i++) {
 | 
				
			||||||
 | 
					                                                const el = result.groups[i];
 | 
				
			||||||
 | 
					                                                $(".gruppeninhalt").append(`<div class="col-md-6 col-lg-4 shoplisteid" id="${result.sl_id}">
 | 
				
			||||||
 | 
					                                        <div class="card mb-3 groupid ${el.group_id}" id="${el.group_id}" style="max-width: 18rem;background-color:#${el.color};">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                                            <div class="card-header">
 | 
				
			||||||
 | 
					                                                <h5 class="card-title title">${el.name}</h5>
 | 
				
			||||||
 | 
					                                                <button class="btn gredit"><i class="far fa-edit"></i></button>
 | 
				
			||||||
 | 
					                                                <button class="btn itemadd"><i class="fas fa-plus"></i></button>
 | 
				
			||||||
 | 
					                                                <button class="btn trashgroup"><i class="far fa-trash-alt"></i></button>
 | 
				
			||||||
 | 
					                                                <button class="btn seemore" type="button" data-toggle="collapse" data-target="#${el.name}" aria-expanded="false" aria-controls="${el.name}"><i class="fas fa-caret-down"></i></button>
 | 
				
			||||||
 | 
					                                                <div class="${el.name}">
 | 
				
			||||||
 | 
					                                                </div>
 | 
				
			||||||
 | 
					                                            </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                                        </div></div>
 | 
				
			||||||
 | 
					                                        `);
 | 
				
			||||||
 | 
					                                                for (let x = 0; x < el.content.length; x++) {
 | 
				
			||||||
 | 
					                                                    const el2 = el.content[x]
 | 
				
			||||||
 | 
					                                                    $(`.${el.name}`).append(`<div class="collapse" id="${el.name}">
 | 
				
			||||||
 | 
					                                                    <div class="card itemcard" style="background-color: transparent; ">
 | 
				
			||||||
 | 
					                                                    <div class="card-body">
 | 
				
			||||||
 | 
					                                                    ${el2.name}${el2.count}
 | 
				
			||||||
 | 
					                                                  </div>
 | 
				
			||||||
 | 
					                                                    </div>`);
 | 
				
			||||||
 | 
					                                                }
 | 
				
			||||||
 | 
					                                            }
 | 
				
			||||||
 | 
					                                            $(".alleMem").append(`
 | 
				
			||||||
 | 
					                                                <center><span><img src="${result.admin.picture}" alt="Avatar" style="width:10%; border-radius: 50%;">
 | 
				
			||||||
 | 
					                                                 
 | 
				
			||||||
 | 
					                                                ${result.admin.name}</span></center>
 | 
				
			||||||
 | 
					                                                <hr>
 | 
				
			||||||
 | 
					                                            `);
 | 
				
			||||||
 | 
					                                            for (let i = 0; i < result.members.length; i++) {
 | 
				
			||||||
 | 
					                                                const el = result.members[i];
 | 
				
			||||||
 | 
					                                                $(".alleMem").append(`
 | 
				
			||||||
 | 
					                                                <center><span><img src="${el.picture}" alt="Avatar" style="width:10%; border-radius: 50%;">
 | 
				
			||||||
 | 
					                                                 
 | 
				
			||||||
 | 
					                                                ${el.name}</span></center>
 | 
				
			||||||
 | 
					                                            `);
 | 
				
			||||||
 | 
					                                            }
 | 
				
			||||||
 | 
					                                            lala();
 | 
				
			||||||
 | 
					                                            gruppenhinzu();
 | 
				
			||||||
 | 
					                                            ItemAdden();
 | 
				
			||||||
 | 
					                                            groupdelete();
 | 
				
			||||||
 | 
					                                            groupbearbeiten();
 | 
				
			||||||
 | 
					                                            MemberAnzeigen();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            },error(err){
 | 
				
			||||||
 | 
					                console.log(err);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					    }).catch((error) => console.error("Get id token client error: ", error));
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function MemberAnzeigen(){
 | 
				
			||||||
 | 
					    $(".showMembers").click(function(){
 | 
				
			||||||
 | 
					        $(".Mem").modal('show');
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function loeschen() {
 | 
				
			||||||
 | 
					    $(".trash").click(function () {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        let card = $(this).closest(".card");
 | 
				
			||||||
 | 
					        let id = card.attr("id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // console.log(id);
 | 
				
			||||||
 | 
					        firebase.auth().currentUser.getIdToken( /* forceRefresh */ true).then(function (idtoken) {
 | 
				
			||||||
 | 
					        $.ajax({
 | 
				
			||||||
 | 
					            type: "DELETE",
 | 
				
			||||||
 | 
					            url: "/shoppinglist",
 | 
				
			||||||
 | 
					            data: {
 | 
				
			||||||
 | 
					                sl_id: id,
 | 
				
			||||||
 | 
					                idtoken: idtoken
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            success(res) {
 | 
				
			||||||
 | 
					                console.log("card gelöscht");
 | 
				
			||||||
 | 
					                card.remove();
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            error(err) {
 | 
				
			||||||
 | 
					                console.log("error");
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					    }).catch((error) => console.error("Get id token client error: ", error));
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -227,7 +386,7 @@ function gruppenhinzu() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        let name = $("#groupname").val();
 | 
					        let name = $("#groupname").val();
 | 
				
			||||||
        let color = $("input:checked").val();
 | 
					        let color = $("input:checked").val();
 | 
				
			||||||
        // $("#ListenDetailAdd").modal("hide");
 | 
					        
 | 
				
			||||||
        console.log(globaleAddZwischenID);
 | 
					        console.log(globaleAddZwischenID);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        firebase.auth().onAuthStateChanged(async function (user) {
 | 
					        firebase.auth().onAuthStateChanged(async function (user) {
 | 
				
			||||||
@@ -245,23 +404,10 @@ function gruppenhinzu() {
 | 
				
			|||||||
                            hidden: false
 | 
					                            hidden: false
 | 
				
			||||||
                        },
 | 
					                        },
 | 
				
			||||||
                        success(res) {
 | 
					                        success(res) {
 | 
				
			||||||
                            
 | 
					 | 
				
			||||||
                            console.log(res);
 | 
					 | 
				
			||||||
                            $("input:checked").val("");
 | 
					 | 
				
			||||||
                            $("#groupname").val("");
 | 
					                            $("#groupname").val("");
 | 
				
			||||||
 | 
					                            $("input:checked").val("");
 | 
				
			||||||
                            $(".ListenDetailAdd").modal("hide");
 | 
					                            $(".ListenDetailAdd").modal("hide");
 | 
				
			||||||
 | 
					                            refreshDetailsl(globaleAddZwischenID);
 | 
				
			||||||
                                $(".gruppeninhalt").append(`<div class="col-md-6 col-lg-4 shoplisteid" id="${globaleAddZwischenID}">
 | 
					 | 
				
			||||||
                        <div class="card mb-3 groupid" id="" style="max-width: 18rem;background-color:#${color};">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                            <div class="card-header"><h5 class="card-title">${name}</h5><button class="btn itemadd"><i class="fas fa-plus"></i></button><button class="btn trashgroup"><i class="far fa-trash-alt"></i></button><button class="btn seemore" type="button" data-toggle="collapse" data-target="#${name}" aria-expanded="false" aria-controls="${name}"><i class="fas fa-caret-down"></i></button>
 | 
					 | 
				
			||||||
                                <div class="${name}">
 | 
					 | 
				
			||||||
                                </div>
 | 
					 | 
				
			||||||
                            </div>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                        </div></div>
 | 
					 | 
				
			||||||
                        `);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                        },
 | 
					                        },
 | 
				
			||||||
                        error(err) {
 | 
					                        error(err) {
 | 
				
			||||||
                            console.log("error");
 | 
					                            console.log("error");
 | 
				
			||||||
@@ -280,6 +426,8 @@ function Detail() {
 | 
				
			|||||||
    $(".edit").click(function () {
 | 
					    $(".edit").click(function () {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $(".cardausgabe").hide();
 | 
					        $(".cardausgabe").hide();
 | 
				
			||||||
 | 
					        $(".sharecards").hide();
 | 
				
			||||||
 | 
					        $(".strich").hide();
 | 
				
			||||||
        $(".detailcardausgabe").show();
 | 
					        $(".detailcardausgabe").show();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        let card = $(this).closest(".card");
 | 
					        let card = $(this).closest(".card");
 | 
				
			||||||
@@ -320,8 +468,20 @@ function Detail() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                                            $(".kopf").attr("style", `background-color:#${neu[0].color}`);
 | 
					                                            $(".kopf").attr("style", `background-color:#${neu[0].color}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                                            console.log(neu[0].color);
 | 
					                                            console.log(res);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                                            if (res.invitelink != null) {
 | 
				
			||||||
 | 
					                                                $(".card-header").append(`<div class="shoplistid" id="${id}">
 | 
				
			||||||
 | 
					                                                <a href="${link}" style="left: 5px; margin-top: -50px;color: black;">
 | 
				
			||||||
 | 
					                                                    <i class="fas fa-caret-left"></i>
 | 
				
			||||||
 | 
					                                                </a>
 | 
				
			||||||
 | 
					                                                <button class="btn groupadd" data-toggle="modal" data-target=".ListenDetailAdd"><i class="fas fa-plus"></i></button>
 | 
				
			||||||
 | 
					                                                <h1 class="text-center">
 | 
				
			||||||
 | 
					                                                    ${neu[0].name}
 | 
				
			||||||
 | 
					                                                </h1><center><button class="btn btn-outline-lighht btn-xs showMembers">Alle Mitglieder</button></center></div>
 | 
				
			||||||
 | 
					                                            `); 
 | 
				
			||||||
 | 
					                                            }
 | 
				
			||||||
 | 
					                                            else{
 | 
				
			||||||
                                                $(".card-header").append(`<div class="shoplistid" id="${id}">
 | 
					                                                $(".card-header").append(`<div class="shoplistid" id="${id}">
 | 
				
			||||||
                                                <a href="${link}" style="left: 5px; margin-top: -50px;color: black;">
 | 
					                                                <a href="${link}" style="left: 5px; margin-top: -50px;color: black;">
 | 
				
			||||||
                                                    <i class="fas fa-caret-left"></i>
 | 
					                                                    <i class="fas fa-caret-left"></i>
 | 
				
			||||||
@@ -331,13 +491,16 @@ function Detail() {
 | 
				
			|||||||
                                                    ${neu[0].name}
 | 
					                                                    ${neu[0].name}
 | 
				
			||||||
                                                </h1></div>
 | 
					                                                </h1></div>
 | 
				
			||||||
                                            `);
 | 
					                                            `);
 | 
				
			||||||
 | 
					                                            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                                            for (let i = 0; i < res.groups.length; i++) {
 | 
					                                            for (let i = 0; i < res.groups.length; i++) {
 | 
				
			||||||
                                                const el = res.groups[i];
 | 
					                                                const el = res.groups[i];
 | 
				
			||||||
                                                $(".gruppeninhalt").append(`<div class="col-md-6 col-lg-4 shoplisteid" id="${res.sl_id}">
 | 
					                                                $(".gruppeninhalt").append(`<div class="col-md-6 col-lg-4 shoplisteid" id="${res.sl_id}">
 | 
				
			||||||
                                        <div class="card mb-3 groupid ${el.group_id}" id="${el.group_id}" style="max-width: 18rem;background-color:#${el.color};">
 | 
					                                        <div class="card mb-3 groupid ${el.group_id}" id="${el.group_id}" style="max-width: 18rem;background-color:#${el.color};">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                                            <div class="card-header">
 | 
					                                            <div class="card-header">
 | 
				
			||||||
                                                <h5 class="card-title">${el.name}</h5>
 | 
					                                                <h5 class="card-title title">${el.name}</h5>
 | 
				
			||||||
 | 
					                                                <button class="btn gredit"><i class="far fa-edit"></i></button>
 | 
				
			||||||
                                                <button class="btn itemadd"><i class="fas fa-plus"></i></button>
 | 
					                                                <button class="btn itemadd"><i class="fas fa-plus"></i></button>
 | 
				
			||||||
                                                <button class="btn trashgroup"><i class="far fa-trash-alt"></i></button>
 | 
					                                                <button class="btn trashgroup"><i class="far fa-trash-alt"></i></button>
 | 
				
			||||||
                                                <button class="btn seemore" type="button" data-toggle="collapse" data-target="#${el.name}" aria-expanded="false" aria-controls="${el.name}"><i class="fas fa-caret-down"></i></button>
 | 
					                                                <button class="btn seemore" type="button" data-toggle="collapse" data-target="#${el.name}" aria-expanded="false" aria-controls="${el.name}"><i class="fas fa-caret-down"></i></button>
 | 
				
			||||||
@@ -349,18 +512,48 @@ function Detail() {
 | 
				
			|||||||
                                        `);
 | 
					                                        `);
 | 
				
			||||||
                                                for (let x = 0; x < el.content.length; x++) {
 | 
					                                                for (let x = 0; x < el.content.length; x++) {
 | 
				
			||||||
                                                    const el2 = el.content[x]
 | 
					                                                    const el2 = el.content[x]
 | 
				
			||||||
                                                    $(`.${el.name}`).append(`<div class="collapse" id="${el.name}">
 | 
					                                                    $(`.${el.name}`).append(`<div class="collapse mb-1" id="${el.name}">
 | 
				
			||||||
                                                    <div class="card itemcard" style="background-color: transparent; ">
 | 
					                                                    <div style="background-color: transparent; border: 1px solid #303133; border-radius: 15px;">
 | 
				
			||||||
                                                    <div class="card-body">
 | 
					                                                    <div class="checkbox" id="${el2.item_id}">
 | 
				
			||||||
                                                    ${el2.name}${el2.count}
 | 
					                                                    <input style="margin-left: 5%;margin-right: 1%;" type="checkbox" value=""><span class="ed" id="ed">${el2.name}</span><button class="btn itemedit"><i class="far fa-edit"></i></button><span class="ed2" id="ed2" style="float: right;margin-right: 5%;">${el2.count}x</span>
 | 
				
			||||||
                                                    </div>
 | 
					                                                    </div>
 | 
				
			||||||
                                                  </div>`);
 | 
					                                                  </div>`);
 | 
				
			||||||
                                                }
 | 
					                                                }
 | 
				
			||||||
 | 
					                                            }
 | 
				
			||||||
 | 
					                                        
 | 
				
			||||||
 | 
					                                            $(".alleMem").append(`
 | 
				
			||||||
 | 
					                                            <center><span><img src="${res.admin.picture}" alt="Avatar" style="width:10%; border-radius: 50%;">
 | 
				
			||||||
 | 
					                                             
 | 
				
			||||||
 | 
					                                            ${res.admin.name}</span></center>
 | 
				
			||||||
 | 
					                                            <hr>
 | 
				
			||||||
 | 
					                                        `);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                                        if (res.members.length == "0") {
 | 
				
			||||||
 | 
					                                            $(".alleMem").append("<center><span>Noch keine Mitglieder vorhanden</span></center>");
 | 
				
			||||||
 | 
					                                        }
 | 
				
			||||||
 | 
					                                        else{
 | 
				
			||||||
 | 
					                                            for (let i = 0; i < res.members.length; i++) {
 | 
				
			||||||
 | 
					                                            const el = res.members[i];
 | 
				
			||||||
 | 
					                                            $(".alleMem").append(`
 | 
				
			||||||
 | 
					                                            <center class="uid" id="${el.username}"><span class="slid" id="${id}"><img src="${el.picture}" alt="Avatar" style="width:10%; border-radius: 50%;">
 | 
				
			||||||
 | 
					                                             
 | 
				
			||||||
 | 
					                                            ${el.name}
 | 
				
			||||||
 | 
					                                            
 | 
				
			||||||
 | 
					                                            <button class="btn exinvitemembersssss"><i class="fas fa-user-times"></i></button>
 | 
				
			||||||
 | 
					                                            </span></center>
 | 
				
			||||||
 | 
					                                        `);
 | 
				
			||||||
 | 
					                                        }
 | 
				
			||||||
 | 
					                                        
 | 
				
			||||||
                                        }
 | 
					                                        }
 | 
				
			||||||
                                            lala();
 | 
					                                            lala();
 | 
				
			||||||
                                            gruppenhinzu();
 | 
					                                            gruppenhinzu();
 | 
				
			||||||
                                            ItemAdden();
 | 
					                                            ItemAdden();
 | 
				
			||||||
                                            groupdelete();
 | 
					                                            groupdelete();
 | 
				
			||||||
 | 
					                                            groupbearbeiten();
 | 
				
			||||||
 | 
					                                            MemberAnzeigen();
 | 
				
			||||||
 | 
					                                            delMember();
 | 
				
			||||||
 | 
					                                            itembearbeiten();
 | 
				
			||||||
 | 
					                                            donepurchase();
 | 
				
			||||||
                                        },
 | 
					                                        },
 | 
				
			||||||
                                        error(err) {
 | 
					                                        error(err) {
 | 
				
			||||||
                                            console.log("Detail error userinfo_json: ", err);
 | 
					                                            console.log("Detail error userinfo_json: ", err);
 | 
				
			||||||
@@ -383,6 +576,91 @@ function Detail() {
 | 
				
			|||||||
        });
 | 
					        });
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					var glitemid = "";
 | 
				
			||||||
 | 
					function itembearbeiten() {
 | 
				
			||||||
 | 
					    $(".itemedit").click(function(){
 | 
				
			||||||
 | 
					        let getitemid = $(this).closest('.checkbox');
 | 
				
			||||||
 | 
					        let itemid = getitemid.attr('id');
 | 
				
			||||||
 | 
					        let getgroupid = $(this).closest('.groupid');
 | 
				
			||||||
 | 
					        let groupid = getgroupid.attr('id');
 | 
				
			||||||
 | 
					        let getslid = $(this).closest('.shoplisteid');
 | 
				
			||||||
 | 
					        let slid = getslid.attr('id');
 | 
				
			||||||
 | 
					        glitemid = itemid;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        console.log(itemid, groupid, slid);
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        let name = $(this).closest('div').find('span.ed').text();
 | 
				
			||||||
 | 
					        let anz = $(this).closest('div').find('span.ed2').text();
 | 
				
			||||||
 | 
					        let anzperfekt = anz.split("x")[0];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        console.log(name, anzperfekt);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        $(".eh").prop("id",`${slid}`);
 | 
				
			||||||
 | 
					        $(".eh2").prop("id",`${groupid}`);
 | 
				
			||||||
 | 
					        $(".eh3").prop("id",`${itemid}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        $(".GroupItemedit").modal('show');
 | 
				
			||||||
 | 
					        $("#itemnameb").val(name);
 | 
				
			||||||
 | 
					        $("#inputGroupSelect02").val(anzperfekt);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$(".itemhinzub").click(function(){
 | 
				
			||||||
 | 
					    let slid = $(this).closest(".eh").attr('id');
 | 
				
			||||||
 | 
					    let groupid = $(this).closest(".eh2").attr('id');
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    let name = $("#itemnameb").val();
 | 
				
			||||||
 | 
					    let anz = $("#inputGroupSelect02").val();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    console.log(glitemid);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    $.ajax({
 | 
				
			||||||
 | 
					        type: "PUT",
 | 
				
			||||||
 | 
					        url: "/item",
 | 
				
			||||||
 | 
					        data: {
 | 
				
			||||||
 | 
					            sl_id: slid,
 | 
				
			||||||
 | 
					            group_id: groupid,
 | 
				
			||||||
 | 
					            item_id: glitemid,
 | 
				
			||||||
 | 
					            name: name,
 | 
				
			||||||
 | 
					            count: anz
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        success(res) {
 | 
				
			||||||
 | 
					            console.log("item verändert");
 | 
				
			||||||
 | 
					            refreshDetailsl(slid);
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        error(err) {
 | 
				
			||||||
 | 
					            console.log("error");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function delMember(){
 | 
				
			||||||
 | 
					    $(".exinvitemembersssss").click(function(){
 | 
				
			||||||
 | 
					        let getid = $(this).closest('.slid');
 | 
				
			||||||
 | 
					        let shoplistid = getid.attr('id');
 | 
				
			||||||
 | 
					        let getid2 = $(this).closest('.uid');
 | 
				
			||||||
 | 
					        let username = getid2.attr('id');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        $.ajax({
 | 
				
			||||||
 | 
					            type: "DELETE",
 | 
				
			||||||
 | 
					            url: "/member",
 | 
				
			||||||
 | 
					            data: {
 | 
				
			||||||
 | 
					                sl_id: shoplistid,
 | 
				
			||||||
 | 
					                uid: username
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            success(res) {
 | 
				
			||||||
 | 
					                console.log("user entfernt");
 | 
				
			||||||
 | 
					                refreshDetailsl(shoplistid);
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            error(err) {
 | 
				
			||||||
 | 
					                console.log("error");
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function ItemAdden() {
 | 
					function ItemAdden() {
 | 
				
			||||||
    $(".itemadd").click(function () {
 | 
					    $(".itemadd").click(function () {
 | 
				
			||||||
@@ -395,38 +673,6 @@ function ItemAdden() {
 | 
				
			|||||||
        globalegraddid = grid;
 | 
					        globalegraddid = grid;
 | 
				
			||||||
        globaleAddZwischenID = slid;
 | 
					        globaleAddZwischenID = slid;
 | 
				
			||||||
        $('.GroupItemAdd').modal('show');
 | 
					        $('.GroupItemAdd').modal('show');
 | 
				
			||||||
 | 
					 | 
				
			||||||
        // firebase.auth().onAuthStateChanged(async function (user) {
 | 
					 | 
				
			||||||
        //     if (user) {
 | 
					 | 
				
			||||||
        //         firebase.auth().currentUser.getIdToken( /* forceRefresh */ true).then(function (idtoken) {
 | 
					 | 
				
			||||||
        //             $.ajax({
 | 
					 | 
				
			||||||
        //                 type: "GET",
 | 
					 | 
				
			||||||
        //                 url: "/shoppinglist_json/" + id,
 | 
					 | 
				
			||||||
        //                 data: {
 | 
					 | 
				
			||||||
        //                     idtoken: idtoken
 | 
					 | 
				
			||||||
        //                 },
 | 
					 | 
				
			||||||
        //                 success(result) {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        //                     console.log(result);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        //                     for (let i = 0; i < result.groups.length; i++) {
 | 
					 | 
				
			||||||
        //                         const el = result.groups[i];
 | 
					 | 
				
			||||||
                                
 | 
					 | 
				
			||||||
        //                         $(".custom-select-groups").append(`
 | 
					 | 
				
			||||||
        //                   <option class="select" value="${el.group_id}">${el.name}</option>
 | 
					 | 
				
			||||||
        //                 `);
 | 
					 | 
				
			||||||
        //                     }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        //                 },
 | 
					 | 
				
			||||||
        //                 error(err) {
 | 
					 | 
				
			||||||
        //                     console.log(err);
 | 
					 | 
				
			||||||
        //                 }
 | 
					 | 
				
			||||||
        //             });
 | 
					 | 
				
			||||||
        //         }).catch((error) => console.error("Get id token client error: ", error));
 | 
					 | 
				
			||||||
        //     } else {
 | 
					 | 
				
			||||||
        //         console.log("Check Auth error", user)
 | 
					 | 
				
			||||||
        //     }
 | 
					 | 
				
			||||||
        // });
 | 
					 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -453,6 +699,7 @@ $(".itemhinzu").click(function () {
 | 
				
			|||||||
                    success(result) {
 | 
					                    success(result) {
 | 
				
			||||||
                        $('.GroupItemAdd').modal('hide');
 | 
					                        $('.GroupItemAdd').modal('hide');
 | 
				
			||||||
                        console.log("post item");
 | 
					                        console.log("post item");
 | 
				
			||||||
 | 
					                        refreshDetailsl(globaleAddZwischenID);
 | 
				
			||||||
                    },
 | 
					                    },
 | 
				
			||||||
                    error(err) {
 | 
					                    error(err) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -488,7 +735,7 @@ function groupdelete() {
 | 
				
			|||||||
            },
 | 
					            },
 | 
				
			||||||
            success(res) {
 | 
					            success(res) {
 | 
				
			||||||
                console.log("card gelöscht");
 | 
					                console.log("card gelöscht");
 | 
				
			||||||
                $(`.${groupid}`).remove();
 | 
					                refreshDetailsl(shoplistid);
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            error(err) {
 | 
					            error(err) {
 | 
				
			||||||
                console.log("error");
 | 
					                console.log("error");
 | 
				
			||||||
@@ -504,9 +751,24 @@ $(".sledit").click(function(){
 | 
				
			|||||||
    let slid = $(this).closest(".card").attr('id');
 | 
					    let slid = $(this).closest(".card").attr('id');
 | 
				
			||||||
    let desc = $(this).closest('div').siblings().find('p.card-text').text();
 | 
					    let desc = $(this).closest('div').siblings().find('p.card-text').text();
 | 
				
			||||||
    let name = $(this).closest('div').siblings().find('h5.card-title').text();
 | 
					    let name = $(this).closest('div').siblings().find('h5.card-title').text();
 | 
				
			||||||
 | 
					    let color = $(this).closest('.card-header').css("background-color");
 | 
				
			||||||
    $(".editmodal").prop("id",`${slid}`);
 | 
					    $(".editmodal").prop("id",`${slid}`);
 | 
				
			||||||
    $("#editname").val(name);
 | 
					    $("#editname").val(name);
 | 
				
			||||||
    $("#editbeschreibung").val(desc);
 | 
					    $("#editbeschreibung").val(desc);
 | 
				
			||||||
 | 
					    var rgb = color.split("(")[1].split(")")[0];
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    var r = rgb.split(", ")[0];
 | 
				
			||||||
 | 
					    var g = rgb.split(", ")[1];
 | 
				
			||||||
 | 
					    var b = rgb.split(", ")[2];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    function rgbToHex (r,g,b){
 | 
				
			||||||
 | 
					        var bin = r << 16 | g << 8 | b;
 | 
				
			||||||
 | 
					        return (function(h){
 | 
				
			||||||
 | 
					            return new Array(7-h.length).join("0")+h
 | 
				
			||||||
 | 
					        })(bin.toString(16).toUpperCase())
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    $(".aktuelleFarbe").css("color", "#"+rgbToHex(r,g,b));
 | 
				
			||||||
});   
 | 
					});   
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -514,21 +776,295 @@ $(".update").click(function(){
 | 
				
			|||||||
    let name = $("#editname").val();
 | 
					    let name = $("#editname").val();
 | 
				
			||||||
    let desc = $("#editbeschreibung").val();
 | 
					    let desc = $("#editbeschreibung").val();
 | 
				
			||||||
    let id = $(this).closest(".editmodal").attr('id');
 | 
					    let id = $(this).closest(".editmodal").attr('id');
 | 
				
			||||||
 | 
					    let color = "";
 | 
				
			||||||
 | 
					    if($("input:checked").val()==null){
 | 
				
			||||||
 | 
					        color = $('.aktuelleFarbe').css("color");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    else{
 | 
				
			||||||
 | 
					        color = $("input:checked").val();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    firebase.auth().currentUser.getIdToken( /* forceRefresh */ true).then(function (idtoken) {
 | 
				
			||||||
    $.ajax({
 | 
					    $.ajax({
 | 
				
			||||||
        type: "PUT",
 | 
					        type: "PUT",
 | 
				
			||||||
        url: "/shoppinglist",
 | 
					        url: "/shoppinglist",
 | 
				
			||||||
        data: {
 | 
					        data: {
 | 
				
			||||||
            sl_id: id,
 | 
					            sl_id: id,
 | 
				
			||||||
            name: name,
 | 
					            name: name,
 | 
				
			||||||
            description: desc
 | 
					            description: desc,
 | 
				
			||||||
 | 
					            color: color,
 | 
				
			||||||
 | 
					            idtoken: idtoken
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        success(res){
 | 
					        success(res){
 | 
				
			||||||
 | 
					            $(".karten").remove();
 | 
				
			||||||
            $("#editname").val("");
 | 
					            $("#editname").val("");
 | 
				
			||||||
            $("#editbeschreibung").val("");
 | 
					            $("#editbeschreibung").val("");
 | 
				
			||||||
            $('#editsl').modal('hide');
 | 
					            $('#editsl').modal('hide');
 | 
				
			||||||
 | 
					            eigeneEinkaufslisten()
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        error(err){
 | 
					        error(err){
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					    });}).catch((error) => console.error("Get id token client error: ", error));
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function groupbearbeiten(){
 | 
				
			||||||
 | 
					$(".gredit").click(function(){
 | 
				
			||||||
 | 
					    $('#Listengroupbearbeiten').modal('show');
 | 
				
			||||||
 | 
					    let grid = $(this).closest(".groupid").attr('id');
 | 
				
			||||||
 | 
					    let slid = $(this).closest(".shoplisteid").attr('id');
 | 
				
			||||||
 | 
					    let name = $(this).closest('div').find('h5.title').text();
 | 
				
			||||||
 | 
					    let color = $(this).closest(".groupid").css("background-color");
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    $(".editgroudmodal").prop("id",`${slid}`);
 | 
				
			||||||
 | 
					    $(".grouid").prop("id",`${grid}`);
 | 
				
			||||||
 | 
					    $("#groupb").val(name);
 | 
				
			||||||
 | 
					    var rgb = color.split("(")[1].split(")")[0];
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    var r = rgb.split(", ")[0];
 | 
				
			||||||
 | 
					    var g = rgb.split(", ")[1];
 | 
				
			||||||
 | 
					    var b = rgb.split(", ")[2];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    function rgbToHex (r,g,b){
 | 
				
			||||||
 | 
					        var bin = r << 16 | g << 8 | b;
 | 
				
			||||||
 | 
					        return (function(h){
 | 
				
			||||||
 | 
					            return new Array(7-h.length).join("0")+h
 | 
				
			||||||
 | 
					        })(bin.toString(16).toUpperCase())
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    $(".aktuelleFarbe2").css("color", "#"+rgbToHex(r,g,b));
 | 
				
			||||||
 | 
					})}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$(".gruppbea").click(function(){
 | 
				
			||||||
 | 
					    let name = $("#groupb").val();
 | 
				
			||||||
 | 
					    let slid = $(this).closest(".editgroudmodal").attr('id');
 | 
				
			||||||
 | 
					    let grid = $(this).closest(".grouid").attr('id');
 | 
				
			||||||
 | 
					    let color = "";
 | 
				
			||||||
 | 
					    if($("input:checked").val()==null){
 | 
				
			||||||
 | 
					        color = $('.aktuelleFarbe2').css("color");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    else{
 | 
				
			||||||
 | 
					        color = $("input:checked").val();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    firebase.auth().currentUser.getIdToken( /* forceRefresh */ true).then(function (idtoken) {
 | 
				
			||||||
 | 
					    $.ajax({
 | 
				
			||||||
 | 
					        type: "PUT",
 | 
				
			||||||
 | 
					        url: "/group",
 | 
				
			||||||
 | 
					        data: {
 | 
				
			||||||
 | 
					            sl_id: slid,
 | 
				
			||||||
 | 
					            group_id: grid,
 | 
				
			||||||
 | 
					            name: name,
 | 
				
			||||||
 | 
					            color: color,
 | 
				
			||||||
 | 
					            idtoken: idtoken
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        success(res){
 | 
				
			||||||
 | 
					            $("#groupb").val("");
 | 
				
			||||||
 | 
					            $('#gredit').modal('hide');
 | 
				
			||||||
 | 
					            refreshDetailsl(slid);
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        error(err){
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    })}).catch((error) => console.error("Get id token client error: ", error));
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function refreshDetailsl(slid){
 | 
				
			||||||
 | 
					    // $(".shoplisteid").remove();
 | 
				
			||||||
 | 
					    $(".shoplistid").remove();
 | 
				
			||||||
 | 
					    // $(".card-header").empty();
 | 
				
			||||||
 | 
					    $(".gruppeninhalt").empty();
 | 
				
			||||||
 | 
					            firebase.auth().onAuthStateChanged(async function (user) {
 | 
				
			||||||
 | 
					            if (user) {
 | 
				
			||||||
 | 
					                firebase.auth().currentUser.getIdToken( /* forceRefresh */ true).then(function (idtoken) {
 | 
				
			||||||
 | 
					                    $.ajax({
 | 
				
			||||||
 | 
					                        type: "GET",
 | 
				
			||||||
 | 
					                        url: "/shoppinglist_json/" + slid,
 | 
				
			||||||
 | 
					                        data: {
 | 
				
			||||||
 | 
					                            idtoken: idtoken
 | 
				
			||||||
 | 
					                        },
 | 
				
			||||||
 | 
					                        success(res) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            var link = "/dash/" + idtoken;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                                            $(".kopf").attr("style", `background-color:#${res.color}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                                            $(".card-header").append(`<div class="shoplistid" id="${res.sl_id}">
 | 
				
			||||||
 | 
					                                        <a href="${link}" style="left: 5px; margin-top: -50px;color: black;">
 | 
				
			||||||
 | 
					                                            <i class="fas fa-caret-left"></i>
 | 
				
			||||||
 | 
					                                        </a>
 | 
				
			||||||
 | 
					                                        <button class="btn groupadd" data-toggle="modal" data-target=".ListenDetailAdd"><i class="fas fa-plus"></i></button>
 | 
				
			||||||
 | 
					                                        <h1 class="text-center">
 | 
				
			||||||
 | 
					                                            ${res.name}
 | 
				
			||||||
 | 
					                                        </h1></div>
 | 
				
			||||||
 | 
					                                    `);
 | 
				
			||||||
 | 
					                                            for (let i = 0; i < res.groups.length; i++) {
 | 
				
			||||||
 | 
					                                                const el = res.groups[i];
 | 
				
			||||||
 | 
					                                                $(".gruppeninhalt").append(`<div class="col-md-6 col-lg-4 shoplisteid" id="${res.sl_id}">
 | 
				
			||||||
 | 
					                                        <div class="card mb-3 groupid ${el.group_id}" id="${el.group_id}" style="max-width: 18rem;background-color:#${el.color};">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                                            <div class="card-header">
 | 
				
			||||||
 | 
					                                                <h5 class="card-title title">${el.name}</h5>
 | 
				
			||||||
 | 
					                                                <button class="btn gredit"><i class="far fa-edit"></i></button>
 | 
				
			||||||
 | 
					                                                <button class="btn itemadd"><i class="fas fa-plus"></i></button>
 | 
				
			||||||
 | 
					                                                <button class="btn trashgroup"><i class="far fa-trash-alt"></i></button>
 | 
				
			||||||
 | 
					                                                <button class="btn seemore" type="button" data-toggle="collapse" data-target="#${el.name}" aria-expanded="false" aria-controls="${el.name}"><i class="fas fa-caret-down"></i></button>
 | 
				
			||||||
 | 
					                                                <div class="${el.name}">
 | 
				
			||||||
 | 
					                                                </div>
 | 
				
			||||||
 | 
					                                            </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                                        </div></div>
 | 
				
			||||||
 | 
					                                        `);
 | 
				
			||||||
 | 
					                                                for (let x = 0; x < el.content.length; x++) {
 | 
				
			||||||
 | 
					                                                    const el2 = el.content[x]
 | 
				
			||||||
 | 
					                                                    $(`.${el.name}`).append(`<div class="collapse mb-1" id="${el.name}">
 | 
				
			||||||
 | 
					                                                    <div style="background-color: transparent; border: 1px solid #303133; border-radius: 15px;">
 | 
				
			||||||
 | 
					                                                    <div class="checkbox" id="${el2.item_id}">
 | 
				
			||||||
 | 
					                                                    <input class="check" style="margin-left: 5%;margin-right: 1%;" type="checkbox" value=""><span class="ed" id="ed">${el2.name}</span><button class="btn itemedit"><i class="far fa-edit"></i></button><span class="ed2" id="ed2" style="float: right;margin-right: 5%;">${el2.count}x</span>
 | 
				
			||||||
 | 
					                                                    </div>
 | 
				
			||||||
 | 
					                                                  </div>`) 
 | 
				
			||||||
 | 
					                                                }
 | 
				
			||||||
 | 
					                                            }
 | 
				
			||||||
 | 
					                                            lala();
 | 
				
			||||||
 | 
					                                            // gruppenhinzu();
 | 
				
			||||||
 | 
					                                            ItemAdden();
 | 
				
			||||||
 | 
					                                            groupdelete();
 | 
				
			||||||
 | 
					                                            groupbearbeiten();
 | 
				
			||||||
 | 
					                                            itembearbeiten();
 | 
				
			||||||
 | 
					                                            donepurchase();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                        },
 | 
				
			||||||
 | 
					                        error(err) {
 | 
				
			||||||
 | 
					                            console.log(err);
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                    });
 | 
				
			||||||
 | 
					                }).catch((error) => console.error("Get id token client error: ", error));
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					                console.log("Check Auth error", user)
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$(".linkinfo").click(function(){
 | 
				
			||||||
 | 
					    firebase.auth().currentUser.getIdToken( /* forceRefresh */ true).then(function (idtoken) {
 | 
				
			||||||
 | 
					        $.ajax({
 | 
				
			||||||
 | 
					            type: "GET",
 | 
				
			||||||
 | 
					            url: "/group",
 | 
				
			||||||
 | 
					            data: {
 | 
				
			||||||
 | 
					                idtoken: idtoken
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            success(res){
 | 
				
			||||||
 | 
					                $("#groupb").val("");
 | 
				
			||||||
 | 
					                $('#gredit').modal('hide');
 | 
				
			||||||
 | 
					                refreshDetailsl(slid);
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            error(err){
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					    })}).catch((error) => console.error("Get id token client error: ", error));
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function shareinvite(){
 | 
				
			||||||
 | 
					   $(".postshare").click(function(){
 | 
				
			||||||
 | 
					    let slid = $(this).closest(".card").attr('id');
 | 
				
			||||||
 | 
					    firebase.auth().currentUser.getIdToken( /* forceRefresh */ true).then(function (idtoken) {
 | 
				
			||||||
 | 
					        $.ajax({
 | 
				
			||||||
 | 
					            type: "POST",
 | 
				
			||||||
 | 
					            url: "/invite",
 | 
				
			||||||
 | 
					            data: {
 | 
				
			||||||
 | 
					                sl_id: slid,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            success(res){
 | 
				
			||||||
 | 
					                firebase.auth().currentUser.getIdToken( /* forceRefresh */ true).then(function (idtoken) {
 | 
				
			||||||
 | 
					                    $.ajax({
 | 
				
			||||||
 | 
					                        type: "GET",
 | 
				
			||||||
 | 
					                        url: "/shoppinglist_json/"+slid,
 | 
				
			||||||
 | 
					                        data: {
 | 
				
			||||||
 | 
					                            idtoken: idtoken
 | 
				
			||||||
 | 
					                        },
 | 
				
			||||||
 | 
					                        success(res){
 | 
				
			||||||
 | 
					                           $(".InviteLinkAnzeigen").modal('show');
 | 
				
			||||||
 | 
					                           console.log(res);
 | 
				
			||||||
 | 
					                           $("#InviteLink").val(res.invitelink);
 | 
				
			||||||
 | 
					                           copy();
 | 
				
			||||||
 | 
					                           
 | 
				
			||||||
 | 
					                        },
 | 
				
			||||||
 | 
					                        error(err){
 | 
				
			||||||
 | 
					                
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                })}).catch((error) => console.error("Get id token client error: ", error));
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            error(err){
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					    })}).catch((error) => console.error("Get id token client error: ", error));
 | 
				
			||||||
 | 
					}) 
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function copy(){
 | 
				
			||||||
 | 
					    $(".copy").click(function(){
 | 
				
			||||||
 | 
					        var copyText = document.getElementById("InviteLink");
 | 
				
			||||||
 | 
					        copyText.select();
 | 
				
			||||||
 | 
					        document.execCommand("copy");
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$(".beitreten").click(function(){
 | 
				
			||||||
 | 
					    let invitelink = $("#slbeitreten").val();
 | 
				
			||||||
 | 
					    console.log(invitelink);
 | 
				
			||||||
 | 
					        $.ajax({
 | 
				
			||||||
 | 
					            type: "GET",
 | 
				
			||||||
 | 
					            url: "/invite/:" + invitelink,
 | 
				
			||||||
 | 
					            success(res){
 | 
				
			||||||
 | 
					                console.log("funktioniert");
 | 
				
			||||||
 | 
					                // geteilteEinkaufslisten();
 | 
				
			||||||
 | 
					                // $(".beiLink").modal('hide');
 | 
				
			||||||
 | 
					                // $("html").empty();
 | 
				
			||||||
 | 
					                // $("html").append(`${res}`);
 | 
				
			||||||
 | 
					                // console.log(res);
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            error(err){
 | 
				
			||||||
 | 
					                console.log(err);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$(".Modalbeitreten").click(function(){
 | 
				
			||||||
 | 
					    $(".beiLink").modal('show');
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$(".purchased-items").click(function(){
 | 
				
			||||||
 | 
					    $(".cardausgabe").hide();
 | 
				
			||||||
 | 
					    $(".sharecards").hide();
 | 
				
			||||||
 | 
					    $(".strich").hide();
 | 
				
			||||||
 | 
					    firebase.auth().currentUser.getIdToken( /* forceRefresh */ true).then(function (idtoken) {
 | 
				
			||||||
 | 
					    $.ajax({
 | 
				
			||||||
 | 
					        type:"GET",
 | 
				
			||||||
 | 
					        url: "/donepurchases",
 | 
				
			||||||
 | 
					        success(res){
 | 
				
			||||||
 | 
					            // refreshDetailsl(slid);
 | 
				
			||||||
 | 
					            console.log(res);
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        error(err){
 | 
				
			||||||
 | 
					            console.log(error);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    });}).catch((error) => console.error("Get id token client error: ", error));
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function donepurchase(){
 | 
				
			||||||
 | 
					$(".check").click(function(){
 | 
				
			||||||
 | 
					    if($("input:checked")==true){
 | 
				
			||||||
 | 
					        alert("ja");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					// $.ajax({
 | 
				
			||||||
 | 
					//     type:"POST",
 | 
				
			||||||
 | 
					//     url: "/movedoneitem",
 | 
				
			||||||
 | 
					//     success(res){
 | 
				
			||||||
 | 
					//         // refreshDetailsl(slid);
 | 
				
			||||||
 | 
					//         console.log(yay);
 | 
				
			||||||
 | 
					//     },
 | 
				
			||||||
 | 
					//     error(err){
 | 
				
			||||||
 | 
					//         console.log(error);
 | 
				
			||||||
 | 
					//     }
 | 
				
			||||||
 | 
					// })
 | 
				
			||||||
 | 
					});    
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,3 +1,11 @@
 | 
				
			|||||||
 | 
					body{
 | 
				
			||||||
 | 
					    background-image: url("./../images/Hintergrund.png");
 | 
				
			||||||
 | 
					    background-repeat: no-repeat;
 | 
				
			||||||
 | 
					    position: sticky;
 | 
				
			||||||
 | 
					    background-size: cover;
 | 
				
			||||||
 | 
					    background-attachment: fixed
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.logo-image{
 | 
					.logo-image{
 | 
				
			||||||
    width: 46px;
 | 
					    width: 46px;
 | 
				
			||||||
    height: 46px;
 | 
					    height: 46px;
 | 
				
			||||||
@@ -10,11 +18,20 @@
 | 
				
			|||||||
    margin: 5%;
 | 
					    margin: 5%;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.purchased-items{
 | 
				
			||||||
 | 
					    background-color: transparent;
 | 
				
			||||||
 | 
					    size: 50px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.card{
 | 
					.card{
 | 
				
			||||||
    margin: O auto;
 | 
					    margin: O auto;
 | 
				
			||||||
    float: none;
 | 
					    float: none;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.checkbox{
 | 
				
			||||||
 | 
					    background-color: transparent;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.btn-light{
 | 
					.btn-light{
 | 
				
			||||||
    border-color: 1px solid black;
 | 
					    border-color: 1px solid black;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -25,6 +42,18 @@
 | 
				
			|||||||
    right: 5px;
 | 
					    right: 5px;
 | 
				
			||||||
    margin-top:-7px;
 | 
					    margin-top:-7px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					.sharetrash{
 | 
				
			||||||
 | 
					    background: transparent;
 | 
				
			||||||
 | 
					    position:absolute;
 | 
				
			||||||
 | 
					    right: 5px;
 | 
				
			||||||
 | 
					    margin-top:-7px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.exinvitemembersssss{
 | 
				
			||||||
 | 
					    background: transparent;
 | 
				
			||||||
 | 
					    position:fixed;
 | 
				
			||||||
 | 
					    margin-top: -7px; 
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.edit{
 | 
					.edit{
 | 
				
			||||||
    background: transparent;
 | 
					    background: transparent;
 | 
				
			||||||
@@ -33,12 +62,45 @@
 | 
				
			|||||||
    margin-top:-7px;
 | 
					    margin-top:-7px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.shareedit{
 | 
				
			||||||
 | 
					    background: transparent;
 | 
				
			||||||
 | 
					    position: absolute;
 | 
				
			||||||
 | 
					    right: 29px;
 | 
				
			||||||
 | 
					    margin-top:-7px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.showMembers{
 | 
				
			||||||
 | 
					    background: transparent;
 | 
				
			||||||
 | 
					    margin-top: -2%;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.sledit{
 | 
					.sledit{
 | 
				
			||||||
    background: transparent;
 | 
					    background: transparent;
 | 
				
			||||||
    position: absolute;
 | 
					    position: absolute;
 | 
				
			||||||
    margin-top: -7px;
 | 
					    margin-top: -7px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.postshare{
 | 
				
			||||||
 | 
					    background: transparent;
 | 
				
			||||||
 | 
					    position: absolute;
 | 
				
			||||||
 | 
					    margin-top: -5px;
 | 
				
			||||||
 | 
					    margin-left: 23px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.gredit{
 | 
				
			||||||
 | 
					    background: transparent;
 | 
				
			||||||
 | 
					    position: absolute;
 | 
				
			||||||
 | 
					    right: 67px;
 | 
				
			||||||
 | 
					    margin-top:-40px;
 | 
				
			||||||
 | 
					    border: 0px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.itemedit{
 | 
				
			||||||
 | 
					    background: transparent;
 | 
				
			||||||
 | 
					    position: absolute;
 | 
				
			||||||
 | 
					    margin-top:-8px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.groupadd{
 | 
					.groupadd{
 | 
				
			||||||
    background: transparent;
 | 
					    background: transparent;
 | 
				
			||||||
    position: absolute;
 | 
					    position: absolute;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,7 +18,7 @@
 | 
				
			|||||||
<body id="vue-app">
 | 
					<body id="vue-app">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <!-- Navbar -->
 | 
					    <!-- Navbar -->
 | 
				
			||||||
    <nav class="navbar sticky-top navbar-light bg-light" style="background-color:rgb(200, 200, 201)">
 | 
					    <nav class="navbar sticky-top navbar-light " style="background-color:rgba(92, 92, 97, 0.856)">
 | 
				
			||||||
        <a class="navbar-brand" id="dashurl">
 | 
					        <a class="navbar-brand" id="dashurl">
 | 
				
			||||||
            <div class="logo-image">
 | 
					            <div class="logo-image">
 | 
				
			||||||
                <img src="/images/Logo.png" class="img-fluid">
 | 
					                <img src="/images/Logo.png" class="img-fluid">
 | 
				
			||||||
@@ -27,19 +27,23 @@
 | 
				
			|||||||
        <ul class="nav justify-content-end liste">
 | 
					        <ul class="nav justify-content-end liste">
 | 
				
			||||||
            <li class="nav-item">
 | 
					            <li class="nav-item">
 | 
				
			||||||
                <!-- <a class="nav-link active" href="#">Add</a> -->
 | 
					                <!-- <a class="nav-link active" href="#">Add</a> -->
 | 
				
			||||||
                <button class="btn btn-outline-light border-secondary sl_add" style="color: black">Shoppingliste
 | 
					                <button class="btn btn-outline-light sl_add" >Shoppingliste
 | 
				
			||||||
                    Hinzufügen</button>
 | 
					                    Hinzufügen</button>
 | 
				
			||||||
            </li>
 | 
					            </li>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        </ul>
 | 
					        </ul>
 | 
				
			||||||
        <ul class="nav justify-content-end liste">
 | 
					        <ul class="nav justify-content-end liste">
 | 
				
			||||||
            <li class="nav-item">
 | 
					            <li class="nav-item">
 | 
				
			||||||
                <a class="btn btn-outline-light border-secondary userbearbeiten" href="/user" style="color: black">User
 | 
					                <a class="btn btn-outline-light userbearbeiten" href="/user" >User
 | 
				
			||||||
                    bearbeiten</a>
 | 
					                    bearbeiten</a>
 | 
				
			||||||
            </li>
 | 
					            </li>
 | 
				
			||||||
             
 | 
					             
 | 
				
			||||||
            <li class="nav-item">
 | 
					            <li class="nav-item">
 | 
				
			||||||
                <button class="btn btn-outline-danger logout" style="color: red">Logout</button>
 | 
					                    <button class="btn btn-outline-light Modalbeitreten">Invite Link</button>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					             
 | 
				
			||||||
 | 
					            <li class="nav-item">
 | 
				
			||||||
 | 
					                <button class="btn btn-outline-danger logout">Logout</button>
 | 
				
			||||||
            </li>
 | 
					            </li>
 | 
				
			||||||
        </ul>
 | 
					        </ul>
 | 
				
			||||||
        <!-- <a href="/logout"> -->
 | 
					        <!-- <a href="/logout"> -->
 | 
				
			||||||
@@ -48,8 +52,9 @@
 | 
				
			|||||||
        <!-- </a> -->
 | 
					        <!-- </a> -->
 | 
				
			||||||
    </nav>
 | 
					    </nav>
 | 
				
			||||||
    <br>
 | 
					    <br>
 | 
				
			||||||
    <br>
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <center><button class="btn purchased-items"><h5>Erledigte Einkäufe</h5></button></center>
 | 
				
			||||||
 | 
					    <div class="strich mb-4" style="margin-left: 2%;margin-right: 2%;"><hr style="border: 1px solid rgba(92, 92, 97, 0.767);"></div>
 | 
				
			||||||
    <!-- alle cards-->
 | 
					    <!-- alle cards-->
 | 
				
			||||||
    <div class="container justify-content-center cardausgabe">
 | 
					    <div class="container justify-content-center cardausgabe">
 | 
				
			||||||
        <div class="card-columns">
 | 
					        <div class="card-columns">
 | 
				
			||||||
@@ -57,10 +62,13 @@
 | 
				
			|||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
 | 
					    <div class="strich mb-4" style="margin-left: 2%;margin-right: 2%;"><hr style="border: 1px solid rgba(92, 92, 97, 0.767);"></div>
 | 
				
			||||||
    <!-- shares cards -->
 | 
					    <!-- shared cards -->
 | 
				
			||||||
    <div class="row justify-content-center ">
 | 
					    <div class="container justify-content-center sharecards">
 | 
				
			||||||
        <div class="container shared-cards"></div>
 | 
					        <div class="card-columns">
 | 
				
			||||||
 | 
					            <div class="shared-cards">
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -79,8 +87,72 @@
 | 
				
			|||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <!-- Modal Link -->
 | 
				
			||||||
 | 
					    <div class="modal fade bd-example-modal-sm beiLink" tabindex="-1" role="dialog"
 | 
				
			||||||
 | 
					        aria-labelledby="mySmallModalLabel" aria-hidden="true">
 | 
				
			||||||
 | 
					        <div class="modal-dialog modal-sm">
 | 
				
			||||||
 | 
					            <div class="modal-content">
 | 
				
			||||||
 | 
					                <div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <!-- Modal Group Hinzufügen -->
 | 
					                    <center>
 | 
				
			||||||
 | 
					                        <p class="layout ueberschrift">Shoppingliste beitreten</p>
 | 
				
			||||||
 | 
					                    </center>
 | 
				
			||||||
 | 
					                    <div class="form-group layout">
 | 
				
			||||||
 | 
					                        <input type="text" class="form-control" id="slbeitreten" placeholder="Link einfügen">
 | 
				
			||||||
 | 
					                    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    <center><button type="submit" class="btn btn-outline-dark beitreten">beitreten</button></center>
 | 
				
			||||||
 | 
					                    <br>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                </div>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <!-- Modal Members Anzeigen -->
 | 
				
			||||||
 | 
					    <div class="modal fade bd-example-modal-sm Mem" tabindex="-1" role="dialog"
 | 
				
			||||||
 | 
					        aria-labelledby="mySmallModalLabel" aria-hidden="true">
 | 
				
			||||||
 | 
					        <div class="modal-dialog modal-sm">
 | 
				
			||||||
 | 
					            <div class="modal-content">
 | 
				
			||||||
 | 
					                <div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    <center>
 | 
				
			||||||
 | 
					                        <p class="layout ueberschrift">Alle Mitglieder</p>
 | 
				
			||||||
 | 
					                    </center>
 | 
				
			||||||
 | 
					                    
 | 
				
			||||||
 | 
					                    <div class="card alleMem" style="border: 0px solid black;">
 | 
				
			||||||
 | 
					                        
 | 
				
			||||||
 | 
					                    </div>
 | 
				
			||||||
 | 
					                    <br>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                </div>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <!-- Modal Invite Link Anzeigen -->
 | 
				
			||||||
 | 
					    <div class="modal fade bd-example-modal-sm InviteLinkAnzeigen" tabindex="-1" role="dialog"
 | 
				
			||||||
 | 
					        aria-labelledby="mySmallModalLabel" aria-hidden="true">
 | 
				
			||||||
 | 
					        <div class="modal-dialog modal-sm">
 | 
				
			||||||
 | 
					            <div class="modal-content">
 | 
				
			||||||
 | 
					                <div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    <center>
 | 
				
			||||||
 | 
					                        <p class="layout ueberschrift">Invite Link</p>
 | 
				
			||||||
 | 
					                    </center>
 | 
				
			||||||
 | 
					                    <div class="input-group layout" style="max-width: 17rem;">
 | 
				
			||||||
 | 
					                        <input type="text" class="form-control" id="InviteLink">
 | 
				
			||||||
 | 
					                        <div class="input-group-append">
 | 
				
			||||||
 | 
					                          <button class="btn copy" type="button">Copy Link</button>
 | 
				
			||||||
 | 
					                        </div>
 | 
				
			||||||
 | 
					                      </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                </div>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <!-- Modal Group hinzufügen Hinzufügen -->
 | 
				
			||||||
    <div class="modal fade bd-example-modal-sm ListenDetailAdd" tabindex="-1" role="dialog"
 | 
					    <div class="modal fade bd-example-modal-sm ListenDetailAdd" tabindex="-1" role="dialog"
 | 
				
			||||||
        aria-labelledby="mySmallModalLabel" aria-hidden="true">
 | 
					        aria-labelledby="mySmallModalLabel" aria-hidden="true">
 | 
				
			||||||
        <div class="modal-dialog modal-sm">
 | 
					        <div class="modal-dialog modal-sm">
 | 
				
			||||||
@@ -177,6 +249,35 @@
 | 
				
			|||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <!-- Modal Item Bearbeiten -->
 | 
				
			||||||
 | 
					    <div class="modal fade bd-example-modal-sm GroupItemedit" tabindex="-1" role="dialog"
 | 
				
			||||||
 | 
					        aria-labelledby="mySmallModalLabel" aria-hidden="true">
 | 
				
			||||||
 | 
					        <div class="modal-dialog modal-sm eh" id="">
 | 
				
			||||||
 | 
					            <div class="modal-content eh2" id="">
 | 
				
			||||||
 | 
					                <div class="eh3" id=""></div>
 | 
				
			||||||
 | 
					                <div class="inhalt">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    <center>
 | 
				
			||||||
 | 
					                        <p class="layout ueberschrift">Item Bearbeiten</p>
 | 
				
			||||||
 | 
					                    </center>
 | 
				
			||||||
 | 
					                    <div class="form-group layout">
 | 
				
			||||||
 | 
					                        <label for="exampleInputEmail1">Gegenstand</label>
 | 
				
			||||||
 | 
					                        <input type="text" class="form-control" id="itemnameb" placeholder="zB: Coca Cola">
 | 
				
			||||||
 | 
					                    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    <div class="form-group layout">
 | 
				
			||||||
 | 
					                        <label for="Anzahl-example">Anzahl</label>
 | 
				
			||||||
 | 
					                        <input type="number" class="form-control" id="inputGroupSelect02" placeholder="zB: 2"
 | 
				
			||||||
 | 
					                            maxlength="3">
 | 
				
			||||||
 | 
					                    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                </div>
 | 
				
			||||||
 | 
					                <center><button type="submit" class="btn btn-outline-dark itemhinzub">Hinzufügen</button></center>
 | 
				
			||||||
 | 
					                <br>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <!-- Modal Shoppingliste Hinzufügen -->
 | 
					    <!-- Modal Shoppingliste Hinzufügen -->
 | 
				
			||||||
    <div class="modal fade bd-example-modal-sm EigeneListeAdd" tabindex="-1" id="EigeneListeAdd" role="dialog"
 | 
					    <div class="modal fade bd-example-modal-sm EigeneListeAdd" tabindex="-1" id="EigeneListeAdd" role="dialog"
 | 
				
			||||||
@@ -184,7 +285,9 @@
 | 
				
			|||||||
        <div class="modal-dialog modal-sm">
 | 
					        <div class="modal-dialog modal-sm">
 | 
				
			||||||
            <div class="modal-content">
 | 
					            <div class="modal-content">
 | 
				
			||||||
                <div>
 | 
					                <div>
 | 
				
			||||||
 | 
					                    <center>
 | 
				
			||||||
 | 
					                        <p class="layout ueberschrift">Shoppingliste hinzufügen</p>
 | 
				
			||||||
 | 
					                    </center>
 | 
				
			||||||
                    <div class="form-group layout">
 | 
					                    <div class="form-group layout">
 | 
				
			||||||
                        <label for="exampleInputEmail1">Name</label>
 | 
					                        <label for="exampleInputEmail1">Name</label>
 | 
				
			||||||
                        <input type="text" class="form-control" id="einkaufslistenname" placeholder="zB: Billa">
 | 
					                        <input type="text" class="form-control" id="einkaufslistenname" placeholder="zB: Billa">
 | 
				
			||||||
@@ -257,6 +360,9 @@
 | 
				
			|||||||
            <div class="modal-content editmodal" id="">
 | 
					            <div class="modal-content editmodal" id="">
 | 
				
			||||||
                <div>
 | 
					                <div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    <center>
 | 
				
			||||||
 | 
					                        <p class="layout ueberschrift">Schoppingliste bearbeiten</p>
 | 
				
			||||||
 | 
					                    </center>
 | 
				
			||||||
                    <div class="form-group layout">
 | 
					                    <div class="form-group layout">
 | 
				
			||||||
                        <label for="exampleInputEmail1">Name</label>
 | 
					                        <label for="exampleInputEmail1">Name</label>
 | 
				
			||||||
                        <input type="text" class="form-control" id="editname" placeholder="zB: Billa">
 | 
					                        <input type="text" class="form-control" id="editname" placeholder="zB: Billa">
 | 
				
			||||||
@@ -268,6 +374,52 @@
 | 
				
			|||||||
                            placeholder="zB: Großeinkauf bei Billa">
 | 
					                            placeholder="zB: Großeinkauf bei Billa">
 | 
				
			||||||
                    </div>
 | 
					                    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    <div class="form-group layout">
 | 
				
			||||||
 | 
					                        <label for="exampleInputPassword1">Farbe  </label>
 | 
				
			||||||
 | 
					                        <i class="fas fa-square-full aktuelleFarbe"></i>
 | 
				
			||||||
 | 
					                        <div class="farbeeen">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            <input type="radio" name="color" id="farbe1" value="F44336" />
 | 
				
			||||||
 | 
					                            <label for="farbe1"><span class="farbe1"></span></label>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            <input type="radio" name="color" id="farbe2" value="e91e63" />
 | 
				
			||||||
 | 
					                            <label for="farbe2"><span class="farbe2"></span></label>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            <input type="radio" name="color" id="farbe3" value="9c27b0" />
 | 
				
			||||||
 | 
					                            <label for="farbe3"><span class="farbe3"></span></label>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            <input type="radio" name="color" id="farbe4" value="673ab7" />
 | 
				
			||||||
 | 
					                            <label for="farbe4"><span class="farbe4"></span></label>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            <input type="radio" name="color" id="farbe5" value="3F51B5" />
 | 
				
			||||||
 | 
					                            <label for="farbe5"><span class="farbe5"></span></label>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            <input type="radio" name="color" id="farbe6" value="2196F3" />
 | 
				
			||||||
 | 
					                            <label for="farbe6"><span class="farbe6"></span></label>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            <br>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            <input type="radio" name="color" id="farbe7" value="03a9f4" />
 | 
				
			||||||
 | 
					                            <label for="farbe7"><span class="farbe7"></span></label>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            <input type="radio" name="color" id="farbe8" value="00bcd4" />
 | 
				
			||||||
 | 
					                            <label for="farbe8"><span class="farbe8"></span></label>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            <input type="radio" name="color" id="farbe9" value="009688" />
 | 
				
			||||||
 | 
					                            <label for="farbe9"><span class="farbe9"></span></label>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            <input type="radio" name="color" id="farbe10" value="4caf50" />
 | 
				
			||||||
 | 
					                            <label for="farbe10"><span class="farbe10"></span></label>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            <input type="radio" name="color" id="farbe11" value="8bc34a" />
 | 
				
			||||||
 | 
					                            <label for="farbe11"><span class="farbe11"></span></label>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            <input type="radio" name="color" id="farbe12" value="cddc39" />
 | 
				
			||||||
 | 
					                            <label for="farbe12"><span class="farbe12"></span></label>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                        </div>
 | 
				
			||||||
 | 
					                    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    <center><button type="submit" class="btn btn-outline-dark update">Hinzufügen</button></center>
 | 
					                    <center><button type="submit" class="btn btn-outline-dark update">Hinzufügen</button></center>
 | 
				
			||||||
                    <br>
 | 
					                    <br>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -276,6 +428,75 @@
 | 
				
			|||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <!-- Modal Group bearbeiten -->
 | 
				
			||||||
 | 
					    <div class="modal fade bd-example-modal-sm Listengroupbearbeiten" id="Listengroupbearbeiten" tabindex="-1" role="dialog"
 | 
				
			||||||
 | 
					        aria-labelledby="Listengroupbearbeiten" aria-hidden="true">
 | 
				
			||||||
 | 
					        <div class="modal-dialog modal-sm">
 | 
				
			||||||
 | 
					            <div class="modal-content editgroudmodal slid" id="">
 | 
				
			||||||
 | 
					                <div class="grouid" id="">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    <center>
 | 
				
			||||||
 | 
					                        <p class="layout ueberschrift">Group bearbeiten</p>
 | 
				
			||||||
 | 
					                    </center>
 | 
				
			||||||
 | 
					                    <div class="form-group layout">
 | 
				
			||||||
 | 
					                        <label for="exampleInputEmail1">Name</label>
 | 
				
			||||||
 | 
					                        <input type="text" class="form-control" id="groupb" placeholder="zB: Getränke">
 | 
				
			||||||
 | 
					                    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    <div class="form-group layout">
 | 
				
			||||||
 | 
					                        <label for="exampleInputPassword1">Farbe:  </label>
 | 
				
			||||||
 | 
					                        <i class="fas fa-square-full aktuelleFarbe2"></i>
 | 
				
			||||||
 | 
					                        <div class="farbeeen">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            <input type="radio" name="color" id="farbe1" value="F44336" />
 | 
				
			||||||
 | 
					                            <label for="farbe1"><span class="farbe1"></span></label>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            <input type="radio" name="color" id="farbe2" value="e91e63" />
 | 
				
			||||||
 | 
					                            <label for="farbe2"><span class="farbe2"></span></label>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            <input type="radio" name="color" id="farbe3" value="9c27b0" />
 | 
				
			||||||
 | 
					                            <label for="farbe3"><span class="farbe3"></span></label>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            <input type="radio" name="color" id="farbe4" value="673ab7" />
 | 
				
			||||||
 | 
					                            <label for="farbe4"><span class="farbe4"></span></label>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            <input type="radio" name="color" id="farbe5" value="3F51B5" />
 | 
				
			||||||
 | 
					                            <label for="farbe5"><span class="farbe5"></span></label>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            <input type="radio" name="color" id="farbe6" value="2196F3" />
 | 
				
			||||||
 | 
					                            <label for="farbe6"><span class="farbe6"></span></label>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            <br>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            <input type="radio" name="color" id="farbe7" value="03a9f4" />
 | 
				
			||||||
 | 
					                            <label for="farbe7"><span class="farbe7"></span></label>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            <input type="radio" name="color" id="farbe8" value="00bcd4" />
 | 
				
			||||||
 | 
					                            <label for="farbe8"><span class="farbe8"></span></label>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            <input type="radio" name="color" id="farbe9" value="009688" />
 | 
				
			||||||
 | 
					                            <label for="farbe9"><span class="farbe9"></span></label>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            <input type="radio" name="color" id="farbe10" value="4caf50" />
 | 
				
			||||||
 | 
					                            <label for="farbe10"><span class="farbe10"></span></label>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            <input type="radio" name="color" id="farbe11" value="8bc34a" />
 | 
				
			||||||
 | 
					                            <label for="farbe11"><span class="farbe11"></span></label>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            <input type="radio" name="color" id="farbe12" value="cddc39" />
 | 
				
			||||||
 | 
					                            <label for="farbe12"><span class="farbe12"></span></label>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                        </div>
 | 
				
			||||||
 | 
					                    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    <center><button type="submit" class="btn btn-outline-dark gruppbea">Hinzufügen</button></center>
 | 
				
			||||||
 | 
					                    <br>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                </div>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <!-- <a href="/shoppinglist_json/0">dfasdfghjklöghjkl</a> -->
 | 
					    <!-- <a href="/shoppinglist_json/0">dfasdfghjklöghjkl</a> -->
 | 
				
			||||||
    <!-- <a href="/myshoppinglists">Meine Einkaufslisten anzeigen</a><br>
 | 
					    <!-- <a href="/myshoppinglists">Meine Einkaufslisten anzeigen</a><br>
 | 
				
			||||||
    <a href="/sharedshoppinglists">Mit mir geteilte Einkaufslisten anzeigen</a><br>
 | 
					    <a href="/sharedshoppinglists">Mit mir geteilte Einkaufslisten anzeigen</a><br>
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user