From 3459f18c7244a7b44df3f4593021277819e083f2 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 18 Nov 2016 08:38:46 +0100 Subject: [PATCH 01/11] add check for cycles in workflow --- SeedDMS_Core/Core/inc.ClassWorkflow.php | 29 +++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/SeedDMS_Core/Core/inc.ClassWorkflow.php b/SeedDMS_Core/Core/inc.ClassWorkflow.php index 83d0dce94..ecdae267f 100644 --- a/SeedDMS_Core/Core/inc.ClassWorkflow.php +++ b/SeedDMS_Core/Core/inc.ClassWorkflow.php @@ -301,6 +301,35 @@ class SeedDMS_Core_Workflow { /* {{{ */ return true; } /* }}} */ + private function penetrate($laststates) { + $state = end($laststates); + $transitions = $this->getNextTransitions($state); + foreach($transitions as $transition) { + $nextstate = $transition->getNextState(); + /* Check if nextstate is already in list of previous states */ + foreach($laststates as $laststate) { + if($laststate->getID() == $nextstate->getID()) + return array_merge($laststates, array($nextstate)); + } + if($ret = $this->penetrate(array_merge($laststates, array($nextstate)))) + return $ret; + } + return false; + } + + /** + * Check if workflow contains cycles + * + * @return boolean true if workflow contains cycles, otherwise false + */ + function check() { /* {{{ */ + $db = $this->_dms->getDB(); + + $initstate = $this->getInitState(); + + return $this->penetrate(array($initstate)); + } /* }}} */ + /** * Remove the workflow and all its transitions * Do not remove actions and states of the workflow From b3657b039a8ec4518bb0fb8363187a657808e1e7 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 18 Nov 2016 08:40:49 +0100 Subject: [PATCH 02/11] rename check() to checkForCycles() --- SeedDMS_Core/Core/inc.ClassWorkflow.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SeedDMS_Core/Core/inc.ClassWorkflow.php b/SeedDMS_Core/Core/inc.ClassWorkflow.php index ecdae267f..f3c491c86 100644 --- a/SeedDMS_Core/Core/inc.ClassWorkflow.php +++ b/SeedDMS_Core/Core/inc.ClassWorkflow.php @@ -320,9 +320,9 @@ class SeedDMS_Core_Workflow { /* {{{ */ /** * Check if workflow contains cycles * - * @return boolean true if workflow contains cycles, otherwise false + * @return boolean list of states if workflow contains cycles, otherwise false */ - function check() { /* {{{ */ + function checkForCycles() { /* {{{ */ $db = $this->_dms->getDB(); $initstate = $this->getInitState(); From f339a772279c5880aa7c788b2d516892241da57d Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 18 Nov 2016 08:41:44 +0100 Subject: [PATCH 03/11] add note on new method SeedDMS_Core_Workflow::checkForCycles() --- SeedDMS_Core/package.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/SeedDMS_Core/package.xml b/SeedDMS_Core/package.xml index a116e5880..5577d388a 100644 --- a/SeedDMS_Core/package.xml +++ b/SeedDMS_Core/package.xml @@ -27,6 +27,7 @@ - new method SeedDMЅ_Core_WorkflowAction::getTransitions() - new method SeedDMЅ_Core_WorkflowState::getTransitions() - new method SeedDMЅ_Core_AttributeDefinition::parseValue() +- add check for cycles in workflow SeedDMS_Core_Workflow::checkForCycles() From 9f5aa9c8be4301c57a457ea03f0b6c34137db133 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 18 Nov 2016 08:42:56 +0100 Subject: [PATCH 04/11] add more documentation explain in comment why 'Done' is output when a workflow transition can be executed but the trigger is already there. --- views/bootstrap/class.ViewDocument.php | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/views/bootstrap/class.ViewDocument.php b/views/bootstrap/class.ViewDocument.php index d04e3b181..4deaa1297 100644 --- a/views/bootstrap/class.ViewDocument.php +++ b/views/bootstrap/class.ViewDocument.php @@ -837,7 +837,18 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style { foreach($transitions as $transition) { echo ""; if($latestContent->executeWorkflowTransitionIsAllowed($transition)) { - echo "Done"; + /* If this is reached, then the transition should have been executed + * but for some reason the next state hasn't been reached. This can + * be causes, if a transition which was previously already executed + * is about to be executed again. E.g. there was already a transition + * T1 from state S1 to S2 triggered by user U1. + * Then there was a second transition T2 from + * S2 back to S1. If the state S1 has been reached again, then + * executeWorkflowTransitionIsAllowed() will think that T1 could be + * executed because there is already a log entry saying, that U1 + * has triggered the workflow. + */ + echo "Done "; } $wkflogs = $latestContent->getWorkflowLog($transition); foreach($wkflogs as $wkflog) { From 6448935150248fc00a2e3279847597a956cf7904 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 18 Nov 2016 09:05:21 +0100 Subject: [PATCH 05/11] add check for cycles in workflow --- views/bootstrap/class.WorkflowMgr.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/views/bootstrap/class.WorkflowMgr.php b/views/bootstrap/class.WorkflowMgr.php index 6ad770a71..fe02ab698 100644 --- a/views/bootstrap/class.WorkflowMgr.php +++ b/views/bootstrap/class.WorkflowMgr.php @@ -87,6 +87,15 @@ $(document).ready(function() { $workflowstates = $this->params['allworkflowstates']; if($workflow) { + $path = $workflow->checkForCycles(); + if($path) { + $names = array(); + foreach($path as $state) { + $names[] = $state->getName(); + } + $this->errorMsg(getMLText('workflow_has_cycle').": ".implode(' ', $names)); + } + $transitions = $workflow->getTransitions(); $initstate = $workflow->getInitState(); $hasinitstate = true; From df937309ee14e0b76848acd9cb80b60b91f2cf8c Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 18 Nov 2016 09:23:51 +0100 Subject: [PATCH 06/11] add note for 4.3.31 --- CHANGELOG | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG b/CHANGELOG index 660ac3a7d..790d7407f 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -10,6 +10,7 @@ - add preview of pdf documents and conversion to pdf - replace some more php short tags - list of available languages can be set in configuration +- check for cycles in workflows and issue warning -------------------------------------------------------------------------------- Changes in version 4.3.30 From 9015c1ea083f44143c9036e9a15d67ccc0013f5b Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 18 Nov 2016 13:55:46 +0100 Subject: [PATCH 07/11] run $('.pwd').passwordStrenght() after loading html --- styles/bootstrap/application.js | 34 +++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/styles/bootstrap/application.js b/styles/bootstrap/application.js index 18032e324..1028c7202 100644 --- a/styles/bootstrap/application.js +++ b/styles/bootstrap/application.js @@ -351,7 +351,7 @@ $(document).ready( function() { } }); - $('div.ajax').each(function(index) { + $('div.ajax').each(function(index) { /* {{{ */ var element = $(this); var url = ''; var href = element.data('href'); @@ -381,9 +381,9 @@ $(document).ready( function() { } }); }); - }); + }); /* }}} */ - $('div.ajax').on('update', function(event, param1) { + $('div.ajax').on('update', function(event, param1) { /* {{{ */ var element = $(this); var url = ''; var href = element.data('href'); @@ -416,10 +416,24 @@ $(document).ready( function() { return $newstate; } }); + $(".pwd").passStrength({ /* {{{ */ + url: "../op/op.Ajax.php", + onChange: function(data, target) { + pwsp = 100*data.score; + $('#'+target+' div.bar').width(pwsp+'%'); + if(data.ok) { + $('#'+target+' div.bar').removeClass('bar-danger'); + $('#'+target+' div.bar').addClass('bar-success'); + } else { + $('#'+target+' div.bar').removeClass('bar-success'); + $('#'+target+' div.bar').addClass('bar-danger'); + } + } + }); /* }}} */ }); - }); + }); /* }}} */ - $("body").on("click", ".ajax-click", function() { + $("body").on("click", ".ajax-click", function() { /* {{{ */ var element = $(this); var url = element.data('href')+"?"+element.data('param1'); $.ajax({ @@ -452,11 +466,11 @@ $(document).ready( function() { } } }); - }); + }); /* }}} */ - $('button.history-back').on('click', function(event) { + $('button.history-back').on('click', function(event) { /* {{{ */ window.history.back(); - }); + }); /* }}} */ }); function onAddClipboard(ev) { /* {{{ */ @@ -654,7 +668,7 @@ function onAddClipboard(ev) { /* {{{ */ } }( window.SeedDMSUpload = window.SeedDMSUpload || {}, jQuery )); /* }}} */ -$(document).ready(function() { +$(document).ready(function() { /* {{{ */ var obj = $("#dragandrophandler"); obj.on('dragenter', function (e) { e.stopPropagation(); @@ -972,4 +986,4 @@ $(document).ready(function() { timeout: (typeof timeout == 'undefined' ? 1500 : timeout), }); }); -}); +}); /* }}} */ From a76207dcbdee03b1856481b0660d7809379bc6ca Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 18 Nov 2016 13:56:15 +0100 Subject: [PATCH 08/11] add closing option tag --- views/bootstrap/class.UsrMgr.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/views/bootstrap/class.UsrMgr.php b/views/bootstrap/class.UsrMgr.php index cbc4ff4b0..ed019f525 100644 --- a/views/bootstrap/class.UsrMgr.php +++ b/views/bootstrap/class.UsrMgr.php @@ -471,11 +471,11 @@ $(document).ready( function() {
From be160bdbeaa0450f977e7b833604d579ea44ac76 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 18 Nov 2016 13:58:31 +0100 Subject: [PATCH 09/11] add closing option tags --- views/bootstrap/class.GroupMgr.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/views/bootstrap/class.GroupMgr.php b/views/bootstrap/class.GroupMgr.php index b8014fdd3..ddb160658 100644 --- a/views/bootstrap/class.GroupMgr.php +++ b/views/bootstrap/class.GroupMgr.php @@ -232,11 +232,11 @@ $(document).ready( function() { @@ -283,11 +283,11 @@ $(document).ready( function() {
From 031839f5602c196cc43492601a7a686ccef5a94a Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 22 Nov 2016 09:23:35 +0100 Subject: [PATCH 10/11] lots of correction made by r3code --- languages/ru_RU/lang.inc | 190 +++++++++++++++++++-------------------- 1 file changed, 95 insertions(+), 95 deletions(-) diff --git a/languages/ru_RU/lang.inc b/languages/ru_RU/lang.inc index 2c36d6d76..4fbd5c782 100644 --- a/languages/ru_RU/lang.inc +++ b/languages/ru_RU/lang.inc @@ -19,15 +19,15 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (1547) +// Translators: Admin (1641) $text = array( -'2_factor_auth' => '', -'2_factor_auth_info' => '', -'2_fact_auth_secret' => '', +'2_factor_auth' => 'Двухфакторная аутентификация', +'2_factor_auth_info' => 'Использовать усиленную проверку подлинности', +'2_fact_auth_secret' => 'Кдюч двухфакторной аутентификации', 'accept' => 'Принять', -'access_control' => '', -'access_control_is_off' => '', +'access_control' => 'Контроль достпуа', +'access_control_is_off' => 'Контроль достпуа отключен', 'access_denied' => 'Доступ запрещён', 'access_inheritance' => 'Наследование доступа', 'access_mode' => 'Режим доступа', @@ -54,7 +54,7 @@ URL: [url]', 'action_revise' => 'Ревизировать', 'add' => 'Добавить', 'add_approval' => 'Утвердить', -'add_attrdefgroup' => '', +'add_attrdefgroup' => 'Группа атрибута', 'add_document' => 'Добавить документ', 'add_document_link' => 'Добавить ссылку', 'add_document_notify' => 'Добавить Уведомления', @@ -68,7 +68,7 @@ URL: [url]', 'add_receipt' => 'Подтвердить получение', 'add_review' => 'Рецензировать', 'add_revision' => 'Добавить утверждение', -'add_role' => '', +'add_role' => 'Добавить роль', 'add_subfolder' => 'Добавить подкаталог', 'add_to_clipboard' => 'Добавить в буфер', 'add_to_transmittal' => 'Добавить к передаче', @@ -131,11 +131,11 @@ URL: [url]', 'assign_reviewers' => 'Назначить рецензентов', 'assign_user_property_to' => 'Назначить свойства пользователя', 'assumed_released' => 'Утверждён', -'attrdefgroup_management' => '', +'attrdefgroup_management' => 'Управление группой определений', 'attrdefgrp_show_detail' => '', -'attrdefgrp_show_list' => '', -'attrdefgrp_show_search' => '', -'attrdefgrp_show_searchlist' => '', +'attrdefgrp_show_list' => 'Список определений', +'attrdefgrp_show_search' => 'Поиск определения', +'attrdefgrp_show_searchlist' => 'Найденные определения', 'attrdef_exists' => 'Определение атрибута уже существует', 'attrdef_info' => 'Информация', 'attrdef_in_use' => 'Определение этого атрибута используется', @@ -170,18 +170,18 @@ URL: [url]', 'attribute_changed_email_subject' => '[sitename]: изменён атрибут «[name]»', 'attribute_count' => 'Использован раз', 'attribute_value' => 'Значение атрибута', -'attribute_value_not_in_valueset' => '', -'attr_malformed_boolean' => '', -'attr_malformed_date' => '', +'attribute_value_not_in_valueset' => 'Значение атрибута вне допустимого диапазона', +'attr_malformed_boolean' => 'Неверное значение для булевого', +'attr_malformed_date' => 'Неверное значение для даты', 'attr_malformed_email' => 'Значение атрибута \'[value]\' атрибута \'[attrname]\' не является допустимым URL.', -'attr_malformed_float' => '', -'attr_malformed_int' => '', +'attr_malformed_float' => 'Неверное значение для дробного числа', +'attr_malformed_int' => 'Неверное значение для целого числа', 'attr_malformed_url' => 'Значение атрибута \'[value]\' атрибута \'[attrname]\' не является допустимым URL.', 'attr_max_values' => 'Максимальное количество требуемых значений для атрибутов [attrname] превышено.', 'attr_min_values' => 'Минимальное количество требуемых значений для атрибутов [attrname] не достигнуто.', -'attr_not_in_valueset' => '', +'attr_not_in_valueset' => 'Атрибут вне допусимого дипапазона значений', 'attr_no_regex_match' => 'Значение атрибута не соответствует регулярному выражению', -'attr_validation_error' => '', +'attr_validation_error' => 'Ошибка проверки атрибута', 'at_least_n_users_of_group' => '[number_of_users] польз. группы [group]', 'august' => 'Август', 'authentication' => 'Авторизация', @@ -221,7 +221,7 @@ URL: [url]', 'change_recipients' => 'Изменить список получателей', 'change_revisors' => 'Изменить переподчинение', 'change_status' => 'Изменить статус', -'charts' => 'Диаграммы', +'charts' => 'Графики и диаграммы', 'chart_docsaccumulated_title' => 'Количество документов', 'chart_docspercategory_title' => 'Документы по категориям', 'chart_docspermimetype_title' => 'Документы по mime типам', @@ -237,10 +237,10 @@ URL: [url]', 'checkout_document' => 'Загрузка', 'checkout_is_disabled' => 'Загрузка отключена.', 'choose_attrdef' => 'Выберите атрибут', -'choose_attrdefgroup' => '', +'choose_attrdefgroup' => 'Выберите группу атрибута', 'choose_category' => 'Выберите категорию', 'choose_group' => 'Выберите группу', -'choose_role' => '', +'choose_role' => 'Выберите роль', 'choose_target_category' => 'Выберите категорию', 'choose_target_document' => 'Выберите документ', 'choose_target_file' => 'Выберите файл', @@ -249,19 +249,19 @@ URL: [url]', 'choose_workflow' => 'Выберите процесс', 'choose_workflow_action' => 'Выберите действие процесса', 'choose_workflow_state' => 'Выберите статус процесса', -'class_name' => '', +'class_name' => 'Имя класса', 'clear_cache' => 'Очистить кэш', 'clear_clipboard' => 'Очистить буфер обмена', -'clear_password' => '', +'clear_password' => 'Сбросить пароль', 'clipboard' => 'Буфер обмена', 'close' => 'Закрыть', 'comment' => 'Комментарий', 'comment_changed_email' => 'Сообщение об изменении комментария', 'comment_for_current_version' => 'Комментарий версии', -'confirm_clear_cache' => '', +'confirm_clear_cache' => 'Подтвердить очистку кеша', 'confirm_create_fulltext_index' => 'Да, пересоздать полнотекстовый индекс!', -'confirm_move_document' => '', -'confirm_move_folder' => '', +'confirm_move_document' => 'Подтвердить перемещение документа', +'confirm_move_folder' => 'Подтвердить перемещение папки', 'confirm_pwd' => 'Подтвердите пароль', 'confirm_rm_backup' => 'Удалить файл «[arkname]»?
Действие необратимо', 'confirm_rm_document' => 'Удалить документ «[documentname]»?
Действие необратимо', @@ -272,7 +272,7 @@ URL: [url]', 'confirm_rm_folder_files' => 'Удалить в каталоге «[foldername]» все файлы и подкаталоги?
Действие необратимо', 'confirm_rm_group' => 'Удалить группу «[groupname]»?
Действие необратимо', 'confirm_rm_log' => 'Удалить журнал «[logname]»?
Действие необратимо', -'confirm_rm_transmittal' => '', +'confirm_rm_transmittal' => 'Подтвердить удаление', 'confirm_rm_transmittalitem' => 'Подтвердить удаление', 'confirm_rm_user' => 'Удалить пользователя «[username]»?
Действие необратимо', 'confirm_rm_version' => 'Удалить версию [version] документа «[documentname]»?
Действие необратимо', @@ -294,7 +294,7 @@ URL: [url]', 'databasesearch' => 'Поиск по БД', 'date' => 'Дата', 'days' => 'дни', -'debug' => '', +'debug' => 'Отладка', 'december' => 'Декабрь', 'default_access' => 'Доступ по умолчанию', 'default_keywords' => 'Доступные метки', @@ -380,7 +380,7 @@ URL: [url]', Комментарий версии: [version_comment] URL: [url]', 'document_updated_email_subject' => '[sitename]: обновлён документ «[name]»', -'does_not_expire' => 'Без срока', +'does_not_expire' => 'безсрочный', 'does_not_inherit_access_msg' => 'Наследовать уровень доступа', 'download' => 'Загрузить', 'do_object_repair' => 'Исправить все каталоги и документы', @@ -391,9 +391,9 @@ URL: [url]', 'draft_pending_approval' => 'Черновик — ожидает утверждения', 'draft_pending_review' => 'Черновик — ожидает рецензии', 'drag_icon_here' => 'Перетащите сюда значок каталога или документа.', -'dropfolderdir_missing' => '', +'dropfolderdir_missing' => 'Проходной каталог не существует', 'dropfolder_file' => 'Файл из проходного каталога', -'dropfolder_folder' => '', +'dropfolder_folder' => 'Путь к проходному каталогу', 'dropupload' => 'Быстрая загрузка', 'drop_files_here' => 'Переместите файлы сюда', 'dump_creation' => 'Создать дамп БД', @@ -405,56 +405,56 @@ URL: [url]', 'edit_attributes' => 'Изменить атрибуты', 'edit_comment' => 'Изменить комментарий', 'edit_default_keywords' => 'Изменить метки', -'edit_document_access' => 'Изменить доступ', +'edit_document_access' => 'Доступ', 'edit_document_notify' => 'Список уведомления документа', 'edit_document_props' => 'Изменить документ', 'edit_event' => 'Изменить событие', 'edit_existing_access' => 'Изменить доступ', -'edit_existing_attribute_groups' => '', -'edit_existing_notify' => 'Изменить уведомления', +'edit_existing_attribute_groups' => 'Изменить группы атрибутов', +'edit_existing_notify' => 'Настроить уведомления', 'edit_folder_access' => 'Изменить доступ', -'edit_folder_attrdefgrp' => '', +'edit_folder_attrdefgrp' => 'Изменить группу атрибутов каталога', 'edit_folder_notify' => 'Список уведомления каталога', -'edit_folder_props' => 'Изменить каталог', +'edit_folder_props' => 'Изменить свойства', 'edit_group' => 'Изменить группу', 'edit_online' => '', 'edit_transmittal_props' => 'Редактировать группы получателей', 'edit_user' => 'Редактировать пользователя', 'edit_user_details' => 'Изменить данные пользователя', -'edit_version' => '', +'edit_version' => 'Изменить версию', 'el_GR' => 'греческий', 'email' => 'E-mail', 'email_error_title' => 'Не указан e-mail', 'email_footer' => 'Вы можете изменить e-mail используя меню «Моя учётка».', 'email_header' => 'Это автоматическое уведомление сервера документооборота.', 'email_not_given' => 'Введите настоящий адрес e-mail.', -'empty_attribute_group_list' => '', +'empty_attribute_group_list' => 'Пустой список группы атрибутов', 'empty_folder_list' => 'Нет документов или каталогов', 'empty_notify_list' => 'Нет записей', 'en_GB' => 'English (GB)', 'equal_transition_states' => 'Одинаковые начальный и конечный статусы', 'error' => 'Ошибка', 'error_add_aro' => '', -'error_add_permission' => '', -'error_clearcache' => '', -'error_importfs' => '', +'error_add_permission' => 'Ошибка добавления разрешения', +'error_clearcache' => 'Ошибка очиски кеша', +'error_importfs' => 'Ошибка импорта из файловой системы', 'error_no_document_selected' => 'Нет выбранных документов', 'error_no_folder_selected' => 'Нет выбранных каталогов', 'error_occured' => 'Произошла ошибка', -'error_remove_permission' => '', -'error_toogle_permission' => '', +'error_remove_permission' => 'Ошибка снятия разрешения', +'error_toogle_permission' => 'Ошибка смены разрешения', 'es_ES' => 'Spanish', 'event_details' => 'Информация о событии', -'exclude_items' => 'Исключенные элементы', -'expired' => 'Срок исполнения окончился', -'expires' => 'Срок исполнения оканчивается', -'expiry_changed_email' => 'Срок исполнения изменен', -'expiry_changed_email_body' => 'Срок исполнения изменен +'exclude_items' => 'Не показывать события:', +'expired' => 'Срок действия вышел', +'expires' => 'Срок действия', +'expiry_changed_email' => 'Срок действия изменен', +'expiry_changed_email_body' => 'Срок действия изменен Документ: [name] Родительский каталог: [folder_path] Пользователь: [username] URL: [url]', -'expiry_changed_email_subject' => '[sitename]: изменен срок исполнения для «[name]»', +'expiry_changed_email_subject' => '[sitename]: изменен срок действия для «[name]»', 'export' => 'Экспорт', 'extension_manager' => 'Управление расширениями', 'february' => 'Февраль', @@ -511,7 +511,7 @@ URL: [url]', 'fullsearch' => 'Полнотекстовый поиск', 'fullsearch_hint' => 'Использовать полнотекстовый индекс', 'fulltext_info' => 'Информация о полнотекстовом индексе', -'global_attributedefinitiongroups' => '', +'global_attributedefinitiongroups' => 'Глобальные группы атрибутов', 'global_attributedefinitions' => 'Атрибуты', 'global_default_keywords' => 'Глобальные метки', 'global_document_categories' => 'Категории', @@ -531,7 +531,7 @@ URL: [url]', 'guest_login_disabled' => 'Гостевой вход отключён', 'help' => 'Помощь', 'home_folder' => 'Домашний каталог', -'hook_name' => '', +'hook_name' => 'Имя хука', 'hourly' => 'Ежечасно', 'hours' => 'часы', 'hr_HR' => 'Хорватский', @@ -539,15 +539,15 @@ URL: [url]', 'hu_HU' => 'Hungarian', 'id' => 'Идентификатор', 'identical_version' => 'Новая версия идентична текущей.', -'import' => '', -'importfs' => '', -'import_fs' => 'импорт из файловой системы', -'import_fs_warning' => '', +'import' => 'Импорт', +'importfs' => 'Импорт из файлов', +'import_fs' => 'Импорт из файловой системы', +'import_fs_warning' => 'Предупреждение импорта из ФС', 'include_content' => 'Включая содержимое', 'include_documents' => 'Включая документы', 'include_subdirectories' => 'Включая подкаталоги', 'index_converters' => 'Индексирование документов', -'index_folder' => 'Каталог индекса', +'index_folder' => 'Полнотекстовый индекс', 'individuals' => 'Пользователи', 'indivіduals_in_groups' => 'Пользователи группы', 'inherited' => 'унаследованный', @@ -562,9 +562,9 @@ URL: [url]', 'invalid_create_date_end' => 'Неверная конечная дата диапазона даты создания', 'invalid_create_date_start' => 'Неверная начальная дата диапазона даты создания', 'invalid_doc_id' => 'Неверный идентификатор документа', -'invalid_dropfolder_folder' => '', -'invalid_expiration_date_end' => 'Неверная конечная дата для диапазона срока исполнения.', -'invalid_expiration_date_start' => 'Неверная начальная дата для диапазона срока исполнения.', +'invalid_dropfolder_folder' => 'Неверный путь для проходного каталога', +'invalid_expiration_date_end' => 'Неверная конечная дата для диапазона срока действия.', +'invalid_expiration_date_start' => 'Неверная начальная дата для диапазона срока действия.', 'invalid_file_id' => 'Неверный идентификатор файла', 'invalid_folder_id' => 'Неверный идентификатор каталога', 'invalid_group_id' => 'Неверный идентификатор группы', @@ -583,9 +583,9 @@ URL: [url]', 'is_hidden' => 'Не показывать в
списке пользователей', 'it_IT' => 'Italian', 'january' => 'Январь', -'js_form_error' => '', -'js_form_errors' => '', -'js_invalid_email' => '', +'js_form_error' => 'Ошибка формы', +'js_form_errors' => 'Ошибки формы', +'js_invalid_email' => 'Неверный e-mail', 'js_no_approval_group' => 'Выберите утверждающую группу', 'js_no_approval_status' => 'Выберите статус утверждения', 'js_no_comment' => 'Нет комментария', @@ -602,7 +602,7 @@ URL: [url]', 'js_pwd_not_conf' => 'Пароль и его подтверждение не совпадают', 'js_select_user' => 'Выберите пользователя', 'js_select_user_or_group' => 'Выберите пользователя или группу', -'js_unequal_passwords' => '', +'js_unequal_passwords' => 'Пароли не совпадают', 'july' => 'Июль', 'june' => 'Июнь', 'keep' => 'Не изменять', @@ -620,7 +620,7 @@ URL: [url]', 'linked_files' => 'Приложения', 'link_alt_updatedocument' => 'Для загрузки файлов, превышающих ограничение размера, используйте другой способ.', 'list_contains_no_access_docs' => '', -'list_hooks' => '', +'list_hooks' => 'Список хуков', 'local_file' => 'Локальный файл', 'locked_by' => 'Заблокирован', 'lock_document' => 'Заблокировать', @@ -670,7 +670,7 @@ URL: [url]', 'my_transmittals' => 'Мои пересылки', 'name' => 'Имя', 'needs_workflow_action' => 'Этот документ требует вашего внимания. См. вкладку «Процесс».', -'network_drive' => '', +'network_drive' => 'Сетевой диск', 'never' => 'никогда', 'new' => 'Новый', 'new_attrdef' => 'Добавить определение атрибута', @@ -730,7 +730,7 @@ URL: [url]', 'no_default_keywords' => 'Нет меток', 'no_docs_checked_out' => 'Нет документов на рассмотрении', 'no_docs_locked' => 'Нет заблокированных документов', -'no_docs_rejected' => '', +'no_docs_rejected' => 'Нет отклоненных докуметов', 'no_docs_to_approve' => 'Нет документов, нуждающихся в утверждении', 'no_docs_to_look_at' => 'Нет документов, нуждающихся во внимании', 'no_docs_to_receipt' => 'Нет документов, нуждающихся в подтверждении', @@ -751,7 +751,7 @@ URL: [url]', 'no_version_check' => 'Проверка на наличие новой версии SeedDMS не удалось! Это может быть вызвано allow_url_fopen установленным в 0 в конфигурации PHP.', 'no_version_modification' => 'Отсутствует модификация версии', 'no_workflow_available' => 'Отсутствует процесс', -'objectcheck' => 'Проверка каталога или документа', +'objectcheck' => 'Проверка целостности', 'obsolete' => 'Устарел', 'october' => 'Октябрь', 'old' => 'Старый', @@ -827,7 +827,7 @@ URL: [url]', 'reception_noaction' => '', 'reception_rejected' => '', 'recipients' => 'Получатели', -'redraw' => '', +'redraw' => 'Обновить картинку', 'refresh' => 'Обновить', 'rejected' => 'Отклонён', 'released' => 'Утверждён', @@ -862,7 +862,7 @@ URL: [url]', URL: [url]', 'request_workflow_action_email_subject' => '[sitename]: [name] - Требуется действие по процессу', 'reset_checkout' => 'Завершить проверку', -'restrict_access' => '', +'restrict_access' => 'Ограничить доступ', 'results_page' => 'Страница результатов', 'return_from_subworkflow' => 'Выход из подпроцесса', 'return_from_subworkflow_email_body' => 'Выход из подпроцесса @@ -921,7 +921,7 @@ URL: [url]', Пользователь: [username] URL: [url]', 'revision_request_email_subject' => '[sitename]: [name] - Запрос на ревизию', -'revision_status' => '', +'revision_status' => 'Состояние ревизии', 'revisors' => 'Ревизор', 'revisor_already_assigned' => 'Пользователь уже назначен как ревизор', 'revisor_already_removed' => 'Ревизор уже удален из процесса ревизии, либо уже рассмотрел документ', @@ -944,7 +944,7 @@ URL: [url]', 'rm_folder' => 'Удалить каталог', 'rm_from_clipboard' => 'Удалить из буфера обмена', 'rm_group' => 'Удалить группу', -'rm_role' => '', +'rm_role' => 'Удалить роль', 'rm_transmittal' => 'Удалить передачу', 'rm_transmittalitem' => 'Удалить документ', 'rm_user' => 'Удалить пользователя', @@ -956,10 +956,10 @@ URL: [url]', 'role' => 'Роль', 'role_admin' => 'Администратор', 'role_guest' => 'Гость', -'role_info' => '', -'role_management' => '', -'role_name' => '', -'role_type' => '', +'role_info' => 'Информация о роли', +'role_management' => 'Управление ролью', +'role_name' => 'Имя роли', +'role_type' => 'Тип рольи', 'role_user' => 'Пользователь', 'ro_RO' => 'Румынский', 'run_subworkflow' => 'Запустить подпроцесс', @@ -1051,8 +1051,8 @@ URL: [url]', 'settings_contentDir_desc' => 'Куда сохраняются загруженные файлы (лучше выбрать каталог недоступный веб-серверу).', 'settings_contentOffsetDir' => 'Базовый начальный каталог', 'settings_contentOffsetDir_desc' => 'Во избежание проблем с файловой системой была введена новая структура каталогов в каталоге содержимого. Необходим базовый начальный каталог. Впрочем, оставьте тут все как есть, 1048576, но может быть любым числом или строкой, не существующей уже в каталоге содержимого.', -'settings_convertToPdf' => '', -'settings_convertToPdf_desc' => '', +'settings_convertToPdf' => 'Предпросмотр в PDF', +'settings_convertToPdf_desc' => 'Преобразоваывать документы в PDF для предпросмотра', 'settings_cookieLifetime' => 'Время жизни куки', 'settings_cookieLifetime_desc' => 'Время жизни куки в секундах. Если установлено 0, то куки будут удалены при закрытии браузера.', 'settings_coreDir' => 'Каталог Core SeedDMS', @@ -1086,8 +1086,8 @@ URL: [url]', 'settings_dropFolderDir' => 'Размещение проходного каталога', 'settings_dropFolderDir_desc' => 'Этот каталог используется для размещения файлов на сервере и их импорта вместо загрузки через браузер. Каталог должен содержать подкаталог для каждого пользователя, которому разрешён импорт файлов таким способом.', 'settings_Edition' => 'Настройки версий', -'settings_editOnlineFileTypes' => '', -'settings_editOnlineFileTypes_desc' => '', +'settings_editOnlineFileTypes' => 'Редактировать онлайн', +'settings_editOnlineFileTypes_desc' => 'Типы файлов перечисленные через точку-запятую, например, ".txt;.html" (ИСПОЛЬЗОВАТЬ ТОЛЬКО нижний РЕГИСТР)', 'settings_enable2FactorAuthentication' => '', 'settings_enable2FactorAuthentication_desc' => '', 'settings_enableAcknowledgeWorkflow' => 'Включить подтверждение получения документа', @@ -1207,8 +1207,8 @@ URL: [url]', 'settings_maxExecutionTime_desc' => 'Устанавливает максимальное время выполнения скрипта, перед тем как он будет завершён.', 'settings_maxRecursiveCount' => 'Ограничение рекурсивного подсчёта
документов и каталогов', 'settings_maxRecursiveCount_desc' => 'Максимальное количество документов или каталогов, которые будут проверены на права доступа при рекурсивном подсчёте объектов. При превышении этого количества, будет оценено количество документов и каталогов в виде каталога.', -'settings_maxSizeForFullText' => '', -'settings_maxSizeForFullText_desc' => '', +'settings_maxSizeForFullText' => 'Макс. размер документа для индексирования на лету', +'settings_maxSizeForFullText_desc' => 'Размер документа, который может быть индексирован срузу после добавления', 'settings_more_settings' => 'Прочие настройки. Логин по умолчанию: admin/admin', 'settings_notfound' => 'Не найден', 'settings_Notification' => 'Настройки извещения', @@ -1235,9 +1235,9 @@ URL: [url]', 'settings_php_gd2' => 'PHP extension : php_gd2', 'settings_php_mbstring' => 'PHP extension : php_mbstring', 'settings_php_version' => 'Версия PHP', -'settings_presetExpirationDate' => 'Срок исполнения документа по умолчанию', -'settings_presetExpirationDate_desc' => 'Все новые загружаемые документы имеют срок исполнения, установленный по этому шаблону. Дата может быть указана в понятном для функции PHP strtotime() виде, например +5 weeks.', -'settings_previewWidthDetail' => 'Ширина картинок предварительного просмотра (детально)', +'settings_presetExpirationDate' => 'Срок действия документа по умолчанию', +'settings_presetExpirationDate_desc' => 'Все новые загружаемые документы имеют срок действия, установленный по этому шаблону. Дата может быть указана в понятном для функции PHP strtotime() виде, например +5 weeks.', +'settings_previewWidthDetail' => 'Ширина изображения предварительного просмотра (детально)', 'settings_previewWidthDetail_desc' => 'Ширина изображения для предварительного просмотра на странице информации', 'settings_previewWidthList' => 'Ширина изображения для предварительного просмотра (список)', 'settings_previewWidthList_desc' => 'Ширина картинок предварительного просмотра показана в списках', @@ -1245,8 +1245,8 @@ URL: [url]', 'settings_printDisclaimer_desc' => 'Если включено, то предупреждение из lang.inc будет выводится внизу каждой страницы.', 'settings_quota' => 'Квота пользователя', 'settings_quota_desc' => 'Максимально количество байт, которые пользователь может использовать на дисковом пространстве. Значение 0 снимает ограничение на используемое дисковое пространство. Это значение может быть указано отдельно для каждого пользователя в его профиле.', -'settings_removeFromDropFolder' => '', -'settings_removeFromDropFolder_desc' => '', +'settings_removeFromDropFolder' => 'Удалить из проходного каталога', +'settings_removeFromDropFolder_desc' => 'Включите, для удаления файла из проходного каталога после успешной загрузки.', 'settings_restricted' => 'Ограниченный доступ', 'settings_restricted_desc' => 'Разрешать вход пользователям, только если у них есть соответствующая учётная запись в БД (независимо от успешного входа через LDAP).', 'settings_rootDir' => 'Корневой каталог', @@ -1255,12 +1255,12 @@ URL: [url]', 'settings_rootFolderID_desc' => 'ID каждого корневого каталога (можно не менять).', 'settings_SaveError' => 'Ошибка при сохранении конфигурации', 'settings_Server' => 'Настройки сервера', -'settings_showFullPreview' => '', -'settings_showFullPreview_desc' => '', +'settings_showFullPreview' => 'Отбражать предпросмотр документа', +'settings_showFullPreview_desc' => 'Вкл./выкл. предпросмотр документов для поддерживаемых браузером форматов на странице подробностей', 'settings_showMissingTranslations' => 'Фразы которые нужно перевести', 'settings_showMissingTranslations_desc' => 'Отображать внизу страницы фразы, которые нуждаются в переводе', -'settings_showSingleSearchHit' => '', -'settings_showSingleSearchHit_desc' => '', +'settings_showSingleSearchHit' => 'Переходить сразу к документу', +'settings_showSingleSearchHit_desc' => 'Если результат поиска содержит только один результат, показать сразу документ вместо списка результатов поиска', 'settings_Site' => 'Сайт', 'settings_siteDefaultPage' => 'Страница по умолчанию', 'settings_siteDefaultPage_desc' => 'Страница, отображаемая после входа. По умолчанию: out/out.ViewFolder.php', @@ -1316,7 +1316,7 @@ URL: [url]', 'settings_workflowMode_valtraditional' => 'традиционный', 'settings_workflowMode_valtraditional_only_approval' => 'традиционный (без рецензирования)', 'settings_zendframework' => 'Инфраструктура Zend', -'set_expiry' => 'Установить истечение', +'set_expiry' => 'Срок действия', 'set_owner' => 'Установить владельца', 'set_owner_error' => 'Ошибка при установке владельца', 'set_password' => 'Установить пароль', @@ -1421,8 +1421,8 @@ URL: [url]', 'theme' => 'Тема', 'thursday' => 'Четверг', 'thursday_abbr' => 'Чт', -'timeline' => 'Период', -'timeline_add_file' => 'Новое Вложение', +'timeline' => 'Хронология событий', +'timeline_add_file' => 'Новое вложение', 'timeline_add_version' => 'Новая версия [version]', 'timeline_full_add_file' => '[document]
Новое вложение', 'timeline_full_add_version' => '[document]
Новая версия [version]', @@ -1430,7 +1430,7 @@ URL: [url]', 'timeline_selected_item' => 'Выбранный документ', 'timeline_skip_add_file' => 'вложение добавлено', 'timeline_skip_status_change_-1' => 'отклонён', -'timeline_skip_status_change_-3' => 'срок исполнения вышел', +'timeline_skip_status_change_-3' => 'срок действия вышел', 'timeline_skip_status_change_0' => 'ожидает рецензии', 'timeline_skip_status_change_1' => 'ожидает подтверждения', 'timeline_skip_status_change_2' => 'утверждён', From 2a2264186e16b1d720871e02a697b350dc7d084b Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 22 Nov 2016 09:23:55 +0100 Subject: [PATCH 11/11] add entry for 4.3.31 --- CHANGELOG | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG b/CHANGELOG index 790d7407f..6813691a1 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -11,6 +11,7 @@ - replace some more php short tags - list of available languages can be set in configuration - check for cycles in workflows and issue warning +- major update of russian language (Thanks to r3code) -------------------------------------------------------------------------------- Changes in version 4.3.30