Compare commits

...

25 Commits
0.7.0 ... 0.9.0

Author SHA1 Message Date
Stefan Zermatten
103d44eeec Merge branch 'feature-fast-render' 2015-11-17 13:59:22 +02:00
Stefan Zermatten
33196c6771 Bumped change log 2015-11-17 13:58:50 +02:00
Stefan Zermatten
80dc862047 Added Appcache 2015-11-17 12:26:55 +02:00
Stefan Zermatten
314da14ad1 Added indexes to charId on character fields 2015-11-02 09:35:05 +02:00
Stefan Zermatten
e5dbe81ac1 Added fast render support to routes which have subscriptions
Closes #18
2015-10-13 08:22:00 +02:00
Stefan Zermatten
7e68ef64cc Merge pull request #16 from ThaumRystra/bugfix-encumberance-meter-swapping
Change character reference to be reactive based on the active, undestroyed template
2015-10-09 08:58:53 +02:00
Connor Petersen
c9d71cad52 Change character reference to be reactive based on the active, undestroyed template 2015-10-08 23:05:57 -07:00
Stefan Zermatten
d79a808c81 Bumped Version 2015-10-05 08:59:25 +02:00
Stefan Zermatten
1016c39bdf Merge branch 'fix-www-route' 2015-10-05 08:59:07 +02:00
Stefan Zermatten
5f4923e049 Added canonical URL 2015-10-05 08:57:50 +02:00
Stefan Zermatten
e83237a728 Added demeteorized to gitignore 2015-10-05 08:57:33 +02:00
Stefan Zermatten
9f323738bf Renamed custom useraccount-polymer package to be more obvious 2015-10-05 08:34:43 +02:00
Stefan Zermatten
1fc76fa50d Removed Vulcanize entirely
There is no version compatible with both Meteor 1.2 and Polymer 0.5, so screw it, clients can deal with a few ms more load time.
2015-10-05 08:34:18 +02:00
Stefan Zermatten
36d5ff0a88 Update Meteor to 1.2
This requires local copies of packages that are broken or not Polymer 0.5

Closes #15
2015-10-03 22:40:04 +02:00
Stefan Zermatten
d05874ed13 Bumped version 2015-10-01 08:06:29 +02:00
Stefan Zermatten
df2521e69c Merge pull request #5 from ThaumRystra/bugfix-unprepared-spell-attacks
Spell child attacks now set their enabled state to match the parent spell prepared state
2015-10-01 08:03:30 +02:00
Stefan Zermatten
3c6a685fe8 Fixed reference to parentId which should be parent.id 2015-10-01 07:45:38 +02:00
Connor Petersen
a77e560284 Spell attacks correctly enable based on preparedness, Model correction with collection hooks 2015-09-30 13:30:59 -07:00
Stefan Zermatten
4cec83918f Updated README.md to remove out of date info 2015-09-28 07:35:10 +02:00
Stefan Zermatten
fec95c51c6 Rolled back changes to spells tab, It wasn't a column-layout 2015-09-25 13:03:14 +02:00
Stefan Zermatten
425c42d049 Bumped version 2015-09-25 12:52:28 +02:00
Stefan Zermatten
ab6f0c4f5b Merge branch 'fix-columns' 2015-09-25 12:51:04 +02:00
Stefan Zermatten
5d6e57b896 Wrap cards in padded divs to make columns behave 2015-09-25 12:49:48 +02:00
Stefan Zermatten
7c0a8125f2 Merge branch 'fix-carry-capacity-effectView' 2015-09-04 13:56:06 +02:00
Stefan Zermatten
7481ef08a8 Carry capacity effects no longer show up as "no stat" when viewed 2015-09-04 13:55:42 +02:00
79 changed files with 1088 additions and 264 deletions

View File

@@ -1,58 +1,4 @@
TODO
====
RPG Docs
========
* Get Polymer installed using bower.
* Install Vulcanize package listed below
* Copy the differential polymer demo to get polymer implemented nicely
* Update Meteor
* Install and use LESS
Packages used
=============
* meteor-platform
* Base Meteor.
* [Docs](http://docs.meteor.com/#/full/)
* autopublish
* Publishes everything to the client.
* Must be removed before release
* insecure
* Allows the client the freedom to modify any colleciton.
* Must be removed before release
* iron:router
* Enables pagination and URL's to direct to specific templates.
* [Tutorial](http://www.manuel-schoebel.com/blog/iron-router-tutorial)
* accounts-password
* Lets users create accounts with a simple password
* accounts-ui
* Adds simple UI for logging in
* random
* Somewhat decent cryptographically strong psuedo random number generation.
* [readme](https://atmospherejs.com/meteor/random)
* dburles:collection-helpers
* Adds template-style helpers to collections. [github page](https://github.com/dburles/meteor-collection-helpers)
* reactive-var
* Friendly reactive variables
* [Meteor Docs](http://docs.meteor.com/#/full/reactivevar_pkg)
* cw4gn3r:jquery-event-drag
* Adds jquery drag events
* underscore
* Handy javascript utilities
* [Docs](http://underscorejs.org/)
* aldeed:collection2
* Extends collections with Schemas
* [(gitHub page)](https://github.com/aldeed/meteor-collection2)
* uses [SimpleSchema](https://github.com/aldeed/meteor-simple-schema)
* aldeed:autoform
* Automatically generates bootstrap forms for collection2 Schemas.
* [github](https://github.com/aldeed/meteor-autoform)
* differential:vulcanize
* Bakes all the polymer imports into one file
* [github](https://github.com/Differential/meteor-vulcanize)
************
Resources
=========
[differential's polymer demo](https://github.com/Differential/polymer-demo)
This is the repo for [DiceCloud](dicecloud.com). The currently deployed version should always be the head of the master branch.

3
rpg-docs/.gitignore vendored
View File

@@ -1,6 +1,7 @@
.meteor/local
.meteor/meteorite
.demeteorized
settings.json
public/components
nohup.out
dump
dump

View File

@@ -6,3 +6,7 @@ notices-for-0.9.0
notices-for-0.9.1
0.9.4-platform-file
notices-for-facebook-graph-api-2
1.2.0-standard-minifiers-package
1.2.0-meteor-platform-split
1.2.0-cordova-changes
1.2.0-breaking-changes

View File

@@ -1 +0,0 @@

View File

@@ -3,7 +3,6 @@
# 'meteor add' and 'meteor remove' will edit this file for you,
# but you can also edit it by hand.
meteor-platform
iron:router
accounts-password
accounts-ui
@@ -12,7 +11,6 @@ dburles:collection-helpers
reactive-var
underscore
aldeed:collection2
differential:vulcanize
matb33:collection-hooks
zimme:collection-softremovable
momentjs:moment
@@ -29,3 +27,20 @@ meteorhacks:subs-manager
meteorhacks:kadira
chuangbo:marked
reywood:iron-router-ga
standard-minifiers
meteor-base
mobile-experience
mongo
blaze-html-templates
session
jquery
tracker
logging
reload
ejson
spacebars
check
useraccounts:iron-routing
wizonesolutions:canonical
meteorhacks:fast-render
appcache

View File

@@ -1 +1 @@
METEOR@1.1.0.2
METEOR@1.2.0.2

View File

@@ -1,96 +1,121 @@
accounts-base@1.2.0
accounts-google@1.0.4
accounts-oauth@1.1.5
accounts-password@1.1.1
accounts-ui@1.1.5
accounts-ui-unstyled@1.1.7
aldeed:collection2@2.3.3
accounts-base@1.2.1
accounts-google@1.0.6
accounts-oauth@1.1.7
accounts-password@1.1.3
accounts-ui@1.1.6
accounts-ui-unstyled@1.1.8
aldeed:collection2@2.5.0
aldeed:simple-schema@1.3.3
autoupdate@1.2.1
base64@1.0.3
binary-heap@1.0.3
blaze@2.1.2
blaze-tools@1.0.3
boilerplate-generator@1.0.3
callback-hook@1.0.3
check@1.0.5
chuangbo:marked@0.3.5
coffeescript@1.0.6
appcache@1.0.6
autoupdate@1.2.3
babel-compiler@5.8.24_1
babel-runtime@0.1.4
base64@1.0.4
binary-heap@1.0.4
blaze@2.1.3
blaze-html-templates@1.0.1
blaze-tools@1.0.4
boilerplate-generator@1.0.4
caching-compiler@1.0.0
caching-html-compiler@1.0.2
callback-hook@1.0.4
check@1.0.6
chuangbo:cookie@1.1.0
chuangbo:marked@0.3.5_1
coffeescript@1.0.10
dburles:collection-helpers@1.0.3
dburles:mongo-collection-instances@0.3.3
ddp@1.1.0
deps@1.0.7
differential:vulcanize@0.0.5
dburles:mongo-collection-instances@0.3.4
ddp@1.2.2
ddp-client@1.2.1
ddp-common@1.2.1
ddp-rate-limiter@1.0.0
ddp-server@1.2.1
deps@1.0.9
diff-sequence@1.0.1
ecmascript@0.1.5
ecmascript-collections@0.1.6
ecwyne:mathjs@0.25.0
ejson@1.0.6
email@1.0.6
fastclick@1.0.3
ejson@1.0.7
email@1.0.7
fastclick@1.0.7
fourseven:scss@2.1.1
geojson-utils@1.0.3
google@1.1.5
html-tools@1.0.4
htmljs@1.0.4
http@1.1.0
id-map@1.0.3
iron:controller@1.0.7
iron:core@1.0.7
iron:dynamic-template@1.0.7
iron:layout@1.0.7
iron:location@1.0.7
iron:middleware-stack@1.0.7
iron:router@1.0.7
iron:url@1.0.7
jquery@1.11.3_2
json@1.0.3
lai:collection-extensions@0.1.3
launch-screen@1.0.2
less@1.0.14
livedata@1.0.13
localstorage@1.0.3
logging@1.0.7
matb33:collection-hooks@0.7.13
meteor@1.1.6
meteor-platform@1.2.2
meteorhacks:kadira@2.21.0
geojson-utils@1.0.4
google@1.1.6
hot-code-push@1.0.0
html-tools@1.0.5
htmljs@1.0.5
http@1.1.1
id-map@1.0.4
iron:controller@1.0.8
iron:core@1.0.8
iron:dynamic-template@1.0.8
iron:layout@1.0.8
iron:location@1.0.9
iron:middleware-stack@1.0.9
iron:router@1.0.9
iron:url@1.0.9
jquery@1.11.4
lai:collection-extensions@0.1.4
launch-screen@1.0.4
less@2.5.0_3
livedata@1.0.15
localstorage@1.0.5
logging@1.0.8
matb33:collection-hooks@0.8.1
meteor@1.1.9
meteor-base@1.0.1
meteorhacks:fast-render@2.10.0
meteorhacks:inject-data@1.4.1
meteorhacks:kadira@2.23.4
meteorhacks:meteorx@1.3.1
meteorhacks:subs-manager@1.3.0
minifiers@1.1.5
minimongo@1.0.8
mobile-status-bar@1.0.3
momentjs:moment@2.10.3
mongo@1.1.0
mongo-livedata@1.0.8
meteorhacks:picker@1.0.3
meteorhacks:subs-manager@1.6.2
minifiers@1.1.7
minimongo@1.0.10
mobile-experience@1.0.1
mobile-status-bar@1.0.6
momentjs:moment@2.10.6
mongo@1.1.2
mongo-id@1.0.1
mongo-livedata@1.0.9
npm-bcrypt@0.7.8_2
oauth@1.1.4
oauth2@1.1.3
observe-sequence@1.0.6
ordered-dict@1.0.3
percolate:migrations@0.7.5
random@1.0.3
reactive-dict@1.1.0
reactive-var@1.0.5
reload@1.1.3
retry@1.0.3
reywood:iron-router-ga@0.6.0
routepolicy@1.0.5
service-configuration@1.0.4
session@1.1.0
sha@1.0.3
npm-mongo@1.4.39_1
oauth@1.1.6
oauth2@1.1.5
observe-sequence@1.0.7
ordered-dict@1.0.4
percolate:migrations@0.9.6
promise@0.5.0
random@1.0.4
rate-limit@1.0.0
reactive-dict@1.1.2
reactive-var@1.0.6
reload@1.1.4
retry@1.0.4
reywood:iron-router-ga@0.7.1
routepolicy@1.0.6
service-configuration@1.0.5
session@1.1.1
sha@1.0.4
softwarerero:accounts-t9n@1.0.9
spacebars@1.0.6
spacebars-compiler@1.0.6
spacebars@1.0.7
spacebars-compiler@1.0.7
splendido:accounts-emails-field@1.2.0
splendido:accounts-meld@1.3.0
srp@1.0.3
templating@1.1.1
tracker@1.0.7
ui@1.0.6
underscore@1.0.3
url@1.0.4
useraccounts:core@1.9.1
useraccounts:polymer@1.9.1
webapp@1.2.0
webapp-hashing@1.0.3
wolves:bourbon@1.0.0
zimme:collection-behaviours@1.0.4
splendido:accounts-meld@1.3.1
srp@1.0.4
standard-minifiers@1.0.1
templating@1.1.4
templating-tools@1.0.0
tracker@1.0.9
ui@1.0.8
underscore@1.0.4
url@1.0.5
useraccounts:core@1.12.3
useraccounts:iron-routing@1.12.3
useraccounts:polymer@1.12.3
webapp@1.2.2
webapp-hashing@1.0.5
wizonesolutions:canonical@0.0.5
wolves:bourbon@1.2.0
zimme:collection-behaviours@1.1.3
zimme:collection-softremovable@1.0.4

View File

@@ -7,6 +7,7 @@ Schemas.Action = new SimpleSchema({
charId: {
type: String,
regEx: SimpleSchema.RegEx.Id,
index: 1,
},
name: {
type: String,

View File

@@ -7,6 +7,7 @@ Schemas.Attack = new SimpleSchema({
charId: {
type: String,
regEx: SimpleSchema.RegEx.Id,
index: 1,
},
name: {
type: String,
@@ -69,5 +70,17 @@ Attacks.attachSchema(Schemas.Attack);
Attacks.attachBehaviour("softRemovable");
makeChild(Attacks, ["name", "enabled"]); //children of lots of things
Attacks.after.insert(function (userId, attack) {
//Check to see if this attack's parent is a spell, if so, mirror prepared state to enabled
if (attack.parent.collection === "Spells") {
var parentSpell = Spells.findOne(attack.parent.id);
if (parentSpell.prepared === "unprepared") {
Attacks.update(attack._id, {$set: {enabled: false}});
} else if (parentSpell.prepared === "prepared" || "always") {
Attacks.update(attack._id, {$set: {enabled: true}});
}
}
});
Attacks.allow(CHARACTER_SUBSCHEMA_ALLOW);
Attacks.deny(CHARACTER_SUBSCHEMA_DENY);

View File

@@ -4,6 +4,7 @@ Schemas.Buff = new SimpleSchema({
charId: {
type: String,
regEx: SimpleSchema.RegEx.Id,
index: 1,
},
name: {
type: String,

View File

@@ -1,7 +1,7 @@
Classes = new Mongo.Collection("classes");
Schemas.Class = new SimpleSchema({
charId: {type: String, regEx: SimpleSchema.RegEx.Id},
charId: {type: String, regEx: SimpleSchema.RegEx.Id, index: 1},
name: {type: String, trim: false},
level: {type: Number},
createdAt: {

View File

@@ -8,6 +8,7 @@ Schemas.Effect = new SimpleSchema({
charId: {
type: String,
regEx: SimpleSchema.RegEx.Id,
index: 1,
},
name: {
type: String,

View File

@@ -1,7 +1,7 @@
Experiences = new Mongo.Collection("experience");
Schemas.Experience = new SimpleSchema({
charId: {type: String, regEx: SimpleSchema.RegEx.Id},
charId: {type: String, regEx: SimpleSchema.RegEx.Id, index: 1},
name: {type: String, defaultValue: "New Experience", trim: false},
description: {type: String, optional: true, trim: false},
value: {type: Number, defaultValue: 0},

View File

@@ -1,7 +1,7 @@
Features = new Mongo.Collection("features");
Schemas.Feature = new SimpleSchema({
charId: {type: String, regEx: SimpleSchema.RegEx.Id},
charId: {type: String, regEx: SimpleSchema.RegEx.Id, index: 1},
name: {type: String, trim: false},
description: {type: String, optional: true, trim: false},
uses: {type: String, optional: true, trim: false},

View File

@@ -1,7 +1,7 @@
Notes = new Mongo.Collection("notes");
Schemas.Note = new SimpleSchema({
charId: {type: String, regEx: SimpleSchema.RegEx.Id},
charId: {type: String, regEx: SimpleSchema.RegEx.Id, index: 1},
name: {type: String, trim: false},
description: {type: String, optional: true, trim: false},
color: {

View File

@@ -4,6 +4,7 @@ Schemas.Proficiency = new SimpleSchema({
charId: {
type: String,
regEx: SimpleSchema.RegEx.Id,
index: 1,
},
name: {
type: String,

View File

@@ -1,7 +1,7 @@
SpellLists = new Mongo.Collection("spellLists");
Schemas.SpellLists = new SimpleSchema({
charId: {type: String, regEx: SimpleSchema.RegEx.Id},
charId: {type: String, regEx: SimpleSchema.RegEx.Id, index: 1},
name: {type: String, trim: false},
description: {type: String, optional: true, trim: false},
saveDC: {type: String, optional: true, trim: false},

View File

@@ -1,7 +1,7 @@
Spells = new Mongo.Collection("spells");
Schemas.Spell = new SimpleSchema({
charId: {type: String, regEx: SimpleSchema.RegEx.Id},
charId: {type: String, regEx: SimpleSchema.RegEx.Id, index: 1},
prepared: {
type: String,
defaultValue: "prepared",
@@ -64,5 +64,21 @@ Spells.attachBehaviour("softRemovable");
makeChild(Spells); //children of spell lists
makeParent(Spells, ["name", "enabled"]); //parents of attacks
Spells.after.update(function (userId, spell, fieldNames) {
//Update prepared state of spell and child attacks to be enabled or not
if (_.contains(fieldNames, "prepared")) {
var childAttacks = Attacks.find({"parent.id": spell._id}).fetch();
if (spell.prepared === "unprepared") {
_.each(childAttacks, function(attack){
Attacks.update(attack._id, {$set: {enabled: false}});
});
} else if (spell.prepared === "prepared" || "always") {
_.each(childAttacks, function(attack){
Attacks.update(attack._id, {$set: {enabled: true}});
});
}
}
});
Spells.allow(CHARACTER_SUBSCHEMA_ALLOW);
Spells.deny(CHARACTER_SUBSCHEMA_DENY);

View File

@@ -1,7 +1,7 @@
TemporaryHitPoints = new Mongo.Collection("temporaryHitPoints");
Schemas.TemporaryHitPoints = new SimpleSchema({
charId: {type: String, regEx: SimpleSchema.RegEx.Id},
charId: {type: String, regEx: SimpleSchema.RegEx.Id, index: 1},
name: {type: String, optional: true},
maximum: {type: Number, defaultValue: 0, min: 0, max: 500},
used: {type: Number, defaultValue: 0, min: 0, max: 500},

View File

@@ -3,7 +3,7 @@ Containers = new Mongo.Collection("containers");
Schemas.Container = new SimpleSchema({
name: {type: String, trim: false},
charId: {type: String, regEx: SimpleSchema.RegEx.Id},
charId: {type: String, regEx: SimpleSchema.RegEx.Id, index: 1},
isCarried: {type: Boolean},
weight: {type: Number, min: 0, defaultValue: 0, decimal: true},
value: {type: Number, min: 0, defaultValue: 0, decimal: true},

View File

@@ -4,7 +4,7 @@ Schemas.Item = new SimpleSchema({
name: {type: String, defaultValue: "New Item", trim: false},
plural: {type: String, optional: true, trim: false},
description:{type: String, optional: true, trim: false},
charId: {type: String, regEx: SimpleSchema.RegEx.Id}, //id of owner
charId: {type: String, regEx: SimpleSchema.RegEx.Id, index: 1}, //id of owner
quantity: {type: Number, min: 0, defaultValue: 1},
weight: {type: Number, min: 0, defaultValue: 0, decimal: true},
value: {type: Number, min: 0, defaultValue: 0, decimal: true},

View File

@@ -34,6 +34,7 @@ Router.map(function() {
onAfterAction: function() {
document.title = appName;
},
fastRender: true,
});
this.route("characterSheet", {
@@ -63,6 +64,7 @@ Router.map(function() {
window.ga && window.ga("send", "pageview", "/character");
this.next();
},
fastRender: true,
});
this.route("loading", {
@@ -91,6 +93,7 @@ Router.map(function() {
onAfterAction: function() {
document.title = appName;
},
fastRender: true,
});
this.route("/guide", {

View File

@@ -3,17 +3,24 @@
$thickColumnWidth: 304px;
$thinColumnWidth: 240px;
//Column layouts of cards
//Column layout
.column-container {
@include column-fill(balance);
@include column-gap(8px);
@include column-gap(0px);
@include column-width($thickColumnWidth);
padding: 8px;
padding: 4px;
&.thin-columns {
@include column-count(4);
@include column-width($thinColumnWidth);
}
& > div {
padding: 4px;
//stop divs breaking over multiple columns
-webkit-column-break-inside: avoid;
page-break-inside: avoid;
break-inside: avoid;
}
}
//Cards
@@ -21,20 +28,6 @@ $thinColumnWidth: 240px;
background: white;
border-radius: 2px;
.column-container & {
margin-bottom: 8px;
width: 100%;
//hack to stop flickering
-webkit-backface-visibility: hidden;
-webkit-transform: translateX(0);
//stop breaking over column divide
-webkit-column-break-inside: avoid;
page-break-inside: avoid;
break-inside: avoid;
//Fixes extra margin at top of columns
display: inline-block;
}
.top {
cursor: pointer;
padding: 16px;

View File

@@ -42,6 +42,7 @@ var stats = {
"rageDamage":{"name":"Rage Damage"},
"expertiseDice":{"name":"Expertise Dice"},
"superiorityDice":{"name":"Superiority Dice"},
"carryMultiplier": {"name": "Carry Capacity Multiplier"},
"level1SpellSlots":{"name":"level 1 Spell Slots"},
"level2SpellSlots":{"name":"level 2 Spell Slots"},
"level3SpellSlots":{"name":"level 3 Spell Slots"},

View File

@@ -12,8 +12,9 @@
{{>resource name="sorceryPoints" title="Sorcery Points" color="teal" char=this}}
<!--superiorityDice-->
{{>resource name="superiorityDice" title="Superiority Dice" color="teal" char=this}}
<!--Attacks-->
<div>
<paper-shadow class="card">
<div class="top white">
Attacks
@@ -48,8 +49,10 @@
{{/each}}
</div>
</paper-shadow>
</div>
<!--Proficiencies-->
<div>
<paper-shadow class="card">
<div class="white top">
Proficiencies
@@ -75,13 +78,15 @@
{{/each}}
</div>
</paper-shadow>
</div>
<!--features-->
{{#each features}}
<div>
<paper-shadow class="card featureCard"
hero-id="main" {{detailHero}}>
<div class="top {{colorClass}} subhead"
layout horizontal
<div class="top {{colorClass}} subhead"
layout horizontal
hero-id="toolbar" {{detailHero}}>
<div flex hero-id="title" {{detailHero}}>
{{name}}
@@ -94,7 +99,7 @@
{{#if canEnable}}
<core-tooltip label="Feature enabled"
position="left">
<paper-checkbox class="enabledCheckbox"
<paper-checkbox class="enabledCheckbox"
checked={{enabled}}
disabled={{#unless canEditCharacter charId}}true{{/unless}}>
</paper-checkbox>
@@ -108,29 +113,30 @@
{{/if}}
{{#if hasUses}}
<div layout horizontal center end-justified>
<paper-button class="useFeature"
<paper-button class="useFeature"
disabled={{noUsesLeft}}>
Use
</paper-button>
<paper-button class="resetFeature"
<paper-button class="resetFeature"
disabled={{usesFull}}>
Reset
</paper-button>
</div>
{{/if}}
</paper-shadow>
</div>
{{/each}}
</div>
<div class="fab-buffer"></div>
</div>
{{#if canEditCharacter _id}}
<paper-fab id="addFeature"
class="floatyButton"
icon="add"
title="Add"
role="button"
tabindex="0"
aria-label="Add"
<paper-fab id="addFeature"
class="floatyButton"
icon="add"
title="Add"
role="button"
tabindex="0"
aria-label="Add"
hero-id="main"></paper-fab>
{{/if}}
</div>
@@ -138,15 +144,16 @@
<template name="resource">
{{#if characterCalculate "attributeBase" char._id name}}
<paper-shadow class="card"
<div>
<paper-shadow class="card"
hero-id="main" {{detailHero name char._id}}
layout horizontal>
<div class="left {{getColor}} display1 white-text"
<div class="left {{getColor}} display1 white-text"
hero-id="toolbar" {{detailHero name char._id}}
layout horizontal center>
<div style="margin-right: 8px;">
<paper-icon-button class="resourceUp"
icon="arrow-drop-up"
<paper-icon-button class="resourceUp"
icon="arrow-drop-up"
disabled={{cantIncrement}}>
</paper-icon-button>
<paper-icon-button class="resourceDown"
@@ -157,10 +164,11 @@
<div>{{characterCalculate "attributeValue" char._id name}}</div>
<!--<div>/{{char.attributeBase name}}</div>-->
</div>
<div class="right clickable"
<div class="right clickable"
flex layout horizontal center>
{{title}}
</div>
</paper-shadow>
</div>
{{/if}}
</template>

View File

@@ -24,7 +24,7 @@ Template.carryCapacityBar.onCreated(function() {
var self = this;
self.carriedFraction = new ReactiveVar(0);
self.autorun(function() {
self.carriedFraction.set(getFractionCarried(self.data));
self.carriedFraction.set(getFractionCarried(Template.currentData()));
});
});

View File

@@ -3,6 +3,7 @@
<div id="inventory" class="scroll-y" fit>
<div class="column-container">
<!--Net Worth-->
<div>
<paper-shadow class="card">
<div class="white top" layout horizontal center>
<div class="subhead" flex>
@@ -13,7 +14,9 @@
</div>
</div>
</paper-shadow>
</div>
<!--Weight Carried-->
<div>
<paper-shadow class="card"
hero-id="main" {{detailHero "weightCarried" _id}}>
<div class="top green white-text weightCarried"
@@ -48,7 +51,9 @@
</div>
{{/if}}
</paper-shadow>
</div>
<!--Equipment-->
<div>
<paper-shadow class="card equipmentContainer">
<div class="white top" layout horizontal center>
<div class="subhead" flex>
@@ -76,7 +81,9 @@
{{/each}}
</div>
</paper-shadow>
</div>
<!--Carried Items-->
<div>
<paper-shadow class="card carriedContainer">
<div class="white top" layout horizontal center>
<div class="subhead" flex>
@@ -95,8 +102,10 @@
{{/each}}
</div>
</paper-shadow>
</div>
{{#each containers}}
<paper-shadow class="card itemContainer"
<div>
<paper-shadow class="card itemContainer"
hero-id="main" {{detailHero}}>
<div class="top {{colorClass}}"
hero-id="toolbar" {{detailHero}}
@@ -124,6 +133,7 @@
{{/each}}
</div>
</paper-shadow>
</div>
{{/each}}
</div>
<div class="fab-buffer"></div>

View File

@@ -3,7 +3,7 @@
<div id="journal" class="scroll-y" fit>
<div class="column-container">
<!--Experience Table-->
<paper-shadow class="card experiencesCard"
<div><paper-shadow class="card experiencesCard"
hero-id="main" {{detailHero}}>
<div class="top white subhead"
hero-id="toolbar" {{detailHero}}
@@ -37,9 +37,9 @@
</paper-button>
</div>
{{/if}}
</paper-shadow>
</paper-shadow></div>
<!--Class Table-->
<paper-shadow class="card"
<div><paper-shadow class="card"
hero-id="main" {{detailHero}}>
<div class="white top"
hero-id="toolbar" {{detailHero}}
@@ -78,9 +78,10 @@
</div>
{{/each}}
</div>
</paper-shadow>
</paper-shadow></div>
<!--Notes-->
{{#each notes}}
<div>
<paper-shadow class="card" hero-id="main" {{detailHero}}>
<div class="top {{colorClass}} noteTop subhead"
hero-id="toolbar" {{detailHero}}
@@ -89,18 +90,19 @@
</div>
<div class="bottom">{{#markdown}}{{description}}{{/markdown}}</div>
</paper-shadow>
</div>
{{/each}}
</div>
<div class="fab-buffer"></div>
</div>
</div>
{{#if canEditCharacter _id}}
<paper-fab id="addNote"
class="floatyButton"
icon="add"
title="Add"
role="button"
tabindex="0"
<paper-fab id="addNote"
class="floatyButton"
icon="add"
title="Add"
role="button"
tabindex="0"
hero-id="main"></paper-fab>
{{/if}}
</template>
</template>

View File

@@ -3,6 +3,7 @@
<div id="persona" class="scroll-y" fit>
<div class="column-container">
{{#with characterDetails}}
<div>
<paper-shadow class="card"
hero-id="main" {{detailHero "details" _id}}>
{{#unless picture}}
@@ -32,13 +33,15 @@
</div>
</div>
</paper-shadow>
</div>
{{/with}}
{{> containerCard characterField "description" "Description"}}
{{> containerCard characterField "personality" "Personality Traits"}}
{{> containerCard characterField "ideals" "Ideals"}}
{{> containerCard characterField "bonds" "Bonds"}}
{{> containerCard characterField "flaws" "Flaws"}}
{{> containerCard characterField "backstory" "Background"}}
<div>{{> containerCard characterField "description" "Description"}}</div>
<div>{{> containerCard characterField "personality" "Personality Traits"}}</div>
<div>{{> containerCard characterField "ideals" "Ideals"}}</div>
<div>{{> containerCard characterField "bonds" "Bonds"}}</div>
<div>{{> containerCard characterField "flaws" "Flaws"}}</div>
<div>{{> containerCard characterField "backstory" "Background"}}</div>
<div>
<paper-shadow class="card">
<div class="white top subhead">
Languages
@@ -49,6 +52,7 @@
{{/each}}
</div>
</paper-shadow>
</div>
</div>
</div>
</div>
@@ -70,4 +74,4 @@
</div>
<div class="bottom">{{#markdown}}{{> UI.contentBlock}}{{/markdown}}</div>
</paper-shadow>
</template>
</template>

View File

@@ -1,7 +1,7 @@
<template name="spells">
<div fit>
<div id="spells" class="scroll-y" fit>
<div style="padding: 4px;"
<div style="padding: 4px;"
layout horizontal start wrap>
{{#if hasSlots}}
<paper-shadow class="card"
@@ -92,7 +92,7 @@
<div class="tall spell item"
hero-id="main" {{detailHero}}
layout horizontal center>
<core-icon icon="social:whatshot"
<core-icon icon="social:whatshot"
style="color: {{hexColor color}};
margin-right: 16px;"
></core-icon>
@@ -144,4 +144,4 @@
</core-tooltip>
{{/fabMenu}}
{{/if}}
</template>
</template>

View File

@@ -1,5 +1,6 @@
<template name="abilityMiniCard">
<paper-shadow class="card abilityMiniCard clickable"
<div>
<paper-shadow class="card abilityMiniCard clickable"
hero-id="main" {{detailHero ability ../_id}}
layout horizontal>
<div class="left white-text {{color}}"
@@ -11,4 +12,5 @@
{{title}}
</div>
</paper-shadow>
</div>
</template>

View File

@@ -1,14 +1,15 @@
<template name="hitDice">
{{#if characterCalculate "attributeBase" ../_id name}}
<paper-shadow class="card hit-dice" hero-id="main"
{{detailHero name ../_id}}
<div>
<paper-shadow class="card hit-dice" hero-id="main"
{{detailHero name ../_id}}
layout horizontal>
<div class="left green display1 white-text"
<div class="left green display1 white-text"
hero-id="toolbar" {{detailHero name ../_id}}
layout horizontal>
<div>
<paper-icon-button class="resourceUp"
icon="arrow-drop-up"
<paper-icon-button class="resourceUp"
icon="arrow-drop-up"
disabled={{cantIncrement}}>
</paper-icon-button>
<paper-icon-button class="resourceDown"
@@ -29,5 +30,6 @@
Hit Dice
</div>
</paper-shadow>
</div>
{{/if}}
</template>

View File

@@ -27,6 +27,7 @@
{{>hitDice name="d10HitDice" diceNum="10" char=this}}
{{>hitDice name="d12HitDice" diceNum="12" char=this}}
<!--Saving Throws-->
<div>
<paper-shadow class="card">
<div class="top white subhead">
Saving Throws
@@ -40,7 +41,9 @@
{{> skillRow name="Charisma" skill="charismaSave"}}
</div>
</paper-shadow>
</div>
<!--Skills-->
<div>
<paper-shadow class="card">
<div class="top white subhead">
Skills
@@ -66,11 +69,13 @@
{{> skillRow name="Survival" skill="survival"}}
</div>
</paper-shadow>
</div>
</div>
</div>
</template>
<template name="statCard">
<div>
<paper-shadow class="card statCard clickable" hero-id="main" {{detailHero stat ../_id}} layout horizontal>
<div class="left display1 white-text {{color}}"
hero-id="toolbar" {{detailHero stat ../_id}}>
@@ -84,4 +89,5 @@
{{name}}
</div>
</paper-shadow>
</div>
</template>

View File

@@ -1,44 +1,45 @@
<!--core components-->
<link rel="import" href="/components/core-animated-pages/core-animated-pages.html">
<link rel="import" href="/components/core-animated-pages/transitions/cross-fade.html">
<link rel="import" href="/components/core-animated-pages/transitions/hero-transition.html">
<link rel="import" href="/components/core-animated-pages/transitions/slide-from-right.html">
<link rel="import" href="/components/core-icons/av-icons.html">
<link rel="import" href="/components/core-icons/core-icons.html">
<link rel="import" href="/components/core-icons/editor-icons.html">
<link rel="import" href="/components/core-icons/image-icons.html">
<link rel="import" href="/components/core-icons/social-icons.html">
<link rel="import" href="/components/core-image/core-image.html">
<link rel="import" href="/components/core-item/core-item.html">
<link rel="import" href="/components/core-menu/core-menu.html">
<link rel="import" href="/components/core-scaffold/core-scaffold.html">
<link rel="import" href="/components/core-transition/core-transition.html">
<head>
<!--core components-->
<link rel="import" href="/components/core-animated-pages/core-animated-pages.html">
<link rel="import" href="/components/core-animated-pages/transitions/cross-fade.html">
<link rel="import" href="/components/core-animated-pages/transitions/hero-transition.html">
<link rel="import" href="/components/core-animated-pages/transitions/slide-from-right.html">
<link rel="import" href="/components/core-icons/av-icons.html">
<link rel="import" href="/components/core-icons/core-icons.html">
<link rel="import" href="/components/core-icons/editor-icons.html">
<link rel="import" href="/components/core-icons/image-icons.html">
<link rel="import" href="/components/core-icons/social-icons.html">
<link rel="import" href="/components/core-image/core-image.html">
<link rel="import" href="/components/core-item/core-item.html">
<link rel="import" href="/components/core-menu/core-menu.html">
<link rel="import" href="/components/core-scaffold/core-scaffold.html">
<link rel="import" href="/components/core-transition/core-transition.html">
<!--paper components-->
<link rel="import" href="/components/paper-button/paper-button.html">
<link rel="import" href="/components/paper-checkbox/paper-checkbox.html">
<link rel="import" href="/components/paper-dialog/paper-action-dialog.html">
<link rel="import" href="/components/paper-dialog/paper-dialog.html">
<link rel="import" href="/components/paper-dialog/paper-dialog-transition.html">
<link rel="import" href="/components/paper-dropdown/paper-dropdown.html">
<link rel="import" href="/components/paper-fab/paper-fab.html">
<link rel="import" href="/components/paper-fab-menu/paper-fab-menu.html">
<link rel="import" href="/components/paper-icon-button/paper-icon-button.html">
<link rel="import" href="/components/paper-input/paper-autogrow-textarea.html">
<link rel="import" href="/components/paper-input/paper-input.html">
<link rel="import" href="/components/paper-input/paper-input-decorator.html">
<link rel="import" href="/components/paper-item/paper-item.html">
<link rel="import" href="/components/paper-menu-button/paper-menu-button.html">
<link rel="import" href="/components/paper-radio-button/paper-radio-button.html">
<link rel="import" href="/components/paper-radio-group/paper-radio-group.html">
<link rel="import" href="/components/paper-shadow/paper-shadow.html">
<link rel="import" href="/components/paper-spinner/paper-spinner.html">
<link rel="import" href="/components/paper-slider/paper-slider.html">
<link rel="import" href="/components/paper-tabs/paper-tabs.html">
<link rel="import" href="/components/paper-toast/paper-toast.html">
<link rel="import" href="/components/paper-toggle-button/paper-toggle-button.html">
<!--paper components-->
<link rel="import" href="/components/paper-button/paper-button.html">
<link rel="import" href="/components/paper-checkbox/paper-checkbox.html">
<link rel="import" href="/components/paper-dialog/paper-action-dialog.html">
<link rel="import" href="/components/paper-dialog/paper-dialog.html">
<link rel="import" href="/components/paper-dialog/paper-dialog-transition.html">
<link rel="import" href="/components/paper-dropdown/paper-dropdown.html">
<link rel="import" href="/components/paper-fab/paper-fab.html">
<link rel="import" href="/components/paper-fab-menu/paper-fab-menu.html">
<link rel="import" href="/components/paper-icon-button/paper-icon-button.html">
<link rel="import" href="/components/paper-input/paper-autogrow-textarea.html">
<link rel="import" href="/components/paper-input/paper-input.html">
<link rel="import" href="/components/paper-input/paper-input-decorator.html">
<link rel="import" href="/components/paper-item/paper-item.html">
<link rel="import" href="/components/paper-menu-button/paper-menu-button.html">
<link rel="import" href="/components/paper-radio-button/paper-radio-button.html">
<link rel="import" href="/components/paper-radio-group/paper-radio-group.html">
<link rel="import" href="/components/paper-shadow/paper-shadow.html">
<link rel="import" href="/components/paper-spinner/paper-spinner.html">
<link rel="import" href="/components/paper-slider/paper-slider.html">
<link rel="import" href="/components/paper-tabs/paper-tabs.html">
<link rel="import" href="/components/paper-toast/paper-toast.html">
<link rel="import" href="/components/paper-toggle-button/paper-toggle-button.html">
<!--custom components-->
<link rel="import" href="/custom_components/paper-dropdown-menu/paper-dropdown-menu.html">
<link rel="import" href="/custom_components/paper-diff-slider/paper-diff-slider.html">
<link rel="import" href="/custom_components/swipe-detect/swipe-detect.html">
<!--custom components-->
<link rel="import" href="/custom_components/paper-dropdown-menu/paper-dropdown-menu.html">
<link rel="import" href="/custom_components/paper-diff-slider/paper-diff-slider.html">
</head>

45
rpg-docs/config.vulcanize Normal file
View File

@@ -0,0 +1,45 @@
{
"imports": [
"/components/core-animated-pages/core-animated-pages.html",
"/components/core-animated-pages/transitions/cross-fade.html",
"/components/core-animated-pages/transitions/hero-transition.html",
"/components/core-animated-pages/transitions/slide-from-right.html",
"/components/core-icons/av-icons.html",
"/components/core-icons/core-icons.html",
"/components/core-icons/editor-icons.html",
"/components/core-icons/image-icons.html",
"/components/core-icons/social-icons.html",
"/components/core-image/core-image.html",
"/components/core-item/core-item.html",
"/components/core-menu/core-menu.html",
"/components/core-scaffold/core-scaffold.html",
"/components/core-transition/core-transition.html",
"/components/paper-button/paper-button.html",
"/components/paper-checkbox/paper-checkbox.html",
"/components/paper-dialog/paper-action-dialog.html",
"/components/paper-dialog/paper-dialog.html",
"/components/paper-dialog/paper-dialog-transition.html",
"/components/paper-dropdown/paper-dropdown.html",
"/components/paper-fab/paper-fab.html",
"/components/paper-fab-menu/paper-fab-menu.html",
"/components/paper-icon-button/paper-icon-button.html",
"/components/paper-input/paper-autogrow-textarea.html",
"/components/paper-input/paper-input.html",
"/components/paper-input/paper-input-decorator.html",
"/components/paper-item/paper-item.html",
"/components/paper-menu-button/paper-menu-button.html",
"/components/paper-radio-button/paper-radio-button.html",
"/components/paper-radio-group/paper-radio-group.html",
"/components/paper-shadow/paper-shadow.html",
"/components/paper-spinner/paper-spinner.html",
"/components/paper-slider/paper-slider.html",
"/components/paper-tabs/paper-tabs.html",
"/components/paper-toast/paper-toast.html",
"/components/paper-toggle-button/paper-toggle-button.html",
"/custom_components/paper-dropdown-menu/paper-dropdown-menu.html",
"/custom_components/paper-diff-slider/paper-diff-slider.html",
"/custom_components/swipe-detect/swipe-detect.html"
]
}

View File

@@ -0,0 +1,8 @@
sudo: required
language: node_js
node_js:
- "0.10"
before_install:
- "curl -L http://git.io/ejPSng | /bin/sh"
env:
- TEST_COMMAND=meteor

View File

@@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2014 splendido
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@@ -0,0 +1,48 @@
[![Build Status](https://travis-ci.org/meteor-useraccounts/polymer.svg?branch=master)](https://travis-ci.org/meteor-useraccounts/polymer)
useraccounts:polymer
=====================================
WORK IN PROGRESS - let us know about any problem you might encounter ;)
## TODOs
Add the following input types:
- checkbox input
- select input
- radio input
Find the proper solution for inheriting AT events for paper-button elements
This package depends on [useraccounts:core](https://atmospherejs.com/useraccounts/core)
Learn more [here](http://useraccounts.meteor.com) or have a look at the full [documentation](https://github.com/meteor-useraccounts/core).
## Bring Your Own Polymer
Adding this package with `meteor add useraccounts:polymer` does not add any other packages providing Polymer .This is to let you choose the flavour you prefer! Or using an Atmosphere package, or straight up with bower!
## ADD theses imports manually
This package does not automatically add the imports for the elements needed. If you don't have them imported already you should copy/paste these imports :
```HTML
<link rel="import" href="bower_components/paper-input/paper-input.html">
<link rel="import" href="bower_components/paper-button/paper-button.html">
<link rel="import" href="bower_components/paper-checkbox/paper-checkbox.html">
```
## Contributing
Anyone is welcome to contribute. Fork, make your changes, and then submit a pull request.
Thanks to all those who have contributed code changes to [this package](https://github.com/meteor-useraccounts/unstyled/graphs/contributors) as well as to the [core package](https://github.com/meteor-useraccounts/core/graphs/contributors) and all who have helped by submitting bug reports and feature ideas.

View File

@@ -0,0 +1,7 @@
<template name="atError">
<div class="at-error" horizontal center-justified layout>
{{#each error}}
<p>{{errorText}}</p>
{{/each}}
</div>
</template>

View File

@@ -0,0 +1,2 @@
// Simply 'inherites' helpers from AccountsTemplates
Template.atError.helpers(AccountsTemplates.atErrorHelpers);

View File

@@ -0,0 +1,39 @@
<template name="atForm">
{{#unless hide}}
<div class="at-form">
{{#if showTitle}}
{{> atTitle}}
{{/if}}
{{#if showOauthServices}}
{{> atOauth}}
{{/if}}
{{#if showServicesSeparator}}
{{> atSep}}
{{/if}}
{{#if showError}}
{{> atError}}
{{/if}}
{{#if showResult}}
{{> atResult}}
{{/if}}
{{#if showMessage}}
{{> atMessage}}
{{/if}}
{{#if showPwdForm}}
{{> atPwdForm}}
{{/if}}
{{#if showTermsLink}}
{{> atTermsLink}}
{{/if}}
{{#if showSignInLink}}
{{> atSigninLink}}
{{/if}}
{{#if showSignUpLink}}
{{> atSignupLink}}
{{/if}}
{{#if showResendVerificationEmailLink}}
{{> atResendVerificationEmailLink}}
{{/if}}
</div>
{{/unless}}
</template>

View File

@@ -0,0 +1,2 @@
// Simply 'inherites' helpers from AccountsTemplates
Template.atForm.helpers(AccountsTemplates.atFormHelpers);

View File

@@ -0,0 +1,81 @@
<template name="atInput">
{{> Template.dynamic template=templateName}}
</template>
<template name="atTextInput">
<div class="at-input pure-control-group{{#if isValidating}}validating{{/if}} {{#if hasError}}has-error{{/if}} {{#if hasSuccess}}has-success{{/if}} {{#if feedback}}has-feedback{{/if}}">
<!-- {{#if showLabels}}
<label for="at-field-{{_id}}">
{{displayName}} {{#unless required}}{{optionalText}}{{/unless}}
</label>
{{/if}}
<input type="{{type}}" id="at-field-{{_id}}" name="at-field-{{_id}}" placeholder="{{placeholder}}" autocapitalize="none" autocorrect="off">
{{#if hasIcon}}
<span class="{{iconClass}}"></span>
{{/if}}
{{#if hasError}}
<span>{{errorText}}</span>
{{/if}}
</div> -->
{{#if showLabels}}
<paper-input-decorator label=" {{displayName}} {{#unless required}}{{optionalText}}{{/unless}}" error="{{errorText}}" floatinglabel="" layout="" vertical="" isInvalid="{{#if hasError}} true {{/if}}">
<input type="{{type}}" id="at-field-{{_id}}" is="core-input" name="at-field-{{_id}}" placeholder="{{placeholder}}" autocapitalize="none" autocorrect="off">
</paper-input-decorator>
{{else}}
<paper-input-decorator error="{{errorText}}" isInvalid="{{#if hasError}} true {{/if}}">
<input type="{{type}}" id="at-field-{{_id}}" is="core-input" name="at-field-{{_id}}" placeholder="{{placeholder}}" autocapitalize="none" autocorrect="off">
</paper-input-decorator>
{{/if}}
{{#if hasIcon}}
<core-icon icon="{{iconClass}}"></core-icon>
{{/if}}
</div>
</template>
<template name="atCheckboxInput">
<div class="at-input">
<core-label horizontal layout>
<div flex>{{displayName}}</div>
<paper-checkbox type="{{type}}" id="at-field-{{_id}}" name="at-field-{{_id}}" {{disabled}} for></paper-checkbox>
</core-label>
</div>
</template>
<template name="atSelectInput">
<div class="at-input">
<core-label>
<div for="at-field-{{_id}}">{{displayName}}</div>
<core-selector id="at-field-{{_id}}" name="at-field-{{_id}}" valueattr="value" for horizontal layout center justified>
{{#each values}}
<div value="{{value}}">{{text}}</div>
{{/each}}
</core-selector>
</core-label>
</div>
</template>
<template name="atRadioInput">
<div class="at-input">
<label>{{displayName}}</label>
</div>
<paper-radio-group role="radiogroup" vertical layout>
{{#each values}}
<paper-radio-button id="at-field-{{id}}-choice-{{value}}" name="t-field-{{id}}" label="{{text}}" value={{value}} toggles role="radio" tabindex="0" aria-checked="true" aria-label="{{text}}" class="core-selected"></paper-radio-button>
{{/each}}
</paper-radio-group>
</template>
<template name="atHiddenInput">
<input type="hidden" id="at-field-{{_id}}" name="at-field-{{_id}}">
</template>

View File

@@ -0,0 +1,25 @@
_.each(AccountsTemplates.atInputRendered, function(callback){
Template.atInput.onRendered(callback);
Template.atHiddenInput.onRendered(callback);
});
// Simply 'inherites' helpers from AccountsTemplates
Template.atInput.helpers(AccountsTemplates.atInputHelpers);
// Simply 'inherites' events from AccountsTemplates
Template.atInput.events(AccountsTemplates.atInputEvents);
// Simply 'inherites' helpers from AccountsTemplates
Template.atTextInput.helpers(AccountsTemplates.atInputHelpers);
// Simply 'inherites' helpers from AccountsTemplates
Template.atCheckboxInput.helpers(AccountsTemplates.atInputHelpers);
// Simply 'inherites' helpers from AccountsTemplates
Template.atSelectInput.helpers(AccountsTemplates.atInputHelpers);
// Simply 'inherites' helpers from AccountsTemplates
Template.atRadioInput.helpers(AccountsTemplates.atInputHelpers);
// Simply 'inherites' helpers from AccountsTemplates
Template.atHiddenInput.helpers(AccountsTemplates.atInputHelpers);

View File

@@ -0,0 +1,5 @@
<template name="atMessage">
<div class="at-message">
{{message}}
</div>
</template>

View File

@@ -0,0 +1,2 @@
// Simply 'inherites' helpers from AccountsTemplates
Template.atMessage.helpers(AccountsTemplates.atMessageHelpers);

View File

@@ -0,0 +1,4 @@
<template name="atNavButton">
<!-- <a id="at-nav-button">{{text}}</a> -->
<paper-button id="at-nav-button" raised>{{text}}</paper-button>
</template>

View File

@@ -0,0 +1,5 @@
// Simply 'inherites' helpers from AccountsTemplates
Template.atNavButton.helpers(AccountsTemplates.atNavButtonHelpers);
// Simply 'inherites' events from AccountsTemplates
Template.atNavButton.events(AccountsTemplates.atNavButtonEvents);

View File

@@ -0,0 +1,7 @@
<template name="atOauth">
<div class="at-oauth" horizontal center-justified layout>
{{#each oauthService}}
{{> atSocial}}
{{/each}}
</div>
</template>

View File

@@ -0,0 +1,2 @@
// Simply 'inherites' helpers from AccountsTemplates
Template.atOauth.helpers(AccountsTemplates.atOauthHelpers);

View File

@@ -0,0 +1,168 @@
.fullPageAtForm {
margin: 0 auto;
}
.at-form {
float: none;
margin: auto;
overflow: auto;
margin-top: 20px;
margin-bottom: 20px;
border-radius: 10px;
padding: 15px;
}
.at-form p {
font-size: 15px;
line-height: 20px;
}
.at-title h3 {
margin-top: 0px;
margin-bottom: 10px;
font-size: 18px;
font-weight: 800;
text-align: center;
}
.at-link.disabled {
color: #444;
}
.at-signin-link {
margin-top: 20px;
margin-bottom: 30px;
text-align: center;
}
.at-error,
.at-result {
text-align: center;
}
.at-error {
background-color: #FFF0F0;
}
.at-error p {
width: 100%;
color: #A94442;
}
.at-oauth {
margin-top: 10px;
}
.at-btn {
display: block;
width: 100%;
}
paper-button.at-social-btn {
display: block;
width: 100%;
margin: auto;
margin-bottom: 10px;
padding: 8px 10px;
border-radius: 5px;
font-size: 16px;
}
paper-button.at-social-btn core-icon {
float: left;
width: 40px;
font-size: 20px;
margin-top: 1px;
padding-right: 15px;
padding-left: 5px;
border-right: 1px solid rgba(0, 0, 0, 0.2);
}
paper-button.at-social-btn#at-facebook {
background: #3B5998;
color: #fff;
}
paper-button.at-social-btn#at-facebook.disabled {
color: #ddd;
background: #666666;
}
paper-button.at-social-btn#at-facebook:hover {
background: #2C4780;
}
paper-button.at-social-btn#at-linkedin {
background: #338AB0;
color: #fff;
}
paper-button.at-social-btn#at-linkedin.disabled {
color: #ddd;
background: #666666;
}
paper-button.at-social-btn#at-linkedin:hover {
background: #0571A6;
}
paper-button.at-social-btn#at-twitter {
background: #4099FF;
color: #fff;
}
paper-button.at-social-btn#at-twitter.disabled {
color: #ddd;
background: #666666;
}
paper-button.at-social-btn#at-twitter:hover {
background: #3288EB;
}
paper-button.at-social-btn#at-google {
background: #db5a3c;
color: #fff;
}
paper-button.at-social-btn#at-google.disabled {
color: #ddd;
background: #666666;
}
paper-button.at-social-btn#at-google:hover {
background: #CA4C2E;
}
paper-button.at-social-btn#at-github {
background: #666;
color: #fff;
}
paper-button.at-social-btn#at-github.disabled {
color: #ddd;
background: #666666;
}
paper-button.at-social-btn#at-github:hover {
background: #555;
}
.at-sep {
text-align: center;
position: relative;
overflow: hidden;
margin-bottom: 15px;
}
.at-sep:before,
.at-sep:after {
display: block;
content: " ";
border-bottom: 1px solid #ddd;
width: 100%;
position: absolute;
top: 48%;
}
.at-sep:before {
left: -60%;
}
.at-sep:after {
right: -60%;
}
.at-input.validating * {
cursor: progress;
}
.at-pwd-form > form {
margin-top: 20px;
}
.at-pwd-form > form label {
margin-bottom: 5px;
font-weight: 500;
font-size: 14px;
}
#at-btn {
font-size: 16px;
padding: 10px 12px;
margin-top: 30px;
}
.at-signup-link {
margin-top: 20px;
margin-bottom: 30px;
}
.at-terms-link {
text-align: center;
margin-top: 20px;
font-size: 16px;
}

View File

@@ -0,0 +1,16 @@
<template name="atPwdForm">
<div class="at-pwd-form">
<form role="form" id="at-pwd-form" class="{{disabled}} pure-form pure-form-aligned" novalidate action="#" method="POST">
{{#each fields}}
{{> atInput}}
{{/each}}
{{#if showReCaptcha}}
{{> atReCaptcha}}
{{/if}}
{{#if showForgotPasswordLink}}
{{> atPwdLink}}
{{/if}}
{{> atPwdFormBtn}}
</form>
</div>
</template>

View File

@@ -0,0 +1,5 @@
// Simply 'inherites' helpers from AccountsTemplates
Template.atPwdForm.helpers(AccountsTemplates.atPwdFormHelpers);
// Simply 'inherites' events from AccountsTemplates
Template.atPwdForm.events(AccountsTemplates.atPwdFormEvents);

View File

@@ -0,0 +1,8 @@
<template name="atPwdFormBtn">
<div horizontal layout center-justified>
<button type="submit" id="at-btn" hidden></button>
<paper-button class="at-btn submit {{submitDisabled}}" role="button" id="at-btn-polymer" raised>
{{buttonText}}
</paper-button>
</div>
</template>

View File

@@ -0,0 +1,10 @@
// Simply 'inherites' helpers from AccountsTemplates
Template.atPwdFormBtn.helpers(AccountsTemplates.atPwdFormBtnHelpers);
Template.atPwdFormBtn.events = {
'click #at-btn-polymer': function(event,template) {
event.preventDefault();
template.find('button[type=submit]').click();
}
};

View File

@@ -0,0 +1,9 @@
<template name="atPwdLink">
<div class="at-pwd-link" horizontal layout center-justified>
<p>
{{preText}}
<a href="{{forgotPwdLink}}" id="at-forgotPwd" class="at-link at-pwd {{disabled}}">{{linkText}}</a>
{{suffText}}
</p>
</div>
</template>

View File

@@ -0,0 +1,5 @@
// Simply 'inherites' helpers from AccountsTemplates
Template.atPwdLink.helpers(AccountsTemplates.atPwdLinkHelpers);
// Simply 'inherites' events from AccountsTemplates
Template.atPwdLink.events(AccountsTemplates.atPwdLinkEvents);

View File

@@ -0,0 +1,3 @@
<template name="atReCaptcha">
<div class="g-recaptcha" data-sitekey='{{key}}' data-theme='{{theme}}' data-type='{{data_type}}'></div>
</template>

View File

@@ -0,0 +1,5 @@
// Simply 'inherites' rendered callback from AccountsTemplates
Template.atReCaptcha.rendered = AccountsTemplates.atReCaptchaRendered;
// Simply 'inherites' helpers from AccountsTemplates
Template.atReCaptcha.helpers(AccountsTemplates.atReCaptchaHelpers);

View File

@@ -0,0 +1,8 @@
<template name="atResendVerificationEmailLink">
<div class="at-resend-verification-email-link at-wrap" horizontal center-justified layout>
<p>
<a href="{{resendVerificationEmailLink}}" id="at-resend-verification-email" class="at-link at-resend-verification-email {{disabled}}">{{linkText}}</a>
{{suffText}}
</p>
</div>
</template>

View File

@@ -0,0 +1,5 @@
// Simply 'inherites' helpers from AccountsTemplates
Template.atResendVerificationEmailLink.helpers(AccountsTemplates.atResendVerificationEmailLinkHelpers);
// Simply 'inherites' events from AccountsTemplates
Template.atResendVerificationEmailLink.events(AccountsTemplates.atResendVerificationEmailLinkEvents);

View File

@@ -0,0 +1,5 @@
<template name="atResult">
<div class="at-result">
{{result}}
</div>
</template>

View File

@@ -0,0 +1,2 @@
// Simply 'inherites' helpers from AccountsTemplates
Template.atResult.helpers(AccountsTemplates.atResultHelpers);

View File

@@ -0,0 +1,5 @@
<template name="atSep">
<div class="at-sep" horizontal center-justified layout>
<strong>{{sepText}}</strong>
</div>
</template>

View File

@@ -0,0 +1,2 @@
// Simply 'inherites' helpers from AccountsTemplates
Template.atSep.helpers(AccountsTemplates.atSepHelpers);

View File

@@ -0,0 +1,9 @@
<template name="atSigninLink">
<div class="at-signin-link" horizontal center-justified layout>
<p>
{{preText}}
<a href="{{signInLink}}" id="at-signIn" class="at-link at-signin {{disabled}}">{{linkText}}</a>
{{suffText}}
</p>
</div>
</template>

View File

@@ -0,0 +1,5 @@
// Simply 'inherites' helpers from AccountsTemplates
Template.atSigninLink.helpers(AccountsTemplates.atSigninLinkHelpers);
// Simply 'inherites' events from AccountsTemplates
Template.atSigninLink.events(AccountsTemplates.atSigninLinkEvents);

View File

@@ -0,0 +1,9 @@
<template name="atSignupLink">
<div class="at-signup-link" horizontal center-justified layout>
<p>
{{preText}}
<a href="{{signUpLink}}" id="at-signUp" class="at-link at-signup {{disabled}}">{{linkText}}</a>
{{suffText}}
</p>
</div>
</template>

View File

@@ -0,0 +1,5 @@
// Simply 'inherites' helpers from AccountsTemplates
Template.atSignupLink.helpers(AccountsTemplates.atSignupLinkHelpers);
// Simply 'inherites' events from AccountsTemplates
Template.atSignupLink.events(AccountsTemplates.atSignupLinkEvents);

View File

@@ -0,0 +1,6 @@
<template name="atSocial">
<paper-button class="at-social-btn {{disabled}}" id="at-{{name}}" name="{{name}}" >
<core-icon icon="social:post-{{iconClass}}"></core-icon>
<span flex>{{buttonText}} </span>
</paper-button>
</template>

View File

@@ -0,0 +1,18 @@
// Simply 'inherites' helpers from AccountsTemplates
Template.atSocial.helpers(AccountsTemplates.atSocialHelpers);
// Simply 'inherites' events from AccountsTemplates
Template.atSocial.events(AccountsTemplates.atSocialEvents);
Template.atSocial.events({
'click paper-button': AccountsTemplates.atSocialEvents["click button"]
});
Template.atSocial.helpers({
iconClass: function() {
var classStr = this._id;
if (classStr[0] === "g" && classStr[1] === "o")
classStr = "gplus";
return classStr;
},
});

View File

@@ -0,0 +1,16 @@
<template name="atTermsLink">
<div class="at-terms-link at-wrap" horizontal center-justified layout>
<p>
{{text}}
{{#if privacyUrl}}
<a href="{{privacyUrl}}" class="{{disabled}}">{{privacyLinkText}}</a>
{{/if}}
{{#if showTermsAnd}}
{{and}}
{{/if}}
{{#if termsUrl}}
<a href="{{termsUrl}}" class="{{disabled}}">{{termsLinkText}}</a>
{{/if}}
</p>
</div>
</template>

View File

@@ -0,0 +1,5 @@
// Simply 'inherites' helpers from AccountsTemplates
Template.atTermsLink.helpers(AccountsTemplates.atTermsLinkHelpers);
// Simply 'inherites' events from AccountsTemplates
Template.atTermsLink.events(AccountsTemplates.atTermsLinkEvents);

View File

@@ -0,0 +1,5 @@
<template name="atTitle">
<div class="at-title" horizontal center-justified layout>
<h3>{{title}}</h3>
</div>
</template>

View File

@@ -0,0 +1,2 @@
// Simply 'inherites' helpers from AccountsTemplates
Template.atTitle.helpers(AccountsTemplates.atTitleHelpers);

View File

@@ -0,0 +1,7 @@
<template name="fullPageAtForm">
<div class="fullPageAtForm" vertical layout center>
{{> atForm}}
</div>
</template>

View File

@@ -0,0 +1,86 @@
Package.describe({
summary: 'Accounts Templates for polymer',
version: '1.12.3',
name: 'useraccounts:polymer',
git: 'https://github.com/meteor-useraccounts/polymer.git',
});
Package.on_use(function(api, where) {
api.versionsFrom('METEOR@1.0');
api.use([
'templating',
'underscore',
], 'client');
api.use([
'useraccounts:core',
], ['client', 'server']);
// Requires all routing packages loads before this asking for weak dependencies.
api.use('useraccounts:flow-routing@1.12.1', ['client', 'server'], {weak: true});
api.use('useraccounts:iron-routing@1.12.1', ['client', 'server'], {weak: true});
api.imply([
'useraccounts:core@1.12.3',
], ['client', 'server']);
api.add_files([
'lib/at_error.html',
'lib/at_error.js',
'lib/at_form.html',
'lib/at_form.js',
'lib/at_input.html',
'lib/at_input.js',
'lib/at_message.html',
'lib/at_message.js',
'lib/at_nav_button.html',
'lib/at_nav_button.js',
'lib/at_oauth.html',
'lib/at_oauth.js',
'lib/at_pwd_form.html',
'lib/at_pwd_form.js',
'lib/at_pwd_form_btn.html',
'lib/at_pwd_form_btn.js',
'lib/at_pwd_link.html',
'lib/at_pwd_link.js',
'lib/at_reCaptcha.html',
'lib/at_reCaptcha.js',
'lib/at_result.html',
'lib/at_result.js',
'lib/at_sep.html',
'lib/at_sep.js',
'lib/at_signin_link.html',
'lib/at_signin_link.js',
'lib/at_signup_link.html',
'lib/at_signup_link.js',
'lib/at_social.html',
'lib/at_social.js',
'lib/at_terms_link.html',
'lib/at_terms_link.js',
'lib/at_resend_verification_email_link.html',
'lib/at_resend_verification_email_link.js',
'lib/at_title.html',
'lib/at_title.js',
'lib/full_page_at_form.html',
'lib/at_polymer.css'
], ['client']);
});
Package.on_test(function(api) {
api.use([
'useraccounts:polymer',
'useraccounts:core@1.12.3',
]);
api.use([
'accounts-password',
'less',
'tinytest',
'test-helpers'
], ['client', 'server']);
api.add_files([
'tests/tests.js'
], ['client', 'server']);
});

View File

@@ -0,0 +1,2 @@
// TODO: write tests!!!

View File

@@ -260,3 +260,38 @@ ChangeLogs.insert({
"Improved loading times by vulcanizing polymer imports",
],
});
ChangeLogs.insert({
version: "0.7.1",
changes: [
"Fixed carry capacity effects not displaying correctly when not editing",
"Changed how columns are presented to fix a display issue introduced in Chrome 44",
],
});
ChangeLogs.insert({
version: "0.7.2",
changes: [
"Fixed spell attacks appearing on features page when the spell is not prepared",
],
});
ChangeLogs.insert({
version: "0.8.0",
changes: [
"Migrate to a new hosting provider. Server should now respond to interaction in milliseconds, rather than minutes",
"Redirected www.dicecloud.com to dicecloud.com",
"Fixed errors loggin in with Google",
],
});
ChangeLogs.insert({
version: "0.9.0",
changes: [
"Added fast render support, direct links to characters should load instantly",
"Added extra indexes to the database to improve performance",
"Added appcache support to improve load times on return visits",
],
});