Files
hudozka/client/pages/gallery.js
T

79 lines
2.9 KiB
JavaScript

module.exports = function (app) {
app.directive("gFotorama", function () {
return {
restrict: "A",
link: function (scope, element, attrs) {
element.addClass('fotorama');
var fotorama = $(element.fotorama()).data('fotorama');
fotorama.setOptions({
width: "100%",
maxheight: 500,
loop: true,
nav: "thumbs"
});
scope.$watch(attrs.gFotorama, function (value) {
console.log(value);
fotorama.load(value);
});
}
}
});
app.controller("GalleryPageController", function ($scope, $http) {
$scope.years = [];
var years = [2015, 2014, 2013, 2012, 2011, 2010];
years.forEach(function (year, year_index) {
$http.get("/gallery/" + year)
.success(function (albums) {
if(albums.length) {
$scope.years[year_index] = {
year: year,
albums: albums.map(function (album) {
var preview = album.content[0];
album.preview_url = preview.content.medium.url;
album.fotorama = album.content.map(productToFotorama);
return album;
})
};
}
})
});
//$http.get("/gallery")
// .success(function (albums) {
// $scope.albums = albums.map(function (album) {
// var preview = album.content[0];
// album.preview_url = preview.content.medium.url;
// album.fotorama = album.content.map(productToFotorama);
//
// return album;
// });
// });
}
);
app.controller("AlbumPageController", function ($scope, $http, $routeParams) {
var url = '/album/{year}/{course}/{album}'
.replace('{year}', $routeParams.year)
.replace('{course}', $routeParams.course)
.replace('{album}', $routeParams.album);
$http.get(url)
.success(function (album) {
var preview = album.content[0];
album.preview_url = preview.content.medium.url;
album.fotorama = album.content.map(productToFotorama);
$scope.album = album;
});
});
}
;
function productToFotorama(product) {
return {
img: product.content["big"].url,
thumb: product.content["small"].url,
full: product.content["original"].url
}
}