Mercurial > hg > fapweb
changeset 438:48903fd966cd
Things are starting to work.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Thu, 05 Dec 2013 23:46:08 +0200 |
parents | cefa64c8be63 |
children | 1e3aaa83b9d7 |
files | admajax.php admin.php showajax.php |
diffstat | 3 files changed, 129 insertions(+), 40 deletions(-) [+] |
line wrap: on
line diff
--- a/admajax.php Thu Dec 05 22:57:59 2013 +0200 +++ b/admajax.php Thu Dec 05 23:46:08 2013 +0200 @@ -79,6 +79,19 @@ } +function stValidateRequestDisplaySlideData() +{ + return + stChkRequestItem("title", $fake, + array(CHK_GTEQ, VT_STR, 1, "Slide title too short."), + array(CHK_LTEQ, VT_STR, SET_LEN_DISP_SLIDE_TITLE, "Slide title too long.") + ) && + stChkRequestItem("text", $fake, + array(CHK_LTEQ, VT_STR, SET_LEN_DISP_SLIDE_TEXT, "Slide content too long.") + ); +} + + function stGetCompoData($id, $item, $prefix) { return @@ -283,6 +296,22 @@ } +function stGetInfoDisplaySlides($indent, $outer) +{ + $str = stGetOptionListStart("ctrlDisplaySlides", $indent, $outer); + + $sql = "SELECT * FROM displaySlides ORDER BY id DESC"; + if (($res = stExecSQL($sql)) !== false) + { + foreach ($res as $item) + $str .= $indent." ".stGetOptionListItem($item["id"], FALSE, $item["title"]); + } + + $str .= stGetOptionListEnd($indent, $outer); + return $str; +} + + function stGetInfoRotationListEditFull($indent, $outer, $list_id) { $str = @@ -338,6 +367,36 @@ } +function stGetInfoDisplaySlideEdit($indent, $outer, $slide_id) +{ + $prefix = "ctrlDisplaySlide"; + + $str = + ($outer ? "<div class=\"ctrlBox\" id=\"".$prefix."Edit\">\n" : ""). + $indent." <form method=\"post\" action=\"\" onsubmit=\"return updateDisplaySlide(".$slide_id.")\">\n". + $indent." <div class=\"ctrlTitle\">Edit display slide</div>\n"; + + $sql = stPrepareSQL("SELECT * FROM displaySlides WHERE id=%d", $slide_id); + if (($slide = stFetchSQL($sql)) !== false) + { + $str .= + " ".stGetFormTextInput(40, SET_LEN_DISP_SLIDE_TITLE, "", "Title", $prefix, $slide["title"])."<br />\n". + " ".stGetFormTextArea(5, 40, "", "Text", $prefix, $slide["text"])."<br />\n"; + } + + $str .= + " <div class=\"ctrlButtons\">\n". + " ".stGetFormButtonInput("clearslide", "", "", "Clear", "this.form.reset()")."\n". + " ".stGetFormButtonInput("cancelslide", "", "", "Cancel", "jsCloseAdminPopup()")."\n". + " ".stGetFormSubmitInput("createslide", "Save slide")."\n". + " </div>\n". + " </form>\n". + ($outer ? "</div>\n" : ""); + + return $str; +} + + function stGetSaveButton() { return "<input type=\"submit\" value=\" Save \" />\n"; @@ -577,12 +636,12 @@ stChkRequestItem("duration", $slide_dur, array(CHK_RANGE, VT_INT, array(1, 60), "Invalid duration range, should be 1-60 min."))) { $sql = stPrepareSQL("SELECT * FROM displaySlides WHERE id=%d", $slide_id); - if (($slide = stFetchSQL($slide_id)) !== false) + if (($slide = stFetchSQL($sql)) !== false) { - stSetDisplayVar("tempDuration", $slide_dur * 60); + stSetDisplayVar("tempDuration", $slide_dur); stSetDisplayVar("tempSlide", $slide["id"]); stSetDisplayVar("tempSlideSet", TRUE); - echo "Temporary slide '".chentities($slide["name"])."' set for <b>".$slide_dur."</b> minutes."; + echo "Temporary slide '".chentities($slide["title"])."' set for <b>".$slide_dur."</b> minutes."; } else stError("No such slide ID #".$slide_id); @@ -599,6 +658,18 @@ break; case "updateDisplaySlide": + if (stChkRequestItem("id", $slide_id, array(CHK_TYPE, VT_INT, "Invalid data.")) && + stValidateRequestDisplaySlideData()) + { + $sql = stPrepareSQLUpdate("displaySlides", + "WHERE id=".$slide_id, + array( + "title" => "S", + "text" => "S", + )); + + stExecSQLCond($sql, "OK, slide updated."); + } break; case "deleteDisplaySlide": @@ -691,6 +762,10 @@ echo stGetInfoRotationLists("", FALSE); break; + case "infoDisplaySlides": + echo stGetInfoDisplaySlides("", FALSE); + break; + case "infoRotationListEdit": if (stChkRequestItem("id", $list_id, array(CHK_TYPE, VT_INT, "Invalid data."))) echo stGetInfoRotationListEditFull("", TRUE, $list_id); @@ -701,29 +776,9 @@ echo stGetInfoRotationListEditData("", FALSE, $list_id); break; - case "infoEditSlide": + case "infoDisplaySlideEdit": if (stChkRequestItem("id", $slide_id, array(CHK_TYPE, VT_INT, "Invalid data."))) - { - $sql = stPrepareSQL("SELECT * FROM displaySlides WHERE id=%d", $slide_id); - if (($slide = stFetchSQL($sql)) !== false) - { - echo - "<div class=\"ctrlBox\" id=\"ctrlEditDisplaySlide\">\n". - " <form method=\"post\" action=\"\" onsubmit=\"return updateDisplaySlide(this)\">\n". - " <div class=\"ctrlTitle\">Edit display slide</div>\n". - " ".stGetFormTextInput(40, SET_LEN_DISP_SLIDE_TITLE, "fdsaf", "", "", "")."<br />\n". - " ".stGetFormTextArea(5, 40, "asdf", "", "", "")."<br />\n". - " <div class=\"ctrlButtons\">\n". - " ".stGetFormButtonInput("clearslide", "", "", "Clear", "this.form.reset()")."\n". - " ".stGetFormButtonInput("cancelslide", "", "", "Cancel", "cancelEditDisplaySlide()")."\n". - " ".stGetFormSubmitInput("createslide", "Save slide")."\n". - " </div>\n". - " </form>\n". - "</div>\n"; - } - else - stError("No such slide!"); - } + echo stGetInfoDisplaySlideEdit("", TRUE, $slide_id); break; case "infoMain": @@ -757,17 +812,7 @@ echo "<div class=\"ctrlBox\" id=\"ctrlListDisplaySlides\">\n". "<div class=\"ctrlTitle\">Display slides:</div>\n". - stGetOptionListStart("ctrlDisplaySlides", " ", TRUE); - - $sql = "SELECT * FROM displaySlides ORDER BY id DESC"; - if (($res = stExecSQL($sql)) !== false) - { - foreach ($res as $item) - echo " ".stGetOptionListItem($item["id"], FALSE, $item["title"]); - } - - echo - stGetOptionListEnd(" ", TRUE). + stGetInfoDisplaySlides(" ", TRUE). " <div class=\"ctrlButtons\">\n". " ".stGetFormTextInput(3, 5, "", "ctrlTempSlideDuration", "", stGetDisplayVar("tempDuration"))." min\n". " ".stGetFormButtonInput("setslide", "", "", "Set Temp", "activateTempSlide()")."\n".
--- a/admin.php Thu Dec 05 22:57:59 2013 +0200 +++ b/admin.php Thu Dec 05 23:46:08 2013 +0200 @@ -643,21 +643,65 @@ } -function saveEditDisplaySlide() +function updateDisplaySlide(id) { + var vtitle = jsGetValue("ctrlDisplaySlideTitle", 1); + var vtext = jsGetValue("ctrlDisplaySlideText", 1); + jsSendPOSTRequest("action=ctrl&type=updateDisplaySlide&id="+id+"&title="+vtitle+"&text="+vtext, refreshDisplaySlideListSel); jsCloseAdminPopup(); + return false; } function editDisplaySlide() { -// jsSendPOSTRequest("action=ctrl&type=...", jsOpenAdminPopup); + var id = jsGetValue("ctrlDisplaySlidesSel", 4); + if (id > 0) + jsSendPOSTRequest("action=get&type=infoDisplaySlideEdit&id="+id, jsOpenAdminPopup); + else + jsMessageBox("No display slide selected?"); +} + + +function refreshDisplaySlideListSel() +{ + jsRefreshItems("ctrlDisplaySlidesSel", "infoDisplaySlides", ""); } function newDisplaySlide() { -// jsSendPOSTRequest("action=ctrl&type=...", jsOpenAdminPopup); + var msuccess = function(txt) + { + refreshDisplaySlideListSel(); + jsOpenAdminPopup(txt); + } + + jsSendPOSTRequest("action=ctrl&type=newDisplaySlide", msuccess); +} + + +function deleteDisplaySlide() +{ + var msuccess = function(txt) + { + refreshDisplaySlideListSel(); + refreshRotationListSel(); + } + + var mcb_ok = function(txt) + { + jsSendPOSTRequest("action=ctrl&type=deleteDisplaySlide&id="+id, msuccess); + } + + var id = jsGetValue("ctrlDisplaySlidesSel", 4); + if (id > 0) + { + jsConfirmBox("Are you <b>sure</b> you want to delete slide list #"+id+"?", + mcb_ok, 0, 0); + } + else + jsMessageBox("No display slide selected?"); }
--- a/showajax.php Thu Dec 05 22:57:59 2013 +0200 +++ b/showajax.php Thu Dec 05 23:46:08 2013 +0200 @@ -103,7 +103,7 @@ stSetDisplayVar("tempSlideSet", FALSE); stSetDisplayVar("activeSlideMode", SMODE_ROTATE); stSetDisplayVar("activeSlide", stGetDisplayVar("tempSlide")); - stSetDisplayVar("activeSlideExpire", time() + stGetDisplayVar("tempDuration")); + stSetDisplayVar("activeSlideExpire", time() + (stGetDisplayVar("tempDuration") * 60)); $updated = TRUE; } }