[*] Кнопка слияния сводных записей теперь доступна только пользователям, имеющим право редактирования БД
[*] Из поисковых терминов теперь исключаются двойные кавычки
[-] Исправлена ошибка при формировании статистики
[+] Добавлен набор статистик RecordRqst (для записей RQST):
brief - Краткое описание
RqstNo - Номер заказа
RqstDate - Дата заказа
RqstBookBrief - Заказанное издание
RqstDesc - Примечание пользователя
RqstECDB - БД
RqstRdrBrief - Пользователь
RqstRdrId - Идентификатор пользователя
RqstShifr - Шифр документа
RqstDateDeny - Дата отказа
RqstDateIssue - Дата исполнения
RqstDenyReason - Причина отказа
RqstOtvFace - Ответственное лицо
RqstRdrWorkPlace - Место работы пользователя
RqstWorkerMBA - Ответственный за МБА сотрудник
RqstEkz - Инвентарный номер экземпляра
RqstMhr - Место хранения экземпляра
[+] Провайдер webirb теперь умеет работать и по https
[+] Новый способ получения списка терминов в провайдере DP_webirb (для веб-ирбис версий выше 2016.1)
[+] Возможность для провайдера webirb указать логин и пароль
[+] Поддержка авторизации Web-ИРБИС 64+
[+] Переименован провайдер webirb из "Web-ИРБИС 64/32" в "Web-ИРБИС 32/64/64+"
[+] Повторяющиеся поля теперь тоже доступны как свойства класа записи (массив ассоциативных массивов подполе=>значение)
[+] Древовидный редактор записей теперь тоже умеет вызывать методы OnBeforeSave и OnAfterSave, если таковые определены в классе модуля, управляющего редактируемой записью
[!] Провайдер J-ИРБИС 2.0
[+] Новый параметр у WIrbis.RecListPanel - array preselectionActionsQ - список конфигураций кнопок для тулбара, запускающих окно мониторинга фоновой задачи
[*] Запись, создаваемая функцией NewRecordFromCur.inc (кнопка "Новая запись из текущей") теперь наследует права от родительской записи модуля
[-] Исправлено некорректное поведение функции SetOwner - она теперь назначает sid родительской записи в правильное подполе
[-] Исправлено: при формировании дистрибутивов неверно указывалось имя модуля - SQLIteRecDb вместо SQLiteRecDb
[-] Не подхватывались пользовательские глобальные корректироовки (с расширением .gbl128)
[-] Исправлена ошибка в функциии Record::d() (Иногда ошибочно добавлялись условные литералы)
[-] Исправлена ошибка в функциии Record::n() (Иногда ошибочно добавлялись условные литералы)
[-] Убрано свойство класса Record::_LastChanged. Однако функция Record::GetLastChangeTime работает и делает теперь это корректно
[+] У модулей появился метод GetRecordIndex(ObjectData $db,ObjectData $r). Функция возвращает массив массивов с индексами вида array(0=>array('A'='IDXPREFIX','B'=>'TERMIN1'),1=>array('A'='IDXPREFIX','B'=>'TERMIN2')) Приведенный пример создаст 2 индекса в записи: IDXPREF=TERMIN1 и IDXPREF=TERMIN2. Индекс хранится в самой записи, в поле 1288 (Префикс в подполе A, термин в подполе B)
[-] PHP Fatal error: Uncaught Error: Call to a member function GetName() on null in modules/NewsFeed/Formats/full.pft128:29
[*] Селектор форматов теперь может использовать формат full.pft128
[-] исправлено - не закрывался редактор записи если он был вызван не из списка записей
[+] Теперь при создании записи с помощью функции "Создать новую запись из текущей" очищается индексное поле v1288 во избежание дублирования индексов
[+] Редактор записи теперь по умолчанию отображает запись в формате full.pft128 в окне просмотра
[+] Префиксы, создаваемые с помощью поля v1288 теперь снабжены описанием, которое хранится в файле "prefix", рядом с записью модуля, управляющего индексируемой записью.
[*] Уменьшено минимальное число символов для начала поиска в селекторе видов поиска
[*] Неделя теперь начинается с понедельника во всех стандартных интерфейсных элементах
[+] Совместимость с PHP 7.4
[*] Методы _WIA_Action::SubAction и _WIA_Action::SubActionAPI теперь пишут Notice в лог, в случае, если вызываемый через них метод не найден
[-] PHP Warning: Invalid argument supplied for foreach() in modules\Format\formats\J\JNJTable.pft128 on line 106
[-] PHP Notice: Undefined variable: params in modules\Syncer\Actions\QueueMonitor.inc on line 14
[-] PHP Notice: Undefined index: mfn in modules\EC\Pages\ShowFull.page on line 12
[-] PHP Notice: Undefined index: wndWidth in modules\EC\__call\ShowSearchResultExtJs3.inc on line 27
[-] PHP Notice: Undefined index: wndShowArbSidNewRec in modules\EC\__call\ShowSearchResultExtJs3.inc on line 56
[-] PHP Notice: Undefined index: wndShowNewRec in modules\EC\__call\ShowSearchResultExtJs3.inc on line 72
[-] PHP Notice: Undefined variable: row in modules\CSpider\Actions\Stage37.inc on line 49
[-] PHP Notice: Undefined variable: row in modules\CSpider\Actions\Stage37.inc on line 58
[-] PHP Notice: Undefined variable: form in modules\EC\__call\ShowSearchResultFlat.inc on line 82
[-] PHP Notice: Undefined index: HTTP_USER_AGENT in modules\Security\BROWSERUSERAGENT.gtc on line 51
[-] PHP Warning: Invalid argument supplied for foreach() в форматах brief_search.pft128
[+] Списки записей вызываемые из объектного редактора теперь тоже поддерживают редактирование записей по двойному клику
[+] Улучшено управление списком записей с клавиатуры: курсорные клавиши "Вправо" и "Влево" соответственно раскрывают и сворачивают полный формат, а "ENTER" вызывает действие, повешенное на двойной клик в текущем списке
[+] Добавлен простой пример выгрузки записей по результатам поиска (TestA/Actions/ExportExample.inc)
[-] Тип поля редактора MyltyOCC теперь корректно поддерживает параметр Flex для подполей
[-] Тип поля редактора SidString теперь поддерживает стандартные параметры поля
[!] Новая система управления, ввода и обработки статистики. Ввод данных.
[!] Изменен формат функции OnAfterSave - теперь он вида OnAfterSave($db,$r), где db - Имя БД в которой произошло сохранение, $r - сохраненная запись
[-] кнопка "Создать новую из текущей" больше не пытается назначить права доступа на новую запись при пустом параметре "osid"
[-] PHP Notice: Undefined variable: params in modules\Stat\Actions\QueueMonitor.inc on line 15
[-] The variable '$dpath' is assigned, but its value is never used in htdocs\classes\DummyDP128.php, 66
[*] По умолчанию, полный формат как списка записей (как и для всего JS-Модуля WIrbis)определен как "full.pft128"
[*] рефкторинг irbis-search.js: убран вагон старого кода, полноценная поддержка всех трех типов словарей (стандартный, с раскодировкой через справочник, ГРНТИ)
[+] Рубрикатор ГРНТИ теперь умеет показывать сколько документов в текущей бд соответствует каждой рубрике.
[+] Новый метод Database::GetTermRefs.inc возвращает число ссылок на указанный термин.
[-] Исправлена некорректная работа LongTask на Linux
[+] Первая версия провайдера данных Irbis64Direct. Требует модуля PHP_Irbis64. При наличии такового активируется автоматически. Пока файлы баз данных для него необходимо копировать вручную в ROOTSID/DATABASE.
[+] На вкладке "Настройки основного TCP/IP сервера ИРБИС 64" появилась возможность переключиться с TCP/IP сервера на Irbis64Direct. Если модуль php_irbis64 не установлен, настройки будут автоматически сброшены обратно на TCP/IP сервер.
[*] Updating phpmailer/phpmailer (v5.2.26 => v5.2.27)
[*] Updating symfony/polyfill-ctype (v1.9.0 => v1.12.0)
[*] Updating symfony/filesystem (v4.1.6 => v4.3.4)
[*] Updating psr/log (1.0.2 => 1.1.0)
[*] Updating monolog/monolog (1.23.0 => 1.25.1)
[*] Updating symfony/process (v3.4.17 => v3.4.31)
[*] Updating myclabs/deep-copy (1.9.3)
[*] Installing paragonie/random_compat (v9.99.99)
[*] Updating setasign/fpdi (v2.2.0)
[*] Updating mpdf/mpdf (v8.0.2)
[*] FPDI перенесен в composer
[-] Удален устаревший модуль amPDF
[+] fpdf/fpdf 1.81.2
[+] tecnickcom/tcpdf (6.3.2)
[+] setasign/fpdi-tcpdf (v2.2.0)
[!] Стандартизовано ПРОФИЛИРОВАНИЕ модулей. Профилирование - это возможность создания нескольких конфигураций модуля. Для профилирования модуля необходимо что бы записи этого модуля содержали в себе параметры модуля. В этом случае для каждого пользователя представляется возможность указать текущий профиль и использовать настройки именно этого профиля. Соответствующие изменения применены для АРМ Книговыдача, АРМ Комплектатор и добавлены в АРМ Читатель
[-] Удалены неиспользуемые файлы modules/FT/tcpdf
[+] Сформированы примитивные библиографические модули ASP, AUNTD, J, NJP, NJK, MUSP, NJ, PVK
[!] Поддержка ГОСТ Р 7.0.100–2018
[*] Перенос файлов форматов из модуля Formats
[*] Оптимизация работы очереди
[+] Installing webonyx/graphql-php (v0.13.8)
[+] список записей теперь умеет локально работать с редакторами ячеек. Можно указать редактор при конфигурировании колонок (параметр "editor"). Сервер вернет строку с прочерком для редактируемой ячейки.
[+] Новая команда Database::RecFormatMfn
[+] Новая команда Database::RecFormatMfnRange.inc
[+] Расширена команда Database::RecVirtualFormat - появился параметр Modefield. Кроме того, можно теперь вместо одной записи передать массив записей - в этом случае будет возвращен массив из массивов вида array(array('res'=>Код возврата,'fmt'=>результат расформатирования))
[-] убрана трансляция строк в числа, при запросах терминов. Термины, начинающееся с 0 теперь не обрезаются
[-] Модуль Queue функция SetTaskInfoElm везде вызывается с большой T в имени. (исправлено с SettaskInfoElm.inc) критично в ос семейства линукс
[*] Древо номеров журналов (и фронт и бек) перенесено в модуль J
[+] У WIrbis.DbSelector появилось свойство defaultDb. Если оно определено и не пустая строка то селектор автоматически загружает список БД и устанавливает в качестве текущей указанную в данном параметре БД
[+] Новая переменная ObjectModule::$_defaultAdminRecListSearch - Поиск для списка записей в панели администрирования. По умолчанию "V=<_RecordType>". Изменять можно внутри функции Init модуля
[+] Новый тип страниц - Вызов функции модуля (см. настройки системной страницы). Это аналог системных страниц, которые может создавать пользователь самостоятельно
[*] При редактировании системных страниц все поля становятся недоступными для ввода (запрещено редактирование системных страниц)
[+] Теперь видно имя модуля и функции для вызова системных страниц
[+] Модуль VKR (выпускная квалификационная работа) - для рабочего листа VKR
[-] Теперь Список Записей очищает результаты предыдущего поиска при смене БД
[-] Исправлено некорректное распознавание ответа сервера древовидным редактором, при наличии BOM в ответе.
[-] исправлено: не работала кнопка Новый из текущего если у записи еще не было sid
[-] Исправлена работа ФЛК при сохранении записи
[+] При смене версии теперь происходит переиндексация всех записей системной БД (для всех типов записей отрабатывают новые версии Index)
[-] Исправлена обработка символа "!" в Методе ввода 5
[+] Поддержка управления с клавиатуры для Метода ввода 5: Теперь, завершив редактирование ячейки нажатием "ENTER", мы автоматом перейдем на следующую строку и начнем ее редактирование. Мы можем отменить редактирование нажатием "ESC" и начать его снова по нажатию "ENTER". Наконец , если при редактировании нажать "TAB", то мы начнем редактирование следующей строки. Если нажимать с "SHIFT", то двигаться по таблице мы будем вверх, то есть переходить на предыдущую, а не на следующую строки.
[+] В редакторе записей теперь можно вызвать инструмент ввода по нажатию клавиши "F2" во время редактирования поля строкой.
[+] Метод ввода 5 теперь тоже поддерживает ввод даты через ALT+L
[+] Добавлена возможность перейти к поиску поля по метке по нажатию ALT+Q
[*] В результатах поиска убрана подпись у кнопки "Полное описание"
[*] Изменен внешний вид кнопки "Дополнительные действия"
[*] Улучшены форматы отображения для записей ИМИДЖ-каталога
[+] Добавлен формат full.pft128 для записей ИМИДЖ-каталога
[*] i128f::ForEachRecord теперь более внимательно относится к ошибкам. В случае возникновения ошибки вместо массива возвращает код ошибки (расшифровку ее можно получить через i128f::ParseError).
[*] В случае "падения" задачи внутри очереди, происходит автоматическое изменение ее статуса на "Ошибка" не дожидаясь таймаута.
[+] Queue::MonitorSubTasksProgress позволяет выводить в прогресс-бар прогресс исполнения массива задач из очереди. Полезно когда нужно дождаться окончания исполнения подзадач.
[*] Сессии теперь не создаются при работе Queue/ProcessDispatcher и Queue/ProcessThread
[+] Переписана система работы с OPT-файлами для поддержки всего их функционала.
[-] Теперь в параметрических модулях (INI, OPT, TRE, WS, WSS, MNU, PAR) кэшированные данные не читаются повторно, если метод LoadFromCache() вернул False
[+] Появился метод DataBase::RecReadBack() чтение предыдущих версии записи по MFN
[-] Исправлено: при некорректных запросах могла не упаковываться статистика посещений
[*] В RDR.fst обновлен индекс 113 поля: добавлено индексирование групп безопасности, не создаются пустые префиксы
[+] В RDR.fst добавлено индексирование поля 1288
[-] Database::FindRecordsCount() теперь действительно запрашивает только количество записей, соответствующих запросу (ранее он также запрашивал 1 запись в наборе)
[*] В провайдерах данных к TCP/IP серверу ИРБИС 64 метод GetFile.inc больше не читает файл из кеша, если метод Database::GetFile() приказал этого не делать (поддержка параметра $nocache)
[!] Рефакторинг процесса вызова функций. Теперь функции, имеющие в своем имени символ "_" размещаются в соответствующих подпапках папки _call. Например, функция UseModule('ModuleName')->function_name_call() будет размещаться в файле modules/ModuleName/__call/function/name/call.inc и имеет заголовок class fncall_ModuleName_function_name_call extends ObjectModuleExternalFunction
[*] Улучшена поддержка словаря типа 2
[*] При смене БД список записей теперь автоматически загружает записи, начиная с первой
[+] У списка записей появилась возможность автоматически запрашивать записи, начиная с первой, при загрузке страницы (управляется параметром autoLoadAllRecords)
[*] При загрузке всех записей, список записей теперь сохраняет конфигурацию колонок, заданную при настройке компонента (улучшена поддержка параметра defaultFormat)
[+] Провайдер ИРБИС 64 иеперь не использует лицензию сервера (необходимо обновление сервера!)
[+] Добавлена обертка для функции SearchSrv в модуле Database
[+] Константы из initsystem.php и Server64/api.php вынесены в отдельный скрипт Const.php
[*] Отключено логирование сессий пользователей.
[+] Передача во внешние функции модулей аргументов по ссылке больше не вызывает PHP Notice
[-] Исправлено: PHP Notice: Trying to access array offset on value of type bool in D:\htdocs\classes\ObjectModule.php on line 366
[*] Рефакторинг: процесс форматирования и заполнения объекта записи данными с полки вынесен в функцию MakeRecordObject.inc
[+] $ObjectModule->_scriptlist - Массив с именами подключаемых модулем JS-скриптов. Скрипты должны находиться в папке JS папки модуля, пути отсчитываются от папки JS.
[+] $ObjectModule->_isWIrbisScriptsAlreadyLoaded - Признак того что функция UseWIrbisScripts уже вызывалась для данного модуля
[+] ObjectModule->UseWIrbisScripts($nocache=false) - Подключает JS-скрипты, включая специфичные для модуля
[+] Новая команда Database::Empty() - опусташает БД. Поддерживается провайдерами Irbis64 и Irbis64r
[*] Файла из 951^A теперь берутся по 11 пути вместо 10
[+] Команда GetFile для провайдеров Irbis64 и Irbis64r теперь реализованы через команду L сервера ИРБИС 64
[+] Добавлена возможность автоматической генерации логина при регистрации
{+] Добавлена возможность не запрашивать у пользователя пароль при регистрации
[+] В настройках SMTP теперь можно явно указать тип безопасности (нет/SSL/TLS). Рекомендации почтового сервера при этом игнорируются (решение проблемы с некорректным ответом некоторых почтовых серверов)
[+] Новый модуль ProfileManager -- подсистема управления профилями. Реализует пользовательский интерфейс для создания, копирования, наследования и удаления профилей настроек других модулей
[+] Новое свойство ObjectModule::_UseProfiles -- активирует интерфейс управления профилями
[+] he2/Actions/GetSidEditor теперь умеет принимать записи на редактирование от вышестоящих функций. Рефакторинг кода
[+] he2/Actions/JsSave.inc теперь умеет ставить задачи на обновление профилей (по флагу profile). Рефакторинг кода
[+] новый метод Record/__call/PutOnShelf() -- загружает объект записи на полку (только для DP_Irbis64Direct)
[*] модули Cataloguer, Bookland, EC и Complectator переключены на подсистему управления профилями
[*] Рефакторинг ObjectModule::UpdateOptsCache() и Record/__call/InitManagedVars() теперь они больше похожи друг на друга
[*] Преобразован метод ввода 10 к методу ввода 2 при загрузки рабочего листа подполе
[+] Авторизация через ВКонтакте
[-] Исправлено чтение hdr-файлов в выходных формах
[-] Убрана поддержка /Data/online
[+] Совместимость с Microsoft JScript (Поддержка импорта через WEB в ИРБИС 64 в качестве источника данных)
[+] Полностью переписан WIrbis.searchfiled() теперь он использует стандартное API для запроса терминов и корректно отображает словарь Типа 1 (с раскодировкой через справочник)
[+] Новый action: WIrbis/Actions/Search/GetFasetsTable.inc -- строит таблицу фасетов и возвращает ее в HTML разметке, если фасетов не нашлось, ничего не возвращает
[+] Возможность авторизации перадав логин и пароль в URL в виде &I128FAuth=login&I128FAuthPass=password