diff --git a/.jscsrc b/.jscsrc index a4337796..85965732 100644 --- a/.jscsrc +++ b/.jscsrc @@ -53,4 +53,4 @@ "disallowMultipleLineBreaks": true, "disallowNewlineBeforeBlockStatements": true -} \ No newline at end of file +} diff --git a/rpg-docs/client/views/character/stats/addTHPDialog/addTHPDialog.html b/rpg-docs/client/views/character/stats/addTHPDialog/addTHPDialog.html index 197e54f2..1ab42afe 100644 --- a/rpg-docs/client/views/character/stats/addTHPDialog/addTHPDialog.html +++ b/rpg-docs/client/views/character/stats/addTHPDialog/addTHPDialog.html @@ -1,14 +1,28 @@ diff --git a/rpg-docs/client/views/character/stats/addTHPDialog/addTHPDialog.js b/rpg-docs/client/views/character/stats/addTHPDialog/addTHPDialog.js index 030acd42..c49bd6b1 100644 --- a/rpg-docs/client/views/character/stats/addTHPDialog/addTHPDialog.js +++ b/rpg-docs/client/views/character/stats/addTHPDialog/addTHPDialog.js @@ -1,5 +1,10 @@ +Template.addTHPDialog.onRendered(function(){ + this.find("#quantityInput").focus(); +}); + Template.addTHPDialog.events({ - "tap #addButton": function(event, instance){ + "tap .addButton": function(event, instance){ + popDialogStack(); var max = +instance.find("#quantityInput").value; if (!max || max < 0) max = 0; TemporaryHitPoints.insert({ @@ -8,5 +13,8 @@ Template.addTHPDialog.events({ maximum: max, deleteOnZero: !!instance.find("#deleteWhenZeroCheckbox").checked, }); - } + }, + "tap .cancelButton": function(event, instance){ + popDialogStack(); + }, }); diff --git a/rpg-docs/client/views/character/stats/healthCard/healthCard.css b/rpg-docs/client/views/character/stats/healthCard/healthCard.css index 98280aaf..03733970 100644 --- a/rpg-docs/client/views/character/stats/healthCard/healthCard.css +++ b/rpg-docs/client/views/character/stats/healthCard/healthCard.css @@ -3,24 +3,20 @@ margin-right: 8px; } -/*Slider knob color*/ -#hitPointSlider::shadow #sliderKnobInner { - background-color: #0f9d58; +.healthCard #stableButton { + color: #b71c1c; + transition: color 0.4s ease; + width: 100% } -/*Slider pin*/ -#hitPointSlider::shadow #sliderKnobInner::before { - background-color: #0f9d58; - height: 32px; - width: 32px; +.healthCard #stableButton:before { + content: "Unstable"; } -/*Slider pin text*/ -#hitPointSlider::shadow #sliderKnob > #sliderKnobInner::after { - font-size: 16px; +.healthCard #stableButton.stable { + color: #1b5e20; } -/*Slider bar*/ -#hitPointSlider::shadow #sliderBar::shadow #activeProgress { - background-color: #0f9d58; +.healthCard #stableButton.stable:before{ + content: "Stable"; } diff --git a/rpg-docs/client/views/character/stats/healthCard/healthCard.html b/rpg-docs/client/views/character/stats/healthCard/healthCard.html index 26abe189..3309c710 100644 --- a/rpg-docs/client/views/character/stats/healthCard/healthCard.html +++ b/rpg-docs/client/views/character/stats/healthCard/healthCard.html @@ -22,21 +22,21 @@ {{#each tempHitPoints}}
{{name}} -
- +
+
+ {{#unless left}} + + {{/unless}} +
+ - {{#unless left}} - - {{/unless}}
-
{{/each}} -
+
{{#if multipliers.immunities.length}}
Immune: {{#each multipliers.immunities}} {{name}} {{/each}} @@ -68,15 +68,12 @@
-
+
{{#if dead}} DEAD {{else}} - {{#if stable}} - Stable - {{else}} - Unstable - {{/if}} + + {{/if}}
diff --git a/rpg-docs/client/views/character/stats/healthCard/healthCard.js b/rpg-docs/client/views/character/stats/healthCard/healthCard.js index 6fe9a7c8..364b4dd5 100644 --- a/rpg-docs/client/views/character/stats/healthCard/healthCard.js +++ b/rpg-docs/client/views/character/stats/healthCard/healthCard.js @@ -10,12 +10,12 @@ Template.healthCard.helpers({ return char && char.deathSave; }, failIcon: function(num){ - if (num <= this.fail) return "radio-button-on"; - else return "radio-button-off"; + if (num <= this.fail) return "radio-button-checked"; + else return "radio-button-unchecked"; }, passIcon: function(num){ - if (num <= this.pass) return "radio-button-on"; - else return "radio-button-off"; + if (num <= this.pass) return "radio-button-checked"; + else return "radio-button-unchecked"; }, failDisabled: function(num){ return !(num === this.fail || num - 1 === this.fail); @@ -27,6 +27,7 @@ Template.healthCard.helpers({ return this.fail >= 3; }, multipliers: function(){ + // jscs:disable maximumLineLength var multipliers = [ {name: "Acid", value: Characters.calculate.attributeValue(this._id, "acidMultiplier")}, {name: "Bludgeoning", value: Characters.calculate.attributeValue(this._id, "bludgeoningMultiplier")}, @@ -42,6 +43,7 @@ Template.healthCard.helpers({ {name: "Slashing", value: Characters.calculate.attributeValue(this._id, "slashingMultiplier")}, {name: "Thunder", value: Characters.calculate.attributeValue(this._id, "thunderMultiplier")}, ]; + // jscs:enable maximumLineLength multipliers = _.groupBy(multipliers, "value"); return { "immunities": multipliers["0"] || [], @@ -54,7 +56,7 @@ Template.healthCard.helpers({ Template.healthCard.events({ "change #hitPointSlider": function(event){ var value = event.currentTarget.value; - var base = Characters.calculate.attributeBase(this._id, "hitPoints") + var base = Characters.calculate.attributeBase(this._id, "hitPoints"); var adjustment = value - base; Characters.update(this._id, {$set: {"hitPoints.adjustment": adjustment}}); //reset the death saves if we are gaining HP @@ -73,39 +75,42 @@ Template.healthCard.events({ var used = this.maximum - value; TemporaryHitPoints.update(this._id, {$set: {"used": used}}); }, - "tap .deleteTHP": function(event){ + "click .deleteTHP": function(event){ TemporaryHitPoints.remove(this._id); }, - "tap #addTempHP": function(event){ - GlobalUI.showDialog({ + "click #addTempHP": function(event){ + pushDialogStack({ template: "addTHPDialog", data: {charId: this._id}, + element: event.currentTarget.parentElement, }); }, - "tap .failBubble": function(event){ + "click .failBubble": function(event){ if (event.currentTarget.disabled) return; var char = Template.parentData(); - if (event.currentTarget.icon === "radio-button-off"){ + if (event.currentTarget.icon === "radio-button-unchecked"){ Characters.update(char._id, {$set: {"deathSave.fail": this.fail + 1}}); } else { Characters.update(char._id, {$set: {"deathSave.fail": this.fail - 1}}); } }, - "tap .passBubble": function(event){ + "click .passBubble": function(event){ if (event.currentTarget.disabled) return; var char = Template.parentData(); - if (event.currentTarget.icon === "radio-button-off"){ + if (event.currentTarget.icon === "radio-button-unchecked"){ Characters.update(char._id, {$set: {"deathSave.pass": this.pass + 1}}); } else { Characters.update(char._id, {$set: {"deathSave.pass": this.pass - 1}}); } }, - "tap #stableButton": function(event){ - var char = Template.parentData(); - Characters.update(char._id, {$set: {"deathSave.stable": false}}); - }, - "tap #unstableButton": function(event){ - var char = Template.parentData(); - Characters.update(char._id, {$set: {"deathSave.stable": true}}); + "click #stableButton": function(event){ + var char = Characters.findOne(Template.parentData()._id, { + fields: {deathSave: 1} + }); + Characters.update(char._id, { + $set: { + "deathSave.stable": !char.deathSave.stable + } + }); }, }); diff --git a/rpg-docs/client/views/layout/polymerImports.html b/rpg-docs/client/views/layout/polymerImports.html index 37a246b6..1889565d 100644 --- a/rpg-docs/client/views/layout/polymerImports.html +++ b/rpg-docs/client/views/layout/polymerImports.html @@ -28,6 +28,7 @@ + @@ -43,5 +44,6 @@ + diff --git a/rpg-docs/client/views/paperTemplates/dialogStack/dialogStack.css b/rpg-docs/client/views/paperTemplates/dialogStack/dialogStack.css index d3df2419..6b8677bd 100644 --- a/rpg-docs/client/views/paperTemplates/dialogStack/dialogStack.css +++ b/rpg-docs/client/views/paperTemplates/dialogStack/dialogStack.css @@ -29,6 +29,8 @@ position: relative; height: 80%; width: 80%; + max-width: 800px; + max-height: 600px; } .dialog-stack .dialog { diff --git a/rpg-docs/public/custom_components/paper-diff-slider/paper-diff-slider.css b/rpg-docs/public/custom_components/paper-diff-slider/paper-diff-slider.css deleted file mode 100644 index 4840ee8b..00000000 --- a/rpg-docs/public/custom_components/paper-diff-slider/paper-diff-slider.css +++ /dev/null @@ -1,239 +0,0 @@ -/* -Copyright (c) 2014 The Polymer Project Authors. All rights reserved. -This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt -The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt -The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt -Code distributed by Google as part of the polymer project is also -subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt -*/ - -:host { - display: inline-block; - width: 200px; - cursor: default; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - -webkit-tap-highlight-color: rgba(0,0,0,0); -} - -:host(:focus) { - outline: none; -} - -#sliderContainer { - position: relative; - width: calc(100% - 32px); - height: 32px; -} - -#sliderContainer.editable { - float: left; - width: calc(100% - 72px); - margin: 12px 0; -} - -.bar-container { - position: absolute; - top: 0; - left: 16px; - height: 100%; - width: 100%; - overflow: hidden; -} - -.ring > .bar-container { - left: 20px; - width: calc(100% - 4px); - transition: left 0.18s ease, width 0.18s ease; -} - -.ring.expand:not(.pin) > .bar-container { - left: 30px; - width: calc(100% - 14px); -} - -.ring.expand.dragging > .bar-container { - transition: none; -} - -#sliderBar { - position: absolute; - top: 15px; - left: 0; - height: 2px; - width: 100%; - padding: 8px 0; - margin: -8px 0; -} - -.ring #sliderBar { - left: -4px; - width: calc(100% + 4px); -} - -.ring.expand:not(.pin) #sliderBar { - left: -14px; - width: calc(100% + 14px); -} - -.slider-markers { - position: absolute; - top: 15px; - left: 15px; - height: 2px; - width: calc(100% + 2px); - box-sizing: border-box; - pointer-events: none; -} - -.slider-markers::after, .slider-marker::after { - content: ""; - display: block; - width: 2px; - height: 2px; - border-radius: 50%; - background-color: black; -} - -#sliderBar::shadow #activeProgress { - background-color: #3f51b5; -} - -.transiting #sliderBar::shadow #activeProgress { - transition: -webkit-transform 0.08s ease; - transition: transform 0.08s ease; -} - -#sliderKnob { - position: absolute; - left: 0; - top: 0; - width: 32px; - height: 32px; -} - -.transiting > #sliderKnob { - transition: left 0.08s ease; -} - -#sliderKnob:focus { - outline: none; -} - -#sliderKnob.dragging { - transition: none; -} - -.snaps > #sliderKnob.dragging { - transition: -webkit-transform 0.08s ease; - transition: transform 0.08s ease; -} - -#sliderKnobInner { - width: 12px; - height: 12px; - box-sizing: border-box; - -moz-box-sizing: border-box; - border-radius: 50%; - background-color: #3f51b5; - /* FIXME(ffu): can't use the following. https://github.com/Polymer/platform/issues/53 */ - /* transition-property: height, width, background-color, border; - transition-duration: 0.1s; - transition-timing-function: ease; */ - transition: height 0.18s ease, width 0.18s ease; -} - -.expand:not(.pin) > #sliderKnob > #sliderKnobInner { - width: 100%; - height: 100%; - -webkit-transform: translateZ(0); - transform: translateZ(0); -} - -.ring > #sliderKnob > #sliderKnobInner { - background-color: transparent; - border: 2px solid #c8c8c8; -} - -#sliderKnobInner::before { - background-color: #3f51b5; -} - -.pin > #sliderKnob > #sliderKnobInner::before { - content: ""; - position: absolute; - top: 0; - left: 0; - width: 26px; - height: 26px; - margin-left: 3px; - border-radius: 50% 50% 50% 0; - -webkit-transform: rotate(-45deg) scale(0) translate(0); - transform: rotate(-45deg) scale(0) translate(0); -} - -#sliderKnobInner::before, #sliderKnobInner::after { - transition: -webkit-transform .2s ease, background-color .18s ease; - transition: transform .2s ease, background-color .18s ease; -} - -.pin.ring > #sliderKnob > #sliderKnobInner::before { - background-color: #c8c8c8; -} - -.pin.expand > #sliderKnob > #sliderKnobInner::before { - -webkit-transform: rotate(-45deg) scale(1) translate(17px, -17px); - transform: rotate(-45deg) scale(1) translate(17px, -17px); -} - -.pin > #sliderKnob > #sliderKnobInner::after { - content: attr(value); - position: absolute; - top: 0; - left: 0; - width: 32px; - height: 26px; - text-align: center; - color: #fff; - font-size: 10px; - -webkit-transform: scale(0) translate(0); - transform: scale(0) translate(0); -} - -.pin.expand > #sliderKnob > #sliderKnobInner::after { - -webkit-transform: scale(1) translate(0, -17px); - transform: scale(1) translate(0, -17px); -} - -/* editable: paper-input */ -.slider-input { - width: 40px; - float: right; - overflow: hidden; -} - -.slider-input::shadow input { - /* FIXME(ffu): should one be able set text-align directly on paper-input? */ - text-align: center; -} - -/* disabled state */ -#sliderContainer.disabled { - pointer-events: none; -} - -.disabled > #sliderKnob > #sliderKnobInner { - width: 8px; - height: 8px; - background-color: #c8c8c8; -} - -.disabled.ring > #sliderKnob > #sliderKnobInner { - background-color: transparent; -} - -#sliderContainer.disabled #sliderBar::shadow #activeProgress { - background-color: #c8c8c8; -} diff --git a/rpg-docs/public/custom_components/paper-diff-slider/paper-diff-slider.html b/rpg-docs/public/custom_components/paper-diff-slider/paper-diff-slider.html index 0a2e283b..e624a428 100644 --- a/rpg-docs/public/custom_components/paper-diff-slider/paper-diff-slider.html +++ b/rpg-docs/public/custom_components/paper-diff-slider/paper-diff-slider.html @@ -1,16 +1,29 @@ - + + + + + + + + + + - - - + + -
- -
+ +
+
+
-
- - - - - + +