diff --git a/plan/do.php b/plan/do.php index 7d36f69..515dcd7 100644 --- a/plan/do.php +++ b/plan/do.php @@ -1,13 +1,17 @@ error,1); } + else if($data['plan'] == 'spaces'){ + $spaces = []; + $getOwnedSpacesSQL = "SELECT space_id, space_name, owner_id userid FROM plan_space s WHERE s.owner_id = $user_id;"; + $getMemberSpacesSQL = "SELECT s.space_id, s.space_name, member_id userid FROM plan_space_member sm INNER JOIN plan_space s ON sm.space_id = s.space_id WHERE sm.member_id = $user_id;"; + if(($getOwnedPlans = $db->query($getOwnedSpacesSQL)) && ($getMemberSpaces = $db->query($getMemberSpacesSQL))){ + + $numOwned = 1; + while($row = $getOwnedPlans->fetch_assoc()){ + if($row['space_name'] == ''){ + $row['space_name'] = "Personal space ".$numOwned; + } + $spaces[] = $row; + $numOwned++; + } + + $numShared = 1; + while($row = $getMemberSpaces->fetch_assoc()){ + if($row['space_name'] == ''){ + $row['space_name'] = "Shared space ".$numShared; + } + $spaces[] = $row; + $numShared++; + } + + if(isset($_SESSION['lastSpace'])){ + $returning['lastSpace'] = $_SESSION['lastSpace']; + } + $returning['spaces'] = $spaces; + + returns($returning); + } + returns($db->error,1); + } + else { $sql = "SELECT `plan_store_id`, `name`, `created` FROM plan_store WHERE space_id = $spaceID"; @@ -147,6 +185,10 @@ if(!empty($data) && isset($user_id)){ returns($db->error,1); } + try { + $_SESSION['lastSpace'] = $spaceID; + } catch (Exception $e){} + $returns[] = $stores; } } diff --git a/plan/index.php b/plan/index.php index c56063c..9630357 100644 --- a/plan/index.php +++ b/plan/index.php @@ -9,6 +9,15 @@

Grocery Assist

+
+
+ + +
+
+

Please enable javascript for this page to work
diff --git a/plan/plan.js b/plan/plan.js index db6a5ae..560f01d 100644 --- a/plan/plan.js +++ b/plan/plan.js @@ -369,6 +369,7 @@ class Store { } var stores = []; +$("#stores").html(""); $("#addStore").click(ev => { stores.push(new Store()); @@ -385,7 +386,42 @@ $("body").on('click', function(ev){ } }); -var spaceID = 0; +let spaceID = 0; +function getSpaces(){ + return ajaxReq({plan: 'spaces'}).done(json => { + let optionsHtml = ""; + + console.log(json); + + let spaceNum = 1; + for(const spaceI in json.data.spaces){ + const space = json.data.spaces[spaceI]; + if(spaceID === 0){ + spaceID = space['space_id']; + } + let spaceName = space['space_name'] || "Space "+spaceNum; + optionsHtml += "\n"; + spaceNum++; + } + + let spaceSelectElem = $("#spaceSelect"); + spaceSelectElem + .html(optionsHtml) + .on('change', ev => { + spaceID = $(ev.target).val(); + getStores(spaceID); + }); + + if(typeof json.data.lastSpace !== "undefined"){ + spaceID = Number(json.data.lastSpace); + spaceSelectElem.val(spaceID); + } + }); + + +} +getSpaces().done(() => { getStores(spaceID); }); + // GET STORES function getStores(spaceID){ spaceID = spaceID || 0; @@ -420,7 +456,6 @@ function getStores(spaceID){ }) .fail(handleAjaxErrors); } -getStores(spaceID); function ajaxReq( data ){ diff --git a/webdata/init.php b/webdata/init.php index 835537c..b736256 100644 --- a/webdata/init.php +++ b/webdata/init.php @@ -54,8 +54,8 @@ function getHtmlHeaders($prepend = ""){ - - + \n"; } @@ -158,6 +158,7 @@ function checkLogin(): bool{ } } + unset($_SESSION['user_key']); return false; }