- added new "delete old signatures" option to "signature reader" dialog, closed #95
This commit is contained in:
@@ -28,7 +28,7 @@ class Signature extends Controller\AccessController{
|
||||
* -> return value of this is limited to a "SINGLE" system
|
||||
* @param \Base $f3
|
||||
*/
|
||||
public function getAll($f3){
|
||||
public function getAll(\Base $f3){
|
||||
$signatureData = [];
|
||||
$systemIds = (array)$f3->get('POST.systemIds');
|
||||
|
||||
@@ -60,12 +60,16 @@ class Signature extends Controller\AccessController{
|
||||
/**
|
||||
* save or update a full signature data set
|
||||
* or save/update just single or multiple signature data
|
||||
* @param $f3
|
||||
* @param \Base $f3
|
||||
*/
|
||||
public function save($f3){
|
||||
public function save(\Base $f3){
|
||||
$requestData = $f3->get('POST');
|
||||
|
||||
$signatureData = null;
|
||||
$systemId = (int)$requestData['systemId'];
|
||||
// delete all signatures that are not available in this request
|
||||
$deleteOldSignatures = (bool)$requestData['deleteOld'];
|
||||
|
||||
|
||||
$return = (object) [];
|
||||
$return->error = [];
|
||||
@@ -83,6 +87,8 @@ class Signature extends Controller\AccessController{
|
||||
$activeCharacter = $this->getCharacter();
|
||||
|
||||
if($activeCharacter){
|
||||
// signature ids that were updated/created
|
||||
$updatedSignatureIds = [];
|
||||
|
||||
/**
|
||||
* @var Model\SystemModel $system
|
||||
@@ -96,7 +102,7 @@ class Signature extends Controller\AccessController{
|
||||
|
||||
$system->getById( (int)$data['systemId']);
|
||||
|
||||
if(!$system->dry()){
|
||||
if( !$system->dry() ){
|
||||
// update/save signature
|
||||
|
||||
/**
|
||||
@@ -167,6 +173,7 @@ class Signature extends Controller\AccessController{
|
||||
}
|
||||
|
||||
$signature->save();
|
||||
$updatedSignatureIds[] = $signature->id;
|
||||
|
||||
// get a fresh signature object with the new data. This is a bad work around!
|
||||
// but i could not figure out what the problem was when using the signature model, saved above :(
|
||||
@@ -184,6 +191,28 @@ class Signature extends Controller\AccessController{
|
||||
|
||||
$system->reset();
|
||||
}
|
||||
|
||||
// delete "old" signatures ------------------------------------------------------------------
|
||||
if(
|
||||
$deleteOldSignatures &&
|
||||
$systemId
|
||||
){
|
||||
$system->getById($systemId);
|
||||
if(
|
||||
!$system->dry() &&
|
||||
$system->hasAccess($activeCharacter)
|
||||
){
|
||||
$allSignatures = $system->getSignatures();
|
||||
foreach($allSignatures as $tempSignature){
|
||||
if( !in_array($tempSignature->id, $updatedSignatureIds)){
|
||||
$tempSignature->delete( $activeCharacter );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -194,7 +223,7 @@ class Signature extends Controller\AccessController{
|
||||
* delete signatures
|
||||
* @param \Base $f3
|
||||
*/
|
||||
public function delete($f3){
|
||||
public function delete(\Base $f3){
|
||||
$signatureIds = $f3->get('POST.signatureIds');
|
||||
$activeCharacter = $this->getCharacter();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user