82 lines
2.2 KiB
JavaScript
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();
|
|
});
|