Reduce possible states in appstore view

This commit is contained in:
Johannes Zellner
2015-02-26 13:01:11 +01:00
parent 959da7eeeb
commit 9926ffc6c9
4 changed files with 17 additions and 59 deletions
+2 -2
View File
File diff suppressed because one or more lines are too long
+4 -10
View File
@@ -1,22 +1,16 @@
<div class="row animateMeOpacity ng-hide" ng-show="loadStatus == LOADING">
<div class="row animateMeOpacity ng-hide" ng-show="!ready">
<div class="col-lg-12 text-center">
<h2><i class="fa fa-spinner fa-pulse"></i> Loading</h2>
</div>
</div>
<div class="row animateMeOpacity ng-hide" ng-show="loadStatus == ERROR">
<div class="col-lg-12" style="text-align: center;">
<h2>Error reaching the Store</h2>
</div>
</div>
<div class="row animateMeOpacity ng-hide" ng-show="loadStatus == LOADED && !apps.length">
<div class="col-lg-12" style="text-align: center;">
<div class="row animateMeOpacity ng-hide" ng-show="ready && !apps.length">
<div class="col-lg-12 text-center">
<h2>No Apps available</h2>
</div>
</div>
<div class="row animateMeOpacity ng-hide" ng-show="loadStatus == LOADED">
<div class="row animateMeOpacity ng-hide" ng-show="ready">
<div class="col-md-1" ng-repeat="app in apps" style="padding: 15px">
<div style="background-color: white;" class="shadow hover">
<div class="grid-item-top">
+4 -10
View File
@@ -1,22 +1,16 @@
<div class="row animateMeOpacity ng-hide" ng-show="loadStatus == LOADING">
<div class="row animateMeOpacity ng-hide" ng-show="!ready">
<div class="col-lg-12 text-center">
<h2><i class="fa fa-spinner fa-pulse"></i> Loading</h2>
</div>
</div>
<div class="row animateMeOpacity ng-hide" ng-show="loadStatus == ERROR">
<div class="col-lg-12" style="text-align: center;">
<h2>Error reaching the Store</h2>
</div>
</div>
<div class="row animateMeOpacity ng-hide" ng-show="loadStatus == LOADED && !apps.length">
<div class="col-lg-12" style="text-align: center;">
<div class="row animateMeOpacity ng-hide" ng-show="ready && !apps.length">
<div class="col-lg-12 text-center">
<h2>No Apps available</h2>
</div>
</div>
<div class="row animateMeOpacity ng-hide" ng-show="loadStatus == LOADED">
<div class="row animateMeOpacity ng-hide" ng-show="ready">
<div class="col-md-1" ng-repeat="app in apps" style="padding: 15px">
<div style="background-color: white;" class="shadow hover">
<div class="grid-item-top">
+7 -37
View File
@@ -3,13 +3,7 @@
angular.module('Application').controller('AppStoreController', ['$scope', '$location', '$timeout', 'Client', 'AppStore', function ($scope, $location, $timeout, Client, AppStore) {
if (!Client.getUserInfo().admin) $location.path('/');
$scope.LOADING = 1;
$scope.ERROR = 2;
$scope.LOADED = 3;
$scope.loadStatus = $scope.LOADING;
$scope.loadError = '';
$scope.ready = false;
$scope.apps = [];
$scope.installApp = function (app) {
@@ -26,40 +20,16 @@ angular.module('Application').controller('AppStoreController', ['$scope', '$loca
};
function refresh() {
$scope.ready = false;
AppStore.getApps(function (error, apps) {
if (error && error.statusCode === 420) return $timeout(refresh, 500);
if (error) {
$scope.loadStatus = $scope.ERROR;
$scope.loadError = error.message;
return;
console.error(error);
return $timeout(refresh, 1000);
}
Client.refreshInstalledApps(function (error) {
if (error) {
$scope.loadStatus = $scope.ERROR;
$scope.loadError = error.message;
return;
}
for (var app in apps) {
var found = false;
for (var i = 0; i < $scope.apps.length; ++i) {
if (apps[app].id === $scope.apps[i].id) {
found = true;
break;
}
}
if (!found) $scope.apps.push(apps[app]);
}
$scope.apps.forEach(function (app, index) {
if (Client._installedApps) app.installed = Client._installedApps.some(function (a) { return a.appStoreId === app.id; });
if (!apps[app.id]) $scope.apps.splice(index, 1);
});
$scope.loadStatus = $scope.LOADED;
});
$scope.apps = apps;
$scope.ready = true;
});
}