Linux ip-172-31-33-47 5.4.0-1045-aws #47~18.04.1-Ubuntu SMP Tue Apr 13 15:58:14 UTC 2021 x86_64
Apache/2.4.29 (Ubuntu)
: 172.31.33.47 | : 216.73.216.35
Cant Read [ /etc/named.conf ]
7.4.20
www-data
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
var /
www /
html /
cravings /
public /
js /
[ HOME SHELL ]
Name
Size
Permission
Action
dist
[ DIR ]
drwxr-xr-x
.DS_Store
8
KB
-rw-rw-r--
addfood.js
12.9
KB
-rw-rw-r--
auth.js
2.07
KB
-rw-rw-r--
autocomplete.js
1.83
KB
-rw-rw-r--
autos.js
578
B
-rw-rw-r--
bootstrap.min.js
56.24
KB
-rw-rw-r--
cloudinary.js
1.81
KB
-rw-rw-r--
cloudinary2.js
1.03
KB
-rw-rw-r--
cloudinary_global.js
132.8
KB
-rw-rw-r--
cravvings.js
344
B
-rw-rw-r--
fetch.js
392
B
-rw-rw-r--
handlebars.min.js
78.38
KB
-rw-rw-r--
home.js
1.51
KB
-rw-rw-r--
initMap.js
1.21
KB
-rw-rw-r--
input-control.js
987
B
-rw-rw-r--
inputmap.js
428
B
-rw-rw-r--
jquery-ui.js
681.55
KB
-rw-rw-r--
jquery.js
102.1
KB
-rw-rw-r--
jquery.modal.min.js
4.84
KB
-rw-rw-r--
js-autocomplete.js
11.29
KB
-rw-rw-r--
main.js
1.25
KB
-rw-rw-r--
mainsearch.js
973
B
-rw-rw-r--
maps.js
3.71
KB
-rw-rw-r--
moment.js
147.4
KB
-rw-rw-r--
nearby.js
18.4
KB
-rw-rw-r--
place.js
10.56
KB
-rw-rw-r--
placenew.js
9.37
KB
-rw-rw-r--
places-list.js
1.35
KB
-rw-rw-r--
popper.min.js
22.09
KB
-rw-rw-r--
review.js
6.32
KB
-rw-rw-r--
search.js
1.16
KB
-rw-rw-r--
searchInput.js
2.83
KB
-rw-rw-r--
select2.min.js
69.19
KB
-rw-rw-r--
side.js
851
B
-rw-rw-r--
slick.min.js
41.86
KB
-rw-rw-r--
swal2.js
63.36
KB
-rw-rw-r--
sweetalert.js
39.85
KB
-rw-rw-r--
tooltip.js
6.22
KB
-rw-rw-r--
utility.js
10.34
KB
-rw-rw-r--
vex.combined.js
17.49
KB
-rw-rw-r--
vex.min.js
8.79
KB
-rw-rw-r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : addfood.js
$(document).ready(function(){ let ed = document.getElementById('edit'); if (ed && ed.value) { // getPrevFood(ed.value) } // Change the button text for upload care widget // $(document).find('button.uploadcare--widget__button.uploadcare--widget__button_type_open').text('Add a picture'); }) function categories() { let cats = []; return function(cat) { if(cat) cats.push(cat); return cats; } } let placeCategories = categories(); var lats = document.getElementById('lats'); var lngs = document.getElementById('lngs'); var addy = document.getElementById('address'); var phone = document.getElementById('phone'); var phonetwo = document.getElementById('phonetwo'); // var email = document.getElementById('email'); var opening = document.getElementById('opening'); var closing = document.getElementById('closing'); var placeName = document.getElementById('place-name'); var edits = document.getElementById('edit'); var info = document.getElementById('info'); var jumia = document.getElementById('jumia'); autocomplete(addy, lats, lngs); var prevFood = (food) => ` <div class="add-food-item"> <a href="#" class="edit-prev-food" data-id="${food._id || ''}" data-description="${food.description || ''}" data-name="${food.name}" data-category="${food.category || ''}" data-price="${food.price}"><span class="badge badge-warning" style="padding: 10px !important;">${food.name} - ${food.price}</span></a> <a href="#" class="delete-food" data-id="${food._id}" data-name="${food.name}"> <i class="fa fa-times"></i> </a> </div> ` // Clear new place details on name edit placeName.addEventListener('keyup', function(e){ if (edits.value && !this.value) { resets({}, {}); } }) // <i class="fa fa-times"></i> // $('.items').on('focus', '.food-name', function(e){ // setTimeout(() => { // var foodInput = this; // console.log({thi: this}) // autoComplete({ // input: foodInput, // fetch: async function(text, update) { // text = text.toLowerCase(); // var response = await $.get(`/api/place/${placeInfo.slug}/food`) // var suggestions = response.food.filter(n => n.name.toLowerCase().includes(text)) // update(suggestions); // }, // onSelect: function(item) { // foodInput.value = item.name; // } // }); // }, 0); // }) function resetForm(){ edits.value = ""; lats.value = ""; lng.value = ""; addy.value = ""; document.getElementById('prev-food').innerHTML = ""; email.value = ""; phone.value = ""; // opening.value = ""; // closing.value = ""; // document.querySelectorAll('.form-check .form-check-input').forEach(element => { // element.checked = false; // }); } // $('.item-name').on('keyup', searchPlace) const franchise = (name, slug) => ` <div class="form-check suggest form-check-inline"> <input class="form-check-input" id="${slug}" name="franchise[]" type="checkbox" value="${slug}"> <label class="form-check-label" for="${slug}">${name}</label> </div> `; const franContainer = (places, place) => ` <form class="franchise-form"> <input type="hidden" name="place" value="${place}" /> ${places.map(place => franchise(place.name, place.slug)).join("")} <button class="btn btn-primary">Submit</button> </form> `; var vexInstance; const openVex = (content) => { vexInstance = vex.open({ unsafeContent: content, showCloseButton: false, className: 'customVex', overlayClassName: 'customVexOverlay' }); } function selectFranchisePlace(e){ console.log(e.target) } let franchisePlaces = []; const newFranCon = (places) => { const option = ({slug, name, food, franchise}, index) => ` <div class="form-check form-check-inline"> <input class="form-check-input select-franchise" id="${slug}" data-index="${index}" type="radio" name="selectfranchise" value="${slug}"> <label class="form-check-label" for="${slug}">${name} - (${food.length})</label> </div> `; openVex(`<div>${places.map((place, index) => option(place, index)).join("")}<button type="button" id="close-vex">Close</button></div>`) } document.addEventListener('click', function(e){ if(e.target && e.target.classList.contains('select-franchise')){ const franPlace = franchisePlaces[e.target.dataset.index]; document.querySelector('#franinput').value = franPlace.franchise; if (franPlace.type && document.getElementById(franPlace.type)) document.getElementById(franPlace.type).checked = true; document.querySelector('.items').innerHTML = franPlace.food && franPlace.food.length ? franPlace.food.map(food => newFood(food)).join("") : ""; // document.getElementById('prev-food').innerHTML = franPlace.food && franPlace.food.length ? populateFood(franPlace.food) : ""; }if (e.target &&e.target.id === 'close-vex') { e.preventDefault(); vex.close(vexInstance) } }) function checkFranchise(e){ e.preventDefault() var name = $('.item-name').val(); // console.log('here checking franchise') if(name.length > 5){ fetch(`/api/place/franchise/${name}`, {credentials: 'same-origin'}) .then(response => response.json()) .then(json => { // console.log(json); if(json.franchises.length){ openVex(franContainer(json.franchises, json.place)) } }) } } $(document).on('submit', '.franchise-form', function(e){ e.preventDefault(); var form = new FormData(e.target) fetch('/api/place/franchise/' + e.target.place.value, {credentials: 'same-origin', method: 'POST', body: form}) .then(response => response.text()) .then(dump => { // console.log(dump) vex.close(vexInstance) }) }) /* * fetch selected place details * @param String * */ var getPrevFood = async (placename) => { var links = `/api/place/${placename}/food`; if (!Array.isArray(placename)) { place = await doGet(links) if (place) { return place; } } } const imgTemplate = (src, index, slug) => ` <div class="place-img" style="text-align: center;"> <img src="${src}" class="w-100" /> <a href="#" data-index="${index}" data-slug="${slug}" class="delete-place-picture">delete</a> <input type="hidden" name="uploadimage[]" value="${src}"> </div> `; // delete place picture $(document).on('click', '.delete-place-picture', function(e){ e.preventDefault(); const $target = $(e.currentTarget); const { index, slug } = $target.data(); fetch(`/place/image/delete/${slug}/${index}`, {credentials: 'same-origin', method: 'DELETE'}) .then(response => response.json()) .then(res => { // console.log(res) if (res.status === 'success') { $target.closest('.place-img').fadeOut(300, function() { $(this).remove(); }) } }); }); const tagTemplate = (name) => ` <input class="form-check-input" id="${name}" name="tags[]" type="checkbox" value="${name}" checked> <label class="form-check-label" for="${name}">${name}</label> `; function resets(place, food){ edits.value = place.slug ? place.slug : ""; addy.value = place.address ? place.address : ""; // email.value = place.email ? place.email : ""; phone.value = place.phones[0] ? place.phones[0] : ""; phonetwo.value = place.phones[1] ? place.phones[1] : ""; opening.value = place.opening ? place.opening : ""; closing.value = place.closing ? place.closing : ""; // info.value = place.info ? place.info : ""; // jumia.value = place.jumia ? place.jumia : ""; document.getElementById('prev-food').innerHTML = food && food.length ? populateFood(food) : ""; cats = place.category || []; loadCategories(); lats.value = place.location ? place.location.coordinates[1] : ""; lngs.value = place.location ? place.location.coordinates[0] : ""; // document.getElementById('takeaway').checked = place.takeaway document.getElementById('old-img').innerHTML = place.image && Array.isArray(place.image) ? place.image.map((image, index) => imgTemplate(image, index, place.slug)).join("") : place.image ? imgTemplate(place.image, 'none', place.slug) : ""; if (place.type && document.getElementById(place.type)) document.getElementById(place.type).checked = true; if (place.delivery && place.delivery.length) { place.delivery.forEach((delivery) => { const ids = delivery.split(" ").join("-") if(document.getElementById(ids)) document.getElementById(ids).checked = true; }); } // else { // document.querySelectorAll('input[type="checkbox"], input[type="radio"]').forEach(tag => { // if(tag) tag.checked = false; // }) // } if (place.tags && place.tags.length) { const extraTags = []; place.tags.forEach(tag => { if(document.getElementById(tag)) document.getElementById(tag).checked = true; else extraTags.push(tag) }); extraTags.forEach(extra => { const newTag = document.createElement('div'); newTag.className = "form-check suggest form-check-inline"; newTag.innerHTML = tagTemplate(extra); document.getElementById('tags-list').appendChild(newTag); }) }else { document.querySelectorAll('input[type="checkbox"], input[type="radio"]').forEach(tag => { if(tag) tag.checked = false; }) } document.querySelectorAll('.delete-food').forEach(deleteButton => { deleteButton.addEventListener('click', deleteFood) }) document.querySelectorAll('.edit-prev-food').forEach(editButton => { editButton.addEventListener('click', editFood) }) } function populateFood(foods) { var previousFood = `<div>Count: ${foods.length}</div>`; foods.forEach(food => { previousFood += prevFood(food); }); return previousFood; } // Disable inline price input when 'Not Set' checkbox is checked $('.items').on('change', '.form-check-input', function(e){ var target = e.currentTarget; var pricepoint = $(target).closest('.item').find('.price'); if (target.checked) { pricepoint.val(0).attr('disabled', true) } else { pricepoint.val("").attr('disabled', false) } }) // Closure on new food item template var cover = (function () { var item = document.getElementById('initial').innerHTML; return function () { var cover = document.createElement('DIV'); cover.className = 'item'; cover.innerHTML = item; return cover; } }) // Add new food item document.querySelector('.add-item').addEventListener('click', function(e){ e.preventDefault(); const itemsWrapper = document.querySelector('.items'); const lastFood = itemsWrapper.lastElementChild; let lastCategory, nf; if(lastFood){ lastCategory = lastFood.querySelector('.food-category') && lastFood.querySelector('.food-category').value nf = newFood({category: lastCategory}); if(nf.querySelector('.food-category')) { nf.querySelector('.food-category').value = lastCategory } }else { nf = newFood(); } // nf = newFood(); itemsWrapper.appendChild(nf) nf.querySelector('.food-name').focus() if (nf.querySelector('.food-category')) { nf.querySelector('.food-category').addEventListener('blur', addCategory); nf.querySelector('.food-category').addEventListener('keyup', autoCompleteCategory); } }) function addCategory(e) { let cat = e.target.value.toLowerCase(); if(cat && !placeCategories().includes(cat)) { placeCategories(cat); } } function autoCompleteCategory(e) { let catInput = e.target; autoComplete({ input: catInput, fetch: function(text, update) { text = text.toLowerCase(); let suggestions = placeCategories().filter(t => t.includes(text)).map(t => ({name: t})); // console.log({suggestions}) update(suggestions) }, onSelect: function({name}) { catInput.value = name; } }); } // Remove last food item $('.card-body').on('click', '.remove-item', function (e) { e.preventDefault(); $('.item').last().fadeOut(200, function(){ $(this).remove(); }); // if ($('.item').length === 1) { // $(e.currentTarget).hide() // } }) // Remove food item $('.card-body').on('click', '.remove-current-item', function (e) { e.preventDefault(); $(e.currentTarget).closest('.item').fadeOut(200, function(){ $(this).remove(); }); // if ($('.item').length === 1) { // $(e.currentTarget).hide() // } })
Close