} else { if (isset($engine->cleanGet['MYSQL']['action'])) { switch ($engine->cleanGet['MYSQL']['action']) { case 'selectChoices': $field = forms::getField($engine->cleanGet["MYSQL"]['formID'], $engine->cleanGet["MYSQL"]['fieldName']); $fieldChoices = forms::getFieldChoices($field); $result = forms::drawFieldChoices($field, $fieldChoices); die($result); break; case 'searchFormFields': die(mfcsSearch::formFieldOptions($engine->cleanGet["MYSQL"]['formID'])); break; case 'paginationPerPage': $result = users::setField('pagination', $engine->cleanGet["MYSQL"]['perPage']); die(json_encode($result ? "TRUE" : "FALSE")); break; case 'paginationJumpToIDNO': $objects = objects::getAllObjectsForForm($engine->cleanGet['MYSQL']['formID'], "idno"); for ($I = 0; $I < count($objects); $I++) { if (strtolower($objects[$I]['idno']) == strtolower($engine->cleanGet['MYSQL']['idno'])) { header('Location: ' . localvars::get("siteroot") . "dataView/list.php?listType=form&formID=" . $engine->cleanGet['MYSQL']['formID'] . "&page=" . ceil($I / 25)); } } $result = "IDNO not found"; break; } } } header('Content-type: application/json'); die(json_encode($result)); }
<?php include "../header.php"; ini_set('memory_limit', '-1'); if (!isset($engine->cleanGet['MYSQL'])) { $engine->cleanGet['MYSQL'] = array("listType" => ""); } // Setup the start of the breadcrumbs and pre-populate what we can $siteRoot = localvars::get('siteRoot'); $breadCrumbs = array(sprintf('<a href="%s">Home</a>', $siteRoot), sprintf('<a href="%sdataView/list.php">List Objects</a>', $siteRoot)); log::insert("Data View: List", 0, isset($engine->cleanGet['MYSQL']['formID']) ? $engine->cleanGet['MYSQL']['formID'] : 0, $engine->cleanGet['MYSQL']['listType']); // Figure out what kind of list we're building switch ($engine->cleanGet['MYSQL']['listType']) { case 'metadataObjects': $list = listGenerator::metadataObjects($engine->cleanGet['MYSQL']['formID'], $engine->cleanGet['MYSQL']['objectID']); break; case 'selectForm': $list = listGenerator::createFormSelectList(); localvars::add('subTitle', ' - Select Form'); $breadCrumbs[] = sprintf('<a href="%sdataView/list.php?listType=selectForm">Select Form</a>', $siteRoot); break; case 'selectProject': $list = listGenerator::createProjectSelectList(); localvars::add('subTitle', ' - Select Project'); $breadCrumbs[] = sprintf('<a href="%sdataView/list.php?listType=selectProject">Select Project</a>', $siteRoot); break; case 'form': // $time_start = microtime(true); $list = listGenerator::createFormObjectList($engine->cleanGet['MYSQL']['formID']); $form = forms::get($engine->cleanGet['MYSQL']['formID']); localvars::add('subTitle', ' - ' . $form['title']);
////////// // Project Tab Stuff $selectedProjects = objects::getProjects($engine->cleanGet['MYSQL']['objectID']); localVars::add("projectOptions", projects::generateProjectChecklist($selectedProjects)); // Project Tab Stuff ////////// localvars::add("formName", $form['title']); localvars::add("formID", $form['ID']); log::insert("Data Entry: Object: View Page", 0, $form['ID']); // handle submission if (isset($engine->cleanPost['MYSQL']['submitForm'])) { if (forms::submit($engine->cleanGet['MYSQL']['formID']) === FALSE) { throw new Exception("Error Submitting Form."); } http::setGet("objectID", localvars::get("newObjectID")); log::insert("Data Entry: Object: Successful Submission", localvars::get("newObjectID"), $form['ID']); } else { if (isset($engine->cleanPost['MYSQL']['updateForm'])) { if (forms::submit($engine->cleanGet['MYSQL']['formID'], $engine->cleanGet['MYSQL']['objectID']) === FALSE) { throw new Exception("Error Updating Form."); } log::insert("Data Entry: Object: Successful update", $engine->cleanGet['MYSQL']['objectID'], $form['ID']); } else { if (isset($engine->cleanPost['MYSQL']['projectForm'])) { $engine->cleanPost['MYSQL']['projects'] = isset($engine->cleanPost['MYSQL']['projects']) ? $engine->cleanPost['MYSQL']['projects'] : array(); // Add All the new ones if (objects::addProjects($engine->cleanGet['MYSQL']['objectID'], $engine->cleanPost['MYSQL']['projects']) === FALSE) { throw new Exception("Error adding projects to Object."); } log::insert("Data Entry: Object: Successful Project Update", $engine->cleanGet['MYSQL']['objectID'], $form['ID']); }
public static function submit($formID, $objectID = NULL, $importing = FALSE) { $engine = mfcs::$engine; $backgroundProcessing = array(); if (isnull($objectID)) { $newObject = TRUE; } else { $newObject = FALSE; } // Get the current Form if (($form = self::get($formID)) === FALSE) { errorHandle::newError(__METHOD__ . "() - retrieving form by formID", errorHandle::DEBUG); return FALSE; } // the form is an object form, make sure that it has an ID field defined. // @TODO this check can probably be removed, its being checked in object class if ($form['metadata'] == "0") { $idnoInfo = self::getFormIDInfo($formID); if ($idnoInfo === FALSE) { errorHandle::newError(__METHOD__ . "() - no IDNO field for object form.", errorHandle::DEBUG); return FALSE; } } $fields = $form['fields']; if (usort($fields, 'sortFieldsByPosition') !== TRUE) { errorHandle::newError(__METHOD__ . "() - usort", errorHandle::DEBUG); if (!$importing) { errorHandle::errorMsg("Error retrieving form."); } return FALSE; } $values = array(); // go through all the fields, get their values foreach ($fields as $field) { $value = isset($engine->cleanPost['RAW'][$field['name']]) ? $engine->cleanPost['RAW'][$field['name']] : ""; $validationTests = self::validateSubmission($formID, $field, $value, $objectID); if (isnull($validationTests) || $validationTests === FALSE) { continue; } if (strtolower($field['readonly']) == "true") { // need to pull the data that loaded with the form if ($newObject === FALSE) { // grab it from the database $oldObject = objects::get($objectID); $values[$field['name']] = $oldObject['data'][$field['name']]; } else { // If the form has a variable in the value we apply the variable, otherwise, field value. // we need to check for disabled on insert form if (!isset($field['disabledInsert']) || isset($field['disabledInsert']) && $field['disabledInsert'] == "false") { $values[$field['name']] = self::hasFieldVariables($field['value']) ? self::applyFieldVariables($value) : $field['value']; } // grab the default value from the form. // $values[$field['name']] = $field['value']; } } else { if (strtolower($field['type']) == "file" && isset($engine->cleanPost['MYSQL'][$field['name']])) { // Process uploaded files $uploadID = $engine->cleanPost['MYSQL'][$field['name']]; // Process the uploads and put them into their archival locations if (($tmpArray = files::processObjectUploads($objectID, $uploadID)) === FALSE) { errorHandle::newError(__METHOD__ . "() - Archival Location", errorHandle::DEBUG); return FALSE; } if ($tmpArray !== TRUE) { // didn't generate a proper uuid for the items, rollback if (!isset($tmpArray['uuid'])) { $engine->openDB->transRollback(); $engine->openDB->transEnd(); errorHandle::newError(__METHOD__ . "() - No UUID", errorHandle::DEBUG); return FALSE; } // ads this field to the files object // we can't do inserts yet because we don't have the objectID on // new objects files::addProcessingField($field['name']); // Should the files be processed now or later? if (isset($field['bgProcessing']) && str2bool($field['bgProcessing']) === TRUE) { $backgroundProcessing[$field['name']] = TRUE; } else { $backgroundProcessing[$field['name']] = FALSE; } $values[$field['name']] = $tmpArray; } else { // if we don't have files, and this is an update, we need to pull the files information from the // version that is already in the system. $oldObject = objects::get($objectID); if ($newObject === FALSE && objects::hasFiles($objectID, $field['name']) === TRUE) { $values[$field['name']] = $oldObject['data'][$field['name']]; } } } else { $values[$field['name']] = $value; } } } if (isset($engine->errorStack['error']) && count($engine->errorStack['error']) > 0) { // errorHandle::newError(__METHOD__."() - Error stack not empty.", errorHandle::DEBUG); return FALSE; } // start transactions $result = $engine->openDB->transBegin("objects"); if ($result !== TRUE) { if (!$importing) { errorHandle::errorMsg("Database transactions could not begin."); } errorHandle::newError(__METHOD__ . "() - unable to start database transactions", errorHandle::DEBUG); return FALSE; } if ($newObject === TRUE) { if (objects::create($formID, $values, $form['metadata'], isset($engine->cleanPost['MYSQL']['parentID']) ? $engine->cleanPost['MYSQL']['parentID'] : "0") === FALSE) { $engine->openDB->transRollback(); $engine->openDB->transEnd(); if (!$importing) { errorHandle::errorMsg("Error inserting new object."); } errorHandle::newError(__METHOD__ . "() - Error inserting new object.", errorHandle::DEBUG); return FALSE; } // Grab the objectID of the new object $objectID = localvars::get("newObjectID"); } else { if (objects::update($objectID, $formID, $values, $form['metadata'], isset($engine->cleanPost['MYSQL']['parentID']) ? $engine->cleanPost['MYSQL']['parentID'] : "0") === FALSE) { $engine->openDB->transRollback(); $engine->openDB->transEnd(); if (!$importing) { errorHandle::errorMsg("Error updating."); } errorHandle::newError(__METHOD__ . "() - Error updating.", errorHandle::DEBUG); return FALSE; } } // Now that we have a valid objectID, we insert into the processing table if (files::insertIntoProcessingTable($objectID) === FALSE) { $engine->openDB->transRollback(); $engine->openDB->transEnd(); errorHandle::newError(__METHOD__ . "() - Processing Table", errorHandle::DEBUG); return FALSE; } // end transactions $engine->openDB->transCommit(); $engine->openDB->transEnd(); if (!is_empty($backgroundProcessing)) { foreach ($backgroundProcessing as $fieldName => $V) { if ($V === FALSE) { // No background processing. do it now. files::process($objectID, $fieldName); } } } if ($newObject === TRUE) { if (!$importing) { errorHandle::successMsg("Object created successfully."); } } else { if (!$importing) { errorHandle::successMsg("Object updated successfully."); } } return TRUE; }
public static function buildFilesPreview($objectID, $fieldName = NULL) { if (objects::validID(TRUE, $objectID) === FALSE) { return FALSE; } if (($object = objects::get($objectID, TRUE)) === FALSE) { return FALSE; } $output = ''; if (isset($fieldName)) { $field = forms::getField($object['formID'], $fieldName); $fields = array($field); } else { $fields = forms::getFields($object['formID']); } $fileLIs = array(); foreach ($fields as $field) { if ($field['type'] != 'file') { continue; } // If there's nothing uploaded for the field, no need to continue if (empty($object['data'][$field['name']])) { continue; } // Figure out some needed vars for later $fileDataArray = $object['data'][$field['name']]; $assetsID = $fileDataArray['uuid']; $fileLIs = array(); uasort($fileDataArray['files']['archive'], function ($a, $b) { return strnatcasecmp($a['name'], $b['name']); }); foreach ($fileDataArray['files']['archive'] as $fileID => $file) { $_filename = pathinfo($file['name']); $filename = $_filename['filename']; $links = array(); $links['Original'] = sprintf('%sincludes/fileViewer.php?objectID=%s&field=%s&fileID=%s&type=%s', localvars::get('siteRoot'), $objectID, $field['name'], $fileID, 'archive'); if (str2bool($field['convert'])) { $links['Converted'] = sprintf('%sincludes/fileViewer.php?objectID=%s&field=%s&fileID=%s&type=%s', localvars::get('siteRoot'), $objectID, $field['name'], $fileID, 'processed'); } if (str2bool($field['thumbnail'])) { $links['Thumbnail'] = sprintf('%sincludes/fileViewer.php?objectID=%s&field=%s&fileID=%s&type=%s', localvars::get('siteRoot'), $objectID, $field['name'], $fileID, 'thumbs'); } if (str2bool($field['ocr'])) { $links['OCR'] = sprintf('%sincludes/fileViewer.php?objectID=%s&field=%s&fileID=%s&type=%s', localvars::get('siteRoot'), $objectID, $field['name'], $fileID, 'ocr'); } if (str2bool($field['combine'])) { $links['Combined PDF'] = sprintf('%sincludes/fileViewer.php?objectID=%s&field=%s&type=%s', localvars::get('siteRoot'), $objectID, $field['name'], 'combinedPDF'); $links['Combined Thumbnail'] = sprintf('%sincludes/fileViewer.php?objectID=%s&field=%s&type=%s', localvars::get('siteRoot'), $objectID, $field['name'], 'combinedThumb'); } $previewLinks = array(); $downloadLinks = array(); foreach ($links as $linkLabel => $linkURL) { $previewLinks[] = sprintf('<li><a tabindex="-1" href="javascript:;" onclick="previewFile(this,\'%s\')">%s</a></li>', $linkURL, $linkLabel); $downloadLinks[] = sprintf('<li><a tabindex="-1" href="%s&download=1">%s</a></li>', $linkURL, $linkLabel); } // Build the preview dropdown HTML $previewDropdown = '<div class="btn-group">'; $previewDropdown .= ' <a class="btn dropdown-toggle" data-toggle="dropdown" href="#">'; $previewDropdown .= ' Preview <span class="caret"></span>'; $previewDropdown .= ' </a>'; $previewDropdown .= sprintf('<ul class="dropdown-menu">%s</ul>', implode('', $previewLinks)); $previewDropdown .= '</div>'; // Build the download dropbox HTML $downloadDropdown = '<div class="btn-group">'; $downloadDropdown .= ' <a class="btn dropdown-toggle" data-toggle="dropdown" href="#">'; $downloadDropdown .= ' Download <span class="caret"></span>'; $downloadDropdown .= ' </a>'; $downloadDropdown .= sprintf('<ul class="dropdown-menu">%s</ul>', implode('', $downloadLinks)); $downloadDropdown .= '</div>'; $fileLIs[] = sprintf('<li><div class="filename">%s</div><!-- TODO <button class="btn">Field Details</button> -->%s%s</li>', $file['name'], $previewDropdown, $downloadDropdown); } $output .= sprintf('<div class="filePreviewField"><header>%s</header><ul class="filePreviews">%s</ul></div>', $field['label'], implode('', $fileLIs)); } // Include the filePreview Modal, and the CSS and JavaScript links $output .= '<div id="filePreviewModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button><h3></h3></div><div class="modal-body"><iframe class="filePreview"></iframe></div><div class="modal-footer"><a class="btn previewDownloadLink">Download File</a><a class="btn btn-primary" data-dismiss="modal" aria-hidden="true">Close</a></div></div>'; $output .= sprintf('<link href="%sincludes/css/filePreview.css" rel="stylesheet">', localvars::get('siteRoot')); $output .= sprintf('<script src="%sincludes/js/filePreview.js"></script>', localvars::get('siteRoot')); return $output; }
// exit; // check to see if we have a digital item for object if (file_exists("/home/mfcs.lib.wvu.edu/data/working/uploads/" . $submitArray['idno'])) { $submitArray['digitalFiles'] = $submitArray['idno']; $submitArray['mediaRelease'] = "Yes"; } if (objects::add("2", $submitArray) !== TRUE) { print "error adding object " . $submitArray['idno']; print "<pre>"; var_dump($submitArray); print "</pre>"; errorHandle::prettyPrint(); exit; } // add the item to the pec project if (objects::addProject(localvars::get("newObjectID"), "1") === FALSE) { print "error -- add Project: \n"; print "<pre>"; var_dump($submitArray); print "</pre>"; errorHandle::prettyPrint(); exit; } mfcs::$engine->cleanPost['MYSQL'] = array(); mfcs::$engine->cleanPost['HTML'] = array(); mfcs::$engine->cleanPost['RAW'] = array(); // make certain we don't have any data cache unset($submitArray); } print "Records: <pre>"; var_dump(count($records));
private static function generateAccordionFormList_links($form, $entry, $metadata = FALSE) { if (!isset($form['ID']) || !isset($form['title'])) { return FALSE; } if ($entry === FALSE) { return sprintf('<a href="index.php?id=%s">%s</a>', htmlSanitize($form['ID']), forms::title($form['ID'])); } else { return sprintf('<a href="%sdataEntry/%s.php?formID=%s">%s</a>', localvars::get("siteRoot"), $metadata === TRUE ? "metadata" : "object", htmlSanitize($form['ID']), forms::title($form['ID'])); } }
<?php // @TODO there is way too much logic in this file. It needs to be refactored out. include "../header.php"; $formID = isset($engine->cleanPost['HTML']['id']) ? $engine->cleanPost['HTML']['id'] : (isset($engine->cleanGet['HTML']['id']) ? $engine->cleanGet['HTML']['id'] : NULL); if (is_empty($formID)) { $formID = NULL; } log::insert("Form Creator: Edit Forms", 0, $formID); if (isset($engine->cleanPost['MYSQL']['deleteForm'])) { forms::delete($engine->cleanGet['HTML']['id']); http::redirect(localvars::get('siteRoot') . 'formCreator/list.php', 301); } if (isset($engine->cleanPost['MYSQL']['submitNavigation'])) { try { if (navigation::updateFormNav($engine->cleanPost['RAW']['groupings']) === FALSE) { throw new Exception("Error saving navigation"); } errorHandle::successMsg("Successfully updated Form Navigation."); } catch (Exception $e) { errorHandle::newError("{$e->getFile()}:{$e->getLine()} {$e->getMessage()}", errorHandle::DEBUG); errorHandle::errorMsg("Error Updating Navigation"); $engine->openDB->transRollback(); $engine->openDB->transEnd(); } } if (isset($engine->cleanPost['MYSQL']['submitForm'])) { $engine->openDB->transBegin(); $form = json_decode($engine->cleanPost['RAW']['form'], TRUE); $fields = json_decode($engine->cleanPost['RAW']['fields'], TRUE); $idno = NULL;