* @license    http://www.contenido.org/license/LIZENZ.txt
 * @link       http://www.4fb.de
 * @link       http://www.contenido.org
 * 
 * {@internal 
 *   created 2003-07-30
 *   
 *   $Id: include.workflow_tasks.php 128 2019-07-03 11:58:28Z oldperl $
 * }}
 * 
 */
if(!defined('CON_FRAMEWORK')) {
	die('Illegal call');
}
plugin_include('workflow', 'classes/class.workflow.php');
plugin_include('workflow', 'includes/functions.workflow.php');
global $sess;
$sSession = $sess->id;
$wfa = new WorkflowArtAllocations;
$wfu = new WorkflowUserSequences;
$users = new User;
$db2 = new DB_ConLite;
ob_start();
if ($usershow == "")
{
	$usershow = $auth->auth["uid"];
}
if (!$perm->have_perm_area_action($area, "workflow_task_user_select"))
{
	$usershow = $auth->auth["uid"];
}
if ($action == "workflow_do_action")
{
    $selectedAction = "wfselect".$modidartlang;       
    doWorkflowAction($modidartlang, $GLOBALS[$selectedAction]);
}
$wfa->select();
while ($wfaitem = $wfa->next())
{
	$wfaid = $wfaitem->get("idartallocation");
	$usersequence[$wfaid] = $wfaitem->get("idusersequence");
	$lastusersequence[$wfaid] = $wfaitem->get("lastusersequence");
	$article[$wfaid] = $wfaitem->get("idartlang");
} 
if (is_array($usersequence))
{
foreach ($usersequence as $key => $value)
{
	$wfu->select("idusersequence = '$value'");
	if ($obj = $wfu->next())
	{
		$userids[$key] = $obj->get("iduser");
	}
}
}
if (is_array($userids))
{
foreach ($userids as $key=>$value)
{
    $isCurrent[$key] = false;
    
    if ($usershow == $value)
    {
    	$isCurrent[$key] = true;
    }
    
    if ($users->loadUserByUserID($value) == false)
    {
    	/* Yes, it's a group. Let's try to load the group members! */
    	$sql = "SELECT user_id FROM "
    			.$cfg["tab"]["groupmembers"]."
                WHERE group_id = '".$value."'";
        $db2->query(Contenido_Security::escapeDB($sql, $db2));
   
        while ($db2->next_record())
        {
        	if ($db2->f("user_id") == $usershow)
        	{
        		$isCurrent[$key] = true;
        	}
        }
    } else {
    	if ($value == $usershow)
    	{
    		$isCurrent[$key] = true;
    	}
    }
    
    if ($lastusersequence[$key] == $usersequence[$key])
    {
    	$isCurrent[$key] = false;
    }
}
}
$tpl->reset();
$tpl->setEncoding('iso-8859-1');
$tpl->set('s', 'SESSID', $sSession);
$tpl->set('s', 'SESSNAME', $sess->name);
$iIDCat = 0;
$iIDTpl = 0;
if ($perm->have_perm_area_action($area, "workflow_task_user_select"))
{
    $form = new UI_Form("showusers", $sess->url("main.php?area=$area&frame=$frame"));
    $form->setVar("area",$area);
    $form->setEvent("submit", "setUsershow();");
    $form->setVar("frame", $frame);
    $form->setVar("action", "workflow_task_user_select");
    $form->add("select",i18n("Show users").": ".getUsers("show",$usershow));
    $form->add("button", '');
    
    $tpl->set('s', 'USERSELECT', $form->render(true));
} else {
    $tpl->set('s', 'USERSELECT', '');
}
$pageTitle = i18n('Search results').' - '.i18n('Workflow tasks', 'workflow');
$tpl->set('s', 'PAGE_TITLE', $pageTitle);
$tpl->set('s', 'TH_START', i18n("Article"));
$tpl->set('s', 'TH_TEMPLATE', i18n("Template"));
$tpl->set('s', 'TH_ACTIONS', i18n("Actions"));
$tpl->set('s', 'TH_TITLE', i18n("Title"));
$tpl->set('s', 'TH_CHANGED', i18n("Changed"));
$tpl->set('s', 'TH_PUBLISHED', i18n("Published"));
$tpl->set('s', 'TH_WORKFLOW_STEP', i18n("Workflow Step", 'workflow'));
$tpl->set('s', 'TH_WORKFLOW_ACTION', i18n("Workflow Action", 'workflow'));
$tpl->set('s', 'TH_WORKFLOW_EDITOR', i18n("Workflow Editor"));
$tpl->set('s', 'TH_LAST_STATUS', i18n("Last status", 'workflow'));
$currentUserSequence = new WorkflowUserSequence;
    		
if (is_array($isCurrent))
{
foreach ($isCurrent as $key => $value)
{
	if ($value == true)
	{
		$idartlang 	= Contenido_Security::toInteger($article[$key]);
		$lang = Contenido_Security::toInteger($lang);
		$client = Contenido_Security::toInteger($client);
    	$sql = "SELECT B.idcat AS idcat, A.title AS title, A.created AS created, A.lastmodified AS changed, 
                       A.idart as idart, E.name as tpl_name, A.idartlang as idartlang, F.idcatlang as idcatlang,
                       B.idcatart as idcatart, A.idlang as art_lang, F.startidartlang as startidartlang
    			FROM (".$cfg["tab"]["art_lang"]." AS A,
                     ".$cfg["tab"]["cat_art"]." AS B,
 					 ".$cfg["tab"]["art"]." AS C)
                      LEFT JOIN ".$cfg['tab']['tpl_conf']." as D ON A.idtplcfg = D.idtplcfg
                      LEFT JOIN ".$cfg['tab']['tpl']." as E ON D.idtpl = E.`idtpl`
                      LEFT JOIN ".$cfg['tab']['cat_lang']." as F ON B.idcat = F.`idcat`
					 WHERE A.idartlang = '$idartlang' AND
						   A.idart = B.idart AND
						   A.idart = C.idart AND
						   A.idlang = '$lang' AND
 						   C.idclient = '$client';";
    	
		$db->query($sql);
    	if ($db->next_record())
    	{
            global $area;
            //$area = "con";
    		$idcat = $db->f("idcat");
            $idart = $db->f("idart");       
    		 # create javascript multilink
        	$tmp_mstr = '%s';
        	$mstr = sprintf($tmp_mstr, 'right_top',
                                   $sess->url("main.php?area=con&frame=3&idcat=$idcat&idtpl=$idtpl"),
                                   'right_bottom',
                                   $sess->url("main.php?area=con_editart&action=con_edit&frame=4&idcat=$idcat&idtpl=$idtpl&idart=$idart"),
                                   $db->f("title"));
            $laststatus = getLastWorkflowStatus($idartlang);
    		$username = getGroupOrUserName($userids[$key]);
            $actionSelect = piworkflowRenderColumn($idcat, $idart, $db->f('idartlang'), 'wfaction');
            
            $currentUserSequence->loadByPrimaryKey($usersequence[$key]);
    		$workflowItem = $currentUserSequence->getWorkflowItem();
            $step = $workflowItem->get("name"); 
            $description = $workflowItem->get("description");
            
            $sRowId = $db->f('idart').'-'.$db->f('idartlang').'-'.$db->f('idcat').'-'.$db->f('idcatlang').'-'.$db->f('idcatart').'-'.$db->f('art_lang');
            
            if( $db->f('startidartlang') == $db->f('idartlang') ) {
			    $makeStartarticle = " ";
            } else {
                $makeStartarticle = "
";
            } else {
                $makeStartarticle = " ";
            }
            
            $todoListeSubject = i18n("Reminder");
            $sReminder = i18n("Set reminder / add to todo list");
            $sReminderHtml = "
";
            }
            
            $todoListeSubject = i18n("Reminder");
            $sReminder = i18n("Set reminder / add to todo list");
            $sReminderHtml = " ";
            
            $templatename = $db->f('tpl_name');
            if (!empty($templatename)) {
		        $templatename = clHtmlEntities($templatename);
		    } else {
		        $templatename = '--- ' . i18n("None") . ' ---';
		    }
            
            if ($i == 0) {
                $iIDCat = $db->f("idcat");
                $iIDTpl = $idtpl;
                $tpl->set('s', 'FIRST_ROWID', $sRowId);
            }
            
            $tpl->set('d', 'START', $makeStartarticle);
            $tpl->set('d', 'TITLE', $mstr);     
            $tpl->set('d', 'LAST_STATUS', $laststatus);  
            $tpl->set('d', 'WORKFLOW_EDITOR', $username); 
            $tpl->set('d', 'WORKFLOW_STEP', $step); 
            $tpl->set('d', 'WORKFLOW_ACTION', $actionSelect); 
            $tpl->set('d', 'TEMPLATE', $templatename); 
            $tpl->set('d', 'BGCOLOR', $cfg['color']['table_dark_offline']);
            $tpl->set('d', 'ROWID', $sRowId);
            $tpl->set('d', 'ACTIONS', $sReminderHtml);
            $tpl->next();
            $i++;
    	}
	}
}
}
if ($i > 0) 	{
    $tpl->set('s', 'NO_ARTICLES_ROW');
} else {
    $sRow = '
";
            
            $templatename = $db->f('tpl_name');
            if (!empty($templatename)) {
		        $templatename = clHtmlEntities($templatename);
		    } else {
		        $templatename = '--- ' . i18n("None") . ' ---';
		    }
            
            if ($i == 0) {
                $iIDCat = $db->f("idcat");
                $iIDTpl = $idtpl;
                $tpl->set('s', 'FIRST_ROWID', $sRowId);
            }
            
            $tpl->set('d', 'START', $makeStartarticle);
            $tpl->set('d', 'TITLE', $mstr);     
            $tpl->set('d', 'LAST_STATUS', $laststatus);  
            $tpl->set('d', 'WORKFLOW_EDITOR', $username); 
            $tpl->set('d', 'WORKFLOW_STEP', $step); 
            $tpl->set('d', 'WORKFLOW_ACTION', $actionSelect); 
            $tpl->set('d', 'TEMPLATE', $templatename); 
            $tpl->set('d', 'BGCOLOR', $cfg['color']['table_dark_offline']);
            $tpl->set('d', 'ROWID', $sRowId);
            $tpl->set('d', 'ACTIONS', $sReminderHtml);
            $tpl->next();
            $i++;
    	}
	}
}
}
if ($i > 0) 	{
    $tpl->set('s', 'NO_ARTICLES_ROW');
} else {
    $sRow = '