From a9944c178f13ed6fd876a8757a147ca5949d6423 Mon Sep 17 00:00:00 2001 From: emkael Date: Fri, 31 May 2019 20:51:05 +0200 Subject: Board preview feature --- http/api/api.py | 16 +++++++++ http/dealconvert.js | 22 +++++++++++-- http/img/e-ew.png | Bin 0 -> 5657 bytes http/img/e-ns-ew.png | Bin 0 -> 5952 bytes http/img/e-ns.png | Bin 0 -> 5674 bytes http/img/e.png | Bin 0 -> 5267 bytes http/img/n-ew.png | Bin 0 -> 5577 bytes http/img/n-ns-ew.png | Bin 0 -> 5955 bytes http/img/n-ns.png | Bin 0 -> 5731 bytes http/img/n.png | Bin 0 -> 5247 bytes http/img/s-ew.png | Bin 0 -> 5558 bytes http/img/s-ns-ew.png | Bin 0 -> 5936 bytes http/img/s-ns.png | Bin 0 -> 5688 bytes http/img/s.png | Bin 0 -> 5250 bytes http/img/w-ew.png | Bin 0 -> 5595 bytes http/img/w-ns-ew.png | Bin 0 -> 5901 bytes http/img/w-ns.png | Bin 0 -> 5602 bytes http/img/w.png | Bin 0 -> 5207 bytes http/index.html | 89 ++++++++++++++++++++++++++++++++++++++++++++++++--- 19 files changed, 120 insertions(+), 7 deletions(-) create mode 100644 http/img/e-ew.png create mode 100644 http/img/e-ns-ew.png create mode 100644 http/img/e-ns.png create mode 100644 http/img/e.png create mode 100644 http/img/n-ew.png create mode 100644 http/img/n-ns-ew.png create mode 100644 http/img/n-ns.png create mode 100644 http/img/n.png create mode 100644 http/img/s-ew.png create mode 100644 http/img/s-ns-ew.png create mode 100644 http/img/s-ns.png create mode 100644 http/img/s.png create mode 100644 http/img/w-ew.png create mode 100644 http/img/w-ns-ew.png create mode 100644 http/img/w-ns.png create mode 100644 http/img/w.png diff --git a/http/api/api.py b/http/api/api.py index 1c1cb0f..be2635f 100644 --- a/http/api/api.py +++ b/http/api/api.py @@ -63,6 +63,22 @@ def handle_upload(response, request): input_file.close() if not len(dealset): raise RuntimeError('Dealset is empty') + if params['display_deals']: + preview_obj = [] + for board in dealset: + deal_preview = { + 'number': board.number, + 'conditions': 'nesw'[board.dealer], + 'hands': [] + } + for pair in ['ns', 'ew']: + if board.vulnerable[pair.upper()]: + deal_preview['conditions'] += '-' + pair + deal_preview['hands'] = board.hands + preview_obj.append(deal_preview) + return_obj['preview'] = preview_obj + else: + return_obj['preview'] = None except RuntimeError as e: return_obj['error'] = unicode(e) return _print_response(response, return_obj) diff --git a/http/dealconvert.js b/http/dealconvert.js index ff25444..e038b58 100644 --- a/http/dealconvert.js +++ b/http/dealconvert.js @@ -52,9 +52,9 @@ $(document).ready(function() { var warningTemplate = $('template#file-output-warning'); var errorTemplate = $('template#file-output-error'); var fileTemplate = $('template#file-output'); - var inputHeader = outputGroup.find('.card-header'); + var inputHeader = outputGroup.find('.file-header'); inputHeader.text(data.name); - var groupBody = outputGroup.find('.card-body'); + var groupBody = outputGroup.find('.file-body'); if (data.error) { inputHeader.addClass('bg-danger'); groupBody.append(errorTemplate.clone().contents().unwrap().text(data.error)); @@ -94,6 +94,24 @@ $(document).ready(function() { ); } } + if (data.preview) { + var boardTemplate = $('#board-preview'); + var hands = ['north', 'east', 'south', 'west']; + var suits = ['spades', 'hearts', 'diamonds', 'clubs']; + for (var b = 0; b < data.preview.length; b++) { + var board = boardTemplate.clone().contents().unwrap(); + board.find('.board-number').text(data.preview[b].number); + board.find('.board-conditions').attr('src', 'img/' + data.preview[b].conditions + '.png'); + for (var h = 0; h < hands.length; h++) { + for (var s = 0; s < suits.length; s++) { + board.find('.board-' + hands[h] + '-' + suits[s]).text(data.preview[b].hands[h][s].join('')); + } + } + outputGroup.find('.file-boards-panel .board-body').append(board); + } + } else { + outputGroup.find('.file-boards-panel').remove(); + } } $('body').append(outputGroup); completed += 1; diff --git a/http/img/e-ew.png b/http/img/e-ew.png new file mode 100644 index 0000000..bbf899f Binary files /dev/null and b/http/img/e-ew.png differ diff --git a/http/img/e-ns-ew.png b/http/img/e-ns-ew.png new file mode 100644 index 0000000..05a3b6c Binary files /dev/null and b/http/img/e-ns-ew.png differ diff --git a/http/img/e-ns.png b/http/img/e-ns.png new file mode 100644 index 0000000..2e94563 Binary files /dev/null and b/http/img/e-ns.png differ diff --git a/http/img/e.png b/http/img/e.png new file mode 100644 index 0000000..0d9304b Binary files /dev/null and b/http/img/e.png differ diff --git a/http/img/n-ew.png b/http/img/n-ew.png new file mode 100644 index 0000000..8cc1807 Binary files /dev/null and b/http/img/n-ew.png differ diff --git a/http/img/n-ns-ew.png b/http/img/n-ns-ew.png new file mode 100644 index 0000000..d45ef7e Binary files /dev/null and b/http/img/n-ns-ew.png differ diff --git a/http/img/n-ns.png b/http/img/n-ns.png new file mode 100644 index 0000000..a94eb42 Binary files /dev/null and b/http/img/n-ns.png differ diff --git a/http/img/n.png b/http/img/n.png new file mode 100644 index 0000000..cb079c4 Binary files /dev/null and b/http/img/n.png differ diff --git a/http/img/s-ew.png b/http/img/s-ew.png new file mode 100644 index 0000000..44c3e71 Binary files /dev/null and b/http/img/s-ew.png differ diff --git a/http/img/s-ns-ew.png b/http/img/s-ns-ew.png new file mode 100644 index 0000000..8cff6f8 Binary files /dev/null and b/http/img/s-ns-ew.png differ diff --git a/http/img/s-ns.png b/http/img/s-ns.png new file mode 100644 index 0000000..36fe441 Binary files /dev/null and b/http/img/s-ns.png differ diff --git a/http/img/s.png b/http/img/s.png new file mode 100644 index 0000000..a0611ac Binary files /dev/null and b/http/img/s.png differ diff --git a/http/img/w-ew.png b/http/img/w-ew.png new file mode 100644 index 0000000..b66f4f9 Binary files /dev/null and b/http/img/w-ew.png differ diff --git a/http/img/w-ns-ew.png b/http/img/w-ns-ew.png new file mode 100644 index 0000000..448abf2 Binary files /dev/null and b/http/img/w-ns-ew.png differ diff --git a/http/img/w-ns.png b/http/img/w-ns.png new file mode 100644 index 0000000..623a641 Binary files /dev/null and b/http/img/w-ns.png differ diff --git a/http/img/w.png b/http/img/w.png new file mode 100644 index 0000000..6a995ad Binary files /dev/null and b/http/img/w.png differ diff --git a/http/index.html b/http/index.html index fb97c5e..82c3dc8 100644 --- a/http/index.html +++ b/http/index.html @@ -9,7 +9,7 @@ - +
-
@@ -171,5 +178,77 @@ + -- cgit v1.2.3