$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>]&nbsp;' . $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>]&nbsp;' . $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"))));
Exemple #4
0
 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;
 }