class SaveManager { static saveData(types, dataset) { let finalDataset = { v1: SaveManager.generateV1JSON(types, dataset), v2: SaveManager.generateV2JSON(types, dataset) }; console.log(finalDataset); $.ajax({ type: "POST", url: "write_json.php", data: JSON.stringify(finalDataset), dataType: "json", contentType: "application/json; charset=utf-8", complete: function (data) { alert(data.responseText); console.log(data); }, }); } static generateV1JSON(savedTypes, savedDataset) { let types = []; // Replace type objects by names for (let i = 0; i < savedTypes.length; i++) { types.push(savedTypes[i].name); } let dataset = JSON.parse(JSON.stringify(savedDataset)); // Deep copy of object for (let i = 0; i < dataset.length; i++) { // Replace type ids by names for (let k = 0; k < dataset[i].type.length; k++) { dataset[i].type[k] = SaveManager.getTypeOfId(savedTypes, dataset[i].type[k]).name; } // remove the description field delete dataset[i].description } return { types: types, articles: dataset } } static generateV2JSON(savedTypes, savedDataset) { return { types: savedTypes, articles: savedDataset } } static getTypeOfId(types, id) { let item = {}; for (let i = 0; i < types.length; i++) { if (types[i].id === id) { item = types[i]; break; } } return item; } static convertToV2() { $.ajax({ type: "POST", url: "convert_json.php", dataType: "json", contentType: "application/json; charset=utf-8", complete: function (data) { alert(data.responseText); console.log(data); window.location.reload(); }, }); } }