Began migration to Vuetify 2.x expect a lot to be broken

This commit is contained in:
Stefan Zermatten
2021-03-24 16:23:39 +02:00
parent 82150df5e0
commit 6ffb48b7b6
204 changed files with 985 additions and 833 deletions

View File

@@ -4,7 +4,6 @@
# but you can also edit it by hand.
accounts-password@1.7.0
accounts-ui@1.3.2
random@1.2.0
dburles:collection-helpers
reactive-var@1.0.11
@@ -33,7 +32,6 @@ reactive-dict@1.3.0
percolate:synced-cron
ongoworks:speakingurl
service-configuration@1.0.11
google-config-ui@1.0.1
dynamic-import@0.6.0
ddp-rate-limiter@1.0.9
rate-limit@1.0.9
@@ -42,7 +40,7 @@ akryum:vue-router2
static-html
aldeed:collection2@3.0.0
aldeed:schema-index
akryum:vue-component
zer0th:meteor-vuetify-loader
accounts-patreon
bozhao:link-accounts
peerlibrary:reactive-publish
@@ -51,3 +49,5 @@ simple:rest-method-mixin
mikowals:batch-insert
peerlibrary:subscription-data
seba:minifiers-autoprefixer
akryum:vue-component
akryum:vue-sass

View File

@@ -3,13 +3,12 @@ accounts-google@1.3.3
accounts-oauth@1.2.0
accounts-password@1.7.0
accounts-patreon@0.1.0
accounts-ui@1.3.2
accounts-ui-unstyled@1.4.3
akryum:npm-check@0.1.2
akryum:vue-component@0.15.2
akryum:vue-component-dev-client@0.4.7
akryum:vue-component-dev-server@0.1.4
akryum:vue-router2@0.2.3
akryum:vue-sass@0.1.2
aldeed:collection2@3.2.1
aldeed:schema-index@3.0.0
allow-deny@1.1.0
@@ -18,7 +17,6 @@ babel-compiler@7.6.0
babel-runtime@1.5.0
base64@1.0.12
binary-heap@1.0.11
blaze@2.3.4
blaze-tools@1.0.10
boilerplate-generator@1.7.1
bozhao:link-accounts@2.3.2
@@ -48,7 +46,6 @@ email@2.0.0
es5-shim@4.8.0
fetch@0.1.1
geojson-utils@1.0.10
google-config-ui@1.0.1
google-oauth@1.3.0
hot-code-push@1.0.4
html-tools@1.0.11
@@ -58,7 +55,6 @@ id-map@1.1.0
inter-process-messaging@0.1.1
lai:collection-extensions@0.2.1_1
launch-screen@1.2.0
less@3.0.1
livedata@1.0.18
localstorage@1.2.0
logging@1.2.0
@@ -84,7 +80,6 @@ npm-bcrypt@0.9.3
npm-mongo@3.8.1
oauth@1.3.2
oauth2@1.3.0
observe-sequence@1.0.16
ongoworks:speakingurl@9.0.0
ordered-dict@1.1.0
patreon-oauth@0.1.0
@@ -118,15 +113,11 @@ simple:json-routes@2.1.0
simple:rest@1.1.1
simple:rest-method-mixin@1.0.1
socket-stream-client@0.3.1
spacebars@1.0.15
spacebars-compiler@1.1.3
srp@1.1.0
standard-minifier-js@2.6.0
static-html@1.2.2
templates:array@1.0.3
templating@1.3.2
templating-compiler@1.3.3
templating-runtime@1.3.2
templating-tools@1.1.2
tmeasday:check-npm-versions@0.3.2
tracker@1.2.0
@@ -134,3 +125,4 @@ underscore@1.0.10
url@1.3.1
webapp@1.10.0
webapp-hashing@1.1.0
zer0th:meteor-vuetify-loader@0.1.30

View File

@@ -18,7 +18,7 @@
</div>
</template>
<script>
<script lang="js">
import valueToCoins from '/imports/ui/utility/valueToCoins.js';
export default {

View File

@@ -89,7 +89,7 @@
</v-menu>
</template>
<script>
<script lang="js">
import isDarkColor from '/imports/ui/utility/isDarkColor.js';
import vuetifyColors from 'vuetify/es5/util/colors';
import { kebabToCamelCase, camelToKebabCase } from '/imports/ui/utility/swapCase.js';

View File

@@ -10,7 +10,7 @@
</div>
</template>
<script>
<script lang="js">
export default {
props: {
wideColumns: Boolean,

View File

@@ -30,7 +30,7 @@
</v-menu>
</template>
<script>
<script lang="js">
import IncrementMenu from '/imports/ui/components/IncrementMenu.vue';
export default {

View File

@@ -65,7 +65,7 @@
</v-layout>
</template>
<script>
<script lang="js">
export default {
inject: {
context: { default: {} }

View File

@@ -14,7 +14,7 @@
</v-btn>
</template>
<script>
<script lang="js">
/*
* Because speed dials only work well with v-btn's as children, this hacky
* component creates a v-btn with a label.

View File

@@ -6,7 +6,7 @@
/>
</template>
<script>
<script lang="js">
import marked from 'marked';
export default {

View File

@@ -23,7 +23,7 @@
</v-card>
</template>
<script>
<script lang="js">
import isDarkColor from '/imports/ui/utility/isDarkColor.js';
export default {
props: {

View File

@@ -1,6 +1,6 @@
<template lang="html">
<div
class="layout row"
class="layout"
style="height: 100%;"
>
<div
@@ -22,7 +22,7 @@
</div>
</template>
<script>
<script lang="js">
export default {
computed:{
computedTreeStyle(){

View File

@@ -4,7 +4,7 @@
/>
</template>
<script>
<script lang="js">
import MarkdownText from '/imports/ui/components/MarkdownText.vue';
import embedInlineCalculations from '/imports/api/creature/computation/afterComputation/embedInlineCalculations.js';

View File

@@ -29,7 +29,7 @@
</v-menu>
</template>
<script>
<script lang="js">
import SmartInput from '/imports/ui/components/global/SmartInputMixin.js';
import { format } from 'date-fns';

View File

@@ -8,7 +8,7 @@
style="overflow-y: auto;"
>
<template #activator="{ on }">
<div class="layout row align-center">
<div class="layout align-center">
<v-label>{{ label }}</v-label>
<v-btn
:loading="loading"
@@ -32,7 +32,7 @@
</template>
<v-card>
<v-card-text>
<div class="layout row">
<div class="layout">
<text-field
ref="iconSearchField"
label="Search icons"
@@ -78,7 +78,7 @@
</v-menu>
</template>
<script>
<script lang="js">
import SvgIcon from '/imports/ui/components/global/SvgIcon.vue';
import SmartInput from '/imports/ui/components/global/SmartInputMixin.js';
import { findIcons } from '/imports/api/icons/Icons.js';

View File

@@ -9,7 +9,7 @@
/>
</template>
<script>
<script lang="js">
import SmartInput from '/imports/ui/components/global/SmartInputMixin.js';
export default {

View File

@@ -19,7 +19,7 @@
</v-combobox>
</template>
<script>
<script lang="js">
import SmartInput from '/imports/ui/components/global/SmartInputMixin.js';
export default {

View File

@@ -18,7 +18,7 @@
</v-select>
</template>
<script>
<script lang="js">
import SmartInput from '/imports/ui/components/global/SmartInputMixin.js';
export default {

View File

@@ -9,7 +9,7 @@
/>
</template>
<script>
<script lang="js">
import SmartInput from '/imports/ui/components/global/SmartInputMixin.js';
export default {

View File

@@ -19,7 +19,7 @@
</i>
</template>
<script>
<script lang="js">
const SIZE_MAP = {
xSmall: '12px',
small: '16px',

View File

@@ -13,7 +13,7 @@
/>
</template>
<script>
<script lang="js">
import SmartInput from '/imports/ui/components/global/SmartInputMixin.js';
export default {

View File

@@ -14,7 +14,7 @@
/>
</template>
<script>
<script lang="js">
import SmartInput from '/imports/ui/components/global/SmartInputMixin.js';
export default {

View File

@@ -47,45 +47,45 @@
</v-btn>
</template>
<v-list>
<v-list-tile
<v-list-item
v-if="$listeners && $listeners.duplicate"
@click="$emit('duplicate')"
>
<v-list-tile-content>
<v-list-tile-title>
<v-list-item-content>
<v-list-item-title>
Duplicate
</v-list-tile-title>
</v-list-tile-content>
<v-list-tile-action>
</v-list-item-title>
</v-list-item-content>
<v-list-item-action>
<v-icon>file_copy</v-icon>
</v-list-tile-action>
</v-list-tile>
<v-list-tile
</v-list-item-action>
</v-list-item>
<v-list-item
v-if="$listeners && $listeners.move"
@click="$emit('move')"
>
<v-list-tile-content>
<v-list-tile-title>
<v-list-item-content>
<v-list-item-title>
Move
</v-list-tile-title>
</v-list-tile-content>
<v-list-tile-action>
</v-list-item-title>
</v-list-item-content>
<v-list-item-action>
<v-icon>send</v-icon>
</v-list-tile-action>
</v-list-tile>
<v-list-tile
</v-list-item-action>
</v-list-item>
<v-list-item
v-if="$listeners && $listeners.remove"
@click="$emit('remove')"
>
<v-list-tile-content>
<v-list-tile-title>
<v-list-item-content>
<v-list-item-title>
Delete
</v-list-tile-title>
</v-list-tile-content>
<v-list-tile-action>
</v-list-item-title>
</v-list-item-content>
<v-list-item-action>
<v-icon>delete</v-icon>
</v-list-tile-action>
</v-list-tile>
</v-list-item-action>
</v-list-item>
</v-list>
</v-menu>
</v-layout>
@@ -118,7 +118,7 @@
</v-toolbar>
</template>
<script>
<script lang="js">
import isDarkColor from '/imports/ui/utility/isDarkColor.js';
import PropertyIcon from '/imports/ui/properties/shared/PropertyIcon.vue';
import { getPropertyName } from '/imports/constants/PROPERTIES.js';

View File

@@ -2,15 +2,15 @@
<v-card>
<template v-if="!result">
<v-btn-toggle v-model="advantage">
<v-btn flat>
<v-btn text>
Advantage
</v-btn>
<v-btn flat>
<v-btn text>
Disadvantage
</v-btn>
</v-btn-toggle>
<v-card-text>
<div class="layout row justify-center align-center">
<div class="layout justify-center align-center">
<v-btn
large
fab
@@ -47,7 +47,7 @@
</v-card>
</template>
<script>
<script lang="js">
import numberToSignedString from '/imports/ui/utility/numberToSignedString.js';
export default {
props: {

View File

@@ -28,7 +28,7 @@
</v-snackbar>
</template>
<script>
<script lang="js">
export default {
computed: {
snackbar(){

View File

@@ -5,7 +5,7 @@
:data-id="`tree-node-${node._id}`"
>
<div
class="layout row align-center justify-start tree-node-title"
class="layout align-center justify-start tree-node-title"
style="cursor: pointer;"
:class="selected && 'primary--text'"
@click.stop="$emit('selected', node._id)"
@@ -22,7 +22,7 @@
</v-icon>
</v-btn>
<div
class="layout row align-center justify-start pr-1"
class="layout align-center justify-start pr-1"
style="flex-grow: 0;"
>
<v-icon
@@ -70,7 +70,7 @@
</v-sheet>
</template>
<script>
<script lang="js">
/**
* TreeNode's are list item views of character properties. Every property which
* can belong to the character is shown in the tree view of the character

View File

@@ -30,7 +30,7 @@
</draggable>
</template>
<script>
<script lang="js">
import draggable from 'vuedraggable';
import TreeNode from '/imports/ui/components/tree/TreeNode.vue';
import { isParentAllowed } from '/imports/api/parenting/parenting.js';

View File

@@ -82,7 +82,7 @@
</div>
</template>
<script>
<script lang="js">
import FormSection, {FormSections} from '/imports/ui/properties/forms/shared/FormSection.vue';
export default {

View File

@@ -28,7 +28,7 @@
</dialog-base>
</template>
<script>
<script lang="js">
import Creatures from '/imports/api/creature/Creatures.js';
import {updateCreature} from '/imports/api/creature/Creatures.js';
import DialogBase from '/imports/ui/dialogStack/DialogBase.vue';

View File

@@ -2,8 +2,8 @@
lang="html"
functional
>
<v-list-tile v-bind="$attrs">
<v-list-tile-avatar :color="model.color || 'grey'">
<v-list-item v-bind="$attrs">
<v-list-item-avatar :color="model.color || 'grey'">
<img
v-if="model.avatarPicture"
:src="model.avatarPicture"
@@ -12,22 +12,22 @@
<template v-else>
{{ model.initial }}
</template>
</v-list-tile-avatar>
<v-list-tile-content>
<v-list-tile-title>
</v-list-item-avatar>
<v-list-item-content>
<v-list-item-title>
{{ model.name }}
</v-list-tile-title>
<v-list-tile-sub-title>
</v-list-item-title>
<v-list-item-subtitle>
{{ model.alignment }} {{ model.gender }} {{ model.race }}
</v-list-tile-sub-title>
</v-list-tile-content>
<v-list-tile-action v-if="selection">
</v-list-item-subtitle>
</v-list-item-content>
<v-list-item-action v-if="selection">
<v-checkbox
:input-value="selected && selected.has(model._id)"
@change="$emit('select')"
/>
</v-list-tile-action>
</v-list-tile>
</v-list-item-action>
</v-list-item>
</template>
<script type="text/javascript">

View File

@@ -13,7 +13,7 @@
</v-btn>
</template>
<script>
<script lang="js">
import restCreature from '/imports/api/creature/restCreature.js';
export default {

View File

@@ -262,7 +262,7 @@
</dialog-base>
</template>
<script>
<script lang="js">
import DialogBase from '/imports/ui/dialogStack/DialogBase.vue';
const getCost = function(score){
const costs = {

View File

@@ -30,7 +30,7 @@
</dialog-base>
</template>
<script>
<script lang="js">
import Creatures from '/imports/api/creature/Creatures.js';
import DialogBase from '/imports/ui/dialogStack/DialogBase.vue';
import removeCreature from '/imports/api/creature/removeCreature.js';

View File

@@ -65,7 +65,7 @@
</div>
</template>
<script>
<script lang="js">
//TODO add a "no character found" screen if shown on a false address
// or on a character the user does not have permission to view
import Creatures from '/imports/api/creature/Creatures.js';

View File

@@ -30,7 +30,7 @@
</v-speed-dial>
</template>
<script>
<script lang="js">
import LabeledFab from '/imports/ui/components/LabeledFab.vue';
import { setDocToLastOrder } from '/imports/api/parenting/order.js';
import insertProperty from '/imports/api/creature/creatureProperties/methods/insertProperty.js';

View File

@@ -9,7 +9,7 @@
</v-navigation-drawer>
</template>
<script>
<script lang="js">
import CharacterLog from '/imports/ui/log/CharacterLog.vue';
export default {
components: {

View File

@@ -40,28 +40,28 @@
</v-btn>
</template>
<v-list v-if="editPermission">
<v-list-tile @click="deleteCharacter">
<v-list-tile-title>
<v-list-item @click="deleteCharacter">
<v-list-item-title>
<v-icon>delete</v-icon> Delete
</v-list-tile-title>
</v-list-tile>
<v-list-tile @click="showCharacterForm">
<v-list-tile-title>
</v-list-item-title>
</v-list-item>
<v-list-item @click="showCharacterForm">
<v-list-item-title>
<v-icon>create</v-icon> Edit details
</v-list-tile-title>
</v-list-tile>
<v-list-tile @click="showShareDialog">
<v-list-tile-title>
</v-list-item-title>
</v-list-item>
<v-list-item @click="showShareDialog">
<v-list-item-title>
<v-icon>share</v-icon> Sharing
</v-list-tile-title>
</v-list-tile>
</v-list-item-title>
</v-list-item>
</v-list>
<v-list v-else>
<v-list-tile @click="unshareWithMe">
<v-list-tile-title>
<v-list-item @click="unshareWithMe">
<v-list-item-title>
<v-icon>delete</v-icon> Unshare with me
</v-list-tile-title>
</v-list-tile>
</v-list-item-title>
</v-list-item>
</v-list>
</v-menu>
<v-toolbar-side-icon @click="toggleRightDrawer" />
@@ -74,7 +74,7 @@
>
<div
:key="$route.meta.title"
class="layout row"
class="layout"
>
<v-tabs
v-if="creature"
@@ -118,11 +118,10 @@
</v-toolbar>
</template>
<script>
<script lang="js">
import Creatures from '/imports/api/creature/Creatures.js';
import removeCreature from '/imports/api/creature/removeCreature.js';
import { mapMutations } from 'vuex';
import { theme } from '/imports/ui/theme.js';
import { assertEditPermission } from '/imports/api/creature/creaturePermissions.js';
import { updateUserSharePermissions } from '/imports/api/sharing/sharing.js';
import isDarkColor from '/imports/ui/utility/isDarkColor.js';
@@ -135,9 +134,6 @@ export default {
components: {
CharacterSheetFab,
},
data(){return {
theme,
}},
computed: {
creatureId(){
return this.$route.params.id;

View File

@@ -2,7 +2,7 @@
<div class="mini-character-sheet" />
</template>
<script>
<script lang="js">
export default {
}
</script>

View File

@@ -42,17 +42,17 @@
Level {{ creature.variables.level.value }}
</v-card-title>
<v-list two-line>
<v-list-tile>
<v-list-tile-content>
<v-list-tile-title
<v-list-item>
<v-list-item-content>
<v-list-item-title
v-if="
creature.variables.milestoneLevels &&
creature.variables.milestoneLevels.value
"
>
{{ creature.variables.milestoneLevels.value }} Milestone levels
</v-list-tile-title>
<v-list-tile-title
</v-list-item-title>
<v-list-item-title
v-if="
!(creature.variables.milestoneLevels &&
creature.variables.milestoneLevels.value) ||
@@ -65,9 +65,9 @@
creature.variables.xp.value ||
0
}} XP
</v-list-tile-title>
</v-list-tile-content>
<v-list-tile-action>
</v-list-item-title>
</v-list-item-content>
<v-list-item-action>
<v-btn
flat
icon
@@ -76,8 +76,8 @@
>
<v-icon>info</v-icon>
</v-btn>
</v-list-tile-action>
<v-list-tile-action>
</v-list-item-action>
<v-list-item-action>
<v-btn
flat
icon
@@ -86,21 +86,21 @@
>
<v-icon>add</v-icon>
</v-btn>
</v-list-tile-action>
</v-list-tile>
<v-list-tile
</v-list-item-action>
</v-list-item>
<v-list-item
v-for="classLevel in highestClassLevels"
:key="classLevel._id"
>
<v-list-tile-content>
<v-list-tile-title>
<v-list-item-content>
<v-list-item-title>
{{ classLevel.name }}
</v-list-tile-title>
</v-list-tile-content>
<v-list-tile-avatar>
</v-list-item-title>
</v-list-item-content>
<v-list-item-avatar>
{{ classLevel.level }}
</v-list-tile-avatar>
</v-list-tile>
</v-list-item-avatar>
</v-list-item>
</v-list>
</v-card>
</div>
@@ -116,7 +116,7 @@
</div>
</template>
<script>
<script lang="js">
import Creatures from '/imports/api/creature/Creatures.js';
import CreatureProperties from '/imports/api/creature/creatureProperties/CreatureProperties.js';
import ColumnLayout from '/imports/ui/components/ColumnLayout.vue';

View File

@@ -15,7 +15,7 @@
</div>
</template>
<script>
<script lang="js">
import CreatureProperties from '/imports/api/creature/creatureProperties/CreatureProperties.js';
import ColumnLayout from '/imports/ui/components/ColumnLayout.vue';
import FeatureCard from '/imports/ui/properties/components/features/FeatureCard.vue';

View File

@@ -4,53 +4,53 @@
<div>
<v-card>
<v-list>
<v-list-tile>
<v-list-tile-avatar>
<v-list-item>
<v-list-item-avatar>
<v-icon>$vuetify.icons.injustice</v-icon>
</v-list-tile-avatar>
<v-list-tile-content>
<v-list-tile-title>
</v-list-item-avatar>
<v-list-item-content>
<v-list-item-title>
Weight Carried
</v-list-tile-title>
</v-list-tile-content>
<v-list-tile-action>
<v-list-tile-title>
</v-list-item-title>
</v-list-item-content>
<v-list-item-action>
<v-list-item-title>
{{ creature.denormalizedStats.weightCarried || 0 }} lb
</v-list-tile-title>
</v-list-tile-action>
</v-list-tile>
<v-list-tile>
<v-list-tile-avatar>
</v-list-item-title>
</v-list-item-action>
</v-list-item>
<v-list-item>
<v-list-item-avatar>
<v-icon>$vuetify.icons.cash</v-icon>
</v-list-tile-avatar>
<v-list-tile-content>
<v-list-tile-title>
</v-list-item-avatar>
<v-list-item-content>
<v-list-item-title>
Net worth
</v-list-tile-title>
</v-list-tile-content>
<v-list-tile-action>
<v-list-tile-title>
</v-list-item-title>
</v-list-item-content>
<v-list-item-action>
<v-list-item-title>
<coin-value
:value="creature.denormalizedStats.valueTotal || 0"
/>
</v-list-tile-title>
</v-list-tile-action>
</v-list-tile>
<v-list-tile v-if="creature.denormalizedStats.itemsAttuned">
<v-list-tile-avatar>
</v-list-item-title>
</v-list-item-action>
</v-list-item>
<v-list-item v-if="creature.denormalizedStats.itemsAttuned">
<v-list-item-avatar>
<v-icon>$vuetify.icons.spell</v-icon>
</v-list-tile-avatar>
<v-list-tile-content>
<v-list-tile-title>
</v-list-item-avatar>
<v-list-item-content>
<v-list-item-title>
Items attuned
</v-list-tile-title>
</v-list-tile-content>
<v-list-tile-action>
<v-list-tile-title>
</v-list-item-title>
</v-list-item-content>
<v-list-item-action>
<v-list-item-title>
{{ creature.denormalizedStats.itemsAttuned }}
</v-list-tile-title>
</v-list-tile-action>
</v-list-tile>
</v-list-item-title>
</v-list-item-action>
</v-list-item>
</v-list>
</v-card>
</div>
@@ -97,7 +97,7 @@
</div>
</template>
<script>
<script lang="js">
import CreatureProperties from '/imports/api/creature/creatureProperties/CreatureProperties.js';
import Creatures from '/imports/api/creature/Creatures.js';
import ColumnLayout from '/imports/ui/components/ColumnLayout.vue';

View File

@@ -22,7 +22,7 @@
</div>
</template>
<script>
<script lang="js">
import ColumnLayout from '/imports/ui/components/ColumnLayout.vue';
import CreatureProperties from '/imports/api/creature/creatureProperties/CreatureProperties.js';
import SpellListCard from '/imports/ui/properties/components/spells/SpellListCard.vue';

View File

@@ -27,18 +27,18 @@
<v-card>
<v-list>
<v-subheader>Buffs and conditions</v-subheader>
<v-list-tile
<v-list-item
v-for="buff in appliedBuffs"
:key="buff._id"
:data-id="buff._id"
@click="clickProperty({_id: buff._id})"
>
<v-list-tile-content>
<v-list-tile-title>
<v-list-item-content>
<v-list-item-title>
{{ buff.name }}
</v-list-tile-title>
</v-list-tile-content>
<v-list-tile-action>
</v-list-item-title>
</v-list-item-content>
<v-list-item-action>
<v-btn
icon
flat
@@ -46,8 +46,8 @@
>
<v-icon>delete</v-icon>
</v-btn>
</v-list-tile-action>
</v-list-tile>
</v-list-item-action>
</v-list-item>
</v-list>
</v-card>
</div>
@@ -318,7 +318,7 @@
</div>
</template>
<script>
<script lang="js">
import Creatures from '/imports/api/creature/Creatures.js';
import softRemoveProperty from '/imports/api/creature/creatureProperties/methods/softRemoveProperty.js';
import damageProperty from '/imports/api/creature/creatureProperties/methods/damageProperty.js';

View File

@@ -89,7 +89,7 @@
</div>
</template>
<script>
<script lang="js">
import TreeDetailLayout from '/imports/ui/components/TreeDetailLayout.vue';
import CreaturePropertiesTree from '/imports/ui/creature/creatureProperties/CreaturePropertiesTree.vue';
import CreaturePropertyDialog from '/imports/ui/creature/creatureProperties/CreaturePropertyDialog.vue';

View File

@@ -11,7 +11,7 @@
/>
</template>
<script>
<script lang="js">
import CreatureProperties from '/imports/api/creature/creatureProperties/CreatureProperties.js';
import { nodesToTree } from '/imports/api/parenting/parenting.js'
import TreeNodeList from '/imports/ui/components/tree/TreeNodeList.vue';

View File

@@ -11,7 +11,7 @@
</selectable-property-dialog>
</template>
<script>
<script lang="js">
import SelectablePropertyDialog from '/imports/ui/properties/shared/SelectablePropertyDialog.vue';
import CreaturePropertyInsertForm from '/imports/ui/creature/creatureProperties/CreaturePropertyInsertForm.vue';
import { getPropertyName } from '/imports/constants/PROPERTIES.js';

View File

@@ -46,7 +46,7 @@
<div
v-if="!embedded"
slot="actions"
class="layout row justify-end"
class="layout justify-end"
>
<v-btn
flat
@@ -58,7 +58,7 @@
</dialog-base>
</template>
<script>
<script lang="js">
import CreatureProperties from '/imports/api/creature/creatureProperties/CreatureProperties.js';
import damageProperty from '/imports/api/creature/creatureProperties/methods/damageProperty.js';
import pushToProperty from '/imports/api/creature/creatureProperties/methods/pushToProperty.js';

View File

@@ -22,7 +22,7 @@
</dialog-base>
</template>
<script>
<script lang="js">
import DialogBase from '/imports/ui/dialogStack/DialogBase.vue';
import LibraryAndNode from '/imports/ui/library/LibraryAndNode.vue';
export default {

View File

@@ -25,7 +25,7 @@
/>
<div
slot="actions"
class="layout row justify-end"
class="layout justify-end"
>
<v-btn
flat
@@ -38,7 +38,7 @@
</dialog-base>
</template>
<script>
<script lang="js">
import propertySchemasIndex from '/imports/api/properties/propertySchemasIndex.js';
import DialogBase from '/imports/ui/dialogStack/DialogBase.vue';
import propertyFormIndex from '/imports/ui/properties/forms/shared/propertyFormIndex.js';

View File

@@ -37,7 +37,7 @@
</div>
</template>
<script>
<script lang="js">
import propertyFormMixin from '/imports/ui/properties/forms/shared/propertyFormMixin.js';
export default {

View File

@@ -13,7 +13,7 @@
/>
<div
slot="actions"
class="layout row justify-end"
class="layout justify-end"
>
<v-btn
flat
@@ -26,7 +26,7 @@
</dialog-base>
</template>
<script>
<script lang="js">
import DialogBase from '/imports/ui/dialogStack/DialogBase.vue';
import ExperienceForm from '/imports/ui/creature/experiences/ExperienceForm.vue';
import { ExperienceSchema, insertExperience } from '/imports/api/creature/experience/Experiences.js';

View File

@@ -46,32 +46,32 @@
group
mode="out"
>
<v-list-tile
<v-list-item
v-for="experience in experiences"
:key="experience._id"
:data-id="experience._id"
>
<v-list-tile-action class="mr-3">
<v-list-tile-action-text>
<v-list-item-action class="mr-3">
<v-list-item-action-text>
{{ formatDate(experience.date) }}
</v-list-tile-action-text>
</v-list-tile-action>
<v-list-tile-content>
</v-list-item-action-text>
</v-list-item-action>
<v-list-item-content>
<template v-if="experience.name">
<v-list-tile-title>
<v-list-item-title>
{{ experience.name }}
</v-list-tile-title>
<v-list-tile-sub-title>
</v-list-item-title>
<v-list-item-subtitle>
{{ xpText(experience) }}
</v-list-tile-sub-title>
</v-list-item-subtitle>
</template>
<template v-else>
<v-list-tile-title>
<v-list-item-title>
{{ xpText(experience) }}
</v-list-tile-title>
</v-list-item-title>
</template>
</v-list-tile-content>
<v-list-tile-action>
</v-list-item-content>
<v-list-item-action>
<v-btn
icon
flat
@@ -80,14 +80,14 @@
>
<v-icon>delete</v-icon>
</v-btn>
</v-list-tile-action>
</v-list-tile>
</v-list-item-action>
</v-list-item>
</v-slide-x-transition>
</v-list>
</dialog-base>
</template>
<script>
<script lang="js">
import { format } from 'date-fns';
import DialogBase from '/imports/ui/dialogStack/DialogBase.vue';
import Experiences, { removeExperience, recomputeExperiences } from '/imports/api/creature/experience/Experiences.js';

View File

@@ -10,7 +10,7 @@
</dialog-base>
</template>
<script>
<script lang="js">
import Creatures from '/imports/api/creature/Creatures.js';
import DialogBase from '/imports/ui/dialogStack/DialogBase.vue';
import Slots from '/imports/ui/creature/slots/Slots.vue'

View File

@@ -24,7 +24,7 @@
<v-fade-transition mode="out-in">
<div v-if="libraryNodes && libraryNodes.length">
<section
class="layout row wrap justify-between"
class="layout wrap justify-between"
>
<v-card
v-for="node in libraryNodes"
@@ -63,7 +63,7 @@
</v-card-text>
</v-card>
</section>
<div class="layout row justify-center align-stretch">
<div class="layout justify-center align-stretch">
<v-btn
v-if="currentLimit < countAll"
:loading="!$subReady.slotFillers"
@@ -137,7 +137,7 @@
</dialog-base>
</template>
<script>
<script lang="js">
import Creatures from '/imports/api/creature/Creatures.js';
import CreatureProperties from '/imports/api/creature/creatureProperties/CreatureProperties.js';
import LibraryNodes from '/imports/api/library/LibraryNodes.js';

View File

@@ -5,7 +5,7 @@
:key="slot._id"
class="slot"
>
<h3 class="layout row align-center">
<h3 class="layout align-center">
{{ slot.name }}
<v-spacer />
<span v-if="slot.quantityExpectedResult > 1">
@@ -13,19 +13,19 @@
</span>
</h3>
<v-list v-if="slot.children.length">
<v-list-tile
<v-list-item
v-for="child in slot.children"
:key="child._id"
:data-id="`slot-child-${child._id}`"
@click="clickSlotChild(child)"
>
<v-list-tile-content>
<v-list-item-content>
<tree-node-view
class="slotChild"
:model="child"
/>
</v-list-tile-content>
<v-list-tile-action>
</v-list-item-content>
<v-list-item-action>
<v-btn
icon
flat
@@ -34,8 +34,8 @@
>
<v-icon>delete</v-icon>
</v-btn>
</v-list-tile-action>
</v-list-tile>
</v-list-item-action>
</v-list-item>
</v-list>
<v-btn
v-if="!slot.quantityExpectedResult || slot.spaceLeft"
@@ -51,7 +51,7 @@
</div>
</template>
<script>
<script lang="js">
import CreatureProperties from '/imports/api/creature/creatureProperties/CreatureProperties.js';
import TreeNodeView from '/imports/ui/properties/treeNodeViews/TreeNodeView.vue';
import softRemoveProperty from '/imports/api/creature/creatureProperties/methods/softRemoveProperty.js';

View File

@@ -11,7 +11,7 @@
v-if="name"
v-model="inputName"
/>
<div class="layout row justify-center">
<div class="layout justify-center">
<v-btn
v-show="nameMatch"
class="primary"
@@ -32,7 +32,7 @@
</dialog-base>
</template>
<script>
<script lang="js">
import DialogBase from '/imports/ui/dialogStack/DialogBase.vue';
export default {

View File

@@ -44,7 +44,7 @@
</v-layout>
</template>
<script>
<script lang="js">
import isDarkColor from '/imports/ui/utility/isDarkColor.js';
export default {

View File

@@ -41,16 +41,20 @@
</v-layout>
</template>
<script>
<script lang="js">
import '/imports/ui/dialogStack/dialogStackWindowEvents.js';
import mockElement from '/imports/ui/dialogStack/mockElement.js';
import DialogComponentIndex from '/imports/ui/dialogStack/DialogComponentIndex.js';
import { VLayout } from 'vuetify/lib'
const OFFSET = 16;
const MOCK_DURATION = 400; // Keep in sync with css transition of .dialog
export default {
components: DialogComponentIndex,
components: {
VLayout,
...DialogComponentIndex,
},
computed: {
dialogs(){
return this.$store.state.dialogStack.dialogs;

View File

@@ -29,7 +29,7 @@
</div>
</template>
<script>
<script lang="js">
import functions from '/imports/parser/functions.js';
export default {
computed:{

View File

@@ -26,7 +26,7 @@
</div>
</template>
<script>
<script lang="js">
import {importIcons, importIconMetadata} from '/imports/ui/icons/importIcons.js';
import IconPicker from '/imports/ui/components/global/IconPicker.vue';
import UploadButton from 'vuetify-upload-button';

View File

@@ -4,7 +4,7 @@
/>
</template>
<script>
<script lang="js">
import SvgIcon from '/imports/ui/components/global/SvgIcon.vue'
import SVG_ICONS from '/imports/constants/SVG_ICONS.js';

View File

@@ -12,7 +12,7 @@
<router-view
name="toolbar"
/>
<v-toolbar
<v-app-bar
v-if="!$route.matched[0] || !$route.matched[0].components.toolbar"
app
color="secondary"
@@ -20,7 +20,7 @@
tabs
dense
>
<v-toolbar-side-icon @click="toggleDrawer" />
<v-app-bar-nav-icon @click="toggleDrawer" />
<v-toolbar-title>
<v-fade-transition
mode="out-in"
@@ -53,14 +53,14 @@
/>
</div>
</v-fade-transition>
</v-toolbar>
<v-content>
</v-app-bar>
<v-main>
<v-fade-transition
mode="out-in"
>
<router-view />
</v-fade-transition>
</v-content>
</v-main>
<router-view
name="rightDrawer"
/>
@@ -69,11 +69,10 @@
</v-app>
</template>
<script>
<script lang="js">
import '/imports/api/users/Users.js';
import Sidebar from '/imports/ui/layouts/Sidebar.vue';
import DialogStack from '/imports/ui/dialogStack/DialogStack.vue';
import { theme, darkTheme } from '/imports/ui/theme.js';
import { mapMutations } from 'vuex';
import Snackbars from '/imports/ui/components/snackbars/Snackbars.vue';
@@ -107,10 +106,7 @@
darkMode: {
immediate: true,
handler(newDarkModeValue){
let newTheme = newDarkModeValue ? darkTheme : theme;
for (let key in newTheme){
this.$vuetify.theme[key] = newTheme[key];
}
this.$vuetify.theme.dark = newDarkModeValue;
},
},
'$route' (to) {

View File

@@ -2,7 +2,6 @@
<div class="sidebar">
<v-layout
v-if="!signedIn"
row
justify-center
>
<v-btn
@@ -13,51 +12,54 @@
</v-btn>
</v-layout>
<v-list>
<v-list-tile v-if="signedIn">
<v-list-tile-content>
<v-list-tile-title>
<v-list-item v-if="signedIn">
<v-list-item-content>
<v-list-item-title>
{{ userName }}
</v-list-tile-title>
</v-list-tile-content>
<v-list-tile-action>
</v-list-item-title>
</v-list-item-content>
<v-list-item-action>
<v-tooltip bottom>
<v-btn
slot="activator"
flat
icon
to="/account"
<template
#activator="{ on }"
>
<v-icon>settings</v-icon>
</v-btn>
<v-btn
icon
to="/account"
v-on="on"
>
<v-icon>settings</v-icon>
</v-btn>
</template>
<span>Account Settings</span>
</v-tooltip>
</v-list-tile-action>
</v-list-tile>
</v-list-item-action>
</v-list-item>
<v-list-tile
<v-list-item
v-for="(link, i) in links"
:key="i"
:to="link.to"
:href="link.href"
>
<v-list-tile-action>
<v-list-item-action>
<v-icon>{{ link.icon }}</v-icon>
</v-list-tile-action>
<v-list-tile-title>
</v-list-item-action>
<v-list-item-title>
{{ link.title }}
</v-list-tile-title>
</v-list-tile>
</v-list-item-title>
</v-list-item>
<v-divider />
</v-list>
<v-list
avatar
>
<v-list-tile
<v-list-item
v-for="character in CreaturesWithNoParty"
:key="character._id"
:to="character.url"
>
<v-list-tile-avatar :color="character.color || 'grey'">
<v-list-item-avatar :color="character.color || 'grey'">
<img
v-if="character.avatarPicture"
:src="character.avatarPicture"
@@ -66,26 +68,26 @@
<template v-else>
{{ character.initial }}
</template>
</v-list-tile-avatar>
<v-list-tile-title>
</v-list-item-avatar>
<v-list-item-title>
{{ character.name }}
</v-list-tile-title>
</v-list-tile>
</v-list-item-title>
</v-list-item>
<v-list-group
v-for="party in parties"
:key="party._id"
>
<v-list-tile slot="activator">
<v-list-tile-title>
<v-list-item slot="activator">
<v-list-item-title>
{{ party.name }}
</v-list-tile-title>
</v-list-tile>
<v-list-tile
</v-list-item-title>
</v-list-item>
<v-list-item
v-for="character in characterDocs"
:key="character._id"
:to="character.url"
>
<v-list-tile-avatar :color="character.color || 'grey'">
<v-list-item-avatar :color="character.color || 'grey'">
<img
v-if="character.avatarPicture"
:src="character.avatarPicture"
@@ -94,17 +96,17 @@
<template v-else>
{{ character.initial }}
</template>
</v-list-tile-avatar>
<v-list-tile-title>
</v-list-item-avatar>
<v-list-item-title>
{{ character.name }}
</v-list-tile-title>
</v-list-tile>
</v-list-item-title>
</v-list-item>
</v-list-group>
</v-list>
</div>
</template>
<script>
<script lang="js">
import Creatures from '/imports/api/creature/Creatures.js';
import Parties from '/imports/api/creature/Parties.js';

View File

@@ -61,7 +61,7 @@
</tree-detail-layout>
</template>
<script>
<script lang="js">
import TreeDetailLayout from '/imports/ui/components/TreeDetailLayout.vue';
import LibraryBrowser from '/imports/ui/library/LibraryBrowser.vue';
import LibraryNodeDialog from '/imports/ui/library/LibraryNodeDialog.vue';

View File

@@ -70,7 +70,7 @@
</div>
</template>
<script>
<script lang="js">
import LibraryContentsContainer from '/imports/ui/library/LibraryContentsContainer.vue';
import { setDocToLastOrder } from '/imports/api/parenting/order.js';
import LibraryNodes, { insertNode } from '/imports/api/library/LibraryNodes.js';

View File

@@ -27,7 +27,7 @@
</v-fade-transition>
</template>
<script>
<script lang="js">
import Libraries from '/imports/api/library/Libraries.js';
import LibraryNodes from '/imports/api/library/LibraryNodes.js';
import { nodesToTree } from '/imports/api/parenting/parenting.js'

View File

@@ -26,7 +26,7 @@
</dialog-base>
</template>
<script>
<script lang="js">
import DialogBase from '/imports/ui/dialogStack/DialogBase.vue';
export default {

View File

@@ -42,7 +42,7 @@
</dialog-base>
</template>
<script>
<script lang="js">
import DialogBase from '/imports/ui/dialogStack/DialogBase.vue';
import Libraries, { updateLibraryName, removeLibrary } from '/imports/api/library/Libraries.js';

View File

@@ -8,7 +8,7 @@
</selectable-property-dialog>
</template>
<script>
<script lang="js">
import SelectablePropertyDialog from '/imports/ui/properties/shared/SelectablePropertyDialog.vue';
import LibraryNodeInsertForm from '/imports/ui/library/LibraryNodeInsertForm.vue';
import { getPropertyName } from '/imports/constants/PROPERTIES.js';

View File

@@ -39,7 +39,7 @@
<div
v-if="!embedded"
slot="actions"
class="layout row justify-end"
class="layout justify-end"
>
<template v-if="selection">
<v-btn
@@ -67,7 +67,7 @@
</dialog-base>
</template>
<script>
<script lang="js">
import LibraryNodes, {
duplicateNode,
updateLibraryNode,

View File

@@ -25,7 +25,7 @@
/>
<div
slot="actions"
class="layout row justify-end"
class="layout justify-end"
>
<v-btn
flat
@@ -38,7 +38,7 @@
</dialog-base>
</template>
<script>
<script lang="js">
import DialogBase from '/imports/ui/dialogStack/DialogBase.vue';
import propertyFormIndex from '/imports/ui/properties/forms/shared/propertyFormIndex.js';
import schemaFormMixin from '/imports/ui/properties/forms/shared/schemaFormMixin.js';

View File

@@ -22,7 +22,7 @@
</dialog-base>
</template>
<script>
<script lang="js">
import DialogBase from '/imports/ui/dialogStack/DialogBase.vue';
import LibraryAndNode from '/imports/ui/library/LibraryAndNode.vue';
export default {

View File

@@ -43,7 +43,7 @@
</v-toolbar>
</template>
<script>
<script lang="js">
import Libraries from '/imports/api/library/Libraries.js';
import { assertDocEditPermission } from '/imports/api/sharing/sharingPermissions.js';
import { mapMutations } from 'vuex';

View File

@@ -32,7 +32,7 @@
</div>
</template>
<script>
<script lang="js">
import CreatureLogs, { logRoll } from '/imports/api/creature/log/CreatureLogs.js';
import Creatures from '/imports/api/creature/Creatures.js';
import { assertEditPermission } from '/imports/api/creature/creaturePermissions.js';

View File

@@ -36,7 +36,7 @@
</v-card>
</template>
<script>
<script lang="js">
import MarkdownText from '/imports/ui/components/MarkdownText.vue';
export default {

View File

@@ -42,29 +42,29 @@
two-line
style="background: inherit;"
>
<v-list-tile
<v-list-item
v-for="paragon in paragons"
:key="paragon.name"
>
<v-list-tile-avatar>
<v-list-item-avatar>
<v-img :src="`/images/paragons/${paragon.avatar}.png`" />
</v-list-tile-avatar>
<v-list-tile-content>
<v-list-tile-title>
</v-list-item-avatar>
<v-list-item-content>
<v-list-item-title>
{{ paragon.name }}
</v-list-tile-title>
<v-list-tile-sub-title>
</v-list-item-title>
<v-list-item-subtitle>
{{ paragon.title }}
</v-list-tile-sub-title>
</v-list-tile-content>
</v-list-tile>
</v-list-item-subtitle>
</v-list-item-content>
</v-list-item>
</v-list>
</div>
</section>
</div>
</template>
<script>
<script lang="js">
export default {
data(){ return {
paragons:[{

View File

@@ -1,5 +1,5 @@
<template>
<div class="layout row justify-center">
<div class="layout justify-center">
<v-card
class="ma-4 pa-2"
style="flex-basis: 900px"
@@ -8,14 +8,14 @@
<v-subheader>
Preferences
</v-subheader>
<v-list-tile>
<v-list-item>
<smart-switch
:value="darkMode"
label="Dark mode"
@change="setDarkMode"
/>
</v-list-tile>
<v-list-tile>
</v-list-item>
<v-list-item>
<smart-switch
label="Swap ability scores and modifiers"
:value="
@@ -25,13 +25,13 @@
"
@change="swapAbilityScoresAndModifiers"
/>
</v-list-tile>
</v-list-item>
<v-subheader>
Username
</v-subheader>
<v-list-tile data-id="username">
<v-list-tile-action>
<v-list-item data-id="username">
<v-list-item-action>
<v-tooltip right>
<span>Change Username</span>
<v-btn
@@ -43,28 +43,28 @@
<v-icon>create</v-icon>
</v-btn>
</v-tooltip>
</v-list-tile-action>
<v-list-tile-title>
</v-list-item-action>
<v-list-item-title>
{{ user && user.username }}
</v-list-tile-title>
</v-list-tile>
</v-list-item-title>
</v-list-item>
<v-subheader>
Email
</v-subheader>
<v-list-tile
<v-list-item
v-for="email in emails"
:key="email.address"
>
<v-list-tile-title>
<v-list-item-title>
{{ email.address }}
</v-list-tile-title>
</v-list-tile>
</v-list-item-title>
</v-list-item>
<v-subheader>
Patreon
</v-subheader>
<v-list-tile>
<v-list-tile-action>
<v-list-item>
<v-list-item-action>
<v-tooltip right>
<span>Refresh Patreon status</span>
<v-btn
@@ -77,27 +77,27 @@
<v-icon>refresh</v-icon>
</v-btn>
</v-tooltip>
</v-list-tile-action>
<v-list-tile-title>
</v-list-item-action>
<v-list-item-title>
Tier: {{ tier.name }}
</v-list-tile-title>
</v-list-tile>
<v-list-tile v-if="!user.services.google">
</v-list-item-title>
</v-list-item>
<v-list-item v-if="!user.services.google">
<v-btn
color="primary"
@click="linkWithGoogle"
>
Link Google Account
</v-btn>
</v-list-tile>
<v-list-tile v-if="!user.services.patreon">
</v-list-item>
<v-list-item v-if="!user.services.patreon">
<v-btn
color="primary"
@click="linkWithPatreon"
>
Link Patreon Account
</v-btn>
</v-list-tile>
</v-list-item>
</v-list>
<v-layout
row
@@ -121,20 +121,20 @@
<template
v-for="(invite, index) in invites"
>
<v-list-tile
<v-list-item
:key="invite._id"
:data-id="invite._id"
@click="clickInvite(invite)"
>
<v-list-tile-content>
<v-list-tile-title>
<v-list-item-content>
<v-list-item-title>
{{ invite.inviteeName || invite.invitee || 'Available' }}
</v-list-tile-title>
</v-list-tile-content>
<v-list-tile-action>
</v-list-item-title>
</v-list-item-content>
<v-list-item-action>
<v-icon>mail_outline</v-icon>
</v-list-tile-action>
</v-list-tile>
</v-list-item-action>
</v-list-item>
<v-divider
:key="index"
/>
@@ -158,7 +158,7 @@
</div>
</template>
<script>
<script lang="js">
import router from '/imports/ui/router.js';
import getEntitledCents from '/imports/api/users/patreon/getEntitledCents.js';
import Invites from '/imports/api/users/Invites.js';

View File

@@ -19,17 +19,17 @@
</div>
<v-card>
<v-list>
<v-list-tile
<v-list-item
v-for="character in party.characterDocs"
:key="character._id"
>
<v-list-tile-avatar>
<v-list-item-avatar>
<img
:src="character.picture"
alt="character.name"
>
</v-list-tile-avatar>
</v-list-tile>
</v-list-item-avatar>
</v-list-item>
</v-list>
</v-card>
</v-expansion-panel-content>
@@ -78,7 +78,7 @@
</div>
</template>
<script>
<script lang="js">
import Creatures, {insertCreature} from '/imports/api/creature/Creatures.js';
import Parties from '/imports/api/creature/Parties.js';
import LabeledFab from '/imports/ui/components/LabeledFab.vue';

View File

@@ -5,7 +5,7 @@
/>
</template>
<script>
<script lang="js">
import CharacterSheet from '/imports/ui/creature/character/CharacterSheet.vue';
export default {
components: {

View File

@@ -35,7 +35,7 @@
</div>
</template>
<script>
<script lang="js">
export default {
}
</script>

View File

@@ -1,139 +1,137 @@
<template>
<div>
<div class="content">
<section>
<v-parallax
src="/images/paper-dice-crown.png"
height="300"
>
<v-layout
column
align-center
justify-center
class="white--text"
>
<h1 class="white--text mb-2 display-1 text-xs-center">
DiceCloud - Free, Auditable, real-time character tracking for 5th edition
</h1>
<div class="subheading mb-3 text-xs-center">
Spend less time shuffling paper, and more time playing the game
</div>
</v-layout>
</v-parallax>
</section>
<section class="text-xs-center">
<v-layout
row
wrap
justify-space-around
class="selling-points"
>
<v-layout
column
align-center
>
<v-icon
x-large
class="ma-2"
>
money_off
</v-icon>
<h3 class="mb-2">
Free, open source, community funded
</h3>
<p>
DiceCloud is free to use. Its hosting is funded via Patreon,
and the source code is available on Github under a GPL license.
</p>
</v-layout>
<v-layout
column
align-center
>
<v-icon
x-large
class="ma-2"
>
ballot
</v-icon>
<h3 class="mb-2">
Character sheets optimised for one ruleset
</h3>
<p>
By having a narrrow scope, DiceCloud can be the best at what it
does: being a fully automated character tracker
</p>
</v-layout>
<v-layout
column
align-center
>
<v-icon
x-large
class="ma-2"
>
scatter_plot
</v-icon>
<h3 class="mb-2">
Inventory manager
</h3>
<p>
Equiping items changes your characters stats automatically.
</p>
</v-layout>
</v-layout>
</section>
<section
v-if="!signedIn"
class="ma-5"
<div
class="content layout column justify-space-between"
style="min-height: 100%;"
>
<section>
<v-parallax
src="/images/paper-dice-crown.png"
height="300"
>
<v-layout
row
column
align-center
justify-space-around
justify-center
class="white--text"
>
<v-btn
color="accent"
round
large
to="/sign-in"
>
Sign In
</v-btn>
<h1 class="white--text mb-2 text-h4 text-center">
DiceCloud - Free, Auditable, real-time character tracking for 5th edition
</h1>
<div class="subheading mb-3 text-center">
Spend less time shuffling paper, and more time playing the game
</div>
</v-layout>
</section>
<section class="text-xs-center grey darken-3 white--text pa-5">
<h1>
Get involved in the DiceCloud community
</h1>
</v-parallax>
</section>
<section class="text-center">
<v-layout
wrap
justify-space-around
class="selling-points"
>
<v-layout
row
wrap
column
align-center
justify-space-around
class="pa-4"
>
<v-btn
v-for="btn in [
{link: 'https://discord.gg/qEvdfeB', name: 'Discord'},
{link: 'https://www.patreon.com/dicecloud', name: 'Patreon'},
{link: 'https://github.com/ThaumRystra/DiceCloud', name: 'Github'},
]"
:key="btn.name"
:href="btn.link"
flat
large
color="primary"
<v-icon
x-large
class="ma-2"
>
{{ btn.name }}
</v-btn>
money_off
</v-icon>
<h3 class="mb-2">
Free, open source, community funded
</h3>
<p>
DiceCloud is free to use. Its hosting is funded via Patreon,
and the source code is available on Github under a GPL license.
</p>
</v-layout>
</section>
</div>
<v-layout
column
align-center
>
<v-icon
x-large
class="ma-2"
>
ballot
</v-icon>
<h3 class="mb-2">
Character sheets optimised for one ruleset
</h3>
<p>
By having a narrrow scope, DiceCloud can be the best at what it
does: being a fully automated character tracker
</p>
</v-layout>
<v-layout
column
align-center
>
<v-icon
x-large
class="ma-2"
>
scatter_plot
</v-icon>
<h3 class="mb-2">
Inventory manager
</h3>
<p>
Equiping items changes your characters stats automatically.
</p>
</v-layout>
</v-layout>
</section>
<section
v-if="!signedIn"
class="ma-5"
>
<v-layout
align-center
justify-space-around
>
<v-btn
color="accent"
round
large
to="/sign-in"
>
Sign In
</v-btn>
</v-layout>
</section>
<section class="text-center grey darken-3 white--text pa-5">
<h1>
Get involved in the DiceCloud community
</h1>
<v-layout
wrap
align-center
justify-space-around
class="pa-4"
>
<v-btn
v-for="btn in [
{link: 'https://discord.gg/qEvdfeB', name: 'Discord'},
{link: 'https://www.patreon.com/dicecloud', name: 'Patreon'},
{link: 'https://github.com/ThaumRystra/DiceCloud', name: 'Github'},
]"
:key="btn.name"
:href="btn.link"
text
large
color="primary"
>
{{ btn.name }}
</v-btn>
</v-layout>
</section>
</div>
</template>
<script>
<script lang="js">
export default {
meteor: {
signedIn(){

View File

@@ -15,7 +15,7 @@
</div>
</template>
<script>
<script lang="js">
export default {
props: {
error: {

View File

@@ -15,7 +15,7 @@
</div>
</template>
<script>
<script lang="js">
export default {
}
</script>

View File

@@ -25,7 +25,7 @@
</template>
<script>
<script lang="js">
import VueCountdown from '@chenfengyuan/vue-countdown';
import LAUNCH_DATE from '/imports/constants/LAUNCH_DATE.js';
export default{

View File

@@ -6,7 +6,7 @@
</single-card-layout>
</template>
<script>
<script lang="js">
import SingleCardLayout from '/imports/ui/layouts/SingleCardLayout.vue';
import LibraryAndNode from '/imports/ui/library/LibraryAndNode.vue';
export default {

View File

@@ -22,7 +22,7 @@
</div>
</template>
<script>
<script lang="js">
import TIERS, { getUserTier } from '/imports/api/users/patreon/tiers.js';
export default {

View File

@@ -77,7 +77,7 @@
</div>
</template>
<script>
<script lang="js">
export default{
data() {
return {

View File

@@ -29,7 +29,7 @@
required
@keyup.enter="submit"
/>
<v-btn flat>
<v-btn text>
Reset Password
</v-btn>
<div class="error--text">
@@ -79,7 +79,7 @@
</div>
</template>
<script>
<script lang="js">
import { Meteor } from 'meteor/meteor'
export default{
data: () => ({

View File

@@ -24,7 +24,7 @@
</div>
</template>
<script>
<script lang="js">
import Tabletops from '/imports/api/tabletop/Tabletops.js';
import TabletopComponent from '/imports/ui/tabletop/TabletopComponent.vue';

View File

@@ -4,17 +4,17 @@
v-if="tabletops.length"
class="tabletops"
>
<v-list-tile
<v-list-item
v-for="tabletop in tabletops"
:key="tabletop._id"
:to="`/tabletop/${tabletop._id}`"
>
<v-list-tile-content>
<v-list-tile-title>
<v-list-item-content>
<v-list-item-title>
{{ tabletop.name || 'Unnamed Tabletop' }}
</v-list-tile-title>
</v-list-tile-content>
</v-list-tile>
</v-list-item-title>
</v-list-item-content>
</v-list-item>
</v-list>
<v-card-text v-else>
You don't own or belong to any tabletops yet
@@ -33,7 +33,7 @@
</single-card-layout>
</template>
<script>
<script lang="js">
import SingleCardLayout from '/imports/ui/layouts/SingleCardLayout.vue'
import Tabletops, { insertTabletop } from '/imports/api/tabletop/Tabletops.js';

View File

@@ -4,7 +4,7 @@
:class="cardClasses"
:elevation="hovering ? 8 : undefined"
>
<div class="layout row align-center px-3">
<div class="layout align-center px-3">
<div class="avatar">
<v-btn
flat
@@ -91,7 +91,7 @@
</v-card>
</template>
<script>
<script lang="js">
import { getPropertyName } from '/imports/constants/PROPERTIES.js';
import numberToSignedString from '/imports/ui/utility/numberToSignedString.js';
import CreatureProperties from '/imports/api/creature/creatureProperties/CreatureProperties.js';

View File

@@ -1,6 +1,6 @@
<template lang="html">
<div
class="layout row align-center justify-start"
class="layout align-center justify-start"
:class="insufficient && 'error--text'"
>
<div
@@ -17,7 +17,7 @@
</div>
</template>
<script>
<script lang="js">
export default {
props: {
model: {

View File

@@ -13,7 +13,7 @@
>
<template #activator="{ on }">
<div
class="layout row align-center justify-start"
class="layout align-center justify-start"
style="height: 100%;"
:class="{
'error--text': insufficient,
@@ -64,7 +64,7 @@
</v-menu>
<div
v-else
class="layout row align-center justify-start"
class="layout align-center justify-start"
:class="{'left-pad': leftPad}"
>
<div
@@ -82,7 +82,7 @@
</div>
</template>
<script>
<script lang="js">
import SelectItemToConsume from '/imports/ui/properties/components/actions/SelectItemToConsume.vue';
export default {
components: {

View File

@@ -1,6 +1,6 @@
<template lang="html">
<v-list v-if="items.length">
<v-list-tile
<v-list-item
v-for="item in items"
:key="item._id"
@click="selectItem(item._id)"
@@ -9,7 +9,7 @@
:model="item"
:selected="itemConsumed.itemId === item._id"
/>
</v-list-tile>
</v-list-item>
</v-list>
<v-card v-else>
<v-card-text>
@@ -18,7 +18,7 @@
</v-card>
</template>
<script>
<script lang="js">
import ItemTreeNode from '/imports/ui/properties/treeNodeViews/ItemTreeNode.vue';
import CreatureProperties from '/imports/api/creature/creatureProperties/CreatureProperties.js';
import selectAmmoItem from '/imports/api/creature/creatureProperties/methods/selectAmmoItem.js';

View File

@@ -1,9 +1,9 @@
<template lang="html">
<v-list-tile
<v-list-item
class="ability-list-tile"
v-on="hasClickListener ? {click} : {}"
>
<v-list-tile-action class="mr-4">
<v-list-item-action class="mr-4">
<div class="display-1 mod">
<template v-if="swapScoresAndMods">
<span :class="{'primary--text': model.currentValue !== model.value}">
@@ -24,17 +24,17 @@
</span>
</template>
</div>
</v-list-tile-action>
</v-list-item-action>
<v-list-tile-content>
<v-list-tile-title>
<v-list-item-content>
<v-list-item-title>
{{ model.name }}
</v-list-tile-title>
</v-list-tile-content>
</v-list-tile>
</v-list-item-title>
</v-list-item-content>
</v-list-item>
</template>
<script>
<script lang="js">
import numberToSignedString from '/imports/ui/utility/numberToSignedString.js';
export default {
props: {

View File

@@ -4,7 +4,7 @@
@click="click"
>
<v-card-text>
<div class="layout row align-center">
<div class="layout align-center">
<div class="value display-1 mr-1">
{{ computedValue }}
</div>
@@ -16,7 +16,7 @@
</v-card>
</template>
<script>
<script lang="js">
import numberToSignedString from '/imports/ui/utility/numberToSignedString.js';
export default {
props: {

View File

@@ -70,7 +70,7 @@
</v-layout>
</template>
<script>
<script lang="js">
import IncrementMenu from '/imports/ui/components/IncrementMenu.vue';
export default {
components: {

View File

@@ -13,7 +13,7 @@
</v-card>
</template>
<script>
<script lang="js">
import HealthBar from '/imports/ui/properties/components/attributes/HealthBar.vue';
export default {

View File

@@ -11,7 +11,7 @@
</div>
</template>
<script>
<script lang="js">
import Creatures from '/imports/api/creature/Creatures.js';
import damageProperty from '/imports/api/creature/creatureProperties/methods/damageProperty.js';

View File

@@ -1,9 +1,9 @@
<template lang="html">
<v-list-tile
<v-list-item
class="hit-dice-list-tile"
:class="{hover}"
>
<v-list-tile-action class="mr-4">
<v-list-item-action class="mr-4">
<v-layout
row
align-center
@@ -44,22 +44,22 @@
</div>
</v-layout>
</v-layout>
</v-list-tile-action>
</v-list-item-action>
<v-list-tile-content
<v-list-item-content
class="content"
@click="click"
@mouseover="hover = true"
@mouseleave="hover = false"
>
<v-list-tile-title>
<v-list-item-title>
{{ model.hitDiceSize }} {{ signedConMod }}
</v-list-tile-title>
</v-list-tile-content>
</v-list-tile>
</v-list-item-title>
</v-list-item-content>
</v-list-item>
</template>
<script>
<script lang="js">
import numberToSignedString from '/imports/ui/utility/numberToSignedString.js';
export default {
inject: {

View File

@@ -22,7 +22,7 @@
</v-btn>
</div>
<div
class="layout row align-center value pl-2 pr-3"
class="layout align-center value pl-2 pr-3"
>
<div class="display-1">
{{ currentValue }}
@@ -44,7 +44,7 @@
</v-card>
</template>
<script>
<script lang="js">
export default {
props: {
_id: String,

Some files were not shown because too many files have changed in this diff Show More