From c66b5f1ed455a080d8729dcdf525878b27c6a974 Mon Sep 17 00:00:00 2001 From: Ian Gulliver Date: Sun, 27 Dec 2015 09:18:40 -0800 Subject: [PATCH] Show/hide overlay over buttons until names are entered. --- static/babystats.js | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/static/babystats.js b/static/babystats.js index ac2c4ac..af891c6 100644 --- a/static/babystats.js +++ b/static/babystats.js @@ -100,6 +100,16 @@ BabyStats.prototype.buildStylesheet_ = function() { var focus = style.sheet.cssRules[0]; focus.style.outline = 'none'; + style.sheet.insertRule('babyStatsGridOverlay {}', 0); + var gridOverlay = style.sheet.cssRules[0]; + gridOverlay.style.position = 'absolute'; + gridOverlay.style.top = '80px'; + gridOverlay.style.left = 0; + gridOverlay.style.bottom = 0; + gridOverlay.style.right = 0; + gridOverlay.style.backgroundColor = 'white'; + gridOverlay.style.opacity = 0.7; + style.sheet.insertRule('babyStatsGridContainer {}', 0); var gridContainer = style.sheet.cssRules[0]; gridContainer.style.position = 'absolute'; @@ -312,15 +322,33 @@ BabyStats.prototype.buildLayout_ = function() { this.childName_ = document.createElement('input'); this.addCSSClass_(this.childName_, 'babyStatsChildName'); this.childName_.placeholder = 'Child name'; + this.childName_.addEventListener('input', this.checkOverlay_.bind(this)); this.container_.appendChild(this.childName_); this.yourName_ = document.createElement('input'); this.addCSSClass_(this.yourName_, 'babyStatsYourName'); this.yourName_.placeholder = 'Your name'; + this.yourName_.addEventListener('input', this.checkOverlay_.bind(this)); this.container_.appendChild(this.yourName_); this.gridContainer_ = document.createElement('babyStatsGridContainer'); this.container_.appendChild(this.gridContainer_); + + this.gridOverlay_ = document.createElement('babyStatsGridOverlay'); + this.container_.appendChild(this.gridOverlay_); +}; + + +/** + * Make the grid overlay visible/hidden based on input field status. + * @private + */ +BabyStats.prototype.checkOverlay_ = function() { + var visibility = 'visible'; + if (this.childName_.value && this.yourName_.value) { + visibility = 'hidden'; + } + this.gridOverlay_.style.visibility = visibility; };