Пример #1
0
 function Delete($ID)
 {
     global $DB, $USER_FIELD_MANAGER;
     $ID = intval($ID);
     if ($ID > 0) {
         $rsTemplate = CTaskTemplates::GetByID($ID);
         if ($arTemplate = $rsTemplate->Fetch()) {
             // Remove all agents for this template
             /** @noinspection PhpDynamicAsStaticMethodCallInspection */
             CAgent::RemoveAgent('CTasks::RepeatTaskByTemplateId(' . $ID . ');', 'tasks');
             /** @noinspection PhpDynamicAsStaticMethodCallInspection */
             CAgent::RemoveAgent('CTasks::RepeatTaskByTemplateId(' . $ID . ', 0);', 'tasks');
             /** @noinspection PhpDynamicAsStaticMethodCallInspection */
             CAgent::RemoveAgent('CTasks::RepeatTaskByTemplateId(' . $ID . ', 1);', 'tasks');
             if ($arTemplate["FILES"]) {
                 $arFiles = unserialize($arTemplate["FILES"]);
                 if (is_array($arFiles)) {
                     $arFilesToDelete = array();
                     foreach ($arFiles as $file) {
                         $rsFile = CTaskFiles::GetList(array(), array("FILE_ID" => $file));
                         if (!($arFile = $rsFile->Fetch())) {
                             $arFilesToDelete[] = $file;
                         }
                     }
                     foreach ($arFilesToDelete as $file) {
                         CFile::Delete($file);
                     }
                 }
             }
             $dbConnection = \Bitrix\Main\HttpApplication::getConnection();
             $strSql = "DELETE FROM b_tasks_template WHERE ID = " . $ID;
             if ($DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__)) {
                 $USER_FIELD_MANAGER->Delete("TASKS_TASK_TEMPLATE", $ID);
                 // drop children (sub-templates)
                 $dbConnection->query("delete from b_tasks_template where ID in (" . Template\DependencyTable::getSubTreeSql($ID) . ")");
                 // drop tree records for this templates and it`s children
                 try {
                     Template\DependencyTable::dropLinkL($ID);
                 } catch (\Bitrix\Tasks\DB\Tree\TargetNodeNotFoundException $e) {
                 }
                 return true;
             }
         }
     }
     return false;
 }
Пример #2
0
     return $arChecklistItems;
 } else {
     throw new \Bitrix\Main\SystemException();
 }
 $arResult['BLOCKS'] = array_intersect($arWhiteList, $arParams['BLOCKS']);
 if (isset($arParams['TASK_ID']) && isset($arParams['LOAD_TASK_DATA']) && $arParams['LOAD_TASK_DATA'] === 'Y') {
     $oTask = CTaskItem::getInstance($arParams['TASK_ID'], $arResult['LOGGED_IN_USER']);
     $arResult['ALLOWED_ACTIONS'] = $oTask->getAllowedActions($asStrings = true);
     $arResult['TASK'] = $oTask->getData();
     $arResult['TASK']['META:ALLOWED_ACTIONS_CODES'] = $oTask->getAllowedTaskActions();
     $arResult['TASK']['META:ALLOWED_ACTIONS'] = $arResult['ALLOWED_ACTIONS'];
     $arResult['TASK']['META:IN_DAY_PLAN'] = 'N';
     $arResult['TASK']['META:CAN_ADD_TO_DAY_PLAN'] = 'N';
     // Was task created from template?
     if ($arResult['TASK']['FORKED_BY_TEMPLATE_ID']) {
         $rsTemplate = CTaskTemplates::GetByID($arResult['TASK']['FORKED_BY_TEMPLATE_ID']);
         if ($arTemplate = $rsTemplate->Fetch()) {
             $arTemplate['REPLICATE_PARAMS'] = unserialize($arTemplate['REPLICATE_PARAMS']);
             $arResult['TASK']['FORKED_BY_TEMPLATE'] = $arTemplate;
         }
     }
     if (($arResult['TASK']["RESPONSIBLE_ID"] == $arResult['LOGGED_IN_USER'] || in_array($arResult['LOGGED_IN_USER'], $arResult['TASK']['ACCOMPLICES'])) && CModule::IncludeModule("timeman") && (!CModule::IncludeModule('extranet') || !CExtranet::IsExtranetSite())) {
         $arResult['TASK']['META:CAN_ADD_TO_DAY_PLAN'] = 'Y';
         $arTasksInPlan = CTaskPlannerMaintance::getCurrentTasksList();
         // If in day plan already
         if (is_array($arTasksInPlan) && in_array($arResult['TASK']["ID"], $arTasksInPlan)) {
             $arResult['TASK']['META:IN_DAY_PLAN'] = 'Y';
             $arResult['TASK']['META:CAN_ADD_TO_DAY_PLAN'] = 'N';
         }
     }
 }
Пример #3
0
<?php

define('STOP_STATISTICS', true);
define('NO_AGENT_CHECK', true);
define('DisableEventsCheck', true);
define('BX_SECURITY_SHOW_MESSAGE', true);
require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php";
CUtil::JSPostUnescape();
CModule::IncludeModule('tasks');
__IncludeLang(dirname(__FILE__) . '/lang/' . LANGUAGE_ID . '/' . basename(__FILE__));
__IncludeLang(dirname(__FILE__) . '/templates/.default/lang/' . LANGUAGE_ID . '/template.php');
if (check_bitrix_sessid()) {
    if (intval($_POST["id"]) > 0) {
        $rsTemplate = CTaskTemplates::GetByID((int) $_POST["id"], array('USER_ID' => $USER->getId()));
        if ($arTemplate = $rsTemplate->Fetch()) {
            if ($_POST["mode"] == "delete") {
                $template = new CTaskTemplates();
                $rc = $template->Delete(intval($_POST["id"]));
                if ($rc === false) {
                    $strError = 'Error';
                    if ($ex = $APPLICATION->GetException()) {
                        $strError = $ex->GetString();
                    }
                    if ($_POST["type"] == "json") {
                        echo "['strError' : '" . CUtil::JSEscape(htmlspecialcharsbx($strError)) . "']";
                    } else {
                        echo htmlspecialcharsbx($strError);
                    }
                }
            } elseif ($_POST["mode"] == "load") {
                $arPaths = array('PATH_TO_TASKS_TASK' => null, 'PATH_TO_USER_PROFILE' => null, 'PATH_TO_USER_TASKS_TASK' => null, 'PATH_TO_TEMPLATES_TEMPLATE' => null);
Пример #4
0
         $arData["REMINDERS"][] = array("date" => $arReminder["REMIND_DATE"], "type" => $arReminder["TYPE"], "transport" => $arReminder["TRANSPORT"]);
     }
     // checklist items
     $arData['CHECKLIST_ITEMS'] = array();
     list($arChecklistItems, $arMetaData) = CTaskCheckListItem::fetchList($oTask, array('SORT_INDEX' => 'ASC'));
     unset($arMetaData);
     foreach ($arChecklistItems as $oChecklistItem) {
         $checklistItemId = $oChecklistItem->getId();
         $arData['CHECKLIST_ITEMS'][$checklistItemId] = $oChecklistItem->getData();
         $arData['CHECKLIST_ITEMS'][$checklistItemId]['META:CAN_MODIFY'] = $oChecklistItem->isActionAllowed(CTaskCheckListItem::ACTION_MODIFY);
         $arData['CHECKLIST_ITEMS'][$checklistItemId]['META:CAN_REMOVE'] = $oChecklistItem->isActionAllowed(CTaskCheckListItem::ACTION_REMOVE);
         $arData['CHECKLIST_ITEMS'][$checklistItemId]['META:CAN_TOGGLE'] = $oChecklistItem->isActionAllowed(CTaskCheckListItem::ACTION_TOGGLE);
     }
 } else {
     if (intval($_GET["TEMPLATE"]) > 0) {
         $rsTemplate = CTaskTemplates::GetByID(intval($_GET["TEMPLATE"]));
         if ($arTemplate = $rsTemplate->GetNext()) {
             if ($arTemplate["CREATED_BY"] == $loggedInUserId) {
                 if (isset($arTemplate["~DESCRIPTION_IN_BBCODE"])) {
                     $arTemplate["DESCRIPTION_IN_BBCODE"] = $arTemplate["~DESCRIPTION_IN_BBCODE"];
                 }
                 $arTemplate["ACCOMPLICES"] = $arTemplate["~ACCOMPLICES"] ? unserialize($arTemplate["~ACCOMPLICES"]) : array();
                 $arTemplate["AUDITORS"] = $arTemplate["~AUDITORS"] ? unserialize($arTemplate["~AUDITORS"]) : array();
                 $arTemplate["RESPONSIBLES"] = $arTemplate["~RESPONSIBLES"] ? unserialize($arTemplate["~RESPONSIBLES"]) : array();
                 $arTemplate["FILES"] = $arTemplate["~FILES"] ? unserialize($arTemplate["~FILES"]) : array();
                 $arTemplate["TAGS"] = $arTemplate["~TAGS"] = $arTemplate["~TAGS"] ? unserialize($arTemplate["~TAGS"]) : "";
                 $arTemplate["DEPENDS_ON"] = $arTemplate["~DEPENDS_ON"] ? unserialize($arTemplate["~DEPENDS_ON"]) : array();
                 $arTemplate["DESCRIPTION"] = $arTemplate["~DESCRIPTION"];
                 $arTemplate["CREATED_BY_NAME"] = $arTemplate["~CREATED_BY_NAME"];
                 $arTemplate["CREATED_BY_LAST_NAME"] = $arTemplate["~CREATED_BY_LAST_NAME"];
                 $arTemplate["CREATED_BY_SECOND_NAME"] = $arTemplate["~CREATED_BY_SECOND_NAME"];