Commit 9679966c authored by Marius Trautrims's avatar Marius Trautrims

update to meteor version 1.3

parent 0b090074
......@@ -10,3 +10,4 @@ notices-for-facebook-graph-api-2
1.2.0-meteor-platform-split
1.2.0-cordova-changes
1.2.0-breaking-changes
1.3.0-split-minifiers-package
......@@ -4,9 +4,23 @@
# 'meteor add' and 'meteor remove' will edit this file for you,
# but you can also edit it by hand.
twbs:bootstrap
iron:router
meteor-base # Packages every Meteor app needs to have
mobile-experience # Packages for a great mobile UX
mongo # The database Meteor supports right now
blaze-html-templates # Compile .html files into Meteor Blaze views
reactive-var # Reactive variable for tracker
jquery # Helpful client-side library
tracker # Meteor's client-side reactive programming library
standard-minifier-css # CSS minifier run for production mode
standard-minifier-js # JS minifier run for production mode
es5-shim # ECMAScript 5 compatibility for older browsers.
ecmascript # Enable ECMAScript2015+ syntax in app code
fourseven:scss@=3.2.0
tap:i18n
iron:router
twbs:bootstrap
accounts-twitter
accounts-ui
service-configuration
......@@ -17,26 +31,10 @@ atoy40:accounts-cas
momentjs:moment
rzymek:moment-locales
tap:i18n-db
aldeed:collection2
okgrow:promise
reactive-var
themeteorchef:bert
standard-minifiers
meteor-base
mobile-experience
mongo
blaze-html-templates
session
jquery
tracker
logging
reload
random
ejson
spacebars
check
wtfzn:bootstrap-markdown
aldeed:collection2
peerlibrary:blaze-components
easy:search
barbatus:stars-rating
rexzh0u:kramed
......@@ -45,5 +43,4 @@ pfafman:filesaver
mizzao:user-status
harrison:papa-parse
fortawesome:fontawesome
fourseven:scss
simple:highlight.js
METEOR@1.2.1
METEOR@1.3.2.4
accounts-base@1.2.2
accounts-facebook@1.0.6
accounts-google@1.0.6
accounts-oauth@1.1.8
accounts-twitter@1.0.6
accounts-ui@1.1.6
accounts-ui-unstyled@1.1.8
aldeed:collection2@2.5.0
accounts-base@1.2.7
accounts-facebook@1.0.9
accounts-google@1.0.9
accounts-oauth@1.1.12
accounts-twitter@1.0.9
accounts-ui@1.1.9
accounts-ui-unstyled@1.1.12
aldeed:collection2@2.7.0
aldeed:simple-schema@1.3.3
allow-deny@1.0.4
atoy40:accounts-cas@0.0.2
autoupdate@1.2.4
babel-compiler@5.8.24_1
babel-runtime@0.1.4
autoupdate@1.2.9
babel-compiler@6.6.4
babel-runtime@0.1.8
barbatus:stars-rating@1.0.7
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
cfs:http-methods@0.0.30
check@1.1.0
coffeescript@1.0.11
ddp@1.2.2
ddp-client@1.2.1
ddp-common@1.2.2
ddp-rate-limiter@1.0.0
ddp-server@1.2.2
deps@1.0.9
diff-sequence@1.0.1
easy:search@2.0.4
easysearch:components@2.0.4
easysearch:core@2.0.3
ecmascript@0.1.6
ecmascript-runtime@0.2.6
ejson@1.0.7
facebook@1.2.2
fastclick@1.0.7
base64@1.0.8
binary-heap@1.0.8
blaze@2.1.7
blaze-html-templates@1.0.4
blaze-tools@1.0.8
boilerplate-generator@1.0.8
caching-compiler@1.0.4
caching-html-compiler@1.0.6
callback-hook@1.0.8
cfs:http-methods@0.0.32
check@1.2.1
coffeescript@1.0.17
ddp@1.2.5
ddp-client@1.2.7
ddp-common@1.2.5
ddp-rate-limiter@1.0.4
ddp-server@1.2.6
deps@1.0.12
diff-sequence@1.0.5
easy:search@2.0.9
easysearch:components@2.0.9
easysearch:core@2.0.9
ecmascript@0.4.3
ecmascript-runtime@0.2.10
ejson@1.0.11
es5-shim@4.5.10
facebook@1.2.6
fastclick@1.0.11
fortawesome:fontawesome@4.5.0
fourseven:scss@3.4.1
geojson-utils@1.0.4
google@1.1.7
fourseven:scss@3.2.0
geojson-utils@1.0.8
google@1.1.11
harrison:papa-parse@1.1.1
hot-code-push@1.0.0
html-tools@1.0.5
htmljs@1.0.5
http@1.1.1
id-map@1.0.4
hot-code-push@1.0.4
html-tools@1.0.9
htmljs@1.0.9
http@1.1.5
id-map@1.0.7
iron:controller@1.0.12
iron:core@1.0.11
iron:dynamic-template@1.0.12
......@@ -57,47 +59,51 @@ iron:location@1.0.11
iron:middleware-stack@1.0.11
iron:router@1.0.12
iron:url@1.0.11
jquery@1.11.4
launch-screen@1.0.4
less@2.5.1
livedata@1.0.15
localstorage@1.0.5
logging@1.0.8
meteor@1.1.10
meteor-base@1.0.1
jquery@1.11.8
launch-screen@1.0.11
less@2.6.0
livedata@1.0.18
localstorage@1.0.9
logging@1.0.12
meteor@1.1.14
meteor-base@1.0.4
meteorspark:util@0.2.0
minifiers@1.1.7
minimongo@1.0.10
minifier-css@1.1.11
minifier-js@1.1.11
minimongo@1.0.16
mizzao:timesync@0.3.4
mizzao:user-status@0.6.6
mobile-experience@1.0.1
mobile-status-bar@1.0.6
momentjs:moment@2.10.6
mongo@1.1.3
mongo-id@1.0.1
npm-mongo@1.4.39_1
oauth@1.1.6
oauth1@1.1.5
oauth2@1.1.5
observe-sequence@1.0.7
mobile-experience@1.0.4
mobile-status-bar@1.0.12
modules@0.6.1
modules-runtime@0.6.3
momentjs:moment@2.13.1
mongo@1.1.7
mongo-id@1.0.4
npm-mongo@1.4.43
oauth@1.1.10
oauth1@1.1.9
oauth2@1.1.9
observe-sequence@1.0.11
okgrow:promise@0.9.5
ordered-dict@1.0.4
ordered-dict@1.0.7
peerlibrary:assert@0.2.5
peerlibrary:base-component@0.14.0
peerlibrary:blaze-components@0.15.1
peerlibrary:blaze-components@0.16.2
peerlibrary:computed-field@0.3.1
peerlibrary:data-lookup@0.1.0
peerlibrary:reactive-field@0.1.0
pfafman:filesaver@0.2.1
promise@0.5.1
pfafman:filesaver@0.2.3_2
promise@0.6.7
raix:eventemitter@0.1.3
random@1.0.5
rate-limit@1.0.0
reactive-dict@1.1.3
reactive-var@1.0.6
reload@1.1.4
retry@1.0.4
random@1.0.9
rate-limit@1.0.4
reactive-dict@1.1.7
reactive-var@1.0.9
reload@1.1.8
retry@1.0.7
rexzh0u:kramed@1.0.3
routepolicy@1.0.6
routepolicy@1.0.10
rzymek:moment-locale-af@2.9.0
rzymek:moment-locale-ar@2.9.0
rzymek:moment-locale-ar-ma@2.9.0
......@@ -177,25 +183,26 @@ rzymek:moment-locale-vi@2.9.0
rzymek:moment-locale-zh-cn@2.9.0
rzymek:moment-locale-zh-tw@2.9.0
rzymek:moment-locales@2.9.0
service-configuration@1.0.5
session@1.1.1
service-configuration@1.0.9
session@1.1.5
simple:highlight.js@1.2.0
simple:katex@1.1.0
spacebars@1.0.7
spacebars-compiler@1.0.7
standard-minifiers@1.0.2
tap:i18n@1.7.0
spacebars@1.0.11
spacebars-compiler@1.0.11
standard-minifier-css@1.0.6
standard-minifier-js@1.0.6
tap:i18n@1.8.0
tap:i18n-db@0.4.0
templating@1.1.5
templating-tools@1.0.0
templating@1.1.9
templating-tools@1.0.4
themeteorchef:bert@1.1.0
tracker@1.0.9
twbs:bootstrap@3.3.5
twitter@1.1.5
ui@1.0.8
underscore@1.0.4
url@1.0.5
webapp@1.2.3
webapp-hashing@1.0.5
tracker@1.0.13
twbs:bootstrap@3.3.6
twitter@1.1.9
ui@1.0.11
underscore@1.0.8
url@1.0.9
webapp@1.2.8
webapp-hashing@1.0.9
wtfzn:bootstrap-markdown@2.8.0
zimme:active-route@2.3.2
# ARSnova Flashcards
ARSnova Flashcards is a digital recreation of a classic learning tool. The service offers students a modern and intuitive access to one of the most successful proven learning methods. THMcards is being developed as a modern Single Page Application.
## Getting Started
To start ARSnova Flashcards on localhost use `meteor --settings settings-development.json` inside the repository. You can then access ARSnova Flashcards from your host machine by opening http://localhost:3000.
## CI Pipeline
- [Staging](http://cards2.mni.thm.de)
- [Production](http://cards.thm.de)
## Credits
ARSnova Flashcards is powered by Technische Hochschule Mittelhessen - University of Applied Sciences.
# ARSnova Flashcards
ARSnova Flashcards is a digital recreation of a classic learning tool. The service offers students a modern and intuitive access to one of the most successful proven learning methods. THMcards is being developed as a modern Single Page Application.
## Getting Started
To start ARSnova Flashcards on localhost use `meteor --settings dev.json` inside the repository. You can then access ARSnova Flashcards from your host machine by opening http://localhost:3000.
## CI Pipeline
- [Staging](http://cards2.mni.thm.de)
- [Production](http://cards.thm.de)
## Credits
ARSnova Flashcards is powered by Technische Hochschule Mittelhessen - University of Applied Sciences.
<head>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<link rel="icon" sizes="192x192" href="/img/icon192.png">
<link rel="apple-touch-icon" href="/img/icon192.png">
<title>THMcards</title>
</head>
<body>
{{> bertAlert}}
</body>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<link rel="icon" sizes="192x192" href="/img/icon192.png">
<link rel="apple-touch-icon" href="/img/icon192.png">
<title>THMcards</title>
</head>
<!------------------------AUSLAGERN----------------------------------
<body>
{{> bertAlert}}
</body>
-------------------------------------------------------------------->
// STARTUP IMPORTS --------------------------------------------------------
import '../imports/startup/client/i18n.js';
import '../imports/startup/client/registerhelper.js';
import '../imports/startup/client/routes.js';
import '../imports/startup/client/useraccounts-configuration.js';
// USER INTERFACE IMPORTS -------------------------------------------------
import '../imports/ui/main/main.js'
@import '../imports/ui/main/main.sass'
@import '../imports/ui/welcome/welcome.sass'
@import '../imports/ui/cardsets/cardsets.sass'
@import '../imports/ui/cardset/cardset.sass'
@import '../imports/ui/card/card.sass'
@import '../imports/ui/profile/profile.sass'
@import '../imports/ui/learn/box.sass'
@import '../imports/ui/learn/memo.sass'
{
"public": {
"rooturl": "http://localhost:3000",
"cas": {
"loginUrl": "https://cas.thm.de/cas/login",
"serviceParam": "service",
"popupWidth": 810,
"popupHeight": 610
}
},
"facebook": {
"api": "162760697401847",
"secret": "151daa9c4bc95310e9e1fb90accd70f8"
},
"twitter": {
"api": "I8LcQC0NetusL9c5F3EFJUXMl",
"secret": "2z0kNAtYcSU5lQKk6FDRR60gxuFawB4TM7tWvnU7yKk6EHHpYh"
},
"google": {
"api": "131328643116-j00jrgjupbbfeft1a9o0p5ling05vsus.apps.googleusercontent.com",
"secret": "2-P5Vy6VI0eOrKIlOCZZq8cR"
},
"cas": {
"baseUrl": "https://cas.thm.de/cas",
"autoClose": true
}
}
{
"public": {
"rooturl": "http://localhost:3000",
"cas": {
"loginUrl": "https://cas.thm.de/cas/login",
"serviceParam": "service",
"popupWidth": 810,
"popupHeight": 610
}
},
"facebook": {
"api": "162760697401847",
"secret": "151daa9c4bc95310e9e1fb90accd70f8"
},
"twitter": {
"api": "I8LcQC0NetusL9c5F3EFJUXMl",
"secret": "2z0kNAtYcSU5lQKk6FDRR60gxuFawB4TM7tWvnU7yKk6EHHpYh"
},
"google": {
"api": "131328643116-j00jrgjupbbfeft1a9o0p5ling05vsus.apps.googleusercontent.com",
"secret": "2-P5Vy6VI0eOrKIlOCZZq8cR"
},
"cas": {
"baseUrl": "https://cas.thm.de/cas",
"autoClose": true
}
}
{"_id": "01", "name": "Agricultural and Forestry Sciences", "i18n": { "de": { "name": "Agrar- und Forstwissenschaften"}}}
{"_id": "02", "name": "Information and Telecommunications Technology", "i18n": { "de": { "name": "Informations- und Telekommunikationstechnik"}}}
{"_id": "03", "name": "Engineering Sciences", "i18n": { "de": { "name": "Ingeniuerswissenschaften"}}}
{"_id": "04", "name": "Cultural and Social Sciences", "i18n": { "de": { "name": "Kultur- und Gesellschaftswissenschften"}}}
{"_id": "05", "name": "Art and Music", "i18n": { "de": { "name": "Kunst und Musik"}}}
{"_id": "06", "name": "Mathematics and Natural Sciences", "i18n": { "de": { "name": "Mathematik und Naturwissenschaften"}}}
{"_id": "07", "name": "Media", "i18n": { "de": { "name": "Medien"}}}
{"_id": "08", "name": "Medicine and Health", "i18n": { "de": { "name": "Medizin und Gesundheit"}}}
{"_id": "09", "name": "Education and Teaching", "i18n": { "de": { "name": "Pädagogik und Lehre"}}}
{"_id": "10", "name": "Jurisprudence", "i18n": { "de": { "name": "Rechtswissenschaften"}}}
{"_id": "11", "name": "Foreign Languages and Literatures", "i18n": { "de": { "name": "Sprach- und Literaturwissenschaften"}}}
{"_id": "12", "name": "Social and Behavioral Sciences", "i18n": { "de": { "name": "Sozial- und Verhaltenswissenschaften"}}}
{"_id": "13", "name": "Economics and Management", "i18n": { "de": { "name": "Wirtschaft und Management"}}}
{"_id": "01", "name": "Agricultural and Forestry Sciences", "i18n": { "de": { "name": "Agrar- und Forstwissenschaften"}}}
{"_id": "02", "name": "Information and Telecommunications Technology", "i18n": { "de": { "name": "Informations- und Telekommunikationstechnik"}}}
{"_id": "03", "name": "Engineering Sciences", "i18n": { "de": { "name": "Ingeniuerswissenschaften"}}}
{"_id": "04", "name": "Cultural and Social Sciences", "i18n": { "de": { "name": "Kultur- und Gesellschaftswissenschften"}}}
{"_id": "05", "name": "Art and Music", "i18n": { "de": { "name": "Kunst und Musik"}}}
{"_id": "06", "name": "Mathematics and Natural Sciences", "i18n": { "de": { "name": "Mathematik und Naturwissenschaften"}}}
{"_id": "07", "name": "Media", "i18n": { "de": { "name": "Medien"}}}
{"_id": "08", "name": "Medicine and Health", "i18n": { "de": { "name": "Medizin und Gesundheit"}}}
{"_id": "09", "name": "Education and Teaching", "i18n": { "de": { "name": "Pädagogik und Lehre"}}}
{"_id": "10", "name": "Jurisprudence", "i18n": { "de": { "name": "Rechtswissenschaften"}}}
{"_id": "11", "name": "Foreign Languages and Literatures", "i18n": { "de": { "name": "Sprach- und Literaturwissenschaften"}}}
{"_id": "12", "name": "Social and Behavioral Sciences", "i18n": { "de": { "name": "Sozial- und Verhaltenswissenschaften"}}}
{"_id": "13", "name": "Economics and Management", "i18n": { "de": { "name": "Wirtschaft und Management"}}}
This diff is collapsed.
This diff is collapsed.
import { Meteor } from 'meteor/meteor';
import { Mongo } from 'meteor/mongo';
export const Badges = new TAPi18n.Collection("badges");
if (Meteor.isServer) {
Meteor.publish("badges", function() {
return Badges.find();
});
}
import { Meteor } from 'meteor/meteor';
import { Mongo } from 'meteor/mongo';
import { Cardsets } from './cardsets.js';
import { Experience } from './experience.js';
import { Learned } from './learned.js';
export const Cards = new Mongo.Collection("cards");
if (Meteor.isServer) {
Meteor.publish("cards", function() {
return Cards.find();
});
}
CardsSchema = new SimpleSchema({
front: {
type: String,
max: 700
},
back: {
type: String,
max: 700
},
cardset_id: {
type: String
}
});
Cards.attachSchema(CardsSchema);
Meteor.methods({
addCard: function(cardset_id, front, back) {
// Make sure the user is logged in and is authorized
var cardset = Cardsets.findOne(cardset_id);
if (!Meteor.userId() || cardset.owner !== Meteor.userId()) {
throw new Meteor.Error("not-authorized");
}
Cards.insert({
front: front,
back: back,
cardset_id: cardset_id
});
Experience.insert({
type: 3,
value: 2,
date: new Date(),
owner: Meteor.userId()
});
Meteor.call('checkLvl');
},
deleteCard: function(card_id) {
// Make sure the user is logged in and is authorized
var card = Cards.findOne(card_id);
var cardset = Cardsets.findOne(card.cardset_id);
if (!Meteor.userId() || cardset.owner !== Meteor.userId()) {
throw new Meteor.Error("not-authorized");
}
Cards.remove(card_id);
Learned.remove({
card_id: card_id
});
},
updateCard: function(card_id, front, back) {
// Make sure the user is logged in and is authorized
var card = Cards.findOne(card_id);
var cardset = Cardsets.findOne(card.cardset_id);
if (!Meteor.userId() || cardset.owner !== Meteor.userId()) {
throw new Meteor.Error("not-authorized");
}
Cards.update(card_id, {
$set: {
front: front,
back: back
}
});
}
});
//------------------------ ACCESS DATABASE
Cardsets = new Mongo.Collection('cardsets');
Cards = new Mongo.Collection('cards');
Learned = new Mongo.Collection('learned');
Ratings = new Mongo.Collection("ratings");
Experience = new Mongo.Collection("experience");
Badges = new TAPi18n.Collection("badges");
Categories = new TAPi18n.Collection("categories");
CardsetsIndex = new EasySearch.Index({
collection: Cardsets,
fields: ['name', 'description'],
engine: new EasySearch.Minimongo({
selector: function(searchObject, options, aggregation) {
// Default selector
defSelector = this.defaultConfiguration().selector(searchObject, options, aggregation);
// Filter selector
selector = {};
selector.$and = [defSelector, {
$or: [{
owner: Meteor.userId()
}, {
visible: true
}]
}];
return selector;
}
})
});
CardsetsSchema = new SimpleSchema({
name: {
type: String
},
category: {
type: Number,
min: 1,
max: 13
},
description: {
type: String
},
date: {
type: Date
},
owner: {
type: String
},
username: {
type: String
},
visible: {
type: Boolean
},
ratings: {
type: Boolean
}
});
CardsSchema = new SimpleSchema({
front: {
type: String,
max: 700
},
back: {
type: String,
max: 700
},
cardset_id: {
type: String
}
});
Cardsets.attachSchema(CardsetsSchema);
Cards.attachSchema(CardsSchema);
import { Meteor } from 'meteor/meteor';
import { Mongo } from 'meteor/mongo';
import { Cards } from './cards.js';
import { Experience } from './experience.js';
export const Cardsets = new Mongo.Collection("cardsets");
if (Meteor.isServer) {
Meteor.publish("cardsets", function() {
return Cardsets.find();
});
}
CardsetsSchema = new SimpleSchema({
name: {
type: String
},
category: {
type: Number,
min: 1,
max: 13
},
description: {
type: String
},
date: {
type: Date
},
owner: {
type: String
},
username: {
type: String
},
visible: {
type: Boolean
},
ratings: {
type: Boolean
}
});
Cardsets.attachSchema(CardsetsSchema);
CardsetsIndex = new EasySearch.Index({
collection: Cardsets,
fields: ['name', 'description'],
engine: new EasySearch.Minimongo({
selector: function(searchObject, options, aggregation) {
// Default selector
defSelector = this.defaultConfiguration().selector(searchObject, options, aggregation);
// Filter selector
selector = {};
selector.$and = [defSelector, {
$or: [{
owner: Meteor.userId()
}, {
visible: true
}]
}];
return selector;
}
})
});
Meteor.methods({
addCardset: function(name, category, description, visible, ratings) {
// Make sure the user is logged in before inserting a cardset
if (!Meteor.userId()) {
throw new Meteor.Error("not-authorized");
}
Cardsets.insert({
name: name,
category: category,
description: description,
date: new Date(),
owner: Meteor.userId(),
username: Meteor.user().profile.name,
visible: visible,
ratings: ratings
});
Experience.insert({
type: 2,
value: 3,
date: new Date(),
owner: Meteor.userId()
});
Meteor.call('checkLvl');
},
deleteCardset: function(id) {
// Make sure only the task owner can make a task private
var cardset = Cardsets.findOne(id);
if (!Meteor.userId() || cardset.owner !== Meteor.userId()) {
throw new Meteor.Error("not-authorized");
}
Cardsets.remove(id);
Cards.remove({
cardset_id: id
});
},