Пример #1
0
 public static function saveSession()
 {
     $engine = EngineAPI::singleton();
     $localvars = localvars::getInstance();
     $db = db::get($localvars->get('dbConnectionName'));
     $sql = "INSERT INTO `session`(username,sessionPages,ipAddr) VALUES(?,?,?)";
     $validate = new validate();
     $username = session::get('username');
     $pages = session::get('loggedPages');
     $pages = dbSanitize(implode(',', $pages));
     $ip = $_SERVER['REMOTE_ADDR'];
     $sqlArray = array($username, $pages, $ip);
     $db->beginTransaction();
     try {
         $sqlResult = $db->query($sql, $sqlArray);
         if ($sqlResult->error()) {
             throw new Exception("ERROR SQL" . $sqlResult->errorMsg());
         }
         $db->commit();
     } catch (Exception $e) {
         $db->rollback();
         $localvars->set('feedback', $e->getMessage());
         errorHandle::errorMsg($e->getMessage());
     }
 }
function getCompanyName($id)
{
    $localvars = localvars::getInstance();
    $validate = new validate();
    $customers = new Customers();
    $returnValue = "";
    if (isnull($id) && !$validate->integer($id)) {
        throw new Exception('not valid integer');
        return false;
    } else {
        $data = $customers->getRecords($id);
        $returnValue = $data[0]['companyName'];
        return $returnValue;
    }
}
Пример #3
0
 public static function buildProjectNavigation($formID)
 {
     if (($form = forms::get($formID)) === FALSE) {
         return FALSE;
     }
     localvars::add("formID", htmlSanitize($formID));
     $output = "";
     $currentGroup = "";
     if (!is_array($form['navigation'])) {
         return $output;
     }
     foreach ($form['navigation'] as $item) {
         // deal with field sets
         if ($item['grouping'] != $currentGroup) {
             if ($currentGroup != "") {
                 $output .= "</ul></li>";
             }
             if (!is_empty($item['grouping'])) {
                 $output .= sprintf('<li><strong>%s</strong><ul>', $item['grouping']);
             }
             $currentGroup = $item['grouping'];
         }
         $output .= "<li>";
         if ($item['type'] == "logout") {
             $output .= sprintf('<a href="%s">%s</a>', htmlSanitize($item['url']), htmlSanitize($item['label']));
         } else {
             if ($item['type'] == "link") {
                 $item['url'] = preg_replace("/{siteRoot}/", mfcs::config("siteRoot"), $item['url']);
                 $output .= sprintf('<a href="%s">%s</a>', htmlSanitize($item['url']), htmlSanitize($item['label']));
             } else {
                 if ($item['type'] == "objectForm" || $item['type'] == "metadataForm") {
                     $form = forms::get($item['formID']);
                     $output .= sprintf('<a href="" data-formID="%s" data-header="%s" data-toggle="modal" class="metadataObjectEditor">%s</a>', htmlSanitize($item['formID']), htmlSanitize($item['label']), htmlSanitize(!empty($form['displayTitle']) ? $form['displayTitle'] : (!empty($form['title']) ? $form['title'] : '[No form title]')));
                 } else {
                     $output .= sprintf('%s', htmlSanitize($item['label']));
                 }
             }
         }
         $output .= "</li>";
     }
     return $output;
 }
 public function setupForm($id = null)
 {
     try {
         // call engine
         $engine = EngineAPI::singleton();
         $localvars = localvars::getInstance();
         $validate = new validate();
         // create customer form
         $form = formBuilder::createForm('TimeTracker');
         $form->linkToDatabase(array('table' => 'timeTracking'));
         if (!is_empty($_POST) || session::has('POST')) {
             $processor = formBuilder::createProcessor();
             $processor->processPost();
         }
         // form titles
         $form->insertTitle = "";
         $form->editTitle = "";
         $form->updateTitle = "";
         // if no valid id throw an exception
         if (!$validate->integer($id) && !isnull($id)) {
             throw new Exception(__METHOD__ . '() - Not a valid integer, please check the integer and try again.');
         }
         // form information
         $form->addField(array('name' => 'timeID', 'type' => 'hidden', 'value' => $id, 'primary' => TRUE, 'fieldClass' => 'id', 'showIn' => array(formBuilder::TYPE_INSERT, formBuilder::TYPE_UPDATE)));
         $form->addField(array('name' => 'projectIdLink', 'type' => 'hidden', 'label' => 'Project ID:', 'required' => TRUE, 'fieldClass' => 'projectID'));
         $form->addField(array('name' => 'customerIdLink', 'type' => 'hidden', 'label' => 'Customer ID:', 'fieldClass' => 'customerID', 'required' => TRUE));
         $form->addField(array('name' => 'startTime', 'type' => 'hidden', 'label' => 'start time:', 'fieldClass' => 'startTime', 'required' => TRUE));
         $form->addField(array('name' => 'endTime', 'type' => 'hidden', 'label' => 'end time:', 'fieldClass' => 'endTime', 'required' => TRUE));
         $form->addField(array('name' => 'totalHours', 'type' => 'hidden', 'label' => 'total time:', 'required' => TRUE, 'fieldClass' => 'totalHours'));
         $form->addField(array('name' => "completed", 'label' => "Has this project been completed?", 'showInEditStrip' => TRUE, 'type' => 'boolean', 'duplicates' => TRUE, 'options' => array("YES", "N0")));
         $form->addField(array('name' => "descriptionOfWork", 'label' => "Enter a description of the project:", 'type' => 'textarea'));
         // buttons and submissions
         $form->addField(array('showIn' => array(formBuilder::TYPE_UPDATE), 'name' => 'update', 'type' => 'submit', 'fieldClass' => 'submit', 'value' => 'Update'));
         $form->addField(array('showIn' => array(formBuilder::TYPE_UPDATE), 'name' => 'delete', 'type' => 'delete', 'fieldClass' => 'delete hidden', 'value' => 'Delete'));
         $form->addField(array('showIn' => array(formBuilder::TYPE_INSERT), 'name' => 'insert', 'type' => 'submit', 'fieldClass' => 'submit', 'value' => 'Submit'));
         return '{form name="TimeTracker" display="form"}';
     } catch (Exception $e) {
         errorHandle::errorMsg($e->getMessage());
     }
 }
function displayRoute($url, $vars)
{
    $localvars = localvars::getInstance();
    $model = isset($vars['model']) ? $vars['model'] : null;
    $action = isset($vars['action']) ? $vars['action'] : null;
    $item = isset($vars['item']) ? $vars['item'] : null;
    // expected pages
    $expectedModels = array('customers', 'projects', 'timeTracker');
    if (in_array($model, $expectedModels)) {
        $pageVariables = array('model' => ucfirst($model), 'action' => $action, 'item' => $item);
        $view = new View($model, $pageVariables);
    } else {
        if (isnull($model) || $model == "/" || $model == "home") {
            $pageVariables = array('model' => ucfirst($model));
            $view = new View('Home', $pageVariables);
        } else {
            $pageVariables = array('model' => ucfirst($model));
            // send to 404 error
            $view = new View('Error', $pageVariables);
        }
    }
    $html = $view->render();
    $localvars->set('content', $html);
}
Пример #6
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;
 }
Пример #7
0
<?php

include "../header.php";
$engine->eTemplate("include", "header");
$stats = new exporting(".");
log::insert("Exporting: View Index");
localvars::add("exportsList", $stats->showExportListing());
?>
<section>
	<header class="page-header">
		<h1>Exports</h1>
	</header>

	<nav id="breadcrumbs">
		<ul class="breadcrumb">
			<li><a href="{local var="siteRoot"}">Home</a></li>
			<li><a href="{local var="siteRoot"}/exports/">Exports</a></li>
		</ul>
	</nav>

	{local var="exportsList"}

</section>
<?php 
$engine->eTemplate("include", "footer");
<?php

$localvars = localvars::getInstance();
$localvars->set('siteRoot', '/');
$localvars->set('dbConnectionName', 'appDB');
$localvars->set("meta_authors", "");
$localvars->set('appName', "");
Пример #9
0
<?php

$currentProjectsIDs = array_keys(sessionGet('currentProject'));
$projectListHTML = '<ul id="selectProjectsList">';
try {
    if (($projects = projects::getProjects()) === FALSE) {
        throw new Exception("Error retrieving project list.");
    }
    foreach ($projects as $project) {
        $projectListHTML .= sprintf("<li><label><input type='checkbox' value='%s' data-label='%s'%s> %s</label></li>", $project['ID'], $project['projectName'], in_array($project['ID'], $currentProjectsIDs) ? " checked='checked'" : '', $project['projectName']);
    }
} catch (Exception $e) {
    $projectListHTML .= "<li>" . $e->getMessage() . "</li>";
}
$projectListHTML .= '</ul>';
localvars::add('projectModalList', $projectListHTML);
?>
{engine name="csrf"}
<!-- Modal - Select Current Projects -->
<div id="selectProjectsModal" 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>Your current projects:</h3>
	</div>
	<div class="modal-body">{local var="projectModalList"}</div>
	<div class="modal-footer">
		<button class="btn" data-dismiss="modal" aria-hidden="true">Cancel</button>
		<button class="btn btn-primary" onclick="saveSelectedProjects();">Save changes</button>
	</div>
</div>
Пример #10
0
<?php

include "../header.php";
try {
    if (($accordionList = listGenerator::generateAccordionFormList()) === FALSE) {
        throw new Exception("Error generating Form List");
    }
    localvars::add("accordionList", $accordionList);
} catch (Exception $e) {
    errorHandle::errorMsg($e->getMessage());
}
localVars::add("results", displayMessages());
log::insert("Form Creator: View Forms");
$engine->eTemplate("include", "header");
?>

<section>
	<header class="page-header">
		<h1>Select a Form</h1>
	</header>
	<nav id="breadcrumbs">
		<ul class="breadcrumb">
			<li><a href="{local var="siteRoot"}">Home</a></li>
			<li><a href="{local var="siteRoot"}/formCreator/list.php">List Forms</a></li>
		</ul>
	</nav>

	{local var="results"}

	<div class="container-fluid">
		{local var="accordionList"}
Пример #11
0
        if (!isset($compatibleForms[$engine->cleanPost['MYSQL']['form']])) {
            throw new Exception("Selected form is not compatible with original form.");
        }
        // @TODO this logic shouldn't be here
        $sql = sprintf("UPDATE `objects` SET `formID`='%s' WHERE `ID`='%s' AND `formID`='%s' LIMIT 1", $engine->cleanPost['MYSQL']['form'], $engine->openDB->escape($engine->cleanPost['MYSQL']['objectID']), $engine->openDB->escape($form['ID']));
        $sqlResult = $engine->openDB->query($sql);
        if (!$sqlResult['result']) {
            errorHandle::newError(__METHOD__ . "() - : " . $sqlResult['error'], errorHandle::DEBUG);
            throw new Exception("Error updating object record.");
        }
        if (($form = forms::get($engine->cleanPost['MYSQL']['form'])) === FALSE) {
            throw new Exception("Error retrieving form.");
        }
        log::insert("Data Entry: Move: Successful Move", $engine->cleanPost['MYSQL']['objectID'], $form['ID'], $engine->cleanPost['MYSQL']['form']);
        errorHandle::successMsg("Object Moved.");
        localvars::add("originalFormTitle", forms::title($form['ID']));
    }
} catch (Exception $e) {
    log::insert("Data Entry: Move: Error", 0, 0, $e->getMessage());
    errorHandle::errorMsg($e->getMessage());
}
log::insert("Data Entry: Move: Page View");
localVars::add("results", displayMessages());
$engine->eTemplate("include", "header");
?>

{local var="projectWarning"}

<section>
	<header class="page-header">
		<h1>{local var="formName"}</h1>
Пример #12
0
<?php

$currentProjects = sessionGet('currentProject');
if (isset($currentProjects) and sizeof($currentProjects)) {
    localvars::add('currentProjectNames', implode(', ', array_values($currentProjects)));
    localvars::add('currentProjectIDs', implode(',', array_keys($currentProjects)));
} else {
    localvars::add('currentProjectNames', '<span style="color: #999; font-style: italic;">None Selected</span>');
    localvars::add('currentProjectIDs', '');
}
?>
<ul class="nav">
	<li class="dropdown">
		<a href="#" class="dropdown-toggle" data-toggle="dropdown">
			Navigation
			<b class="caret"></b>
		</a>
		<ul class="dropdown-menu">
			<li><a href="{local var="siteRoot"}">Home</a></li>
			<li class="dropdown-submenu">
				<a href="#" class="dropdown-toggle" data-toggle="dropdown">Object Management<b class="caret"></b></a>
				<ul class="dropdown-menu">
					<li><a href="{local var="siteRoot"}dataEntry/selectForm.php">Create</a></li>
					<li><a href="{local var="siteRoot"}dataView/list.php">List</a></li>
					<li><a href="{local var="siteRoot"}dataView/search.php">Search</a></li>
				</ul>
			</li>
			<li class="dropdown-submenu">
				<a tabindex="-1" href="#">Form Management</a>
				<ul class="dropdown-menu">
					<li><a href="{local var="siteRoot"}formCreator/">New Form</a></li>
Пример #13
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));
Пример #14
0
    $totalPECObjectsPublic += $object['data']['publicRelease'] == "Yes" ? 1 : 0;
    $totalItemCount += (int) $object['data']['itemCount'] > 0 ? (int) $object['data']['itemCount'] : 0;
    $totalItemCountPublic += (int) $object['data']['itemCount'] > 0 && $object['data']['publicRelease'] == "Yes" ? (int) $object['data']['itemCount'] : 0;
}
localvars::add("totalMediaItems", $totalMediaItems);
localvars::add("totalMediaItemsPublic", $totalMediaItemsPublic);
localvars::add("totalPECObjectsPublic", $totalPECObjectsPublic);
localvars::add("totalItemCount", $totalItemCount);
localvars::add("totalItemCountPublic", $totalItemCountPublic);
$metadataForms = forms::getObjectFormMetaForms("2");
$metaInformation = "<table>";
foreach ($metadataForms as $form) {
    $metaInformation .= sprintf("<tr><td><strong>%s</strong></td><td>%d</td></tr>", $form['displayTitle'], count(objects::getAllObjectsForForm($form['ID'])));
}
$metaInformation .= "</table>";
localvars::add("metaInformation", $metaInformation);
$engine->eTemplate("include", "header");
?>

<h1>Stats for PEC</h1>

<table id="statsTable" width="600">

	<tr style="background-color: #EEEEFF;">
		<th align="left">
			Type
		</th>
		<th align="right">
			Total Count
		</th>
		<th align="right">
Пример #15
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']));
     }
 }
 public function renderDataTable()
 {
     try {
         $engine = EngineAPI::singleton();
         $localvars = localvars::getInstance();
         $validate = new validate();
         $dataRecord = self::getRecords();
         $records = "";
         foreach ($dataRecord as $data) {
             $records .= sprintf("<tr>\n                                        <td>%s</td>\n                                        <td>%s</td>\n                                        <td>%s</td>\n                                        <td>%s</td>\n                                        <td>%s</td>\n                                        <td>%s</td>\n                                        <td><a href='customers/edit/%s'><span class='glyphicon glyphicon-edit'></span> </a></td>\n                                        <td><a href='customers/confirmDelete/%s'> <span class='glyphicon glyphicon-trash'></span> </a></td>\n                                    </tr>", $data['companyName'], $data['firstName'], $data['lastName'], $data['email'], $data['phone'], $data['website'], $data['ID'], $data['ID']);
         }
         $output = sprintf("<div class='dataTable table-responsive'>\n                                        <table class='table table-striped'>\n                                            <thead>\n                                                <tr class='info'>\n                                                    <th> Company Name </th>\n                                                    <th> First name </th>\n                                                    <th> Last Name </th>\n                                                    <th> Email </th>\n                                                    <th> Phone Number </th>\n                                                    <th> Website </th>\n                                                    <th> </th>\n                                                    <th> </th>\n                                                </tr>\n                                            </thead>\n                                            <tbody>\n                                                %s\n                                            </tbody>\n                                        </table>\n                                    </div>", $records);
         return $output;
     } catch (Exception $e) {
         errorHandle::errorMsg($e->getMessage());
         return $e->getMessage();
     }
 }
Пример #17
0
 public static function create($formID, $data, $metadata, $parentID = 0, $modifiedTime = NULL, $createTime = NULL)
 {
     if (!is_array($data)) {
         errorHandle::newError(__METHOD__ . "() - : data is not array", errorHandle::DEBUG);
         return FALSE;
     }
     // Get the current Form
     if (($form = forms::get($formID)) === FALSE) {
         errorHandle::newError(__METHOD__ . "() - retrieving form by formID", errorHandle::DEBUG);
         return FALSE;
     }
     // begin transactions
     $result = mfcs::$engine->openDB->transBegin("objects");
     if ($result !== TRUE) {
         errorHandle::newError(__METHOD__ . "() - unable to start database transactions", errorHandle::DEBUG);
         return FALSE;
     }
     // Insert into the database
     $sql = sprintf("INSERT INTO `objects` (parentID,formID,data,metadata,modifiedTime,createTime,modifiedBy,createdBy) VALUES('%s','%s','%s','%s','%s','%s','%s','%s')", isset(mfcs::$engine->cleanPost['MYSQL']['parentID']) ? mfcs::$engine->cleanPost['MYSQL']['parentID'] : "0", mfcs::$engine->openDB->escape($formID), encodeFields($data), mfcs::$engine->openDB->escape($form['metadata']), time(), time(), mfcs::$engine->openDB->escape(users::user('ID')), mfcs::$engine->openDB->escape(users::user('ID')));
     $sqlResult = mfcs::$engine->openDB->query($sql);
     if (!$sqlResult['result']) {
         mfcs::$engine->openDB->transRollback();
         mfcs::$engine->openDB->transEnd();
         errorHandle::newError(__METHOD__ . "() - " . $sql . " -- " . $sqlResult['error'], errorHandle::DEBUG);
         return FALSE;
     }
     // Set the new object ID in a local variable
     $objectID = $sqlResult['id'];
     localvars::add("newObjectID", $objectID);
     // Insert into the new data table
     if (self::insertObjectData($objectID, $data, $formID) === FALSE) {
         mfcs::$engine->openDB->transRollback();
         mfcs::$engine->openDB->transEnd();
         errorHandle::newError(__METHOD__ . "() - inserting objects", errorHandle::DEBUG);
         return FALSE;
     }
     // if it is an object form (not a metadata form)
     // do the IDNO stuff
     if ($form['metadata'] == "0") {
         // the form is an object form, make sure that it has an ID field defined.
         if (($idnoInfo = forms::getFormIDInfo($formID)) === FALSE) {
             errorHandle::newError(__METHOD__ . "() - no IDNO field for object form.", errorHandle::DEBUG);
             return FALSE;
         }
         // if the idno is managed by the system get a new idno
         if ($idnoInfo['managedBy'] == "system") {
             $idno = mfcs::$engine->openDB->escape(mfcs::getIDNO($formID));
         } else {
             $idno = mfcs::$engine->cleanPost['MYSQL']['idno'];
         }
         if (isempty($idno)) {
             mfcs::$engine->openDB->transRollback();
             mfcs::$engine->openDB->transEnd();
             return FALSE;
         }
         if (!self::updateIDNO($objectID, $idno)) {
             mfcs::$engine->openDB->transRollback();
             mfcs::$engine->openDB->transEnd();
             errorHandle::newError(__METHOD__ . "() - updating the IDNO: " . $sqlResult['error'], errorHandle::DEBUG);
             return FALSE;
         }
         // increment the project counter
         $sql = sprintf("UPDATE `forms` SET `count`=`count`+'1' WHERE `ID`='%s'", mfcs::$engine->openDB->escape($form['ID']));
         $sqlResult = mfcs::$engine->openDB->query($sql);
         if (!$sqlResult['result']) {
             mfcs::$engine->openDB->transRollback();
             mfcs::$engine->openDB->transEnd();
             errorHandle::newError(__METHOD__ . "() - Error incrementing form counter: " . $sqlResult['error'], errorHandle::DEBUG);
             return FALSE;
         }
     }
     // Update duplicate matching table
     if (duplicates::updateDupeTable($formID, $objectID, $data) === FALSE) {
         mfcs::$engine->openDB->transRollback();
         mfcs::$engine->openDB->transEnd();
         errorHandle::newError(__METHOD__ . "() - updating dupe matching", errorHandle::DEBUG);
         return FALSE;
     }
     // Add it to the users current projects
     if (($currentProjects = users::loadProjects()) === FALSE) {
         mfcs::$engine->openDB->transRollback();
         mfcs::$engine->openDB->transEnd();
         return FALSE;
     }
     foreach ($currentProjects as $projectID => $projectName) {
         if (forms::checkFormInProject($projectID, $formID) === TRUE) {
             if (objects::addProject($objectID, $projectID) === FALSE) {
                 mfcs::$engine->openDB->transRollback();
                 mfcs::$engine->openDB->transEnd();
                 return FALSE;
             }
         }
     }
     // end transactions
     mfcs::$engine->openDB->transCommit();
     mfcs::$engine->openDB->transEnd();
     return TRUE;
 }
Пример #18
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;
 }
Пример #19
0
    }
    if (!isnull($return) && $ajax === TRUE) {
        die(displayMessages());
    }
    // build the form for displaying
    $builtForm = forms::build($engine->cleanGet['MYSQL']['formID'], $engine->cleanGet['MYSQL']['objectID']);
    if ($builtForm === FALSE) {
        throw new Exception("Error building form.");
    }
    $builtEditTable = forms::buildEditTable($engine->cleanGet['MYSQL']['formID']);
    if ($builtForm === FALSE) {
        throw new Exception("Error building edit table.");
    }
    localvars::add("form", $builtForm);
    localvars::add("metadataEditTable", $builtEditTable);
    localvars::add("formID", $form['ID']);
    // localvars::add("leftnav",buildProjectNavigation($engine->cleanGet['MYSQL']['id']));
} catch (Exception $e) {
    log::insert("Data Entry: Metadata: Error", 0, 0, $e->getMessage());
    errorHandle::errorMsg($e->getMessage());
}
log::insert("Data Entry: Metadata: View Page");
localVars::add("results", displayMessages());
if (!$ajax) {
    // Display warning if form is not part of current project
    forms::checkFormInCurrentProjects($engine->cleanGet['MYSQL']['formID']);
    $engine->eTemplate("include", "header");
}
?>

{local var="projectWarning"}
Пример #20
0
        switch ($row['type']) {
            case mfcs::AUTH_VIEW:
                $selectedViewUsers .= $optionHTML;
                break;
            case mfcs::AUTH_ENTRY:
                $selectedEntryUsers .= $optionHTML;
                break;
            case mfcs::AUTH_ADMIN:
                $selectedUsersAdmins .= $optionHTML;
                break;
        }
    }
}
localvars::add("selectedEntryUsers", $selectedEntryUsers);
localvars::add("selectedViewUsers", $selectedViewUsers);
localvars::add("selectedUsersAdmins", $selectedUsersAdmins);
localVars::add("results", displayMessages());
$selectedProjects = forms::getProjects(isset($engine->cleanGet['MYSQL']['id']) ? $engine->cleanGet['MYSQL']['id'] : 0);
localVars::add("projectOptions", projects::generateProjectChecklist($selectedProjects));
$engine->eTemplate("include", "header");
?>

<script type="text/javascript" src='{local var="siteRoot"}includes/js/createForm_functions.js'></script>

<section>
	<ul class="nav nav-tabs">
		<li class="active"><a href="#formCreator" data-toggle="tab">Form Creator</a></li>
		<?php 
if (!isnull($formID)) {
    ?>
		<?php 
Пример #21
0
    case 'all':
        $list = listGenerator::createAllObjectList();
        localvars::add('subTitle', ' - All Objects');
        $breadCrumbs[] = sprintf('<a href="%sdataView/list.php?listType=all">All Objects</a>', $siteRoot);
        break;
    default:
        $list = listGenerator::createInitialSelectList();
        break;
}
localvars::add("list", $list);
// Make breadcrumbs
$crumbs = '';
foreach ($breadCrumbs as $breadCrumb) {
    $crumbs .= "<li>{$breadCrumb}</li>";
}
localvars::add("breadcrumbs", $crumbs);
localVars::add("results", displayMessages());
$engine->eTemplate("include", "header");
?>

<section>
	<header class="page-header">
		<h1>List Objects{local var="subTitle"}</h1>
	</header>
	<nav id="breadcrumbs">
		<ul class="breadcrumb">
			{local var="breadcrumbs"}
		</ul>
	</nav>

	{local var="results"}
 public function getCustomerProjectsJSON($customerID)
 {
     try {
         // call engine
         $engine = EngineAPI::singleton();
         $localvars = localvars::getInstance();
         $db = db::get($localvars->get('dbConnectionName'));
         $sql = "SELECT * FROM `projects`";
         $validate = new validate();
         // test to see if Id is present and valid
         if (!isnull($customerID) && $validate->integer($customerID)) {
             $sql .= sprintf('WHERE customerID = %s', $customerID);
         }
         // if no valid id throw an exception
         if (!$validate->integer($customerID) && !isnull($customerID)) {
             throw new Exception("An invalid ID was given!");
         }
         // get the results of the query
         $sqlResult = $db->query($sql);
         // if return no results
         // else return the data
         if ($sqlResult->rowCount() < 1) {
             return "There are no projects in the database.";
         } else {
             $data = array();
             while ($row = $sqlResult->fetch()) {
                 $data[] = $row;
             }
             return json_encode($data);
         }
     } catch (Exception $e) {
         errorHandle::errorMsg($e->getMessage());
     }
 }
Пример #23
0
<?php

include "../header.php";
try {
    if (($formList = listGenerator::generateAccordionFormList(TRUE)) === FALSE) {
        throw new Exception("Error getting Forms Listing");
    } else {
        localvars::add("formList", $formList);
    }
} catch (Exception $e) {
    errorHandle::errorMsg($e->getMessage());
}
localVars::add("results", displayMessages());
log::insert("Data Entry: Form Select: View Page");
$engine->eTemplate("include", "header");
?>

<section>
	<header class="page-header">
		<h1>Select a Form</h1>
	</header>

	<nav id="breadcrumbs">
		<ul class="breadcrumb">
			<li><a href="{local var="siteRoot"}">Home</a></li>
			<li><a href="{local var="siteRoot"}/dataEntry/selectForm.php">Select a Form</a></li>
		</ul>
	</nav>

	{local var="results"}
Пример #24
0
        throw new Exception("No Project ID Provided.");
    }
    // check for edit permissions on the project
    if (projects::checkPermissions($engine->cleanGet['MYSQL']['id']) === FALSE) {
        throw new Exception("Permissions denied for working on this project");
    }
    // Get the project
    $sql = sprintf("SELECT * FROM `projects` WHERE `ID`='%s'", $engine->cleanGet['MYSQL']['id']);
    $sqlResult = $engine->openDB->query($sql);
    if (!$sqlResult['result']) {
        errorHandle::newError(__METHOD__ . "() - " . $sqlResult['error'], errorHandle::DEBUG);
        throw new Exception("Error retrieving project.");
    }
    $row = mysql_fetch_array($sqlResult['result'], MYSQL_ASSOC);
    localvars::add("projectName", $row['projectName']);
    localvars::add("leftnav", buildProjectNavigation($engine->cleanGet['MYSQL']['id']));
} catch (Exception $e) {
    errorHandle::errorMsg($e->getMessage());
}
localVars::add("results", displayMessages());
$engine->eTemplate("include", "header");
?>

<section>
	<header class="page-header">
		<h1>{local var="projectName"}</h1>
	</header>

	{local var="results"}

	<div class="row-fluid">
Пример #25
0
        //////////
        // Project Tab Stuff
        $selectedProjects = objects::getProjects($engine->cleanGet['MYSQL']['objectID']);
        localVars::add("projectOptions", projects::generateProjectChecklist($selectedProjects));
        // Project Tab Stuff
        //////////
    } catch (Exception $e) {
        log::insert("Data Entry: Object: Error", $engine->cleanGet['MYSQL']['objectID'], $engine->cleanGet['MYSQL']['formID'], $e->getMessage());
        errorHandle::errorMsg($e->getMessage());
    }
}
localVars::add("results", displayMessages());
// Display warning if form is not part of current project
forms::checkFormInCurrentProjects($engine->cleanGet['MYSQL']['formID']);
localvars::add("actionHeader", isnull($engine->cleanGet['MYSQL']['objectID']) ? "Add" : "Edit");
localvars::add("parentHeader", isnull($parentObject) ? "" : "<h2>Adding Child to Parent '" . $parentObject['data'][$form['objectTitleField']] . "'</h2>");
$engine->eTemplate("include", "header");
?>

{local var="projectWarning"}

<section>
	<header class="page-header">
		<h1>{local var="actionHeader"} Object - {local var="formName"}</h1>
		{local var="parentHeader"}
	</header>

	<nav id="breadcrumbs">
		<ul class="breadcrumb">
			<li><a href="{local var="siteRoot"}">Home</a></li>
			<li><a href="{local var="siteRoot"}dataEntry/selectForm.php">Select a Form</a></li>
Пример #26
0
 /**
  * =========================================================
  * Checks logic for searching if user email is in the system
  * this will help to provide a way to make sure that users
  * are not duplicated in the system.
  * =========================================================
  **/
 public static function checkEmail($email)
 {
     $engine = EngineAPI::singleton();
     $localvars = localvars::getInstance();
     $db = db::get($localvars->get('dbConnectionName'));
     $sql = "SELECT `email` FROM `users` WHERE `email`=? LIMIT=1";
     $email = dbSanitize($email);
     $sqlResult = $db->query($sql, array($email));
     try {
         if ($sqlResult->error()) {
             throw new Exception("Error Getting Entries");
         }
         if ($sqlResult->rowCount() < 1) {
             return false;
         } else {
             return true;
         }
     } catch (Exception $e) {
         errorHandle::errorMsg($e->getMessage());
     }
 }
Пример #27
0
 public static function numCompleted($user)
 {
     $engine = EngineAPI::singleton();
     $localvars = localvars::getInstance();
     $db = db::get($localvars->get('dbConnectionName'));
     $sql = "SELECT * FROM `completed` WHERE username=?";
     $sqlArray = array(dbSanitize($user));
     $sqlResult = $db->query($sql, $sqlArray);
     if ($sqlResult->error()) {
         return false;
     } else {
         return $sqlResult->rowCount();
     }
 }
Пример #28
0
    return $string;
}
function getHeadingByID($id)
{
    $object = objects::get($id);
    return $object['data']['name'];
}
// Output File:
$outFileName = "pec-data_" . time() . ".xml";
$outFile = "./dlxsXmlImageClass/" . $outFileName;
$outDigitalFileName = "pec-files_" . time() . ".tar.gz";
$outDigitalFile = "./dlxsXmlImageClass/" . $outDigitalFileName;
localvars::add("outFile", $outFile);
localvars::add("outFileName", $outFileName);
localvars::add("outDigitalFile", $outDigitalFile);
localvars::add("outDigitalFileName", $outDigitalFileName);
$sql = sprintf("SELECT MAX(`date`) FROM exports WHERE `formID`='2'");
$sqlResult = $engine->openDB->query($sql);
if (!$sqlResult['result']) {
    errorHandle::newError(__METHOD__ . "() - : " . $sqlResult['error'], errorHandle::DEBUG);
    die("error getting max.");
}
$row = mysql_fetch_array($sqlResult['result'], MYSQL_ASSOC);
$lastExportDate = isnull($row['MAX(`date`)']) ? 0 : $row['MAX(`date`)'];
$objects = objects::getAllObjectsForForm("2");
$xml = '<?xml version="1.0" encoding="UTF-8" ?><!-- This grammar has been deprecated - use FMPXMLRESULT instead --><FMPDSORESULT xmlns="http://www.filemaker.com/fmpdsoresult"><ERRORCODE>0</ERRORCODE><DATABASE>iai_data.fp7</DATABASE><LAYOUT></LAYOUT>';
$count = 0;
foreach ($objects as $object) {
    $mergedCreators = array_merge((array) $object['data']['creatorPersName'], (array) $object['data']['creatorCorpName'], (array) $object['data']['creatorMeetName'], (array) $object['data']['creatorUniformTitle']);
    $mergedSubjects = array_merge((array) $object['data']['subjectPersName'], (array) $object['data']['subjectCorpName'], (array) $object['data']['subjectMeetingName'], (array) $object['data']['subjectUniformTitle'], (array) $object['data']['subjectTopical'], (array) $object['data']['subjectGeoName']);
    $creators = array();
Пример #29
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));
}
Пример #30
0
        if (!$revision) {
            die('Error reading revision');
        } else {
            die(revisions::generateFieldDisplay($revision, $fields));
        }
    }
    ###############################################################################################################
    // Build the select list
    $selectARevision = "";
    foreach ($revisions->getSecondaryIDs($engine->cleanGet['MYSQL']['objectID'], 'DESC') as $revisionID) {
        $selectARevision .= sprintf('<option value="%s">%s</option>', $revisionID, date('D, M d, Y - h:i a', $revisionID));
    }
    localVars::add("selectARevision", $selectARevision);
    localvars::add("formName", $form['title']);
    localvars::add("objectID", $objectID);
    localvars::add("currentVersion", revisions::generateFieldDisplay($object, $fields));
} catch (Exception $e) {
    log::insert("Data Entry: Revision: Caught Exception", 0, 0, $e->getMessage());
    errorHandle::newError($e->getMessage(), errorHandle::DEBUG);
    errorHandle::errorMsg($e->getMessage());
}
localVars::add("results", displayMessages());
$engine->eTemplate("include", "header");
?>

<form id="revisionForm" action="" method="post">
	{engine name="csrf"}
	<input type="hidden" name="revisionID" id="revisionID" value="">
</form>