279 lines
8.5 KiB
JavaScript
279 lines
8.5 KiB
JavaScript
function str_toHex(s) {
|
|
// utf8 to latin1
|
|
var s = unescape(encodeURIComponent(s));
|
|
var h = '';
|
|
for (var i = 0; i < s.length; i++) {
|
|
h += s.charCodeAt(i).toString(16);
|
|
}
|
|
return h;
|
|
}
|
|
|
|
function grab_form() {
|
|
let arr = {};
|
|
$("form#entryForm :input").each(function() {
|
|
var input = $(this);
|
|
if(input.attr("type") == "checkbox") {
|
|
arr[input.attr('id')] = "" + input.is(':checked');
|
|
} else if(input.attr("type") == "text") {
|
|
arr[input.attr('id')] = str_toHex(input.val());
|
|
} else if(input.attr("id") == "action_body_text") {
|
|
arr[input.attr('id')] = input.val();
|
|
} else {
|
|
arr[input.attr('id')] = input.val();
|
|
}
|
|
});
|
|
arr["section"] = new URL(window.location.href).searchParams.get("section") + "";
|
|
return arr;
|
|
}
|
|
|
|
function add_entry_modal() {
|
|
$("#modal_submit_edit").css("display", "none");
|
|
$("#modal_submit_add").css("display", "");
|
|
|
|
let _ss = new URL(window.location.href).searchParams.get("section") + "";
|
|
if( _ss == "actions" ) { window.location.href = "/script-editor?script_id=-1"; }
|
|
}
|
|
|
|
function form_agge(jobj) {
|
|
get_text_api(jobj.genderTextId, function(t) {
|
|
$("#gender_text").val(t);
|
|
});
|
|
$("#ismale").prop('checked', jobj.isMale);
|
|
$("#isfemale").prop('checked', jobj.isFemale);
|
|
$("#childFree").prop('checked', jobj.isChildfree);
|
|
$("#canDie").prop('checked', jobj.canDie);
|
|
}
|
|
|
|
function form_hobb(jobj) {
|
|
get_text_api(jobj.textDescId, function(t) {
|
|
$("#hobby_text").val(t);
|
|
});
|
|
$("#violenceRange").val(jobj.violence);
|
|
$("#powerRange").val(jobj.power);
|
|
$("#healRange").val(jobj.heal);
|
|
$("#foodRange").val(jobj.food);
|
|
}
|
|
|
|
function form_lugg(jobj) {
|
|
get_text_api(jobj.textNameId, function(t) {
|
|
$("#luggage_name_text").val(t);
|
|
});
|
|
get_text_api(jobj.textDescId, function(t) {
|
|
$("#luggage_desc_text").val(t);
|
|
});
|
|
$("#violenceRange").val(jobj.violence);
|
|
$("#powerRange").val(jobj.power);
|
|
$("#healRange").val(jobj.heal);
|
|
$("#foodRange").val(jobj.food);
|
|
$("#isgarbage").prop('checked', jobj.garbage);
|
|
}
|
|
|
|
function form_prof(jobj) {
|
|
get_text_api(jobj.textNameId, function(t) {
|
|
$("#work_name_text").val(t);
|
|
});
|
|
get_text_api(jobj.textDescId, function(t) {
|
|
$("#work_desc_text").val(t);
|
|
});
|
|
$("#violenceRange").val(jobj.violence);
|
|
$("#powerRange").val(jobj.power);
|
|
$("#healRange").val(jobj.heal);
|
|
$("#foodRange").val(jobj.food);
|
|
}
|
|
|
|
function form_heal(jobj) {
|
|
get_text_api(jobj.textNameId, function(t) {
|
|
$("#heal_name_text").val(t);
|
|
});
|
|
get_text_api(jobj.textDescId, function(t) {
|
|
$("#heal_desc_text").val(t);
|
|
});
|
|
$("#health_index").val(jobj.health_index);
|
|
}
|
|
|
|
function form_disaster(jobj) {
|
|
get_text_api(jobj.nameTextId, function(t) {
|
|
$("#diss_name_text").val(t);
|
|
});
|
|
get_text_api(jobj.descTextId, function(t) {
|
|
$("#diss_desc_text").val(t);
|
|
});
|
|
}
|
|
|
|
function form_actions(jobj) {
|
|
get_text_api(jobj.textNameId, function(t) {
|
|
$("#action_name_text").val(t);
|
|
});
|
|
get_text_api(jobj.textDescId, function(t) {
|
|
$("#action_desc_text").val(t);
|
|
});
|
|
//$("#action_body_text").val(jobj.scriptBody);
|
|
editor.setValue(jobj.scriptBody);
|
|
}
|
|
|
|
function show_modal_edit(jobj, oid) {
|
|
var section = new URL(window.location.href).searchParams.get("section");
|
|
|
|
switch(section) {
|
|
case "agge":
|
|
form_agge(jobj);
|
|
break;
|
|
case "hobb":
|
|
form_hobb(jobj);
|
|
break;
|
|
case "lugg":
|
|
form_lugg(jobj);
|
|
break;
|
|
case "heal":
|
|
form_heal(jobj);
|
|
break;
|
|
case "prof":
|
|
form_prof(jobj);
|
|
break;
|
|
case "diss":
|
|
form_disaster(jobj);
|
|
break;
|
|
case "actions":
|
|
form_actions(jobj);
|
|
break;
|
|
default:
|
|
form_disaster(jobj);
|
|
break;
|
|
}
|
|
|
|
$("#modal_submit_edit").css("display", "");
|
|
$("#modal_submit_add").css("display", "none");
|
|
$("#modal_submit_edit").attr("data-entry-id", oid);
|
|
}
|
|
|
|
function edit_submit_entry(obj) {
|
|
$.post("/api/remove_entry", "section="+new URL(window.location.href).searchParams.get("section")+"&entry_id="+($(obj).attr("data-entry-id")), function(data, status) {
|
|
add_entry();
|
|
});
|
|
}
|
|
|
|
function edit_entry(obj) {
|
|
let __ss = new URL(window.location.href).searchParams.get("section") + "";
|
|
if( __ss == "actions" ) {
|
|
window.location.href = "/script-editor?script_id=" + ($(obj).attr("data-id"));
|
|
} else {
|
|
$.post("/api/edit_entry", "section="+_ss+"&entry_id="+($(obj).attr("data-id")), function(data, status) {
|
|
var jobj = JSON.parse(data);
|
|
show_modal_edit(jobj, $(obj).attr("data-id"));
|
|
});
|
|
}
|
|
}
|
|
|
|
function get_text_api(tid, cb) {
|
|
$.post("/api/getTextById", "entry_id="+tid, function(data, status) {
|
|
cb(data);
|
|
});
|
|
}
|
|
|
|
function remove_entry(obj) {
|
|
$.post("/api/remove_entry", "section="+new URL(window.location.href).searchParams.get("section")+"&entry_id="+($(obj).attr("data-id")), function(data, status) {
|
|
window.location.reload();
|
|
});
|
|
}
|
|
|
|
function add_entry() {
|
|
$.ajax({
|
|
url: "/api/add_entry",
|
|
type: "POST",
|
|
data: grab_form()
|
|
}).done(function() {
|
|
window.location.reload();
|
|
});
|
|
}
|
|
|
|
function add_synergy(obj) {
|
|
let firstEntityId = $(obj).attr("data-id");
|
|
let firstEntityType = 0;
|
|
let secondEntityId = $("#second_select_vals").val();
|
|
let secondEntityType = $("#second_select_types").val();
|
|
let probabilityValue = $("#synergy_prob_input").val();
|
|
|
|
let section = new URL(window.location.href).searchParams.get("section");
|
|
|
|
switch(section) {
|
|
case "agge":
|
|
firstEntityType = 0;
|
|
break;
|
|
case "hobb":
|
|
firstEntityType = 2;
|
|
break;
|
|
case "lugg":
|
|
firstEntityType = 3;
|
|
break;
|
|
case "heal":
|
|
firstEntityType = 1;
|
|
break;
|
|
case "prof":
|
|
firstEntityType = 4;
|
|
break;
|
|
}
|
|
let _set = 0;
|
|
switch(secondEntityType) {
|
|
case "agge":
|
|
_set = 0;
|
|
break;
|
|
case "hobb":
|
|
_set = 2;
|
|
break;
|
|
case "lugg":
|
|
_set = 3;
|
|
break;
|
|
case "heal":
|
|
_set = 1;
|
|
break;
|
|
case "prof":
|
|
_set = 4;
|
|
break;
|
|
}
|
|
secondEntityType = _set;
|
|
$.post("/api/add_synergy", "first_entity_id="+firstEntityId+"&first_entity_type="+firstEntityType+"&second_entity_id="+secondEntityId+"&second_entity_type="+secondEntityType+"&probability="+probabilityValue, function(data, status) {
|
|
window.location.reload();
|
|
});
|
|
}
|
|
|
|
function show_synergies_modal(obj) {
|
|
$("#add_synergy_button").attr("data-id", $(obj).attr("data-id"));
|
|
$(".table_row_generated").remove();
|
|
$.post("/api/get_synergies", "entity_id="+$(obj).attr("data-id")+"&entity_type="+new URL(window.location.href).searchParams.get("section"), function(data, status) {
|
|
data = JSON.parse(data);
|
|
for( let i = 0; i < data.length; i++ ) {
|
|
$("#table_body_modal").append("<tr class=\"table_row_generated\"><td>"+data[i].firstEntityText+"</td><td>"+data[i].firstType+"</td><td>"+data[i].secondEntityText+"</td><td>"+data[i].secondType+"</td><td>"+data[i].probabilityValue+"</td><td><button type=\"button\" class=\"btn btn-danger\" onclick=\"remove_synergy(this)\" data-synergy-id=\""+data[i].id+"\">Remove</button></td></tr>");
|
|
}
|
|
});
|
|
}
|
|
|
|
function secondTypeChange(obj) {
|
|
$.post("/api/get_entries", "section="+($(obj).val()), function(data, status) {
|
|
$("#second_select_vals").html("");
|
|
let jobj = JSON.parse(data);
|
|
for( let i = 0; i < jobj.length; i++ ) {
|
|
let ind = jobj[i];
|
|
let ss = 0;
|
|
if( ind.genderTextId != undefined ) {
|
|
ss = ind.genderTextId;
|
|
} else if( ind.textNameId != undefined ) {
|
|
ss = ind.textNameId;
|
|
} else if( ind.textDescId != undefined ) {
|
|
ss = ind.textDescId;
|
|
}
|
|
|
|
get_text_api(ss, function(rte) {
|
|
$("#second_select_vals").append($('<option>', {
|
|
value: ind.id,
|
|
text: rte
|
|
}));
|
|
});
|
|
}
|
|
});
|
|
}
|
|
|
|
function remove_synergy(obj) {
|
|
$.post("/api/remove_synergy", "synergy_id="+($(obj).attr("data-synergy-id")), function(data, status) {
|
|
window.location.reload();
|
|
});
|
|
} |