123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- 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(
- '<tr id="row_' + item.id + '">' +
- '<td>' + item.id + '</td>' +
- '<td>' + item.name + '</td>' +
- '<td><span class="mdi mdi-' + item.icon + '"></span></td>' +
- '<td>' +
- '<button class="btn btn-danger" id="delete_' + item.id + '" onclick="deleteItem(this)"><i class="fas fa-times"></i></button>' +
- '<button class="btn btn-primary" id="edit_' + item.id + '" onclick="editItem(this)"><i class="fas fa-edit"></i></button>' +
- '</td>' +
- '</tr>'
- );
- }
-
- 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);
- }
|