let Sheeps_mode = [ 'Користувач', 'Модератор', 'Адміністратор' ]; let Sheeps_icon = [ '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '' ] const Sheeps = { init: async (name) => { let html = await fetch('/lib/pages/sheeps/index.html').then((response) => response.text()); app.innerHTML = html; Sheeps.sheeps_list.setHTML(name); if (name) Sheeps.editor.setHTML(name); document.getElementById("sheep-editor").addEventListener("submit", async function (event) { event.preventDefault(); const form = event.target; const formData = new FormData(form); let sheep = Sheeps.sheeps_list.list.find(item => item.uuid === form.elements["uuid"].value,); sheep.name = form.elements["name"].value; sheep.group_id = formData.get("group_id"); sheep.appointment = formData.get("appointment"); sheep.role = formData.get("mode") ?? 'administrator', sheep.can_view_schedule = form.elements["can_view_schedule"].checked; sheep.can_view_stand = form.elements["can_view_stand"].checked; sheep.can_view_territory = form.elements["can_view_territory"].checked; sheep.moderator.can_add_sheeps = form.elements["can_add_sheeps"].checked; sheep.moderator.can_add_territory = form.elements["can_add_territory"].checked; sheep.moderator.can_manager_territory = form.elements["can_manager_territory"].checked; sheep.moderator.can_add_stand = form.elements["can_add_stand"].checked; sheep.moderator.can_manager_stand = form.elements["can_manager_stand"].checked; sheep.moderator.can_add_schedule = form.elements["can_add_schedule"].checked; let sheep_editor_button = document.getElementById('sheep-editor-button'); sheep_editor_button.innerText = "Зачекайте..."; const uuid = localStorage.getItem('uuid'); const URL = `${CONFIG.api}sheep`; await fetch(URL, { method: 'PUT', headers: { "Content-Type": "application/json", "Authorization": uuid }, body: JSON.stringify(sheep) }) .then(response => { if (response.status == 200) { sheep_editor_button.innerText = "Успішно збережено"; return response.json() } else { console.log('err'); sheep_editor_button.innerText = "Помилка збереження"; return } }) .then(data => { console.log(data); Sheeps.sheeps_list.list = []; Sheeps.sheeps_list.setHTML(); setTimeout(() => { sheep_editor_button.innerText = "Зберегти"; }, 3000); }) .catch(err => { console.log(err); sheep_editor_button.innerText = "Помилка збереження"; }) }) document.getElementById("sheep-addeds").addEventListener("submit", async function (event) { event.preventDefault(); const form = event.target; const formData = new FormData(form); const data = Object.fromEntries(formData.entries()); let sheep_addeds_button = document.getElementById('sheep-addeds-button'); sheep_addeds_button.innerText = "Зачекайте..."; const uuid = localStorage.getItem('uuid'); const mode = localStorage.getItem("mode") ?? "sheep" const URL = `${CONFIG.api}sheep`; await fetch(URL, { method: 'POST', headers: { "Content-Type": "application/json", "Authorization": uuid }, body: JSON.stringify(data) }) .then(response => { if (response.status == 200) { sheep_addeds_button.innerText = "Вісника додано"; return response.json() } else { console.log('err'); sheep_addeds_button.innerText = "Помилка додавання"; return } }) .then(data => { console.log(data); Sheeps.sheeps_list.list = []; const randomNumber = Math.floor(Math.random() * Sheeps_icon.length); Sheeps.addeds.close(); Sheeps.editor.setHTML(data.uuid, randomNumber); setTimeout(() => { sheep_addeds_button.innerText = "Додати"; }, 3000); }) .catch(err => { console.log(err); sheep_addeds_button.innerText = "Помилка додавання"; }) }) }, sheeps_list: { list: [], loadAPI: async () => { let uuid = localStorage.getItem("uuid"); const URL = `${CONFIG.api}sheeps/list`; Sheeps.sheeps_list.list = await fetch(URL, { method: 'GET', headers: { "Content-Type": "application/json", "Authorization": uuid } }).then((response) => response.json()); return Sheeps.sheeps_list.list; }, setHTML: async (name) => { let block_sheep_list = document.getElementById('block-sheeps-list'); let block_sheep_info = document.getElementById('block-sheep-info'); block_sheep_list.style.display = "flex"; block_sheep_info.style.display = ""; let list = []; if (Sheeps.sheeps_list.list.length == 0) { list = await Sheeps.sheeps_list.loadAPI(); } else { list = Sheeps.sheeps_list.list; } console.log(list); let block_sheeps = document.getElementById('block-sheeps-list'); let butt_add = ` `; block_sheeps.innerHTML = `

Всі вісники

${(USER.administrator.uuid || USER.moderator.can_add_sheeps) ? butt_add : ""}
`; for (let i = 0; i < list.length; i++) { const element = list[i]; let access = () => { let a = ""; if (element.administrator.id || element.can_view_schedule) a += `View Schedule`; if (element.administrator.id || element.can_view_stand) a += `View Stand`; if (element.administrator.id || element.can_view_territory) a += `View Territory`; if (element.administrator.id || element.moderator.can_add_sheeps) a += `Create Sheeps`; if (element.administrator.id || element.moderator.can_add_territory) a += `Create Territory`; if (element.administrator.id || element.moderator.can_manager_territory) a += `Manager Territory`; if (element.administrator.id || element.moderator.can_add_stand) a += `Create Stand`; if (element.administrator.id || element.moderator.can_manager_stand) a += `Manager Stand`; if (element.administrator.id || element.moderator.can_add_schedule) a += `Create Schedule`; return a; } const randomNumber = Math.floor(Math.random() * Sheeps_icon.length); let editor_mode = () => { if (element.administrator.id) return "Адміністратор"; else if (element.moderator.id) return "Модератор"; else return "Користувач"; }; block_sheeps.innerHTML += `
${Sheeps_icon[randomNumber]}

${element.name}

${editor_mode()}

Група №${element.group_id}

${access()}
`; } } }, editor: { loadAPI: async (search) => { let uuid = localStorage.getItem("uuid"); const URL = `${CONFIG.api}sheep?uuid=${search}`; return await fetch(URL, { method: 'GET', headers: { "Content-Type": "application/json", "Authorization": uuid } }).then((response) => response.json()); }, setHTML: async (search, randomNumber) => { let sheep = await Sheeps.editor.loadAPI(search); console.log(sheep); let block_sheep_list = document.getElementById('block-sheeps-list'); let block_sheep_info = document.getElementById('block-sheep-info'); block_sheep_list.style.opacity = "0"; setTimeout(() => { block_sheep_info.style.display = "flex"; block_sheep_list.style.display = ""; }, 100) setTimeout(() => { block_sheep_info.style.opacity = "1"; }, 10) if (!randomNumber) randomNumber = Math.floor(Math.random() * Sheeps_icon.length); let sheep_mess = document.getElementById('sheep-mess'); let sheep_editor = document.getElementById('sheep-editor'); sheep_mess.style.opacity = "0"; sheep_editor.style.display = ""; setTimeout(() => { sheep_editor.style.opacity = "1"; }, 100) let sheep_editor_icon = document.getElementById('sheep-editor-icon'); let sheep_editor_uuid = document.getElementById('sheep-editor-uuid'); let sheep_editor_uuid_copy = document.getElementById('sheep-editor-uuid-copy'); let sheep_editor_name = document.getElementById('sheep-editor-name'); let sheep_editor_group_id = document.getElementById('sheep-editor-group_id'); let sheep_editor_appointment = document.getElementById('sheep-editor-appointment'); let sheep_editor_mode = document.getElementById('sheep-editor-mode'); let editor_blocks_inputs_uuid_moder = document.getElementById('editor-blocks-inputs-uuid-moder'); let sheep_editor_uuid_moder = document.getElementById('sheep-editor-uuid-moder'); let sheep_editor_access_moder = document.getElementById('sheep-editor-access-moder'); let sheep_editor_can_add_sheeps = document.getElementById('sheep-editor-can_add_sheeps'); let sheep_editor_can_add_territory = document.getElementById('sheep-editor-can_add_territory'); let sheep_editor_can_manager_territory = document.getElementById('sheep-editor-can_manager_territory'); let sheep_editor_can_add_stand = document.getElementById('sheep-editor-can_add_stand'); let sheep_editor_can_manager_stand = document.getElementById('sheep-editor-can_manager_stand'); let sheep_editor_can_add_schedule = document.getElementById('sheep-editor-can_add_schedule'); let sheep_editor_can_view_schedule = document.getElementById('sheep-editor-can_view_schedule'); let sheep_editor_can_view_stand = document.getElementById('sheep-editor-can_view_stand'); let sheep_editor_can_view_territory = document.getElementById('sheep-editor-can_view_territory'); sheep_editor_icon.innerHTML = Sheeps_icon[randomNumber]; sheep_editor_uuid.value = sheep.uuid; sheep_editor_uuid_copy.innerText = sheep.uuid; sheep_editor_uuid_copy.setAttribute("onclick", `clipboard('https://sheep-service.com/?uuid=${sheep.uuid}')`); let editor_mode = () => { if (sheep.administrator.id) return 'administrator'; else if (sheep.moderator.id) return 'moderator'; else return 'sheep'; }; sheep_editor_mode.value = editor_mode(); sheep_editor_name.value = sheep.name; sheep_editor_group_id.value = sheep.group_id; sheep_editor_appointment.value = sheep.appointment; if (sheep.administrator.uuid) { editor_blocks_inputs_uuid_moder.style.display = ""; sheep_editor_uuid_moder.innerText = sheep.administrator.uuid; sheep_editor_uuid_moder.setAttribute("onclick", `clipboard('https://sheep-service.com/?uuid=${sheep.administrator.uuid}')`); } else if (sheep.moderator.uuid) { sheep_editor_access_moder.style.display = ""; editor_blocks_inputs_uuid_moder.style.display = ""; sheep_editor_uuid_moder.innerText = sheep.moderator.uuid; sheep_editor_uuid_moder.setAttribute("onclick", `clipboard('https://sheep-service.com/?uuid=${sheep.moderator.uuid}')`); } else { sheep_editor_access_moder.style.display = "none"; editor_blocks_inputs_uuid_moder.style.display = "none"; sheep_editor_uuid_moder.innerText = ''; sheep_editor_uuid_moder.setAttribute("onclick", ``); } sheep_editor_can_add_sheeps.checked = sheep.moderator.can_add_sheeps; sheep_editor_can_add_territory.checked = sheep.moderator.can_add_territory; sheep_editor_can_manager_territory.checked = sheep.moderator.can_manager_territory; sheep_editor_can_add_stand.checked = sheep.moderator.can_add_stand; sheep_editor_can_manager_stand.checked = sheep.moderator.can_manager_stand; sheep_editor_can_add_schedule.checked = sheep.moderator.can_add_schedule; sheep_editor_can_view_schedule.checked = sheep.can_view_schedule; sheep_editor_can_view_stand.checked = sheep.can_view_stand; sheep_editor_can_view_territory.checked = sheep.can_view_territory; if (USER.administrator.id) { document.getElementById('sheep-editor-button').style.display = ""; sheep_editor_mode.disabled = false; } else { sheep_editor_mode.disabled = true; } }, close: () => { let block_sheep_list = document.getElementById('block-sheeps-list'); let block_sheep_info = document.getElementById('block-sheep-info'); block_sheep_info.style.opacity = "0"; setTimeout(() => { block_sheep_list.style.display = "flex"; block_sheep_info.style.display = ""; }, 100) setTimeout(() => { block_sheep_list.style.opacity = "1"; }, 10) } }, addeds: { open: () => { let block_sheep_list = document.getElementById('block-sheeps-list'); let block_sheep_info = document.getElementById('block-sheep-info'); let block_sheep_addeds = document.getElementById('block-sheep-addeds'); block_sheep_list.style.opacity = "0"; block_sheep_info.style.opacity = "0"; setTimeout(() => { block_sheep_list.style.display = "none"; block_sheep_info.style.display = "none"; block_sheep_addeds.style.display = ""; }, 100) setTimeout(() => { block_sheep_addeds.style.opacity = "1"; }, 100) }, close: () => { let block_sheep_list = document.getElementById('block-sheeps-list'); let block_sheep_info = document.getElementById('block-sheep-info'); let block_sheep_addeds = document.getElementById('block-sheep-addeds'); block_sheep_addeds.style.opacity = "0"; setTimeout(() => { block_sheep_addeds.style.display = "none"; block_sheep_list.style.display = "flex"; block_sheep_info.style.display = ""; }, 100) setTimeout(() => { block_sheep_list.style.opacity = "1"; block_sheep_info.style.opacity = "1"; }, 10) } } }