Added Vue, looks like this branch is now going to be DiceCloud V2

This commit is contained in:
Stefan Zermatten
2018-09-27 14:55:27 +02:00
parent d82031ab0d
commit 6a73d3576a
20 changed files with 658 additions and 456 deletions

View File

@@ -22,7 +22,6 @@ splendido:accounts-meld
email@1.2.3
meteorhacks:subs-manager
chuangbo:marked
reywood:iron-router-ga
meteor-base@1.4.0
mobile-experience@1.0.5
mongo@1.5.0
@@ -35,7 +34,6 @@ reload@1.2.0
ejson@1.1.0
spacebars
check@1.3.1
useraccounts:iron-routing
wizonesolutions:canonical
standard-minifier-js@2.3.4
shell-server@0.3.1
@@ -44,15 +42,15 @@ nikogosovd:multiple-uihooks
templates:array
ecmascript@0.11.1
es5-shim@4.8.0
differential:vulcanize
reactive-dict@1.2.0
percolate:synced-cron
ongoworks:speakingurl
service-configuration@1.0.11
google-config-ui@1.0.0
dynamic-import@0.4.0
dynamic-import@0.4.2
ddp-rate-limiter@1.0.7
rate-limit@1.0.9
iron:router
meteortesting:mocha
mdg:validated-method
akryum:vue-component
akryum:vue-router2

View File

@@ -1 +1 @@
METEOR@1.7.0.3
METEOR@1.7.0.5

View File

@@ -4,6 +4,11 @@ accounts-oauth@1.1.15
accounts-password@1.5.1
accounts-ui@1.3.0
accounts-ui-unstyled@1.4.1
akryum:npm-check@0.1.0
akryum:vue-component@0.14.0
akryum:vue-component-dev-client@0.4.2
akryum:vue-component-dev-server@0.1.1
akryum:vue-router2@0.2.0
aldeed:collection2@2.10.0
aldeed:collection2-core@1.2.0
aldeed:schema-deny@1.1.0
@@ -12,10 +17,10 @@ aldeed:simple-schema@1.5.4
allow-deny@1.1.0
autoupdate@1.4.1
babel-compiler@7.1.1
babel-runtime@1.2.2
babel-runtime@1.2.7
base64@1.0.11
binary-heap@1.0.10
blaze@2.3.2
blaze@2.3.3
blaze-html-templates@1.1.2
blaze-tools@1.0.10
boilerplate-generator@1.5.0
@@ -34,12 +39,11 @@ ddp-rate-limiter@1.0.7
ddp-server@2.2.0
deps@1.0.12
diff-sequence@1.1.0
differential:vulcanize@3.0.0
dynamic-import@0.4.1
dynamic-import@0.4.2
ecmascript@0.11.1
ecmascript-runtime@0.7.0
ecmascript-runtime-client@0.7.1
ecmascript-runtime-server@0.7.0
ecmascript-runtime-client@0.7.2
ecmascript-runtime-server@0.7.1
ecwyne:mathjs@0.25.0
ejson@1.1.0
email@1.2.3
@@ -52,14 +56,6 @@ html-tools@1.0.11
htmljs@1.0.11
http@1.4.1
id-map@1.1.0
iron:controller@1.0.12
iron:core@1.0.11
iron:dynamic-template@1.0.12
iron:layout@1.0.12
iron:location@1.0.11
iron:middleware-stack@1.1.0
iron:router@1.1.2
iron:url@1.1.0
jquery@1.11.11
lai:collection-extensions@0.2.1_1
launch-screen@1.1.1
@@ -69,7 +65,7 @@ lmieulet:meteor-coverage@1.1.4
localstorage@1.2.0
logging@1.1.20
matb33:collection-hooks@0.8.4
mdg:validated-method@1.1.0
mdg:validated-method@1.2.0
mdg:validation-error@0.5.1
meteor@1.9.2
meteor-base@1.4.0
@@ -80,7 +76,7 @@ meteortesting:mocha@1.0.1
meteortesting:mocha-core@1.0.1
minifier-css@1.3.1
minifier-js@2.3.5
minimongo@1.4.4
minimongo@1.4.5
mobile-experience@1.0.5
mobile-status-bar@1.0.14
modern-browsers@0.1.2
@@ -104,15 +100,14 @@ promise@0.11.1
raix:eventemitter@0.1.3
random@1.1.0
rate-limit@1.0.9
reactive-dict@1.2.0
reactive-dict@1.2.1
reactive-var@1.0.11
reload@1.2.0
retry@1.1.0
reywood:iron-router-ga@0.7.1
routepolicy@1.0.13
seba:minifiers-autoprefixer@1.0.1
seba:minifiers-autoprefixer@1.1.1
service-configuration@1.0.11
session@1.1.7
session@1.1.8
sha@1.0.9
shell-server@0.3.1
socket-stream-client@0.2.2
@@ -121,7 +116,7 @@ spacebars@1.0.15
spacebars-compiler@1.1.3
splendido:accounts-emails-field@1.2.0
splendido:accounts-meld@1.3.1
srp@1.0.10
srp@1.0.12
standard-minifier-js@2.3.4
templates:array@1.0.3
templating@1.3.2
@@ -133,7 +128,6 @@ ui@1.0.13
underscore@1.0.10
url@1.2.0
useraccounts:core@1.14.2
useraccounts:iron-routing@1.14.2
useraccounts:polymer@1.14.2
webapp@1.6.2
webapp-hashing@1.0.9

View File

@@ -1,3 +1,4 @@
/*
Router.map(function() {
this.route("vmixCharacter", {
path: "/vmix-character/:_id/",
@@ -89,3 +90,4 @@ var isRateLimited = function(apiKey, method){
return false;
}
};
*/

View File

@@ -1,3 +1,4 @@
/*
Router.configure({
loadingTemplate: "loading",
layoutTemplate: "layout",
@@ -172,3 +173,4 @@ Router.map(function() {
},
});
});
*/

View File

@@ -1,30 +0,0 @@
{
"name": "RPG Docs",
"version": "0.0.0",
"homepage": "",
"authors": [
"Stefan Zermatten"
],
"license": "none",
"private": true,
"ignore": [
"**/.*",
"node_modules",
"bower_components",
"test",
"tests"
],
"dependencies": {
"polymer": "Polymer/polymer#^1.0.0",
"iron-elements": "PolymerElements/iron-elements#^1.0.0",
"platinum-elements": "PolymerElements/platinum-elements#^1.0.1",
"neon-elements": "PolymerElements/neon-elements#^1.0.0",
"paper-elements": "PolymerElements/paper-elements#^1.0.7",
"app-elements": "PolymerElements/app-elements#^0.10.1",
"marked-element": "PolymerElements/marked-element#^1.2.0",
"paper-swatch-picker": "PolymerElements/paper-swatch-picker#~1.0.2"
},
"resolutions": {
"webcomponentsjs": "0.7.24"
}
}

3
app/client/head.html Normal file
View File

@@ -0,0 +1,3 @@
<head>
<link href="https://fonts.googleapis.com/css?family=Material+Icons" rel="stylesheet">
</head>

3
app/client/index.html Normal file
View File

@@ -0,0 +1,3 @@
<body>
<div id="app"></div>
</body>

1
app/client/main.js Normal file
View File

@@ -0,0 +1 @@
import "/imports/ui/vueSetup.js";

View File

View File

@@ -0,0 +1,26 @@
<template>
<v-app light>
<v-navigation-drawer app v-model="drawer">
</v-navigation-drawer>
<router-view></router-view>
</v-app>
</template>
<script>
export default {
computed: {
drawer: {
get () {
return this.$store.state.drawer;
},
set (value) {
this.$store.commit('setDrawer', value);
},
}
}
};
</script>
<style>
</style>

View File

@@ -0,0 +1,24 @@
<template>
<div>
<v-toolbar app>
<v-btn flat icon @click="toggleDrawer">
<v-icon>menu</v-icon>
</v-btn>
<slot name="toolbar"></slot>
</v-toolbar>
<v-content>
<slot></slot>
</v-content>
</div>
</template>
<script>
import { mapMutations } from "vuex"
export default {
methods:{
...mapMutations([
"toggleDrawer",
]),
},
};
</script>

View File

@@ -0,0 +1,53 @@
<template>
<toolbar-layout>
<div slot="toolbar">
DiceCloud
</div>
<div class="content">
<section>
<v-parallax src="/png/paper-dice-crown.png" height="600">
<v-layout column align-center justify-center class="white--text">
<h1 class="white--text mb-2 display-1 text-xs-center">
DiceCloud - 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>
<h1 class="mb-2 text-xs-center">
Check out the example characters
</h1>
<v-layout row align-center justify-space-around>
<v-card>
<v-card-text>
Starter set archer
</v-card-text>
</v-card>
<v-card>
<v-card-text>
Starter set wizard
</v-card-text>
</v-card>
</v-layout>
</section>
<section>
<!-- social links -->
</section>
</div>
</toolbar-layout>
</template>
<script>
import ToolbarLayout from "/imports/ui/layouts/ToolbarLayout.vue";
export default {
components: {
ToolbarLayout,
},
};
</script>
<style>
</style>

View File

37
app/imports/ui/route.js Normal file
View File

@@ -0,0 +1,37 @@
import { RouterFactory, nativeScrollBehavior } from 'meteor/akryum:vue-router2';
import Vue from "vue";
// Components
import Home from '/imports/ui/pages/Home.vue';
// Not found
import NotFound from '/imports/ui/pages/NotFound.vue';
// Create router instance
const routerFactory = new RouterFactory({
mode: 'history',
scrollBehavior: nativeScrollBehavior,
});
RouterFactory.configure(factory => {
// Simple routes
factory.addRoutes([
{
path: '/',
name: 'home',
component: Home,
},
]);
});
// Not found route has lowest priority
RouterFactory.configure(factory => {
factory.addRoute({
path: '*',
component: NotFound,
});
}, -1);
export default routerFactory;

View File

@@ -0,0 +1,33 @@
import Vue from "vue";
import Vuex from "vuex";
import Vuetify from "vuetify";
import routerFactory from "/imports/ui/route.js";
import store from "/imports/ui/vuexStore.js";
import AppLayout from '/imports/ui/layouts/AppLayout.vue';
import "vuetify/dist/vuetify.min.css";
Vue.use(Vuetify, {
theme: {
primary: "#424242",
secondary: "#E53935",
accent: "#B71C1C",
error: "#f44336",
warning: "#FFB300",
info: "#5C6BC0",
success: "#43A047",
},
iconfont: "mdi",
});
// App start
Meteor.startup(() => {
// Create the router instance
const router = routerFactory.create()
// Start the Vue app
new Vue({
router,
store,
...AppLayout,
}).$mount("#app");
});

View File

@@ -0,0 +1,20 @@
import Vue from "vue";
import Vuex from "vuex";
Vue.use(Vuex);
const store = new Vuex.Store({
strict: process.env.NODE_ENV !== 'production',
state: {
drawer: false,
},
mutations: {
toggleDrawer (state) {
state.drawer = !state.drawer;
},
setDrawer(state, value){
state.drawer = value;
},
},
});
export default store;

View File

@@ -18,7 +18,7 @@ AccountsTemplates.configure({
resendVerificationEmailLink_link: "Resend email verification",
},
});
/*
AccountsTemplates.configureRoute("changePwd", {
template: "titledAtForm",
layoutTemplate: "layout",
@@ -51,7 +51,7 @@ AccountsTemplates.configureRoute("resendVerificationEmail", {
template: "titledAtForm",
layoutTemplate: "layout",
});
*/
if (Meteor.isServer){
Meteor.methods({
"userExists": function(username){

815
app/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -2,9 +2,6 @@
"name": "rpg-docs",
"version": "0.10.0",
"description": "Unofficial Online Realtime D&D 5e App",
"scripts": {
"postinstall": "bower install"
},
"repository": {
"type": "git",
"url": "https://github.com/ThaumRystra/RPG-Docs"
@@ -21,6 +18,12 @@
"meteor-node-stubs": "^0.3.3",
"qrcode": "^1.2.0",
"source-map-support": "^0.5.6",
"underscore": "^1.9.1"
}
"underscore": "^1.9.1",
"vue": "^2.5.17",
"vue-meteor-tracker": "^2.0.0-beta.3",
"vue-router": "^2.0.0",
"vuetify": "^1.2.5",
"vuex": "^3.0.1"
},
"devDependencies": {}
}