77 lines
1.7 KiB
JavaScript
77 lines
1.7 KiB
JavaScript
angular.module("robware").controller('galleryManage', ["$scope", "$http", function($scope, $http) {
|
|
$scope.albums=[];
|
|
var albumActions={};
|
|
|
|
var moveIndex="Move selected to album";
|
|
$scope.contextMenuActions={
|
|
"Delete selected":deleteSelected
|
|
};
|
|
|
|
function getSelectedImageIds(){
|
|
var images=[];
|
|
angular.forEach($scope.selectedAlbum.Images, function(image){
|
|
if (image.selected)
|
|
images.push(image.ImageId);
|
|
});
|
|
return images;
|
|
}
|
|
|
|
function updateAlbums(data){
|
|
var selectedId=$scope.selectedAlbum.AlbumId;
|
|
$scope.albums=data;
|
|
angular.forEach($scope.albums, function(album){
|
|
if (album.AlbumId===selectedId)
|
|
$scope.selectedAlbum=album;
|
|
});
|
|
}
|
|
|
|
function deleteSelected(){
|
|
var images=getSelectedImageIds();
|
|
if (images.length===0 || !confirm("Are you sure you want to delete?"))
|
|
return;
|
|
|
|
var data={
|
|
selectedImages:images
|
|
};
|
|
|
|
$http.post("/gallery/deleteimages",data).then(function(response){
|
|
updateAlbums(response.data);
|
|
});
|
|
};
|
|
|
|
function moveImages(newAlbum){
|
|
var images=getSelectedImageIds();
|
|
if (images.length===0)
|
|
return;
|
|
|
|
var data={
|
|
selectedImages:images,
|
|
targetAlbumId:newAlbum.AlbumId
|
|
};
|
|
$http.post("/gallery/move",data).then(function(response){
|
|
updateAlbums(response.data);
|
|
});
|
|
}
|
|
|
|
$scope.$watch("albums", function(){
|
|
if ($scope.selectedAlbum===undefined)
|
|
$scope.selectedAlbum=$scope.albums[0];
|
|
|
|
albumActions={};
|
|
angular.forEach($scope.albums, function(album){
|
|
albumActions[album.AlbumTitle]=function(){
|
|
moveImages(album);
|
|
};
|
|
});
|
|
$scope.contextMenuActions[moveIndex]=albumActions;
|
|
});
|
|
|
|
$scope.selectImage=function(image){
|
|
image.selected=!image.selected;
|
|
};
|
|
|
|
$scope.editAlbum=function(album){
|
|
Navigate("/gallery/editablum/"+album.AlbumId);
|
|
};
|
|
}]);
|
|
|