diff --git a/app/number_translations/number_translation_delete.php b/app/number_translations/number_translation_delete.php deleted file mode 100644 index 1e870fcfc4..0000000000 --- a/app/number_translations/number_translation_delete.php +++ /dev/null @@ -1,94 +0,0 @@ - - Portions created by the Initial Developer are Copyright (C) 2017 - the Initial Developer. All Rights Reserved. -*/ - -//includes - require_once "root.php"; - require_once "resources/require.php"; - require_once "resources/check_auth.php"; - -//add multi-lingual support - $language = new text; - $text = $language->get(); - - //delete the data - if (is_array($_REQUEST['number_translations']) && @sizeof($_REQUEST['number_translations']) != 0 && permission_exists('number_translation_delete')) { - //get the ids, build array - foreach ($_REQUEST['number_translations'] as $index => $number_translation_uuid) { - if (is_uuid($number_translation_uuid)) { - //delete the child data - $array['number_translation_details'][$index]['number_translation_uuid'] = $number_translation_uuid; - //delete number_translation - $array['number_translations'][$index]['number_translation_uuid'] = $number_translation_uuid; - } - } - - if (is_array($array) && @sizeof($array) != 0) { - //execute - $database = new database; - $database->app_name = 'number_translations'; - $database->app_uuid = '6ad54de6-4909-11e7-a919-92ebcb67fe33'; - $database->delete($array); - unset($array); - - //delete the message - message::add($text['message-delete']); - } - - //redirect the user - header('Location: number_translations.php'); - exit; - } - -//delete the child data - if (is_uuid($_REQUEST["number_translation_detail_uuid"]) && permission_exists('number_translation_detail_delete')) { - //select from v_number_translation_details - $sql = "select number_translation_uuid from v_number_translation_details "; - $sql .= "where number_translation_detail_uuid = :number_translation_detail_uuid "; - $parameters['number_translation_detail_uuid'] = $_REQUEST["number_translation_detail_uuid"]; - $database = new database; - $number_translation_uuid = $database->select($sql, $parameters, 'column'); - unset($sql, $parameters); - - //delete the row - $array['number_translation_details'][0]['number_translation_detail_uuid'] = $_REQUEST["number_translation_detail_uuid"]; - - //execute - $database = new database; - $database->app_name = 'number_translations'; - $database->app_uuid = '6ad54de6-4909-11e7-a919-92ebcb67fe33'; - $database->delete($array); - unset($array); - - //delete the message - message::add($text['message-delete']); - - //redirect the user - header('Location: number_translation_edit.php?id='.$number_translation_uuid); - exit; - } - -//default redirect - header('Location: number_translations.php'); - exit; - -?> diff --git a/app/number_translations/number_translation_edit.php b/app/number_translations/number_translation_edit.php index 12b2ccab2d..a6a8c8341a 100644 --- a/app/number_translations/number_translation_edit.php +++ b/app/number_translations/number_translation_edit.php @@ -56,11 +56,35 @@ $number_translation_details = $_POST["number_translation_details"]; $number_translation_enabled = $_POST["number_translation_enabled"]; $number_translation_description = $_POST["number_translation_description"]; + $number_translation_details_delete = $_POST["number_translation_details_delete"]; } //process the user data and save it to the database if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) { + //process the http post data by submitted action + if ($_POST['action'] != '' && is_uuid($number_translation_uuid)) { + $array[0]['checked'] = 'true'; + $array[0]['uuid'] = $number_translation_uuid; + + switch ($_POST['action']) { + case 'copy': + if (permission_exists('number_translation_add')) { + $obj = new number_translations; + $obj->copy($array); + } + break; + case 'delete': + if (permission_exists('number_translation_delete')) { + $obj = new number_translations; + $obj->delete($array); + } + break; + } + + header('Location: number_translations.php'); + exit; + } //validate the token $token = new token; @@ -116,6 +140,18 @@ $database->app_uuid = '6ad54de6-4909-11e7-a919-92ebcb67fe33'; $database->save($array); + //remove checked details + if ( + $action == 'update' + && permission_exists('number_translation_detail_delete') + && is_array($number_translation_details_delete) + && @sizeof($number_translation_details_delete) != 0 + ) { + $obj = new number_translations; + $obj->number_translation_uuid = $number_translation_uuid; + $obj->delete_details($number_translation_details_delete); + } + //redirect the user if (isset($action)) { if ($action == "add") { @@ -150,8 +186,8 @@ if (is_uuid($number_translation_uuid)) { $sql = "select * from v_number_translation_details "; $sql .= "where number_translation_uuid = :number_translation_uuid "; + $sql .= "order by cast(number_translation_detail_order as integer) asc"; $parameters['number_translation_uuid'] = $number_translation_uuid; - $sql .= "order by number_translation_detail_order"; $database = new database; $number_translation_details = $database->select($sql, $parameters, 'all'); unset ($sql, $parameters); @@ -165,7 +201,7 @@ //add an empty row $x = is_array($number_translation_details) ? count($number_translation_details) : 0; $number_translation_details[$x]['number_translation_uuid'] = $number_translation_uuid; - $number_translation_details[$x]['number_translation_detail_uuid'] = uuid(); + $number_translation_details[$x]['number_translation_detail_uuid'] = ''; $number_translation_details[$x]['number_translation_detail_regex'] = ''; $number_translation_details[$x]['number_translation_detail_replace'] = ''; $number_translation_details[$x]['number_translation_detail_order'] = ''; @@ -185,6 +221,14 @@ echo "
".$text['title-number_translation']."
\n"; echo "
\n"; echo button::create(['type'=>'button','label'=>$text['button-back'],'icon'=>$_SESSION['theme']['button_icon_back'],'collapse'=>'hide-xs','style'=>'margin-right: 15px;','link'=>'number_translations.php']); + if ($action == "update") { + if (permission_exists('number_translation_add')) { + echo button::create(['type'=>'submit','label'=>$text['button-copy'],'icon'=>$_SESSION['theme']['button_icon_copy'],'name'=>'action','value'=>'copy','onclick'=>"if (!confirm('".$text['confirm-copy']."')) { this.blur(); return false; }"]); + } + if (permission_exists('number_translation_delete') || permission_exists('number_translation_detail_delete')) { + echo button::create(['type'=>'submit','label'=>$text['button-delete'],'icon'=>$_SESSION['theme']['button_icon_delete'],'id'=>'btn_delete','name'=>'action','value'=>'delete','style'=>'margin-right: 15px;','onclick'=>"if (!confirm('".$text['confirm-delete']."')) { this.blur(); return false; }"]); + } + } echo button::create(['type'=>'submit','label'=>$text['button-save'],'icon'=>$_SESSION['theme']['button_icon_save'],'collapse'=>'hide-xs']); echo "
\n"; echo "
\n"; @@ -213,13 +257,18 @@ echo " ".$text['label-number_translation_detail_regex']."\n"; echo " ".$text['label-number_translation_detail_replace']."\n"; echo " ".$text['label-number_translation_detail_order']."\n"; - echo " \n"; + if (is_array($number_translation_details) && @sizeof($number_translation_details) > 1 && permission_exists('number_translation_detail_delete')) { + echo " \n"; + echo " ".$text['label-delete']."\n"; + echo " \n"; + echo " \n"; + } echo " \n"; $x = 0; foreach($number_translation_details as $row) { echo " \n"; echo " \n"; - echo " \n"; + echo " \n"; echo " \n"; echo " \n"; echo " \n"; @@ -240,11 +289,14 @@ } echo " \n"; echo " \n"; - echo " \n"; - if ($x < sizeof($number_translation_details) - 1) { - echo " ".$v_link_label_delete."\n"; + if (is_array($number_translation_details) && @sizeof($number_translation_details) > 1 && permission_exists('number_translation_detail_delete')) { + echo " "; + if (is_uuid($row['number_translation_detail_uuid'])) { + echo " \n"; + echo " \n"; + } + echo " \n"; } - echo " \n"; echo " \n"; $x++; } diff --git a/app/number_translations/resources/classes/number_translations.php b/app/number_translations/resources/classes/number_translations.php index faf5958e9c..53b2c21485 100644 --- a/app/number_translations/resources/classes/number_translations.php +++ b/app/number_translations/resources/classes/number_translations.php @@ -40,6 +40,11 @@ if (!class_exists('number_translations')) { private $toggle_field; private $toggle_values; + /** + * declare public variables + */ + public $number_translation_uuid; + /** * called when the object is created */ @@ -181,7 +186,7 @@ if (!class_exists('number_translations')) { //grant temporary permissions $p = new permissions; - $p->add('number_translation_details_delete', 'temp'); + $p->add('number_translation_detail_delete', 'temp'); //execute delete $database = new database; @@ -191,7 +196,7 @@ if (!class_exists('number_translations')) { unset($array); //revoke temporary permissions - $p->delete('number_translation_details_delete', 'temp'); + $p->delete('number_translation_detail_delete', 'temp'); //set message message::add($text['message-delete']); @@ -201,6 +206,54 @@ if (!class_exists('number_translations')) { } } + public function delete_details($records) { + + //assign private variables + $this->permission_prefix = 'number_translation_detail_'; + $this->table = 'number_translation_details'; + $this->uuid_prefix = 'number_translation_detail_'; + + if (permission_exists($this->permission_prefix.'delete')) { + + //add multi-lingual support + $language = new text; + $text = $language->get(); + + //validate the token + $token = new token; + if (!$token->validate($_SERVER['PHP_SELF'])) { + message::add($text['message-invalid_token'],'negative'); + header('Location: '.$this->list_page); + exit; + } + + //delete multiple records + if (is_array($records) && @sizeof($records) != 0) { + + //build the delete array + foreach ($records as $x => $record) { + if ($record['checked'] == 'true' && is_uuid($record['uuid'])) { + $array[$this->table][$x][$this->uuid_prefix.'uuid'] = $record['uuid']; + $array[$this->table][$x]['number_translation_uuid'] = $this->number_translation_uuid; + } + } + + //delete the checked rows + if (is_array($array) && @sizeof($array) != 0) { + + //execute delete + $database = new database; + $database->app_name = $this->app_name; + $database->app_uuid = $this->app_uuid; + $database->delete($array); + unset($array); + + } + unset($records); + } + } + } + /** * toggle records */