Пример #1
0
/**
 * Редактирование документа.
 *
 * @param int $id ID документа
 *
 * @return object xajaxResponse
 */
function editDoc($id)
{
    global $objLetters;
    $objResponse = new xajaxResponse();
    if (hasPermissions('letters') && hasPermissions('adm')) {
        $doc = $objLetters->getDocument($id);
        if ($doc) {
            if (!$doc['user_status_1']) {
                $doc['user_status_1'] = null;
            }
            if (!$doc['user_status_2']) {
                $doc['user_status_2'] = null;
            }
            if (!$doc['user_status_3']) {
                $doc['user_status_3'] = null;
            }
            $objResponse->assign('letters_doc_frm_title', 'value', $doc['title']);
            $objResponse->script("\n                                \$('letters_doc_frm_delivery_cost').set('value', '');\n                                \$('letters_doc_frm_comment').set('value', '');\n                                ComboboxManager.getInput('letters_doc_frm_group').clear();\n                                ComboboxManager.getInput('letters_doc_frm_delivery').clear();\n                                ComboboxManager.getInput('letters_doc_frm_user_1').clear();\n                                ComboboxManager.getInput('letters_doc_frm_user_2').clear();\n                                ComboboxManager.getInput('letters_doc_frm_user_3').clear();\n                                ComboboxManager.getInput('letters_doc_frm_parent').clear();\n                                \$('letters_doc_frm_user1_status_data').set('value', 0);\n                                \$('letters_doc_frm_user1_status_date_data').set('value', '');\n                                \$('letters_doc_frm_user_1_status_change_lnk').set('html', statuses_list[0]);\n                                \$('letters_doc_frm_user2_status_data').set('value', 0);\n                                \$('letters_doc_frm_user2_status_date_data').set('value', '');\n                                \$('letters_doc_frm_user_2_status_change_lnk').set('html', statuses_list[0]);\n                                \$('letters_doc_frm_user3_status_data').set('value', 0);\n                                \$('letters_doc_frm_user3_status_date_data').set('value', '');\n                                \$('letters_doc_frm_user_3_status_change_lnk').set('html', statuses_list[0]);\n                                if(\$('letters_doc_frm_user_3_div').getStyle('display')=='block') {\n                                    letters.toggleUser3();\n                                }\n                            ");
            if ($doc['user_3']) {
                $objResponse->script('letters.toggleUser3();');
                $objResponse->script('ComboboxManager.getInput("letters_doc_frm_user_3").loadRecord(' . $doc['user_3'] . ', "get_user_or_company_info", "type=' . ($doc['is_user_3_company'] == 't' ? 'company' : 'user') . '");');
            }
            if ($doc['withoutourdoc'] == 't') {
                $objResponse->script('$("letters_doc_frm_withoutourdoc").set("checked", true);');
            }
            if ($doc['user_status_1'] == 2 || $doc['user_status_1'] == 3) {
                $add_status1 = ' ' . dateFormat('d.m.Y', $doc['user_status_date_1']);
            }
            if ($doc['user_status_2'] == 2 || $doc['user_status_2'] == 3) {
                $add_status2 = ' ' . dateFormat('d.m.Y', $doc['user_status_date_2']);
            }
            if ($doc['user_status_3'] == 2 || $doc['user_status_1'] == 3) {
                $add_status3 = ' ' . dateFormat('d.m.Y', $doc['user_status_date_3']);
            }
            $objResponse->script("\$('letters_doc_frm_user_1_status_change_lnk').set('html', statuses_list[" . intval($doc['user_status_1']) . "]+'{$add_status1}')");
            $objResponse->script("\$('letters_doc_frm_user_2_status_change_lnk').set('html', statuses_list[" . intval($doc['user_status_2']) . "]+'{$add_status2}')");
            $objResponse->script("\$('letters_doc_frm_user_3_status_change_lnk').set('html', statuses_list[" . intval($doc['user_status_3']) . "]+'{$add_status3}')");
            $objResponse->assign('letters_doc_frm_user1_status_data', 'value', intval($doc['user_status_1']));
            $objResponse->assign('letters_doc_frm_user2_status_data', 'value', intval($doc['user_status_2']));
            $objResponse->assign('letters_doc_frm_user3_status_data', 'value', intval($doc['user_status_3']));
            $objResponse->assign('letters_doc_frm_user1_status_date_data', 'value', $doc['user_status_date_1'] ? dateFormat('Y-m-d', $doc['user_status_date_1']) : '');
            $objResponse->assign('letters_doc_frm_user2_status_date_data', 'value', $doc['user_status_date_2'] ? dateFormat('Y-m-d', $doc['user_status_date_2']) : '');
            $objResponse->assign('letters_doc_frm_user3_status_date_data', 'value', $doc['user_status_date_3'] ? dateFormat('Y-m-d', $doc['user_status_date_3']) : '');
            if ($doc['group_id']) {
                $objResponse->script('ComboboxManager.getInput("letters_doc_frm_group").loadRecord(' . $doc['group_id'] . ', "getlettergroupinfo");');
            }
            $objResponse->script('ComboboxManager.getInput("letters_doc_frm_user_1").loadRecord(' . $doc['user_1'] . ', "get_user_or_company_info", "type=' . ($doc['is_user_1_company'] == 't' ? 'company' : 'user') . '");');
            $objResponse->script('ComboboxManager.getInput("letters_doc_frm_user_2").loadRecord(' . $doc['user_2'] . ', "get_user_or_company_info", "type=' . ($doc['is_user_2_company'] == 't' ? 'company' : 'user') . '");');
            if ($doc['parent']) {
                $objResponse->script('ComboboxManager.getInput("letters_doc_frm_parent").loadRecord(' . $doc['parent'] . ', "getletterdocinfo");');
            }
            if ($doc['date_add']) {
                $objResponse->script('ComboboxManager.getInput("letters_doc_frm_dateadd").setDate("' . preg_replace('/ .*$/', '', $doc['date_add']) . '");');
            }
            if ($doc['file_id']) {
                $cFile = new CFIle();
                $cFile->table = 'file';
                $cFile->GetInfoById($doc['file_id']);
                require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/attachedfiles.php';
                $attachedfiles = new attachedfiles('', true);
                $asid = $attachedfiles->createSessionID();
                $attachedfiles->addNewSession($asid);
                $attachedfiles->setFiles(array($cFile->id));
                $p_name = preg_replace("/\\..*\$/", '', $cFile->name);
                ob_start();
                echo '<div id="attachedfiles">';
                require_once $_SERVER['DOCUMENT_ROOT'] . '/siteadmin/letters/tpl.attachedfiles.php';
                echo '</div>';
                echo "<input type='hidden' id='attachedfiles_uid' name='attachedfiles_uid' value='" . get_uid(false) . "'>";
                echo "<input type='hidden' id='attachedfiles_action' name='attachedfiles_action' value=''>";
                echo "<input type='hidden' id='attachedfiles_delete' name='attachedfiles_delete' value=''>";
                echo "<input type='hidden' id='attachedfiles_type' name='attachedfiles_type' value='letters'>";
                echo "<input type='hidden' id='attachedfiles_session' name='attachedfiles_session' value='" . $asid . "'>";
                echo "<iframe id='attachedfiles_hiddenframe' name='attachedfiles_hiddenframe' style='display:none;'></iframe>";
                $html = ob_get_contents();
                ob_end_clean();
                $objResponse->assign('letters_div_attach', 'innerHTML', $html);
                $objResponse->script("(function () {\n\n                                    var attachedfiles_list = new Array();\n\n                                    attachedfiles_list[0] = new Object;\n                                    attachedfiles_list[0].id = '" . md5($cFile->id) . "';\n                                    attachedfiles_list[0].name = '" . $cFile->original_name . "';\n                                    attachedfiles_list[0].path = '" . WDCPREFIX . '/' . $cFile->path . $cFile->name . "';\n                                    attachedfiles_list[0].size = '" . ConvertBtoMB($cFile->size) . "';\n                                    attachedfiles_list[0].type = '" . $cFile->getExt() . "';\n\n                                    attachedFiles.initComm( 'attachedfiles', \n                                                            '{$attachedfiles->getSession()}',\n                                                            attachedfiles_list, \n                                                            '1',\n                                                            '" . letters::MAX_FILE_SIZE . "',\n                                                            '" . implode(', ', $GLOBALS['disallowed_array']) . "',\n                                                            'letters',\n                                                            '" . get_uid(false) . "'\n                                                            );\n                                    attachedFiles.newFile(attachedfiles_list[0].id, attachedfiles_list[0].name, attachedfiles_list[0].path, attachedfiles_list[0].size, attachedfiles_list[0].type);\n                                })();\n                                \$('wd_file_add').setStyle('display', 'none');\n                                ");
                $objResponse->assign('attachedfiles_uid', 'value', get_uid(false));
                $objResponse->assign('attachedfiles_session', 'value', $attachedfiles->getSession());
                $objResponse->script("\$('f_button_actionwork').removeClass('b-button_rectangle_color_disable');");
            }
            $objResponse->script('status_can_submit = true;');
            $objResponse->script("\$('letters_add_div').getChildren('div').removeClass('b-shadow_hide');");
        }
        $objResponse->script('letters.spinner.hide();');
    }
    return $objResponse;
}