File: D:/HostingSpaces/SBogers79/artofeinstein.be/wwwroot/packages/komma/kms/js/fileupload.ng.js
'use strict';
//inject directives and services.
var app = angular.module('fileUpload', ['ngFileUpload']);
app.controller('fileUploadController', ['$scope', 'Upload', '$timeout', function ($scope, Upload, $timeout) {
//The files list
//Todo, extend with the files form the database
$scope.files = [];
//These are the fileIds, used for saving
$scope.fileIds = [];
$scope.uploadSizes = '';
/**
* This function uploads the new files
* @param files
* @param errFiles
*/
$scope.uploadFiles = function (files, errFiles, maximages) {
if( $scope.files.length >= maximages ) return false;
//Set the files
$scope.errFiles = errFiles;
//Foreach each file
angular.forEach(files, function (file) {
if( $scope.files.length >= maximages ) return false;
//Upload to the server
file.upload = Upload.upload({
url: '/kms/upload',
data: {file: file, uploadSizes: $scope.uploadSizes}
});
//After uploading
file.upload.then(function (response) {
$timeout(function () {
//Set the respons data
file.result = response.data;
//Add the file to the current files
$scope.files.push(file.result);
//Reverse push
//Add the file to the current files
//$scope.files.unshift(file.result);
$scope.setFileIds()
});
}, function (response) {
if (response.status > 0)
$scope.errorMsg = response.status + ': ' + response.data;
}, function (evt) {
file.progress = Math.min(100, parseInt(100.0 *
evt.loaded / evt.total));
});
});
}
$scope.deleteImage = function (index) {
//Delete the image
$scope.files.splice(index, 1)
//Delete the image id
$scope.setFileIds()
}
$scope.moveImage = function (index, direction) {
var currentFile = $scope.files[index]
var currentFileId = $scope.fileIds[index]
if (direction == 'left') {
$scope.files[index] = $scope.files[index - 1];
$scope.files[index - 1] = currentFile;
} else {
$scope.files[index] = $scope.files[index + 1];
$scope.files[index + 1] = currentFile;
}
$scope.setFileIds()
}
$scope.initFiles = function(files){
$scope.files = files
$scope.setFileIds()
}
$scope.setFileIds = function(){
var local_fileIds = [];
angular.forEach($scope.files, function(file){
local_fileIds.push(file.id);
});
$scope.fileIds = local_fileIds
}
$scope.sortableOptions = {
update: function(e, ui) {
ui.item.sortable.cancel();
var originalIndex = ui.item.sortable.index;
var newIndex = ui.item.sortable.dropindex
console.log(originalIndex +' to '+ newIndex)
var oldImage = $scope.files[originalIndex]
$scope.files[originalIndex] = $scope.files[newIndex]
$scope.files[newIndex] = oldImage
$scope.setFileIds()
}
};
}]);