fateforge-tool/js/spells.js

109 lines
3.3 KiB
JavaScript
Raw Permalink Normal View History

2023-03-05 22:58:21 +00:00
// Get the spell json based on choosen language defaultLanguage
2023-03-05 01:03:48 +00:00
2023-03-05 22:58:21 +00:00
var jsonsource = "".concat(
"../data/spells/spells-grimoire-",
$.defaultLanguage.slice(0, 2),
".json"
2023-03-05 01:03:48 +00:00
);
2023-03-06 13:13:04 +00:00
var alldata;
2023-03-05 22:58:21 +00:00
// Fetch data from server
fetch(jsonsource)
.then((response) => response.json())
.then((data) => {
// load fetched data into grid
2023-03-06 13:13:04 +00:00
alldata = data.spell;
console.log(alldata);
2023-03-05 01:03:48 +00:00
2023-03-05 22:58:21 +00:00
//document.getElementById("spell-list")
2023-03-06 23:06:27 +00:00
var grid = $("#spell-list").w2grid({
2023-03-05 22:58:21 +00:00
name: "Spells",
box: "#spellgrid",
show: {
2023-03-06 23:06:27 +00:00
header: false,
2023-03-05 22:58:21 +00:00
toolbar: true,
footer: false,
2023-03-06 23:06:27 +00:00
selectColumn: true,
},
multiSelect: true,
liveSearch: true,
multiSearch: true,
fixedBody: false,
2023-03-06 13:13:04 +00:00
records: alldata,
2023-03-05 22:58:21 +00:00
columns: [
{
field: "name",
text: "Name",
sortable: true,
resizable: true,
searchable: { operator: "contains" },
},
2023-03-06 23:06:27 +00:00
{
field: "desc",
text: "Description",
size: "500%",
style: "test",
resizable: true,
searchable: { operator: "contains" },
2023-03-06 23:06:27 +00:00
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" },
},
2023-03-06 23:06:27 +00:00
{ field: "page", text: "Page", sortable: true },
{ field: "level", text: "Level", sortable: true, size: 65 },
{ field: "school", text: "School", sortable: true },
{
field: "components",
text: '<span data-localize="gridColumns.components">Components</span>',
render(record) {
var v = record.components.v
? '<span data-localize="verbal">V</span>'
: "";
var s = record.components.s ? '<span data-localize="somatic">S</span>' : "";
var m = record.components.m ? '<span data-localize="material">M</span>' : "";
//var m = record.components.m ? record.components.m : "";
var vs=v.concat(', ',s);
return vs.concat(', ',m);
if ((record.components.v = true)) {
console.log(record.components);
2023-03-06 23:06:27 +00:00
}
},
2023-03-06 23:06:27 +00:00
},
{ field: "duration", text: "Duration" },
2023-03-05 22:58:21 +00:00
],
async onSelect(event) {
2023-03-06 23:06:27 +00:00
await event.complete;
console.log("select", event.detail, this.getSelection());
},
onClick(event) {
let record = this.get(event.detail.recid);
2023-03-05 22:58:21 +00:00
//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 }
])*/
2023-03-06 23:06:27 +00:00
console.log(record);
},
async onRefresh(event) {
await event.complete;
console.log("Le tableau est généré et le DOM est modifié.");
$("[data-localize]").localize("main", { pathPrefix: "lang" }); // mettre votre script ici
}
2023-03-06 23:06:27 +00:00
})
});
2023-03-05 01:03:48 +00:00