/**
 * User Delete Form Submit.
 */
function user_delete_form_submit($data)
{
    //$user = new User();
    //$user->loadSingle('id = ' . $data['id']);
    $user = new User();
    $user->byID($data['id']);
    if ($user->affected > 0) {
        // Remove user
        $user->delete($data['id']);
        natural_set_message('User ' . $user->first_name . ' ' . $user->last_name . ' was removed successfully!', 'success');
        return $data['id'];
    } else {
        natural_set_message('Problems removing user ' . $user->first_name . ' ' . $user->last_name . '!', 'error');
        return FALSE;
    }
}
 /**
  * @smart-auto-routing false
  * @access private
  */
 function _validate($data, $type, $from_api = true)
 {
     //If the method called is an update, check if the id exists, otherwise return error
     $error_code = 400;
     if ($type == "update" || $type == "delete") {
         if (!$data['id']) {
             $error[] = 'Parameter ID is required!';
         }
     }
     /*
      * check if field is empty
      * Add more fields as needed
      */
     if ($type != "delete") {
         if (!$data['church_id']) {
             $error[] = 'Field church_id is required!';
         }
     }
     //If error exists return or throw exception if the call has been made from the API
     if (!empty($error)) {
         natural_set_message($error[0], 'error');
         if ($from_api) {
             throw new Luracast\Restler\RestException($error_code, $error[0]);
         }
         return $error;
         exit(0);
     }
 }
 /**
  * @smart-auto-routing false
  * @access private
  */
 function _validate($data, $type, $from_api = true)
 {
     //If the method called is an update, check if the id exists, otherwise return error
     if ($type == "update" || $type == "delete") {
         if (!$data['id']) {
             throw new Luracast\Restler\RestException(404, 'Parameter ID is required!');
         }
     }
     /*
      * check if field is empty
      * Add more fields as needed
      */
     if ($type != "delete") {
         if (!$data['position']) {
             $error[] = 'Field position is required!';
         }
         if (!is_numeric($data['position'])) {
             $error[] = 'Field position must be numeric!';
         }
         if (!$data['element_name']) {
             $error[] = 'Field Element Name is required!';
         }
         if (!$data['label']) {
             $error[] = 'Field Label is required!';
         }
         if (!$data['func']) {
             $error[] = 'Field Function is required!';
         }
         $menu = new Menu();
         $db = DataConnection::readOnly();
         if ($type == "edit") {
             $menus = $db->menu()->select("*")->where("element_name", $data['element_name'])->and("id != ?", $data['id'])->limit(1);
             if (count($menus) > 0) {
                 $error[] = 'Element name already in use, please try with a different element name!';
             }
         }
         if ($type == "create") {
             $menus = $db->menu()->select("*")->where("element_name", $data['element_name'])->limit(1);
             if (count($menus)) {
                 $error[] = 'Element name already in use, please try with a different element name!';
             }
         }
     }
     //If error exists return or throw exception if the call has been made from the API
     if (!empty($error)) {
         natural_set_message($error[0], 'error');
         if ($from_api) {
             throw new Luracast\Restler\RestException($error_code, $error[0]);
         }
         return $error;
         exit(0);
     }
 }
 /**
  * @smart-auto-routing false
  *@access private
  */
 function _updateComposer()
 {
     $result = 'Composer Update: ' . (exec("composer update -o &") || 'Finished');
     natural_set_message($result, 'success');
 }
 /**
  * Method to delete a field
  *
  * Delete field from database
  *
  * @url DELETE delete
  * @smart-auto-routing false
  *
  * @access public
  * @throws 404 Book not found
  * @return mixed 
  */
 function delete($id)
 {
     $data['id'] = $id;
     $this->_validate($data, "delete");
     $db = DataConnection::readWrite();
     $q = $db->field_templates[$id];
     $response = array();
     if ($q && $q->delete()) {
         $response['code'] = 200;
         $response['message'] = 'Field has been removed!';
         natural_set_message($response['message'], 'success');
         return $response;
     } else {
         $response['code'] = 404;
         $response['message'] = 'Field not found!';
         natural_set_message($response['message'], 'error');
         throw new Luracast\Restler\RestException($response['code'], $response['message']);
         return $response;
     }
 }
function menu_delete_form_submit($data)
{
    $menu = new Menu();
    $delete = $menu->delete($data['id']);
    if ($delete['code'] == 200) {
        natural_set_message('Menu has been removed successfully!', 'success');
        return $data['id'];
    } else {
        natural_set_message('Problems loading menu ' . $data['id'], 'error');
        return FALSE;
    }
}
function create_form($table_name)
{
    //$ft = new DataManager;
    //$ff = new DataManager;
    $db = DataConnection::readOnly();
    $dbform = new DbForm();
    $dbfield = new DbField();
    $param = "";
    $fnm = "";
    $param['form_method'] = "POST";
    $form_add = $table_name . '_create_form';
    $form_edit = $table_name . '_edit_form';
    $form_delete = $table_name . '_delete_form';
    //Saving form parameters for the create form
    $param['form_id'] = $form_add;
    $param['form_name'] = $form_add;
    $param['form_title'] = 'Add New ' . ucwords(str_replace("_", " ", strtolower($table_name)));
    $param['form_action'] = "javascript:process_information('" . $table_name . "_create_form', '" . $table_name . "_create_form_submit', '" . $table_name . "', null, null, null, null, 'create_row');";
    //$ft->dmInsert("" . FORM_TABLE, $param);
    $create = $dbform->create($param);
    $form_add_id = $create['id'];
    //Saving form parameters for edit form
    $param['form_id'] = $form_edit;
    $param['form_name'] = $form_edit;
    $param['form_title'] = 'Edit ' . ucwords(str_replace("_", " ", strtolower($table_name)));
    $param['form_action'] = "javascript:process_information('" . $table_name . "_edit_form', '" . $table_name . "_edit_form_submit', '" . $table_name . "', null, null, null, null, 'edit_row');";
    //$ft->dmInsert("" . FORM_TABLE, $param);
    $edit = $dbform->create($param);
    $form_edit_id = $edit['id'];
    //Saving form parameters for delete form
    $param['form_id'] = $form_delete;
    $param['form_name'] = $form_delete;
    $param['form_title'] = 'Delete ' . ucwords(str_replace("_", " ", strtolower($table_name)));
    $param['form_action'] = "javascript:process_information('" . $table_name . "_delete_form', '" . $table_name . "_delete_form_submit', '" . $table_name . "', null, null, null, null, 'delete_row');";
    //$ft->dmInsert("" . FORM_TABLE, $param);
    $delete = $dbform->create($param);
    $form_delete_id = $delete['id'];
    //$dblink = mysql_connect(NATURAL_DBHOST, NATURAL_DBUSER, NATURAL_DBPASS);
    /*if (!$dblink) {
    			//die('Could not connect: ' . mysql_error());
    			natural_set_message('Failed to connect with the database '.NATURAL_DBNAME.'!', 'error');		
    	}*/
    $today = date("m-d-Y H:i:s");
    $now = date("M-D-Y");
    $query = 'SHOW COLUMNS FROM ' . NATURAL_DBNAME . '.' . $table_name;
    $query_result = mysql_query($query, $dblink);
    $pdo = new PDO(NATURAL_PDO_DSN_READ, NATURAL_PDO_USER_READ, NATURAL_PDO_PASS_READ);
    $q = $pdo->prepare('SHOW COLUMNS FROM ' . NATURAL_DBNAME . '.' . $table_name);
    $q->execute();
    $columns = $q->fetchAll(PDO::FETCH_COLUMN);
    $i = 0;
    if (count($columns) > 0) {
        foreach ($columns as $key => $val) {
            $label = "";
            $nam_ar = explode("_", $val);
            if (is_array($nam_ar)) {
                for ($x = 0; $x < count($nam_ar); $x++) {
                    if ($nam_ar[$x] != "id") {
                        $label .= ucfirst($nam_ar[$x]) . " ";
                    }
                }
                $label = substr($label, 0, -1);
            } else {
                $label = ucfirst($val);
            }
            $field['form_reference'] = $form_add;
            $field['form_template_id'] = $form_add_id;
            $field['field_id'] = $val;
            $field['field_name'] = $val;
            $field['form_field_order'] = $i;
            if ($val == "id") {
                $field['html_type'] = "hidden";
            } else {
                $field['html_type'] = "text";
            }
            $field['def_val'] = "";
            $field['def_label'] = $label;
            //Insert template new
            //$ff->dmInsert("" . FIELD_TABLE, $field);
            $dbfield->create($field);
            //$form_add_id = $create['id'];
            //Insert template edit
            $field['form_reference'] = $form_edit;
            $field['form_template_id'] = $form_edit_id;
            $field['def_val'] = "{$val}";
            $dbfield->create($field);
            if ($val == 'id') {
                //Insert delete id
                $field['form_reference'] = $form_delete;
                $field['form_template_id'] = $form_delete_id;
                $field['def_val'] = "{$val}";
                $field['html_type'] = "hidden";
                $field['def_label'] = 'ID';
                $dbfield->create($field);
            }
            if ($i == 1) {
                //Insert delete message
                $field['form_reference'] = $form_delete;
                $field['form_template_id'] = $form_delete_id;
                $field['field_id'] = 'message';
                $field['field_name'] = 'message';
                $field['form_field_order'] = $i;
                $field['def_label'] = '';
                $field['def_val'] = 'Are you sure you want to delete this ' . $table_name . '?';
                $field['html_type'] = 'message';
                $dbfield->create($field);
                //Insert delete object
                $field['form_reference'] = $form_delete;
                $field['form_template_id'] = $form_delete_id;
                $field['field_id'] = "{$val}";
                $field['field_name'] = "{$val}";
                $field['form_field_order'] = $i + 1;
                $field['def_label'] = '';
                $field['def_val'] = "{$val}";
                $field['html_type'] = 'message';
                $dbfield->create($field);
            }
            $i++;
        }
        $field['form_reference'] = $form_add;
        $field['form_template_id'] = $form_add_id;
        $field['field_id'] = "sub";
        $field['field_name'] = "sub";
        $field['form_field_order'] = $i;
        $field['def_label'] = '';
        $field['def_val'] = '';
        $field['html_type'] = 'submit';
        $dbfield->create($field);
        $field['form_reference'] = $form_edit;
        $field['form_template_id'] = $form_edit_id;
        $dbfield->create($field);
        $field['form_reference'] = $form_delete;
        $field['form_template_id'] = $form_delete_id;
        $dbfield->create($field);
    }
    natural_set_message('Done creating the form for the table ' . $table_name . '!', 'success');
}
session_start();
require_once '../../bootstrap.php';
// Load file infomartion
$id = $_GET['id'];
//$file = new Files();
//  $file->loadSingle('id = ' . $id);
// Get the file from the files table.
$db = DataConnection::readWrite();
$file = $db->files[$id];
$arr['uid'] = $_SESSION['log_id'];
$arr['filename'] = $_FILES['myfile']['name'];
$arr['uri'] = $field_dir . '/' . $_FILES['myfile']['name'];
$arr['filemime'] = $_FILES['myfile']['type'];
$filename = $file['filename'];
$uri = $file['uri'];
if ($file['id'] < 1) {
    natural_set_message('Error loading file information.', 'error');
    return FALSE;
}
// Remove file
//$file->remove('id = ' . $id);
if ($file && $file->delete()) {
    //if ($file->affected > 0) {
    unlink(NATURAL_ROOT_PATH . '/' . $uri);
    natural_set_message('File "' . $filename . '" was removed successfully.', 'success');
    $data = array('removed' => TRUE);
    print json_encode($data);
} else {
    natural_set_message('Error remove file record from database.', 'error');
    return FALSE;
}
    $db = DataConnection::readWrite();
    $file = $db->files();
    $arr['uid'] = $_SESSION['log_id'];
    $arr['filename'] = $_FILES['myfile']['name'];
    $arr['uri'] = $field_dir . '/' . $_FILES['myfile']['name'];
    $arr['filemime'] = $_FILES['myfile']['type'];
    $arr['filesize'] = $_FILES['myfile']['size'];
    $arr['timestamp'] = time();
    $res = $file->insert($arr);
    if ($res['id'] > 0) {
        chmod($upload_file, 0777);
        natural_set_message('File "' . $_FILES['myfile']['name'] . '" was uploaded successfully!', 'success');
        $render = array('filename' => $arr['filename'], 'preview' => $field_preview == 'true' ? TRUE : FALSE, 'preview_uri' => $field_dir . '/' . $_FILES['myfile']['name'], 'id' => $res['id'], 'field_id' => $field_id, 'field_name' => $field->field_name);
        // File item
        $file_item = $twig->render('uploader-file-item.html', $render);
        $breaks = array("\r\n", "\n", "\r");
        $file_item = str_replace($breaks, "", $file_item);
        $file_item = str_replace('"', "'", $file_item);
        $response = array('file_item' => htmlentities($file_item), 'limit' => $field_limit, 'id' => $res['id']);
        print json_encode($response);
        return;
    } else {
        // Due to a database error we need to delete the uploaded file
        unlink($upload_file);
        natural_set_message('Problems creating uploaded file record.', 'error');
        return FALSE;
    }
} else {
    natural_set_message('File was not uploaded.', 'error');
    return FALSE;
}