<?php
/**
 * cases_ActionsTree.php
 *
 * ProcessMaker Open Source Edition
 * Copyright (C) 2004 - 2008 Colosa Inc.23
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as
 * published by the Free Software Foundation, either version 3 of the
 * License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
 * Coral Gables, FL, 33134, USA, or email info@colosa.com.
 *
 */

$APP_UID = $_SESSION['APPLICATION'];

$c = new Criteria('workflow');
$c->clearSelectColumns();
$c->addSelectColumn(AppThreadPeer::APP_THREAD_PARENT);
$c->add(AppThreadPeer::APP_UID, $APP_UID);
$c->add(AppThreadPeer::APP_THREAD_STATUS, 'OPEN');
$cant = AppThreadPeer::doCount($c);

$oTree = new PmTree();
$oTree->nodeType = "blank";
$oTree->name = 'Actions';
$oTree->showSign = false;

$oCase = new Cases();
$aFields = $oCase->loadCase($_SESSION['APPLICATION'], $_SESSION['INDEX']);

$oCriteria = new Criteria('workflow');
$oCriteria->add(AppDelayPeer::APP_UID, $_SESSION['APPLICATION']);
$oCriteria->add(AppDelayPeer::APP_DEL_INDEX, $_SESSION['INDEX']);
$oCriteria->add(AppDelayPeer::APP_TYPE, 'PAUSE');
$oCriteria->add(AppDelayPeer::APP_DISABLE_ACTION_USER, null);

$oDataset = AppDelayPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
$aRow = $oDataset->getRow();
global $RBAC;
switch ($aFields['APP_STATUS']) {
    case 'DRAFT':
        if (!$aRow) {
            $oNode = $oTree->addChild('1', '<a id="spause" class="linkInBlue" href="#" onclick="pauseCase();return false;">' . G::LoadTranslation('ID_PAUSED_CASE') . '</a></span><a id="scpause" class="linkInBlue" href="#" onclick="cancelPauseCase();return false;" style="display:none">' . G::LoadTranslation('ID_CANCEL') . ' ' . strtolower(G::LoadTranslation('ID_PAUSED_CASE')) . '</a><div id="pausediv" style="display:none"></div>', array('nodeType' => 'parentBlue'));
        } else {
            $oNode = $oTree->addChild('1', '<a class="linkInBlue" href="#" onclick="unpauseCase();return false;">' . G::LoadTranslation('ID_UNPAUSE') . '</a>', array('nodeType' => 'parentBlue'));
        }
        $oNode = $oTree->addChild('2', '<a class="linkInBlue" href="#" onclick="deleteCase(\'' . $APP_UID . '\');return false;">' . G::LoadTranslation('ID_DELETE') . '</a>', array('nodeType' => 'parentBlue'));
        if ($RBAC->userCanAccess('PM_REASSIGNCASE') == 1) {
            $oNode = $oTree->addChild('3', '<a class="linkInBlue" href="#" onclick="view_reassignCase(\'' . $APP_UID . '\');return false;">' . G::LoadTranslation('ID_REASSIGN') . '</a>', array('nodeType' => 'parentBlue'));
        }
        break;
    case 'TO_DO':
        if (!$aRow) {
            $oNode = $oTree->addChild('1', '<a id="spause" class="linkInBlue" href="#" onclick="pauseCase();return false;">' . G::LoadTranslation('ID_PAUSED_CASE') . '</a></span><a id="scpause" class="linkInBlue" href="#" onclick="cancelPauseCase();return false;" style="display:none">' . G::LoadTranslation('ID_CANCEL') . ' ' . strtolower(G::LoadTranslation('ID_PAUSED_CASE')) . '</a><div id="pausediv" style="display:none"></div>', array('nodeType' => 'parentBlue'));
            if ($cant == 1) {
                $oNode = $oTree->addChild('2', '<a class="linkInBlue" href="#" onclick="cancelCase();return false;">' . G::LoadTranslation('ID_CANCEL') . '</a>', array('nodeType' => 'parentBlue'));
            }
        } else {
            $oNode = $oTree->addChild('1', '<a class="linkInBlue" href="#" onclick="unpauseCase();return false;">' . G::LoadTranslation('ID_UNPAUSE') . '</a>', array('nodeType' => 'parentBlue'));
        }
        if ($RBAC->userCanAccess('PM_REASSIGNCASE') == 1) {
            $oNode = $oTree->addChild('3', '<a class="linkInBlue" href="#" onclick="view_reassignCase(\'' . $APP_UID . '\');return false;">' . G::LoadTranslation('ID_REASSIGN') . '</a>', array('nodeType' => 'parentBlue'));
        }
        break;

    case 'CANCELLED':
        $oNode = $oTree->addChild('1', '<a class="linkInBlue" href="#" onclick="reactivateCase();return false;">' . G::LoadTranslation('ID_REACTIVATE') . '</a>', array('nodeType' => 'parentBlue'));
        break;
}

$oTask = new Task();
$aTask = $oTask->load($_SESSION['TASK']);
if ($aTask['TAS_TYPE'] == 'ADHOC') {
    $oNode = $oTree->addChild('4', '<a class="linkInBlue" href="#" onclick="adhocAssignmentUsers();return false;">' . G::LoadTranslation('ID_ADHOC_ASSIGNMENT') . '</a>', array('nodeType' => 'parentBlue'));
}

$oNode->plus = '';
$oNode->minus = '';
$oNode->point = '';

echo $oTree->render();
