Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
89 changes: 89 additions & 0 deletions components/jaggeryapps/portal/controllers/apis/telcoanalytics.jag
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,11 @@
var ACTIVE_USERS_DAILY_PER_OPERATOR_PER_APP_PER_DAY_TABLE = "COM_WSO2TELCO_SUMMARY_ACTIVE_USERS_DAILY";
var ACTIVE_USERS_MONTHLY_PER_OPERATOR_PER_APP_PER_MONTH_TABLE = "COM_WSO2TELCO_SUMMARY_ACTIVE_USERS_MONTHLY";

var TOTAL_TOKENS_PER_APP_PER_OPERATOR_PER_DAY_TABLE = "COM_WSO2TELCO_SUMMARY_TOKEN_COUNTS";
var TOTAL_TOKENS_PER_OPERATOR_PER_DAY_TABLE = "COM_WSO2TELCO_SUMMARY_OPERATOR_TOKEN_COUNTS";
var TOTAL_TOKENS_PER_DAY_TABLE = "COM_WSO2TELCO_SUMMARY_TOTAL_TOKEN_COUNTS";
var TOTAL_TOKENS_PER_APP_PER_DAY_TABLE = "COM_WSO2TELCO_SUMMARY_APP_TOKEN_COUNTS";


var TIME_FROM_PARAM = "timeFrom";
var TIME_TO_PARAM = "timeTo";
Expand Down Expand Up @@ -92,6 +97,7 @@
var TYPE_MSISDNS_SUCCESS_FAILED_REPORT=24;
var TYPE_LOGGING_CHECK=25;
var TYPE_WRONG_EP=26;
var TYPE_TOTAL_TOKENS_V2=27;
var TYPE_USER_REG=28;
var log = new Log();
var carbon = require('carbon');
Expand All @@ -112,6 +118,7 @@
var activeUsersDailyTable = null;
var activeUsersMonthlyTable = null;
var dropoutTable = null;
var totalTokenTable = null;
if (configs.cacheTimeoutSeconds) {
cacheTimeoutSeconds = parseInt(configs.cacheTimeoutSeconds);
}
Expand Down Expand Up @@ -186,6 +193,7 @@
dropoutTable = DROPOUTS_PER_APP_PER_OPERATOR_PER_DAY_TABLE;
activeUsersDailyTable=ACTIVE_USERS_DAILY_PER_OPERATOR_PER_APP_PER_DAY_TABLE;
activeUsersMonthlyTable=ACTIVE_USERS_MONTHLY_PER_OPERATOR_PER_APP_PER_MONTH_TABLE;
totalTokenTable = TOTAL_TOKENS_PER_APP_PER_OPERATOR_PER_DAY_TABLE;
} else if (appParam == "undefined" || appParam == "") {
roleFilterQuery = operatorQuery;
dailyRegistrationTable = DAILY_REGISTRATION_PER_OPERATOR_PER_DAY_TABLE;
Expand All @@ -197,6 +205,7 @@
dropoutTable = DROPOUTS_PER_OPERATOR_PER_DAY_TABLE;
activeUsersDailyTable=ACTIVE_USERS_DAILY_PER_OPERATOR_PER_DAY_TABLE;
activeUsersMonthlyTable=ACTIVE_USERS_MONTHLY_PER_OPERATOR_PER_MONTH_TABLE;
totalTokenTable = TOTAL_TOKENS_PER_OPERATOR_PER_DAY_TABLE;
}
isDashboardViewer = true;
isOperator = true ;
Expand All @@ -215,6 +224,7 @@
dropoutTable = DROPOUTS_PER_APP_PER_OPERATOR_PER_DAY_TABLE;
activeUsersDailyTable=ACTIVE_USERS_DAILY_PER_OPERATOR_PER_APP_PER_DAY_TABLE;
activeUsersMonthlyTable=ACTIVE_USERS_MONTHLY_PER_OPERATOR_PER_APP_PER_MONTH_TABLE;
totalTokenTable = TOTAL_TOKENS_PER_OPERATOR_PER_DAY_TABLE;
} else if (operatorParam == "undefined" || operatorParam == "") {
roleFilterQuery = serviceProviderQuery;
dailyRegistrationTable = DAILY_REGISTRATION_PER_APP_PER_DAY_TABLE;
Expand All @@ -225,6 +235,7 @@
dropoutTable = DROPOUTS_PER_APP_PER_DAY_TABLE;
activeUsersDailyTable=ACTIVE_USERS_DAILY_PER_APP_PER_DAY_TABLE;
activeUsersMonthlyTable=ACTIVE_USERS_MONTHLY_PER_APP_PER_MONTH_TABLE;
totalTokenTable = TOTAL_TOKENS_PER_DAY_TABLE;

}
isDashboardViewer = true;
Expand All @@ -244,6 +255,7 @@
dropoutTable = DROPOUTS_PER_APP_PER_OPERATOR_PER_DAY_TABLE;
activeUsersDailyTable=ACTIVE_USERS_DAILY_PER_OPERATOR_PER_APP_PER_DAY_TABLE;
activeUsersMonthlyTable=ACTIVE_USERS_MONTHLY_PER_OPERATOR_PER_APP_PER_MONTH_TABLE;
totalTokenTable = TOTAL_TOKENS_PER_APP_PER_OPERATOR_PER_DAY_TABLE;
} else if (operatorParam != "undefined" && operatorParam != "" && (appParam == "undefined" || appParam == "")) {
roleFilterQuery = " AND operator: \"" + operatorParam + "\"";
dailyRegistrationTable = DAILY_REGISTRATION_PER_OPERATOR_PER_DAY_TABLE;
Expand All @@ -255,6 +267,7 @@
dropoutTable = DROPOUTS_PER_OPERATOR_PER_DAY_TABLE;
activeUsersMonthlyTable=ACTIVE_USERS_MONTHLY_PER_OPERATOR_PER_MONTH_TABLE;
activeUsersDailyTable=ACTIVE_USERS_DAILY_PER_OPERATOR_PER_DAY_TABLE;
totalTokenTable = TOTAL_TOKENS_PER_OPERATOR_PER_DAY_TABLE;
} else if ((operatorParam == "undefined" || operatorParam == "") && appParam != "undefined" && appParam != "") {
roleFilterQuery = " AND appID: \"" + appParam + "\"";
dailyRegistrationTable = DAILY_REGISTRATION_PER_APP_PER_DAY_TABLE;
Expand All @@ -265,6 +278,7 @@
dropoutTable = DROPOUTS_PER_APP_PER_DAY_TABLE;
activeUsersDailyTable=ACTIVE_USERS_DAILY_PER_APP_PER_DAY_TABLE;
activeUsersMonthlyTable=ACTIVE_USERS_MONTHLY_PER_APP_PER_MONTH_TABLE;
totalTokenTable = TOTAL_TOKENS_PER_APP_PER_DAY_TABLE;
} else if ((operatorParam == "undefined" || operatorParam == "") && (appParam == "undefined" || appParam == "")) {
roleFilterQuery = "";
dailyRegistrationTable = DAILY_REGISTRATION_TOTAL_PER_DAY_TABLE;
Expand All @@ -276,6 +290,7 @@
dropoutTable = DROPOUTS_TOTAL_PER_DAY_TABLE;
activeUsersDailyTable=ACTIVE_USERS_DAILY_TOTAL_PER_DAY_TABLE;
activeUsersMonthlyTable=ACTIVE_USERS_MONTHLY_TOTAL_PER_MONTH_TABLE;
totalTokenTable = TOTAL_TOKENS_PER_DAY_TABLE;
}
isDashboardViewer = true;
isAdmin = true;
Expand Down Expand Up @@ -1345,6 +1360,80 @@

break;
}
case TYPE_TOTAL_TOKENS_V2 :
{
searchParams = {
query: finalQuery,
start: 0,
count: MAX_ALLOWED_RECORDS,
sortBy: [{
"field": "_timestamp",
"sortType": "ASC"
}]
};
result = connector.search(loggedInUser, totalTokenTable, stringify(searchParams));
if (result.getStatusCode() == 200) {
data = JSON.parse(result.getMessage());
data.forEach(function (record, i) {
var values = record.values;
var totT = [values["day"].substring(5), "TOTAL", values["totalTokenCount"]];
var sucT = [values["day"].substring(5), "SUCCESS", values["tokenSuccessCount"]];
var failedT = [values["day"].substring(5), "FAILED", values["tokenFailedCount"]];
results.push(totT);
results.push(sucT);
results.push(failedT);
});
result = {
message: stringify(results),
statusCode: result.getStatusCode(),
status: result.getStatus()
};
} else {
result = {
message: result.getMessage(),
statusCode: result.getStatusCode(),
status: result.getStatus()
};
}
break;


}
case TYPE_USER_REG :
{
if ((isOperator || isAdmin) && (appParam == "undefined" || appParam == "")) {
result = {
message: true,
statusCode: 200,
status: "SUCCESS"
};
} else {
result = {
message: false,
statusCode: 200,
status: "FAILED"
};
}
break;
}

case TYPE_MSISDNS_SHARING_REPORT :
{
if (isOperator || isServiceProvider ) {
result = {
message: true,
statusCode: 200,
status: "SUCCESS"
};
} else {
result = {
message: false,
statusCode: 200,
status: "FAILED"
};
}
break;
}
default:
result = '{ "status": "Failed", "statusCode": "500", "message": "Unidentified operation" }';
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,5 +84,7 @@
<dependency artifact="AuthAttemptsScopeSparkscripts" version="1.0.0" include="true" serverRole="DataAnalyticsServer"/>
<dependency artifact="DownloadUSSDReport" version="1.0.0" include="true" serverRole="DataAnalyticsServer"/>
<dependency artifact="DownloadUSSDReportV2" version="1.0.0" include="true" serverRole="DataAnalyticsServer"/>
<dependency artifact="TotalTokensBarChart_v2" version="1.0.0" include="true" serverRole="DataAnalyticsServer"/>
<dependency artifact="TotalTokenCountsSparkscripts" version="1.0.0" include="true" serverRole="DataAnalyticsServer"/>
</artifact>
</artifacts>
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ function TelcoAnalyticsClient() {
var TYPE_MONTHLY_ACTIVE_USERS = 18;
var TYPE_TOTAL_TOKENS = 19;
var TYPE_TOTAL_AUTH_ATTEMPTS=20;
var TYPE_TOTAL_TOKENS_V2=27;
var HTTP_GET = "GET";
var HTTP_POST = "POST";
var RESPONSE_ELEMENT = "responseJSON";
Expand Down Expand Up @@ -107,6 +108,10 @@ function TelcoAnalyticsClient() {
this.getTotalTokens = function (filter, callback, error) {
this.getData(filter, TYPE_TOTAL_TOKENS, callback, error);
};

this.getTotalTokens_v2 = function (filter, callback, error) {
this.getData(filter, TYPE_TOTAL_TOKENS_V2, callback, error);
};

this.getData = function (filter, type, callback, error) {
var timeFrom=filter["timeFrom"];
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<artifact name="TotalTokensBarChart_v2" version="1.0.0" type="dashboards/gadget" serverRole="DataAnalyticsServer">
<file>total-tokens-v2</file>
</artifact>
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/*body.dark svg.marks .mark-group .background {
fill: #121822 !important;
}*/

body.dark svg.marks .mark-group .mark-text text {
fill: #c3cbdb !important;
}

body.dark svg.marks .mark-group .mark-rule line {
stroke: #E3E5E6 !important;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"id": "total-tokens-v2",
"title": "Total Token V2",
"type": "gadget",
"thumbnail": "store://gadget/usa-business-revenue/index.png",
"data": {
"url": "store://gadget/total-tokens-v2/index.xml"
},
"listen": {
"subscriber": {
"type": "date-range",
"description": "This notifies message generated in publisher"
}
},
"styles": {
"borders": false,
"title": false
},
"toolbarButtons": {
"default": {
"maximize": true
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
<?xml version="1.0" encoding="UTF-8" ?>
<Module>
<ModulePrefs title="Publisher" description="Publisher">
<Require feature="pubsub-2"/>
<Require feature="dynamic-height"/>
<Require feature="setprefs"/>
<Require feature="wso2-gadgets-controls"/>
<Require feature="wso2-gadgets-state"/>
</ModulePrefs>

<Content type="html">
<![CDATA[
<head>

<!-- Theme -->
<link rel="stylesheet" type="text/css" href="../commons/libs/bootstrap_3.3.5/css/bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="../commons/libs/font-wso2_1.0.0/css/font-wso2.min.css" />
<link rel="stylesheet" type="text/css" href="../commons/libs/theme-wso2_1.0/css/theme-wso2.css" />
<link rel="stylesheet" type="text/css" href="../commons/css/gadget.css" />

<!-- jQuery -->
<script src="../commons/js/jquery-1.10.2.js"></script>
<script src="../commons/js/moment.min.js"></script>
<script src="../commons/js/gadget-utils.js"></script>
<script src="../commons/libs/bootstrap_3.3.5/js/bootstrap.min.js"></script>

<!-- Include VizGrammar -->
<script src="../commons/js/d3.min.js"></script>
<script src="../commons/js/vega.js"></script>
<script src="../commons/js/VizGrammar.min.js"></script>
<script src="../commons/js/colorbrewer.js"></script>
<script src="../commons/js/VizGrammarSettings.js"></script>

<!-- Custom -->
<link rel="stylesheet" type="text/css" href="css/custom.css" />

<!-- Include Chart UI Constants -->
<script src="../commons/js/telco-chartui.js"></script>

<script src="js/carbon-analytics.js"></script>
<script src="../commons/js/telco-analytics.js"></script>
<script src="js/outputAdapterUiLibrary.js"></script>
<script src="js/wso2gadgets.js"></script>
<script src="js/main.js"></script>
<script>
wso2.gadgets.controls.addButtonListener('DOWNLOAD', function(e) {
$('#modalPopup').modal({
show: 'true'
});
});
</script>

</head>
<body>
<div class="modal fade nano" id="modalPopup" role="dialog">
<div class="nano-content">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">Export Data</h4>
</div>
<div class="modal-body">
<br> <br> <br>
<table>
<tr><td width="20%">
<div class="form-group">
<label for="file type">Select the Type:</label>
</div>
</td>
<td width="10%">

<a class="btn btn-primary btn-md" id="downloadpdf"><i class="fw fw-pdf"></i> PDF</a>

</td>

<td width="10%">

<a class="btn btn-primary btn-md" id="downloadxl"><i class="fw fw-xq"></i> EXCEL</a>

</td></tr></table>
<br><br>

</div>
<div class="modal-footer">
<button type="button" class="btn btn-danger" data-dismiss="modal">Cancel</button>

</div>
</div>
</div>
</div>
</div>
<div id="canvas"></div>

</body>
]]>
</Content>
</Module>

Large diffs are not rendered by default.

Loading