more angular fun

This commit is contained in:
Erik Forkalsrud 2014-09-02 12:35:06 -07:00
parent cca99e23b7
commit 93868e0d18
3 changed files with 38 additions and 7 deletions

View file

@ -215,6 +215,14 @@ public class AlbumServlet
return; return;
} }
if ("/_roots.json".equals(pathInfo)) {
res.setContentType("application/json");
res.setCharacterEncoding("UTF-8");
PrintWriter out = res.getWriter();
out.append("[\"").append(base.getName()).append("\"]");
return;
}
long now = System.currentTimeMillis(); long now = System.currentTimeMillis();
if (now > nextCacheRefresh) { if (now > nextCacheRefresh) {
cachedRootNode = null; cachedRootNode = null;

View file

@ -1,13 +1,29 @@
var album = angular.module("album", [ ]); var album = angular.module("album", [ ]);
album.controller("AlbumController", ["$http", "$log", function($http, $log) { album.controller("AlbumController", ["$http", "$log", "$scope", function($http, $log, $scope) {
var alb = this; var alb = this;
this.roots = [ ];
this.items = [ ]; this.items = [ ];
this.update = function() { this.update = function() {
$log.info("updating..."); $log.info("updating...");
$http.get("/photo/album/Downloads.json").success(function(data) { if (alb.roots.length == 0) {
alb.items = data.contents; $http.get("/photo/album/_roots.json").success(function(data) {
}); alb.roots = data;
alb.update();
});
} else {
$http.get("/photo/album/" + alb.roots[0] + ".json").success(function(data) {
alb.items = data.contents;
for (var i = 0; i < alb.items.length; i++) {
if (alb.items[i].type == "movie") {
alb.items[i].path += ".frame";
}
}
});
}
} }
$scope.$watch('$viewContentLoaded', function(){
alb.update();
});
}]); }]);

View file

@ -3,11 +3,18 @@
<head> <head>
<script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.20/angular.js"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.20/angular.js"></script>
<script src="album.js"></script> <script src="album.js"></script>
<style type="text/css">
.grid {
float: left;
max-width: 275px;
height: 310px;
max-height: 310px;
}
</style>
</head> </head>
<body ng-controller="AlbumController as album"> <body ng-controller="AlbumController as album">
<h1>Album</h1> <h1>{{ album.roots[0] }}</h1>
<form><input type="button" ng-click="album.update()" value="Update" /></form> <div ng-repeat="item in album.items" class="grid">
<div ng-repeat="item in album.items">
<img ng-src="/photo/album{{ item.path }}?size=250"/> <img ng-src="/photo/album{{ item.path }}?size=250"/>
</div> </div>
</body> </body>