Mercurial > hg > fapweb
changeset 624:aad32d21091f
Some work on settings groups.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Sat, 01 Nov 2014 06:18:17 +0200 |
parents | 8e6331d7870d |
children | b6e64ad83ece |
files | admajax.php admin.js admin.php |
diffstat | 3 files changed, 103 insertions(+), 47 deletions(-) [+] |
line wrap: on
line diff
--- a/admajax.php Sat Nov 01 05:46:38 2014 +0200 +++ b/admajax.php Sat Nov 01 06:18:17 2014 +0200 @@ -1191,49 +1191,61 @@ echo stGetCompoData($res["id"], $res, "co"); break; + case "settingslist": + $index = 0; + foreach (stExecSQL("SELECT * FROM settings_groups") as $group) + { + if ($index++ > 0) echo ","; + echo "\"".$group["id"]."\":\"".chentities($group["name"])."\""; + } + break; case "settings": - $prefix = "st"; - - echo - "<h1>Site settings</h1>\n". - "<form method=\"post\" action=\"\" onsubmit=\"return jsUpdateSettings()\">\n". - "<table>\n"; - foreach (stExecSQL("SELECT * FROM settings WHERE vtype<>".VT_TEXT." ORDER BY vtype ASC") as $item) + $group = stFetchSQL(stPrepareSQL("SELECT * FROM settings_groups WHERE id=%D", "id")); + if ($group !== FALSE) { + $prefix = "st"; echo - " <tr>\n". - " <td>"; - $id = $item["key"]; - switch ($item["vtype"]) + "<h1>".chentities($group["description"])."</h1>\n". + "<form method=\"post\" action=\"\" onsubmit=\"return jsUpdateSettings(".$group["id"].")\">\n". + "<table>\n"; + + foreach (stExecSQL("SELECT * FROM settings WHERE vtype<>".VT_TEXT." AND vgroup=".$group["id"]." ORDER BY vtype ASC") as $item) { - case VT_INT: - echo stGetFormTextInput(10, 10, "", $id, $prefix, $item["vint"]); - break; - case VT_STR: - echo stGetFormTextInput(40, 128, "", $id, $prefix, $item["vstr"]); - break; - case VT_BOOL: - echo stGetFormCheckBoxInput("", $id, $prefix, $item["vint"], ""); - break; + echo + " <tr>\n". + " <td>"; + $id = $item["key"]; + switch ($item["vtype"]) + { + case VT_INT: + echo stGetFormTextInput(10, 10, "", $id, $prefix, $item["vint"]); + break; + case VT_STR: + echo stGetFormTextInput(40, 128, "", $id, $prefix, $item["vstr"]); + break; + case VT_BOOL: + echo stGetFormCheckBoxInput("", $id, $prefix, $item["vint"], ""); + break; + } + echo + "</td>\n". + " <td><label for=\"".$prefix.$id."\">".chentities($item["sdesc"])."</label></td>\n". + " </tr>\n"; } - echo - "</td>\n". - " <td><label for=\"".$prefix.$id."\">".chentities($item["sdesc"])."</label></td>\n". - " </tr>\n"; - } - echo "</table>\n".stGetSaveButton(); + echo "</table>\n".stGetSaveButton(); - foreach (stExecSQL("SELECT * FROM settings WHERE vtype=".VT_TEXT." ORDER BY key DESC") as $item) - { - echo - "<h2>".chentities($item["sdesc"])."</h2>\n". - stGetFormTextArea(10, 60, "", $item["key"], $prefix, $item["vtext"]). - "\n<br />\n". - stGetSaveButton(); + foreach (stExecSQL("SELECT * FROM settings WHERE vtype=".VT_TEXT." AND vgroup=".$group["id"]." ORDER BY key DESC") as $item) + { + echo + "<h2>".chentities($item["sdesc"])."</h2>\n". + stGetFormTextArea(10, 60, "", $item["key"], $prefix, $item["vtext"]). + "\n<br />\n". + stGetSaveButton(); + } + echo "</form>\n"; } - echo "</form>\n"; break; case "compolist":
--- a/admin.js Sat Nov 01 05:46:38 2014 +0200 +++ b/admin.js Sat Nov 01 06:18:17 2014 +0200 @@ -79,7 +79,7 @@ { switch (id) { - case "Settings" : jsRefreshItems("tabContCCSettings", "settings", ""); break; + case "Settings" : refreshCCSettings(); break; case "News" : jsRefreshItems("tabContCCNews", "news", ""); break; case "Attendees" : jsRefreshItems("tabContCCAttendees", "attendees", ""); activeAttendee = -1; break; case "Voting" : jsRefreshItems("tabContCCVoting", "voters", ""); break; @@ -90,6 +90,43 @@ } +function refreshCCSettings() +{ + var msuccess = function(txt) + { + var nitem = document.getElementById("tabContCCSettings"); + if (nitem) + { + if (nitem.innerHTML == "") + { + nitem.innerHTML = + "<div id=\"tabHeadersCS\" class=\"tabHeadersSub\"></div>" + + "<div id=\"tabContentsCS\" class=\"tabContentsSub\"></div>"; + } + + try { + var tmp = JSON.parse("{"+ txt +"}"); + registeredTabs["CS"] = tmp; + jsUpdateTabList("CS", ""); + if (activeTabs["CS"]) + jsSwitchActiveTab("CS", activeTabs["CS"]); + } + catch (err) { + jsMessageBox("JSON.parse("+ txt +") failure: "+ err); + } + } + } + + jsSendPOSTRequest("action=get&type=settingslist", msuccess); +} + + +function refreshDispatchCS(id) +{ + jsRefreshItems("tabContCS"+ id, "settings", "&id="+ id); +} + + function refreshCCAttendee(id) { jsRefreshItems("attendee"+ id, "attendee", "&id="+ id);
--- a/admin.php Sat Nov 01 05:46:38 2014 +0200 +++ b/admin.php Sat Nov 01 06:18:17 2014 +0200 @@ -13,29 +13,36 @@ function stCreateSettingsData() { - $args = array(); + echo + "\n". + "var jsSettingsArgs = [];\n"; - if (($res = stExecSQL("SELECT * FROM settings")) !== FALSE) + foreach (stExecSQL("SELECT * FROM settings_groups") as $group) { - foreach ($res as $item) + $args = array(); + if (($res = stExecSQL("SELECT * FROM settings")) !== FALSE) { - switch ($item["vtype"]) + foreach ($res as $item) { - case VT_STR: - case VT_TEXT: $type = 1; break; - case VT_INT: $type = 2; break; - case VT_BOOL: $type = 3; break; + switch ($item["vtype"]) + { + case VT_STR: + case VT_TEXT: $type = 1; break; + case VT_INT: $type = 2; break; + case VT_BOOL: $type = 3; break; + } + $args[] = "\"".$item["key"]."\":".$type; } - $args[] = "\"".$item["key"]."\":".$type; } + + echo "jsSettingsArgs[".$group["id"]."] = jsMakePostArgs({".implode(",", $args)."}, \"st\", \"\");\n"; } echo "\n". - "function jsUpdateSettings()\n". + "function jsUpdateSettings(id)\n". "{\n". - " var args = jsMakePostArgs({".implode(",", $args)."}, \"st\", \"\");\n". - " jsSendPOSTRequest(\"action=update&type=settings&\"+args);\n". + " jsSendPOSTRequest(\"action=update&type=settings&\"+jsSettingsArgs[id]);\n". " return false;\n". "}\n"; }