Reduce possible states in appstore view
This commit is contained in:
Vendored
+2
-2
File diff suppressed because one or more lines are too long
Vendored
+4
-10
@@ -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">
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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;
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user