function DisplayForm($obj = '')
 {
     global $dcl_info, $g_oSec;
     $isEdit = is_object($obj);
     if (!$g_oSec->HasPerm(DCL_ENTITY_FAQTOPIC, $isEdit ? DCL_PERM_MODIFY : DCL_PERM_ADD)) {
         return PrintPermissionDenied();
     }
     $t =& CreateSmarty();
     $t->assign('IS_EDIT', $isEdit);
     if ($isEdit) {
         $t->assign('VAL_SEQ', $obj->seq);
         $t->assign('VAL_NAME', $obj->name);
         $t->assign('VAL_DESCRIPTION', $obj->description);
         $t->assign('VAL_FAQID', $obj->faqid);
         $t->assign('VAL_TOPICID', $obj->topicid);
     } else {
         if (($id = DCL_Sanitize::ToInt($_REQUEST['faqid'])) === null) {
             trigger_error('Data sanitize failed.');
             return;
         }
         $t->assign('TXT_TITLE', STR_FAQ_ADDFAQTOPIC);
         $t->assign('VAL_SEQ', '');
         $t->assign('VAL_NAME', '');
         $t->assign('VAL_DESCRIPTION', '');
         $t->assign('VAL_FAQID', $id);
     }
     SmartyDisplay($t, 'htmlFaqtopicsForm.tpl');
 }
 function DisplayForm($obj = '')
 {
     global $dcl_info, $g_oSec;
     $isEdit = is_object($obj);
     if (!$g_oSec->HasPerm(DCL_ENTITY_FAQQUESTION, $isEdit ? DCL_PERM_MODIFY : DCL_PERM_ADD)) {
         return PrintPermissionDenied();
     }
     $t =& CreateSmarty();
     $t->assign('IS_EDIT', $isEdit);
     if ($isEdit) {
         $t->assign('VAL_SEQ', $obj->seq);
         $t->assign('VAL_QUESTIONTEXT', $obj->questiontext);
         $t->assign('VAL_TOPICID', $obj->topicid);
         $t->assign('VAL_QUESTIONID', $obj->questionid);
     } else {
         if (($id = DCL_Sanitize::ToInt($_REQUEST['topicid'])) === null) {
             trigger_error('Data sanitize failed.');
             return;
         }
         $t->assign('VAL_SEQ', '');
         $t->assign('VAL_QUESTIONTEXT', '');
         $t->assign('VAL_TOPICID', $id);
     }
     SmartyDisplay($t, 'htmlFaqquestionsForm.tpl');
 }
 function ListVersions()
 {
     // FIXME: application/x-javascript for Opera
     header('Content-Type: application/json');
     $product_id = @DCL_Sanitize::ToInt($_REQUEST['product_id']);
     if ($product_id === null) {
         exit;
     }
     $oDB = CreateObject('dcl.dbProductVersion');
     $aOptions = $oDB->GetOptions('product_version_id', 'product_version_text', 'active', isset($_REQUEST['active']) && $_REQUEST['active'] == 'Y', '', "product_id={$product_id}");
     $bFirst = true;
     echo '{';
     echo '"totalRecords":', count($aOptions), ',';
     echo '"data":[';
     for ($i = 0; $i < count($aOptions); $i++) {
         if ($i > 0) {
             echo ',';
         }
         echo '{';
         echo '"id":', $aOptions[$i]['product_version_id'], ',';
         echo '"text":"', str_replace('"', '\\"', str_replace("\\", "\\\\", $aOptions[$i]['product_version_text'])), '"';
         echo '}';
     }
     echo ']}';
     exit;
 }
 function ShowPage($sPage)
 {
     global $g_oSec, $dcl_info;
     commonHeader();
     if (($productid = DCL_Sanitize::ToInt($_REQUEST['id'])) === null) {
         trigger_error('Data sanitize failed.');
         return;
     }
     if (!$g_oSec->HasPerm(DCL_ENTITY_PRODUCT, DCL_PERM_VIEW, $productid)) {
         return PrintPermissionDenied();
     }
     $this->oProduct =& CreateObject('dcl.dbProducts');
     if ($this->oProduct->Load($productid) == -1) {
         trigger_error('Could not find a product with an id of ' . $productid, E_USER_ERROR);
         return;
     }
     $this->oSmarty->assign('VAL_ID', $this->oProduct->id);
     $this->oSmarty->assign('VAL_NAME', $this->oProduct->name);
     $this->oSmarty->assign('PERM_VIEWWO', $g_oSec->HasPerm(DCL_ENTITY_WORKORDER, DCL_PERM_VIEW));
     $this->oSmarty->assign('PERM_VIEWTCK', $g_oSec->HasPerm(DCL_ENTITY_TICKET, DCL_PERM_VIEW));
     $this->oSmarty->assign('PERM_WIKI', $dcl_info['DCL_WIKI_ENABLED'] == 'Y' && $g_oSec->HasPerm(DCL_ENTITY_PRODUCT, DCL_PERM_VIEWWIKI));
     $this->oSmarty->assign('PERM_EDIT', $g_oSec->HasPerm(DCL_ENTITY_PRODUCT, DCL_PERM_MODIFY));
     $this->oSmarty->assign('PERM_DELETE', $g_oSec->HasPerm(DCL_ENTITY_PRODUCT, DCL_PERM_DELETE));
     $this->oSmarty->assign('PERM_VERSIONS', $dcl_info['DCL_BUILD_MANAGER_ENABLED'] == 'Y' && $this->oProduct->is_versioned == 'Y');
     SmartyDisplay($this->oSmarty, $sPage);
 }
 function _SetActionFormOptions()
 {
     global $g_oSec;
     $aLinks = array();
     if (($product_id = DCL_Sanitize::ToInt($_REQUEST['product_id'])) === null) {
         trigger_error('Data sanitize failed.');
         return;
     }
     if ($g_oSec->HasPerm(DCL_ENTITY_PRODUCTMODULE, DCL_PERM_ADD)) {
         $aLinks[STR_CMMN_NEW] = menuLink('', 'menuAction=htmlProductModules.add&product_id=' . $product_id);
     }
     if ($g_oSec->HasPerm(DCL_ENTITY_PRODUCT, DCL_PERM_VIEW)) {
         $aLinks['Detail'] = menuLink('', 'menuAction=boProducts.view&id=' . $product_id);
     }
     $this->_SetVar('hActionLinkSetLinks', '');
     $bFirst = true;
     foreach ($aLinks as $sText => $sLink) {
         if ($bFirst) {
             $bFirst = false;
         } else {
             $this->Template->parse('hActionLinkSetLinks', 'actionLinkSetSep', true);
         }
         $this->_SetVar('LNK_ACTIONVALUE', $sLink);
         $this->_SetVar('VAL_ACTIONVALUE', $sText);
         $this->Template->parse('hActionLinkSetLinks', 'actionLinkSetLink', true);
     }
     $this->Template->parse('hActionLinkSet', 'actionLinkSet');
     $this->Template->parse('hActions', 'actions');
 }
 function HasChecklists($id)
 {
     if (($id = DCL_Sanitize::ToInt($id)) == NULL) {
         trigger_error('Data sanitize failed.');
         return;
     }
     return $this->ExecuteScalar('select count(*) from dcl_chklst where dcl_chklst_tpl_id = ' . $id) > 0;
 }
 function ListMainContacts($org_id)
 {
     if (($org_id = DCL_Sanitize::ToInt($org_id)) === null) {
         return;
     }
     $sSQL = "SELECT DISTINCT C.last_name, C.first_name, C.contact_id\n\t\t\t\tFROM dcl_contact C \n\t\t\t\t" . $this->JoinKeyword . " dcl_contact_type_xref CTX ON C.contact_id = CTX.contact_id \n\t\t\t\t" . $this->JoinKeyword . " dcl_contact_type CT ON CTX.contact_type_id = CT.contact_type_id\n\t\t\t\t" . $this->JoinKeyword . " dcl_org_contact OC ON C.contact_id = OC.contact_id \n\t\t\t\tWHERE OC.org_id = {$org_id}\n\t\t\t\tAND CT.contact_type_is_main = 'Y' \n\t\t\t\tORDER BY C.last_name, C.first_name, C.contact_id";
     $this->Query($sSQL);
 }
 function ListByOrg($org_id)
 {
     if (($org_id = DCL_Sanitize::ToInt($org_id)) === null) {
         trigger_error('Data sanitize failed.');
         return -1;
     }
     $sql = 'SELECT ' . $this->SelectAllColumns() . ' FROM ' . $this->TableName . ' WHERE org_id = ' . $org_id;
     return $this->Query($sql);
 }
 function HasSpecificRole($role_id)
 {
     // Checks the current user for specific role - should only be used by custom plugins
     if (($role_id = DCL_Sanitize::ToInt($role_id)) === null) {
         trigger_error('Data sanitize failed.');
         return false;
     }
     $oDB =& CreateObject('dcl.dbUserRole');
     return $oDB->HasSpecificRole($GLOBALS['DCLID'], $role_id);
 }
 function GetPrimaryUrl($contact_id)
 {
     if (($contact_id = DCL_Sanitize::ToInt($contact_id)) === null) {
         trigger_error('Data sanitize failed.');
         return -1;
     }
     if ($this->Query("SELECT ut.url_type_name, u.url_addr FROM dcl_contact_url u, dcl_url_type ut WHERE u.url_type_id = ut.url_type_id AND u.contact_id = {$contact_id} AND preferred = 'Y'") != -1) {
         return $this->next_record();
     }
     return false;
 }
 function GetPrimaryPhone($iOrgID)
 {
     if (($iOrgID = DCL_Sanitize::ToInt($iOrgID)) === null) {
         trigger_error('Data sanitize failed.');
         return -1;
     }
     if ($this->Query("SELECT pt.phone_type_name, p.phone_number FROM dcl_org_phone p, dcl_phone_type pt WHERE p.phone_type_id = pt.phone_type_id AND p.org_id = {$iOrgID} AND preferred = 'Y'") != -1) {
         return $this->next_record();
     }
     return false;
 }
 function ListByContact($contact_id)
 {
     if (($contact_id = DCL_Sanitize::ToInt($contact_id)) === null) {
         trigger_error('Data sanitize failed.');
         return -1;
     }
     $sql = 'SELECT l.contact_license_id, l.contact_id, l.product_id, l.product_version, l.license_id, l.registered_on, l.expires_on, l.license_notes, p.name';
     $sql .= ' FROM ' . $this->TableName . ' l, products p WHERE l.contact_id = ' . $contact_id . ' AND p.id = l.product_id';
     $sql .= ' ORDER BY p.name, l.expires_on DESC, l.license_id';
     return $this->Query($sql);
 }
 function ListByContact($contact_id)
 {
     if (($contact_id = DCL_Sanitize::ToInt($contact_id)) === null) {
         trigger_error('Data sanitize failed.');
         return -1;
     }
     $sql = 'SELECT u.contact_type_id, u.contact_id, t.contact_type_name';
     $sql .= ' FROM dcl_contact_type_xref u, dcl_contact_type t WHERE u.contact_id = ' . $contact_id . ' AND t.contact_type_id = u.contact_type_id';
     $sql .= ' ORDER BY t.contact_type_name';
     return $this->Query($sql);
 }
 function ShowResults()
 {
     global $g_oSec;
     commonHeader();
     if (!$g_oSec->HasPerm(DCL_ENTITY_ADMIN, DCL_PERM_MODIFY)) {
         return PrintPermissionDenied();
     }
     $begindate = @DCL_Sanitize::ToDateTime($_REQUEST['begindate'] . ' 00:00:00.00');
     $enddate = @DCL_Sanitize::ToDateTime($_REQUEST['enddate'] . ' 23:59:59.99');
     $responsible = DCL_Sanitize::ToInt($_REQUEST['responsible']);
     if ($begindate === null || $enddate === null) {
         commonHeader();
         trigger_error(STR_SEC_DATEERR, E_USER_ERROR);
         $this->Show(false);
         return;
     }
     $objDBPer =& CreateObject('dcl.dbPersonnel');
     $objDBSA =& CreateObject('dcl.dbSecAudit');
     $objDB = new DCLDb();
     $sCols = 'SA.id, ' . $objDBSA->ConvertTimestamp('SA.actionon', 'actionon') . ', SA.actiontxt, SA.actionparam';
     $sCols .= ', ' . $objDBPer->SelectAllColumns('Pers.');
     $sQuery = "SELECT {$sCols}\n\t\t\tFROM {$objDBSA->TableName} SA INNER JOIN {$objDBPer->TableName} Pers on \n\t\t\tSA.id = pers.id \n\t\t\tWHERE SA.actionon BETWEEN " . $objDBSA->DisplayToSQL($begindate) . ' and ' . $objDBSA->DisplayToSQL($enddate);
     if ($responsible == 0) {
         $respname = STR_SEC_ALLUSERS;
     } else {
         $objDBPer->Load($responsible);
         $respname = $objDBPer->short;
         $sQuery .= ' AND SA.id=' . $responsible;
     }
     $sQuery .= ' ORDER BY SA.actionon';
     $reportAr = null;
     if ($objDB->Query($sQuery) != -1) {
         if ($objDB->next_record()) {
             $idx = -1;
             do {
                 $idx++;
                 $reportAr[$idx][] = $objDB->f('short');
                 $reportAr[$idx][] = $objDB->FormatTimeStampForDisplay($objDB->f('actionon'));
                 $reportAr[$idx][] = $objDB->f('actiontxt');
                 $reportAr[$idx][] = $objDB->f('actionparam');
             } while ($objDB->next_record());
         } else {
             trigger_error(STR_SEC_RPTNODATA, E_USER_ERROR);
             $this->Show(false);
             return;
         }
     }
     $obj =& CreateObject('dcl.htmlSecAudit');
     if (!$obj->Render($reportAr, $begindate, $enddate, $respname)) {
         trigger_error(STR_SEC_RPTERROR, E_USER_ERROR);
         $this->Show(false);
         return;
     }
 }
 function GetPrimaryEmailByUserID($iUserID)
 {
     if (($iUserID = DCL_Sanitize::ToInt($iUserID)) === null) {
         trigger_error('Data sanitize failed.');
         return -1;
     }
     if ($this->Query("SELECT et.email_type_name, e.email_addr FROM dcl_contact_email e, dcl_email_type et, personnel p WHERE p.contact_id = e.contact_id AND e.email_type_id = et.email_type_id AND p.id = {$iUserID} AND e.preferred = 'Y'") != -1) {
         return $this->next_record();
     }
     return false;
 }
 function GetPrimaryEmail($iOrgID)
 {
     if (($iOrgID = DCL_Sanitize::ToInt($iOrgID)) === null) {
         trigger_error('Data sanitize failed.');
         return -1;
     }
     if ($this->Query("SELECT et.email_type_name, e.email_addr FROM dcl_org_email e, dcl_email_type et WHERE e.email_type_id = et.email_type_id AND e.org_id = {$iOrgID} AND e.preferred = 'Y'") != -1) {
         return $this->next_record();
     }
     return false;
 }
 function ListByContact($contact_id)
 {
     if (($contact_id = DCL_Sanitize::ToInt($contact_id)) === null) {
         trigger_error('Data sanitize failed.');
         return -1;
     }
     $sql = 'SELECT a.contact_addr_id, a.contact_id, a.addr_type_id, a.add1, a.add2, a.city, a.state, a.zip, a.country, a.preferred, t.addr_type_name';
     $sql .= ' FROM ' . $this->TableName . ' a, dcl_addr_type t WHERE a.contact_id = ' . $contact_id . ' AND t.addr_type_id = a.addr_type_id';
     $sql .= ' ORDER BY t.addr_type_name';
     return $this->Query($sql);
 }
 function ListByOrg($org_id)
 {
     if (($org_id = DCL_Sanitize::ToInt($org_id)) === null) {
         trigger_error('Data sanitize failed.');
         return -1;
     }
     $sql = 'SELECT p.id, op.org_id, p.name';
     $sql .= ' FROM dcl_org_product_xref op, products p WHERE op.org_id = ' . $org_id . ' AND p.id = op.product_id';
     $sql .= ' ORDER BY p.name';
     return $this->Query($sql);
 }
 function modify()
 {
     commonHeader();
     if (($id = DCL_Sanitize::ToInt($_REQUEST['id'])) === null) {
         trigger_error('Data sanitize failed.');
         return;
     }
     $oPersonnel =& CreateObject('dcl.dbPersonnel');
     if ($oPersonnel->Load($id) != -1) {
         $this->ShowEntryForm($oPersonnel);
     }
 }
 function LoadMapForType($setid, $typeid)
 {
     if (($setid = DCL_Sanitize::ToInt($setid)) == NULL || ($typeid = DCL_Sanitize::ToInt($typeid)) == NULL) {
         trigger_error('Data sanitize failed.');
         return;
     }
     $this->Clear();
     $sql = 'SELECT * FROM attributesetsmap WHERE setid=' . $setid . ' AND typeid=' . $typeid . ' ORDER BY weight';
     if (!$this->Query($sql)) {
         return -1;
     }
     return 1;
 }
 function updateOrgs($contact_id, &$aOrgID)
 {
     if (($contact_id = DCL_Sanitize::ToInt($contact_id)) === null) {
         return PrintPermissionDenied();
     }
     $aOrgID = DCL_Sanitize::ToIntArray($aOrgID);
     if ($aOrgID === null || count($aOrgID) == 0) {
         $aOrgID = array("-1");
     }
     $sOrgID = join(',', $aOrgID);
     $this->Execute("DELETE FROM dcl_org_contact WHERE contact_id = {$contact_id} AND org_id NOT IN ({$sOrgID})");
     $this->Execute("INSERT INTO dcl_org_contact (org_id, contact_id, created_on, created_by) SELECT org_id, {$contact_id}, " . $this->GetDateSQL() . ", " . $GLOBALS['DCLID'] . " FROM dcl_org WHERE org_id IN ({$sOrgID}) AND org_id NOT IN (SELECT org_id FROM dcl_org_contact WHERE contact_id = {$contact_id})");
 }
 function CloseAllIncompleteTasksForWorkOrder($wo_id, $seq)
 {
     global $DCLID;
     if (($wo_id = DCL_Sanitize::ToInt($wo_id)) === null || ($seq = DCL_Sanitize::ToInt($seq)) === null) {
         trigger_error('Data sanitize failed.', E_USER_ERROR);
         return;
     }
     if ($this->GetCountIncompleteTasksForWorkOrder($wo_id, $seq) > 0) {
         $this->Execute("UPDATE dcl_wo_task SET task_complete = 'Y', task_complete_by = {$DCLID}, task_complete_dt = " . $this->GetDateSQL() . " WHERE wo_id = {$wo_id} AND seq = {$seq} AND task_complete = 'N'");
         return true;
     }
     return false;
 }
 function GetPrimaryAddress($iOrgID)
 {
     if (($iOrgID = DCL_Sanitize::ToInt($iOrgID)) === null) {
         trigger_error('Data sanitize failed.');
         return -1;
     }
     $sql = 'SELECT a.org_addr_id, a.org_id, a.addr_type_id, a.add1, a.add2, a.city, a.state, a.zip, a.country, a.preferred, t.addr_type_name';
     $sql .= ' FROM ' . $this->TableName . ' a, dcl_addr_type t WHERE a.org_id = ' . $iOrgID . ' AND t.addr_type_id = a.addr_type_id';
     $sql .= " AND a.preferred = 'Y'";
     if ($this->Query($sql) != -1) {
         return $this->next_record();
     }
     return false;
 }
 function ShowView()
 {
     commonHeader();
     if (($id = DCL_Sanitize::ToInt($_REQUEST['id'])) === null) {
         trigger_error('Data sanitize failed.');
         return;
     }
     $oDB = CreateObject('dcl.dbViews');
     if ($oDB->Load($id) != -1) {
         $oView = CreateObject('dcl.boView');
         $oView->SetFromURLString($oDB->viewurl);
         $this->Show($oView);
     }
 }
 function show()
 {
     global $dcl_info, $g_oSec;
     commonHeader();
     if (!$g_oSec->HasPerm(DCL_ENTITY_WORKORDER, DCL_PERM_REPORT)) {
         return PrintPermissionDenied();
     }
     if (($type = DCL_Sanitize::ToInt($_REQUEST['type'])) === null || ($id = DCL_Sanitize::ToInt($_REQUEST['id'])) === null) {
         trigger_error('Data sanitize failed.');
         return;
     }
     $oSmarty =& CreateSmarty();
     $oAudit =& CreateObject('dcl.boAudit');
     switch ($type) {
         case DCL_ENTITY_WORKORDER:
             if (($id2 = DCL_Sanitize::ToInt($_REQUEST['id2'])) === null) {
                 trigger_error('Data sanitize failed.');
                 return;
             }
             $this->aAudit = $oAudit->LoadDiff('dbWorkorders', array('jcn' => $id, 'seq' => $id2));
             $oSmarty->assign('VAL_ID', sprintf('%d-%d', $id, $id2));
             $oSmarty->assign('VAL_SUMMARY', $this->oMeta->GetWorkOrder($id, $id2));
             $oSmarty->assign('LNK_BACK', menuLink('', "menuAction=boWorkorders.viewjcn&jcn={$id}&seq={$id2}"));
             $oAccount =& CreateObject('dcl.dbWorkOrderAccount');
             $this->aAuditAccount = $oAccount->AuditWorkOrderList($id, $id2);
             $oProject =& CreateObject('dcl.dbProjectmap');
             $this->aAuditProject = $oProject->AuditWorkOrderList($id, $id2);
             break;
         case DCL_ENTITY_PROJECT:
             $this->aAudit = $oAudit->LoadDiff('dbProjects', array('projectid' => $id));
             $oSmarty->assign('VAL_ID', $id);
             $oSmarty->assign('VAL_SUMMARY', $this->oMeta->GetProject($id));
             $oSmarty->assign('LNK_BACK', menuLink('', "menuAction=boProjects.viewproject&wostatus=0&project={$id}"));
             $oProject =& CreateObject('dcl.dbProjectmap');
             $this->aAuditWorkOrder = $oProject->AuditProjectList($id);
             break;
         case DCL_ENTITY_TICKET:
             $this->aAudit = $oAudit->LoadDiff('dbTickets', array('ticketid' => $id));
             $oSmarty->assign('VAL_ID', $id);
             $oSmarty->assign('VAL_SUMMARY', $this->oMeta->GetTicket($id));
             $oSmarty->assign('LNK_BACK', menuLink('', "menuAction=boTickets.view&ticketid={$id}"));
             break;
     }
     $this->prepareForDisplay();
     $oSmarty->assign_by_ref('VAL_AUDITTRAIL', $this->aAudit);
     $oSmarty->assign_by_ref('VAL_AUDITACCOUNT', $this->aAuditAccount);
     $oSmarty->assign_by_ref('VAL_AUDITPROJECT', $this->aAuditProject);
     $oSmarty->assign_by_ref('VAL_AUDITWORKORDER', $this->aAuditWorkOrder);
     SmartyDisplay($oSmarty, 'htmlAuditTrail.tpl');
 }
 function GetFirstOrg($contact_id)
 {
     if (($contact_id = DCL_Sanitize::ToInt($contact_id)) === null) {
         trigger_error('Data sanitize failed.');
         return -1;
     }
     $aRetVal = array();
     $sSQL = 'SELECT O.org_id, O.name FROM dcl_org O ' . $this->JoinKeyword . " dcl_org_contact OC ON O.org_id = OC.org_id WHERE OC.contact_id = {$contact_id} ORDER BY O.name";
     if ($this->LimitQuery($sSQL, 0, 1) != -1) {
         if ($this->next_record()) {
             $aRetVal = $this->Record;
         }
     }
     return $aRetVal;
 }
 function getparameters($needHdr = true)
 {
     global $dcl_info;
     if ($needHdr == true) {
         commonHeader();
     }
     $oProducts = CreateObject('dcl.htmlProducts');
     $oProjects = CreateObject('dcl.htmlProjects');
     $oSmarty = CreateSmarty();
     $oSmarty->assign('VAL_FORMACTION', menuLink());
     $oSmarty->assign('CMB_PRODUCTS', $oProducts->GetCombo(isset($_REQUEST['products']) ? DCL_Sanitize::ToInt($_REQUEST['products']) : 0, 'products', 'name', 0, 8, false));
     $oSmarty->assign('CMB_PROJECTS', $oProjects->GetCombo(isset($_REQUEST['projects']) ? DCL_Sanitize::ToInt($_REQUEST['projects']) : 0, 'projects', 0, 8));
     $oSmarty->assign('VAL_BEGINDATE', isset($_REQUEST['begindate']) ? DCL_Sanitize::ToDate($_REQUEST['begindate']) : '');
     $oSmarty->assign('VAL_ENDDATE', isset($_REQUEST['enddate']) ? DCL_Sanitize::ToDate($_REQUEST['enddate']) : '');
     SmartyDisplay($oSmarty, 'htmlMetricsWorkOrders.tpl');
 }
 function modify()
 {
     global $dcl_info, $g_oSec;
     if (($id = DCL_Sanitize::ToInt($_REQUEST['dcl_chklst_tpl_id'])) === null) {
         trigger_error('Data sanitize failed.');
         return;
     }
     if (!$g_oSec->HasPerm(DCL_ENTITY_FORMTEMPLATES, DCL_PERM_MODIFY, $id)) {
         return PrintPermissionDenied();
     }
     $o = CreateObject('dcl.dbChklstTpl');
     if ($o->Load($id) == -1) {
         return;
     }
     $this->showForm($o);
 }
 function IsProjectRequired()
 {
     // FIXME: application/x-javascript for Opera
     header('Content-Type: application/json');
     $product_id = @DCL_Sanitize::ToInt($_REQUEST['product_id']);
     if ($product_id === null) {
         exit;
     }
     $oDB = CreateObject('dcl.dbProducts');
     $oDB->Load($product_id);
     $bFirst = true;
     echo '{';
     echo '"totalRecords":1,';
     echo '"data":[{"is_project_required":"' . $oDB->is_project_required . '"}]';
     echo '}';
     exit;
 }
 function Show()
 {
     global $dcl_info, $g_oSec;
     commonHeader();
     if (!$g_oSec->HasPerm(DCL_ENTITY_BUILDMANAGER, DCL_PERM_MODIFY)) {
         return PrintPermissionDenied();
     }
     if (($product_id = DCL_Sanitize::ToInt($_REQUEST['product_id'])) === null) {
         return PrintPermissionDenied();
     }
     if (($version_id = DCL_Sanitize::ToInt($_REQUEST['product_version_id'])) === null) {
         return PrintPermissionDenied();
     }
     $oProduct = CreateObject('dcl.dbProducts');
     $oProduct->Load($product_id);
     $oPV = CreateObject('dcl.dbProductVersion');
     if ($oPV->Load(array('product_version_id' => $version_id)) == -1) {
         ShowError('Failed to load version ID ' . $version_id, 'Error');
         return;
     }
     $this->oSmarty->assign('VAL_JSDATEFORMAT', GetJSDateFormat());
     $this->oSmarty->assign('VAL_FORMACTION', menuLink());
     if (isset($GLOBALS['add'])) {
         $this->oSmarty->assign('VAL_MENUACTION', 'boBuildManager.addRelease');
     } else {
         $this->oSmarty->assign('VAL_MENUACTION', 'boBuildManager.modifyRelease');
     }
     $this->oSmarty->assign('TXT_BM_ADD_RELEASE', STR_BM_MOD_RELEASE);
     $this->oSmarty->assign('TXT_BM_PRODUCT', STR_BM_PRODUCT);
     $this->oSmarty->assign('TXT_BM_RELEASE_ALIAS_TITLE', STR_BM_RELEASE_ALIAS_TITLE);
     $this->oSmarty->assign('TXT_BM_RELEASEDATE_DESC', STR_BM_RELEASEDATE_DESC);
     $this->oSmarty->assign('TXT_BM_RELEASEDATE', STR_BM_RELEASEDATE);
     $this->oSmarty->assign('VAL_PRODUCTNAME', $oProduct->name);
     $this->oSmarty->assign('VAL_PRODUCTID', $oProduct->id);
     $this->oSmarty->assign('VAL_VERSIONID', $version_id);
     $this->oSmarty->assign('VAL_VERSIONTEXT', $oPV->product_version_text);
     $this->oSmarty->assign('VAL_VERSIONDESCR', $oPV->product_version_descr);
     $this->oSmarty->assign('VAL_ACTIVE', $oPV->active);
     $this->oSmarty->assign('VAL_VERSIONACTUALDATE', $oPV->product_version_actual_date);
     $this->oSmarty->assign('VAL_VERSIONTARGETDATE', $oPV->product_version_target_date);
     $this->oSmarty->assign('date', $oPV->product_version_target_date);
     $this->oSmarty->assign('VAL_DATEELEMENT', 'product_version_target_date');
     $this->oSmarty->assign('VAL_WHICH', $GLOBALS['which']);
     SmartyDisplay($this->oSmarty, 'htmlBuildManagerReleaseForm.tpl');
 }