|
|
|
/*
|
|
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
function loadHomePage(reload) {
|
|
|
|
if (typeof reload == 'undefined') {
|
|
|
|
reload = false;
|
|
|
|
}
|
|
|
|
$.post(localStorage.getItem("syncurl"), {
|
|
|
|
username: localStorage.getItem("username"),
|
|
|
|
key: localStorage.getItem("key"),
|
|
|
|
action: "listapps"
|
|
|
|
}, function (data) {
|
|
|
|
if (data.status === 'OK') {
|
|
|
|
if (!reload) {
|
|
|
|
loadingProgressDialog.setProgress(70);
|
|
|
|
}
|
|
|
|
var appcards = [];
|
|
|
|
Object.keys(data.apps).forEach(function (k) {
|
|
|
|
var app = data.apps[k];
|
|
|
|
var iconurl = app.icon;
|
|
|
|
if (!app.icon.startsWith("http")) {
|
|
|
|
iconurl = app.url + app.icon;
|
|
|
|
}
|
|
|
|
if (!app.card) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
appcards.push({
|
|
|
|
api: app.mobileapi,
|
|
|
|
url: app.url,
|
|
|
|
icon: iconurl,
|
|
|
|
title: app.title,
|
|
|
|
text: app.card.string,
|
|
|
|
color: app.card.color
|
|
|
|
});
|
|
|
|
});
|
|
|
|
if (!reload) {
|
|
|
|
loadingProgressDialog.setProgress(80);
|
|
|
|
loadingProgressDialog.setText('Notifications');
|
|
|
|
}
|
|
|
|
getNotifications(function (notifs) {
|
|
|
|
notifications = [];
|
|
|
|
if (notifs != false) {
|
|
|
|
Object.keys(notifs).forEach(function (k) {
|
|
|
|
var notif = notifs[k];
|
|
|
|
if (!notif.seen) {
|
|
|
|
notifications.push(notif);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
if (notifications == []) {
|
|
|
|
notifications = false;
|
|
|
|
}
|
|
|
|
if (reload) {
|
|
|
|
// Make it seem like it's doing something on fast connections
|
|
|
|
setTimeout(function () {
|
|
|
|
app.ptr.done();
|
|
|
|
router.navigate("/home", {
|
|
|
|
context: {
|
|
|
|
appcards: appcards,
|
|
|
|
notifications: notifications,
|
|
|
|
unreadnotifications: (notifications != false && notifications != []),
|
|
|
|
homeloaded: true
|
|
|
|
},
|
|
|
|
reloadCurrent: true
|
|
|
|
});
|
|
|
|
}, 500);
|
|
|
|
} else {
|
|
|
|
loadingProgressDialog.setText('Home');
|
|
|
|
loadingProgressDialog.setProgress(90);
|
|
|
|
router.navigate("/home", {
|
|
|
|
context: {
|
|
|
|
appcards: appcards,
|
|
|
|
notifications: notifications,
|
|
|
|
unreadnotifications: (notifications != false && notifications != []),
|
|
|
|
homeloaded: true
|
|
|
|
}
|
|
|
|
});
|
|
|
|
$(".view-main").on("click", "#applist .applist-item", function () {
|
|
|
|
launchapp($(this).data("api"), $(this).data("url"), $(this).data("icon"), $(this).data("title"));
|
|
|
|
});
|
|
|
|
loadingProgressDialog.setProgress(100);
|
|
|
|
loadingProgressDialog.close();
|
|
|
|
}
|
|
|
|
});
|
|
|
|
} else {
|
|
|
|
if (reload) {
|
|
|
|
app.ptr.done();
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
loadingProgressDialog.close();
|
|
|
|
app.dialog.alert(data.msg, "Error", function () {
|
|
|
|
restartApplication();
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}, "json").fail(function () {
|
|
|
|
loadingProgressDialog.close();
|
|
|
|
app.dialog.alert("Could not connect to the server. Try again later.", "Error", function () {
|
|
|
|
restartApplication();
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
$(".view-main").on("ptr:refresh", ".ptr-content", function () {
|
|
|
|
loadHomePage(true);
|
|
|
|
});
|
|
|
|
|
|
|
|
$(".view-main").on("swipeout:deleted", ".notificationlist-item", function () {
|
|
|
|
var id = $(this).data("id");
|
|
|
|
deleteNotification(id);
|
|
|
|
});
|