Files
web2.0-backend/members/static/js/members_controllers.js
T
2016-12-10 18:54:09 +02:00

195 lines
5.1 KiB
JavaScript

// helpers
function notyfication(type,timeout){
return function(msg){
noty({
'text': msg,
'layout': "bottomRight",
'type': type,
'timeout': timeout
});
};
}
var notyError = notyfication('error',2500);
var notySuccess = notyfication('success',2500);
function editor(returnpath){
return function($scope, $http, $route, $routeParams, $window, $location) {
$scope.member = {"id": $routeParams.id};
$http.get("/members/api/member/"+$scope.member.id).then(function(response){
$scope.member = response.data;
});
$scope.send = function() {
$http.put("/members/api/member/"+$scope.member.id, $scope.member).then(function(data){
notySuccess("Jäsentiedot tallennettu");
$location.path(returnpath);
});
}
$scope.cancel = function() { //user canceled. return to list
$location.path(returnpath);
}
}
}
app.directive('ngConfirmClick',
[
function()
{ return {
link: function (scope, element, attr)
{
var clickAction = attr.confirmedClick;
element.bind('click',function (event)
{
noty({
text: 'Oletko aivan varma? T. Lasse Lehtinen',
layout: 'bottomRight',
buttons: [
{
addClass: 'btn btn-danger', text: 'Kyllä', onClick: function($noty) {
// this = button element
// $noty = $noty element
$noty.close();
scope.$eval(clickAction)
}
},
{
addClass: 'btn btn-primary', text: 'Ei', onClick: function($noty) {
$noty.close();
}
}
]
});
});
}
}}]);
// controllers
app.controller("getController", function($scope, $http, $window, $location){
$scope.members = [];
$scope.getFunction = function() {
$http.get("/members/api/members").then(function(response){
$scope.members = response.data;
// map trues and falses to more user-friendly format
_.each($scope.members, function(m){
m.jas = m.jas ? "Kyllä" : "Ei";
m.AYY = m.AYY ? "Kyllä" : "Ei";
});
$scope.shown_members = $scope.members;
});
};
$scope.getFunction();
$scope.updatePayment= function(id){
$http.put("/members/api/member/"+id,{paid:moment().format("YYYY-MM-DD kk:mm:ss") }).then(function(resp){
$scope.getFunction();
});
};
$scope.loadCSV = function() {
window.location = "/members/api/getCSV";
};
$scope.delete_member = function(id) {
$http.delete("/members/api/member/" + id).then(
function(response) {
notySuccess("Poistaminen onnistui")
$scope.getFunction();
},
function(response) {
notyError("Epäonnistui. Yritä uudelleen.");
$scope.getFunction();
}
);
};
$scope.datePicker = null;
$scope.filter_by_date = function() {
if ($scope.datePicker == null)
{
$scope.shown_members = $scope.members;
}
else
{
$scope.shown_members = [];
for (var i = 0; i < $scope.members.length; i++)
{
if (moment($scope.members[i].paid) < $scope.datePicker)
{
$scope.shown_members.push($scope.members[i]);
}
}
}
};
$scope.clear_filter = function() {
$scope.datePicker = null;
$scope.getFunction();
};
$scope.$watch('datePicker', function(newValue, oldValue) {
$scope.filter_by_date();
});
});
app.controller("postController", function($scope, $http, $location) {
$scope.member = {};
$scope.send = function() {
$http.post("/members/api/member/", $scope.member).then(function(data){
notySuccess("Jäsen lisätty!");
$location.path("/list");
});
}
});
app.controller("applController", function($scope, $http, $route, $routeParams, $window, $location){
$scope.applGetFunction = function() {
$http.get("/members/api/requests").then(function(response){
$scope.applications = response.data;
_.each($scope.applications, function(a){
a.member.jas = a.member.jas ? "Kyllä" : "Ei";
a.member.AYY = a.member.AYY ? "Kyllä" : "Ei";
});
});
};
$scope.applGetFunction();
$scope.send_appl = function(id) {
$http.post("/members/api/request/" + id).then(
function(response) {
notySuccess("Hakemus hyväksytty");
$scope.applGetFunction();
},
function(response) {
notyError("Hakemuksen hyväksyminen epäonnistui");
$scope.applGetFunction();
}
);
};
$scope.delete_appl = function(id) {
$http.delete("/members/api/request/" + id).then(
function(response) {
notySuccess("Hakemus hylätty!");
$scope.applGetFunction();
},
function(response) {
notyError("Hakemuksen hylkäys epäonnistui");
$scope.applGetFunction();
}
);
};
});
app.controller("editController",editor("/list"));
app.controller("appleditController", editor("/applications"));
app.controller("addManyController", function($scope, $http, $window) {
$scope.memberData = '';
$scope.sendCSV = function() {
$http.post("/members/api/csvimport", $scope.memberData).then(
function(response) {
notySuccess("Lähetys onnistui");
$window.location.reload();
},
function(response) {
notyError("Lähetys epäonnistui");
}
);
};
});