async function _post(formObj, target, func){ try{ const form = await createFormData(formObj, target, func) const respJson = await fetch('/rss/php/handler.php', { method: 'POST', body: form }); if(respJson){ return await(respJson.json()); }else{ return 'Error'; } }catch(errno){ console.log('Post failed'); console.log(errno) } } async function createFormData(data, target, func){ const formData = new FormData(); try{ for(const key in data){ if(data.hasOwnProperty(key)){ formData.append(key, data[key]); } } formData.append('target', target); formData.append('function', func) }catch(errno){ console.log('Incorrect use of object'); return false; } return formData; } function createEl(el, classArr = null, elText = null, dtSet = null){ const element = document.createElement(el); if(elText){ element.appendChild(document.createTextNode(elText)); } if(classArr && classArr.length){ element.classList.add(...classArr); } if(dtSet && Object.keys(dtSet).length){ for(const [data, value] of Object.entries(dtSet)){ element.dataset[data] = value; } } return element; } function getRandomID(){ return Math.random().toString(36).replace('0.', ''); } async function generateAlert(type, text){ const alert = document.createElement('div'); alert.classList.add('alert'); alert.classList.add(type); alert.appendChild(document.createTextNode(text)); return alert; } async function removeAlert(){ const alerts = document.querySelectorAll('.alert'); if(alerts && alerts.length){ for(const alert of alerts){ alert.remove(); } } }