changeset 205:77d33161f8be

More work on admin interface.
author Matti Hamalainen <ccr@tnsp.org>
date Sun, 17 Nov 2013 18:57:49 +0200
parents fa94536c060b
children 1fa109a0c583
files admajax.php admin.php attendees.inc.php msite.inc.php
diffstat 4 files changed, 63 insertions(+), 27 deletions(-) [+]
line wrap: on
line diff
--- a/admajax.php	Sun Nov 17 18:11:46 2013 +0200
+++ b/admajax.php	Sun Nov 17 18:57:49 2013 +0200
@@ -87,6 +87,12 @@
         $sql = "SELECT * FROM attendees ORDER BY regtime DESC";
         break;
 
+      case "attendee":
+        $res = stFetchSQL(stPrepareSQL("SELECT * FROM attendees WHERE id=%D", "id"));
+        if ($res !== FALSE)
+          stPrintAttendee($res, -1, FALSE, TRUE, stGetRequestItem("edit", FALSE));
+        break;
+
       case "voters":
         $sqlJoins = "";
         switch (stGetSetting("voteKeyMode"))
@@ -268,7 +274,9 @@
 
         $row = 0;
         foreach ($res as $item)
-          stPrintAttendee($item, $row++, TRUE);
+        {
+          stPrintAttendee($item, $row++, TRUE, TRUE, FALSE);
+        }
 
         echo
           "</table>\n";
@@ -424,15 +432,16 @@
     // Update existing entry
     //
     if ($type == "attendees" && stChkRequestItem("id") &&
-      stChkRequestItem("email") && stChkRequestItem("oneliner") &&
-      stChkRequestItem("active"))
+      stChkRequestItem("name") && stChkRequestItem("groups") &&
+      stChkRequestItem("email") && stChkRequestItem("oneliner"))
     {
       $sql = stPrepareSQLUpdate("attendees",
         "WHERE id=".intval(stGetRequestItem("id")),
         array(
+          "name" => "S",
+          "groups" => "S",
           "email" => "S",
           "oneliner" => "S",
-          "active" => "B",
         ));
 
       stExecSQLCond($sql, "OK, attendee updated.");
--- a/admin.php	Sun Nov 17 18:11:46 2013 +0200
+++ b/admin.php	Sun Nov 17 18:57:49 2013 +0200
@@ -221,10 +221,11 @@
 
 function updateAttendee(id)
 {
-  var args = makePostArgs({"oneliner":0,"email":0,"active":3}, "at", id);
+  var args = makePostArgs({"name":1,"groups":0,"oneliner":0,"email":0}, "at", id);
 
   var msuccess = function(txt)
   {
+    activeAttendee = -1;
     setTimeout("refreshCCAttendees();", 50);
   }
 
@@ -233,18 +234,30 @@
 }
 
 
-function updateAttendee2(id)
+var activeAttendee = -1;
+
+function activateAttendee(id)
 {
-  var elem = document.getElementById("atactive"+ id);
-  if (elem && !elem.checked)
+  var msuccess1 = function(txt)
+  {
+    var nitem = document.getElementById("attendee"+activeAttendee);
+    if (nitem) nitem.innerHTML = txt;
+  }
+
+  var msuccess2 = function(txt)
   {
-    if (confirm("Are you sure you want deactivate vote ID #"+id+"?"))
-      updateAttendee(id);
-    else
-      setTimeout("refreshCCAttendees();", 50);
+    var nitem = document.getElementById("attendee"+id);
+    if (nitem) nitem.innerHTML = txt;
+    activeAttendee = id;
   }
-  else
-    updateAttendee(id);
+
+  if (activeAttendee != id)
+  {
+    if (activeAttendee != -1)
+      sendPOSTRequest("action=get&type=attendee&id="+activeAttendee+"&edit=0", msuccess1);
+
+    sendPOSTRequest("action=get&type=attendee&id="+id+"&edit=1", msuccess2);
+  }
 }
 
 
--- a/attendees.inc.php	Sun Nov 17 18:11:46 2013 +0200
+++ b/attendees.inc.php	Sun Nov 17 18:57:49 2013 +0200
@@ -42,7 +42,7 @@
     if ($maxAttendeesSoft > 0)
       $over = $index > $maxAttendeesSoft;
 
-    stPrintAttendee($item, $row++, FALSE, $over ? " overbooked" : "");
+    stPrintAttendee($item, $row++, TRUE, FALSE, FALSE, $over ? " overbooked" : "");
     $index--;
   }
 }
--- a/msite.inc.php	Sun Nov 17 18:11:46 2013 +0200
+++ b/msite.inc.php	Sun Nov 17 18:57:49 2013 +0200
@@ -113,28 +113,42 @@
 }
 
 
-function stPrintAttendee($item, $row, $edit, $eclass = "")
+function stPrintAttendee($item, $row, $tr, $full, $edit, $eclass = "")
 {
   $id = $item["id"];
   $prefix = "at";
-  echo "  <tr class=\"".($row % 2 == 1 ? "rodd" : "reven")."\" id=\"attendee".$id."\">";
+  
+  if ($tr)
+  {
+    echo
+      "  <tr class=\"".($row % 2 == 1 ? "rodd" : "reven").$eclass.
+      "\" id=\"attendee".$id."\" ".($full ? "onClick=\"activateAttendee(".$id.")\"" : "").">";
+  }
   
   echo
-    stGetTDEditTextItem(FALSE, 20, 40, "name", $id, $prefix, $item["name"]).
-    stGetTDEditTextItem(FALSE, 20, 40, "groups", $id, $prefix, $item["groups"]).
+    stGetTDEditTextItem($edit, 20, SET_LEN_USERNAME, "name", $id, $prefix, $item["name"]).
+    stGetTDEditTextItem($edit, 20, SET_LEN_GROUPS, "groups", $id, $prefix, $item["groups"]).
     "<td class=\"regtime\">".date("d.m. H:i", $item["regtime"])."</td>".
-    stGetTDEditTextItem($edit, 30, 64, "oneliner", $id, $prefix, $item["oneliner"], "autocomplete=\"off\"");
+    stGetTDEditTextItem($edit, 30, SET_LEN_ONELINER, "oneliner", $id, $prefix, $item["oneliner"], "autocomplete=\"off\"");
 
-  if ($edit)
+  if ($full)
   {
     echo
-      stGetTDEditTextItem($edit, 20, 40, "email", $id, $prefix, $item["email"], "autocomplete=\"off\"").
-      "<td>".
-      "<button class=\"button\" id=\"atupd".$id."\" type=\"button\" onclick=\"updateAttendee(".$id.")\"> Upd </button>".
-      "<button class=\"button\" id=\"atdel".$id."\" type=\"button\" onclick=\"deleteAttendee(".$id.")\"> Del </button>".
-      "</td>";
+      stGetTDEditTextItem($edit, 20, SET_LEN_EMAIL, "email", $id, $prefix, $item["email"], "autocomplete=\"off\"");
+
+    if ($edit)
+    {
+      echo
+        "<td>".
+        "<button class=\"button\" id=\"atupd".$id."\" type=\"button\" onclick=\"updateAttendee(".$id.")\"> Upd </button>".
+        "<button class=\"button\" id=\"atdel".$id."\" type=\"button\" onclick=\"deleteAttendee(".$id.")\"> Del </button>".
+        "</td>";
+    }
+    else
+      echo "<td></td>";
   }
-
+  
+  if ($tr)
   echo "</tr>\n";
 }