<?php use phpformbuilder\Form; use phpformbuilder\Validator\Validator; use phpformbuilder\database\DB; use common\Utils; $debug_content = ''; // get referer pagination $page_url_qry = ''; if (isset($_SESSION['assessment_bi-page']) && is_numeric($_SESSION['assessment_bi-page'])) { $page_url_qry = '/p' . $_SESSION['assessment_bi-page']; } /* ============================================= delete if posted ============================================= */ if ($_SERVER["REQUEST_METHOD"] == "POST" && Form::testToken('form-delete-assessment-bi') === true) { $validator = Form::validate('form-delete-assessment-bi', FORMVALIDATION_PHP_LANG); // check for errors if ($validator->hasErrors()) { $_SESSION['errors']['form-delete-assessment-bi'] = $validator->getAllErrors(); } else { if ($_POST['delete-assessment-bi'] > 0) { $db = new DB(DEBUG); $db->setDebugMode('register'); try { // begin transaction $db->transactionBegin(); // Delete from target table $where = $_SESSION['assessment_bi_editable_primary_keys']; if (DEMO === true || $db->delete('assessment_bi', $where, DEBUG_DB_QUERIES)) { // ALL OK if (!DEBUG_DB_QUERIES) { $db->transactionCommit(); $_SESSION['msg'] = Utils::alert(DELETE_SUCCESS_MESSAGE, 'alert-success has-icon'); // reset form values Form::clear('form-delete-assessment-bi'); // unset the search string if (isset($_SESSION['rp_search_string']['assessment_bi'])) { unset($_SESSION['rp_search_string']['assessment_bi']); } // redirect to list page if (isset($_SESSION['active_list_url'])) { header('Location:' . $_SESSION['active_list_url']); } else { header('Location:' . ADMIN_URL . 'assessmentbi'); } // if we don't exit here, $_SESSION['msg'] will be unset exit(); } else { $debug_content = $db->getDebugContent(); $db->transactionRollback(); $_SESSION['msg'] = Utils::alert(DELETE_SUCCESS_MESSAGE . '<br>(' . DEBUG_DB_QUERIES_ENABLED . ')', 'alert-success has-icon'); } } else { throw new \Exception($db->error()); } } catch (\Exception $e) { if (DEBUG_DB_QUERIES) { $debug_content = $db->getDebugContent(); } $msg_content = DB_ERROR; if (ENVIRONMENT == 'development') { $msg_content .= '<br>' . $e->getMessage() . '<br>' . $db->getLastSql(); } $_SESSION['msg'] = Utils::alert($msg_content, 'alert-danger has-icon'); } } } } // END if POST // register editable primary keys, which are NOT posted and will be the query delete filter // $params come from data-forms.php // replace 'fieldname' with 'table.fieldname' to avoid ambigous query $where_params = array_combine( array_map(function ($k) { return 'assessment_bi.' . $k; }, array_keys($params)), $params ); $_SESSION['assessment_bi_editable_primary_keys'] = $where_params; if (!isset($db)) { $db = new DB(DEBUG); $db->setDebugMode('register'); } // select name to display for confirmation $from = 'assessment_bi'; $columns = array('id'); $where = $_SESSION['assessment_bi_editable_primary_keys']; $extras = array('limit' => 1); $db->select($from, $columns, $where, $extras, DEBUG_DB_QUERIES); if (DEBUG_DB_QUERIES) { $debug_content = $db->getDebugContent(); } $count = $db->rowCount(); if ($count > 0) { $row = $db->fetch(); $display_value = $row->id; } else { // this should never happen // echo $db->getLastSql(); header("X-Robots-Tag: noindex", true); exit('QRY ERROR'); } $form = new Form('form-delete-assessment-bi', 'vertical', 'novalidate'); // $params come from data-forms.php $pk_url_params = http_build_query($params, '', '/'); $form->setAction(ADMIN_URL . 'assessmentbi/delete/' . $pk_url_params); $form->startFieldset(); $form->addHtml('<div class="text-center p-md">'); $form->addRadio('delete-assessment-bi', NO, 0); $form->addRadio('delete-assessment-bi', YES, 1); $form->printRadioGroup('delete-assessment-bi', '<span class="me-20">' . DELETE_CONST . ' "' . $display_value . '" ?</span>', true, 'required'); $form->addBtn('button', 'cancel', 0, '<i class="' . ICON_BACK . ' prepend"></i>' . CANCEL, 'class=btn btn-warning, onclick=history.go(-1)', 'btn-group'); $form->addBtn('submit', 'submit-btn', 1, SUBMIT . '<i class="' . ICON_CHECKMARK . ' append"></i>', 'class=btn btn-success', 'btn-group'); $form->setCols(0, 12); $form->centerContent(); $form->printBtnGroup('btn-group'); $form->addHtml(' </div>'); $form->endFieldset(); $form->addPlugin('pretty-checkbox', '#form-delete-assessment-bi'); $form->addPlugin('formvalidation', '#form-delete-assessment-bi', 'default', array('language' => FORMVALIDATION_JAVASCRIPT_LANG));