Example #1
0
    } 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));
}
Example #2
0
<?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']);
Example #3
0
 //////////
 // 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']);
         }
Example #4
0
 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;
 }
Example #5
0
 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;
 }
Example #6
0
    // 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));
Example #7
0
 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']));
     }
 }
Example #8
0
<?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;