From 64bd1caa037d2664d53ec2cf3d6bced8b3132ef5 Mon Sep 17 00:00:00 2001 From: Hash Borgir Date: Tue, 30 May 2023 14:24:18 -0600 Subject: [PATCH] app.us cleanup, some refactor using GPT --- res/app.js | 925 +++++++++++++++++++---------------------------------- 1 file changed, 322 insertions(+), 603 deletions(-) diff --git a/res/app.js b/res/app.js index 8a0fc74..36c31da 100755 --- a/res/app.js +++ b/res/app.js @@ -1,604 +1,323 @@ -/* - - Copyright (C) 2021 Hash Borgir - - 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 - * 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! - - 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 - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - 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 + ''; - }); -} - - -function search() { - $.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); -} - -$(document).ready(function () { - $('.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(); - } - }); - - $(function () { - $('[data-toggle="tooltip"]').tooltip() - }) - - $('.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; - - }); - - $('.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; - }); - - $(".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').prev().hover(function () { -// $(".fa-help").remove(); -// $(this).next().next().fadeToggle().focus().css({ -// "position": "absolute", -// "z-index": "1000", -// "background": "#eee", -// "color": "black !important", -// "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); - }); - - - // 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); - }); - }); - - - /* - * 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); - }); - }); - - - $('.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(); - - 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(); - - 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(); - - 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(); - - 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); - }); - }); - - $('.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 - * - * - * - **/ - - $("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()); - }); - - - // 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) { - - - debugData = (JSON.stringify(data, null, 4)); - $('.debug, .debug_preview').html(syntaxHighlight(debugData)); - props = data.props; - - // update preview - //$('.item_stats div').hide().html("

"); - - invImg = docpath + '/img/items/' + data.invfile + ".png"; - $(".item").attr("src", invImg); - $(".item").onerror = function () { - invImg = "/img/items/" + data.invfile + ".png"; - this.src = invImg; - }; - - type = data["*type"]; - lvlreq = data["lvl req"]; - - 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 .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})`); - - } - - - /* - * THIS LINE BREAKS hidden fields and set them to blank. - * - */ - - $('.props-container select, .props-container input').val(''); - - - - $('.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 - -// var i; -// for (i = 1; i <= 12; i++) { -// if (props['Prop' + i]['string'] && props['Prop' + i]['string'] !== '') { -// $(`.item_stats ul .Prop${i}`).html(`${data.index}`); -// } -// } - - - //$('.item_stats div').show(); - - //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', ''); - } - }); - }); - }); - - $(".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 = 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); - - - $('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"); -// $('.container-top').toggleClass("container-top-dark"); -// $('input').toggleClass("input-dark"); -// $('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'); - }); - - $('.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); - }); - }); - - - +/* + + Copyright (C) 2021 Hash Borgir + + 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 + * 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! + + 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 + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + 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 + ''; + }); +} + + +function search() { + $.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); +} + +$(document).ready(function () { + $('.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(); + } + }); + + $(function () { + $('[data-toggle="tooltip"]').tooltip() + }) + + // armor/misc/weapons select dropdown chagne function + $('.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; + + }); + $('.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; + }); + + $(".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", + }) + }); + + $('.form-text').click(function () { + $(this).fadeOut("slow"); + }); + + $('input[name="invfile"]').keyup(function () { + invImg = docpath + '/img/items/' + this.value + ".png"; + $(".item").attr("src", invImg); + }); + + // every time we change a prop dropdown,send to server, grab string, 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); + }); + }); + + // Properties's par/min/max onchange function, updated item string stats + function createChangeHandler(propNumber) { + var prop = "Prop" + propNumber; + + return function () { + var par = $('.par' + propNumber).val() || 0; + var min = $('.min' + propNumber).val(); + var max = $('.max' + propNumber).val(); + var val = escape($("*[name='prop" + propNumber + "'").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); + }); + }; + } + // Run the loop 12 times for 12 props, and handle the change event + for (var i = 1; i <= 12; i++) { + $('.par' + i + ', .min' + i + ', .max' + i).change(createChangeHandler(i)); + } + + // index, lvl, lvl req change functions + $("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()); + }); + + + // 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) { + debugData = (JSON.stringify(data, null, 4)); + $('.debug, .debug_preview').html(syntaxHighlight(debugData)); + props = data.props; + + invImg = docpath + '/img/items/' + data.invfile + ".png"; + $(".item").attr("src", invImg); + $(".item").onerror = function () { + invImg = "/img/items/" + data.invfile + ".png"; + this.src = invImg; + }; + + type = data["*type"]; + lvlreq = data["lvl req"]; + 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 .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})`); + } + + // THIS LINE BREAKS hidden fields and set them to blank. + $('.props-container select, .props-container input').val(''); + + // clear some blue text, I forgot what + $('.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]); + } + }); + + $.each(data, function (i, v) { + $('*[name="' + i + '"]').val(v); + if (i == 'code') { + $('select[name="code[]"]').val(v); + $('select[name="code[]"]').prop('required', ''); + } + }); + }); + }); + + // Debug preview slide down box + $(".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 = 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); + + $('input[name="theme"]').change(function () { + modname = $('input[name="modname"]').val(); + $.get("/res/css.php?theme=" + this.value + "&modname=" + modname, function (data) { + location.reload(); + }); + }); + + //genDocUniqueItems + $("#Unique .btnDocs").click(function () { + window.open('/genDocs.php?cmd=genDocUniqueItems', '_blank'); + }); + + // Delete button event + $('.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); + }); + }); + + // Save button event + $('.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); + }); + }); + + + }); \ No newline at end of file