dnet-applications/apps/dnet-is-application/src/main/resources/static/js/vocabularyEditor.js

82 lines
2.2 KiB
JavaScript

var app = angular.module('vocabularyApp', []);
app.controller('vocabularyController', function($scope, $http, $location) {
$scope.terms = [];
$scope.vocId = vocId();
$scope.editTermCode = '';
$scope.tmpTerm = {};
$scope.mode = '';
$scope.currTerm = [];
$scope.baseUrl = './ajax/vocs/' + encodeURIComponent($scope.vocId) + '/terms';
$scope.reload = function() {
$http.get($scope.baseUrl + '?' + $.now()).then(function successCallback(res) {
$scope.terms = res.data;
}, function errorCallback(res) {
alert('ERROR: ' + res.data.message);
});
};
$scope.setCurrTerm = function(term) {
$scope.currTerm = angular.copy(term);
}
$scope.prepareNewTerm = function() {
$scope.mode = 'new';
$scope.editTermCode = '';
$scope.tmpTerm = {
'code' : '',
'name' : '',
'encoding' : 'OPENAIRE',
'synonyms' : []
};
}
$scope.prepareEditTerm = function(term) {
$scope.mode = 'edit';
$scope.editTermCode = term.code;
$scope.tmpTerm = angular.copy(term);
}
$scope.saveTerm = function(term) {
var url = $scope.baseUrl + '?' + $.now();
$http.defaults.headers.post["Content-Type"] = "application/json;charset=UTF-8";
$http.post(url, term).then(function successCallback(res) {
if ($scope.editTermCode != '' && $scope.editTermCode != $scope.tmpTerm.code) {
var deleteUrl = $scope.baseUrl + '/' + encodeURIComponent($scope.editTermCode) + '?' + $.now();
$http.delete(deleteUrl).then(function successCallback(res) {
$scope.terms = res.data;
alert("Term replaced");
}, function errorCallback(res) {
alert('ERROR: ' + res.data.message);
});
} else {
$scope.terms = res.data;
alert("Term saved");
}
}, function errorCallback(res) {
alert('ERROR: ' + res.data.message);
});
};
$scope.deleteTerm = function(code) {
if (confirm("Are you sure ?")) {
var url = $scope.baseUrl + '/' + encodeURIComponent(code) + '?' + $.now();
$http.delete(url).then(function successCallback(res) {
$scope.terms = res.data;
alert("Term deleted");
}, function errorCallback(res) {
alert('ERROR: ' + res.data.message);
});
}
};
$scope.reload();
});