Mercurial > hg > fapweb
changeset 682:2e54b6858ce9
A tiny bit more work on entry editing.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Sun, 09 Nov 2014 14:48:07 +0200 |
parents | bf8a5009b3f2 |
children | ee9461239b47 |
files | admajax.php admin.js |
diffstat | 2 files changed, 74 insertions(+), 18 deletions(-) [+] |
line wrap: on
line diff
--- a/admajax.php Sun Nov 09 14:46:48 2014 +0200 +++ b/admajax.php Sun Nov 09 14:48:07 2014 +0200 @@ -140,19 +140,42 @@ } -function stGetEntryItemData($eid, $item, $prefix) +function stPrintEntryItemData($entry, $ctype, $prefix, $tr, $edit) { - return - " <td>".($item["show_id"] > 0 ? $item["show_id"] : "-")."</td>\n". - " <td>".stGetFormTextInput(20, SET_LEN_ENTRY_NAME, "name", $eid, $prefix, $item["name"])."</td>\n". - " <td>".stGetFormTextInput(15, SET_LEN_ENTRY_AUTHOR, "author", $eid, $prefix, $item["author"])."</td>\n". - " <td>".stGetFormTextInput(20, SET_LEN_ENTRY_FILENAME, "filename", $eid, $prefix, $item["filename"])."</td>\n". - " <td>".stGetFormTextArea(2, 30, "info", $eid, $prefix, $item["info"])."</td>\n". + $eid = $entry["id"]; + if ($ctype === FALSE) + $ctype = stFetchSQLColumn("SELECT ctype FROM compos WHERE id=".$entry["compo_id"]); + + if ($tr) + { + echo + " <tr id=\"entry".$eid."\" onClick=\"activateEntry(".$eid.")\">\n"; + } + + echo + " <td>".($entry["show_id"] > 0 ? $entry["show_id"] : "-")."</td>\n". + " ".stGetTDFormTextInput($edit, 20, SET_LEN_ENTRY_NAME, "name", $eid, $prefix, $entry["name"])."\n". + " ".stGetTDFormTextInput($edit, 15, SET_LEN_ENTRY_AUTHOR, "author", $eid, $prefix, $entry["author"])."\n". + " ".stGetTDFormTextInput($edit, 20, SET_LEN_ENTRY_FILENAME, "filename", $eid, $prefix, $entry["filename"])."\n". " <td>". - stGetFormButtonInput("delete", $eid, $prefix, "Del", "deleteEntry(".$item["compo_id"].",".$eid.")"). - stGetFormTextInput(3, 3, "compo_id", $eid, $prefix, $item["compo_id"]). - stGetFormButtonInput("update", $eid, $prefix, "Upd", "updateEntry(".$item["compo_id"].",".$eid.")"). + stGetFormTextArea(2, 30, "info", $eid, $prefix, $entry["info"])."<br />". + stGetFormTextArea(2, 30, "notes", $eid, $prefix, $entry["notes"])."<br />". + // XXX TODO flags? + "</td>\n". "</td>\n"; + + if ($edit) + { + echo + " <td>". + stGetFormButtonInput("delete", $eid, $prefix, "Del", "deleteEntry(".$entry["compo_id"].",".$eid.")"). + stGetFormTextInput(3, 3, "compo_id", $eid, $prefix, $entry["compo_id"]). + stGetFormButtonInput("update", $eid, $prefix, "Upd", "updateEntry(".$entry["compo_id"].",".$eid.")"). + "</td>\n"; + } + + if ($tr) + echo " </tr>\n"; } @@ -1338,12 +1361,7 @@ " <tr><td colspan=\"6\"><hr /></td></tr>\n"; foreach (stExecSQL("SELECT * FROM entries WHERE compo_id=".$id." ORDER BY id ASC") as $entry) - { - echo - " <tr id=\"entry".$entry["id"]."\">\n". - stGetEntryItemData($entry["id"], $entry, "en"). - " </tr>\n"; - } + stPrintEntryItemData($entry, $compo["ctype"], "en", TRUE, FALSE); echo "</table>\n"; @@ -1353,7 +1371,7 @@ case "entry": $res = stFetchSQL(stPrepareSQL("SELECT * FROM entries WHERE id=%D", "id")); if ($res !== FALSE) - echo stGetEntryItemData($res["id"], $res, "en"); + stPrintEntryItemData($res, FALSE, "en", FALSE, stGetRequestItem("edit", FALSE)); else stError("No such entry ID!"); break;
--- a/admin.js Sun Nov 09 14:46:48 2014 +0200 +++ b/admin.js Sun Nov 09 14:48:07 2014 +0200 @@ -5,6 +5,7 @@ // var activeAttendee = -1, prevAttendee = -1; +var activeEntry = -1, prevEntry = -1; var activeTmp = ""; @@ -128,7 +129,7 @@ case "Voting" : jsRefreshItems("tabContCCVoting", "voters", ""); break; case "Compos" : jsRefreshItems("tabContCCCompos", "compos", ""); break; case "InfoSys" : jsRefreshItems("tabContCCInfoSys", "infoMain", ""); break; - case "Entries" : refreshCCEntries(); break; + case "Entries" : refreshCCEntries(); activeEntry = -1; break; } } @@ -327,6 +328,43 @@ } +function activateEntry(id) +{ + var msuccess1 = function(txt) + { + var nitem = document.getElementById("entry"+prevEntry); + if (nitem) + { + nitem.innerHTML = txt; + nitem.style.background = activeTmp; + } + } + + var msuccess2 = function(txt) + { + var nitem = document.getElementById("entry"+id); + if (nitem) + { + nitem.innerHTML = txt; + activeTmp = nitem.style.background; + nitem.style.background = "green"; + activeEntry = id; + } + } + + if (activeEntry != id) + { + prevEntry = activeEntry; + activeEntry = id; + + if (prevEntry != -1) + jsSendPOSTRequest("action=get&type=entry&id="+prevEntry+"&edit=0", msuccess1); + + jsSendPOSTRequest("action=get&type=entry&id="+id+"&edit=1", msuccess2); + } +} + + function addEntry(id) { var args = jsMakePostArgs({"name":1, "author":1, "filename":1, "info":1}, "ne", id);