From d104aaf3ebcddfbda495bdfe3ba3a905f75b936f Mon Sep 17 00:00:00 2001 From: jahoti Date: Sun, 15 Aug 2021 00:00:00 +0000 Subject: Port existing fixes from hachette_fixes_tmp to Hydrilla format --- .../display_prices.js | 55 ++++++++++++++++++++++ .../spc_specialist_uk-_display_prices/index.json | 6 +++ 2 files changed, 61 insertions(+) create mode 100644 content/spc_specialist_uk-_display_prices/display_prices.js create mode 100644 content/spc_specialist_uk-_display_prices/index.json (limited to 'content/spc_specialist_uk-_display_prices') diff --git a/content/spc_specialist_uk-_display_prices/display_prices.js b/content/spc_specialist_uk-_display_prices/display_prices.js new file mode 100644 index 0000000..f60f6ae --- /dev/null +++ b/content/spc_specialist_uk-_display_prices/display_prices.js @@ -0,0 +1,55 @@ +/* + Copyright © 2021 jahoti (jahoti@tilde.team) + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +const formId = document.querySelector('input[name="page_id"]').value; +const form = document.querySelector('form[name="specbuilder"]'); +const noVat = document.getElementById('running_total_ex'); +const incVat = document.getElementById('running_total_inc'); + +function updatePrice() { + const xhr = new XMLHttpRequest(); + + var names = [], values = []; + for (var inputElement of form.querySelectorAll('select, input[type="radio"]')) { + if (inputElement.name && (inputElement.checked || inputElement.tagName === 'SELECT')) { + names.push(inputElement.name); + values.push(inputElement.value); + } + } + + const url = 'https://www.pcspecialist.co.uk/ajax/running_total.php?categories=' + names.join('%2C') + + '%2C&products=' + values.join('%2C') + '%2C&q=' + form.querySelector('input[name="q"]').value + '&form_id=' + formId; + + xhr.onreadystatechange = priceUpdated; + xhr.open('GET', url, true); + xhr.send(); +} + +function priceUpdated() { + if (this.readyState === 4) { + if (this.status === 200) { + const parts = this.responseText.split("'"); + noVat.innerText = parts[parts.length - 6]; + incVat.innerText = parts[parts.length - 2]; + } + else alert('Failed to get data: HTTP status code ' + this.status); + } +} + +const button = document.createElement('button'); +button.innerText = 'Update Prices'; +button.onclick = updatePrice; +document.querySelector('.price-holder.price-finance-holder').append(button); \ No newline at end of file diff --git a/content/spc_specialist_uk-_display_prices/index.json b/content/spc_specialist_uk-_display_prices/index.json new file mode 100644 index 0000000..98ebc2f --- /dev/null +++ b/content/spc_specialist_uk-_display_prices/index.json @@ -0,0 +1,6 @@ +{ +"type" : "script", +"name" : "PC Specialist UK- Display Prices", +"sha256" : "2fe767a1b8ee4d28e4c15eb065ecfbc0d4aebebfb2569497ed779a0ebe71112b", +"location" : "display_prices.js" +} -- cgit v1.2.3