2019-04-13 12:46:03 -04:00

127 lines
3.2 KiB
JavaScript

registerController("InternetSpeedTestController", ['$api', '$scope','$window','$route', '$http', function ($api, $scope, $window, $route, $http) {
/*
* Author: trashbo4t (github.com/trashbo4t)
*/
getPreviousTests();
$scope.previous = [];
$scope.previousDisplay = [];
$scope.throbber = true;
$scope.loading = "Running";
$scope.working = "Running speed test...";
$scope.library = true;
$scope.currentSpeedTest = false;
$scope.currentSpeedTestData = {};
$scope.fileToLookup = "";
function getPreviousTests() {
$api.request({
module: "InternetSpeedTest",
action: "getPreviousTests"
}, function (response) {
console.log("getPreviousTests", response);
for (var i = 0; i < response.length; i++)
{
var ok = $scope.previous.includes(response[i])
if (!ok)
{
var res = response[i].split("/");
$scope.previous.push(response[i]);
var res2 = res[5].split("-speedtest");
$scope.previousDisplay.push(res2[0]);
}
}
$scope.previousDisplay.reverse();
});
};
$scope.clearTests = function () {
$api.request({
module: "InternetSpeedTest",
action: "clearTests",
}, function (response) {
});
$window.location.reload()
};
$scope.reloadPage = function () {
$api.request({
module: "InternetSpeedTest",
action: "clearLogFile",
}, function (response) {
});
$scope.currentSpeedTest = false;
$window.location.reload()
};
$scope.getSpeedTestFromFile = function (file) {
file = file.replace(/(\r\n\t|\n|\r\t)/gm,"");
$scope.fileToLookup = "/pineapple/modules/InternetSpeedTest/tests/"+file+"-speedtest";
console.log("getSpeedTestFromFile", "looking up speed test file " + $scope.fileToLookup);
$api.request({
module: "InternetSpeedTest",
action: "getSpeedTestFromFile",
file: $scope.fileToLookup
}, function (response) {
$scope.currentSpeedTest = $scope.speedTestToLookup;
if (response == false)
{
$scope.currentSpeedTest = "Failed";
$scope.currentSpeedTestData = "Invalid filename..";
}
else
{
$scope.currentSpeedTest = "Success";
$scope.currentSpeedTestData = response;
}
console.log("getSpeedTestFromFile response:", $scope.currentSpeedTestData);
$scope.library = false;
});
};
$scope.startSpeedTest = function () {
$scope.loading = "Running Test";
$scope.working = "Your Internet Speed Test is running. Please be patient, this may take a minute to finish depending on your internet speed.";
$scope.throbber = true;
console.log("startSpeedTest", "starting test...");
$api.request({
module: "InternetSpeedTest",
action: "startSpeedTest",
}, function (response) {
console.log("startSpeedTest", response);
$scope.currentSpeedTest = "";
if (response == false)
{
$scope.currentSpeedTest = "Failed";
$scope.currentSpeedTestData = "Test failed. Verify you are connected to the internet.";
}
else
{
$scope.currentSpeedTest = "Success";
$scope.currentSpeedTestData = response;
$scope.fileToLookup = "Running speed test";
}
// fire up the throbber
$scope.working = "click anywhere to continue";
$scope.loading = "Done";
$scope.library = false;
$scope.throbber = false;
});
};
}]);