From 7dab55a84e613b8a0d78cbfa50866861cfc69f23 Mon Sep 17 00:00:00 2001
From: Jacek Kowalski <Jacek@jacekk.info>
Date: Tue, 29 Sep 2015 21:23:57 +0000
Subject: [PATCH] Fix editing player names (data was not persisted)
---
index.html | 132 -------------------------------------------
1 files changed, 1 insertions(+), 131 deletions(-)
diff --git a/index.html b/index.html
index f6f0e9c..a620866 100644
--- a/index.html
+++ b/index.html
@@ -20,138 +20,8 @@
<div id="overlay">
</div>
+<script type="text/javascript" src="bridge_results_table.js"></script>
<script type="text/javascript">
-function ResultsTable(id, container) {
- this.id = id;
- this.players = [];
- this.results = [];
- this.store = window.sessionStorage;
-
- container.appendChild(this._createTable());
-}
-ResultsTable.prototype._createTable = function() {
- this.table = document.createElement('table');
- this.table.className = 'results';
- this.thead = document.createElement('thead');
- this.tbody = document.createElement('tbody');
- this.tplayers = document.createElement('tr');
- this.tresults = document.createElement('tr');
-
- this.table.appendChild(this.thead);
- this.table.appendChild(this.tbody);
- this.thead.appendChild(this.tplayers);
- this.thead.appendChild(this.tresults);
-
- return this.table;
-};
-ResultsTable.prototype.load = function() {
- if(this.store) {
- this.players = JSON.parse(this.store.getItem(this.id+'_players'));
- this.results = JSON.parse(this.store.getItem(this.id+'_results'));
- this.refresh();
- }
-};
-ResultsTable.prototype.save = function() {
- if(this.store) {
- this.store.setItem(this.id+'_players', JSON.stringify(this.players));
- this.store.setItem(this.id+'_results', JSON.stringify(this.results));
- }
-};
-ResultsTable.prototype.clear = function() {
- this.players = [];
- this.results = [];
- this.refresh();
- if(this.store) {
- this.store.removeItem(this.id+'_players');
- this.store.removeItem(this.id+'_results');
- }
-};
-ResultsTable.prototype.addPlayer = function(name) {
- var results = (this.results[0] && this.results[0].length) || 0;
- results = new Array(results);
- for(var i = 0; i < results.length; i++) {
- results[i] = 'X';
- }
-
- this.players.push(name);
- this.results.push(results);
- this.refresh();
-};
-ResultsTable.prototype._createPlayerTh = function(name) {
- var th = document.createElement('th');
- th.innerText = name;
- th.onclick = function(self) { return function() {
- var originalName = th.innerText;
- var result = prompt('Podaj nowe inicjały gracza. Wyczyść pole, by go usunąć.', name);
-
- if(result == null) {
- return;
- }
-
- if(result) {
- self.players[self.players.indexOf(originalName)] = result;
- th.innerText = result;
- }
- else
- {
- var index = self.players.indexOf(originalName);
- self.players = self.players.splice(index, 1);
- self.results = self.results.splice(index, 1);
- self.refresh();
- }
- } }(this);
- return th;
-};
-ResultsTable.prototype.addResult = function(result) {
- for(var i = 0; i < result.length; i++) {
- this.results[i].push(result[i]);
- }
- this.refresh();
-};
-ResultsTable.prototype.refresh = function() {
- this.save();
-
- while(this.tplayers.lastChild) {
- this.tplayers.removeChild(this.tplayers.lastChild);
- }
- for(var i = 0; i < this.players.length; i++) {
- this.tplayers.appendChild(this._createPlayerTh(this.players[i]));
- }
-
- while(this.tresults.lastChild) {
- this.tresults.removeChild(this.tresults.lastChild);
- }
- for(var i = 0; i < this.results.length; i++) {
- var td = document.createElement('th');
- td.innerText = this.results[i].reduce(function(a, b) { return (parseInt(a, 10) || 0)+(parseInt(b, 10) || 0); }, 0);
- this.tresults.appendChild(td);
- }
-
- while(this.tbody.lastChild) {
- this.tbody.removeChild(this.tbody.lastChild);
- }
- if(this.results.length > 0) {
- for(var i = 0; i < this.results[0].length; i++) {
- var tr = document.createElement('tr');
-
- for(var j = 0; j < this.results.length; j++) {
- var td = document.createElement('td');
- td.innerText = this.results[j][i];
- td.onclick = function(j, i, self) { return function() {
- var result = prompt('Podaj nową wartość:', self.results[j][i]);
- if(result != null) {
- self.results[j][i] = result;
- self.refresh();
- }
- } }(j, i, this);
- tr.appendChild(td);
- }
-
- this.tbody.appendChild(tr);
- }
- }
-};
-
var resultsTable = new ResultsTable('html', document.getElementById('results'));
resultsTable.load();
--
Gitblit v1.9.1