Compare commits

...

3 Commits

Author SHA1 Message Date
Sabe Jones
0ffd3e5883 4.0.6 2017-09-29 20:35:02 +00:00
Sabe Jones
900bc8dfc1 Merge branch 'develop' into release 2017-09-29 20:34:52 +00:00
Keith Holliday
ec260016d3 Task sort payment fixes (#9104)
* Added sorting to dated filter

* Validated payment data type
2017-09-29 15:30:28 -05:00
4 changed files with 10 additions and 5 deletions

2
package-lock.json generated
View File

@@ -1,6 +1,6 @@
{
"name": "habitica",
"version": "4.0.5",
"version": "4.0.6",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

@@ -1,7 +1,7 @@
{
"name": "habitica",
"description": "A habit tracker app which treats your goals like a Role Playing Game.",
"version": "4.0.5",
"version": "4.0.6",
"main": "./website/server/index.js",
"dependencies": {
"@slack/client": "^3.8.1",

View File

@@ -159,6 +159,7 @@
<script>
import Task from './task';
import sortBy from 'lodash/sortBy';
import { mapState, mapActions } from 'client/libs/store';
import { shouldDo } from 'common/script/cron';
import inAppRewards from 'common/script/libs/inAppRewards';
@@ -203,7 +204,7 @@ export default {
label: 'todos',
filters: [
{label: 'remaining', filter: t => !t.completed, default: true}, // active
{label: 'scheduled', filter: t => !t.completed && t.date},
{label: 'scheduled', filter: t => !t.completed && t.date, sort: t => t.date},
{label: 'complete2', filter: t => t.completed},
],
},
@@ -316,6 +317,10 @@ export default {
this.loadCompletedTodos();
}
this.activeFilters[type] = filter;
if (filter.sort) {
this.tasks[`${type}s`] = sortBy(this.tasks[`${type}s`], filter.sort);
}
},
setColumnBackgroundVisibility () {
this.$nextTick(() => {

View File

@@ -35,7 +35,7 @@ api.verifyGemPurchase = async function verifyGemPurchase (user, receipt, signatu
let isValidated = iap.isValidated(googleRes);
if (!isValidated) throw new NotAuthorized(this.constants.RESPONSE_INVALID_RECEIPT);
let receiptObj = JSON.parse(testObj.data); // passed as a string
let receiptObj = typeof testObj.data === 'string' ? JSON.parse(testObj.data) : testObj.data; // passed as a string
let token = receiptObj.token || receiptObj.purchaseToken;
let existingReceipt = await IapPurchaseReceipt.findOne({
@@ -106,7 +106,7 @@ api.subscribe = async function subscribe (sku, user, receipt, signature, headers
signature,
};
let receiptObj = JSON.parse(receipt); // passed as a string
let receiptObj = typeof receipt === 'string' ? JSON.parse(receipt) : receipt; // passed as a string
let token = receiptObj.token || receiptObj.purchaseToken;
let existingUser = await User.findOne({