Adding missing actions to the front (#28)

* [add] reloading

* [add] Delete emplployee
This commit is contained in:
Jose Pablo Domingo Aramburo Sanchez 2018-09-18 23:12:53 -06:00 committed by GitHub
parent 627da598fd
commit 1912508766
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 75 additions and 7 deletions

View File

@ -103,9 +103,11 @@
<div class="row col-md-offset-6"> <div class="row col-md-offset-6">
<div class="form-group"> <div class="form-group">
<a href="#" class="btn btn-lg btn-success " onclick="updateEmployee();">Update</a> <a href="#" class="btn btn-lg btn-success " onclick="updateEmployee();">Update</a>
<a href="#" class="btn btn-lg btn-primary " onclick="loadView(currentView);">Clear</a>
<a href="#" class="btn btn-lg btn-danger " onclick="deleteEmployee();">Delete</a>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</form> </form>

View File

@ -85,9 +85,10 @@
<div class="row col-md-offset-6"> <div class="row col-md-offset-6">
<div class="form-group"> <div class="form-group">
<a href="#" class="btn btn-lg btn-success " onclick="saveNewEmployee();">Create</a> <a href="#" class="btn btn-lg btn-success " onclick="saveNewEmployee();">Create</a>
<a href="#" class="btn btn-lg btn-primary " onclick="loadView(currentView);">Clear</a>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</form> </form>

View File

@ -134,6 +134,7 @@
<div class="row col-md-offset-6"> <div class="row col-md-offset-6">
<div class="form-group"> <div class="form-group">
<a href="#" class="btn btn-lg btn-success " onclick="processSaveActionWorkDay();">Save</a> <a href="#" class="btn btn-lg btn-success " onclick="processSaveActionWorkDay();">Save</a>
<a href="#" class="btn btn-lg btn-primary " onclick="loadView(currentView);">Clear</a>
</div> </div>
</div> </div>
</div> </div>

View File

@ -134,6 +134,43 @@ function loadEmployeeData(code){
}); });
} }
/**
* Will change the status of an employee to remove them from the
* active employee list
*/
function deleteEmployee(){
let baseUrl = getbaseUrl();
let code = $('#editEmployeeCode').val();
$.ajax({
url: baseUrl + '/api/employee/' + code,
type: 'DELETE',
dataType: 'json',
success:function(data){
$('#modalServerResponseSuccess').modal('show');
document.getElementById('serverResponseSuccess').innerHTML = 'The employee ' + data['firstName'] + ' ' + data['middleName'] + ' ' + data['lastName'] + ' has been deleted.';
},
error:function(x,e) {
let responseText = $.parseJSON(x["responseText"]);
if (x.status==0) {
$('#modalErrorInternetConnection').modal('show');
} else if(x.status==404) {
$('#modalError404').modal('show');
} else if(x.status==500) {
$('#modalServerResponseError').modal('show');
document.getElementById('modalResponseError').innerHTML = responseText['message'];
} else if(e=='parsererror') {
$('#modalErrorParsererror').modal('show');
} else if(e=='timeout'){
$('#modalErrorTimeout').modal('show');
} else {
$('#modalErrorOther').modal('show');
}
},
});
}
function updateEmployee(){ function updateEmployee(){
let baseUrl = getbaseUrl(); let baseUrl = getbaseUrl();

View File

@ -1,3 +1,6 @@
// will contain the current loaded view
let currentView;
/** /**
* Destorys the session for the current user and redirects * Destorys the session for the current user and redirects
* back to the login form * back to the login form
@ -59,6 +62,8 @@ function loadView(requestedView){
url: baseUrl + '/html/' + requestedView, url: baseUrl + '/html/' + requestedView,
type: 'get', type: 'get',
success:function(data){ success:function(data){
currentView = requestedView;
$("#newViewBody").hide().html(data).show('slow'); $("#newViewBody").hide().html(data).show('slow');
}, },
error:function(x,e) { error:function(x,e) {
@ -80,4 +85,12 @@ function loadView(requestedView){
} }
}, },
}); });
} }
/**
* Reloads the last view that was accessed as a way of fully clearing and
* resetting the values of the form
*/
function clearView(view){
loadView(view);
}

View File

@ -518,9 +518,19 @@ class EmployeeApplication{
return $response; return $response;
} }
function disableEmployeeRecord($idEmployee){ /**
* @param $code string
* @return array
* @throws Exception
*/
function disableEmployeeRecord($code){
$this->asserts->isNotEmpty($code, "The code can't be empty.");
$idEmployee = $this->getIdEmployeeByCode($code);
$this->asserts->higherThanZero($idEmployee, "idEmployee must be higher than 0"); $this->asserts->higherThanZero($idEmployee, "idEmployee must be higher than 0");
$employeeData = $this->proxyGetEmployeeDataById($idEmployee);
try { try {
$stmt = $this->pdo->prepare("UPDATE employees $stmt = $this->pdo->prepare("UPDATE employees
SET SET
@ -532,8 +542,12 @@ class EmployeeApplication{
$this->pdo->commit(); $this->pdo->commit();
$stmt = null; $stmt = null;
return $employeeData;
} catch( PDOExecption $e ) { } catch( PDOExecption $e ) {
$this->pdo->rollback(); $this->pdo->rollback();
throw new Exception("The employee you tried to delete could not be found.");
} }
} }

View File

@ -65,12 +65,12 @@ $app->put('/api/employee', function ($request, $response) {
->write(json_encode($this->employeeApplication->updateEmployeeData($requestData))); ->write(json_encode($this->employeeApplication->updateEmployeeData($requestData)));
}); });
$app->DELETE('/api/employee/{idEmployee}', function (Request $request, Response $response, array $args) { $app->DELETE('/api/employee/{code}', function (Request $request, Response $response, array $args) {
$idEmployee = $args['idEmployee']; $code = $args['code'];
return $response->withStatus(200) return $response->withStatus(200)
->withHeader('Content-Type', 'application/json') ->withHeader('Content-Type', 'application/json')
->write(json_encode($this->employeeApplication->disableEmployeeRecord($idEmployee))); ->write(json_encode($this->employeeApplication->disableEmployeeRecord($code)));
}); });
$app->get('/api/employee/type/{code}', function (Request $request, Response $response, array $args) { $app->get('/api/employee/type/{code}', function (Request $request, Response $response, array $args) {