$context->Show(); CAdminMessage::ShowMessage(GetMessage("FLOW_DOCUMENT_NOT_FOUND")); require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_admin.php"; die; } } } if ($ID > 0) { // check if document is published $z = CWorkflow::GetStatus($ID); $zr = $z->Fetch(); if (intval($zr["ID"]) == 1) { $message = new CAdminMessage(array("MESSAGE" => GetMessage("FLOW_ERROR"), "DETAILS" => GetMessage("FLOW_DOCUMENT_IS_NOT_AVAILABLE"), "TYPE" => "ERROR")); } else { // rights check if (!CWorkflow::IsHaveEditRights($ID)) { $sDocTitle = str_replace("#ID#", "{$ID}", GetMessage("FLOW_EDIT_RECORD")); $APPLICATION->SetTitle($sDocTitle); require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_after.php"; $aMenu = array(array("ICON" => "btn_list", "TEXT" => GetMessage("FLOW_RECORDS_LIST"), "LINK" => "workflow_list.php?lang=" . LANGUAGE_ID, "TITLE" => GetMessage("FLOW_RECORDS_LIST"))); $context = new CAdminContextMenu($aMenu); $context->Show(); CAdminMessage::ShowMessage(str_replace("#ID#", "{$ID}", GetMessage("FLOW_NOT_ENOUGH_RIGHTS"))); require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_admin.php"; die; } // check if locked if (!CWorkflow::IsAllowEdit($ID, $locked_by, $date_lock, "N")) { if (intval($locked_by) > 0) { $str = str_replace("#ID#", "{$locked_by}", GetMessage("FLOW_DOCUMENT_LOCKED")); $str = str_replace("#DATE#", "{$date_lock}", $str);
<?php } ?> <?php $tabControl->EndTab(); if ($document_exist == "Y") { $tabControl->BeginNextTab(); ?> <tr> <td width="40%"><?php echo GetMessage("FLOW_DOCUMENT_ID"); ?> </td> <td width="60%"><?php if (CWorkflow::IsHaveEditRights($zr["ID"])) { ?> <a href="workflow_edit.php?lang=<?php echo LANG; ?> &ID=<?php echo $zr["ID"]; ?> " title="<?php echo GetMessage('FLOW_VIEW_DOC_ALT'); ?> "><?php echo $zr["ID"]; ?> </a><?php } else {
if ($WORKFLOW_RIGHT > "R" && CWorkflow::IsAdmin()) { CWorkflow::DeleteHistory($ID); } break; } } } $arHeaders = array(array("id" => "ID", "content" => "ID", "default" => false, "sort" => "s_id"), array("id" => "DOCUMENT_ID", "content" => GetMessage("FLOW_DOCUMENT"), "default" => false, "sort" => "s_document_id"), array("id" => "TIMESTAMP_X", "content" => GetMessage("FLOW_DATE_MODIFY"), "default" => true, "sort" => "s_date_modify"), array("id" => "MODIFIED_BY", "content" => GetMessage("FLOW_MODIFIED_BY"), "default" => true, "sort" => "s_modified_by"), array("id" => "FILENAME", "content" => GetMessage("FLOW_FILENAME"), "default" => true, "sort" => "s_filename"), array("id" => "TITLE", "content" => GetMessage("FLOW_TITLE"), "default" => true, "sort" => "s_title"), array("id" => "STATUS_ID", "content" => GetMessage("FLOW_STATUS"), "default" => true, "sort" => "s_status")); $lAdmin->AddHeaders($arHeaders); $rsData = CWorkflow::GetHistoryList($by, $order, $arFilter, $is_filtered); $rsData = new CAdminResult($rsData, $sTableID); $rsData->NavStart(50); $lAdmin->NavText($rsData->GetNavPrint(GetMessage("FLOW_PAGES"))); while ($arRes = $rsData->NavNext(true, "f_")) { $row =& $lAdmin->AddRow($f_ID, $arRes); if (CWorkflow::IsHaveEditRights($f_DOCUMENT_ID) && $f_DOCUMENT_ID > 0) { $row->AddViewField("DOCUMENT_ID", '<a href="workflow_edit.php?lang=' . LANG . '&ID=' . $f_DOCUMENT_ID . '">' . $f_DOCUMENT_ID . '</a>'); } $row->AddViewField("MODIFIED_BY", '[<a title="' . GetMessage("FLOW_USER_ALT") . '" href="user_edit.php?ID=' . $f_MODIFIED_BY . '&lang=' . LANG . '">' . $f_MODIFIED_BY . '</a>] ' . $f_USER_NAME); $row->AddViewField("FILENAME", '<a href="' . $f_FILENAME . '">' . TruncateText($f_FILENAME, 45) . '</a>'); $row->AddViewField("STATUS_ID", '[<a title="' . GetMessage("FLOW_STATUS_ALT") . '" href="workflow_status_edit.php?ID=' . $f_STATUS_ID . '&lang=' . LANG . '">' . $f_STATUS_ID . '</a>] ' . $f_STATUS_TITLE); $arActions = array(array("ICON" => "view", "DEFAULT" => "Y", "TEXT" => GetMessage("FLOW_VIEW"), "ACTION" => $lAdmin->ActionRedirect("workflow_history_view.php?lang=" . LANG . "&ID=" . $f_ID))); if ($WORKFLOW_RIGHT > "R" && CWorkflow::IsAdmin()) { $arActions[] = array("SEPARATOR" => true); $arActions[] = array("ICON" => "delete", "TEXT" => GetMessage("FLOW_DELETE"), "ACTION" => "if(confirm('" . GetMessage('FLOW_DELETE_CONFIRM') . "')) " . $lAdmin->ActionDoGroup($f_ID, "delete")); } $row->AddActions($arActions); } $lAdmin->AddFooter(array(array("title" => GetMessage("MAIN_ADMIN_LIST_SELECTED"), "value" => $rsData->SelectedRowsCount()), array("counter" => true, "title" => GetMessage("MAIN_ADMIN_LIST_CHECKED"), "value" => "0"))); if ($WORKFLOW_RIGHT > "R" && CWorkflow::IsAdmin()) { $lAdmin->AddGroupActionTable(array("delete" => GetMessage("MAIN_ADMIN_LIST_DELETE"), array("action" => "Diff()", "value" => "compare", "type" => "button", "name" => GetMessage("FLOW_COMPARE"))));
public static function GetEditLink($FILENAME, &$status_id, &$status_title, $template = "", $lang = LANGUAGE_ID, $return_url = "") { $err_mess = CAllWorkflow::err_mess() . "<br>Function: GetEditLink<br>Line: "; global $DB, $APPLICATION, $USER; $link = ''; CMain::InitPathVars($SITE_ID, $FILENAME); if ($USER->CanDoFileOperation('fm_edit_in_workflow', array($SITE_ID, $FILENAME))) { //Check if user have access at least to one status if (!CWorkflow::IsAdmin()) { $arGroups = $USER->GetUserGroupArray(); if (!is_array($arGroups)) { $arGroups = array(2); } $arFilter = array("GROUP_ID" => $arGroups, "PERMISSION_TYPE_1" => 1); $rsStatuses = CWorkflowStatus::GetList($by = "s_c_sort", $strOrder, $arFilter, $is_filtered, array("ID")); if (!$rsStatuses->Fetch()) { return ""; } } $link = "/bitrix/admin/workflow_edit.php?lang=" . $lang . "&site=" . $SITE_ID . "&fname=" . $FILENAME; if (strlen($template) > 0) { $link .= "&template=" . urlencode($template); } if (strlen($return_url) > 0) { $link .= "&return_url=" . urlencode($return_url); } $z = CWorkflow::GetByFilename($FILENAME, $SITE_ID); if ($zr = $z->Fetch()) { $status_id = $zr["STATUS_ID"]; $status_title = $zr["STATUS_TITLE"]; if ($status_id != 1) { $DOCUMENT_ID = $zr["ID"]; if (CWorkflow::IsHaveEditRights($DOCUMENT_ID)) { $link .= "&ID=" . $DOCUMENT_ID; } else { return ""; } } } } return $link; }