diff --git a/action.add_edit.php b/action.add_edit.php index 9c5d2534ab054adce0fbe811ef6414a456986164..ddc94d4572382aa71d1286130968d35e82562d10 100644 --- a/action.add_edit.php +++ b/action.add_edit.php @@ -32,7 +32,7 @@ $areaFields = array( if (isset($params['submit'])) { $record = new Person($params); - //echo '<pre>'; print_r($record); echo '</pre>'; + //echo '<pre>'; print_r($record); echo '</pre>'; exit; $record->updateRecord(); $paramsB['module_message'] = 'Adressinformation ändrad'; foreach (Person::$firstFields as $field) { @@ -55,6 +55,9 @@ if (isset($params['doGroups'])) { $this->Redirect($id, 'changeGroups', $returnid, $paramsB); } + + + if (isset($params['ID'])) { $ID = $params['ID']; $person = new Person($ID); @@ -63,6 +66,21 @@ if (isset($params['ID'])) { $ID = null; } +$deleteRecord = False; +if (isset($params['deleteRecord'])) { + if (!$ID) die('Strange error in deleteRecord. No ID'.PHP_EOL); + $deleteRecord = True; + $canChangeRecord = False; +} + +if (isset($params['confirmDelete'])) { + if (!$ID) die('Strange error in deleteRecord. No ID'.PHP_EOL); + Person::deleteRecord($ID); + $paramsB['module_message'] = 'Adress raderad.'; + $this->Redirect($id, 'defaultadmin', $returnid, $paramsB); + return; +} + if (isset($params['cancelUpdate'])) { $paramsB = array(); foreach (Person::$firstFields as $field) { @@ -81,7 +99,10 @@ $smarty = $this->smarty; $headline = $person->Fornamn . ' ' .$person->Efternamn; if (strlen($headline) == 1) $headline = $person->SkolaForetag; -if ($canChangeRecord) { $headline = 'Redigera adress: ' . $headline; } +if ($canChangeRecord) { $headline = 'Ändra adress: ' . $headline; } +if ($deleteRecord) { $headline = 'Bekräfta radera: ' . $headline; } + + $smarty->assign('headline',$headline); @@ -148,6 +169,16 @@ if ($canChangeRecord) { } $smarty->assign('submitButton',$place); +if ($canChangeRecord) { + $place = $this->CreateInputSubmit($id, 'deleteRecord', 'Radera adress'); +} else { + $place = ''; +} +if ($deleteRecord) { + $place = $this->CreateInputSubmit($id, 'confirmDelete', 'Bekräfta radera'); +} +$smarty->assign('deleteConfirmButton',$place); + $place = $this->CreateInputSubmit($id, 'cancelUpdate', 'Avbryt'); $smarty->assign('cancelButton',$place); diff --git a/lib/class.Groups.php b/lib/class.Groups.php index 56e65a0aae6b085a15c96fad0b7328b6085bf68d..23ce4685debc0acefbdd498c4a44e8d8b442e420 100644 --- a/lib/class.Groups.php +++ b/lib/class.Groups.php @@ -28,11 +28,14 @@ EOS; Adresser.ID = AdressID and GruppID = ? EOS; - private static $queryUpdate = <<<EOS - update Grupper set where ID = ? -EOS; - +/* private static $queryUpdate = <<<EOS */ +/* update Grupper set where ID = ? */ +/* EOS; */ + private static $queryRemoveGruppadress = <<<EOS + delete from GruppAdress where AdressID = ? +EOS; + //public static $groupFields = array('ID', 'Gruppnamn', 'GruppInfo'); public static $groupFields; private static $buttonFields = array('change','print'); @@ -196,5 +199,14 @@ EOS; } // exit; } + public static function removeAddress($AdressID = null) { + global $gCms; if (!isset($gCms)) exit; + $db = AddressDB::getDB(); + if (is_null($AdressID)) + die('Strange error in removeAddress. No ID.'.PHP_EOL); + $values = array($AdressID); + $result = $db->Execute(self::$queryRemoveGruppadress,$values); + if (!$result) { die("Database error!<br>" . $db->ErrorMsg()); } + } } ?> diff --git a/lib/class.Person.php b/lib/class.Person.php index e72b908112c0953cb233213430a0cb97970cf8c8..e67127aefbdef117b88ab5adf8878555d83793c0 100644 --- a/lib/class.Person.php +++ b/lib/class.Person.php @@ -22,6 +22,10 @@ EOT; select distinct *, concat(Fornamn, ' ', Efternamn) as Namn from Adresser,GruppAdress where Adresser.ID=AdressID and GruppID=? EOS; + + private static $queryDelete = <<<EOS + delete from Adresser where ID=? +EOS; public static $firstFields = array( 'ID','fornamn', 'efternamn', 'foretag','avdelning', 'adress', 'Grupp'); @@ -189,5 +193,15 @@ EOS; } return $records; } + + public static function deleteRecord($ID = null) { + global $gCms; if (!isset($gCms)) exit; + $db = AddressDB::getDB(); + if (is_null($ID)) die('Strange error in deleteRecord. No ID.'.PHP_EOL); + $values = array($ID); + $result = $db->Execute(self::$queryDelete,$values); + if (!$result) { die("Database error!<br>" . $db->ErrorMsg()); } + Groups::removeAddress($ID); + } } ?> \ No newline at end of file diff --git a/templates/editpanel.tpl b/templates/editpanel.tpl index cf9a3f55711333b73bad7ccf73667f0074c41374..c7ef27fc8037f421838b8645a3a230b9dc919eda 100644 --- a/templates/editpanel.tpl +++ b/templates/editpanel.tpl @@ -47,8 +47,8 @@ {$title_Andrad}:</td><td>{$value_Andrad}</td><td></td></tr> <td colspan = "4" style="text-align: center;"> {$submitButton}{$cancelButton}</td><td></td></tr> - - +<tr><td colspan = "4" style="text-align: right;"> + {$deleteConfirmButton}</td></tr> </tbody></table> {if isset($hidden)}{$hidden}{/if} {$end_form}