From 1f7ac14963e0c804e53fcd6a2b0868ea01a4f73a Mon Sep 17 00:00:00 2001 From: Hash Borgir Date: Tue, 30 May 2023 13:12:19 -0600 Subject: [PATCH] Set active tab to Uniqueitems. header.php, set uniqueitems to first tab active. ajax/uniqueitems.php, add save/delete functionality app.js, handle save/delete calls src/tabs/optionsubmit.php, add delete button tabs/UniqueItems.php remove form action Ajax save, and delete working. --- ajax/uniqueitems.php | 289 +++++++------ res/app.js | 855 ++++++++++++++++++++------------------ src/header.php | 8 +- src/tabs/UniqueItems.php | 4 +- src/tabs/optionSubmit.php | 15 +- 5 files changed, 631 insertions(+), 540 deletions(-) diff --git a/ajax/uniqueitems.php b/ajax/uniqueitems.php index 15153cc..6c599bb 100755 --- a/ajax/uniqueitems.php +++ b/ajax/uniqueitems.php @@ -48,150 +48,197 @@ $idesc = new D2ItemDesc(); */ -if (!empty($_GET['cmd'])) - $cmd = $_GET['cmd']; -if (!empty($_GET['sort'])) - $sort = $_GET['sort']; -if (!empty($_GET['view'])) - $view = $_GET['view']; -/* - * @cmd = getUniqueItem - * - * - * */ +$cmd = $_GET['cmd'] ?? ''; +$sort = $_GET['sort'] ?? ''; +$view = $_GET['view'] ?? ''; -// first search code in all 3 tables. Grab from where it exists. - -if ($cmd == "getUniqueItem") { - echo $idata->uniqueItems($_GET['index']); +if ($_GET['cmd'] === "getUniqueItem") { + $index = $_GET['index']; + echo $idata->uniqueItems($index); } -/* - * @cmd = sortBy - * - * - * */ -if ($cmd == "sortBy") { - $sql = "SELECT `index`, `$sort` FROM uniqueitems WHERE enabled='1' ORDER BY ?"; - $res = PDO_FetchAll($sql, [$sort]); - //ddump($res); - - $html = ''; - foreach ($res as $r) { - if ($sort == 'index') { - $html .= ""; - } else { - $html .= ""; - } - } - echo $html; +if ($cmd === "sortBy") { + $sql = "SELECT `index`, `$sort` FROM uniqueitems WHERE enabled='1' ORDER BY ? ASC"; + $res = PDO_FetchAll($sql, [$sort]); + + // Sort the results if the sorting is based on 'index' + if ($sort === 'index') { + sort($res); + } + + // Generate HTML options based on the sorted results + $html = ''; + foreach ($res as $r) { + if ($sort === 'index') { + $html .= ""; + } else { + $html .= ""; + } + } + + // Output the generated HTML + echo $html; } -/* - * @cmd = viewOnly - * - * - * */ + + + + +//@cmd = viewOnly + if ($cmd == "viewOnly") { - $table = 'misc'; - $sql = "SELECT uniqueitems.`index`, uniqueitems.`code`, misc.`type` + $table = 'misc'; + $sql = "SELECT uniqueitems.`index`, uniqueitems.`code`, misc.`type` FROM uniqueitems LEFT JOIN misc ON uniqueitems.`code` = misc.`code` WHERE `type` IS NOT NULL AND uniqueitems.`code`='$view'"; - if ($view == 'armo') { - $table = 'armor'; - $sql = "SELECT uniqueitems.`index`, uniqueitems.`code`, $table.`code` + if ($view == 'armo') { + $table = 'armor'; + $sql = "SELECT uniqueitems.`index`, uniqueitems.`code`, $table.`code` FROM uniqueitems LEFT JOIN $table ON uniqueitems.`code` = $table.`code` WHERE `type` IS NOT NULL AND uniqueitems.`code`= $table.`code` AND $table.`code` != '' ORDER BY `index`"; - } - if ($view == 'weap') { - $table = 'weapons'; - $sql = "SELECT uniqueitems.`index`, uniqueitems.`code`, $table.`code` + } + if ($view == 'weap') { + $table = 'weapons'; + $sql = "SELECT uniqueitems.`index`, uniqueitems.`code`, $table.`code` FROM uniqueitems LEFT JOIN $table ON uniqueitems.`code` = $table.`code` WHERE `type` IS NOT NULL AND uniqueitems.`code`= $table.`code` AND $table.`code` != '' ORDER BY `index`"; - } - if ($view == "char") { // charm - $sql .= " OR uniqueitems.`code`='cm1' OR uniqueitems.`code`='cm2' OR uniqueitems.`code`='cm3'"; - } - $res = PDO_FetchAll($sql); - $html = ''; - foreach ($res as $r) { - if ($sort == 'index') { - $html .= ""; - } else { - $html .= ""; - } - } - echo $html; + } + if ($view == "char") { // charm + $sql .= " OR uniqueitems.`code`='cm1' OR uniqueitems.`code`='cm2' OR uniqueitems.`code`='cm3'"; + } + $res = PDO_FetchAll($sql); + $html = ''; + foreach ($res as $r) { + if ($sort == 'index') { + $html .= ""; + } else { + $html .= ""; + } + } + echo $html; } -/* - * @cmd = search - * - * - * - * - */ +// @cmd = search if ($cmd == 'search') { - $search = $_GET['search']; - $sql = "SELECT * FROM uniqueitems WHERE `index` LIKE '%$search%' OR code LIKE '%$search%' AND enabled=1 ORDER BY `index`"; - $res = PDO_FetchAll($sql); - - $html = ''; - foreach ($res as $r) { - if ($sort == 'index') { - $html .= ""; - } else { - $html .= ""; - } - } - echo $html; + $search = $_GET['search']; + $sql = "SELECT * FROM uniqueitems WHERE `index` LIKE '%$search%' OR code LIKE '%$search%' AND enabled=1 ORDER BY `index`"; + $res = PDO_FetchAll($sql); + + $html = ''; + foreach ($res as $r) { + if ($sort == 'index') { + $html .= ""; + } else { + $html .= ""; + } + } + echo $html; } -/* - * @cmd = getString - * - * @arg = property, par, min, max - * - * - */ +// @cmd = getString +// @arg = property, par, min, max if ($cmd == 'getString') { - - - $prop = $_GET['prop']; + $prop = $_GET['prop']; - // stat2,stat3,stat4,stat5,stat6,stat7 - - $sql = "SELECT stat1 FROM properties WHERE code = ?"; - $stat = array_filter(PDO_FetchRow($sql, [$prop])); + // stat2,stat3,stat4,stat5,stat6,stat7 + if (!empty($prop)) { + $sql = "SELECT stat1 FROM properties WHERE code = ?"; + $stat = array_filter(PDO_FetchRow($sql, [$prop])); + $s = array_filter($idata->getIscStrings($prop)); - $s = array_filter($idata->getIscStrings($prop)); - - // now combine isc strings with par, min, max - - $params = array_merge($_GET, $s); + // now combine isc strings with par, min, max + $params = array_merge($_GET, $s); + $return = $idesc->getDesc($params); + } + /* This goes into D2ItemDesc->getDesc(); + $s1 = $params['string1']; + $s2 = $params['string2']; + $prop = $params['prop']; + $par = $params['par']; + $min = (int) $params['min']; + @return string + */ - - $return = $idesc->getDesc($params); - - /* - * This goes into D2ItemDesc->getDesc(); - * - $s1 = $params['string1']; - $s2 = $params['string2']; - $prop = $params['prop']; - $par = $params['par']; - $min = (int) $params['min']; - * - * @return string - */ - - - - - header('Content-Type: application/json'); - echo json_encode($return, JSON_INVALID_UTF8_IGNORE); + header('Content-Type: application/json'); + echo json_encode($return, JSON_INVALID_UTF8_IGNORE); } + +function saveFile() { + $bin = '..\bin\sqlite3.exe '; + $dbfile = '../' . $_SESSION['modname'] . ".db"; + $outputFile = TXT_PATH . 'uniqueitems.txt'; + + // Prepare the command + $command = escapeshellarg($bin) . " " . escapeshellarg($dbfile) . ' ".mode tabs" ".header on" "SELECT * FROM uniqueitems;" > ' . escapeshellarg($outputFile); + $output = exec($command); + var_dump($command); + return $output; +} + +if ($cmd == 'delete') { + + $sql = "DELETE FROM uniqueitems WHERE `index` = \"{$_GET['index']}\";"; + $res = PDO_Execute($sql); + saveFile(); + header('Content-Type: application/json'); + echo json_encode($res, JSON_INVALID_UTF8_IGNORE); +} + + +if ($cmd == "save") { + unset($_GET['formtype']); + unset($_GET['submit']); + unset($_GET['item']); + unset($_GET['cmd']); + + // if ladder or carry1 is 0, set empty field. + $_GET['ladder'] = $_GET['ladder'] ?? ''; + $_GET['carry1'] = $_GET['carry1'] ?? ''; + + $index = $_GET['index']; + $sql = "SELECT COUNT(*) FROM uniqueitems WHERE `index` = ?"; + + $indexExists = PDO_FetchOne($sql, [$index]); + $columns = array_keys($_GET); + + // Build the INSERT query + $insertQuery = 'INSERT INTO uniqueitems ('; + foreach ($_GET as $k => $v) { + $column = str_replace("_", " ", $k); + $insertQuery .= "`$column`, "; + } + $insertQuery = rtrim($insertQuery, ", "); + $insertQuery .= ") VALUES ("; + foreach ($_GET as $k => $v) { + $insertQuery .= "\"$v\", "; + } + $insertQuery = rtrim($insertQuery, ", "); + $insertQuery .= ")"; + + // Build the UPDATE query + $updateQuery = 'UPDATE uniqueitems SET '; + + foreach ($_GET as $k => $v) { + $column = str_replace("_", " ", $k); + $updateQuery .= "`$column` = \"$v\", "; + } + $updateQuery = rtrim($updateQuery, ", "); + + $updateQuery .= " WHERE `index`=\"$index\""; + + if ($indexExists) { + $res = PDO_Execute($updateQuery); + } else { + $res = PDO_Execute($insertQuery); + } + + + $output = saveFile(); + + header('Content-Type: application/json'); + echo json_encode($output, JSON_INVALID_UTF8_IGNORE); +} \ No newline at end of file diff --git a/res/app.js b/res/app.js index 7aa191b..8a0fc74 100755 --- a/res/app.js +++ b/res/app.js @@ -1,29 +1,29 @@ /* - + Copyright (C) 2021 Hash Borgir - - This file is part of D2Modder - + + This file is part of D2Modder + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - + * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - - * This software must not be used for commercial purposes + + * This software must not be used for commercial purposes * without my consent. Any sales or commercial use are prohibited * without my express knowledge and consent. - + This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY! - + but WITHOUT ANY WARRANTY! + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF @@ -37,110 +37,110 @@ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - */ + */ +// highlight json dump for item debugger function syntaxHighlight(json) { - json = json.replace(/&/g, '&').replace(//g, '>'); - return json.replace(/("(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)/g, function (match) { - var cls = 'number'; - if (/^"/.test(match)) { - if (/:$/.test(match)) { - cls = 'key'; - } else { - cls = 'string'; - } - } else if (/true|false/.test(match)) { - cls = 'boolean'; - } else if (/null/.test(match)) { - cls = 'null'; - } - return '' + match + ''; - }); + json = json.replace(/&/g, '&').replace(//g, '>'); + return json.replace(/("(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)/g, function (match) { + var cls = 'number'; + if (/^"/.test(match)) { + if (/:$/.test(match)) { + cls = 'key'; + } else { + cls = 'string'; + } + } else if (/true|false/.test(match)) { + cls = 'boolean'; + } else if (/null/.test(match)) { + cls = 'null'; + } + return '' + match + ''; + }); } function search() { - $.get("/ajax/uniqueitems.php?cmd=search&search=" + searchbox.value, function (data) { - $('.uniqueitems-select').html(data) - }); + $.get("/ajax/uniqueitems.php?cmd=search&search=" + searchbox.value, function (data) { + $('.uniqueitems-select').html(data) + }); } function capitalizeFirstLetter(string) { - return string.charAt(0).toUpperCase() + string.slice(1); + return string.charAt(0).toUpperCase() + string.slice(1); } $(document).ready(function () { - $('.form-text').hide(); - $('.help').click(function () { - // $('.form-text').slideToggle(); - }); + $('.form-text').hide(); + $('.help').click(function () { + // $('.form-text').slideToggle(); + }); - $('.op1').val(this.checked); - $('.op1').change(function () { - if (this.checked) { - $('option[disabled="disabled"]').hide(); - } else { - $('option[disabled="disabled"]').show(); - } - }); + $('.op1').val(this.checked); + $('.op1').change(function () { + if (this.checked) { + $('option[disabled="disabled"]').hide(); + } else { + $('option[disabled="disabled"]').show(); + } + }); - $(function () { - $('[data-toggle="tooltip"]').tooltip() - }) + $(function () { + $('[data-toggle="tooltip"]').tooltip() + }) - $('.w-select').change(function () { - $('.a-select,.m-select').each(function (i, v) { - v.value = ''; - v.required = ''; - }); + $('.w-select').change(function () { + $('.a-select,.m-select').each(function (i, v) { + v.value = ''; + v.required = ''; + }); - x = $(this).find(':selected').text(); - y = document.getElementById('item'); - y.value = x; + x = $(this).find(':selected').text(); + y = document.getElementById('item'); + y.value = x; - }); + }); - $('.a-select').change(function () { - $('.w-select,.m-select').each(function (i, v) { - v.value = ''; - v.required = ''; - }); + $('.a-select').change(function () { + $('.w-select,.m-select').each(function (i, v) { + v.value = ''; + v.required = ''; + }); - x = $(this).find(':selected').text(); - y = document.getElementById('item'); - y.value = x; - }); - $('.m-select').change(function () { - $('.w-select,.a-select').each(function (i, v) { - v.value = ''; - v.required = ''; - }); + x = $(this).find(':selected').text(); + y = document.getElementById('item'); + y.value = x; + }); + $('.m-select').change(function () { + $('.w-select,.a-select').each(function (i, v) { + v.value = ''; + v.required = ''; + }); - x = $(this).find(':selected').text(); - y = document.getElementById('item'); - y.value = x; - }); + x = $(this).find(':selected').text(); + y = document.getElementById('item'); + y.value = x; + }); - $(".btnconfig").click(function () { - $(".ctrl-config").hide(); - $("#loading").show(); + $(".btnconfig").click(function () { + $(".ctrl-config").hide(); + $("#loading").show(); - }); + }); - $('.help').click(function () { - $(".fa-help").remove(); - $(this).next().fadeToggle().focus().css({ - "position": "absolute", - "z-index": "1000", - "background": "#eee", - "color": "black !important", - "border": "1px solid #aaa", - "width": "300px", - }) - }); + $('.help').click(function () { + $(".fa-help").remove(); + $(this).next().fadeToggle().focus().css({ + "position": "absolute", + "z-index": "1000", + "background": "#eee", + "color": "black !important", + "border": "1px solid #aaa", + "width": "300px", + }) + }); // $('.help').prev().hover(function () { // $(".fa-help").remove(); @@ -152,348 +152,356 @@ $(document).ready(function () { // "border": "1px solid #aaa", // "width": "300px", // }) -// }); +// }); - $('.form-text').click(function () { - $(this).fadeOut("slow"); - }); - - - - $('').change(function () { - if (this.checked) { - $('option[disabled="disabled"]').hide(); - } else { - $('option[disabled="disabled"]').show(); - } - }); - - - $('input[name="invfile"]').keyup(function(){ - invImg = docpath + '/img/items/' + this.value + ".png"; - $(".item").attr("src", invImg); + $('.form-text').click(function () { + $(this).fadeOut("slow"); }); - // every time we change a prop dropdown, - // - // 1 send to server, - // 2 grab string, - // 3 update item display - $('select[name^="prop"]').change(function () { - prop = capitalizeFirstLetter($(this).attr("name")); - propNum = prop.substring(4); - par = $(this).next().val(); - min = $(this).next().next().val(); - max = $(this).next().next().next().val(); - val = escape(this.value); - $.get(`/ajax/uniqueitems.php?cmd=getString&prop=${val}&par=${par}&min=${min}&max=${max}`, function (data) { - console.log(data); - $(`.item_stats ul .${prop}`).html(data); - }); - }); + $('').change(function () { + if (this.checked) { + $('option[disabled="disabled"]').hide(); + } else { + $('option[disabled="disabled"]').show(); + } + }); - /* - * Properties/par/min/max onchange function, updated item string stats - * - * - * - * - * - * - * - * - - **/ - - - $('.par1, .min1, .max1').change(function () { - prop = "Prop1"; - - par = $('.par1').val(); - if (par == '') - par = 0; - min = $('.min1').val(); - max = $('.max1').val(); - - val = escape($("*[name='prop1'").val()); - $.get(`/ajax/uniqueitems.php?cmd=getString&prop=${val}&par=${par}&min=${min}&max=${max}`, function (data) { - console.log(data); - $(`.item_stats ul .${prop}`).html(data); - }); - }); - - $('.par2, .min2, .max2').change(function () { - prop = "Prop2"; - - par = $('.par2').val(); - if (par == '') - par = 0; - min = $('.min2').val(); - max = $('.max2').val(); - - val = escape($("*[name='prop2'").val()); - $.get(`/ajax/uniqueitems.php?cmd=getString&prop=${val}&par=${par}&min=${min}&max=${max}`, function (data) { - console.log(data); - $(`.item_stats ul .${prop}`).html(data); - }); - }); - - $('.par3, .min3, .max3').change(function () { - prop = "Prop3"; - - par = $('.par3').val(); - if (par == '') - par = 0; - min = $('.min3').val(); - max = $('.max3').val(); - - val = escape($("*[name='prop3'").val()); - $.get(`/ajax/uniqueitems.php?cmd=getString&prop=${val}&par=${par}&min=${min}&max=${max}`, function (data) { - console.log(data); - $(`.item_stats ul .${prop}`).html(data); - }); - }); - - $('.par4, .min4, .max4').change(function () { - prop = "Prop4"; - - par = $('.par4').val(); - if (par == '') - par = 0; - min = $('.min4').val(); - max = $('.max4').val(); - - val = escape($("*[name='prop4'").val()); - $.get(`/ajax/uniqueitems.php?cmd=getString&prop=${val}&par=${par}&min=${min}&max=${max}`, function (data) { - console.log(data); - $(`.item_stats ul .${prop}`).html(data); - }); - }); + $('input[name="invfile"]').keyup(function () { + invImg = docpath + '/img/items/' + this.value + ".png"; + $(".item").attr("src", invImg); + }); - $('.par5, .min5, .max5').change(function () { - prop = "Prop5"; - - par = $('.par5').val(); - if (par == '') par = 0; - min = $('.min5').val(); - max = $('.max5').val(); + // every time we change a prop dropdown, + // + // 1 send to server, + // 2 grab string, + // 3 update item display + $('select[name^="prop"]').change(function () { + prop = capitalizeFirstLetter($(this).attr("name")); + propNum = prop.substring(4); + par = $(this).next().val(); + min = $(this).next().next().val(); + max = $(this).next().next().next().val(); - val = escape($("*[name='prop5'").val()); - $.get(`/ajax/uniqueitems.php?cmd=getString&prop=${val}&par=${par}&min=${min}&max=${max}`, function (data) { - console.log(data); - $(`.item_stats ul .${prop}`).html(data); - }); - }); - - $('.par6, .min6, .max6').change(function () { - prop = "Prop6"; - - par = $('.par6').val(); - if (par == '') par = 0; - min = $('.min6').val(); - max = $('.max6').val(); - - val = escape($("*[name='prop6'").val()); - $.get(`/ajax/uniqueitems.php?cmd=getString&prop=${val}&par=${par}&min=${min}&max=${max}`, function (data) { - console.log(data); - $(`.item_stats ul .${prop}`).html(data); - }); - }); + val = escape(this.value); + $.get(`/ajax/uniqueitems.php?cmd=getString&prop=${val}&par=${par}&min=${min}&max=${max}`, function (data) { + console.log(data); + $(`.item_stats ul .${prop}`).html(data); + }); + }); - $('.par7, .min7, .max7').change(function () { - prop = "Prop7"; - - par = $('.par7').val(); - if (par == '') par = 0; - min = $('.min7').val(); - max = $('.max7').val(); + /* + * Properties/par/min/max onchange function, updated item string stats + * + * + * + * + * + * + * + * - val = escape($("*[name='prop7'").val()); - $.get(`/ajax/uniqueitems.php?cmd=getString&prop=${val}&par=${par}&min=${min}&max=${max}`, function (data) { - console.log(data); - $(`.item_stats ul .${prop}`).html(data); - }); - }); + **/ + + + $('.par1, .min1, .max1').change(function () { + prop = "Prop1"; + + par = $('.par1').val(); + if (par == '') + par = 0; + min = $('.min1').val(); + max = $('.max1').val(); + + val = escape($("*[name='prop1'").val()); + $.get(`/ajax/uniqueitems.php?cmd=getString&prop=${val}&par=${par}&min=${min}&max=${max}`, function (data) { + console.log(data); + $(`.item_stats ul .${prop}`).html(data); + }); + }); + + $('.par2, .min2, .max2').change(function () { + prop = "Prop2"; + + par = $('.par2').val(); + if (par == '') + par = 0; + min = $('.min2').val(); + max = $('.max2').val(); + + val = escape($("*[name='prop2'").val()); + $.get(`/ajax/uniqueitems.php?cmd=getString&prop=${val}&par=${par}&min=${min}&max=${max}`, function (data) { + console.log(data); + $(`.item_stats ul .${prop}`).html(data); + }); + }); + + $('.par3, .min3, .max3').change(function () { + prop = "Prop3"; + + par = $('.par3').val(); + if (par == '') + par = 0; + min = $('.min3').val(); + max = $('.max3').val(); + + val = escape($("*[name='prop3'").val()); + $.get(`/ajax/uniqueitems.php?cmd=getString&prop=${val}&par=${par}&min=${min}&max=${max}`, function (data) { + console.log(data); + $(`.item_stats ul .${prop}`).html(data); + }); + }); + + $('.par4, .min4, .max4').change(function () { + prop = "Prop4"; + + par = $('.par4').val(); + if (par == '') + par = 0; + min = $('.min4').val(); + max = $('.max4').val(); + + val = escape($("*[name='prop4'").val()); + $.get(`/ajax/uniqueitems.php?cmd=getString&prop=${val}&par=${par}&min=${min}&max=${max}`, function (data) { + console.log(data); + $(`.item_stats ul .${prop}`).html(data); + }); + }); + + + $('.par5, .min5, .max5').change(function () { + prop = "Prop5"; + + par = $('.par5').val(); + if (par == '') + par = 0; + min = $('.min5').val(); + max = $('.max5').val(); + + val = escape($("*[name='prop5'").val()); + $.get(`/ajax/uniqueitems.php?cmd=getString&prop=${val}&par=${par}&min=${min}&max=${max}`, function (data) { + console.log(data); + $(`.item_stats ul .${prop}`).html(data); + }); + }); + + $('.par6, .min6, .max6').change(function () { + prop = "Prop6"; + + par = $('.par6').val(); + if (par == '') + par = 0; + min = $('.min6').val(); + max = $('.max6').val(); + + val = escape($("*[name='prop6'").val()); + $.get(`/ajax/uniqueitems.php?cmd=getString&prop=${val}&par=${par}&min=${min}&max=${max}`, function (data) { + console.log(data); + $(`.item_stats ul .${prop}`).html(data); + }); + }); + + + $('.par7, .min7, .max7').change(function () { + prop = "Prop7"; + + par = $('.par7').val(); + if (par == '') + par = 0; + min = $('.min7').val(); + max = $('.max7').val(); + + val = escape($("*[name='prop7'").val()); + $.get(`/ajax/uniqueitems.php?cmd=getString&prop=${val}&par=${par}&min=${min}&max=${max}`, function (data) { + console.log(data); + $(`.item_stats ul .${prop}`).html(data); + }); + }); - $('.par8, .min8, .max8').change(function () { - prop = "Prop8"; - - par = $('.par8').val(); - if (par == '') par = 0; - min = $('.min8').val(); - max = $('.max8').val(); + $('.par8, .min8, .max8').change(function () { + prop = "Prop8"; - val = escape($("*[name='prop8'").val()); - $.get(`/ajax/uniqueitems.php?cmd=getString&prop=${val}&par=${par}&min=${min}&max=${max}`, function (data) { - console.log(data); - $(`.item_stats ul .${prop}`).html(data); - }); - }); + par = $('.par8').val(); + if (par == '') + par = 0; + min = $('.min8').val(); + max = $('.max8').val(); + + val = escape($("*[name='prop8'").val()); + $.get(`/ajax/uniqueitems.php?cmd=getString&prop=${val}&par=${par}&min=${min}&max=${max}`, function (data) { + console.log(data); + $(`.item_stats ul .${prop}`).html(data); + }); + }); - $('.par9, .min9, .max9').change(function () { - prop = "Prop9"; - - par = $('.par9').val(); - if (par == '') par = 0; - min = $('.min9').val(); - max = $('.max9').val(); + $('.par9, .min9, .max9').change(function () { + prop = "Prop9"; - val = escape($("*[name='prop9'").val()); - $.get(`/ajax/uniqueitems.php?cmd=getString&prop=${val}&par=${par}&min=${min}&max=${max}`, function (data) { - console.log(data); - $(`.item_stats ul .${prop}`).html(data); - }); - }); + par = $('.par9').val(); + if (par == '') + par = 0; + min = $('.min9').val(); + max = $('.max9').val(); + + val = escape($("*[name='prop9'").val()); + $.get(`/ajax/uniqueitems.php?cmd=getString&prop=${val}&par=${par}&min=${min}&max=${max}`, function (data) { + console.log(data); + $(`.item_stats ul .${prop}`).html(data); + }); + }); - $('.par10, .min10, .max10').change(function () { - prop = "Prop10"; - - par = $('.par10').val(); - if (par == '') par = 0; - min = $('.min10').val(); - max = $('.max10').val(); + $('.par10, .min10, .max10').change(function () { + prop = "Prop10"; - val = escape($("*[name='prop10'").val()); - $.get(`/ajax/uniqueitems.php?cmd=getString&prop=${val}&par=${par}&min=${min}&max=${max}`, function (data) { - console.log(data); - $(`.item_stats ul .${prop}`).html(data); - }); - }); + par = $('.par10').val(); + if (par == '') + par = 0; + min = $('.min10').val(); + max = $('.max10').val(); + + val = escape($("*[name='prop10'").val()); + $.get(`/ajax/uniqueitems.php?cmd=getString&prop=${val}&par=${par}&min=${min}&max=${max}`, function (data) { + console.log(data); + $(`.item_stats ul .${prop}`).html(data); + }); + }); - $('.par11, .min11, .max11').change(function () { - prop = "Prop11"; - - par = $('.par11').val(); - if (par == '') par = 0; - min = $('.min11').val(); - max = $('.max11').val(); + $('.par11, .min11, .max11').change(function () { + prop = "Prop11"; - val = escape($("*[name='prop11'").val()); - $.get(`/ajax/uniqueitems.php?cmd=getString&prop=${val}&par=${par}&min=${min}&max=${max}`, function (data) { - console.log(data); - $(`.item_stats ul .${prop}`).html(data); - }); - }); + par = $('.par11').val(); + if (par == '') + par = 0; + min = $('.min11').val(); + max = $('.max11').val(); - $('.par12, .min12, .max12').change(function () { - prop = "Prop12"; - - par = $('.par12').val(); - if (par == '') par = 0; - min = $('.min12').val(); - max = $('.max12').val(); + val = escape($("*[name='prop11'").val()); + $.get(`/ajax/uniqueitems.php?cmd=getString&prop=${val}&par=${par}&min=${min}&max=${max}`, function (data) { + console.log(data); + $(`.item_stats ul .${prop}`).html(data); + }); + }); - val = escape($("*[name='prop12'").val()); - $.get(`/ajax/uniqueitems.php?cmd=getString&prop=${val}&par=${par}&min=${min}&max=${max}`, function (data) { - console.log(data); - $(`.item_stats ul .${prop}`).html(data); - }); - }); + $('.par12, .min12, .max12').change(function () { + prop = "Prop12"; + + par = $('.par12').val(); + if (par == '') + par = 0; + min = $('.min12').val(); + max = $('.max12').val(); + + val = escape($("*[name='prop12'").val()); + $.get(`/ajax/uniqueitems.php?cmd=getString&prop=${val}&par=${par}&min=${min}&max=${max}`, function (data) { + console.log(data); + $(`.item_stats ul .${prop}`).html(data); + }); + }); -/* - * - * END on change for inputs - * - * - * - * update item index, lvl, lvl req - * - * - * - **/ + /* + * + * END on change for inputs + * + * + * + * update item index, lvl, lvl req + * + * + * + **/ - $("input[name='index']").keyup(function(){ - $(".itemindex").html($(this).val()); - }); + $("input[name='index']").keyup(function () { + $(".itemindex").html($(this).val()); + }); - $('input[name="lvl"]').keyup(function(){ - $(".itemlvl").html("Level: "+$(this).val()); - }); - $('input[name="lvl req"]').keyup(function(){ - $(".itemlvlreq").html("Level Required: "+$(this).val()); - }); + $('input[name="lvl"]').keyup(function () { + $(".itemlvl").html("Level: " + $(this).val()); + }); + $('input[name="lvl req"]').keyup(function () { + $(".itemlvlreq").html("Level Required: " + $(this).val()); + }); - // cmd = getUniqueItem - $('.uniqueitems-select').change(function () { + // cmd = getUniqueItem + $('.uniqueitems-select').change(function () { - $(".item").attr("src", "/img/items/1.png"); - $(".item_debug_link").attr('href', "/ajax/uniqueitems.php?cmd=getUniqueItem&index=" + this.value) - $.get("/ajax/uniqueitems.php?cmd=getUniqueItem&index=" + this.value, function (data) { + $(".item").attr("src", "/img/items/1.png"); + $(".item_debug_link").attr('href', "/ajax/uniqueitems.php?cmd=getUniqueItem&index=" + this.value) + $.get("/ajax/uniqueitems.php?cmd=getUniqueItem&index=" + this.value, function (data) { - debugData = (JSON.stringify(data, null, 4)); - $('.debug, .debug_preview').html(syntaxHighlight(debugData)); - props = data.props; + debugData = (JSON.stringify(data, null, 4)); + $('.debug, .debug_preview').html(syntaxHighlight(debugData)); + props = data.props; - // update preview - //$('.item_stats div').hide().html("

"); + // update preview + //$('.item_stats div').hide().html("

"); invImg = docpath + '/img/items/' + data.invfile + ".png"; - $(".item").attr("src", invImg); + $(".item").attr("src", invImg); $(".item").onerror = function () { invImg = "/img/items/" + data.invfile + ".png"; this.src = invImg; }; - type = data["*type"]; - lvlreq = data["lvl req"]; + type = data["*type"]; + lvlreq = data["lvl req"]; - base = data.baseItemInfo; + base = data.baseItemInfo; - $('.item_stats ul .itemindex').html(data.index); - $('.item_stats ul .itemtype').html(`(${type})`); - $('.item_stats ul .itemlvl').html(`Level: ${base.level}`); - $('.item_stats ul .itemlvlreq').html(`Level Required: ${lvlreq}`); + $('.item_stats ul .itemindex').html(data.index); + $('.item_stats ul .itemtype').html(`(${type})`); + $('.item_stats ul .itemlvl').html(`Level: ${base.level}`); + $('.item_stats ul .itemlvlreq').html(`Level Required: ${lvlreq}`); - $('.item_stats ul .itemcode').html(`Item Code: (${base.code})`); + $('.item_stats ul .itemcode').html(`Item Code: (${base.code})`); - if (base.reqstr) { - $('.item_stats ul .itemstreq').html(`Required Strength: ${base.reqstr}`); - } - if (base.reqdex) { - $('.item_stats ul .itemdexreq').html(`Required Dexterity: ${base.reqdex}`); - } - if (base['gemsockets']) { - $('.item_stats ul .itemgemsockets').html(`Max Sockets: (${base.gemsockets})`); + if (base.reqstr) { + $('.item_stats ul .itemstreq').html(`Required Strength: ${base.reqstr}`); + } + if (base.reqdex) { + $('.item_stats ul .itemdexreq').html(`Required Dexterity: ${base.reqdex}`); + } + if (base['gemsockets']) { + $('.item_stats ul .itemgemsockets').html(`Max Sockets: (${base.gemsockets})`); - } + } - /* - * THIS LINE BREAKS hidden fields and set them to blank. - * - */ + /* + * THIS LINE BREAKS hidden fields and set them to blank. + * + */ - $('.props-container select, .props-container input').val(''); + $('.props-container select, .props-container input').val(''); - $('.item_stats ul .blue').each(function (i, v) { - $(v).html(""); - }); + $('.item_stats ul .blue').each(function (i, v) { + $(v).html(""); + }); - // add the rest of the prop li's here - $.each(props, function (i, v) { - if (v.string) { - $(`.item_stats ul .${i}`).html(v.string[0]); - } - }); + // add the rest of the prop li's here + $.each(props, function (i, v) { + if (v.string) { + $(`.item_stats ul .${i}`).html(v.string[0]); + } + }); - // add the rest of the prop li's here + // add the rest of the prop li's here // var i; // for (i = 1; i <= 12; i++) { @@ -503,48 +511,48 @@ $(document).ready(function () { // } - //$('.item_stats div').show(); + //$('.item_stats div').show(); - //console.log(data['lvl req']); + //console.log(data['lvl req']); - $.each(data, function (i, v) { - $('*[name="' + i + '"]').val(v); - if (i == 'code') { - $('select[name="code[]"]').val(v); - $('select[name="code[]"]').prop('required', ''); - } - }); - }); - }); + $.each(data, function (i, v) { + $('*[name="' + i + '"]').val(v); + if (i == 'code') { + $('select[name="code[]"]').val(v); + $('select[name="code[]"]').prop('required', ''); + } + }); + }); + }); - $(".btnDebug").click(function () { - $(".debug_preview").slideToggle(); - }); + $(".btnDebug").click(function () { + $(".debug_preview").slideToggle(); + }); - // cmd = sortBy - $('input[name="sort"]').change(function () { - $.get("/ajax/uniqueitems.php?cmd=sortBy&sort=" + this.value, function (data) { - $('.uniqueitems-select').html(data) - }); - }); + // cmd = sortBy + $('input[name="sort"]').change(function () { + $.get("/ajax/uniqueitems.php?cmd=sortBy&sort=" + this.value, function (data) { + $('.uniqueitems-select').html(data) + }); + }); - // cmd = viewOnly - $('input[name="view"]').change(function () { - $.get("/ajax/uniqueitems.php?cmd=viewOnly&view=" + this.value, function (data) { - $('.uniqueitems-select').html(data) - }); - }); + // cmd = viewOnly + $('input[name="view"]').change(function () { + $.get("/ajax/uniqueitems.php?cmd=viewOnly&view=" + this.value, function (data) { + $('.uniqueitems-select').html(data) + }); + }); - searchbox = document.getElementById('search'); - searchbox.addEventListener('input', search); + searchbox = document.getElementById('search'); + searchbox.addEventListener('input', search); - $('input[name="theme"]').change(function () { - modname = $('input[name="modname"]').val(); - $.get("/res/css.php?theme=" + this.value + "&modname=" + modname, function (data) { - location.reload(); - }); + $('input[name="theme"]').change(function () { + modname = $('input[name="modname"]').val(); + $.get("/res/css.php?theme=" + this.value + "&modname=" + modname, function (data) { + location.reload(); + }); // $('body').toggleClass("body-dark"); @@ -553,16 +561,43 @@ $(document).ready(function () { // $('select').toggleClass("select-dark"); // $('option').toggleClass("option-dark"); // $('.col-2,.col-3,.col-4').attr({"style":""}); - }); + }); - //genDocUniqueItems - $("#Unique .btnDocs").click(function () { - window.open('/genDocs.php?cmd=genDocUniqueItems', '_blank'); - }); + //genDocUniqueItems + $("#Unique .btnDocs").click(function () { + window.open('/genDocs.php?cmd=genDocUniqueItems', '_blank'); + }); + + $('.btn-delete').click(function (event) { + event.preventDefault(); // Prevent default button click behavior + + // delete item index + $.get('/ajax/uniqueitems.php?cmd=delete&index=' + $(".uniqueform input[name='index']").val(), function (response) { + // Handle the response from the server + // remove option from list + $('.uniqueitems-select option[value="' + $(".uniqueform input[name='index']").val() + '"]').remove(); + console.log(response); + }); + }); + $('.btn-save').click(function (event) { + event.preventDefault(); // Prevent default button click behavior + + + // Get form data + var formData = $(".uniqueform").serialize(); + + + + // delete item index + $.get('/ajax/uniqueitems.php?cmd=save&' + formData, function (response) { + // Handle the response from the server + console.log(response); + }); + }); diff --git a/src/header.php b/src/header.php index 75ad8aa..e2b71b5 100755 --- a/src/header.php +++ b/src/header.php @@ -61,7 +61,7 @@