diff --git a/client/coral-admin/src/components/AccountHistory.js b/client/coral-admin/src/components/AccountHistory.js
index 04df552be..52f3af92d 100644
--- a/client/coral-admin/src/components/AccountHistory.js
+++ b/client/coral-admin/src/components/AccountHistory.js
@@ -19,14 +19,30 @@ const buildUserHistory = (userState = {}) => {
);
};
-const buildActionResponse = (typename, until, status) => {
+/** readableDuration returns a readable duration of the suspension/ban in hours or days
+ * @param {} startDate
+ * @param {} endDate
+ */
+const readableDuration = (startDate, endDate) => {
+ const dur = moment.duration(moment(endDate).diff(moment(startDate)));
+ const durAsDays = dur.asDays().toFixed(0);
+ const durAsHours = dur.asHours().toFixed(0);
+
+ return durAsHours > 23
+ ? `${durAsDays} ${durAsDays > 1 ? 'days' : 'day'}`
+ : `${durAsHours} ${durAsHours > 1 ? 'hours' : 'hour'}`;
+};
+
+const buildActionResponse = (typename, created_at, until, status) => {
switch (typename) {
case 'UsernameStatusHistory':
return `Username ${status}`;
case 'BannedStatusHistory':
return status ? 'User banned' : 'Ban removed';
case 'SuspensionStatusHistory':
- return until ? 'Account Suspended' : 'Suspension removed';
+ return until
+ ? `Suspended, ${readableDuration(created_at, until)}`
+ : 'Suspension removed';
default:
return '-';
}
@@ -77,7 +93,7 @@ class AccountHistory extends React.Component {
'talk-admin-account-history-row-status'
)}
>
- {buildActionResponse(__typename, until, status)}
+ {buildActionResponse(__typename, created_at, until, status)}
diff --git a/graph/loaders/actions.js b/graph/loaders/actions.js
index b5ea31a3f..77cc7138d 100644
--- a/graph/loaders/actions.js
+++ b/graph/loaders/actions.js
@@ -1,6 +1,6 @@
const DataLoader = require('dataloader');
const util = require('./util');
-const { first, get, merge, remove, groupBy, reduce } = require('lodash');
+const { first, get, merge, remove, groupBy, reduce, isNil } = require('lodash');
/**
* Gets actions based on their item id's.
@@ -35,10 +35,12 @@ const genActionsAuthoredWithID = (
* @param {Object} action_counts the action count object
*/
const iterateActionCounts = action_counts =>
- Object.keys(action_counts).map(action_type => ({
- count: action_counts[action_type],
- action_type: action_type.toUpperCase(),
- }));
+ !isNil(action_counts)
+ ? Object.keys(action_counts).map(action_type => ({
+ count: action_counts[action_type],
+ action_type: action_type.toUpperCase(),
+ }))
+ : [];
/**
* getUserActions will get the actions made by the user for this specific
diff --git a/package.json b/package.json
index 4b1fd68cf..c61a5db45 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "talk",
- "version": "4.2.1",
+ "version": "4.2.2",
"description": "A better commenting experience from Mozilla, The New York Times, and the Washington Post. https://coralproject.net",
"main": "app.js",
"private": true,
diff --git a/plugins/talk-plugin-facebook-auth/client/translations.yml b/plugins/talk-plugin-facebook-auth/client/translations.yml
index 35a5c255c..ab72134f4 100644
--- a/plugins/talk-plugin-facebook-auth/client/translations.yml
+++ b/plugins/talk-plugin-facebook-auth/client/translations.yml
@@ -4,17 +4,21 @@ en:
sign_up: "Sign up with Facebook"
es:
talk-plugin-facebook-auth:
- facebook_sign_in: "Entrar con Facebook"
- facebook_sign_up: "Registrarse con Facebook"
+ sign_in: "Entrar con Facebook"
+ sign_up: "Registrarse con Facebook"
fr:
talk-plugin-facebook-auth:
- facebook_sign_in: "Connectez-vous avec Facebook"
- facebook_sign_up: "Inscrivez-vous avec Facebook"
+ sign_in: "Connectez-vous avec Facebook"
+ sign_up: "Inscrivez-vous avec Facebook"
zh_CN:
talk-plugin-facebook-auth:
- facebook_sign_in: "使用 Facebook 帐号"
- facebook_sign_up: "使用 Facebook 帐号"
+ sign_in: "使用 Facebook 帐号"
+ sign_up: "使用 Facebook 帐号"
zh_TW:
talk-plugin-facebook-auth:
- facebook_sign_in: "使用 Facebook 帳號"
- facebook_sign_up: "使用 Facebook 帳號"
+ sign_in: "使用 Facebook 帳號"
+ sign_up: "使用 Facebook 帳號"
+de:
+ talk-plugin-facebook-auth:
+ sign_in: "Mit Facebook anmelden"
+ sign_up: "Mit Facebook registrieren"
\ No newline at end of file