fateforge-tool/js/spells.js

95 lines
3 KiB
JavaScript

// Get the spell json based on choosen language defaultLanguage
var jsonsource = "".concat(
"../data/spells/spells-grimoire-",
$.defaultLanguage.slice(0, 2),
".json"
);
var alldata;
// Fetch data from server
fetch(jsonsource)
.then((response) => response.json())
.then((data) => {
// load fetched data into grid
alldata = data.spell;
console.log(alldata);
//document.getElementById("spell-list")
var grid = $("#spell-list").w2grid({
name: "Spells",
box: "#spellgrid",
show: {
header: false,
toolbar: true,
footer: false,
selectColumn: true,
},
multiSelect: true,
liveSearch: true,
multiSearch: true,
fixedBody: false,
records: alldata,
columns: [
{ field: "name", text: "Name", sortable: true, resizable: true,searchable: { operator: 'contains' }, },
{
field: "desc",
text: "Description",
size: "500%",
style: "test",
resizable: true,
searchable: { operator: 'contains' },
render(record, extra) {
return (
'<a href="http://w2ui.com" target="_blank" title="Click Me!"><u>' +
extra.value +
"</u></a>"
);
},
},
{ field: "source", text: "Source", sortable: true, tooltip: 'Which book is this from ?',searchable: { operator: 'contains' } },
{ field: "page", text: "Page", sortable: true },
{ field: "level", text: "Level", sortable: true, size: 65 },
{ field: "school", text: "School", sortable: true },
{
field: "components", text: "Components", render(record) {
var v = (record.components.v) ? '<span data-localize="verbal">V</span>' : ''
var s = (record.components.s) ? 'S' : ''
var m = (record.components.m) ? record.components.m : ''
return v.concat()
if (record.components.v = true) {
console.log(record.components)
}
}
},
{ field: "duration", text: "Duration" },
],
async onSelect(event) {
await event.complete;
console.log("select", event.detail, this.getSelection());
},
onClick(event) {
let record = this.get(event.detail.recid);
//grid2.clear()
/*grid2.add([
{ recid: 0, name: 'ID:', value: record.recid },
{ recid: 1, name: 'First Name:', value: record.fname },
{ recid: 2, name: 'Last Name:', value: record.lname },
{ recid: 3, name: 'Email:', value: record.email },
{ recid: 4, name: 'Date:', value: record.sdate }
])*/
console.log(record);
},
onRender(event) {
// TODO: find the event after grid generate the html end signal and apply loc
event.done(function(){
console.log('object '+ this.name + ' is rendered');
$("[data-localize]").localize("main", { pathPrefix: "lang" });
})
}
})
});