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;
}