Exemplo n.º 1
0
 function updateDatabases($xmlPackage, $workflowId, $formData)
 {
     global $db;
     $db = connect($xmlPackage->getDb());
     debug::message("connect to db:" . $xmlPackage->getDb() . '<br>');
     $newDataItem = new coreWorkflowDataPacket($workflowId, array());
     $tables = $xmlPackage->getTables();
     if (sizeof($tables) > 0) {
         //For each table
         for ($tableIndex = 0; $tableIndex < sizeof($tables); $tableIndex++) {
             $table = $tables[$tableIndex]->getTableName();
             $valsArray['workflowId'] = $workflowId;
             $fields = $tables[$tableIndex]->getDbFields();
             //The fields specificed
             for ($index = 0; $index < sizeof($fields); $index++) {
                 $field = $fields[$index];
                 $valsArray[$field] = addslashes($formData[$field]);
             }
             //Does this workflow item already exist in the table
             $sql_query = "workflowId='{$workflowId}'";
             if (dbpear::numRecords($table, "{$sql_query}")) {
                 $keyName = dbs::getprimarykey($table);
                 $keyValue = dbpear::selAttribute($keyName, $table, $sql_query);
                 dbs::updaterecord($table, $valsArray, $keyName, $keyValue);
             } else {
                 dbs::irrecord($table, $valsArray, false);
             }
             $db = connect('iWFMS');
         }
         $xmlParser = new XMLtoArray("jobSpecification.xml");
         $xmlTree = $xmlParser->process();
         //Package the xml data
         $xmlPackage = xmlPackage::package($xmlTree);
         //Display the data as HTML
         xmlPackage::displayItem($xmlPackage, $workflowId, 'workflow', 'Current workflow item');
         //workflowDisplayHTML::html_displayXML($newDataItem);
         //workflowDisplayHTML::tableMainClose();
     } else {
         workflowDisplayHTML::html_displayXML($newDataItem);
         workflowDisplayHTML::tableMainClose();
     }
 }
Exemplo n.º 2
0
    /**
     * @return void
     * @param CoreWorkflowDatPacket $coreWorkflowDataPacket
     * @desc Displays the HTML for the each workflow item
    */
    function html_displayXML($coreWorkflowDataPacket)
    {
        $tdClass = 'helpBod';
        $planGroups = array();
        $formName = '';
        workflowDisplayHTML::workflowState($coreWorkflowDataPacket->getWorkflowId(), $coreWorkflowDataPacket->getData(), false);
        //Fetch plans from the database
        $planGraphList = graphPlanDatabaseAccess::getPlanGraphList($coreWorkflowDataPacket->getworkflowid());
        $possibleActions = actionPacket::processLoop($planGraphList, $coreWorkflowDataPacket->getworkflowid());
        if (sizeof($possibleActions)) {
            //Actions have been fouund
            $possibleActionsSize = sizeof($possibleActions);
            for ($actionPacketIndex = 0; $actionPacketIndex < $possibleActionsSize; $actionPacketIndex++) {
                $currentAction = $possibleActions[$actionPacketIndex]->getAction();
                $data = $currentAction->getData();
                $entryTimepoint = $currentAction->getName();
                $vars = $data[0]->getPredicateValues();
                $formName = $vars[0]->toString();
                $workflowCreator = $vars[1]->toString();
                //Convert into string form
                array_push($planGroups, $vars[2]->toString());
                //Check if this is a loop re-entry point
                if ($possibleActions[$actionPacketIndex]->checkForLoopReentry($entryTimepoint)) {
                    //Check we have not already save the state
                    if (!graphPlanDatabaseAccess::stateAlreadyUpdated($coreWorkflowDataPacket->getworkflowid(), $formName)) {
                        graphPlanDatabaseAccess::savePlanState($planGraphList, $coreWorkflowDataPacket->getworkflowid(), $formName);
                    }
                }
            }
            //Fetch the groups the user is a member of
            $groups = groups::getUserGroupNames($_SESSION['valid_user']);
            $groupString = "";
            $superuser = false;
            //Compare against the groups specified in the plans
            $groupsSize = sizeof($groups);
            for ($index = 0; $index < $groupsSize; $index++) {
                if ($groups[$index] == 'superuser') {
                    $superuser = true;
                } else {
                    $groupString .= $groups[$index];
                }
            }
            if (!$superuser) {
                $match = arrays::searchArray($planGroups, $groups);
            } else {
                $match = $planGroups[0];
            }
            ?>
		
	<td class="<?php 
            echo $tdClass;
            ?>
" width="172"><?php 
            echo string::sentence($formName);
            ?>
</td>
        
	<td class="<?php 
            echo $tdClass;
            ?>
" width="100"> <?php 
            echo string::sentence($workflowCreator);
            ?>
 </td>
        
	<td class="<?php 
            echo $tdClass;
            ?>
"> <?php 
            echo time::arrangedate($coreWorkflowDataPacket->getDate());
            ?>
 </td>

	<?php 
            workflowDisplayHTML::buttons($coreWorkflowDataPacket->getWorkflowId(), $match, $planGroups, $formName);
        }
    }
Exemplo n.º 3
0
 function displayAllData($xmlPackage, $workflowID, $title)
 {
     global $db;
     $db = connect($xmlPackage->getDb());
     debug::message("connect to db:" . $xmlPackage->getDb() . '<br>');
     workflowDisplayHTML::dataTableHead($xmlPackage->getDisplayFields(), "", $title);
     //workflowDisplayHTML::tableMainOpen();
     xmlPackage::__testDatabaseFields(array($workflowID), array(''), $xmlPackage, 'data');
     workflowDisplayHTML::tableMainClose();
 }