| Server IP : 23.254.227.96 / Your IP : 216.73.216.21 Web Server : Apache/2.4.62 (Unix) OpenSSL/1.1.1k System : Linux hwsrv-1277026.hostwindsdns.com 4.18.0-477.13.1.el8_8.x86_64 #1 SMP Tue May 30 14:53:41 EDT 2023 x86_64 User : viralblo ( 1001) PHP Version : 8.1.31 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/viralblo/public_html/js/ |
Upload File : |
var ct = 1;
var targetToAppend = document.getElementById('dynamic_field');
function addNew(value) {
ct++;
var div1 = document.createElement('div');
div1.className = 'mb-3 row';
div1.id = ct;
var delLink =
'<div class="col-sm-1 col-md-1 d-flex align-items-center"><span class="span-click me-3 text-danger" onclick="delIt(' +
ct +
')"><i class="icon-x-circle fw-bold"></i></span><span class="span-move"><i class="icon-arrows-move fw-bold"></i></span></div>';
div1.innerHTML = document.getElementById(value).innerHTML + delLink;
targetToAppend.appendChild(div1);
window.scrollTo(0, 10000);
}
// Delete Element Function //
function delIt(eleId) {
var ele = document.getElementById(eleId);
var parentEle = document.getElementById('dynamic_field');
parentEle.removeChild(ele);
}
// Delete Content Function //
function delCont(cont) {
let ele = cont.closest('.mb-3');
let parentEle = document.getElementById('dynamic_field');
parentEle.removeChild(ele);
}
function addText() {
ct++;
var div1 = document.createElement('div');
div1.className = 'mb-3 row';
div1.id = ct;
var delLink =
'<label class="offset-md-1 col-md-2 col-form-label">' +
formtext +
'</label><div class="col-sm-10 col-md-7 myeditor"><div id="editor' +
ct +
'"></div><input class="txtcont" type="hidden" name="content[]"><input type="hidden" name="type[]" value="txteditor"><input type="hidden" name="extra[]"></div><div class="col-sm-1 col-md-1 d-flex align-items-center mt-3"><span class="span-click me-3 text-danger" onclick="delIt(' +
ct +
')"><i class="icon-x-circle fw-bold"></i></span><span class="span-move"><i class="icon-arrows-move fw-bold"></i></span></div>';
div1.innerHTML = delLink;
document.getElementById('dynamic_field').appendChild(div1);
window.scrollTo(0, 10000);
quillINT(ct);
}
// Post submit Function //
function ClickForm() {
event.preventDefault();
let elements = document.querySelectorAll('.ql-editor');
if (elements.length > 0) {
elements.forEach(function (element) {
element.closest('.myeditor').querySelector('.txtcont').value =
element.innerHTML;
});
}
let postForm = document.getElementById('post_form');
let url = postForm.action;
let formData = new FormData(postForm);
let token = document
.querySelector('meta[name="csrf-token"]')
.getAttribute('content');
let successMsg = document.getElementById('show-msg');
let errorMsg = document.getElementById('show-err-msg');
let ul = document.getElementById('list');
let embedBtn = document.querySelector('#submit');
let orgBtn = embedBtn.innerHTML;
embedBtn.disabled = true;
embedBtn.innerHTML =
'<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span> ' +
processing;
fetch(url, {
method: 'POST',
headers: {
'X-CSRF-TOKEN': token,
},
body: formData,
})
.then((response) => response.json())
.then((data) => {
if (data.success) {
postForm.reset();
postForm.outerHTML = '';
successMsg.classList.remove('d-none');
successMsg.innerHTML += data.success;
} else {
embedBtn.innerHTML = orgBtn;
embedBtn.disabled = false;
ul.innerHTML = '';
errorMsg.classList.remove('d-none');
Object.entries(data.error).forEach(([key, value]) => {
ul.innerHTML += '<li>' + value + '</li>';
});
}
})
.catch((error) => {
console.error('Error:', error);
embedBtn.innerHTML = orgBtn;
embedBtn.disabled = false;
});
}
// Image Upload Function //
function ImageUpload(input) {
const file = input.files[0];
let ownDiv = input.closest('.mb-3');
let photoUpload = ownDiv.querySelector('.photo_upload');
let spanClick = ownDiv.querySelector('.span-click');
let fileInputs = ownDiv.querySelector('.fileinputs');
let fileInfo = ownDiv.querySelector('.fileinfo');
fileInfo.innerHTML = '<p>' + fileUploading + '</p>';
let formData = new FormData();
formData.append('post_image', file);
let token = document
.querySelector('meta[name="csrf-token"]')
.getAttribute('content');
fetch(imgURL, {
method: 'POST',
headers: {
'X-CSRF-TOKEN': token,
},
body: formData,
})
.then((response) => response.json())
.then((data) => {
if (data.success) {
if (spanClick) {
spanClick.classList.add('d-none');
}
photoUpload.value = data.success;
if (photoUpload.name == 'post_media') {
fileInfo.innerHTML =
"<div class='flex-shrink-0'><img class='imgthumb img-fluid' src='" +
avatarURL +
'/' +
data.success +
"'></div><div class='flex-grow-1 ms-3'><input class='form-control' type='text' name='media_alt' placeholder='"+ imagealt +"' aria-label='Image Alt'></div>";
} else {
fileInfo.innerHTML =
"<div class='flex-shrink-0'><img class='imgthumb img-fluid' src='" +
avatarURL +
'/' +
data.success +
"'></div><div class='flex-grow-1 ms-3'><div class='input-group'><input class='form-control' type='text' name='extra[]' placeholder='"+ imagealt +"' aria-label='Image Alt'><input class='form-control' type='text' name='link[]' placeholder='"+ link +"' aria-label='Link'><select class='form-select short-select' name='blank[]' aria-label='blankselect'><option value='0' selected>" + self + "</option><option value='1'>" + blank + "</option></select></div>";
}
fileInputs.innerHTML =
"<button type='button' onclick='ImageDelete(this)' class='btn btn-warning removeimg'>" +
removetxt +
'</button>';
} else {
fileInfo.innerHTML =
'<p class="text-danger">' + data.error[0] + '</p>';
}
})
.catch((error) => {
console.error('error:', error);
});
}
// Image Delete Function //
function ImageDelete(input) {
let ownDiv = input.closest('.mb-3');
let photoUpload = ownDiv.querySelector('.photo_upload');
let spanClick = ownDiv.querySelector('.span-click');
let fileInputs = ownDiv.querySelector('.fileinputs');
let fileInfo = ownDiv.querySelector('.fileinfo');
let formData = new FormData();
formData.append('id', photoUpload.value);
let token = document
.querySelector('meta[name="csrf-token"]')
.getAttribute('content');
fetch(delURL, {
method: 'POST',
headers: {
'X-CSRF-TOKEN': token,
},
body: formData,
})
.then((response) => response.json())
.then((data) => {
if (data.success) {
if (spanClick) {
spanClick.classList.remove('d-none');
}
photoUpload.value = '';
fileInfo.innerHTML = '<p>' + data.success + '</p>';
fileInputs.innerHTML =
"<label class='btn btn-info btnfile'>" +
browse +
"<input onchange='ImageUpload(this)' class='fileupload d-none' type='file' name='post_image'></label>";
} else {
fileInfo.innerHTML =
'<p class="text-danger">' + data.error[0] + '</p>';
}
})
.catch((error) => {
console.error('error:', error);
});
}
function ImageRemove(input) {
let ownDiv = input.closest('.mb-3');
let photoUpload = ownDiv.querySelector('.photo_upload');
let fileInfo = ownDiv.querySelector('.fileinfo');
let fileInputs = ownDiv.querySelector('.fileinputs');
photoUpload.value = '';
fileInfo.innerHTML = '<p>' + imgremoved + '</p>';
fileInputs.innerHTML =
"<label class='btn btn-info w-100 btnfile'>" +
browse +
"<input onchange='ImageUpload(this)' class='fileupload d-none' type='file' name='post_image'></label>";
}
// Post embed Function //
function ClickEmbed(embed) {
let ownDiv = embed.closest('.mb-3');
let embedForm = ownDiv.querySelector("input[name='embed_url']");
let embedBtn = ownDiv.querySelector('.btn');
let embedCont = ownDiv.querySelector("input[name='content[]']");
let orgBtn = embedBtn.innerHTML;
embedBtn.disabled = true;
embedBtn.innerHTML =
'<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span> ' +
processing;
let embedType = ownDiv.querySelector("input[name='type[]']").value;
let token = document
.querySelector('meta[name="csrf-token"]')
.getAttribute('content');
let errorData = ownDiv.querySelector('.errordata');
fetch(embedURL, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Accept: 'application/json, text-plain, */*',
'X-Requested-With': 'XMLHttpRequest',
'X-CSRF-TOKEN': token,
},
body: JSON.stringify({
embed: embedForm.value,
type: embedType,
extra: null,
}),
})
.then((response) => response.json())
.then((data) => {
if (data.success) {
embedBtn.disabled = false;
embedBtn.setAttribute('onClick', 'RemoveEmbed(this)');
embedBtn.classList.remove('btn-success');
embedBtn.classList.add('btn-warning');
embedBtn.innerHTML = removetxt;
embedCont.value = data.success;
embedForm.readOnly = true;
if (errorData) {
errorData.remove();
}
} else {
embedBtn.disabled = false;
embedBtn.innerHTML = orgBtn;
embedForm.value = '';
if (errorData) {
errorData.remove();
}
ownDiv.innerHTML +=
"<small class='offset-md-3 col-md-8 col-form-label text-danger errordata'>" +
data.error +
'</small>';
}
})
.catch((error) => {
console.error('error:', error);
});
}
// Remove embed Function //
function RemoveEmbed(embed) {
let ownDiv = embed.closest('.mb-3');
let embedForm = ownDiv.querySelector("input[name='embed_url']");
let embedCont = ownDiv.querySelector("input[name='content[]']");
let embedBtn = ownDiv.querySelector('.btn');
embedForm.value = '';
embedCont.value = '';
embedForm.readOnly = false;
embedBtn.setAttribute('onClick', 'ClickEmbed(this)');
embedBtn.classList.remove('btn-warning');
embedBtn.classList.add('btn-success');
embedBtn.innerHTML = embedtxt;
}
function quillINT(ct) {
var quill = new Quill('#editor' + ct, {
theme: 'snow',
modules: {
toolbar: toolbarOptions,
},
});
}