|
|
|
@ -26,27 +26,39 @@
|
|
|
|
|
|
|
|
|
|
var totp = new jsOTP.totp();
|
|
|
|
|
|
|
|
|
|
var ls_text = localStorage.getItem("otp");
|
|
|
|
|
var keys = [];
|
|
|
|
|
if (ls_text !== null && ls_text != "") {
|
|
|
|
|
var keys = JSON.parse(ls_text || "[]");
|
|
|
|
|
if (keys.length > 0) {
|
|
|
|
|
$("#nokeys").css("display", "none");
|
|
|
|
|
}
|
|
|
|
|
for (var i = 0; i < keys.length; i++) {
|
|
|
|
|
var code = totp.getOtp(keys[i]["secret"]);
|
|
|
|
|
// Escape HTML characters
|
|
|
|
|
var label = $('<div/>').html(keys[i]["label"]).html();
|
|
|
|
|
var issuer = $('<div/>').text(keys[i]["issuer"]).html();
|
|
|
|
|
$("#codelist").append("<div class=\"list-group-item\" id=\"codeitem_" + i + "\">"
|
|
|
|
|
+ "<span class=\"pull-right\" style=\"color: red;\" onclick=\"deleteCode(" + i + ")\"><i class=\"fa fa-trash-o\"></i></span>"
|
|
|
|
|
+ "<p class=\"h6\">" + label + "</p>"
|
|
|
|
|
+ "<div class=\"h3 code\" style=\"font-weight: bold;\">" + code + "</div>"
|
|
|
|
|
+ "<p class=\"small\">" + issuer + "</p>"
|
|
|
|
|
+ "</div>");
|
|
|
|
|
function load(jsontext) {
|
|
|
|
|
var keys = [];
|
|
|
|
|
if (jsontext !== null && jsontext != "") {
|
|
|
|
|
var keys = JSON.parse(jsontext || "[]");
|
|
|
|
|
if (keys.length > 0) {
|
|
|
|
|
$("#nokeys").css("display", "none");
|
|
|
|
|
}
|
|
|
|
|
for (var i = 0; i < keys.length; i++) {
|
|
|
|
|
var code = totp.getOtp(keys[i]["secret"]);
|
|
|
|
|
// Escape HTML characters
|
|
|
|
|
var label = $('<div/>').html(keys[i]["label"]).html();
|
|
|
|
|
var issuer = $('<div/>').text(keys[i]["issuer"]).html();
|
|
|
|
|
$("#codelist").append("<div class=\"list-group-item\" id=\"codeitem_" + i + "\">"
|
|
|
|
|
+ "<span class=\"pull-right\" style=\"color: red;\" onclick=\"deleteCode(" + i + ")\"><i class=\"fa fa-trash-o\"></i></span>"
|
|
|
|
|
+ "<p class=\"h6\">" + label + "</p>"
|
|
|
|
|
+ "<div class=\"h3 code\" style=\"font-weight: bold;\">" + code + "</div>"
|
|
|
|
|
+ "<p class=\"small\">" + issuer + "</p>"
|
|
|
|
|
+ "</div>");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var ls_text = localStorage.getItem("otp");
|
|
|
|
|
if (ls_text === null || ls_text == "") {
|
|
|
|
|
// Recover from NativeStorage
|
|
|
|
|
NativeStorage.getItem("otp", function (data) {
|
|
|
|
|
localStorage.setItem("otp");
|
|
|
|
|
load(data);
|
|
|
|
|
});
|
|
|
|
|
} else {
|
|
|
|
|
load(ls_text);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function refreshCountdown() {
|
|
|
|
|
var percent = ((30 - ((new Date).getSeconds() % 30)) / 30) * 100;
|
|
|
|
|
$("#countdown").css("width", percent + "%");
|
|
|
|
|