Mercurial > hg > fapweb
changeset 312:9340eb112ccc
Work on votekey admin.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Wed, 27 Nov 2013 03:11:32 +0200 |
parents | 2f46b6254ff2 |
children | 915a14409c7b |
files | admajax.php admin.php |
diffstat | 2 files changed, 79 insertions(+), 33 deletions(-) [+] |
line wrap: on
line diff
--- a/admajax.php Tue Nov 26 23:36:11 2013 +0200 +++ b/admajax.php Wed Nov 27 03:11:32 2013 +0200 @@ -121,6 +121,44 @@ } +function stGetVoteKeyItemData($id, $item, $prefix) +{ + global $voteKeyMode, $voteKeyLen; + + switch ($voteKeyMode) + { + case VOTE_FREELY: + case VOTE_ACTIVATE: + $str = sprintf( + "<span class=\"keyid\">%03d</span> : ". + "<span class=\"keycode\">%s</span>", + $id, + str_repeat(" ", $voteKeyLen - strlen($item["key"])).$item["key"]); + + if ($voteKeyMode == VOTE_ACTIVATE) + { + $str .= stGetFormCheckBoxInput("active", $id, "", + $item["active"], FALSE, + "class=\"keyactive\" onClick=\"voteKeyToggle(".$id.")\"", "xx")."\n"; + } + + return $str; + + case VOTE_ASSIGN: + return + " <td class=\"name\">".chentities($item["name"])."</td>\n". + " <td class=\"groups\">".chentities($item["groups"])."</td>\n". + " <td class=\"vkeynum\">". + stGetFormTextInput(5, 5, "key_id", $id, $prefix, $item["key_id"]). + stGetFormButtonInput("assign", $id, $prefix, "Set", "voteKeyAssign(".$id.")"). + "</td>\n". + " <td class=\"vkey\">".chentities($item["key"])."</td>\n"; + + break; + } +} + + function stGetSaveButton() { return "<input type=\"submit\" value=\" Save \" />\n"; @@ -153,6 +191,7 @@ $voteKeyMode = stGetSetting("voteKeyMode"); +$voteKeyLen = stGetSetting("userKeyLength"); $type = stGetRequestItem("type", ""); switch (stGetRequestItem("action", "")) { @@ -270,6 +309,24 @@ stPrintAttendee($res, -1, FALSE, TRUE, stGetRequestItem("edit", FALSE)); break; + case "votekey": + switch ($voteKeyMode) + { + case VOTE_FREELY: + case VOTE_ACTIVATE: + $sql = stPrepareSQL("SELECT * FROM votekeys WHERE id=%D", "id"); + break; + + case VOTE_ASSIGN: + $sql = stPrepareSQL("SELECT votekeys.key,attendees.* FROM attendees ". + "LEFT JOIN votekeys ON votekeys.id=attendees.key_id ". + "WHERE attendees.id=%D", "id"); + break; + } + if (($res = stFetchSQL($sql)) !== FALSE) + echo stGetVoteKeyItemData($res["id"], $res, "vn"); + break; + case "voters": // Generate vote keys, if needed $numVKeys = stFetchSQLColumn("SELECT COUNT(*) FROM votekeys"); @@ -296,28 +353,13 @@ case VOTE_ACTIVATE: $sql = "SELECT * FROM votekeys ORDER BY votekeys.id ASC"; - $keyLen = stGetSetting("userKeyLength"); - $index = 0; foreach (stExecSQL($sql) as $item) { - if ($index == 0) - echo "<tr>\n"; - // This funny code is to ensure that the cells are of uniform width - printf("<div class=\"votekey\" id=\"vkey".$item["id"]. - "\"><span class=\"keyid\">%03d</span> : ". - "<span class=\"keycode\">%s</span>", - $item["id"], - str_repeat(" ", $keyLen - strlen($item["key"])).$item["key"]); - - if ($voteKeyMode == VOTE_ACTIVATE) - { - echo stGetFormCheckBoxInput("active", $item["id"], "", - $item["active"], FALSE, - "class=\"keyactive\" onClick=\"voteKeyToggle(".$item["id"].")\"", "xx")."\n"; - } - - echo "</div>"; + echo + "<div class=\"votekey\" id=\"vkey".$item["id"]."\">". + stGetVoteKeyItemData($item["id"], $item, "vk"). + "</div>"; } break; @@ -335,20 +377,12 @@ " <th class=\"vkey\">Votekey</th>\n". " </tr>\n"; - $row = 0; - $prefix = "vk"; + $index = 0; foreach (stExecSQL($sql) as $item) { - $vid = $item["id"]; echo - " <tr>\n". - " <td class=\"name\">".chentities($item["name"])."</td>\n". - " <td class=\"groups\">".chentities($item["groups"])."</td>\n". - " <td class=\"vkeynum\">". - stGetFormTextInput(5, 5, "key_id", $vid, $prefix, $item["key_id"]). - stGetFormButtonInput("assign", $vid, $prefix, "Set", "voteKeyAssign(".$vid.")"). - "</td>\n". - " <td class=\"vkey\">".chentities($item["key"])."</td>\n". + " <tr class=\"rodd\" id=\"vkey".$item["id"]."\">\n". + stGetVoteKeyItemData($item["id"], $item, "vk"). " </tr>\n"; } @@ -683,9 +717,21 @@ switch (stGetRequestItem("mode")) { case "assign": + // Check if already assigned to someone .. + $sql = stPrepareSQL("SELECT * FROM attendees WHERE key_id=%D", "key_id"); + if (($attn = stFetchSQL($sql)) === false || $attn["id"] == $id) + { + // Assign .. + $sql = stPrepareSQL("UPDATE attendees SET key_id=%D WHERE id=%d", + "key_id", $id); + stExecSQLCond($sql, "Assigned key updated."); + } + else + stError("That key has already been assigned to another attendee!"); break; case "active": + // Autobots activate! break; } }
--- a/admin.php Tue Nov 26 23:36:11 2013 +0200 +++ b/admin.php Wed Nov 27 03:11:32 2013 +0200 @@ -392,7 +392,7 @@ var msuccess = function(txt) { - refreshItems("votekey"+id, "votekey", "&id="+id); + refreshItems("vkey"+id, "votekey", "&id="+id); } sendPOSTRequest("action=update&type=votekey&mode=active&id="+id+"&"+args, msuccess); @@ -405,10 +405,10 @@ var msuccess = function(txt) { - refreshItems("votekey"+id, "votekey", "&id="+id); + refreshItems("vkey"+id, "votekey", "&id="+id); } - sendPOSTRequest("action=update&type=votekey&mode=assign&id="+id+"&"+args); + sendPOSTRequest("action=update&type=votekey&mode=assign&id="+id+"&"+args, msuccess); }