Beispiel #1
0
function filterByFeaturePerms(&$arGroups, $arFeaturePerms)
{
    $arGroupsIDs = array();
    foreach ($arGroups as $value) {
        $arGroupsIDs[] = $value["ID"];
    }
    if (sizeof($arGroupsIDs) > 0) {
        $feature = $arFeaturePerms[0];
        $operations = $arFeaturePerms[1];
        if (!is_array($operations)) {
            $operations = explode(",", $operations);
        }
        $arGroupsPerms = array();
        foreach ($operations as $operation) {
            $tmpOps = CSocNetFeaturesPerms::CurrentUserCanPerformOperation(SONET_ENTITY_GROUP, $arGroupsIDs, $feature, $operation);
            if (is_array($tmpOps)) {
                foreach ($tmpOps as $key => $val) {
                    if (!$arGroupsPerms[$key]) {
                        $arGroupsPerms[$key] = $val;
                    }
                }
            }
        }
        $arGroupsActive = CSocNetFeatures::IsActiveFeature(SONET_ENTITY_GROUP, $arGroupsIDs, $arFeaturePerms[0]);
        foreach ($arGroups as $key => $group) {
            if (!$arGroupsActive[$group["ID"]] || !$arGroupsPerms[$group["ID"]]) {
                unset($arGroups[$key]);
            }
        }
    }
    $arGroups = array_values($arGroups);
}
Beispiel #2
0
	public static function getGroupFeatureAccess($arFields)
	{
		global $arSocNetFeaturesSettings;

		$groupID = intval($arFields["GROUP_ID"]);
		$feature = trim($arFields["FEATURE"]);
		$operation = trim($arFields["OPERATION"]);

		if ($groupID <= 0)
		{
			throw new Exception("Wrong socialnetwork group ID");
		}

		if (
			strlen($feature) <= 0
			|| !array_key_exists($feature, $arSocNetFeaturesSettings)
			|| !array_key_exists("allowed", $arSocNetFeaturesSettings[$feature])
			|| !in_array(SONET_ENTITY_GROUP, $arSocNetFeaturesSettings[$feature]["allowed"])
		)
		{
			throw new Exception("Wrong feature");
		}

		if (
			strlen($operation) <= 0
			|| !array_key_exists("operations", $arSocNetFeaturesSettings[$feature])
			|| !array_key_exists($operation, $arSocNetFeaturesSettings[$feature]["operations"])
		)
		{
			throw new Exception("Wrong operation");
		}

		return CSocNetFeaturesPerms::CurrentUserCanPerformOperation(SONET_ENTITY_GROUP, $groupID, $feature, $operation);
	}
Beispiel #3
0
                 $jsonReply['tasksRenderJSON'] = ob_get_contents();
             }
             ob_end_clean();
         }
     }
 } elseif ($_POST["mode"] == "add" && strlen(trim($_POST["title"])) > 0 && intval($_POST["responsible"]) > 0 && in_array($_POST["priority"], array(0, 1, 2)) && is_object($USER) && $USER->IsAuthorized()) {
     $columnsOrder = null;
     if (isset($_POST['columnsOrder'])) {
         $columnsOrder = array_map('intval', $_POST['columnsOrder']);
     }
     $arFields = array("TITLE" => trim($_POST["title"]), "DESCRIPTION" => trim($_POST["description"]), "RESPONSIBLE_ID" => intval($_POST["responsible"]), "PRIORITY" => $_POST["priority"], "SITE_ID" => $SITE_ID, "NAME_TEMPLATE" => $nameTemplate, 'DESCRIPTION_IN_BBCODE' => 'Y');
     if (isset($_POST['group']) && $_POST['group'] > 0) {
         $GROUP_ID = (int) $_POST['group'];
     }
     if ($GROUP_ID > 0) {
         if (CSocNetFeaturesPerms::CurrentUserCanPerformOperation(SONET_ENTITY_GROUP, $GROUP_ID, "tasks", "create_tasks")) {
             $arFields["GROUP_ID"] = $GROUP_ID;
         }
     }
     if ($DB->FormatDate($_POST["deadline"], CSite::GetDateFormat("FULL"))) {
         $arFields["DEADLINE"] = $_POST["deadline"];
     }
     $depth = intval($_POST["depth"]);
     if (intval($_POST["parent"]) > 0) {
         $arFields["PARENT_ID"] = intval($_POST["parent"]);
     }
     $arFields["STATUS"] = $status;
     $task = new CTasks();
     $ID = $task->Add($arFields);
     if ($ID) {
         $rsTask = CTasks::GetByID($ID);
Beispiel #4
0
 public static function SaveTask($tasksData)
 {
     $rc = false;
     if (!$GLOBALS['USER']->IsAuthorized()) {
         return false;
     }
     $delegateToUser = false;
     if (isset($tasksData['META::DELEGATE_TO_USER'])) {
         $delegateToUser = (int) $tasksData['META::DELEGATE_TO_USER'];
     }
     $bDelegate = false;
     if ($delegateToUser > 0) {
         $bDelegate = true;
     }
     $curUserId = (int) $GLOBALS['USER']->GetID();
     if (!CModule::IncludeModule('socialnetwork')) {
         return false;
     }
     $arNewTaskFields = false;
     $bErrorOccuredOnTaskCreation = false;
     if (isset($tasksData['TASK_ID']) && check_bitrix_sessid()) {
         $bCreateMode = true;
         if ($tasksData['TASK_ID'] > 0) {
             $bCreateMode = false;
         }
         // We are in edit mode
         if ($bCreateMode && $bDelegate) {
             throw new Exception('$bCreateMode && $bDelegate');
         }
         if (!$bCreateMode && $bDelegate) {
             $arNewTaskFields = array();
             if (intval($delegateToUser) !== $curUserId) {
                 $arNewTaskFields['RESPONSIBLE_ID'] = $delegateToUser;
                 $arNewTaskFields['STATUS'] = CTasks::STATE_PENDING;
                 $rsTask = CTasks::GetByID($tasksData['TASK_ID']);
                 $arTask = $rsTask->Fetch();
                 if (!$arTask || !isset($arTask['ID'])) {
                     return false;
                 }
                 if (sizeof($arTask['AUDITORS'] > 0)) {
                     if (!in_array($curUserId, $arTask['AUDITORS'])) {
                         $arNewTaskFields['AUDITORS'] = $arTask['AUDITORS'];
                         $arNewTaskFields['AUDITORS'][] = $curUserId;
                     }
                 } else {
                     $arNewTaskFields['AUDITORS'] = array($curUserId);
                 }
             } else {
                 return false;
             }
         } else {
             $arNewTaskFields = array('TITLE' => $tasksData['TITLE'], 'DESCRIPTION' => $tasksData['DESCRIPTION'], 'RESPONSIBLE_ID' => $tasksData['RESPONSIBLE_ID'], 'PRIORITY' => $tasksData['PRIORITY'], 'DEADLINE' => CAllDatabase::FormatDate(str_replace('T', ' ', $tasksData['DEADLINE']), 'YYYY-MM-DD HH:MI:SS', FORMAT_DATETIME));
             if (isset($tasksData['ACCOMPLICES'])) {
                 if ($tasksData['ACCOMPLICES'] == -1) {
                     $arNewTaskFields['ACCOMPLICES'] = array();
                 } else {
                     $arNewTaskFields['ACCOMPLICES'] = $tasksData['ACCOMPLICES'];
                 }
             }
             if (isset($tasksData['AUDITORS'])) {
                 if ($tasksData['AUDITORS'] == -1) {
                     $arNewTaskFields['AUDITORS'] = array();
                 } else {
                     $arNewTaskFields['AUDITORS'] = $tasksData['AUDITORS'];
                 }
             }
             $arNewTaskFields['GROUP_ID'] = 0;
             if (isset($tasksData['GROUP_ID']) && intval($tasksData['GROUP_ID']) > 0) {
                 if (CSocNetFeaturesPerms::CurrentUserCanPerformOperation(SONET_ENTITY_GROUP, (int) $tasksData['GROUP_ID'], 'tasks', 'create_tasks')) {
                     $arNewTaskFields['GROUP_ID'] = (int) $tasksData['GROUP_ID'];
                 } else {
                     unset($arNewTaskFields['GROUP_ID']);
                 }
             }
             if ($bCreateMode) {
                 $arNewTaskFields['CREATED_BY'] = $curUserId;
             }
         }
         if (isset($tasksData['META::EVENT_GUID'])) {
             $arNewTaskFields['META::EVENT_GUID'] = $tasksData['META::EVENT_GUID'];
         }
         if ($bCreateMode) {
             $arNewTaskFields['ID'] = 0;
         } else {
             $arNewTaskFields['ID'] = (int) $tasksData['TASK_ID'];
         }
         $oTask = new CTasks();
         if (!$bCreateMode) {
             $rc = $oTask->Update($arNewTaskFields['ID'], $arNewTaskFields);
         } else {
             $arNewTaskFields['MULTITASK'] = 'N';
             $arNewTaskFields['DESCRIPTION_IN_BBCODE'] = 'Y';
             // Only creator or priveleged user can set responsible person.
             $arNewTaskFields['RESPONSIBLE_ID'] = $curUserId;
             if ($arNewTaskFields['CREATED_BY'] === $curUserId || $GLOBALS['USER']->IsAdmin() || CTasksTools::IsPortalB24Admin()) {
                 $arNewTaskFields['RESPONSIBLE_ID'] = (int) $tasksData['RESPONSIBLE_ID'];
             }
             $arNewTaskFields['SITE_ID'] = SITE_ID;
             $rc = $oTask->Add($arNewTaskFields);
             if ($rc > 0) {
                 $arNewTaskFields['ID'] = $rc;
             } else {
                 $bErrorOccuredOnTaskCreation = true;
             }
         }
         $rc = $arNewTaskFields['ID'];
     }
     if ($bErrorOccuredOnTaskCreation) {
         return false;
     }
     return $rc;
 }
Beispiel #5
0
	private static function GetSocnetGroupFilteredByFeaturePerms(&$arGroups, $arFeaturePerms)
	{
		$arGroupsIDs = array();
		foreach($arGroups as $value)
		{
			$arGroupsIDs[] = $value["id"];
		}

		if (sizeof($arGroupsIDs) > 0)
		{
			$feature = $arFeaturePerms[0];
			$operations = $arFeaturePerms[1];
			if (!is_array($operations))
				$operations = explode(",", $operations);
			$arGroupsPerms = array();
			foreach($operations as $operation)
			{
				$tmpOps = CSocNetFeaturesPerms::CurrentUserCanPerformOperation(SONET_ENTITY_GROUP, $arGroupsIDs, $feature, $operation);
				foreach($tmpOps as $key=>$val)
					if (!$arGroupsPerms[$key])
						$arGroupsPerms[$key] = $val;
			}
			$arGroupsActive = CSocNetFeatures::IsActiveFeature(SONET_ENTITY_GROUP, $arGroupsIDs, $arFeaturePerms[0]);
			foreach ($arGroups as $key=>$group)
				if (!$arGroupsActive[$group["id"]] || !$arGroupsPerms[$group["id"]])
					unset($arGroups[$key]);
		}
	}
Beispiel #6
0
    if (is_array($baseTemplate)) {
        $arResult["DATA"]['BASE_TEMPLATE_DATA'] = $baseTemplate;
    } else {
        unset($arResult["DATA"]['BASE_TEMPLATE_ID']);
    }
}
// groups
$rsGroups = CSocNetGroup::GetList(array("NAME" => "ASC"), array("SITE_ID" => SITE_ID));
$arResult["GROUPS"] = array();
$groupIDs = array();
while ($group = $rsGroups->GetNext()) {
    $arResult["GROUPS"][$group["ID"]] = $group;
    $groupIDs[] = $group["ID"];
}
if (sizeof($groupIDs) > 0) {
    $arGroupsPerms = CSocNetFeaturesPerms::CurrentUserCanPerformOperation(SONET_ENTITY_GROUP, $groupIDs, "tasks", "create_tasks");
    foreach ($arResult["GROUPS"] as $key => $group) {
        if (!$arGroupsPerms[$group["ID"]]) {
            unset($arResult["GROUPS"][$key]);
        }
    }
}
$sTitle = "";
if ($arResult["ACTION"] == "edit") {
    $sTitle = str_replace("#TEMPLATE_ID#", $arParams["TEMPLATE_ID"], GetMessage("TASKS_TITLE_EDIT_TEMPLATE"));
} else {
    $sTitle = GetMessage("TASKS_TITLE_CREATE_TEMPLATE");
}
if ($arParams["SET_TITLE"] == "Y") {
    $APPLICATION->SetTitle($sTitle);
}
Beispiel #7
0
    $template = '.default';
    if (defined('SITE_TEMPLATE_ID') && SITE_TEMPLATE_ID === 'bitrix24') {
        $template = 'bitrix24';
    }
    $ynNotGroupList = 'Y';
    if ($arParams['GROUP_ID'] != 0) {
        $ynNotGroupList = 'N';
    }
    $arComponentParams = array_merge($arComponentParams, array('SHOW_TAB_PANEL' => 'Y', 'VIEW_COUNTERS' => $arResult['VIEW_COUNTERS'], 'SHOW_SECTIONS_BAR' => 'Y', 'SHOW_FILTER_BAR' => 'Y', 'SHOW_COUNTERS_BAR' => $ynNotGroupList, 'SHOW_SECTION_PROJECTS' => $ynNotGroupList, 'SHOW_SECTION_MANAGE' => 'A', 'SHOW_SECTION_COUNTERS' => $ynNotGroupList, 'MARK_ACTIVE_ROLE' => 'Y'));
    $filterName = '';
    if (strlen($arResult['SELECTED_PRESET_NAME'])) {
        $filterName .= ': ' . htmlspecialcharsbx($arResult['SELECTED_PRESET_NAME']);
    }
    $arComponentParams['SELECTED_PRESET_NAME'] = $arResult['SELECTED_PRESET_NAME'];
    $arComponentParams['ADDITIONAL_HTML'] = '';
    $arComponentParams['SHOW_TASK_LIST_MODES'] = 'N';
    if ($arParams['USER_ID'] > 0) {
        $arComponentParams['PATH_TO_PROJECTS'] = CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_USER_TASKS_PROJECTS_OVERVIEW'], array('user_id' => $arParams['USER_ID']));
    }
    if (intval($arParams['GROUP_ID']) && !CSocNetFeaturesPerms::CurrentUserCanPerformOperation(SONET_ENTITY_GROUP, $arParams['GROUP_ID'], "tasks", "create_tasks")) {
        $arComponentParams['SHOW_ADD_TASK_BUTTON'] = 'N';
        $arComponentParams['SHOW_QUICK_TASK_ADD'] = 'N';
        $arComponentParams['SHOW_TEMPLATES_TOOLBAR'] = 'N';
    }
    $APPLICATION->IncludeComponent('bitrix:tasks.list.controls', $template, $arComponentParams, null, array('HIDE_ICONS' => 'Y'));
}
?>

<script>tasksListTemplateDefaultInit()</script>
<script>tasksListTemplateDefaultTableViewInit()</script>
Beispiel #8
0
}
if (!isset($arParams['USE_FILTER_V2'])) {
    $arParams['USE_FILTER_V2'] = COption::GetOptionString('tasks', '~use_filter_v1', null) != '1';
} else {
    $arParams['USE_FILTER_V2'] = $arParams['USE_FILTER_V2'] === 'Y' ? true : false;
}
$arParams['NAME_TEMPLATE'] = empty($arParams['NAME_TEMPLATE']) ? CSite::GetNameFormat(false) : str_replace(array("#NOBR#", "#/NOBR#"), array("", ""), $arParams["NAME_TEMPLATE"]);
$arParams["TASK_ID"] = isset($arParams["TASK_ID"]) ? intval($arParams["TASK_ID"]) : 0;
$arResult["ACTION"] = $arParams["TASK_ID"] > 0 ? "edit" : "create";
$arParams["USER_ID"] = intval($arParams["USER_ID"]) > 0 ? intval($arParams["USER_ID"]) : $loggedInUserId;
$arParams["GROUP_ID"] = isset($arParams["GROUP_ID"]) ? intval($arParams["GROUP_ID"]) : 0;
if ($arParams["GROUP_ID"] > 0) {
    $featurePerms = CSocNetFeaturesPerms::CurrentUserCanPerformOperation(SONET_ENTITY_GROUP, array($arParams['GROUP_ID']), 'tasks', 'view_all');
    $bCanViewGroup = is_array($featurePerms) && isset($featurePerms[$arParams['GROUP_ID']]) && $featurePerms[$arParams['GROUP_ID']];
    if (!$bCanViewGroup) {
        $featurePerms = CSocNetFeaturesPerms::CurrentUserCanPerformOperation(SONET_ENTITY_GROUP, array($arParams['GROUP_ID']), 'tasks', 'view');
        $bCanViewGroup = is_array($featurePerms) && isset($featurePerms[$arParams['GROUP_ID']]) && $featurePerms[$arParams['GROUP_ID']];
    }
    if (!$bCanViewGroup) {
        ShowError(GetMessage('TASKS_ACCESS_TO_GROUP_DENIED'));
        return;
    }
}
$bAttachUserFields = false;
if (isset($arParams['ATTACH_USER_FIELDS']) && $arParams['ATTACH_USER_FIELDS'] === 'Y') {
    $bAttachUserFields = true;
}
if ($bAttachUserFields) {
    $arResult['USER_FIELDS'] = array();
} else {
    $arResult['USER_FIELDS'] = false;
Beispiel #9
0
 function CanCurrentUserViewTopic($topicID)
 {
     global $USER;
     $isSocNetModuleIncluded = CModule::IncludeModule("socialnetwork");
     if (($topicID = intval($topicID)) && is_object($USER)) {
         if ($USER->IsAdmin() || CTasksTools::IsPortalB24Admin()) {
             return true;
         }
         $rsTask = $res = CTasks::GetList(array(), array("FORUM_TOPIC_ID" => $topicID));
         if ($arTask = $rsTask->Fetch()) {
             if ((int) $arTask['GROUP_ID'] > 0) {
                 if (in_array(CSocNetFeaturesPerms::GetOperationPerm(SONET_ENTITY_GROUP, $arTask["GROUP_ID"], "tasks", "view_all"), array("G2", "AU"))) {
                     return true;
                 } elseif ($isSocNetModuleIncluded && false !== CSocNetFeaturesPerms::CurrentUserCanPerformOperation(SONET_ENTITY_GROUP, $arTask['GROUP_ID'], 'tasks', 'view_all')) {
                     return true;
                 }
             }
             $arTask["ACCOMPLICES"] = $arTask["AUDITORS"] = array();
             $rsMembers = CTaskMembers::GetList(array(), array("TASK_ID" => $arTask["ID"]));
             while ($arMember = $rsMembers->Fetch()) {
                 if ($arMember["TYPE"] == "A") {
                     $arTask["ACCOMPLICES"][] = $arMember["USER_ID"];
                 } elseif ($arMember["TYPE"] == "U") {
                     $arTask["AUDITORS"][] = $arMember["USER_ID"];
                 }
             }
             if (in_array($USER->GetID(), array_unique(array_merge(array($arTask["CREATED_BY"], $arTask["RESPONSIBLE_ID"]), $arTask["ACCOMPLICES"], $arTask["AUDITORS"])))) {
                 return true;
             }
             $dbRes = CUser::GetList($by = 'ID', $order = 'ASC', array('ID' => $arTask["RESPONSIBLE_ID"]), array('SELECT' => array('UF_DEPARTMENT')));
             if (($arRes = $dbRes->Fetch()) && is_array($arRes['UF_DEPARTMENT']) && count($arRes['UF_DEPARTMENT']) > 0) {
                 if (in_array($USER->GetID(), array_keys(CTasks::GetDepartmentManagers($arRes['UF_DEPARTMENT'], $arTask["RESPONSIBLE_ID"])))) {
                     return true;
                 }
             }
         }
     }
     return false;
 }
Beispiel #10
0
function tasksRenderJSON($arTask, $childrenCount, $arPaths, $bParent = false, $bGant = false, $top = false, $nameTemplate = "", $arAdditionalFields = array(), $bSkipJsMenu = false, array $params = array())
{
    global $USER;
    $arAllowedTaskActions = array();
    if (isset($arTask['META:ALLOWED_ACTIONS'])) {
        $arAllowedTaskActions = $arTask['META:ALLOWED_ACTIONS'];
    } elseif ($arTask['ID']) {
        $oTask = CTaskItem::getInstanceFromPool($arTask['ID'], $USER->getId());
        $arAllowedTaskActions = $oTask->getAllowedTaskActionsAsStrings();
        $arTask['META:ALLOWED_ACTIONS'] = $arAllowedTaskActions;
    }
    $runningTaskId = $runningTaskTimer = null;
    if ($arTask['ALLOW_TIME_TRACKING'] === 'Y') {
        $oTimer = CTaskTimerManager::getInstance($USER->getId());
        $runningTaskData = $oTimer->getRunningTask(false);
        $runningTaskId = $runningTaskData['TASK_ID'];
        $runningTaskTimer = time() - $runningTaskData['TIMER_STARTED_AT'];
    }
    $canCreateTasks = false;
    $canEditTasks = false;
    if ($arTask["GROUP_ID"]) {
        $canCreateTasks = \CSocNetFeaturesPerms::CurrentUserCanPerformOperation(SONET_ENTITY_GROUP, $arTask["GROUP_ID"], "tasks", "create_tasks");
        $canEditTasks = \CSocNetFeaturesPerms::CurrentUserCanPerformOperation(SONET_ENTITY_GROUP, $arTask["GROUP_ID"], "tasks", "edit_tasks");
    }
    ?>
	{
		id : <?php 
    echo $arTask["ID"];
    ?>
,
		name : "<?php 
    echo CUtil::JSEscape($arTask["TITLE"]);
    ?>
",
		<?php 
    if ($arTask["GROUP_ID"]) {
        ?>
			projectId : <?php 
        echo $arTask["GROUP_ID"];
        ?>
,
			projectName : '<?php 
        echo CUtil::JSEscape($arTask['GROUP_NAME']);
        ?>
',
			projectCanCreateTasks: <?php 
        echo CUtil::PhpToJSObject($canCreateTasks);
        ?>
,
			projectCanEditTasks: <?php 
        echo CUtil::PhpToJSObject($canEditTasks);
        ?>
,
		<?php 
    }
    ?>
		status : "<?php 
    echo tasksStatus2String($arTask["STATUS"]);
    ?>
",
		realStatus : "<?php 
    echo $arTask["REAL_STATUS"];
    ?>
",
		url: '<?php 
    echo CUtil::JSEscape(CComponentEngine::MakePathFromTemplate($arPaths["PATH_TO_TASKS_TASK"], array("task_id" => $arTask["ID"], "action" => "view")));
    ?>
',
		details: window.top.onDetails,
		priority : <?php 
    echo $arTask["PRIORITY"];
    ?>
,
		mark : <?php 
    echo !$arTask["MARK"] ? "null" : "'" . $arTask["MARK"] . "'";
    ?>
,
		responsible: '<?php 
    echo CUtil::JSEscape(tasksFormatNameShort($arTask["RESPONSIBLE_NAME"], $arTask["RESPONSIBLE_LAST_NAME"], $arTask["RESPONSIBLE_LOGIN"], $arTask["RESPONSIBLE_SECOND_NAME"], $nameTemplate));
    ?>
',
		director: '<?php 
    echo CUtil::JSEscape(tasksFormatNameShort($arTask["CREATED_BY_NAME"], $arTask["CREATED_BY_LAST_NAME"], $arTask["CREATED_BY_LOGIN"], $arTask["CREATED_BY_SECOND_NAME"], $nameTemplate));
    ?>
',
		responsibleId : <?php 
    echo $arTask["RESPONSIBLE_ID"];
    ?>
,
		directorId : <?php 
    echo $arTask["CREATED_BY"];
    ?>
,
		responsible_name: '<?php 
    echo CUtil::JSEscape($arTask["RESPONSIBLE_NAME"]);
    ?>
',
		responsible_second_name: '<?php 
    echo CUtil::JSEscape($arTask["RESPONSIBLE_SECOND_NAME"]);
    ?>
',
		responsible_last_name: '<?php 
    echo CUtil::JSEscape($arTask["RESPONSIBLE_LAST_NAME"]);
    ?>
',
		responsible_login: '******',
		director_name: '<?php 
    echo CUtil::JSEscape($arTask["CREATED_BY_NAME"]);
    ?>
',
		director_second_name: '<?php 
    echo CUtil::JSEscape($arTask["CREATED_BY_SECOND_NAME"]);
    ?>
',
		director_last_name: '<?php 
    echo CUtil::JSEscape($arTask["CREATED_BY_LAST_NAME"]);
    ?>
',
		director_login: '******',
		dateCreated : <?php 
    tasksJSDateObject($arTask["CREATED_DATE"], $top);
    ?>
,

		links: <?php 
    echo CUtil::PhpToJSObject($arTask['LINKS'], false, false, true);
    ?>
,

		<?php 
    if ($arTask["START_DATE_PLAN"]) {
        ?>
dateStart : <?php 
        tasksJSDateObject($arTask["START_DATE_PLAN"], $top);
        ?>
,<?php 
    } else {
        ?>
dateStart: null,<?php 
    }
    ?>

		<?php 
    if ($arTask["END_DATE_PLAN"]) {
        ?>
dateEnd : <?php 
        tasksJSDateObject($arTask["END_DATE_PLAN"], $top);
        ?>
,<?php 
    } else {
        ?>
dateEnd: null,<?php 
    }
    ?>

		<?php 
    if ($arTask["DATE_START"]) {
        ?>
dateStarted: <?php 
        tasksJSDateObject($arTask["DATE_START"], $top);
        ?>
,<?php 
    }
    ?>

		dateCompleted : <?php 
    if ($arTask["CLOSED_DATE"]) {
        tasksJSDateObject($arTask["CLOSED_DATE"], $top);
    } else {
        ?>
null<?php 
    }
    ?>
,

		<?php 
    if ($arTask["DEADLINE"]) {
        ?>
dateDeadline : <?php 
        tasksJSDateObject($arTask["DEADLINE"], $top);
        ?>
,<?php 
    } else {
        ?>
dateDeadline: null,<?php 
    }
    ?>

		canEditPlanDates : <?php 
    if ($arAllowedTaskActions['ACTION_CHANGE_DEADLINE']) {
        ?>
true<?php 
    } else {
        ?>
false<?php 
    }
    ?>
,

		canEdit: <?php 
    echo isset($arTask["META:ALLOWED_ACTIONS"]) && $arTask["META:ALLOWED_ACTIONS"]["ACTION_EDIT"] ? "true" : "false";
    ?>
,

		<?php 
    if ($arTask["PARENT_ID"] && $bParent) {
        ?>
			parentTaskId : <?php 
        echo $arTask["PARENT_ID"];
        ?>
,
		<?php 
    }
    ?>

		<?php 
    if (sizeof($arTask["FILES"])) {
        $i = 0;
        ?>
			files: [
				<?php 
        foreach ($arTask["FILES"] as $file) {
            $i++;
            ?>
				{ name : '<?php 
            echo CUtil::JSEscape($file["ORIGINAL_NAME"]);
            ?>
', url : '/bitrix/components/bitrix/tasks.task.detail/show_file.php?fid=<?php 
            echo $file["ID"];
            ?>
', size : '<?php 
            echo CUtil::JSEscape(CFile::FormatSize($file["FILE_SIZE"]));
            ?>
' }<?php 
            if ($i != sizeof($arTask["FILES"])) {
                ?>
,<?php 
            }
            ?>
				<?php 
        }
        ?>
			],
		<?php 
    }
    ?>

		<?php 
    if (count($arTask['ACCOMPLICES']) > 0) {
        $i = 0;
        echo 'accomplices: [';
        foreach ($arTask['ACCOMPLICES'] as $ACCOMPLICE_ID) {
            if ($i++) {
                echo ',';
            }
            echo '{ id: ' . (int) $ACCOMPLICE_ID . ' }';
        }
        echo '], ';
    }
    ?>

		<?php 
    if (count($arTask['AUDITORS']) > 0) {
        $i = 0;
        echo 'auditors: [';
        foreach ($arTask['AUDITORS'] as $AUDITOR_ID) {
            if ($i++) {
                echo ',';
            }
            echo '{ id: ' . (int) $AUDITOR_ID . ' }';
        }
        echo '], ';
    }
    ?>

		isSubordinate: <?php 
    echo $arTask["SUBORDINATE"] == "Y" ? "true" : "false";
    ?>
,
		isInReport: <?php 
    echo $arTask["ADD_IN_REPORT"] == "Y" ? "true" : "false";
    ?>
,
		hasChildren : <?php 
    if ((int) $childrenCount > 0) {
        echo 'true';
    } else {
        echo 'false';
    }
    ?>
,
		childrenCount : <?php 
    echo (int) $childrenCount;
    ?>
,
		canEditDeadline : <?php 
    if ($arAllowedTaskActions['ACTION_CHANGE_DEADLINE']) {
        echo 'true';
    } else {
        echo 'false';
    }
    ?>
,
		canStartTimeTracking : <?php 
    if ($arAllowedTaskActions['ACTION_START_TIME_TRACKING']) {
        ?>
true<?php 
    } else {
        ?>
false<?php 
    }
    ?>
,
		ALLOW_TIME_TRACKING : <?php 
    if (isset($arTask['ALLOW_TIME_TRACKING']) && $arTask['ALLOW_TIME_TRACKING'] === 'Y') {
        echo 'true';
    } else {
        echo 'false';
    }
    ?>
,
		matchWorkTime: <?php 
    echo $arTask['MATCH_WORK_TIME'] == 'Y' ? 'true' : 'false';
    ?>
,
		TIMER_RUN_TIME : <?php 
    if ($runningTaskId == $arTask['ID']) {
        echo (int) $runningTaskTimer;
    } else {
        echo 'false';
    }
    ?>
,
		TIME_SPENT_IN_LOGS : <?php 
    echo (int) $arTask['TIME_SPENT_IN_LOGS'];
    ?>
,
		TIME_ESTIMATE : <?php 
    echo (int) $arTask['TIME_ESTIMATE'];
    ?>
,
		IS_TASK_TRACKING_NOW : <?php 
    if ($runningTaskId == $arTask['ID']) {
        echo 'true';
    } else {
        echo 'false';
    }
    ?>
,
		menuItems: [<?php 
    tasksGetItemMenu($arTask, $arPaths, SITE_ID, $bGant, $top, $bSkipJsMenu, $params);
    ?>
]

		<?php 
    foreach ($arAdditionalFields as $key => $value) {
        echo ', ' . $key . ' : ' . $value . "\n";
    }
    ?>
	}
<?php 
}
Beispiel #11
0
$bErrorOccuredOnTaskCreation = false;
if (isset($_POST['TASK_ID']) && check_bitrix_sessid()) {
    $bCreateMode = true;
    if ($_POST['TASK_ID'] > 0) {
        $bCreateMode = false;
    }
    // We are in edit mode
    $arNewTaskFields = array('TITLE' => $_POST['TITLE'], 'DESCRIPTION' => $_POST['DESCRIPTION'], 'RESPONSIBLE_ID' => $_POST['RESPONSIBLE_ID'], 'PRIORITY' => $_POST['PRIORITY'], 'DEADLINE' => CAllDatabase::FormatDate(str_replace('T', ' ', $_POST['DEADLINE']), 'YYYY-MM-DD HH:MI:SS', FORMAT_DATETIME));
    if ($bCreateMode) {
        $arNewTaskFields['ID'] = 0;
    } else {
        $arNewTaskFields['ID'] = (int) $_POST['TASK_ID'];
    }
    $arNewTaskFields['GROUP_ID'] = 0;
    if (isset($_POST['GROUP_ID']) && intval($_POST['GROUP_ID']) > 0) {
        if (CSocNetFeaturesPerms::CurrentUserCanPerformOperation(SONET_ENTITY_GROUP, (int) $_POST['GROUP_ID'], 'tasks', 'create_tasks')) {
            $arNewTaskFields['GROUP_ID'] = (int) $_POST['GROUP_ID'];
        } else {
            unset($arNewTaskFields['GROUP_ID']);
        }
    }
    $oTask = new CTasks();
    if (!$bCreateMode) {
        // Only priveleged users can change or set any ORIGINATOR
        $arNewTaskFields['CREATED_BY'] = (int) $GLOBALS['USER']->GetID();
        if ($USER->IsAdmin() || CTasksTools::IsPortalB24Admin()) {
            $arNewTaskFields['CREATED_BY'] = (int) $_POST['CREATED_BY'];
        }
        $rc = $oTask->Update($arNewTaskFields['ID'], $arNewTaskFields);
    } else {
        $arNewTaskFields['MULTITASK'] = 'N';