let currentDataset = [];
let currentTypes = [];
let originalEditedItem = {};
function initValuesFromPHPDump() {
currentDataset = json_dump.articles; // json_dump is set using PHP
currentTypes = json_dump.types;
console.log(currentDataset);
console.log(currentTypes);
generateTable(currentTypes);
}
$(document).ready(function () {
initValuesFromPHPDump();
setEditFieldValues('', '', '');
});
function generateTable(dataset) {
for (let i = 0; i < dataset.length; i++) {
generateLine(dataset[i]);
}
}
function generateLine(item) {
$.selector_cache('#categoriesTable').append(
'
' +
'
' + item.id + '
' +
'
' + item.name + '
' +
'
' +
'
' +
'' +
'' +
'
' +
'
'
);
}
function addNewItem() {
if (isItemInputFilled()) {
let item = {
id: $.selector_cache('#idInput').val(),
name: $.selector_cache('#nameInput').val(),
icon: $.selector_cache('#iconInput').val(),
};
if (isIdAvailable(item.id)) {
updateExistingItemsType(originalEditedItem.id, item.id);
setEditFieldValues('', '', '');
currentTypes.push(item);
generateLine(item);
}
}
}
function editItem(elem) {
if (isItemInputEmpty()) {
let id = elem.id.replace('edit_', '');
let item = getTypeOfId(id);
originalEditedItem = item;
setEditFieldValues(item.id, item.name, item.icon);
removeItemFromList(item); // Move the item in the edit fields
}
}
function deleteItem(elem) {
let id = elem.id.replace('delete_', '');
let item = getTypeOfId(id);
updateExistingItemsType(id, undefined);
removeItemFromList(item);
}
function removeItemFromList(item) {
currentTypes.splice(currentTypes.indexOf(item), 1);
$('#row_' + item.id).remove();
}
function setEditFieldValues(id, name, icon) {
$.selector_cache('#idInput').val(id);
$.selector_cache('#nameInput').val(name);
$.selector_cache('#iconInput').val(icon);
}
function updateExistingItemsType(oldTypeID, newTypeID) {
for (let i = 0; i < currentDataset.length; i++) {
for (let k = 0; k < currentDataset[i].type.length; k++) {
if (currentDataset[i].type[k] === oldTypeID) {
console.log(newTypeID);
if (newTypeID !== undefined)
currentDataset[i].type[k] = newTypeID;
else
currentDataset[i].type.splice(k, 1);
break;
}
}
}
}
function getTypeOfId(id) {
let item = {};
for (let i = 0; i < currentTypes.length; i++) {
if (currentTypes[i].id === id) {
item = currentTypes[i];
break;
}
}
return item;
}
function isIdAvailable(id) {
let isAvailable = true;
for (let i = 0; i < currentTypes.length; i++) {
if (currentTypes[i].id === id) {
isAvailable = false;
break;
}
}
return isAvailable;
}
function isItemInputEmpty() {
return $.selector_cache('#idInput').val() === '' &&
$.selector_cache('#nameInput').val() === '' &&
$.selector_cache('#iconInput').val() === '';
}
function isItemInputFilled() {
return $.selector_cache('#idInput').val() !== '' &&
$.selector_cache('#nameInput').val() !== '' &&
$.selector_cache('#iconInput').val() !== '';
}
function saveDataset() {
SaveManager.saveData(currentTypes, currentDataset);
}