// global // var ikrpg var ikrpg = ikrpg || {}; (function() { ikrpg.sheet = ikrpg.sheet || {}; var sheet = ikrpg.sheet; ikrpg.cards.init(); // # Manage characters # \\ (function() { var db2 = new PouchDB('characters.ikrpg'); var hero = ikrpg.cards.data; listCharacters(); function saveHero() { ikrpg.cards.updateData(); hero = ikrpg.cards.data; var _id = hero["hero-name"].replace(/["']/g, ""); db2.get(_id, function(error, doc) { if(error) { // hero not in db yet doc = hero; doc["_id"] = _id; db2.put(doc); } else { // hero already in db hero["_id"] = doc["_id"]; hero["_rev"] = doc["_rev"]; db2.put(hero); } listCharacters(); }); } function listCharacters() { $("#characters > tbody").remove(); $("#characters").append(""); db2.allDocs({include_docs: true}, function(error, results) { var rows = results.rows; $.each(rows, function(index, row) { var character = row.doc; function appendTr() { $("#characters > tbody").append(""); } function appendTd() { $("#characters > tbody > tr:last-of-type").append(""); } function lastTd() { return $("#characters > tbody > tr:last-of-type > td:last-of-type"); } appendTr(); appendTd(); lastTd().text(character["hero-name"]); appendTd(); lastTd().text(character["archetype"]); appendTd(); lastTd().text(character["race"]); appendTd(); lastTd().text(character["careers"]); appendTd(); lastTd().html("Load"); appendTd(); lastTd().html("Delete"); }); }); } function fill(error, character) { if(!error) { ikrpg.cards.data = $.extend(ikrpg.cards.data, character); ikrpg.cards.init(); ikrpg.cards.switchWeapons(); ikrpg.cards.heroNameHack(); ikrpg.cards.setPortrait(); } } function showCharacter(characterId) { db2.get(characterId, sheet.fill); } function deleteCharacter(characterId, characterRev) { if(confirm("This will delete your character. Do you want to proceed?")) { db2.remove(characterId, characterRev, function(error, code) { listCharacters(); }); } } // ## Initialize variables ## \\ sheet.saveHero = saveHero; sheet.fill = fill; sheet.showCharacter = showCharacter; sheet.deleteCharacter = deleteCharacter; })(); })();