const menu =
document.getElementById('menu');
const modelInput =
document.getElementById('model');
const selected =
document.getElementById('selected');
function post(name, data = {}) {
return fetch(
`https://${GetParentResourceName()}/${name}`,
{
method: 'POST',
headers: {
'Content-Type':
'application/json; charset=UTF-8'
},
body:
JSON.stringify(data)
}
);
}
window.addEventListener(
'message',
(event) => {
const data =
event.data;
if (data.action === 'open') {
menu.classList.remove(
'hidden'
);
setTimeout(() => {
modelInput.blur();
}, 0);
}
if (data.action === 'close') {
menu.classList.add(
'hidden'
);
}
if (data.action === 'selected') {
if (data.id) {
selected.textContent =
`ID ${data.id} · ${data.model}`;
} else {
selected.textContent =
'ОБЪЕКТ НЕ ВЫБРАН';
}
}
}
);
document
.getElementById('create')
.addEventListener(
'click',
() => {
post(
'create',
{
model:
modelInput.value.trim()
}
);
}
);
document
.getElementById('select')
.addEventListener(
'click',
() => {
post(
'selectNearest'
);
}
);
document
.getElementById('edit')
.addEventListener(
'click',
() => {
post('edit');
}
);
document
.getElementById('delete')
.addEventListener(
'click',
() => {
post('delete');
}
);
document.addEventListener(
'keydown',
(event) => {
if (event.key === 'Escape') {
post('close');
}
}
);