-
-
- {{i18n("crash_symbolication.should-upload")}}
-
+
+ {{i18n("crash_symbolication.should-upload")}}
-
-
- {{i18n('crashes.show-binary-images')}}
-
+
+ {{i18n('crashes.show-binary-images')}}
-
-
- {{i18n('crashes.download-stacktrace')}}
-
+
+ {{i18n('crashes.download-stacktrace')}}
diff --git a/plugins/data-manager/frontend/public/javascripts/countly.views.js b/plugins/data-manager/frontend/public/javascripts/countly.views.js
index 746643d1f79..c752e7f9e3b 100644
--- a/plugins/data-manager/frontend/public/javascripts/countly.views.js
+++ b/plugins/data-manager/frontend/public/javascripts/countly.views.js
@@ -1052,9 +1052,6 @@
else if (event === 'import-schema') {
this.importDialogVisible = true;
}
- else if (event === 'navigate-settings') {
- app.navigate("#/manage/configurations/data-manager", true);
- }
},
onSaveImport: function() {
var self = this;
diff --git a/plugins/data-manager/frontend/public/templates/events.html b/plugins/data-manager/frontend/public/templates/events.html
index f60a5464ccd..4850c69d55f 100644
--- a/plugins/data-manager/frontend/public/templates/events.html
+++ b/plugins/data-manager/frontend/public/templates/events.html
@@ -33,9 +33,7 @@
{{i18n('data-manager.regenerate')}}{{i18n('data-manager.export-schema')}}{{i18n('data-manager.import-schema')}}
-
- {{i18n('plugins.configs')}}
-
+ {{i18n('plugins.configs')}}
diff --git a/plugins/dbviewer/api/api.js b/plugins/dbviewer/api/api.js
index 5ea7f771fef..46c45a19425 100644
--- a/plugins/dbviewer/api/api.js
+++ b/plugins/dbviewer/api/api.js
@@ -5,19 +5,88 @@ var common = require('../../../api/utils/common.js'),
countlyFs = require('../../../api/utils/countlyFs.js'),
_ = require('underscore'),
taskManager = require('../../../api/utils/taskmanager.js'),
- { getCollectionName, dbUserHasAccessToCollection, dbLoadEventsData, validateUser, getUserApps, validateGlobalAdmin, hasReadRight } = require('../../../api/utils/rights.js'),
+ { getCollectionName, dbUserHasAccessToCollection, dbLoadEventsData, validateUser, getUserApps, validateGlobalAdmin, hasReadRight, getBaseAppFilter } = require('../../../api/utils/rights.js'),
exported = {};
const { MongoInvalidArgumentError } = require('mongodb');
const { EJSON } = require('bson');
const FEATURE_NAME = 'dbviewer';
+const whiteListedAggregationStages = {
+ "$addFields": true,
+ "$bucket": true,
+ "$bucketAuto": true,
+ //"$changeStream": false,
+ //"$changeStreamSplitLargeEvents": false,
+ //"$collStats": false,
+ "$count": true,
+ //"$currentOp": false,
+ "$densify": true,
+ //"$documents": false
+ "$facet": true,
+ "$fill": true,
+ "$geoNear": true,
+ "$graphLookup": true,
+ "$group": true,
+ //"$indexStats": false,
+ "$limit": true,
+ //"$listLocalSessions": false
+ //"$listSampledQueries": false
+ //"$listSearchIndexes": false
+ //"$listSessions": false
+ //"$lookup": false
+ "$match": true,
+ //"$merge": false
+ //"$mergeCursors": false
+ //"$out": false
+ //"$planCacheStats": false,
+ "$project": true,
+ "$querySettings": true,
+ "$redact": true,
+ "$replaceRoot": true,
+ "$replaceWith": true,
+ "$sample": true,
+ "$search": true,
+ "$searchMeta": true,
+ "$set": true,
+ "$setWindowFields": true,
+ //"$sharedDataDistribution": false,
+ "$skip": true,
+ "$sort": true,
+ "$sortByCount": true,
+ //"$unionWith": false,
+ "$unset": true,
+ "$unwind": true,
+ "$vectorSearch": true //atlas specific
+};
var spawn = require('child_process').spawn,
child;
+
(function() {
plugins.register("/permissions/features", function(ob) {
ob.features.push(FEATURE_NAME);
});
+ /**
+ * Function removes not allowed aggregation stages from the pipeline
+ * @param {array} aggregation - current aggregation pipeline
+ * @returns {object} changes - object with information which operations were removed
+ */
+ function escapeNotAllowedAggregationStages(aggregation) {
+ var changes = {};
+ for (var z = 0; z < aggregation.length; z++) {
+ for (var key in aggregation[z]) {
+ if (!whiteListedAggregationStages[key]) {
+ changes[key] = true;
+ delete aggregation[z][key];
+ }
+ }
+ if (Object.keys(aggregation[z]).length === 0) {
+ aggregation.splice(z, 1);
+ z--;
+ }
+ }
+ return changes;
+ }
/**
* @api {get} /o/db Access database
@@ -179,6 +248,25 @@ var spawn = require('child_process').spawn,
filter = {};
}
+ var base_filter = {};
+ if (!params.member.global_admin) {
+ base_filter = getBaseAppFilter(params.member, dbNameOnParam, params.qstring.collection);
+ }
+
+ if (base_filter && Object.keys(base_filter).length > 0) {
+ for (var key in base_filter) {
+ if (filter[key]) {
+ filter.$and = filter.$and || [];
+ filter.$and.push({[key]: base_filter[key]});
+ filter.$and.push({[key]: filter[key]});
+ delete filter[key];
+ }
+ else {
+ filter[key] = base_filter[key];
+ }
+ }
+ }
+
if (dbs[dbNameOnParam]) {
try {
var cursor = dbs[dbNameOnParam].collection(params.qstring.collection).find(filter, { projection });
@@ -191,6 +279,7 @@ var spawn = require('child_process').spawn,
common.returnMessage(params, 400, "Invalid collection name: Collection names can not contain '$' or other invalid characters");
}
else {
+ log.e(error);
common.returnMessage(params, 500, "An unexpected error occurred.");
}
return false;
@@ -291,7 +380,7 @@ var spawn = require('child_process').spawn,
async.each(results, function(col, done) {
if (col.collectionName.indexOf("system.indexes") === -1 && col.collectionName.indexOf("sessions_") === -1) {
userHasAccess(params, col.collectionName, params.qstring.app_id, function(hasAccess) {
- if (hasAccess) {
+ if (hasAccess || col.collectionName === "events_data" || col.collectionName === "drill_events") {
ob = parseCollectionName(col.collectionName, lookup);
db.collections[ob.pretty] = ob.name;
}
@@ -318,8 +407,9 @@ var spawn = require('child_process').spawn,
* Get aggregated result by the parameter on the url
* @param {string} collection - collection will be applied related query
* @param {object} aggregation - aggregation object
+ * @param {object} changes - object referencing removed stages from pipeline
* */
- function aggregate(collection, aggregation) {
+ function aggregate(collection, aggregation, changes) {
if (params.qstring.iDisplayLength) {
aggregation.push({ "$limit": parseInt(params.qstring.iDisplayLength) });
}
@@ -339,6 +429,10 @@ var spawn = require('child_process').spawn,
else if (collection === 'auth_tokens') {
aggregation.splice(addProjectionAt, 0, {"$addFields": {"_id": "***redacted***"}});
}
+ else if ((collection === "events_data" || collection === "drill_events") && !params.member.global_admin) {
+ var base_filter = getBaseAppFilter(params.member, dbNameOnParam, params.qstring.collection);
+ aggregation.splice(0, 0, {"$match": base_filter});
+ }
// check task is already running?
taskManager.checkIfRunning({
db: dbs[dbNameOnParam],
@@ -375,7 +469,7 @@ var spawn = require('child_process').spawn,
},
outputData: function(aggregationErr, result) {
if (!aggregationErr) {
- common.returnOutput(params, { sEcho: params.qstring.sEcho, iTotalRecords: 0, iTotalDisplayRecords: 0, "aaData": result });
+ common.returnOutput(params, { sEcho: params.qstring.sEcho, iTotalRecords: 0, iTotalDisplayRecords: 0, "aaData": result, "removed": (changes || {}) });
}
else {
common.returnMessage(params, 500, aggregationErr);
@@ -409,7 +503,12 @@ var spawn = require('child_process').spawn,
if (appId) {
if (hasReadRight(FEATURE_NAME, appId, parameters.member)) {
- return dbUserHasAccessToCollection(parameters, collection, appId, callback);
+ if (collection === "events_data" || collection === "drill_events") {
+ return callback(true);
+ }
+ else {
+ return dbUserHasAccessToCollection(parameters, collection, appId, callback);
+ }
}
}
else {
@@ -485,10 +584,14 @@ var spawn = require('child_process').spawn,
}
else {
userHasAccess(params, params.qstring.collection, function(hasAccess) {
- if (hasAccess) {
+ if (hasAccess || params.qstring.collection === "events_data" || params.qstring.collection === "drill_events") {
try {
let aggregation = EJSON.parse(params.qstring.aggregation);
- aggregate(params.qstring.collection, aggregation);
+ var changes = escapeNotAllowedAggregationStages(aggregation);
+ if (changes && Object.keys(changes).length > 0) {
+ log.d("Removed stages from pipeline: ", JSON.stringify(changes));
+ }
+ aggregate(params.qstring.collection, aggregation, changes);
}
catch (e) {
common.returnMessage(params, 500, 'Aggregation object is not valid.');
@@ -508,7 +611,7 @@ var spawn = require('child_process').spawn,
}
else {
userHasAccess(params, params.qstring.collection, function(hasAccess) {
- if (hasAccess) {
+ if (hasAccess || params.qstring.collection === "events_data" || params.qstring.collection === "drill_events") {
dbGetCollection();
}
else {
diff --git a/plugins/dbviewer/frontend/public/javascripts/countly.views.js b/plugins/dbviewer/frontend/public/javascripts/countly.views.js
index 2436521175b..4f2a661466e 100644
--- a/plugins/dbviewer/frontend/public/javascripts/countly.views.js
+++ b/plugins/dbviewer/frontend/public/javascripts/countly.views.js
@@ -534,6 +534,13 @@
if (res.aaData.length) {
self.fields = Object.keys(map);
}
+ if (res.removed && typeof res.removed === 'object' && Object.keys(res.removed).length > 0) {
+ self.removed = CV.i18n('dbviewer.removed-warning') + Object.keys(res.removed).join(", ");
+
+ }
+ else {
+ self.removed = "";
+ }
}
if (err) {
var message = CV.i18n('dbviewer.server-error');
@@ -559,7 +566,7 @@
}
},
updatePath: function(query) {
- window.location.hash = "#/manage/db/aggregate/" + this.db + "/" + this.collection + "/" + query;
+ app.navigate("#/manage/db/aggregate/" + this.db + "/" + this.collection + "/" + query);
},
getCollectionName: function() {
var self = this;
diff --git a/plugins/dbviewer/frontend/public/localization/dbviewer.properties b/plugins/dbviewer/frontend/public/localization/dbviewer.properties
index 018c8d96649..eb102853b63 100644
--- a/plugins/dbviewer/frontend/public/localization/dbviewer.properties
+++ b/plugins/dbviewer/frontend/public/localization/dbviewer.properties
@@ -36,6 +36,7 @@ dbviewer.generate-aggregate-report= Generate aggregate report
dbviewer.back-to-dbviewer = Back to DB Viewer
dbviewer.invalid-pipeline = Invalid pipeline object, please check pipeline input.
dbviewer.server-error = There was a server error. There might be more information in logs.
+dbviewer.removed-warning = Some stages are removed from aggregation pipleine. Following stages are allowed only with global admin rights:
dbviewer.not-found-data = Couldn't find any results
dbviewer.execute-aggregation = Execute Aggregation on {0}
dbviewer.prepare-new-aggregation = Prepare New Aggregation
diff --git a/plugins/dbviewer/frontend/public/templates/aggregate.html b/plugins/dbviewer/frontend/public/templates/aggregate.html
index 63fa391b593..56c711e00ab 100755
--- a/plugins/dbviewer/frontend/public/templates/aggregate.html
+++ b/plugins/dbviewer/frontend/public/templates/aggregate.html
@@ -25,6 +25,7 @@
+
diff --git a/plugins/density/frontend/public/templates/density.html b/plugins/density/frontend/public/templates/density.html
index cb7962be416..1bd851eb0fa 100644
--- a/plugins/density/frontend/public/templates/density.html
+++ b/plugins/density/frontend/public/templates/density.html
@@ -5,11 +5,8 @@
>
-
-
- {{item.label}}
-
-
+ {{item.label}}
+
diff --git a/plugins/locale/frontend/public/templates/language.html b/plugins/locale/frontend/public/templates/language.html
index abf25177d22..c11d4630004 100644
--- a/plugins/locale/frontend/public/templates/language.html
+++ b/plugins/locale/frontend/public/templates/language.html
@@ -6,10 +6,7 @@
>
-
-
- {{item.label}}
-
+ {{item.label}}
diff --git a/plugins/populator/frontend/public/javascripts/countly.views.js b/plugins/populator/frontend/public/javascripts/countly.views.js
index f091a2a3ddf..8234f1b6907 100644
--- a/plugins/populator/frontend/public/javascripts/countly.views.js
+++ b/plugins/populator/frontend/public/javascripts/countly.views.js
@@ -56,7 +56,7 @@
{value: "funnels", label: CV.i18n("funnels.plugin-title")},
{value: "performance-monitoring", label: CV.i18n("performance-monitoring.title")},
{value: "star-rating", label: CV.i18n("star-rating.plugin-title")},
- {value: "surveys", label: CV.i18n("surveys.plugin-title")},
+ {value: "surveys", label: CV.i18n("surveys.nps.plugin-title")},
];
if (countlyGlobal.apps[countlyCommon.ACTIVE_APP_ID] && countlyGlobal.apps[countlyCommon.ACTIVE_APP_ID].type === "mobile") {
plugins.push({value: "push", label: CV.i18n("push-notification.title")});
diff --git a/plugins/push/frontend/public/localization/push.properties b/plugins/push/frontend/public/localization/push.properties
index 5da6c4ef910..5c292620973 100755
--- a/plugins/push/frontend/public/localization/push.properties
+++ b/plugins/push/frontend/public/localization/push.properties
@@ -22,7 +22,7 @@ push-notification.sent-serie-name = Notifications Sent
push-notification.sent-serie-description = Total number of notifications sent in the selected time period.
push-notification.actions-performed-serie-name = Actions Performed
push-notification.actions-performed-serie-description = Total number of actions performed by users in response to notifications sent, in the selected time period.
-push-notification.table-notification-name = Notificaton name
+push-notification.table-notification-name = Notification name
push-notification.table-status = Status
push-notification.table-created = Created
push-notification.table-date-sent = Date Sent/Scheduled
diff --git a/plugins/push/frontend/public/localization/push_ar.properties b/plugins/push/frontend/public/localization/push_ar.properties
index 0089ddd82fa..1cbe8e1ef58 100644
--- a/plugins/push/frontend/public/localization/push_ar.properties
+++ b/plugins/push/frontend/public/localization/push_ar.properties
@@ -22,7 +22,7 @@ push-notification.sent-serie-name = Notifications Sent
push-notification.sent-serie-description = Total number of notifications sent in the selected time period.
push-notification.actions-performed-serie-name = Actions Performed
push-notification.actions-performed-serie-description = Total number of actions performed by users in response to notifications sent, in the selected time period.
-push-notification.table-notification-name = Notificaton name
+push-notification.table-notification-name = Notification name
push-notification.table-status = Status
push-notification.table-created = Created
push-notification.table-date-sent = Date Sent/Scheduled
diff --git a/plugins/push/frontend/public/localization/push_bg.properties b/plugins/push/frontend/public/localization/push_bg.properties
index 0089ddd82fa..1cbe8e1ef58 100644
--- a/plugins/push/frontend/public/localization/push_bg.properties
+++ b/plugins/push/frontend/public/localization/push_bg.properties
@@ -22,7 +22,7 @@ push-notification.sent-serie-name = Notifications Sent
push-notification.sent-serie-description = Total number of notifications sent in the selected time period.
push-notification.actions-performed-serie-name = Actions Performed
push-notification.actions-performed-serie-description = Total number of actions performed by users in response to notifications sent, in the selected time period.
-push-notification.table-notification-name = Notificaton name
+push-notification.table-notification-name = Notification name
push-notification.table-status = Status
push-notification.table-created = Created
push-notification.table-date-sent = Date Sent/Scheduled
diff --git a/plugins/push/frontend/public/localization/push_ca.properties b/plugins/push/frontend/public/localization/push_ca.properties
index 0089ddd82fa..1cbe8e1ef58 100644
--- a/plugins/push/frontend/public/localization/push_ca.properties
+++ b/plugins/push/frontend/public/localization/push_ca.properties
@@ -22,7 +22,7 @@ push-notification.sent-serie-name = Notifications Sent
push-notification.sent-serie-description = Total number of notifications sent in the selected time period.
push-notification.actions-performed-serie-name = Actions Performed
push-notification.actions-performed-serie-description = Total number of actions performed by users in response to notifications sent, in the selected time period.
-push-notification.table-notification-name = Notificaton name
+push-notification.table-notification-name = Notification name
push-notification.table-status = Status
push-notification.table-created = Created
push-notification.table-date-sent = Date Sent/Scheduled
diff --git a/plugins/push/frontend/public/localization/push_de.properties b/plugins/push/frontend/public/localization/push_de.properties
index 0089ddd82fa..1cbe8e1ef58 100644
--- a/plugins/push/frontend/public/localization/push_de.properties
+++ b/plugins/push/frontend/public/localization/push_de.properties
@@ -22,7 +22,7 @@ push-notification.sent-serie-name = Notifications Sent
push-notification.sent-serie-description = Total number of notifications sent in the selected time period.
push-notification.actions-performed-serie-name = Actions Performed
push-notification.actions-performed-serie-description = Total number of actions performed by users in response to notifications sent, in the selected time period.
-push-notification.table-notification-name = Notificaton name
+push-notification.table-notification-name = Notification name
push-notification.table-status = Status
push-notification.table-created = Created
push-notification.table-date-sent = Date Sent/Scheduled
diff --git a/plugins/push/frontend/public/localization/push_de_DE.properties b/plugins/push/frontend/public/localization/push_de_DE.properties
index 0089ddd82fa..1cbe8e1ef58 100644
--- a/plugins/push/frontend/public/localization/push_de_DE.properties
+++ b/plugins/push/frontend/public/localization/push_de_DE.properties
@@ -22,7 +22,7 @@ push-notification.sent-serie-name = Notifications Sent
push-notification.sent-serie-description = Total number of notifications sent in the selected time period.
push-notification.actions-performed-serie-name = Actions Performed
push-notification.actions-performed-serie-description = Total number of actions performed by users in response to notifications sent, in the selected time period.
-push-notification.table-notification-name = Notificaton name
+push-notification.table-notification-name = Notification name
push-notification.table-status = Status
push-notification.table-created = Created
push-notification.table-date-sent = Date Sent/Scheduled
diff --git a/plugins/push/frontend/public/localization/push_el.properties b/plugins/push/frontend/public/localization/push_el.properties
index 0089ddd82fa..1cbe8e1ef58 100644
--- a/plugins/push/frontend/public/localization/push_el.properties
+++ b/plugins/push/frontend/public/localization/push_el.properties
@@ -22,7 +22,7 @@ push-notification.sent-serie-name = Notifications Sent
push-notification.sent-serie-description = Total number of notifications sent in the selected time period.
push-notification.actions-performed-serie-name = Actions Performed
push-notification.actions-performed-serie-description = Total number of actions performed by users in response to notifications sent, in the selected time period.
-push-notification.table-notification-name = Notificaton name
+push-notification.table-notification-name = Notification name
push-notification.table-status = Status
push-notification.table-created = Created
push-notification.table-date-sent = Date Sent/Scheduled
diff --git a/plugins/push/frontend/public/localization/push_es.properties b/plugins/push/frontend/public/localization/push_es.properties
index 0089ddd82fa..1cbe8e1ef58 100644
--- a/plugins/push/frontend/public/localization/push_es.properties
+++ b/plugins/push/frontend/public/localization/push_es.properties
@@ -22,7 +22,7 @@ push-notification.sent-serie-name = Notifications Sent
push-notification.sent-serie-description = Total number of notifications sent in the selected time period.
push-notification.actions-performed-serie-name = Actions Performed
push-notification.actions-performed-serie-description = Total number of actions performed by users in response to notifications sent, in the selected time period.
-push-notification.table-notification-name = Notificaton name
+push-notification.table-notification-name = Notification name
push-notification.table-status = Status
push-notification.table-created = Created
push-notification.table-date-sent = Date Sent/Scheduled
diff --git a/plugins/push/frontend/public/localization/push_et.properties b/plugins/push/frontend/public/localization/push_et.properties
index 0089ddd82fa..1cbe8e1ef58 100644
--- a/plugins/push/frontend/public/localization/push_et.properties
+++ b/plugins/push/frontend/public/localization/push_et.properties
@@ -22,7 +22,7 @@ push-notification.sent-serie-name = Notifications Sent
push-notification.sent-serie-description = Total number of notifications sent in the selected time period.
push-notification.actions-performed-serie-name = Actions Performed
push-notification.actions-performed-serie-description = Total number of actions performed by users in response to notifications sent, in the selected time period.
-push-notification.table-notification-name = Notificaton name
+push-notification.table-notification-name = Notification name
push-notification.table-status = Status
push-notification.table-created = Created
push-notification.table-date-sent = Date Sent/Scheduled
diff --git a/plugins/push/frontend/public/localization/push_fa_IR.properties b/plugins/push/frontend/public/localization/push_fa_IR.properties
index 0089ddd82fa..1cbe8e1ef58 100644
--- a/plugins/push/frontend/public/localization/push_fa_IR.properties
+++ b/plugins/push/frontend/public/localization/push_fa_IR.properties
@@ -22,7 +22,7 @@ push-notification.sent-serie-name = Notifications Sent
push-notification.sent-serie-description = Total number of notifications sent in the selected time period.
push-notification.actions-performed-serie-name = Actions Performed
push-notification.actions-performed-serie-description = Total number of actions performed by users in response to notifications sent, in the selected time period.
-push-notification.table-notification-name = Notificaton name
+push-notification.table-notification-name = Notification name
push-notification.table-status = Status
push-notification.table-created = Created
push-notification.table-date-sent = Date Sent/Scheduled
diff --git a/plugins/push/frontend/public/localization/push_fr.properties b/plugins/push/frontend/public/localization/push_fr.properties
index 0089ddd82fa..1cbe8e1ef58 100644
--- a/plugins/push/frontend/public/localization/push_fr.properties
+++ b/plugins/push/frontend/public/localization/push_fr.properties
@@ -22,7 +22,7 @@ push-notification.sent-serie-name = Notifications Sent
push-notification.sent-serie-description = Total number of notifications sent in the selected time period.
push-notification.actions-performed-serie-name = Actions Performed
push-notification.actions-performed-serie-description = Total number of actions performed by users in response to notifications sent, in the selected time period.
-push-notification.table-notification-name = Notificaton name
+push-notification.table-notification-name = Notification name
push-notification.table-status = Status
push-notification.table-created = Created
push-notification.table-date-sent = Date Sent/Scheduled
diff --git a/plugins/push/frontend/public/localization/push_hu.properties b/plugins/push/frontend/public/localization/push_hu.properties
index 0089ddd82fa..1cbe8e1ef58 100644
--- a/plugins/push/frontend/public/localization/push_hu.properties
+++ b/plugins/push/frontend/public/localization/push_hu.properties
@@ -22,7 +22,7 @@ push-notification.sent-serie-name = Notifications Sent
push-notification.sent-serie-description = Total number of notifications sent in the selected time period.
push-notification.actions-performed-serie-name = Actions Performed
push-notification.actions-performed-serie-description = Total number of actions performed by users in response to notifications sent, in the selected time period.
-push-notification.table-notification-name = Notificaton name
+push-notification.table-notification-name = Notification name
push-notification.table-status = Status
push-notification.table-created = Created
push-notification.table-date-sent = Date Sent/Scheduled
diff --git a/plugins/push/frontend/public/localization/push_it.properties b/plugins/push/frontend/public/localization/push_it.properties
index 0089ddd82fa..1cbe8e1ef58 100644
--- a/plugins/push/frontend/public/localization/push_it.properties
+++ b/plugins/push/frontend/public/localization/push_it.properties
@@ -22,7 +22,7 @@ push-notification.sent-serie-name = Notifications Sent
push-notification.sent-serie-description = Total number of notifications sent in the selected time period.
push-notification.actions-performed-serie-name = Actions Performed
push-notification.actions-performed-serie-description = Total number of actions performed by users in response to notifications sent, in the selected time period.
-push-notification.table-notification-name = Notificaton name
+push-notification.table-notification-name = Notification name
push-notification.table-status = Status
push-notification.table-created = Created
push-notification.table-date-sent = Date Sent/Scheduled
diff --git a/plugins/push/frontend/public/localization/push_ja.properties b/plugins/push/frontend/public/localization/push_ja.properties
index 604d7795728..f97e0c06156 100644
--- a/plugins/push/frontend/public/localization/push_ja.properties
+++ b/plugins/push/frontend/public/localization/push_ja.properties
@@ -22,7 +22,7 @@ push-notification.sent-serie-name = Notifications Sent
push-notification.sent-serie-description = Total number of notifications sent in the selected time period.
push-notification.actions-performed-serie-name = Actions Performed
push-notification.actions-performed-serie-description = Total number of actions performed by users in response to notifications sent, in the selected time period.
-push-notification.table-notification-name = Notificaton name
+push-notification.table-notification-name = Notification name
push-notification.table-status = Status
push-notification.table-created = Created
push-notification.table-date-sent = Date Sent/Scheduled
diff --git a/plugins/push/frontend/public/localization/push_ko.properties b/plugins/push/frontend/public/localization/push_ko.properties
index 0089ddd82fa..1cbe8e1ef58 100644
--- a/plugins/push/frontend/public/localization/push_ko.properties
+++ b/plugins/push/frontend/public/localization/push_ko.properties
@@ -22,7 +22,7 @@ push-notification.sent-serie-name = Notifications Sent
push-notification.sent-serie-description = Total number of notifications sent in the selected time period.
push-notification.actions-performed-serie-name = Actions Performed
push-notification.actions-performed-serie-description = Total number of actions performed by users in response to notifications sent, in the selected time period.
-push-notification.table-notification-name = Notificaton name
+push-notification.table-notification-name = Notification name
push-notification.table-status = Status
push-notification.table-created = Created
push-notification.table-date-sent = Date Sent/Scheduled
diff --git a/plugins/push/frontend/public/localization/push_ko_KR.properties b/plugins/push/frontend/public/localization/push_ko_KR.properties
index 0089ddd82fa..1cbe8e1ef58 100644
--- a/plugins/push/frontend/public/localization/push_ko_KR.properties
+++ b/plugins/push/frontend/public/localization/push_ko_KR.properties
@@ -22,7 +22,7 @@ push-notification.sent-serie-name = Notifications Sent
push-notification.sent-serie-description = Total number of notifications sent in the selected time period.
push-notification.actions-performed-serie-name = Actions Performed
push-notification.actions-performed-serie-description = Total number of actions performed by users in response to notifications sent, in the selected time period.
-push-notification.table-notification-name = Notificaton name
+push-notification.table-notification-name = Notification name
push-notification.table-status = Status
push-notification.table-created = Created
push-notification.table-date-sent = Date Sent/Scheduled
diff --git a/plugins/push/frontend/public/localization/push_lv_LV.properties b/plugins/push/frontend/public/localization/push_lv_LV.properties
index 0089ddd82fa..1cbe8e1ef58 100644
--- a/plugins/push/frontend/public/localization/push_lv_LV.properties
+++ b/plugins/push/frontend/public/localization/push_lv_LV.properties
@@ -22,7 +22,7 @@ push-notification.sent-serie-name = Notifications Sent
push-notification.sent-serie-description = Total number of notifications sent in the selected time period.
push-notification.actions-performed-serie-name = Actions Performed
push-notification.actions-performed-serie-description = Total number of actions performed by users in response to notifications sent, in the selected time period.
-push-notification.table-notification-name = Notificaton name
+push-notification.table-notification-name = Notification name
push-notification.table-status = Status
push-notification.table-created = Created
push-notification.table-date-sent = Date Sent/Scheduled
diff --git a/plugins/push/frontend/public/localization/push_nb_NO.properties b/plugins/push/frontend/public/localization/push_nb_NO.properties
index 0089ddd82fa..1cbe8e1ef58 100644
--- a/plugins/push/frontend/public/localization/push_nb_NO.properties
+++ b/plugins/push/frontend/public/localization/push_nb_NO.properties
@@ -22,7 +22,7 @@ push-notification.sent-serie-name = Notifications Sent
push-notification.sent-serie-description = Total number of notifications sent in the selected time period.
push-notification.actions-performed-serie-name = Actions Performed
push-notification.actions-performed-serie-description = Total number of actions performed by users in response to notifications sent, in the selected time period.
-push-notification.table-notification-name = Notificaton name
+push-notification.table-notification-name = Notification name
push-notification.table-status = Status
push-notification.table-created = Created
push-notification.table-date-sent = Date Sent/Scheduled
diff --git a/plugins/push/frontend/public/localization/push_nl_NL.properties b/plugins/push/frontend/public/localization/push_nl_NL.properties
index 0089ddd82fa..1cbe8e1ef58 100644
--- a/plugins/push/frontend/public/localization/push_nl_NL.properties
+++ b/plugins/push/frontend/public/localization/push_nl_NL.properties
@@ -22,7 +22,7 @@ push-notification.sent-serie-name = Notifications Sent
push-notification.sent-serie-description = Total number of notifications sent in the selected time period.
push-notification.actions-performed-serie-name = Actions Performed
push-notification.actions-performed-serie-description = Total number of actions performed by users in response to notifications sent, in the selected time period.
-push-notification.table-notification-name = Notificaton name
+push-notification.table-notification-name = Notification name
push-notification.table-status = Status
push-notification.table-created = Created
push-notification.table-date-sent = Date Sent/Scheduled
diff --git a/plugins/push/frontend/public/localization/push_pl_PL.properties b/plugins/push/frontend/public/localization/push_pl_PL.properties
index 0089ddd82fa..1cbe8e1ef58 100644
--- a/plugins/push/frontend/public/localization/push_pl_PL.properties
+++ b/plugins/push/frontend/public/localization/push_pl_PL.properties
@@ -22,7 +22,7 @@ push-notification.sent-serie-name = Notifications Sent
push-notification.sent-serie-description = Total number of notifications sent in the selected time period.
push-notification.actions-performed-serie-name = Actions Performed
push-notification.actions-performed-serie-description = Total number of actions performed by users in response to notifications sent, in the selected time period.
-push-notification.table-notification-name = Notificaton name
+push-notification.table-notification-name = Notification name
push-notification.table-status = Status
push-notification.table-created = Created
push-notification.table-date-sent = Date Sent/Scheduled
diff --git a/plugins/push/frontend/public/localization/push_pt_BR.properties b/plugins/push/frontend/public/localization/push_pt_BR.properties
index 0089ddd82fa..1cbe8e1ef58 100644
--- a/plugins/push/frontend/public/localization/push_pt_BR.properties
+++ b/plugins/push/frontend/public/localization/push_pt_BR.properties
@@ -22,7 +22,7 @@ push-notification.sent-serie-name = Notifications Sent
push-notification.sent-serie-description = Total number of notifications sent in the selected time period.
push-notification.actions-performed-serie-name = Actions Performed
push-notification.actions-performed-serie-description = Total number of actions performed by users in response to notifications sent, in the selected time period.
-push-notification.table-notification-name = Notificaton name
+push-notification.table-notification-name = Notification name
push-notification.table-status = Status
push-notification.table-created = Created
push-notification.table-date-sent = Date Sent/Scheduled
diff --git a/plugins/push/frontend/public/localization/push_ro.properties b/plugins/push/frontend/public/localization/push_ro.properties
index 0089ddd82fa..1cbe8e1ef58 100644
--- a/plugins/push/frontend/public/localization/push_ro.properties
+++ b/plugins/push/frontend/public/localization/push_ro.properties
@@ -22,7 +22,7 @@ push-notification.sent-serie-name = Notifications Sent
push-notification.sent-serie-description = Total number of notifications sent in the selected time period.
push-notification.actions-performed-serie-name = Actions Performed
push-notification.actions-performed-serie-description = Total number of actions performed by users in response to notifications sent, in the selected time period.
-push-notification.table-notification-name = Notificaton name
+push-notification.table-notification-name = Notification name
push-notification.table-status = Status
push-notification.table-created = Created
push-notification.table-date-sent = Date Sent/Scheduled
diff --git a/plugins/push/frontend/public/localization/push_ru.properties b/plugins/push/frontend/public/localization/push_ru.properties
index 0089ddd82fa..1cbe8e1ef58 100644
--- a/plugins/push/frontend/public/localization/push_ru.properties
+++ b/plugins/push/frontend/public/localization/push_ru.properties
@@ -22,7 +22,7 @@ push-notification.sent-serie-name = Notifications Sent
push-notification.sent-serie-description = Total number of notifications sent in the selected time period.
push-notification.actions-performed-serie-name = Actions Performed
push-notification.actions-performed-serie-description = Total number of actions performed by users in response to notifications sent, in the selected time period.
-push-notification.table-notification-name = Notificaton name
+push-notification.table-notification-name = Notification name
push-notification.table-status = Status
push-notification.table-created = Created
push-notification.table-date-sent = Date Sent/Scheduled
diff --git a/plugins/push/frontend/public/localization/push_sv.properties b/plugins/push/frontend/public/localization/push_sv.properties
index 0089ddd82fa..1cbe8e1ef58 100644
--- a/plugins/push/frontend/public/localization/push_sv.properties
+++ b/plugins/push/frontend/public/localization/push_sv.properties
@@ -22,7 +22,7 @@ push-notification.sent-serie-name = Notifications Sent
push-notification.sent-serie-description = Total number of notifications sent in the selected time period.
push-notification.actions-performed-serie-name = Actions Performed
push-notification.actions-performed-serie-description = Total number of actions performed by users in response to notifications sent, in the selected time period.
-push-notification.table-notification-name = Notificaton name
+push-notification.table-notification-name = Notification name
push-notification.table-status = Status
push-notification.table-created = Created
push-notification.table-date-sent = Date Sent/Scheduled
diff --git a/plugins/push/frontend/public/localization/push_tr.properties b/plugins/push/frontend/public/localization/push_tr.properties
index 2b362ae9129..2cf8f229e1a 100644
--- a/plugins/push/frontend/public/localization/push_tr.properties
+++ b/plugins/push/frontend/public/localization/push_tr.properties
@@ -22,7 +22,7 @@ push-notification.sent-serie-name = Notifications Sent
push-notification.sent-serie-description = Total number of notifications sent in the selected time period.
push-notification.actions-performed-serie-name = Actions Performed
push-notification.actions-performed-serie-description = Total number of actions performed by users in response to notifications sent, in the selected time period.
-push-notification.table-notification-name = Notificaton name
+push-notification.table-notification-name = Notification name
push-notification.table-status = Status
push-notification.table-created = Created
push-notification.table-date-sent = Date Sent/Scheduled
diff --git a/plugins/push/frontend/public/localization/push_uk.properties b/plugins/push/frontend/public/localization/push_uk.properties
index 0089ddd82fa..1cbe8e1ef58 100644
--- a/plugins/push/frontend/public/localization/push_uk.properties
+++ b/plugins/push/frontend/public/localization/push_uk.properties
@@ -22,7 +22,7 @@ push-notification.sent-serie-name = Notifications Sent
push-notification.sent-serie-description = Total number of notifications sent in the selected time period.
push-notification.actions-performed-serie-name = Actions Performed
push-notification.actions-performed-serie-description = Total number of actions performed by users in response to notifications sent, in the selected time period.
-push-notification.table-notification-name = Notificaton name
+push-notification.table-notification-name = Notification name
push-notification.table-status = Status
push-notification.table-created = Created
push-notification.table-date-sent = Date Sent/Scheduled
diff --git a/plugins/push/frontend/public/localization/push_vi.properties b/plugins/push/frontend/public/localization/push_vi.properties
index 0089ddd82fa..1cbe8e1ef58 100644
--- a/plugins/push/frontend/public/localization/push_vi.properties
+++ b/plugins/push/frontend/public/localization/push_vi.properties
@@ -22,7 +22,7 @@ push-notification.sent-serie-name = Notifications Sent
push-notification.sent-serie-description = Total number of notifications sent in the selected time period.
push-notification.actions-performed-serie-name = Actions Performed
push-notification.actions-performed-serie-description = Total number of actions performed by users in response to notifications sent, in the selected time period.
-push-notification.table-notification-name = Notificaton name
+push-notification.table-notification-name = Notification name
push-notification.table-status = Status
push-notification.table-created = Created
push-notification.table-date-sent = Date Sent/Scheduled
diff --git a/plugins/push/frontend/public/localization/push_zh_CN.properties b/plugins/push/frontend/public/localization/push_zh_CN.properties
index 0089ddd82fa..1cbe8e1ef58 100644
--- a/plugins/push/frontend/public/localization/push_zh_CN.properties
+++ b/plugins/push/frontend/public/localization/push_zh_CN.properties
@@ -22,7 +22,7 @@ push-notification.sent-serie-name = Notifications Sent
push-notification.sent-serie-description = Total number of notifications sent in the selected time period.
push-notification.actions-performed-serie-name = Actions Performed
push-notification.actions-performed-serie-description = Total number of actions performed by users in response to notifications sent, in the selected time period.
-push-notification.table-notification-name = Notificaton name
+push-notification.table-notification-name = Notification name
push-notification.table-status = Status
push-notification.table-created = Created
push-notification.table-date-sent = Date Sent/Scheduled
diff --git a/plugins/push/frontend/public/templates/push-notification-tab.html b/plugins/push/frontend/public/templates/push-notification-tab.html
index f350ccd1cd3..0f9665a8619 100644
--- a/plugins/push/frontend/public/templates/push-notification-tab.html
+++ b/plugins/push/frontend/public/templates/push-notification-tab.html
@@ -3,18 +3,18 @@
-
+
-
+
-
+