Site-Proximo/assets/js/saveManager.js

78 lines
2.1 KiB
JavaScript

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();
},
});
}
}