78 lines
2.1 KiB
JavaScript
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();
|
|
},
|
|
});
|
|
}
|
|
}
|
|
|
|
|
|
|