From fd4131497b77a8ef274a93e951e66a187823b5f9 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 20 Aug 2021 09:42:27 +0200 Subject: [PATCH 001/413] escape special chars in missing translation form --- views/bootstrap/class.Bootstrap.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/bootstrap/class.Bootstrap.php b/views/bootstrap/class.Bootstrap.php index 849faef0a..f5cc53db3 100644 --- a/views/bootstrap/class.Bootstrap.php +++ b/views/bootstrap/class.Bootstrap.php @@ -245,7 +245,7 @@ background-image: linear-gradient(to bottom, #882222, #111111);; echo ""; echo "\n"; foreach($MISSING_LANG as $key=>$lang) { - echo ""; + echo ""; } echo "
Keyengl. TextYour translation
".$key."".(isset($LANG['en_GB'][$key]) ? $LANG['en_GB'][$key] : '')."
".htmlspecialchars($key)."".(isset($LANG['en_GB'][$key]) ? $LANG['en_GB'][$key] : '')."
"; echo "
There are missing translations on this page!
Please check the bottom of the page.
\n"; From 588369b64d22480a5d99ccada16b8d2e5ee00154 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 20 Aug 2021 09:43:09 +0200 Subject: [PATCH 002/413] fix table class --- views/bootstrap/class.Bootstrap.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/bootstrap/class.Bootstrap.php b/views/bootstrap/class.Bootstrap.php index f5cc53db3..d79de307b 100644 --- a/views/bootstrap/class.Bootstrap.php +++ b/views/bootstrap/class.Bootstrap.php @@ -3340,7 +3340,7 @@ $(document).ready(function() { $accessop = $this->params['accessobject']; ?> - +
Date: Fri, 20 Aug 2021 09:44:02 +0200 Subject: [PATCH 003/413] show translated action name in workflow log --- views/bootstrap/class.ViewDocument.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/views/bootstrap/class.ViewDocument.php b/views/bootstrap/class.ViewDocument.php index bae1729f9..36f160e0d 100644 --- a/views/bootstrap/class.ViewDocument.php +++ b/views/bootstrap/class.ViewDocument.php @@ -940,7 +940,7 @@ $(document).ready( function() { $wkflogs = $latestContent->getWorkflowLog(); if($wkflogs) { - $this->contentHeading(getMLText("workflow_summary")); + $this->contentHeading(getMLText("workflow_log")); $this->contentContainerStart(); echo "
,
"; echo "\n"; @@ -948,7 +948,7 @@ $(document).ready( function() { foreach($wkflogs as $wkflog) { echo ""; echo ""; - echo ""; + echo ""; $loguser = $wkflog->getUser(); echo ""; echo ""; From ee654df47536d8aa5dd91df7199dedba658b6044 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 20 Aug 2021 09:44:30 +0200 Subject: [PATCH 004/413] fix css to mostly prevent scroll bars --- views/bootstrap/class.WorkflowGraph.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/views/bootstrap/class.WorkflowGraph.php b/views/bootstrap/class.WorkflowGraph.php index 7e6f761e5..ba579020e 100644 --- a/views/bootstrap/class.WorkflowGraph.php +++ b/views/bootstrap/class.WorkflowGraph.php @@ -324,15 +324,15 @@ div.buttons button {margin: 3px; _float: right;} div.buttons #zoom {margin: 3px; _float: right;} #legend {display: inline-block; margin-left: 10px;} #preview {height: 122px; background: #f5f5f5; border-top: 1px solid #e3e3e3;} -#preview img {float: left;border: 1px solid #bbb; background: #fff; min-height: 115px; height: 115px; _width: 100px; padding: 3px; margin: 3px;} +#preview img {float: left;border: 1px solid #bbb; background: #fff; min-height: 18vh; height: 18vh; _width: 100px; padding: 3px; margin: 3px;} ', 'css'); $this->htmlStartPage(getMLText("admin_tools")); // $this->contentContainerStart(); ?> -
-
+
+

From f18ab76b63605523edffea621b5e0a0609030808 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 20 Aug 2021 09:45:35 +0200 Subject: [PATCH 005/413] escape special chars in translation form --- views/bootstrap4/class.Bootstrap4.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/bootstrap4/class.Bootstrap4.php b/views/bootstrap4/class.Bootstrap4.php index 2104311d2..55d5ab6fc 100644 --- a/views/bootstrap4/class.Bootstrap4.php +++ b/views/bootstrap4/class.Bootstrap4.php @@ -245,7 +245,7 @@ background-image: linear-gradient(to bottom, #882222, #111111);; echo "
".getMLText('date')."".getMLText('action')."".getMLText('user')."".getMLText('comment')."
".$wkflog->getDate()."".htmlspecialchars($wkflog->getTransition()->getAction()->getName())."".htmlspecialchars(getMLText('action_'.strtolower($wkflog->getTransition()->getAction()->getName()), array(), $wkflog->getTransition()->getAction()->getName()))."".htmlspecialchars($loguser->getFullName())."".htmlspecialchars($wkflog->getComment())."
"; echo "\n"; foreach($MISSING_LANG as $key=>$lang) { - echo ""; + echo ""; } echo "
Keyengl. TextYour translation
".$key."".(isset($LANG['en_GB'][$key]) ? $LANG['en_GB'][$key] : '')."
".htmlspecialchars($key)."".(isset($LANG['en_GB'][$key]) ? $LANG['en_GB'][$key] : '')."
"; echo "
There are missing translations on this page!
Please check the bottom of the page.
\n"; From 3a26fc3e2a6d84ed6e1fcd0dfe2c6678e6dcaaa8 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 20 Aug 2021 09:45:58 +0200 Subject: [PATCH 006/413] use a unified layout --- .../class.RemoveWorkflowFromDocument.php | 32 ++++++++++--------- views/bootstrap/class.RewindWorkflow.php | 23 +++++++------ views/bootstrap/class.RunSubWorkflow.php | 30 ++++++++--------- views/bootstrap/class.TriggerWorkflow.php | 29 +++++++++-------- 4 files changed, 60 insertions(+), 54 deletions(-) diff --git a/views/bootstrap/class.RemoveWorkflowFromDocument.php b/views/bootstrap/class.RemoveWorkflowFromDocument.php index 98fa89fac..c53617df5 100644 --- a/views/bootstrap/class.RemoveWorkflowFromDocument.php +++ b/views/bootstrap/class.RemoveWorkflowFromDocument.php @@ -58,21 +58,23 @@ class SeedDMS_View_RemoveWorkflowFromDocument extends SeedDMS_Theme_Style { $enterts = makeTsFromLongDate($enterdate); } } - $msg .= "The state was entered at ".$enterdate." which was "; - $msg .= getReadableDuration((time()-$enterts))." ago.
"; + if(!empty($enterdate)) { + $msg .= "The state was entered at ".$enterdate." which was "; + $msg .= getReadableDuration((time()-$enterts))." ago.
"; + } } $msg .= "The document may stay in this state for ".$currentstate->getMaxTime()." sec."; } else { $msg = getMLText('workflow_in_unknown_state'); } - $this->infoMsg($msg); - - $this->contentContainerStart(); + //$this->contentContainerStart(); // Display the Workflow form. $this->rowStart(); $this->columnStart(4); + $this->infoMsg($msg); + + $this->warningMsg(getMLText('rm_workflow_warning')); ?> -

@@ -88,24 +90,24 @@ class SeedDMS_View_RemoveWorkflowFromDocument extends SeedDMS_Theme_Style { columnEnd(); - $this->contentContainerEnd(); + $this->rowEnd(); + //$this->contentContainerEnd(); if($wkflog) { - $this->contentContainerStart(); - echo ""; + $this->contentHeading(getMLText("workflow_log")); + echo "
"; echo ""; foreach($wkflog as $entry) { echo ""; - echo ""; - echo ""; - echo ""; + echo ""; + echo ""; + echo ""; echo ""; - echo ""; - echo ""; + echo ""; + echo ""; echo ""; } echo "
".getMLText('action')."Start stateEnd state".getMLText('date')."".getMLText('user')."".getMLText('comment')."
".getMLText('action_'.$entry->getTransition()->getAction()->getName())."".$entry->getTransition()->getState()->getName()."".$entry->getTransition()->getNextState()->getName()."".htmlspecialchars(getMLText('action_'.$entry->getTransition()->getAction()->getName()))."".htmlspecialchars($entry->getTransition()->getState()->getName())."".htmlspecialchars($entry->getTransition()->getNextState()->getName())."".$entry->getDate()."".$entry->getUser()->getFullname()."".$entry->getComment()."".htmlspecialchars($entry->getUser()->getFullname())."".htmlspecialchars($entry->getComment())."
\n"; - $this->contentContainerEnd(); } $this->rowEnd(); diff --git a/views/bootstrap/class.RewindWorkflow.php b/views/bootstrap/class.RewindWorkflow.php index 09b142c69..5315b75ac 100644 --- a/views/bootstrap/class.RewindWorkflow.php +++ b/views/bootstrap/class.RewindWorkflow.php @@ -58,20 +58,22 @@ class SeedDMS_View_RewindWorkflow extends SeedDMS_Theme_Style { $enterts = makeTsFromLongDate($enterdate); } } - $msg .= "The state was entered at ".$enterdate." which was "; - $msg .= getReadableDuration((time()-$enterts))." ago.
"; + if(!empty($enterdate)) { + $msg .= "The state was entered at ".$enterdate." which was "; + $msg .= getReadableDuration((time()-$enterts))." ago.
"; + } } $msg .= "The document may stay in this state for ".$currentstate->getMaxTime()." sec."; } else { $msg = getMLText('workflow_in_unknown_state'); } - $this->infoMsg($msg); // Display the Workflow form. $this->rowStart(); $this->columnStart(4); + $this->infoMsg($msg); + $this->warningMsg(getMLText("rewind_workflow_warning")); ?> - warningMsg(getMLText("rewind_workflow_warning")); ?> @@ -83,23 +85,24 @@ class SeedDMS_View_RewindWorkflow extends SeedDMS_Theme_Style { $this->columnStart(8); ?>
- +
columnEnd(); $this->rowEnd(); if($wkflog) { + $this->contentHeading(getMLText("workflow_log")); echo ""; echo ""; foreach($wkflog as $entry) { echo ""; - echo ""; - echo ""; - echo ""; + echo ""; + echo ""; + echo ""; echo ""; - echo ""; - echo ""; + echo ""; + echo ""; echo ""; } echo "
".getMLText('action')."Start stateEnd state".getMLText('date')."".getMLText('user')."".getMLText('comment')."
".getMLText('action_'.$entry->getTransition()->getAction()->getName())."".$entry->getTransition()->getState()->getName()."".$entry->getTransition()->getNextState()->getName()."".htmlspecialchars(getMLText('action_'.$entry->getTransition()->getAction()->getName()))."".htmlspecialchars($entry->getTransition()->getState()->getName())."".htmlspecialchars($entry->getTransition()->getNextState()->getName())."".$entry->getDate()."".$entry->getUser()->getFullname()."".$entry->getComment()."".htmlspecialchars($entry->getUser()->getFullname())."".htmlspecialchars($entry->getComment())."
\n"; diff --git a/views/bootstrap/class.RunSubWorkflow.php b/views/bootstrap/class.RunSubWorkflow.php index ddafc8043..c6d90a0f0 100644 --- a/views/bootstrap/class.RunSubWorkflow.php +++ b/views/bootstrap/class.RunSubWorkflow.php @@ -62,46 +62,46 @@ class SeedDMS_View_RunSubWorkflow extends SeedDMS_Theme_Style { $msg .= getReadableDuration((time()-$enterts))." ago.
"; } $msg .= "The document may stay in this state for ".$currentstate->getMaxTime()." sec."; - $this->infoMsg($msg); - $this->contentContainerStart(); + //$this->contentContainerStart(); // Display the Workflow form. $this->rowStart(); $this->columnStart(4); + $this->infoMsg($msg); ?> - - -
- -
+formSubmit(getMLText("run_subworkflow")); +?>
columnEnd(); - $this->columnStart(4); + $this->columnStart(8); ?>
- +
columnEnd(); $this->rowEnd(); - $this->contentContainerEnd(); + //$this->contentContainerEnd(); if($wkflog) { + $this->contentHeading(getMLText("workflow_log")); echo ""; echo ""; foreach($wkflog as $entry) { echo ""; - echo ""; - echo ""; - echo ""; + echo ""; + echo ""; + echo ""; echo ""; - echo ""; - echo ""; + echo ""; + echo ""; echo ""; } echo "
".getMLText('action')."Start stateEnd state".getMLText('date')."".getMLText('user')."".getMLText('comment')."
".getMLText('action_'.$entry->getTransition()->getAction()->getName())."".$entry->getTransition()->getState()->getName()."".$entry->getTransition()->getNextState()->getName()."".htmlspecialchars(getMLText('action_'.strtolower($entry->getTransition()->getAction()->getName()), array(), $entry->getTransition()->getAction()->getName()))."".htmlspecialchars($entry->getTransition()->getState()->getName())."".htmlspecialchars($entry->getTransition()->getNextState()->getName())."".$entry->getDate()."".$entry->getUser()->getFullname()."".$entry->getComment()."".htmlspecialchars($entry->getUser()->getFullname())."".htmlspecialchars($entry->getComment())."
\n"; diff --git a/views/bootstrap/class.TriggerWorkflow.php b/views/bootstrap/class.TriggerWorkflow.php index d5ccc83f1..36c6a04a2 100644 --- a/views/bootstrap/class.TriggerWorkflow.php +++ b/views/bootstrap/class.TriggerWorkflow.php @@ -90,16 +90,18 @@ $(document).ready(function() { $enterts = makeTsFromLongDate($enterdate); } } - $msg .= "The state was entered at ".$enterdate." which was "; - $msg .= getReadableDuration((time()-$enterts))." ago.
"; + if(!empty($enterdate)) { + $msg .= "The state was entered at ".$enterdate." which was "; + $msg .= getReadableDuration((time()-$enterts))." ago.
"; + } } $msg .= "The document may stay in this state for ".$currentstate->getMaxTime()." sec."; - $this->infoMsg($msg); - $this->contentContainerStart(); + //$this->contentContainerStart(); // Display the Workflow form. $this->rowStart(); $this->columnStart(4); + $this->infoMsg($msg); ?>
@@ -123,29 +125,28 @@ $(document).ready(function() { $this->columnStart(8); ?>
- +
columnEnd(); $this->rowEnd(); - $this->contentContainerEnd(); + //$this->contentContainerEnd(); if($wkflog) { - $this->contentContainerStart(); - echo ""; + $this->contentHeading(getMLText("workflow_log")); + echo "
"; echo ""; foreach($wkflog as $entry) { echo ""; - echo ""; - echo ""; - echo ""; + echo ""; + echo ""; + echo ""; echo ""; - echo ""; - echo ""; + echo ""; + echo ""; echo ""; } echo "
".getMLText('action')."Start stateEnd state".getMLText('date')."".getMLText('user')."".getMLText('comment')."
".getMLText('action_'.strtolower($entry->getTransition()->getAction()->getName()), array(), $entry->getTransition()->getAction()->getName())."".$entry->getTransition()->getState()->getName()."".$entry->getTransition()->getNextState()->getName()."".htmlspecialchars(getMLText('action_'.strtolower($entry->getTransition()->getAction()->getName()), array(), $entry->getTransition()->getAction()->getName()))."".htmlspecialchars($entry->getTransition()->getState()->getName())."".htmlspecialchars($entry->getTransition()->getNextState()->getName())."".$entry->getDate()."".$entry->getUser()->getFullname()."".$entry->getComment()."".htmlspecialchars($entry->getUser()->getFullname())."".htmlspecialchars($entry->getComment())."
\n"; - $this->contentContainerEnd(); } $this->contentEnd(); From fa8356d7291a73b018e0479f989b42dc98f554c9 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 20 Aug 2021 10:38:33 +0200 Subject: [PATCH 007/413] in removeWorkflow() remove records from tblWorkflowLog before tblWorkflowDocumentContent --- SeedDMS_Core/Core/inc.ClassDocument.php | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/SeedDMS_Core/Core/inc.ClassDocument.php b/SeedDMS_Core/Core/inc.ClassDocument.php index 9345e56d2..7e216019c 100644 --- a/SeedDMS_Core/Core/inc.ClassDocument.php +++ b/SeedDMS_Core/Core/inc.ClassDocument.php @@ -4617,15 +4617,6 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ $currentstate = $this->getWorkflowState(); if(!$currentstate || SeedDMS_Core_DMS::checkIfEqual($this->_workflow->getInitState(), $currentstate) || $unlink == true) { $db->startTransaction(); - $queryStr= - "DELETE FROM `tblWorkflowDocumentContent` WHERE " - ."`version`='".$this->_version."' " - ." AND `document` = '". $this->_document->getID() ."' " - ." AND `workflow` = '". $this->_workflow->getID() ."' "; - if (!$db->getResult($queryStr)) { - $db->rollbackTransaction(); - return false; - } if(!$unlink) { $queryStr= "DELETE FROM `tblWorkflowLog` WHERE " @@ -4637,6 +4628,15 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ return false; } } + $queryStr= + "DELETE FROM `tblWorkflowDocumentContent` WHERE " + ."`version`='".$this->_version."' " + ." AND `document` = '". $this->_document->getID() ."' " + ." AND `workflow` = '". $this->_workflow->getID() ."' "; + if (!$db->getResult($queryStr)) { + $db->rollbackTransaction(); + return false; + } $this->_workflow = null; $this->_workflowState = null; $this->verifyStatus(false, $user, 'Workflow removed'); From 160f427bea6f50beebb49b2146b19519c5e5ae8a Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 20 Aug 2021 10:42:26 +0200 Subject: [PATCH 008/413] start new version 5.1.24 --- SeedDMS_Core/Core/inc.ClassDMS.php | 2 +- SeedDMS_Core/package.xml | 48 ++++++++++++++++++++---------- 2 files changed, 33 insertions(+), 17 deletions(-) diff --git a/SeedDMS_Core/Core/inc.ClassDMS.php b/SeedDMS_Core/Core/inc.ClassDMS.php index a914da17e..b4de184d7 100644 --- a/SeedDMS_Core/Core/inc.ClassDMS.php +++ b/SeedDMS_Core/Core/inc.ClassDMS.php @@ -404,7 +404,7 @@ class SeedDMS_Core_DMS { $this->lasterror = ''; $this->version = '@package_version@'; if($this->version[0] == '@') - $this->version = '5.1.23'; + $this->version = '5.1.24'; } /* }}} */ /** diff --git a/SeedDMS_Core/package.xml b/SeedDMS_Core/package.xml index a3089df7f..4b8f3a0b3 100644 --- a/SeedDMS_Core/package.xml +++ b/SeedDMS_Core/package.xml @@ -12,11 +12,11 @@ uwe@steinmann.cx yes - 2021-04-13 + 2021-08-20 - 5.1.23 - 5.1.23 + 5.1.24 + 5.1.24 stable @@ -24,19 +24,7 @@ GPL License -- SeedDMS_Core_DMS::getTimeline() uses status log instead of document content -- add methods SeedDMS_Core_DocumentContent::getReviewers() and SeedDMS_Core_DocumentContent::getApprovers() -- add methods SeedDMS_Core_DocumentContent::getApproveLog() and SeedDMS_Core_DocumentContent::getReviewLog() -- better handling of document with an empty workflow state -- fix checking of email addresses by using filter_var instead of regex -- add new method SeedDMS_Core_Document::hasCategory() -- add new method SeedDMS_Core_DocumentContent::removeReview() -- add new method SeedDMS_Core_DocumentContent::removeApproval() -- add new method SeedDMS_Core_User::getFolders() -- add new method SeedDMS_Core_User::getDocumentContents() -- add new method SeedDMS_Core_User::getDocumentFiles() -- add new method SeedDMS_Core_User::getDocumentLinks() -- add new type 'foldersperuser' to method SeedDMS_Core_DMS::getStatisticalData() +- in SeedDMS_Core_DocumentContent::removeWorkflow() remove records from tblWorklflowLog before tblDWorkflowDocumentContent @@ -1895,5 +1883,33 @@ add method SeedDMS_Core_DatabaseAccess::setLogFp() problem when removing a document + + 2021-08-19 + + + 5.1.23 + 5.1.23 + + + stable + stable + + GPL License + +- SeedDMS_Core_DMS::getTimeline() uses status log instead of document content +- add methods SeedDMS_Core_DocumentContent::getReviewers() and SeedDMS_Core_DocumentContent::getApprovers() +- add methods SeedDMS_Core_DocumentContent::getApproveLog() and SeedDMS_Core_DocumentContent::getReviewLog() +- better handling of document with an empty workflow state +- fix checking of email addresses by using filter_var instead of regex +- add new method SeedDMS_Core_Document::hasCategory() +- add new method SeedDMS_Core_DocumentContent::removeReview() +- add new method SeedDMS_Core_DocumentContent::removeApproval() +- add new method SeedDMS_Core_User::getFolders() +- add new method SeedDMS_Core_User::getDocumentContents() +- add new method SeedDMS_Core_User::getDocumentFiles() +- add new method SeedDMS_Core_User::getDocumentLinks() +- add new type 'foldersperuser' to method SeedDMS_Core_DMS::getStatisticalData() + + From 6a8382747b74e4c4f81dcdfc15b01b19f86edb21 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 20 Aug 2021 10:42:44 +0200 Subject: [PATCH 009/413] start new version 5.1.24 --- inc/inc.Version.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/inc.Version.php b/inc/inc.Version.php index a4e428ad6..367ac2c7d 100644 --- a/inc/inc.Version.php +++ b/inc/inc.Version.php @@ -20,7 +20,7 @@ class SeedDMS_Version { /* {{{ */ - const _number = "5.1.23"; + const _number = "5.1.24"; const _string = "SeedDMS"; function __construct() { From 0f786a73b689d70413e2a58729de56406966414a Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 20 Aug 2021 11:00:51 +0200 Subject: [PATCH 010/413] check access on WorkflowGraph --- views/bootstrap/class.TriggerWorkflow.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/views/bootstrap/class.TriggerWorkflow.php b/views/bootstrap/class.TriggerWorkflow.php index 36c6a04a2..2bf47f8b6 100644 --- a/views/bootstrap/class.TriggerWorkflow.php +++ b/views/bootstrap/class.TriggerWorkflow.php @@ -66,6 +66,7 @@ $(document).ready(function() { $dms = $this->params['dms']; $user = $this->params['user']; $folder = $this->params['folder']; + $accessobject = $this->params['accessobject']; $document = $this->params['document']; $transition = $this->params['transition']; @@ -125,7 +126,13 @@ $(document).ready(function() { $this->columnStart(8); ?>
+check_view_access('WorkflowGraph')) { +?> +
columnEnd(); From ace8161afd2af4deaf9e954aa579f4adf38be739 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 20 Aug 2021 11:02:34 +0200 Subject: [PATCH 011/413] fix strange char --- op/op.TriggerWorkflow.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/op/op.TriggerWorkflow.php b/op/op.TriggerWorkflow.php index 6d4b9dac1..a7bf0b483 100644 --- a/op/op.TriggerWorkflow.php +++ b/op/op.TriggerWorkflow.php @@ -122,7 +122,7 @@ if($version->triggerWorkflowTransition($user, $transition, $_POST["comment"])) { foreach($ntransition->getUsers() as $tuser) { if(!in_array($tuser->getUser()->getID(), $usersinformed)) { $usersinformed[] = $tuser->getUser()->getID(); - $notifier->toIndividual($user, $tuser->getUser(), $subject, $message, $params, SeedDMS_NotificationService::RECV_WOâ–¨KFLOW); + $notifier->toIndividual($user, $tuser->getUser(), $subject, $message, $params, SeedDMS_NotificationService::RECV_WORKFLOW); } } foreach($ntransition->getGroups() as $tuser) { From d786a66adc4b40ce89391534f9fa7eada0683a10 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 20 Aug 2021 11:16:03 +0200 Subject: [PATCH 012/413] check for access on WorkflowGraph --- views/bootstrap/class.RemoveWorkflowFromDocument.php | 9 ++++++++- views/bootstrap/class.RewindWorkflow.php | 7 +++++++ views/bootstrap/class.RunSubWorkflow.php | 7 +++++++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/views/bootstrap/class.RemoveWorkflowFromDocument.php b/views/bootstrap/class.RemoveWorkflowFromDocument.php index c53617df5..8ea1e5cb2 100644 --- a/views/bootstrap/class.RemoveWorkflowFromDocument.php +++ b/views/bootstrap/class.RemoveWorkflowFromDocument.php @@ -35,6 +35,7 @@ class SeedDMS_View_RemoveWorkflowFromDocument extends SeedDMS_Theme_Style { $dms = $this->params['dms']; $user = $this->params['user']; $folder = $this->params['folder']; + $accessobject = $this->params['accessobject']; $document = $this->params['document']; $latestContent = $document->getLatestContent(); @@ -86,7 +87,13 @@ class SeedDMS_View_RemoveWorkflowFromDocument extends SeedDMS_Theme_Style { $this->columnStart(8); ?>
- +check_view_access('WorkflowGraph')) { +?> + +
columnEnd(); diff --git a/views/bootstrap/class.RewindWorkflow.php b/views/bootstrap/class.RewindWorkflow.php index 5315b75ac..1becfa69a 100644 --- a/views/bootstrap/class.RewindWorkflow.php +++ b/views/bootstrap/class.RewindWorkflow.php @@ -35,6 +35,7 @@ class SeedDMS_View_RewindWorkflow extends SeedDMS_Theme_Style { $dms = $this->params['dms']; $user = $this->params['user']; $folder = $this->params['folder']; + $accessobject = $this->params['accessobject']; $document = $this->params['document']; $latestContent = $document->getLatestContent(); @@ -85,7 +86,13 @@ class SeedDMS_View_RewindWorkflow extends SeedDMS_Theme_Style { $this->columnStart(8); ?>
+check_view_access('WorkflowGraph')) { +?> +
columnEnd(); diff --git a/views/bootstrap/class.RunSubWorkflow.php b/views/bootstrap/class.RunSubWorkflow.php index c6d90a0f0..8a9a1674b 100644 --- a/views/bootstrap/class.RunSubWorkflow.php +++ b/views/bootstrap/class.RunSubWorkflow.php @@ -35,6 +35,7 @@ class SeedDMS_View_RunSubWorkflow extends SeedDMS_Theme_Style { $dms = $this->params['dms']; $user = $this->params['user']; $folder = $this->params['folder']; + $accessobject = $this->params['accessobject']; $document = $this->params['document']; $subworkflow = $this->params['subworkflow']; @@ -83,7 +84,13 @@ class SeedDMS_View_RunSubWorkflow extends SeedDMS_Theme_Style { $this->columnStart(8); ?>
+check_view_access('WorkflowGraph')) { +?> +
columnEnd(); From d19288b7c3c8005faf4b6e4aee1a0134ca2b6c65 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Wed, 25 Aug 2021 12:39:07 +0200 Subject: [PATCH 013/413] take section on jumploader, minor corrections --- doc/README.Install.md | 42 +++++++++++++++++------------------------- 1 file changed, 17 insertions(+), 25 deletions(-) diff --git a/doc/README.Install.md b/doc/README.Install.md index 05ddf21fc..e18de00b2 100644 --- a/doc/README.Install.md +++ b/doc/README.Install.md @@ -8,13 +8,13 @@ SeedDMS is a web-based application written in PHP. It uses MySQL, sqlite3 or postgresql to manage the documents that were uploaded into the application. Be aware that postgresql is not very well tested. -Make sure you have PHP 7.x and MySQL 5 or higher installed. SeedDMS +Make sure you have PHP >= 7.2 and MySQL 5 or higher installed. SeedDMS will work with PHP running in CGI-mode as well as running as a module under apache. Here is a detailed list of requirements: -1. A web server with at least php 7.0 +1. A web server with at least php 7.2 2. A mysql database, unless you use sqlite 3. The php installation must have support for `pdo_mysql`, `pdo_pgsql` or `pdo_sqlite`, `php_gd2`, `php_mbstring`, `php_xml` @@ -30,23 +30,24 @@ Here is a detailed list of requirements: It is highly recommended to use the quickstart archive (seeddms-quickstart-x.y.z.tar.gz) because it includes all software packages (excluding those listing above in item 1. to 6.) for running SeedDMS. Hence, -you still need a working web server with PHP and a mysql or postgres database -unless you intend to use sqlite. +you still need a working web server with PHP and in addition a mysql or postgres database unless you intend to use sqlite. QUICKSTART =========== The fastes way to get SeedDMS running is by unpacking the archive `seeddms-quickstart-x.y.z.tar.gz` on your webserver. -Let's assume you use seeddms-quickstart-5.1.10.tar.gz. +Let's assume you use seeddms-quickstart-5.1.x.tar.gz. It will create a new directory `seeddms51x` containing everything you -need to run SeedDMS with sqlite3. +need to run SeedDMS with sqlite3. Even if you intend to use mysql in the +long run it is advisable to first set up SeedDMS with sqlite3 and than +just switch the database. Setting up the web server -------------------------- -First you will need to set up your web server. Here, we will only focus -on apache. +First of all you will need to set up your web server. Here, we will only focus +on apache running on Debian/GNU Linux. Either let the document root of your web server point to the directory `www` below `seeddms51x` @@ -95,7 +96,7 @@ http://your-domain/ or http://your-domain/seeddms51x. SECURITY CONSIDERATIONS ======================= -First of all you should always access your SeedDMS installation through +You should always access your SeedDMS installation through a secured https connection, unless you know precisly what are you doing. SeedDMS ships an .htaccess file which already has some common security http headers set. In order for them to apply you need to activate the @@ -110,13 +111,15 @@ Protect directories with data or configuration A crucial point when setting up SeedDMS is the propper placement of the data directory. Do not place it below your document root as -configured in your web server! If you do so, there is good change that -attackers can easily access your documents with a regular browser. -If you can't place the data directory outside of document root, that either +configured in your web server! If you do so, there is a good change that +attackers can easily access your documents with a regular web browser. +If you cannot place the data directory outside of document root, than either restrict access to it with an appropriate .htaccess file or/and change the `contentOffsetDir` in `settings.xml` to something random, but ensure it is still a valid directory name. If you change contentOffsetDir then do not forget to move `data/1048576` to `data/`. +Also turn off directory listings in your apache configuration for the +`data` directory. Example for .htaccess file in data directory ---------------------------------------------- @@ -146,7 +149,8 @@ can be crucial for those configuration options where external commands are being configured, e.g. for the full text engine or creating preview images. As a hoster you may not want this configuration options being set by a SeedDMS administrator. For now you need to make the configuration file `settings.xml` -unwritable for the web server. +unwritable for the web server. In that case the SeedDMS administrator can +still see the configuration but will not be able to change it. Setting a new encryption key ------------------------------ @@ -564,16 +568,4 @@ LICENSING SeedDMS is licensed unter GPLv2 -Jumploader is licensed as stated by the author on th web site - - --- Taken from web site of jumploader --- -You may use this software for free, however, you should not: - -- Decompile binaries. -- Alter or replace class and/or resource files. -- Redistribute this software under different name or authority. - -If you would like a customized version, I can do this for a fee. Don't hesitate to contact me with questions or comments. - Uwe Steinmann From b66e87b72ddf01b655f9c5dc555cc5ee35b708a9 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Wed, 25 Aug 2021 15:05:35 +0200 Subject: [PATCH 014/413] fix sending of notification mails to groups --- inc/inc.ClassNotificationService.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/inc/inc.ClassNotificationService.php b/inc/inc.ClassNotificationService.php index b760cc593..a252960ef 100644 --- a/inc/inc.ClassNotificationService.php +++ b/inc/inc.ClassNotificationService.php @@ -723,7 +723,7 @@ class SeedDMS_NotificationService { } $this->toList($user, $notifyList["users"], $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); foreach ($notifyList["groups"] as $grp) { - $notifier->toGroup($user, $grp, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); + $this->toGroup($user, $grp, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); } } } /* }}} */ @@ -879,7 +879,7 @@ class SeedDMS_NotificationService { if($obj->isType('user')) $this->toIndividual($user, $obj, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); elseif($obj->isType('group')) - $notifier->toGroup($user, $obj, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); + $this->toGroup($user, $obj, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); } /* }}} */ public function sendNewFolderNotifyMail($folder, $user, $obj) { /* {{{ */ @@ -896,7 +896,7 @@ class SeedDMS_NotificationService { if($obj->isType('user')) $this->toIndividual($user, $obj, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); elseif($obj->isType('group')) - $notifier->toGroup($user, $obj, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); + $this->toGroup($user, $obj, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); } /* }}} */ public function sendDeleteDocumentNotifyMail($document, $user, $obj) { /* {{{ */ @@ -914,7 +914,7 @@ class SeedDMS_NotificationService { if($obj->isType('user')) $this->toIndividual($user, $obj, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); elseif($obj->isType('group')) - $notifier->toGroup($user, $obj, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); + $this->toGroup($user, $obj, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); } /* }}} */ public function sendDeleteFolderNotifyMail($folder, $user, $obj) { /* {{{ */ @@ -931,7 +931,7 @@ class SeedDMS_NotificationService { if($obj->isType('user')) $this->toIndividual($user, $obj, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); elseif($obj->isType('group')) - $notifier->toGroup($user, $obj, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); + $this->toGroup($user, $obj, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); } /* }}} */ public function sendSubmittedReviewMail($content, $user, $reviewlog) { /* {{{ */ @@ -976,7 +976,7 @@ class SeedDMS_NotificationService { $this->toList($user, $nl["users"], $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); foreach ($nl["groups"] as $grp) - $notifier->toGroup($user, $grp, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); + $this->toGroup($user, $grp, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); // $this->toIndividual($user, $content->getUser(), $subject, $message, $params, SeedDMS_NotificationService::RECV_OWNER); } /* }}} */ From 60a13b9f132f7eac09b38716de0669f7b721adaf Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Wed, 25 Aug 2021 15:08:24 +0200 Subject: [PATCH 015/413] check view access for DocumentAccess and Folder FolderAccess --- views/bootstrap/class.Bootstrap.php | 7 +++++-- views/bootstrap4/class.Bootstrap4.php | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/views/bootstrap/class.Bootstrap.php b/views/bootstrap/class.Bootstrap.php index d79de307b..e17603021 100644 --- a/views/bootstrap/class.Bootstrap.php +++ b/views/bootstrap/class.Bootstrap.php @@ -2498,12 +2498,15 @@ $(function() { } /* }}} */ function printAccessButton($object, $return=false) { /* {{{ */ + $accessobject = $this->params['accessobject']; $content = ''; $objid = $object->getId(); if($object->isType('document')) { - $content .= ''; + if($accessobject->check_view_access('DocumentAccess')) + $content .= ''; } elseif($object->isType('folder')) { - $content .= ''; + if($accessobject->check_view_access('FolderAccess')) + $content .= ''; } if($return) return $content; diff --git a/views/bootstrap4/class.Bootstrap4.php b/views/bootstrap4/class.Bootstrap4.php index 55d5ab6fc..13cd61724 100644 --- a/views/bootstrap4/class.Bootstrap4.php +++ b/views/bootstrap4/class.Bootstrap4.php @@ -2554,12 +2554,15 @@ $(function() { } /* }}} */ function printAccessButton($object, $return=false) { /* {{{ */ + $accessobject = $this->params['accessobject']; $content = ''; $objid = $object->getId(); if($object->isType('document')) { - $content .= ''; + if($accessobject->check_view_access('DocumentAccess')) + $content .= ''; } elseif($object->isType('folder')) { - $content .= ''; + if($accessobject->check_view_access('FolderAccess')) + $content .= ''; } if($return) return $content; From e80da33da70ab9e976794502add79a6a66271146 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Wed, 25 Aug 2021 15:09:33 +0200 Subject: [PATCH 016/413] start changelog for 5.1.24 --- CHANGELOG | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG b/CHANGELOG index e1f6fa90f..ab5c3f6c4 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,9 @@ +-------------------------------------------------------------------------------- + Changes in version 5.1.24 +-------------------------------------------------------------------------------- +- fix sending of some notification mails to groups +- check view access for FolderAccess and DocumentAccess + -------------------------------------------------------------------------------- Changes in version 5.1.23 -------------------------------------------------------------------------------- From 567488cab96e7bc6ed13f5fc8660cea4199e1a6b Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 27 Aug 2021 09:55:58 +0200 Subject: [PATCH 017/413] lots or minor corrections and updates --- doc/README.Install.md | 170 +++++++++++++++++++++++++----------------- 1 file changed, 100 insertions(+), 70 deletions(-) diff --git a/doc/README.Install.md b/doc/README.Install.md index e18de00b2..89c317942 100644 --- a/doc/README.Install.md +++ b/doc/README.Install.md @@ -5,8 +5,8 @@ REQUIREMENTS ============ SeedDMS is a web-based application written in PHP. It uses MySQL, -sqlite3 or postgresql to manage the documents that were uploaded into -the application. Be aware that postgresql is not very well tested. +SQLite3 or PostgreSQL to manage the documents that were uploaded into +the application. Be aware that PostgreSQL is not very well tested. Make sure you have PHP >= 7.2 and MySQL 5 or higher installed. SeedDMS will work with PHP running in CGI-mode as well as running as a module under @@ -15,11 +15,11 @@ apache. Here is a detailed list of requirements: 1. A web server with at least php 7.2 -2. A mysql database, unless you use sqlite +2. A mysql database, unless you use SQLite 3. The php installation must have support for `pdo_mysql`, `pdo_pgsql` or `pdo_sqlite`, `php_gd2`, `php_mbstring`, `php_xml` 4. Depending on the configuration the extensions `php_ldap`, `php_mycrypt`, - `php_gmp`, `php_libsodium`must be installed + `php_gmp`, `php_libsodium` must be installed 5. Various command line programms to convert files into text for indexing pdftotext, catdoc, xls2csv or scconvert, cat, id3 (optional, only needed for fulltext search) @@ -30,7 +30,8 @@ Here is a detailed list of requirements: It is highly recommended to use the quickstart archive (seeddms-quickstart-x.y.z.tar.gz) because it includes all software packages (excluding those listing above in item 1. to 6.) for running SeedDMS. Hence, -you still need a working web server with PHP and in addition a mysql or postgres database unless you intend to use sqlite. +you still need a working web server with PHP and in addition a mysql or +PostgreSQL database unless you intend to use SQLite. QUICKSTART =========== @@ -39,8 +40,8 @@ The fastes way to get SeedDMS running is by unpacking the archive `seeddms-quickstart-x.y.z.tar.gz` on your webserver. Let's assume you use seeddms-quickstart-5.1.x.tar.gz. It will create a new directory `seeddms51x` containing everything you -need to run SeedDMS with sqlite3. Even if you intend to use mysql in the -long run it is advisable to first set up SeedDMS with sqlite3 and than +need to run SeedDMS with SQLite3. Even if you intend to use mysql in the +long run it is advisable to first set up SeedDMS with SQLite3 and than just switch the database. Setting up the web server @@ -86,8 +87,8 @@ set an alias like described above). It will first ask to unlock the installer by creating a file `ENABLE_INSTALL_TOOL` in the diretory `seeddms51x/conf/`. Change all paths by replacing `/home/www-data` with your base directory where you put seeddms51x. -Set httpRoot to '/' (if the document root points to`seeddms51x/www`) or -'/seeddms51x' (if you have set an alias `seeddms51x` like described above). +Set httpRoot to `/` (if the document root points to `seeddms51x/www`) or +`/seeddms51x` (if you have set an alias `seeddms51x` like described above). Once your configuration is done, save it, remove the file `ENABLE_INSTALL_TOOL` and point your browser to @@ -97,10 +98,10 @@ SECURITY CONSIDERATIONS ======================= You should always access your SeedDMS installation through -a secured https connection, unless you know precisly what are you doing. +a secured https connection, unless you precisly know what you are doing. SeedDMS ships an .htaccess file which already has some common security http headers set. In order for them to apply you need to activate the -headers module. On Debian this can be done with +headers module. On Debian/GNU Linux this can be done with ``` a2enmod headers @@ -110,19 +111,13 @@ Protect directories with data or configuration --------------------------------------------- A crucial point when setting up SeedDMS is the propper placement of the -data directory. Do not place it below your document root as -configured in your web server! If you do so, there is a good change that +data directory. Do not place it below your document root of your web server! +If you do so, there is a potential way that attackers can easily access your documents with a regular web browser. -If you cannot place the data directory outside of document root, than either -restrict access to it with an appropriate .htaccess file or/and change -the `contentOffsetDir` in `settings.xml` to something random, but ensure it -is still a valid directory name. If you change contentOffsetDir then -do not forget to move `data/1048576` to `data/`. -Also turn off directory listings in your apache configuration for the -`data` directory. +If you cannot place the data directory outside of document root, then either +restrict access to it with an appropriate `.htaccess` file like the following. +The SeedDMS quickstart archive already includes this `.htaccess` file. -Example for .htaccess file in data directory ----------------------------------------------- ``` # line below if for Apache 2.4 @@ -141,6 +136,14 @@ IndexIgnore * ``` +Alternatively or in addition you can change +the `contentOffsetDir` in `settings.xml` to something random, but ensure it +is still a valid directory name. If you change contentOffsetDir, then +do not forget to move `data/1048576` to `data/`. +Also turn off directory listings in your apache configuration for the +`data` directory. + + Securing the configuration file --------------------------------- @@ -152,27 +155,40 @@ administrator. For now you need to make the configuration file `settings.xml` unwritable for the web server. In that case the SeedDMS administrator can still see the configuration but will not be able to change it. +Since version 5.1.23 and 6.0.16 of SeedDMS there is some preliminary way to +hide parts of the configuration which makes them unchangeable for the +SeedDMS administrator. + Setting a new encryption key ------------------------------ + Though this is not related to setting up the web server environment, it is important to recreated the encryption key in SeedDMS once SeedDMS is running. Just open the settings in the admin tools and empty the currently set encryption key on the tab 'System'. Save the settings and check the key again. -It should be new one. Save the settings again +It should be a new one. Save the settings again. The encryption key is +mainly used for creating tokens in HTML forms to prevent CSRF attacks. -UPGRATING FROM A PREVIOUS VERSION OR SEEDDMS +UPGRADING FROM A PREVIOUS VERSION OF SEEDDMS ============================================= As SeedDMS is a smooth continuation of LetoDMS there is no difference -in updating from LetoDMS or SeedDMS +in updating from LetoDMS or SeedDMS. -You have basically two choices to update SeedDMS +You have basically two choices to update SeedDMS: - you install a fresh version of SeedDMS and copy over your data and configuration - you replace the software in your current installation with a new version The first option is less interuptive but requires to be able to set up a second -temporary SeedDMS installation. +temporary SeedDMS installation, which may not be possible, e.g. because of storage +limitations. It can be the only option if you change servers. + +The first update procedure is only needed if the version changes on the minor +or major version number. Changes in the subminor version number will never +include database changes and consequently it is sufficient to use the existing +data directory and database with the new version. Choose the second update +option in this case. In both cases make sure to have a backup of your data directory, configuration and database. @@ -180,56 +196,70 @@ and database. Fresh installation and take over of data ----------------------------------------- -- just do a fresh installation somewhere on your web server and make sure it - works. It is fine to use - sqlite for it, even if your final installation uses mysql. -- replace the data directory in your new installation with the data directory - from your current installation. Depending on the size of that directory you - may either copy, move or place a symbolic link. The content of the data directory - will not be changed unless you modify your documents. Its perfectly save to - browse through your documents and download them. -- copy over the configuration settings.xml into your new installation -- if you use mysql you could as well make a copy of the database to make sure - your current database remains unchanged. As long as you do not do any modification, - you could even use your current database. -- modify the settings.xml to fit the fresh install. This will mostly be the - httpRoot, the paths to the installation directory and possibly the database - connection. -- create a file `ENABLE_INSTALL_TOOL` in the conf directory and point - your browser at http://hostname/seeddms/install - The install tool will detect the version of your current SeedDMS installation - and run the required database updates. - If you update just within the last version number (e.g. from 5.1.6 to 5.1.9), - this step - will not be required because such a subminor version update will never - contain database updates. -- test your new installation. +The first update option is to set up a new instance of SeedDMS and once +that is running take over the data from your current (old) instance. + +1. just do a fresh installation somewhere on your web server and make sure it + works. It is fine to use + SQLite for it, even if your final installation uses MySQL. +2. replace the data directory in your new installation with the data directory + from your current installation. Depending on the size of that directory (and + whether the new installation is on a new server or the old server) you + may either copy, move or place a symbolic link. The content of the data directory + will not be changed during the update. Its even perfectly save to + browse through your documents and download them after finishing the + update. The data directory will not be modified until you actually modify + documents. +3. copy over the configuration `settings.xml` into your new installation. This will + effectively make your new installation use the data from your old installation, + because all paths are still pointing to the old installation. +4. if you use mysql you could as well make a copy of the database to make sure + your current database remains unchanged. +5. modify the `settings.xml` to fit the environment of the new installation. + This will mostly be the + httpRoot, the paths to the installation directory and possibly the database + connection. +6. create a file `ENABLE_INSTALL_TOOL` in the `conf` directory and point + your browser at http://hostname/seeddms/install + The install tool will detect the version of your current SeedDMS installation + and run the required database updates. + If you update just within the last version number (e.g. from 5.1.6 to 5.1.9), + this step + will not be required because such a subminor version update will never + contain database updates. Upgrading your current installation ----------------------------------- -- make a backup of your data folder and the configuration file settings.xml -- in case you use mysql then dump your current database -- get the SeedDMS archive seeddms-x.y.z.tar.gz and all pear packages - SeedDMS_Core, SeedDMS_Lucene, SeedDMS_Preview and extract them over your - current instalation. As they do not contain a data directory nor a settings.xml - file, you will not overwrite your existing data and configuration. -- you may compare your conf/settings.xml file with the shipped version - conf/settings.xml.template for new parameters. If you don't do it, the next - time you save the configuration the default values will be used. -- create a file `ENABLE_INSTALL_TOOL` in the conf directory and point - your browser at http://hostname/seeddms/install - The install tool will detect the version of your current SeedDMS installation - and run the required database updates. - If you update just within the last version number (e.g. from 5.1.6 to 5.1.9), - this step - will not be required because such a subminor version update will never - contain database updates. +Instead of setting up a new installation, you may as well replace the php files +in your current installation with new versions from the quickstart archive. + +1. get the SeedDMS quickstart archive `seeddms-quickstart-x.y.z.tar.gz` and + unpack it somewhere on your disc. +2. copy the directory `seeddms-x.y.z` from the unpacked archive into your + current installation and make the link `seeddms` point to this new directory. +3. copy the directory `pear` from the unpacked archive into your current + installation, replacing the existing directory. Make a backup of `pear` before + the replacement if you want to ensure to be able to go back to your old version. +4. you may compare your `conf/settings.xml` file with the shipped version + `conf/settings.xml.template` for new parameters. If you don't do it, the next + time you save the configuration the default values will be used. +5. create a file `ENABLE_INSTALL_TOOL` in the `conf` directory and point + your browser at http://hostname/seeddms/install + The install tool will detect the version of your current SeedDMS installation + and run the required database updates. + If you update just within the last version number (e.g. from 5.1.6 to 5.1.9), + this step + will not be required because such a subminor version update will never + contain database updates. THE LONG STORY ================ +This section is mostly outdated but may still contain some valueable +information for those trying to understand the installation process. + If you intend to run a single instance of SeedDMS, you are most likely better off by using the quickstart archive as described above. This section is mostly for users who wants to know more about the internals @@ -315,7 +345,7 @@ http://localhost/seeddms/ * Point you web browser towards http://hostname/seeddms/install/ * Follow the instructions on the page and create a file `ENABLE_INSTALL_TOOL` - in the conf directory. + in the `conf` directory. * Create a data directory with the thre sub directories staging, cache and lucene. @@ -424,7 +454,7 @@ If you install SeedDMS for the first time continue with the database setup. e.g. for mysql: > cat create_tables-innodb.sql | mysql -useeddms -p seeddms This step can also be done by the install tool. -* create a file `ENABLE_INSTALL_TOOL` in the conf directory and point +* create a file `ENABLE_INSTALL_TOOL` in the `conf` directory and point your browser at http://hostname/seeddms/install From 0ac0ca5760bd564cb1ce89c78cd6fa9fe9f176ce Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 30 Aug 2021 16:00:51 +0200 Subject: [PATCH 018/413] remove duplicate of sendRequestWorkflowActionMail() --- inc/inc.ClassNotificationService.php | 33 ---------------------------- 1 file changed, 33 deletions(-) diff --git a/inc/inc.ClassNotificationService.php b/inc/inc.ClassNotificationService.php index a252960ef..0a5fc7740 100644 --- a/inc/inc.ClassNotificationService.php +++ b/inc/inc.ClassNotificationService.php @@ -145,39 +145,6 @@ class SeedDMS_NotificationService { return $error; } /* }}} */ - /** - * This notification is sent when a workflow action is needed. - */ - public function sendRequestWorkflowActionMail($content, $user) { /* {{{ */ - $document = $content->getDocument(); - $folder = $document->getFolder(); - - /* Send mail only if enabled in the configuration */ - if($this->settings->_enableNotificationWorkflow && ($workflow = $content->getWorkflow())) { - $subject = "request_workflow_action_email_subject"; - $message = "request_workflow_action_email_body"; - $params = array(); - $params['name'] = $document->getName(); - $params['version'] = $content->getVersion(); - $params['workflow'] = $workflow->getName(); - $params['folder_path'] = $folder->getFolderPathPlain(); - $params['current_state'] = $workflow->getInitState()->getName(); - $params['username'] = $user->getFullName(); - $params['sitename'] = $this->settings->_siteName; - $params['http_root'] = $this->settings->_httpRoot; - $params['url'] = getBaseUrl().$this->settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID(); - - foreach($workflow->getNextTransitions($workflow->getInitState()) as $ntransition) { - foreach($ntransition->getUsers() as $tuser) { - $this->toIndividual($user, $tuser->getUser(), $subject, $message, $params, SeedDMS_NotificationService::RECV_WORKFLOW); - } - foreach($ntransition->getGroups() as $tuser) { - $this->toGroup($user, $tuser->getGroup(), $subject, $message, $params, SeedDMS_NotificationService::RECV_WORKFLOW); - } - } - } - } /* }}} */ - /** * This notification is sent when a review or approval is needed. */ From 45b51cb04315569e64d28507140ef0d7ee200092 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 30 Aug 2021 16:01:54 +0200 Subject: [PATCH 019/413] send notification to owner --- inc/inc.ClassNotificationService.php | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/inc/inc.ClassNotificationService.php b/inc/inc.ClassNotificationService.php index 0a5fc7740..7897cda0d 100644 --- a/inc/inc.ClassNotificationService.php +++ b/inc/inc.ClassNotificationService.php @@ -260,9 +260,9 @@ class SeedDMS_NotificationService { foreach ($notifyList["groups"] as $grp) { $this->toGroup($user, $grp, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); } -// if user is not owner send notification to owner -// if ($user->getID() != $document->getOwner()->getID()) -// $this->toIndividual($user, $document->getOwner(), $subject, $message, $params, SeedDMS_NotificationService::RECV_OWNER); + /* if user is not owner send notification to owner */ + if ($user->getID() != $document->getOwner()->getID()) + $this->toIndividual($user, $document->getOwner(), $subject, $message, $params, SeedDMS_NotificationService::RECV_OWNER); $this->sendRequestWorkflowActionMail($lc, $user); @@ -424,6 +424,11 @@ class SeedDMS_NotificationService { foreach ($notifyList["groups"] as $grp) { $this->toGroup($user, $grp, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); } + + /* if user is not owner send notification to owner */ + if ($user->getID() != $document->getOwner()->getID()) + $this->toIndividual($user, $document->getOwner(), $subject, $message, $params, SeedDMS_NotificationService::RECV_OWNER); + } /* }}} */ /** @@ -632,8 +637,8 @@ class SeedDMS_NotificationService { $this->toGroup($user, $grp, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); } // if user is not owner send notification to owner - // if ($user->getID() != $folder->getOwner()->getID()) - // $notifier->toIndividual($user, $folder->getOwner(), $subject, $message, $params, SeedDMS_NotificationService::RECV_OWNER); + if ($user->getID() != $folder->getOwner()->getID()) + $this->toIndividual($user, $folder->getOwner(), $subject, $message, $params, SeedDMS_NotificationService::RECV_OWNER); } } /* }}} */ @@ -714,8 +719,8 @@ class SeedDMS_NotificationService { $this->toGroup($user, $grp, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); } // if user is not owner send notification to owner - // if ($user->getID() != $folder->getOwner()->getID()) - // $this->toIndividual($user, $folder->getOwner(), $subject, $message, $params, SeedDMS_NotificationService::RECV_OWNER); + if ($user->getID() != $folder->getOwner()->getID()) + $this->toIndividual($user, $folder->getOwner(), $subject, $message, $params, SeedDMS_NotificationService::RECV_OWNER); } } /* }}} */ From 33ad98bdfd1e0a9d67b95efb8bd277ad3a9d066e Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 30 Aug 2021 16:02:22 +0200 Subject: [PATCH 020/413] replace $notifier-> by $this-> --- inc/inc.ClassNotificationService.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/inc/inc.ClassNotificationService.php b/inc/inc.ClassNotificationService.php index 7897cda0d..e3dbd8804 100644 --- a/inc/inc.ClassNotificationService.php +++ b/inc/inc.ClassNotificationService.php @@ -833,7 +833,7 @@ class SeedDMS_NotificationService { $this->toGroup($user, $grp, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); } -// $notifier->toIndividual($user, $content->getUser(), $subject, $message, $params, SeedDMS_NotificationService::RECV_OWNER); +// $this->toIndividual($user, $content->getUser(), $subject, $message, $params, SeedDMS_NotificationService::RECV_OWNER); } /* }}} */ public function sendNewDocumentNotifyMail($document, $user, $obj) { /* {{{ */ @@ -926,7 +926,7 @@ class SeedDMS_NotificationService { foreach ($nl["groups"] as $grp) { $this->toGroup($user, $grp, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); } -// $notifier->toIndividual($user, $content->getUser(), $subject, $message, $params, SeedDMS_NotificationService::RECV_OWNER); +// $this->toIndividual($user, $content->getUser(), $subject, $message, $params, SeedDMS_NotificationService::RECV_OWNER); } /* }}} */ public function sendSubmittedApprovalMail($content, $user, $approvelog) { /* {{{ */ @@ -972,7 +972,7 @@ class SeedDMS_NotificationService { foreach ($notifyList["groups"] as $grp) { $this->toGroup($user, $grp, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); } -// $notifier->toIndividual($user, $oldowner, $subject, $message, $params, SeedDMS_NotificationService::RECV_OWNER); +// $this->toIndividual($user, $oldowner, $subject, $message, $params, SeedDMS_NotificationService::RECV_OWNER); } } /* }}} */ From 96ca0725287ecec200b2b12edd3a3c08c62eeb8c Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 30 Aug 2021 16:03:00 +0200 Subject: [PATCH 021/413] add methods sendRequestWorkflowActionMail and sendTriggerWorkflowTransitionMail --- inc/inc.ClassNotificationService.php | 81 ++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) diff --git a/inc/inc.ClassNotificationService.php b/inc/inc.ClassNotificationService.php index e3dbd8804..55c3c8c1b 100644 --- a/inc/inc.ClassNotificationService.php +++ b/inc/inc.ClassNotificationService.php @@ -1038,5 +1038,86 @@ class SeedDMS_NotificationService { } } /* }}} */ + public function sendTriggerWorkflowTransitionMail($content, $user, $wkflog) { /* {{{ */ + $document = $content->getDocument(); + $workflow = $wkflog->getWorkflow(); + $transition = $wkflog->getTransition(); + $nl = $document->getNotifyList(); + $folder = $document->getFolder(); + $subject = "transition_triggered_email_subject"; + $message = "transition_triggered_email_body"; + $params = array(); + $params['name'] = $document->getName(); + $params['version'] = $content->getVersion(); + $params['workflow'] = $workflow->getName(); + $params['action'] = $transition->getAction()->getName(); + $params['folder_path'] = $folder->getFolderPathPlain(); + $params['comment'] = $wkflog->getComment(); + $params['previous_state'] = $transition->getState()->getName(); + $params['current_state'] = $transition->getNextState()->getName(); + $params['username'] = $user->getFullName(); + $params['sitename'] = $this->settings->_siteName; + $params['http_root'] = $this->settings->_httpRoot; + $params['url'] = getBaseUrl().$this->settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID(); + + // Send notification to subscribers. + $this->toList($user, $nl["users"], $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); + foreach ($nl["groups"] as $grp) { + $this->toGroup($user, $grp, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); + } + } /* }}} */ + + /** + * This notification is sent when a workflow action needed. + * If a transition is passed this must be the translation lately fired, hence + * the state of the workflow is next state of the transition. If no transition + * is passed, the workflow just started and is still in its initial state. + */ + public function sendRequestWorkflowActionMail($content, $user, $transition=null) { /* {{{ */ + $document = $content->getDocument(); + $folder = $document->getFolder(); + if($transition) { + $workflow = $transition->getWorkflow(); + $state = $transition->getNextState(); + } else { + $workflow = $content->getWorkflow(); + $state = $workflow->getInitState(); + } + + if($this->settings->_enableNotificationWorkflow) { + $subject = "request_workflow_action_email_subject"; + $message = "request_workflow_action_email_body"; + $params = array(); + $params['name'] = $document->getName(); + $params['version'] = $content->getVersion(); + $params['workflow'] = $workflow->getName(); + $params['folder_path'] = $folder->getFolderPathPlain(); + if($transition) + $params['current_state'] = $transition->getNextState()->getName(); + else + $params['current_state'] = $workflow->getInitState()->getName(); + $params['username'] = $user->getFullName(); + $params['sitename'] = $this->settings->_siteName; + $params['http_root'] = $this->settings->_httpRoot; + $params['url'] = getBaseUrl().$this->settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID(); + + $usersinformed = array(); + $groupsinformed = array(); + foreach($workflow->getNextTransitions($state) as $ntransition) { + foreach($ntransition->getUsers() as $tuser) { + if(!in_array($tuser->getUser()->getID(), $usersinformed)) { + $usersinformed[] = $tuser->getUser()->getID(); + $this->toIndividual($user, $tuser->getUser(), $subject, $message, $params, SeedDMS_NotificationService::RECV_WORKFLOW); + } + } + foreach($ntransition->getGroups() as $tuser) { + if(!in_array($tuser->getGroup()->getID(), $groupsinformed)) { + $groupsinformed[] = $tuser->getGroup()->getID(); + $this->toGroup($user, $tuser->getGroup(), $subject, $message, $params, SeedDMS_NotificationService::RECV_WORKFLOW); + } + } + } + } + } /* }}} */ } From 8018dc1a248f643c87d3b62997305e6ae6568ce7 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 30 Aug 2021 16:03:42 +0200 Subject: [PATCH 022/413] remove old code --- op/op.ReturnFromSubWorkflow.php | 11 ----------- op/op.RewindWorkflow.php | 8 -------- 2 files changed, 19 deletions(-) diff --git a/op/op.ReturnFromSubWorkflow.php b/op/op.ReturnFromSubWorkflow.php index dfcd2a221..23ff85ed0 100644 --- a/op/op.ReturnFromSubWorkflow.php +++ b/op/op.ReturnFromSubWorkflow.php @@ -76,17 +76,6 @@ if($version->returnFromSubWorkflow($user, $transition, $_POST["comment"])) { $nl = $document->getNotifyList(); $folder = $document->getFolder(); -/* - $subject = "###SITENAME###: ".$document->getName()." - ".getMLText("return_from_subworkflow_email"); - $message = getMLText("return_from_subwork_email")."\r\n"; - $message .= - getMLText("document").": ".$document->getName()."\r\n". - getMLText("workflow").": ".$workflow->getName()."\r\n". - getMLText("workflow").": ".$parentworkflow->getName()."\r\n". - getMLText("current_state").": ".$version->getWorkflowState()->getName()."\r\n". - getMLText("user").": ".$user->getFullName()." <". $user->getEmail() ."> "; -*/ - $subject = "return_from_subworkflow_email_subject"; $message = "return_from_subworkflow_email_body"; $params = array(); diff --git a/op/op.RewindWorkflow.php b/op/op.RewindWorkflow.php index d67cdc8f7..b9a67045d 100644 --- a/op/op.RewindWorkflow.php +++ b/op/op.RewindWorkflow.php @@ -65,14 +65,6 @@ if($version->rewindWorkflow()) { $nl = $document->getNotifyList(); $folder = $document->getFolder(); -/* - $subject = "###SITENAME###: ".$document->getName()." - ".getMLText("rewind_workflow_email"); - $message = getMLText("rewind_workflow_email")."\r\n"; - $message .= - getMLText("document").": ".$document->getName()."\r\n". - getMLText("workflow").": ".$workflow->getName()."\r\n". - getMLText("user").": ".$user->getFullName()." <". $user->getEmail() ."> "; -*/ $subject = "rewind_workflow_email_subject"; $message = "rewind_workflow_email_body"; $params = array(); From 42fdeaf915b97c1015c4d8b52d6917e501bd8a74 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 30 Aug 2021 16:04:15 +0200 Subject: [PATCH 023/413] fix type of recipient when send notification, remove old code --- op/op.RunSubWorkflow.php | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/op/op.RunSubWorkflow.php b/op/op.RunSubWorkflow.php index 69c49456c..3e08f5725 100644 --- a/op/op.RunSubWorkflow.php +++ b/op/op.RunSubWorkflow.php @@ -71,16 +71,6 @@ if($version->runSubWorkflow($subworkflow)) { $nl = $document->getNotifyList(); $folder = $document->getFolder(); -/* - $subject = "###SITENAME###: ".$document->getName()." - ".getMLText("run_subworkflow_email"); - $message = getMLText("run_subwork_email")."\r\n"; - $message .= - getMLText("document").": ".$document->getName()."\r\n". - getMLText("workflow").": ".$subworkflow->getName()."\r\n". - getMLText("current_state").": ".$version->getWorkflowState()->getName()."\r\n". - getMLText("user").": ".$user->getFullName()." <". $user->getEmail() ."> "; -*/ - $subject = "run_subworkflow_email_subject"; $message = "run_subworkflow_email_body"; $params = array(); @@ -96,7 +86,7 @@ if($version->runSubWorkflow($subworkflow)) { // Send notification to subscribers. $notifier->toList($user, $nl["users"], $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); foreach ($nl["groups"] as $grp) { - $notifier->toGroup($user, $grp, $subject, $message, $params, SeedDMS_NotificationService::RECV_APPROVER); + $notifier->toGroup($user, $grp, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); } } } From 48a0ca8cb93237a54a40336c3ce127f529a569ad Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 30 Aug 2021 16:04:51 +0200 Subject: [PATCH 024/413] use new methods sendTriggerWorkflowTransitionMail and sendRequestWorkflowActionMail --- op/op.TriggerWorkflow.php | 57 +++------------------------------------ 1 file changed, 3 insertions(+), 54 deletions(-) diff --git a/op/op.TriggerWorkflow.php b/op/op.TriggerWorkflow.php index a7bf0b483..ab40ade03 100644 --- a/op/op.TriggerWorkflow.php +++ b/op/op.TriggerWorkflow.php @@ -78,61 +78,10 @@ if(isset($GLOBALS['SEEDDMS_HOOKS']['triggerWorkflowTransition'])) { if($version->triggerWorkflowTransition($user, $transition, $_POST["comment"])) { if ($notifier) { - $nl = $document->getNotifyList(); - $folder = $document->getFolder(); - $subject = "transition_triggered_email_subject"; - $message = "transition_triggered_email_body"; - $params = array(); - $params['name'] = $document->getName(); - $params['version'] = $version->getVersion(); - $params['workflow'] = $workflow->getName(); - $params['action'] = $transition->getAction()->getName(); - $params['folder_path'] = $folder->getFolderPathPlain(); - $params['comment'] = $_POST["comment"]; - $params['previous_state'] = $transition->getState()->getName(); - $params['current_state'] = $transition->getNextState()->getName(); - $params['username'] = $user->getFullName(); - $params['sitename'] = $settings->_siteName; - $params['http_root'] = $settings->_httpRoot; - $params['url'] = getBaseUrl().$settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID(); + $wkflog = $version->getWorkflowLog($transition); + $notifier->sendTriggerWorkflowTransitionMail($version, $user, $wkflog ? $wkflog[0] : false); - // Send notification to subscribers. - $notifier->toList($user, $nl["users"], $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); - foreach ($nl["groups"] as $grp) { - $notifier->toGroup($user, $grp, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); - } - - if($settings->_enableNotificationWorkflow) { - $subject = "request_workflow_action_email_subject"; - $message = "request_workflow_action_email_body"; - $params = array(); - $params['name'] = $document->getName(); - $params['version'] = $version->getVersion(); - $params['workflow'] = $workflow->getName(); - $params['folder_path'] = $folder->getFolderPathPlain(); - $params['current_state'] = $transition->getNextState()->getName(); - $params['username'] = $user->getFullName(); - $params['sitename'] = $settings->_siteName; - $params['http_root'] = $settings->_httpRoot; - $params['url'] = getBaseUrl().$settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID(); - - $usersinformed = array(); - $groupsinformed = array(); - foreach($workflow->getNextTransitions($transition->getNextState()) as $ntransition) { - foreach($ntransition->getUsers() as $tuser) { - if(!in_array($tuser->getUser()->getID(), $usersinformed)) { - $usersinformed[] = $tuser->getUser()->getID(); - $notifier->toIndividual($user, $tuser->getUser(), $subject, $message, $params, SeedDMS_NotificationService::RECV_WORKFLOW); - } - } - foreach($ntransition->getGroups() as $tuser) { - if(!in_array($tuser->getGroup()->getID(), $groupsinformed)) { - $groupsinformed[] = $tuser->getGroup()->getID(); - $notifier->toGroup($user, $tuser->getGroup(), $subject, $message, $params, SeedDMS_NotificationService::RECV_WORKFLOW); - } - } - } - } + $notifier->sendRequestWorkflowActionMail($version, $user, $transition); } $session->setSplashMsg(array('type'=>'success', 'msg'=>getMLText('splash_trigger_workflow'))); From 33c10fc1dba85eb03dd88c2adfc5901810055f38 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 30 Aug 2021 19:34:38 +0200 Subject: [PATCH 025/413] add some documentation in comments --- SeedDMS_Core/Core/inc.ClassDocument.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/SeedDMS_Core/Core/inc.ClassDocument.php b/SeedDMS_Core/Core/inc.ClassDocument.php index 7e216019c..fd10acde1 100644 --- a/SeedDMS_Core/Core/inc.ClassDocument.php +++ b/SeedDMS_Core/Core/inc.ClassDocument.php @@ -3404,6 +3404,8 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ /** * Return a list of all reviewers separated by individuals and groups + * This list will not take the review log into account. Therefore it + * can contain which has actually been deleted as a reviewer. * * @return array|bool|null */ @@ -3433,7 +3435,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ /** * Get the current review status of the document content - * The review status is a list of reviews and its current status + * The review status is a list of reviewers and its current status * * @param integer $limit the number of recent status changes per reviewer * @return array list of review status @@ -3582,6 +3584,8 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ /** * Return a list of all approvers separated by individuals and groups + * This list will not take the approval log into account. Therefore it + * can contain which has actually been deleted as an approver. * * @return array|bool|null */ @@ -3611,7 +3615,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ /** * Get the current approval status of the document content - * The approval status is a list of approvals and its current status + * The approval status is a list of approvers and its current status * * @param integer $limit the number of recent status changes per approver * @return array list of approval status From 13ad0788a396df55e6888a24b516b73103d63033 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 30 Aug 2021 19:35:08 +0200 Subject: [PATCH 026/413] send notification mail when new attachment was added --- op/op.Ajax.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/op/op.Ajax.php b/op/op.Ajax.php index af947601e..70a75c1f4 100644 --- a/op/op.Ajax.php +++ b/op/op.Ajax.php @@ -896,6 +896,9 @@ switch($command) { header('Content-Type: application/json'); echo json_encode(array('success'=>false, 'message'=>getMLText('error_occured'), 'data'=>'')); } else { + if($notifier) { + $notifier->sendNewFileMail($res, $user); + } header('Content-Type: application/json'); echo json_encode(array('success'=>true, 'message'=>getMLText('splash_document_added'), 'data'=>$document->getID())); add_log_line(); From 3951c3ec38e62a72f12462855c5cae12b351e3aa Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 30 Aug 2021 19:35:47 +0200 Subject: [PATCH 027/413] call sendReviewRequestMail() after review was removed --- op/op.RemoveReviewLog.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/op/op.RemoveReviewLog.php b/op/op.RemoveReviewLog.php index 1ec2b00b3..6c2582ad5 100644 --- a/op/op.RemoveReviewLog.php +++ b/op/op.RemoveReviewLog.php @@ -93,7 +93,13 @@ if($reviewStatus['type'] == 0) { UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("invalid_reviewid")); $comment = $_POST["comment"]; +$overallStatus = $latestContent->getStatus(); if(0 == $latestContent->removeReview($reviewid, $user, $comment)) { $latestContent->verifyStatus(true, $user, $msg); + if($notifier) { + $notifier->sendReviewRequestMail($latestContent, $user); + if($overallStatus['status'] != $latestContent->getStatus()['status']) + $notifier->sendChangedDocumentStatusMail($latestContent, $user, $overallStatus["status"]); + } } header("Location:../out/out.ViewDocument.php?documentid=".$documentid."¤ttab=revapp"); From 6dac961e9cd8bb68428a22d7dae2a24eedfadee1 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 30 Aug 2021 19:36:40 +0200 Subject: [PATCH 028/413] call sendChangedDocumentStatusMail() if status has changed --- op/op.TriggerWorkflow.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/op/op.TriggerWorkflow.php b/op/op.TriggerWorkflow.php index ab40ade03..c78319d77 100644 --- a/op/op.TriggerWorkflow.php +++ b/op/op.TriggerWorkflow.php @@ -76,12 +76,16 @@ if(isset($GLOBALS['SEEDDMS_HOOKS']['triggerWorkflowTransition'])) { } } +$overallStatus = $version->getStatus(); if($version->triggerWorkflowTransition($user, $transition, $_POST["comment"])) { if ($notifier) { $wkflog = $version->getWorkflowLog($transition); $notifier->sendTriggerWorkflowTransitionMail($version, $user, $wkflog ? $wkflog[0] : false); $notifier->sendRequestWorkflowActionMail($version, $user, $transition); + if($overallStatus['status'] != $version->getStatus()['status']) { + $notifier->sendChangedDocumentStatusMail($version, $user, $overallStatus["status"]); + } } $session->setSplashMsg(array('type'=>'success', 'msg'=>getMLText('splash_trigger_workflow'))); From a4276a42a96fd1aba9f9f928824c85542abc99c7 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 30 Aug 2021 19:39:29 +0200 Subject: [PATCH 029/413] add and use sendRewindWorkflowMail() --- inc/inc.ClassNotificationService.php | 29 ++++++++++++++++++++++++++++ op/op.RewindWorkflow.php | 20 +------------------ 2 files changed, 30 insertions(+), 19 deletions(-) diff --git a/inc/inc.ClassNotificationService.php b/inc/inc.ClassNotificationService.php index 55c3c8c1b..2af75c514 100644 --- a/inc/inc.ClassNotificationService.php +++ b/inc/inc.ClassNotificationService.php @@ -1119,5 +1119,34 @@ class SeedDMS_NotificationService { } } } /* }}} */ + + /** + * This notification is sent when a workflow is rewinded. + */ + public function sendRewindWorkflowMail($content, $user) { /* {{{ */ + $document = $content->getDocument(); + $folder = $document->getFolder(); + $workflow = $content->getWorkflow(); + + $nl = $document->getNotifyList(); + $folder = $document->getFolder(); + + $subject = "rewind_workflow_email_subject"; + $message = "rewind_workflow_email_body"; + $params = array(); + $params['name'] = $document->getName(); + $params['version'] = $content->getVersion(); + $params['workflow'] = $workflow->getName(); + $params['folder_path'] = $folder->getFolderPathPlain(); + $params['username'] = $user->getFullName(); + $params['sitename'] = $this->settings->_siteName; + $params['http_root'] = $this->settings->_httpRoot; + $params['url'] = getBaseUrl().$this->settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID()."¤ttab=workflow"; + // Send notification to subscribers. + $this->toList($user, $nl["users"], $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); + foreach ($nl["groups"] as $grp) { + $this->toGroup($user, $grp, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); + } + } /* }}} */ } diff --git a/op/op.RewindWorkflow.php b/op/op.RewindWorkflow.php index b9a67045d..b01b6a278 100644 --- a/op/op.RewindWorkflow.php +++ b/op/op.RewindWorkflow.php @@ -62,25 +62,7 @@ if (!is_object($workflow)) { if($version->rewindWorkflow()) { if ($notifier) { - $nl = $document->getNotifyList(); - $folder = $document->getFolder(); - - $subject = "rewind_workflow_email_subject"; - $message = "rewind_workflow_email_body"; - $params = array(); - $params['name'] = $document->getName(); - $params['version'] = $version->getVersion(); - $params['workflow'] = $workflow->getName(); - $params['folder_path'] = $folder->getFolderPathPlain(); - $params['username'] = $user->getFullName(); - $params['sitename'] = $settings->_siteName; - $params['http_root'] = $settings->_httpRoot; - $params['url'] = getBaseUrl().$settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID(); - // Send notification to subscribers. - $notifier->toList($user, $nl["users"], $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); - foreach ($nl["groups"] as $grp) { - $notifier->toGroup($user, $grp, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); - } + $notifier->sendRewindWorkflowMail($version, $user); } } From aadcbbd9797a55709774c7ce665143ed80c40b7a Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 30 Aug 2021 19:40:10 +0200 Subject: [PATCH 030/413] check if workflow exists in sendRequestWorkflowActionMail() --- inc/inc.ClassNotificationService.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/inc/inc.ClassNotificationService.php b/inc/inc.ClassNotificationService.php index 2af75c514..583a2177a 100644 --- a/inc/inc.ClassNotificationService.php +++ b/inc/inc.ClassNotificationService.php @@ -1076,11 +1076,11 @@ class SeedDMS_NotificationService { public function sendRequestWorkflowActionMail($content, $user, $transition=null) { /* {{{ */ $document = $content->getDocument(); $folder = $document->getFolder(); + if(!($workflow = $content->getWorkflow())) + return; if($transition) { - $workflow = $transition->getWorkflow(); $state = $transition->getNextState(); } else { - $workflow = $content->getWorkflow(); $state = $workflow->getInitState(); } From cd10bcaea3afd8dae3dccf55805e6aa53dcc83d9 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 30 Aug 2021 19:40:43 +0200 Subject: [PATCH 031/413] add sendApprovalRequestMail() and sendReviewRequestMail() --- inc/inc.ClassNotificationService.php | 88 +++++++++++++++++++++++++++- 1 file changed, 87 insertions(+), 1 deletion(-) diff --git a/inc/inc.ClassNotificationService.php b/inc/inc.ClassNotificationService.php index 583a2177a..c6847d2c8 100644 --- a/inc/inc.ClassNotificationService.php +++ b/inc/inc.ClassNotificationService.php @@ -147,8 +147,12 @@ class SeedDMS_NotificationService { /** * This notification is sent when a review or approval is needed. + * The method is only called by sendNewDocumentMail() and sendNewDocumentVersionMail(). + * It does not care about the current status of an approval or review, but + * informs an reviewer and approver. Hence, it should only be called + * right after a new document version was created. */ - public function sendRequestRevAppActionMail($content, $user) { /* {{{ */ + private function sendRequestRevAppActionMail($content, $user) { /* {{{ */ $document = $content->getDocument(); $folder = $document->getFolder(); @@ -200,6 +204,88 @@ class SeedDMS_NotificationService { } } /* }}} */ + /** + * This notification is sent when a review is needed. + * In opposite to sendRequestRevAppActionMail() this method checks review status + * and informs only those reviewers about a required review who have not + * reviewed the document yet. + */ + public function sendReviewRequestMail($content, $user) { /* {{{ */ + $document = $content->getDocument(); + $dms = $document->getDMS(); + $folder = $document->getFolder(); + + if($this->settings->_enableNotificationAppRev) { + $subject = "review_request_email_subject"; + $message = "review_request_email_body"; + $params = array(); + $params['name'] = $document->getName(); + $params['folder_path'] = $folder->getFolderPathPlain(); + $params['version'] = $content->getVersion(); + $params['comment'] = $document->getComment(); + $params['username'] = $user->getFullName(); + $params['url'] = getBaseUrl().$this->settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID()."¤ttab=revapp"; + $params['sitename'] = $this->settings->_siteName; + $params['http_root'] = $this->settings->_httpRoot; + + $reviewStatus = $content->getReviewStatus(); + foreach($reviewStatus as $dastat) { + if ($dastat["status"] == 0) { + if ($dastat["type"] == 0) { + + $reviewer = $dms->getUser($dastat["required"]); + $this->toIndividual($document->getOwner(), $reviewer, $subject, $message, $params, SeedDMS_NotificationService::RECV_REVIEWER); + } elseif ($dastat["type"] == 1) { + + $group = $dms->getGroup($dastat["required"]); + $this->toGroup($document->getOwner(), $group, $subject, $message, $params, SeedDMS_NotificationService::RECV_REVIEWER); + } + } + } + } + } /* }}} */ + + /** + * This notification is sent when a review is needed. + * In opposite to sendRequestRevAppActionMail() this method checks the approval status + * and informs only those reviewers about a required approval who have not + * approved the document yet. + */ + public function sendApprovalRequestMail($content, $user) { /* {{{ */ + $document = $content->getDocument(); + $dms = $document->getDMS(); + $folder = $document->getFolder(); + + if($this->settings->_enableNotificationAppRev) { + $subject = "approval_request_email_subject"; + $message = "approval_request_email_body"; + $params = array(); + $params['name'] = $document->getName(); + $params['folder_path'] = $folder->getFolderPathPlain(); + $params['version'] = $content->getVersion(); + $params['comment'] = $document->getComment(); + $params['username'] = $user->getFullName(); + $params['url'] = getBaseUrl().$this->settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID()."¤ttab=revapp"; + $params['sitename'] = $this->settings->_siteName; + $params['http_root'] = $this->settings->_httpRoot; + + $approvalStatus = $content->getApprovalStatus(); + foreach($approvalStatus as $dastat) { + if ($dastat["status"] == 0) { + if ($dastat["type"] == 0) { + + $approver = $dms->getUser($dastat["required"]); + $this->toIndividual($document->getOwner(), $approver, $subject, $message, $params, SeedDMS_NotificationService::RECV_APPROVER); + } elseif ($dastat["type"] == 1) { + + $group = $dms->getGroup($dastat["required"]); + $this->toGroup($document->getOwner(), $group, $subject, $message, $params, SeedDMS_NotificationService::RECV_APPROVER); + } + } + } + } + } /* }}} */ + /** * This notification is sent when a new document is created. */ From 1d5164c2ab83f1ea1b631f62b3a9df2efdb0d34d Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 30 Aug 2021 19:41:26 +0200 Subject: [PATCH 032/413] use sendChangedDocumentStatusMail() --- op/op.ReviewDocument.php | 76 +++++++--------------------------------- 1 file changed, 12 insertions(+), 64 deletions(-) diff --git a/op/op.ReviewDocument.php b/op/op.ReviewDocument.php index 1547f1541..58576ab6d 100644 --- a/op/op.ReviewDocument.php +++ b/op/op.ReviewDocument.php @@ -130,29 +130,12 @@ else if ($_POST["reviewType"] == "grp") { // updated. // +$overallStatus = $content->getStatus(); if ($_POST["reviewStatus"]==-1){ - if($content->setStatus(S_REJECTED,$comment,$user)) { // Send notification to subscribers. if($notifier) { - $nl=$document->getNotifyList(); - $folder = $document->getFolder(); - $subject = "document_status_changed_email_subject"; - $message = "document_status_changed_email_body"; - $params = array(); - $params['name'] = $document->getName(); - $params['folder_path'] = $folder->getFolderPathPlain(); - $params['status'] = getReviewStatusText(S_REJECTED); - $params['new_status_code'] = S_REJECTED; - $params['username'] = $user->getFullName(); - $params['sitename'] = $settings->_siteName; - $params['http_root'] = $settings->_httpRoot; - $params['url'] = getBaseUrl().$settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID(); - $notifier->toList($user, $nl["users"], $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); - foreach ($nl["groups"] as $grp) { - $notifier->toGroup($user, $grp, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); - } -// $notifier->toIndividual($user, $content->getUser(), $subject, $message, $params, SeedDMS_NotificationService::RECV_OWNER); + $notifier->sendChangedDocumentStatusMail($content, $user, $overallStatus["status"]); } } @@ -201,54 +184,19 @@ if ($_POST["reviewStatus"]==-1){ if ($content->setStatus($newStatus, getMLText("automatic_status_update"), $user)) { // Send notification to subscribers. if($notifier) { - $nl=$document->getNotifyList(); - $folder = $document->getFolder(); - $subject = "document_status_changed_email_subject"; - $message = "document_status_changed_email_body"; - $params = array(); - $params['name'] = $document->getName(); - $params['folder_path'] = $folder->getFolderPathPlain(); - $params['status'] = getReviewStatusText($newStatus); - $params['new_status_code'] = $newStatus; - $params['username'] = $user->getFullName(); - $params['sitename'] = $settings->_siteName; - $params['http_root'] = $settings->_httpRoot; - $notifier->toList($user, $nl["users"], $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); - foreach ($nl["groups"] as $grp) { - $notifier->toGroup($user, $grp, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); + $notifier->sendChangedDocumentStatusMail($content, $user, $overallStatus["status"]); + + // Notify approvers, if necessary. + if ($newStatus == S_DRAFT_APP) { + $requestUser = $document->getOwner(); + $notifier->sendApprovalRequestMail($content, $user); } } - - // TODO: if user os not owner send notification to owner - // Notify approvers, if necessary. - if ($newStatus == S_DRAFT_APP) { - $requestUser = $document->getOwner(); - - if($notifier) { - $subject = "approval_request_email_subject"; - $message = "approval_request_email_body"; - $params = array(); - $params['name'] = $document->getName(); - $params['folder_path'] = $folder->getFolderPathPlain(); - $params['version'] = $version; - $params['username'] = $user->getFullName(); - $params['sitename'] = $settings->_siteName; - $params['http_root'] = $settings->_httpRoot; - $params['url'] = getBaseUrl().$settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID()."¤ttab=revapp"; - foreach ($docApprovalStatus as $dastat) { - - if ($dastat["status"] == 0) { - if ($dastat["type"] == 0) { - - $approver = $dms->getUser($dastat["required"]); - $notifier->toIndividual($document->getOwner(), $approver, $subject, $message, $params, SeedDMS_NotificationService::RECV_APPROVER); - } elseif ($dastat["type"] == 1) { - - $group = $dms->getGroup($dastat["required"]); - $notifier->toGroup($document->getOwner(), $group, $subject, $message, $params, SeedDMS_NotificationService::RECV_APPROVER); - } - } + if(isset($GLOBALS['SEEDDMS_HOOKS']['reviewDocument'])) { + foreach($GLOBALS['SEEDDMS_HOOKS']['reviewDocument'] as $hookObj) { + if (method_exists($hookObj, 'postReviewDocument')) { + $hookObj->postReviewDocument(null, $content, $newStatus); } } } From df8e0c29e92e6a8d8d251879095419ab4c929483 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 31 Aug 2021 10:26:34 +0200 Subject: [PATCH 033/413] add methods to inform a user/group about adding/deleting as a reviewer/approver --- inc/inc.ClassNotificationService.php | 102 +++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) diff --git a/inc/inc.ClassNotificationService.php b/inc/inc.ClassNotificationService.php index c6847d2c8..8061a27de 100644 --- a/inc/inc.ClassNotificationService.php +++ b/inc/inc.ClassNotificationService.php @@ -1039,6 +1039,108 @@ class SeedDMS_NotificationService { } /* }}} */ + public function sendDeleteApprovalMail($content, $user, $approver) { /* {{{ */ + $document = $content->getDocument(); + $folder = $document->getFolder(); + $subject = "approval_deletion_email_subject"; + $message = "approval_deletion_email_body"; + $params = array(); + $params['name'] = $document->getName(); + $params['folder_path'] = $folder->getFolderPathPlain(); + $params['version'] = $content->getVersion(); + $params['comment'] = $content->getComment(); + $params['username'] = $user->getFullName(); + $params['sitename'] = $this->settings->_siteName; + $params['http_root'] = $this->settings->_httpRoot; + $params['url'] = getBaseUrl().$this->settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID(); + + if($approver->isType('user')) + $this->toIndividual($user, $approver, $subject, $message, $params, SeedDMS_NotificationService::RECV_APPROVER); + elseif($approver->isType('group')) + $this->toGroup($user, $approver, $subject, $message, $params, SeedDMS_NotificationService::RECV_APPROVER); + } /* }}} */ + + public function sendDeleteReviewMail($content, $user, $reviewer) { /* {{{ */ + $document = $content->getDocument(); + $folder = $document->getFolder(); + $subject = "review_deletion_email_subject"; + $message = "review_deletion_email_body"; + $params = array(); + $params['name'] = $document->getName(); + $params['folder_path'] = $folder->getFolderPathPlain(); + $params['version'] = $content->getVersion(); + $params['comment'] = $content->getComment(); + $params['username'] = $user->getFullName(); + $params['sitename'] = $this->settings->_siteName; + $params['http_root'] = $this->settings->_httpRoot; + $params['url'] = getBaseUrl().$this->settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID(); + + if($reviewer->isType('user')) + $this->toIndividual($user, $reviewer, $subject, $message, $params, SeedDMS_NotificationService::RECV_REVIEWER); + elseif($approver->isType('group')) + $this->toGroup($user, $reviewer, $subject, $message, $params, SeedDMS_NotificationService::RECV_REVIEWER); + } /* }}} */ + + /** + * This notification is send if a new approver is added. + * + * In most cases all approvers are informed with sendApprovalRequestMail() + * when a new document version is added, + * but this method informs just a single approver (user or group), when the + * approver was added at a later point in time. + */ + public function sendAddApprovalMail($content, $user, $approver) { /* {{{ */ + $document = $content->getDocument(); + $folder = $document->getFolder(); + + $subject = "approval_request_email_subject"; + $message = "approval_request_email_body"; + $params = array(); + $params['name'] = $document->getName(); + $params['folder_path'] = $folder->getFolderPathPlain(); + $params['version'] = $content->getVersion(); + $params['comment'] = $content->getComment(); + $params['username'] = $user->getFullName(); + $params['url'] = getBaseUrl().$settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID(); + $params['sitename'] = $settings->_siteName; + $params['http_root'] = $settings->_httpRoot; + + if($approver->isType('user')) + $this->toIndividual($user, $approver, $subject, $message, $params, SeedDMS_NotificationService::RECV_APPROVER); + elseif($approver->isType('group')) + $this->toGroup($user, $approver, $subject, $message, $params, SeedDMS_NotificationService::RECV_APPROVER); + } /* }}} */ + + /** + * This notification is send if a new reviewer is added. + * + * In most cases all reviewers are informed with sendReviewRequestMail() + * when a new document version is added, + * but this method informs just a single reviewer (user or group), when the + * reviewer was added at a later point in time. + */ + public function sendAddReviewMail($content, $user, $reviewer) { /* {{{ */ + $document = $content->getDocument(); + $folder = $document->getFolder(); + + $subject = "review_request_email_subject"; + $message = "review_request_email_body"; + $params = array(); + $params['name'] = $document->getName(); + $params['folder_path'] = $folder->getFolderPathPlain(); + $params['version'] = $content->getVersion(); + $params['comment'] = $content->getComment(); + $params['username'] = $user->getFullName(); + $params['url'] = getBaseUrl().$settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID(); + $params['sitename'] = $settings->_siteName; + $params['http_root'] = $settings->_httpRoot; + + if($reviewer->isType('user')) + $this->toIndividual($user, $reviewer, $subject, $message, $params, SeedDMS_NotificationService::RECV_REVIEWER); + elseif($reviewer->isType('group')) + $this->toGroup($user, $reviewer, $subject, $message, $params, SeedDMS_NotificationService::RECV_REVIEWER); + } /* }}} */ + public function sendChangedDocumentOwnerMail($document, $user, $oldowner) { /* {{{ */ if($oldowner->getID() != $document->getOwner()->getID()) { $notifyList = $document->getNotifyList(); From 200806effde43a92c69dc7f78f2bef9caa119782 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 31 Aug 2021 10:27:20 +0200 Subject: [PATCH 034/413] use new methods to inform approvers/reviewers about deleting/adding a review/approval --- op/op.SetReviewersApprovers.php | 76 +++++++++++---------------------- 1 file changed, 24 insertions(+), 52 deletions(-) diff --git a/op/op.SetReviewersApprovers.php b/op/op.SetReviewersApprovers.php index 1abc8ed3d..07a1a9536 100644 --- a/op/op.SetReviewersApprovers.php +++ b/op/op.SetReviewersApprovers.php @@ -132,19 +132,7 @@ foreach ($pIndRev as $p) { // Send an email notification to the new reviewer. if($settings->_enableNotificationAppRev) { if ($notifier) { - $subject = "review_request_email_subject"; - $message = "review_request_email_body"; - $params = array(); - $params['name'] = $document->getName(); - $params['folder_path'] = $folder->getFolderPathPlain(); - $params['version'] = $content->getVersion(); - $params['comment'] = $content->getComment(); - $params['username'] = $user->getFullName(); - $params['url'] = getBaseUrl().$settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID(); - $params['sitename'] = $settings->_siteName; - $params['http_root'] = $settings->_httpRoot; - - $notifier->toIndividual($user, $docAccess["users"][$accessIndex["i"][$p]], $subject, $message, $params, SeedDMS_NotificationService::RECV_REVIEWER); + $notifier->sendAddReviewMail($content, $user, $docAccess["users"][$accessIndex["i"][$p]]); } } break; @@ -198,6 +186,8 @@ if (count($reviewIndex["i"]) > 0) { // Send an email notification to the reviewer. if($settings->_enableNotificationAppRev) { if ($notifier) { + $notifier->sendDeleteReviewMail($content, $user, $docAccess["users"][$accessIndex["i"][$rx]]); + /* $subject = "review_deletion_email_subject"; $message = "review_deletion_email_body"; $params = array(); @@ -211,6 +201,7 @@ if (count($reviewIndex["i"]) > 0) { $params['http_root'] = $settings->_httpRoot; $notifier->toIndividual($user, $docAccess["users"][$accessIndex["i"][$rx]], $subject, $message, $params, SeedDMS_NotificationService::RECV_REVIEWER); + */ } } break; @@ -244,19 +235,7 @@ foreach ($pGrpRev as $p) { // Send an email notification to the new reviewer. if($settings->_enableNotificationAppRev) { if ($notifier) { - $subject = "review_request_email_subject"; - $message = "review_request_email_body"; - $params = array(); - $params['name'] = $document->getName(); - $params['folder_path'] = $folder->getFolderPathPlain(); - $params['version'] = $content->getVersion(); - $params['comment'] = $content->getComment(); - $params['username'] = $user->getFullName(); - $params['url'] = getBaseUrl().$settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID(); - $params['sitename'] = $settings->_siteName; - $params['http_root'] = $settings->_httpRoot; - - $notifier->toGroup($user, $docAccess["groups"][$accessIndex["g"][$p]], $subject, $message, $params, SeedDMS_NotificationService::RECV_REVIEWER); + $notifier->sendAddReviewMail($content, $user, $docAccess["groups"][$accessIndex["g"][$p]]); } } break; @@ -302,6 +281,8 @@ if (count($reviewIndex["g"]) > 0) { // Send an email notification to the review group. if($settings->_enableNotificationAppRev) { if ($notifier) { + $notifier->sendDeleteReviewMail($content, $user, $docAccess["groups"][$accessIndex["g"][$rx]]); + /* $subject = "review_deletion_email_subject"; $message = "review_deletion_email_body"; $params = array(); @@ -315,6 +296,7 @@ if (count($reviewIndex["g"]) > 0) { $params['http_root'] = $settings->_httpRoot; $notifier->toGroup($user, $docAccess["groups"][$accessIndex["g"][$rx]], $subject, $message, $params, SeedDMS_NotificationService::RECV_REVIEWER); + */ } } break; @@ -363,20 +345,12 @@ foreach ($pIndApp as $p) { case 0: // Send an email notification to the new approver. if($settings->_enableNotificationAppRev) { + /* Send notification only if document is currently not in review state, + * because then the approvers will be informed anyway when review state + * is left and approval state is entered. + */ if ($overallStatus["status"]!=0 && $notifier) { - $subject = "approval_request_email_subject"; - $message = "approval_request_email_body"; - $params = array(); - $params['name'] = $document->getName(); - $params['folder_path'] = $folder->getFolderPathPlain(); - $params['version'] = $content->getVersion(); - $params['comment'] = $content->getComment(); - $params['username'] = $user->getFullName(); - $params['url'] = getBaseUrl().$settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID(); - $params['sitename'] = $settings->_siteName; - $params['http_root'] = $settings->_httpRoot; - - $notifier->toIndividual($user, $docAccess["users"][$accessIndex["i"][$p]], $subject, $message, $params, SeedDMS_NotificationService::RECV_APPROVER); + $notifier->sendAddApprovalMail($content, $user, $docAccess["users"][$accessIndex["i"][$p]]); } } break; @@ -422,6 +396,8 @@ if (count($approvalIndex["i"]) > 0) { // Send an email notification to the approver. if($settings->_enableNotificationAppRev) { if ($notifier) { + $notifier->sendDeleteApprovalMail($content, $user, $docAccess["users"][$accessIndex["i"][$rx]]); + /* $subject = "approval_deletion_email_subject"; $message = "approval_deletion_email_body"; $params = array(); @@ -435,6 +411,7 @@ if (count($approvalIndex["i"]) > 0) { $params['http_root'] = $settings->_httpRoot; $notifier->toIndividual($user, $docAccess["users"][$accessIndex["i"][$rx]], $subject, $message, $params, SeedDMS_NotificationService::RECV_APPROVER); + */ } } break; @@ -467,20 +444,12 @@ foreach ($pGrpApp as $p) { case 0: // Send an email notification to the new approver. if($settings->_enableNotificationAppRev) { + /* Send notification only if document is currently not in review state, + * because then the approvers will be informed anyway when review state + * is left and approval state is entered. + */ if ($overallStatus["status"]!=0 && $notifier) { - $subject = "approval_request_email_subject"; - $message = "approval_request_email_body"; - $params = array(); - $params['name'] = $document->getName(); - $params['folder_path'] = $folder->getFolderPathPlain(); - $params['version'] = $content->getVersion(); - $params['comment'] = $content->getComment(); - $params['username'] = $user->getFullName(); - $params['url'] = getBaseUrl().$settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID(); - $params['sitename'] = $settings->_siteName; - $params['http_root'] = $settings->_httpRoot; - - $notifier->toGroup($user, $docAccess["groups"][$accessIndex["g"][$p]], $subject, $message, $params, SeedDMS_NotificationService::RECV_APPROVER); + $notifier->sendAddApprovalMail($content, $user, $docAccess["groups"][$accessIndex["g"][$p]]); } } break; @@ -526,6 +495,8 @@ if (count($approvalIndex["g"]) > 0) { // Send an email notification to the approval group. if($settings->_enableNotificationAppRev) { if ($notifier) { + $notifier->sendDeleteApprovalMail($content, $user, $docAccess["groups"][$accessIndex["g"][$rx]]); + /* $subject = "approval_deletion_email_subject"; $message = "approval_deletion_email_body"; $params = array(); @@ -539,6 +510,7 @@ if (count($approvalIndex["g"]) > 0) { $params['http_root'] = $settings->_httpRoot; $notifier->toGroup($user, $docAccess["groups"][$accessIndex["g"][$rx]], $subject, $message, $params, SeedDMS_NotificationService::RECV_APPROVER); + */ } } break; From 67ab9fbf71c187b4a33d84455ac0dbf197b6eb2e Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 31 Aug 2021 10:29:56 +0200 Subject: [PATCH 035/413] remove old code --- op/op.SetReviewersApprovers.php | 60 --------------------------------- 1 file changed, 60 deletions(-) diff --git a/op/op.SetReviewersApprovers.php b/op/op.SetReviewersApprovers.php index 07a1a9536..77cc69875 100644 --- a/op/op.SetReviewersApprovers.php +++ b/op/op.SetReviewersApprovers.php @@ -187,21 +187,6 @@ if (count($reviewIndex["i"]) > 0) { if($settings->_enableNotificationAppRev) { if ($notifier) { $notifier->sendDeleteReviewMail($content, $user, $docAccess["users"][$accessIndex["i"][$rx]]); - /* - $subject = "review_deletion_email_subject"; - $message = "review_deletion_email_body"; - $params = array(); - $params['name'] = $document->getName(); - $params['folder_path'] = $folder->getFolderPathPlain(); - $params['version'] = $content->getVersion(); - $params['comment'] = $content->getComment(); - $params['username'] = $user->getFullName(); - $params['url'] = getBaseUrl().$settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID(); - $params['sitename'] = $settings->_siteName; - $params['http_root'] = $settings->_httpRoot; - - $notifier->toIndividual($user, $docAccess["users"][$accessIndex["i"][$rx]], $subject, $message, $params, SeedDMS_NotificationService::RECV_REVIEWER); - */ } } break; @@ -282,21 +267,6 @@ if (count($reviewIndex["g"]) > 0) { if($settings->_enableNotificationAppRev) { if ($notifier) { $notifier->sendDeleteReviewMail($content, $user, $docAccess["groups"][$accessIndex["g"][$rx]]); - /* - $subject = "review_deletion_email_subject"; - $message = "review_deletion_email_body"; - $params = array(); - $params['name'] = $document->getName(); - $params['folder_path'] = $folder->getFolderPathPlain(); - $params['version'] = $content->getVersion(); - $params['comment'] = $content->getComment(); - $params['username'] = $user->getFullName(); - $params['url'] = getBaseUrl().$settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID(); - $params['sitename'] = $settings->_siteName; - $params['http_root'] = $settings->_httpRoot; - - $notifier->toGroup($user, $docAccess["groups"][$accessIndex["g"][$rx]], $subject, $message, $params, SeedDMS_NotificationService::RECV_REVIEWER); - */ } } break; @@ -397,21 +367,6 @@ if (count($approvalIndex["i"]) > 0) { if($settings->_enableNotificationAppRev) { if ($notifier) { $notifier->sendDeleteApprovalMail($content, $user, $docAccess["users"][$accessIndex["i"][$rx]]); - /* - $subject = "approval_deletion_email_subject"; - $message = "approval_deletion_email_body"; - $params = array(); - $params['name'] = $document->getName(); - $params['folder_path'] = $folder->getFolderPathPlain(); - $params['version'] = $content->getVersion(); - $params['comment'] = $content->getComment(); - $params['username'] = $user->getFullName(); - $params['url'] = getBaseUrl().$settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID(); - $params['sitename'] = $settings->_siteName; - $params['http_root'] = $settings->_httpRoot; - - $notifier->toIndividual($user, $docAccess["users"][$accessIndex["i"][$rx]], $subject, $message, $params, SeedDMS_NotificationService::RECV_APPROVER); - */ } } break; @@ -496,21 +451,6 @@ if (count($approvalIndex["g"]) > 0) { if($settings->_enableNotificationAppRev) { if ($notifier) { $notifier->sendDeleteApprovalMail($content, $user, $docAccess["groups"][$accessIndex["g"][$rx]]); - /* - $subject = "approval_deletion_email_subject"; - $message = "approval_deletion_email_body"; - $params = array(); - $params['name'] = $document->getName(); - $params['folder_path'] = $folder->getFolderPathPlain(); - $params['version'] = $content->getVersion(); - $params['comment'] = $content->getComment(); - $params['username'] = $user->getFullName(); - $params['url'] = getBaseUrl().$settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID(); - $params['sitename'] = $settings->_siteName; - $params['http_root'] = $settings->_httpRoot; - - $notifier->toGroup($user, $docAccess["groups"][$accessIndex["g"][$rx]], $subject, $message, $params, SeedDMS_NotificationService::RECV_APPROVER); - */ } } break; From ce621bb6b848965e539c8c58f057ac3f2c1b4201 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 31 Aug 2021 13:32:36 +0200 Subject: [PATCH 036/413] add entry for 5.1.24 --- CHANGELOG | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG b/CHANGELOG index ab5c3f6c4..f4ddada70 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -2,6 +2,7 @@ Changes in version 5.1.24 -------------------------------------------------------------------------------- - fix sending of some notification mails to groups +- major overhaul of notifications - check view access for FolderAccess and DocumentAccess -------------------------------------------------------------------------------- From d00ac5c1b0c4cb4490658eaf8b193f0ba27c6fb3 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 6 Sep 2021 16:32:24 +0200 Subject: [PATCH 037/413] add html body of all notification mails --- languages/ar_EG/lang.inc | 44 ++++ languages/bg_BG/lang.inc | 44 ++++ languages/ca_ES/lang.inc | 44 ++++ languages/cs_CZ/lang.inc | 44 ++++ languages/de_DE/lang.inc | 412 ++++++++++++++++++++++++++++++--- languages/el_GR/lang.inc | 44 ++++ languages/en_GB/lang.inc | 479 ++++++++++++++++++++++++++++++++++----- languages/es_ES/lang.inc | 48 +++- languages/fr_FR/lang.inc | 44 ++++ languages/hr_HR/lang.inc | 44 ++++ languages/hu_HU/lang.inc | 44 ++++ languages/it_IT/lang.inc | 44 ++++ languages/ko_KR/lang.inc | 44 ++++ languages/lo_LA/lang.inc | 44 ++++ languages/nb_NO/lang.inc | 44 ++++ languages/nl_NL/lang.inc | 44 ++++ languages/pl_PL/lang.inc | 44 ++++ languages/pt_BR/lang.inc | 44 ++++ languages/ro_RO/lang.inc | 44 ++++ languages/ru_RU/lang.inc | 48 +++- languages/sk_SK/lang.inc | 44 ++++ languages/sv_SE/lang.inc | 44 ++++ languages/tr_TR/lang.inc | 44 ++++ languages/uk_UA/lang.inc | 44 ++++ languages/zh_CN/lang.inc | 44 ++++ languages/zh_TW/lang.inc | 44 ++++ 26 files changed, 1868 insertions(+), 87 deletions(-) diff --git a/languages/ar_EG/lang.inc b/languages/ar_EG/lang.inc index 36ca7a2ac..c0bf63721 100644 --- a/languages/ar_EG/lang.inc +++ b/languages/ar_EG/lang.inc @@ -50,6 +50,7 @@ Document: [name] Parent folder: [folder_path] User: [username] URL: [url]', +'access_permission_changed_email_body_html' => '', 'access_permission_changed_email_subject' => '[sitename]: [name] - تم تغيير الصلاحيات', 'according_settings' => 'اعدادات خاصة', 'action' => 'اجراء', @@ -112,6 +113,7 @@ URL: [url]', 'approvals_without_user' => 'طلب المواÙقة بلا مستخدم', 'approval_deletion_email' => 'تم إلغاء طلب المواÙقة', 'approval_deletion_email_body' => 'طلب مواÙقة حذ٠البريد الإلكتروني', +'approval_deletion_email_body_html' => '', 'approval_deletion_email_subject' => 'طلب مواÙقة حذ٠موضوع البريد الإلكتروني', 'approval_file' => 'طلب مواÙقة الملÙ', 'approval_group' => 'مجموعة المواÙقة', @@ -127,6 +129,7 @@ URL: [url]', 'approval_status' => 'حالة المواÙقة', 'approval_submit_email' => 'مواÙقة تقديم البريد الإلكتروني', 'approval_submit_email_body' => 'مواÙقة تقديم البريد الإلكتروني', +'approval_submit_email_body_html' => '', 'approval_submit_email_subject' => '[sitename]: [name] - تم ارسال المواÙقة', 'approval_summary' => 'ملخص المواÙقة', 'approval_update_failed' => 'خطأ ÙÙŠ تحديث حالة المواÙقة. ÙØ´Ù„ التحديث.', @@ -188,6 +191,7 @@ New value: [attribute_new_value] Parent folder: [folder_path] User: [username] URL: [url]', +'attribute_changed_email_body_html' => '', 'attribute_changed_email_subject' => '[sitename]: [name] - تم تغيير سمة', 'attribute_count' => 'عدد مرات الإستخدام', 'attribute_value' => 'قيمة السمة', @@ -379,6 +383,7 @@ URL: [url]', 'document_already_checkedout' => 'تم سحب الملÙ', 'document_already_locked' => 'هذا المستند محمي ضد التعديل', 'document_attribute_changed_email_body' => 'معر٠المستند غير موضوع البريد الإلكتروني', +'document_attribute_changed_email_body_html' => '', 'document_attribute_changed_email_subject' => 'معر٠المستند غير موضوع البريد الإلكتروني', 'document_comment_changed_email' => 'تم تعديل التعليق', 'document_comment_changed_email_body' => 'تم تعديل التعليق @@ -388,6 +393,7 @@ URL: [url]', Parent folder: [folder_path] المستخدم: [username] URL: [url]', +'document_comment_changed_email_body_html' => '', 'document_comment_changed_email_subject' => '[sitename]: [name] - تم تعديل التعليق', 'document_content_missing' => '', 'document_count' => 'تعداد المستندات', @@ -397,6 +403,7 @@ URL: [url]', المستند: [name] Parent folder: [folder_path] المستخدم: [username]', +'document_deleted_email_body_html' => '', 'document_deleted_email_subject' => '[sitename]: [name] - تم مسح المستند', 'document_duplicate_name' => 'اسم المستند متكرر', 'document_files' => '', @@ -416,6 +423,7 @@ Parent folder: [folder_path] المجلد الجديد: [new_folder_path] المستخدم: [username] URL: [url]', +'document_moved_email_body_html' => '', 'document_moved_email_subject' => '[sitename]: [name] - تم تحريك المستند', 'document_not_checkedout' => 'لم يتب سحب المستند', 'document_renamed_email' => 'تم اعادة تسمية المستند', @@ -425,6 +433,7 @@ Parent folder: [folder_path] الاسم القديم: [old_name] المستخدم: [username] URL: [url]', +'document_renamed_email_body_html' => '', 'document_renamed_email_subject' => '[sitename]: [name] - تم اعادة تسمية المستند', 'document_status_changed_email' => 'تم تغيير حالة المستند', 'document_status_changed_email_body' => 'تم تغيير حالة المستند @@ -433,9 +442,11 @@ URL: [url]', Parent folder: [folder_path] المستخدم: [username] URL: [url]', +'document_status_changed_email_body_html' => '', 'document_status_changed_email_subject' => '[sitename]: [name] - تم تغيير حالةالمستند', 'document_title' => 'المستند \'[documentname]\'عنوان السمتند', 'document_transfered_email_body' => 'المستند نقل موضوع البريد الإلكتروني', +'document_transfered_email_body_html' => '', 'document_transfered_email_subject' => 'المستند نقل موضوع البريد الإلكتروني', 'document_updated_email' => 'تم تحديث المستند', 'document_updated_email_body' => 'تم تحديث المستند @@ -445,6 +456,7 @@ Parent folder: [folder_path] تعليق: [comment] تعليق الاصدار: [version_comment] URL: [url]', +'document_updated_email_body_html' => '', 'document_updated_email_subject' => '[sitename]: [name] - تم تحديث المستند', 'document_versions' => '', 'does_not_expire' => 'لا ينتهى صلاحيته', @@ -574,6 +586,7 @@ URL: [url]', Parent folder: [folder_path] المستخدم: [username] URL: [url]', +'expiry_changed_email_body_html' => '', 'expiry_changed_email_subject' => '[sitename]: [name] - تم تغيير تاريخ الصلاحية', 'export' => 'تصدير', 'export_user_list_csv' => '', @@ -606,6 +619,7 @@ URL: [url]', 'folders_and_documents_statistic' => 'رؤية عامة للمحتوى', 'folders_with_notification' => 'Ù…Ù„ÙØ§Øª مع اشعار', 'folder_attribute_changed_email_body' => 'معر٠المجلد غير محتوى البريد الإلكتروني', +'folder_attribute_changed_email_body_html' => '', 'folder_attribute_changed_email_subject' => 'معر٠المجلد غير موضوع البريد الإلتكتروني', 'folder_comment_changed_email' => 'تم تعديل التعليق', 'folder_comment_changed_email_body' => 'تم تعديل التعليق @@ -615,6 +629,7 @@ URL: [url]', Parent folder: [folder_path] المستخدم: [username] URL: [url]', +'folder_comment_changed_email_body_html' => '', 'folder_comment_changed_email_subject' => '[sitename]: [name] - تم تعديل التعليق', 'folder_contents' => 'محتوى المجلدات', 'folder_deleted_email' => 'تم مسح المجلد', @@ -623,6 +638,7 @@ Folder: [name] Parent folder: [folder_path] المستخدم: [username] URL: [url]', +'folder_deleted_email_body_html' => '', 'folder_deleted_email_subject' => '[sitename]: [name] - تم مسح المجلد', 'folder_infos' => 'معلومات المجلد', 'folder_moved_email' => 'تم تحريك المجلد', @@ -632,6 +648,7 @@ Folder: [name] المجلد الجديد: [new_folder_path] المستخدم: [username] URL: [url]', +'folder_moved_email_body_html' => '', 'folder_moved_email_subject' => '[sitename]: [name] - تم تحريك المجلد', 'folder_renamed_email' => 'تم اعادة تسمية المجلد', 'folder_renamed_email_body' => 'تم اعادة تسمية المجلد @@ -640,6 +657,7 @@ Parent folder: [folder_path] الاسم القديم: [old_name] المستخدم: [username] URL: [url]', +'folder_renamed_email_body_html' => '', 'folder_renamed_email_subject' => '[sitename]: [name] - تم اعادة تسمية المجلد', 'folder_title' => 'مجلد \'[foldername]\'عنوان المجلد', 'foot_note' => 'مجلس النواب اللبناني', @@ -883,6 +901,7 @@ Parent folder: [folder_path] تعليق الاصدار: [version_comment] User: [username] URL: [url]', +'new_document_email_body_html' => '', 'new_document_email_subject' => '[sitename]: [folder_name] - مستند جديد', 'new_file_email' => 'مرÙقات جديدة', 'new_file_email_body' => 'مرÙقات جديدة @@ -891,6 +910,7 @@ Name: [name] تعليق: [comment] مستخدم: [username] URL: [url]', +'new_file_email_body_html' => '', 'new_file_email_subject' => '[sitename]: [document] - مرÙقات جديدة', 'new_folder' => 'مجلد جديد', 'new_password' => 'كلمة سر جديدة', @@ -901,6 +921,7 @@ Parent folder: [folder_path] تعليق: [comment] مستخدم: [username] URL: [url]', +'new_subfolder_email_body_html' => '', 'new_subfolder_email_subject' => '[sitename]: [name] - مجلد جديد', 'new_user_image' => 'صورة جديدة', 'next_revision_abbr' => '', @@ -914,6 +935,7 @@ URL: [url]', Parent folder: [folder_path] مستخدم: [username] URL: [url]', +'notify_added_email_body_html' => '', 'notify_added_email_subject' => '[sitename]: [name] - تم Ø§Ø¶Ø§ÙØªÙƒ الى قائمة التنبيهات', 'notify_deleted_email' => 'تم ازالتك من قائمة التنبيهات', 'notify_deleted_email_body' => 'تم ازالتك من قائمة التنبيهات @@ -921,6 +943,7 @@ URL: [url]', Parent folder: [folder_path] مستخدم: [username] URL: [url]', +'notify_deleted_email_body_html' => '', 'notify_deleted_email_subject' => '[sitename]: [name] - تم ازالتك من قائمة التنبيهات', 'not_subscribed' => '', 'november' => 'نوÙمبر', @@ -957,6 +980,7 @@ URL: [url]', 'no_user_image' => 'لا يوجد صورة متاحة', 'no_version_check' => 'لم يتحقق من اي اصدار', 'no_version_modification' => 'لا تعديل على الإصدار', +'no_workflows' => '', 'no_workflow_available' => 'لا يوجد سير عمل', 'objectcheck' => 'التحقق من مستند/مجلد', 'object_check_critical' => 'التحقق من الشيء ÙÙŠ حالة حرجة', @@ -978,6 +1002,7 @@ Parent folder: [folder_path] المالك الجديد: [new_owner] المستخدم: [username] URL: [url]', +'ownership_changed_email_body_html' => '', 'ownership_changed_email_subject' => '[sitename]: [name] - تم تغيير المالك', 'password' => 'كلمة السر', 'password_already_used' => 'كلمة السر Ø¨Ø§Ù„ÙØ¹Ù„ تم ارسالها', @@ -987,6 +1012,7 @@ URL: [url]', 'password_expires_in_days' => 'كلمة السر نتهي صلاحيتها بعد أيام', 'password_forgotten' => 'نسيان كلمة السر', 'password_forgotten_email_body' => 'عزيزي مستخدم النظام,nnاستقبلنا طلبك لتغيير كلمة السر.nnيمكنك تغييرها عن طريق الرابط التالي:nn[url_prefix]out/out.ChangePassword.php?hash=[hash]nnIf you have still problems to login, then please contact your administrator.', +'password_forgotten_email_body_html' => '', 'password_forgotten_email_subject' => '[sitename]: نسيان كلمة السر', 'password_forgotten_send_hash' => 'تم ارسال التعليمات اللازمة لبريدك الالكتروني', 'password_forgotten_text' => 'قم بملء النموذج التالي واتبع التعليمات التى سيتم ارسالها اليك بالبريد الالكتروني', @@ -1034,11 +1060,15 @@ URL: [url]', 'receipts_without_group' => 'وصل دون مجموعة', 'receipts_without_user' => 'وصل دون مستخدم', 'receipt_deletion_email_body' => 'إيصال لإلغاء محتوى البريد الإلكتروني', +'receipt_deletion_email_body_html' => '', 'receipt_deletion_email_subject' => 'إيصال لإلغال موضوع البريد الإلكتروني', 'receipt_log' => 'إيصال سجل', 'receipt_request_email_body' => 'طلب إيصال من محتوى البريد الإلكتروني', +'receipt_request_email_body_html' => '', 'receipt_request_email_subject' => 'طلب إيصال من موضوع البريد الإلكتروني', 'receipt_status' => 'حالة الإيصال', +'receipt_submit_email_body' => '', +'receipt_submit_email_subject' => '', 'receipt_summary' => 'ملخص الإيصال', 'receipt_update_failed' => 'ÙØ´Ù„ ÙÙŠ تحديث الإيصال', 'recent_uploads' => 'Ø§Ù„Ø¥Ø¶Ø§ÙØ§Øª الأخيرة', @@ -1058,6 +1088,7 @@ URL: [url]', مستند: [document] المستخدم: [username] URL: [url]', +'removed_file_email_body_html' => '', 'removed_file_email_subject' => '[sitename]: [document] - تم ازالة المرÙقات', 'removed_recipient' => 'إزالة المستلم', 'removed_reviewer' => 'تم ازالته من قائمة المراجعة', @@ -1069,6 +1100,7 @@ URL: [url]', Parent folder: [folder_path] مستخدم: [username] URL: [url]', +'removed_workflow_email_body_html' => '', 'removed_workflow_email_subject' => '[sitename]: [name] - تم ازالة مسار العمل من اصدار المستند', 'removeFolderFromDropFolder' => 'إزالة مجلد من إسقاط لائحة', 'remove_approval_log' => '', @@ -1077,8 +1109,10 @@ URL: [url]', 'repaired' => 'تم اصلاحه', 'repairing_objects' => 'تحضير المستندات والمجلدات.', 'replace_content_email_body' => '', +'replace_content_email_body_html' => '', 'replace_content_email_subject' => '', 'request_workflow_action_email_body' => 'طلب سير عمل ÙÙŠ نشاط محتوى البريد الإلكتروني', +'request_workflow_action_email_body_html' => '', 'request_workflow_action_email_subject' => 'طلب سير العمل ÙÙŠ نشاط موضوع البريد الإلكتروني', 'reset_checkout' => 'إعادة تعيين الخروج', 'restrict_access' => 'الحد من تسجيل الدخول', @@ -1092,6 +1126,7 @@ URL: [url]', Parent folder: [folder_path] مستخدم: [username] URL: [url]', +'return_from_subworkflow_email_body_html' => '', 'return_from_subworkflow_email_subject' => '[sitename]: [name] - عودة من مسار عمل ÙØ±Ø¹ÙŠ', 'reverse_links' => 'الروابط العكسية', 'reviewers' => 'المراجعون', @@ -1107,12 +1142,14 @@ URL: [url]', 'reviews_without_user' => 'مراجعات بلا مستخدم', 'review_deletion_email' => 'طلب المراجعة تم مسحه', 'review_deletion_email_body' => 'مراجعة البريد الإلكتروني قبل مسحه', +'review_deletion_email_body_html' => '', 'review_deletion_email_subject' => 'مراجعة موضوع البريد الإلكتروني قبل مسحه', 'review_file' => 'مراجعة ملÙ', 'review_group' => 'مجموعة المراجعة', 'review_log' => 'سجل المراجعة', 'review_request_email' => 'طلب مراجعة', 'review_request_email_body' => 'طلب مراجعة محتوى البريد الإلكتروني', +'review_request_email_body_html' => '', 'review_request_email_subject' => 'طلب مراجعة موضوع البريد الإلكتروني', 'review_status' => 'حالة المراجعة:', 'review_submit_email' => 'تم تقديم المراجعة', @@ -1124,6 +1161,7 @@ Comment: [comment] Parent folder: [folder_path] User: [username] URL: [url]', +'review_submit_email_body_html' => '', 'review_submit_email_subject' => '[sitename]: [name] - تم تقديم المراجعة', 'review_summary' => 'ملخص المراجعة', 'review_update_failed' => 'خطأ ÙÙŠ تحديث حالة المراجعة. التحديث ÙØ´Ù„.', @@ -1143,9 +1181,11 @@ URL: [url]', 'revision_date' => 'تاريخ المراجعة', 'revision_log' => 'سجل المراجعة', 'revision_request_email_body' => 'طلب مراجعة محتوى البريد الإلكتروني', +'revision_request_email_body_html' => '', 'revision_request_email_subject' => 'طلب مراجعة موضوع البريد الإلكتروني', 'revision_status' => 'حالة المراجعة', 'revision_submit_email_body' => 'تم تقديم مراجعة محتوى البريد الإلكتروني', +'revision_submit_email_body_html' => '', 'revision_submit_email_subject' => 'تم تقديم مراجعة موضوع البريد الإلكتروني', 'revision_summary' => 'ﻢﻠﺨﺻ ﻡﺭﺎﺠﻋﺓ', 'revisors' => 'المراجعين', @@ -1159,6 +1199,7 @@ Version: [version] Parent folder: [folder_path] User: [username] URL: [url]', +'rewind_workflow_email_body_html' => '', 'rewind_workflow_email_subject' => '[sitename]: [name] - اعادة بدء مسار العمل', 'rewind_workflow_warning' => 'لو قمت باعادة تشغيل مسار العمل لحالته الاصلية، سيتم مسح سجلات مسار العمل للمستند ولايمكن استعادته', 'rm_attrdef' => 'ازالة تعري٠سمة', @@ -1201,6 +1242,7 @@ URL: [url]', Parent folder: [folder_path] المستخدم: [username] URL: [url]', +'run_subworkflow_email_body_html' => '', 'run_subworkflow_email_subject' => '[sitename]: [name] - مسار العمل Ø§Ù„ÙØ±Ø¹ÙŠ Ø¨Ø¯Ø£', 'ru_RU' => 'الروسي', 'saturday' => 'السبت', @@ -1892,6 +1934,7 @@ URL: [url]', Parent folder: [folder_path] المستخدم: [username] URL: [url]', +'transition_triggered_email_body_html' => '', 'transition_triggered_email_subject' => '[sitename]: [name] - تم تحريك انتقال مسار العمل', 'transmittal' => 'الإحالة', 'transmittalitem_removed' => 'تم إزالة الإحالة', @@ -1973,6 +2016,7 @@ Version: [version] Parent folder: [folder_path] المستخدم: [username] URL: [url]', +'version_deleted_email_body_html' => '', 'version_deleted_email_subject' => '[sitename]: [name] - تم مسح الاصدار', 'version_info' => 'معلومات الاصدار', 'view' => 'اعرض', diff --git a/languages/bg_BG/lang.inc b/languages/bg_BG/lang.inc index fb780635e..4b647672d 100644 --- a/languages/bg_BG/lang.inc +++ b/languages/bg_BG/lang.inc @@ -46,6 +46,7 @@ $text = array( 'access_mode_readwrite' => 'доÑтъп четене-запиÑ', 'access_permission_changed_email' => 'доÑтъпът променен', 'access_permission_changed_email_body' => '', +'access_permission_changed_email_body_html' => '', 'access_permission_changed_email_subject' => '', 'according_settings' => 'ÑъглаÑно наÑтройките', 'action' => 'дейÑтвие', @@ -108,6 +109,7 @@ $text = array( 'approvals_without_user' => '', 'approval_deletion_email' => 'Запитване за утвърждаване за изтрит', 'approval_deletion_email_body' => '', +'approval_deletion_email_body_html' => '', 'approval_deletion_email_subject' => '', 'approval_file' => '', 'approval_group' => 'Утвърждаваща група', @@ -118,6 +120,7 @@ $text = array( 'approval_status' => 'Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ð½Ð° утвърждаването', 'approval_submit_email' => 'Утвърдено', 'approval_submit_email_body' => '', +'approval_submit_email_body_html' => '', 'approval_submit_email_subject' => '', 'approval_summary' => 'Инфо за утвърждаване', 'approval_update_failed' => 'Стана грешка при промÑната на ÑтатуÑа на утвърждаването', @@ -171,6 +174,7 @@ $text = array( 'attrdef_valueset_help' => '', 'attributes' => 'Ðтрибути', 'attribute_changed_email_body' => '', +'attribute_changed_email_body_html' => '', 'attribute_changed_email_subject' => '', 'attribute_count' => '', 'attribute_value' => '', @@ -362,15 +366,18 @@ $text = array( 'document_already_checkedout' => '', 'document_already_locked' => 'Документът е вече блокиран', 'document_attribute_changed_email_body' => '', +'document_attribute_changed_email_body_html' => '', 'document_attribute_changed_email_subject' => '', 'document_comment_changed_email' => '', 'document_comment_changed_email_body' => '', +'document_comment_changed_email_body_html' => '', 'document_comment_changed_email_subject' => '', 'document_content_missing' => '', 'document_count' => '', 'document_deleted' => 'Документът изтрит', 'document_deleted_email' => 'Документът изтрит', 'document_deleted_email_body' => '', +'document_deleted_email_body_html' => '', 'document_deleted_email_subject' => '', 'document_duplicate_name' => 'Дублирано име на документ', 'document_files' => '', @@ -385,19 +392,24 @@ $text = array( 'document_link_public' => 'Публичен', 'document_moved_email' => 'Документът е премеÑтен', 'document_moved_email_body' => '', +'document_moved_email_body_html' => '', 'document_moved_email_subject' => '', 'document_not_checkedout' => '', 'document_renamed_email' => 'Документът е преименуван', 'document_renamed_email_body' => '', +'document_renamed_email_body_html' => '', 'document_renamed_email_subject' => '', 'document_status_changed_email' => 'СтатуÑÑŠÑ‚ на документа променен', 'document_status_changed_email_body' => '', +'document_status_changed_email_body_html' => '', 'document_status_changed_email_subject' => '', 'document_title' => 'Документ \'[documentname]\'', 'document_transfered_email_body' => '', +'document_transfered_email_body_html' => '', 'document_transfered_email_subject' => '', 'document_updated_email' => 'Документът обновен', 'document_updated_email_body' => '', +'document_updated_email_body_html' => '', 'document_updated_email_subject' => '', 'document_versions' => '', 'does_not_expire' => 'БезÑрочен', @@ -523,6 +535,7 @@ $text = array( 'expire_tomorrow' => '', 'expiry_changed_email' => 'Датата на изтичане променена', 'expiry_changed_email_body' => '', +'expiry_changed_email_body_html' => '', 'expiry_changed_email_subject' => '', 'export' => '', 'export_user_list_csv' => '', @@ -555,20 +568,25 @@ $text = array( 'folders_and_documents_statistic' => 'Обзор на Ñъдържанието', 'folders_with_notification' => '', 'folder_attribute_changed_email_body' => '', +'folder_attribute_changed_email_body_html' => '', 'folder_attribute_changed_email_subject' => '', 'folder_comment_changed_email' => '', 'folder_comment_changed_email_body' => '', +'folder_comment_changed_email_body_html' => '', 'folder_comment_changed_email_subject' => '', 'folder_contents' => 'Съдържание на папка', 'folder_deleted_email' => 'Папката изтрита', 'folder_deleted_email_body' => '', +'folder_deleted_email_body_html' => '', 'folder_deleted_email_subject' => '', 'folder_infos' => 'Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° папка', 'folder_moved_email' => 'Папката премеÑтена', 'folder_moved_email_body' => '', +'folder_moved_email_body_html' => '', 'folder_moved_email_subject' => '', 'folder_renamed_email' => 'Папката преименувана', 'folder_renamed_email_body' => '', +'folder_renamed_email_body_html' => '', 'folder_renamed_email_subject' => '', 'folder_title' => 'Папка \'[foldername]\'', 'foot_note' => '', @@ -806,14 +824,17 @@ $text = array( 'new_document_category' => 'Добави ÐºÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚', 'new_document_email' => 'Ðов документ', 'new_document_email_body' => '', +'new_document_email_body_html' => '', 'new_document_email_subject' => '', 'new_file_email' => 'Ðово приложение', 'new_file_email_body' => '', +'new_file_email_body_html' => '', 'new_file_email_subject' => '', 'new_folder' => 'Ðова папка', 'new_password' => 'Ðова парола', 'new_subfolder_email' => 'Ðова подпапка', 'new_subfolder_email_body' => '', +'new_subfolder_email_body_html' => '', 'new_subfolder_email_subject' => '', 'new_user_image' => 'Ðово изображение', 'next_revision_abbr' => '', @@ -823,9 +844,11 @@ $text = array( 'notification' => '', 'notify_added_email' => 'Вие Ñте добавен в ÑпиÑъка Ñ ÑƒÐ²ÐµÐ´Ð¾Ð¼Ñвани', 'notify_added_email_body' => '', +'notify_added_email_body_html' => '', 'notify_added_email_subject' => '', 'notify_deleted_email' => 'Вие Ñте махнати от ÑпиÑка Ñ ÑƒÐ²ÐµÐ´Ð¾Ð¼Ñвани', 'notify_deleted_email_body' => '', +'notify_deleted_email_body_html' => '', 'notify_deleted_email_subject' => '', 'not_subscribed' => '', 'november' => 'ноември', @@ -862,6 +885,7 @@ $text = array( 'no_user_image' => 'Изображение не е намерено', 'no_version_check' => '', 'no_version_modification' => '', +'no_workflows' => '', 'no_workflow_available' => '', 'objectcheck' => 'Проверка на Папка/Документ', 'object_check_critical' => '', @@ -877,6 +901,7 @@ $text = array( 'owner' => 'СобÑтвеник', 'ownership_changed_email' => 'СобÑтвеникът променен', 'ownership_changed_email_body' => '', +'ownership_changed_email_body_html' => '', 'ownership_changed_email_subject' => '', 'password' => 'Парола', 'password_already_used' => 'Вече използвана парола', @@ -886,6 +911,7 @@ $text = array( 'password_expires_in_days' => '', 'password_forgotten' => 'Забравена парола', 'password_forgotten_email_body' => 'Уважаемый потребителю,nnполучихме запитване за изменение на Вашата парола.nnЗа да Ñтане, идете на адреÑ:nn[url_prefix]out/out.ChangePassword.php?hash=[hash]nnÐко и Ñлед това не можете да влезете, Ñвържете Ñе Ñ Ð°Ð´Ð¼Ð¸Ð½Ð°.', +'password_forgotten_email_body_html' => '', 'password_forgotten_email_subject' => '[sitename]: Забравена парола', 'password_forgotten_send_hash' => 'ИнÑтрукциите Ñа изпратени на email', 'password_forgotten_text' => 'Попълнете формата и Ñледвайте инÑтрукциите в пиÑмото', @@ -933,11 +959,15 @@ $text = array( 'receipts_without_group' => '', 'receipts_without_user' => '', 'receipt_deletion_email_body' => '', +'receipt_deletion_email_body_html' => '', 'receipt_deletion_email_subject' => '', 'receipt_log' => '', 'receipt_request_email_body' => '', +'receipt_request_email_body_html' => '', 'receipt_request_email_subject' => '', 'receipt_status' => '', +'receipt_submit_email_body' => '', +'receipt_submit_email_subject' => '', 'receipt_summary' => '', 'receipt_update_failed' => '', 'recent_uploads' => 'ПоÑледно Качени', @@ -954,11 +984,13 @@ $text = array( 'removed_approver' => 'изтрит от ÑпиÑъка Ñ ÑƒÑ‚Ð²ÐµÑ€Ð¶Ð´Ð°Ð²Ð°Ñ‰Ð¸', 'removed_file_email' => 'Изтрий приложение', 'removed_file_email_body' => '', +'removed_file_email_body_html' => '', 'removed_file_email_subject' => '', 'removed_recipient' => '', 'removed_reviewer' => 'изтрит от ÑпиÑъка Ñ Ñ€ÐµÑ†ÐµÐ½Ð·Ð¸Ñ€Ð°Ñ‰Ð¸', 'removed_revisor' => '', 'removed_workflow_email_body' => '', +'removed_workflow_email_body_html' => '', 'removed_workflow_email_subject' => '', 'removeFolderFromDropFolder' => '', 'remove_approval_log' => '', @@ -967,14 +999,17 @@ $text = array( 'repaired' => '', 'repairing_objects' => 'Поправка на папки и документи', 'replace_content_email_body' => '', +'replace_content_email_body_html' => '', 'replace_content_email_subject' => '', 'request_workflow_action_email_body' => '', +'request_workflow_action_email_body_html' => '', 'request_workflow_action_email_subject' => '', 'reset_checkout' => '', 'restrict_access' => '', 'results_page' => 'Страница Ñ Ñ€ÐµÐ·ÑƒÐ»Ñ‚Ð°Ñ‚Ð¸', 'return_from_subworkflow' => 'Връщане от под-процеÑ', 'return_from_subworkflow_email_body' => '', +'return_from_subworkflow_email_body_html' => '', 'return_from_subworkflow_email_subject' => '', 'reverse_links' => '', 'reviewers' => 'Рецензиращи', @@ -990,16 +1025,19 @@ $text = array( 'reviews_without_user' => '', 'review_deletion_email' => 'Запитване за Ñ€ÐµÑ†ÐµÐ½Ð·Ð¸Ñ Ð¿Ñ€ÐµÐ¼Ð°Ñ…Ð½Ð°Ñ‚Ð¾', 'review_deletion_email_body' => '', +'review_deletion_email_body_html' => '', 'review_deletion_email_subject' => '', 'review_file' => '', 'review_group' => 'Рецензираща група', 'review_log' => 'Преглед на лога', 'review_request_email' => 'Запитване за рецензиÑ', 'review_request_email_body' => '', +'review_request_email_body_html' => '', 'review_request_email_subject' => '', 'review_status' => 'Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ð½Ð° рецензиÑ', 'review_submit_email' => 'Изпратена рецензиÑ', 'review_submit_email_body' => '', +'review_submit_email_body_html' => '', 'review_submit_email_subject' => '', 'review_summary' => 'Сводка по рецензиите', 'review_update_failed' => 'грешка при обновÑване ÑтатуÑа на рецензиÑта', @@ -1019,9 +1057,11 @@ $text = array( 'revision_date' => '', 'revision_log' => '', 'revision_request_email_body' => '', +'revision_request_email_body_html' => '', 'revision_request_email_subject' => '', 'revision_status' => '', 'revision_submit_email_body' => '', +'revision_submit_email_body_html' => '', 'revision_submit_email_subject' => '', 'revision_summary' => '', 'revisors' => '', @@ -1029,6 +1069,7 @@ $text = array( 'revisor_already_removed' => '', 'rewind_workflow' => 'Превърти процеÑ', 'rewind_workflow_email_body' => '', +'rewind_workflow_email_body_html' => '', 'rewind_workflow_email_subject' => '', 'rewind_workflow_warning' => 'Ðко превъртите процеÑа до неговото начало, Ñ†ÐµÐ»Ð¸Ñ log на процеÑа за този документ ще бъде изтрит и нема връщане.', 'rm_attrdef' => 'Премахни Ð´ÐµÑ„Ð¸Ð½Ð¸Ñ†Ð¸Ñ Ð½Ð° атрибути', @@ -1064,6 +1105,7 @@ $text = array( 'ro_RO' => 'РумънÑки', 'run_subworkflow' => 'ПуÑни под-процеÑ', 'run_subworkflow_email_body' => '', +'run_subworkflow_email_body_html' => '', 'run_subworkflow_email_subject' => '', 'ru_RU' => 'РуÑки', 'saturday' => 'Ñъбота', @@ -1746,6 +1788,7 @@ $text = array( 'transfer_to_user' => '', 'transition_triggered_email' => 'ЗабелÑзана промÑна на процеÑ', 'transition_triggered_email_body' => '', +'transition_triggered_email_body_html' => '', 'transition_triggered_email_subject' => '', 'transmittal' => '', 'transmittalitem_removed' => '', @@ -1822,6 +1865,7 @@ $text = array( 'version_comment' => '', 'version_deleted_email' => 'ВерÑиÑта е премахната', 'version_deleted_email_body' => '', +'version_deleted_email_body_html' => '', 'version_deleted_email_subject' => '', 'version_info' => 'Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° верÑиÑта', 'view' => 'Преглед', diff --git a/languages/ca_ES/lang.inc b/languages/ca_ES/lang.inc index f04ac4b84..5cf42bfab 100644 --- a/languages/ca_ES/lang.inc +++ b/languages/ca_ES/lang.inc @@ -46,6 +46,7 @@ $text = array( 'access_mode_readwrite' => 'Lectura-escriptura', 'access_permission_changed_email' => 'Permisos canviats', 'access_permission_changed_email_body' => '', +'access_permission_changed_email_body_html' => '', 'access_permission_changed_email_subject' => '', 'according_settings' => '', 'action' => 'Acció', @@ -108,6 +109,7 @@ $text = array( 'approvals_without_user' => '', 'approval_deletion_email' => 'Demanda d\'aprovació esborrada', 'approval_deletion_email_body' => '', +'approval_deletion_email_body_html' => '', 'approval_deletion_email_subject' => '', 'approval_file' => '', 'approval_group' => 'Grup aprovador', @@ -123,6 +125,7 @@ URL: [url]', 'approval_status' => 'Estat d\'aprovació', 'approval_submit_email' => '', 'approval_submit_email_body' => '', +'approval_submit_email_body_html' => '', 'approval_submit_email_subject' => '[sitename]: [name] - Aprovació enviada', 'approval_summary' => 'Resum d\'aprovació', 'approval_update_failed' => 'Error actualitzant l\'estat d\'aprovació. Actualització fallada.', @@ -176,6 +179,7 @@ URL: [url]', 'attrdef_valueset_help' => '', 'attributes' => 'Atributs', 'attribute_changed_email_body' => '', +'attribute_changed_email_body_html' => '', 'attribute_changed_email_subject' => '', 'attribute_count' => '', 'attribute_value' => '', @@ -367,15 +371,18 @@ URL: [url]', 'document_already_checkedout' => '', 'document_already_locked' => 'Aquest document ja està bloquejat', 'document_attribute_changed_email_body' => '', +'document_attribute_changed_email_body_html' => '', 'document_attribute_changed_email_subject' => '', 'document_comment_changed_email' => '', 'document_comment_changed_email_body' => '', +'document_comment_changed_email_body_html' => '', 'document_comment_changed_email_subject' => '', 'document_content_missing' => '', 'document_count' => '', 'document_deleted' => 'Document eliminat', 'document_deleted_email' => 'Document eliminat', 'document_deleted_email_body' => '', +'document_deleted_email_body_html' => '', 'document_deleted_email_subject' => '', 'document_duplicate_name' => '', 'document_files' => '', @@ -390,19 +397,24 @@ URL: [url]', 'document_link_public' => 'Públic', 'document_moved_email' => 'Document reubicat', 'document_moved_email_body' => '', +'document_moved_email_body_html' => '', 'document_moved_email_subject' => '', 'document_not_checkedout' => '', 'document_renamed_email' => 'Document reanomenat', 'document_renamed_email_body' => '', +'document_renamed_email_body_html' => '', 'document_renamed_email_subject' => '', 'document_status_changed_email' => 'Estat del document modificat', 'document_status_changed_email_body' => '', +'document_status_changed_email_body_html' => '', 'document_status_changed_email_subject' => '', 'document_title' => 'Document \'[documentname]\'', 'document_transfered_email_body' => '', +'document_transfered_email_body_html' => '', 'document_transfered_email_subject' => '', 'document_updated_email' => 'Document actualizat', 'document_updated_email_body' => '', +'document_updated_email_body_html' => '', 'document_updated_email_subject' => '', 'document_versions' => '', 'does_not_expire' => 'No caduca', @@ -528,6 +540,7 @@ URL: [url]', 'expire_tomorrow' => '', 'expiry_changed_email' => 'Data de caducitat modificada', 'expiry_changed_email_body' => '', +'expiry_changed_email_body_html' => '', 'expiry_changed_email_subject' => '', 'export' => '', 'export_user_list_csv' => '', @@ -560,20 +573,25 @@ URL: [url]', 'folders_and_documents_statistic' => 'Vista general de continguts', 'folders_with_notification' => '', 'folder_attribute_changed_email_body' => '', +'folder_attribute_changed_email_body_html' => '', 'folder_attribute_changed_email_subject' => '', 'folder_comment_changed_email' => '', 'folder_comment_changed_email_body' => '', +'folder_comment_changed_email_body_html' => '', 'folder_comment_changed_email_subject' => '', 'folder_contents' => 'Carpetes', 'folder_deleted_email' => 'Carpeta eliminada', 'folder_deleted_email_body' => '', +'folder_deleted_email_body_html' => '', 'folder_deleted_email_subject' => '', 'folder_infos' => 'Informacions', 'folder_moved_email' => 'Carpeta reubicada', 'folder_moved_email_body' => '', +'folder_moved_email_body_html' => '', 'folder_moved_email_subject' => '', 'folder_renamed_email' => 'Carpeta reanomenada', 'folder_renamed_email_body' => '', +'folder_renamed_email_body_html' => '', 'folder_renamed_email_subject' => '', 'folder_title' => 'Carpeta \'[foldername]\'', 'foot_note' => '', @@ -811,14 +829,17 @@ URL: [url]', 'new_document_category' => 'Add category', 'new_document_email' => 'Nou document', 'new_document_email_body' => '', +'new_document_email_body_html' => '', 'new_document_email_subject' => '', 'new_file_email' => 'Nou adjunt', 'new_file_email_body' => '', +'new_file_email_body_html' => '', 'new_file_email_subject' => '', 'new_folder' => 'Nova carpeta', 'new_password' => '', 'new_subfolder_email' => 'Nova subcarpeta', 'new_subfolder_email_body' => '', +'new_subfolder_email_body_html' => '', 'new_subfolder_email_subject' => '', 'new_user_image' => 'Nova imatge', 'next_revision_abbr' => '', @@ -828,9 +849,11 @@ URL: [url]', 'notification' => '', 'notify_added_email' => 'Se us ha afegit a la llista de notificació', 'notify_added_email_body' => '', +'notify_added_email_body_html' => '', 'notify_added_email_subject' => '', 'notify_deleted_email' => 'Se us ha eliminat de la llista de notificació', 'notify_deleted_email_body' => '', +'notify_deleted_email_body_html' => '', 'notify_deleted_email_subject' => '', 'not_subscribed' => '', 'november' => 'Novembre', @@ -867,6 +890,7 @@ URL: [url]', 'no_user_image' => 'No es troba la imatge', 'no_version_check' => '', 'no_version_modification' => '', +'no_workflows' => '', 'no_workflow_available' => '', 'objectcheck' => 'Carpeta / Comprobació del document', 'object_check_critical' => '', @@ -882,6 +906,7 @@ URL: [url]', 'owner' => 'Propietari/a', 'ownership_changed_email' => 'Propietari/a canviat', 'ownership_changed_email_body' => '', +'ownership_changed_email_body_html' => '', 'ownership_changed_email_subject' => '', 'password' => 'Contrasenya', 'password_already_used' => '', @@ -891,6 +916,7 @@ URL: [url]', 'password_expires_in_days' => '', 'password_forgotten' => '', 'password_forgotten_email_body' => '', +'password_forgotten_email_body_html' => '', 'password_forgotten_email_subject' => '', 'password_forgotten_send_hash' => '', 'password_forgotten_text' => '', @@ -938,11 +964,15 @@ URL: [url]', 'receipts_without_group' => '', 'receipts_without_user' => '', 'receipt_deletion_email_body' => '', +'receipt_deletion_email_body_html' => '', 'receipt_deletion_email_subject' => '', 'receipt_log' => '', 'receipt_request_email_body' => '', +'receipt_request_email_body_html' => '', 'receipt_request_email_subject' => '', 'receipt_status' => '', +'receipt_submit_email_body' => '', +'receipt_submit_email_subject' => '', 'receipt_summary' => '', 'receipt_update_failed' => '', 'recent_uploads' => 'Documents pujats recentment', @@ -959,11 +989,13 @@ URL: [url]', 'removed_approver' => 'Ha estat eliminat de la llista d\'aprovadors.', 'removed_file_email' => 'Adjunts eliminats', 'removed_file_email_body' => '', +'removed_file_email_body_html' => '', 'removed_file_email_subject' => '', 'removed_recipient' => '', 'removed_reviewer' => 'Ha estat eliminat de la llista de revisors', 'removed_revisor' => '', 'removed_workflow_email_body' => '', +'removed_workflow_email_body_html' => '', 'removed_workflow_email_subject' => '', 'removeFolderFromDropFolder' => 'Esborrar carpeta després de la importació', 'remove_approval_log' => '', @@ -972,14 +1004,17 @@ URL: [url]', 'repaired' => '', 'repairing_objects' => '', 'replace_content_email_body' => '', +'replace_content_email_body_html' => '', 'replace_content_email_subject' => '', 'request_workflow_action_email_body' => '', +'request_workflow_action_email_body_html' => '', 'request_workflow_action_email_subject' => '', 'reset_checkout' => '', 'restrict_access' => '', 'results_page' => 'Pàgina de resultats', 'return_from_subworkflow' => '', 'return_from_subworkflow_email_body' => '', +'return_from_subworkflow_email_body_html' => '', 'return_from_subworkflow_email_subject' => '', 'reverse_links' => '', 'reviewers' => 'Revisors', @@ -995,16 +1030,19 @@ URL: [url]', 'reviews_without_user' => '', 'review_deletion_email' => 'Petició de revisió eliminada', 'review_deletion_email_body' => '', +'review_deletion_email_body_html' => '', 'review_deletion_email_subject' => '', 'review_file' => '', 'review_group' => 'Grup de revisió', 'review_log' => 'Log de revisió', 'review_request_email' => 'Petició de revisió', 'review_request_email_body' => '', +'review_request_email_body_html' => '', 'review_request_email_subject' => '', 'review_status' => 'Estat de revisió', 'review_submit_email' => 'Revisió enviada', 'review_submit_email_body' => '', +'review_submit_email_body_html' => '', 'review_submit_email_subject' => '', 'review_summary' => 'Resum de revisió', 'review_update_failed' => 'Error actualitzant l\'estat de la revisió. L\'actualizació ha fallat.', @@ -1024,9 +1062,11 @@ URL: [url]', 'revision_date' => '', 'revision_log' => '', 'revision_request_email_body' => '', +'revision_request_email_body_html' => '', 'revision_request_email_subject' => '', 'revision_status' => '', 'revision_submit_email_body' => '', +'revision_submit_email_body_html' => '', 'revision_submit_email_subject' => '', 'revision_summary' => '', 'revisors' => '', @@ -1034,6 +1074,7 @@ URL: [url]', 'revisor_already_removed' => '', 'rewind_workflow' => '', 'rewind_workflow_email_body' => '', +'rewind_workflow_email_body_html' => '', 'rewind_workflow_email_subject' => '', 'rewind_workflow_warning' => '', 'rm_attrdef' => '', @@ -1069,6 +1110,7 @@ URL: [url]', 'ro_RO' => 'Romanès', 'run_subworkflow' => '', 'run_subworkflow_email_body' => '', +'run_subworkflow_email_body_html' => '', 'run_subworkflow_email_subject' => '', 'ru_RU' => 'Rus', 'saturday' => 'Dissabte', @@ -1751,6 +1793,7 @@ URL: [url]', 'transfer_to_user' => '', 'transition_triggered_email' => '', 'transition_triggered_email_body' => '', +'transition_triggered_email_body_html' => '', 'transition_triggered_email_subject' => '', 'transmittal' => '', 'transmittalitem_removed' => '', @@ -1827,6 +1870,7 @@ URL: [url]', 'version_comment' => '', 'version_deleted_email' => 'Versió eliminada', 'version_deleted_email_body' => '', +'version_deleted_email_body_html' => '', 'version_deleted_email_subject' => '', 'version_info' => 'Informació de versió', 'view' => '', diff --git a/languages/cs_CZ/lang.inc b/languages/cs_CZ/lang.inc index b09f0a19f..4e94dae8b 100644 --- a/languages/cs_CZ/lang.inc +++ b/languages/cs_CZ/lang.inc @@ -50,6 +50,7 @@ Dokument: [name] NadÅ™azená složka: [folder_path] Uživatel: [username] URL: [url]', +'access_permission_changed_email_body_html' => '', 'access_permission_changed_email_subject' => '[sitename]: [name] - OprávnÄ›ní zmÄ›nÄ›no', 'according_settings' => 'shodná nastavení', 'action' => 'Akce', @@ -117,6 +118,7 @@ Verze: [version] NadÅ™azený adresář: [path_folder] Uživatel: [username] URL: [url]', +'approval_deletion_email_body_html' => '', 'approval_deletion_email_subject' => '[site]: [name] - Žádost o schválení byla smazána', 'approval_file' => 'Schválení souboru', 'approval_group' => 'Schválení skupiny', @@ -139,6 +141,7 @@ Stav: [status] Komentář: [comment] Uživatel: [username] URL: [url]', +'approval_submit_email_body_html' => '', 'approval_submit_email_subject' => '[sitename]: [name] - PÅ™edložit ke schválení', 'approval_summary' => 'Souhrn schválení', 'approval_update_failed' => 'Chyba pÅ™i aktualizaci stavu schválení. Aktualizace selhala.', @@ -200,6 +203,7 @@ New value: [attribute_new_value] NadÅ™azená složka: [folder_path] Uživatel: [username] URL: [url]', +'attribute_changed_email_body_html' => '', 'attribute_changed_email_subject' => '[sitename]: [name] - Atributy zmÄ›nÄ›ny', 'attribute_count' => 'PoÄet použití', 'attribute_value' => 'Hodnota atributu', @@ -398,6 +402,7 @@ Nová hodnota: [attribute_new_value] NadÅ™azený adresář: [path_folder] Uživatel: [username] URL: [url]', +'document_attribute_changed_email_body_html' => '', 'document_attribute_changed_email_subject' => '[sitename]: [name] - Atribut zmÄ›nÄ›n', 'document_comment_changed_email' => 'ZmÄ›na komentáře', 'document_comment_changed_email_body' => 'ZmÄ›na komentáře @@ -407,6 +412,7 @@ Komentář: [new_comment] NadÅ™azená složka: [folder_path] Uživatel: [username] URL: [url]', +'document_comment_changed_email_body_html' => '', 'document_comment_changed_email_subject' => '[sitename]: [name] - ZmÄ›na komentáře', 'document_content_missing' => '', 'document_count' => 'PoÄet dokumentů', @@ -416,6 +422,7 @@ URL: [url]', Dokument: [name] NadÅ™azená složka: [folder_path] Uživatel: [username]', +'document_deleted_email_body_html' => '', 'document_deleted_email_subject' => '[sitename]: [name] - Dokument smazán', 'document_duplicate_name' => 'Duplicitní název dokumentu', 'document_files' => '', @@ -435,6 +442,7 @@ Stará složka: [old_folder_path] Nová složka: [new_folder_path] Uživatel: [username] URL: [url]', +'document_moved_email_body_html' => '', 'document_moved_email_subject' => '[sitename]: [name] - Dokument pÅ™esunut', 'document_not_checkedout' => 'Dokeument není zkontrolován', 'document_renamed_email' => 'Dokument pÅ™ejmenován', @@ -444,6 +452,7 @@ NadÅ™azená složka: [folder_path] Starý název: [old_name] Uživatel: [username] URL: [url]', +'document_renamed_email_body_html' => '', 'document_renamed_email_subject' => '[sitename]: [name] - Dokument pÅ™ejmenován', 'document_status_changed_email' => 'Stav dokumentu zmÄ›nÄ›n', 'document_status_changed_email_body' => 'Stav dokumentu zmÄ›nÄ›n @@ -452,6 +461,7 @@ Stav: [status] NadÅ™azená složka: [folder_path] User: [username] URL: [url]', +'document_status_changed_email_body_html' => '', 'document_status_changed_email_subject' => '[sitename]: [name] - Stav dokumentu zmÄ›nÄ›n', 'document_title' => 'Dokument \'[documentname]\'', 'document_transfered_email_body' => 'PÅ™enos dokumentu jinému uživateli @@ -460,6 +470,7 @@ Nový majitel: [newuser] NadÅ™azený adresář: [path_folder] Uživatel: [username] URL: [url]', +'document_transfered_email_body_html' => '', 'document_transfered_email_subject' => '[sitename]: [name] - PÅ™enos Dokumentu', 'document_updated_email' => 'Dokument aktualizován', 'document_updated_email_body' => 'Dokument aktualizován @@ -469,6 +480,7 @@ Uživatel: [username] Komentář: [comment] Komentář k verzi: [version_comment] URL: [url]', +'document_updated_email_body_html' => '', 'document_updated_email_subject' => '[sitename]: [name] - Dokument aktualizován', 'document_versions' => '', 'does_not_expire' => 'Platnost nikdy nevyprší', @@ -598,6 +610,7 @@ Dokument: [name] NadÅ™azená složka: [folder_path] Uživatel: [username] URL: [url]', +'expiry_changed_email_body_html' => '', 'expiry_changed_email_subject' => '[sitename]: [name] - Datum ukonÄení platnosti zmÄ›nÄ›n', 'export' => 'export', 'export_user_list_csv' => '', @@ -637,6 +650,7 @@ Nová hodnota: [attribute_new_value] NadÅ™azený adresář: [path_folder] Uživatel: [username] URL: [url]', +'folder_attribute_changed_email_body_html' => '', 'folder_attribute_changed_email_subject' => '[sitename]: [name] - Atribut zmÄ›nÄ›n', 'folder_comment_changed_email' => 'ZmÄ›na komentáře', 'folder_comment_changed_email_body' => 'ZmÄ›na komentáře @@ -646,6 +660,7 @@ Komentář: [new_comment] NadÅ™azená složka: [folder_path] Uživatel: [username] URL: [url]', +'folder_comment_changed_email_body_html' => '', 'folder_comment_changed_email_subject' => '[sitename]: [name] - ZmÄ›na komentáře', 'folder_contents' => 'Obsah složky', 'folder_deleted_email' => 'Složka odstranÄ›na', @@ -654,6 +669,7 @@ Složka: [name] NadÅ™azená složka: [folder_path] Uživatel: [username] URL: [url]', +'folder_deleted_email_body_html' => '', 'folder_deleted_email_subject' => '[sitename]: [name] - Složka smazána', 'folder_infos' => 'Informace o složce', 'folder_moved_email' => 'Složka pÅ™esunuta', @@ -663,6 +679,7 @@ Stará složka: [old_folder_path] Nová složka: [new_folder_path] Uživatel: [username] URL: [url]', +'folder_moved_email_body_html' => '', 'folder_moved_email_subject' => '[sitename]: [name] - Složka pÅ™esunuta', 'folder_renamed_email' => 'Složka pÅ™ejmenována', 'folder_renamed_email_body' => 'Složka pÅ™ejmenována @@ -671,6 +688,7 @@ NadÅ™azená složka: [folder_path] Starý název: [old_name] Uživatel: [username] URL: [url]', +'folder_renamed_email_body_html' => '', 'folder_renamed_email_subject' => '[sitename]: [name] - Složka pÅ™ejmenována', 'folder_title' => 'Složka \'[foldername]\'', 'foot_note' => '', @@ -914,6 +932,7 @@ Komentář: [comment] Komentář k verzi: [version_comment] Uživatel: [username] URL: [url]', +'new_document_email_body_html' => '', 'new_document_email_subject' => '[sitename]: [folder_name] - Nový dokument', 'new_file_email' => 'Nová příloha', 'new_file_email_body' => 'Nová příloha @@ -922,6 +941,7 @@ Dokument: [document] Komentář: [comment] Uživatel: [username] URL: [url]', +'new_file_email_body_html' => '', 'new_file_email_subject' => '[sitename]: [document] - Nová příloha', 'new_folder' => 'Nová složka', 'new_password' => 'Nové heslo', @@ -932,6 +952,7 @@ NadÅ™azená složka: [folder_path] Komentář: [comment] Uživatel: [username] URL: [url]', +'new_subfolder_email_body_html' => '', 'new_subfolder_email_subject' => '[sitename]: [name] - Nová složka', 'new_user_image' => 'Nový obrázek', 'next_revision_abbr' => '', @@ -945,6 +966,7 @@ Název: [name] NadÅ™azená složka: [folder_path] Uživatel: [username] URL: [url]', +'notify_added_email_body_html' => '', 'notify_added_email_subject' => '[sitename]: [name] - PÅ™idáno do seznamu oznámení', 'notify_deleted_email' => 'Byl/a jste odstranÄ›n/a ze seznamu pro oznámení', 'notify_deleted_email_body' => 'OdstranÄ›no ze seznamu oznámení @@ -952,6 +974,7 @@ Název: [name] NadÅ™azená složka: [folder_path] Uživatel: [username] URL: [url]', +'notify_deleted_email_body_html' => '', 'notify_deleted_email_subject' => '[sitename]: [name] - OdstranÄ›no ze seznamu oznámení', 'not_subscribed' => '', 'november' => 'Listopad', @@ -988,6 +1011,7 @@ URL: [url]', 'no_user_image' => 'nebyl nalezen žádný obrázek', 'no_version_check' => 'Chyba pÅ™i kontrole nové verze SeedDMS. Může to být způsobeno nastavením allow_url_fopen na 0 ve vaší php konfiguraci.', 'no_version_modification' => 'Žádná zmÄ›na verze', +'no_workflows' => '', 'no_workflow_available' => 'Není k dispozici žádné workflow', 'objectcheck' => 'Kontrola složky/dokumentu', 'object_check_critical' => 'Kritické chyby', @@ -1009,6 +1033,7 @@ Starý vlastník: [old_owner] Nový vlastník: [new_owner] Uživatel: [username] URL: [url]', +'ownership_changed_email_body_html' => '', 'ownership_changed_email_subject' => '[sitename]: [name] - Vlastník zmÄ›nÄ›n', 'password' => 'Heslo', 'password_already_used' => 'Heslo již použité', @@ -1022,6 +1047,7 @@ URL: [url]', [url_prefix]out/out.ChangePassword.php?hash=[hash] Pokud budete mít problém s pÅ™ihlášením i po zmÄ›nÄ› hesla, kontaktujte Administrátora.', +'password_forgotten_email_body_html' => '', 'password_forgotten_email_subject' => '[sitename]: Obnova zapomenutého hesla', 'password_forgotten_send_hash' => 'Instrukce byly poslány uživateli na emailovou adresu.', 'password_forgotten_text' => 'Vyplňte následující formulář a následujte instrukce v emailu, který vám bude odeslán.', @@ -1075,6 +1101,7 @@ NadÅ™azený adresář: [path_folder] Příjemce: [recipient] Uživatel: [username] URL: [url]', +'receipt_deletion_email_body_html' => '', 'receipt_deletion_email_subject' => '[sitename]: [name] - Příjemce odstranÄ›n', 'receipt_log' => 'Log pÅ™ijemců', 'receipt_request_email_body' => 'Požadavek na příjem @@ -1083,8 +1110,11 @@ Verze: [verze] NadÅ™azený adresář: [path_folder] Uživatel: [username] URL: [url]', +'receipt_request_email_body_html' => '', 'receipt_request_email_subject' => '[sitename]: [name] - Požadavek na pÅ™ijetí', 'receipt_status' => 'Status', +'receipt_submit_email_body' => '', +'receipt_submit_email_subject' => '', 'receipt_summary' => 'Souhrn pÅ™ijetí', 'receipt_update_failed' => 'Potvrzení že pÅ™ijetí se nezdaÅ™ilo', 'recent_uploads' => 'Naposledy nahráno', @@ -1104,6 +1134,7 @@ URL: [url]', Dokument: [document] Uživatel: [username] URL: [url]', +'removed_file_email_body_html' => '', 'removed_file_email_subject' => '[sitename]: [document] - OdstranÄ›ná příloha', 'removed_recipient' => 'byl odstranÄ›n ze seznamu příjemců.', 'removed_reviewer' => 'byl odstranÄ›n ze seznamu recenzentů.', @@ -1115,6 +1146,7 @@ Workflow: [workflow] NadÅ™azená složka: [folder_path] Uživatel: [username] URL: [url]', +'removed_workflow_email_body_html' => '', 'removed_workflow_email_subject' => '[sitename]: [name] - OdstranÄ›no workflow z verze dokumentu', 'removeFolderFromDropFolder' => 'Odstranit složku po nahrání', 'remove_approval_log' => '', @@ -1123,6 +1155,7 @@ URL: [url]', 'repaired' => 'opraveno', 'repairing_objects' => 'Opravuji dokumenty a složky.', 'replace_content_email_body' => '', +'replace_content_email_body_html' => '', 'replace_content_email_subject' => '', 'request_workflow_action_email_body' => 'Workflow dosáhlo stavu, který vyžaduje vaÅ¡i akci. Dokument: [name] @@ -1132,6 +1165,7 @@ SouÄasný stav: [current_state] NadÅ™azená složka: [path_folder] Uživatel: [username] URL: [url]', +'request_workflow_action_email_body_html' => '', 'request_workflow_action_email_subject' => '[sitename]: [name] - Je vyžádána akce workflow', 'reset_checkout' => 'Finalizovat zpracování', 'restrict_access' => 'Není přístup k', @@ -1145,6 +1179,7 @@ Podřízené workflow: [subworkflow] NadÅ™azená složka: [folder_path] Uživatel: [username] URL: [url]', +'return_from_subworkflow_email_body_html' => '', 'return_from_subworkflow_email_subject' => '[sitename]: [name] - Návrat z podřízeného workflow', 'reverse_links' => 'Dokumenty, které mají vazbu na aktuální dokument', 'reviewers' => 'Recenzenti', @@ -1165,6 +1200,7 @@ Verze: [verze] NadÅ™azený adresář: [folder_path] Uživatel: [username] URL: [url]', +'review_deletion_email_body_html' => '', 'review_deletion_email_subject' => '[sitename]: [name] - Žádost o kontrolu byla smazána', 'review_file' => 'Soubor', 'review_group' => 'Skupina recenzentů', @@ -1176,6 +1212,7 @@ Verze: [verze] NadÅ™azený adresář: [folder_path] Uživatel: [username] URL: [url]', +'review_request_email_body_html' => '', 'review_request_email_subject' => '[sitename]: [name] - Žádost o recenzi', 'review_status' => 'Stav recenze', 'review_submit_email' => 'PÅ™edložit k recenzi', @@ -1186,6 +1223,7 @@ Komentář: [comment] NadÅ™azená složka: [folder_path] Uživatel: [username] URL: [url]', +'review_submit_email_body_html' => '', 'review_submit_email_subject' => '[sitename]: [name] - Odeslán kontrolovaný dokument', 'review_summary' => 'Souhrn recenze', 'review_update_failed' => 'Chyba pÅ™i aktualizaci stavu recenze. Aktualizace selhala.', @@ -1210,9 +1248,11 @@ Verze: [verze] NadÅ™azený adresář: [folder_path] Uživatel: [username] URL: [url]', +'revision_request_email_body_html' => '', 'revision_request_email_subject' => '[sitename]: [name] - Žádost o revizi', 'revision_status' => 'Status revize', 'revision_submit_email_body' => '', +'revision_submit_email_body_html' => '', 'revision_submit_email_subject' => '', 'revision_summary' => '', 'revisors' => 'RevizoÅ™i', @@ -1226,6 +1266,7 @@ Workflow: [workflow] NadÅ™azená složka: [folder_path] Uživatel: [username] URL: [url]', +'rewind_workflow_email_body_html' => '', 'rewind_workflow_email_subject' => '[sitename]: [name] - Workflow vráceno zpÄ›t', 'rewind_workflow_warning' => 'Pokud spustíte znovu workflow, pak záznam o dosavadním průbÄ›hu bude trvale smazán', 'rm_attrdef' => 'Odstranit definici atributu', @@ -1268,6 +1309,7 @@ Vedlejší pracovní postup: [subworkflow] NadÅ™azená složka: [folder_path] Uživatel: [username] URL: [url]', +'run_subworkflow_email_body_html' => '', 'run_subworkflow_email_subject' => '[sitename]: [name] - DílÄí workflow spuÅ¡tÄ›no', 'ru_RU' => 'RuÅ¡tina', 'saturday' => 'Sobota', @@ -1964,6 +2006,7 @@ SouÄasný stav: [current_state] NadÅ™azená složky: [folder_path] Uživatel: [username] URL: [url]', +'transition_triggered_email_body_html' => '', 'transition_triggered_email_subject' => '[sitename]: [name] - SpuÅ¡tÄ›n pÅ™echod workflow', 'transmittal' => 'PÅ™enos', 'transmittalitem_removed' => 'Položka pÅ™enosu byla odstranÄ›na', @@ -2045,6 +2088,7 @@ Verze: [verze] NadÅ™azená složka: [folder_path] Uživatel: [username] URL: [url]', +'version_deleted_email_body_html' => '', 'version_deleted_email_subject' => '[sitename]: [name] - Verze smazána', 'version_info' => 'Informace o verzi', 'view' => 'Posouzení', diff --git a/languages/de_DE/lang.inc b/languages/de_DE/lang.inc index 1cc21a2c0..327ec541e 100644 --- a/languages/de_DE/lang.inc +++ b/languages/de_DE/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (2960), dgrutsch (22) +// Translators: Admin (3050), dgrutsch (22) $text = array( '2_factor_auth' => '2-Faktor Authentifizierung', @@ -46,10 +46,17 @@ $text = array( 'access_mode_readwrite' => 'Lesen+Schreiben', 'access_permission_changed_email' => 'Zugriffsrechte geändert', 'access_permission_changed_email_body' => 'Zugriffsrechte geändert + Dokument: [name] Elternordner: [folder_path] Benutzer: [username] URL: [url]', +'access_permission_changed_email_body_html' => '

Zugriffsrechte geändert

+ +

Dokument: [name]
+Elternordner: [folder_path]
+Benutzer: [username]
+URL: [url]

', 'access_permission_changed_email_subject' => '[sitename]: [name] - Zugriffsrechte geändert', 'according_settings' => 'Gemäß Einstellungen', 'action' => 'Aktivität', @@ -112,11 +119,19 @@ URL: [url]', 'approvals_without_user' => 'Freigaben ohne Benutzer', 'approval_deletion_email' => 'Freigabeaufforderung gelöscht', 'approval_deletion_email_body' => 'Freigabeaufforderung gelöscht + Dokument: [name] Version: [version] Elternordner: [folder_path] Benutzer: [username] URL: [url]', +'approval_deletion_email_body_html' => '

Freigabeaufforderung gelöscht

+ +

Dokument: [name]
+Version: [version]
+Elternordner: [folder_path]
+Benutzer: [username]
+URL: [url]

', 'approval_deletion_email_subject' => '[sitename]: [name] - Freigabeaufforderung gelöscht', 'approval_file' => 'Datei', 'approval_group' => 'Berechtigungsgruppe', @@ -132,6 +147,7 @@ URL: [url]', 'approval_status' => 'Freigabestatus', 'approval_submit_email' => '', 'approval_submit_email_body' => 'Freigabe erteilt + Dokument: [name] Version: [version] Elternordner: [folder_path] @@ -139,6 +155,15 @@ Status: [status] Kommentar: [comment] Benutzer: [username] URL: [url]', +'approval_submit_email_body_html' => '

Freigabe erteilt

+ +

Dokument: [name]
+Version: [version]
+Elternordner: [folder_path]
+Status: [status]
+Kommentar: [comment]
+Benutzer: [username]
+URL: [url]

', 'approval_submit_email_subject' => '[sitename]: [name] - Freigabe erteilt', 'approval_summary' => 'Übersicht Freigaben', 'approval_update_failed' => 'Störung bei der Aktualisierung des Berechtigungsstatus. Aktualisierung gescheitert', @@ -192,6 +217,7 @@ URL: [url]', 'attrdef_valueset_help' => 'Eine Liste von Werten, durch ein beliebiges Zeichen getrennt, welches auch am Anfang dieer Zeichenkette stehen muss, z.B. #ja#nein#vielleicht', 'attributes' => 'Attribute', 'attribute_changed_email_body' => 'Attribut geändert + Dokument: [name] Version: [version] Attribut: [attribute_name] @@ -200,6 +226,16 @@ Neuer Wert: [attribute_new_value] Elternordner: [folder_path] Benutzer: [username] URL: [url]', +'attribute_changed_email_body_html' => '

Attribut geändert

+ +

Dokument: [name]
+Version: [version]
+Attribut: [attribute_name]
+Alter Wert: [attribute_old_value]
+Neuer Wert: [attribute_new_value]
+Elternordner: [folder_path]
+Benutzer: [username]
+URL: [url]

', 'attribute_changed_email_subject' => '[sitename]: [name] - Attribut geändert', 'attribute_count' => 'Anzahl Verwendungen', 'attribute_value' => 'Attributwert', @@ -391,6 +427,7 @@ URL: [url]', 'document_already_checkedout' => 'Dieses Dokument ist bereits ausgecheckt', 'document_already_locked' => 'Dieses Dokument ist bereits gesperrt', 'document_attribute_changed_email_body' => 'Attribut geändert + Dokument: [name] Attribut: [attribute_name] Alter Wert: [attribute_old_value] @@ -398,24 +435,48 @@ Neuer Wert: [attribute_new_value] Elternordner: [folder_path] Benutzer: [username] URL: [url]', +'document_attribute_changed_email_body_html' => '

Attribut geändert

+ +

Dokument: [name]
+Attribut: [attribute_name]
+Alter Wert: [attribute_old_value]
+Neuer Wert: [attribute_new_value]
+Elternordner: [folder_path]
+Benutzer: [username]
+URL: [url]

', 'document_attribute_changed_email_subject' => '[sitename]: [name] - Attribut geändert', 'document_comment_changed_email' => 'Kommentar geändert', 'document_comment_changed_email_body' => 'Kommentar geändert + Dokument: [name] Alter Kommentar: [old_comment] Neuer Kommentar: [new_comment] Elternordner: [folder_path] Benutzer: [username] URL: [url]', +'document_comment_changed_email_body_html' => '

Kommentar geändert

+ +

Dokument: [name]
+Alter Kommentar: [old_comment]
+Neuer Kommentar: [new_comment]
+Elternordner: [folder_path]
+Benutzer: [username]
+URL: [url]

', 'document_comment_changed_email_subject' => '[sitename]: [name] - Kommentar geändert', 'document_content_missing' => 'Datei der Version nicht vorhanden', 'document_count' => 'Anzahl der Dokumente', 'document_deleted' => 'Dokument gelöscht', 'document_deleted_email' => 'Dokument gelöscht', 'document_deleted_email_body' => 'Dokument gelöscht + Dokument: [name] Elternordner: [folder_path] Benutzer: [username]', +'document_deleted_email_body_html' => '

Dokument gelöscht

+ +

Dokument: [name]
+Elternordner: [folder_path]
+Benutzer: [username]

', 'document_deleted_email_subject' => '[sitename]: [name] - Dokument gelöscht', 'document_duplicate_name' => 'Doppelter Dokumentenname', 'document_files' => 'Dokumentenanhänge', @@ -430,40 +491,74 @@ Benutzer: [username]', 'document_link_public' => 'Für alle sichtbar', 'document_moved_email' => 'Dokument verschoben', 'document_moved_email_body' => 'Dokument verschoben + Dokument: [name] Alter Ordner: [old_folder_path] Neuer Ordner: [new_folder_path] Benutzer: [username] URL: [url]', +'document_moved_email_body_html' => '

Dokument verschoben

+ +

Dokument: [name]
+Alter Ordner: [old_folder_path]
+Neuer Ordner: [new_folder_path]
+Benutzer: [username]
+URL: [url]

', 'document_moved_email_subject' => '[sitename]: [name] - Dokument verschoben', 'document_not_checkedout' => 'Dokument ist nicht ausgecheckt.', 'document_renamed_email' => 'Dokument umbenannt', 'document_renamed_email_body' => 'Dokument umbenannt + Dokument: [name] Elternordner: [folder_path] Old name: [old_name] Benutzer: [username] URL: [url]', +'document_renamed_email_body_html' => '

Dokument umbenannt

+ +

Dokument: [name]
+Elternordner: [folder_path]
+Old name: [old_name]
+Benutzer: [username]
+URL: [url]

', 'document_renamed_email_subject' => '[sitename]: [name] - Dokument umbenannt', 'document_status_changed_email' => 'Dokumentenstatus geändert', 'document_status_changed_email_body' => 'Dokumentenstatus geändert + Dokument: [name] Status: [status] Elternordner: [folder_path] Benutzer: [username] URL: [url]', +'document_status_changed_email_body_html' => '

Dokumentenstatus geändert

+ +

Dokument: [name]
+Status: [status]
+Elternordner: [folder_path]
+Benutzer: [username]
+URL: [url]

', 'document_status_changed_email_subject' => '[sitename]: [name] - Dokumentenstatus geändert', 'document_title' => 'Dokument \'[documentname]\'', 'document_transfered_email_body' => 'Dokument an anderen Benutzer übertragen + Dokument: [name] Neuer Besitzer: [newuser] Alter Besitzer: [olduser] Elternordner: [folder_path] Benutzer: [username] URL: [url]', +'document_transfered_email_body_html' => '

Dokument an anderen Benutzer übertragen

+ +

Dokument: [name]
+Neuer Besitzer: [newuser]
+Alter Besitzer: [olduser]
+Elternordner: [folder_path]
+Benutzer: [username]
+URL: [url]

', 'document_transfered_email_subject' => '[sitename]: [name] - Dokument übertragen', 'document_updated_email' => 'Dokument aktualisiert', 'document_updated_email_body' => 'Dokument aktualisiert + Dokument: [name] Version: [version] Elternordner: [folder_path] @@ -471,6 +566,15 @@ Benutzer: [username] Kommentar: [comment] Kommentar der Version: [version_comment] URL: [url]', +'document_updated_email_body_html' => '

Dokument aktualisiert

+ +

Dokument: [name]
+Version: [version]
+Elternordner: [folder_path]
+Benutzer: [username]
+Kommentar: [comment]
+Kommentar der Version: [version_comment]
+URL: [url]

', 'document_updated_email_subject' => '[sitename]: [name] - Dokument aktualisiert', 'document_versions' => 'Dokumentenversionen', 'does_not_expire' => 'Kein Ablaufdatum', @@ -596,10 +700,17 @@ URL: [url]', 'expire_tomorrow' => 'Ablauf morgen', 'expiry_changed_email' => 'Ablaufdatum geändert', 'expiry_changed_email_body' => 'Ablaufdatum geändert + Dokument: [name] Elternordner: [folder_path] Benutzer: [username] URL: [url]', +'expiry_changed_email_body_html' => '

Ablaufdatum geändert

+ +

Dokument: [name]
+Elternordner: [folder_path]
+Benutzer: [username]
+URL: [url]

', 'expiry_changed_email_subject' => '[sitename]: [name] - Ablaufdatum geändert', 'export' => 'Export', 'export_user_list_csv' => 'Exportiere Benutzer als CSV-Datei', @@ -632,6 +743,7 @@ URL: [url]', 'folders_and_documents_statistic' => 'Ordner- und Dokumentenübersicht', 'folders_with_notification' => 'Ordner unter Beobachtung', 'folder_attribute_changed_email_body' => 'Attribut geändert + Ordner: [name] Attribut: [attribute_name] Alter Wert: [attribute_old_value] @@ -639,15 +751,33 @@ Neuer Wert: [attribute_new_value] Elternordner: [folder_path] Benutzer: [username] URL: [url]', +'folder_attribute_changed_email_body_html' => '

Attribut geändert

+ +

Ordner: [name]
+Attribut: [attribute_name]
+Alter Wert: [attribute_old_value]
+Neuer Wert: [attribute_new_value]
+Elternordner: [folder_path]
+Benutzer: [username]
+URL: [url]

', 'folder_attribute_changed_email_subject' => '[sitename]: [name] - Attribut geändert', 'folder_comment_changed_email' => 'Kommentar geändert', 'folder_comment_changed_email_body' => 'Kommentar geändert + Ordner: [name] Alter Kommentar: [old_comment] Neuer Kommentar: [new_comment] Elternordner: [folder_path] Benutzer: [username] URL: [url]', +'folder_comment_changed_email_body_html' => '

Kommentar geändert

+ +

Ordner: [name]
+Alter Kommentar: [old_comment]
+Neuer Kommentar: [new_comment]
+Elternordner: [folder_path]
+Benutzer: [username]
+URL: [url]

', 'folder_comment_changed_email_subject' => '[sitename]: [name] - Kommentar geändert', 'folder_contents' => 'Ordner enthält', 'folder_deleted_email' => 'Ordner gelöscht', @@ -656,23 +786,45 @@ Ordner: [name] Elternordner: [folder_path] Benutzer: [username] URL: [url]', +'folder_deleted_email_body_html' => '

Ordner gelöscht

+ +

Ordner: [name]
+Elternordner: [folder_path]
+Benutzer: [username]
+URL: [url]

', 'folder_deleted_email_subject' => '[sitename]: [name] - Ordner gelöscht', 'folder_infos' => 'Informationen', 'folder_moved_email' => 'Ordner verschoben', 'folder_moved_email_body' => 'Ordner verschoben + Ordner: [name] Old folder: [old_folder_path] Neuer Ordner: [new_folder_path] Benutzer: [username] URL: [url]', +'folder_moved_email_body_html' => '

Ordner verschoben

+ +

Ordner: [name]
+Old folder: [old_folder_path]
+Neuer Ordner: [new_folder_path]
+Benutzer: [username]
+URL: [url]

', 'folder_moved_email_subject' => '[sitename]: [name] - Ordner verschoben', 'folder_renamed_email' => 'Ordner umbenannt', 'folder_renamed_email_body' => 'Ordner umbenannt + Ordner: [name] Elternordner: [folder_path] Old name: [old_name] Benutzer: [username] URL: [url]', +'folder_renamed_email_body_html' => '

Ordner umbenannt

+ +

Ordner: [name]
+Elternordner: [folder_path]
+Old name: [old_name]
+Benutzer: [username]
+URL: [url]

', 'folder_renamed_email_subject' => '[sitename]: [name] - Ordner umbenannt', 'folder_title' => 'SeedDMS - Ordner: [foldername]', 'foot_note' => '', @@ -910,29 +1062,53 @@ URL: [url]', 'new_document_category' => 'Neue Kategorie', 'new_document_email' => 'Neues Dokument', 'new_document_email_body' => 'Neues Dokument + Name: [name] Ordner: [folder_path] Kommentar: [comment] Kommentar der Version: [version_comment] URL: [url]', +'new_document_email_body_html' => '

Neues Dokument

+ +

Name: [name]
+Ordner: [folder_path]
+Kommentar: [comment]
+Kommentar der Version: [version_comment]
+URL: [url]

', 'new_document_email_subject' => '[sitename]: [folder_name] - Neues Dokument', 'new_file_email' => 'Neuer Anhang', 'new_file_email_body' => 'Neuer Anhang + Name: [name] Dokument: [document] Comment: [comment] Benutzer: [username] URL: [url]', +'new_file_email_body_html' => '

Neuer Anhang

+ +

Name: [name]
+Dokument: [document]
+Comment: [comment]
+Benutzer: [username]
+URL: [url]

', 'new_file_email_subject' => '[sitename]: [document] - Neuer Anhang', 'new_folder' => 'Neuer Ordner', 'new_password' => 'Neues Passwort', 'new_subfolder_email' => 'Neuer Ordner', -'new_subfolder_email_body' => 'New folder +'new_subfolder_email_body' => 'Neuer Ordner + Name: [name] Elternordner: [folder_path] Comment: [comment] Benutzer: [username] URL: [url]', +'new_subfolder_email_body_html' => '

Neuer Ordner

+ +

Name: [name]
+Elternordner: [folder_path]
+Comment: [comment]
+Benutzer: [username]
+URL: [url]

', 'new_subfolder_email_subject' => '[sitename]: [folder_name] - Neuer Ordner', 'new_user_image' => 'Neues Bild', 'next_revision_abbr' => 'Nächste Wieder.-Prüf.', @@ -941,18 +1117,29 @@ URL: [url]', 'no' => 'Nein', 'notification' => 'Beobachter', 'notify_added_email' => 'Benachrichtigung per Mail wurde eingerichtet', -'notify_added_email_body' => 'Added to notification list +'notify_added_email_body' => 'Zur Liste der Beobachter hinzugefügt. + Name: [name] Elternordner: [folder_path] Benutzer: [username] URL: [url]', +'notify_added_email_body_html' => '

Zur Liste der Beobachter hinzugefügt.

+

Name: [name]
+Elternordner: [folder_path]
+Benutzer: [username]
+URL: [url]

', 'notify_added_email_subject' => '[sitename]: [name] - Added to notification list', 'notify_deleted_email' => 'Sie wurden von der Liste der Beobachter entfernt.', -'notify_deleted_email_body' => 'Removed from notification list +'notify_deleted_email_body' => 'Aus Liste der Beobachter entfernt Name: [name] Elternordner: [folder_path] Benutzer: [username] URL: [url]', +'notify_deleted_email_body_html' => '

Aus Liste der Beobachter entfernt

+

Name: [name]
+Elternordner: [folder_path]
+Benutzer: [username]
+URL: [url]

', 'notify_deleted_email_subject' => '[sitename]: [name] - Removed from notification list', 'not_subscribed' => 'Nicht abonniert', 'november' => 'November', @@ -989,6 +1176,7 @@ URL: [url]', 'no_user_image' => 'Kein Bild vorhanden', 'no_version_check' => 'Ein Check auf neuere Versionen von SeedDMS ist fehlgeschlagen. Dies könnte daran liegen, dass allow_url_fopen in der PHP-Konfiguration auf 0 gesetzt ist.', 'no_version_modification' => 'Keine Modifikationen an einer Version', +'no_workflows' => 'Sie haben bisher keinen Workflow erstellt', 'no_workflow_available' => 'Kein Workflow verfügbar', 'objectcheck' => 'Ordner- und Dokumentenprüfung', 'object_check_critical' => 'Kritische Fehler', @@ -1004,12 +1192,21 @@ URL: [url]', 'owner' => 'Besitzer', 'ownership_changed_email' => 'Besitzer geändert', 'ownership_changed_email_body' => 'Besitzer geändert + Dokument: [name] Elternordner: [folder_path] Bisheriger Besitzer: [old_owner] Neuer Besitzer: [new_owner] Benutzer: [username] URL: [url]', +'ownership_changed_email_body_html' => '

Besitzer geändert

+ +

Dokument: [name]
+Elternordner: [folder_path]
+Bisheriger Besitzer: [old_owner]
+Neuer Besitzer: [new_owner]
+Benutzer: [username]
+URL: [url]

', 'ownership_changed_email_subject' => '[sitename]: [name] - Besitzer geändert', 'password' => 'Passwort', 'password_already_used' => 'Passwort schon einmal verwendet', @@ -1026,7 +1223,16 @@ Dies kann durch den folgenden Link erfolgen: [url_prefix]out/out.ChangePassword.php?hash=[hash] -Sollen Sie danach immer noch Probleme bei der Anmeldung haben, dann kontaktieren Sie bitte Ihren Adminstrator', +Sollen Sie danach immer noch Probleme bei der Anmeldung haben, dann kontaktieren Sie bitte Ihren Adminstrator.', +'password_forgotten_email_body_html' => '

Sehr geehrter Anwender von SeedDMS,

+ +

wir haben einen Anfrage zum Zurücksetzen Ihres Passworts erhalten.

+ +

Dies kann durch den folgenden Link erfolgen:

+ +

[url_prefix]out/out.ChangePassword.php?hash=[hash]

+ +

Sollen Sie danach immer noch Probleme bei der Anmeldung haben, dann kontaktieren Sie bitte Ihren Adminstrator.

', 'password_forgotten_email_subject' => '[sitename]: Passwort vergessen', 'password_forgotten_send_hash' => 'Anweisungen zum weiteren Vorgehen wurden an die E-Mail Adresse des Benutzers versandt', 'password_forgotten_text' => 'Füllen Sie bitte untenstehendes Formular aus. Weitere Anweisungen erhalten Sie dann in einer E-Mail die an Sie gesandt wird', @@ -1073,23 +1279,49 @@ Sollen Sie danach immer noch Probleme bei der Anmeldung haben, dann kontaktieren 'receipts_rejected_latest' => '(davon [no_receipts] in letzter Version)', 'receipts_without_group' => 'Empfangsbestätigungen ohne Gruppe', 'receipts_without_user' => 'Empfangsbestätigungen ohne Benutzer', -'receipt_deletion_email_body' => 'Benutzer von Liste der Empfänger gelöscht -Dokument: [name] -Version: [version] -Elternordner: [folder_path] -Empfänger: [recipient] -Benutzer: [username] +'receipt_deletion_email_body' => 'Benutzer von Liste der Empfänger gelöscht + +Dokument: [name] +Version: [version] +Elternordner: [folder_path] +Empfänger: [recipient] +Benutzer: [username] URL: [url]', +'receipt_deletion_email_body_html' => '

Benutzer von Liste der Empfänger gelöscht

+ +

Dokument: [name]
+Version: [version]
+Elternordner: [folder_path]
+Empfänger: [recipient]
+Benutzer: [username]
+URL: [url]

', 'receipt_deletion_email_subject' => '[sitename]: [name] - Empfänger gelöscht', 'receipt_log' => 'Protokoll der Empfangsbestätigungen', 'receipt_request_email_body' => 'Aufforderung zur Empfangsbestätigung + Dokument: [name] Version: [version] Elternordner: [folder_path] Benutzer: [username] URL: [url]', +'receipt_request_email_body_html' => '

Aufforderung zur Empfangsbestätigung

+ +

Dokument: [name]
+Version: [version]
+Elternordner: [folder_path]
+Benutzer: [username]
+URL: [url]

', 'receipt_request_email_subject' => '[sitename]: [name] - Aufforderung zur Empfangsbestätigung', 'receipt_status' => 'Status', +'receipt_submit_email_body' => 'Empfang bestätigt +Dokument: [name] +Version: [version] +Status: [status] +Kommentar: [comment] +Elternordner: [folder_path] +Benutzer: [username] +URL: [url]', +'receipt_submit_email_subject' => '[sitename]: [name] - Empfang bestätigt', 'receipt_summary' => 'Übersicht Bestätigungen', 'receipt_update_failed' => 'Setzen der Empfangsbestätigung fehlgeschlagen', 'recent_uploads' => 'Letzte Uploads', @@ -1106,20 +1338,35 @@ URL: [url]', 'removed_approver' => 'ist von der Freigeber-Liste entfernt worden.', 'removed_file_email' => 'Anhang gelöscht', 'removed_file_email_body' => 'Anhang gelöscht + Dokument: [document] Benutzer: [username] URL: [url]', +'removed_file_email_body_html' => '

Anhang gelöscht

+ +

Dokument: [document]
+Benutzer: [username]
+URL: [url]

', 'removed_file_email_subject' => '[sitename]: [document] - Anhang gelöscht', 'removed_recipient' => 'ist von der Empfängerliste entfernt worden', 'removed_reviewer' => 'ist von der Prüfer-Liste entfernt worden.', 'removed_revisor' => 'ist von der Liste der Wiederholungsprüfer entfernt worden.', -'removed_workflow_email_body' => 'Workflow von Dokumentenversion entfernt +'removed_workflow_email_body' => 'Workflow von Dokumentenversion entfernt. + Dokument: [name] Version: [version] Workflow: [workflow] Elternordner: [folder_path] Benutzer: [username] URL: [url]', +'removed_workflow_email_body_html' => '

Workflow von Dokumentenversion entfernt.

+ +

Dokument: [name]
+Version: [version]
+Workflow: [workflow]
+Elternordner: [folder_path]
+Benutzer: [username]
+URL: [url]

', 'removed_workflow_email_subject' => '[sitename]: [name] - Workflow von Dokumentenversion', 'removeFolderFromDropFolder' => 'Ordner nach Import entfernen', 'remove_approval_log' => 'Einzelne Freigabe entfernen', @@ -1127,27 +1374,46 @@ URL: [url]', 'remove_review_log' => 'Einzelne Prüfung entfernen', 'repaired' => 'repariert', 'repairing_objects' => 'Repariere Dokumente und Ordner.', -'replace_content_email_body' => 'Die letzte Version des Dokuments wurde ersetzt +'replace_content_email_body' => 'Die letzte Version des Dokuments wurde ersetzt. + Dokument: [name] Version: [version] Elternordner: [folder_path] Benutzer: [username] URL: [url]', +'replace_content_email_body_html' => '

Die letzte Version des Dokuments wurde ersetzt.

+ +

Dokument: [name]
+Version: [version]
+Elternordner: [folder_path]
+Benutzer: [username]v +URL: [url]

', 'replace_content_email_subject' => '[sitename]: [name] - Dokumentenversion ersetzt', -'request_workflow_action_email_body' => 'Der Workflow hat einen Status erreicht welcher Ihre Aktion benötigt. -Dokument: [name] -Version: [version] -Workflow: [workflow] -Aktueller Status: [current_state] -Übergeordneter Ordner: [folder_path] -Benutzer: [username] +'request_workflow_action_email_body' => 'Der Workflow hat einen Status erreicht welcher Ihre Aktion benötigt. + +Dokument: [name] +Version: [version] +Workflow: [workflow] +Aktueller Status: [current_state] +Übergeordneter Ordner: [folder_path] +Benutzer: [username] URL: [url]', +'request_workflow_action_email_body_html' => '

Der Workflow hat einen Status erreicht welcher Ihre Aktion benötigt.

+ +

Dokument: [name]
+Version: [version]
+Workflow: [workflow]
+Aktueller Status: [current_state]
+Übergeordneter Ordner: [folder_path]
+Benutzer: [username]
+URL: [url]

', 'request_workflow_action_email_subject' => '[sitename]: [name] - Workflow-Aktion erforderlich', 'reset_checkout' => 'Auschecken beenden', 'restrict_access' => 'Kein Zugriff auf', 'results_page' => 'Ergebnis-Seite', 'return_from_subworkflow' => 'Rückkehr aus Sub-Workflow', 'return_from_subworkflow_email_body' => 'Rückkehr vom Subworkflow + Dokument: [name] Version: [version] Workflow: [workflow] @@ -1155,6 +1421,15 @@ Subworkflow: [subworkflow] Elternordner: [folder_path] Benutzer: [username] URL: [url]', +'return_from_subworkflow_email_body_html' => '

Rückkehr vom Subworkflow

+ +

Dokument: [name]
+Version: [version]
+Workflow: [workflow]
+Subworkflow: [subworkflow]
+Elternordner: [folder_path]
+Benutzer: [username]
+URL: [url]

', 'return_from_subworkflow_email_subject' => '[sitename]: [name] - Rückkehr vom Subworkflow', 'reverse_links' => 'Dokumente, die eine Verknüpfung zu diesem Dokument haben', 'reviewers' => 'Prüfer', @@ -1170,26 +1445,43 @@ URL: [url]', 'reviews_without_user' => 'Prüfungen ohne Benutzer', 'review_deletion_email' => 'Prüfungsaufforderung gelöscht', 'review_deletion_email_body' => 'Prüfungsaufforderung gelöscht + Dokument: [name] Version: [version] Elternordner: [folder_path] Benutzer: [username] URL: [url]', +'review_deletion_email_body_html' => '

Prüfungsaufforderung gelöscht

+ +

Dokument: [name]
+Version: [version]
+Elternordner: [folder_path]
+Benutzer: [username]
+URL: [url]

', 'review_deletion_email_subject' => '[sitename]: [name] - Prüfungsaufforderung gelöscht', 'review_file' => 'Datei', 'review_group' => 'Gruppe: prüfen', 'review_log' => 'Prüfungsprotokoll', 'review_request_email' => 'Aufforderung zur Prüfung', 'review_request_email_body' => 'Aufforderung zur Prüfung + Dokument: [name] Version: [version] Elternordner: [folder_path] Benutzer: [username] URL: [url]', +'review_request_email_body_html' => '

Aufforderung zur Prüfung

+ +

Dokument: [name]
+Version: [version]
+Elternordner: [folder_path]
+Benutzer: [username]
+URL: [url]

', 'review_request_email_subject' => '[sitename]: [name] - Aufforderung zur Prüfung', 'review_status' => 'Status', 'review_submit_email' => 'Prüfung ausgeführt', 'review_submit_email_body' => 'Prüfung ausgeführt + Dokument: [name] Version: [version] Status: [status] @@ -1197,6 +1489,15 @@ Kommentar: [comment] Elternordner: [folder_path] Benutzer: [username] URL: [url]', +'review_submit_email_body_html' => '

Prüfung ausgeführt

+ +

Dokument: [name]
+Version: [version]
+Status: [status]
+Kommentar: [comment]
+Elternordner: [folder_path]
+Benutzer: [username]
+URL: [url]

', 'review_submit_email_subject' => '[sitename]: [name] - Prüfung ausgeführt', 'review_summary' => 'Übersicht Prüfungen', 'review_update_failed' => 'Störung bei Aktualisierung des Prüfstatus. Aktualisierung gescheitert.', @@ -1216,14 +1517,23 @@ URL: [url]', 'revision_date' => 'Datum der Wiederholungsprüfung', 'revision_log' => 'Protokoll der erneuten Prüfung', 'revision_request_email_body' => 'Aufforderung zur Wiederholungsprüfung + Dokument: [name] Version: [version] Elternordner: [folder_path] Benutzer: [username] URL: [url]', +'revision_request_email_body_html' => '

Aufforderung zur Wiederholungsprüfung

+ +

Dokument: [name]
+Version: [version]
+Elternordner: [folder_path]
+Benutzer: [username]
+URL: [url]

', 'revision_request_email_subject' => '[sitename]: [name] - Aufforderung zur Wiederholungsprüfung', 'revision_status' => 'Status', 'revision_submit_email_body' => 'Erneute Freigabe erteilt + Dokument: [name] Version: [version] Elternordner: [folder_path] @@ -1231,6 +1541,15 @@ Status: [status] Kommentar: [comment] Benutzer: [username] URL: [url]', +'revision_submit_email_body_html' => '

Erneute Freigabe erteilt

+ +

Dokument: [name]
+Version: [version]
+Elternordner: [folder_path]
+Status: [status]
+Kommentar: [comment]
+Benutzer: [username]
+URL: [url]

', 'revision_submit_email_subject' => '[sitename]: [name] - Erneute Freigabe erteilt', 'revision_summary' => 'Übersicht Wiederholungsprüfungen', 'revisors' => 'Wiederholungsprüfer', @@ -1238,12 +1557,21 @@ URL: [url]', 'revisor_already_removed' => 'Wiederholungsprüfer wurde bereits vom Prozess ausgeschlossen oder hat das Dokument bereits geprüft.', 'rewind_workflow' => 'Zurück zum Anfangszustand', 'rewind_workflow_email_body' => 'Workflow wurde zurückgestellt + Dokument: [name] Version: [version] Workflow: [workflow] Elternordner: [folder_path] Benutzer: [username] URL: [url]', +'rewind_workflow_email_body_html' => '

Workflow wurde zurückgestellt

+ +

Dokument: [name]
+Version: [version]
+Workflow: [workflow]
+Elternordner: [folder_path]
+Benutzer: [username]
+URL: [url]

', 'rewind_workflow_email_subject' => '[sitename]: [name] - Workflow wurde zurückgestellt', 'rewind_workflow_warning' => 'Wenn Sie einen Workflow in den Anfangszustand zurückversetzen, dann werden alle bisherigen Aktionen und Kommentare unwiederbringlich gelöscht.', 'rm_attrdef' => 'Attributdefinition löschen', @@ -1279,6 +1607,7 @@ URL: [url]', 'ro_RO' => 'Rumänisch', 'run_subworkflow' => 'Sub-Workflow starten', 'run_subworkflow_email_body' => 'Subworkflow wurde gestartet + Dokument: [name] Version: [version] Workflow: [workflow] @@ -1286,6 +1615,15 @@ Subworkflow: [subworkflow] Elternordner: [folder_path] Benutzer: [username] URL: [url]', +'run_subworkflow_email_body_html' => '

Subworkflow wurde gestartet

+ +

Dokument: [name]
+Version: [version]
+Workflow: [workflow]
+Subworkflow: [subworkflow]
+Elternordner: [folder_path]
+Benutzer: [username]
+URL: [url]

', 'run_subworkflow_email_subject' => '[sitename]: [name] - Subworkflow wurde gestartet', 'ru_RU' => 'Russisch', 'saturday' => 'Samstag', @@ -1974,16 +2312,28 @@ Sollten Sie kein Passwort bekommen haben, dann nutzen Sie bitte die Passwort-Ver 'transfer_process_to_user' => 'Prozess auf Benutzer übertragen', 'transfer_to_user' => 'Auf Benutzer übertragen', 'transition_triggered_email' => 'Workflow transition triggered', -'transition_triggered_email_body' => 'Workflow transition triggered -Document: [name] +'transition_triggered_email_body' => 'Workflow Statusübergang ausgelöst + +Dokument: [name] Version: [version] -Comment: [comment] +Kommentar: [comment] Workflow: [workflow] -Previous state: [previous_state] -Current state: [current_state] -Parent folder: [folder_path] -User: [username] +Vorheriger Status: [previous_state] +Akuteller Status: [current_state] +Elternordner: [folder_path] +Benutzer: [username] URL: [url]', +'transition_triggered_email_body_html' => '

Workflow Statusübergang ausgelöst.

+ +

Dokument: [name]
+Version: [version]
+Kommentar: [comment]
+Workflow: [workflow]
+Vorheriger Status: [previous_state]
+Aktueller Status: [current_state]
+Elternordner: [folder_path]
+Benutzer: [username]
+URL: [url]

', 'transition_triggered_email_subject' => '[sitename]: [name] - Workflow transition triggered', 'transmittal' => 'Dokumentenliste', 'transmittalitem_removed' => 'Eintrag aus Dokumentenliste gelöscht', @@ -2060,11 +2410,19 @@ URL: [url]', 'version_comment' => 'Kommentar der Version', 'version_deleted_email' => 'Version gelöscht', 'version_deleted_email_body' => 'Version gelöscht + Dokument: [name] Version: [version] Elternordner: [folder_path] Benutzer: [username] URL: [url]', +'version_deleted_email_body_html' => '

Version gelöscht

+ +

Dokument: [name]
+Version: [version]
+Elternordner: [folder_path]
+Benutzer: [username]
+URL: [url]

', 'version_deleted_email_subject' => '[sitename]: [name] - Version gelöscht', 'version_info' => 'Versionsinformation', 'view' => 'Ansicht', diff --git a/languages/el_GR/lang.inc b/languages/el_GR/lang.inc index d0c2c24f1..6d26c05e0 100644 --- a/languages/el_GR/lang.inc +++ b/languages/el_GR/lang.inc @@ -46,6 +46,7 @@ $text = array( 'access_mode_readwrite' => 'Δικαιώματα ανάγνωσης-εγγÏαφής', 'access_permission_changed_email' => '', 'access_permission_changed_email_body' => '', +'access_permission_changed_email_body_html' => '', 'access_permission_changed_email_subject' => '', 'according_settings' => '', 'action' => 'ΕνέÏγεια', @@ -108,6 +109,7 @@ $text = array( 'approvals_without_user' => '', 'approval_deletion_email' => '', 'approval_deletion_email_body' => '', +'approval_deletion_email_body_html' => '', 'approval_deletion_email_subject' => '', 'approval_file' => '', 'approval_group' => '', @@ -118,6 +120,7 @@ $text = array( 'approval_status' => '', 'approval_submit_email' => '', 'approval_submit_email_body' => '', +'approval_submit_email_body_html' => '', 'approval_submit_email_subject' => '', 'approval_summary' => 'ΣÏνολο ΕγκÏίσεων', 'approval_update_failed' => '', @@ -171,6 +174,7 @@ $text = array( 'attrdef_valueset_help' => '', 'attributes' => '', 'attribute_changed_email_body' => '', +'attribute_changed_email_body_html' => '', 'attribute_changed_email_subject' => '', 'attribute_count' => '', 'attribute_value' => '', @@ -362,15 +366,18 @@ $text = array( 'document_already_checkedout' => '', 'document_already_locked' => '', 'document_attribute_changed_email_body' => '', +'document_attribute_changed_email_body_html' => '', 'document_attribute_changed_email_subject' => '', 'document_comment_changed_email' => '', 'document_comment_changed_email_body' => '', +'document_comment_changed_email_body_html' => '', 'document_comment_changed_email_subject' => '', 'document_content_missing' => '', 'document_count' => '', 'document_deleted' => '', 'document_deleted_email' => '', 'document_deleted_email_body' => '', +'document_deleted_email_body_html' => '', 'document_deleted_email_subject' => '', 'document_duplicate_name' => '', 'document_files' => '', @@ -385,19 +392,24 @@ $text = array( 'document_link_public' => 'Δημόσιο', 'document_moved_email' => 'Το έγγÏαφα μετακινήθηκε', 'document_moved_email_body' => '', +'document_moved_email_body_html' => '', 'document_moved_email_subject' => '', 'document_not_checkedout' => '', 'document_renamed_email' => '', 'document_renamed_email_body' => '', +'document_renamed_email_body_html' => '', 'document_renamed_email_subject' => '', 'document_status_changed_email' => '', 'document_status_changed_email_body' => '', +'document_status_changed_email_body_html' => '', 'document_status_changed_email_subject' => '', 'document_title' => 'Τίτλος εγγÏάφου', 'document_transfered_email_body' => '', +'document_transfered_email_body_html' => '', 'document_transfered_email_subject' => '', 'document_updated_email' => '', 'document_updated_email_body' => '', +'document_updated_email_body_html' => '', 'document_updated_email_subject' => '', 'document_versions' => '', 'does_not_expire' => 'Δεν λήγει', @@ -523,6 +535,7 @@ $text = array( 'expire_tomorrow' => '', 'expiry_changed_email' => 'Η ημεÏομηνία λήξης έχει αλλάξει', 'expiry_changed_email_body' => '', +'expiry_changed_email_body_html' => '', 'expiry_changed_email_subject' => '', 'export' => '', 'export_user_list_csv' => '', @@ -555,20 +568,25 @@ $text = array( 'folders_and_documents_statistic' => 'στατιστικά Φακέλλων και ΑÏχείων', 'folders_with_notification' => '', 'folder_attribute_changed_email_body' => '', +'folder_attribute_changed_email_body_html' => '', 'folder_attribute_changed_email_subject' => '', 'folder_comment_changed_email' => '', 'folder_comment_changed_email_body' => '', +'folder_comment_changed_email_body_html' => '', 'folder_comment_changed_email_subject' => '', 'folder_contents' => 'ΠεÏιεχόμενα Φακέλου', 'folder_deleted_email' => '', 'folder_deleted_email_body' => '', +'folder_deleted_email_body_html' => '', 'folder_deleted_email_subject' => '', 'folder_infos' => 'ΠληÏοφοÏίες Φακέλου', 'folder_moved_email' => '', 'folder_moved_email_body' => '', +'folder_moved_email_body_html' => '', 'folder_moved_email_subject' => '', 'folder_renamed_email' => '', 'folder_renamed_email_body' => '', +'folder_renamed_email_body_html' => '', 'folder_renamed_email_subject' => '', 'folder_title' => 'Όνομα Φακέλου', 'foot_note' => '', @@ -812,9 +830,11 @@ Comment: [comment] Version comment: [version_comment] User: [username] URL: [url]', +'new_document_email_body_html' => '', 'new_document_email_subject' => '', 'new_file_email' => '', 'new_file_email_body' => '', +'new_file_email_body_html' => '', 'new_file_email_subject' => '', 'new_folder' => 'Îέος φάκελλος', 'new_password' => 'Îέος κωδικός', @@ -825,6 +845,7 @@ Parent folder: [folder_path] Comment: [comment] User: [username] URL: [url]', +'new_subfolder_email_body_html' => '', 'new_subfolder_email_subject' => '', 'new_user_image' => '', 'next_revision_abbr' => '', @@ -834,9 +855,11 @@ URL: [url]', 'notification' => '', 'notify_added_email' => '', 'notify_added_email_body' => '', +'notify_added_email_body_html' => '', 'notify_added_email_subject' => '', 'notify_deleted_email' => '', 'notify_deleted_email_body' => '', +'notify_deleted_email_body_html' => '', 'notify_deleted_email_subject' => '', 'not_subscribed' => '', 'november' => 'ÎοέμβÏιος', @@ -873,6 +896,7 @@ URL: [url]', 'no_user_image' => '', 'no_version_check' => '', 'no_version_modification' => '', +'no_workflows' => '', 'no_workflow_available' => '', 'objectcheck' => 'Αναζήτηση σε αÏχεία και φακέλους', 'object_check_critical' => '', @@ -888,6 +912,7 @@ URL: [url]', 'owner' => 'Ιδιοκτήτης', 'ownership_changed_email' => '', 'ownership_changed_email_body' => '', +'ownership_changed_email_body_html' => '', 'ownership_changed_email_subject' => '', 'password' => '', 'password_already_used' => '', @@ -897,6 +922,7 @@ URL: [url]', 'password_expires_in_days' => '', 'password_forgotten' => '', 'password_forgotten_email_body' => '', +'password_forgotten_email_body_html' => '', 'password_forgotten_email_subject' => '', 'password_forgotten_send_hash' => '', 'password_forgotten_text' => '', @@ -944,11 +970,15 @@ URL: [url]', 'receipts_without_group' => '', 'receipts_without_user' => '', 'receipt_deletion_email_body' => '', +'receipt_deletion_email_body_html' => '', 'receipt_deletion_email_subject' => '', 'receipt_log' => '', 'receipt_request_email_body' => '', +'receipt_request_email_body_html' => '', 'receipt_request_email_subject' => '', 'receipt_status' => '', +'receipt_submit_email_body' => '', +'receipt_submit_email_subject' => '', 'receipt_summary' => '', 'receipt_update_failed' => '', 'recent_uploads' => 'ΠÏόσφατες μεταφοÏτώσεις', @@ -965,11 +995,13 @@ URL: [url]', 'removed_approver' => '', 'removed_file_email' => '', 'removed_file_email_body' => '', +'removed_file_email_body_html' => '', 'removed_file_email_subject' => '', 'removed_recipient' => '', 'removed_reviewer' => '', 'removed_revisor' => '', 'removed_workflow_email_body' => '', +'removed_workflow_email_body_html' => '', 'removed_workflow_email_subject' => '', 'removeFolderFromDropFolder' => '', 'remove_approval_log' => '', @@ -978,14 +1010,17 @@ URL: [url]', 'repaired' => '', 'repairing_objects' => '', 'replace_content_email_body' => '', +'replace_content_email_body_html' => '', 'replace_content_email_subject' => '', 'request_workflow_action_email_body' => '', +'request_workflow_action_email_body_html' => '', 'request_workflow_action_email_subject' => '', 'reset_checkout' => '', 'restrict_access' => '', 'results_page' => '', 'return_from_subworkflow' => '', 'return_from_subworkflow_email_body' => '', +'return_from_subworkflow_email_body_html' => '', 'return_from_subworkflow_email_subject' => '', 'reverse_links' => '', 'reviewers' => '', @@ -1001,16 +1036,19 @@ URL: [url]', 'reviews_without_user' => '', 'review_deletion_email' => '', 'review_deletion_email_body' => '', +'review_deletion_email_body_html' => '', 'review_deletion_email_subject' => '', 'review_file' => '', 'review_group' => '', 'review_log' => '', 'review_request_email' => '', 'review_request_email_body' => '', +'review_request_email_body_html' => '', 'review_request_email_subject' => '', 'review_status' => '', 'review_submit_email' => '', 'review_submit_email_body' => '', +'review_submit_email_body_html' => '', 'review_submit_email_subject' => '', 'review_summary' => 'ΣÏνολο Ανασκοπήσεων', 'review_update_failed' => '', @@ -1030,9 +1068,11 @@ URL: [url]', 'revision_date' => '', 'revision_log' => '', 'revision_request_email_body' => '', +'revision_request_email_body_html' => '', 'revision_request_email_subject' => '', 'revision_status' => '', 'revision_submit_email_body' => '', +'revision_submit_email_body_html' => '', 'revision_submit_email_subject' => '', 'revision_summary' => '', 'revisors' => '', @@ -1040,6 +1080,7 @@ URL: [url]', 'revisor_already_removed' => '', 'rewind_workflow' => '', 'rewind_workflow_email_body' => '', +'rewind_workflow_email_body_html' => '', 'rewind_workflow_email_subject' => '', 'rewind_workflow_warning' => '', 'rm_attrdef' => '', @@ -1075,6 +1116,7 @@ URL: [url]', 'ro_RO' => 'Ρουμάνικα', 'run_subworkflow' => '', 'run_subworkflow_email_body' => '', +'run_subworkflow_email_body_html' => '', 'run_subworkflow_email_subject' => '', 'ru_RU' => 'Russian/Ρωσσικά', 'saturday' => 'Σαββάτο', @@ -1757,6 +1799,7 @@ URL: [url]', 'transfer_to_user' => '', 'transition_triggered_email' => '', 'transition_triggered_email_body' => '', +'transition_triggered_email_body_html' => '', 'transition_triggered_email_subject' => '', 'transmittal' => '', 'transmittalitem_removed' => '', @@ -1833,6 +1876,7 @@ URL: [url]', 'version_comment' => '', 'version_deleted_email' => '', 'version_deleted_email_body' => '', +'version_deleted_email_body_html' => '', 'version_deleted_email_subject' => '', 'version_info' => 'ΠληÏοφοÏίες έκδοσης', 'view' => '', diff --git a/languages/en_GB/lang.inc b/languages/en_GB/lang.inc index 471199d5f..379bd0368 100644 --- a/languages/en_GB/lang.inc +++ b/languages/en_GB/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (2061), archonwang (3), dgrutsch (9), netixw (14) +// Translators: Admin (2145), archonwang (3), dgrutsch (9), netixw (14) $text = array( '2_factor_auth' => '2-factor authentication', @@ -46,10 +46,17 @@ $text = array( 'access_mode_readwrite' => 'Read-Write permissions', 'access_permission_changed_email' => 'Permission changed', 'access_permission_changed_email_body' => 'Permission changed + Document: [name] Parent folder: [folder_path] User: [username] URL: [url]', +'access_permission_changed_email_body_html' => '

Permission changed

+ +

Document: [name]
+Parent folder: [folder_path]
+User: [username]
+URL: [url]

', 'access_permission_changed_email_subject' => '[sitename]: [name] - Permission changed', 'according_settings' => 'according settings', 'action' => 'Action', @@ -112,11 +119,19 @@ URL: [url]', 'approvals_without_user' => 'Approvals without user', 'approval_deletion_email' => 'Approval request deleted', 'approval_deletion_email_body' => 'Approval request deleted + Document: [name] Version: [version] Parent folder: [folder_path] User: [username] URL: [url]', +'approval_deletion_email_body_html' => '

Approval request deleted

+ +

Document: [name]
+Version: [version]
+Parent folder: [folder_path]
+User: [username]
+URL: [url]

', 'approval_deletion_email_subject' => '[sitename]: [name] - Approval request deleted', 'approval_file' => 'File', 'approval_group' => 'Approval Group', @@ -132,6 +147,7 @@ URL: [url]', 'approval_status' => 'Approval Status', 'approval_submit_email' => '', 'approval_submit_email_body' => 'Approval of document + Document: [name] Version: [version] Parent folder: [folder_path] @@ -139,6 +155,15 @@ Status: [status] Comment: [comment] User: [username] URL: [url]', +'approval_submit_email_body_html' => '

Approval of document

+ +

Document: [name]
+Version: [version]
+Parent folder: [folder_path]
+Status: [status]
+Comment: [comment]
+User: [username]
+URL: [url]

', 'approval_submit_email_subject' => '[sitename]: [name] - Approval submitted', 'approval_summary' => 'Approval Summary', 'approval_update_failed' => 'Error updating approval status. Update failed.', @@ -192,6 +217,7 @@ URL: [url]', 'attrdef_valueset_help' => 'A list of values separated by an arbitrary char, which also must be the first char of this string, e.g. #yes#no#maybe', 'attributes' => 'Attributes', 'attribute_changed_email_body' => 'Attribute changed + Document: [name] Version: [version] Attribute: [attribute_name] @@ -200,6 +226,16 @@ New value: [attribute_new_value] Parent folder: [folder_path] User: [username] URL: [url]', +'attribute_changed_email_body_html' => '

Attribute changed

+ +

Document: [name]
+Version: [version]
+Attribute: [attribute_name]
+Old value: [attribute_old_value]
+New value: [attribute_new_value]
+Parent folder: [folder_path]
+User: [username]
+URL: [url]

', 'attribute_changed_email_subject' => '[sitename]: [name] - Attribute changed', 'attribute_count' => 'Number of uses', 'attribute_value' => 'Value of attribute', @@ -391,6 +427,7 @@ URL: [url]', 'document_already_checkedout' => 'This document is already checked out', 'document_already_locked' => 'This document is already locked', 'document_attribute_changed_email_body' => 'Attribute changed + Document: [name] Attribute: [attribute_name] Old value: [attribute_old_value] @@ -398,24 +435,48 @@ New value: [attribute_new_value] Parent folder: [folder_path] User: [username] URL: [url]', +'document_attribute_changed_email_body_html' => '

Attribute changed

+ +

Document: [name]
+Attribute: [attribute_name]
+Old value: [attribute_old_value]
+New value: [attribute_new_value]
+Parent folder: [folder_path]
+User: [username]
+URL: [url]

', 'document_attribute_changed_email_subject' => '[sitename]: [name] - Attribute changed', 'document_comment_changed_email' => 'Comment changed', 'document_comment_changed_email_body' => 'Comment changed + Document: [name] Old comment: [old_comment] New Comment: [new_comment] Parent folder: [folder_path] User: [username] URL: [url]', +'document_comment_changed_email_body_html' => '

Comment changed

+ +

Document: [name]
+Old comment: [old_comment]
+New Comment: [new_comment]
+Parent folder: [folder_path]
+User: [username]
+URL: [url]

', 'document_comment_changed_email_subject' => '[sitename]: [name] - Comment changed', 'document_content_missing' => 'Document content missing', 'document_count' => 'Number of documents', 'document_deleted' => 'Document deleted', 'document_deleted_email' => 'Document deleted', -'document_deleted_email_body' => 'Document deleted -Document: [name] -Parent folder: [folder_path] +'document_deleted_email_body' => 'Document deleted + +Document: [name] +Parent folder: [folder_path] User: [username]', +'document_deleted_email_body_html' => '

Document deleted

+ +

Document: [name]
+Parent folder: [folder_path]
+User: [username]

', 'document_deleted_email_subject' => '[sitename]: [name] - Document deleted', 'document_duplicate_name' => 'Duplicate document name', 'document_files' => 'Attachments', @@ -429,41 +490,75 @@ User: [username]', 'document_link_by' => 'Linked by', 'document_link_public' => 'Public', 'document_moved_email' => 'Document moved', -'document_moved_email_body' => 'Document moved -Document: [name] -Old folder: [old_folder_path] -New folder: [new_folder_path] -User: [username] +'document_moved_email_body' => 'Document moved + +Document: [name] +Old folder: [old_folder_path] +New folder: [new_folder_path] +User: [username] URL: [url]', +'document_moved_email_body_html' => '

Document moved

+ +

Document: [name]
+Old folder: [old_folder_path]
+New folder: [new_folder_path]
+User: [username]
+URL: [url]

', 'document_moved_email_subject' => '[sitename]: [name] - Document moved', 'document_not_checkedout' => 'Document is not checked out.', 'document_renamed_email' => 'Document renamed', -'document_renamed_email_body' => 'Document name changed -Document: [name] -Parent folder: [folder_path] -Old name: [old_name] -User: [username] +'document_renamed_email_body' => 'Document name changed + +Document: [name] +Parent folder: [folder_path] +Old name: [old_name] +User: [username] URL: [url]', +'document_renamed_email_body_html' => '

Document name changed

+ +

Document: [name]
+Parent folder: [folder_path]
+Old name: [old_name]
+User: [username]
+URL: [url]

', 'document_renamed_email_subject' => '[sitename]: [name] - Document renamed', 'document_status_changed_email' => 'Document status changed', -'document_status_changed_email_body' => 'Document status changed -Document: [name] -Status: [status] -Parent folder: [folder_path] -User: [username] +'document_status_changed_email_body' => 'Document status changed + +Document: [name] +Status: [status] +Parent folder: [folder_path] +User: [username] URL: [url]', +'document_status_changed_email_body_html' => '

Document status changed

+ +

Document: [name]
+Status: [status]
+Parent folder: [folder_path]
+User: [username]
+URL: [url]

', 'document_status_changed_email_subject' => '[sitename]: [name] - Document status changed', 'document_title' => 'Document \'[documentname]\'', 'document_transfered_email_body' => 'Document transfer to other user + Document: [name] New owner: [newuser] Old owner: [olduser] Parent folder: [folder_path] User: [username] URL: [url]', +'document_transfered_email_body_html' => '

Document transfer to other user

+ +

Document: [name]
+New owner: [newuser]
+Old owner: [olduser]
+Parent folder: [folder_path]
+User: [username]
+URL: [url]

', 'document_transfered_email_subject' => '[sitename]: [name] - Transfer Document', 'document_updated_email' => 'Document updated', 'document_updated_email_body' => 'Document updated + Document: [name] Version: [version] Parent folder: [folder_path] @@ -471,6 +566,15 @@ User: [username] Comment: [comment] Version comment: [version_comment] URL: [url]', +'document_updated_email_body_html' => '

Document updated

+ +

Document: [name]
+Version: [version]
+Parent folder: [folder_path]
+User: [username]
+Comment: [comment]
+Version comment: [version_comment]
+URL: [url]

', 'document_updated_email_subject' => '[sitename]: [name] - Document updated', 'document_versions' => 'Document versions', 'does_not_expire' => 'Does not expire', @@ -596,10 +700,17 @@ URL: [url]', 'expire_tomorrow' => 'Expires tomorrow', 'expiry_changed_email' => 'Expiry date changed', 'expiry_changed_email_body' => 'Expiry date changed + Document: [name] Parent folder: [folder_path] User: [username] URL: [url]', +'expiry_changed_email_body_html' => '

Expiry date changed

+ +

Document: [name]
+Parent folder: [folder_path]
+User: [username]
+URL: [url]

', 'expiry_changed_email_subject' => '[sitename]: [name] - Expiry date changed', 'export' => 'Export', 'export_user_list_csv' => 'Export users as CSV', @@ -632,6 +743,7 @@ URL: [url]', 'folders_and_documents_statistic' => 'Contents overview', 'folders_with_notification' => 'Folders with notification', 'folder_attribute_changed_email_body' => 'Attribute changed + Folder: [name] Attribute: [attribute_name] Old value: [attribute_old_value] @@ -639,40 +751,81 @@ New value: [attribute_new_value] Parent folder: [folder_path] User: [username] URL: [url]', +'folder_attribute_changed_email_body_html' => '

Attribute changed

+ +

Folder: [name]
+Attribute: [attribute_name]
+Old value: [attribute_old_value]
+New value: [attribute_new_value]
+Parent folder: [folder_path]
+User: [username]
+URL: [url]

', 'folder_attribute_changed_email_subject' => '[sitename]: [name] - Attribute changed', 'folder_comment_changed_email' => 'Comment changed', 'folder_comment_changed_email_body' => 'Comment changed + Folder: [name] Old comment: [old_comment] New Comment: [new_comment] Parent folder: [folder_path] User: [username] URL: [url]', +'folder_comment_changed_email_body_html' => '

Comment changed

+ +

Folder: [name]
+Old comment: [old_comment]
+New Comment: [new_comment]
+Parent folder: [folder_path]
+User: [username]
+URL: [url]

', 'folder_comment_changed_email_subject' => '[sitename]: [name] - Comment changed', 'folder_contents' => 'Folder Contents', 'folder_deleted_email' => 'Folder deleted', -'folder_deleted_email_body' => 'Folder deleted -Folder: [name] -Parent folder: [folder_path] -User: [username] +'folder_deleted_email_body' => 'Folder deleted + +Folder: [name] +Parent folder: [folder_path] +User: [username] URL: [url]', +'folder_deleted_email_body_html' => '

Folder deleted

+ +

Folder: [name]
+Parent folder: [folder_path]
+User: [username]
+URL: [url]

', 'folder_deleted_email_subject' => '[sitename]: [name] - Folder deleted', 'folder_infos' => 'Folder Information', 'folder_moved_email' => 'Folder moved', -'folder_moved_email_body' => 'Folder move -Folder: [name] -Old folder: [old_folder_path] -New folder: [new_folder_path] -User: [username] +'folder_moved_email_body' => 'Folder move + +Folder: [name] +Old folder: [old_folder_path] +New folder: [new_folder_path] +User: [username] URL: [url]', +'folder_moved_email_body_html' => '

Folder move

+ +

Folder: [name]
+Old folder: [old_folder_path]
+New folder: [new_folder_path]
+User: [username]
+URL: [url]

', 'folder_moved_email_subject' => '[sitename]: [name] - Folder moved', 'folder_renamed_email' => 'Folder renamed', -'folder_renamed_email_body' => 'Folder renamed -Folder: [name] -Parent folder: [folder_path] -Old name: [old_name] -User: [username] +'folder_renamed_email_body' => 'Folder renamed + +Folder: [name] +Parent folder: [folder_path] +Old name: [old_name] +User: [username] URL: [url]', +'folder_renamed_email_body_html' => '

Folder renamed

+ +

Folder: [name]
+Parent folder: [folder_path]
+Old name: [old_name]
+User: [username]
+URL: [url]

', 'folder_renamed_email_subject' => '[sitename]: [name] - Folder renamed', 'folder_title' => 'Folder \'[foldername]\'', 'foot_note' => '', @@ -910,30 +1063,55 @@ URL: [url]', 'new_document_category' => 'Add category', 'new_document_email' => 'New document', 'new_document_email_body' => 'New document + Name: [name] Parent folder: [folder_path] Comment: [comment] Version comment: [version_comment] User: [username] URL: [url]', +'new_document_email_body_html' => '

New document

+ +

Name: [name]
+Parent folder: [folder_path]
+Comment: [comment]
+Version comment: [version_comment]
+User: [username]
+URL: [url]

', 'new_document_email_subject' => '[sitename]: [folder_name] - New document', 'new_file_email' => 'New attachment', 'new_file_email_body' => 'New attachment + Name: [name] Document: [document] Comment: [comment] User: [username] URL: [url]', +'new_file_email_body_html' => '

New attachment

+ +

Name: [name]
+Document: [document]
+Comment: [comment]
+User: [username]
+URL: [url]

', 'new_file_email_subject' => '[sitename]: [document] - New attachment', 'new_folder' => 'New folder', 'new_password' => 'New password', 'new_subfolder_email' => 'New folder', 'new_subfolder_email_body' => 'New folder + Name: [name] Parent folder: [folder_path] Comment: [comment] User: [username] URL: [url]', +'new_subfolder_email_body_html' => '

New folder

+ +

Name: [name]
+Parent folder: [folder_path]
+Comment: [comment]
+User: [username]
+URL: [url]

', 'new_subfolder_email_subject' => '[sitename]: [name] - New folder', 'new_user_image' => 'New image', 'next_revision_abbr' => 'Next Rev.', @@ -942,11 +1120,17 @@ URL: [url]', 'no' => 'No', 'notification' => 'Notification', 'notify_added_email' => 'You\'ve been added to notify list', -'notify_added_email_body' => 'Added to notification list +'notify_added_email_body' => 'Added to notification list. + Name: [name] Parent folder: [folder_path] User: [username] URL: [url]', +'notify_added_email_body_html' => '

Added to notification list.

+

Name: [name]
+Parent folder: [folder_path]
+User: [username]
+URL: [url]

', 'notify_added_email_subject' => '[sitename]: [name] - Added to notification list', 'notify_deleted_email' => 'You\'ve been removed from notify list', 'notify_deleted_email_body' => 'Removed from notification list @@ -954,6 +1138,11 @@ Name: [name] Parent folder: [folder_path] User: [username] URL: [url]', +'notify_deleted_email_body_html' => '

Removed from notification list

+

Name: [name]
+Parent folder: [folder_path]
+User: [username]
+URL: [url]

', 'notify_deleted_email_subject' => '[sitename]: [name] - Removed from notification list', 'not_subscribed' => 'Not subscribed', 'november' => 'November', @@ -990,6 +1179,7 @@ URL: [url]', 'no_user_image' => 'No image found', 'no_version_check' => 'Checking for a new version of SeedDMS has failed! This could be caused by allow_url_fopen being set to 0 in your php configuration.', 'no_version_modification' => 'No version modification', +'no_workflows' => 'You have not created a workflow yet', 'no_workflow_available' => 'No workflow available', 'objectcheck' => 'Folder/Document check', 'object_check_critical' => 'Critical errors', @@ -1004,13 +1194,22 @@ URL: [url]', 'overall_indexing_progress' => 'Overall indexing progress', 'owner' => 'Owner', 'ownership_changed_email' => 'Owner changed', -'ownership_changed_email_body' => 'Owner changed -Document: [name] -Parent folder: [folder_path] -Old owner: [old_owner] -New owner: [new_owner] -User: [username] +'ownership_changed_email_body' => 'Owner changed + +Document: [name] +Parent folder: [folder_path] +Old owner: [old_owner] +New owner: [new_owner] +User: [username] URL: [url]', +'ownership_changed_email_body_html' => '

Owner changed

+ +

Document: [name]
+Parent folder: [folder_path]
+Old owner: [old_owner]
+New owner: [new_owner]
+User: [username]
+URL: [url]

', 'ownership_changed_email_subject' => '[sitename]: [name] - Owner changed', 'password' => 'Password', 'password_already_used' => 'Password already used', @@ -1028,6 +1227,15 @@ This can be done by clicking on the following link: [url_prefix]out/out.ChangePassword.php?hash=[hash] If you still have problems to login, then please contact your administrator.', +'password_forgotten_email_body_html' => '

Dear user of SeedDMS,

+ +

we have received a request to change your password.

+ +

This can be done by clicking on the following link:

+ +

[url_prefix]out/out.ChangePassword.php?hash=[hash]

+ +

If you still have problems to login, then please contact your administrator.

', 'password_forgotten_email_subject' => '[sitename]: Password forgotten', 'password_forgotten_send_hash' => 'Instructions on how to proceed has been send to the user\'s email address', 'password_forgotten_text' => 'Fill out the form below and follow the instructions in the email, which will be sent to you.', @@ -1074,23 +1282,49 @@ If you still have problems to login, then please contact your administrator.', 'receipts_rejected_latest' => '(being [no_receipts] in latest version)', 'receipts_without_group' => 'Receipts without group', 'receipts_without_user' => 'Receipts without user', -'receipt_deletion_email_body' => 'User has been removed from the list of recipients -Document: [name] -Version: [version] -Parent folder: [folder_path] -Recipient: [recipient] -User: [username] +'receipt_deletion_email_body' => 'User has been removed from the list of recipients. + +Document: [name] +Version: [version] +Parent folder: [folder_path] +Recipient: [recipient] +User: [username] URL: [url]', +'receipt_deletion_email_body_html' => '

User has been removed from the list of recipients.

+ +

Document: [name]
+Version: [version]
+Parent folder: [folder_path]
+Recipient: [recipient]
+User: [username]
+URL: [url]

', 'receipt_deletion_email_subject' => '[sitename]: [name] - Recipient removed', 'receipt_log' => 'Reception Log', 'receipt_request_email_body' => 'Reception request + Document: [name] Version: [version] Parent folder: [folder_path] User: [username] URL: [url]', +'receipt_request_email_body_html' => '

Reception request

+ +

Document: [name]
+Version: [version]
+Parent folder: [folder_path]
+User: [username]
+URL: [url]

', 'receipt_request_email_subject' => '[sitename]: [name] - Reception request', 'receipt_status' => 'Status', +'receipt_submit_email_body' => 'Submitted receipt +Document: [name] +Version: [version] +Status: [status] +Comment: [comment] +Parent folder: [folder_path] +User: [username] +URL: [url]', +'receipt_submit_email_subject' => '[sitename]: [name] - Submitted receipt', 'receipt_summary' => 'Receipt summary', 'receipt_update_failed' => 'Acknowledging reception failed', 'recent_uploads' => 'Recent Uploads', @@ -1107,20 +1341,35 @@ URL: [url]', 'removed_approver' => 'has been removed from the list of approvers.', 'removed_file_email' => 'Removed attachment', 'removed_file_email_body' => 'Removed attachment + Document: [document] User: [username] URL: [url]', +'removed_file_email_body_html' => '

Removed attachment

+ +

Document: [document]
+User: [username]
+URL: [url]

', 'removed_file_email_subject' => '[sitename]: [document] - Removed attachment', 'removed_recipient' => 'has been removed from the list of recipients.', 'removed_reviewer' => 'has been removed from the list of reviewers.', 'removed_revisor' => 'has been removed from the list of revisors.', -'removed_workflow_email_body' => 'Removed workflow from document version +'removed_workflow_email_body' => 'Removed workflow from document version. + Document: [name] Version: [version] Workflow: [workflow] Parent folder: [folder_path] User: [username] URL: [url]', +'removed_workflow_email_body_html' => '

Removed workflow from document version.

+ +

Document: [name]
+Version: [version]
+Workflow: [workflow]
+Parent folder: [folder_path]
+User: [username]
+URL: [url]

', 'removed_workflow_email_subject' => '[sitename]: [name] - Removed workflow from document version', 'removeFolderFromDropFolder' => 'Remove folder after import', 'remove_approval_log' => 'Remove approval', @@ -1128,27 +1377,46 @@ URL: [url]', 'remove_review_log' => 'Remove review', 'repaired' => 'repaired', 'repairing_objects' => 'Repairing documents and folders.', -'replace_content_email_body' => 'The last version of the document has been replaced +'replace_content_email_body' => 'The last version of the document has been replaced. + Document: [name] Version: [version] Parent folder: [folder_path] User: [username] URL: [url]', +'replace_content_email_body_html' => '

The last version of the document has been replaced.

+ +

Document: [name]
+Version: [version]
+Parent folder: [folder_path]
+User: [username]
+URL: [url]

', 'replace_content_email_subject' => '[sitename]: [name] - Document content replaced', -'request_workflow_action_email_body' => 'The workflow has reached a state which requires your action. -Document: [name] -Version: [version] -Workflow: [workflow] -Current state: [current_state] -Parent folder: [folder_path] -User: [username] +'request_workflow_action_email_body' => 'The workflow has reached a state which requires your action. + +Document: [name] +Version: [version] +Workflow: [workflow] +Current state: [current_state] +Parent folder: [folder_path] +User: [username] URL: [url]', +'request_workflow_action_email_body_html' => '

The workflow has reached a state which requires your action.

+ +

Document: [name]
+Version: [version]
+Workflow: [workflow]
+Current state: [current_state]
+Parent folder: [folder_path]
+User: [username]
+URL: [url]

', 'request_workflow_action_email_subject' => '[sitename]: [name] - Workflow action required', 'reset_checkout' => 'Finish Check out', 'restrict_access' => 'No access to', 'results_page' => 'Results Page', 'return_from_subworkflow' => 'Return from sub workflow', 'return_from_subworkflow_email_body' => 'Return from subworkflow + Document: [name] Version: [version] Workflow: [workflow] @@ -1156,6 +1424,15 @@ Subworkflow: [subworkflow] Parent folder: [folder_path] User: [username] URL: [url]', +'return_from_subworkflow_email_body_html' => '

Return from subworkflow

+ +

Document: [name]
+Version: [version]
+Workflow: [workflow]
+Subworkflow: [subworkflow]
+Parent folder: [folder_path]
+User: [username]
+URL: [url]

', 'return_from_subworkflow_email_subject' => '[sitename]: [name] - Return from subworkflow', 'reverse_links' => 'Documents, which have a link to the current document', 'reviewers' => 'Reviewers', @@ -1171,26 +1448,43 @@ URL: [url]', 'reviews_without_user' => 'Reviews without user', 'review_deletion_email' => 'Review request deleted', 'review_deletion_email_body' => 'Review request deleted + Document: [name] Version: [version] Parent folder: [folder_path] User: [username] URL: [url]', +'review_deletion_email_body_html' => '

Review request deleted

+ +

Document: [name]
+Version: [version]
+Parent folder: [folder_path]
+User: [username]
+URL: [url]

', 'review_deletion_email_subject' => '[sitename]: [name] - Review request deleted', 'review_file' => 'File', 'review_group' => 'Review group', 'review_log' => 'Review log', 'review_request_email' => 'Review request', 'review_request_email_body' => 'Review request + Document: [name] Version: [version] Parent folder: [folder_path] User: [username] URL: [url]', +'review_request_email_body_html' => '

Review request

+ +

Document: [name]
+Version: [version]
+Parent folder: [folder_path]
+User: [username]
+URL: [url]

', 'review_request_email_subject' => '[sitename]: [name] - Review request', 'review_status' => 'Review status', 'review_submit_email' => 'Submitted review', 'review_submit_email_body' => 'Submitted review + Document: [name] Version: [version] Status: [status] @@ -1198,6 +1492,15 @@ Comment: [comment] Parent folder: [folder_path] User: [username] URL: [url]', +'review_submit_email_body_html' => '

Submitted review

+ +

Document: [name]
+Version: [version]
+Status: [status]
+Comment: [comment]
+Parent folder: [folder_path]
+User: [username]
+URL: [url]

', 'review_submit_email_subject' => '[sitename]: [name] - Submitted review', 'review_summary' => 'Review Summary', 'review_update_failed' => 'Error updating review status. Update failed.', @@ -1217,14 +1520,39 @@ URL: [url]', 'revision_date' => 'Date of revision', 'revision_log' => 'Revision log', 'revision_request_email_body' => 'Revision request + Document: [name] Version: [version] Parent folder: [folder_path] User: [username] URL: [url]', +'revision_request_email_body_html' => '

Revision request

+ +

Document: [name]
+Version: [version]
+Parent folder: [folder_path]
+User: [username]
+URL: [url]

', 'revision_request_email_subject' => '[sitename]: [name] - Revision request', 'revision_status' => 'Status', -'revision_submit_email_body' => '', +'revision_submit_email_body' => 'Submitted revision + +Document: [name] +Version: [version] +Status: [status] +Comment: [comment] +Parent folder: [folder_path] +User: [username] +URL: [url]', +'revision_submit_email_body_html' => '

Submitted revision

+ +

Document: [name]
+Version: [version]
+Status: [status]
+Comment: [comment]
+Parent folder: [folder_path]
+User: [username]
+URL: [url]

', 'revision_submit_email_subject' => '[sitename]: [name] - Submitted revision', 'revision_summary' => 'Revision summary', 'revisors' => 'Revisors', @@ -1232,12 +1560,21 @@ URL: [url]', 'revisor_already_removed' => 'Revisor has already been removed from revision process or has already revised the document.', 'rewind_workflow' => 'Rewind workflow', 'rewind_workflow_email_body' => 'Workflow was rewinded + Document: [name] Version: [version] Workflow: [workflow] Parent folder: [folder_path] User: [username] URL: [url]', +'rewind_workflow_email_body_html' => '

Workflow was rewinded

+ +

Document: [name]
+Version: [version]
+Workflow: [workflow]
+Parent folder: [folder_path]
+User: [username]
+URL: [url]

', 'rewind_workflow_email_subject' => '[sitename]: [name] - Workflow was rewinded', 'rewind_workflow_warning' => 'If you rewind a workflow to its initial state, then the whole workflow log for this document will be deleted and cannot be recovered.', 'rm_attrdef' => 'Remove attribute definition', @@ -1273,6 +1610,7 @@ URL: [url]', 'ro_RO' => 'Romanian', 'run_subworkflow' => 'Run sub workflow', 'run_subworkflow_email_body' => 'Subworkflow was started + Document: [name] Version: [version] Workflow: [workflow] @@ -1280,6 +1618,15 @@ Subworkflow: [subworkflow] Parent folder: [folder_path] User: [username] URL: [url]', +'run_subworkflow_email_body_html' => '

Subworkflow was started

+ +

Document: [name]
+Version: [version]
+Workflow: [workflow]
+Subworkflow: [subworkflow]
+Parent folder: [folder_path]
+User: [username]
+URL: [url]

', 'run_subworkflow_email_subject' => '[sitename]: [name] - Subworkflow was started', 'ru_RU' => 'Russian', 'saturday' => 'Saturday', @@ -1969,6 +2316,7 @@ If you did not receive a password, please use the password forgotten function on 'transfer_to_user' => 'Transfer to user', 'transition_triggered_email' => 'Workflow transition triggered', 'transition_triggered_email_body' => 'Workflow transition triggered + Document: [name] Version: [version] Comment: [comment] @@ -1978,6 +2326,17 @@ Current state: [current_state] Parent folder: [folder_path] User: [username] URL: [url]', +'transition_triggered_email_body_html' => '

Workflow transition triggered

+ +

Document: [name]
+Version: [version]
+Comment: [comment]
+Workflow: [workflow]
+Previous state: [previous_state]
+Current state: [current_state]
+Parent folder: [folder_path]
+User: [username]
+URL: [url]

', 'transition_triggered_email_subject' => '[sitename]: [name] - Workflow transition triggered', 'transmittal' => 'Transmittal', 'transmittalitem_removed' => 'Transmittal item removed', @@ -2054,11 +2413,19 @@ URL: [url]', 'version_comment' => 'Comment of version', 'version_deleted_email' => 'Version deleted', 'version_deleted_email_body' => 'Version deleted + Document: [name] Version: [version] Parent folder: [folder_path] User: [username] URL: [url]', +'version_deleted_email_body_html' => '

Version deleted

+ +

Document: [name]
+Version: [version]
+Parent folder: [folder_path]
+User: [username]
+URL: [url]

', 'version_deleted_email_subject' => '[sitename]: [name] - Version deleted', 'version_info' => 'Version Information', 'view' => 'View', diff --git a/languages/es_ES/lang.inc b/languages/es_ES/lang.inc index cd5c21d22..f8015ad5e 100644 --- a/languages/es_ES/lang.inc +++ b/languages/es_ES/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: acabello (20), Admin (1316), angel (123), francisco (2), jaimem (14) +// Translators: acabello (20), Admin (1317), angel (123), francisco (2), jaimem (14) $text = array( '2_factor_auth' => 'Autenticación de doble factor', @@ -50,6 +50,7 @@ Documento: [name] Carpeta principal: [folder_path] Usuario: [username] URL: [url]', +'access_permission_changed_email_body_html' => '', 'access_permission_changed_email_subject' => '[sitename]: [name] - Permisos modificados', 'according_settings' => 'Conforme a configuración', 'action' => 'Acción', @@ -112,6 +113,7 @@ URL: [url]', 'approvals_without_user' => 'Aprobaciones sin usuario', 'approval_deletion_email' => 'Petición de aprobación eliminada', 'approval_deletion_email_body' => '', +'approval_deletion_email_body_html' => '', 'approval_deletion_email_subject' => '', 'approval_file' => '', 'approval_group' => 'Grupo aprobador', @@ -134,6 +136,7 @@ Estado: [status] Comentarios: [comment] Usuario: [username] URL: [url]', +'approval_submit_email_body_html' => '', 'approval_submit_email_subject' => '[sitename]: [name] - Aprobación enviada', 'approval_summary' => 'Resumen de aprobación', 'approval_update_failed' => 'Error actualizando el estado de aprobación. Actualización fallida.', @@ -195,6 +198,7 @@ New value: [attribute_new_value] Carpeta principal: [folder_path] Usario: [username] URL: [url]', +'attribute_changed_email_body_html' => '', 'attribute_changed_email_subject' => '[sitename]: [name] - Atributo modificado', 'attribute_count' => 'Cantidad de usos', 'attribute_value' => 'Valor del atributo', @@ -386,6 +390,7 @@ URL: [url]', 'document_already_checkedout' => '', 'document_already_locked' => 'Este documento ya está bloqueado', 'document_attribute_changed_email_body' => '', +'document_attribute_changed_email_body_html' => '', 'document_attribute_changed_email_subject' => '', 'document_comment_changed_email' => 'Comentario modificado', 'document_comment_changed_email_body' => 'Comentario modificado @@ -395,6 +400,7 @@ Comentario: [new_comment] Carpeta principal: [folder_path] Usuario: [username] URL: [url]', +'document_comment_changed_email_body_html' => '', 'document_comment_changed_email_subject' => '[sitename]: [name] - Comentario modificado', 'document_content_missing' => '', 'document_count' => '', @@ -404,6 +410,7 @@ URL: [url]', Documento: [name] Carpeta principal: [folder_path] Usuario: [username]', +'document_deleted_email_body_html' => '', 'document_deleted_email_subject' => '[sitename]: [name] - Documento eliminado', 'document_duplicate_name' => 'Nombre de documento duplicado', 'document_files' => '', @@ -423,6 +430,7 @@ carpeta antigua: [old_folder_path] Nueva carpeta: [new_folder_path] Usuario: [username] URL: [url]', +'document_moved_email_body_html' => '', 'document_moved_email_subject' => '[sitename]: [name] - Documento movido', 'document_not_checkedout' => '', 'document_renamed_email' => 'Documento renombrado', @@ -432,6 +440,7 @@ Carpeta principal: [folder_path] Nombre anterior: [old_name] Usuario: [username] URL: [url]', +'document_renamed_email_body_html' => '', 'document_renamed_email_subject' => '[sitename]: [name] - Documento renombrado', 'document_status_changed_email' => 'Estado del documento modificado', 'document_status_changed_email_body' => 'Estado del documento modificado @@ -440,9 +449,11 @@ Estado: [status] Carpeta principal: [folder_path] Usuario: [username] URL: [url]', +'document_status_changed_email_body_html' => '', 'document_status_changed_email_subject' => '[sitename]: [name] - Estado del documento modificado', 'document_title' => 'Documento \'[documentname]\'', 'document_transfered_email_body' => '', +'document_transfered_email_body_html' => '', 'document_transfered_email_subject' => '', 'document_updated_email' => 'Documento actualizado', 'document_updated_email_body' => 'Documento actualizado @@ -452,6 +463,7 @@ Usuario: [username] Comentario: [comment] Versión comentario: [version_comment] URL: [url]', +'document_updated_email_body_html' => '', 'document_updated_email_subject' => '[sitename]: [name] - Documento actualizado', 'document_versions' => '', 'does_not_expire' => 'No caduca', @@ -488,7 +500,7 @@ URL: [url]', 'dropfolder_metadata' => '', 'dropupload' => 'Carga Rapida', 'drop_files_here' => 'Arrastre archivos aquí!', -'drop_files_here_or_click' => '', +'drop_files_here_or_click' => '¡Arrastre y suelte sus archivos aquí o haga click!', 'dump_creation' => 'Creación de volcado de BDD', 'dump_creation_warning' => 'Con esta operación se creará un volcado a fichero del contenido de la base de datos. Después de la creación del volcado el fichero se guardará en la carpeta de datos de su servidor.', 'dump_list' => 'Ficheros de volcado existentes', @@ -581,6 +593,7 @@ Documento: [name] Carpeta principal: [folder_path] Usuario: [username] URL: [url]', +'expiry_changed_email_body_html' => '', 'expiry_changed_email_subject' => '[sitename]: [name] - Fecha de caducidad modificada', 'export' => 'Exportar', 'export_user_list_csv' => '', @@ -613,6 +626,7 @@ URL: [url]', 'folders_and_documents_statistic' => 'Vista general de contenidos', 'folders_with_notification' => '', 'folder_attribute_changed_email_body' => '', +'folder_attribute_changed_email_body_html' => '', 'folder_attribute_changed_email_subject' => '', 'folder_comment_changed_email' => 'Comentario modificado', 'folder_comment_changed_email_body' => 'Comentario modificado @@ -622,6 +636,7 @@ Comentario: [new_comment] Carpeta principal: [folder_path] Usuario: [username] URL: [url]', +'folder_comment_changed_email_body_html' => '', 'folder_comment_changed_email_subject' => '[sitename]: [name] - Comentario modificado', 'folder_contents' => 'Contenido de Carpetas', 'folder_deleted_email' => 'Carpeta eliminada', @@ -630,6 +645,7 @@ Carpeta: [name] Carpeta principal: [folder_path] Usuario: [username] URL: [url]', +'folder_deleted_email_body_html' => '', 'folder_deleted_email_subject' => '[sitename]: [name] - Carpeta eliminada', 'folder_infos' => 'Informaciones de Carpeta', 'folder_moved_email' => 'Carpeta movida', @@ -639,6 +655,7 @@ Antigua carpeta: [old_folder_path] Nueva carpeta: [new_folder_path] Usuario: [username] URL: [url]', +'folder_moved_email_body_html' => '', 'folder_moved_email_subject' => '[sitename]: [name] - Carpeta movida', 'folder_renamed_email' => 'Carpeta renombrada', 'folder_renamed_email_body' => 'Carpeta renombrada @@ -647,6 +664,7 @@ Carpeta principal: [folder_path] Antiguo nombre: [old_name] Usuario: [username] URL: [url]', +'folder_renamed_email_body_html' => '', 'folder_renamed_email_subject' => '[sitename]: [name] - Carpeta renombrada', 'folder_title' => 'Carpeta \'[foldername]\'', 'foot_note' => '', @@ -890,6 +908,7 @@ Comentario: [comment] Versión comentario: [version_comment] Usuario: [username] URL: [url]', +'new_document_email_body_html' => '', 'new_document_email_subject' => '[sitename]: [folder_name] - Nuevo documento', 'new_file_email' => 'Nuevo adjunto', 'new_file_email_body' => 'Nuevo adjunto @@ -898,6 +917,7 @@ Documento: [document] Comentario: [comment] Usuario: [username] URL: [url]', +'new_file_email_body_html' => '', 'new_file_email_subject' => '[sitename]: [document] - Nuevo adjunto', 'new_folder' => 'Nueva carpeta', 'new_password' => 'Nueva contraseña', @@ -908,6 +928,7 @@ Carpeta principal: [folder_path] Comentario: [comment] Usuario: [username] URL: [url]', +'new_subfolder_email_body_html' => '', 'new_subfolder_email_subject' => '[sitename]: [name] - Nueva carpeta', 'new_user_image' => 'Nueva imagen', 'next_revision_abbr' => '', @@ -921,6 +942,7 @@ Nombre: [name] Carpeta principal: [folder_path] Usuario: [username] URL: [url]', +'notify_added_email_body_html' => '', 'notify_added_email_subject' => '[sitename]: [name] - Añadido a la lista de notificación', 'notify_deleted_email' => 'Ha sido eliminado de la lista de notificación', 'notify_deleted_email_body' => 'Eliminado de la lista de notificación @@ -928,6 +950,7 @@ Nombre: [name] Carpeta principal: [folder_path] Usuario: [username] URL: [url]', +'notify_deleted_email_body_html' => '', 'notify_deleted_email_subject' => '[sitename]: [name] - Eliminado de la lista de notificación', 'not_subscribed' => '', 'november' => 'Noviembre', @@ -964,6 +987,7 @@ URL: [url]', 'no_user_image' => 'No se encontró imagen', 'no_version_check' => 'Ha fallado la comprobación de nuevas versiones. En su configuración de PHP, revise que allow_url_fopen no esté en 0', 'no_version_modification' => 'Ninguna Modificación de Versión', +'no_workflows' => '', 'no_workflow_available' => '', 'objectcheck' => 'Chequeo de carpeta/documento', 'object_check_critical' => 'Errores críticos', @@ -985,6 +1009,7 @@ Antiguo propietario: [old_owner] Nuevo propietario: [new_owner] Usuario: [username] URL: [url]', +'ownership_changed_email_body_html' => '', 'ownership_changed_email_subject' => '[sitename]: [name] - Propietario modificado', 'password' => 'Contraseña', 'password_already_used' => 'La contraseña ya está en uso', @@ -1002,6 +1027,7 @@ Puede modificarla haciendo click en el siguiente enlace: [url_prefix]out/out.ChangePassword.php?hash=[hash] Si continua teniendo problemas de acceso, por favor contacte con el administrador del sistema.', +'password_forgotten_email_body_html' => '', 'password_forgotten_email_subject' => '[sitename]: Recordatorio de contraseña', 'password_forgotten_send_hash' => 'Las instrucciones para proceder al cambio se han enviado a la dirección de correo de usuario', 'password_forgotten_text' => 'Rellene el siguiente formulario y siga las instrucciones del correo que se le enviará.', @@ -1049,11 +1075,15 @@ Si continua teniendo problemas de acceso, por favor contacte con el administrado 'receipts_without_group' => 'Recibos sin grupo', 'receipts_without_user' => 'Recibos sin usuario', 'receipt_deletion_email_body' => '', +'receipt_deletion_email_body_html' => '', 'receipt_deletion_email_subject' => '', 'receipt_log' => 'Log de recepción', 'receipt_request_email_body' => '', +'receipt_request_email_body_html' => '', 'receipt_request_email_subject' => '', 'receipt_status' => '', +'receipt_submit_email_body' => '', +'receipt_submit_email_subject' => '', 'receipt_summary' => 'Resumen de recepción', 'receipt_update_failed' => '', 'recent_uploads' => 'Subidas recientes', @@ -1073,6 +1103,7 @@ Si continua teniendo problemas de acceso, por favor contacte con el administrado Documento: [document] Usuario: [username] URL: [url]', +'removed_file_email_body_html' => '', 'removed_file_email_subject' => '[sitename]: [document] - Eliminar adjunto', 'removed_recipient' => '', 'removed_reviewer' => 'Ha sido eliminado de la lista de revisores.', @@ -1084,6 +1115,7 @@ Flujo de trabajo: [workflow] Carpeta principal: [folder_path] Usuario: [username] nURL: [url]', +'removed_workflow_email_body_html' => '', 'removed_workflow_email_subject' => '[sitename]: [name] - Eliminar flujo de trabajo de la versión del documento', 'removeFolderFromDropFolder' => 'Eliminar carpeta después de importar', 'remove_approval_log' => '', @@ -1092,8 +1124,10 @@ nURL: [url]', 'repaired' => 'Reparado', 'repairing_objects' => 'Reparando documentos y carpetas.', 'replace_content_email_body' => '', +'replace_content_email_body_html' => '', 'replace_content_email_subject' => '', 'request_workflow_action_email_body' => '', +'request_workflow_action_email_body_html' => '', 'request_workflow_action_email_subject' => '', 'reset_checkout' => '', 'restrict_access' => '', @@ -1107,6 +1141,7 @@ Subflujo de trabajo: [subworkflow] Carpeta principal: [folder_path] Usuario: [username] nURL: [url]', +'return_from_subworkflow_email_body_html' => '', 'return_from_subworkflow_email_subject' => '[sitename]: [name] - Retorno del subflujo de trabajo', 'reverse_links' => 'Documentos que contienen un link al documento actual', 'reviewers' => 'Revisores', @@ -1122,12 +1157,14 @@ nURL: [url]', 'reviews_without_user' => 'Revisiones sin usuario', 'review_deletion_email' => 'Petición de revisión eliminada', 'review_deletion_email_body' => '', +'review_deletion_email_body_html' => '', 'review_deletion_email_subject' => '', 'review_file' => 'Revisar Archivo', 'review_group' => 'Grupo de revisión', 'review_log' => 'Traza de revisión', 'review_request_email' => 'Petición de revisión', 'review_request_email_body' => '', +'review_request_email_body_html' => '', 'review_request_email_subject' => '', 'review_status' => 'Estado de revisión', 'review_submit_email' => 'Revisión enviada', @@ -1139,6 +1176,7 @@ Comentario: [comment] Carpeta principal: [folder_path] Usuario: [username] URL: [url]', +'review_submit_email_body_html' => '', 'review_submit_email_subject' => '[sitename]: [name] - Revisión enviada', 'review_summary' => 'Resumen de revisión', 'review_update_failed' => 'Error actualizando el estado de la revisión. La actualización ha fallado.', @@ -1158,9 +1196,11 @@ URL: [url]', 'revision_date' => 'Fecha de revisión', 'revision_log' => 'Histórico de revisiones', 'revision_request_email_body' => '', +'revision_request_email_body_html' => '', 'revision_request_email_subject' => '', 'revision_status' => '', 'revision_submit_email_body' => '', +'revision_submit_email_body_html' => '', 'revision_submit_email_subject' => '', 'revision_summary' => 'Resumen de revisión', 'revisors' => 'Revisores', @@ -1174,6 +1214,7 @@ Flujo de trabajo: [workflow] Carpeta principal: [folder_path] Usuario: [username] URL: [url]', +'rewind_workflow_email_body_html' => '', 'rewind_workflow_email_subject' => '[sitename]: [name] - El flujo de trabajo fue retrocedido', 'rewind_workflow_warning' => 'Si su flujo de trabajo fue retrocedido a su estado inicial, todo el log del flujo de trabajo de este documento será borrado y no se podrá recuperar.', 'rm_attrdef' => 'Eliminar definición de atributo', @@ -1216,6 +1257,7 @@ Sub flujo de trabajo: [subworkflow] Carpeta principal: [folder_path] Usuario: [username] URL: [url]', +'run_subworkflow_email_body_html' => '', 'run_subworkflow_email_subject' => '[sitename]: [name] - Subflujo de trabajo iniciado', 'ru_RU' => 'Russo', 'saturday' => 'Sábado', @@ -1907,6 +1949,7 @@ Estado actual: [current_state] Carpeta principal: [folder_path] Usuario: [username] URL: [url]', +'transition_triggered_email_body_html' => '', 'transition_triggered_email_subject' => '[sitename]: [name] - Workflow transition triggered', 'transmittal' => '', 'transmittalitem_removed' => '', @@ -1988,6 +2031,7 @@ Versión: [version] Carpeta principal: [folder_path] Usuario: [username] URL: [url]', +'version_deleted_email_body_html' => '', 'version_deleted_email_subject' => '[sitename]: [name] - Versión eliminada', 'version_info' => 'Información de versión', 'view' => 'Vista', diff --git a/languages/fr_FR/lang.inc b/languages/fr_FR/lang.inc index 84d273cbd..6edd2adab 100644 --- a/languages/fr_FR/lang.inc +++ b/languages/fr_FR/lang.inc @@ -50,6 +50,7 @@ Document : [name] Dossier parent : [folder_path] Utilisateur : [username] URL : [url]', +'access_permission_changed_email_body_html' => '', 'access_permission_changed_email_subject' => '[sitename] : [name] - Permission modifiée', 'according_settings' => 'Paramètres en fonction', 'action' => 'Action', @@ -117,6 +118,7 @@ Version : [version] Dossier parent : [folder_path] Utilisateur : [username] URL : [url]', +'approval_deletion_email_body_html' => '', 'approval_deletion_email_subject' => '[sitename] : [name] - Requête d\'approbation supprimée', 'approval_file' => 'Fichier', 'approval_group' => 'Groupe d\'approbation', @@ -139,6 +141,7 @@ Statut : [status] Commentaire : [comment] Utilisateur : [username] URL : [url]', +'approval_submit_email_body_html' => '', 'approval_submit_email_subject' => '[sitename] : [name] - Approbation soumise', 'approval_summary' => 'Récapitulatif approbation', 'approval_update_failed' => 'Erreur de la mise à jour du statut d\'approbation. Echec de la mise à jour.', @@ -200,6 +203,7 @@ New value: [attribute_new_value] Répertoire parent: [folder_path] Utilisateur: [username] URL: [url]', +'attribute_changed_email_body_html' => '', 'attribute_changed_email_subject' => '[sitename] : [name] - Attribut modifié', 'attribute_count' => 'Nombre d\'utilisations', 'attribute_value' => 'Valeur de l\'attribut', @@ -398,6 +402,7 @@ Nouvelle valeur : [attribute_new_value] Dossier parent : [folder_path] Utilisateur : [username] URL : [url]', +'document_attribute_changed_email_body_html' => '', 'document_attribute_changed_email_subject' => '[sitename] : [name] - Attribut modifié', 'document_comment_changed_email' => 'Commentaire modifié', 'document_comment_changed_email_body' => 'Commentaire modifié @@ -407,6 +412,7 @@ Commentaire: [new_comment] Dossier parent: [folder_path] Utilisateur: [username] URL: [url]', +'document_comment_changed_email_body_html' => '', 'document_comment_changed_email_subject' => '[sitename] : [name] - Commentaire modifié', 'document_content_missing' => 'Contenu du document manquant', 'document_count' => 'Nombre de documents', @@ -416,6 +422,7 @@ URL: [url]', Document : [name] Dossier parent : [folder_path] Utilisateur : [username]', +'document_deleted_email_body_html' => '', 'document_deleted_email_subject' => '[sitename] : [name] - Document supprimé', 'document_duplicate_name' => 'Un document porte déjà ce nom !', 'document_files' => 'Fichiers attachés', @@ -435,6 +442,7 @@ Ancien dossier: [old_folder_path] Nouveau dossier: [new_folder_path] Utilisateur: [username] URL: [url]', +'document_moved_email_body_html' => '', 'document_moved_email_subject' => '[sitename] : [name] - Document déplacé', 'document_not_checkedout' => 'Le document n’a pas été vérifié.', 'document_renamed_email' => 'Document renommé', @@ -444,6 +452,7 @@ Dossier parent: [folder_path] Ancien nom: [old_name] Utilisateur: [username] URL: [url]', +'document_renamed_email_body_html' => '', 'document_renamed_email_subject' => '[sitename] : [name] - Document renommé', 'document_status_changed_email' => 'Statut du document modifié', 'document_status_changed_email_body' => 'Statut du document modifié @@ -452,6 +461,7 @@ Statut: [status] Dossier parent: [folder_path] Utilisateur: [username] URL: [url]', +'document_status_changed_email_body_html' => '', 'document_status_changed_email_subject' => '[sitename] : [name] - Statut du document modifié', 'document_title' => 'Document \'[documentname]\'', 'document_transfered_email_body' => 'Transfert d’un document à un autre utilisateur @@ -460,6 +470,7 @@ Nouveau propriétaire : [newuser] Dossier parent : [folder_path] Utilisateur : [username] URL : [url]', +'document_transfered_email_body_html' => '', 'document_transfered_email_subject' => '[sitename] : [name] - Transfert d’un document', 'document_updated_email' => 'Document mis à jour', 'document_updated_email_body' => 'Document mis à jour @@ -469,6 +480,7 @@ Commentaire: [comment] Commentaire de version: [version_comment] Utilisateur: [username] URL: [url]', +'document_updated_email_body_html' => '', 'document_updated_email_subject' => '[sitename] : [name] - Document mis à jour', 'document_versions' => 'Versions du document', 'does_not_expire' => 'N\'expire jamais', @@ -598,6 +610,7 @@ Document : [name] Dossier parent : [folder_path] Utilisateur : [username] URL : [url]', +'expiry_changed_email_body_html' => '', 'expiry_changed_email_subject' => '[sitename] : [name] - Date d’expiration modifiée', 'export' => 'Exporter', 'export_user_list_csv' => 'Exporter les utilisateurs en CSV', @@ -637,6 +650,7 @@ Nouvelle valeur : [attribute_new_value] Dossier parent : [folder_path] Utilisateur : [username] URL : [url]', +'folder_attribute_changed_email_body_html' => '', 'folder_attribute_changed_email_subject' => '[sitename] : [name] - Attribut modifié', 'folder_comment_changed_email' => 'Commentaire changé', 'folder_comment_changed_email_body' => 'Commentaire changé @@ -646,6 +660,7 @@ Commentaire: [new_comment] Dossier parent: [folder_path] Utilisateur: [username] URL: [url]', +'folder_comment_changed_email_body_html' => '', 'folder_comment_changed_email_subject' => '[sitename] : [name] - Commentaire modifié', 'folder_contents' => 'Dossiers', 'folder_deleted_email' => 'Dossier supprimé', @@ -654,6 +669,7 @@ Dossier: [name] Dossier parent: [folder_path] Utilisateur: [username] URL: [url]', +'folder_deleted_email_body_html' => '', 'folder_deleted_email_subject' => '[sitename] : [name] - Dossier supprimé', 'folder_infos' => 'Informations sur le dossier', 'folder_moved_email' => 'Dossier déplacé', @@ -663,6 +679,7 @@ Ancien dossier: [old_folder_path] Nouveau dossier: [new_folder_path] Utilisateur: [username] URL: [url]', +'folder_moved_email_body_html' => '', 'folder_moved_email_subject' => '[sitename] : [name] - Dossier déplacé', 'folder_renamed_email' => 'Dossier renommé', 'folder_renamed_email_body' => 'Dossier renommé @@ -671,6 +688,7 @@ Dossier parent: [folder_path] Ancien nom: [old_name] Utilisateur: [username] URL: [url]', +'folder_renamed_email_body_html' => '', 'folder_renamed_email_subject' => '[sitename] : [name] - Dossier renommé', 'folder_title' => 'Dossier \'[foldername]\'', 'foot_note' => '', @@ -914,6 +932,7 @@ Commentaire : [comment] Commentaire de version : [version_comment] Utilisateur : [username] URL: [url]', +'new_document_email_body_html' => '', 'new_document_email_subject' => '[sitename] : [folder_name] - Nouveau document', 'new_file_email' => 'Nouvel attachement', 'new_file_email_body' => 'Nouvel attachement @@ -922,6 +941,7 @@ Document: [document] Commentaire: [comment] Utilisateur: [username] URL: [url]', +'new_file_email_body_html' => '', 'new_file_email_subject' => '[sitename] : [document] - Nouveau fichier attaché', 'new_folder' => 'Nouveau dossier', 'new_password' => 'Nouveau mot de passe', @@ -932,6 +952,7 @@ Dossier parent : [folder_path] Commentaire : [comment] Utilisateur : [username] URL : [url]', +'new_subfolder_email_body_html' => '', 'new_subfolder_email_subject' => '[sitename] : [name] - Nouveau dossier', 'new_user_image' => 'Nouvelle image', 'next_revision_abbr' => 'Prochaine rév.', @@ -945,6 +966,7 @@ Nom : [name] Dossier parent : [folder_path] Utilisateur : [username] URL : [url]', +'notify_added_email_body_html' => '', 'notify_added_email_subject' => '[sitename] : [name] - Ajouté à la liste des notifications', 'notify_deleted_email' => 'Vous avez été supprimé de la liste des notifications.', 'notify_deleted_email_body' => 'Supprimé de la liste des notifications @@ -952,6 +974,7 @@ Nom: [name] Dossier parent: [folder_path] Utilisateur: [username] URL: [url]', +'notify_deleted_email_body_html' => '', 'notify_deleted_email_subject' => '[sitename] : [name] - Supprimé de la liste des notifications', 'not_subscribed' => 'Non inscrit', 'november' => 'Novembre', @@ -988,6 +1011,7 @@ URL: [url]', 'no_user_image' => 'Aucune image trouvée', 'no_version_check' => 'La vérification de l\'existence d\'une nouvelle version de SeedDMS a échoué ! Cela peut être causé par le paramètre allow_url_fopen défini à 0 dans votre configuration PHP.', 'no_version_modification' => 'Pas de modification de version', +'no_workflows' => '', 'no_workflow_available' => 'Aucun workflow disponible', 'objectcheck' => 'Vérification des dossiers et documents', 'object_check_critical' => 'Erreurs critiques', @@ -1009,6 +1033,7 @@ Ancien propriétaire: [old_owner] Nouveau propriétaire: [new_owner] Utilisateur: [username] URL: [url]', +'ownership_changed_email_body_html' => '', 'ownership_changed_email_subject' => '[sitename] : [name] - Propriétaire modifié', 'password' => 'Mot de passe', 'password_already_used' => 'Mot de passe déjà utilisé', @@ -1024,6 +1049,7 @@ Pour ce faire, cliquez sur le lien suivant: [url_prefix]out/out.ChangePassword.php?hash=[hash] En cas de problème persistant, veuillez contacter votre administrateur.', +'password_forgotten_email_body_html' => '', 'password_forgotten_email_subject' => '[sitename] : Mot de passe oublié', 'password_forgotten_send_hash' => 'La procédure à suivre a bien été envoyée à l\'adresse indiquée', 'password_forgotten_text' => 'Remplissez le formulaire ci-dessous et suivez les instructions dans le courrier électronique qui vous sera envoyé.', @@ -1077,6 +1103,7 @@ Dossier parent : [folder_path] Destinataire : [recipient] Utilisateur : [username] URL : [url]', +'receipt_deletion_email_body_html' => '', 'receipt_deletion_email_subject' => '[sitename] : [name] - Destinataire supprimé', 'receipt_log' => 'Journal des réceptions', 'receipt_request_email_body' => 'Demande de réception @@ -1085,8 +1112,11 @@ Version : [version] Dossier parent : [folder_path] Utilisateur : [username] URL : [url]', +'receipt_request_email_body_html' => '', 'receipt_request_email_subject' => '[sitename] : [name] - Demande de réception', 'receipt_status' => 'Statut', +'receipt_submit_email_body' => '', +'receipt_submit_email_subject' => '', 'receipt_summary' => 'Récapitulatif réception', 'receipt_update_failed' => 'La confirmation de réception a échoué', 'recent_uploads' => 'Téléchargements récents', @@ -1106,6 +1136,7 @@ URL : [url]', Document: [document] Utilisateur: [username] URL: [url]', +'removed_file_email_body_html' => '', 'removed_file_email_subject' => '[sitename] : [document] - Fichier attaché supprimé', 'removed_recipient' => 'a été supprimé de la liste des destinataires.', 'removed_reviewer' => 'a été retiré de la liste des examinateurs.', @@ -1116,6 +1147,7 @@ Workflow: [workflow] Répertoire: [folder_path] Utilisateur: [username] URL: [url]', +'removed_workflow_email_body_html' => '', 'removed_workflow_email_subject' => '[sitename] : [name] - Workflow retiré de la version du doument', 'removeFolderFromDropFolder' => 'Suppression du dossier après importation', 'remove_approval_log' => 'Approbation retirée', @@ -1129,6 +1161,7 @@ Version : [version] Dossier parent : [folder_path] Utilisateur : [username] URL : [url]', +'replace_content_email_body_html' => '', 'replace_content_email_subject' => '[sitename] : [name] - Contenu du document remplacé', 'request_workflow_action_email_body' => 'Le workflow a atteint un état nécessitant une action de votre part. Document : [name] @@ -1138,6 +1171,7 @@ Workflow : [workflow] Dossier parent : [folder_path] Utilisateur : [username] URL : [url]', +'request_workflow_action_email_body_html' => '', 'request_workflow_action_email_subject' => '[sitename] : [name] - Action de Workflow requise', 'reset_checkout' => 'Terminer la vérification', 'restrict_access' => 'Pas d\'accès', @@ -1151,6 +1185,7 @@ Sous-workflow : [subworkflow] Dossier parent : [folder_path] Utilisateur : [username] URL : [url]', +'return_from_subworkflow_email_body_html' => '', 'return_from_subworkflow_email_subject' => 'Retour du sous-workflow', 'reverse_links' => 'Documents liés au document actuel', 'reviewers' => 'Examinateurs', @@ -1171,6 +1206,7 @@ Version : [version] Dossier parent : [folder_path] Utilisateur : [username] URL : [url]', +'review_deletion_email_body_html' => '', 'review_deletion_email_subject' => '[sitename] : [name] - Demande de vérification supprimée', 'review_file' => 'Fichier', 'review_group' => 'Groupe de vérification', @@ -1182,6 +1218,7 @@ Version : [version] Dossier parent : [folder_path] Utilisateur : [username] URL : [url]', +'review_request_email_body_html' => '', 'review_request_email_subject' => '[sitename] : [name] - Demande de vérification', 'review_status' => 'Statut de vérification', 'review_submit_email' => 'Vérification faite', @@ -1193,6 +1230,7 @@ Commentaire : [comment] Dossier parent : [folder_path] Utilisateur : [username] URL : [url]', +'review_submit_email_body_html' => '', 'review_submit_email_subject' => '[sitename] : [name] - Vérification faite', 'review_summary' => 'Récapitulatif vérification', 'review_update_failed' => 'Erreur lors de la mise à jour du statut de vérification. Échec de la mise à jour.', @@ -1217,6 +1255,7 @@ Version : [version] Dossier parent : [folder_path] Utilisateur : [username] URL : [url]', +'revision_request_email_body_html' => '', 'revision_request_email_subject' => '[sitename] : [name] - Demande de révision', 'revision_status' => 'État', 'revision_submit_email_body' => 'Publié à nouveau @@ -1227,6 +1266,7 @@ Statut : [status] Commentaire : [comment] Utilisateur : [username] URL : [url]', +'revision_submit_email_body_html' => '', 'revision_submit_email_subject' => '[sitename]: [name] - Publié à nouveau', 'revision_summary' => 'Récapitulatif révision', 'revisors' => 'Réviseurs', @@ -1234,6 +1274,7 @@ URL : [url]', 'revisor_already_removed' => 'Le réviseur a déjà été retiré du processus de révision ou a déjà révisé le document.', 'rewind_workflow' => 'Reculer le workflow', 'rewind_workflow_email_body' => 'Le workflow a été reculé', +'rewind_workflow_email_body_html' => '', 'rewind_workflow_email_subject' => '[sitename] : [name] - Le workflow a été reculé', 'rewind_workflow_warning' => 'Si vous retournez à l’état initial du workflow, l’historique de workflow de ce document sera supprimé et ne pourra pas être restauré.', 'rm_attrdef' => 'Supprimer la définition d’attribut', @@ -1276,6 +1317,7 @@ Sous-workflow : [subworkflow] Dossier parent : [folder_path] Utilisateur : [username] URL : [url]', +'run_subworkflow_email_body_html' => '', 'run_subworkflow_email_subject' => '[sitename] : [name] - Sous-workflow initialisé', 'ru_RU' => 'Russe', 'saturday' => 'Samedi', @@ -1972,6 +2014,7 @@ Workflow : [workflow] Dossier parent : [folder_path] Utilisateur : [username] URL : [url]', +'transition_triggered_email_body_html' => '', 'transition_triggered_email_subject' => '[sitename] : [name] - Transition de workflow déclenchée', 'transmittal' => 'Transmission', 'transmittalitem_removed' => 'Élément de la transmission supprimé', @@ -2053,6 +2096,7 @@ Version: [version] Dossier parent: [folder_path] Utilisateur: [username] URL: [url]', +'version_deleted_email_body_html' => '', 'version_deleted_email_subject' => '[sitename] : [name] - Version supprimée', 'version_info' => 'Informations de version', 'view' => 'Aperçu', diff --git a/languages/hr_HR/lang.inc b/languages/hr_HR/lang.inc index 0995ce1bb..dc337433d 100644 --- a/languages/hr_HR/lang.inc +++ b/languages/hr_HR/lang.inc @@ -50,6 +50,7 @@ Dokument: [name] Glavna mapa: [folder_path] Korisnik: [username] Internet poveznica: [url]', +'access_permission_changed_email_body_html' => '', 'access_permission_changed_email_subject' => '[sitename]: [name] - Dozvola je promijenjena', 'according_settings' => 'sukladno postavkama', 'action' => 'Postupak', @@ -117,6 +118,7 @@ Verzija: [version] Glavna mapa: [folder_path] Korisnik: [username] URL: [url]', +'approval_deletion_email_body_html' => '', 'approval_deletion_email_subject' => '[sitename]: [name] - Zahtjev za odobrenjem izbrisan', 'approval_file' => 'Datoteka', 'approval_group' => 'Grupa odobrenja', @@ -139,6 +141,7 @@ Status: [status] Komentar: [comment] Korisnik: [username] Internet poveznica: [url]', +'approval_submit_email_body_html' => '', 'approval_submit_email_subject' => '[sitename] : [name] - PodneÅ¡eno odobrenje', 'approval_summary' => 'Pregled odobrenja', 'approval_update_failed' => 'GreÅ¡ka pri ažuriranju statusa odobrenja. Ažuriranje nije uspjelo.', @@ -200,6 +203,7 @@ New value: [attribute_new_value] Glavna mapa: [folder_path] Korisnik: [username] Internet poveznica: [url]', +'attribute_changed_email_body_html' => '', 'attribute_changed_email_subject' => '[sitename]: [name] - Promijenjen atribut', 'attribute_count' => 'Broj uporaba', 'attribute_value' => 'Vrijednost atributa', @@ -391,6 +395,7 @@ Internet poveznica: [url]', 'document_already_checkedout' => 'Ovaj dokument je već odjavljen', 'document_already_locked' => 'Ovaj dokument je već zakljuÄan', 'document_attribute_changed_email_body' => '', +'document_attribute_changed_email_body_html' => '', 'document_attribute_changed_email_subject' => '', 'document_comment_changed_email' => 'Promijenjen komentar', 'document_comment_changed_email_body' => 'Promijenjen komentar @@ -400,6 +405,7 @@ Komentar: [new_comment] Glavna mapa: [folder_path] Korisnik: [username] Internet poveznica: [url]', +'document_comment_changed_email_body_html' => '', 'document_comment_changed_email_subject' => '[sitename]: [name] - Promijenjen komentar', 'document_content_missing' => '', 'document_count' => '', @@ -409,6 +415,7 @@ Internet poveznica: [url]', Dokument: [name] Glavna mapa: [folder_path] Korisnik: [username]', +'document_deleted_email_body_html' => '', 'document_deleted_email_subject' => '[sitename]: [name] - Izbrisan dokument', 'document_duplicate_name' => 'Duplicate document name', 'document_files' => '', @@ -428,6 +435,7 @@ PrijaÅ¡nja mapa: [old_folder_path] Nova mapa: [new_folder_path] Korisnik: [username] Internet poveznica: [url]', +'document_moved_email_body_html' => '', 'document_moved_email_subject' => '[sitename]: [name] - PremjeÅ¡ten dokument', 'document_not_checkedout' => 'Dokument je odjavljen.', 'document_renamed_email' => 'Preimenovan dokument', @@ -437,6 +445,7 @@ Glavna mapa: [folder_path] PrijaÅ¡nji naziv: [old_name] Korisnik: [username] Internet poveznica: [url]', +'document_renamed_email_body_html' => '', 'document_renamed_email_subject' => '[sitename]: [name] - Preimenovan dokument', 'document_status_changed_email' => 'Promijenjen status dokumenta', 'document_status_changed_email_body' => 'Promijenjen status dokumenta @@ -445,9 +454,11 @@ Status: [status] Glavna mapa: [folder_path] Korisnik: [username] Internet poveznica: [url]', +'document_status_changed_email_body_html' => '', 'document_status_changed_email_subject' => '[sitename]: [name] - Promijenjen status dokumenta', 'document_title' => 'Dokument \'[documentname]\'', 'document_transfered_email_body' => '', +'document_transfered_email_body_html' => '', 'document_transfered_email_subject' => '', 'document_updated_email' => 'Ažuriran dokument', 'document_updated_email_body' => 'Ažuriran dokument @@ -457,6 +468,7 @@ Korisnik: [username] Komentar: [comment] Komentar verzije: [version_comment] Internet poveznica: [url]', +'document_updated_email_body_html' => '', 'document_updated_email_subject' => '[sitename]: [name] - Ažuriran dokument', 'document_versions' => '', 'does_not_expire' => 'Ne istjeÄe', @@ -586,6 +598,7 @@ Dokument: [name] Glavna mapa: [folder_path] Korisnik: [username] Internet poveznica: [url]', +'expiry_changed_email_body_html' => '', 'expiry_changed_email_subject' => '[sitename]: [name] - Promijenjen datum isteka', 'export' => 'Izvoz', 'export_user_list_csv' => '', @@ -618,6 +631,7 @@ Internet poveznica: [url]', 'folders_and_documents_statistic' => 'Pregled sadržaja', 'folders_with_notification' => '', 'folder_attribute_changed_email_body' => '', +'folder_attribute_changed_email_body_html' => '', 'folder_attribute_changed_email_subject' => '', 'folder_comment_changed_email' => 'Promijenjen komentar', 'folder_comment_changed_email_body' => 'Promijenjen komentar @@ -627,6 +641,7 @@ Komentar: [new_comment] Glavna mapa: [folder_path] Korisnik: [username] Internet poveznica: [url]', +'folder_comment_changed_email_body_html' => '', 'folder_comment_changed_email_subject' => '[sitename]: [name] - Promijenjen komentar', 'folder_contents' => 'Sadržaj mape', 'folder_deleted_email' => 'Izbrisana mapa', @@ -635,6 +650,7 @@ Mapa: [name] Glavna mapa: [folder_path] Korisnik: [username] Internet poveznica: [url]', +'folder_deleted_email_body_html' => '', 'folder_deleted_email_subject' => '[sitename]: [name] - Izbrisana mapa', 'folder_infos' => 'Informacije o mapi', 'folder_moved_email' => 'PremjeÅ¡tena mapa', @@ -644,6 +660,7 @@ PrijaÅ¡nja mapa: [old_folder_path] Nova mapa: [new_folder_path] Korisnik: [username] Internet poveznica: [url]', +'folder_moved_email_body_html' => '', 'folder_moved_email_subject' => '[sitename]: [name] - PremjeÅ¡tena mapa', 'folder_renamed_email' => 'Preimenovana mapa', 'folder_renamed_email_body' => 'Preimenovana mapa @@ -652,6 +669,7 @@ Glavna mapa: [folder_path] Old name: [old_name] Korisnik: [username] Internet poveznica: [url]', +'folder_renamed_email_body_html' => '', 'folder_renamed_email_subject' => '[sitename]: [name] - Preimenovana mapa', 'folder_title' => 'Mapa \'[foldername]\'', 'foot_note' => '', @@ -895,6 +913,7 @@ Komentar: [comment] Version comment: [version_comment] Korisnik: [username] Internet poveznica: [url]', +'new_document_email_body_html' => '', 'new_document_email_subject' => '[sitename]: [folder_name] - Novi dokument', 'new_file_email' => 'Novi privitak', 'new_file_email_body' => 'Novi privitak dokumenta: [name] @@ -902,6 +921,7 @@ Dokument: [document] Komentar: [comment] Korisnik: [username] Internet poveznica: [url]', +'new_file_email_body_html' => '', 'new_file_email_subject' => '[sitename]: [document] - Novi privitak', 'new_folder' => 'Nova mapa', 'new_password' => 'Nova lozinka', @@ -912,6 +932,7 @@ Glavna mapa: [folder_path] Komentar: [comment] Korisnik: [username] Internet poveznica: [url]', +'new_subfolder_email_body_html' => '', 'new_subfolder_email_subject' => '[sitename]: [name] - Nova mapa', 'new_user_image' => 'Nova slika', 'next_revision_abbr' => '', @@ -925,6 +946,7 @@ Naziv: [name] Glavna mapa: [folder_path] Korisnik: [username] Internet poveznica: [url]', +'notify_added_email_body_html' => '', 'notify_added_email_subject' => '[sitename]: [name] - Dodano na popis obavijesti', 'notify_deleted_email' => 'Uklonjeni ste iz popisa obavijesti', 'notify_deleted_email_body' => 'Ukonjeno iz popisa obavijesti @@ -932,6 +954,7 @@ Naziv: [name] Glavna mapa: [folder_path] Korisnik: [username] Internet poveznica: [url]', +'notify_deleted_email_body_html' => '', 'notify_deleted_email_subject' => '[sitename]: [name] - Ukonjeno iz popisa obavijesti', 'not_subscribed' => '', 'november' => 'Studeni', @@ -968,6 +991,7 @@ Internet poveznica: [url]', 'no_user_image' => 'Nema pronaÄ‘ene slike', 'no_version_check' => 'NeuspjeÅ¡na provjera nove verzije ProsperaDMS-a! Uzrok može biti ako je parametar allow_url_fopen u vaÅ¡oj php konfiguraciji postavljen na 0.', 'no_version_modification' => 'Nema modifikacije verzije', +'no_workflows' => '', 'no_workflow_available' => 'Nema dostupnog toka rada', 'objectcheck' => 'Provjera mapa / dokumenata', 'object_check_critical' => '', @@ -989,6 +1013,7 @@ Old owner: [old_owner] New owner: [new_owner] Korisnik: [username] Internet poveznica: [url]', +'ownership_changed_email_body_html' => '', 'ownership_changed_email_subject' => '[sitename]: [name] - Promijenjen vlasnik', 'password' => 'Lozinka', 'password_already_used' => 'Lozinka se već koristi', @@ -1006,6 +1031,7 @@ To se može izvrÅ¡iti klikom na sljedeću poveznicu: [url_prefix]out/out.ChangePassword.php?hash=[hash] Ako i dalje imate problema s prijavom, molimo kontaktirajte VaÅ¡eg administratora.', +'password_forgotten_email_body_html' => '', 'password_forgotten_email_subject' => '[sitename]: Zaboravljena lozinka', 'password_forgotten_send_hash' => 'Upute kako postupiti su poslane na e-mail adresu korisnika', 'password_forgotten_text' => 'Ispunite donji obrazac i slijedite upute iz e-maila koji će vam biti poslan.', @@ -1053,11 +1079,15 @@ Ako i dalje imate problema s prijavom, molimo kontaktirajte VaÅ¡eg administrator 'receipts_without_group' => '', 'receipts_without_user' => '', 'receipt_deletion_email_body' => '', +'receipt_deletion_email_body_html' => '', 'receipt_deletion_email_subject' => '', 'receipt_log' => 'Zapisi prijema', 'receipt_request_email_body' => '', +'receipt_request_email_body_html' => '', 'receipt_request_email_subject' => '', 'receipt_status' => '', +'receipt_submit_email_body' => '', +'receipt_submit_email_subject' => '', 'receipt_summary' => 'Sažetak prijema', 'receipt_update_failed' => '', 'recent_uploads' => 'Poslijedni Prenosi', @@ -1077,6 +1107,7 @@ Ako i dalje imate problema s prijavom, molimo kontaktirajte VaÅ¡eg administrator Dokument: [document] Korisnik: [username] Internet poveznica: [url]', +'removed_file_email_body_html' => '', 'removed_file_email_subject' => '[sitename]: [document] - Uklonjeni privitak', 'removed_recipient' => 'je uklonjen s liste primatelja.', 'removed_reviewer' => 'je uklonjen iz popisa recezenata.', @@ -1088,6 +1119,7 @@ Tok rada: [workflow] Glavna mapa: [folder_path] Korisnik: [username] Internet poveznica: [url]', +'removed_workflow_email_body_html' => '', 'removed_workflow_email_subject' => '[sitename]: [name] - Uklonjeni tok rada iz ove verzije dokumenta', 'removeFolderFromDropFolder' => '', 'remove_approval_log' => '', @@ -1096,6 +1128,7 @@ Internet poveznica: [url]', 'repaired' => 'popravljeno', 'repairing_objects' => 'Popravljanje dokumenata ili mapa.', 'replace_content_email_body' => '', +'replace_content_email_body_html' => '', 'replace_content_email_subject' => '', 'request_workflow_action_email_body' => 'Poslovni tok je doÅ¡ao u stanje koje zahtijeva VaÅ¡u pažnju i aktivnost. Dokument: [name] @@ -1105,6 +1138,7 @@ Trenutni status: [current_state] Glavna mapa: [folder_path] Korisnik: [username] URL poveznica: [url]', +'request_workflow_action_email_body_html' => '', 'request_workflow_action_email_subject' => '[sitename]: [name] - Zahtijeva se aktivnost po poslovnom toku', 'reset_checkout' => 'DovrÅ¡ite odjavu', 'restrict_access' => '', @@ -1118,6 +1152,7 @@ Pod-tok rada: [subworkflow] Glavna mapa: [folder_path] Korisnik: [username] Internet poveznica: [url]', +'return_from_subworkflow_email_body_html' => '', 'return_from_subworkflow_email_subject' => '[sitename]: [name] - Povratak iz pod-toka rada', 'reverse_links' => 'Dokumenti, koji imaju poveznicu na trenutni dokument', 'reviewers' => 'Recezenti', @@ -1138,6 +1173,7 @@ Verzija: [version] Glavna mapa: [folder_path] Korisnik: [username] URL: [url]', +'review_deletion_email_body_html' => '', 'review_deletion_email_subject' => '[sitename]: [name] - Zahtjev za recenzijom izbrisan', 'review_file' => 'Datoteka', 'review_group' => 'Grupa pregleda', @@ -1149,6 +1185,7 @@ Verzija: [version] Glavna mapa: [folder_path] Korisnik: [username] URL: [url]', +'review_request_email_body_html' => '', 'review_request_email_subject' => '[sitename]: [name] - Zahtjev za pregled', 'review_status' => 'Status pregleda', 'review_submit_email' => 'Predani pregled', @@ -1160,6 +1197,7 @@ Komentar: [comment] Glavna mapa: [folder_path] Korisnik: [username] Internet poveznica: [url]', +'review_submit_email_body_html' => '', 'review_submit_email_subject' => '[sitename]: [name] - Predan pregled', 'review_summary' => 'Sažetak pregleda', 'review_update_failed' => 'GreÅ¡ka kod izmjene statusa pregleda. Izmjena nije uspjela.', @@ -1179,9 +1217,11 @@ Internet poveznica: [url]', 'revision_date' => 'Datum revizije', 'revision_log' => 'Zapisi revizije', 'revision_request_email_body' => '', +'revision_request_email_body_html' => '', 'revision_request_email_subject' => '', 'revision_status' => '', 'revision_submit_email_body' => '', +'revision_submit_email_body_html' => '', 'revision_submit_email_subject' => '', 'revision_summary' => '', 'revisors' => 'Revizori', @@ -1195,6 +1235,7 @@ Tok rada: [workflow] Glavna mapa: [folder_path] Korisnik: [username] Internet poveznica: [url]', +'rewind_workflow_email_body_html' => '', 'rewind_workflow_email_subject' => '[sitename]: [name] - Tok rada je vraćen na poÄetak', 'rewind_workflow_warning' => 'Ako vratite tok radan u njegovo poÄetno, prijaÅ¡nji zapisi o tijeku rada za ovaj dokument bit će izbrisani i ne mogu se vratiti.', 'rm_attrdef' => 'Uklonite definiciju atributa', @@ -1237,6 +1278,7 @@ Pod-tok rada: [subworkflow] Glavna mapa: [folder_path] Korisnik: [username] Internet poveznica: [url]', +'run_subworkflow_email_body_html' => '', 'run_subworkflow_email_subject' => '[sitename]: [name] - Pod-tok rada je pokrenut', 'ru_RU' => 'Ruski', 'saturday' => 'Subota', @@ -1928,6 +1970,7 @@ Trenutni status toka: [current_state] Glavna mapa: [folder_path] Korisnik: [username] Internet poveznica: [url]', +'transition_triggered_email_body_html' => '', 'transition_triggered_email_subject' => '[sitename]: [name] - Zatražena promjena toka rada', 'transmittal' => 'ProslijeÄ‘ivanje', 'transmittalitem_removed' => 'Stavka za proslijeÄ‘ivanje je uklonjena', @@ -2009,6 +2052,7 @@ Verzija: [version] Glavna mapa: [folder_path] Korisnik: [username] Internet poveznica: [url]', +'version_deleted_email_body_html' => '', 'version_deleted_email_subject' => '[sitename]: [name] - Izbrisana verzija', 'version_info' => 'Informacije o verziji', 'view' => 'Pregled', diff --git a/languages/hu_HU/lang.inc b/languages/hu_HU/lang.inc index afa0065d6..038f1e212 100644 --- a/languages/hu_HU/lang.inc +++ b/languages/hu_HU/lang.inc @@ -50,6 +50,7 @@ Dokumentum: [name] SzülÅ‘ mappa: [folder_path] Felhasználó: [username] URL: [url]', +'access_permission_changed_email_body_html' => '', 'access_permission_changed_email_subject' => '[sitename]: [name] - Jogosultság megváltozott', 'according_settings' => 'szerinti beállítások', 'action' => 'Művelet', @@ -112,6 +113,7 @@ URL: [url]', 'approvals_without_user' => '', 'approval_deletion_email' => 'Jóváhagyási kérelem törölve', 'approval_deletion_email_body' => '', +'approval_deletion_email_body_html' => '', 'approval_deletion_email_subject' => '[sitename]: [name] - Jóváhagyási kérelem törölve', 'approval_file' => 'Fájl', 'approval_group' => 'Jóváhagyó csoport', @@ -134,6 +136,7 @@ SzülÅ‘ mappa: [folder_path] Megjegyzés: [comment] Felhasználó: [username] URL: [url]', +'approval_submit_email_body_html' => '', 'approval_submit_email_subject' => '[sitename]: [name] - Beküldött jóváhagyás', 'approval_summary' => 'Jóváhagyási összesítÅ‘', 'approval_update_failed' => 'Hiba történt a jóváhagyási állapot frissítése során. Frissítés sikertelen.', @@ -195,6 +198,7 @@ New value: [attribute_new_value] SzülÅ‘ mappa: [folder_path] Felhasználó: [username] URL: [url]', +'attribute_changed_email_body_html' => '', 'attribute_changed_email_subject' => '[sitename]: [name] - JellemzÅ‘ módosult', 'attribute_count' => 'Felhasználók száma', 'attribute_value' => 'Tulajdonság értéke', @@ -386,6 +390,7 @@ URL: [url]', 'document_already_checkedout' => '', 'document_already_locked' => 'Ez a dokumentum már zárolt', 'document_attribute_changed_email_body' => '', +'document_attribute_changed_email_body_html' => '', 'document_attribute_changed_email_subject' => '', 'document_comment_changed_email' => 'Megjegyzés módosult', 'document_comment_changed_email_body' => 'Megjegyzés módosult @@ -395,6 +400,7 @@ Megjegyzés: [new_comment] SzülÅ‘ mappa: [folder_path] Felhasználó: [username] URL: [url]', +'document_comment_changed_email_body_html' => '', 'document_comment_changed_email_subject' => '[sitename]: [name] - Megjegyzés módosult', 'document_content_missing' => '', 'document_count' => 'Dokumentumok száma', @@ -404,6 +410,7 @@ URL: [url]', Dokumentum: [name] SzülÅ‘ mappa: [folder_path] Felhasználó: [username]', +'document_deleted_email_body_html' => '', 'document_deleted_email_subject' => '[sitename]: [name] - Dokumentum törölve', 'document_duplicate_name' => 'Duplikált dokumentum név', 'document_files' => '', @@ -423,6 +430,7 @@ Régi mappa: [old_folder_path] Új mappa: [new_folder_path] Felhasználó: [username] URL: [url]', +'document_moved_email_body_html' => '', 'document_moved_email_subject' => '[sitename]: [name] - Dokumentum átmozgatva', 'document_not_checkedout' => '', 'document_renamed_email' => 'Dokumentum átnevezve', @@ -432,6 +440,7 @@ SzülÅ‘ mappa: [folder_path] Régi név: [old_name] Felhasználó: [username] URL: [url]', +'document_renamed_email_body_html' => '', 'document_renamed_email_subject' => '[sitename]: [name] - Dokumentum átnevezve', 'document_status_changed_email' => 'Dokumentum állapot módosult', 'document_status_changed_email_body' => 'Dokumentum állapot módosult @@ -440,9 +449,11 @@ Dokumentum: [name] SzülÅ‘ mappa: [folder_path] Felhasználó: [username] URL: [url]', +'document_status_changed_email_body_html' => '', 'document_status_changed_email_subject' => '[sitename]: [name] - Dokumentum állapot módosult', 'document_title' => 'Dokumentum \'[documentname]\'', 'document_transfered_email_body' => '', +'document_transfered_email_body_html' => '', 'document_transfered_email_subject' => '', 'document_updated_email' => 'Dokumentum frissült', 'document_updated_email_body' => 'Dokumentum frissült @@ -452,6 +463,7 @@ Felhasználó: [username] Megjegyzés: [comment] Verzió megjegyzés: [version_comment] URL: [url]', +'document_updated_email_body_html' => '', 'document_updated_email_subject' => '[sitename]: [name] - Dokumentum frissült', 'document_versions' => '', 'does_not_expire' => 'Soha nem jár le', @@ -581,6 +593,7 @@ Dokumentum: [name] SzülÅ‘ mappa: [folder_path] Felhasználó: [username] URL: [url]', +'expiry_changed_email_body_html' => '', 'expiry_changed_email_subject' => '[sitename]: [name] - Lejárati dátum módosítva', 'export' => 'exportálás', 'export_user_list_csv' => '', @@ -613,6 +626,7 @@ URL: [url]', 'folders_and_documents_statistic' => 'Tartalmak áttekintése', 'folders_with_notification' => '', 'folder_attribute_changed_email_body' => '', +'folder_attribute_changed_email_body_html' => '', 'folder_attribute_changed_email_subject' => '', 'folder_comment_changed_email' => 'Megjegyzés módosult', 'folder_comment_changed_email_body' => 'Megjegyzés módosult @@ -622,6 +636,7 @@ Megjegyzés: [new_comment] SzülÅ‘ mappa: [folder_path] Felhasználó: [username] URL: [url]', +'folder_comment_changed_email_body_html' => '', 'folder_comment_changed_email_subject' => '[sitename]: [name] - Megjegyzés módosult', 'folder_contents' => 'Mappa tartalom', 'folder_deleted_email' => 'Mappa törölve', @@ -630,6 +645,7 @@ Mappa: [name] SzülÅ‘ mappa: [folder_path] Felhasználó: [username] URL: [url]', +'folder_deleted_email_body_html' => '', 'folder_deleted_email_subject' => '[sitename]: [name] - Mappa törölve', 'folder_infos' => 'Mappa információ', 'folder_moved_email' => 'Mappa áthelyezve', @@ -639,6 +655,7 @@ Régi mappa: [old_folder_path] Új mappa: [new_folder_path] Felhasználó: [username] URL: [url]', +'folder_moved_email_body_html' => '', 'folder_moved_email_subject' => '[sitename]: [name] - Mappa áthelyezve', 'folder_renamed_email' => 'Mappa átnevezve', 'folder_renamed_email_body' => 'Mappa átnevezve @@ -647,6 +664,7 @@ SzülÅ‘ mappa: [folder_path] Régi név: [old_name] Felhasználó: [username] URL: [url]', +'folder_renamed_email_body_html' => '', 'folder_renamed_email_subject' => '[sitename]: [name] - Mappa átnevezve', 'folder_title' => 'Mappa \'[foldername]\'', 'foot_note' => '', @@ -890,6 +908,7 @@ Megjegyzés: [comment] Verzió megjegyzés: [version_comment] Felhasználó: [username] URL: [url]', +'new_document_email_body_html' => '', 'new_document_email_subject' => '[sitename]: [folder_name] - Új dokumentum', 'new_file_email' => 'Új melléklet', 'new_file_email_body' => 'Új melléklet @@ -898,6 +917,7 @@ Dokumentum: [document] Megjegyzés: [comment] Felhasználó: [username] URL: [url]', +'new_file_email_body_html' => '', 'new_file_email_subject' => '[sitename]: [document] - Új melléklet', 'new_folder' => 'Új mappa', 'new_password' => 'Új jelszó', @@ -908,6 +928,7 @@ SzülÅ‘ mappa: [folder_path] Megjegyzés: [comment] Felhasználó: [username] URL: [url]', +'new_subfolder_email_body_html' => '', 'new_subfolder_email_subject' => '[sitename]: [name] - Új mappa', 'new_user_image' => 'Új kép', 'next_revision_abbr' => '', @@ -921,6 +942,7 @@ Név: [name] SzülÅ‘ mappa: [folder_path] Felhasználó: [username] URL: [url]', +'notify_added_email_body_html' => '', 'notify_added_email_subject' => '[sitename]: [name] - Értesítési listához hozzáadva', 'notify_deleted_email' => 'Ön eltávolításra került az értesítési listáról', 'notify_deleted_email_body' => 'Eltávolítva az értesítési listáról @@ -928,6 +950,7 @@ Név: [name] SzülÅ‘ mappa: [folder_path] Felhasználó: [username] URL: [url]', +'notify_deleted_email_body_html' => '', 'notify_deleted_email_subject' => '[sitename]: [name] - Eltávolítva az értesítési listáról', 'not_subscribed' => '', 'november' => 'November', @@ -964,6 +987,7 @@ URL: [url]', 'no_user_image' => 'Kép nem található', 'no_version_check' => 'A SeedDMS új verziójának ellenÅ‘rzése hibára futott! Ennek oka lehet, hogy az allow_url_fopen 0-ra van állítva a php konfigurációjában.', 'no_version_modification' => '', +'no_workflows' => '', 'no_workflow_available' => '', 'objectcheck' => 'Mappa/Dokumentum ellenÅ‘rzés', 'object_check_critical' => '', @@ -985,6 +1009,7 @@ Régi tulajdonos: [old_owner] Új tulajdonos: [new_owner] Felhasználó: [username] URL: [url]', +'ownership_changed_email_body_html' => '', 'ownership_changed_email_subject' => '[sitename]: [name] - Tulajdonos megváltozott', 'password' => 'Jelszó', 'password_already_used' => 'Jelszó korábban használva volt', @@ -1002,6 +1027,7 @@ Ezt az alábbi hivatkozásra kattintva teheti meg: [url_prefix]out/out.ChangePassword.php?hash=[hash] Amennyiben problémákba ütközik a bejelentkezés során, kérjük vegye fel a kapcsolatot az adminisztrátorral.', +'password_forgotten_email_body_html' => '', 'password_forgotten_email_subject' => '[sitename]: Jelszó emlékeztetÅ‘', 'password_forgotten_send_hash' => 'Utasítások arról, hogyan kell eljárni a felhasználók email címének elküldéséhez', 'password_forgotten_text' => 'Töltse ki a következÅ‘ űrlapot és kövesse az Önnek küldött, elektronikus levélben szereplÅ‘ utasításokat.', @@ -1049,11 +1075,15 @@ Amennyiben problémákba ütközik a bejelentkezés során, kérjük vegye fel a 'receipts_without_group' => '', 'receipts_without_user' => '', 'receipt_deletion_email_body' => '', +'receipt_deletion_email_body_html' => '', 'receipt_deletion_email_subject' => '', 'receipt_log' => '', 'receipt_request_email_body' => '', +'receipt_request_email_body_html' => '', 'receipt_request_email_subject' => '', 'receipt_status' => '', +'receipt_submit_email_body' => '', +'receipt_submit_email_subject' => '', 'receipt_summary' => '', 'receipt_update_failed' => '', 'recent_uploads' => 'Legutóbbi feltöltések', @@ -1073,6 +1103,7 @@ Amennyiben problémákba ütközik a bejelentkezés során, kérjük vegye fel a Dokumentum: [document] Felhasználó: [username] URL: [url]', +'removed_file_email_body_html' => '', 'removed_file_email_subject' => '[sitename]: [document] - Eltávolított melléklet', 'removed_recipient' => '', 'removed_reviewer' => 'eltávolításra került a felülvizsgálók listájáról.', @@ -1084,6 +1115,7 @@ Munkafolyamat: [workflow] SzülÅ‘ mappa: [folder_path] Felhasználó: [username] URL: [url]', +'removed_workflow_email_body_html' => '', 'removed_workflow_email_subject' => '[sitename]: [name] - Dokumentum változatból eltávolított munkafolyamat', 'removeFolderFromDropFolder' => '', 'remove_approval_log' => '', @@ -1092,8 +1124,10 @@ URL: [url]', 'repaired' => 'javított', 'repairing_objects' => 'Dokumentumok és mappák helyreállítása', 'replace_content_email_body' => '', +'replace_content_email_body_html' => '', 'replace_content_email_subject' => '', 'request_workflow_action_email_body' => '', +'request_workflow_action_email_body_html' => '', 'request_workflow_action_email_subject' => '', 'reset_checkout' => '', 'restrict_access' => '', @@ -1107,6 +1141,7 @@ Segéd munkafolyamat: [subworkflow] SzülÅ‘ mappa: [folder_path] Felhasználó: [username] URL: [url]', +'return_from_subworkflow_email_body_html' => '', 'return_from_subworkflow_email_subject' => '[sitename]: [name] - Visszatérés az segéd munkafolyamatból', 'reverse_links' => 'Dokumentumok, amelyek az aktuális dokumentumra hivatkoznak', 'reviewers' => 'Felülvizsgálók', @@ -1122,12 +1157,14 @@ URL: [url]', 'reviews_without_user' => '', 'review_deletion_email' => 'Felülvizsgálat kérés törölve', 'review_deletion_email_body' => '', +'review_deletion_email_body_html' => '', 'review_deletion_email_subject' => '', 'review_file' => '', 'review_group' => 'Felülvizsgáló csoport', 'review_log' => 'Felülvizsgálati napló', 'review_request_email' => 'Felülvizsgálat kérés', 'review_request_email_body' => '', +'review_request_email_body_html' => '', 'review_request_email_subject' => '', 'review_status' => 'Felülvizsgálat állapot', 'review_submit_email' => 'Beküldött felülvizsgálat', @@ -1139,6 +1176,7 @@ Megjegyzés: [comment] SzülÅ‘ mappa: [folder_path] Felhasználó: [username] URL: [url]', +'review_submit_email_body_html' => '', 'review_submit_email_subject' => '[sitename]: [name] - Beküldött felülvizsgálat', 'review_summary' => 'Felülvizsgálat összefoglaló', 'review_update_failed' => 'Hiba a felülvizsgálat állapot frissítése során. Frissítés sikertelen.', @@ -1158,9 +1196,11 @@ URL: [url]', 'revision_date' => '', 'revision_log' => '', 'revision_request_email_body' => '', +'revision_request_email_body_html' => '', 'revision_request_email_subject' => '', 'revision_status' => '', 'revision_submit_email_body' => '', +'revision_submit_email_body_html' => '', 'revision_submit_email_subject' => '', 'revision_summary' => '', 'revisors' => '', @@ -1174,6 +1214,7 @@ Munkafolyamat: [workflow] SzülÅ‘ mappa: [folder_path] Felhasználó: [username] URL: [url]', +'rewind_workflow_email_body_html' => '', 'rewind_workflow_email_subject' => '[sitename]: [name] - Munkafolyamat visszajátszva', 'rewind_workflow_warning' => 'Ha visszajátssza a munkafolyamatot a kezdeti állapotába, akkor a teljes munkafolyamat napló törlésre kerül és többé nem lehet helyreállítani.', 'rm_attrdef' => 'JellemzÅ‘ meghatározás eltávolítása', @@ -1215,6 +1256,7 @@ Munkafolyamat: [workflow] Segéd munkafolyamat: [subworkflow] Felhasználó: [username] URL: [url]', +'run_subworkflow_email_body_html' => '', 'run_subworkflow_email_subject' => '[sitename]: [name] - Segéd munkafolyamat elindult', 'ru_RU' => 'Orosz', 'saturday' => 'Szombat', @@ -1906,6 +1948,7 @@ Aktuális állapot: [current_state] SzülÅ‘ mappa: [folder_path] Felhasználó: [username] URL: [url]', +'transition_triggered_email_body_html' => '', 'transition_triggered_email_subject' => '[sitename]: [name] - Munkamanet átmenet kiváltva', 'transmittal' => '', 'transmittalitem_removed' => '', @@ -1987,6 +2030,7 @@ Verzió: [version] SzülÅ‘ mappa: [folder_path] Felhasználó: [username] URL: [url]', +'version_deleted_email_body_html' => '', 'version_deleted_email_subject' => '[sitename]: [name] - Változat törölve', 'version_info' => 'Verzió információ', 'view' => 'Nézet', diff --git a/languages/it_IT/lang.inc b/languages/it_IT/lang.inc index 44c82edec..da85cb697 100644 --- a/languages/it_IT/lang.inc +++ b/languages/it_IT/lang.inc @@ -50,6 +50,7 @@ Documento: [name] Cartella: [folder_path] Utente: [username] URL: [url]', +'access_permission_changed_email_body_html' => '', 'access_permission_changed_email_subject' => '[sitename]: [name] - Permessi modificati', 'according_settings' => 'Settaggio accordi', 'action' => 'Azione', @@ -117,6 +118,7 @@ Versione: [version] Cartella: [folder_path] Utente: [username] URL: [url]', +'approval_deletion_email_body_html' => '', 'approval_deletion_email_subject' => '[sitename]: [name] - Richiesta di approvazione cancellata', 'approval_file' => 'File', 'approval_group' => 'Gruppo di approvazione', @@ -139,6 +141,7 @@ Stato: [status] Commenti: [comment] Utente: [username] URL: [url]', +'approval_submit_email_body_html' => '', 'approval_submit_email_subject' => '[sitename]: [name] - Approvazione sottoposta', 'approval_summary' => 'Dettaglio approvazioni', 'approval_update_failed' => 'Errore nel modificare lo stato di approvazione. Aggiornamento fallito.', @@ -200,6 +203,7 @@ New value: [attribute_new_value] Cartella: [folder_path] Utente: [username] URL: [url]', +'attribute_changed_email_body_html' => '', 'attribute_changed_email_subject' => '[sitename]: [name] - Attributo modificato', 'attribute_count' => 'Numero di utilizzi', 'attribute_value' => 'Valore dell\'attributo', @@ -391,6 +395,7 @@ URL: [url]', 'document_already_checkedout' => 'Questo documento è già approvato', 'document_already_locked' => 'Questo documento è già bloccato', 'document_attribute_changed_email_body' => 'Attributo modificato', +'document_attribute_changed_email_body_html' => '', 'document_attribute_changed_email_subject' => '[sitename]: [name] - Attributo modificato', 'document_comment_changed_email' => 'Commento modificato', 'document_comment_changed_email_body' => 'Commento modificato @@ -400,6 +405,7 @@ Commento: [new_comment] Cartella: [folder_path] Utente: [username] URL: [url]', +'document_comment_changed_email_body_html' => '', 'document_comment_changed_email_subject' => '[sitename]: [name] - Commento modificato', 'document_content_missing' => '', 'document_count' => 'Numero di documenti', @@ -409,6 +415,7 @@ URL: [url]', Documento: [name] Cartella: [folder_path] Utente: [username]', +'document_deleted_email_body_html' => '', 'document_deleted_email_subject' => '[sitename]: [name] - Documento cancellato', 'document_duplicate_name' => 'Nome del Documento duplicato', 'document_files' => '', @@ -428,6 +435,7 @@ Vecchia cartella: [old_folder_path] Nuova cartella: [new_folder_path] Utente: [username] URL: [url]', +'document_moved_email_body_html' => '', 'document_moved_email_subject' => '[sitename]: [name] - Documento spostato', 'document_not_checkedout' => 'Documento non approvato', 'document_renamed_email' => 'Documento rinominato', @@ -437,6 +445,7 @@ Cartella: [folder_path] Vecchio nome: [old_name] Utente: [username] URL: [url]', +'document_renamed_email_body_html' => '', 'document_renamed_email_subject' => '[sitename]: [name] - Documento rinominato', 'document_status_changed_email' => 'Modifica stato del documento', 'document_status_changed_email_body' => 'Stato del documento modificato @@ -445,6 +454,7 @@ Stato: [status] Cartella: [folder_path] Utente: [username] URL: [url]', +'document_status_changed_email_body_html' => '', 'document_status_changed_email_subject' => '[sitename]: [name] - Modificato lo stato di un documento', 'document_title' => 'Documento \'[documentname]\'', 'document_transfered_email_body' => 'Documento trasferito ad altro utente @@ -453,6 +463,7 @@ Nuovo proprietario: [newuser] Cartella: [folder_path] Utente: [username] URL: [url]', +'document_transfered_email_body_html' => '', 'document_transfered_email_subject' => '[sitename]: [name] - Documento trasferito', 'document_updated_email' => 'Documento aggiornato', 'document_updated_email_body' => 'Documento aggiornato @@ -462,6 +473,7 @@ Utente: [username] Commento: [comment] Versione commento: [version_comment] URL: [url]', +'document_updated_email_body_html' => '', 'document_updated_email_subject' => '[sitename]: [name] - Documento aggiornato', 'document_versions' => '', 'does_not_expire' => 'Nessuna scadenza', @@ -591,6 +603,7 @@ Documento: [name] Cartella: [folder_path] Utente: [username] URL: [url]', +'expiry_changed_email_body_html' => '', 'expiry_changed_email_subject' => '[sitename]: [name] - Scadenza cambiata', 'export' => 'Esporta', 'export_user_list_csv' => '', @@ -623,6 +636,7 @@ URL: [url]', 'folders_and_documents_statistic' => 'Visualizzazione generale', 'folders_with_notification' => 'Cartelle con notifica', 'folder_attribute_changed_email_body' => 'Attributo cartella modificato', +'folder_attribute_changed_email_body_html' => '', 'folder_attribute_changed_email_subject' => 'Attributo cartella modificato', 'folder_comment_changed_email' => 'Commento modificato per la Cartella', 'folder_comment_changed_email_body' => 'Commento modificato per la Cartella @@ -632,6 +646,7 @@ Nuovo commento: [new_comment] Percorso: [folder_path] Utente: [username] URL: [url]', +'folder_comment_changed_email_body_html' => '', 'folder_comment_changed_email_subject' => '[sitename]: [name] - Commento modificato per la Cartella', 'folder_contents' => 'Contenuto della cartella', 'folder_deleted_email' => 'Cartella cancellata', @@ -640,6 +655,7 @@ Cartella: [name] Percorso: [folder_path] Utente: [username] URL: [url]', +'folder_deleted_email_body_html' => '', 'folder_deleted_email_subject' => '[sitename]: [name] - Cartella cancellata', 'folder_infos' => 'Informazioni sulla cartella', 'folder_moved_email' => 'Cartella spostata', @@ -649,6 +665,7 @@ Vecchio percorso: [old_folder_path] Nuovo percorso: [new_folder_path] Utente: [username] URL: [url]', +'folder_moved_email_body_html' => '', 'folder_moved_email_subject' => '[sitename]: [name] - Cartella spostata', 'folder_renamed_email' => 'Cartella rinominata', 'folder_renamed_email_body' => 'Cartella rinominata @@ -657,6 +674,7 @@ Percorso: [folder_path] Vecchio nome: [old_name] Utente: [username] URL: [url]', +'folder_renamed_email_body_html' => '', 'folder_renamed_email_subject' => '[sitename]: [name] - Cartella rinominata', 'folder_title' => 'Cartella \'[foldername]\'', 'foot_note' => '', @@ -900,6 +918,7 @@ Commento: [comment] Versione: [version_comment] Utente: [username] URL: [url]', +'new_document_email_body_html' => '', 'new_document_email_subject' => '[sitename]: [folder_name] - Nuovo documento', 'new_file_email' => 'Nuovo allegato', 'new_file_email_body' => 'Nuovo allegato @@ -908,6 +927,7 @@ Documento: [document] Commento: [comment] Utente: [username] URL: [url]', +'new_file_email_body_html' => '', 'new_file_email_subject' => '[sitename]: [document] - Nuovo allegato', 'new_folder' => 'Nuova cartella', 'new_password' => 'Nuova password', @@ -918,6 +938,7 @@ Percorso: [folder_path] Commento: [comment] Utente: [username] URL: [url]', +'new_subfolder_email_body_html' => '', 'new_subfolder_email_subject' => '[sitename]: [name] - Nuova sottocartella', 'new_user_image' => 'Nuova immagine', 'next_revision_abbr' => '', @@ -931,6 +952,7 @@ Nome: [name] Cartella: [folder_path] Utente: [username] URL: [url]', +'notify_added_email_body_html' => '', 'notify_added_email_subject' => '[sitename]: [name] - Aggiunto alla lista di notifica', 'notify_deleted_email' => 'Sei stato rimosso dalla lista di notifica', 'notify_deleted_email_body' => 'Rimosso dalla lista di notifica @@ -938,6 +960,7 @@ Nome: [name] Cartella: [folder_path] Utente: [username] URL: [url]', +'notify_deleted_email_body_html' => '', 'notify_deleted_email_subject' => '[sitename]: [name] - Rimosso dalla lista di notifica', 'not_subscribed' => '', 'november' => 'Novembre', @@ -974,6 +997,7 @@ URL: [url]', 'no_user_image' => 'Nessuna immagine trovata', 'no_version_check' => 'Il controllo per una nuova versione di SeedDMS è fallito! Questo può essere causato da allow_url_fopen settato a 0 nella tua configurazione php.', 'no_version_modification' => 'Nessuna modifica versione', +'no_workflows' => '', 'no_workflow_available' => 'Nessun flusso di lavoro disponibile', 'objectcheck' => 'Controllo cartelle o documenti', 'object_check_critical' => 'Errori critici', @@ -995,6 +1019,7 @@ Proprietario precedente: [old_owner] Nuovo proprietario: [new_owner] Utente: [username] URL: [url]', +'ownership_changed_email_body_html' => '', 'ownership_changed_email_subject' => '[sitename]: [name] - Cambio di proprietario', 'password' => 'Password', 'password_already_used' => 'Password già usata', @@ -1012,6 +1037,7 @@ Per farlo cliccare sul seguente link: [url_prefix]out/out.ChangePassword.php?hash=[hash] Dovessero esserci ancora problemi al login, prego contatta l\'amministratore di sistema.', +'password_forgotten_email_body_html' => '', 'password_forgotten_email_subject' => '[sitename]: Password dimenticata', 'password_forgotten_send_hash' => 'Le istruzioni su come procedere sono state inviate all\'indirizzo e-mail dell\'utente', 'password_forgotten_text' => 'Compilare i campi seguenti e seguire le istruzioni nell\'e-mail che sarà inviata a breve.', @@ -1065,6 +1091,7 @@ Cartella: [folder_path] Destinatario: [recipient] Utente: [username] URL: [url]', +'receipt_deletion_email_body_html' => '', 'receipt_deletion_email_subject' => '[sitename]: [name] - Destinatario rimosso', 'receipt_log' => 'Ricezione Log', 'receipt_request_email_body' => 'Richiesta di ricezione @@ -1073,8 +1100,11 @@ Version: [version] Parent folder: [folder_path] User: [username] URL: [url]', +'receipt_request_email_body_html' => '', 'receipt_request_email_subject' => '[sitename]: [name] - Richiesta di ricezione', 'receipt_status' => 'Status', +'receipt_submit_email_body' => '', +'receipt_submit_email_subject' => '', 'receipt_summary' => 'Sommario ricezione', 'receipt_update_failed' => 'Conferma della ricezione non riuscita', 'recent_uploads' => 'Caricamenti recenti', @@ -1094,6 +1124,7 @@ URL: [url]', Documento: [document] Utente: [username] URL: [url]', +'removed_file_email_body_html' => '', 'removed_file_email_subject' => '[sitename]: [document] - Allegato rimosso', 'removed_recipient' => 'è stato rimosso dalla lista delle cartelle.', 'removed_reviewer' => 'è stato rimosso dalla lista dei revisori.', @@ -1105,6 +1136,7 @@ Flusso di lavoro: [workflow] Cartella: [folder_path] Utente: [username] URL: [url]', +'removed_workflow_email_body_html' => '', 'removed_workflow_email_subject' => '[sitename]: [name] - Flusso di lavoro rimosso dalla versione del documento', 'removeFolderFromDropFolder' => 'Rimuovi la cartella di pubblicazione dopo l\'importazione', 'remove_approval_log' => '', @@ -1113,6 +1145,7 @@ URL: [url]', 'repaired' => 'riparato', 'repairing_objects' => 'Riparazione documenti e cartelle in corso...', 'replace_content_email_body' => '', +'replace_content_email_body_html' => '', 'replace_content_email_subject' => '', 'request_workflow_action_email_body' => 'Il flusso di lavoro richiede che tu esegua un\'azione. Documento: [name] @@ -1122,6 +1155,7 @@ Stato attuale: [current_state] Cartella: [folder_path] Utente: [username] URL: [url]', +'request_workflow_action_email_body_html' => '', 'request_workflow_action_email_subject' => '[sitename]: [name] - Richiesta di azione in un flusso di lavoro', 'reset_checkout' => 'Check Out terminato', 'restrict_access' => 'Nessun accesso al', @@ -1135,6 +1169,7 @@ Sotto-flusso di lavoro: [subworkflow] Cartella: [folder_path] Utente: [username] URL: [url]', +'return_from_subworkflow_email_body_html' => '', 'return_from_subworkflow_email_subject' => '[sitename]: [name] - Ritorno dal sotto-flusso di lavoro', 'reverse_links' => 'Documenti collegati al documento corrente', 'reviewers' => 'Revisori', @@ -1155,6 +1190,7 @@ Versione: [version] Cartella: [folder_path] Utente: [username] URL: [url]', +'review_deletion_email_body_html' => '', 'review_deletion_email_subject' => '[sitename]: [name] - Richiesta di revisione cancellata', 'review_file' => 'File', 'review_group' => 'Gruppo revisori', @@ -1166,6 +1202,7 @@ Versione: [version] Cartella: [folder_path] Utente: [username] URL: [url]', +'review_request_email_body_html' => '', 'review_request_email_subject' => '[sitename]: [name] - Richiesta di revisione', 'review_status' => 'Stato revisioni', 'review_submit_email' => 'Sottoposta revisione', @@ -1177,6 +1214,7 @@ Commento: [comment] Cartella: [folder_path] Utente: [username] URL: [url]', +'review_submit_email_body_html' => '', 'review_submit_email_subject' => '[sitename]: [name] - Sottoposta revisione', 'review_summary' => 'Dettaglio revisioni', 'review_update_failed' => 'Errore nella variazione dello stato di revisione. Aggiornamento fallito.', @@ -1201,9 +1239,11 @@ Version: [version] Parent folder: [folder_path] User: [username] URL: [url]', +'revision_request_email_body_html' => '', 'revision_request_email_subject' => '[sitename]: [name] - Richiesta di riesame', 'revision_status' => 'Status', 'revision_submit_email_body' => '', +'revision_submit_email_body_html' => '', 'revision_submit_email_subject' => '', 'revision_summary' => 'Riepilogo revisione', 'revisors' => 'Revisori', @@ -1217,6 +1257,7 @@ Workflow: [workflow] Parent folder: [folder_path] User: [username] URL: [url]', +'rewind_workflow_email_body_html' => '', 'rewind_workflow_email_subject' => '[sitename]: [name] - Il flusso di lavoro è stato fatto ripartire', 'rewind_workflow_warning' => 'Se si fa ripartire un flusso di lavoro al suo stato iniziale ogni traccia del flusso di lavoro originale per questo documento sarà cancellata permanentemente.', 'rm_attrdef' => 'Rimuovi attributo', @@ -1259,6 +1300,7 @@ Sotto-flusso di lavoro: [subworkflow] Cartella: [folder_path] Utente: [username] URL: [url]', +'run_subworkflow_email_body_html' => '', 'run_subworkflow_email_subject' => '[sitename]: [name] - Sotto-flusso di lavoro iniziato', 'ru_RU' => 'Russo', 'saturday' => 'Sabato', @@ -1955,6 +1997,7 @@ Stato attuale: [current_state] Cartella: [folder_path] Utente: [username] URL: [url]', +'transition_triggered_email_body_html' => '', 'transition_triggered_email_subject' => 'Transizione del flusso di lavoro iniziata', 'transmittal' => 'Trasmissione', 'transmittalitem_removed' => 'Oggetto trasmissione rimosso', @@ -2036,6 +2079,7 @@ Versione: [version] Cartella: [folder_path] Utente: [username] URL: [url]', +'version_deleted_email_body_html' => '', 'version_deleted_email_subject' => '[sitename]: [name] - Versione cancellata', 'version_info' => 'Informazioni versione', 'view' => 'Visualizza', diff --git a/languages/ko_KR/lang.inc b/languages/ko_KR/lang.inc index dd99c2e9d..6b6e317d3 100644 --- a/languages/ko_KR/lang.inc +++ b/languages/ko_KR/lang.inc @@ -50,6 +50,7 @@ $text = array( ìƒìœ„ í´ë”: [folder_path] 사용ìž: [username] URL: [url]', +'access_permission_changed_email_body_html' => '', 'access_permission_changed_email_subject' => '[sitename ]: [name] - 권한 변경', 'according_settings' => '설정 하기', 'action' => 'ì•¡ì…˜', @@ -117,6 +118,7 @@ URL: [url]', ìƒìœ„ í´ë”: [folder_path] 사용ìž: [username] URL: [url]', +'approval_deletion_email_body_html' => '', 'approval_deletion_email_subject' => '[sitename]: [name] - ì‚­ì œëœ ìŠ¹ì¸ ìš”ì²­', 'approval_file' => '파ì¼', 'approval_group' => 'ìŠ¹ì¸ ê·¸ë£¹', @@ -139,6 +141,7 @@ URL: [url]', 코맨트: [comment] 사용ìž: [username] URL: [url]', +'approval_submit_email_body_html' => '', 'approval_submit_email_subject' => '[sitename]: [name] - 제출 승ì¸', 'approval_summary' => 'ìŠ¹ì¸ ê°œìš”', 'approval_update_failed' => 'ìŠ¹ì¸ ìƒíƒœë¥¼ ì—…ë°ì´íЏ 중 오류가 ë°œìƒ. ì—…ë°ì´íЏ 실패.', @@ -200,6 +203,7 @@ New value: [attribute_new_value] ìƒìœ„í´ë”: [folder_path] 사용ìž: [username] URL: [url]', +'attribute_changed_email_body_html' => '', 'attribute_changed_email_subject' => '[sitename] : [name] - ì†ì„±ì´ 변경', 'attribute_count' => '사용ìžìˆ˜', 'attribute_value' => 'ì†ì„±', @@ -394,6 +398,7 @@ URL: [url]', 'document_already_checkedout' => 'ì´ë¬¸ì„œëŠ” ì´ë¯¸ ì²´í¬ì•„웃 ë˜ì—ˆìŠµë‹ˆë‹¤', 'document_already_locked' => 'ì´ë¯¸ 잠겨진 문서', 'document_attribute_changed_email_body' => '', +'document_attribute_changed_email_body_html' => '', 'document_attribute_changed_email_subject' => '', 'document_comment_changed_email' => 'ì£¼ì„ ë³€ê²½ë¨', 'document_comment_changed_email_body' => 'ë³€ê²½ëœ ì½”ë©˜íŠ¸ @@ -403,6 +408,7 @@ URL: [url]', ìƒìœ„í´ë”: [folder_path] 사용ìž: [username] URL: [url]', +'document_comment_changed_email_body_html' => '', 'document_comment_changed_email_subject' => '[sitename]: [name] - ì£¼ì„ ë³€ê²½ë¨', 'document_content_missing' => '', 'document_count' => '문서 수', @@ -412,6 +418,7 @@ URL: [url]', 문서: [name] ìƒìœ„í´ë”: [folder_path] 사용ìž: [username]', +'document_deleted_email_body_html' => '', 'document_deleted_email_subject' => '[sitename]:[name] - ì‚­ì œëœ ë¬¸ì„œ', 'document_duplicate_name' => '중복 문서 ì´ë¦„', 'document_files' => '', @@ -431,6 +438,7 @@ URL: [url]', 새 í´ë”: [new_folder_path] 사용ìž: [username] URL: [url]', +'document_moved_email_body_html' => '', 'document_moved_email_subject' => '[sitename] : [name] - ì´ë™ëœ 문서', 'document_not_checkedout' => '문서가 ì²´í¬ì•„웃ë˜ì§€ 않았습니다.', 'document_renamed_email' => 'ë³€ê²½ëœ ë¬¸ì„œëª…', @@ -440,6 +448,7 @@ URL: [url]', ì´ì „ 문서명: [old_name] 사용ìž: [username] URL: [url]', +'document_renamed_email_body_html' => '', 'document_renamed_email_subject' => '[sitename] : [name] - ë³€ê²½ëœ ë¬¸ì„œëª…', 'document_status_changed_email' => '문서 ìƒíƒœê°€ 변경', 'document_status_changed_email_body' => '문서 ìƒíƒœ 변경 @@ -448,9 +457,11 @@ URL: [url]', ìƒìœ„í´ë”: [folder_path] 사용ìž: [username] URL: [url]', +'document_status_changed_email_body_html' => '', 'document_status_changed_email_subject' => '[sitename] : [name] - 문서 ìƒíƒœê°€ 변경', 'document_title' => '문서\'[documentname]\'', 'document_transfered_email_body' => '', +'document_transfered_email_body_html' => '', 'document_transfered_email_subject' => '', 'document_updated_email' => '문서 ì—…ë°ì´íЏ', 'document_updated_email_body' => '문서 ì—…ë°ì´íЏ @@ -458,6 +469,7 @@ URL: [url]', ìƒìœ„ í´ë”: [folder_path] 사용ìž: [username] URL: [url]', +'document_updated_email_body_html' => '', 'document_updated_email_subject' => '[name]:[sitename] - ì—…ë°ì´íЏ ëœ ë¬¸ì„œ', 'document_versions' => '', 'does_not_expire' => '만료 안ë¨', @@ -587,6 +599,7 @@ URL: [url]', ìƒìœ„ í´ë”: [folder_path] 사용ìž: [username] URL: [url]', +'expiry_changed_email_body_html' => '', 'expiry_changed_email_subject' => '[sitename] : [name] - 유효 기간 변경', 'export' => '내보내기', 'export_user_list_csv' => '', @@ -619,6 +632,7 @@ URL: [url]', 'folders_and_documents_statistic' => '개요 ë‚´ìš©', 'folders_with_notification' => '', 'folder_attribute_changed_email_body' => '', +'folder_attribute_changed_email_body_html' => '', 'folder_attribute_changed_email_subject' => '', 'folder_comment_changed_email' => 'ì£¼ì„ ë³€ê²½ë¨', 'folder_comment_changed_email_body' => '코멘트 변경 @@ -628,6 +642,7 @@ URL: [url]', ìƒìœ„ í´ë”: [folder_path] 사용ìž: [username] URL: [url]', +'folder_comment_changed_email_body_html' => '', 'folder_comment_changed_email_subject' => '[sitename]: [name] - ì£¼ì„ ë³€ê²½ë¨', 'folder_contents' => 'í´ë” ë‚´ìš©', 'folder_deleted_email' => 'í´ë” ì‚­ì œ', @@ -636,6 +651,7 @@ URL: [url]', ìƒìœ„ í´ë”: [folder_path] ì‚¬ìš©ìž [username] URL : [url]', +'folder_deleted_email_body_html' => '', 'folder_deleted_email_subject' => '[sitename] : [name] - í´ë” ì‚­ì œ', 'folder_infos' => 'í´ë” ì •ë³´', 'folder_moved_email' => 'í´ë” ì´ë™', @@ -645,6 +661,7 @@ URL : [url]', 새 í´ë”: [new_folder_path] 사용ìž: [username] URL : [url]', +'folder_moved_email_body_html' => '', 'folder_moved_email_subject' => '[sitename] : [name] - í´ë” ì´ë™', 'folder_renamed_email' => 'í´ë” ì´ë¦„ 바꿈', 'folder_renamed_email_body' => 'í´ë”명 변경 @@ -653,6 +670,7 @@ URL : [url]', ì´ì „ ì´ë¦„: [old_name 사용ìž: [username] URL: [url]', +'folder_renamed_email_body_html' => '', 'folder_renamed_email_subject' => '[sitename] : [name] - í´ë” ì´ë¦„', 'folder_title' => 'í´ë” \'[foldername]\'', 'foot_note' => '', @@ -896,6 +914,7 @@ URL: [url]', 버전 주ì„: [version_comment] 사용ìž: [username] URL: [url]', +'new_document_email_body_html' => '', 'new_document_email_subject' => '[sitename] : [folder_name] - 새 문서', 'new_file_email' => '새 첨부', 'new_file_email_body' => '새 첨부 íŒŒì¼ @@ -904,6 +923,7 @@ URL: [url]', 코멘트: [comment] 사용ìž: [username] URL: [url]', +'new_file_email_body_html' => '', 'new_file_email_subject' => '[sitename] : [document] - 새 첨부 파ì¼', 'new_folder' => '새 í´ë”', 'new_password' => '새 암호', @@ -914,6 +934,7 @@ URL: [url]', 코멘트: [comment] 사용ìž: [username] URL [url]', +'new_subfolder_email_body_html' => '', 'new_subfolder_email_subject' => '[sitename] : [name] - 새 í´ë”', 'new_user_image' => '새로운 ì´ë¯¸ì§€', 'next_revision_abbr' => '', @@ -927,6 +948,7 @@ URL [url]', ìƒìœ„ í´ë”: [folder_path] 사용ìž: [username] URL: [url]', +'notify_added_email_body_html' => '', 'notify_added_email_subject' => '[sitename] : [name] - 알림 목ë¡ì— 추가', 'notify_deleted_email' => '목ë¡ì„ 알림ì—서 제거했습니다', 'notify_deleted_email_body' => '알림 목ë¡ì—서 제거 @@ -934,6 +956,7 @@ URL: [url]', ìƒìœ„ í´ë”: [folder_path] 사용ìž: [username] URL : [url]', +'notify_deleted_email_body_html' => '', 'notify_deleted_email_subject' => '[sitename]: [name] - 알림목ë¡ìœ¼ë¡œë¶€í„° 제거ë¨', 'not_subscribed' => '', 'november' => '11ì›”', @@ -970,6 +993,7 @@ URL : [url]', 'no_user_image' => 'ì´ë¯¸ì§€ë¥¼ ì°¾ì„ ìˆ˜ 없습니다', 'no_version_check' => 'SeedDMSì˜ ìƒˆ 버전 확ì¸ì„ 실패 했습니다! ì´ê²ƒì€ PHP 설정ì—서 allow_url_fopen ê°’ì´ 0으로 설정 ë˜ë©´ ë°œìƒí•  수 있습니다.', 'no_version_modification' => 'ë²„ì „ì˜ ë³€ë™ì‚¬í•­ì´ 없습니다.', +'no_workflows' => '', 'no_workflow_available' => '사용 가능한 ì›Œí¬ í”Œë¡œìš° 없습니다.', 'objectcheck' => 'í´ë” / 문서 확ì¸', 'object_check_critical' => 'ì¹˜ëª…ì  ì˜¤ë¥˜', @@ -991,6 +1015,7 @@ URL : [url]', 새 ì‚¬ìš©ìž : [new_owner] ì‚¬ìš©ìž : [username] URL : [url]', +'ownership_changed_email_body_html' => '', 'ownership_changed_email_subject' => '[sitename] : [name] - ì†Œìœ ìž ë³€ê²½', 'password' => '암호', 'password_already_used' => 'ì˜ˆì „ì— ì“°ì¸ ì•”í˜¸', @@ -1000,6 +1025,7 @@ URL : [url]', 'password_expires_in_days' => '암호가 %sì¼ í›„ì— ë§Œë£Œë©ë‹ˆë‹¤.', 'password_forgotten' => '비밀번호 분실', 'password_forgotten_email_body' => '친애하는 SeedDMS사용ìžì—게, n n 우리는 비밀번호를 변경하ë„ë¡ ìš”ì²­ì„ ë°›ì•˜ìŠµë‹ˆë‹¤. n nì´ëŠ” ë‹¤ìŒ ë§í¬ë¥¼ í´ë¦­í•˜ì—¬ 수행 í•  수 있습니다 :nn[url_prefix]out/out.ChangePassword.php?hash=[hash]nn만약 여전히 로그ì¸ì— 문제가 ìƒê¸°ë©´ 관리ìžì—게 문ì˜í•˜ì‹­ì‹œì˜¤.', +'password_forgotten_email_body_html' => '', 'password_forgotten_email_subject' => '[sitename]: 비밀번호 분실', 'password_forgotten_send_hash' => '사용ìžì˜ ì´ë©”ì¼ ì£¼ì†Œë¡œ 전송 ì§„í–‰ ë°©ë²•ì— ëŒ€í•œ 지침', 'password_forgotten_text' => 'ì•„ëž˜ì˜ ì–‘ì‹ì„ 작성하시고 당신ì—게 보낼 ì´ë©”ì¼ì— 있는 지시 ì‚¬í•­ì„ ë”°ë¥´ì‹­ì‹œì˜¤.', @@ -1047,11 +1073,15 @@ URL : [url]', 'receipts_without_group' => '', 'receipts_without_user' => '', 'receipt_deletion_email_body' => '', +'receipt_deletion_email_body_html' => '', 'receipt_deletion_email_subject' => '', 'receipt_log' => '로그 수신', 'receipt_request_email_body' => 'ì´ë©”ì¼ ë‚´ìš© í™•ì¸ ìš”ì²­', +'receipt_request_email_body_html' => '', 'receipt_request_email_subject' => 'ì´ë©”ì¼ ì œëª© í™•ì¸ ìš”ì²­', 'receipt_status' => '', +'receipt_submit_email_body' => '', +'receipt_submit_email_subject' => '', 'receipt_summary' => 'ì ‘ìˆ˜ì¦ ìš”ì•½', 'receipt_update_failed' => '', 'recent_uploads' => '', @@ -1071,6 +1101,7 @@ URL : [url]', 문서: [document] 사용ìž: [username] URL : [url]', +'removed_file_email_body_html' => '', 'removed_file_email_subject' => '[sitename] : [document] - 제거 ëœ ì²¨ë¶€ 파ì¼', 'removed_recipient' => 'ìˆ˜ì‹ ìž ëª©ë¡ì—서 제거ë˜ì—ˆìŠµë‹ˆë‹¤.', 'removed_reviewer' => '사용ìžê¸° ê²€í† ìž ëª©ë¡ì—서 제거ë˜ì—ˆìŠµë‹ˆë‹¤.', @@ -1082,6 +1113,7 @@ URL : [url]', ìƒìœ„ í´ë”: [folder_path] 사용ìž: [username] URL: [url]', +'removed_workflow_email_body_html' => '', 'removed_workflow_email_subject' => '[sitename] : [name] - 문서 버전ì—서 제거 ëœ ì›Œí¬í”Œë¡œìš°', 'removeFolderFromDropFolder' => '', 'remove_approval_log' => '', @@ -1090,6 +1122,7 @@ URL: [url]', 'repaired' => '복구', 'repairing_objects' => '문서 ë° í´ë” 복구', 'replace_content_email_body' => '', +'replace_content_email_body_html' => '', 'replace_content_email_subject' => '', 'request_workflow_action_email_body' => '워í¬í”Œë¡œìš°ëŠ” ë‹¹ì‹ ì˜ ìž‘ì—…ì„ í•„ìš”ë¡œ 하는 ìƒíƒœì— ë„달했습니다. 문서: [name] @@ -1099,6 +1132,7 @@ URL: [url]', ìƒìœ„í´ë”: [folder_path] 사용ìž: [username] URL: [url]', +'request_workflow_action_email_body_html' => '', 'request_workflow_action_email_subject' => '워í¬í”Œë¡œìš° 작업 í•„ìš”', 'reset_checkout' => 'ì²´í¬ì•„웃 마ê°', 'restrict_access' => '', @@ -1112,6 +1146,7 @@ URL: [url]', ìƒìœ„ í´ë”: [folder_path] 사용ìž: [username] URL: [url]', +'return_from_subworkflow_email_body_html' => '', 'return_from_subworkflow_email_subject' => '[sitename]: [name] - 하위 워í¬í”Œë¡œìš°ì—서 반환', 'reverse_links' => '현재 ë¬¸ì„œì— ëŒ€í•œ ë§í¬ë¥¼ 가지고있는 문서', 'reviewers' => '검토ìž', @@ -1132,6 +1167,7 @@ URL: [url]', ìƒìœ„ í´ë”: [folder_path] 사용ìž: [username] URL: [url]', +'review_deletion_email_body_html' => '', 'review_deletion_email_subject' => '[sitename]: [name] - 검토 요청 ì‚­ì œë¨', 'review_file' => '파ì¼', 'review_group' => '그룹 검토', @@ -1143,6 +1179,7 @@ URL: [url]', ìƒìœ„ í´ë”: [folder_path] 사용ìž: [username] URL: [url]', +'review_request_email_body_html' => '', 'review_request_email_subject' => '[sitename]: [name] - 검토 요청', 'review_status' => '검토 ìƒíƒœ', 'review_submit_email' => '제출 검토', @@ -1154,6 +1191,7 @@ URL: [url]', ìƒìœ„ í´ë”: [folder_path] 사용ìž: [username] URL: [url]', +'review_submit_email_body_html' => '', 'review_submit_email_subject' => '[sitename] : [name] - 제출 검토', 'review_summary' => '검토 요약', 'review_update_failed' => '오류 ì—…ë°ì´íЏ 검토 ìƒíƒœ. ì—…ë°ì´íŠ¸ì— ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤ rewind_workflow워í¬í”Œë¡œìš° ë˜ëŒë¦¬ê¸°', @@ -1173,9 +1211,11 @@ URL: [url]', 'revision_date' => '개정 ì¼ìž', 'revision_log' => '개정 로그', 'revision_request_email_body' => '수정 요청 ë©”ì¼ ë‚´ìš©', +'revision_request_email_body_html' => '', 'revision_request_email_subject' => '수정 요청 ì´ë©”ì¼ ì œëª©', 'revision_status' => 'ìƒíƒœ', 'revision_submit_email_body' => '', +'revision_submit_email_body_html' => '', 'revision_submit_email_subject' => '', 'revision_summary' => '', 'revisors' => 'ê°ì‚¬', @@ -1189,6 +1229,7 @@ URL: [url]', ìƒìœ„ í´ë”: [folder_path] 사용ìž: [username] URL: [url]', +'rewind_workflow_email_body_html' => '', 'rewind_workflow_email_subject' => '[sitename] : [name] - 워í¬í”Œë¡œìš° ë˜ëŒë¦¼', 'rewind_workflow_warning' => 'ë‹¹ì‹ ì´ ì´ˆê¸° ìƒíƒœë¡œ 워í¬í”Œë¡œë¥¼ 뒤로 경우, ì´ ë¬¸ì„œì˜ ì „ì²´ 워í¬í”Œë¡œìš° 로그가 ì‚­ì œë˜ë©° 복구 í•  수 없습니다.', 'rm_attrdef' => 'ì†ì„± ì •ì˜ ì œê±°', @@ -1231,6 +1272,7 @@ URL: [url]', ìƒìœ„ í´ë”: [folder_path] 사용ìž: [username] URL : [url]', +'run_subworkflow_email_body_html' => '', 'run_subworkflow_email_subject' => '[sitename] : [name] - 서브 워í¬í”Œë¡œìš°ê°€ 시작ë˜ì—ˆë‹¤', 'ru_RU' => '러시아', 'saturday' => '토요ì¼', @@ -1922,6 +1964,7 @@ URL : [url]', ìƒìœ„ í´ë”: [folder_path] 사용ìž: [username] URL : [url]', +'transition_triggered_email_body_html' => '', 'transition_triggered_email_subject' => '[sitename] : [name] - 워í¬í”Œë¡œìš° ì „í™˜ì´ íŠ¸ë¦¬ê±°', 'transmittal' => '전송', 'transmittalitem_removed' => '송부 항목 ì‚­ì œ', @@ -2003,6 +2046,7 @@ URL : [url]', ìƒìœ„ í´ë”: [folder_path] 사용ìž: [username] URL : [url]', +'version_deleted_email_body_html' => '', 'version_deleted_email_subject' => '[sitename] : [name] - 버전 ì‚­ì œ', 'version_info' => '버전 ì •ë³´', 'view' => '보기', diff --git a/languages/lo_LA/lang.inc b/languages/lo_LA/lang.inc index de194a948..a9e9bfb16 100644 --- a/languages/lo_LA/lang.inc +++ b/languages/lo_LA/lang.inc @@ -50,6 +50,7 @@ $text = array( ໂຟເດີຫຼັàº:[folder_path] ຜູ້ໃຊ້:[username] URL: [url]', +'access_permission_changed_email_body_html' => '', 'access_permission_changed_email_subject' => '[sitename]: [name] ອານຸàºàº²àº”ປ່ຽນà»àº¥à»‰àº§', 'according_settings' => 'ຕາມàºàº²àº™àº•ັ້ງຄ່າ', 'action' => 'àºàº°àº—ຳ', @@ -117,6 +118,7 @@ URL: [url]', ໂຟລເດີຫຼັàº: [folder_path] ຜູ້ໃຊ້: [username] URL: [url]', +'approval_deletion_email_body_html' => '', 'approval_deletion_email_subject' => '[sitename]:[name] - ຄຳອະນຸມັດໄດ້ຖືàºàº¥àº»àºšà»àº¥à»‰àº§', 'approval_file' => 'ຟາàº', 'approval_group' => 'àºàº¸à»ˆàº¡àº—ີໄດ້ຮັບàºàº²àº™àº­àº°àº™àº¸àº¡àº±àº”', @@ -139,6 +141,7 @@ URL: [url]', ສະà»àº”ງຄວາມຄິດເຫັນ: [comment] ຜູ້ໃຊ້: [username] URL: [url]', +'approval_submit_email_body_html' => '', 'approval_submit_email_subject' => '[sitename]:[name] ສົ່ງຄຳຂà»àº­àº°àº™àº¸àº¡àº±àº”à»àº¥à»‰àº§', 'approval_summary' => 'ສະຫຼຸບàºàº²àº™àº­àº°àº™àº¸àº¡àº±àº”', 'approval_update_failed' => 'ເàºàºµàº”ຂà»àºœàº´àº”ພາດໃນàºàº²àº™àº­àº±àºšà»€àº”ດສະຖານະàºàº²àº™àº­àº°àº™àº¸àº¡àº±àº” àºàº²àº™àº­àº±àºšà»€àº”ດໄດ້ລົ້ມເຫລວ', @@ -198,6 +201,7 @@ URL: [url]', ໂຟລເດີຫຼັàº: [folder_path] ຜູ້ໃຊ້: [username] URL: [url]', +'attribute_changed_email_body_html' => '', 'attribute_changed_email_subject' => 'ຊ[sitename]:[name] - ປ່ຽນເປັນຄຸນສົມບັດà»àº¥à»‰àº§à»àº¥à»‰àº§', 'attribute_count' => 'ຈຳນວນàºàº²àº™à»ƒàºŠà»‰', 'attribute_value' => 'ມູນຄ່າຂອງລັàºàºªàº°àº™àº°', @@ -389,6 +393,7 @@ URL: [url]', 'document_already_checkedout' => 'ເອàºàº°àºªàº²àº™àº™àºµà»‰à»àº¡à»ˆàº™à»„ດ້ຮັບàºàº²àº™àºàº§àº”ສອບຮຽບຮ້ອàºà»àº¥à»‰àº§', 'document_already_locked' => 'ເອàºàº°àºªàº²àº™àº™àºµà»‰à»àº¡à»ˆàº™à»„ດ້ຖືàºàº¥àº±àº­àº', 'document_attribute_changed_email_body' => '', +'document_attribute_changed_email_body_html' => '', 'document_attribute_changed_email_subject' => '', 'document_comment_changed_email' => 'ປ່ຽນຄວາມຄິດເຫັນ', 'document_comment_changed_email_body' => 'ປ່ຽນຄວາມຄິດເຫັນ @@ -398,6 +403,7 @@ URL: [url]', ໂຟລເດີຫຼັàº: [folder_path] ຜູ້ໄຊ້: [username] URL: [url]', +'document_comment_changed_email_body_html' => '', 'document_comment_changed_email_subject' => '[sitename]:[name] - ປ່ຽນຄວາມຄິດເຫັນà»àº¥à»‰àº§', 'document_content_missing' => '', 'document_count' => 'ຈຳນວນເອàºàº°àºªàº²àº™', @@ -407,6 +413,7 @@ URL: [url]', ເອàºàº°àºªàº²àº™: [name] ໂຟລເດີຫຼັàº: [folder_path] ຜູ້ໄຊ້: [username]', +'document_deleted_email_body_html' => '', 'document_deleted_email_subject' => '[sitename]:[name] - ເອàºàº°àºªàº²àº™', 'document_duplicate_name' => 'ຊື່ເອàºàº°àºªàº²àº™àºŠà»à»‰àº²', 'document_files' => '', @@ -426,6 +433,7 @@ URL: [url]', ໂຟລເດີໄຫມ່: [new_folder_path] ຜູ້ໃຊ້: [username] URL: [url]', +'document_moved_email_body_html' => '', 'document_moved_email_subject' => '[sitename]:[name] - ເອàºàº°àºªàº²àº™àº–ືàºàºà»‰àº²àº', 'document_not_checkedout' => 'ບà»à»ˆàºàº§àº”ສອບເອàºàº°àºªàº²àº™', 'document_renamed_email' => 'ປ່ຽນຊື່ເອàºàº°àºªàº²àº™à»àº¥à»‰àº§', @@ -435,6 +443,7 @@ URL: [url]', ຊື່ເàºàº»à»ˆàº²: [old_name] ຜູ້ໃຊ້: [username] URL: [url]', +'document_renamed_email_body_html' => '', 'document_renamed_email_subject' => '[sitename]:[name] - ປ່ຽນເປັນຄຸນສົມບັດà»àº¥à»‰àº§à»àº¥à»‰àº§', 'document_status_changed_email' => 'ປ່ຽນສະຖານະເອàºàº°àºªàº²àº™à»àº¥à»‰àº§', 'document_status_changed_email_body' => 'ປ່ຽນສະຖານະເອàºàº°àºªàº²àº™à»àº¥à»‰àº§ @@ -443,9 +452,11 @@ URL: [url]', ໂຟລເດີຫຼັàº: [folder_path] ຜູ້ໃຊ້: [username] URL: [url]', +'document_status_changed_email_body_html' => '', 'document_status_changed_email_subject' => '[sitename]:[name] - ປ່ຽນເປັນຄຸນສົມບັດà»àº¥à»‰àº§', 'document_title' => 'ເອàºàº°àºªàº²àº™ "[documentname] "', 'document_transfered_email_body' => '', +'document_transfered_email_body_html' => '', 'document_transfered_email_subject' => '', 'document_updated_email' => 'ອັບເດດເອàºàº°àºªàº²àº™à»àº¥à»‰àº§', 'document_updated_email_body' => 'ອັບເດດເອàºàº°àºªàº²àº™à»àº¥à»‰àº§ @@ -455,6 +466,7 @@ URL: [url]', ຄວາມຄິດເຫັນ: [comment] ຄວາມຄິດເຫັນàºà»ˆàº½àº§àºàº±àºšà»€àº§àºµàºŠàº±àº™: [version_comment] URL: [url]', +'document_updated_email_body_html' => '', 'document_updated_email_subject' => '[sitename]:[name] - ອັບເດດເອàºàº°àºªàº²àº™à»àº¥à»‰àº§', 'document_versions' => '', 'does_not_expire' => 'àºàº±àº‡àºšà»à»ˆàº«àº¡àº»àº”ອາàºàº¸', @@ -584,6 +596,7 @@ URL: [url]', ໂຟລເດີຫຼັàº: [folder_path] ໂຟລເດີຫຼັàº: [username] URL: [url]', +'expiry_changed_email_body_html' => '', 'expiry_changed_email_subject' => '[sitename]:[name] - ວັນà»àº»àº”ອາàºàº¸à»„ດ້ປ່ຽນà»àº¥à»‰àº§', 'export' => 'ສົ່ງອອàº', 'export_user_list_csv' => '', @@ -616,6 +629,7 @@ URL: [url]', 'folders_and_documents_statistic' => 'ພາບລວມເນື້ອຫາ', 'folders_with_notification' => 'ໂຟລເດີທີມີàºàº²àº™à»àºˆà»‰àº‡à»€àº•ືອນ', 'folder_attribute_changed_email_body' => '', +'folder_attribute_changed_email_body_html' => '', 'folder_attribute_changed_email_subject' => '', 'folder_comment_changed_email' => 'ປ່ຽນຄວາມຄິດເຫັນ', 'folder_comment_changed_email_body' => 'ປ່ຽນຄວາມຄິດເຫັນ @@ -625,6 +639,7 @@ URL: [url]', ໂຟລເດີຫຼັàº: [folder_path] ຜູ້ໄຊ້: [username] URL: [url]', +'folder_comment_changed_email_body_html' => '', 'folder_comment_changed_email_subject' => '[sitename]:[name] - ປ່ຽນຄຳຄິດເຫັນà»àº¥à»‰àº§', 'folder_contents' => 'ເນື້ອຫາໂຟລເດີ', 'folder_deleted_email' => 'ລົບໂຟລເດີà»àº¥à»‰àº§', @@ -633,6 +648,7 @@ URL: [url]', ໂຟລເດີຫຼັàº: [folder_path] ຊື່ຜູ້ໃຊ້: [username] URL: [url]', +'folder_deleted_email_body_html' => '', 'folder_deleted_email_subject' => '[sitename]:[name] - ລົບໂຟລເດີà»àº¥à»‰àº§', 'folder_infos' => 'ຂà»à»‰àº¡àº¹àº™à»‚ຟລເດີ', 'folder_moved_email' => 'àºà»‰àº²àºà»‚ຟລເດີà»àº¥à»‰àº§', @@ -642,6 +658,7 @@ URL: [url]', ໂຟລເດີໄຫມ່: [new_folder_path] ຜູ້ໄຊ້: [username] URL: [url]', +'folder_moved_email_body_html' => '', 'folder_moved_email_subject' => '[sitename]:[name] - àºà»‰àº²àºà»‚ຟລເດີà»àº¥à»‰àº§', 'folder_renamed_email' => 'ປ່ຽນຊື່ໂຟລເດີà»àº¥à»‰àº§', 'folder_renamed_email_body' => 'ປ່ຽນຊື່ໂຟລເດີà»àº¥à»‰àº§ @@ -650,6 +667,7 @@ URL: [url]', ຊື່ເàºàº»à»ˆàº²: [old_name] ຜູ້ໄຊ້: [username] URL: [url]', +'folder_renamed_email_body_html' => '', 'folder_renamed_email_subject' => '[sitename]:[name] - ປ່ຽນຊື່ໂຟລເດີ', 'folder_title' => 'ໂຟລເດີ "[foldername] "', 'foot_note' => '', @@ -893,6 +911,7 @@ URL: [url]', ຄວາມຄິດເຫັນàºà»ˆàº½àº§àºàº±àºšà»€àº§àºµàºŠàº±à»‰àº™: [version_comment] ຜູ້ໄຊ້: [username] URL: [url]', +'new_document_email_body_html' => '', 'new_document_email_subject' => '[sitename]:[folder_name] - ເອàºàº°àºªàº²àº™à»„ຫມ່', 'new_file_email' => 'à»àº™àºšà»€àº­àºàº°àºªàº²àº™à»„ຫມ່', 'new_file_email_body' => 'à»àº™àºšà»€àº­àºàº°àºªàº²àº™à»„ຫມ່ @@ -901,6 +920,7 @@ URL: [url]', ຄວາມຄິດເຫັນ: [comment] ຜູ້ໄຊ້: [username] URL: [url]', +'new_file_email_body_html' => '', 'new_file_email_subject' => '[sitename]:[document] - à»àº™àºšà»„ຟລໄຫມ່', 'new_folder' => 'à»àºŸà»‰àº¡à»„ຫມ່', 'new_password' => 'ລະຫັດຜ່ານໄຫມ່', @@ -911,6 +931,7 @@ URL: [url]', ຄວາມຄິດເຫັນ: [comment] ຜູ້ໄຊ້: [username] URL: [url]', +'new_subfolder_email_body_html' => '', 'new_subfolder_email_subject' => '[sitename]:[name] - ໂຟລເດີໄຫມ່', 'new_user_image' => 'ຮູບໄຫມ່', 'next_revision_abbr' => '', @@ -924,6 +945,7 @@ URL: [url]', ໂຟລເດີຫຼັàº: [folder_path] ຜູ້ໄຊ້: [username] URL: [url]', +'notify_added_email_body_html' => '', 'notify_added_email_subject' => '[sitename]:[name] - ເພີ່ມລົງໃນລາàºàºàº²àº™à»àºˆà»‰àº‡à»€àº•ືອນ', 'notify_deleted_email' => 'ເຈົ້າໄດ້ອອàºàºˆàº²àºàº¥àº²àºàºàº²àº™à»àºˆà»‰àº‡à»€àº•ືອນà»àº¥à»‰àº§', 'notify_deleted_email_body' => 'ນຳອອàºàºˆàº²àºàº¥àº²àºàºàº²àº™à»àºˆà»‰àº‡à»€àº•ືອນ @@ -931,6 +953,7 @@ URL: [url]', ໂຟລເດີຫຼັàº: [folder_path] ຜູ້ໄຊ້: [username] URL: [url]', +'notify_deleted_email_body_html' => '', 'notify_deleted_email_subject' => '[sitename]:[name] - ນຳອອàºàºˆàº²àºàºàº²àº™à»àºˆà»‰àº‡à»€àº•ືອນà»àº¥à»‰àº§', 'not_subscribed' => '', 'november' => 'ເດືອນພະຈິàº', @@ -967,6 +990,7 @@ URL: [url]', 'no_user_image' => 'ບà»à»ˆàº¡àºµàº®àº¹àºšàºžàº²àºš', 'no_version_check' => 'àºàº²àº™àºàº§àº”ສອບເວີຊັນໄຫມ່ທີàºà»ˆàº½àº§àº‚ອງ DMSລົ້ມເຫຼວ! ເຊີ່ງອາດຈະເàºàºµàº”ຈາàºàºàº²àº™àº•ັ້ງຄ່າ-ຢູອາເອວ-ໂຟລເດີ ເປັນ0 ໃນàºàº²àº™àºàº³àº™àº»àº”ຄ່າ PHP ຂອງທ່ານ', 'no_version_modification' => 'ບà»à»ˆàº¡àºµàºàº²àº™àº›à»ˆàº½àº™à»€àº§àºµàºŠàº±àº™', +'no_workflows' => '', 'no_workflow_available' => 'ບà»à»ˆàº¡àºµà»€àº§àºµàºà»‚ຟລທີ່ພ້ອມໄຊ້ງານ', 'objectcheck' => 'àºàº²àº™àºàº§àº”ສອບໂຟລເດີ / ເອàºàº°àºªàº²àº™', 'object_check_critical' => 'ຂà»à»‰àºœàº´àº”ພາດທີ່ສຳຄັນ', @@ -988,6 +1012,7 @@ URL: [url]', ເຈົ້າຂອງໄຫມ່: [new_owner] ຜູ້ໄຊ້: [username] URL: [url]', +'ownership_changed_email_body_html' => '', 'ownership_changed_email_subject' => '[sitename]:[name] - ປ່ຽນເຈົ້າຂອງà»àº¥à»‰àº§', 'password' => 'ລະຫັດຜ່ານ', 'password_already_used' => 'ລະຫັດຜ່ານທີນຳໄຊ້à»àº¥à»‰àº§', @@ -1005,6 +1030,7 @@ URL: [url]', [url_prefix]out/out.ChangePassword.php?hash=[hash] ຖ້າຫາàºà»€àºˆàº»à»‰àº²àºàº±àº‡àº¡àºµàºšàº±àº™àº«àº²à»ƒàº™àºàº²àº™à»€àºŠàº»à»‰àº²àºªàº¹à»‰àº¥àº°àºšàº»àºš, àºàº°àº¥àº¸àº™àº²àº•ິດຕà»à»ˆàº«àº²àºœàº¹à»‰àº”ູà»àº¥àº¥àº°àºšàº»àºšàº‚ອງທ່ານ.', +'password_forgotten_email_body_html' => '', 'password_forgotten_email_subject' => '[sitename]: ລື່ມລະຫັດຜ່ານ', 'password_forgotten_send_hash' => 'ຄຳà»àº™àº°àº™àº³à»ƒàº™àºàº²àº™àº”ຳເນີນàºàº²àº™àº–ືàºàºªàº»à»ˆàº‡à»„ປຫາອີເມວຂອງຜູ້ນຳໄຊ້', 'password_forgotten_text' => 'àºàº°àº¥àº¸àº™àº²àº‚ຽນà»àºšàºšàºŸàº­àº¡àº”້ານລຸ່ມ à»àº¥àº°à»€àº®àº±àº”ຕາມຄຳà»àº™àº°àº™àº³à»ƒàº™àº­àºµà»€àº¡àº§àº—ີໄດ້ສົ່ງຫາເຈົ້າ', @@ -1058,6 +1084,7 @@ URL: [url]', ຜູ້ຮັບ: [recipient] ຜູ້ໄຊ້: [username] URL: [url]', +'receipt_deletion_email_body_html' => '', 'receipt_deletion_email_subject' => '[sitename]:[name] - ຜູ້ຮັບລົບອອàº', 'receipt_log' => 'ເຂົາສູ້ລະບົບ', 'receipt_request_email_body' => 'ຄຳຂà»àºàº²àº™àº•ອບຮັບ @@ -1066,8 +1093,11 @@ URL: [url]', ໂຟລເດີຫຼັàº: [folder_path] ຜູ້ໄຊ້: [username] URL: [url]', +'receipt_request_email_body_html' => '', 'receipt_request_email_subject' => '[sitename]:[name] - ຄຳຕອບຮັບ', 'receipt_status' => 'ສະຖານະ', +'receipt_submit_email_body' => '', +'receipt_submit_email_subject' => '', 'receipt_summary' => 'ສະຫຼູບໃບບິນ', 'receipt_update_failed' => 'àºàº²àº™àºàº­àº¡àº®àº±àºšàºªàº±àº™àºàº²àº™àºšà»à»ˆàºªàº³à»€àº¥àº±àº”', 'recent_uploads' => '', @@ -1087,6 +1117,7 @@ URL: [url]', ເອàºàº°àºªàº²àº™: [document] ຜູ້ໄຊ້: [username] URL: [url]', +'removed_file_email_body_html' => '', 'removed_file_email_subject' => '[sitename]:[document] - àºà»‰àº²àºà»„ຟລທີà»àº™àºšàºšàº­àº­àº', 'removed_recipient' => 'ຖືàºàºà»‰àº²àºàº­àº­àºàºˆàº²àºàº¥àº²àºàºŠàº·à»ˆàºœàº¹à»‰àº®àº±àºš', 'removed_reviewer' => 'ຖືàºàº¥àº»àºšàº­àº­àºàºˆàº²àºàº¥àº²àºàºŠàº·à»ˆàºœàº¹à»‰àºàº§àº”àºàº²à»àº¥à»‰àº§', @@ -1098,6 +1129,7 @@ URL: [url]', ໂຟລເດີຫຼັàº: [folder_path] ຜູ້ໄຊ້: [username] URL: [url]', +'removed_workflow_email_body_html' => '', 'removed_workflow_email_subject' => '[sitename]:[name] - àºà»‰àº²àºàºàº²àº™à»€àº®àº±àº”ວຽຠ(ເວີàºà»‚ຟລ) ອອàºàºˆàº²àºà»€àº§àºµàºŠàº±à»‰àº™àº‚ອງເອàºàº°àºªàº²àº™', 'removeFolderFromDropFolder' => 'àºà»‰àº²àºà»‚ຟລເດີຫຼັງຈາàºàº™àº³àº‚à»à»‰àº¡àº¹àº™à»€àº‚ົ້າ', 'remove_approval_log' => '', @@ -1106,6 +1138,7 @@ URL: [url]', 'repaired' => 'àºàº²àº™àºªà»‰àº­àº¡à»àº›àº‡', 'repairing_objects' => 'àºàº²àº™àºªà»‰àº­àº¡à»àº›àº‡à»€àº­àºàº°àºªàº²àº™à»àº¥àº°à»‚ຟລເດີ', 'replace_content_email_body' => '', +'replace_content_email_body_html' => '', 'replace_content_email_subject' => '', 'request_workflow_action_email_body' => 'ຂັນຕອນàºàº²àº™à»€àº®àº±àº”ວຽàºà»€àº›àº±àº™àºªàº°àº–ານະຂອງàºàº²àº™àº›àº°àº•ິບັດງານຂອງເຈົ້າà»àº¥à»‰àº§ ເອàºàº°àºªàº²àº™: [name] @@ -1115,6 +1148,7 @@ URL: [url]', ໂຟລເດີຫລັàº: [folder_path] ຜູ້ໄຊ້: [username] URL: [url]', +'request_workflow_action_email_body_html' => '', 'request_workflow_action_email_subject' => '[sitename]:[name] - ຂັ້ນຕອນàºàº²àº™àº”ຳເນີນງານ', 'reset_checkout' => 'àºàº²àº™à»€àºŠàº±àºà»„ດ້ສຳເລັດà»àº¥à»‰àº§', 'restrict_access' => 'ບà»à»ˆàº¡àºµàºªàº´àº”ເຂົ້າເຖິງ', @@ -1128,6 +1162,7 @@ URL: [url]', ໂຟລເດີຫຼັàº: [folder_path] ຜູ້ໄຊ້: [username] URL: [url]', +'return_from_subworkflow_email_body_html' => '', 'return_from_subworkflow_email_subject' => '[sitename]:[name] - à¸à¸¥à¸±à¸šà¸¡à¸²à¸ˆà¸²à¸à¹€à¸§à¸´à¸£à¹Œà¸à¹‚ฟลว์ย่อย', 'reverse_links' => 'ເອàºàº°àºªàº²àº™àº—ີ່ລິ້ງໄປàºàº±àº‡à»€àº­àºàº°àºªàº²àº™àº›àº°àºˆàº¸àºšàº±àº™', 'reviewers' => 'ສະà»àº”ງຄວາມຄິດເຫັນ', @@ -1148,6 +1183,7 @@ URL: [url]', ໂຟລເດີຫຼັàº: [folder_path] ຜູ້ໄຊ້: [username] URL: [url]', +'review_deletion_email_body_html' => '', 'review_deletion_email_subject' => '[sitename]:[name] - ຄຳຂà»à»„ດ້ຖືàºàº¥àº»àºš', 'review_file' => 'ໄຟລ', 'review_group' => 'àºàº¸à»ˆàº¡àº•ົວຢ່າງ', @@ -1159,6 +1195,7 @@ URL: [url]', ໂຟລເດີຫຼັàº: [folder_path] ຜູ້ໄຊ້: [username] URL: [url]', +'review_request_email_body_html' => '', 'review_request_email_subject' => '[sitename]:[name] - àºàº§àº”ສອບຄຳຂà»', 'review_status' => 'ສະຖານະບົບວິຈານ', 'review_submit_email' => 'ສົ່ງຄວາມຄິດເຫັນ', @@ -1170,6 +1207,7 @@ URL: [url]', ໂຟລເດີຫຼັàº: [folder_path] ຜູ້ໄຊ້: [username] URL: [url]', +'review_submit_email_body_html' => '', 'review_submit_email_subject' => '[sitename]:[name] - ສົ່ງຄຳເຫັນ', 'review_summary' => 'ສະຫຼຸບàºàº²àº™àºàº§àº”ຄືນ', 'review_update_failed' => 'ເàºàºµàº”ຂà»à»‰àºœàº´àº”ພາດໃນàºàº²àº™àº­àº±àºšà»€àº”ດສະຖານະຄຳເຫັນໄດ້ລົ້ມເຫຼວ', @@ -1194,9 +1232,11 @@ URL: [url]', ໂຟລເດີຫຼັàº: [folder_path] ຜູ້ໄຊ້: [username] URL: [url]', +'revision_request_email_body_html' => '', 'revision_request_email_subject' => '[sitename]:[name] - ຄຳຂà»à»àºà»‰à»„ຂ', 'revision_status' => 'ສະຖານະ', 'revision_submit_email_body' => '', +'revision_submit_email_body_html' => '', 'revision_submit_email_subject' => '', 'revision_summary' => '', 'revisors' => 'ຜູ້ປະສານງານ', @@ -1210,6 +1250,7 @@ URL: [url]', ໂຟລເດີຫຼັàº: [folder_path] ຜູ້ໄຊ້: [username] URL: [url]', +'rewind_workflow_email_body_html' => '', 'rewind_workflow_email_subject' => '[sitename]:[name] - ເວີàºà»‚ຟລຖືàºàºà»‰àº­àº™àºàº±àºš', 'rewind_workflow_warning' => 'ຖ້າເຈົ້າàºà»‰àº­àº™àºàº±àºšà»€àº§àºµàºà»‚ຟລໄປàºàº±àº‡àºªàº°àº–ານະເລີ່ມຕົ້ນລະບົບລະລົບບັນທືàºàº‡àº²àº™à»€àº§àºµàºà»‚ຟລທັງà»àº»àº”ສຳລັບເອàºàº°àºªàº²àº™àº™àºµà»‰à»àº¥àº°àºšà»à»ˆàºªàº²àº¡àº²àº”àºàº¹à»‰àº„ືນໄດ້', 'rm_attrdef' => 'ລົບເນື້ອໃນຂອງà»àº­àº±àº”ທີບິວ', @@ -1252,6 +1293,7 @@ URL: [url]', ໂຟລເດີຫຼັàº: [folder_path] ຜູ້ໄຊ້: [username] URL: [url]', +'run_subworkflow_email_body_html' => '', 'run_subworkflow_email_subject' => '[sitename]:[name] - ໄດ້ເລີ່ມເຮັດວຽàºàºà»ˆàº­àºà»† à»àº¥à»‰àº§', 'ru_RU' => 'ລັດເຊàº', 'saturday' => 'ວັນເສົາ', @@ -1948,6 +1990,7 @@ URL: [url]', ໂຟລເດີຫຼັàº: [folder_path] ຜູ້ໄຊ້: [username] URL: [url]', +'transition_triggered_email_body_html' => '', 'transition_triggered_email_subject' => '[sitename]:[name] - ປ່ຽນàºàº°àºšà»ˆàº§àº™àºàº²àº™à»€àº®àº±àº”ວຽàº', 'transmittal' => 'àºàº²àº™àºªàº»à»ˆàº‡', 'transmittalitem_removed' => 'ລົບລາàºàºàº²àº™àº—ີ່ສົງຜ່ານໄປà»àº¥à»‰àº§', @@ -2029,6 +2072,7 @@ URL: [url]', ໂຟລເດີຫຼັàº: [folder_path] ຜູ້ໄຊ້: [username] URL: [url]', +'version_deleted_email_body_html' => '', 'version_deleted_email_subject' => '[sitename]:[name] - ເວີຊັ້ນທີຖືàºàº¥àº»àºš', 'version_info' => 'ຂà»à»‰àº¡àº¹àº™à»€àº§àºµàºŠàº±àº™', 'view' => 'ດູ', diff --git a/languages/nb_NO/lang.inc b/languages/nb_NO/lang.inc index 4c2b7a3d9..25a2be34e 100644 --- a/languages/nb_NO/lang.inc +++ b/languages/nb_NO/lang.inc @@ -50,6 +50,7 @@ Dokument: [name] Overordnet katalog: [folder_path] Bruker: [username] URL: [url]', +'access_permission_changed_email_body_html' => '', 'access_permission_changed_email_subject' => '[sitename]: [name] - Rettigheter endret', 'according_settings' => 'I henhold til innstillinger', 'action' => 'Handling', @@ -117,6 +118,7 @@ Versjon: [version] Overordnet mappe: [folder_path] Bruker: [username] URL: [url]', +'approval_deletion_email_body_html' => '', 'approval_deletion_email_subject' => '[sitename]: [name] - Godkjenningsforespørsel slettet', 'approval_file' => 'Fil', 'approval_group' => 'Godkjenningsgruppe', @@ -139,6 +141,7 @@ Status: [status] Kommentar: [comment] Bruker: [username] URL: [url]', +'approval_submit_email_body_html' => '', 'approval_submit_email_subject' => '[sitename]: [name] - Sendt godkjenning', 'approval_summary' => 'Godkjennings oppsummering', 'approval_update_failed' => 'Feil ved oppdatering av godkjennings-status. Status oppdatertes ikke.', @@ -200,6 +203,7 @@ Ny verdi: [attribute_new_value] Overordnet mappe: [folder_path] Bruker: [username] URL: [url]', +'attribute_changed_email_body_html' => '', 'attribute_changed_email_subject' => '[sitename]: [name] - Endret egenskap', 'attribute_count' => 'Antall egenskaper', 'attribute_value' => 'Antall bruksomrÃ¥der', @@ -398,6 +402,7 @@ Ny verdi: [attribute_new_value] Overordnet mappe: [folder_path] Bruker: [username] URL: [url]', +'document_attribute_changed_email_body_html' => '', 'document_attribute_changed_email_subject' => '[sitename]: [name] - Egenskaper forandret', 'document_comment_changed_email' => 'Kommentar endret', 'document_comment_changed_email_body' => 'Kommentar endret @@ -407,6 +412,7 @@ Ny kommentar: [new_comment] Overordnet mappe: [folder_path] Bruker: [username] URL: [url]', +'document_comment_changed_email_body_html' => '', 'document_comment_changed_email_subject' => '[sitename]: [name] - Kommentar endret', 'document_content_missing' => '', 'document_count' => 'Antall dokumenter', @@ -416,6 +422,7 @@ URL: [url]', Dokument: [name] Overordnet mappe: [folder_path] Bruker: [username]', +'document_deleted_email_body_html' => '', 'document_deleted_email_subject' => '[sitename]: [name] - Dokumentet er slettet', 'document_duplicate_name' => 'Dupliser dokumentnavn', 'document_files' => '', @@ -435,6 +442,7 @@ Gammel mappe: [old_folder_path] Ny mappe: [new_folder_path] Bruker: [username] URL: [url]', +'document_moved_email_body_html' => '', 'document_moved_email_subject' => '[sitename]: [name] - Dokumentet er flyttet', 'document_not_checkedout' => 'Dokumentet er ikke utsjekket.', 'document_renamed_email' => 'Dokumentet har byttet navn.', @@ -444,6 +452,7 @@ Overordnet mappe: [folder_path] Gammelt navn: [old_name] Bruker: [username] URL: [url]', +'document_renamed_email_body_html' => '', 'document_renamed_email_subject' => '[sitename]: [name] - Dokumentet fikk nytt navn', 'document_status_changed_email' => 'Dokument status endret', 'document_status_changed_email_body' => 'Dokument status endret @@ -452,6 +461,7 @@ Status: [status] Overordnet mappe: [folder_path] Bruker: [username] URL: [url]', +'document_status_changed_email_body_html' => '', 'document_status_changed_email_subject' => '[sitename]: [name] - Dokumentet status er endret', 'document_title' => 'Dokument \'[documentname]\'', 'document_transfered_email_body' => 'Dokumentet er overført til en annen bruker @@ -460,6 +470,7 @@ Ny bruker: [newuser] Overordnet mappe: [folder_path] Bruker: [username] URL: [url]', +'document_transfered_email_body_html' => '', 'document_transfered_email_subject' => '[sitename]: [name] - Flyttet dokument', 'document_updated_email' => 'Dokumentet er oppdatert', 'document_updated_email_body' => 'Dokumentet er oppdatert @@ -469,6 +480,7 @@ Bruker: [username] Kommentarer: [comment] Versjons kommentarer: [version_comment] URL: [url]', +'document_updated_email_body_html' => '', 'document_updated_email_subject' => '[sitename]: [name] - Dokumentet er oppdatert', 'document_versions' => '', 'does_not_expire' => 'Løper aldri ut', @@ -598,6 +610,7 @@ Dokument: [name] Overordned mappe: [folder_path] Bruker: [username] URL: [url]', +'expiry_changed_email_body_html' => '', 'expiry_changed_email_subject' => '[sitename]: [name] - Utløpsdato endret', 'export' => 'Eksport', 'export_user_list_csv' => '', @@ -637,6 +650,7 @@ Ny verdi: [attribute_new_value] Overordned mappe: [folder_path] Bruker: [username] URL: [url]', +'folder_attribute_changed_email_body_html' => '', 'folder_attribute_changed_email_subject' => '[sitename]: [name] - Egenskap endret', 'folder_comment_changed_email' => 'Kommentar er endret', 'folder_comment_changed_email_body' => 'Kommentar er endret @@ -646,6 +660,7 @@ Ny kommentar: [new_comment] Overordned mappe: [folder_path] Bruker: [username] URL: [url]', +'folder_comment_changed_email_body_html' => '', 'folder_comment_changed_email_subject' => '[sitename]: [name] - Kommentar er endret', 'folder_contents' => 'Mappe innhold', 'folder_deleted_email' => 'Mappen er slettet', @@ -654,6 +669,7 @@ Mappe: [name] Overordned mappe: [folder_path] Bruker: [username] URL: [url]', +'folder_deleted_email_body_html' => '', 'folder_deleted_email_subject' => '[sitename]: [name] - Mappen er slettet', 'folder_infos' => 'Mappe informasjon', 'folder_moved_email' => 'Mappen er flyttet', @@ -663,6 +679,7 @@ Tidigare mappe: [old_folder_path] Ny mappe: [new_folder_path] Bruker: [username] URL: [url]', +'folder_moved_email_body_html' => '', 'folder_moved_email_subject' => '[sitename]: [name] - Mappen er flyttet', 'folder_renamed_email' => 'Mappen har byttet navn', 'folder_renamed_email_body' => 'Mappen har byttet navn @@ -671,6 +688,7 @@ Overordned mappe: [folder_path] Tidigare mappe: [old_name] Bruker: [username] URL: [url]', +'folder_renamed_email_body_html' => '', 'folder_renamed_email_subject' => '[sitename]: [name] - Mappen har byttet navn', 'folder_title' => 'Mappe \'[foldername]\'', 'foot_note' => 'Fotnote', @@ -914,6 +932,7 @@ Kommentar: [comment] Versjons kommentar: [version_comment] Bruker: [username] URL: [url]', +'new_document_email_body_html' => '', 'new_document_email_subject' => '[sitename]: [folder_name] - Nytt dokument', 'new_file_email' => 'Nytt bilag', 'new_file_email_body' => 'Nytt bilag @@ -922,6 +941,7 @@ Dokument: [document] Kommentar: [comment] Bruker: [username] URL: [url]', +'new_file_email_body_html' => '', 'new_file_email_subject' => '[sitename]: [document] - Nytt bilag', 'new_folder' => 'Ny mappe', 'new_password' => 'Nytt passord', @@ -932,6 +952,7 @@ Overordnt mappe: [folder_path] Kommentar: [comment] Bruker: [username] URL: [url]', +'new_subfolder_email_body_html' => '', 'new_subfolder_email_subject' => '[sitename]: [name] - Ny mappe', 'new_user_image' => 'Nytt bilde', 'next_revision_abbr' => 'Neste rev.', @@ -945,6 +966,7 @@ Navn: [name] Overordnt mappe: [folder_path] Bruker: [username] URL: [url]', +'notify_added_email_body_html' => '', 'notify_added_email_subject' => '[sitename]: [name] - Lagt til varslingsliste', 'notify_deleted_email' => 'Du har blitt fjernet fra varslingslisten', 'notify_deleted_email_body' => 'Fjernet fra varslingslisten @@ -952,6 +974,7 @@ Navn: [name] Overordnt mappe: [folder_path] Bruker: [username] URL: [url]', +'notify_deleted_email_body_html' => '', 'notify_deleted_email_subject' => '[sitename]: [name] - Fjernet fra varslingslisten', 'not_subscribed' => '', 'november' => 'November', @@ -988,6 +1011,7 @@ URL: [url]', 'no_user_image' => 'Ingen bilder funnet', 'no_version_check' => 'Kontrollen av en ny versjon av SeedDMS mislyktes! Dette kan være forÃ¥rsaket av at allow_url_fopen er satt til 0 i php-konfigurasjonen.', 'no_version_modification' => 'Ingen versjonsendring', +'no_workflows' => '', 'no_workflow_available' => 'Ingen arbeidsflyt tilgjengelig', 'objectcheck' => 'Mappe/dokument sjekk', 'object_check_critical' => 'Kritisk feil!!', @@ -1009,6 +1033,7 @@ Tidigere eier: [old_owner] Ny eier: [new_owner] Bruker: [username] URL: [url]', +'ownership_changed_email_body_html' => '', 'ownership_changed_email_subject' => '[sitename]: [name] - Eier endret', 'password' => 'Passord', 'password_already_used' => 'Passord allerede brukt', @@ -1020,6 +1045,7 @@ URL: [url]', 'password_forgotten_email_body' => 'Kjære bruker av SeedDMS. Vi har mottatt en forespørsel om Ã¥ endre passordet ditt. Dette kan gjøres ved Ã¥ klikke pÃ¥ følgende lenke: [url_prefix]out/out.ChangePassword.php?hash=[hash] Om du fortsatt har problemer med innloggingen, kontakt admin.', +'password_forgotten_email_body_html' => '', 'password_forgotten_email_subject' => '[sitename]: Glemt passord?', 'password_forgotten_send_hash' => 'Instruksjoner om hvordan du gÃ¥r frem er sendt til din oppgitte e-postadresse.', 'password_forgotten_text' => 'Fyll ut skjemaet nedenfor og følg instruksjonene i e-posten, som vil bli sendt til deg.', @@ -1073,6 +1099,7 @@ Overordnet mappe: [folder_path] Mottaker: [recipient] Bruker: [username] URL: [url]', +'receipt_deletion_email_body_html' => '', 'receipt_deletion_email_subject' => '[sitename]: [name] - Mottaker fjernet', 'receipt_log' => 'Mottaksdagbok', 'receipt_request_email_body' => 'Mottak forespørsel @@ -1081,8 +1108,11 @@ Versjon: [version] Overordnet mappe: [folder_path] Bruker: [username] URL: [url]', +'receipt_request_email_body_html' => '', 'receipt_request_email_subject' => '[sitename]: [name] - Mottak forespørsel', 'receipt_status' => 'Status', +'receipt_submit_email_body' => '', +'receipt_submit_email_subject' => '', 'receipt_summary' => 'Kvitteringssammendrag', 'receipt_update_failed' => 'Bekreftelse av mottak mislyktes', 'recent_uploads' => 'Nylige opplastinger', @@ -1102,6 +1132,7 @@ URL: [url]', Dokument: [document] Bruker: [username] URL: [url]', +'removed_file_email_body_html' => '', 'removed_file_email_subject' => '[sitename]: [document] - Fjernet bilag', 'removed_recipient' => 'er fjernet fra listen over mottakere.', 'removed_reviewer' => 'er fjernet fra listen over korrekturleser.', @@ -1113,6 +1144,7 @@ Arbeidsflyt: [workflow] Overordnet mappe: [folder_path] Bruker: [username] URL: [url]', +'removed_workflow_email_body_html' => '', 'removed_workflow_email_subject' => '[sitename]: [name] - Fjernet arbeidsflyt fra dokumentversjonen', 'removeFolderFromDropFolder' => 'Fjern mappe etter import', 'remove_approval_log' => '', @@ -1121,6 +1153,7 @@ URL: [url]', 'repaired' => 'reparert', 'repairing_objects' => 'Reparere dokumenter og mapper.', 'replace_content_email_body' => '', +'replace_content_email_body_html' => '', 'replace_content_email_subject' => '', 'request_workflow_action_email_body' => 'Arbeidsflyten har nÃ¥dd en tilstand som krever handling. Dokument: [name] @@ -1130,6 +1163,7 @@ NÃ¥værende status: [current_state] Overordnet mappe: [folder_path] Bruker: [username] URL: [url]', +'request_workflow_action_email_body_html' => '', 'request_workflow_action_email_subject' => '[sitename]: [name] - Arbeidsflythandling kreves', 'reset_checkout' => 'Fullfør utsjekk', 'restrict_access' => 'Ingen tilgang til', @@ -1143,6 +1177,7 @@ Underliggande Arbeidsflyt: [subworkflow] Overordnet mappe: [folder_path] Bruker: [username] URL: [url]', +'return_from_subworkflow_email_body_html' => '', 'return_from_subworkflow_email_subject' => '[sitename]: [name] - Tilbake fra underliggende arbeidsflyt', 'reverse_links' => 'Dokumenter som har en lenke til det gjeldende dokumentet', 'reviewers' => 'Korrekturlesere', @@ -1163,6 +1198,7 @@ Versjon: [version] Overordnet mappe: [folder_path] Bruker: [username] URL: [url]', +'review_deletion_email_body_html' => '', 'review_deletion_email_subject' => '[sitename]: [name] - Korrektur forespørsel slettet', 'review_file' => 'Fil', 'review_group' => 'Korrekturgruppe', @@ -1174,6 +1210,7 @@ Versjon: [version] Overordnet mappe: [folder_path] Bruker: [username] URL: [url]', +'review_request_email_body_html' => '', 'review_request_email_subject' => '[sitename]: [name] - Korrektur forespørsel', 'review_status' => 'Status for korrektur', 'review_submit_email' => 'Sendt korrektur', @@ -1185,6 +1222,7 @@ Kommentar: [comment] Overordnet mappe: [folder_path] Bruker: [username] URL: [url]', +'review_submit_email_body_html' => '', 'review_submit_email_subject' => '[sitename]: [name] - Sendt korrektur', 'review_summary' => 'Sammendrag av korrektur', 'review_update_failed' => 'Feil ved oppdatering av korrekturstatus. Oppdatering mislyktes.', @@ -1209,9 +1247,11 @@ Versjon: [version] Overordnet mappe: [folder_path] Bruker: [username] URL: [url]', +'revision_request_email_body_html' => '', 'revision_request_email_subject' => '[sitename]: [name] - Korrektur forespørsel', 'revision_status' => 'Status', 'revision_submit_email_body' => 'Revisjon av sendt e-post emne', +'revision_submit_email_body_html' => '', 'revision_submit_email_subject' => '[sitename]: [name] - Revisjon av sendt e-post emne', 'revision_summary' => 'Korrektur sammendrag', 'revisors' => 'Korrekturlesere', @@ -1225,6 +1265,7 @@ Workflow: [workflow] Overordnet mappe: [folder_path] Bruker: [username] URL: [url]', +'rewind_workflow_email_body_html' => '', 'rewind_workflow_email_subject' => '[sitename]: [name] - Arbeidsflyten ble spolet tilbake', 'rewind_workflow_warning' => 'Hvis du spoler tilbake en arbeidsflyt til den opprinnelige tilstanden, blir hele arbeidsflytloggen for dette dokumentet slettet og kan ikke gjenopprettes.', 'rm_attrdef' => 'Fjern egenskapsdefinisjon', @@ -1267,6 +1308,7 @@ Underliggende arbeidsflyt: [subworkflow] Overordnet mappe: [folder_path] Bruker: [username] URL: [url]', +'run_subworkflow_email_body_html' => '', 'run_subworkflow_email_subject' => '[sitename]: [name] - Underarbeid ble startet', 'ru_RU' => 'Russisk', 'saturday' => 'Lørdag', @@ -1961,6 +2003,7 @@ NÃ¥værende status: [current_state] Overordnet mappe: [folder_path] Bruker: [username] URL: [url]', +'transition_triggered_email_body_html' => '', 'transition_triggered_email_subject' => '[sitename]: [name] - Arbeidsflytovergang utløst', 'transmittal' => 'Overføring', 'transmittalitem_removed' => 'Overførings element fjernet', @@ -2042,6 +2085,7 @@ Versjon: [version] Overordnet mappe: [folder_path] Bruker: [username] URL: [url]', +'version_deleted_email_body_html' => '', 'version_deleted_email_subject' => '[sitename]: [name] - Versjon slettet', 'version_info' => 'Versjons informasjon', 'view' => 'Vis', diff --git a/languages/nl_NL/lang.inc b/languages/nl_NL/lang.inc index 22ac527e3..f53363bba 100644 --- a/languages/nl_NL/lang.inc +++ b/languages/nl_NL/lang.inc @@ -50,6 +50,7 @@ Document: [name] Parent folder: [folder_path] User: [username] URL: [url]', +'access_permission_changed_email_body_html' => '', 'access_permission_changed_email_subject' => '[sitename]: [name] - Toestemming gewijzigd', 'according_settings' => 'volgens instellingen', 'action' => 'Actie', @@ -117,6 +118,7 @@ Version: [version] Parent folder: [folder_path] User: [username] URL: [url]', +'approval_deletion_email_body_html' => '', 'approval_deletion_email_subject' => '[sitename]: [name] - Verzoek om goedkeuring verwijderd', 'approval_file' => 'Goedkeuring bestand', 'approval_group' => 'Goedkeuring Groep', @@ -132,6 +134,7 @@ URL: [url]', 'approval_status' => 'Goedkeuring Status', 'approval_submit_email' => 'Goedkeuringings-email versturen', 'approval_submit_email_body' => 'Goedkeuringings-email versturen', +'approval_submit_email_body_html' => '', 'approval_submit_email_subject' => '[sitename]: [name] - Uitgevoerde [Goedkeuring]', 'approval_summary' => 'Goedkeuring Samenvatting', 'approval_update_failed' => 'Fout bij bijwerken Goedkeuring status. Bijwerken mislukt.', @@ -193,6 +196,7 @@ New value: [attribute_new_value] Bovenliggende map: [folder_path] Gebruiker: [username] URL: [url]', +'attribute_changed_email_body_html' => '', 'attribute_changed_email_subject' => '[sitename]: [name] - Attribuut gewijzigd', 'attribute_count' => 'Aantal maal gebruikt', 'attribute_value' => 'Waarde van het attribuut', @@ -391,6 +395,7 @@ New value: [attribute_new_value] Parent folder: [folder_path] User: [username] URL: [url]', +'document_attribute_changed_email_body_html' => '', 'document_attribute_changed_email_subject' => '[sitename]: [name] - Attribute changed', 'document_comment_changed_email' => 'Commentaar gewijzigd', 'document_comment_changed_email_body' => 'Commentaar gewijzigd @@ -400,6 +405,7 @@ Commentaar: [new_comment] Bovenliggende map: [folder_path] Gebruiker: [username] URL: [url]', +'document_comment_changed_email_body_html' => '', 'document_comment_changed_email_subject' => '[sitename]: [name] - Commentaar gewijzigd', 'document_content_missing' => 'Inhoud document ontbreekt', 'document_count' => 'Aantal documenten', @@ -409,6 +415,7 @@ URL: [url]', Document: [name] Bovenliggende map: [folder_path] Gebruiker: [username]', +'document_deleted_email_body_html' => '', 'document_deleted_email_subject' => '[sitename]: [name] - Document verwijderd', 'document_duplicate_name' => 'Dupliceer documentnaam', 'document_files' => '', @@ -428,6 +435,7 @@ Oude map: [old_folder_path] Nieuwe map: [new_folder_path] Gebruiker: [username] URL: [url]', +'document_moved_email_body_html' => '', 'document_moved_email_subject' => '[sitename]: [name] - Document verplaatst', 'document_not_checkedout' => 'Document niet in behandeling genomen', 'document_renamed_email' => 'Document hernoemd', @@ -437,6 +445,7 @@ Bovenliggende map: [folder_path] Oude naam: [old_name] Gebruiker: [username] URL: [url]', +'document_renamed_email_body_html' => '', 'document_renamed_email_subject' => '[sitename]: [name] - Document hernoemd', 'document_status_changed_email' => 'Document status gewijzigd', 'document_status_changed_email_body' => 'Document status gewijzigd @@ -445,6 +454,7 @@ Status: [status] Bovenliggende map: [folder_path] Gebruiker: [username] URL: [url]', +'document_status_changed_email_body_html' => '', 'document_status_changed_email_subject' => '[sitename]: [name] - Document status gewijzigd', 'document_title' => 'Document \'[documentname]\'', 'document_transfered_email_body' => 'Document transfer to other user @@ -453,6 +463,7 @@ New owner: [newuser] Parent folder: [folder_path] User: [username] URL: [url]', +'document_transfered_email_body_html' => '', 'document_transfered_email_subject' => '[sitename]: [name] - Transfer Document', 'document_updated_email' => 'Document bijgewerkt', 'document_updated_email_body' => 'Document geupdate @@ -462,6 +473,7 @@ Gebruiker: [username] Commentaar: [comment] Commentaar versie: [version_comment] URL: [url]', +'document_updated_email_body_html' => '', 'document_updated_email_subject' => '[sitename]: [name] - Document geüpdated', 'document_versions' => '', 'does_not_expire' => 'Verloopt niet', @@ -591,6 +603,7 @@ Document: [name] Bovenliggende map: [folder_path] Gebruiker: [username] URL: [url]', +'expiry_changed_email_body_html' => '', 'expiry_changed_email_subject' => '[sitename]: [name] - Vervaldatum gewijzigd', 'export' => 'export', 'export_user_list_csv' => 'Exporteer gebruikers in csv-formaat', @@ -630,6 +643,7 @@ New value: [attribute_new_value] Parent folder: [folder_path] User: [username] URL: [url]', +'folder_attribute_changed_email_body_html' => '', 'folder_attribute_changed_email_subject' => '[sitename]: [name] - Attribute changed', 'folder_comment_changed_email' => 'Commentaar gewijzigd', 'folder_comment_changed_email_body' => 'Commentaar gewijzigd @@ -639,6 +653,7 @@ Commentaar: [new_comment] Bovenliggende map: [folder_path] Gebruiker: [username] URL: [url]', +'folder_comment_changed_email_body_html' => '', 'folder_comment_changed_email_subject' => '[sitename]: [name] - Commentaar gewijzigd', 'folder_contents' => 'Map Inhoud', 'folder_deleted_email' => 'Map verwijderd', @@ -647,6 +662,7 @@ Map: [name] Bovenliggende map: [folder_path] Gebruiker: [username] URL: [url]', +'folder_deleted_email_body_html' => '', 'folder_deleted_email_subject' => '[sitename]: [name] - Map verwijderd', 'folder_infos' => 'Map Eigenschappen', 'folder_moved_email' => 'Map verplaatst', @@ -656,6 +672,7 @@ Oude map: [old_folder_path] Nieuwe map: [new_folder_path] Gebruiker: [username] URL: [url]', +'folder_moved_email_body_html' => '', 'folder_moved_email_subject' => '[sitename]: [name] - Map verplaatst', 'folder_renamed_email' => 'Map hernoemd', 'folder_renamed_email_body' => 'Map hernoemd @@ -664,6 +681,7 @@ Bovenliggende map: [folder_path] Oude naam: [old_name] Gebruiker: [username] URL: [url]', +'folder_renamed_email_body_html' => '', 'folder_renamed_email_subject' => '[sitename]: [name] - Folder hernoemd', 'folder_title' => 'Map naam \'[foldername]\'', 'foot_note' => 'Voetnoot', @@ -907,6 +925,7 @@ Commentaar: [comment] Commentaar versie: [version_comment] Gebruikers: [username] URL: [url]', +'new_document_email_body_html' => '', 'new_document_email_subject' => '[sitename]: [folder_name] - Nieuw document', 'new_file_email' => 'Nieuwe bijlage', 'new_file_email_body' => 'Nieuw bestandsnaam: [name] @@ -914,6 +933,7 @@ Document: [document] Commentaar: [comment] Gebruiker: [username] URL: [url]', +'new_file_email_body_html' => '', 'new_file_email_subject' => '[sitename]: [document] - Nieuwe bijlage', 'new_folder' => 'Nieuwe map', 'new_password' => 'Nieuw wachtwoord', @@ -924,6 +944,7 @@ Bovenliggende map: [folder_path] Commentaar: [comment] Gebruikers: [username] URL: [url]', +'new_subfolder_email_body_html' => '', 'new_subfolder_email_subject' => '[sitename]: [name] - Nieuwe map', 'new_user_image' => 'Nieuwe afbeelding', 'next_revision_abbr' => 'Volgende beoord.', @@ -937,6 +958,7 @@ Naam: [name] Bovenliggende map: [folder_path] Gebruikers: [username] URL: [url]', +'notify_added_email_body_html' => '', 'notify_added_email_subject' => '[sitename]: [name] - Toegevoegd aan notificatielijst', 'notify_deleted_email' => 'U bent verwijderd van de [notificatie lijst]', 'notify_deleted_email_body' => 'Verwijderd van notificatielijst @@ -944,6 +966,7 @@ Naam: [name] Bovenliggende map: [folder_path] Gebruiker: [username] URL: [url]', +'notify_deleted_email_body_html' => '', 'notify_deleted_email_subject' => '[sitename]: [name] - Verwijderd van notificatielijst', 'not_subscribed' => '', 'november' => 'november', @@ -980,6 +1003,7 @@ URL: [url]', 'no_user_image' => 'Geen afbeelding(en) gevonden', 'no_version_check' => 'Controle op een nieuwe versie van SeedDMS is mislukt! Dit kan komen omdat allow_url_fopen is ingesteld op 0 in uw PHP configuratie.', 'no_version_modification' => 'Geen versiewijziging', +'no_workflows' => '', 'no_workflow_available' => 'Geen workflow beschikbaar', 'objectcheck' => 'Mappen en documenten controleren', 'object_check_critical' => 'Ernstige fouten', @@ -1001,6 +1025,7 @@ Oude eigenaar: [old_owner] Nieuwe eigenaar: [new_owner] Gebruiker: [username] URL: [url]', +'ownership_changed_email_body_html' => '', 'ownership_changed_email_subject' => '[sitename]: [name] - Eigenaar gewijzigd', 'password' => 'Wachtwoord', 'password_already_used' => 'Wachtwoord al gebruikt', @@ -1018,6 +1043,7 @@ Dit kan uitgevoerd worden door op de volgende koppeling te drukken: [url_prefix]out/out.ChangePassword.php?hash=[hash] Als u nog steed problemen ondervind met het inloggen, neem aub contact op met uw beheerder.', +'password_forgotten_email_body_html' => '', 'password_forgotten_email_subject' => '[sitename]: Wachtwoord vergeten', 'password_forgotten_send_hash' => 'Verdere instructies zijn naar uw gebruikers email adres verstuurd.', 'password_forgotten_text' => 'Vul het formulier hieronder in en volg de instructie in de email, welke naar u verzonden zal worden.', @@ -1072,6 +1098,7 @@ Bovenliggende map: [folder_path] Ontvanger: [recipient] Gebruiker: [username] URL: [url]', +'receipt_deletion_email_body_html' => '', 'receipt_deletion_email_subject' => '[sitename]: [name] - Ontvanger verwijderd', 'receipt_log' => 'Log ontvangst', 'receipt_request_email_body' => 'Verzoek ontvangen @@ -1080,8 +1107,11 @@ Versie: [version] Bovenliggende map: [folder_path] Gebruiker: [username] URL: [url]', +'receipt_request_email_body_html' => '', 'receipt_request_email_subject' => '[sitename]: [name] – Verzoek ontvangen', 'receipt_status' => 'Status ontvangst', +'receipt_submit_email_body' => '', +'receipt_submit_email_subject' => '', 'receipt_summary' => 'Samenvatting', 'receipt_update_failed' => 'Update ontvangst mislukt', 'recent_uploads' => 'Recent Uploads', @@ -1101,6 +1131,7 @@ URL: [url]', Document: [document] Gebruiker: [username] URL: [url]', +'removed_file_email_body_html' => '', 'removed_file_email_subject' => '[sitename]: [document] - Bijlage verwijderd', 'removed_recipient' => 'is verwijderd uit de lijst van ontvangers', 'removed_reviewer' => 'is verwijderd uit de lijst van beoordelaars', @@ -1111,6 +1142,7 @@ Workflow: [workflow] Bovenliggende map: [folder_path] Gebruiker: [username] URL: [url]', +'removed_workflow_email_body_html' => '', 'removed_workflow_email_subject' => '[sitename]: [name] - Workflow verwijderd van document versie', 'removeFolderFromDropFolder' => 'Map verwijderen uit Dropfilder', 'remove_approval_log' => '', @@ -1119,6 +1151,7 @@ URL: [url]', 'repaired' => 'Gerepareerd', 'repairing_objects' => 'Documenten en mappen repareren.', 'replace_content_email_body' => '', +'replace_content_email_body_html' => '', 'replace_content_email_subject' => '', 'request_workflow_action_email_body' => 'De workflow vereist actie van uw kant. Document: [name] @@ -1128,6 +1161,7 @@ Huidige status: [current_state] Bovenliggende map: [folder_path] Gebruiker: [username] URL: [url]', +'request_workflow_action_email_body_html' => '', 'request_workflow_action_email_subject' => '[sitename]: [name] - Workflow – actie vereist', 'reset_checkout' => 'Beëindig het gebruik van het document', 'restrict_access' => 'Toegang beperken', @@ -1141,6 +1175,7 @@ Subworkflow: [subworkflow] Bovenliggende map: [folder_path] Gebruiker: [username] URL: [url]', +'return_from_subworkflow_email_body_html' => '', 'return_from_subworkflow_email_subject' => '[sitename]: [name] - terug van subworkflow', 'reverse_links' => 'Documenten met een koppeling naar het huidige document', 'reviewers' => 'Beoordelaars', @@ -1161,6 +1196,7 @@ Versie: [version] Bovenliggende map: [folder_path] Gebruiker: [username] URL: [url]', +'review_deletion_email_body_html' => '', 'review_deletion_email_subject' => '[sitename]: [name] - Beoordelingsverzoek verwijderd', 'review_file' => 'Bestand', 'review_group' => 'Beoordelaarsgroep', @@ -1172,6 +1208,7 @@ Versie: [version] Bovenliggende map: [folder_path] Gebruiker: [username] URL: [url]', +'review_request_email_body_html' => '', 'review_request_email_subject' => '[sitename]: [name] - Verzoek om beoordeling', 'review_status' => 'Status beoordeling', 'review_submit_email' => 'Uitgevoerde beoordeling', @@ -1182,6 +1219,7 @@ Commentaar: [comment] Bovenliggende map: [folder_path] Gebruiker: [username] URL: [url]', +'review_submit_email_body_html' => '', 'review_submit_email_subject' => '[sitename]: [name] - Beoordeling toegevoegd', 'review_summary' => 'Samenvatting beoordeling', 'review_update_failed' => 'Fout: bijwerken status beoordeling mislukt.', @@ -1206,9 +1244,11 @@ Versie: [version] Bovenliggende map: [folder_path] User: [username] URL: [url]', +'revision_request_email_body_html' => '', 'revision_request_email_subject' => '[sitename]: [name] – Verzoek tot herziening', 'revision_status' => 'Status revisie', 'revision_submit_email_body' => '', +'revision_submit_email_body_html' => '', 'revision_submit_email_subject' => '', 'revision_summary' => 'Revisie samenvatting', 'revisors' => 'Herzieners', @@ -1222,6 +1262,7 @@ Workflow: [workflow] Bovenliggende map: [folder_path] Gebruiker: [username] URL: [url]', +'rewind_workflow_email_body_html' => '', 'rewind_workflow_email_subject' => '[sitename]: [name] - Workflow is teruggezet', 'rewind_workflow_warning' => 'Als u de workflow terugzet naar oorspronkelijke staat, dan wordt de workflow historie voor dit document verwijderd en onherstelbaar.', 'rm_attrdef' => 'Verwijder attribuutdefinitie', @@ -1264,6 +1305,7 @@ Subworkflow: [subworkflow] Bovenliggende map: [folder_path] Gebruikers: [username] URL: [url]', +'run_subworkflow_email_body_html' => '', 'run_subworkflow_email_subject' => '[sitename]: [name] - Subworkflow is gestart', 'ru_RU' => 'Russisch', 'saturday' => 'zaterdag', @@ -1960,6 +2002,7 @@ Huidige status: [current_state] Bovenliggende map: [folder_path] User: [username] URL: [url]', +'transition_triggered_email_body_html' => '', 'transition_triggered_email_subject' => '[sitename]: [name] - Workflow overgang geactiveerd', 'transmittal' => 'Verzending', 'transmittalitem_removed' => 'Verzonden item verwijderd', @@ -2041,6 +2084,7 @@ Version: [version] Parent folder: [folder_path] User: [username] URL: [url]', +'version_deleted_email_body_html' => '', 'version_deleted_email_subject' => '[sitename]: [name] - Versie verwijderd', 'version_info' => 'Versie-informatie', 'view' => 'Bekijk', diff --git a/languages/pl_PL/lang.inc b/languages/pl_PL/lang.inc index d04dadc17..addc20a8e 100644 --- a/languages/pl_PL/lang.inc +++ b/languages/pl_PL/lang.inc @@ -50,6 +50,7 @@ Dokument: [name] Folder nadrzÄ™dny: [folder_path] Użytkownik: [username] URL: [url]', +'access_permission_changed_email_body_html' => '', 'access_permission_changed_email_subject' => 'Zmiana uprawnieÅ„', 'according_settings' => 'zgodnie z ustawieniami', 'action' => 'Akcja', @@ -112,6 +113,7 @@ URL: [url]', 'approvals_without_user' => 'Zatwierdzenia bez użytkownika', 'approval_deletion_email' => 'ProÅ›ba o akceptacjÄ™ zostaÅ‚a usuniÄ™ta', 'approval_deletion_email_body' => '', +'approval_deletion_email_body_html' => '', 'approval_deletion_email_subject' => 'Akceptacja', 'approval_file' => 'Zatwierdzenia pliku', 'approval_group' => 'Grupa akceptujÄ…ca', @@ -127,6 +129,7 @@ URL: [url]', 'approval_status' => 'Status akceptacji', 'approval_submit_email' => '', 'approval_submit_email_body' => '', +'approval_submit_email_body_html' => '', 'approval_submit_email_subject' => '[sitename]: [name] - ProÅ›ba o akceptacjÄ™', 'approval_summary' => 'Podsumowanie akceptacji', 'approval_update_failed' => 'Błąd aktualizacji statusu akceptacji. Aktualizacja nie powiodÅ‚a siÄ™.', @@ -188,6 +191,7 @@ New value: [attribute_new_value] Folder nadrzÄ™dny: [folder_path] Użytkownik: [username] URL: [url]', +'attribute_changed_email_body_html' => '', 'attribute_changed_email_subject' => '[sitename]: [name] - Zmiana atrybutu', 'attribute_count' => 'liczba użyć', 'attribute_value' => 'wartość atrybutu', @@ -379,6 +383,7 @@ URL: [url]', 'document_already_checkedout' => 'Dokument zostaÅ‚ już pobrany', 'document_already_locked' => 'Ten dokument jest już zablokowany', 'document_attribute_changed_email_body' => '', +'document_attribute_changed_email_body_html' => '', 'document_attribute_changed_email_subject' => '', 'document_comment_changed_email' => 'Zmiana komentarza', 'document_comment_changed_email_body' => 'Zmodyfikowano komentarz @@ -388,6 +393,7 @@ Komentarz: [new_comment] Folder macierzysty: [folder_path] Użytkownik: [username] URL: [url]', +'document_comment_changed_email_body_html' => '', 'document_comment_changed_email_subject' => '[sitename]: [name] - Zmiana komentarza', 'document_content_missing' => '', 'document_count' => 'Liczba dokumentów', @@ -397,6 +403,7 @@ URL: [url]', Dokument: [name] Folder macierzysty: [folder_path] Użytkownik: [username]', +'document_deleted_email_body_html' => '', 'document_deleted_email_subject' => '[sitename]: [name] - UsuniÄ™cie dokumentu', 'document_duplicate_name' => 'Zduplikowana nazwa dokumentu', 'document_files' => '', @@ -416,6 +423,7 @@ Poprzedni folder: [old_folder_path] Nowy folder: [new_folder_path] Użytkownik: [username] URL: [url]', +'document_moved_email_body_html' => '', 'document_moved_email_subject' => '[sitename]: [name] - Przeniesienie dokumentu', 'document_not_checkedout' => 'Dokument nie jest wyewidencjonowany.', 'document_renamed_email' => 'Nazwa dokumenty zmieniona', @@ -425,6 +433,7 @@ Folder macierzysty: [folder_path] Poprzednia nazwa: [old_name] Użytkownik: [username] URL: [url]', +'document_renamed_email_body_html' => '', 'document_renamed_email_subject' => '[sitename]: [name] - Zmiana nazwy dokumentu', 'document_status_changed_email' => 'Zmieniono status dokumentu', 'document_status_changed_email_body' => 'Status dokumentu zmieniÅ‚ siÄ™ @@ -433,9 +442,11 @@ Status: [status] Folder macierzysty: [folder_path] Użytkownik: [username] URL: [url]', +'document_status_changed_email_body_html' => '', 'document_status_changed_email_subject' => '[sitename]: [name] - Zmiana statusu dokumentu', 'document_title' => 'Dokument \'[documentname]\'', 'document_transfered_email_body' => '', +'document_transfered_email_body_html' => '', 'document_transfered_email_subject' => '', 'document_updated_email' => 'Dokument zaktualizowany', 'document_updated_email_body' => 'Document zaktualizowano @@ -445,6 +456,7 @@ Użytkownik: [username] Komentarz: [comment] Komentarz wersji: [version_comment] URL: [url]', +'document_updated_email_body_html' => '', 'document_updated_email_subject' => '[sitename]: [name] - Aktualizacja dokumentu', 'document_versions' => '', 'does_not_expire' => 'Nigdy nie wygasa', @@ -574,6 +586,7 @@ Dokument: [name] Folder nadrzÄ™dny: [folder_path] Użytkownik: [username] URL: [url]', +'expiry_changed_email_body_html' => '', 'expiry_changed_email_subject' => '[sitename]: [name] - Zmiana daty wygaÅ›niÄ™cia', 'export' => 'Export', 'export_user_list_csv' => '', @@ -606,6 +619,7 @@ URL: [url]', 'folders_and_documents_statistic' => 'Podsumowanie zawartoÅ›ci', 'folders_with_notification' => 'Foldery z powiadomieniem', 'folder_attribute_changed_email_body' => '', +'folder_attribute_changed_email_body_html' => '', 'folder_attribute_changed_email_subject' => '', 'folder_comment_changed_email' => 'Zmiana komentarza', 'folder_comment_changed_email_body' => 'Komentarz ulegÅ‚ zmianie @@ -615,6 +629,7 @@ Komentarz: [new_comment] Parent folder: [folder_path] Użytkownik: [username] URL: [url]', +'folder_comment_changed_email_body_html' => '', 'folder_comment_changed_email_subject' => '[sitename]: [name] - Zmiana komentarza', 'folder_contents' => 'Zawartość folderu', 'folder_deleted_email' => 'Folder zostaÅ‚ usuniÄ™ty', @@ -623,6 +638,7 @@ Folder: [name] Folder macierzysty: [folder_path] Użytkownik: [username] URL: [url]', +'folder_deleted_email_body_html' => '', 'folder_deleted_email_subject' => '[sitename]: [name] - UsuniÄ™cie folderu', 'folder_infos' => 'Informacje o folderze', 'folder_moved_email' => 'Przeniesiony folder', @@ -632,6 +648,7 @@ Poprzedni folder: [old_folder_path] Nowy folder: [new_folder_path] Użytkownik: [username] URL: [url]', +'folder_moved_email_body_html' => '', 'folder_moved_email_subject' => '[sitename]: [name] - Przeniesienie folderu', 'folder_renamed_email' => 'Zmieniona nazwa folderu', 'folder_renamed_email_body' => 'Nazwa folderu ulegÅ‚a zmianie @@ -640,6 +657,7 @@ Folder macierzysty: [folder_path] Poprzednia nazwa: [old_name] Użytkownik: [username] URL: [url]', +'folder_renamed_email_body_html' => '', 'folder_renamed_email_subject' => '[sitename]: [name] - Zmiana nazwy folderu', 'folder_title' => 'Folder \'[foldername]\'', 'foot_note' => '', @@ -883,6 +901,7 @@ Komentarz: [comment] Komentarz wersji: [version_comment] Użytkownik: [username] URL: [url]', +'new_document_email_body_html' => '', 'new_document_email_subject' => '[sitename]: [folder_name] - Nowy dokument', 'new_file_email' => 'Nowy załącznik', 'new_file_email_body' => 'Nowy załącznik @@ -891,6 +910,7 @@ Dokument: [document] Komentarz: [comment] Użytkownik: [username] URL: [url]', +'new_file_email_body_html' => '', 'new_file_email_subject' => '[sitename]: [document] - Nowy załącznik', 'new_folder' => 'Nowy folder', 'new_password' => 'Nowe hasÅ‚o', @@ -901,6 +921,7 @@ Folder nadrzÄ™dny: [folder_path] Komentarz: [comment] Użytkownik: [username] URL: [url]', +'new_subfolder_email_body_html' => '', 'new_subfolder_email_subject' => '[sitename]: [name] - Nowy folder', 'new_user_image' => 'Nowy obraz', 'next_revision_abbr' => 'NastÄ™pna wersja', @@ -914,6 +935,7 @@ Nazwa: [name] Folder nadrzÄ™dny: [folder_path] Użytkownik: [username] URL: [url]', +'notify_added_email_body_html' => '', 'notify_added_email_subject' => '[sitename]: [name] - Dodano do listy powiadomieÅ„', 'notify_deleted_email' => 'Twoje konto zostaÅ‚o usuniÄ™te z listy powiadomieÅ„', 'notify_deleted_email_body' => 'UsuniÄ™cie z listy powiadomieÅ„ @@ -921,6 +943,7 @@ Nazwa: [name] Folder nadrzÄ™dny: [folder_path] Użytkownik: [username] URL: [url]', +'notify_deleted_email_body_html' => '', 'notify_deleted_email_subject' => '[sitename]: [name] - UsuniÄ™to z listy powiadomieÅ„', 'not_subscribed' => '', 'november' => 'Listopad', @@ -957,6 +980,7 @@ URL: [url]', 'no_user_image' => 'Nie znaleziono obrazu', 'no_version_check' => 'Poszukiwanie nowej wersji DeedDMS nie powiodÅ‚o siÄ™! To może być spowodowane ustawieniem opcji \'allow_url_fopen = 0\' w twojej konfiguracji PHP.', 'no_version_modification' => 'Bez modyfikacji wersji', +'no_workflows' => '', 'no_workflow_available' => 'Brak przepÅ‚ywu pracy', 'objectcheck' => 'Sprawdź Katalog/Dokument', 'object_check_critical' => 'Błędy krytyczne', @@ -978,6 +1002,7 @@ Poprzedni wÅ‚aÅ›ciciel: [old_owner] Nowy wÅ‚aÅ›ciciel: [new_owner] Użytkownik: [username] URL: [url]', +'ownership_changed_email_body_html' => '', 'ownership_changed_email_subject' => '[sitename]: [name] - Zmiana wÅ‚aÅ›ciciela', 'password' => 'HasÅ‚o', 'password_already_used' => 'HasÅ‚o jest aktualnie używane', @@ -995,6 +1020,7 @@ Możesz tego dokonać poprzez klikniÄ™cie nastÄ™pujÄ…cego linku: [url_prefix]out/out.ChangePassword.php?hash=[hash] JeÅ›li nadal bÄ™dÄ… problemy z zalogowaniem, prosimy o kontakt z administratorem.', +'password_forgotten_email_body_html' => '', 'password_forgotten_email_subject' => '[sitename]: Zapomniane hasÅ‚o', 'password_forgotten_send_hash' => 'Instrukcje dotyczÄ…ce zmiany hasÅ‚a zostaÅ‚y wysÅ‚ane na adres email użytkownika.', 'password_forgotten_text' => 'WypeÅ‚nij pola poniżej i postÄ™puj wg instrukcji z emaila, który zostanie do Ciebie wysÅ‚any.', @@ -1042,11 +1068,15 @@ JeÅ›li nadal bÄ™dÄ… problemy z zalogowaniem, prosimy o kontakt z administratorem 'receipts_without_group' => 'Potwierdzenie bez grupy', 'receipts_without_user' => 'Potwierdzenie bez użytkownika', 'receipt_deletion_email_body' => '', +'receipt_deletion_email_body_html' => '', 'receipt_deletion_email_subject' => '', 'receipt_log' => 'Log potwierdzenia', 'receipt_request_email_body' => '', +'receipt_request_email_body_html' => '', 'receipt_request_email_subject' => 'Potwierdzenie', 'receipt_status' => 'Status odbioru', +'receipt_submit_email_body' => '', +'receipt_submit_email_subject' => '', 'receipt_summary' => 'Podsumowanie odbioru', 'receipt_update_failed' => 'Potwierdzenie odbioru nie powiodÅ‚o siÄ™', 'recent_uploads' => 'Najnowsze dodania', @@ -1066,6 +1096,7 @@ JeÅ›li nadal bÄ™dÄ… problemy z zalogowaniem, prosimy o kontakt z administratorem Dokument: [document] Użytkownik: [username] URL: [url]', +'removed_file_email_body_html' => '', 'removed_file_email_subject' => '[sitename]: [document] - UsuniÄ™ty załącznik', 'removed_recipient' => 'zostaÅ‚ usuniÄ™ty z listy odbiorców.', 'removed_reviewer' => 'zostaÅ‚ usuniÄ™ty z listy recenzentów.', @@ -1077,6 +1108,7 @@ Proces: [workflow] Folder nadrzÄ™dny: [folder_path] Użytkownik: [username] URL: [url]', +'removed_workflow_email_body_html' => '', 'removed_workflow_email_subject' => '[sitename]: [name] - UsuniÄ™ty workflow z wersji dokumentu', 'removeFolderFromDropFolder' => 'UsuÅ„ folder po imporcie', 'remove_approval_log' => '', @@ -1085,14 +1117,17 @@ URL: [url]', 'repaired' => 'naprawiony', 'repairing_objects' => 'Naprawa dokumentów i katalogów.', 'replace_content_email_body' => '', +'replace_content_email_body_html' => '', 'replace_content_email_subject' => '', 'request_workflow_action_email_body' => '', +'request_workflow_action_email_body_html' => '', 'request_workflow_action_email_subject' => '', 'reset_checkout' => 'ZakoÅ„cz i sprawdź', 'restrict_access' => 'Brak dostÄ™pu do', 'results_page' => 'Strona z wynikami', 'return_from_subworkflow' => 'Powróć z sub procesu', 'return_from_subworkflow_email_body' => 'Powrót z sub procesu dokumentu: [name] Wersja: [version] Proces: [workflow] Sub proces: [subworkflow] folderu nadrzÄ™dnego: [folder_path] Użytkownik: [username] URL: [url]', +'return_from_subworkflow_email_body_html' => '', 'return_from_subworkflow_email_subject' => '[sitename]: [name] - Powrót z sub procesu', 'reverse_links' => 'Dokument który posiada link do aktualnego dokumentu', 'reviewers' => 'Recenzenci', @@ -1108,16 +1143,19 @@ URL: [url]', 'reviews_without_user' => 'Recenzje bez użytkownika', 'review_deletion_email' => 'ProÅ›ba o recenzjÄ™ usuniÄ™ta', 'review_deletion_email_body' => '', +'review_deletion_email_body_html' => '', 'review_deletion_email_subject' => '', 'review_file' => 'Plik', 'review_group' => 'Grupa recenzentów', 'review_log' => 'Zobacz log', 'review_request_email' => 'ProÅ›ba i recenzjÄ™', 'review_request_email_body' => '', +'review_request_email_body_html' => '', 'review_request_email_subject' => '', 'review_status' => 'Status recensji', 'review_submit_email' => 'ZgÅ‚oszony do recenzji', 'review_submit_email_body' => 'ZgÅ‚oszony do recenzji Dokument: [name] Wersja: [version] Status: [status] Komentarz: [comment] Folder nadrzÄ™dny: [folder_path] Użytkownik: [username] URL: [url]', +'review_submit_email_body_html' => '', 'review_submit_email_subject' => '[sitename]: [name] - Napisano recenzjÄ™', 'review_summary' => 'Podsumowanie opiniowania', 'review_update_failed' => 'Błąd podczas aktualizowania statusu recenzji. Aktualizacja nie powiodÅ‚a siÄ™.', @@ -1137,9 +1175,11 @@ URL: [url]', 'revision_date' => 'Data korekty', 'revision_log' => 'Log korekty', 'revision_request_email_body' => '', +'revision_request_email_body_html' => '', 'revision_request_email_subject' => 'Korekta', 'revision_status' => 'Status korekty', 'revision_submit_email_body' => '', +'revision_submit_email_body_html' => '', 'revision_submit_email_subject' => 'Korekta', 'revision_summary' => 'Zbiorcza korekta', 'revisors' => 'Audytor', @@ -1153,6 +1193,7 @@ Proces: [workflow] Folder nadrzÄ™dny: [folder_path] Użytkownik: [username] URL: [url]', +'rewind_workflow_email_body_html' => '', 'rewind_workflow_email_subject' => '[sitename]: [name] - PrzewiniÄ™to proces', 'rewind_workflow_warning' => 'Jeżeli przewiniesz proces do stanu poczÄ…tkowego, to caÅ‚y log dla tego dokumentu zostanie usuniÄ™ty bezpowrotnie.', 'rm_attrdef' => 'UsuÅ„ definicjÄ™ atrybutu', @@ -1195,6 +1236,7 @@ Pod proces: [subworkflow] Folder nadrzÄ™dny: [folder_path] Użytkownik: [username] URL: [url]', +'run_subworkflow_email_body_html' => '', 'run_subworkflow_email_subject' => '[sitename]: [name] - Podproces rozpoczÄ…Å‚ siÄ™', 'ru_RU' => 'Rosyjski', 'saturday' => 'Sobota', @@ -1891,6 +1933,7 @@ Bieżący status: [current_state] Folder nadrzÄ™dny: [folder_path] Użytkownik: [username] URL: [url]', +'transition_triggered_email_body_html' => '', 'transition_triggered_email_subject' => '[sitename]: [name] - Uruchomiono proces przepÅ‚ywu', 'transmittal' => 'Przekaz', 'transmittalitem_removed' => 'Przedmiot przekazu zostaÅ‚ usuniÄ™ty', @@ -1972,6 +2015,7 @@ Wersja: [version] Folder nadrzÄ™dny: [folder_path] Użytkownik: [username] URL: [url]', +'version_deleted_email_body_html' => '', 'version_deleted_email_subject' => '[sitename]: [name] - UsuniÄ™cie wersji', 'version_info' => 'Informacje o wersji', 'view' => 'Widok', diff --git a/languages/pt_BR/lang.inc b/languages/pt_BR/lang.inc index 5c7054dd8..a42720efb 100644 --- a/languages/pt_BR/lang.inc +++ b/languages/pt_BR/lang.inc @@ -50,6 +50,7 @@ Documento: [name] Pasta mãe: [folder_path] Usuário: [username] URL: [url]', +'access_permission_changed_email_body_html' => '', 'access_permission_changed_email_subject' => '[sitename]: [name] - Permissões modificadas', 'according_settings' => 'configurações de acordo', 'action' => 'Ação', @@ -117,6 +118,7 @@ Versão: [version] Pasta pai: [folder_path] Usuário: [username] URL: [url]', +'approval_deletion_email_body_html' => '', 'approval_deletion_email_subject' => '[sitename]: [name] - Pedido de aprovação eliminado', 'approval_file' => 'Arquivo', 'approval_group' => 'Approval Group', @@ -139,6 +141,7 @@ Estado: [status] Comentário: [comment] Usuário: [username] URL: [url]', +'approval_submit_email_body_html' => '', 'approval_submit_email_subject' => '[sitename]: [name] - Aprovação submetida', 'approval_summary' => 'Resumo de aprovação', 'approval_update_failed' => 'Erro ao atualizar o estado de aprovação. Atualização falhou.', @@ -200,6 +203,7 @@ Novo valor: [attribute_new_value] Pasta mãe: [folder_path] Usuário: [username] URL: [url]', +'attribute_changed_email_body_html' => '', 'attribute_changed_email_subject' => '[sitename]: [name] - Atributo modificado', 'attribute_count' => 'Número de utilizações', 'attribute_value' => 'Valor do atributo', @@ -398,6 +402,7 @@ Novo valor: [attribute_new_value] Pasta mãe: [folder_path] Usuário: [username] URL: [url]', +'document_attribute_changed_email_body_html' => '', 'document_attribute_changed_email_subject' => '[sitename]: [name] - Atributo alterado', 'document_comment_changed_email' => 'Comentário modificado', 'document_comment_changed_email_body' => 'Comentário modificado @@ -407,6 +412,7 @@ Comentário: [new_comment] Pasta mãe: [folder_path] Usuário: [username] URL: [url]', +'document_comment_changed_email_body_html' => '', 'document_comment_changed_email_subject' => '[sitename]: [name] - Comentário modificado', 'document_content_missing' => '', 'document_count' => 'Número de documentos', @@ -416,6 +422,7 @@ URL: [url]', Documento: [name] Pasta mãe: [folder_path] Usuário: [username]', +'document_deleted_email_body_html' => '', 'document_deleted_email_subject' => '[sitename]: [name] - Documento eliminado', 'document_duplicate_name' => 'Duplicar nome do documento', 'document_files' => '', @@ -435,6 +442,7 @@ Pasta antiga: [old_folder_path] Nova pasta: [new_folder_path] Usuário: [username] URL: [url]', +'document_moved_email_body_html' => '', 'document_moved_email_subject' => '[sitename]: [name] - Documento movido', 'document_not_checkedout' => 'O documento não foi retirado', 'document_renamed_email' => 'Documento renomeado', @@ -444,6 +452,7 @@ Pasta pai: [folder_path] Nome antigo: [old_name] Usuário: [username] URL: [url]', +'document_renamed_email_body_html' => '', 'document_renamed_email_subject' => '[sitename]: [name] - Documento renomeado', 'document_status_changed_email' => 'Estado do documento alterado', 'document_status_changed_email_body' => 'Estado do documento alterado @@ -452,6 +461,7 @@ Estado: [status] Pasta mãe: [folder_path] Usuário: [username] URL: [url]', +'document_status_changed_email_body_html' => '', 'document_status_changed_email_subject' => '[sitename]: [name] - Estado do documento modificado', 'document_title' => 'Documento [documentname]', 'document_transfered_email_body' => 'Transferência de documentos para outro usuário @@ -460,6 +470,7 @@ Novo proprietário: [newuser] Pasta mãe: [folder_path] Usuário: [username] URL: [url]', +'document_transfered_email_body_html' => '', 'document_transfered_email_subject' => '[sitename]: [name] - Transferir documento', 'document_updated_email' => 'Documento atualizado', 'document_updated_email_body' => 'Documento atualizado @@ -469,6 +480,7 @@ Usuário: [username] Comentário: [comment] Versão comentário: [version_comment] URL: [url]', +'document_updated_email_body_html' => '', 'document_updated_email_subject' => '[sitename]: [name] - Documento atualizado', 'document_versions' => '', 'does_not_expire' => 'não Expira', @@ -598,6 +610,7 @@ Documento: [name] Pasta mãe: [folder_path] Usuário: [username] URL: [url]', +'expiry_changed_email_body_html' => '', 'expiry_changed_email_subject' => '[sitename]: [name] - Data de validade mudou', 'export' => 'Exportar', 'export_user_list_csv' => '', @@ -637,6 +650,7 @@ Novo valor: [attribute_new_value] Pasta pai: [folder_path] Usuário: [username] URL: [url]', +'folder_attribute_changed_email_body_html' => '', 'folder_attribute_changed_email_subject' => '[sitename]: [name] - Atributo alterado', 'folder_comment_changed_email' => 'Comentário mudou', 'folder_comment_changed_email_body' => 'Comentário mudou @@ -646,6 +660,7 @@ Comentário: [new_comment] Pasta mãe: [folder_path] Usuário: [username] URL: [url]', +'folder_comment_changed_email_body_html' => '', 'folder_comment_changed_email_subject' => '[sitename]: [name] - Comentário mudou', 'folder_contents' => 'Conteúdo da Pasta', 'folder_deleted_email' => 'Pasta eliminada', @@ -654,6 +669,7 @@ Pasta: [name] Pasta mãe: [folder_path] Usuário: [username] URL: [url]', +'folder_deleted_email_body_html' => '', 'folder_deleted_email_subject' => '[sitename]: [name] - Pasta eliminada', 'folder_infos' => 'Informações', 'folder_moved_email' => 'Pasta movida', @@ -663,6 +679,7 @@ Pasta anterior: [old_folder_path] Nova pasta: [new_folder_path] Usuário: [username] URL: [url]', +'folder_moved_email_body_html' => '', 'folder_moved_email_subject' => '[sitename]: [name] - Pasta movida', 'folder_renamed_email' => 'Pasta renomeada', 'folder_renamed_email_body' => 'Pasta renomeada @@ -671,6 +688,7 @@ Pasta mãe: [folder_path] Nome antigo: [old_name] Usuário: [username] URL: [url]', +'folder_renamed_email_body_html' => '', 'folder_renamed_email_subject' => '[sitename]: [name] - Pasta renomeada', 'folder_title' => 'Pasta [foldername]', 'foot_note' => '', @@ -914,6 +932,7 @@ Comentário: [comment] Versão comentário: [version_comment] Usuário: [username] URL: [url]', +'new_document_email_body_html' => '', 'new_document_email_subject' => '[sitename]: [folder_name] - Novo documento', 'new_file_email' => 'Novo anexo', 'new_file_email_body' => 'Nova Nome de anexo: [name] @@ -921,6 +940,7 @@ Documento: [document] Comentário: [comment] Usuário: [username] URL: [url]', +'new_file_email_body_html' => '', 'new_file_email_subject' => '[sitename]: [document] - Novo anexo', 'new_folder' => 'Nova pasta', 'new_password' => 'Nova senha', @@ -931,6 +951,7 @@ Pasta mãe: [folder_path] Comentário: [comment] Usuário: [username] URL: [url]', +'new_subfolder_email_body_html' => '', 'new_subfolder_email_subject' => '[sitename]: [name] - Nova pasta', 'new_user_image' => 'Nova imagem', 'next_revision_abbr' => '', @@ -944,6 +965,7 @@ Nome: [name] Pasta mãe: [folder_path] Usuário: [username] URL: [url]', +'notify_added_email_body_html' => '', 'notify_added_email_subject' => '[sitename]: [name] - Adicionado a lista de notificação', 'notify_deleted_email' => 'Você foi removido da lista de notificação', 'notify_deleted_email_body' => 'Removido da lista de notificação @@ -951,6 +973,7 @@ Nome: [name] Pasta mãe: [folder_path] Usuário: [username] URL: [url]', +'notify_deleted_email_body_html' => '', 'notify_deleted_email_subject' => '[sitename]: [name] - Removido da lista de notificação', 'not_subscribed' => '', 'november' => 'Novembro', @@ -987,6 +1010,7 @@ URL: [url]', 'no_user_image' => 'não foi encontrado imagem de perfil', 'no_version_check' => 'Verificação de uma nova versão do Sistema GED falhou! Isso pode ser causado por allow_url_fopen configurado para 0 na sua configuração do PHP.', 'no_version_modification' => 'Nenhuma modificação de versão', +'no_workflows' => '', 'no_workflow_available' => 'Nenhum fluxo de trabalho disponível', 'objectcheck' => 'Verificação da Pasta/Documento', 'object_check_critical' => 'Erros críticos', @@ -1008,6 +1032,7 @@ Proprietário amterior: [old_owner] Novo dono: [new_owner] Usuário: [username] URL: [url]', +'ownership_changed_email_body_html' => '', 'ownership_changed_email_subject' => '[sitename]: [name] - Proprietário mudou', 'password' => 'Senha', 'password_already_used' => 'Senha já usada', @@ -1025,6 +1050,7 @@ Isso pode ser feito clicando no seguinte link: [url_prefix]out/out.ChangePassword.php?hash=[hash] Se você ainda tiver problemas para fazer o login, por favor, contate o administrador.', +'password_forgotten_email_body_html' => '', 'password_forgotten_email_subject' => '[sitename]: Esqueceu sua senha', 'password_forgotten_send_hash' => 'Instruções de como proceder para que seja enviada para o endereço de e-mail do usuário', 'password_forgotten_text' => 'Preencha o formulário abaixo e siga as instruções do e-mail que será enviado para você.', @@ -1078,6 +1104,7 @@ Pasta mãe: [folder_path] Destinatário: [recipient] Usuário: [username] URL: [url]', +'receipt_deletion_email_body_html' => '', 'receipt_deletion_email_subject' => '[sitename]: [name] - Destinatário removido', 'receipt_log' => 'Log de entrada', 'receipt_request_email_body' => 'Pedido de entrada @@ -1086,8 +1113,11 @@ Versão: [version] Pasta mãe: [folder_path] Usuário: [username] URL: [url]', +'receipt_request_email_body_html' => '', 'receipt_request_email_subject' => '[sitename]: [name] - Pedido de entrada', 'receipt_status' => 'Estado', +'receipt_submit_email_body' => '', +'receipt_submit_email_subject' => '', 'receipt_summary' => 'Resumo da entrada', 'receipt_update_failed' => 'Confirmação de entrada falhou', 'recent_uploads' => 'Uploads recentes', @@ -1107,6 +1137,7 @@ URL: [url]', Documento: [document] Usuário: [username] URL: [url]', +'removed_file_email_body_html' => '', 'removed_file_email_subject' => '[sitename]: [document] - Anexo removido', 'removed_recipient' => 'foi removido da lista de destinatários.', 'removed_reviewer' => 'foi removido da lista de avaliadores.', @@ -1118,6 +1149,7 @@ Fluxo de Trabalho: [workflow] Pasta mãe: [folder_path] Usuário: [username] URL: [url]', +'removed_workflow_email_body_html' => '', 'removed_workflow_email_subject' => '[sitename]: [name] - Fluxo de trabalho removido da versão do documento', 'removeFolderFromDropFolder' => 'Remover pasta após a importação', 'remove_approval_log' => '', @@ -1126,6 +1158,7 @@ URL: [url]', 'repaired' => 'reparado', 'repairing_objects' => 'Reparando documentos e pastas', 'replace_content_email_body' => '', +'replace_content_email_body_html' => '', 'replace_content_email_subject' => '', 'request_workflow_action_email_body' => 'O fluxo de trabalho atingiu um estado que requer sua ação. Documento: [name] @@ -1135,6 +1168,7 @@ Estado atual: [current_state] Pasta mãe: [folder_path] Usuário: [username] URL: [url]', +'request_workflow_action_email_body_html' => '', 'request_workflow_action_email_subject' => '[sitename]: [name] - Ação de fluxo de trabalho requerida', 'reset_checkout' => 'Concluir retirada', 'restrict_access' => 'Nenhum acesso a', @@ -1148,6 +1182,7 @@ sub-fluxo de trabalho: [subworkflow] Pasta mãe: [folder_path] Usuário: [username] URL: [url]', +'return_from_subworkflow_email_body_html' => '', 'return_from_subworkflow_email_subject' => '[sitename]: [name] - Retornar do sub-fluxo de trabalho', 'reverse_links' => 'Documentos, que têm um link para o documento atual', 'reviewers' => 'Avaliadores', @@ -1168,6 +1203,7 @@ Versão: [version] Pasta mãe: [folder_path] Usuário: [username] URL: [url]', +'review_deletion_email_body_html' => '', 'review_deletion_email_subject' => '[sitename]: [name] - Solicitação de revisão excluída', 'review_file' => 'Arquivo', 'review_group' => 'Grupo de Revisão', @@ -1179,6 +1215,7 @@ Versão: [version] Pasta mãe: [folder_path] Usuário: [username] URL: [url]', +'review_request_email_body_html' => '', 'review_request_email_subject' => '[sitename]: [name] - Solicitação de revisão', 'review_status' => 'Estado da revisão', 'review_submit_email' => 'Revisão submetida', @@ -1189,6 +1226,7 @@ Comentário: [comment] Pasta mãe: [folder_path] Usuário: [username] URL: [url]', +'review_submit_email_body_html' => '', 'review_submit_email_subject' => '[sitename]: [name] - Revisão submetida', 'review_summary' => 'Resumo de revisão', 'review_update_failed' => 'Erro ao atualizar o status da revisão. Atualização falhou.', @@ -1213,9 +1251,11 @@ Versão: [version] Pasta mãe: [folder_path] Usuário: [username] URL: [url]', +'revision_request_email_body_html' => '', 'revision_request_email_subject' => '[sitename]: [name] - solicitação de revisão', 'revision_status' => 'Estado', 'revision_submit_email_body' => 'revisão enviar corpo do e-mail', +'revision_submit_email_body_html' => '', 'revision_submit_email_subject' => '[sitename]: [name] - Revisão enviar assunto de e-mail', 'revision_summary' => 'Resumo das revisões', 'revisors' => 'Revisores', @@ -1229,6 +1269,7 @@ Fluxo de processo: [workflow] Pasta mãe: [folder_path] Usuário: [username] URL: [url]', +'rewind_workflow_email_body_html' => '', 'rewind_workflow_email_subject' => '[sitename]: [name] - Fluxo de processo foi revisto', 'rewind_workflow_warning' => 'Se você voltar um fluxo de trabalho ao seu estado inicial, então o log todo o fluxo de trabalho para este documento será eliminado e não poderá ser recuperado.', 'rm_attrdef' => 'Remover definição de atributo', @@ -1271,6 +1312,7 @@ Sub-fluxo de trabalho: [subworkflow] Pasta mãe: [folder_path] Usuário: [username] URL: [url]', +'run_subworkflow_email_body_html' => '', 'run_subworkflow_email_subject' => '[sitename]: [name] - Sub-fluxo de trabalho foi iniciado', 'ru_RU' => 'Russo', 'saturday' => 'Sábado', @@ -1967,6 +2009,7 @@ Estado atual: [current_state] Pasta mãe: [folder_path] Usuário: [username] URL: [url]', +'transition_triggered_email_body_html' => '', 'transition_triggered_email_subject' => '[sitename]: [name] - Transição de fluxo de trabalho desencadeado', 'transmittal' => 'Transmissão', 'transmittalitem_removed' => 'Item de transmissão removido', @@ -2048,6 +2091,7 @@ Versão: [version] Pasta mãe: [folder_path] Usuário: [username] URL: [url]', +'version_deleted_email_body_html' => '', 'version_deleted_email_subject' => '[sitename]: [name] - Versão eliminada', 'version_info' => 'Informações da versão', 'view' => 'Visualizar', diff --git a/languages/ro_RO/lang.inc b/languages/ro_RO/lang.inc index 45a79606f..0da7e4fd0 100644 --- a/languages/ro_RO/lang.inc +++ b/languages/ro_RO/lang.inc @@ -50,6 +50,7 @@ Document: [name] Folder parinte: [folder_path] Utilizator: [username] URL: [url]', +'access_permission_changed_email_body_html' => '', 'access_permission_changed_email_subject' => '[sitename]: [name] - Permisiune schimbată', 'according_settings' => 'conform setărilor', 'action' => 'AcÈ›iune', @@ -117,6 +118,7 @@ Versiune: [version] Folder parinte: [folder_path] Utilizator: [username] URL: [url]', +'approval_deletion_email_body_html' => '', 'approval_deletion_email_subject' => '[sitename]: [name] - Cerere aprobare stearsa', 'approval_file' => '', 'approval_group' => 'Grup aprobare', @@ -139,6 +141,7 @@ Status: [status] Comentariu: [comment] Utilizator: [username] URL: [url]', +'approval_submit_email_body_html' => '', 'approval_submit_email_subject' => '[sitename]: [name] - Aprobare trimisă', 'approval_summary' => 'Sumar aprobare', 'approval_update_failed' => 'Eroare actualizare status aprobare. Actualizarea nu a reuÈ™it.', @@ -200,6 +203,7 @@ New value: [attribute_new_value] Folder parinte: [folder_path] Utilizator: [username] URL: [url]', +'attribute_changed_email_body_html' => '', 'attribute_changed_email_subject' => '[sitename]: [name] - Atribut schimbat', 'attribute_count' => 'Numărul de utilizări', 'attribute_value' => 'Valoare atribut', @@ -391,6 +395,7 @@ URL: [url]', 'document_already_checkedout' => 'Acest document este deja verificat', 'document_already_locked' => 'Acest document este deja blocat', 'document_attribute_changed_email_body' => '', +'document_attribute_changed_email_body_html' => '', 'document_attribute_changed_email_subject' => '', 'document_comment_changed_email' => 'Comentariu schimbat', 'document_comment_changed_email_body' => 'Comentariu schimbat @@ -400,6 +405,7 @@ Comentariu: [new_comment] Folder parinte: [folder_path] Utilizator: [username] URL: [url]', +'document_comment_changed_email_body_html' => '', 'document_comment_changed_email_subject' => '[sitename]: [name] - Comentariu schimbat', 'document_content_missing' => '', 'document_count' => '', @@ -409,6 +415,7 @@ URL: [url]', Document: [name] Folder parinte: [folder_path] Utilizator: [username]', +'document_deleted_email_body_html' => '', 'document_deleted_email_subject' => '[sitename]: [name] - Document sters', 'document_duplicate_name' => 'Nume document duplicat', 'document_files' => '', @@ -428,6 +435,7 @@ Folder vechi: [old_folder_path] Folder nou: [new_folder_path] Utilizator: [username] URL: [url]', +'document_moved_email_body_html' => '', 'document_moved_email_subject' => '[sitename]: [name] - Document mutat', 'document_not_checkedout' => 'Documentul nu este verificat.', 'document_renamed_email' => 'Document redenumit', @@ -437,6 +445,7 @@ Folder parinte: [folder_path] Nume vechi: [old_name] Utilizator: [username] URL: [url]', +'document_renamed_email_body_html' => '', 'document_renamed_email_subject' => '[sitename]: [name] - Document redenumit', 'document_status_changed_email' => 'Status document schimbat', 'document_status_changed_email_body' => 'Status document schimbat @@ -445,9 +454,11 @@ Status: [status] Folder patinte: [folder_path] Utilizator: [username] URL: [url]', +'document_status_changed_email_body_html' => '', 'document_status_changed_email_subject' => '[sitename]: [name] - Status document schimbat', 'document_title' => 'Document \'[documentname]\'', 'document_transfered_email_body' => '', +'document_transfered_email_body_html' => '', 'document_transfered_email_subject' => '', 'document_updated_email' => 'Document actualizat', 'document_updated_email_body' => 'Document actualizat @@ -457,6 +468,7 @@ Utilizator: [username] Comentariu: [comment] Comentariu versiune: [version_comment] URL: [url]', +'document_updated_email_body_html' => '', 'document_updated_email_subject' => '[sitename]: [name] - Document actualizat', 'document_versions' => '', 'does_not_expire' => 'Nu expiră', @@ -586,6 +598,7 @@ Document: [name] Folder parinte: [folder_path] Utilizator: [username] URL: [url]', +'expiry_changed_email_body_html' => '', 'expiry_changed_email_subject' => '[sitename]: [name] - Data de expirare schimbată', 'export' => '', 'export_user_list_csv' => '', @@ -618,6 +631,7 @@ URL: [url]', 'folders_and_documents_statistic' => 'Privire de ansamblu asupra continutului', 'folders_with_notification' => '', 'folder_attribute_changed_email_body' => '', +'folder_attribute_changed_email_body_html' => '', 'folder_attribute_changed_email_subject' => '', 'folder_comment_changed_email' => 'Comentariu schimbat', 'folder_comment_changed_email_body' => 'Comentariu schimbat @@ -627,6 +641,7 @@ Comentariu: [new_comment] Folder parinte: [folder_path] Utilizator: [username] URL: [url]', +'folder_comment_changed_email_body_html' => '', 'folder_comment_changed_email_subject' => '[sitename]: [name] - Comentariu schimbat', 'folder_contents' => 'Continut folder', 'folder_deleted_email' => 'Folder sters', @@ -635,6 +650,7 @@ Folder: [name] Folder parinte: [folder_path] Utilizator: [username] URL: [url]', +'folder_deleted_email_body_html' => '', 'folder_deleted_email_subject' => '[sitename]: [name] - Folder sters', 'folder_infos' => 'Informatii folder', 'folder_moved_email' => 'Folder mutat', @@ -644,6 +660,7 @@ Folder vechi: [old_folder_path] Folder nou: [new_folder_path] Utilizator: [username] URL: [url]', +'folder_moved_email_body_html' => '', 'folder_moved_email_subject' => '[sitename]: [name] - Folder mutat', 'folder_renamed_email' => 'Folder redenumit', 'folder_renamed_email_body' => 'Folder redenumit @@ -652,6 +669,7 @@ Folder parinte: [folder_path] Nume vechi: [old_name] Utilizator: [username] URL: [url]', +'folder_renamed_email_body_html' => '', 'folder_renamed_email_subject' => '[sitename]: [name] - Folder redenumit', 'folder_title' => 'Folder \'[foldername]\'', 'foot_note' => '', @@ -895,6 +913,7 @@ Comment: [comment] Comentariu versiune: [version_comment] Utilizator: [username] URL: [url]', +'new_document_email_body_html' => '', 'new_document_email_subject' => '[sitename]: [folder_name] - Document nou', 'new_file_email' => 'AtaÈ™ament nou', 'new_file_email_body' => 'AtaÈ™ament nou @@ -903,6 +922,7 @@ Document: [document] Comentariu: [comment] Utilizator: [username] URL: [url]', +'new_file_email_body_html' => '', 'new_file_email_subject' => '[sitename]: [document] - AtaÈ™ament nou', 'new_folder' => 'Folder nou', 'new_password' => 'Parolă noua', @@ -913,6 +933,7 @@ Folder parinte: [folder_path] Comentariu: [comment] Utilizator: [username] URL: [url]', +'new_subfolder_email_body_html' => '', 'new_subfolder_email_subject' => '[sitename]: [name] - Folder nou', 'new_user_image' => 'Imagine nouă', 'next_revision_abbr' => '', @@ -926,6 +947,7 @@ Nume: [name] Folder parinte: [folder_path] Utilizator: [username] URL: [url]', +'notify_added_email_body_html' => '', 'notify_added_email_subject' => '[sitename]: [name] - Adăugat la lista de notificări', 'notify_deleted_email' => 'Ai fost scos din lista de notificări', 'notify_deleted_email_body' => 'Scos din lista de notificări @@ -933,6 +955,7 @@ Nume: [name] Folder parinte: [folder_path] Utilizator: [username] URL: [url]', +'notify_deleted_email_body_html' => '', 'notify_deleted_email_subject' => '[sitename]: [name] - Scos din lista de notificări', 'not_subscribed' => '', 'november' => 'Noiembrie', @@ -969,6 +992,7 @@ URL: [url]', 'no_user_image' => 'Nu au fost găsite imagini', 'no_version_check' => 'Verificarea pentru o noua versiune SeedDMS a reuÈ™it! Acest lucru ar putea fi cauzat de setarea allow_url_fopen=0 în configuraÈ›ia php-ului dumneavoastră.', 'no_version_modification' => '', +'no_workflows' => '', 'no_workflow_available' => 'Nici un workflow disponibil', 'objectcheck' => 'Verificare folder/document', 'object_check_critical' => '', @@ -990,6 +1014,7 @@ Proprietar vechi: [old_owner] Proprietar nou: [new_owner] Utilizator: [username] URL: [url]', +'ownership_changed_email_body_html' => '', 'ownership_changed_email_subject' => '[sitename]: [name] - Proprietar schimbat', 'password' => 'Parolă', 'password_already_used' => 'Parolă folosită deja', @@ -1007,6 +1032,7 @@ Acest lucru poate fi realizat prin click pe link-ul următor: [url_prefix]out/out.ChangePassword.php?hash=[hash] Dacă aveÈ›i în continuare probleme la autentificare, vă rugăm să contactaÈ›i administratorul.', +'password_forgotten_email_body_html' => '', 'password_forgotten_email_subject' => '[sitename]: Am uitat parola', 'password_forgotten_send_hash' => 'InstrucÈ›iuni privind modul cum trebuie procedat au fost trimise la adresa de email a utilizatorului', 'password_forgotten_text' => 'CompletaÈ›i formularul de mai jos È™i urmaÈ›i instrucÈ›iunile ce vor fi trimise prin e-mail.', @@ -1054,11 +1080,15 @@ Dacă aveÈ›i în continuare probleme la autentificare, vă rugăm să contactaÈ› 'receipts_without_group' => '', 'receipts_without_user' => '', 'receipt_deletion_email_body' => '', +'receipt_deletion_email_body_html' => '', 'receipt_deletion_email_subject' => '', 'receipt_log' => '', 'receipt_request_email_body' => '', +'receipt_request_email_body_html' => '', 'receipt_request_email_subject' => '', 'receipt_status' => '', +'receipt_submit_email_body' => '', +'receipt_submit_email_subject' => '', 'receipt_summary' => '', 'receipt_update_failed' => '', 'recent_uploads' => 'Incarcari recente', @@ -1078,6 +1108,7 @@ Dacă aveÈ›i în continuare probleme la autentificare, vă rugăm să contactaÈ› Document: [document] Utilizator: [username] URL: [url]', +'removed_file_email_body_html' => '', 'removed_file_email_subject' => '[sitename]: [document] - AtaÈ™ament eliminat', 'removed_recipient' => 'a fost eliminat de pe lista de destinatari.', 'removed_reviewer' => 'a fost eliminat din lista de revizuitori.', @@ -1089,6 +1120,7 @@ Workflow: [workflow] Folder parinte: [folder_path] Utilizator: [username] URL: [url]', +'removed_workflow_email_body_html' => '', 'removed_workflow_email_subject' => '[sitename]: [name] - Workflow eliminat din versiunea documentului', 'removeFolderFromDropFolder' => '', 'remove_approval_log' => '', @@ -1097,6 +1129,7 @@ URL: [url]', 'repaired' => 'reparat', 'repairing_objects' => 'Reparare documente È™i foldere.', 'replace_content_email_body' => '', +'replace_content_email_body_html' => '', 'replace_content_email_subject' => '', 'request_workflow_action_email_body' => 'Workflow-ul a ajuns la o stare care necesita actiunea ta. Document: [name] @@ -1106,6 +1139,7 @@ Starea curenta: [current_state] Folder parinte: [folder_path] Utilizator: [username] URL: [url]', +'request_workflow_action_email_body_html' => '', 'request_workflow_action_email_subject' => '[sitename]: [name] - Actiune workflow necesara', 'reset_checkout' => 'Termina verificarea', 'restrict_access' => '', @@ -1119,6 +1153,7 @@ Subworkflow: [subworkflow] Folder parinte: [folder_path] Utilizator: [username] URL: [url]', +'return_from_subworkflow_email_body_html' => '', 'return_from_subworkflow_email_subject' => '[sitename]: [name] - ÃŽntoarcere din subworkflow', 'reverse_links' => 'Documentele, care au un link către la documentul curent', 'reviewers' => 'Revizuitori', @@ -1139,6 +1174,7 @@ Versiune: [version] Folder parinte: [folder_path] Utilizator: [username] URL: [url]', +'review_deletion_email_body_html' => '', 'review_deletion_email_subject' => '[sitename]: [name] - Cerere de revizuire eliminata', 'review_file' => '', 'review_group' => 'Grup revizuire', @@ -1150,6 +1186,7 @@ Versiune: [version] Folder parinte: [folder_path] Utilizator: [username] URL: [url]', +'review_request_email_body_html' => '', 'review_request_email_subject' => '[sitename]: [name] - Cerere de revizuire', 'review_status' => 'Status revizuire', 'review_submit_email' => 'Revizuire trimisă', @@ -1161,6 +1198,7 @@ Comentariu: [comment] Folder parinte: [folder_path] Utilizator: [username] URL: [url]', +'review_submit_email_body_html' => '', 'review_submit_email_subject' => '[sitename]: [name] - Revizuire trimisă', 'review_summary' => 'Sumar revizuire', 'review_update_failed' => 'Eroare actualizarea status revizuire. Actualizarea a eÈ™uat.', @@ -1180,9 +1218,11 @@ URL: [url]', 'revision_date' => '', 'revision_log' => 'Log revizuire', 'revision_request_email_body' => '', +'revision_request_email_body_html' => '', 'revision_request_email_subject' => '', 'revision_status' => '', 'revision_submit_email_body' => '', +'revision_submit_email_body_html' => '', 'revision_submit_email_subject' => '', 'revision_summary' => '', 'revisors' => 'Revizuitori', @@ -1196,6 +1236,7 @@ Workflow: [workflow] Folder parinte: [folder_path] Utilizator: [username] URL: [url]', +'rewind_workflow_email_body_html' => '', 'rewind_workflow_email_subject' => '[sitename]: [name] - Workflow derulat', 'rewind_workflow_warning' => 'Dacă derulati înapoi un workflow la starea iniÈ›ială, atunci tot log-ul workflow-ului pentru acest document vor fi È™ters È™i nu va mai putea fi recuperat.', 'rm_attrdef' => 'EliminaÈ›i definiÈ›ie atribut', @@ -1238,6 +1279,7 @@ Subworkflow: [subworkflow] Folder parinte: [folder_path] Utilizator: [username] URL: [url]', +'run_subworkflow_email_body_html' => '', 'run_subworkflow_email_subject' => '[sitename]: [name] - Subworkflow-ul a fost pornit', 'ru_RU' => 'Rusă', 'saturday' => 'Sâmbătă', @@ -1929,6 +1971,7 @@ Stare curenta: [current_state] Folder parinte: [folder_path] Utilizator: [username] URL: [url]', +'transition_triggered_email_body_html' => '', 'transition_triggered_email_subject' => '[sitename]: [name] - TranziÈ›ie Workflow declanÈ™ată', 'transmittal' => '', 'transmittalitem_removed' => '', @@ -2010,6 +2053,7 @@ Versiune: [version] Folder parinte: [folder_path] Utilizator: [username] URL: [url]', +'version_deleted_email_body_html' => '', 'version_deleted_email_subject' => '[sitename]: [name] - Versiune È™tearsă', 'version_info' => 'InformaÈ›ii versiune', 'view' => 'Vizualizare', diff --git a/languages/ru_RU/lang.inc b/languages/ru_RU/lang.inc index 0d560988b..deb04700b 100644 --- a/languages/ru_RU/lang.inc +++ b/languages/ru_RU/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (1717) +// Translators: Admin (1718) $text = array( '2_factor_auth' => 'Ð”Ð²ÑƒÑ…Ñ„Ð°ÐºÑ‚Ð¾Ñ€Ð½Ð°Ñ Ð°ÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ', @@ -50,6 +50,7 @@ $text = array( РодительÑкий каталог: [folder_path] Пользователь: [username] URL: [url]', +'access_permission_changed_email_body_html' => '', 'access_permission_changed_email_subject' => '[sitename]: изменён доÑтуп Ð´Ð»Ñ Â«[name]»', 'according_settings' => 'ÑоответÑтвующие наÑтройки', 'action' => 'ДейÑтвие', @@ -117,6 +118,7 @@ URL: [url]', РодительÑкий каталог: [folder_path] Пользователь: [username] URL: [url]', +'approval_deletion_email_body_html' => '', 'approval_deletion_email_subject' => '[sitename]: [name] - Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° утверждение удален', 'approval_file' => 'Файл', 'approval_group' => 'Ð£Ñ‚Ð²ÐµÑ€Ð¶Ð´Ð°ÑŽÑ‰Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð°', @@ -139,6 +141,7 @@ URL: [url]', Комментарий: [comment] Пользователь: [username] URL: [url]', +'approval_submit_email_body_html' => '', 'approval_submit_email_subject' => '[sitename]: [name] - Утверждено', 'approval_summary' => 'Сводка по утверждению', 'approval_update_failed' => 'Произошла ошибка при изменении ÑтатуÑа утверждениÑ', @@ -200,6 +203,7 @@ New value: [attribute_new_value] РодительÑкий каталог: [folder_path] Пользователь: [username] URL: [url]', +'attribute_changed_email_body_html' => '', 'attribute_changed_email_subject' => '[sitename]: изменён атрибут «[name]»', 'attribute_count' => 'ИÑпользован раз', 'attribute_value' => 'Значение атрибута', @@ -391,6 +395,7 @@ URL: [url]', 'document_already_checkedout' => 'Этот документ уже проверен', 'document_already_locked' => 'Документ уже заблокирован', 'document_attribute_changed_email_body' => '', +'document_attribute_changed_email_body_html' => '', 'document_attribute_changed_email_subject' => '', 'document_comment_changed_email' => 'Изменён комментарий', 'document_comment_changed_email_body' => 'Изменён комментарий @@ -400,6 +405,7 @@ URL: [url]', РодительÑкий каталог: [folder_path] Пользователь: [username] URL: [url]', +'document_comment_changed_email_body_html' => '', 'document_comment_changed_email_subject' => '[sitename]: изменён комментарий к «[name]»', 'document_content_missing' => '', 'document_count' => 'КоличеÑтво документов', @@ -409,6 +415,7 @@ URL: [url]', Документ: [name] РодительÑкий каталог: [folder_path] Пользователь: [username]', +'document_deleted_email_body_html' => '', 'document_deleted_email_subject' => '[sitename]: удалён документ «[name]»', 'document_duplicate_name' => 'Одноимённый документ уже ÑущеÑтвует.', 'document_files' => '', @@ -428,6 +435,7 @@ URL: [url]', Предыдущий каталог: [old_folder_path] Пользователь: [username] URL: [url]', +'document_moved_email_body_html' => '', 'document_moved_email_subject' => '[sitename]: перемещён документ «[name]»', 'document_not_checkedout' => 'Документ не проверен', 'document_renamed_email' => 'Документ переименован', @@ -437,6 +445,7 @@ URL: [url]', Прежнее имÑ: [old_name] Пользователь: [username] URL: [url]', +'document_renamed_email_body_html' => '', 'document_renamed_email_subject' => '[sitename]: переименован документ «[name]»', 'document_status_changed_email' => 'Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð° изменён', 'document_status_changed_email_body' => 'Изменён ÑÑ‚Ð°Ñ‚ÑƒÑ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð° @@ -445,9 +454,11 @@ URL: [url]', РодительÑкий каталог: [folder_path] Пользователь: [username] URL: [url]', +'document_status_changed_email_body_html' => '', 'document_status_changed_email_subject' => '[sitename]: изменён ÑÑ‚Ð°Ñ‚ÑƒÑ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð° «[name]»', 'document_title' => 'Документ [documentname]', 'document_transfered_email_body' => '', +'document_transfered_email_body_html' => '', 'document_transfered_email_subject' => '', 'document_updated_email' => 'Документ обновлён', 'document_updated_email_body' => 'Документ обновлён @@ -457,6 +468,7 @@ URL: [url]', Комментарий: [comment] Комментарий верÑии: [version_comment] URL: [url]', +'document_updated_email_body_html' => '', 'document_updated_email_subject' => '[sitename]: обновлён документ «[name]»', 'document_versions' => '', 'does_not_expire' => 'безÑрочный', @@ -493,7 +505,7 @@ URL: [url]', 'dropfolder_metadata' => '', 'dropupload' => 'БыÑÑ‚Ñ€Ð°Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ°', 'drop_files_here' => 'ПеремеÑтите файлы Ñюда', -'drop_files_here_or_click' => '', +'drop_files_here_or_click' => 'Перетащите Ñюда файлы или кликните!', 'dump_creation' => 'Создать дамп БД', 'dump_creation_warning' => 'Эта Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ ÑоздаÑÑ‚ дамп базы данных. ПоÑле ÑозданиÑ, файл будет Ñохранен в каталоге данных Ñервера.', 'dump_list' => 'СущеÑтвующие дампы', @@ -586,6 +598,7 @@ URL: [url]', РодительÑкий каталог: [folder_path] Пользователь: [username] URL: [url]', +'expiry_changed_email_body_html' => '', 'expiry_changed_email_subject' => '[sitename]: изменен Ñрок дейÑÑ‚Ð²Ð¸Ñ Ð´Ð»Ñ Â«[name]»', 'export' => 'ЭкÑпорт', 'export_user_list_csv' => '', @@ -618,6 +631,7 @@ URL: [url]', 'folders_and_documents_statistic' => 'Обзор Ñодержимого', 'folders_with_notification' => '', 'folder_attribute_changed_email_body' => '', +'folder_attribute_changed_email_body_html' => '', 'folder_attribute_changed_email_subject' => '', 'folder_comment_changed_email' => 'Комментарий изменён', 'folder_comment_changed_email_body' => 'Изменён комментарий каталога @@ -627,6 +641,7 @@ URL: [url]', РодительÑкий каталог: [folder_path] Пользователь: [username] URL: [url]', +'folder_comment_changed_email_body_html' => '', 'folder_comment_changed_email_subject' => '[sitename]: изменён комментарий каталога «[folder]»', 'folder_contents' => 'Содержимое каталога', 'folder_deleted_email' => 'Каталог удалён', @@ -635,6 +650,7 @@ URL: [url]', РодительÑкий каталог: [folder_path] Пользователь: [username] URL: [url]', +'folder_deleted_email_body_html' => '', 'folder_deleted_email_subject' => '[sitename]: удалён каталог «[name]»', 'folder_infos' => 'Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ каталоге', 'folder_moved_email' => 'Каталог перемещён', @@ -644,6 +660,7 @@ URL: [url]', Предыдущее раÑположение: [old_folder_path] Пользователь: [username] URL: [url]', +'folder_moved_email_body_html' => '', 'folder_moved_email_subject' => '[sitename]: перемещён каталог «[name]»', 'folder_renamed_email' => 'Каталог переименован', 'folder_renamed_email_body' => 'Каталог переименован @@ -652,6 +669,7 @@ URL: [url]', Предыдущее имÑ: [old_name] Пользователь: [username] URL: [url]', +'folder_renamed_email_body_html' => '', 'folder_renamed_email_subject' => '[sitename]: переименован каталог «[name]»', 'folder_title' => 'Каталог [foldername]', 'foot_note' => '', @@ -895,6 +913,7 @@ URL: [url]', Комментарий верÑии: [version_comment] Пользователь: [username] URL: [url]', +'new_document_email_body_html' => '', 'new_document_email_subject' => '[sitename]: новый документ в каталоге «[folder_name]»', 'new_file_email' => 'Ðовое приложение', 'new_file_email_body' => 'Ðовое приложение: [name] @@ -902,6 +921,7 @@ URL: [url]', Комментарий: [comment] Пользователь: [username] URL: [url]', +'new_file_email_body_html' => '', 'new_file_email_subject' => '[sitename]: новое приложение к документу «[document]»', 'new_folder' => 'Ðовый каталог', 'new_password' => 'Ðовый пароль', @@ -912,6 +932,7 @@ URL: [url]', Комментарий: [comment] Пользователь: [username] URL: [url]', +'new_subfolder_email_body_html' => '', 'new_subfolder_email_subject' => '[sitename]: новый каталог «[name]»', 'new_user_image' => 'Ðовое изображение', 'next_revision_abbr' => '', @@ -925,6 +946,7 @@ URL: [url]', РодительÑкий каталог: [folder_path] Пользователь: [username] URL: [url]', +'notify_added_email_body_html' => '', 'notify_added_email_subject' => '[sitename]: вы добавлены в ÑпиÑок уведомлений Ð´Ð»Ñ Â«[name]»', 'notify_deleted_email' => 'Ð’Ñ‹ удалены из ÑпиÑка уведомлений', 'notify_deleted_email_body' => 'Ð’Ñ‹ удалены из ÑпиÑка уведомлений @@ -932,6 +954,7 @@ URL: [url]', РодительÑкий каталог: [folder_path] Пользователь: [username] URL: [url]', +'notify_deleted_email_body_html' => '', 'notify_deleted_email_subject' => '[sitename]: вы удалены из ÑпиÑка уведомлений Ð´Ð»Ñ Â«[name]»', 'not_subscribed' => '', 'november' => 'ÐоÑбрь', @@ -968,6 +991,7 @@ URL: [url]', 'no_user_image' => 'Изображение не найдено', 'no_version_check' => 'Проверка на наличие новой верÑии SeedDMS не удалоÑÑŒ! Это может быть вызвано allow_url_fopen уÑтановленным в 0 в конфигурации PHP.', 'no_version_modification' => 'ОтÑутÑтвует Ð¼Ð¾Ð´Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð²ÐµÑ€Ñии', +'no_workflows' => '', 'no_workflow_available' => 'ОтÑутÑтвует процеÑÑ', 'objectcheck' => 'Проверка целоÑтноÑти', 'object_check_critical' => '', @@ -989,6 +1013,7 @@ URL: [url]', Ðовый владелец: [new_owner] Пользователь: [username] URL: [url]', +'ownership_changed_email_body_html' => '', 'ownership_changed_email_subject' => '[sitename]: изменён владелец «[name]»', 'password' => 'Пароль', 'password_already_used' => 'Пароль уже иÑпользуетÑÑ', @@ -1004,6 +1029,7 @@ URL: [url]', [url_prefix]out/out.ChangePassword.php?hash=[hash] ЕÑли вы и поÑле Ñтого не Ñможете войти, ÑвÑжитеÑÑŒ Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтратором.', +'password_forgotten_email_body_html' => '', 'password_forgotten_email_subject' => '[sitename]: Забытый пароль', 'password_forgotten_send_hash' => 'ИнÑтрукции выÑланы на e-mail', 'password_forgotten_text' => 'Заполните форму и Ñледуйте инÑтрукциÑм в пиÑьме', @@ -1051,6 +1077,7 @@ URL: [url]', 'receipts_without_group' => '', 'receipts_without_user' => '', 'receipt_deletion_email_body' => '', +'receipt_deletion_email_body_html' => '', 'receipt_deletion_email_subject' => '', 'receipt_log' => 'Лог получениÑ', 'receipt_request_email_body' => 'Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ @@ -1059,8 +1086,11 @@ URL: [url]', Каталог: [folder_path] Пользователь: [username] URL: [url]', +'receipt_request_email_body_html' => '', 'receipt_request_email_subject' => '[sitename]: [name] - Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ', 'receipt_status' => '', +'receipt_submit_email_body' => '', +'receipt_submit_email_subject' => '', 'receipt_summary' => 'Сводка по получению', 'receipt_update_failed' => '', 'recent_uploads' => 'ПоÑледние загрузки', @@ -1080,6 +1110,7 @@ URL: [url]', Документ: [document] Пользователь: [username] URL: [url]', +'removed_file_email_body_html' => '', 'removed_file_email_subject' => '[sitename]: удалено вложение к «[document]»', 'removed_recipient' => 'удален из ÑпиÑка получателей', 'removed_reviewer' => 'удалён из ÑпиÑка рецензентов', @@ -1091,6 +1122,7 @@ URL: [url]', Каталог: [folder_path] Пользователь: [username] URL: [url]', +'removed_workflow_email_body_html' => '', 'removed_workflow_email_subject' => '[sitename]: удалён процеÑÑ Ð¸Ð· верÑии документа «[name]»', 'removeFolderFromDropFolder' => '', 'remove_approval_log' => '', @@ -1099,6 +1131,7 @@ URL: [url]', 'repaired' => 'иÑправлено', 'repairing_objects' => 'ВоÑÑтановление каталогов и документов', 'replace_content_email_body' => '', +'replace_content_email_body_html' => '', 'replace_content_email_subject' => '', 'request_workflow_action_email_body' => 'ПроцеÑÑ Ð´Ð¾Ñтиг ÑоÑтоÑÐ½Ð¸Ñ Ñ‚Ñ€ÐµÐ±ÑƒÑŽÑ‰ÐµÐ³Ð¾ вашего вниманиÑ. Документ: [name] @@ -1108,6 +1141,7 @@ URL: [url]', Каталог: [folder_path] Пользователь: [username] URL: [url]', +'request_workflow_action_email_body_html' => '', 'request_workflow_action_email_subject' => '[sitename]: [name] - ТребуетÑÑ Ð´ÐµÐ¹Ñтвие по процеÑÑу', 'reset_checkout' => 'Завершить проверку', 'restrict_access' => 'Ограничить доÑтуп', @@ -1121,6 +1155,7 @@ URL: [url]', РодительÑкий каталог: [folder_path] Пользователь: [username] URL: [url]', +'return_from_subworkflow_email_body_html' => '', 'return_from_subworkflow_email_subject' => '[sitename]: выход из подпроцеÑÑа «[name]»', 'reverse_links' => 'Документы, в которых еÑть ÑÑылки на текущий документ', 'reviewers' => 'Рецензирующие', @@ -1141,6 +1176,7 @@ URL: [url]', РодительÑкий каталог: [folder_path] Пользователь: [username] URL: [url]', +'review_deletion_email_body_html' => '', 'review_deletion_email_subject' => '[sitename]: отменен Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° рецензирование Ð´Ð»Ñ [name]', 'review_file' => 'Файл', 'review_group' => 'Группа рецензентов', @@ -1152,6 +1188,7 @@ URL: [url]', РодительÑкий каталог: [folder_path] Пользователь: [username] URL: [url]', +'review_request_email_body_html' => '', 'review_request_email_subject' => '[sitename]: [name] - Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° рецензирование', 'review_status' => 'Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ñ€ÐµÑ†ÐµÐ½Ð·Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ', 'review_submit_email' => 'Отправлено на рецензирование', @@ -1163,6 +1200,7 @@ URL: [url]', РодительÑкий каталог: [folder_path] Пользователь: [username] URL: [url]', +'review_submit_email_body_html' => '', 'review_submit_email_subject' => '[sitename]: отправлена Ñ€ÐµÑ†ÐµÐ½Ð·Ð¸Ñ Ð½Ð° «[name]»', 'review_summary' => 'Сводка по рецензии', 'review_update_failed' => 'Ошибка Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑтатуÑа рецензии', @@ -1187,9 +1225,11 @@ URL: [url]', РодительÑкий каталог: [folder_path] Пользователь: [username] URL: [url]', +'revision_request_email_body_html' => '', 'revision_request_email_subject' => '[sitename]: [name] - Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° ревизию', 'revision_status' => 'СоÑтоÑние ревизии', 'revision_submit_email_body' => '', +'revision_submit_email_body_html' => '', 'revision_submit_email_subject' => '', 'revision_summary' => '', 'revisors' => 'Ревизор', @@ -1203,6 +1243,7 @@ URL: [url]', РодительÑкий каталог: [folder_path] Пользователь: [username] URL: [url]', +'rewind_workflow_email_body_html' => '', 'rewind_workflow_email_subject' => '[sitename]: процеÑÑ Ð½Ð°Ñ‡Ð°Ñ‚ Ñ Ð½Ð°Ñ‡Ð°Ð»Ð° Ð´Ð»Ñ Â«[name]»', 'rewind_workflow_warning' => 'ЕÑли вы начнёте процеÑÑ Ñ Ð½Ð°Ñ‡Ð°Ð»Ð°, то веÑÑŒ журнал процеÑÑа Ð´Ð»Ñ Ñтого документа будет очищен и его невозможно будет воÑÑтановить.', 'rm_attrdef' => 'Удалить определение атрибута', @@ -1245,6 +1286,7 @@ URL: [url]', РодительÑкий каталог: [folder_path] Пользователь: [username] URL: [url]', +'run_subworkflow_email_body_html' => '', 'run_subworkflow_email_subject' => '[sitename]: запущен подпроцеÑÑ Ð´Ð»Ñ Â«[name]»', 'ru_RU' => 'РуÑÑкий', 'saturday' => 'Суббота', @@ -1936,6 +1978,7 @@ URL: [url]', РодительÑкий каталог: [folder_path] Пользователь: [username] URL: [url]', +'transition_triggered_email_body_html' => '', 'transition_triggered_email_subject' => '[sitename]: изменено ÑоÑтоÑние процеÑÑа Ð´Ð»Ñ Â«[name]»', 'transmittal' => 'Передача', 'transmittalitem_removed' => 'Переданный Ñлемент удален', @@ -2017,6 +2060,7 @@ URL: [url]', РодительÑкий каталог: [folder_path] Пользователь: [username] URL: [url]', +'version_deleted_email_body_html' => '', 'version_deleted_email_subject' => '[sitename]: удалена верÑÐ¸Ñ Â«[name]»', 'version_info' => 'Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ верÑии', 'view' => 'ПроÑмотр', diff --git a/languages/sk_SK/lang.inc b/languages/sk_SK/lang.inc index 96ad8a9a8..edb0bfcac 100644 --- a/languages/sk_SK/lang.inc +++ b/languages/sk_SK/lang.inc @@ -50,6 +50,7 @@ Dokument: [name] Nadradený adresár: [folder_path] Užívateľ: [username] URL: [url]', +'access_permission_changed_email_body_html' => '', 'access_permission_changed_email_subject' => '[sitename]: [name] - Práva boli zmenené', 'according_settings' => 'podľa nastavenia', 'action' => 'Operácia', @@ -117,6 +118,7 @@ Verzia: [version] Nadradený adresár: [folder_path] Užívateľ: [username] URL: [url]', +'approval_deletion_email_body_html' => '', 'approval_deletion_email_subject' => '[sitename]: [name] - Požiadavka na schválenie zmazaná', 'approval_file' => 'Súbor', 'approval_group' => 'Skupina schválenia', @@ -139,6 +141,7 @@ Stav: [status] Komentár: [comment] Užívateľ: [username] URL: [url]', +'approval_submit_email_body_html' => '', 'approval_submit_email_subject' => '[sitename]: [name] - Odoslané schválenie', 'approval_summary' => 'Zhrnutie schválenia', 'approval_update_failed' => 'Chyba pri aktualizácii stavu schválenia. Aktualizácia zlyhala.', @@ -200,6 +203,7 @@ New value: [attribute_new_value] Nadradená zložka: [folder_path] Používateľ: [username] URL: [url]', +'attribute_changed_email_body_html' => '', 'attribute_changed_email_subject' => '[sitename]: [name] - Atribút sa zmenil', 'attribute_count' => 'PoÄet použití', 'attribute_value' => 'Hodnota atribútu', @@ -398,6 +402,7 @@ Nová hodnota: [attribute_new_value] Nadradená zložka: [folder_path] Používateľ: [username] URL: [url]', +'document_attribute_changed_email_body_html' => '', 'document_attribute_changed_email_subject' => '[sitename]: [name] - Atribút bol zmenený', 'document_comment_changed_email' => 'Komentár sa zmenil', 'document_comment_changed_email_body' => 'Komentár sa zmenil @@ -407,6 +412,7 @@ Nový komentár: [new_comment] Nadradená zložka: [folder_path] Užívateľ: [username] URL: [url]', +'document_comment_changed_email_body_html' => '', 'document_comment_changed_email_subject' => '[sitename]: [name] - Komentár sa zmenil', 'document_content_missing' => '', 'document_count' => 'PoÄet dokumentov', @@ -416,6 +422,7 @@ URL: [url]', Dokument: [name] Nadradená zložka: [folder_path] Používateľ: [username]', +'document_deleted_email_body_html' => '', 'document_deleted_email_subject' => '[sitename]: [name] - Dokument bol zmazaný', 'document_duplicate_name' => 'Duplicitný názov dokumentu', 'document_files' => '', @@ -435,6 +442,7 @@ PredoÅ¡lá zložka: [old_folder_path] Nová zložka: [new_folder_path] Užívateľ: [username] URL: [url]', +'document_moved_email_body_html' => '', 'document_moved_email_subject' => '[sitename]: [name] - Dokument bol presunutý', 'document_not_checkedout' => 'Document is not checked out.', 'document_renamed_email' => 'Dokument premenovany', @@ -444,6 +452,7 @@ Nadradená zložka: [folder_path] Starý názov: [old_name] Používateľ: [username] URL: [url]', +'document_renamed_email_body_html' => '', 'document_renamed_email_subject' => '[sitename]: [name] - Dokument bol premenovaný', 'document_status_changed_email' => 'Stav dokumentu zmenený', 'document_status_changed_email_body' => 'Stav dokumentu zmenený @@ -452,6 +461,7 @@ Stav: [status] Nadradená zložka: [folder_path] Používateľ: [username] URL: [url]', +'document_status_changed_email_body_html' => '', 'document_status_changed_email_subject' => '[sitename]: [name] - Stav dokumentu zmenený', 'document_title' => 'Dokument \'[documentname]\'', 'document_transfered_email_body' => 'Transfer dokumentu inému používateľovi @@ -460,6 +470,7 @@ Nový vlastník: [newuser] Nadradená zložka: [folder_path] Používateľ: [username] URL: [url]', +'document_transfered_email_body_html' => '', 'document_transfered_email_subject' => '[sitename]: [name] - Transfer dokumentu', 'document_updated_email' => 'Dokument aktualizovany', 'document_updated_email_body' => 'Dokument aktualizovaný @@ -469,6 +480,7 @@ Užívateľ: [username] Komentár: [comment] Komentár verzie: [version_comment] URL: [url]', +'document_updated_email_body_html' => '', 'document_updated_email_subject' => '[sitename]: [name] - Dokument bol aktualizovaný', 'document_versions' => '', 'does_not_expire' => 'PlatnosÅ¥ nikdy nevyprší', @@ -598,6 +610,7 @@ Dokument: [name] Nadradená zložka: [folder_path] Užívateľ: [username] URL: [url]', +'expiry_changed_email_body_html' => '', 'expiry_changed_email_subject' => '[sitename]: [name] - Dátum vyprÅ¡ania platnosti bol zmenený', 'export' => 'ExportovaÅ¥', 'export_user_list_csv' => '', @@ -637,6 +650,7 @@ Nová hodnota: [attribute_new_value] Nadradená zložka: [folder_path] Užívateľ: [username] URL: [url]', +'folder_attribute_changed_email_body_html' => '', 'folder_attribute_changed_email_subject' => '[sitename]: [name] - Atribút zmenený', 'folder_comment_changed_email' => 'Komentár sa zmenil', 'folder_comment_changed_email_body' => 'Komentár zmenený @@ -646,6 +660,7 @@ Nový komentár: [new_comment] Nadradená zložka: [folder_path] Používateľ: [username] URL: [url]', +'folder_comment_changed_email_body_html' => '', 'folder_comment_changed_email_subject' => '[sitename]: [name] - Komentár zmenený', 'folder_contents' => 'Obsah zložky', 'folder_deleted_email' => 'Zložka zmazaná', @@ -654,6 +669,7 @@ Zložka: [name] Nadradená zložka: [folder_path] Užívateľ: [username] URL: [url]', +'folder_deleted_email_body_html' => '', 'folder_deleted_email_subject' => '[sitename]: [name] - Zložka bola odstránená', 'folder_infos' => 'Informácie o zložke', 'folder_moved_email' => 'Zložka presunutá', @@ -663,6 +679,7 @@ PredoÅ¡lá zložka: [old_folder_path] Nová zložka: [new_folder_path] Používateľ: [username] URL: [url]', +'folder_moved_email_body_html' => '', 'folder_moved_email_subject' => '[sitename]: [name] - Zložka bola presunutá', 'folder_renamed_email' => 'Zložka premenovaná', 'folder_renamed_email_body' => 'Zložka bola premenovaná @@ -671,6 +688,7 @@ Nadradená zložka: [folder_path] PredoÅ¡lý názov: [old_name] Používateľ: [username] URL: [url]', +'folder_renamed_email_body_html' => '', 'folder_renamed_email_subject' => '[sitename]: [name] - Zložka bola premenovaná', 'folder_title' => 'Zložka \'[foldername]\'', 'foot_note' => '', @@ -914,6 +932,7 @@ Komentár: [comment] Komentár k verzii: [version_comment] Používateľ: [username] URL: [url]', +'new_document_email_body_html' => '', 'new_document_email_subject' => '[sitename]: [folder_name] - Nový dokument', 'new_file_email' => 'Nová príloha', 'new_file_email_body' => 'Nová príloha @@ -922,6 +941,7 @@ Dokument: [document] Komentár: [comment] Používateľ: [username] URL: [url]', +'new_file_email_body_html' => '', 'new_file_email_subject' => '[sitename]: [document] - Nová príloha', 'new_folder' => 'Nová zložka', 'new_password' => 'Nové heslo', @@ -932,6 +952,7 @@ Nadradená zložka: [folder_path] Komentár: [comment] Používateľ: [username] URL: [url]', +'new_subfolder_email_body_html' => '', 'new_subfolder_email_subject' => '[sitename]: [name] - Nová zložka', 'new_user_image' => 'Nový obrázok', 'next_revision_abbr' => '', @@ -945,6 +966,7 @@ Meno: [name] Nadradená zložka: [folder_path] Používateľ: [username] URL: [url]', +'notify_added_email_body_html' => '', 'notify_added_email_subject' => '[sitename]: [name] - Pridané do zoznamu notifikácií', 'notify_deleted_email' => 'Boli ste odstránení z notifikaÄného zoznamu', 'notify_deleted_email_body' => 'Odstránené z notifikaÄného zoznamu @@ -952,6 +974,7 @@ Meno: [name] Nadradená zložka: [folder_path] Používateľ: [username] URL: [url]', +'notify_deleted_email_body_html' => '', 'notify_deleted_email_subject' => '[sitename]: [name] - Odstránené z notifikaÄného zoznamu', 'not_subscribed' => '', 'november' => 'November', @@ -988,6 +1011,7 @@ URL: [url]', 'no_user_image' => 'nebol nájdený žiadny obrázok', 'no_version_check' => 'Checking for a new version of SeedDMS has failed! This could be caused by allow_url_fopen being set to 0 in your php configuration.', 'no_version_modification' => 'Žiadne zmeny', +'no_workflows' => '', 'no_workflow_available' => 'Nie je k dispozícii žiaden workflow', 'objectcheck' => 'Kontrola Adresárov/Dokumentov', 'object_check_critical' => 'Kritické chyby', @@ -1009,6 +1033,7 @@ PredoÅ¡lý vlastník: [old_owner] Nový vlastník: [new_owner] Používateľ: [username] URL: [url]', +'ownership_changed_email_body_html' => '', 'ownership_changed_email_subject' => '[sitename]: [name] - Vlastník zmenený', 'password' => 'Heslo', 'password_already_used' => 'Heslo sa už používa', @@ -1026,6 +1051,7 @@ This can be done by clicking on the following link: [url_prefix]out/out.ChangePassword.php?hash=[hash] If you have still problems to login, then please contact your administrator.', +'password_forgotten_email_body_html' => '', 'password_forgotten_email_subject' => '[sitename]: Zabudnuté heslo', 'password_forgotten_send_hash' => 'Instructions on how to proceed has been send to the user\'s email address', 'password_forgotten_text' => 'Fill out the form below and follow the instructions in the email, which will be sent to you.', @@ -1079,6 +1105,7 @@ Nadradená zložka: [folder_path] Recipient: [recipient] Používateľ: [username] URL: [url]', +'receipt_deletion_email_body_html' => '', 'receipt_deletion_email_subject' => '[sitename]: [name] - Recipient odstránený', 'receipt_log' => 'Reception Log', 'receipt_request_email_body' => 'Reception request @@ -1087,8 +1114,11 @@ Verzia: [version] Nadradená zložka: [folder_path] Používateľ: [username] URL: [url]', +'receipt_request_email_body_html' => '', 'receipt_request_email_subject' => '[sitename]: [name] - Reception request', 'receipt_status' => 'Stav', +'receipt_submit_email_body' => '', +'receipt_submit_email_subject' => '', 'receipt_summary' => 'Receipt summary', 'receipt_update_failed' => 'Acknowledging reception failed', 'recent_uploads' => 'Naposledy nahrané súbory', @@ -1108,6 +1138,7 @@ URL: [url]', Dokument: [document] Používateľ: [username] URL: [url]', +'removed_file_email_body_html' => '', 'removed_file_email_subject' => '[sitename]: [document] - Príloha bola odstránená', 'removed_recipient' => 'bol odstránený zo zoznamu recipientov.', 'removed_reviewer' => 'bol odstránený zo zoznamu recenzentov.', @@ -1119,6 +1150,7 @@ Workflow: [workflow] Parent folder: [folder_path] User: [username] URL: [url]', +'removed_workflow_email_body_html' => '', 'removed_workflow_email_subject' => '[sitename]: [name] - Removed workflow from document version', 'removeFolderFromDropFolder' => 'Po importe odstrániÅ¥ zložku', 'remove_approval_log' => '', @@ -1127,6 +1159,7 @@ URL: [url]', 'repaired' => 'opravené', 'repairing_objects' => 'Oprava dokumentov a zložiek.', 'replace_content_email_body' => '', +'replace_content_email_body_html' => '', 'replace_content_email_subject' => '', 'request_workflow_action_email_body' => 'The workflow has reached a state which requires your action. Document: [name] @@ -1136,6 +1169,7 @@ Current state: [current_state] Parent folder: [folder_path] User: [username] URL: [url]', +'request_workflow_action_email_body_html' => '', 'request_workflow_action_email_subject' => '[sitename]: [name] - Workflow action required', 'reset_checkout' => 'Finish Check out', 'restrict_access' => 'Žiadny prístup k', @@ -1149,6 +1183,7 @@ Subworkflow: [subworkflow] Parent folder: [folder_path] User: [username] URL: [url]', +'return_from_subworkflow_email_body_html' => '', 'return_from_subworkflow_email_subject' => '[sitename]: [name] - Return from subworkflow', 'reverse_links' => 'Dokumenty, ktoré majú odkaz na aktuálny dokument', 'reviewers' => 'Recenzenti', @@ -1169,6 +1204,7 @@ Verzia: [version] Nadradená zložka: [folder_path] Používateľ: [username] URL: [url]', +'review_deletion_email_body_html' => '', 'review_deletion_email_subject' => '[sitename]: [name] - Požiadavka na recenziu zmazaná', 'review_file' => 'Súbor', 'review_group' => 'Skupina recenzie', @@ -1180,6 +1216,7 @@ Verzia: [version] Nadradená zložka: [folder_path] Používateľ: [username] URL: [url]', +'review_request_email_body_html' => '', 'review_request_email_subject' => '[sitename]: [name] - Požiadavka na recenziu', 'review_status' => 'Stav recenzie', 'review_submit_email' => 'Odoslaná recenzia', @@ -1191,6 +1228,7 @@ Komentár: [comment] Nadradená zložka: [folder_path] Používateľ: [username] URL: [url]', +'review_submit_email_body_html' => '', 'review_submit_email_subject' => '[sitename]: [name] - Odoslaná recenzia', 'review_summary' => 'Zhrnutie recenzie', 'review_update_failed' => 'Chyba pri aktualizácii stavu recenzie. Aktualizácia zlyhala.', @@ -1215,9 +1253,11 @@ Verzia: [version] Nadradený prieÄinok: [folder_path] Používateľ: [username] URL: [url]', +'revision_request_email_body_html' => '', 'revision_request_email_subject' => '[sitename]: [name] - ŽiadosÅ¥ o revíziu', 'revision_status' => 'Stav', 'revision_submit_email_body' => '', +'revision_submit_email_body_html' => '', 'revision_submit_email_subject' => '', 'revision_summary' => '', 'revisors' => 'Revisors', @@ -1231,6 +1271,7 @@ Workflow: [workflow] Parent folder: [folder_path] User: [username] URL: [url]', +'rewind_workflow_email_body_html' => '', 'rewind_workflow_email_subject' => '[sitename]: [name] - Workflow was rewinded', 'rewind_workflow_warning' => 'If you rewind a workflow to its initial state, then the whole workflow log for this document will be deleted and cannot be recovered.', 'rm_attrdef' => 'OdstrániÅ¥ definíciu atribútu', @@ -1273,6 +1314,7 @@ Subworkflow: [subworkflow] Parent folder: [folder_path] User: [username] URL: [url]', +'run_subworkflow_email_body_html' => '', 'run_subworkflow_email_subject' => '[sitename]: [name] - Subworkflow was started', 'ru_RU' => 'RuÅ¡tina', 'saturday' => 'Sobota', @@ -1969,6 +2011,7 @@ Current state: [current_state] Parent folder: [folder_path] User: [username] URL: [url]', +'transition_triggered_email_body_html' => '', 'transition_triggered_email_subject' => '[sitename]: [name] - Workflow transition triggered', 'transmittal' => 'Transmittal', 'transmittalitem_removed' => 'Transmittal item removed', @@ -2050,6 +2093,7 @@ Verzia: [version] Nadradená zložka: [folder_path] Používateľ: [username] URL: [url]', +'version_deleted_email_body_html' => '', 'version_deleted_email_subject' => '[sitename]: [name] - Verzia bola odstránená', 'version_info' => 'Informácie o verzii', 'view' => 'ZobraziÅ¥', diff --git a/languages/sv_SE/lang.inc b/languages/sv_SE/lang.inc index d9a2e51df..4fa34fd6b 100644 --- a/languages/sv_SE/lang.inc +++ b/languages/sv_SE/lang.inc @@ -51,6 +51,7 @@ Dokument: [name] Överordnade katalog: [folder_path] Användare: [username] URL: [url]', +'access_permission_changed_email_body_html' => '', 'access_permission_changed_email_subject' => '[sitename]: [name] - Ändrade rättigheter', 'according_settings' => 'enl. inställningarna', 'action' => 'Ã…tgärd', @@ -118,6 +119,7 @@ Version: [version] Överordnad katalog: [folder_path] Användare: [username] URL: [url]', +'approval_deletion_email_body_html' => '', 'approval_deletion_email_subject' => '[sitename]: [name] - Godkännandet har raderats', 'approval_file' => 'Fil', 'approval_group' => 'Grupp av personer som godkänner', @@ -140,6 +142,7 @@ Status: [status] Kommentar: [comment] Användare: [username] URL: [url]', +'approval_submit_email_body_html' => '', 'approval_submit_email_subject' => '[sitename]: [name] - Skicka godkännande', 'approval_summary' => 'Sammanfattning av godkännande', 'approval_update_failed' => 'Fel vid uppdatering av godkännande-status. Status uppdaterades inte.', @@ -201,6 +204,7 @@ New value: [attribute_new_value] Överordnad katalog: [folder_path] Användare: [username] URL: [url]', +'attribute_changed_email_body_html' => '', 'attribute_changed_email_subject' => '[sitename]: [name] - Ändrat attribut', 'attribute_count' => 'Antal användningar', 'attribute_value' => 'Attributvärde', @@ -392,6 +396,7 @@ URL: [url]', 'document_already_checkedout' => 'Dokumentet är redan utcheckat', 'document_already_locked' => 'Detta dokument är redan lÃ¥st', 'document_attribute_changed_email_body' => '', +'document_attribute_changed_email_body_html' => '', 'document_attribute_changed_email_subject' => '', 'document_comment_changed_email' => 'Kommentar ändrad', 'document_comment_changed_email_body' => 'Kommentar ändrat @@ -401,6 +406,7 @@ Kommentar: [new_comment] Överordnade katalog: [folder_path] Användare: [username] URL: [url]', +'document_comment_changed_email_body_html' => '', 'document_comment_changed_email_subject' => '[sitename]: [name] - Kommentar ändrat', 'document_content_missing' => '', 'document_count' => 'Antal dokument', @@ -410,6 +416,7 @@ URL: [url]', Dokument: [name] Överordnade katalog: [folder_path] Användare: [username]', +'document_deleted_email_body_html' => '', 'document_deleted_email_subject' => '[sitename]: [name] - Dokument har raderats', 'document_duplicate_name' => 'Dubblett av dokumentnamn', 'document_files' => '', @@ -429,6 +436,7 @@ Tidigare katalog: [old_folder_path] Ny katalog: [new_folder_path] Användare: [username] URL: [url]', +'document_moved_email_body_html' => '', 'document_moved_email_subject' => '[sitename]: [name] - Dokument har flyttats', 'document_not_checkedout' => 'Dokumentet är inte utcheckat', 'document_renamed_email' => 'Dokument har bytt namn', @@ -438,6 +446,7 @@ Dokument: [name] Tidigare namn: [old_name] Användare: [username] URL: [url]', +'document_renamed_email_body_html' => '', 'document_renamed_email_subject' => '[sitename]: [name] - Dokument har bytt namn', 'document_status_changed_email' => 'Dokumentstatus ändrad', 'document_status_changed_email_body' => 'Dokument status ändrad @@ -446,6 +455,7 @@ Status: [status] Överordnade katalog: [folder_path] Användare: [username] URL: [url]', +'document_status_changed_email_body_html' => '', 'document_status_changed_email_subject' => '[sitename]: [name] - Dokument status ändrad', 'document_title' => 'Dokument \'[documentname]\'', 'document_transfered_email_body' => 'Dokument övedrfört till annan användare @@ -454,6 +464,7 @@ Ny ägare: [newuser] Överordnad katalog: [folder_path] Användare: [username] URL: [url]', +'document_transfered_email_body_html' => '', 'document_transfered_email_subject' => '[sitename]: [name] - Flytta dokument', 'document_updated_email' => 'Dokument har uppdaterats', 'document_updated_email_body' => 'Dokument har uppdaterats @@ -463,6 +474,7 @@ Användare: [username] Kommentar: [comment] Versionskommentar: [version_comment] URL: [url]', +'document_updated_email_body_html' => '', 'document_updated_email_subject' => '[sitename]: [name] - Dokument har uppdaterats', 'document_versions' => '', 'does_not_expire' => 'Löper aldrig ut', @@ -592,6 +604,7 @@ Dokument: [name] Överordnade katalog: [folder_path] Användare: [username] URL: [url]', +'expiry_changed_email_body_html' => '', 'expiry_changed_email_subject' => '[sitename]: [name] - UtgÃ¥ngsdatum ändrat', 'export' => 'Exportera', 'export_user_list_csv' => '', @@ -624,6 +637,7 @@ URL: [url]', 'folders_and_documents_statistic' => 'InnehÃ¥llsöversikt', 'folders_with_notification' => 'Kataloger med meddelandefunktion', 'folder_attribute_changed_email_body' => '', +'folder_attribute_changed_email_body_html' => '', 'folder_attribute_changed_email_subject' => '', 'folder_comment_changed_email' => 'Kommentar har ändrats', 'folder_comment_changed_email_body' => 'Kommentar har ändrats @@ -633,6 +647,7 @@ Kommentar: [new_comment] Överordnad katalog: [folder_path] Användare: [username] URL: [url]', +'folder_comment_changed_email_body_html' => '', 'folder_comment_changed_email_subject' => '[sitename]: [name] - Kommentar har ändrats', 'folder_contents' => 'KataloginnehÃ¥ll', 'folder_deleted_email' => 'Katalog har tagits bort', @@ -641,6 +656,7 @@ Katalog: [name] Överordnade katalog: [folder_path] Användare: [username] URL: [url]', +'folder_deleted_email_body_html' => '', 'folder_deleted_email_subject' => '[sitename]: [name] - Katalog har tagits bort', 'folder_infos' => 'Kataloginformation', 'folder_moved_email' => 'Katalog har flyttats', @@ -650,6 +666,7 @@ Tidigare katalog: [old_folder_path] Ny katalog: [new_folder_path] Användare: [username] URL: [url]', +'folder_moved_email_body_html' => '', 'folder_moved_email_subject' => '[sitename]: [name] - Katalog har flyttats', 'folder_renamed_email' => 'Katalog har bytt namn', 'folder_renamed_email_body' => 'Katalog har bytt namn @@ -658,6 +675,7 @@ Katalog: [name] Tidigare namn: [old_name] User: [username] URL: [url]', +'folder_renamed_email_body_html' => '', 'folder_renamed_email_subject' => '[sitename]: [name] - Katalog har bytt namn', 'folder_title' => 'Katalog \'[foldername]\'', 'foot_note' => '', @@ -901,6 +919,7 @@ Kommentar: [comment] Versions kommentar: [version_comment] Användare: [username] URL: [url]', +'new_document_email_body_html' => '', 'new_document_email_subject' => '[sitename]: [folder_name] - Nytt dokument', 'new_file_email' => 'Ny bilaga', 'new_file_email_body' => 'Ny bilaga @@ -909,6 +928,7 @@ Dokument: [document] Kommentar: [comment] Användare: [username] URL: [url]', +'new_file_email_body_html' => '', 'new_file_email_subject' => '[sitename]: [document] - Ny bilaga', 'new_folder' => 'Ny katalog', 'new_password' => 'Nytt lösenord', @@ -919,6 +939,7 @@ Namn: [name] Kommentar: [comment] Användare: [username] URL: [url]', +'new_subfolder_email_body_html' => '', 'new_subfolder_email_subject' => '[sitename]: [name] - Ny katalog', 'new_user_image' => 'Ny användarbild', 'next_revision_abbr' => '', @@ -932,6 +953,7 @@ Namn: [name] Överordnade katalog: [folder_path] Användare: [username] URL: [url]', +'notify_added_email_body_html' => '', 'notify_added_email_subject' => '[sitename]: [name] - Adderad till meddelandelista', 'notify_deleted_email' => 'Du har tagits bort frÃ¥n meddelandelistan', 'notify_deleted_email_body' => 'Borttagen frÃ¥n meddelandelistan @@ -939,6 +961,7 @@ Namn: [name] Överordnad katalog: [folder_path] Användare: [username] URL: [url]', +'notify_deleted_email_body_html' => '', 'notify_deleted_email_subject' => '[sitename]: [name] - Borttagen frÃ¥n meddelandelistan', 'not_subscribed' => '', 'november' => 'November', @@ -975,6 +998,7 @@ URL: [url]', 'no_user_image' => 'Ingen bild hittades', 'no_version_check' => 'Fel vid sökning efter ny version av SeedDMS! Orsaken kan vara att allow_url_fopen i din php konfiguration är satt till 0.', 'no_version_modification' => 'Ingen versionsförändring', +'no_workflows' => '', 'no_workflow_available' => 'Arbetsflöde saknas', 'objectcheck' => 'Kontroll av Katalog/Dokument', 'object_check_critical' => 'Kritiska fel', @@ -996,6 +1020,7 @@ Tidigare ägare: [old_owner] Ny ägare: [new_owner] Användare: [username] URL: [url]', +'ownership_changed_email_body_html' => '', 'ownership_changed_email_subject' => '[sitename]: [name] - Ägare har ändrats', 'password' => 'Lösenord', 'password_already_used' => 'Lösenordet används redan', @@ -1010,6 +1035,7 @@ vi fick en förfrÃ¥gan om att ändra ditt lösenord. Du kan göra det genom att [url_prefix]out/out.ChangePassword.php?hash=[hash] Om du fortfarande har problem med inloggningen, kontakta administratören.', +'password_forgotten_email_body_html' => '', 'password_forgotten_email_subject' => '[sitename]: Glömt lösenord', 'password_forgotten_send_hash' => 'En beskrivning av vad du mÃ¥ste göra har nu skickats till din e-postadress.', 'password_forgotten_text' => 'Fyll i formuläret nedan och följ instruktionerna som skickas till din e-postadress.', @@ -1057,11 +1083,15 @@ Om du fortfarande har problem med inloggningen, kontakta administratören.', 'receipts_without_group' => '', 'receipts_without_user' => '', 'receipt_deletion_email_body' => '', +'receipt_deletion_email_body_html' => '', 'receipt_deletion_email_subject' => '', 'receipt_log' => '', 'receipt_request_email_body' => '', +'receipt_request_email_body_html' => '', 'receipt_request_email_subject' => '', 'receipt_status' => 'Status', +'receipt_submit_email_body' => '', +'receipt_submit_email_subject' => '', 'receipt_summary' => '', 'receipt_update_failed' => '', 'recent_uploads' => 'Senast uppladdat', @@ -1081,6 +1111,7 @@ Om du fortfarande har problem med inloggningen, kontakta administratören.', Dokument: [document] Användare: [username] URL: [url]', +'removed_file_email_body_html' => '', 'removed_file_email_subject' => '[sitename]: [document] - Borttagen bilaga', 'removed_recipient' => 'har tagits bort frÃ¥n meddelandelistan.', 'removed_reviewer' => 'har tagits bort frÃ¥n listan med personer som ska granska dokumentet.', @@ -1092,6 +1123,7 @@ Arbetsflöde: [workflow] Överordnad katalog: [folder_path] Användare: [username] URL: [url]', +'removed_workflow_email_body_html' => '', 'removed_workflow_email_subject' => '[sitename]: [name] - Arbetsflöde borttaget frÃ¥n dokumentversion', 'removeFolderFromDropFolder' => 'Radera katalog efter import', 'remove_approval_log' => '', @@ -1100,6 +1132,7 @@ URL: [url]', 'repaired' => 'reparerat', 'repairing_objects' => 'Reparerar dokument och kataloger.', 'replace_content_email_body' => '', +'replace_content_email_body_html' => '', 'replace_content_email_subject' => '', 'request_workflow_action_email_body' => 'Arbetsflödet har nÃ¥tt en status som kräver Ã¥tgärd av dig. Dokument: [name] @@ -1109,6 +1142,7 @@ Status: [current_state] Överordnad katalog: [folder_path] Användare: [username] URL: [url]', +'request_workflow_action_email_body_html' => '', 'request_workflow_action_email_subject' => '[sitename]: [name] - Ã…tgärd krävs i arbetsflödet', 'reset_checkout' => 'Slutför utcheckning', 'restrict_access' => 'Ingen Ã¥tkomst till', @@ -1122,6 +1156,7 @@ Underliggande arbetsflöde: [subworkflow] Overordnade katalog: [folder_path] Användare: [username] URL: [url]', +'return_from_subworkflow_email_body_html' => '', 'return_from_subworkflow_email_subject' => '[sitename]: [name] - Tillbaka from underliggande arbetsflöde', 'reverse_links' => 'Dokument som är länkat till aktuell dokument.', 'reviewers' => 'Granska', @@ -1142,6 +1177,7 @@ Version: [version] Överordnad katalog: [folder_path] Användare: [username] URL: [url]', +'review_deletion_email_body_html' => '', 'review_deletion_email_subject' => '[sitename]: [name] - Begäran om granskning har tagits bort', 'review_file' => 'Fil', 'review_group' => 'Grupp som granskar', @@ -1153,6 +1189,7 @@ Version: [version] Överordnad katalog: [folder_path] Användare: [username] URL: [url]', +'review_request_email_body_html' => '', 'review_request_email_subject' => '[sitename]: [name] - Begäran om granskning', 'review_status' => 'Status för granskningen', 'review_submit_email' => 'Skickat granskning', @@ -1164,6 +1201,7 @@ Kommentar: [comment] Överordnade katalog: [folder_path] Användare: [username] URL: [url]', +'review_submit_email_body_html' => '', 'review_submit_email_subject' => '[sitename]: [name] - Skickat granskning', 'review_summary' => 'Sammanfattning av granskningen', 'review_update_failed' => 'Fel vid uppdatering av granskningsstatus. Kunde inte uppdatera.', @@ -1188,9 +1226,11 @@ Version: [version] Överordnad katalog: [folder_path] Användare: [username] URL: [url]', +'revision_request_email_body_html' => '', 'revision_request_email_subject' => '[sitename]: [name] - Begäran om revision', 'revision_status' => 'Status', 'revision_submit_email_body' => '', +'revision_submit_email_body_html' => '', 'revision_submit_email_subject' => '', 'revision_summary' => '', 'revisors' => 'Reviderare', @@ -1204,6 +1244,7 @@ Arbetsflöde: [workflow] Överordnade katalog: [folder_path] Användare: [username] URL: [url]', +'rewind_workflow_email_body_html' => '', 'rewind_workflow_email_subject' => '[sitename]: [name] - Ã…terställ arbetsflödet', 'rewind_workflow_warning' => 'Om du Ã¥terställer ett arbetsflöde till sin ursprungliga status, kommer hela loggboken för dokumentets arbetsflöde att raderas och kan dÃ¥ inte Ã¥terställas.', 'rm_attrdef' => 'Ta bort attributdefinition', @@ -1246,6 +1287,7 @@ Underliggande arbetsflöde: [subworkflow] Överordnade katalog: [folder_path] Användare: [username] URL: [url]', +'run_subworkflow_email_body_html' => '', 'run_subworkflow_email_subject' => '[sitename]: [name] - Under-arbetsflöde utförs', 'ru_RU' => 'Ryska', 'saturday' => 'Lördag', @@ -1942,6 +1984,7 @@ Aktuell status: [current_state] Överordnade katalog: [folder_path] Användare: [username] URL: [url]', +'transition_triggered_email_body_html' => '', 'transition_triggered_email_subject' => '[sitename]: [name] - ArbetsflödesövergÃ¥ng utlöstes', 'transmittal' => 'Meddelande', 'transmittalitem_removed' => 'Komponent i meddelande borttaget', @@ -2023,6 +2066,7 @@ Version: [version] Överordnad katalog: [folder_path] Användare: [username] URL: [url]', +'version_deleted_email_body_html' => '', 'version_deleted_email_subject' => '[sitename]: [name] - Version borttagen', 'version_info' => 'Versionsinformation', 'view' => 'Vy', diff --git a/languages/tr_TR/lang.inc b/languages/tr_TR/lang.inc index 2afd0c8b1..b19ed0b68 100644 --- a/languages/tr_TR/lang.inc +++ b/languages/tr_TR/lang.inc @@ -49,6 +49,7 @@ $text = array( Üst klasör: [folder_path] Kullanıcı: [username] URL: [url]', +'access_permission_changed_email_body_html' => '', 'access_permission_changed_email_subject' => '[sitename]: [name] - İzni deÄŸiÅŸti', 'according_settings' => 'ilgili ayarlar', 'action' => 'Eylem', @@ -111,6 +112,7 @@ URL: [url]', 'approvals_without_user' => '', 'approval_deletion_email' => 'Onay talebi silindi', 'approval_deletion_email_body' => '', +'approval_deletion_email_body_html' => '', 'approval_deletion_email_subject' => '', 'approval_file' => '', 'approval_group' => 'Onay Grubu', @@ -133,6 +135,7 @@ Durum: [status] Açıklama: [comment] Kullanıcı: [username] URL: [url]', +'approval_submit_email_body_html' => '', 'approval_submit_email_subject' => '[sitename]: [name] - Onay isteÄŸi gönder', 'approval_summary' => 'Onay Özeti', 'approval_update_failed' => 'Onay durumu güncellenirken hata oluÅŸtu. Güncelleme baÅŸarısız.', @@ -194,6 +197,7 @@ New value: [attribute_new_value] Üst klasör: [folder_path] Kullanıcı: [username] URL: [url]', +'attribute_changed_email_body_html' => '', 'attribute_changed_email_subject' => '[sitename]: [name] - Nitelik deÄŸiÅŸti', 'attribute_count' => 'Kullanım sayısı', 'attribute_value' => 'NiteliÄŸin deÄŸeri', @@ -385,6 +389,7 @@ URL: [url]', 'document_already_checkedout' => '', 'document_already_locked' => 'Bu doküman zaten kilitli', 'document_attribute_changed_email_body' => '', +'document_attribute_changed_email_body_html' => '', 'document_attribute_changed_email_subject' => '', 'document_comment_changed_email' => 'Açıklama deÄŸiÅŸti', 'document_comment_changed_email_body' => 'Açıklama deÄŸiÅŸti @@ -394,6 +399,7 @@ Açıklama: [new_comment] Üst klasör: [folder_path] Kullanıcı: [username] URL: [url]', +'document_comment_changed_email_body_html' => '', 'document_comment_changed_email_subject' => '[sitename]: [name] - Açıklama deÄŸiÅŸti', 'document_content_missing' => '', 'document_count' => '', @@ -403,6 +409,7 @@ URL: [url]', Doküman: [name] Üst klasör: [folder_path] Kullanıcı: [username]', +'document_deleted_email_body_html' => '', 'document_deleted_email_subject' => '[sitename]: [name] - Doküman silindi', 'document_duplicate_name' => 'Mükerrer doküman ismi', 'document_files' => '', @@ -422,6 +429,7 @@ Klasörün önceki yeri: [old_folder_path] Klasörün yeni yeri: [new_folder_path] Kullanıcı: [username] URL: [url]', +'document_moved_email_body_html' => '', 'document_moved_email_subject' => '[sitename]: [name] - Doküman taşındı', 'document_not_checkedout' => '', 'document_renamed_email' => 'Dokümanın adı deÄŸiÅŸtirildi', @@ -431,6 +439,7 @@ Doküman: [name] Önceki adı: [old_name] Kullanıcı: [username] URL: [url]', +'document_renamed_email_body_html' => '', 'document_renamed_email_subject' => '[sitename]: [name] - Dokümanın adı deÄŸiÅŸtirildi', 'document_status_changed_email' => 'Dokümanın durumu deÄŸiÅŸti', 'document_status_changed_email_body' => 'Dokümanın durumu deÄŸiÅŸti @@ -439,9 +448,11 @@ Durum: [status] Üst klasör: [folder_path] Kullanıcı: [username] URL: [url]', +'document_status_changed_email_body_html' => '', 'document_status_changed_email_subject' => '[sitename]: [name] - Doküman durumu deÄŸiÅŸti', 'document_title' => 'Doküman \'[documentname]\'', 'document_transfered_email_body' => '', +'document_transfered_email_body_html' => '', 'document_transfered_email_subject' => '', 'document_updated_email' => 'Doküman güncellendi', 'document_updated_email_body' => 'Doküman güncellendi @@ -451,6 +462,7 @@ Kullanıcı: [username] Açıklama: [comment] Versiyon açıklaması: [version_comment] URL: [url]', +'document_updated_email_body_html' => '', 'document_updated_email_subject' => '[sitename]: [name] - Doküman güncellendi', 'document_versions' => '', 'does_not_expire' => 'Süresiz', @@ -580,6 +592,7 @@ Doküman: [name] Üst klasör: [folder_path] Kullanıcı: [username] URL: [url]', +'expiry_changed_email_body_html' => '', 'expiry_changed_email_subject' => '[sitename]: [name] - BitiÅŸ tarihi deÄŸiÅŸti', 'export' => '', 'export_user_list_csv' => 'Kullanıcıları CSV olarak dışa aktar', @@ -612,6 +625,7 @@ URL: [url]', 'folders_and_documents_statistic' => 'İçeriÄŸe Bakış', 'folders_with_notification' => '', 'folder_attribute_changed_email_body' => '', +'folder_attribute_changed_email_body_html' => '', 'folder_attribute_changed_email_subject' => '', 'folder_comment_changed_email' => 'Açıklama deÄŸiÅŸti', 'folder_comment_changed_email_body' => 'Açıklama deÄŸiÅŸti @@ -621,6 +635,7 @@ Açıklama: [new_comment] Üst klasör: [folder_path] Kullanıcı: [username] URL: [url]', +'folder_comment_changed_email_body_html' => '', 'folder_comment_changed_email_subject' => '[sitename]: [name] - Açıklama deÄŸiÅŸti', 'folder_contents' => 'Klasör İçeriÄŸi', 'folder_deleted_email' => 'Klasör silindi', @@ -629,6 +644,7 @@ Klasör: [name] Üst klasör: [folder_path] Kullanıcı: [username] URL: [url]', +'folder_deleted_email_body_html' => '', 'folder_deleted_email_subject' => '[sitename]: [name] - Klasör silindi', 'folder_infos' => 'Klasör Bilgisi', 'folder_moved_email' => 'Klasör Taşındı', @@ -638,6 +654,7 @@ Klasör: [name] Yeni klasör: [new_folder_path] Kullanıcı: [username] URL: [url]', +'folder_moved_email_body_html' => '', 'folder_moved_email_subject' => '[sitename]: [name] - Klasör Taşındı', 'folder_renamed_email' => 'Klasörün adı deÄŸiÅŸti', 'folder_renamed_email_body' => 'Klasörün adı deÄŸiÅŸti @@ -646,6 +663,7 @@ Klasör: [name] Önceki adı: [old_name] Kullanıcı: [username] URL: [url]', +'folder_renamed_email_body_html' => '', 'folder_renamed_email_subject' => '[sitename]: [name] - Klasörün adı deÄŸiÅŸti', 'folder_title' => 'Klasör \'[foldername]\'', 'foot_note' => '', @@ -889,6 +907,7 @@ Açıklama: [comment] Versiyon açıklaması: [version_comment] Kullanıcı: [username] URL: [url]', +'new_document_email_body_html' => '', 'new_document_email_subject' => '[sitename]: [folder_name] - Yeni doküman', 'new_file_email' => 'Yeni ek', 'new_file_email_body' => 'Yeni ek @@ -897,6 +916,7 @@ Doküman: [document] Açıklama: [comment] Kullanıcı: [username] URL: [url]', +'new_file_email_body_html' => '', 'new_file_email_subject' => '[sitename]: [document] - Yeni ek', 'new_folder' => 'Yeni klasör', 'new_password' => 'Yeni parola', @@ -907,6 +927,7 @@ URL: [url]', Açıklama: [comment] Kullanıcı: [username] URL: [url]', +'new_subfolder_email_body_html' => '', 'new_subfolder_email_subject' => '[sitename]: [name] - Yeni klasör', 'new_user_image' => 'Yeni resim', 'next_revision_abbr' => '', @@ -920,6 +941,7 @@ URL: [url]', Üst klasör: [folder_path] Kullanıcı: [username] URL: [url]', +'notify_added_email_body_html' => '', 'notify_added_email_subject' => '[sitename]: [name] - Bildirim listesine eklendiniz', 'notify_deleted_email' => 'Bildirim listesinden çıkarıldınız', 'notify_deleted_email_body' => 'Bildirim listesinden çıkarıldınız @@ -927,6 +949,7 @@ URL: [url]', Üst klasör: [folder_path] Kullanıcı: [username] URL: [url]', +'notify_deleted_email_body_html' => '', 'notify_deleted_email_subject' => '[sitename]: [name] - Bildirim listesinden çıkarıldınız', 'not_subscribed' => '', 'november' => 'Kasım', @@ -963,6 +986,7 @@ URL: [url]', 'no_user_image' => 'Resim bulunamadı', 'no_version_check' => 'SeedDMS yeni versiyon kontrolü baÅŸarısız oldu! Bunun sebebi php konfigürasyonunuzdaki allow_url_fopen parametresinin 0 olarak ayarlanması olabilir.', 'no_version_modification' => 'Versiyon deÄŸiÅŸikliÄŸi yapılmamış', +'no_workflows' => '', 'no_workflow_available' => 'Uygun iÅŸ akışı yok', 'objectcheck' => 'Klasör/Doküman kontrol', 'object_check_critical' => '', @@ -984,6 +1008,7 @@ Klasör: [folder_path] Yeni sahibi: [new_owner] Kullanıcı: [username] URL: [url]', +'ownership_changed_email_body_html' => '', 'ownership_changed_email_subject' => '[sitename]: [name] - Sahip deÄŸiÅŸti', 'password' => 'Parola', 'password_already_used' => 'Bu parola zaten kullanılmış', @@ -1003,6 +1028,7 @@ AÅŸağıdaki linke tıklayarak bu iÅŸlemi gerçekleÅŸtirebilirsiniz. Böyle bir talebiniz olmadıysa bu mesajı görmezden gelebilirsiniz. GiriÅŸ yaparken halen sorun yaşıyorsanız lütfen sistem yöneticinizle görüşünüz.', +'password_forgotten_email_body_html' => '', 'password_forgotten_email_subject' => '[sitename]: Åžifre sıfırlama', 'password_forgotten_send_hash' => 'Yeni ÅŸifre alma talimatı kullanıcının e-posta adresine gönderilmiÅŸtir.', 'password_forgotten_text' => 'AÅŸağıdaki formu doldurunuz ve e-posta adresinize gönderilecek olan talimatı uygulayınız.', @@ -1050,11 +1076,15 @@ GiriÅŸ yaparken halen sorun yaşıyorsanız lütfen sistem yöneticinizle görü 'receipts_without_group' => '', 'receipts_without_user' => '', 'receipt_deletion_email_body' => '', +'receipt_deletion_email_body_html' => '', 'receipt_deletion_email_subject' => '', 'receipt_log' => '', 'receipt_request_email_body' => '', +'receipt_request_email_body_html' => '', 'receipt_request_email_subject' => '', 'receipt_status' => '', +'receipt_submit_email_body' => '', +'receipt_submit_email_subject' => '', 'receipt_summary' => '', 'receipt_update_failed' => '', 'recent_uploads' => 'En son yüklenenler', @@ -1074,6 +1104,7 @@ GiriÅŸ yaparken halen sorun yaşıyorsanız lütfen sistem yöneticinizle görü Doküman: [document] Kullanıcı: [username] URL: [url]', +'removed_file_email_body_html' => '', 'removed_file_email_subject' => '[sitename]: [document] - Ek silindi', 'removed_recipient' => '', 'removed_reviewer' => 'kontrol edenler listesinden çıkarıldı', @@ -1085,6 +1116,7 @@ Versiyon: [version] Klasör: [folder_path] Kullanıcı: [username] URL: [url]', +'removed_workflow_email_body_html' => '', 'removed_workflow_email_subject' => '[sitename]: [name] - Doküman versiyonundan iÅŸ akışı silindi', 'removeFolderFromDropFolder' => '', 'remove_approval_log' => '', @@ -1093,8 +1125,10 @@ URL: [url]', 'repaired' => 'onarıldı', 'repairing_objects' => 'Doküman ve klasörler onarılıyor.', 'replace_content_email_body' => '', +'replace_content_email_body_html' => '', 'replace_content_email_subject' => '', 'request_workflow_action_email_body' => '', +'request_workflow_action_email_body_html' => '', 'request_workflow_action_email_subject' => '', 'reset_checkout' => '', 'restrict_access' => '', @@ -1108,6 +1142,7 @@ Alt iÅŸ akışı: [subworkflow] Klasör: [folder_path] Kullanıcı: [username] URL: [url]', +'return_from_subworkflow_email_body_html' => '', 'return_from_subworkflow_email_subject' => '[sitename]: [name] - Alt iÅŸ akış dönüşü', 'reverse_links' => 'Mevcut dokümana linki olan dokümanlar', 'reviewers' => 'Kontrol edenler', @@ -1123,12 +1158,14 @@ URL: [url]', 'reviews_without_user' => '', 'review_deletion_email' => 'Kontrol talebi silindi', 'review_deletion_email_body' => '', +'review_deletion_email_body_html' => '', 'review_deletion_email_subject' => '', 'review_file' => '', 'review_group' => 'Kontrol grubu', 'review_log' => 'Kontrol kayıtları', 'review_request_email' => 'Kontrol talebi', 'review_request_email_body' => '', +'review_request_email_body_html' => '', 'review_request_email_subject' => '', 'review_status' => 'Kontrol durumu:', 'review_submit_email' => 'Kontrol gönderildi', @@ -1140,6 +1177,7 @@ Açıklama: [comment] Klasör: [folder_path] Kullanıcı: [username] URL: [url]', +'review_submit_email_body_html' => '', 'review_submit_email_subject' => '[sitename]: [name] - Kontrol gönderildi', 'review_summary' => 'Kontrol Özeti', 'review_update_failed' => 'Kontrol güncelleme durumu hatalı. Güncelleme baÅŸarısız.', @@ -1159,9 +1197,11 @@ URL: [url]', 'revision_date' => '', 'revision_log' => '', 'revision_request_email_body' => '', +'revision_request_email_body_html' => '', 'revision_request_email_subject' => '', 'revision_status' => '', 'revision_submit_email_body' => '', +'revision_submit_email_body_html' => '', 'revision_submit_email_subject' => '', 'revision_summary' => '', 'revisors' => '', @@ -1175,6 +1215,7 @@ Versiyon: [version] Klasör: [folder_path] Kullanıcı: [username] URL: [url]', +'rewind_workflow_email_body_html' => '', 'rewind_workflow_email_subject' => '[sitename]: [name] - İş akışı geri alındı', 'rewind_workflow_warning' => 'İş akışını baÅŸlangıç durumuna geri alırsanız tüm iÅŸ akış kayıtları geri dönüşümü olmadan silinecektir.', 'rm_attrdef' => 'Nitelik tanımını sil', @@ -1217,6 +1258,7 @@ Alt İş Akışı: [subworkflow] Klasör: [folder_path] Kullanıcı: [username] URL: [url]', +'run_subworkflow_email_body_html' => '', 'run_subworkflow_email_subject' => '[sitename]: [name] - Alt iÅŸ akışı baÅŸlatıldı', 'ru_RU' => 'Rusça', 'saturday' => 'Cumartesi', @@ -1908,6 +1950,7 @@ Mevcut durum: [current_state] Üst klasör: [folder_path] Kullanıcı: [username] URL: [url]', +'transition_triggered_email_body_html' => '', 'transition_triggered_email_subject' => '[sitename]: [name] - İş Akış GeçiÅŸi Tetiklendi', 'transmittal' => '', 'transmittalitem_removed' => '', @@ -1989,6 +2032,7 @@ Versiyon: [version] Üst klasör: [folder_path] Kullanıcı: [username] URL: [url]', +'version_deleted_email_body_html' => '', 'version_deleted_email_subject' => '[sitename]: [name] - Versiyon silindi', 'version_info' => 'Versiyon Bilgisi', 'view' => 'Görüntüle', diff --git a/languages/uk_UA/lang.inc b/languages/uk_UA/lang.inc index e00cb3018..908728691 100644 --- a/languages/uk_UA/lang.inc +++ b/languages/uk_UA/lang.inc @@ -50,6 +50,7 @@ $text = array( БатьківÑький каталог: [folder_path] КориÑтувач: [username] URL: [url]', +'access_permission_changed_email_body_html' => '', 'access_permission_changed_email_subject' => '[sitename]: змінений доÑтуп Ð´Ð»Ñ Â«[name]»', 'according_settings' => 'відповідні налаштуваннÑ', 'action' => 'ДіÑ', @@ -117,6 +118,7 @@ URL: [url]', БатьківÑький каталог: [folder_path] КориÑтувач: [username] URL: [url]', +'approval_deletion_email_body_html' => '', 'approval_deletion_email_subject' => '[sitename]: [name] - Запит на Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ ÑкаÑовано', 'approval_file' => 'Файл', 'approval_group' => 'Група затверджувачів', @@ -139,6 +141,7 @@ URL: [url]', Коментар: [comment] КориÑтувач: [username] URL: [url]', +'approval_submit_email_body_html' => '', 'approval_submit_email_subject' => '[sitename]: [name] - Затверджено', 'approval_summary' => 'ПідÑумки затвердженнÑ', 'approval_update_failed' => 'Виникла помилка при зміні ÑтатуÑу затвердженнÑ', @@ -200,6 +203,7 @@ New value: [attribute_new_value] БатьківÑький каталог: [folder_path] КориÑтувач: [username] URL: [url]', +'attribute_changed_email_body_html' => '', 'attribute_changed_email_subject' => '[sitename]: змінено атрибут «[name]»', 'attribute_count' => 'ВикориÑтано разів', 'attribute_value' => 'Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð°', @@ -391,6 +395,7 @@ URL: [url]', 'document_already_checkedout' => 'Цей документ вже на опрацюванні', 'document_already_locked' => 'Цей документ вже заблокований', 'document_attribute_changed_email_body' => '', +'document_attribute_changed_email_body_html' => '', 'document_attribute_changed_email_subject' => '', 'document_comment_changed_email' => 'Змінено коментар', 'document_comment_changed_email_body' => 'Змінено коментар @@ -400,6 +405,7 @@ URL: [url]', БатьківÑький каталог: [folder_path] КориÑтувач: [username] URL: [url]', +'document_comment_changed_email_body_html' => '', 'document_comment_changed_email_subject' => '[sitename]: змінено коментар «[name]»', 'document_content_missing' => '', 'document_count' => 'КількіÑть документів', @@ -409,6 +415,7 @@ URL: [url]', Документ: [name] БатьківÑький каталог: [folder_path] КориÑтувач: [username]', +'document_deleted_email_body_html' => '', 'document_deleted_email_subject' => '[sitename]: видалено документ «[name]»', 'document_duplicate_name' => 'Документ з такою назвою вже Ñ–Ñнує', 'document_files' => '', @@ -428,6 +435,7 @@ URL: [url]', Попередній каталог: [old_folder_path] КориÑтувач: [username] URL: [url]', +'document_moved_email_body_html' => '', 'document_moved_email_subject' => '[sitename]: переміщено документ «[name]»', 'document_not_checkedout' => 'документ не на опрацюванні', 'document_renamed_email' => 'Документ перейменований', @@ -437,6 +445,7 @@ URL: [url]', ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ Ð½Ð°Ð·Ð²Ð°: [old_name] КориÑтувач: [username] URL: [url]', +'document_renamed_email_body_html' => '', 'document_renamed_email_subject' => '[sitename]: документ перейменований «[name]»', 'document_status_changed_email' => 'Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð° змінено', 'document_status_changed_email_body' => 'Змінено ÑÑ‚Ð°Ñ‚ÑƒÑ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð° @@ -445,9 +454,11 @@ URL: [url]', БатьківÑький каталог: [folder_path] КориÑтувач: [username] URL: [url]', +'document_status_changed_email_body_html' => '', 'document_status_changed_email_subject' => '[sitename]: змінено ÑÑ‚Ð°Ñ‚ÑƒÑ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð° «[name]»', 'document_title' => 'Документ [documentname]', 'document_transfered_email_body' => '', +'document_transfered_email_body_html' => '', 'document_transfered_email_subject' => '', 'document_updated_email' => 'Документ оновлено', 'document_updated_email_body' => 'Оновлено документ @@ -457,6 +468,7 @@ URL: [url]', Коментар: [comment] Коментар верÑÑ–Ñ—: [version_comment] URL: [url]', +'document_updated_email_body_html' => '', 'document_updated_email_subject' => '[sitename]: оновлено документ «[name]»', 'document_versions' => '', 'does_not_expire' => 'Без терміну виконаннÑ', @@ -586,6 +598,7 @@ URL: [url]', БатьківÑький каталог: [folder_path] КориÑтувач: [username] URL: [url]', +'expiry_changed_email_body_html' => '', 'expiry_changed_email_subject' => '[sitename]: зміна дати терміну Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð´Ð»Ñ Â«[name]»', 'export' => 'ЕкÑпорт', 'export_user_list_csv' => '', @@ -618,6 +631,7 @@ URL: [url]', 'folders_and_documents_statistic' => 'ОглÑд вміÑту', 'folders_with_notification' => '', 'folder_attribute_changed_email_body' => '', +'folder_attribute_changed_email_body_html' => '', 'folder_attribute_changed_email_subject' => '', 'folder_comment_changed_email' => 'Коментар змінено', 'folder_comment_changed_email_body' => 'Змінено коментар каталогу @@ -627,6 +641,7 @@ URL: [url]', БатьківÑький каталог: [folder_path] КориÑтувач: [username] URL: [url]', +'folder_comment_changed_email_body_html' => '', 'folder_comment_changed_email_subject' => '[sitename]: змінено коментар каталогу «[folder]»', 'folder_contents' => 'ВміÑÑ‚ каталогу', 'folder_deleted_email' => 'Каталог видалено', @@ -635,6 +650,7 @@ URL: [url]', БатьківÑький каталог: [folder_path] КориÑтувач: [username] URL: [url]', +'folder_deleted_email_body_html' => '', 'folder_deleted_email_subject' => '[sitename]: видалено каталог «[name]»', 'folder_infos' => 'Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ каталог', 'folder_moved_email' => 'Каталог переміщено', @@ -644,6 +660,7 @@ URL: [url]', Попереднє розташуваннÑ: [old_folder_path] КориÑтувач: [username] URL: [url]', +'folder_moved_email_body_html' => '', 'folder_moved_email_subject' => '[sitename]: переміщено каталог «[name]»', 'folder_renamed_email' => 'Каталог перейменовано', 'folder_renamed_email_body' => 'Каталог перейменовано @@ -652,6 +669,7 @@ URL: [url]', ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ Ð½Ð°Ð·Ð²Ð°: [old_name] КориÑтувач: [username] URL: [url]', +'folder_renamed_email_body_html' => '', 'folder_renamed_email_subject' => '[sitename]: перейменовано каталог «[name]»', 'folder_title' => 'Каталог [foldername]', 'foot_note' => '', @@ -895,6 +913,7 @@ URL: [url]', Коментар верÑÑ–Ñ—: [version_comment] КориÑтувач: [username] URL: [url]', +'new_document_email_body_html' => '', 'new_document_email_subject' => '[sitename]: новий документ в каталозі «[folder_name]»', 'new_file_email' => 'Ðовий додаток', 'new_file_email_body' => 'Ðовий додаток: [name] @@ -902,6 +921,7 @@ URL: [url]', Коментар: [comment] КориÑтувач: [username] URL: [url]', +'new_file_email_body_html' => '', 'new_file_email_subject' => '[sitename]: новий додаток до документа «[document]»', 'new_folder' => 'Ðовий каталог', 'new_password' => 'Ðовий пароль', @@ -912,6 +932,7 @@ URL: [url]', Коментар: [comment] КориÑтувач: [username] URL: [url]', +'new_subfolder_email_body_html' => '', 'new_subfolder_email_subject' => '[sitename]: новий каталог «[name]»', 'new_user_image' => 'Ðове зображеннÑ', 'next_revision_abbr' => '', @@ -925,6 +946,7 @@ URL: [url]', БатьківÑький каталог: [folder_path] КориÑтувач: [username] URL: [url]', +'notify_added_email_body_html' => '', 'notify_added_email_subject' => '[sitename]: Ð²Ð°Ñ Ð´Ð¾Ð´Ð°Ð»Ð¸ до ÑпиÑку ÑÐ¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð´Ð»Ñ Â«[name]»', 'notify_deleted_email' => 'Ð’Ð°Ñ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð¾ зі ÑпиÑку ÑповіщеннÑ', 'notify_deleted_email_body' => 'Ð’Ð°Ñ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð¾ зі ÑпиÑку ÑÐ¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ @@ -932,6 +954,7 @@ URL: [url]', БатьківÑький каталог: [folder_path] КориÑтувач: [username] URL: [url]', +'notify_deleted_email_body_html' => '', 'notify_deleted_email_subject' => '[sitename]: Ð²Ð°Ñ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð¾ зі ÑпиÑку ÑÐ¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð´Ð»Ñ Â«[name]»', 'not_subscribed' => '', 'november' => 'ЛиÑтопад', @@ -968,6 +991,7 @@ URL: [url]', 'no_user_image' => 'Ð—Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð½Ðµ знайдено', 'no_version_check' => 'Перевірка наÑвноÑті нової верÑÑ–Ñ— SeedDMS не відбулаÑÑ! Це може бути Ñпричинено налаштуваннÑм allow_url_fopen = 0 у конфігурації вашого php.', 'no_version_modification' => 'ВідÑÑƒÑ‚Ð½Ñ Ð¼Ð¾Ð´Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ Ð²ÐµÑ€ÑÑ–Ñ—', +'no_workflows' => '', 'no_workflow_available' => 'Ðемає доÑтупних процеÑів', 'objectcheck' => 'Перевірка каталогу чи документа', 'object_check_critical' => '', @@ -989,6 +1013,7 @@ URL: [url]', Ðовий влаÑник: [new_owner] КориÑтувач: [username] URL: [url]', +'ownership_changed_email_body_html' => '', 'ownership_changed_email_subject' => '[sitename]: змінено влаÑника «[name]»', 'password' => 'Пароль', 'password_already_used' => 'Пароль вже викориÑтовуєтьÑÑ', @@ -1004,6 +1029,7 @@ URL: [url]', [url_prefix]out/out.ChangePassword.php?hash=[hash] Якщо ви Ñ– піÑÐ»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ не зможете зайти, зв\'ÑжітьÑÑ Ð· адмініÑтратором', +'password_forgotten_email_body_html' => '', 'password_forgotten_email_subject' => '[sitename]: Втрачено пароль', 'password_forgotten_send_hash' => 'ІнÑтрукції виÑлано на e-mail', 'password_forgotten_text' => 'Заповніть форму Ñ– виконайте інÑтрукції в лиÑті', @@ -1051,6 +1077,7 @@ URL: [url]', 'receipts_without_group' => '', 'receipts_without_user' => '', 'receipt_deletion_email_body' => '', +'receipt_deletion_email_body_html' => '', 'receipt_deletion_email_subject' => '', 'receipt_log' => 'Лог отриманнÑ', 'receipt_request_email_body' => 'Запит Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ @@ -1059,8 +1086,11 @@ URL: [url]', Каталог: [folder_path] КориÑтувач: [username] URL: [url]', +'receipt_request_email_body_html' => '', 'receipt_request_email_subject' => '[sitename]: [name] - Запит отриманнÑ', 'receipt_status' => '', +'receipt_submit_email_body' => '', +'receipt_submit_email_subject' => '', 'receipt_summary' => 'ПідÑумки отриманнÑ', 'receipt_update_failed' => '', 'recent_uploads' => 'ОÑтанні завантаженнÑ', @@ -1080,6 +1110,7 @@ URL: [url]', Документ: [document] КориÑтувач: [username] URL: [url]', +'removed_file_email_body_html' => '', 'removed_file_email_subject' => '[sitename]: видалено додаток до «[document]»', 'removed_recipient' => 'видалено отримувача', 'removed_reviewer' => 'видалено зі ÑпиÑку рецензентів', @@ -1091,6 +1122,7 @@ URL: [url]', Каталог: [folder_path] КориÑтувач: [username] URL: [url]', +'removed_workflow_email_body_html' => '', 'removed_workflow_email_subject' => '[sitename]: видалено Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð· верÑÑ–Ñ— документа «[name]»', 'removeFolderFromDropFolder' => '', 'remove_approval_log' => '', @@ -1099,8 +1131,10 @@ URL: [url]', 'repaired' => 'виправлено', 'repairing_objects' => 'Ð’Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ñ–Ð² Ñ– документів', 'replace_content_email_body' => '', +'replace_content_email_body_html' => '', 'replace_content_email_subject' => '', 'request_workflow_action_email_body' => 'Запит дії по процеÑу', +'request_workflow_action_email_body_html' => '', 'request_workflow_action_email_subject' => '[sitename]: [name] - Запит дії Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑу', 'reset_checkout' => 'ЗнÑти Ñтан опрацюваннÑ', 'restrict_access' => '', @@ -1114,6 +1148,7 @@ URL: [url]', БатьківÑький каталог: [folder_path] КориÑтувач: [username] URL: [url]', +'return_from_subworkflow_email_body_html' => '', 'return_from_subworkflow_email_subject' => '[sitename]: вихід з підпроцеÑу «[name]»', 'reverse_links' => 'Документи, Ñкі поÑилаютьÑÑ Ð½Ð° цей документ', 'reviewers' => 'Рецензенти', @@ -1134,6 +1169,7 @@ URL: [url]', БатьківÑький каталог: [folder_path] КориÑтувач: [username] URL: [url]', +'review_deletion_email_body_html' => '', 'review_deletion_email_subject' => '[sitename]: ÑкаÑовано запит на Ñ€ÐµÑ†ÐµÐ½Ð·ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ [name]', 'review_file' => 'Файл', 'review_group' => 'Група рецензентів', @@ -1145,6 +1181,7 @@ URL: [url]', БатьківÑький каталог: [folder_path] КориÑтувач: [username] URL: [url]', +'review_request_email_body_html' => '', 'review_request_email_subject' => 'Запит на рецензуваннÑ', 'review_status' => 'Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ñ€ÐµÑ†ÐµÐ½Ð·ÑƒÐ²Ð°Ð½Ð½Ñ', 'review_submit_email' => 'Відправлено на рецензуваннÑ', @@ -1156,6 +1193,7 @@ URL: [url]', БатьківÑький каталог: [folder_path] КориÑтувач: [username] URL: [url]', +'review_submit_email_body_html' => '', 'review_submit_email_subject' => '[sitename]: відправлена Ñ€ÐµÑ†ÐµÐ½Ð·Ñ–Ñ Â«[name]»', 'review_summary' => 'ПідÑумки рецензуваннÑ', 'review_update_failed' => 'Помилка Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ ÑтатуÑу рецензії', @@ -1180,9 +1218,11 @@ URL: [url]', БатьківÑький каталог: [folder_path] КориÑтувач: [username] URL: [url]', +'revision_request_email_body_html' => '', 'revision_request_email_subject' => '[sitename]: [name] - Запит на ревізію', 'revision_status' => '', 'revision_submit_email_body' => '', +'revision_submit_email_body_html' => '', 'revision_submit_email_subject' => '', 'revision_summary' => '', 'revisors' => 'Ревізори', @@ -1196,6 +1236,7 @@ URL: [url]', БатьківÑький каталог: [folder_path] КориÑтувач: [username] URL: [url]', +'rewind_workflow_email_body_html' => '', 'rewind_workflow_email_subject' => '[sitename]: Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¿ÐµÑ€ÐµÐ·Ð°Ð¿ÑƒÑ‰ÐµÐ½Ð¾ Ð´Ð»Ñ Â«[name]»', 'rewind_workflow_warning' => 'Якщо ви почнете Ð¿Ñ€Ð¾Ñ†ÐµÑ Ñпочатку, то веÑÑŒ журнал процеÑу Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ процеÑу буде очищено Ñ– його неможливо буде відновити.', 'rm_attrdef' => 'Видалити Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ñƒ', @@ -1238,6 +1279,7 @@ URL: [url]', БатьківÑький каталог: [folder_path] КориÑтувач: [username] URL: [url]', +'run_subworkflow_email_body_html' => '', 'run_subworkflow_email_subject' => '[sitename]: запущено Ð¿Ñ–Ð´Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð´Ð»Ñ Â«[name]»', 'ru_RU' => 'РуÑÑкий', 'saturday' => 'Субота', @@ -1929,6 +1971,7 @@ URL: [url]', БатьківÑький каталог: [folder_path] КориÑтувач: [username] URL: [url]', +'transition_triggered_email_body_html' => '', 'transition_triggered_email_subject' => '[sitename]: змінено Ñтан процеÑу Ð´Ð»Ñ Â«[name]»', 'transmittal' => 'Передача', 'transmittalitem_removed' => 'Переданий елемент видалено', @@ -2010,6 +2053,7 @@ URL: [url]', БатьківÑький каталог: [folder_path] КориÑтувач: [username] URL: [url]', +'version_deleted_email_body_html' => '', 'version_deleted_email_subject' => '[sitename]: знищено верÑÑ–ÑŽ «[name]»', 'version_info' => 'Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ верÑÑ–ÑŽ', 'view' => 'ПереглÑд', diff --git a/languages/zh_CN/lang.inc b/languages/zh_CN/lang.inc index a257f2ad5..8b2450b49 100644 --- a/languages/zh_CN/lang.inc +++ b/languages/zh_CN/lang.inc @@ -50,6 +50,7 @@ $text = array( 上级文件夹: [folder_path] 用户: [username] URL: [url]', +'access_permission_changed_email_body_html' => '', 'access_permission_changed_email_subject' => '[sitename]: [name] - æƒé™å·²å˜æ›´', 'according_settings' => '相应的设置', 'action' => '执行', @@ -117,6 +118,7 @@ URL: [url]', 父文件夹: [folder_path] 用户: [username] URL: [url]', +'approval_deletion_email_body_html' => '', 'approval_deletion_email_subject' => '[sitename]: [name] - 审核请求已删除', 'approval_file' => '文件', 'approval_group' => '审核组', @@ -139,6 +141,7 @@ URL: [url]', 批注: [comment] 用户: [username] URL: [url]', +'approval_submit_email_body_html' => '', 'approval_submit_email_subject' => '[sitename]: [name] - æäº¤å®¡æ ¸', 'approval_summary' => '审核汇总', 'approval_update_failed' => '错误:更新审核状æ€.更新失败.', @@ -192,6 +195,7 @@ URL: [url]', 'attrdef_valueset_help' => '', 'attributes' => '属性', 'attribute_changed_email_body' => '', +'attribute_changed_email_body_html' => '', 'attribute_changed_email_subject' => '', 'attribute_count' => '使用次数', 'attribute_value' => '属性值', @@ -385,6 +389,7 @@ URL: [url]', 'document_already_checkedout' => '当剿–‡æ¡£å·²ç­¾å‡º', 'document_already_locked' => '该文档已被é”定', 'document_attribute_changed_email_body' => '', +'document_attribute_changed_email_body_html' => '', 'document_attribute_changed_email_subject' => '', 'document_comment_changed_email' => '批注已更新', 'document_comment_changed_email_body' => '批注已更新 @@ -394,6 +399,7 @@ URL: [url]', 父文件夹: [folder_path] 用户: [username] URL: [url]', +'document_comment_changed_email_body_html' => '', 'document_comment_changed_email_subject' => '[sitename]: [name] - 批注已更新', 'document_content_missing' => '', 'document_count' => '文档数é‡', @@ -403,6 +409,7 @@ URL: [url]', 文档: [name] 父文件夹: [folder_path] 用户: [username]', +'document_deleted_email_body_html' => '', 'document_deleted_email_subject' => '[sitename]: [name] - 文档已删除', 'document_duplicate_name' => '文档åç§°é‡å¤', 'document_files' => '', @@ -422,6 +429,7 @@ URL: [url]', 当剿‰€åœ¨æ–‡ä»¶å¤¹: [new_folder_path] 用户: [username] URL: [url]', +'document_moved_email_body_html' => '', 'document_moved_email_subject' => '[sitename]: [name] - 文档已移动', 'document_not_checkedout' => '文档未签出。', 'document_renamed_email' => '文档已被é‡å‘½å', @@ -431,6 +439,7 @@ URL: [url]', 原åç§°: [old_name] 用户: [username] URL: [url]', +'document_renamed_email_body_html' => '', 'document_renamed_email_subject' => '[sitename]: [name] - 文档已é‡å‘½å', 'document_status_changed_email' => '文档状æ€å·²è¢«æ›´æ”¹', 'document_status_changed_email_body' => '文档状æ€å·²æ›´æ–° @@ -439,9 +448,11 @@ URL: [url]', 上级目录: [folder_path] 用户: [username] URL: [url]', +'document_status_changed_email_body_html' => '', 'document_status_changed_email_subject' => '[sitename]: [name] - 文档状æ€å·²æ›´æ–°', 'document_title' => '文档åç§° \'[documentname]\'', 'document_transfered_email_body' => '', +'document_transfered_email_body_html' => '', 'document_transfered_email_subject' => '', 'document_updated_email' => '文档已被更新', 'document_updated_email_body' => '文档已更新 @@ -451,6 +462,7 @@ URL: [url]', 批注: [comment] 版本批注: [version_comment] URL: [url]', +'document_updated_email_body_html' => '', 'document_updated_email_subject' => '[sitename]: [name] - 文档已更新', 'document_versions' => '', 'does_not_expire' => 'æ°¸ä¸è¿‡æœŸ', @@ -576,6 +588,7 @@ URL: [url]', 'expire_tomorrow' => '截止至明天', 'expiry_changed_email' => '到期日å­å·²æ”¹å˜', 'expiry_changed_email_body' => '', +'expiry_changed_email_body_html' => '', 'expiry_changed_email_subject' => '', 'export' => '导出', 'export_user_list_csv' => '', @@ -608,6 +621,7 @@ URL: [url]', 'folders_and_documents_statistic' => '内容概è¦', 'folders_with_notification' => '', 'folder_attribute_changed_email_body' => '', +'folder_attribute_changed_email_body_html' => '', 'folder_attribute_changed_email_subject' => '', 'folder_comment_changed_email' => '注释已更新', 'folder_comment_changed_email_body' => '批注已更新 @@ -617,6 +631,7 @@ URL: [url]', 父文件夹: [folder_path] 用户: [username] URL: [url]', +'folder_comment_changed_email_body_html' => '', 'folder_comment_changed_email_subject' => '[sitename]: [name] - 批注已更新', 'folder_contents' => '文件夹内容', 'folder_deleted_email' => '文件夹已被删除', @@ -625,6 +640,7 @@ URL: [url]', 父文件夹: [folder_path] 用户: [username] URL: [url]', +'folder_deleted_email_body_html' => '', 'folder_deleted_email_subject' => '[sitename]: [name] - 文件夹已删除', 'folder_infos' => '文件夹信æ¯', 'folder_moved_email' => '文件夹已被移动', @@ -634,6 +650,7 @@ URL: [url]', æ–‡ä»¶å¤¹å½“å‰æ‰€åœ¨è·¯å¾„: [new_folder_path] 用户: [username] URL: [url]', +'folder_moved_email_body_html' => '', 'folder_moved_email_subject' => '[sitename]: [name] - 文件夹已è¿ç§»', 'folder_renamed_email' => '文件夹已被é‡å‘½å', 'folder_renamed_email_body' => '文件夹已é‡å‘½å @@ -642,6 +659,7 @@ URL: [url]', 历å²åç§°: [old_name] 用户: [username] URL: [url]', +'folder_renamed_email_body_html' => '', 'folder_renamed_email_subject' => '[sitename]: [name] - 文件夹已é‡å‘½å', 'folder_title' => '文件夹 \'[foldername]\'', 'foot_note' => '', @@ -885,6 +903,7 @@ URL: [url]', 版本备注: [version_comment] 用户: [username] URL: [url]', +'new_document_email_body_html' => '', 'new_document_email_subject' => '[sitename]: [folder_name] - 新建文档', 'new_file_email' => '添加新附件', 'new_file_email_body' => '新建附件 @@ -893,6 +912,7 @@ URL: [url]', 备注: [comment] 用户: [username] URL: [url]', +'new_file_email_body_html' => '', 'new_file_email_subject' => '[sitename]: [document] - 新建附件', 'new_folder' => '新建文件夹', 'new_password' => '新密ç ', @@ -903,6 +923,7 @@ URL: [url]', 备注: [comment] 用户: [username] URL: [url]', +'new_subfolder_email_body_html' => '', 'new_subfolder_email_subject' => '[sitename]: [name] - 新建文件夹', 'new_user_image' => '新建图片', 'next_revision_abbr' => '', @@ -916,6 +937,7 @@ URL: [url]', 父文件夹: [folder_path] 用户: [username] URL: [url]', +'notify_added_email_body_html' => '', 'notify_added_email_subject' => '[sitename]: [name] - 添加到通知列表', 'notify_deleted_email' => '您已ç»ä»Žé€šçŸ¥åå•中删除', 'notify_deleted_email_body' => '从通知列表中移除 @@ -923,6 +945,7 @@ URL: [url]', 父文件夹: [folder_path] 用户: [username] URL: [url]', +'notify_deleted_email_body_html' => '', 'notify_deleted_email_subject' => '[sitename]: [name] - 从通知列表中移除', 'not_subscribed' => '', 'november' => 'å一月', @@ -959,6 +982,7 @@ URL: [url]', 'no_user_image' => '无图片', 'no_version_check' => '检查SeedDMS的新版本失败ï¼è¿™å¯èƒ½æ˜¯ç”±äºŽåœ¨æ‚¨çš„phpé…置中allow_url_fopen设置为0引起的。', 'no_version_modification' => '版本未修改', +'no_workflows' => '', 'no_workflow_available' => '工作æµä¸å¯ç”¨', 'objectcheck' => '文件夹/文件检查', 'object_check_critical' => 'é‡å¤§é”™è¯¯', @@ -980,6 +1004,7 @@ URL: [url]', 当剿‰€æœ‰è€…: [new_owner] 用户: [username] URL: [url]', +'ownership_changed_email_body_html' => '', 'ownership_changed_email_subject' => '[sitename]: [name] - 所有者已更新', 'password' => '密ç ', 'password_already_used' => '密ç å·²è¢«ä½¿ç”¨', @@ -997,6 +1022,7 @@ URL: [url]', [url_prefix]out/out.ChangePassword.php?hash=[hash] 若您在修改åŽä»æ— æ³•登录系统,请è”系您 SeedDMS 管ç†å‘˜å¯»æ±‚帮助。', +'password_forgotten_email_body_html' => '', 'password_forgotten_email_subject' => '[sitename]: 忘记密ç ', 'password_forgotten_send_hash' => '', 'password_forgotten_text' => '填写以下表格,并éµå¾ªé‚®ä»¶ä¸­çš„æŒ‡ç¤ºæ‰¾å›žé—失密ç ã€‚', @@ -1044,6 +1070,7 @@ URL: [url]', 'receipts_without_group' => '', 'receipts_without_user' => '', 'receipt_deletion_email_body' => '', +'receipt_deletion_email_body_html' => '', 'receipt_deletion_email_subject' => '', 'receipt_log' => 'å¤„ç†æ—¥å¿—', 'receipt_request_email_body' => '接收请求 @@ -1052,8 +1079,11 @@ URL: [url]', 父文件夹: [folder_path] 用户: [username] URL: [url]', +'receipt_request_email_body_html' => '', 'receipt_request_email_subject' => '', 'receipt_status' => '状æ€', +'receipt_submit_email_body' => '', +'receipt_submit_email_subject' => '', 'receipt_summary' => '', 'receipt_update_failed' => '', 'recent_uploads' => '最近上传', @@ -1073,6 +1103,7 @@ URL: [url]', 文档: [document] 用户: [username] URL: [url]', +'removed_file_email_body_html' => '', 'removed_file_email_subject' => '[sitename]: [document] - 已删除附件', 'removed_recipient' => '', 'removed_reviewer' => 'å·²ç»ä»Žæ ¡å¯¹äººåå•中删除', @@ -1084,6 +1115,7 @@ URL: [url]', 父文件夹: [folder_path] 用户: [username] URL: [url]', +'removed_workflow_email_body_html' => '', 'removed_workflow_email_subject' => '[sitename]: [name] - 已从文档版本中移除工作æµ', 'removeFolderFromDropFolder' => '导入åŽåˆ é™¤æ–‡ä»¶å¤¹', 'remove_approval_log' => '', @@ -1092,14 +1124,17 @@ URL: [url]', 'repaired' => '已修å¤', 'repairing_objects' => '', 'replace_content_email_body' => '', +'replace_content_email_body_html' => '', 'replace_content_email_subject' => '', 'request_workflow_action_email_body' => '', +'request_workflow_action_email_body_html' => '', 'request_workflow_action_email_subject' => '', 'reset_checkout' => '完æˆç­¾å‡º', 'restrict_access' => '无访问æƒé™', 'results_page' => '结果页é¢', 'return_from_subworkflow' => '', 'return_from_subworkflow_email_body' => '', +'return_from_subworkflow_email_body_html' => '', 'return_from_subworkflow_email_subject' => '', 'reverse_links' => '', 'reviewers' => '校对人', @@ -1115,12 +1150,14 @@ URL: [url]', 'reviews_without_user' => '', 'review_deletion_email' => '校对请求被删除', 'review_deletion_email_body' => '', +'review_deletion_email_body_html' => '', 'review_deletion_email_subject' => '', 'review_file' => '文件', 'review_group' => '校对组', 'review_log' => '审阅记录', 'review_request_email' => '校对请求', 'review_request_email_body' => '', +'review_request_email_body_html' => '', 'review_request_email_subject' => '[sitename]: [name] - 校对请求', 'review_status' => '校对状æ€', 'review_submit_email' => 'æäº¤æ ¡å¯¹', @@ -1132,6 +1169,7 @@ URL: [url]', 父文件夹: [folder_path] 用户: [username] URL: [url]', +'review_submit_email_body_html' => '', 'review_submit_email_subject' => '', 'review_summary' => '校对汇总', 'review_update_failed' => '错误 更新校对状æ€.更新失败', @@ -1156,9 +1194,11 @@ URL: [url]', 父文件夹: [folder_path] 用户: [username] URL: [url]', +'revision_request_email_body_html' => '', 'revision_request_email_subject' => '[sitename]: [name] - 修订请求', 'revision_status' => '修订状æ€', 'revision_submit_email_body' => '', +'revision_submit_email_body_html' => '', 'revision_submit_email_subject' => '', 'revision_summary' => '', 'revisors' => '修订人', @@ -1166,6 +1206,7 @@ URL: [url]', 'revisor_already_removed' => '修订人已ç»ä»Žä¿®è®¢è¿‡ç¨‹ä¸­åˆ é™¤ï¼Œæˆ–者已ç»ä¿®æ”¹äº†æ–‡æ¡£ã€‚', 'rewind_workflow' => '回退工作æµ', 'rewind_workflow_email_body' => '', +'rewind_workflow_email_body_html' => '', 'rewind_workflow_email_subject' => '', 'rewind_workflow_warning' => '', 'rm_attrdef' => '去掉属性定义', @@ -1208,6 +1249,7 @@ URL: [url]', 父文件夹: [folder_path] 用户: [username] URL: [url]', +'run_subworkflow_email_body_html' => '', 'run_subworkflow_email_subject' => '[sitename]: [name] - å­å·¥ä½œæµå·²å¯åЍ', 'ru_RU' => '俄语', 'saturday' => 'Saturday', @@ -1895,6 +1937,7 @@ URL: [url]', 'transfer_to_user' => '共享给其他用户', 'transition_triggered_email' => '', 'transition_triggered_email_body' => '', +'transition_triggered_email_body_html' => '', 'transition_triggered_email_subject' => '', 'transmittal' => '', 'transmittalitem_removed' => '', @@ -1976,6 +2019,7 @@ URL: [url]', 父文件夹: [folder_path] 用户: [username] URL: [url]', +'version_deleted_email_body_html' => '', 'version_deleted_email_subject' => '[sitename]: [name] - 版本已删除', 'version_info' => '版本信æ¯', 'view' => '查看', diff --git a/languages/zh_TW/lang.inc b/languages/zh_TW/lang.inc index 84355e5c3..6ee9e16e4 100644 --- a/languages/zh_TW/lang.inc +++ b/languages/zh_TW/lang.inc @@ -50,6 +50,7 @@ $text = array( 上級資料夾: [folder_path] 使用者: [username] URL: [url]', +'access_permission_changed_email_body_html' => '', 'access_permission_changed_email_subject' => '[sitename]: [name] - è¨±å¯æ¬Šå·²è®Šæ›´', 'according_settings' => '相應的設置', 'action' => '執行', @@ -117,6 +118,7 @@ URL: [url]', 父文件夾:[folder_path] 使用者:[username] ç¶²å€ï¼š[url]', +'approval_deletion_email_body_html' => '', 'approval_deletion_email_subject' => '[sitename]:[name]-批准請求已刪除', 'approval_file' => '檔案', 'approval_group' => '審核組', @@ -139,6 +141,7 @@ URL: [url]', 評論:[comment] 使用者:[username] ç¶²å€ï¼š[url]', +'approval_submit_email_body_html' => '', 'approval_submit_email_subject' => '[sitename]: [name] - æäº¤å¯©æ ¸', 'approval_summary' => '審核匯總', 'approval_update_failed' => '錯誤:更新審核狀態.更新失敗.', @@ -200,6 +203,7 @@ URL: [url]', 父文件夾:[folder_path] 使用者:[username] ç¶²å€ï¼š[url]', +'attribute_changed_email_body_html' => '', 'attribute_changed_email_subject' => '[sitename]:[name]-屬性已更改', 'attribute_count' => '使用次數', 'attribute_value' => '屬性值', @@ -398,6 +402,7 @@ URL: [url]', 父文件夾:[folder_path] 使用者:[username] ç¶²å€ï¼š[url]', +'document_attribute_changed_email_body_html' => '', 'document_attribute_changed_email_subject' => '[sitename]:[name]-屬性已更改', 'document_comment_changed_email' => '評論已更改', 'document_comment_changed_email_body' => '評論已更改 @@ -407,6 +412,7 @@ URL: [url]', 父文件夾:[folder_path] 使用者:[username] ç¶²å€ï¼š[url]', +'document_comment_changed_email_body_html' => '', 'document_comment_changed_email_subject' => '[sitename]:[name]-評論已更改', 'document_content_missing' => '', 'document_count' => '文件數', @@ -416,6 +422,7 @@ URL: [url]', 文件:[name] 父文件夾:[folder_path] 使用者:[username]', +'document_deleted_email_body_html' => '', 'document_deleted_email_subject' => '[sitename]:[name]-文檔已刪除', 'document_duplicate_name' => '文件å稱é‡è¤‡', 'document_files' => '', @@ -435,6 +442,7 @@ URL: [url]', 新文件夾:[new_folder_path] 使用者:[username] ç¶²å€ï¼š[url]', +'document_moved_email_body_html' => '', 'document_moved_email_subject' => '[sitename]:[name]-文件已移動', 'document_not_checkedout' => '文件沒有簽出', 'document_renamed_email' => '文件已被é‡å‘½å', @@ -444,6 +452,7 @@ URL: [url]', 舊å稱:[old_name] 使用者:[username] ç¶²å€ï¼š[url]', +'document_renamed_email_body_html' => '', 'document_renamed_email_subject' => '[sitename]:[name]-文件已é‡å‘½å', 'document_status_changed_email' => '文件狀態已被更改', 'document_status_changed_email_body' => '文件狀態已變更 @@ -452,6 +461,7 @@ URL: [url]', 父文件夾:[folder_path] 使用者:[username] ç¶²å€ï¼š[url]', +'document_status_changed_email_body_html' => '', 'document_status_changed_email_subject' => '[sitename]:[name]-文檔狀態已更改', 'document_title' => '文件å稱 \'[documentname]\'', 'document_transfered_email_body' => '文件轉移給其他使用者 @@ -460,6 +470,7 @@ URL: [url]', 父文件夾:[folder_path] 使用者:[username] ç¶²å€ï¼š[url]', +'document_transfered_email_body_html' => '', 'document_transfered_email_subject' => '[sitename]:[name]-轉移文件', 'document_updated_email' => '文件已被更新', 'document_updated_email_body' => '文件已更新 @@ -469,6 +480,7 @@ URL: [url]', 評論:[comment] 版本註釋:[version_comment] ç¶²å€ï¼š[url]', +'document_updated_email_body_html' => '', 'document_updated_email_subject' => '[sitename]:[name]-文檔已更新', 'document_versions' => '', 'does_not_expire' => 'æ°¸ä¸éŽæœŸ', @@ -598,6 +610,7 @@ URL: [url]', 父文件夾:[folder_path] 使用者:[username] ç¶²å€ï¼š[url]', +'expiry_changed_email_body_html' => '', 'expiry_changed_email_subject' => '[sitename]: [name] - 有效日期已更改', 'export' => '匯出', 'export_user_list_csv' => '', @@ -637,6 +650,7 @@ URL: [url]', 父文件夾:[folder_path] 使用者:[username] ç¶²å€ï¼š[url]', +'folder_attribute_changed_email_body_html' => '', 'folder_attribute_changed_email_subject' => '[sitename]: [name] - 屬性已更改', 'folder_comment_changed_email' => '評論已更改', 'folder_comment_changed_email_body' => '評論已更改 @@ -646,6 +660,7 @@ URL: [url]', 父文件夾:[folder_path] 使用者:[username] ç¶²å€ï¼š[url]', +'folder_comment_changed_email_body_html' => '', 'folder_comment_changed_email_subject' => '[sitename]: [name] - 評論已修改', 'folder_contents' => '資料夾內容', 'folder_deleted_email' => '資料夾已被刪除', @@ -654,6 +669,7 @@ URL: [url]', 父文件夾:[folder_path] 使用者:[username] ç¶²å€ï¼š[url]', +'folder_deleted_email_body_html' => '', 'folder_deleted_email_subject' => '[sitename]: [name] - 資料夾已刪除', 'folder_infos' => '資料夾資訊', 'folder_moved_email' => '資料夾已被移動', @@ -663,6 +679,7 @@ URL: [url]', 新文件夾:[new_folder_path] 使用者:[username] ç¶²å€ï¼š[url]', +'folder_moved_email_body_html' => '', 'folder_moved_email_subject' => '[sitename]: [name] - 資料夾已移動', 'folder_renamed_email' => '資料夾已被é‡å‘½å', 'folder_renamed_email_body' => '文件夾已é‡å‘½å @@ -671,6 +688,7 @@ URL: [url]', 舊å稱:[old_name] 使用者:[username] ç¶²å€ï¼š[url]', +'folder_renamed_email_body_html' => '', 'folder_renamed_email_subject' => '[sitename]: [name] - è³‡æ–™å¤¾å·²ç¶“é‡æ–°å‘½å', 'folder_title' => '資料夾 \'[foldername]\'', 'foot_note' => '', @@ -914,6 +932,7 @@ URL: [url]', 版本註釋:[version_comment] 使用者:[username] ç¶²å€ï¼š[url]', +'new_document_email_body_html' => '', 'new_document_email_subject' => '[sitename]: [document] - 新文件', 'new_file_email' => '新增新附件', 'new_file_email_body' => '新附件 @@ -922,6 +941,7 @@ URL: [url]', 評論:[comment] 使用者:[username] ç¶²å€ï¼š[url]', +'new_file_email_body_html' => '', 'new_file_email_subject' => '[sitename]: [document] - 新附件', 'new_folder' => '新建資料夾', 'new_password' => '新密碼', @@ -932,6 +952,7 @@ URL: [url]', 評論:[comment] 使用者:[username] ç¶²å€ï¼š[url]', +'new_subfolder_email_body_html' => '', 'new_subfolder_email_subject' => '[sitename]: [name] - 新文件夾', 'new_user_image' => '新建圖片', 'next_revision_abbr' => '下一版', @@ -945,6 +966,7 @@ URL: [url]', 父文件夾:[folder_path] 使用者:[username] ç¶²å€ï¼š[url]', +'notify_added_email_body_html' => '', 'notify_added_email_subject' => '[sitename]: [name] - 從通知列表中刪除', 'notify_deleted_email' => '您已經從通知å單中刪除', 'notify_deleted_email_body' => '從通知列表中刪除 @@ -952,6 +974,7 @@ URL: [url]', 父文件夾:[folder_path] 使用者:[username] ç¶²å€ï¼š[url]', +'notify_deleted_email_body_html' => '', 'notify_deleted_email_subject' => '[sitename]: [name] - 從通知列表中刪除', 'not_subscribed' => '', 'november' => 'å一月', @@ -988,6 +1011,7 @@ URL: [url]', 'no_user_image' => '無圖片', 'no_version_check' => '檢查新版本的SeedDMS失敗ï¼é€™å¯èƒ½æ˜¯ç”±æ–¼åœ¨æ‚¨çš„phpé…置中將allow_url_fopen設置為0', 'no_version_modification' => '沒有版本修改', +'no_workflows' => '', 'no_workflow_available' => '沒有å¯ç”¨çš„工作æµç¨‹', 'objectcheck' => '資料夾/檔檢查', 'object_check_critical' => 'åš´é‡éŒ¯èª¤', @@ -1009,6 +1033,7 @@ URL: [url]', 新所有者:[new_owner] 使用者:[username] ç¶²å€ï¼š[url]', +'ownership_changed_email_body_html' => '', 'ownership_changed_email_subject' => '[sitename]: [name] - æ“æœ‰è€…已改變', 'password' => '密碼', 'password_already_used' => '密碼已使用', @@ -1024,6 +1049,7 @@ URL: [url]', å¯ä»¥é€šéŽå–®æ“Šä»¥ä¸‹éˆæŽ¥ä¾†å®Œæˆï¼š [url_prefix] out / out.ChangePassword.php?hash = [hash]', +'password_forgotten_email_body_html' => '', 'password_forgotten_email_subject' => '[sitename]: 密碼忘記', 'password_forgotten_send_hash' => '有關如何進行æ“作的說明已發é€åˆ°ä½¿ç”¨è€…的電å­éƒµä»¶åœ°å€', 'password_forgotten_text' => '填寫以下表格,然後按照將發é€çµ¦æ‚¨çš„é›»å­éƒµä»¶ä¸­çš„說明進行æ“作。', @@ -1077,6 +1103,7 @@ URL: [url]', 收件人:[recipient] 使用者:[username] ç¶²å€ï¼š[url]', +'receipt_deletion_email_body_html' => '', 'receipt_deletion_email_subject' => '[sitename]: [name] - 收件人已刪除', 'receipt_log' => '接待記錄', 'receipt_request_email_body' => 'æŽ¥å¾…è¦æ±‚ @@ -1085,8 +1112,11 @@ URL: [url]', 父文件夾:[folder_path] 使用者:[username] ç¶²å€ï¼š[url]', +'receipt_request_email_body_html' => '', 'receipt_request_email_subject' => '[sitename]: [name] - æŽ¥å¾…è¦æ±‚', 'receipt_status' => '狀態', +'receipt_submit_email_body' => '', +'receipt_submit_email_subject' => '', 'receipt_summary' => '收據摘è¦', 'receipt_update_failed' => 'ç¢ºèªæŽ¥æ”¶å¤±æ•—', 'recent_uploads' => '最近上傳', @@ -1106,6 +1136,7 @@ URL: [url]', 文件:[document] 使用者:[username] ç¶²å€ï¼š[url]', +'removed_file_email_body_html' => '', 'removed_file_email_subject' => '[sitename]: [document] - 移除了附件', 'removed_recipient' => '已從收件人列表中刪除。', 'removed_reviewer' => '已經從校å°äººå單中刪除', @@ -1117,6 +1148,7 @@ URL: [url]', 父文件夾:[folder_path] 使用者:[username] ç¶²å€ï¼š[url]', +'removed_workflow_email_body_html' => '', 'removed_workflow_email_subject' => '[sitename]: [name] - 從文檔版本中刪除了工作æµç¨‹', 'removeFolderFromDropFolder' => '導入後刪除文件夾', 'remove_approval_log' => '', @@ -1125,6 +1157,7 @@ URL: [url]', 'repaired' => '修復', 'repairing_objects' => '修復文檔和文件夾。', 'replace_content_email_body' => '', +'replace_content_email_body_html' => '', 'replace_content_email_subject' => '', 'request_workflow_action_email_body' => '工作æµç¨‹å·²é”åˆ°éœ€è¦æ‚¨æŽ¡å–措施的狀態。 文件:[name] @@ -1134,6 +1167,7 @@ URL: [url]', 父文件夾:[folder_path] 使用者:[username] ç¶²å€ï¼š[url]', +'request_workflow_action_email_body_html' => '', 'request_workflow_action_email_subject' => '[sitename]: [name] - éœ€è¦æŽ¡å–的工作æµç¨‹æŽªæ–½', 'reset_checkout' => '完æˆç°½å‡º', 'restrict_access' => '無法訪å•', @@ -1147,6 +1181,7 @@ URL: [url]', 父文件夾:[folder_path] 使用者:[username] ç¶²å€ï¼š[url]', +'return_from_subworkflow_email_body_html' => '', 'return_from_subworkflow_email_subject' => '[sitename]: [name] - è¿”å›žå­æµç¨‹', 'reverse_links' => '文檔,具有指å‘ç•¶å‰æ–‡æª”çš„éˆæŽ¥', 'reviewers' => 'æ ¡å°äºº', @@ -1167,6 +1202,7 @@ URL: [url]', 父文件夾:[folder_path] 使用者:[username] ç¶²å€ï¼š[url]', +'review_deletion_email_body_html' => '', 'review_deletion_email_subject' => '[sitename]: [name] - 審核請求已刪除', 'review_file' => '檔案', 'review_group' => 'æ ¡å°çµ„', @@ -1178,6 +1214,7 @@ URL: [url]', 父文件夾:[folder_path] 使用者:[username] ç¶²å€ï¼š[url]', +'review_request_email_body_html' => '', 'review_request_email_subject' => '[sitename]: [name] - å¯©æŸ¥è¦æ±‚', 'review_status' => 'æ ¡å°ç‹€æ…‹', 'review_submit_email' => 'æäº¤æ ¡å°', @@ -1189,6 +1226,7 @@ URL: [url]', 父文件夾:[folder_path] 使用者:[username] ç¶²å€ï¼š[url]', +'review_submit_email_body_html' => '', 'review_submit_email_subject' => '[sitename]: [name] - æäº¤è©•è«–', 'review_summary' => 'æ ¡å°åŒ¯ç¸½', 'review_update_failed' => '錯誤 æ›´æ–°æ ¡å°ç‹€æ…‹.更新失敗', @@ -1213,9 +1251,11 @@ URL: [url]', 父文件夾:[folder_path] 使用者:[username] ç¶²å€ï¼š[url]', +'revision_request_email_body_html' => '', 'revision_request_email_subject' => '[sitename]: [name] - ä¿®è¨‚è¦æ±‚', 'revision_status' => '狀態', 'revision_submit_email_body' => '', +'revision_submit_email_body_html' => '', 'revision_submit_email_subject' => '', 'revision_summary' => '修訂摘è¦', 'revisors' => '修訂者', @@ -1229,6 +1269,7 @@ URL: [url]', 父文件夾:[folder_path] 使用者:[username] ç¶²å€ï¼š[url]', +'rewind_workflow_email_body_html' => '', 'rewind_workflow_email_subject' => '[sitename]: [name] - 工作æµç¨‹å·²å€’帶', 'rewind_workflow_warning' => '如果將工作æµç¨‹å€’回其åˆå§‹ç‹€æ…‹ï¼Œå‰‡è©²æ–‡æª”的整個工作æµç¨‹æ—¥èªŒå°‡è¢«åˆªé™¤ä¸¦ä¸”無法æ¢å¾©ã€‚', 'rm_attrdef' => '刪除屬性定義', @@ -1271,6 +1312,7 @@ URL: [url]', 父文件夾:[folder_path] 使用者:[username] ç¶²å€ï¼š[url]', +'run_subworkflow_email_body_html' => '', 'run_subworkflow_email_subject' => '[sitename]: [name] - å­æµç¨‹å•Ÿå‹•', 'ru_RU' => '俄語', 'saturday' => 'Saturday', @@ -1967,6 +2009,7 @@ URL: [url]', 父文件夾:[folder_path] 用戶:[username] ç¶²å€ï¼š[url]', +'transition_triggered_email_body_html' => '', 'transition_triggered_email_subject' => '[sitename]: [name] - 觸發工作æµç¨‹éŽæ¸¡', 'transmittal' => '傳輸', 'transmittalitem_removed' => '傳輸項目已刪除', @@ -2048,6 +2091,7 @@ URL: [url]', 父文件夾:[folder_path] 用戶:[username] ç¶²å€ï¼š[url]', +'version_deleted_email_body_html' => '', 'version_deleted_email_subject' => '[sitename]: [name]-版本已刪除', 'version_info' => '版本資訊', 'view' => '檢視', From 4a5426a18051530b4baa1d001cb3755e21bf5414 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 9 Sep 2021 08:17:28 +0200 Subject: [PATCH 038/413] fix indention --- inc/inc.ClassEmailNotify.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/inc.ClassEmailNotify.php b/inc/inc.ClassEmailNotify.php index b5b1905de..f427fb83b 100644 --- a/inc/inc.ClassEmailNotify.php +++ b/inc/inc.ClassEmailNotify.php @@ -221,7 +221,7 @@ class SeedDMS_EmailNotify extends SeedDMS_Notify { $ret = $queueService->queueMailJob($mail_params, $to, $hdrs, getMLText($subject, $params, "", $lang), $message); if($ret !== null) return $ret; - } + } } } $result = $mail->send($to, $hdrs, $message); From c376e352b5f75fc7ce2d56bbd171254652c9e56e Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 9 Sep 2021 08:17:52 +0200 Subject: [PATCH 039/413] add attribute 'for' to label in formField() --- views/bootstrap/class.Bootstrap.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/bootstrap/class.Bootstrap.php b/views/bootstrap/class.Bootstrap.php index e17603021..d4617d178 100644 --- a/views/bootstrap/class.Bootstrap.php +++ b/views/bootstrap/class.Bootstrap.php @@ -1076,7 +1076,7 @@ background-image: linear-gradient(to bottom, #882222, #111111);; function formField($title, $value, $params=array()) { /* {{{ */ if($title !== null) { echo "
"; - echo " "; + echo " "; echo "
"; } if(isset($params['field_wrap'][0])) From 40f3cf35c954efced1a4499c32cc3bc7e2449fae Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 9 Sep 2021 08:19:04 +0200 Subject: [PATCH 040/413] use formField() instead of plain html for select menus --- views/bootstrap/class.Login.php | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/views/bootstrap/class.Login.php b/views/bootstrap/class.Login.php index 834403f23..b4062c4c1 100644 --- a/views/bootstrap/class.Login.php +++ b/views/bootstrap/class.Login.php @@ -133,27 +133,35 @@ $(document).ready( function() { ) ); if($enableLanguageSelector) { - $html = ""; $this->formField( getMLText("language"), - $html + array( + 'element'=>'select', + 'name'=>'lang', + 'id'=>'languageselector', + 'options'=>$options + ) ); } if($enableThemeSelector) { - $html = ""; $this->formField( getMLText("theme"), - $html + array( + 'element'=>'select', + 'name'=>'sesstheme', + 'id'=>'themeselector', + 'options'=>$options + ) ); } $this->formSubmit(getMLText('submit_login')); From 9f618c54376537abced77d384c6e043aa5d9961b Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 9 Sep 2021 09:57:00 +0200 Subject: [PATCH 041/413] remove titleDisplayHack configuration --- conf/settings.xml.template | 2 -- inc/inc.ClassSettings.php | 4 ---- op/op.Settings.php | 1 - views/bootstrap/class.Settings.php | 1 - 4 files changed, 8 deletions(-) diff --git a/conf/settings.xml.template b/conf/settings.xml.template index bc69afe77..4363c86dd 100644 --- a/conf/settings.xml.template +++ b/conf/settings.xml.template @@ -224,13 +224,11 @@ +showConfigHeadline('settings_ExtensionMgr'); ?> +showConfigCheckbox('settings_enableExtensionDownload', 'enableExtensionDownload'); ?> +showConfigCheckbox('settings_enableExtensionImport', 'enableExtensionImport'); ?> +showConfigCheckbox('settings_enableExtensionImportFromRepository', 'enableExtensionImportFromRepository'); ?> showEndPaneContent('site', $currenttab); From 84887e3b185bef7c04bf12b3d5882a2076204bdd Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 10 Sep 2021 09:37:07 +0200 Subject: [PATCH 043/413] some clean ups, add more documentation --- conf/settings.xml.template | 46 ++++++++++++++++++-------------------- 1 file changed, 22 insertions(+), 24 deletions(-) diff --git a/conf/settings.xml.template b/conf/settings.xml.template index 4363c86dd..075192b8a 100644 --- a/conf/settings.xml.template +++ b/conf/settings.xml.template @@ -115,16 +115,16 @@ - restricted: Restricted access: only allow users to log in if they have an entry in the local database (irrespective of successful authentication with LDAP). - enableUserImage: enable users images - disableSelfEdit: if true user cannot edit his own profile - - passwordStrength: XXX - - passwordStrengthAlgorithm: XXX - - passwordExpiration: XXX - - passwordHistory: XXX - - loginFailure: XXX - - autoLoginUser: XXX - - quota: XXX - - undelUserIds: XXX - - encryptionKey: XXX - - cookieLifetime: XXX + - passwordStrength: minimum strength of password, set to 0 to disable + - passwordStrengthAlgorithm: algorithm used to calculate password strenght (simple or advanced) + - passwordExpiration: number of days after password expires + - passwordHistory: number of remembered passwords + - loginFailure: maximum allowed login failures before an account is disabled + - autoLoginUser: id of user used if auto login is turned on + - quota: maximum allowed space on disc for each user + - undelUserIds: ids of users which cannot be deleted + - encryptionKey: arbitrary string used for creating form tokens + - cookieLifetime: lifetime of cookie in seconds, set to 0 for session cookies --> Date: Mon, 13 Sep 2021 09:09:41 +0200 Subject: [PATCH 044/413] move old tests out of the way --- SeedDMS_Core/{tests => oldtests}/config.php | 0 SeedDMS_Core/{tests => oldtests}/getfoldertree.php | 0 SeedDMS_Core/{tests => oldtests}/getusers.php | 0 SeedDMS_Core/{tests => oldtests}/reverselookup.php | 0 4 files changed, 0 insertions(+), 0 deletions(-) rename SeedDMS_Core/{tests => oldtests}/config.php (100%) rename SeedDMS_Core/{tests => oldtests}/getfoldertree.php (100%) rename SeedDMS_Core/{tests => oldtests}/getusers.php (100%) rename SeedDMS_Core/{tests => oldtests}/reverselookup.php (100%) diff --git a/SeedDMS_Core/tests/config.php b/SeedDMS_Core/oldtests/config.php similarity index 100% rename from SeedDMS_Core/tests/config.php rename to SeedDMS_Core/oldtests/config.php diff --git a/SeedDMS_Core/tests/getfoldertree.php b/SeedDMS_Core/oldtests/getfoldertree.php similarity index 100% rename from SeedDMS_Core/tests/getfoldertree.php rename to SeedDMS_Core/oldtests/getfoldertree.php diff --git a/SeedDMS_Core/tests/getusers.php b/SeedDMS_Core/oldtests/getusers.php similarity index 100% rename from SeedDMS_Core/tests/getusers.php rename to SeedDMS_Core/oldtests/getusers.php diff --git a/SeedDMS_Core/tests/reverselookup.php b/SeedDMS_Core/oldtests/reverselookup.php similarity index 100% rename from SeedDMS_Core/tests/reverselookup.php rename to SeedDMS_Core/oldtests/reverselookup.php From 9334e1a6f2734393a27c07b4faec4b88f3d9dbc9 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 13 Sep 2021 10:15:33 +0200 Subject: [PATCH 045/413] make all class variables of SeedDMS_Core_User protected --- SeedDMS_Core/Core/inc.ClassUser.php | 38 ++++++++++++++++------------- SeedDMS_Core/package.xml | 1 + 2 files changed, 22 insertions(+), 17 deletions(-) diff --git a/SeedDMS_Core/Core/inc.ClassUser.php b/SeedDMS_Core/Core/inc.ClassUser.php index 8c2893f00..77cc4a204 100644 --- a/SeedDMS_Core/Core/inc.ClassUser.php +++ b/SeedDMS_Core/Core/inc.ClassUser.php @@ -28,42 +28,42 @@ class SeedDMS_Core_User { /* {{{ */ * * @access protected */ - var $_id; + protected $_id; /** * @var string login name of user * * @access protected */ - var $_login; + protected $_login; /** * @var string password of user as saved in database (md5) * * @access protected */ - var $_pwd; + protected $_pwd; /** * @var string date when password expires * * @access protected */ - var $_pwdExpiration; + protected $_pwdExpiration; /** * @var string full human readable name of user * * @access protected */ - var $_fullName; + protected $_fullName; /** * @var string email address of user * * @access protected */ - var $_email; + protected $_email; /** * @var string prefered language of user @@ -71,21 +71,21 @@ class SeedDMS_Core_User { /* {{{ */ * * @access protected */ - var $_language; + protected $_language; /** * @var string preselected theme of user * * @access protected */ - var $_theme; + protected $_theme; /** * @var string comment of user * * @access protected */ - var $_comment; + protected $_comment; /** * @var string role of user. Can be one of SeedDMS_Core_User::role_user, @@ -93,52 +93,56 @@ class SeedDMS_Core_User { /* {{{ */ * * @access protected */ - var $_role; + protected $_role; /** * @var boolean true if user shall be hidden * * @access protected */ - var $_isHidden; + protected $_isHidden; /** * @var boolean true if user is disabled * * @access protected */ - var $_isDisabled; + protected $_isDisabled; /** * @var int number of login failures * * @access protected */ - var $_loginFailures; + protected $_loginFailures; /** * @var SeedDMS_Core_Folder home folder * * @access protected */ - var $_homeFolder; + protected $_homeFolder; /** * @var SeedDMS_Core_DMS reference to the dms instance this user belongs to * * @access protected */ - var $_dms; + protected $_dms; /** * @var int + * + * @access protected */ - private $_quota; + protected $_quota; /** * @var bool + * + * @access protected */ - private $_hasImage; + protected $_hasImage; const role_user = '0'; const role_admin = '1'; diff --git a/SeedDMS_Core/package.xml b/SeedDMS_Core/package.xml index 4b8f3a0b3..31fae4792 100644 --- a/SeedDMS_Core/package.xml +++ b/SeedDMS_Core/package.xml @@ -25,6 +25,7 @@ GPL License - in SeedDMS_Core_DocumentContent::removeWorkflow() remove records from tblWorklflowLog before tblDWorkflowDocumentContent +- make all class variables of SeedDMS_Core_User protected From b111c1428eb8ae987282a91786de79aad86a79d8 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Wed, 15 Sep 2021 21:49:44 +0200 Subject: [PATCH 046/413] remove old database file unused for a long time --- SeedDMS_Core/Core/inc.DBAccess.php | 317 ----------------------------- 1 file changed, 317 deletions(-) delete mode 100644 SeedDMS_Core/Core/inc.DBAccess.php diff --git a/SeedDMS_Core/Core/inc.DBAccess.php b/SeedDMS_Core/Core/inc.DBAccess.php deleted file mode 100644 index d0a394df6..000000000 --- a/SeedDMS_Core/Core/inc.DBAccess.php +++ /dev/null @@ -1,317 +0,0 @@ - - * @copyright Copyright (C) 2002-2005 Markus Westphal, 2006-2008 Malcolm Cowe, - * 2010 Matteo Lucarelli, 2010 Uwe Steinmann - * @version Release: @package_version@ - */ - -/** - * Include the adodb database abstraction - */ -require_once "adodb/adodb.inc.php"; -/** @noinspection PhpUndefinedClassInspection */ - -/** - * Class to represent the database access for the document management - * - * @category DMS - * @package SeedDMS_Core - * @author Markus Westphal, Malcolm Cowe, Matteo Lucarelli, Uwe Steinmann - * @copyright Copyright (C) 2002-2005 Markus Westphal, 2006-2008 Malcolm Cowe, 2010 Matteo Lucarelli, 2010 Uwe Steinmann - * @version Release: @package_version@ - */ -class SeedDMS_Core_DatabaseAccess { - var $_debug; - var $_driver; - var $_hostname; - var $_database; - var $_user; - var $_passw; - var $_conn; - var $_connected; - var $_ttreviewid; - var $_ttapproveid; - var $_ttstatid; - var $_ttcontentid; - var $_intransaction; - - /* - Backup functions - */ - - /** - * Return list of all database tables - * - * This function is used to retrieve a list of database tables for backup - * - * @return array list of table names - */ - function TableList() { - return $this->_conn->MetaTables("TABLES"); - } - - /** - * Constructor of SeedDMS_Core_DatabaseAccess - * - * Sets all database parameters but does not connect. - * - * @param string $driver the database type e.g. mysql, sqlite - * @param string $hostname host of database server - * @param string $user name of user having access to database - * @param string $passw password of user - * @param bool|string $database name of database - */ - function __construct($driver, $hostname, $user, $passw, $database = false) { - $this->_driver = $driver; - $this->_hostname = $hostname; - $this->_database = $database; - $this->_user = $user; - $this->_passw = $passw; - $this->_connected = false; - $this->_intransaction = 0; - // $tt*****id is a hack to ensure that we do not try to create the - // temporary table twice during a single connection. Can be fixed by - // using Views (MySQL 5.0 onward) instead of temporary tables. - // CREATE ... IF NOT EXISTS cannot be used because it has the - // unpleasant side-effect of performing the insert again even if the - // table already exists. - // - // See createTemporaryTable() method for implementation. - $this->_ttreviewid = false; - $this->_ttapproveid = false; - $this->_ttstatid = false; - $this->_ttcontentid = false; - $this->_debug = false; - } - - /** - * Connect to database - * - * @return boolean true if connection could be established, otherwise false - */ - function connect() { /* {{{ */ - $this->_conn = ADONewConnection($this->_driver); - if ($this->_database) - $this->_conn->Connect($this->_hostname, $this->_user, $this->_passw, $this->_database); - else - $this->_conn->Connect($this->_hostname, $this->_user, $this->_passw); - - if (!$this->_conn) - return false; - - $this->_conn->SetFetchMode(ADODB_FETCH_ASSOC); - $this->_conn->Execute('SET NAMES utf8'); - $this->_connected = true; - return true; - } /* }}} */ - - /** - * Make sure a database connection exisits - * - * This function checks for a database connection. If it does not exists - * it will reconnect. - * - * @return boolean true if connection is established, otherwise false - */ - function ensureConnected() { /* {{{ */ - if (!$this->_connected) return $this->connect(); - else return true; - } /* }}} */ - - /** - * Sanitize String used in database operations - * - * @param string $text - * @return string sanitized string - */ - function qstr($text) { /* {{{ */ - return $this->_conn->qstr($text); - } /* }}} */ - - - /** - * Execute SQL query and return result - * - * Call this function only with sql query which return data records. - * - * @param string $queryStr sql query - * @return array|boolean data if query could be executed otherwise false - */ - function getResultArray($queryStr) { /* {{{ */ - /** @noinspection PhpUnusedLocalVariableInspection */ - $resArr = array(); - - $res = $this->_conn->Execute($queryStr); - if (!$res) { - if($this->_debug) - echo "error: ".$queryStr."
"; - return false; - } - $resArr = $res->GetArray(); - $res->Close(); - return $resArr; - } /* }}} */ - - /** - * Execute SQL query - * - * Call this function only with sql query which do not return data records. - * - * @param string $queryStr sql query - * @return bool true if query could be executed otherwise false - * @internal param bool $silent not used anymore. This was used when this method - * still issued an error message - */ - function getResult($queryStr) { /* {{{ */ - $res = $this->_conn->Execute($queryStr); - if(!$res) { - if($this->_debug) - echo "error: ".$queryStr."
"; - } - - return $res; - } /* }}} */ - - /** - * Return the id of the last instert record - * - * @return integer id used in last autoincrement - */ - function getInsertID() { /* {{{ */ - return $this->_conn->Insert_ID(); - } /* }}} */ - - function startTransaction() { /* {{{ */ - if(!$this->_intransaction) { - $this->_conn->BeginTrans(); - } - $this->_intransaction++; - } /* }}} */ - - function rollbackTransaction() { /* {{{ */ - if($this->_intransaction == 1) { - $this->_conn->RollbackTrans(); - } - $this->_intransaction--; - } /* }}} */ - - function commitTransaction() { /* {{{ */ - if($this->_intransaction == 1) { - $this->_conn->CommitTrans(); - } - $this->_intransaction--; - } /* }}} */ - - function getErrorMsg() { /* {{{ */ - return $this->_conn->ErrorMsg(); - } /* }}} */ - - function getErrorNo() { /* {{{ */ - return $this->_conn->ErrorNo(); - } /* }}} */ - - /** - * Create various temporary tables to speed up and simplify sql queries - * @param $tableName - * @param bool $override - * @return bool - */ - function createTemporaryTable($tableName, $override=false) { /* {{{ */ - if (!strcasecmp($tableName, "ttreviewid")) { - $queryStr = "CREATE TEMPORARY TABLE IF NOT EXISTS `ttreviewid` (PRIMARY KEY (`reviewID`), INDEX (`maxLogID`)) ". - "SELECT `tblDocumentReviewLog`.`reviewID`, ". - "MAX(`tblDocumentReviewLog`.`reviewLogID`) AS `maxLogID` ". - "FROM `tblDocumentReviewLog` ". - "GROUP BY `tblDocumentReviewLog`.`reviewID` ". - "ORDER BY `tblDocumentReviewLog`.`reviewLogID`"; - if (!$this->_ttreviewid) { - if (!$this->getResult($queryStr)) - return false; - $this->_ttreviewid=true; - } - else { - if (is_bool($override) && $override) { - if (!$this->getResult("DELETE FROM `ttreviewid`")) - return false; - if (!$this->getResult($queryStr)) - return false; - } - } - return $this->_ttreviewid; - } - else if (!strcasecmp($tableName, "ttapproveid")) { - $queryStr = "CREATE TEMPORARY TABLE IF NOT EXISTS `ttapproveid` (PRIMARY KEY (`approveID`), INDEX (`maxLogID`)) ". - "SELECT `tblDocumentApproveLog`.`approveID`, ". - "MAX(`tblDocumentApproveLog`.`approveLogID`) AS `maxLogID` ". - "FROM `tblDocumentApproveLog` ". - "GROUP BY `tblDocumentApproveLog`.`approveID` ". - "ORDER BY `tblDocumentApproveLog`.`approveLogID`"; - if (!$this->_ttapproveid) { - if (!$this->getResult($queryStr)) - return false; - $this->_ttapproveid=true; - } - else { - if (is_bool($override) && $override) { - if (!$this->getResult("DELETE FROM `ttapproveid`")) - return false; - if (!$this->getResult($queryStr)) - return false; - } - } - return $this->_ttapproveid; - } - else if (!strcasecmp($tableName, "ttstatid")) { - $queryStr = "CREATE TEMPORARY TABLE IF NOT EXISTS `ttstatid` (PRIMARY KEY (`statusID`), INDEX (`maxLogID`)) ". - "SELECT `tblDocumentStatusLog`.`statusID`, ". - "MAX(`tblDocumentStatusLog`.`statusLogID`) AS `maxLogID` ". - "FROM `tblDocumentStatusLog` ". - "GROUP BY `tblDocumentStatusLog`.`statusID` ". - "ORDER BY `tblDocumentStatusLog`.`statusLogID`"; - if (!$this->_ttstatid) { - if (!$this->getResult($queryStr)) - return false; - $this->_ttstatid=true; - } - else { - if (is_bool($override) && $override) { - if (!$this->getResult("DELETE FROM `ttstatid`")) - return false; - if (!$this->getResult($queryStr)) - return false; - } - } - return $this->_ttstatid; - } - else if (!strcasecmp($tableName, "ttcontentid")) { - $queryStr = "CREATE TEMPORARY TABLE `ttcontentid` (PRIMARY KEY (`document`), INDEX (`maxVersion`)) ". - "SELECT `tblDocumentContent`.`document`, ". - "MAX(`tblDocumentContent`.`version`) AS `maxVersion` ". - "FROM `tblDocumentContent` ". - "GROUP BY `tblDocumentContent`.`document` ". - "ORDER BY `tblDocumentContent`.`document`"; - if (!$this->_ttcontentid) { - if (!$this->getResult($queryStr)) - return false; - $this->_ttcontentid=true; - } - else { - if (is_bool($override) && $override) { - if (!$this->getResult("DELETE FROM `ttcontentid`")) - return false; - if (!$this->getResult($queryStr)) - return false; - } - } - return $this->_ttcontentid; - } - return false; - } /* }}} */ -} \ No newline at end of file From ad52fffd214297353d8fd0026e12c8a709786045 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 16 Sep 2021 16:02:16 +0200 Subject: [PATCH 047/413] set file format to unix, fix indenting of comments --- SeedDMS_Core/Core/inc.ClassAccess.php | 244 +++++++++++++------------- 1 file changed, 122 insertions(+), 122 deletions(-) diff --git a/SeedDMS_Core/Core/inc.ClassAccess.php b/SeedDMS_Core/Core/inc.ClassAccess.php index 3d355e21e..c9ef9ffcd 100644 --- a/SeedDMS_Core/Core/inc.ClassAccess.php +++ b/SeedDMS_Core/Core/inc.ClassAccess.php @@ -1,122 +1,122 @@ - - * @copyright Copyright (C) 2002-2005 Markus Westphal, 2006-2008 Malcolm Cowe, - * 2010 Uwe Steinmann - * @version Release: @package_version@ - */ - -/** - * Class to represent a user access right. - * This class cannot be used to modify access rights. - * - * @category DMS - * @package SeedDMS_Core - * @author Markus Westphal, Malcolm Cowe, Uwe Steinmann - * @copyright Copyright (C) 2002-2005 Markus Westphal, 2006-2008 Malcolm Cowe, - * 2010 Uwe Steinmann - * @version Release: @package_version@ - */ -class SeedDMS_Core_UserAccess { /* {{{ */ - - /** - * @var SeedDMS_Core_User - */ - var $_user; - - /** - * @var - */ - var $_mode; - - /** - * SeedDMS_Core_UserAccess constructor. - * @param $user - * @param $mode - */ - function __construct($user, $mode) { - $this->_user = $user; - $this->_mode = $mode; - } - - /** - * @return int - */ - function getUserID() { return $this->_user->getID(); } - - /** - * @return mixed - */ - function getMode() { return $this->_mode; } - - /** - * @return bool - */ - function isAdmin() { - return ($this->_mode == SeedDMS_Core_User::role_admin); - } - - /** - * @return SeedDMS_Core_User - */ - function getUser() { - return $this->_user; - } -} /* }}} */ - - -/** - * Class to represent a group access right. - * This class cannot be used to modify access rights. - * - * @category DMS - * @package SeedDMS_Core - * @author Markus Westphal, Malcolm Cowe, Uwe Steinmann - * @copyright Copyright (C) 2002-2005 Markus Westphal, 2006-2008 Malcolm Cowe, 2010 Uwe Steinmann - * @version Release: @package_version@ - */ -class SeedDMS_Core_GroupAccess { /* {{{ */ - - /** - * @var SeedDMS_Core_Group - */ - var $_group; - - /** - * @var - */ - var $_mode; - - /** - * SeedDMS_Core_GroupAccess constructor. - * @param $group - * @param $mode - */ - function __construct($group, $mode) { - $this->_group = $group; - $this->_mode = $mode; - } - - /** - * @return int - */ - function getGroupID() { return $this->_group->getID(); } - - /** - * @return mixed - */ - function getMode() { return $this->_mode; } - - /** - * @return SeedDMS_Core_Group - */ - function getGroup() { - return $this->_group; - } -} /* }}} */ \ No newline at end of file + + * @copyright Copyright (C) 2002-2005 Markus Westphal, 2006-2008 Malcolm Cowe, + * 2010 Uwe Steinmann + * @version Release: @package_version@ + */ + +/** + * Class to represent a user access right. + * This class cannot be used to modify access rights. + * + * @category DMS + * @package SeedDMS_Core + * @author Markus Westphal, Malcolm Cowe, Uwe Steinmann + * @copyright Copyright (C) 2002-2005 Markus Westphal, 2006-2008 Malcolm Cowe, + * 2010 Uwe Steinmann + * @version Release: @package_version@ + */ +class SeedDMS_Core_UserAccess { /* {{{ */ + + /** + * @var SeedDMS_Core_User + */ + var $_user; + + /** + * @var + */ + var $_mode; + + /** + * SeedDMS_Core_UserAccess constructor. + * @param $user + * @param $mode + */ + function __construct($user, $mode) { + $this->_user = $user; + $this->_mode = $mode; + } + + /** + * @return int + */ + function getUserID() { return $this->_user->getID(); } + + /** + * @return mixed + */ + function getMode() { return $this->_mode; } + + /** + * @return bool + */ + function isAdmin() { + return ($this->_mode == SeedDMS_Core_User::role_admin); + } + + /** + * @return SeedDMS_Core_User + */ + function getUser() { + return $this->_user; + } +} /* }}} */ + + +/** + * Class to represent a group access right. + * This class cannot be used to modify access rights. + * + * @category DMS + * @package SeedDMS_Core + * @author Markus Westphal, Malcolm Cowe, Uwe Steinmann + * @copyright Copyright (C) 2002-2005 Markus Westphal, 2006-2008 Malcolm Cowe, 2010 Uwe Steinmann + * @version Release: @package_version@ + */ +class SeedDMS_Core_GroupAccess { /* {{{ */ + + /** + * @var SeedDMS_Core_Group + */ + var $_group; + + /** + * @var + */ + var $_mode; + + /** + * SeedDMS_Core_GroupAccess constructor. + * @param $group + * @param $mode + */ + function __construct($group, $mode) { + $this->_group = $group; + $this->_mode = $mode; + } + + /** + * @return int + */ + function getGroupID() { return $this->_group->getID(); } + + /** + * @return mixed + */ + function getMode() { return $this->_mode; } + + /** + * @return SeedDMS_Core_Group + */ + function getGroup() { + return $this->_group; + } +} /* }}} */ From b0d13f95182009a72ecd198dcb53e6a0131f68b3 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 16 Sep 2021 16:05:04 +0200 Subject: [PATCH 048/413] replace array_search by in_array, makeTimestamp() returns an error if days > max days of month --- SeedDMS_Core/Core/inc.ClassDMS.php | 158 +++++++++++++---------------- 1 file changed, 68 insertions(+), 90 deletions(-) diff --git a/SeedDMS_Core/Core/inc.ClassDMS.php b/SeedDMS_Core/Core/inc.ClassDMS.php index b4de184d7..82903e4c6 100644 --- a/SeedDMS_Core/Core/inc.ClassDMS.php +++ b/SeedDMS_Core/Core/inc.ClassDMS.php @@ -123,13 +123,6 @@ class SeedDMS_Core_DMS { */ public $maxDirID; - /** - * @var boolean $enableConverting set to true if conversion of content - * is desired - * @access public - */ - public $enableConverting; - /** * @var boolean $forceRename use renameFile() instead of copyFile() when * copying the document content into the data store. The default is @@ -141,19 +134,6 @@ class SeedDMS_Core_DMS { */ public $forceRename; - /** - * @var array $convertFileTypes list of files types that shall be converted - * @access public - */ - public $convertFileTypes; - - /** - * @var array $viewOnlineFileTypes list of files types that can be viewed - * online - * @access public - */ - public $viewOnlineFileTypes; - /** * @var array $noReadForStatus list of status without read right * online. @@ -391,8 +371,6 @@ class SeedDMS_Core_DMS { $this->maxDirID = 0; //31998; $this->forceRename = false; $this->checkWithinRootDir = false; - $this->enableConverting = false; - $this->convertFileTypes = array(); $this->noReadForStatus = array(); $this->classnames = array(); $this->classnames['folder'] = 'SeedDMS_Core_Folder'; @@ -507,7 +485,7 @@ class SeedDMS_Core_DMS { function getDBVersion() { /* {{{ */ $tbllist = $this->db->TableList(); $tbllist = explode(',',strtolower(join(',',$tbllist))); - if(!array_search('tblversion', $tbllist)) + if(!in_array('tblversion', $tbllist)) return false; $queryStr = "SELECT * FROM `tblVersion` order by `major`,`minor`,`subminor` limit 1"; $resArr = $this->db->getResultArray($queryStr); @@ -529,7 +507,7 @@ class SeedDMS_Core_DMS { function checkVersion() { /* {{{ */ $tbllist = $this->db->TableList(); $tbllist = explode(',',strtolower(join(',',$tbllist))); - if(!array_search('tblversion', $tbllist)) + if(!in_array('tblversion', $tbllist)) return true; $queryStr = "SELECT * FROM `tblVersion` order by `major`,`minor`,`subminor` limit 1"; $resArr = $this->db->getResultArray($queryStr); @@ -592,18 +570,6 @@ class SeedDMS_Core_DMS { return $this->getFolder($this->rootFolderID); } /* }}} */ - function setEnableConverting($enable) { /* {{{ */ - $this->enableConverting = $enable; - } /* }}} */ - - function setConvertFileTypes($types) { /* {{{ */ - $this->convertFileTypes = $types; - } /* }}} */ - - function setViewOnlineFileTypes($types) { /* {{{ */ - $this->viewOnlineFileTypes = $types; - } /* }}} */ - function setForceRename($enable) { /* {{{ */ $this->forceRename = $enable; } /* }}} */ @@ -640,7 +606,7 @@ class SeedDMS_Core_DMS { * This function retrieves a document from the database by its id. * * @param integer $id internal id of document - * @return SeedDMS_Core_Document instance of {@link SeedDMS_Core_Document} or false + * @return SeedDMS_Core_Document instance of {@link SeedDMS_Core_Document}, null or false */ function getDocument($id) { /* {{{ */ $classname = $this->classnames['document']; @@ -1367,7 +1333,7 @@ class SeedDMS_Core_DMS { else $queryStr .= "ORDER BY `name`"; $queryStr .= " ".$orderdir; break; // }}} - default: + default: // {{{ return false; break; // }}} } @@ -1402,21 +1368,17 @@ class SeedDMS_Core_DMS { $month = (int) $month; $day = (int) $day; - if (array_search($month, $thirtyone)) { + if(in_array($month, $thirtyone)) { $max=31; - } - else if (array_search($month, $thirty)) { + } elseif(in_array($month, $thirty)) { $max=30; - } - else { + } else { $max=(($year % 4 == 0) && ($year % 100 != 0 || $year % 400 == 0)) ? 29 : 28; } - // If the date falls out of bounds, set it to the maximum for the given - // month. Makes assumption about the user's intention, rather than failing - // for absolutely everything. + // Check again if day of month is valid in the given month if ($day>$max) { - $day=$max; + return false; } return mktime($hour, $min, $sec, $month, $day, $year); @@ -2013,26 +1975,6 @@ class SeedDMS_Core_DMS { function getFolderByName($name, $folder=null) { /* {{{ */ $classname = $this->classnames['folder']; return $classname::getInstanceByName($name, $folder, $this); - - if (!$name) return false; - - $queryStr = "SELECT * FROM `tblFolders` WHERE `name` = " . $this->db->qstr($name); - if($folder) - $queryStr .= " AND `parent` = ". $folder->getID(); - $queryStr .= " LIMIT 1"; - $resArr = $this->db->getResultArray($queryStr); - - if (is_bool($resArr) && $resArr == false) - return false; - - if(!$resArr) - return false; - - $resArr = $resArr[0]; - /** @var SeedDMS_Core_Folder $folder */ - $folder = new $this->classnames['folder']($resArr["id"], $resArr["name"], $resArr["parent"], $resArr["comment"], $resArr["date"], $resArr["owner"], $resArr["inheritAccess"], $resArr["defaultAccess"], $resArr["sequence"]); - $folder->setDMS($this); - return $folder; } /* }}} */ /** @@ -2057,7 +1999,27 @@ class SeedDMS_Core_DMS { foreach($cache as $id=>$rec) { if(!array_key_exists($rec['parent'], $cache) && $rec['parent'] != 0) { $errors[$id] = array('id'=>$id, 'name'=>$rec['name'], 'parent'=>$rec['parent'], 'msg'=>'Missing parent'); - } else { + } + if(!isset($errors[$id])) { + /* Create the real folderList and compare it with the stored folderList */ + $parent = $rec['parent']; + $fl = []; + while($parent) { + array_unshift($fl, $parent); + $parent = $cache[$parent]['parent']; + } + if($fl) + $flstr = ':'.implode(':', $fl).':'; + else + $flstr = ''; + if($flstr != $rec['folderList']) + $errors[$id] = array('id'=>$id, 'name'=>$rec['name'], 'parent'=>$rec['parent'], 'msg'=>'Wrong folder list '.$flstr.'!='.$rec['folderList']); + } + if(!isset($errors[$id])) { + /* This is the old insufficient test which will most likely not be called + * anymore, because the check for a wrong folder list will cache a folder + * list problem anyway. + */ $tmparr = explode(':', $rec['folderList']); array_shift($tmparr); if(count($tmparr) != count(array_unique($tmparr))) { @@ -2102,7 +2064,21 @@ class SeedDMS_Core_DMS { foreach($dcache as $id=>$rec) { if(!array_key_exists($rec['parent'], $fcache) && $rec['parent'] != 0) { $errors[$id] = array('id'=>$id, 'name'=>$rec['name'], 'parent'=>$rec['parent'], 'msg'=>'Missing parent'); - } else { + } + if(!isset($errors[$id])) { + /* Create the real folderList and compare it with the stored folderList */ + $parent = $rec['parent']; + $fl = []; + while($parent) { + array_unshift($fl, $parent); + $parent = $fcache[$parent]['parent']; + } + if($fl) + $flstr = ':'.implode(':', $fl).':'; + if($flstr != $rec['folderList']) + $errors[$id] = array('id'=>$id, 'name'=>$rec['name'], 'parent'=>$rec['parent'], 'msg'=>'Wrong folder list '.$flstr.'!='.$rec['folderList']); + } + if(!isset($errors[$id])) { $tmparr = explode(':', $rec['folderList']); array_shift($tmparr); if(count($tmparr) != count(array_unique($tmparr))) { @@ -3107,13 +3083,13 @@ class SeedDMS_Core_DMS { break; } /** @noinspection PhpUndefinedVariableInspection */ - $queryStr .= " a LEFT JOIN `tblDocuments` b ON a.`documentID`=b.`id` where"; + $queryStr .= " a LEFT JOIN `tblDocuments` b ON a.`documentID`=b.`id` WHERE"; switch($usergroup) { case 'user': - $queryStr .= " a.`type`=0 and a.`required` not in (select `id` from `tblUsers`) ORDER by b.`id`"; + $queryStr .= " a.`type`=0 and a.`required` not in (SELECT `id` FROM `tblUsers`) ORDER by b.`id`"; break; case 'group': - $queryStr .= " a.`type`=1 and a.`required` not in (select `id` from `tblGroups`) ORDER by b.`id`"; + $queryStr .= " a.`type`=1 and a.`required` not in (SELECT `id` FROM `tblGroups`) ORDER by b.`id`"; break; } return $this->db->getResultArray($queryStr); @@ -3169,58 +3145,60 @@ class SeedDMS_Core_DMS { * documents or used space per user, recent activity, etc. * * @param string $type type of statistic - * @return array|bool + * @return array|bool returns false if the sql statement fails, returns an empty + * array if no documents or folder where found, otherwise returns a non empty + * array with statistical data */ function getStatisticalData($type='') { /* {{{ */ switch($type) { case 'docsperuser': - $queryStr = "select ".$this->db->concat(array('b.`fullName`', "' ('", 'b.`login`', "')'"))." as `key`, count(`owner`) as total from `tblDocuments` a left join `tblUsers` b on a.`owner`=b.`id` group by `owner`, b.`fullName`"; + $queryStr = "SELECT ".$this->db->concat(array('b.`fullName`', "' ('", 'b.`login`', "')'"))." AS `key`, count(`owner`) AS total FROM `tblDocuments` a LEFT JOIN `tblUsers` b ON a.`owner`=b.`id` GROUP BY `owner`, b.`fullName`"; $resArr = $this->db->getResultArray($queryStr); - if (!$resArr) + if(is_bool($resArr) && $resArr == false) return false; return $resArr; case 'foldersperuser': - $queryStr = "select ".$this->db->concat(array('b.`fullName`', "' ('", 'b.`login`', "')'"))." as `key`, count(`owner`) as total from `tblFolders` a left join `tblUsers` b on a.`owner`=b.`id` group by `owner`, b.`fullName`"; + $queryStr = "SELECT ".$this->db->concat(array('b.`fullName`', "' ('", 'b.`login`', "')'"))." AS `key`, count(`owner`) AS total FROM `tblFolders` a LEFT JOIN `tblUsers` b ON a.`owner`=b.`id` GROUP BY `owner`, b.`fullName`"; $resArr = $this->db->getResultArray($queryStr); - if (!$resArr) + if(is_bool($resArr) && $resArr == false) return false; return $resArr; case 'docspermimetype': - $queryStr = "select b.`mimeType` as `key`, count(`mimeType`) as total from `tblDocuments` a left join `tblDocumentContent` b on a.`id`=b.`document` group by b.`mimeType`"; + $queryStr = "SELECT b.`mimeType` AS `key`, count(`mimeType`) AS total FROM `tblDocuments` a LEFT JOIN `tblDocumentContent` b ON a.`id`=b.`document` GROUP BY b.`mimeType`"; $resArr = $this->db->getResultArray($queryStr); - if (!$resArr) + if(is_bool($resArr) && $resArr == false) return false; return $resArr; case 'docspercategory': - $queryStr = "select b.`name` as `key`, count(a.`categoryID`) as total from `tblDocumentCategory` a left join `tblCategory` b on a.`categoryID`=b.id group by a.`categoryID`, b.`name`"; + $queryStr = "SELECT b.`name` AS `key`, count(a.`categoryID`) AS total FROM `tblDocumentCategory` a LEFT JOIN `tblCategory` b ON a.`categoryID`=b.id GROUP BY a.`categoryID`, b.`name`"; $resArr = $this->db->getResultArray($queryStr); - if (!$resArr) + if(is_bool($resArr) && $resArr == false) return false; return $resArr; case 'docsperstatus': /** @noinspection PhpUnusedLocalVariableInspection */ - $queryStr = "select b.`status` as `key`, count(b.`status`) as total from (select a.id, max(b.version), max(c.`statusLogID`) as maxlog from `tblDocuments` a left join `tblDocumentStatus` b on a.id=b.`documentID` left join `tblDocumentStatusLog` c on b.`statusID`=c.`statusID` group by a.`id`, b.`version` order by a.`id`, b.`statusID`) a left join `tblDocumentStatusLog` b on a.`maxlog`=b.`statusLogID` group by b.`status`"; - $queryStr = "select b.`status` as `key`, count(b.`status`) as total from (select a.`id`, max(c.`statusLogID`) as maxlog from `tblDocuments` a left join `tblDocumentStatus` b on a.id=b.`documentID` left join `tblDocumentStatusLog` c on b.`statusID`=c.`statusID` group by a.`id` order by a.id) a left join `tblDocumentStatusLog` b on a.maxlog=b.`statusLogID` group by b.`status`"; + $queryStr = "SELECT b.`status` AS `key`, count(b.`status`) AS total FROM (SELECT a.id, max(b.version), max(c.`statusLogID`) AS maxlog FROM `tblDocuments` a LEFT JOIN `tblDocumentStatus` b ON a.id=b.`documentID` LEFT JOIN `tblDocumentStatusLog` c ON b.`statusID`=c.`statusID` GROUP BY a.`id`, b.`version` ORDER BY a.`id`, b.`statusID`) a LEFT JOIN `tblDocumentStatusLog` b ON a.`maxlog`=b.`statusLogID` GROUP BY b.`status`"; + $queryStr = "SELECT b.`status` AS `key`, count(b.`status`) AS total FROM (SELECT a.`id`, max(c.`statusLogID`) AS maxlog FROM `tblDocuments` a LEFT JOIN `tblDocumentStatus` b ON a.id=b.`documentID` LEFT JOIN `tblDocumentStatusLog` c ON b.`statusID`=c.`statusID` GROUP BY a.`id` ORDER BY a.id) a LEFT JOIN `tblDocumentStatusLog` b ON a.maxlog=b.`statusLogID` GROUP BY b.`status`"; $resArr = $this->db->getResultArray($queryStr); - if (!$resArr) + if(is_bool($resArr) && $resArr == false) return false; return $resArr; case 'docspermonth': - $queryStr = "select *, count(`key`) as total from (select ".$this->db->getDateExtract("date", '%Y-%m')." as `key` from `tblDocuments`) a group by `key` order by `key`"; + $queryStr = "SELECT *, count(`key`) AS total FROM (SELECT ".$this->db->getDateExtract("date", '%Y-%m')." AS `key` FROM `tblDocuments`) a GROUP BY `key` ORDER BY `key`"; $resArr = $this->db->getResultArray($queryStr); - if (!$resArr) + if(is_bool($resArr) && $resArr == false) return false; return $resArr; case 'docsaccumulated': - $queryStr = "select *, count(`key`) as total from (select ".$this->db->getDateExtract("date")." as `key` from `tblDocuments`) a group by `key` order by `key`"; + $queryStr = "SELECT *, count(`key`) AS total FROM (SELECT ".$this->db->getDateExtract("date")." AS `key` FROM `tblDocuments`) a GROUP BY `key` ORDER BY `key`"; $resArr = $this->db->getResultArray($queryStr); - if (!$resArr) + if(is_bool($resArr) && $resArr == false) return false; $sum = 0; @@ -3234,9 +3212,9 @@ class SeedDMS_Core_DMS { } return $resArr; case 'sizeperuser': - $queryStr = "select ".$this->db->concat(array('c.`fullName`', "' ('", 'c.`login`', "')'"))." as `key`, sum(`fileSize`) as total from `tblDocuments` a left join `tblDocumentContent` b on a.id=b.`document` left join `tblUsers` c on a.`owner`=c.`id` group by a.`owner`, c.`fullName`"; + $queryStr = "SELECT ".$this->db->concat(array('c.`fullName`', "' ('", 'c.`login`', "')'"))." AS `key`, sum(`fileSize`) AS total FROM `tblDocuments` a LEFT JOIN `tblDocumentContent` b ON a.id=b.`document` LEFT JOIN `tblUsers` c ON a.`owner`=c.`id` GROUP BY a.`owner`, c.`fullName`"; $resArr = $this->db->getResultArray($queryStr); - if (!$resArr) + if(is_bool($resArr) && $resArr == false) return false; return $resArr; From 90074c39470e3100f82e07840dbffb9877bf1c43 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 16 Sep 2021 16:07:31 +0200 Subject: [PATCH 049/413] fix get value map separator --- SeedDMS_Core/Core/inc.ClassAttribute.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SeedDMS_Core/Core/inc.ClassAttribute.php b/SeedDMS_Core/Core/inc.ClassAttribute.php index 5d2d6c473..feadc0664 100644 --- a/SeedDMS_Core/Core/inc.ClassAttribute.php +++ b/SeedDMS_Core/Core/inc.ClassAttribute.php @@ -175,7 +175,7 @@ class SeedDMS_Core_Attribute { /* {{{ */ if(is_array($values)) { if($values) { - $vsep = $this->getValueSetSeparator(); + $vsep = $this->_attrdef->getValueSetSeparator(); if($valueset) { /* Validation should have been done before $error = false; From cd1800c19dbc9c793e4e0b9ce66f89bef1842205 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 16 Sep 2021 16:09:18 +0200 Subject: [PATCH 050/413] add docs for var $separator --- SeedDMS_Core/Core/inc.ClassAttribute.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/SeedDMS_Core/Core/inc.ClassAttribute.php b/SeedDMS_Core/Core/inc.ClassAttribute.php index feadc0664..0953fe5f8 100644 --- a/SeedDMS_Core/Core/inc.ClassAttribute.php +++ b/SeedDMS_Core/Core/inc.ClassAttribute.php @@ -409,7 +409,9 @@ class SeedDMS_Core_AttributeDefinition { /* {{{ */ protected $_dms; /** - * @var string + * @var string just the separator of a value set (not used) + * + * @access protected */ protected $_separator; From ffe4b50c7fc7e20c3cdb586772be9763264762c8 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 16 Sep 2021 16:11:13 +0200 Subject: [PATCH 051/413] many value validation improvements, use constants for validation errors --- SeedDMS_Core/Core/inc.ClassAttribute.php | 86 ++++++++++++++++-------- 1 file changed, 57 insertions(+), 29 deletions(-) diff --git a/SeedDMS_Core/Core/inc.ClassAttribute.php b/SeedDMS_Core/Core/inc.ClassAttribute.php index 0953fe5f8..fd4d7ac11 100644 --- a/SeedDMS_Core/Core/inc.ClassAttribute.php +++ b/SeedDMS_Core/Core/inc.ClassAttribute.php @@ -443,6 +443,25 @@ class SeedDMS_Core_AttributeDefinition { /* {{{ */ const objtype_document = '2'; const objtype_documentcontent = '3'; + /* + * The validation error codes + */ + const val_error_none = 0; + const val_error_min_values = 1; + const val_error_max_values = 2; + const val_error_boolean = 8; + const val_error_int = 6; + const val_error_date = 9; + const val_error_float = 7; + const val_error_regex = 3; + const val_error_email = 5; + const val_error_url = 4; + const val_error_document = 10; + const val_error_folder = 11; + const val_error_user = 12; + const val_error_group = 13; + const val_error_valueset = 14; + /** * Constructor * @@ -1161,36 +1180,38 @@ class SeedDMS_Core_AttributeDefinition { /* {{{ */ } /* Turn $attrvalue into an array of values. Checks if $attrvalue starts - * with a separator char as set in the value set and uses it to explode + * with a separator char as set in the value set and use it to explode * the $attrvalue. If the separator doesn't match or this attribute * definition doesn't have a value set, then just create a one element * array. if $attrvalue is empty, then create an empty array. */ if($this->getMultipleValues()) { - if(is_string($attrvalue)) { + if(is_string($attrvalue) && $attrvalue) { $sep = $attrvalue[0]; $vsep = $this->getValueSetSeparator(); if($sep == $vsep) $values = explode($attrvalue[0], substr($attrvalue, 1)); else $values = array($attrvalue); + } elseif(is_string($attrvalue) && !$attrvalue) { + $values = array(); } else - $values = $attrvalue; - } elseif($attrvalue) { + $values = array($attrvalue); + } elseif($attrvalue !== null) { $values = array($attrvalue); } else { $values = array(); } /* Check if attribute value has at least the minimum number of values */ - $this->_validation_error = 0; + $this->_validation_error = SeedDMS_Core_AttributeDefinition::val_error_none; if($this->getMinValues() > count($values)) { - $this->_validation_error = 1; + $this->_validation_error = SeedDMS_Core_AttributeDefinition::val_error_min_values; return false; } /* Check if attribute value has not more than maximum number of values */ if($this->getMaxValues() && $this->getMaxValues() < count($values)) { - $this->_validation_error = 2; + $this->_validation_error = SeedDMS_Core_AttributeDefinition::val_error_max_values; return false; } @@ -1198,55 +1219,56 @@ class SeedDMS_Core_AttributeDefinition { /* {{{ */ switch((string) $this->getType()) { case self::type_boolean: foreach($values as $value) { - $success &= preg_match('/^[01]$/', $value) ? true : false; + $success = $success && (preg_match('/^[01]$/', $value) ? true : false); } if(!$success) - $this->_validation_error = 8; + $this->_validation_error = SeedDMS_Core_AttributeDefinition::val_error_boolean; break; case self::type_int: foreach($values as $value) { - $success &= preg_match('/^[0-9]*$/', $value) ? true : false; + $success = $success && (preg_match('/^[0-9]*$/', $value) ? true : false); } if(!$success) - $this->_validation_error = 6; + $this->_validation_error = SeedDMS_Core_AttributeDefinition::val_error_int; break; case self::type_date: foreach($values as $value) { - $success &= preg_match('/^[12][0-9]{3}-[01][0-9]-[0-9]{2}$/', $value) ? true : false; + $d = explode('-', $value, 3); + $success = $success && (count($d) == 3)&& checkdate((int) $d[1], (int) $d[2], (int) $d[0]); } if(!$success) - $this->_validation_error = 9; + $this->_validation_error = SeedDMS_Core_AttributeDefinition::val_error_date; break; case self::type_float: foreach($values as $value) { - $success &= is_numeric($value); + $success = $success && is_numeric($value); } if(!$success) - $this->_validation_error = 7; + $this->_validation_error = SeedDMS_Core_AttributeDefinition::val_error_float; break; case self::type_string: if(trim($this->getRegex()) != '') { foreach($values as $value) { - $success &= preg_match($this->getRegex(), $value) ? true : false; + $success = $success && (preg_match($this->getRegex(), $value) ? true : false); } } if(!$success) - $this->_validation_error = 3; + $this->_validation_error = SeedDMS_Core_AttributeDefinition::val_error_regex; break; case self::type_email: foreach($values as $value) { //$success &= filter_var($value, FILTER_VALIDATE_EMAIL) ? true : false; - $success &= preg_match('/^[a-z0-9._-]+@+[a-z0-9._-]+\.+[a-z]{2,63}$/i', $value); + $success = $success && (preg_match('/^[a-z0-9._-]+@[a-z0-9-]{2,63}(\.[a-z0-9-]{2,63})*\.[a-z]{2,63}$/i', $value) ? true : false); } if(!$success) - $this->_validation_error = 5; + $this->_validation_error = SeedDMS_Core_AttributeDefinition::val_error_email; break; case self::type_url: foreach($values as $value) { - $success &= preg_match('/^http(s)?:\/\/[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(\/.*)?$/i', $value); + $success = $success && (preg_match('/^http(s)?:\/\/[a-z0-9_-]+(\.[a-z0-9-]{2,63})*(:[0-9]+)?(\/.*)?$/i', $value) ? true : false); } if(!$success) - $this->_validation_error = 4; + $this->_validation_error = SeedDMS_Core_AttributeDefinition::val_error_url; break; case self::type_document: foreach($values as $value) { @@ -1255,7 +1277,7 @@ class SeedDMS_Core_AttributeDefinition { /* {{{ */ $success = false; } if(!$success) - $this->_validation_error = 10; + $this->_validation_error = SeedDMS_Core_AttributeDefinition::val_error_document; break; case self::type_folder: foreach($values as $value) { @@ -1264,7 +1286,7 @@ class SeedDMS_Core_AttributeDefinition { /* {{{ */ $success = false; } if(!$success) - $this->_validation_error = 11; + $this->_validation_error = SeedDMS_Core_AttributeDefinition::val_error_folder; break; case self::type_user: foreach($values as $value) { @@ -1273,7 +1295,7 @@ class SeedDMS_Core_AttributeDefinition { /* {{{ */ $success = false; } if(!$success) - $this->_validation_error = 12; + $this->_validation_error = SeedDMS_Core_AttributeDefinition::val_error_user; break; case self::type_group: foreach($values as $value) { @@ -1282,7 +1304,7 @@ class SeedDMS_Core_AttributeDefinition { /* {{{ */ $success = false; } if(!$success) - $this->_validation_error = 13; + $this->_validation_error = SeedDMS_Core_AttributeDefinition::val_error_group; break; } @@ -1291,10 +1313,16 @@ class SeedDMS_Core_AttributeDefinition { /* {{{ */ /* Check if value is in value set */ if($valueset = $this->getValueSetAsArray()) { - foreach($values as $value) { - if(!in_array($value, $valueset)) { - $success = false; - $this->_validation_error = 10; + /* An empty value cannot be the value set */ + if(!$values) { + $success = false; + $this->_validation_error = SeedDMS_Core_AttributeDefinition::val_error_valueset; + } else { + foreach($values as $value) { + if(!in_array($value, $valueset)) { + $success = false; + $this->_validation_error = SeedDMS_Core_AttributeDefinition::val_error_valueset; + } } } } From c50be6d21564dcb614cd805008c2694a5dc4b2ed Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 16 Sep 2021 16:12:27 +0200 Subject: [PATCH 052/413] init separator and validation error in constructor --- SeedDMS_Core/Core/inc.ClassAttribute.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SeedDMS_Core/Core/inc.ClassAttribute.php b/SeedDMS_Core/Core/inc.ClassAttribute.php index fd4d7ac11..a5e8bb0e3 100644 --- a/SeedDMS_Core/Core/inc.ClassAttribute.php +++ b/SeedDMS_Core/Core/inc.ClassAttribute.php @@ -486,10 +486,10 @@ class SeedDMS_Core_AttributeDefinition { /* {{{ */ $this->_minvalues = $minvalues; $this->_maxvalues = $maxvalues; $this->_valueset = $valueset; - $this->_separator = ''; + $this->_separator = substr($valueset, 0, 1); $this->_regex = $regex; $this->_dms = null; - $this->_validation_error = 0; + $this->_validation_error = SeedDMS_Core_AttributeDefinition::val_error_none; } /* }}} */ /** From 32dda4b3e978aafda9e614a5bdeced633512c530 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 16 Sep 2021 16:12:54 +0200 Subject: [PATCH 053/413] return ',' as separator for most attr types, if value map is not set --- SeedDMS_Core/Core/inc.ClassAttribute.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/SeedDMS_Core/Core/inc.ClassAttribute.php b/SeedDMS_Core/Core/inc.ClassAttribute.php index a5e8bb0e3..d93e92add 100644 --- a/SeedDMS_Core/Core/inc.ClassAttribute.php +++ b/SeedDMS_Core/Core/inc.ClassAttribute.php @@ -692,10 +692,10 @@ class SeedDMS_Core_AttributeDefinition { /* {{{ */ if(strlen($this->_valueset) > 1) { return $this->_valueset[0]; } elseif($this->_multiple) { - if($this->_type == SeedDMS_Core_AttributeDefinition::type_user || $this->_type == SeedDMS_Core_AttributeDefinition::type_group) - return ','; - else + if($this->_type == SeedDMS_Core_AttributeDefinition::type_boolean) return ''; + else + return ','; } else { return ''; } From 4aa4556df8b3799d9954a6d55599f1485518b6db Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 16 Sep 2021 16:14:21 +0200 Subject: [PATCH 054/413] add more documentation --- SeedDMS_Core/Core/inc.ClassAttribute.php | 37 ++++++++++++++++++------ 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/SeedDMS_Core/Core/inc.ClassAttribute.php b/SeedDMS_Core/Core/inc.ClassAttribute.php index d93e92add..dfd71649d 100644 --- a/SeedDMS_Core/Core/inc.ClassAttribute.php +++ b/SeedDMS_Core/Core/inc.ClassAttribute.php @@ -704,6 +704,8 @@ class SeedDMS_Core_AttributeDefinition { /* {{{ */ /** * Get the whole value set as an array * + * Each element is trimmed. + * * @return array values of value set or false if the value set has * less than 2 chars */ @@ -715,9 +717,9 @@ class SeedDMS_Core_AttributeDefinition { /* {{{ */ } /* }}} */ /** - * Get the n'th value of a value set + * Get the n'th trimmed value of a value set * - * @param $ind + * @param $ind starting from 0 for the first element in the value set * @return string n'th value of value set or false if the index is * out of range or the value set has less than 2 chars * @internal param int $index @@ -738,7 +740,9 @@ class SeedDMS_Core_AttributeDefinition { /* {{{ */ * * A value set is a list of values allowed for an attribute. The values * are separated by a char which must also be the first char of the - * value set string. + * value set string. The method decomposes the value set, removes all + * leading and trailing white space from the elements and recombines them + * into a string. * * @param string $valueset * @return boolean true if value set could be set, otherwise false @@ -784,12 +788,23 @@ class SeedDMS_Core_AttributeDefinition { /* {{{ */ * * A value of the attribute must match this regular expression. * + * The methods checks if the regular expression is valid by running + * preg_match() on an empty string and see if it fails. Trying to set + * an invalid regular expression will not overwrite the current + * regular expression. + * + * All leading and trailing spaces of $regex will be removed. + * * @param string $regex - * @return boolean true if regex could be set, otherwise false + * @return boolean true if regex could be set or is invalid, otherwise false */ function setRegex($regex) { /* {{{ */ $db = $this->_dms->getDB(); + $regex = trim($regex); + if(@preg_match($regex, '') === false) + return false; + $queryStr = "UPDATE `tblAttributeDefinitions` SET `regex` =".$db->qstr($regex)." WHERE `id` = " . $this->_id; $res = $db->getResult($queryStr); if (!$res) @@ -830,13 +845,15 @@ class SeedDMS_Core_AttributeDefinition { /* {{{ */ /** * Parse a given value according to attribute definition * - * The return value is always an array, even if the attribute is single - * value attribute. + * The return value is always an array, even if the attribute is a single + * value attribute. If the type of attribute is any of document, folder, user, + * or group then this method will fetch each object from the database and + * return an array of SeedDMS_Core_Document, SeedDMS_Core_Folder, etc. * - * @param $value + * @param $value string * @return array|bool */ - function parseValue($value) { /* {{{ */ + function parseValue(string $value) { /* {{{ */ if($this->getMultipleValues()) { /* If the value doesn't start with the separator used in the value set, * then assume that the value was not saved with a leading separator. @@ -1165,8 +1182,10 @@ class SeedDMS_Core_AttributeDefinition { /* {{{ */ * * @param string|array $attrvalue attribute value * @param object $object set if the current attribute is saved for this object + * (this will only be passed to the onAttributeValidate callback) * @param boolean $new set to true if the value is new value and not taken from - * an existing attribute + * an existing attribute + * (this will only be passed to the onAttributeValidate callback) * @return boolean true if validation succeds, otherwise false */ function validate($attrvalue, $object=null, $new=false) { /* {{{ */ From 95b4bb9d229099a976175625dbeae4bcfb136cd1 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 16 Sep 2021 16:14:51 +0200 Subject: [PATCH 055/413] init value set, separator, trim value set in setValue() --- SeedDMS_Core/Core/inc.ClassAttribute.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/SeedDMS_Core/Core/inc.ClassAttribute.php b/SeedDMS_Core/Core/inc.ClassAttribute.php index dfd71649d..b94e5c1fb 100644 --- a/SeedDMS_Core/Core/inc.ClassAttribute.php +++ b/SeedDMS_Core/Core/inc.ClassAttribute.php @@ -754,8 +754,9 @@ class SeedDMS_Core_AttributeDefinition { /* {{{ */ $tmp[] = str_replace('"', '""', $value); } $valuesetstr = implode(",", $tmp); - */ - if(trim($valueset)) { + */ + $valueset = trim($valueset); + if($valueset) { $valuesetarr = array_map('trim', explode($valueset[0], substr($valueset, 1))); $valuesetstr = $valueset[0].implode($valueset[0], $valuesetarr); } else { @@ -769,8 +770,8 @@ class SeedDMS_Core_AttributeDefinition { /* {{{ */ if (!$res) return false; - $this->_valueset = $valueset; - $this->_separator = substr($valueset, 0, 1); + $this->_valueset = $valuesetstr; + $this->_separator = substr($valuesetstr, 0, 1); return true; } /* }}} */ From 1d031e44a22ab088d68ba8024978323fb20e9b97 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 16 Sep 2021 16:16:21 +0200 Subject: [PATCH 056/413] return null not false if getInstanceByName() didn't find a folder --- SeedDMS_Core/Core/inc.ClassFolder.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SeedDMS_Core/Core/inc.ClassFolder.php b/SeedDMS_Core/Core/inc.ClassFolder.php index 4ca28739c..40b6114de 100644 --- a/SeedDMS_Core/Core/inc.ClassFolder.php +++ b/SeedDMS_Core/Core/inc.ClassFolder.php @@ -244,7 +244,7 @@ class SeedDMS_Core_Folder extends SeedDMS_Core_Object { return false; if(!$resArr) - return false; + return null; return self::getInstanceByData($resArr[0], $dms); } /* }}} */ From adba550a6392a04894e3577e60c216d7064ec67f Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 16 Sep 2021 16:17:24 +0200 Subject: [PATCH 057/413] minor simplification of sql statement --- SeedDMS_Core/Core/inc.ClassGroup.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/SeedDMS_Core/Core/inc.ClassGroup.php b/SeedDMS_Core/Core/inc.ClassGroup.php index 696613600..890cba355 100644 --- a/SeedDMS_Core/Core/inc.ClassGroup.php +++ b/SeedDMS_Core/Core/inc.ClassGroup.php @@ -284,7 +284,7 @@ class SeedDMS_Core_Group { /* {{{ */ * set to true, otherwise does not care about manager status * @return boolean true if user is member, otherwise false */ - function isMember($user,$asManager=false) { /* {{{ */ + function isMember($user, $asManager=false) { /* {{{ */ if (isset($this->_users)&&!$asManager) { foreach ($this->_users as $usr) if ($usr->getID() == $user->getID()) @@ -293,8 +293,9 @@ class SeedDMS_Core_Group { /* {{{ */ } $db = $this->_dms->getDB(); - if ($asManager) $queryStr = "SELECT * FROM `tblGroupMembers` WHERE `groupID` = " . $this->_id . " AND `userID` = " . $user->getID() . " AND `manager` = 1"; - else $queryStr = "SELECT * FROM `tblGroupMembers` WHERE `groupID` = " . $this->_id . " AND `userID` = " . $user->getID(); + $queryStr = "SELECT * FROM `tblGroupMembers` WHERE `groupID` = " . $this->_id . " AND `userID` = " . $user->getID(); + if ($asManager) + $queryStr .= " AND `manager` = 1"; $resArr = $db->getResultArray($queryStr); From a7e2ec7b01e96e6aec833d28ea88626768e3cf83 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 16 Sep 2021 16:18:26 +0200 Subject: [PATCH 058/413] ensure isHidden and isDisabled is a boolean --- SeedDMS_Core/Core/inc.ClassUser.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/SeedDMS_Core/Core/inc.ClassUser.php b/SeedDMS_Core/Core/inc.ClassUser.php index 77cc4a204..e19a3fd30 100644 --- a/SeedDMS_Core/Core/inc.ClassUser.php +++ b/SeedDMS_Core/Core/inc.ClassUser.php @@ -176,8 +176,8 @@ class SeedDMS_Core_User { /* {{{ */ $this->_theme = $theme; $this->_comment = $comment; $this->_role = $role; - $this->_isHidden = $isHidden; - $this->_isDisabled = $isDisabled; + $this->_isHidden = (bool) $isHidden; + $this->_isDisabled = (bool) $isDisabled; $this->_pwdExpiration = $pwdExpiration; $this->_loginFailures = $loginFailures; $this->_quota = $quota; @@ -516,7 +516,7 @@ class SeedDMS_Core_User { /* {{{ */ } /* }}} */ /** - * @return bool|int + * @return bool */ function isHidden() { return $this->_isHidden; } @@ -528,11 +528,11 @@ class SeedDMS_Core_User { /* {{{ */ $db = $this->_dms->getDB(); $isHidden = ($isHidden) ? "1" : "0"; - $queryStr = "UPDATE `tblUsers` SET `hidden` = " . $isHidden . " WHERE `id` = " . $this->_id; + $queryStr = "UPDATE `tblUsers` SET `hidden` = " . intval($isHidden) . " WHERE `id` = " . $this->_id; if (!$db->getResult($queryStr)) return false; - $this->_isHidden = $isHidden; + $this->_isHidden = (bool) $isHidden; return true; } /* }}} */ @@ -549,11 +549,11 @@ class SeedDMS_Core_User { /* {{{ */ $db = $this->_dms->getDB(); $isDisabled = ($isDisabled) ? "1" : "0"; - $queryStr = "UPDATE `tblUsers` SET `disabled` = " . $isDisabled . " WHERE `id` = " . $this->_id; + $queryStr = "UPDATE `tblUsers` SET `disabled` = " . intval($isDisabled) . " WHERE `id` = " . $this->_id; if (!$db->getResult($queryStr)) return false; - $this->_isDisabled = $isDisabled; + $this->_isDisabled = (bool) $isDisabled; return true; } /* }}} */ From c13756ac02276c2b6dcf99e1f9e6412b963ef980 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 16 Sep 2021 16:19:19 +0200 Subject: [PATCH 059/413] do not call $dms->setEnableConverting() and setViewOnlineFileTypes() --- inc/inc.DBInit.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/inc/inc.DBInit.php b/inc/inc.DBInit.php index 3a44c2612..e91b88387 100644 --- a/inc/inc.DBInit.php +++ b/inc/inc.DBInit.php @@ -57,8 +57,6 @@ if(!$settings->_doNotCheckDBVersion && !$dms->checkVersion()) { $dms->setRootFolderID($settings->_rootFolderID); $dms->setMaxDirID($settings->_maxDirID); -$dms->setEnableConverting($settings->_enableConverting); -$dms->setViewOnlineFileTypes($settings->_viewOnlineFileTypes); if(isset($GLOBALS['SEEDDMS_HOOKS']['initDMS'])) { foreach($GLOBALS['SEEDDMS_HOOKS']['initDMS'] as $hookObj) { From 5e112fb8f30ce684e705744bef42e7bde6db62e3 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 16 Sep 2021 16:20:57 +0200 Subject: [PATCH 060/413] set email of admin to info@seeddms.org, fix inserts of sqlite --- install/create_tables-innodb.sql | 2 +- install/create_tables-postgres.sql | 2 +- install/create_tables-sqlite3.sql | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/install/create_tables-innodb.sql b/install/create_tables-innodb.sql index e9c7fcc79..95d41134d 100644 --- a/install/create_tables-innodb.sql +++ b/install/create_tables-innodb.sql @@ -753,7 +753,7 @@ CREATE TABLE `tblVersion` ( -- Initial content for database -- -INSERT INTO tblUsers VALUES (1, 'admin', '21232f297a57a5a743894a0e4a801fc3', 'Administrator', 'address@server.com', '', '', '', 1, 0, NULL, 0, 0, 0, NULL); +INSERT INTO tblUsers VALUES (1, 'admin', '21232f297a57a5a743894a0e4a801fc3', 'Administrator', 'info@seeddms.org', '', '', '', 1, 0, NULL, 0, 0, 0, NULL); INSERT INTO tblUsers VALUES (2, 'guest', NULL, 'Guest User', NULL, '', '', '', 2, 0, NULL, 0, 0, 0, NULL); INSERT INTO tblFolders VALUES (1, 'DMS', 0, '', 'DMS root', UNIX_TIMESTAMP(), 1, 0, 2, 0); INSERT INTO tblVersion VALUES (NOW(), 5, 1, 0); diff --git a/install/create_tables-postgres.sql b/install/create_tables-postgres.sql index 19f0f84d1..7c0aaccbc 100644 --- a/install/create_tables-postgres.sql +++ b/install/create_tables-postgres.sql @@ -620,7 +620,7 @@ CREATE TABLE "tblVersion" ( -- Initial content for database -- -INSERT INTO "tblUsers" VALUES (1, 'admin', '21232f297a57a5a743894a0e4a801fc3', 'Administrator', 'address@server.com', '', '', '', 1, 0, NULL, 0, 0, 0, NULL); +INSERT INTO "tblUsers" VALUES (1, 'admin', '21232f297a57a5a743894a0e4a801fc3', 'Administrator', 'info@seeddms.org', '', '', '', 1, 0, NULL, 0, 0, 0, NULL); SELECT nextval('"tblUsers_id_seq"'); INSERT INTO "tblUsers" VALUES (2, 'guest', NULL, 'Guest User', NULL, '', '', '', 2, 0, NULL, 0, 0, 0, NULL); SELECT nextval('"tblUsers_id_seq"'); diff --git a/install/create_tables-sqlite3.sql b/install/create_tables-sqlite3.sql index 2a5eadba5..ccfc79fe6 100644 --- a/install/create_tables-sqlite3.sql +++ b/install/create_tables-sqlite3.sql @@ -618,7 +618,7 @@ CREATE TABLE `tblVersion` ( -- Initial content for database -- -INSERT INTO tblUsers VALUES (1, 'admin', '21232f297a57a5a743894a0e4a801fc3', 'Administrator', 'address@server.com', '', '', '', 1, 0, '', 0, 0, 0, 0); -INSERT INTO tblUsers VALUES (2, 'guest', NULL, 'Guest User', NULL, '', '', '', 2, 0, '', 0, 0, 0, 0); -INSERT INTO tblFolders VALUES (1, 'DMS', 0, '', 'DMS root', strftime('%s','now'), 1, 0, 2, 0); -INSERT INTO tblVersion VALUES (DATETIME(), 5, 1, 0); +INSERT INTO `tblUsers` (`id`, `login`, `pwd`, `fullName`, `email`, `language`, `theme`, `comment`, `role`, `hidden`, `pwdExpiration`, `loginfailures`, `disabled`, `quota`, `homefolder`) VALUES (1, 'admin', '21232f297a57a5a743894a0e4a801fc3', 'Administrator', 'info@seeddms.org', '', '', '', 1, 0, '', 0, 0, 0, NULL); +INSERT INTO `tblUsers` (`id`, `login`, `pwd`, `fullName`, `email`, `language`, `theme`, `comment`, `role`, `hidden`, `pwdExpiration`, `loginfailures`, `disabled`, `quota`, `homefolder`) VALUES (2, 'guest', NULL, 'Guest User', NULL, '', '', '', 2, 0, '', 0, 0, 0, NULL); +INSERT INTO `tblFolders` (`id`, `name`, `parent`, `folderList`, `comment`, `date`, `owner`, `inheritAccess`, `defaultAccess`, `sequence`) VALUES (1, 'DMS', NULL, '', 'DMS root', strftime('%s','now'), 1, 0, 2, 0); +INSERT INTO `tblVersion` VALUES (DATETIME(), 5, 1, 0); From 0d37021f6d0b55f5f0006b7e33c2123783309b18 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 16 Sep 2021 16:21:58 +0200 Subject: [PATCH 061/413] no need to check isHidden()=='1' anymore, isHidden() returns a bool --- views/bootstrap/class.UsrView.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/bootstrap/class.UsrView.php b/views/bootstrap/class.UsrView.php index 7a0857f1b..cd80d2659 100644 --- a/views/bootstrap/class.UsrView.php +++ b/views/bootstrap/class.UsrView.php @@ -56,7 +56,7 @@ class SeedDMS_View_UsrView extends SeedDMS_Theme_Style { if ($currUser->isGuest()) continue; - if ($currUser->isHidden()=="1") continue; + if ($currUser->isHidden()) continue; echo ""; if($enableuserimage) { From f1db74929c14373fdb56de0c5bfc034bc984af84 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 16 Sep 2021 16:25:36 +0200 Subject: [PATCH 062/413] pass sortusersinlist of view --- out/out.GroupMgr.php | 1 + views/bootstrap/class.GroupMgr.php | 1 + 2 files changed, 2 insertions(+) diff --git a/out/out.GroupMgr.php b/out/out.GroupMgr.php index be209d7ae..7ebf936a4 100644 --- a/out/out.GroupMgr.php +++ b/out/out.GroupMgr.php @@ -62,6 +62,7 @@ if($view) { $view->setParam('workflowmode', $settings->_workflowMode); $view->setParam('timeout', $settings->_cmdTimeout); $view->setParam('accessobject', $accessop); + $view->setParam('sortusersinlist', $settings->_sortUsersInList); $view->setParam('xsendfile', $settings->_enableXsendfile); $view($_GET); } diff --git a/views/bootstrap/class.GroupMgr.php b/views/bootstrap/class.GroupMgr.php index 8bac65855..3330fe46c 100644 --- a/views/bootstrap/class.GroupMgr.php +++ b/views/bootstrap/class.GroupMgr.php @@ -156,6 +156,7 @@ $(document).ready( function() { $user = $this->params['user']; $allUsers = $this->params['allusers']; $groups = $this->params['allgroups']; + $sortusersinlist = $this->params['sortusersinlist']; ?> Date: Thu, 16 Sep 2021 17:10:41 +0200 Subject: [PATCH 063/413] setRegex() checks regex only if not '' --- SeedDMS_Core/Core/inc.ClassAttribute.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SeedDMS_Core/Core/inc.ClassAttribute.php b/SeedDMS_Core/Core/inc.ClassAttribute.php index b94e5c1fb..fb97e3b93 100644 --- a/SeedDMS_Core/Core/inc.ClassAttribute.php +++ b/SeedDMS_Core/Core/inc.ClassAttribute.php @@ -803,7 +803,7 @@ class SeedDMS_Core_AttributeDefinition { /* {{{ */ $db = $this->_dms->getDB(); $regex = trim($regex); - if(@preg_match($regex, '') === false) + if($regex && @preg_match($regex, '') === false) return false; $queryStr = "UPDATE `tblAttributeDefinitions` SET `regex` =".$db->qstr($regex)." WHERE `id` = " . $this->_id; From 56a352cacaf1182b3c9f236c041e55db574f2d45 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 16 Sep 2021 17:11:14 +0200 Subject: [PATCH 064/413] add placeholder with example for regex --- views/bootstrap/class.AttributeMgr.php | 1 + 1 file changed, 1 insertion(+) diff --git a/views/bootstrap/class.AttributeMgr.php b/views/bootstrap/class.AttributeMgr.php index 528a98500..b7aea967d 100644 --- a/views/bootstrap/class.AttributeMgr.php +++ b/views/bootstrap/class.AttributeMgr.php @@ -308,6 +308,7 @@ $(document).ready( function() { 'element'=>'input', 'type'=>'text', 'name'=>'regex', + 'placeholder'=>'/[0-9]+abc.-*/', 'value'=>($attrdef ? $attrdef->getRegex() : ''), ), ['help'=>getMLText('attrdef_regex_help')] From 4ad5628833764b0a3515b5a76b50434d849b4182 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 16 Sep 2021 17:11:42 +0200 Subject: [PATCH 065/413] return better error msg if regex is invalid --- controllers/class.AttributeMgr.php | 1 + op/op.AttributeMgr.php | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/controllers/class.AttributeMgr.php b/controllers/class.AttributeMgr.php index 11180b8fd..30f83fb6f 100644 --- a/controllers/class.AttributeMgr.php +++ b/controllers/class.AttributeMgr.php @@ -78,6 +78,7 @@ class SeedDMS_Controller_AttributeMgr extends SeedDMS_Controller_Common { return false; } if (!$attrdef->setRegex($regex)) { + $this->errormsg = 'attrdef_invalid_regex'; return false; } diff --git a/op/op.AttributeMgr.php b/op/op.AttributeMgr.php index 1f086163a..87c60eeb5 100644 --- a/op/op.AttributeMgr.php +++ b/op/op.AttributeMgr.php @@ -163,7 +163,11 @@ else if ($action == "editattrdef") { $controller->setParam('regex', $regex); $controller->setParam('attrdef', $attrdef); if (!$controller($_POST)) { - UI::exitError(getMLText("admin_tools"),getMLText("error_occured")); + if ($controller->getErrorMsg() != '') + $errormsg = $controller->getErrorMsg(); + else + $errormsg = "error_occured"; + UI::exitError(getMLText("admin_tools"),getMLText($errormsg)); } $session->setSplashMsg(array('type'=>'success', 'msg'=>getMLText('splash_edit_attribute'))); From f9afc08355b15788d4902a1f15c9206d9a7ef3a3 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 17 Sep 2021 18:21:57 +0200 Subject: [PATCH 066/413] add more documentation --- SeedDMS_Core/Core/inc.ClassDMS.php | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/SeedDMS_Core/Core/inc.ClassDMS.php b/SeedDMS_Core/Core/inc.ClassDMS.php index 82903e4c6..e9fd21a6e 100644 --- a/SeedDMS_Core/Core/inc.ClassDMS.php +++ b/SeedDMS_Core/Core/inc.ClassDMS.php @@ -197,7 +197,7 @@ class SeedDMS_Core_DMS { * Checks if two objects are equal by comparing their IDs * * The regular php check done by '==' compares all attributes of - * two objects, which is often not required. The method will first check + * two objects, which is often not required. This method will first check * if the objects are instances of the same class and than if they * have the same id. * @@ -255,7 +255,8 @@ class SeedDMS_Core_DMS { * * The list of objects to be checked can be of any class, but has to have * a method getAccessMode($user) which checks if the given user has at - * least access rights to the object as passed in $minMode. + * least the access right on the object as passed in $minMode. + * Hence, passing a group instead of user is possible. * * @param array $objArr list of objects (either documents or folders) * @param object $user user for which access is checked @@ -279,11 +280,12 @@ class SeedDMS_Core_DMS { * Filter out users which cannot access an object in a given mode. * * The list of users to be checked can be of any class, but has to have - * a method getAccessMode($user) which checks if a user has at least - * access rights as passed in $minMode. + * a method getAccessMode($user) which checks if a user has at least the + * access right as passed in $minMode. Hence, passing a list of groups + * instead of users is possible. * * @param object $obj object that shall be accessed - * @param array $users list of users which are to check for sufficient + * @param array $users list of users/groups which are to check for sufficient * access rights * @param integer $minMode minimum access right on the object for each user * (M_ANY, M_NONE, M_READ, M_READWRITE, M_ALL) From 9309497e75bc32903c3b87b45beacd52a9c8034e Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 17 Sep 2021 18:22:35 +0200 Subject: [PATCH 067/413] init $user to null in constructor --- SeedDMS_Core/Core/inc.ClassDMS.php | 1 + 1 file changed, 1 insertion(+) diff --git a/SeedDMS_Core/Core/inc.ClassDMS.php b/SeedDMS_Core/Core/inc.ClassDMS.php index e9fd21a6e..d5d1367e8 100644 --- a/SeedDMS_Core/Core/inc.ClassDMS.php +++ b/SeedDMS_Core/Core/inc.ClassDMS.php @@ -370,6 +370,7 @@ class SeedDMS_Core_DMS { else $this->contentDir = $contentDir.'/'; $this->rootFolderID = 1; + $this->user = null; $this->maxDirID = 0; //31998; $this->forceRename = false; $this->checkWithinRootDir = false; From ffd5cd9a7bda38bc21d84c21800df0fe5aaa81d6 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 17 Sep 2021 18:23:25 +0200 Subject: [PATCH 068/413] use upper case in sql statements for reserved words --- SeedDMS_Core/Core/inc.ClassDMS.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SeedDMS_Core/Core/inc.ClassDMS.php b/SeedDMS_Core/Core/inc.ClassDMS.php index d5d1367e8..6caa49f82 100644 --- a/SeedDMS_Core/Core/inc.ClassDMS.php +++ b/SeedDMS_Core/Core/inc.ClassDMS.php @@ -490,7 +490,7 @@ class SeedDMS_Core_DMS { $tbllist = explode(',',strtolower(join(',',$tbllist))); if(!in_array('tblversion', $tbllist)) return false; - $queryStr = "SELECT * FROM `tblVersion` order by `major`,`minor`,`subminor` limit 1"; + $queryStr = "SELECT * FROM `tblVersion` ORDER BY `major`,`minor`,`subminor` LIMIT 1"; $resArr = $this->db->getResultArray($queryStr); if (is_bool($resArr) && $resArr == false) return false; @@ -512,7 +512,7 @@ class SeedDMS_Core_DMS { $tbllist = explode(',',strtolower(join(',',$tbllist))); if(!in_array('tblversion', $tbllist)) return true; - $queryStr = "SELECT * FROM `tblVersion` order by `major`,`minor`,`subminor` limit 1"; + $queryStr = "SELECT * FROM `tblVersion` ORDER BY `major`,`minor`,`subminor` LIMIT 1"; $resArr = $this->db->getResultArray($queryStr); if (is_bool($resArr) && $resArr == false) return false; From 0cd4c9b727b786137457e0caae1585cffbbeb436 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 17 Sep 2021 18:24:32 +0200 Subject: [PATCH 069/413] check if the folder set by setRootFolderID() actually exists --- SeedDMS_Core/Core/inc.ClassDMS.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/SeedDMS_Core/Core/inc.ClassDMS.php b/SeedDMS_Core/Core/inc.ClassDMS.php index 6caa49f82..a725ee8db 100644 --- a/SeedDMS_Core/Core/inc.ClassDMS.php +++ b/SeedDMS_Core/Core/inc.ClassDMS.php @@ -527,13 +527,23 @@ class SeedDMS_Core_DMS { /** * Set id of root folder + * * This function must be called right after creating an instance of * {@link SeedDMS_Core_DMS} * + * The new root folder id will only be set if the folder actually + * exists. In that case the old root folder id will be returned. + * If it does not exists, the method will return false; * @param integer $id id of root folder + * @return boolean/int old root folder id if new root folder exists, otherwise false */ function setRootFolderID($id) { /* {{{ */ - $this->rootFolderID = $id; + if($this->getFolder($id)) { + $oldid = $this->rootFolderID; + $this->rootFolderID = $id; + return $oldid; + } + return false; } /* }}} */ /** From 9687c8f081825b65ce63de36f9bf7f0b63f477e6 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 17 Sep 2021 18:25:23 +0200 Subject: [PATCH 070/413] check if user passed to setUser() is a real user --- SeedDMS_Core/Core/inc.ClassDMS.php | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/SeedDMS_Core/Core/inc.ClassDMS.php b/SeedDMS_Core/Core/inc.ClassDMS.php index a725ee8db..faf14a7af 100644 --- a/SeedDMS_Core/Core/inc.ClassDMS.php +++ b/SeedDMS_Core/Core/inc.ClassDMS.php @@ -593,11 +593,22 @@ class SeedDMS_Core_DMS { * If user authentication was done externally, this function can * be used to tell the dms who is currently logged in. * - * @param object $user + * @param object $user this muss not be empty and an instance of SeedDMS_Core_User + * @return bool|object returns the old user object or null on success, otherwise false * */ function setUser($user) { /* {{{ */ - $this->user = $user; + if(!$user) { + $olduser = $this->user; + $this->user = null; + return $olduser; + } + if(is_object($user) && (get_class($user) == $this->getClassname('user'))) { + $olduser = $this->user; + $this->user = $user; + return $olduser; + } + return false; } /* }}} */ /** From 31290fbcf7df38b68ee8d74c0db4702e3dc0eab6 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 17 Sep 2021 18:26:11 +0200 Subject: [PATCH 071/413] document meaning of 5 in $seachin passed to search() --- SeedDMS_Core/Core/inc.ClassDMS.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SeedDMS_Core/Core/inc.ClassDMS.php b/SeedDMS_Core/Core/inc.ClassDMS.php index faf14a7af..01d0cd218 100644 --- a/SeedDMS_Core/Core/inc.ClassDMS.php +++ b/SeedDMS_Core/Core/inc.ClassDMS.php @@ -1423,7 +1423,7 @@ class SeedDMS_Core_DMS { * @param integer $offset index of first item in result set * @param string $logicalmode either AND or OR * @param array $searchin list of fields to search in - * 1 = keywords, 2=name, 3=comment, 4=attributes + * 1 = keywords, 2=name, 3=comment, 4=attributes, 5=id * @param SeedDMS_Core_Folder|null $startFolder search in the folder only (null for root folder) * @param SeedDMS_Core_User $owner search for documents owned by this user * @param array $status list of status From a39355f2ede94b6acea46f427de75fb1b10c8bde Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 17 Sep 2021 18:27:16 +0200 Subject: [PATCH 072/413] ensure $logicalmode in search() is either 'OR' or 'AND' --- SeedDMS_Core/Core/inc.ClassDMS.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/SeedDMS_Core/Core/inc.ClassDMS.php b/SeedDMS_Core/Core/inc.ClassDMS.php index 01d0cd218..7d290f6a3 100644 --- a/SeedDMS_Core/Core/inc.ClassDMS.php +++ b/SeedDMS_Core/Core/inc.ClassDMS.php @@ -1454,6 +1454,10 @@ class SeedDMS_Core_DMS { ${$paramname} = isset($query[$paramname]) ? $query[$paramname] : ''; $query = isset($query['query']) ? $query['query'] : ''; } + /* Ensure $logicalmode has a valid value */ + if($logicalmode != 'OR') + $logicalmode = 'AND'; + // Split the search string into constituent keywords. $tkeys=array(); if (strlen($query)>0) { From e06cd59f6ca49ab016fa5d4dfb204fd2297b08a3 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 17 Sep 2021 18:28:01 +0200 Subject: [PATCH 073/413] fix wrong spell callback name 'onPostAddUser' --- SeedDMS_Core/Core/inc.ClassDMS.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SeedDMS_Core/Core/inc.ClassDMS.php b/SeedDMS_Core/Core/inc.ClassDMS.php index 7d290f6a3..2badc574a 100644 --- a/SeedDMS_Core/Core/inc.ClassDMS.php +++ b/SeedDMS_Core/Core/inc.ClassDMS.php @@ -2215,7 +2215,7 @@ class SeedDMS_Core_DMS { /* Check if 'onPostAddUser' callback is set */ if(isset($this->callbacks['onPostAddUser'])) { - foreach($this->callbacks['onPostUser'] as $callback) { + foreach($this->callbacks['onPostAddUser'] as $callback) { /** @noinspection PhpStatementHasEmptyBodyInspection */ if(!call_user_func($callback[0], $callback[1], $user)) { } From 7d7deeb313bc66e7e5ff72ccf78c715b3f77621c Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 17 Sep 2021 18:28:40 +0200 Subject: [PATCH 074/413] check if id passed to getKeywordCategory() is greater 0 --- SeedDMS_Core/Core/inc.ClassDMS.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SeedDMS_Core/Core/inc.ClassDMS.php b/SeedDMS_Core/Core/inc.ClassDMS.php index 2badc574a..2bf05c4b0 100644 --- a/SeedDMS_Core/Core/inc.ClassDMS.php +++ b/SeedDMS_Core/Core/inc.ClassDMS.php @@ -2289,7 +2289,7 @@ class SeedDMS_Core_DMS { } /* }}} */ function getKeywordCategory($id) { /* {{{ */ - if (!is_numeric($id)) + if (!is_numeric($id) || $id < 1) return false; $queryStr = "SELECT * FROM `tblKeywordCategories` WHERE `id` = " . (int) $id; From 2ee30ccd5b85d4ade230b5e7d0691cd5f44860d1 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 17 Sep 2021 18:29:33 +0200 Subject: [PATCH 075/413] ensure user ids passed to getAllKeywordCategories() are all integers --- SeedDMS_Core/Core/inc.ClassDMS.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/SeedDMS_Core/Core/inc.ClassDMS.php b/SeedDMS_Core/Core/inc.ClassDMS.php index 2bf05c4b0..907e2c8c9 100644 --- a/SeedDMS_Core/Core/inc.ClassDMS.php +++ b/SeedDMS_Core/Core/inc.ClassDMS.php @@ -2317,8 +2317,11 @@ class SeedDMS_Core_DMS { function getAllKeywordCategories($userIDs = array()) { /* {{{ */ $queryStr = "SELECT * FROM `tblKeywordCategories`"; - if ($userIDs) + /* Ensure $userIDs() will only contain integers > 0 */ + $userIDs = array_filter(array_unique(array_map('intval', $userIDs)), function($a) {return $a > 0;}); + if ($userIDs) { $queryStr .= " WHERE `owner` IN (".implode(',', $userIDs).")"; + } $resArr = $this->db->getResultArray($queryStr); if (is_bool($resArr) && !$resArr) From e809297cfdc71a8b7dbda62417ee85e0b50a8302 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 17 Sep 2021 18:31:19 +0200 Subject: [PATCH 076/413] getAllUserKeywordCategories() calls getAllKeywordCategories(), better checking of parameters pass to addDocumentCategory() --- SeedDMS_Core/Core/inc.ClassDMS.php | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/SeedDMS_Core/Core/inc.ClassDMS.php b/SeedDMS_Core/Core/inc.ClassDMS.php index 907e2c8c9..47345b4c0 100644 --- a/SeedDMS_Core/Core/inc.ClassDMS.php +++ b/SeedDMS_Core/Core/inc.ClassDMS.php @@ -2339,33 +2339,25 @@ class SeedDMS_Core_DMS { /** * This function should be replaced by getAllKeywordCategories() + * * @param $userID * @return SeedDMS_Core_KeywordCategory[]|bool */ function getAllUserKeywordCategories($userID) { /* {{{ */ - $queryStr = "SELECT * FROM `tblKeywordCategories`"; - if ($userID != -1) - $queryStr .= " WHERE `owner` = " . (int) $userID; - - $resArr = $this->db->getResultArray($queryStr); - if (is_bool($resArr) && !$resArr) + if (!is_numeric($userID) || $userID < 1) return false; - - $categories = array(); - foreach ($resArr as $row) { - $cat = new SeedDMS_Core_KeywordCategory($row["id"], $row["owner"], $row["name"]); - $cat->setDMS($this); - array_push($categories, $cat); - } - - return $categories; + return self::getAllKeywordCategories([$userID]); } /* }}} */ function addKeywordCategory($userID, $name) { /* {{{ */ - if (is_object($this->getKeywordCategoryByName($name, $userID))) { + if (!is_numeric($userID) || $userID < 1) + return false; + if(!trim($name)) + return false; + if (is_object($this->getKeywordCategoryByName(trim($name), $userID))) { return false; } - $queryStr = "INSERT INTO `tblKeywordCategories` (`owner`, `name`) VALUES (".(int) $userID.", ".$this->db->qstr($name).")"; + $queryStr = "INSERT INTO `tblKeywordCategories` (`owner`, `name`) VALUES (".(int) $userID.", ".$this->db->qstr(trim($name)).")"; if (!$this->db->getResult($queryStr)) return false; From 3ed0854e130eac343066ba33c9308a649d730707 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 17 Sep 2021 18:58:29 +0200 Subject: [PATCH 077/413] check if id passed to getDocumentCategory() is < 1 --- SeedDMS_Core/Core/inc.ClassDMS.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SeedDMS_Core/Core/inc.ClassDMS.php b/SeedDMS_Core/Core/inc.ClassDMS.php index 47345b4c0..4968cd479 100644 --- a/SeedDMS_Core/Core/inc.ClassDMS.php +++ b/SeedDMS_Core/Core/inc.ClassDMS.php @@ -2376,7 +2376,7 @@ class SeedDMS_Core_DMS { } /* }}} */ function getDocumentCategory($id) { /* {{{ */ - if (!is_numeric($id)) + if (!is_numeric($id) || $id < 1) return false; $queryStr = "SELECT * FROM `tblCategory` WHERE `id` = " . (int) $id; From 59c16b3ce4b6e7c2443bc256e7d33c891c14c28f Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 17 Sep 2021 18:59:06 +0200 Subject: [PATCH 078/413] trim name passed to addDocumentCategory() and check if != '' --- SeedDMS_Core/Core/inc.ClassDMS.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/SeedDMS_Core/Core/inc.ClassDMS.php b/SeedDMS_Core/Core/inc.ClassDMS.php index 4968cd479..f5ca1071f 100644 --- a/SeedDMS_Core/Core/inc.ClassDMS.php +++ b/SeedDMS_Core/Core/inc.ClassDMS.php @@ -2431,10 +2431,12 @@ class SeedDMS_Core_DMS { } /* }}} */ function addDocumentCategory($name) { /* {{{ */ - if (is_object($this->getDocumentCategoryByName($name))) { + if(!trim($name)) + return false; + if (is_object($this->getDocumentCategoryByName(trim($name)))) { return false; } - $queryStr = "INSERT INTO `tblCategory` (`name`) VALUES (".$this->db->qstr($name).")"; + $queryStr = "INSERT INTO `tblCategory` (`name`) VALUES (".$this->db->qstr(trim($name)).")"; if (!$this->db->getResult($queryStr)) return false; From 2789e017ebcf5f71d278d4671f4edb2860765d74 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 17 Sep 2021 19:00:06 +0200 Subject: [PATCH 079/413] check function pass to setCallback() and addCallback() is callable, remove createDump() --- SeedDMS_Core/Core/inc.ClassDMS.php | 57 +++++++++++++----------------- 1 file changed, 25 insertions(+), 32 deletions(-) diff --git a/SeedDMS_Core/Core/inc.ClassDMS.php b/SeedDMS_Core/Core/inc.ClassDMS.php index f5ca1071f..cca617455 100644 --- a/SeedDMS_Core/Core/inc.ClassDMS.php +++ b/SeedDMS_Core/Core/inc.ClassDMS.php @@ -3292,62 +3292,55 @@ class SeedDMS_Core_DMS { /** * Set a callback function * + * The function passed in $func must be a callable and $name may not be empty. + * + * Setting a callback with the method will remove all priorly set callbacks. + * * @param string $name internal name of callback * @param mixed $func function name as expected by {call_user_method} * @param mixed $params parameter passed as the first argument to the * callback + * @return bool true if adding the callback succeeds otherwise false */ function setCallback($name, $func, $params=null) { /* {{{ */ - if($name && $func) + if($name && $func && is_callable($func)) { $this->callbacks[$name] = array(array($func, $params)); + return true; + } else { + return false; + } } /* }}} */ /** * Add a callback function * + * The function passed in $func must be a callable and $name may not be empty. + * * @param string $name internal name of callback * @param mixed $func function name as expected by {call_user_method} * @param mixed $params parameter passed as the first argument to the * callback + * @return bool true if adding the callback succeeds otherwise false */ function addCallback($name, $func, $params=null) { /* {{{ */ - if($name && $func) + if($name && $func && is_callable($func)) { $this->callbacks[$name][] = array($func, $params); + return true; + } else { + return false; + } } /* }}} */ /** - * Create an sql dump of the complete database + * Check if a callback with the given has been set * - * @param string $filename name of dump file - * @return bool + * @param string $name internal name of callback + * @return bool true a callback exists otherwise false */ - function createDump($filename) { /* {{{ */ - $h = fopen($filename, "w"); - if(!$h) - return false; - - $tables = $this->db->TableList('TABLES'); - foreach($tables as $table) { - $query = "SELECT * FROM `".$table."`"; - $records = $this->db->getResultArray($query); - fwrite($h,"\n-- TABLE: ".$table."--\n\n"); - foreach($records as $record) { - $values=""; - $i = 1; - foreach ($record as $column) { - if (is_numeric($column)) $values .= $column; - else $values .= $this->db->qstr($column); - - if ($i<(count($record))) $values .= ","; - $i++; - } - - fwrite($h, "INSERT INTO `".$table."` VALUES (".$values.");\n"); - } - } - - fclose($h); - return true; + function hasCallback($name) { /* {{{ */ + if($name && !empty($this->callbacks[$name])) + return true; + return false; } /* }}} */ } From 90aac2f1ad80a2bba41255250f09e78608dab8c9 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 17 Sep 2021 19:00:57 +0200 Subject: [PATCH 080/413] new method createDump() which was in SeedDMS_Core_DMS --- SeedDMS_Core/Core/inc.DBAccessPDO.php | 29 +++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/SeedDMS_Core/Core/inc.DBAccessPDO.php b/SeedDMS_Core/Core/inc.DBAccessPDO.php index 09b797e28..947c33d54 100644 --- a/SeedDMS_Core/Core/inc.DBAccessPDO.php +++ b/SeedDMS_Core/Core/inc.DBAccessPDO.php @@ -913,4 +913,33 @@ class SeedDMS_Core_DatabaseAccess { } return $field; } /* }}} */ + + /** + * Create an sql dump of the complete database + * + * @param resource $fp name of dump file + * @return bool + */ + function createDump($fp) { /* {{{ */ + $tables = $this->TableList('TABLES'); + foreach($tables as $table) { + $query = "SELECT * FROM `".$table."`"; + $records = $this->getResultArray($query); + fwrite($fp,"\n-- TABLE: ".$table."--\n\n"); + foreach($records as $record) { + $values=""; + $i = 1; + foreach ($record as $column) { + if (is_numeric($column)) $values .= $column; + else $values .= $this->qstr($column); + + if ($i<(count($record))) $values .= ","; + $i++; + } + + fwrite($fp, "INSERT INTO `".$table."` VALUES (".$values.");\n"); + } + } + return true; + } /* }}} */ } From a3965b8299407ae2a42da95e52e23e3402250289 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 17 Sep 2021 19:02:53 +0200 Subject: [PATCH 081/413] min version of php is 7.3 --- doc/README.Install.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/README.Install.md b/doc/README.Install.md index 89c317942..561e433e3 100644 --- a/doc/README.Install.md +++ b/doc/README.Install.md @@ -8,13 +8,13 @@ SeedDMS is a web-based application written in PHP. It uses MySQL, SQLite3 or PostgreSQL to manage the documents that were uploaded into the application. Be aware that PostgreSQL is not very well tested. -Make sure you have PHP >= 7.2 and MySQL 5 or higher installed. SeedDMS +Make sure you have PHP >= 7.3 and MySQL 5 or higher installed. SeedDMS will work with PHP running in CGI-mode as well as running as a module under apache. Here is a detailed list of requirements: -1. A web server with at least php 7.2 +1. A web server with at least php 7.3 2. A mysql database, unless you use SQLite 3. The php installation must have support for `pdo_mysql`, `pdo_pgsql` or `pdo_sqlite`, `php_gd2`, `php_mbstring`, `php_xml` From a3e6373673c7f2a2c2f0d35125753e1f2ccc00c4 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 17 Sep 2021 19:03:14 +0200 Subject: [PATCH 082/413] createDump() has moved into database class and now expects a file pointer --- op/op.CreateDump.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/op/op.CreateDump.php b/op/op.CreateDump.php index 787e53383..7b25963ef 100644 --- a/op/op.CreateDump.php +++ b/op/op.CreateDump.php @@ -37,8 +37,14 @@ if (!$settings->_backupDir) { $v = new SeedDMS_Version; $dump_name = addDirSep($settings->_backupDir).date('Y-m-d\TH-i-s')."_".$v->version().".sql"; -if(!$dms->createDump($dump_name)) +$fp = fopen($dump_name, "w"); +if(!$fp) UI::exitError(getMLText("admin_tools"),getMLText("error_occured")); +if(!$dms->getDb()->createDump($fp)) { + fclose($fp); + UI::exitError(getMLText("admin_tools"),getMLText("error_occured")); +} +fclose($fp); if (SeedDMS_Core_File::gzcompressfile($dump_name,9)) unlink($dump_name); else UI::exitError(getMLText("admin_tools"),getMLText("error_occured")); From e765737d93ed861a01a7e6a63af41ec35c449cbf Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Sat, 18 Sep 2021 17:49:26 +0200 Subject: [PATCH 083/413] trim name passed to various methods --- SeedDMS_Core/Core/inc.ClassDMS.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/SeedDMS_Core/Core/inc.ClassDMS.php b/SeedDMS_Core/Core/inc.ClassDMS.php index cca617455..36ed922aa 100644 --- a/SeedDMS_Core/Core/inc.ClassDMS.php +++ b/SeedDMS_Core/Core/inc.ClassDMS.php @@ -755,6 +755,7 @@ class SeedDMS_Core_DMS { * @return SeedDMS_Core_Document|boolean found document or false */ function getDocumentByName($name, $folder=null) { /* {{{ */ + $name = trim($name); if (!$name) return false; $queryStr = "SELECT `tblDocuments`.*, `tblDocumentLocks`.`userID` as `lockUser` ". @@ -2001,6 +2002,7 @@ class SeedDMS_Core_DMS { * @return SeedDMS_Core_Folder|boolean found folder or false */ function getFolderByName($name, $folder=null) { /* {{{ */ + $name = trim($name); $classname = $this->classnames['folder']; return $classname::getInstanceByName($name, $folder, $this); } /* }}} */ @@ -2243,6 +2245,7 @@ class SeedDMS_Core_DMS { * @return SeedDMS_Core_Group|boolean group or false if no group was found */ function getGroupByName($name) { /* {{{ */ + $name = trim($name); $classname = $this->classnames['group']; return $classname::getInstance($name, $this, 'name'); } /* }}} */ @@ -2266,6 +2269,7 @@ class SeedDMS_Core_DMS { * case of an error. */ function addGroup($name, $comment) { /* {{{ */ + $name = trim($name); if (is_object($this->getGroupByName($name))) { return false; } From 578aa30bc582cf1df82d5d533eb60b66b7e9c180 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Sat, 18 Sep 2021 17:50:32 +0200 Subject: [PATCH 084/413] better checking of passed arguments --- SeedDMS_Core/Core/inc.ClassDMS.php | 78 ++++++++++++++++++++++-------- 1 file changed, 59 insertions(+), 19 deletions(-) diff --git a/SeedDMS_Core/Core/inc.ClassDMS.php b/SeedDMS_Core/Core/inc.ClassDMS.php index 36ed922aa..6adf22200 100644 --- a/SeedDMS_Core/Core/inc.ClassDMS.php +++ b/SeedDMS_Core/Core/inc.ClassDMS.php @@ -2298,8 +2298,10 @@ class SeedDMS_Core_DMS { $queryStr = "SELECT * FROM `tblKeywordCategories` WHERE `id` = " . (int) $id; $resArr = $this->db->getResultArray($queryStr); - if ((is_bool($resArr) && !$resArr) || (count($resArr) != 1)) + if (is_bool($resArr) && !$resArr) return false; + if (count($resArr) != 1) + return null; $resArr = $resArr[0]; $cat = new SeedDMS_Core_Keywordcategory($resArr["id"], $resArr["owner"], $resArr["name"]); @@ -2308,10 +2310,15 @@ class SeedDMS_Core_DMS { } /* }}} */ function getKeywordCategoryByName($name, $userID) { /* {{{ */ + if (!is_numeric($userID) || $userID < 1) + return false; + $name = trim($name); $queryStr = "SELECT * FROM `tblKeywordCategories` WHERE `name` = " . $this->db->qstr($name) . " AND `owner` = " . (int) $userID; $resArr = $this->db->getResultArray($queryStr); - if ((is_bool($resArr) && !$resArr) || (count($resArr) != 1)) + if (is_bool($resArr) && !$resArr) return false; + if (count($resArr) != 1) + return null; $resArr = $resArr[0]; $cat = new SeedDMS_Core_Keywordcategory($resArr["id"], $resArr["owner"], $resArr["name"]); @@ -2356,12 +2363,13 @@ class SeedDMS_Core_DMS { function addKeywordCategory($userID, $name) { /* {{{ */ if (!is_numeric($userID) || $userID < 1) return false; - if(!trim($name)) + $name = trim($name); + if(!$name) return false; - if (is_object($this->getKeywordCategoryByName(trim($name), $userID))) { + if (is_object($this->getKeywordCategoryByName($name, $userID))) { return false; } - $queryStr = "INSERT INTO `tblKeywordCategories` (`owner`, `name`) VALUES (".(int) $userID.", ".$this->db->qstr(trim($name)).")"; + $queryStr = "INSERT INTO `tblKeywordCategories` (`owner`, `name`) VALUES (".(int) $userID.", ".$this->db->qstr($name).")"; if (!$this->db->getResult($queryStr)) return false; @@ -2420,6 +2428,7 @@ class SeedDMS_Core_DMS { * @return SeedDMS_Core_DocumentCategory|boolean instance of {@link SeedDMS_Core_DocumentCategory} */ function getDocumentCategoryByName($name) { /* {{{ */ + $name = trim($name); if (!$name) return false; $queryStr = "SELECT * FROM `tblCategory` where `name`=".$this->db->qstr($name); @@ -2435,12 +2444,13 @@ class SeedDMS_Core_DMS { } /* }}} */ function addDocumentCategory($name) { /* {{{ */ - if(!trim($name)) + $name = trim($name); + if(!$name) return false; - if (is_object($this->getDocumentCategoryByName(trim($name)))) { + if (is_object($this->getDocumentCategoryByName($name))) { return false; } - $queryStr = "INSERT INTO `tblCategory` (`name`) VALUES (".$this->db->qstr(trim($name)).")"; + $queryStr = "INSERT INTO `tblCategory` (`name`) VALUES (".$this->db->qstr($name).")"; if (!$this->db->getResult($queryStr)) return false; @@ -2573,6 +2583,7 @@ class SeedDMS_Core_DMS { * @return SeedDMS_Core_AttributeDefinition|boolean instance of {@link SeedDMS_Core_AttributeDefinition} or false */ function getAttributeDefinitionByName($name) { /* {{{ */ + $name = trim($name); if (!$name) return false; $queryStr = "SELECT * FROM `tblAttributeDefinitions` WHERE `name` = " . $this->db->qstr($name); @@ -2635,9 +2646,14 @@ class SeedDMS_Core_DMS { * @return bool|SeedDMS_Core_User */ function addAttributeDefinition($name, $objtype, $type, $multiple=0, $minvalues=0, $maxvalues=1, $valueset='', $regex='') { /* {{{ */ + $name = trim($name); + if(!$name) + return false; if (is_object($this->getAttributeDefinitionByName($name))) { return false; } + if(!$objtype) + return false; if(!$type) return false; if(trim($valueset)) { @@ -2692,9 +2708,12 @@ class SeedDMS_Core_DMS { * Return workflow by its Id * * @param integer $id internal id of workflow - * @return SeedDMS_Core_Workflow|bool of instances of {@link SeedDMS_Core_Workflow} or false + * @return SeedDMS_Core_Workflow|bool of instances of {@link SeedDMS_Core_Workflow}, null if no workflow was found or false */ function getWorkflow($id) { /* {{{ */ + if (!is_numeric($id)) + return false; + $queryStr = "SELECT * FROM `tblWorkflows` WHERE `id`=".intval($id); $resArr = $this->db->getResultArray($queryStr); @@ -2702,7 +2721,7 @@ class SeedDMS_Core_DMS { return false; if(!$resArr) - return false; + return null; $initstate = $this->getWorkflowState($resArr[0]['initstate']); @@ -2716,9 +2735,10 @@ class SeedDMS_Core_DMS { * Return workflow by its name * * @param string $name name of workflow - * @return SeedDMS_Core_Workflow|bool of instances of {@link SeedDMS_Core_Workflow} or false + * @return SeedDMS_Core_Workflow|bool of instances of {@link SeedDMS_Core_Workflow} or null if no workflow was found or false */ function getWorkflowByName($name) { /* {{{ */ + $name = trim($name); if (!$name) return false; $queryStr = "SELECT * FROM `tblWorkflows` WHERE `name`=".$this->db->qstr($name); @@ -2728,7 +2748,7 @@ class SeedDMS_Core_DMS { return false; if(!$resArr) - return false; + return null; $initstate = $this->getWorkflowState($resArr[0]['initstate']); @@ -2747,6 +2767,9 @@ class SeedDMS_Core_DMS { */ function addWorkflow($name, $initstate) { /* {{{ */ $db = $this->db; + $name = trim($name); + if(!$name) + return false; if (is_object($this->getWorkflowByName($name))) { return false; } @@ -2773,8 +2796,11 @@ class SeedDMS_Core_DMS { $queryStr = "SELECT * FROM `tblWorkflowStates` WHERE `id` = " . (int) $id; $resArr = $this->db->getResultArray($queryStr); - if (is_bool($resArr) && $resArr == false) return false; - if (count($resArr) != 1) return false; + if (is_bool($resArr) && $resArr == false) + return false; + + if (count($resArr) != 1) + return null; $resArr = $resArr[0]; @@ -2790,6 +2816,7 @@ class SeedDMS_Core_DMS { * @return bool|SeedDMS_Core_Workflow_State or false */ function getWorkflowStateByName($name) { /* {{{ */ + $name = trim($name); if (!$name) return false; $queryStr = "SELECT * FROM `tblWorkflowStates` WHERE `name`=".$this->db->qstr($name); @@ -2799,7 +2826,7 @@ class SeedDMS_Core_DMS { return false; if(!$resArr) - return false; + return null; $resArr = $resArr[0]; @@ -2840,6 +2867,9 @@ class SeedDMS_Core_DMS { */ function addWorkflowState($name, $docstatus) { /* {{{ */ $db = $this->db; + $name = trim($name); + if(!$name) + return false; if (is_object($this->getWorkflowStateByName($name))) { return false; } @@ -2866,8 +2896,11 @@ class SeedDMS_Core_DMS { $queryStr = "SELECT * FROM `tblWorkflowActions` WHERE `id` = " . (int) $id; $resArr = $this->db->getResultArray($queryStr); - if (is_bool($resArr) && $resArr == false) return false; - if (count($resArr) != 1) return false; + if (is_bool($resArr) && $resArr == false) + return false; + + if (count($resArr) != 1) + return null; $resArr = $resArr[0]; @@ -2885,13 +2918,17 @@ class SeedDMS_Core_DMS { * @return SeedDMS_Core_Workflow_Action|bool instance of {@link SeedDMS_Core_Workflow_Action} or false */ function getWorkflowActionByName($name) { /* {{{ */ + $name = trim($name); if (!$name) return false; $queryStr = "SELECT * FROM `tblWorkflowActions` WHERE `name` = " . $this->db->qstr($name); $resArr = $this->db->getResultArray($queryStr); - if (is_bool($resArr) && $resArr == false) return false; - if (count($resArr) != 1) return false; + if (is_bool($resArr) && $resArr == false) + return false; + + if (count($resArr) != 1) + return null; $resArr = $resArr[0]; @@ -2931,6 +2968,9 @@ class SeedDMS_Core_DMS { */ function addWorkflowAction($name) { /* {{{ */ $db = $this->db; + $name = trim($name); + if(!$name) + return false; if (is_object($this->getWorkflowActionByName($name))) { return false; } From 851e81a9b98c126bc1b6a1a102f206db63dadb2c Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Sat, 18 Sep 2021 17:51:17 +0200 Subject: [PATCH 085/413] check if login != '' in setLogin() --- SeedDMS_Core/Core/inc.ClassUser.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/SeedDMS_Core/Core/inc.ClassUser.php b/SeedDMS_Core/Core/inc.ClassUser.php index e19a3fd30..91936f072 100644 --- a/SeedDMS_Core/Core/inc.ClassUser.php +++ b/SeedDMS_Core/Core/inc.ClassUser.php @@ -292,6 +292,10 @@ class SeedDMS_Core_User { /* {{{ */ * @return bool */ function setLogin($newLogin) { /* {{{ */ + $newLogin = trim($newLogin); + if(!$newLogin) + return false; + $db = $this->_dms->getDB(); $queryStr = "UPDATE `tblUsers` SET `login` =".$db->qstr($newLogin)." WHERE `id` = " . $this->_id; From a5e12cb44443a492068ad80d1467d3e420f0fbf9 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 20 Sep 2021 16:31:42 +0200 Subject: [PATCH 086/413] fix errors in coding style --- SeedDMS_Core/Core/inc.ClassDMS.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/SeedDMS_Core/Core/inc.ClassDMS.php b/SeedDMS_Core/Core/inc.ClassDMS.php index 6adf22200..52ec433b0 100644 --- a/SeedDMS_Core/Core/inc.ClassDMS.php +++ b/SeedDMS_Core/Core/inc.ClassDMS.php @@ -5,9 +5,8 @@ * @category DMS * @package SeedDMS_Core * @license GPL 2 - * @version @version@ * @author Uwe Steinmann - * @copyright Copyright (C) 2010, Uwe Steinmann + * @copyright 2010 Uwe Steinmann * @version Release: @package_version@ */ @@ -3108,7 +3107,7 @@ class SeedDMS_Core_DMS { function getDuplicateDocumentContent() { /* {{{ */ $queryStr = "SELECT a.*, b.`id` as dupid FROM `tblDocumentContent` a LEFT JOIN `tblDocumentContent` b ON a.`checksum`=b.`checksum` where a.`id`!=b.`id` ORDER by a.`id` LIMIT 1000"; $resArr = $this->db->getResultArray($queryStr); - if (!$resArr) + if ($resArr === false) return false; /** @var SeedDMS_Core_Document[] $versions */ From 69e3ad87f97c985297f9c18ab64f2cfc733d2b30 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 20 Sep 2021 16:32:34 +0200 Subject: [PATCH 087/413] add note in comment about a possible wrong check for a return value --- SeedDMS_Core/Core/inc.ClassDocument.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/SeedDMS_Core/Core/inc.ClassDocument.php b/SeedDMS_Core/Core/inc.ClassDocument.php index fd10acde1..4fd8df5e5 100644 --- a/SeedDMS_Core/Core/inc.ClassDocument.php +++ b/SeedDMS_Core/Core/inc.ClassDocument.php @@ -1613,6 +1613,7 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ $docResultSet->addReviewer($reviewer, $i, $res); // If no error is returned, or if the error is just due to email // failure, mark the state as "pending review". + // FIXME: There seems to be no error code -4 anymore if ($res==0 || $res=-3 || $res=-4) { $pendingReview=true; } @@ -1629,6 +1630,7 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ $approver=($i=="i" ? $this->_dms->getUser($approverID) : $this->_dms->getGroup($approverID)); $res=($i=="i" ? $docResultSet->getContent()->addIndApprover($approver, $user, true) : $docResultSet->getContent()->addGrpApprover($approver, $user, !$pendingReview)); $docResultSet->addApprover($approver, $i, $res); + // FIXME: There seems to be no error code -4 anymore if ($res==0 || $res=-3 || $res=-4) { $pendingApproval=true; } From 7ed1a83453d58695022aa3c3baa58af9c4886d03 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 20 Sep 2021 16:33:25 +0200 Subject: [PATCH 088/413] check if $user, $requestUser is passed to addIndReviewer() addIndApprover() --- SeedDMS_Core/Core/inc.ClassDocument.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/SeedDMS_Core/Core/inc.ClassDocument.php b/SeedDMS_Core/Core/inc.ClassDocument.php index 4fd8df5e5..96d982680 100644 --- a/SeedDMS_Core/Core/inc.ClassDocument.php +++ b/SeedDMS_Core/Core/inc.ClassDocument.php @@ -3765,6 +3765,9 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ } /* }}} */ function addIndReviewer($user, $requestUser) { /* {{{ */ + if(!$user || !$requestUser) + return -1; + $db = $this->_document->getDMS()->getDB(); $userID = $user->getID(); @@ -4032,6 +4035,9 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ } /* }}} */ function addIndApprover($user, $requestUser) { /* {{{ */ + if(!$user || !$requestUser) + return -1; + $db = $this->_document->getDMS()->getDB(); $userID = $user->getID(); From 6d01627553d3c8adbce9b68eeb19a95294f77921 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 20 Sep 2021 16:34:57 +0200 Subject: [PATCH 089/413] fix comment (document -> folder) --- SeedDMS_Core/Core/inc.ClassFolder.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SeedDMS_Core/Core/inc.ClassFolder.php b/SeedDMS_Core/Core/inc.ClassFolder.php index 40b6114de..6c271795c 100644 --- a/SeedDMS_Core/Core/inc.ClassFolder.php +++ b/SeedDMS_Core/Core/inc.ClassFolder.php @@ -321,7 +321,7 @@ class SeedDMS_Core_Folder extends SeedDMS_Core_Object { } /* }}} */ /** - * Set creation date of the document + * Set creation date of the folder * * @param integer $date timestamp of creation date. If false then set it * to the current timestamp @@ -1458,7 +1458,7 @@ class SeedDMS_Core_Folder extends SeedDMS_Core_Object { /* Administrators have unrestricted access */ if ($user->isAdmin()) return M_ALL; - /* The owner of the document has unrestricted access */ + /* The owner of the folder has unrestricted access */ if ($user->getID() == $this->_ownerID) return M_ALL; /* Check ACLs */ From 247e8b09ca4ee4de47994cea74667b0522158641 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 20 Sep 2021 16:36:24 +0200 Subject: [PATCH 090/413] set date to current timestamp if $date passed to setDate() is false --- SeedDMS_Core/Core/inc.ClassFolder.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SeedDMS_Core/Core/inc.ClassFolder.php b/SeedDMS_Core/Core/inc.ClassFolder.php index 6c271795c..12816b3a3 100644 --- a/SeedDMS_Core/Core/inc.ClassFolder.php +++ b/SeedDMS_Core/Core/inc.ClassFolder.php @@ -330,7 +330,7 @@ class SeedDMS_Core_Folder extends SeedDMS_Core_Object { function setDate($date) { /* {{{ */ $db = $this->_dms->getDB(); - if(!$date) + if($date === false) $date = time(); else { if(!is_numeric($date)) From 47e07ae2d1d78a47fe14686dc25ed1d0412d8783 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 20 Sep 2021 16:37:10 +0200 Subject: [PATCH 091/413] return null if no folder was found by getParent() --- SeedDMS_Core/Core/inc.ClassFolder.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/SeedDMS_Core/Core/inc.ClassFolder.php b/SeedDMS_Core/Core/inc.ClassFolder.php index 12816b3a3..6fce6577f 100644 --- a/SeedDMS_Core/Core/inc.ClassFolder.php +++ b/SeedDMS_Core/Core/inc.ClassFolder.php @@ -347,11 +347,12 @@ class SeedDMS_Core_Folder extends SeedDMS_Core_Object { /** * Returns the parent * - * @return bool|SeedDMS_Core_Folder + * @return null|bool|SeedDMS_Core_Folder returns null, if there is no parent folder + * and false in case of an error */ public function getParent() { /* {{{ */ if ($this->_id == $this->_dms->rootFolderID || empty($this->_parentID)) { - return false; + return null; } if (!isset($this->_parent)) { From 08836de4d80cf52efcb5e2815f15b1e00755d3ee Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 20 Sep 2021 16:37:45 +0200 Subject: [PATCH 092/413] number of counted folders/documents is converted to int before return --- SeedDMS_Core/Core/inc.ClassFolder.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SeedDMS_Core/Core/inc.ClassFolder.php b/SeedDMS_Core/Core/inc.ClassFolder.php index 6fce6577f..c29410ed8 100644 --- a/SeedDMS_Core/Core/inc.ClassFolder.php +++ b/SeedDMS_Core/Core/inc.ClassFolder.php @@ -594,7 +594,7 @@ class SeedDMS_Core_Folder extends SeedDMS_Core_Object { if (is_bool($resArr) && !$resArr) return false; - return $resArr[0]['c']; + return (int) $resArr[0]['c']; } /* }}} */ /** @@ -801,7 +801,7 @@ class SeedDMS_Core_Folder extends SeedDMS_Core_Object { if (is_bool($resArr) && !$resArr) return false; - return $resArr[0]['c']; + return (int) $resArr[0]['c']; } /* }}} */ /** From af9178aa933a6f28424a96fb0629605eb5cdc85b Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 20 Sep 2021 16:39:08 +0200 Subject: [PATCH 093/413] set internal pwd expiration to null when set to 'never' or '' --- SeedDMS_Core/Core/inc.ClassUser.php | 1 + 1 file changed, 1 insertion(+) diff --git a/SeedDMS_Core/Core/inc.ClassUser.php b/SeedDMS_Core/Core/inc.ClassUser.php index 91936f072..5e22b1702 100644 --- a/SeedDMS_Core/Core/inc.ClassUser.php +++ b/SeedDMS_Core/Core/inc.ClassUser.php @@ -362,6 +362,7 @@ class SeedDMS_Core_User { /* {{{ */ $db = $this->_dms->getDB(); if(trim($newPwdExpiration) == '' || trim($newPwdExpiration) == 'never') { + $newPwdExpiration = null; $queryStr = "UPDATE `tblUsers` SET `pwdExpiration` = NULL WHERE `id` = " . $this->_id; } else { if(trim($newPwdExpiration) == 'now') From 472b066d4bc1f81792f1f1b55627519b164c382e Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 20 Sep 2021 16:40:00 +0200 Subject: [PATCH 094/413] cast $newRole to int when passed to setRole() --- SeedDMS_Core/Core/inc.ClassUser.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/SeedDMS_Core/Core/inc.ClassUser.php b/SeedDMS_Core/Core/inc.ClassUser.php index 5e22b1702..4d1ba803e 100644 --- a/SeedDMS_Core/Core/inc.ClassUser.php +++ b/SeedDMS_Core/Core/inc.ClassUser.php @@ -472,7 +472,8 @@ class SeedDMS_Core_User { /* {{{ */ */ function setRole($newrole) { /* {{{ */ $db = $this->_dms->getDB(); - $newrole = intval($newrole); + if(!in_array($newrole, array(SeedDMS_Core_User::role_admin, SeedDMS_Core_User::role_guest, SeedDMS_Core_User::role_user), true)) + return false; $queryStr = "UPDATE `tblUsers` SET `role` = " . $newrole . " WHERE `id` = " . $this->_id; if (!$db->getResult($queryStr)) From 4322b97fe2a2006d7eb3f073ef7cf5437e16f67a Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 20 Sep 2021 16:40:30 +0200 Subject: [PATCH 095/413] better checking of quota when set by setQuota() --- SeedDMS_Core/Core/inc.ClassUser.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/SeedDMS_Core/Core/inc.ClassUser.php b/SeedDMS_Core/Core/inc.ClassUser.php index 4d1ba803e..8782ef0f1 100644 --- a/SeedDMS_Core/Core/inc.ClassUser.php +++ b/SeedDMS_Core/Core/inc.ClassUser.php @@ -620,6 +620,11 @@ class SeedDMS_Core_User { /* {{{ */ * @return bool */ function setQuota($quota) { /* {{{ */ + if (!is_numeric($quota)) + return false; + if($quota < 0) + return false; + $db = $this->_dms->getDB(); $quota = intval($quota); From 822a07485c74c9441605707a80e01ca2af4c80ae Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 20 Sep 2021 16:41:07 +0200 Subject: [PATCH 096/413] getImage() returns null if no image exists --- SeedDMS_Core/Core/inc.ClassUser.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/SeedDMS_Core/Core/inc.ClassUser.php b/SeedDMS_Core/Core/inc.ClassUser.php index 8782ef0f1..309be1abf 100644 --- a/SeedDMS_Core/Core/inc.ClassUser.php +++ b/SeedDMS_Core/Core/inc.ClassUser.php @@ -1110,7 +1110,8 @@ class SeedDMS_Core_User { /* {{{ */ /** * Get the image from the users profile * - * @return array|bool image data + * @return string|null|bool image data as a string or null if no image is set or + * false in case of an error */ function getImage() { /* {{{ */ $db = $this->_dms->getDB(); @@ -1121,8 +1122,9 @@ class SeedDMS_Core_User { /* {{{ */ return false; if($resArr) - $resArr = $resArr[0]; - return $resArr; + return $resArr[0]; + else + return null; } /* }}} */ /** From 63ae86125763bc907535e11343b4aa39068580fb Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 20 Sep 2021 16:41:48 +0200 Subject: [PATCH 097/413] many code style cleanups --- inc/inc.ClassAuthentication.php | 58 +++++++++++++++++++++------------ 1 file changed, 37 insertions(+), 21 deletions(-) diff --git a/inc/inc.ClassAuthentication.php b/inc/inc.ClassAuthentication.php index 968b5d13e..29e57ed20 100644 --- a/inc/inc.ClassAuthentication.php +++ b/inc/inc.ClassAuthentication.php @@ -2,38 +2,52 @@ /** * Implementation of user authentication * - * @category DMS - * @package SeedDMS - * @license GPL 2 - * @version @version@ - * @author Uwe Steinmann - * @copyright Copyright (C) 2010-2016 Uwe Steinmann - * @version Release: @package_version@ + * @category DMS + * @package SeedDMS + * @author Uwe Steinmann + * @copyright 2010-2016 Uwe Steinmann + * @license GPL 2 + * @version @package_version@ + * @link https://www.seeddms.org */ /** * Abstract class to authenticate user * - * @category DMS - * @package SeedDMS - * @author Uwe Steinmann - * @copyright Copyright (C) 2010-2016 Uwe Steinmann - * @version Release: @package_version@ + * @category DMS + * @package SeedDMS + * @author Uwe Steinmann + * @copyright 2010-2016 Uwe Steinmann + * @license GPL 2 + * @version Release: @package_version@ + * @link https://www.seeddms.org */ -abstract class SeedDMS_Authentication { +abstract class SeedDMS_Authentication +{ /** - * @var object $dms object of dms + * DMS object + * + * @var SeedDMS_Core_DMS * @access protected */ - private $dms; + protected $dms; /** - * @var object $settings SeedDMS Settings + * DMS settings + * + * @var Settings * @access protected */ - private $settings; + protected $settings; - function __construct($dms, $settings) { /* {{{ */ + /** + * Constructor + * + * @param SeedDMS_Core_DMS $dms DMS object + * @param Settings $settings DMS settings + */ + function __construct($dms, $settings) /* {{{ */ + { $this->dms = $dms; $this->settings = $settings; } /* }}} */ @@ -45,9 +59,11 @@ abstract class SeedDMS_Authentication { * the user object otherwise false must be returned. If authentication fails * the number of failed logins should be incremented and account disabled. * - * @param string $username - * @param string $password - * @return object|boolean user object if authentication was successful otherwise false + * @param string $username name of user to authenticate + * @param string $password password of user to authenticate + * + * @return object|false user object if authentication was successful + * otherwise false */ abstract function authenticate($username, $password); } From 8e7d2547b4556423859b80394ab1074bdd086d46 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 20 Sep 2021 16:42:14 +0200 Subject: [PATCH 098/413] remove constructor, because it was the same like in the parent class --- inc/inc.ClassDbAuthentication.php | 16 ----------- inc/inc.ClassLdapAuthentication.php | 44 +++++++++-------------------- 2 files changed, 14 insertions(+), 46 deletions(-) diff --git a/inc/inc.ClassDbAuthentication.php b/inc/inc.ClassDbAuthentication.php index 5d94b2c64..ebd44e685 100644 --- a/inc/inc.ClassDbAuthentication.php +++ b/inc/inc.ClassDbAuthentication.php @@ -23,22 +23,6 @@ require_once "inc.ClassAuthentication.php"; * @version Release: @package_version@ */ class SeedDMS_DbAuthentication extends SeedDMS_Authentication { - /** - * @var object $dms object of dms - * @access protected - */ - private $dms; - - /** - * @var object $settings SeedDMS Settings - * @access protected - */ - private $settings; - - function __construct($dms, $settings) { /* {{{ */ - $this->dms = $dms; - $this->settings = $settings; - } /* }}} */ /** * Do Authentication diff --git a/inc/inc.ClassLdapAuthentication.php b/inc/inc.ClassLdapAuthentication.php index cd301ec2a..402347f18 100644 --- a/inc/inc.ClassLdapAuthentication.php +++ b/inc/inc.ClassLdapAuthentication.php @@ -2,13 +2,13 @@ /** * Implementation of user authentication * - * @category DMS - * @package SeedDMS - * @license GPL 2 - * @version @version@ - * @author Uwe Steinmann - * @copyright Copyright (C) 2010-2016 Uwe Steinmann - * @version Release: @package_version@ + * @category DMS + * @package SeedDMS + * @author Uwe Steinmann + * @license GPL 2 + * @version @version@ + * @copyright 2010-2016 Uwe Steinmann + * @version Release: @package_version@ */ require_once "inc.ClassAuthentication.php"; @@ -16,29 +16,13 @@ require_once "inc.ClassAuthentication.php"; /** * Abstract class to authenticate user against ldap server * - * @category DMS - * @package SeedDMS - * @author Uwe Steinmann - * @copyright Copyright (C) 2010-2016 Uwe Steinmann - * @version Release: @package_version@ + * @category DMS + * @package SeedDMS + * @author Uwe Steinmann + * @copyright 2010-2016 Uwe Steinmann + * @version Release: @package_version@ */ class SeedDMS_LdapAuthentication extends SeedDMS_Authentication { - /** - * @var object $dms object of dms - * @access protected - */ - private $dms; - - /** - * @var object $settings SeedDMS Settings - * @access protected - */ - private $settings; - - function __construct($dms, $settings) { /* {{{ */ - $this->dms = $dms; - $this->settings = $settings; - } /* }}} */ /** * Do ldap authentication @@ -53,8 +37,8 @@ class SeedDMS_LdapAuthentication extends SeedDMS_Authentication { * authentication. If that succeeds the user is logged in. If the user doesn't * exist in the database, it will be created. * - * @param string $username - * @param string $password + * @param string $username name of user to authenticate + * @param string $password password of user to authenticate * @return object|boolean user object if authentication was successful otherwise false */ public function authenticate($username, $password) { /* {{{ */ From b777b786dde72af8d91ed70f3db0064eda4cf93e Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Wed, 22 Sep 2021 09:39:18 +0200 Subject: [PATCH 099/413] check expiration date in search() --- SeedDMS_Core/Core/inc.ClassDMS.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/SeedDMS_Core/Core/inc.ClassDMS.php b/SeedDMS_Core/Core/inc.ClassDMS.php index 52ec433b0..02a164b38 100644 --- a/SeedDMS_Core/Core/inc.ClassDMS.php +++ b/SeedDMS_Core/Core/inc.ClassDMS.php @@ -665,7 +665,7 @@ class SeedDMS_Core_DMS { * If the parameter $date is a negative number or a date in the past, then * all documents from the start of that date till the end of the current * day will be returned. If $date is a positive integer or $date is a - * date in the future, the all documents from the start of the current + * date in the future, then all documents from the start of the current * day till the end of the day of the given date will be returned. * Passing 0 or the * current date in $date, will return all documents expiring the current @@ -692,7 +692,9 @@ class SeedDMS_Core_DMS { } elseif(is_string($date)) { $tmp = explode('-', $date, 3); if(count($tmp) != 3) - return false; + return false; + if(!self::checkDate($date, 'Y-m-d')) + return false; $ts = mktime(0, 0, 0, $tmp[1], $tmp[2], $tmp[0]); } else return false; From 96f8c1db21457c9db1ffe8a9b95c15402a917e18 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Wed, 22 Sep 2021 09:40:25 +0200 Subject: [PATCH 100/413] order documents by id in getDocumentByName(), return null if not document was found --- SeedDMS_Core/Core/inc.ClassDMS.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/SeedDMS_Core/Core/inc.ClassDMS.php b/SeedDMS_Core/Core/inc.ClassDMS.php index 02a164b38..ca3b739ce 100644 --- a/SeedDMS_Core/Core/inc.ClassDMS.php +++ b/SeedDMS_Core/Core/inc.ClassDMS.php @@ -748,12 +748,12 @@ class SeedDMS_Core_DMS { * * This function searches a document by its name and restricts the search * to the given folder if passed as the second parameter. - * If there are more than one document with that name, then only the first - * one will be returned. + * If there are more than one document with that name, then only the + * one with the highest id will be returned. * - * @param string $name - * @param object $folder - * @return SeedDMS_Core_Document|boolean found document or false + * @param string $name Name of the document + * @param object $folder parent folder of document + * @return SeedDMS_Core_Document|null|boolean found document or null if not document was found or false in case of an error */ function getDocumentByName($name, $folder=null) { /* {{{ */ $name = trim($name); @@ -765,14 +765,14 @@ class SeedDMS_Core_DMS { "WHERE `tblDocuments`.`name` = " . $this->db->qstr($name); if($folder) $queryStr .= " AND `tblDocuments`.`folder` = ". $folder->getID(); - $queryStr .= " LIMIT 1"; + $queryStr .= " ORDER BY `tblDocuments`.`id` DESC LIMIT 1"; $resArr = $this->db->getResultArray($queryStr); if (is_bool($resArr) && !$resArr) return false; if(!$resArr) - return false; + return null; $row = $resArr[0]; /** @var SeedDMS_Core_Document $document */ From b6452faa9b20b5c66d61b3cb3ef05bcb79fa25d7 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Wed, 22 Sep 2021 09:41:23 +0200 Subject: [PATCH 101/413] order documents by id, return null if getDocumentByOriginalFilename() does not find any documents --- SeedDMS_Core/Core/inc.ClassDMS.php | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/SeedDMS_Core/Core/inc.ClassDMS.php b/SeedDMS_Core/Core/inc.ClassDMS.php index ca3b739ce..ca318dfde 100644 --- a/SeedDMS_Core/Core/inc.ClassDMS.php +++ b/SeedDMS_Core/Core/inc.ClassDMS.php @@ -787,12 +787,15 @@ class SeedDMS_Core_DMS { * This function searches a document by the name of the last document * version and restricts the search * to given folder if passed as the second parameter. + * If there are more than one document with that name, then only the + * one with the highest id will be returned. * - * @param string $name - * @param object $folder - * @return SeedDMS_Core_Document|boolean found document or false + * @param string $name Name of the original file + * @param object $folder parent folder of document + * @return SeedDMS_Core_Document|null|boolean found document or null if not document was found or false in case of an error */ function getDocumentByOriginalFilename($name, $folder=null) { /* {{{ */ + $name = trim($name); if (!$name) return false; if (!$this->db->createTemporaryTable("ttcontentid")) { @@ -806,14 +809,14 @@ class SeedDMS_Core_DMS { "WHERE `tblDocumentContent`.`orgFileName` = " . $this->db->qstr($name); if($folder) $queryStr .= " AND `tblDocuments`.`folder` = ". $folder->getID(); - $queryStr .= " LIMIT 1"; + $queryStr .= " ORDER BY `tblDocuments`.`id` DESC LIMIT 1"; $resArr = $this->db->getResultArray($queryStr); if (is_bool($resArr) && !$resArr) return false; if(!$resArr) - return false; + return null; $row = $resArr[0]; /** @var SeedDMS_Core_Document $document */ From 96f858cbdddd825bac8ba2fc50aee28945e6e214 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Wed, 22 Sep 2021 09:42:31 +0200 Subject: [PATCH 102/413] getDocumentContent() returns null if no document was found --- SeedDMS_Core/Core/inc.ClassDMS.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/SeedDMS_Core/Core/inc.ClassDMS.php b/SeedDMS_Core/Core/inc.ClassDMS.php index ca318dfde..e4d1aad93 100644 --- a/SeedDMS_Core/Core/inc.ClassDMS.php +++ b/SeedDMS_Core/Core/inc.ClassDMS.php @@ -831,17 +831,19 @@ class SeedDMS_Core_DMS { * This function retrieves a document content from the database by its id. * * @param integer $id internal id of document content - * @return bool|SeedDMS_Core_Document or false + * @return bool|null|SeedDMS_Core_DocumentContent found document content or null if not document content was found or false in case of an error + */ function getDocumentContent($id) { /* {{{ */ - if (!is_numeric($id)) return false; + if (!is_numeric($id)) return false; + if ($id < 1) return false; $queryStr = "SELECT * FROM `tblDocumentContent` WHERE `id` = ".(int) $id; $resArr = $this->db->getResultArray($queryStr); if (is_bool($resArr) && $resArr == false) return false; if (count($resArr) != 1) - return false; + return null; $row = $resArr[0]; $document = $this->getDocument($row['document']); From e23b9f09ad711082ee5bcb684e7c14ca39a86b08 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Wed, 22 Sep 2021 09:43:12 +0200 Subject: [PATCH 103/413] check expiration date in search() --- SeedDMS_Core/Core/inc.ClassDMS.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/SeedDMS_Core/Core/inc.ClassDMS.php b/SeedDMS_Core/Core/inc.ClassDMS.php index e4d1aad93..d3e06918d 100644 --- a/SeedDMS_Core/Core/inc.ClassDMS.php +++ b/SeedDMS_Core/Core/inc.ClassDMS.php @@ -1311,6 +1311,8 @@ class SeedDMS_Core_DMS { $tmp = explode('-', $param2, 3); if(count($tmp) != 3) return false; + if(!self::checkDate($param2, 'Y-m-d')) + return false; $ts = mktime(0, 0, 0, $tmp[1], $tmp[2], $tmp[0]); } else $ts = mktime(0, 0, 0)-365*86400; /* Start of today - 1 year */ From 37a30e60821a374982278c442115ead0c5a92f16 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Wed, 22 Sep 2021 09:43:51 +0200 Subject: [PATCH 104/413] start and end date of expiration are within the range in search() --- SeedDMS_Core/Core/inc.ClassDMS.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SeedDMS_Core/Core/inc.ClassDMS.php b/SeedDMS_Core/Core/inc.ClassDMS.php index d3e06918d..34e982d4c 100644 --- a/SeedDMS_Core/Core/inc.ClassDMS.php +++ b/SeedDMS_Core/Core/inc.ClassDMS.php @@ -1327,7 +1327,7 @@ class SeedDMS_Core_DMS { } $queryStr .= - "WHERE `tblDocuments`.`expires` > ".$startts." AND `tblDocuments`.`expires` < ".$endts." "; + "WHERE `tblDocuments`.`expires` >= ".$startts." AND `tblDocuments`.`expires` <= ".$endts." "; $user = $param1; $orderby = $param3; From 16e48bbb162fbd01f8d2282161228ca216cc11c6 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Wed, 22 Sep 2021 09:45:06 +0200 Subject: [PATCH 105/413] search() will not find docs without expiration date if filtered by expiration date --- SeedDMS_Core/Core/inc.ClassDMS.php | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/SeedDMS_Core/Core/inc.ClassDMS.php b/SeedDMS_Core/Core/inc.ClassDMS.php index 34e982d4c..723125d7b 100644 --- a/SeedDMS_Core/Core/inc.ClassDMS.php +++ b/SeedDMS_Core/Core/inc.ClassDMS.php @@ -1427,6 +1427,9 @@ class SeedDMS_Core_DMS { * meanѕ that updateѕ of a document will only result in a searchable * modification if a new version is uploaded. * + * If the search is filtered by an expiration date, only documents with + * an expiration date will be found. Even if just an end date is given. + * * @param string $query seach query with space separated words * @param integer $limit number of items in result set * @param integer $offset index of first item in result set @@ -1448,8 +1451,8 @@ class SeedDMS_Core_DMS { * 0x1 = documents only * 0x2 = folders only * 0x3 = both - * @param array $expirationstartdate search for documents expiring after this date - * @param array $expirationenddate search for documents expiring before this date + * @param array $expirationstartdate search for documents expiring after and on this date + * @param array $expirationenddate search for documents expiring before and on this date * @return array|bool */ function search($query, $limit=0, $offset=0, $logicalmode='AND', $searchin=array(), $startFolder=null, $owner=null, $status = array(), $creationstartdate=array(), $creationenddate=array(), $modificationstartdate=array(), $modificationenddate=array(), $categories=array(), $attributes=array(), $mode=0x3, $expirationstartdate=array(), $expirationenddate=array()) { /* {{{ */ @@ -1804,8 +1807,6 @@ class SeedDMS_Core_DMS { if ($expirationstartdate) { $startdate = SeedDMS_Core_DMS::makeTimeStamp($expirationstartdate['hour'], $expirationstartdate['minute'], $expirationstartdate['second'], $expirationstartdate['year'], $expirationstartdate["month"], $expirationstartdate["day"]); if ($startdate) { - if($searchExpirationDate) - $searchExpirationDate .= " AND "; $searchExpirationDate .= "`tblDocuments`.`expires` >= ".$this->db->qstr($startdate); } } @@ -1814,6 +1815,8 @@ class SeedDMS_Core_DMS { if ($stopdate) { if($searchExpirationDate) $searchExpirationDate .= " AND "; + else // do not find documents without an expiration date + $searchExpirationDate .= "`tblDocuments`.`expires` != 0 AND "; $searchExpirationDate .= "`tblDocuments`.`expires` <= ".$this->db->qstr($stopdate); } } From 674002c02f5e61870b50b121c2b48e54fcce92c0 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Wed, 22 Sep 2021 09:46:20 +0200 Subject: [PATCH 106/413] init class variables for internal cache, add method to clear cache --- SeedDMS_Core/Core/inc.ClassFolder.php | 29 ++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/SeedDMS_Core/Core/inc.ClassFolder.php b/SeedDMS_Core/Core/inc.ClassFolder.php index c29410ed8..76ad08db8 100644 --- a/SeedDMS_Core/Core/inc.ClassFolder.php +++ b/SeedDMS_Core/Core/inc.ClassFolder.php @@ -79,22 +79,22 @@ class SeedDMS_Core_Folder extends SeedDMS_Core_Object { protected $_date; /** - * @var SeedDMS_Core_Folder + * @var SeedDMS_Core_Folder cached parent folder */ protected $_parent; /** - * @var SeedDMS_Core_User + * @var SeedDMS_Core_User cached owner of folder */ protected $_owner; /** - * @var SeedDMS_Core_Folder[] + * @var SeedDMS_Core_Folder[] cached array of sub folders */ protected $_subFolders; /** - * @var SeedDMS_Core_Document[] + * @var SeedDMS_Core_Document[] cache array of child documents */ protected $_documents; @@ -126,7 +126,26 @@ class SeedDMS_Core_Folder extends SeedDMS_Core_Object { $this->_inheritAccess = $inheritAccess; $this->_defaultAccess = $defaultAccess; $this->_sequence = $sequence; - $this->_notifyList = array(); + $this->_notifyList = array(); + /* Cache */ + $this->clearCache(); + } /* }}} */ + + /** + * Clear cache of this instance. + * + * The result of some expensive database actions (e.g. get all subfolders + * or documents) will be saved in a class variable to speed up consecutive + * calls of the same method. If a second call of the same method shall not + * use the cache, then it must be cleared. + * + */ + public function clearCache() { /* {{{ */ + $this->_parent = null; + $this->_owner = null; + $this->_subFolders = null; + $this->_documents = null; + $this->_accessList = null; } /* }}} */ /** From 5a587e5c85488e49fc2ec348af116bf321cb9ae8 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Wed, 22 Sep 2021 09:47:40 +0200 Subject: [PATCH 107/413] add more documentation for isSubFolder() --- SeedDMS_Core/Core/inc.ClassFolder.php | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/SeedDMS_Core/Core/inc.ClassFolder.php b/SeedDMS_Core/Core/inc.ClassFolder.php index 76ad08db8..931672d88 100644 --- a/SeedDMS_Core/Core/inc.ClassFolder.php +++ b/SeedDMS_Core/Core/inc.ClassFolder.php @@ -383,11 +383,15 @@ class SeedDMS_Core_Folder extends SeedDMS_Core_Object { /** * Check if the folder is subfolder * - * This function checks if the passed folder is a subfolder of the current - * folder. + * This method checks if the current folder is in the path of the + * passed subfolder. In that case the current folder is a parent, + * grant parent, grant grant parent, etc. of the subfolder or + * to say it differently the passed folder is somewhere below the + * current folder. * - * @param SeedDMS_Core_Folder $subfolder - * @return bool true if passes folder is a subfolder + * @param SeedDMS_Core_Folder $subfolder folder to be checked if it is + * a subfolder on any level of the current folder + * @return bool true if passed folder is a subfolder, otherwise false */ function isSubFolder($subfolder) { /* {{{ */ $target_path = $subfolder->getPath(); From da8765fe33c97632c472dcaaff4a0bda7f0a3396 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Wed, 22 Sep 2021 09:48:12 +0200 Subject: [PATCH 108/413] add method getFoldersMinMax() --- SeedDMS_Core/Core/inc.ClassFolder.php | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/SeedDMS_Core/Core/inc.ClassFolder.php b/SeedDMS_Core/Core/inc.ClassFolder.php index 931672d88..58f98571b 100644 --- a/SeedDMS_Core/Core/inc.ClassFolder.php +++ b/SeedDMS_Core/Core/inc.ClassFolder.php @@ -466,7 +466,7 @@ class SeedDMS_Core_Folder extends SeedDMS_Core_Object { $res = $db->getResult($queryStr); } - /* Update path in folderList for all documents */ + /* Update path in folderList for all folders */ $queryStr = "SELECT `tblFolders`.`id`, `tblFolders`.`folderList` FROM `tblFolders` WHERE `folderList` LIKE '%:".$this->_id.":%'"; $resArr = $db->getResultArray($queryStr); if (is_bool($resArr) && $resArr == false) @@ -2032,6 +2032,22 @@ class SeedDMS_Core_Folder extends SeedDMS_Core_Object { return $resArr[0]; } /* }}} */ + /** + * Get the min and max sequence value for folders + * + * @return bool|array array with keys 'min' and 'max', false in case of an error + */ + function getFoldersMinMax() { /* {{{ */ + $db = $this->_dms->getDB(); + + $queryStr = "SELECT min(`sequence`) AS `min`, max(`sequence`) AS `max` FROM `tblFolders` WHERE `parent` = " . (int) $this->_id; + $resArr = $db->getResultArray($queryStr); + if (is_bool($resArr) && $resArr == false) + return false; + + return $resArr[0]; + } /* }}} */ + } ?> From 3e1dcc3c75572bf660116b7800c3a7d6fc975e8b Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Wed, 22 Sep 2021 09:53:53 +0200 Subject: [PATCH 109/413] add new configuration noFolderFormFields --- inc/inc.ClassSettings.php | 6 ++++++ op/op.Settings.php | 1 + out/out.AddSubFolder.php | 3 ++- views/bootstrap/class.AddSubFolder.php | 25 ++++++++++++++++++++++++- views/bootstrap/class.Settings.php | 2 ++ 5 files changed, 35 insertions(+), 2 deletions(-) diff --git a/inc/inc.ClassSettings.php b/inc/inc.ClassSettings.php index 13cfc4c9e..14aad1537 100644 --- a/inc/inc.ClassSettings.php +++ b/inc/inc.ClassSettings.php @@ -86,6 +86,9 @@ class Settings { /* {{{ */ // list of form fields which are visible by default but can be explixitly // turn off (comment, keywords, categories, sequence, expiration, owner var $_noDocumentFormFields = array(); + // list of form fields which are visible by default but can be explixitly + // turn off (comment, keywords, categories, sequence, expiration, owner + var $_noFolderFormFields = array(); // Path to where SeedDMS is located var $_rootDir = null; // Path to SeedDMS_Core @@ -499,6 +502,8 @@ class Settings { /* {{{ */ $this->_inlineEditing = Settings::boolVal($tab["inlineEditing"]); if(trim(strval($tab["noDocumentFormFields"]))) $this->_noDocumentFormFields = explode(',',strval($tab["noDocumentFormFields"])); + if(trim(strval($tab["noFolderFormFields"]))) + $this->_noFolderFormFields = explode(',',strval($tab["noFolderFormFields"])); $this->setViewOnlineFileTypesFromString(strval($tab["viewOnlineFileTypes"])); $this->setEditOnlineFileTypesFromString(strval($tab["editOnlineFileTypes"])); $this->_enableConverting = Settings::boolVal($tab["enableConverting"]); @@ -877,6 +882,7 @@ class Settings { /* {{{ */ $this->setXMLAttributValue($node, "strictFormCheck", $this->_strictFormCheck); $this->setXMLAttributValue($node, "inlineEditing", $this->_inlineEditing); $this->setXMLAttributValue($node, "noDocumentFormFields", implode(',', $this->_noDocumentFormFields)); + $this->setXMLAttributValue($node, "noFolderFormFields", implode(',', $this->_noFolderFormFields)); $this->setXMLAttributValue($node, "viewOnlineFileTypes", $this->getViewOnlineFileTypesToString()); $this->setXMLAttributValue($node, "editOnlineFileTypes", $this->getEditOnlineFileTypesToString()); $this->setXMLAttributValue($node, "enableConverting", $this->_enableConverting); diff --git a/op/op.Settings.php b/op/op.Settings.php index bc74e8a89..4866f3ac0 100644 --- a/op/op.Settings.php +++ b/op/op.Settings.php @@ -120,6 +120,7 @@ if ($action == "saveSettings") setBoolValue('strictFormCheck'); setBoolValue('inlineEditing'); setArrayValue('noDocumentFormFields'); + setArrayValue('noFolderFormFields'); if(isset($_POST['viewOnlineFileTypes']) && !in_array('viewOnlineFileTypes', $settings->_hiddenConfFields)) $settings->setViewOnlineFileTypesFromString($_POST["viewOnlineFileTypes"]); if(isset($_POST['editOnlineFileTypes']) && !in_array('editOnlineFileTypes', $settings->_hiddenConfFields)) diff --git a/out/out.AddSubFolder.php b/out/out.AddSubFolder.php index ad27dada0..cca88ea16 100644 --- a/out/out.AddSubFolder.php +++ b/out/out.AddSubFolder.php @@ -50,7 +50,8 @@ $accessop = new SeedDMS_AccessOperation($dms, $folder, $user, $settings); if($view) { $view->setParam('folder', $folder); $view->setParam('strictformcheck', $settings->_strictFormCheck); - $view->setParam('defaultposition', $settings->_defaultDocPosition); + $view->setParam('nofolderformfields', $settings->_noFolderFormFields); + $view->setParam('defaultposition', $settings->_defaultFolderPosition); $view->setParam('orderby', $settings->_sortFoldersDefault); $view->setParam('accessobject', $accessop); $view($_GET); diff --git a/views/bootstrap/class.AddSubFolder.php b/views/bootstrap/class.AddSubFolder.php index f5d041cb0..1cf7a286c 100644 --- a/views/bootstrap/class.AddSubFolder.php +++ b/views/bootstrap/class.AddSubFolder.php @@ -52,6 +52,7 @@ $(document).ready( function() { $user = $this->params['user']; $folder = $this->params['folder']; $strictformcheck = $this->params['strictformcheck']; + $nofolderformfields = $this->params['nofolderformfields']; $orderby = $this->params['orderby']; $this->htmlAddHeader(''."\n", 'js'); @@ -85,6 +86,7 @@ $(document).ready( function() { 'required'=>true ) ); + if(!$nofolderformfields || !in_array('comment', $nofolderformfields)) $this->formField( getMLText("comment"), array( @@ -95,7 +97,25 @@ $(document).ready( function() { 'required'=>$strictformcheck ) ); - $this->formField(getMLText("sequence"), $this->getSequenceChooser($folder->getSubFolders('s')).($orderby != 's' ? "
".getMLText('order_by_sequence_off') : '')); + if(!$nofolderformfields || !in_array('sequence', $nofolderformfields)) { + $this->formField(getMLText("sequence"), $this->getSequenceChooser($folder->getSubFolders('s')).($orderby != 's' ? "
".getMLText('order_by_sequence_off') : '')); + } else { + $minmax = $folder->getFoldersMinMax(); + if($this->params['defaultposition'] == 'start') { + $seq = $minmax['min'] - 1; + } else { + $seq = $minmax['max'] + 1; + } + $this->formField( + null, + array( + 'element'=>'input', + 'type'=>'hidden', + 'name'=>'sequence', + 'value'=>(string) $seq, + ) + ); + } $attrdefs = $dms->getAllAttributeDefinitions(array(SeedDMS_Core_AttributeDefinition::objtype_folder, SeedDMS_Core_AttributeDefinition::objtype_all)); if($attrdefs) { @@ -130,6 +150,9 @@ $(document).ready( function() { } $this->contentContainerEnd(); + + /* FIXME: add section for adding notifications like in AddDocument */ + $this->formSubmit(" ".getMLText('add_subfolder')); ?> diff --git a/views/bootstrap/class.Settings.php b/views/bootstrap/class.Settings.php index 6c5fb7429..9abfea810 100644 --- a/views/bootstrap/class.Settings.php +++ b/views/bootstrap/class.Settings.php @@ -322,6 +322,7 @@ $this->showStartPaneContent('site', (!$currenttab || $currenttab == 'site')); showConfigCheckbox('settings_strictFormCheck', 'strictFormCheck'); ?> showConfigCheckbox('settings_inlineEditing', 'inlineEditing'); ?> showConfigOption('settings_noDocumentFormFields', 'noDocumentFormFields', array('comment', 'keywords', 'categories', 'sequence', 'expires', 'version', 'version_comment', 'notification'), true, true); ?> +showConfigOption('settings_noFolderFormFields', 'noFolderFormFields', array('comment', 'sequence', 'notification'), true, true); ?> showConfigText('settings_viewOnlineFileTypes', 'viewOnlineFileTypes', 'array'); ?> showConfigText('settings_editOnlineFileTypes', 'editOnlineFileTypes', 'array'); ?> showConfigCheckbox('settings_enableConverting', 'enableConverting'); ?> @@ -357,6 +358,7 @@ if(($kkk = $this->callHook('getFullSearchEngine')) && is_array($kkk)) showConfigOption('settings_sortUsersInList', 'sortUsersInList', array(' '=>'settings_sortUsersInList_val_login', 'fullname'=>'settings_sortUsersInList_val_fullname'), false, true); ?> showConfigOption('settings_sortFoldersDefault', 'sortFoldersDefault', array('u'=>'settings_sortFoldersDefault_val_unsorted', 's'=>'settings_sortFoldersDefault_val_sequence', 'n'=>'settings_sortFoldersDefault_val_name'), false, true); ?> showConfigOption('settings_defaultDocPosition', 'defaultDocPosition', array('end'=>'settings_defaultDocPosition_val_end', 'start'=>'settings_defaultDocPosition_val_start'), false, true); ?> +showConfigOption('settings_defaultFolderPosition', 'defaultFolderPosition', array('end'=>'settings_defaultDocPosition_val_end', 'start'=>'settings_defaultDocPosition_val_start'), false, true); ?> - - + + + + + + + + + + + From 590fc0c957f5d457622b6169c04baf5abf15c397 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 27 Sep 2021 15:56:33 +0200 Subject: [PATCH 147/413] turn off example extension --- ext/example/conf.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ext/example/conf.php b/ext/example/conf.php index 33abc377d..4229d29c7 100644 --- a/ext/example/conf.php +++ b/ext/example/conf.php @@ -2,7 +2,7 @@ $EXT_CONF['example'] = array( 'title' => 'Example Extension', 'description' => 'This sample extension demonstrate the use of various hooks', - 'disable' => false, + 'disable' => true, 'version' => '1.0.1', 'releasedate' => '2018-03-21', 'author' => array('name'=>'Uwe Steinmann', 'email'=>'uwe@steinmann.cx', 'company'=>'MMK GmbH'), From cf30ad5ddd8361f22bdb63000e2095e47e72a748 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 27 Sep 2021 15:56:50 +0200 Subject: [PATCH 148/413] initialize path if not explicitly set in settings.xml --- inc/inc.Settings.php | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/inc/inc.Settings.php b/inc/inc.Settings.php index 659653cd0..c8fd9c0d4 100644 --- a/inc/inc.Settings.php +++ b/inc/inc.Settings.php @@ -35,6 +35,31 @@ if(!trim($settings->_encryptionKey)) { $settings->save(); } +/* Set some directories if not set in the configuration file */ +$__basedir = dirname(dirname(__DIR__)); +$__datadir = dirname(dirname(__DIR__))."/data";; +if(empty($settings->_rootDir)) { + $settings->_rootDir = $__basedir."/www/"; +} +if(empty($settings->_contentDir)) { + $settings->_contentDir = $__basedir; +} +if(empty($settings->_cacheDir)) { + $settings->_cacheDir = $__datadir."/cache/"; +} +if(empty($settings->_backupDir)) { + $settings->_backupDir = $__datadir."/backup/"; +} +if(empty($settings->_luceneDir)) { + $settings->_luceneDir = $__datadir."/lucene/"; +} +if(empty($settings->_stagingDir)) { + $settings->_stagingDir = $__datadir."/lucene/"; +} +if($settings->_dbDriver == 'sqlite' && empty($settings->_dbDatabase)) { + $settings->_dbDatabase = $__datadir."/content.db"; +} + ini_set('include_path', $settings->_rootDir.'pear'. PATH_SEPARATOR .ini_get('include_path')); if(!empty($settings->_extraPath)) { ini_set('include_path', $settings->_extraPath. PATH_SEPARATOR .ini_get('include_path')); From 5f5d2549efc53816ab94b77110664ed9d8bfe0df Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 27 Sep 2021 16:03:36 +0200 Subject: [PATCH 149/413] turn off example extension --- conf/settings.xml.template | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/conf/settings.xml.template b/conf/settings.xml.template index 075192b8a..6d8a7dd2c 100644 --- a/conf/settings.xml.template +++ b/conf/settings.xml.template @@ -96,7 +96,7 @@ --> a2ps -1 -a1 -R -B -o - '%f' | gs -dBATCH -dNOPAUSE -sDEVICE=pngalpha -dFirstPage=1 -dLastPage=1 -dPDFFitPage -r72x72 -sOutputFile=- -q - | convert -resize %wx png:- '%o' - + + + 1 + + From 84f3e3ef96b7715200e03caa21359c9e624b7337 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 27 Sep 2021 16:08:32 +0200 Subject: [PATCH 150/413] add changes for 5.1.24 --- CHANGELOG | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG b/CHANGELOG index ed43b14bc..e16c71140 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -7,6 +7,8 @@ - more settings to disable import and download of extensions - add new configuration for excluding sequence and comment when creating a folder +- get zendframework from pkgist +- auto generate path if not set in settings.xml -------------------------------------------------------------------------------- Changes in version 5.1.23 From 2b14bb5748e17ae3e6422f42a302c70a2c69d883 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 28 Sep 2021 10:31:30 +0200 Subject: [PATCH 151/413] move stopwords.txt away --- conf/{stopwords.txt => stopwords.txt.template} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename conf/{stopwords.txt => stopwords.txt.template} (100%) diff --git a/conf/stopwords.txt b/conf/stopwords.txt.template similarity index 100% rename from conf/stopwords.txt rename to conf/stopwords.txt.template From f6d9b1892e00d155851db7a69f961b73ec5dce18 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 28 Sep 2021 11:12:45 +0200 Subject: [PATCH 152/413] add some more documentation --- conf/settings.xml.template | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/conf/settings.xml.template b/conf/settings.xml.template index 6d8a7dd2c..23df244da 100644 --- a/conf/settings.xml.template +++ b/conf/settings.xml.template @@ -22,7 +22,7 @@ Date: Tue, 26 Oct 2021 10:16:27 +0200 Subject: [PATCH 235/413] fix cols of formField 'textarea' --- views/bootstrap/class.Bootstrap.php | 2 +- views/bootstrap4/class.Bootstrap4.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/views/bootstrap/class.Bootstrap.php b/views/bootstrap/class.Bootstrap.php index d6903c16a..81efcbe50 100644 --- a/views/bootstrap/class.Bootstrap.php +++ b/views/bootstrap/class.Bootstrap.php @@ -1122,7 +1122,7 @@ background-image: linear-gradient(to bottom, #882222, #111111);; (!empty($value['name']) ? ' name="'.$value['name'].'"' : ''). (!empty($value['class']) ? ' class="'.$value['class'].'"' : ''). (!empty($value['rows']) ? ' rows="'.$value['rows'].'"' : ''). - (!empty($value['cols']) ? ' rows="'.$value['cols'].'"' : ''). + (!empty($value['cols']) ? ' cols="'.$value['cols'].'"' : ''). (!empty($value['required']) ? ' required="required"' : '').">".(!empty($value['value']) ? $value['value'] : '').""; break; case 'plain': diff --git a/views/bootstrap4/class.Bootstrap4.php b/views/bootstrap4/class.Bootstrap4.php index e88c121a2..295e78d48 100644 --- a/views/bootstrap4/class.Bootstrap4.php +++ b/views/bootstrap4/class.Bootstrap4.php @@ -1099,7 +1099,7 @@ background-image: linear-gradient(to bottom, #882222, #111111);; (!empty($value['name']) ? ' name="'.$value['name'].'"' : ''). (empty($value['class']) ? ' class="form-control"' : ' class="form-control '.$value['class'].'"'). (!empty($value['rows']) ? ' rows="'.$value['rows'].'"' : ''). - (!empty($value['cols']) ? ' rows="'.$value['cols'].'"' : ''). + (!empty($value['cols']) ? ' cols="'.$value['cols'].'"' : ''). (!empty($value['required']) ? ' required="required"' : '').">".(!empty($value['value']) ? $value['value'] : '').""; break; case 'plain': From ffb29d7066268483923fc0875c6e6fe12e2c12a1 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 29 Oct 2021 19:26:06 +0200 Subject: [PATCH 236/413] install spectrum --- Gruntfile.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Gruntfile.js b/Gruntfile.js index 1ad6013f0..493798a7a 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -181,6 +181,14 @@ module.exports = function (grunt) { ], dest: bootstrapDir + '/bootstrap', flatten: true + },{ + expand: true, + src: [ + nodeDir + '/spectrum-colorpicker2/dist/spectrum.min.js', + nodeDir + '/spectrum-colorpicker2/dist/spectrum.min.css' + ], + dest: bootstrapDir + '/spectrum-colorpicker2', + flatten: true },{ expand: true, src: [ From 29bf7cd062c5c676c685f3219f8a6c5b68cccd2c Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 29 Oct 2021 19:26:28 +0200 Subject: [PATCH 237/413] add spectrum-colorpicker2, new version of flot --- package.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 8ea4d5328..2d17b2337 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,8 @@ "cytoscape": "^3.16.2", "cytoscape-grid-guide": "^2.3.2", "fine-uploader": "^5.16.2", - "flot": "^4.2.1", + "flag-icon-css": "^3.5.0", + "flot": "^4.2.2", "font-awesome": "^4.7.0", "fullcalendar": "^3.*", "grunt": "^1.3.0", @@ -31,6 +32,7 @@ "perfect-scrollbar": "^1.5.0", "popper.js": "^1.16.1", "select2": "^4.0.13", + "spectrum-colorpicker2": "^2.0.8", "vis-timeline": "^7.4.7" } } From 4abdb104f094a11116224040b0bce6a005a9436f Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 29 Oct 2021 19:55:01 +0200 Subject: [PATCH 238/413] iterate over all service until a working one is found --- inc/inc.ClassConversionMgr.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/inc/inc.ClassConversionMgr.php b/inc/inc.ClassConversionMgr.php index 04968b666..4e86411a2 100644 --- a/inc/inc.ClassConversionMgr.php +++ b/inc/inc.ClassConversionMgr.php @@ -62,8 +62,13 @@ class SeedDMS_ConversionMgr { */ public function convert($file, $from, $to, $target=null, $params=array()) { if(isset($this->services[$from][$to])) { - $service = end($this->services[$from][$to]); - return $service->convert($file, $target, $params); + $services = $this->services[$from][$to]; + for(end($services); key($services)!==null; prev($services)) { + $service = current($services); + $text = $service->convert($file, $target, $params); + if($text !== false) + return $text; + } } } } From de003de613a9fbb6e2737b11b0d91903ff95c0da Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 4 Nov 2021 17:04:47 +0100 Subject: [PATCH 239/413] fix indenting of lines --- SeedDMS_Core/Core/inc.DBAccessPDO.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SeedDMS_Core/Core/inc.DBAccessPDO.php b/SeedDMS_Core/Core/inc.DBAccessPDO.php index 6ef505e59..02e1ccdcb 100644 --- a/SeedDMS_Core/Core/inc.DBAccessPDO.php +++ b/SeedDMS_Core/Core/inc.DBAccessPDO.php @@ -520,13 +520,13 @@ class SeedDMS_Core_DatabaseAccess { "GROUP BY `tblDocumentReviewLog`.`reviewID` "; //. // "ORDER BY `maxLogID`"; } - if (!$this->_ttreviewid) { + if (!$this->_ttreviewid) { if (!$this->getResult($queryStr)) return false; $this->_ttreviewid=true; } else { - if (is_bool($override) && $override) { + if (is_bool($override) && $override) { if (!$this->getResult("DROP TABLE IF EXISTS `ttreviewid`")) return false; if (!$this->getResult($queryStr)) From b6ed28b4ec8ba3e193624a211fcdda67a6bfe36d Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 4 Nov 2021 17:06:47 +0100 Subject: [PATCH 240/413] extension mgr can now cache check result --- inc/inc.ClassExtensionMgr.php | 112 +++++++++++++++++++--------------- inc/inc.ClassUI.php | 4 +- inc/inc.Extension.php | 43 ++++++------- 3 files changed, 88 insertions(+), 71 deletions(-) diff --git a/inc/inc.ClassExtensionMgr.php b/inc/inc.ClassExtensionMgr.php index d098ad4d3..dac9c8a9a 100644 --- a/inc/inc.ClassExtensionMgr.php +++ b/inc/inc.ClassExtensionMgr.php @@ -51,6 +51,12 @@ class SeedDMS_Extension_Mgr { */ protected $cachedir; + /** + * @var array $configcache cached result of checkExtensionByName() + * @access protected + */ + protected $configcache; + /** * @var string[] $errmsg list of error message from last operation * @access protected @@ -104,6 +110,7 @@ class SeedDMS_Extension_Mgr { * is given */ public function __construct($extdir = '', $cachedir = '', $reposurl = '', $proxyurl='', $proxyuser='', $proxypass='') { /* {{{ */ + $this->configcache = []; $this->cachedir = $cachedir; $this->extdir = $extdir; $this->reposurl = $reposurl; @@ -321,48 +328,66 @@ class SeedDMS_Extension_Mgr { return $ret; } /* }}} */ + public function checkExtensionByDir($dir, $options = array()) { /* {{{ */ + $this->errmsgs = array(); + + if(!file_exists($dir)) { + if(!file_exists($this->extdir.'/'.$dir)) + return false; + else + $dir = $this->extdir.'/'.$dir; + } + if(!file_exists($dir."/conf.php")) { + $this->errmsgs[] = "Missing extension configuration"; + return false; + } + include($dir."/conf.php"); + if(!isset($EXT_CONF)) { + $this->errmsgs[] = "Missing \$EXT_CONF in configuration"; + return false; + } + $extname = key($EXT_CONF); + if(!$extname || !preg_match('/[a-zA-Z_]*/', $extname)) { + $this->errmsgs[] = "Extension has invalid or no name"; + return false; + } + + $extconf = $EXT_CONF[$extname]; + + if(!empty($extconf['language']['file']) && !file_exists($dir."/".$extconf['language']['file'])) { + $this->errmsgs[] = "Missing language file"; + } + if(!empty($extconf['class']['file']) && !file_exists($dir."/".$extconf['class']['file'])) { + $this->errmsgs[] = "Missing class file"; + } + if(!empty($extconf['icon']) && !file_exists($dir."/".$extconf['icon'])) { + $this->errmsgs[] = "Missing icon file"; + } + + if($this->errmsgs) + return false; + + return self::checkExtensionByName($extname, $extconf, $options); + } + /** * Check content of extension directory or configuration of extension * * @param string|array $dir full path to extension directory or extension name * or an array containing the configuration. - * @param boolean $noconstraints set to true if constraints to local seeddms - * installation shall not be checked. + * @param array $options array with options elements 'noconstraints' and 'nofiles'. + * Set 'noconstraints' to true if + * constraints to local seeddms installation shall not be checked. Set 'nofiles' + * to true to turn off checking of files + * @return boolean true if check was successful, otherwise false */ - public function checkExtension($dir, $options=array()) { /* {{{ */ - $this->errmsgs = array(); - - if(is_string($dir)) { - if(!file_exists($dir)) { - if(!file_exists($this->extdir.'/'.$dir)) - return false; - else - $dir = $this->extdir.'/'.$dir; - } - if(!file_exists($dir."/conf.php")) { - $this->errmsgs[] = "Missing extension configuration"; - return false; - } - include($dir."/conf.php"); - if(!isset($EXT_CONF)) { - $this->errmsgs[] = "Missing \$EXT_CONF in configuration"; - return false; - } - $extname = key($EXT_CONF); - if(!$extname || !preg_match('/[a-zA-Z_]*/', $extname)) { - $this->errmsgs[] = "Extension has invalid or no name"; - return false; - } - - $extconf = $EXT_CONF[$extname]; - } elseif(is_array($dir)) { - $extconf = $dir; - /* If just the configuration is passed, then there is no way to check - * for existence of files. - */ - $options['nofiles'] = true; + public function checkExtensionByName($extname, $extconf, $options=array()) { /* {{{ */ + if(isset($this->configcache[$extname])) { + return $this->configcache[$extname]; } + $this->errmsgs = array(); + if(!isset($extconf['constraints']['depends']['seeddms'])) { $this->errmsgs[] = "Missing dependency on SeedDMS"; } @@ -378,17 +403,6 @@ class SeedDMS_Extension_Mgr { if(!isset($extconf['author'])) { $this->errmsgs[] = "Missing author"; } - if(!isset($options['nofiles']) || $options['nofiles'] == false) { - if(!empty($extconf['language']['file']) && !file_exists($dir."/".$extconf['language']['file'])) { - $this->errmsgs[] = "Missing language file"; - } - if(!empty($extconf['class']['file']) && !file_exists($dir."/".$extconf['class']['file'])) { - $this->errmsgs[] = "Missing class file"; - } - if(!empty($extconf['icon']) && !file_exists($dir."/".$extconf['icon'])) { - $this->errmsgs[] = "Missing icon file"; - } - } if(!isset($options['noconstraints']) || $options['noconstraints'] == false) { if(isset($extconf['constraints']['depends'])) { @@ -442,9 +456,11 @@ class SeedDMS_Extension_Mgr { } if($this->errmsgs) - return false; + $this->configcache[$extname] = false; + else + $this->configcache[$extname] = true; - return true; + return $this->configcache[$extname]; } /* }}} */ static protected function rrmdir($dir) { /* {{{ */ @@ -494,7 +510,7 @@ class SeedDMS_Extension_Mgr { // exec($cmd); /* Check if extension is complete and fullfills the constraints */ - if(!self::checkExtension($newdir)) { + if(!self::checkExtensionByDir($newdir)) { self::rrmdir($newdir); return false; } diff --git a/inc/inc.ClassUI.php b/inc/inc.ClassUI.php index 6402b965f..6243f55ad 100644 --- a/inc/inc.ClassUI.php +++ b/inc/inc.ClassUI.php @@ -56,7 +56,7 @@ class UI extends UI_Default { $decorators = array(); foreach($extMgr->getExtensionConfiguration() as $extname=>$extconf) { if(!$settings->extensionIsDisabled($extname)) { - if($extMgr->checkExtension($extconf)) { + if($extMgr->checkExtensionByName($extname, $extconf)) { if(isset($extconf['decorators'][$class])) { $filename = $settings->_rootDir.'ext/'.$extname.'/decorators/'.$theme."/".$extconf['decorators'][$class]['file']; if(file_exists($filename)) { @@ -73,7 +73,7 @@ class UI extends UI_Default { $httpbasedir = ''; foreach($extMgr->getExtensionConfiguration() as $extname=>$extconf) { if(!$settings->extensionIsDisabled($extname)) { - if($extMgr->checkExtension($extconf)) { + if($extMgr->checkExtensionByName($extname, $extconf)) { /* Setting the 'views' element in the configuration can be used to * replace an existing view in views/bootstrap/, e.g. class.ViewFolder.php * without providing an out/out.ViewFolder.php. In that case $httpbasedir diff --git a/inc/inc.Extension.php b/inc/inc.Extension.php index b24ba1396..96489794d 100644 --- a/inc/inc.Extension.php +++ b/inc/inc.Extension.php @@ -25,9 +25,10 @@ $version = new SeedDMS_Version; foreach($extMgr->getExtensionConfiguration() as $extname=>$extconf) { if(!$settings->extensionIsDisabled($extname)) { $disabled = true; - if($extMgr->checkExtension($extconf)) { + if($extMgr->checkExtensionByName($extname, $extconf)) { $disabled = false; } else { + $settings->disableExtension($extname); // echo $extMgr->getErrorMsg(); } /* check for requirements */ @@ -41,30 +42,30 @@ foreach($extMgr->getExtensionConfiguration() as $extname=>$extconf) { } */ if(!$disabled) { - if(isset($extconf['class']) && isset($extconf['class']['file']) && isset($extconf['class']['name'])) { - $classfile = $settings->_rootDir."/ext/".$extname."/".$extconf['class']['file']; - if(file_exists($classfile)) { - include($classfile); - $obj = new $extconf['class']['name']($settings, null, $logger); - if(method_exists($obj, 'init')) - $obj->init(); + if(isset($extconf['class']) && isset($extconf['class']['file']) && isset($extconf['class']['name'])) { + $classfile = $settings->_rootDir."/ext/".$extname."/".$extconf['class']['file']; + if(file_exists($classfile)) { + include($classfile); + $obj = new $extconf['class']['name']($settings, null, $logger); + if(method_exists($obj, 'init')) + $obj->init(); + } } - } - if(isset($extconf['language']['file'])) { - $langfile = $settings->_rootDir."/ext/".$extname."/".$extconf['language']['file']; - if(file_exists($langfile)) { - unset($__lang); - include($langfile); - if(isset($__lang) && $__lang) { - foreach($__lang as $lang=>&$data) { - if(isset($GLOBALS['LANG'][$lang])) - $GLOBALS['LANG'][$lang] = array_merge($GLOBALS['LANG'][$lang], $data); - else - $GLOBALS['LANG'][$lang] = $data; + if(isset($extconf['language']['file'])) { + $langfile = $settings->_rootDir."/ext/".$extname."/".$extconf['language']['file']; + if(file_exists($langfile)) { + unset($__lang); + include($langfile); + if(isset($__lang) && $__lang) { + foreach($__lang as $lang=>&$data) { + if(isset($GLOBALS['LANG'][$lang])) + $GLOBALS['LANG'][$lang] = array_merge($GLOBALS['LANG'][$lang], $data); + else + $GLOBALS['LANG'][$lang] = $data; + } } } } } - } } } From 334639cbb5e31c058bb179eb5eabcfde28eef750 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 4 Nov 2021 17:43:58 +0100 Subject: [PATCH 241/413] fix checking of extensions --- views/bootstrap/class.ExtensionMgr.php | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/views/bootstrap/class.ExtensionMgr.php b/views/bootstrap/class.ExtensionMgr.php index 4d296562c..601b6b07f 100644 --- a/views/bootstrap/class.ExtensionMgr.php +++ b/views/bootstrap/class.ExtensionMgr.php @@ -196,15 +196,14 @@ class SeedDMS_View_ExtensionMgr extends SeedDMS_Theme_Style { $errmsgs = array(); if(!$settings->extensionIsDisabled($extname)) { // if(!isset($extconf['disable']) || $extconf['disable'] == false) { - $extmgr->checkExtension($extname); - $errmsgs = $extmgr->getErrorMsgs(); - if($errmsgs) + if(!$extmgr->checkExtensionByDir($extname)) echo ""; else echo ""; } else { echo ""; } + $errmsgs = $extmgr->getErrorMsgs(); echo ""; if($extconf['icon']) echo "\"".$extname."\""; @@ -309,10 +308,10 @@ class SeedDMS_View_ExtensionMgr extends SeedDMS_Theme_Style { print "\n"; print "\n"; $list = $extmgr->getExtensionList(); - foreach($list as $re) { + foreach($list as $en=>$re) { if(!$re) continue; - $extmgr->checkExtension($re); + $extmgr->checkExtensionByName($en, $re); $checkmsgs = $extmgr->getErrorMsgs(); $needsupdate = !isset($extconf[$re['name']]) || SeedDMS_Extension_Mgr::cmpVersion($re['version'], $extconf[$re['name']]['version']) > 0; echo " Date: Mon, 8 Nov 2021 09:01:15 +0100 Subject: [PATCH 242/413] replace rename() by exec('mv ..') --- inc/inc.ClassExtensionMgr.php | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/inc/inc.ClassExtensionMgr.php b/inc/inc.ClassExtensionMgr.php index dac9c8a9a..b70f0fe3b 100644 --- a/inc/inc.ClassExtensionMgr.php +++ b/inc/inc.ClassExtensionMgr.php @@ -488,7 +488,7 @@ class SeedDMS_Extension_Mgr { */ public function updateExtension($file) { /* {{{ */ /* unzip the extension in a temporary directory */ - $newdir = $this->cachedir ."/ext.new"; + $newdir = addDirSep($this->cachedir)."ext.new"; /* First remove a left over from a previous extension */ if(file_exists($newdir)) { self::rrmdir($newdir); @@ -529,7 +529,21 @@ class SeedDMS_Extension_Mgr { $this->rrmdir($this->extdir ."/". $extname); } /* Move the temp. created ext directory to the final location */ - if(!rename($newdir, $this->extdir ."/". $extname)) { + /* rename() may fail if dirs are moved from one device to another. + * See https://bugs.php.net/bug.php?id=54097 + * + * exec("mv ".escapeshellarg($newdir)." ".escapeshellarg($this->extdir ."/". $extname)); + * + * It's also sufficient to just copy the extracted archive to the final + * location and leave the extracted archive in place. The next time an + * extension is imported the last extracted archive will be removed. + */ +// if(!rename($newdir, $this->extdir ."/". $extname)) { + if(false === exec('mv '.escapeshellarg($newdir).' '.escapeshellarg($this->extdir."/".$extname))) { + /* If copy didn't succeed, then there is probably nothing to delete, + * but do it anyway, just to be sure not just parts of the extension + * has been copied. + */ $this->rrmdir($this->extdir ."/". $extname); return false; } From 99cc8b5b5df9d128ddb17c4e2b46498d2abfa7c6 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 8 Nov 2021 09:01:37 +0100 Subject: [PATCH 243/413] return error msg of extension mgr --- op/op.ExtensionMgr.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/op/op.ExtensionMgr.php b/op/op.ExtensionMgr.php index dabffb307..0ffd211b5 100644 --- a/op/op.ExtensionMgr.php +++ b/op/op.ExtensionMgr.php @@ -68,7 +68,7 @@ elseif ($action == "refresh") { /* {{{ */ $extMgr->createExtensionConf(); $controller->setParam('extmgr', $extMgr); if (!$controller($_POST)) { - UI::exitError(getMLText("admin_tools"),getMLText("error_occured")); + UI::exitError(getMLText("admin_tools"),$extMgr->getErrorMsg()); } $session->setSplashMsg(array('type'=>'success', 'msg'=>getMLText('splash_extension_refresh'))); add_log_line(); From a0566372f7f76796e23c0e1e2d44f1f0ed5ebe0e Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 8 Nov 2021 12:25:06 +0100 Subject: [PATCH 244/413] add sorting by id in search(), set default to unsorted --- SeedDMS_Core/Core/inc.ClassDMS.php | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/SeedDMS_Core/Core/inc.ClassDMS.php b/SeedDMS_Core/Core/inc.ClassDMS.php index 96ae4b0c7..516ca8ddd 100644 --- a/SeedDMS_Core/Core/inc.ClassDMS.php +++ b/SeedDMS_Core/Core/inc.ClassDMS.php @@ -1628,10 +1628,17 @@ class SeedDMS_Core_DMS { $searchQuery .= " ORDER BY `tblFolders`.`name` DESC"; break; case 'na': - default: $searchQuery .= " ORDER BY `tblFolders`.`name`"; break; - } + case 'id': + $searchQuery .= " ORDER BY `tblFolders`.`id` DESC"; + break; + case 'ia': + $searchQuery .= " ORDER BY `tblFolders`.`id`"; + break; + default: + break; + } if($limit) { $searchQuery .= " LIMIT ".$limit." OFFSET ".$offset; @@ -1925,9 +1932,17 @@ class SeedDMS_Core_DMS { $orderbyQuery = " ORDER BY `tblDocuments`.`name` DESC"; break; case 'na': - default: $orderbyQuery = " ORDER BY `tblDocuments`.`name`"; break; + case 'id': + $orderbyQuery = " ORDER BY `tblDocuments`.`id` DESC"; + break; + case 'ia': + $orderbyQuery = " ORDER BY `tblDocuments`.`id`"; + break; + default: + $orderbyQuery = ""; + break; } // calculate the remaining entrÑ—es of the current page From 3d3bee169f91cee79c79e16e3cd8c043ad5e64e3 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 8 Nov 2021 12:25:34 +0100 Subject: [PATCH 245/413] add selection of sort field to form --- views/bootstrap/class.Search.php | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/views/bootstrap/class.Search.php b/views/bootstrap/class.Search.php index ff3b56edc..7cfbd4767 100644 --- a/views/bootstrap/class.Search.php +++ b/views/bootstrap/class.Search.php @@ -234,6 +234,24 @@ function typeahead() { /* {{{ */ ) ); $options = array(); + $options[] = array('', getMLText('orderby_unsorted')); + $options[] = array('dd', getMLText('orderby_date_desc'), 'dd'==$orderby); + $options[] = array('d', getMLText('orderby_date_asc'), 'd'==$orderby); + $options[] = array('nd', getMLText('orderby_name_desc'), 'nd'==$orderby); + $options[] = array('n', getMLText('orderby_name_asc'), 'n'==$orderby); + $options[] = array('id', getMLText('orderby_id_desc'), 'id'==$orderby); + $options[] = array('i', getMLText('orderby_id_asc'), 'i'==$orderby); + $this->formField( + getMLText("orderby"), + array( + 'element'=>'select', + 'name'=>'orderby', + 'class'=>'chzn-select', + 'multiple'=>false, + 'options'=>$options + ) + ); + $options = array(); foreach ($allUsers as $currUser) { if($user->isAdmin() || (!$currUser->isGuest() && (!$currUser->isHidden() || $currUser->getID() == $user->getID()))) $options[] = array($currUser->getID(), htmlspecialchars($currUser->getLogin()), in_array($currUser->getID(), $owner), array(array('data-subtitle', htmlspecialchars($currUser->getFullName())))); @@ -552,14 +570,14 @@ foreach($facets as $facetname=>$values) { echo $txt; else { parse_str($_SERVER['QUERY_STRING'], $tmp); - $tmp['orderby'] = $orderby=="n"||$orderby=="na)"?"nd":"n"; + $tmp['orderby'] = ($orderby=="n"||$orderby=="na") ? "nd" : "n"; print ""; print "\n\n"; print "\n"; print "\n"; From 76dffe2497a82dee038e91e8babee809f9fd2c91 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 8 Nov 2021 12:26:13 +0100 Subject: [PATCH 246/413] use jquery validate --- views/bootstrap/class.TriggerWorkflow.php | 34 +++++++---------------- 1 file changed, 10 insertions(+), 24 deletions(-) diff --git a/views/bootstrap/class.TriggerWorkflow.php b/views/bootstrap/class.TriggerWorkflow.php index 2bf47f8b6..0cc18bd70 100644 --- a/views/bootstrap/class.TriggerWorkflow.php +++ b/views/bootstrap/class.TriggerWorkflow.php @@ -33,30 +33,13 @@ class SeedDMS_View_TriggerWorkflow extends SeedDMS_Theme_Style { function js() { /* {{{ */ header('Content-Type: application/javascript; charset=UTF-8'); + parent::jsTranslations(array('js_form_error', 'js_form_errors')); ?> -function checkForm() -{ - msg = new Array(); - if (document.form1.comment.value == "") msg.push(""); - if (msg != "") { - noty({ - text: msg.join('
'), - type: 'error', - dismissQueue: true, - layout: 'topRight', - theme: 'defaultTheme', - _timeout: 1500, - }); - return false; - } - else - return true; -} - $(document).ready(function() { - $('body').on('submit', '#form1', function(ev){ - if(checkForm()) return; - ev.preventDefault(); + $("#form1").validate({ + messages: { + comment: "" + }, }); }); params['accessobject']; $document = $this->params['document']; $transition = $this->params['transition']; - $latestContent = $document->getLatestContent(); + $this->htmlAddHeader(''."\n", 'js'); + $this->htmlAddHeader(''."\n", 'js'); + $this->htmlStartPage(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName())))); $this->globalNavigation($folder); $this->contentStart(); @@ -115,7 +100,8 @@ $(document).ready(function() { array( 'element'=>'textarea', 'name'=>'comment', - 'rows'=>4 + 'rows'=>4, + 'required'=>false ) ); $this->formSubmit(getMLText("action_".strtolower($action->getName()), array(), $action->getName())); From dc8cdb9db988bc36f37f2f058fe27639c4514f8d Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 8 Nov 2021 14:18:13 +0100 Subject: [PATCH 247/413] fix list of documents with workflow action by group --- views/bootstrap/class.WorkflowSummary.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/bootstrap/class.WorkflowSummary.php b/views/bootstrap/class.WorkflowSummary.php index 19b79c1d1..e4bf58631 100644 --- a/views/bootstrap/class.WorkflowSummary.php +++ b/views/bootstrap/class.WorkflowSummary.php @@ -124,7 +124,7 @@ class SeedDMS_View_WorkflowSummary extends SeedDMS_Theme_Style { echo $this->documentListRowStart($document, $class); echo $this->documentListRow($document, $previewer, true, $st['version']); - print "
"; + print ""; echo $this->documentListRowEnd($document); $iRev[] = $document->getId(); } From 2558450993dc2d2d62531e14f274317051bbcd27 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 9 Nov 2021 09:33:36 +0100 Subject: [PATCH 248/413] fix line indenting --- views/bootstrap/class.UpdateDocument.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/bootstrap/class.UpdateDocument.php b/views/bootstrap/class.UpdateDocument.php index 5d8cd9d67..d66730d44 100644 --- a/views/bootstrap/class.UpdateDocument.php +++ b/views/bootstrap/class.UpdateDocument.php @@ -234,7 +234,7 @@ console.log(element); if($arr = $this->callHook('addDocumentContentFile')) { foreach($arr as $ar) if(is_array($ar)) { - $this->formField($ar[0], $ar[1], isset($ar[2]) ? $ar[2] : null); + $this->formField($ar[0], $ar[1], isset($ar[2]) ? $ar[2] : null); } elseif(is_string($ar)) { echo $ar; } From a46549a7b29d5c6bdcf4762ac0b708e83c3f59fe Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 9 Nov 2021 09:33:54 +0100 Subject: [PATCH 249/413] propperly eval return of hook addDocumentContentFile --- views/bootstrap/class.AddDocument.php | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/views/bootstrap/class.AddDocument.php b/views/bootstrap/class.AddDocument.php index f432deccd..416025b99 100644 --- a/views/bootstrap/class.AddDocument.php +++ b/views/bootstrap/class.AddDocument.php @@ -398,11 +398,12 @@ console.log(params); ); } if($arr = $this->callHook('addDocumentContentFile')) { - if(is_array($arr)) { - $this->formField($arr[0], $arr[1], isset($arr[2]) ? $arr[2] : null); - } elseif(is_string($arr)) { - echo $arr; - } + foreach($arr as $ar) + if(is_array($ar)) { + $this->formField($ar[0], $ar[1], isset($ar[2]) ? $ar[2] : null); + } elseif(is_string($ar)) { + echo $ar; + } } if(!$nodocumentformfields || !in_array('version_comment', $nodocumentformfields)) { $this->formField( From e653817813ca2ecc7bdd7e6fbbda855481294699 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Wed, 10 Nov 2021 08:32:52 +0100 Subject: [PATCH 250/413] pass source details to controller --- op/op.AddDocument.php | 1 + 1 file changed, 1 insertion(+) diff --git a/op/op.AddDocument.php b/op/op.AddDocument.php index ff6e6f6ca..8ca4f63a5 100644 --- a/op/op.AddDocument.php +++ b/op/op.AddDocument.php @@ -367,6 +367,7 @@ foreach($file_ary as $file) { } $controller->setParam('documentsource', $file['source']); + $controller->setParam('documentsourcedetails', !empty($file['source_details']) ? $file['source_details'] : null); $controller->setParam('folder', $folder); $controller->setParam('fulltextservice', $fulltextservice); $controller->setParam('name', $name); From 96310c40c24e431d762edb1702f516cd82a71212 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Wed, 10 Nov 2021 08:33:10 +0100 Subject: [PATCH 251/413] pass source and source details to controller --- op/op.UpdateDocument.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/op/op.UpdateDocument.php b/op/op.UpdateDocument.php index 7800fa7b9..8d7f04dd7 100644 --- a/op/op.UpdateDocument.php +++ b/op/op.UpdateDocument.php @@ -285,6 +285,8 @@ default: $attributes = array(); } + $controller->setParam('documentsource', $file['source']); + $controller->setParam('documentsourcedetails', !empty($file['source_details']) ? $file['source_details'] : null); $controller->setParam('folder', $folder); $controller->setParam('document', $document); $controller->setParam('fulltextservice', $fulltextservice); From 5049169d092b07f42f5322832bc7d6cf1465132d Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Wed, 10 Nov 2021 08:33:52 +0100 Subject: [PATCH 252/413] show fulltext search tab if fulltext search was used --- out/out.Search.php | 5 +++-- views/bootstrap/class.Search.php | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/out/out.Search.php b/out/out.Search.php index 7b2becf9e..cd656708e 100644 --- a/out/out.Search.php +++ b/out/out.Search.php @@ -51,7 +51,8 @@ if (isset($_GET["navBar"])) { $accessop = new SeedDMS_AccessOperation($dms, null, $user, $settings); -if(((!isset($_GET["fullsearch"]) && $settings->_defaultSearchMethod == 'fulltext') || !empty($_GET["fullsearch"])) && $settings->_enableFullSearch) { +$fullsearch = ((!isset($_GET["fullsearch"]) && $settings->_defaultSearchMethod == 'fulltext') || !empty($_GET["fullsearch"])) && $settings->_enableFullSearch; +if($fullsearch) { // Search in Fulltext {{{ if (isset($_GET["query"]) && is_string($_GET["query"])) { $query = $_GET["query"]; @@ -535,7 +536,7 @@ if($settings->_showSingleSearchHit && count($entries) == 1) { $view->setParam('total', $total); $view->setParam('totaldocs', $dcount /*resArr['totalDocs']*/); $view->setParam('totalfolders', $fcount /*resArr['totalFolders']*/); - $view->setParam('fullsearch', (!empty($_GET["fullsearch"]) && $settings->_enableFullSearch) ? true : false); + $view->setParam('fullsearch', $fullsearch); $view->setParam('mode', isset($mode) ? $mode : ''); $view->setParam('orderby', isset($orderby) ? $orderby : ''); $view->setParam('defaultsearchmethod', !empty($_GET["fullsearch"]) || $settings->_defaultSearchMethod); diff --git a/views/bootstrap/class.Search.php b/views/bootstrap/class.Search.php index 7cfbd4767..77f9cff9f 100644 --- a/views/bootstrap/class.Search.php +++ b/views/bootstrap/class.Search.php @@ -173,9 +173,10 @@ function typeahead() { /* {{{ */ $this->rowStart(); $this->columnStart(4); - $this->contentHeading(" ".getMLText('search'), true); + //$this->contentHeading(" ".getMLText('search'), true); + $this->contentHeading(getMLText('search'), true); if($this->query) { - echo "
"; + echo "
"; } ?>
"; echo ""; @@ -277,6 +279,9 @@ class SeedDMS_View_ExtensionMgr extends SeedDMS_Theme_Style { else echo "
".getMLText('extension_mgr_upload_disabled')."
"; } + if(!is_writeable($settings->_configFilePath)) { + $this->warningMsg(getMLText("extension_mgr_no_toggle")); + } $this->columnEnd(); $this->columnStart(8); ?> From 2b9431ebb2cf8ab815cb1a91ada9733fa8806512 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 25 Feb 2022 08:06:17 +0100 Subject: [PATCH 352/413] some new phrases --- languages/ar_EG/lang.inc | 10 ++++++++++ languages/bg_BG/lang.inc | 10 ++++++++++ languages/ca_ES/lang.inc | 10 ++++++++++ languages/cs_CZ/lang.inc | 10 ++++++++++ languages/de_DE/lang.inc | 28 +++++++++++++++++++++++++++- languages/el_GR/lang.inc | 10 ++++++++++ languages/en_GB/lang.inc | 28 +++++++++++++++++++++++++++- languages/es_ES/lang.inc | 28 +++++++++++++++++++++++++--- languages/fr_FR/lang.inc | 36 +++++++++++++++++++++++------------- languages/hr_HR/lang.inc | 10 ++++++++++ languages/hu_HU/lang.inc | 10 ++++++++++ languages/it_IT/lang.inc | 10 ++++++++++ languages/ko_KR/lang.inc | 10 ++++++++++ languages/lo_LA/lang.inc | 10 ++++++++++ languages/nb_NO/lang.inc | 10 ++++++++++ languages/nl_NL/lang.inc | 14 ++++++++++++-- languages/pl_PL/lang.inc | 14 ++++++++++++-- languages/pt_BR/lang.inc | 10 ++++++++++ languages/ro_RO/lang.inc | 10 ++++++++++ languages/ru_RU/lang.inc | 10 ++++++++++ languages/sk_SK/lang.inc | 10 ++++++++++ languages/sv_SE/lang.inc | 10 ++++++++++ languages/tr_TR/lang.inc | 10 ++++++++++ languages/uk_UA/lang.inc | 10 ++++++++++ languages/zh_CN/lang.inc | 14 ++++++++++++-- languages/zh_TW/lang.inc | 10 ++++++++++ 26 files changed, 328 insertions(+), 24 deletions(-) diff --git a/languages/ar_EG/lang.inc b/languages/ar_EG/lang.inc index fc00e38c3..9d281fb89 100644 --- a/languages/ar_EG/lang.inc +++ b/languages/ar_EG/lang.inc @@ -602,6 +602,7 @@ URL: [url]', 'extension_manager' => 'إدارة Ø§Ù„Ø¥Ø¶Ø§ÙØ§Øª', 'extension_mgr_error_upload' => '', 'extension_mgr_installed' => 'تثبيت إدارة Ø§Ù„Ø¥Ø¶Ø§ÙØ§Øª', +'extension_mgr_no_toggle' => '', 'extension_mgr_no_upload' => 'لا يمكن تحميل Ø¥Ø¶Ø§ÙØ§Øª جديدة لأن دليل Ø§Ù„Ø¥Ø¶Ø§ÙØ§Øª غير قابل للكتابة.', 'extension_mgr_no_zipfile' => '', 'extension_mgr_repository' => 'مستودع إدارة Ø§Ù„Ø¥Ø¶Ø§ÙØ§Øª', @@ -1765,8 +1766,10 @@ URL: [url]', 'splash_added_to_clipboard' => 'تم النسخ ÙÙŠ Ø§Ù„Ø­Ø§ÙØ¸Ø©', 'splash_add_access' => 'دÙقة Ø¥Ø¶Ø§ÙØ© الوصول', 'splash_add_attribute' => 'Ø§Ø¶Ø§ÙØ© سمة', +'splash_add_category' => '', 'splash_add_group' => 'Ø§Ø¶Ø§ÙØ© مجموعة', 'splash_add_group_member' => 'Ø§Ø¶Ø§ÙØ© مستخدم الى المجموعة', +'splash_add_keyword' => '', 'splash_add_notify' => '', 'splash_add_role' => 'Ø§Ø¶Ø§ÙØ© دور', 'splash_add_task' => '', @@ -1787,8 +1790,10 @@ URL: [url]', 'splash_document_unlocked' => 'تم الغاء Ù‚ÙÙ„ المستند', 'splash_edit_access' => 'تحرير الدخول', 'splash_edit_attribute' => 'تحرير السمة', +'splash_edit_category' => '', 'splash_edit_event' => 'تحرير الحدث', 'splash_edit_group' => 'تحرير المجموعة', +'splash_edit_keyword' => '', 'splash_edit_role' => 'تحرير الدور', 'splash_edit_task' => 'تحرير المهمة', 'splash_edit_transmittal' => '', @@ -1819,11 +1824,13 @@ URL: [url]', 'splash_removed_from_clipboard' => 'ازيل من Ø§Ù„Ø­Ø§ÙØ¸Ø©', 'splash_rm_attribute' => 'إزالة السمة', 'splash_rm_attr_value' => 'إزالة سمة القيمة', +'splash_rm_category' => '', 'splash_rm_document' => 'تم حذ٠المستند', 'splash_rm_download_link' => 'تم حذ٠رابط التنزيل', 'splash_rm_folder' => 'تم حذ٠المجلد', 'splash_rm_group' => 'تم حذ٠المجموعة', 'splash_rm_group_member' => 'تم حذ٠مستخدم من المجموعة', +'splash_rm_keyword' => '', 'splash_rm_notify' => '', 'splash_rm_role' => 'تم حذ٠دور', 'splash_rm_transmittal' => 'تم حذ٠إحالة', @@ -2043,6 +2050,9 @@ URL: [url]', 'versioning_info' => 'معلومات الاصدار', 'versiontolow' => 'الإصدار Ø®Ùي٠الجودة', 'version_comment' => '', +'version_comment_changed_email_body' => '', +'version_comment_changed_email_body_html' => '', +'version_comment_changed_email_subject' => '', 'version_deleted_email' => 'تم مسح الاصدار', 'version_deleted_email_body' => 'تم مسح الاصدار Document: [name] diff --git a/languages/bg_BG/lang.inc b/languages/bg_BG/lang.inc index 63f355e17..d164abbe7 100644 --- a/languages/bg_BG/lang.inc +++ b/languages/bg_BG/lang.inc @@ -551,6 +551,7 @@ $text = array( 'extension_manager' => 'управление на добавките', 'extension_mgr_error_upload' => '', 'extension_mgr_installed' => '', +'extension_mgr_no_toggle' => '', 'extension_mgr_no_upload' => '', 'extension_mgr_no_zipfile' => '', 'extension_mgr_repository' => '', @@ -1628,8 +1629,10 @@ $text = array( 'splash_added_to_clipboard' => 'Добавено към клипборда', 'splash_add_access' => '', 'splash_add_attribute' => '', +'splash_add_category' => '', 'splash_add_group' => '', 'splash_add_group_member' => '', +'splash_add_keyword' => '', 'splash_add_notify' => '', 'splash_add_role' => '', 'splash_add_task' => '', @@ -1650,8 +1653,10 @@ $text = array( 'splash_document_unlocked' => 'Документа е отключен', 'splash_edit_access' => '', 'splash_edit_attribute' => '', +'splash_edit_category' => '', 'splash_edit_event' => '', 'splash_edit_group' => '', +'splash_edit_keyword' => '', 'splash_edit_role' => '', 'splash_edit_task' => '', 'splash_edit_transmittal' => '', @@ -1682,11 +1687,13 @@ $text = array( 'splash_removed_from_clipboard' => '', 'splash_rm_attribute' => '', 'splash_rm_attr_value' => '', +'splash_rm_category' => '', 'splash_rm_document' => 'Документът е премеÑтен', 'splash_rm_download_link' => '', 'splash_rm_folder' => 'Папката е изтрита', 'splash_rm_group' => '', 'splash_rm_group_member' => '', +'splash_rm_keyword' => '', 'splash_rm_notify' => '', 'splash_rm_role' => '', 'splash_rm_transmittal' => '', @@ -1897,6 +1904,9 @@ $text = array( 'versioning_info' => 'Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° верÑиите', 'versiontolow' => '', 'version_comment' => '', +'version_comment_changed_email_body' => '', +'version_comment_changed_email_body_html' => '', +'version_comment_changed_email_subject' => '', 'version_deleted_email' => 'ВерÑиÑта е премахната', 'version_deleted_email_body' => '', 'version_deleted_email_body_html' => '', diff --git a/languages/ca_ES/lang.inc b/languages/ca_ES/lang.inc index ad95af245..ffc6fa7c0 100644 --- a/languages/ca_ES/lang.inc +++ b/languages/ca_ES/lang.inc @@ -556,6 +556,7 @@ URL: [url]', 'extension_manager' => 'Gestiona les Extensions', 'extension_mgr_error_upload' => '', 'extension_mgr_installed' => '', +'extension_mgr_no_toggle' => '', 'extension_mgr_no_upload' => '', 'extension_mgr_no_zipfile' => '', 'extension_mgr_repository' => '', @@ -1633,8 +1634,10 @@ URL: [url]', 'splash_added_to_clipboard' => 'Emmagatzemat al portapapers', 'splash_add_access' => '', 'splash_add_attribute' => '', +'splash_add_category' => '', 'splash_add_group' => '', 'splash_add_group_member' => '', +'splash_add_keyword' => '', 'splash_add_notify' => '', 'splash_add_role' => '', 'splash_add_task' => '', @@ -1655,8 +1658,10 @@ URL: [url]', 'splash_document_unlocked' => 'Document desblocat', 'splash_edit_access' => '', 'splash_edit_attribute' => '', +'splash_edit_category' => '', 'splash_edit_event' => '', 'splash_edit_group' => '', +'splash_edit_keyword' => '', 'splash_edit_role' => '', 'splash_edit_task' => '', 'splash_edit_transmittal' => '', @@ -1687,11 +1692,13 @@ URL: [url]', 'splash_removed_from_clipboard' => '', 'splash_rm_attribute' => '', 'splash_rm_attr_value' => '', +'splash_rm_category' => '', 'splash_rm_document' => 'Document esborrat', 'splash_rm_download_link' => '', 'splash_rm_folder' => 'Carpeta esborrada', 'splash_rm_group' => '', 'splash_rm_group_member' => '', +'splash_rm_keyword' => '', 'splash_rm_notify' => '', 'splash_rm_role' => '', 'splash_rm_transmittal' => '', @@ -1902,6 +1909,9 @@ URL: [url]', 'versioning_info' => 'Informació de versions', 'versiontolow' => '', 'version_comment' => '', +'version_comment_changed_email_body' => '', +'version_comment_changed_email_body_html' => '', +'version_comment_changed_email_subject' => '', 'version_deleted_email' => 'Versió eliminada', 'version_deleted_email_body' => '', 'version_deleted_email_body_html' => '', diff --git a/languages/cs_CZ/lang.inc b/languages/cs_CZ/lang.inc index 6f7899798..fab2fdb59 100644 --- a/languages/cs_CZ/lang.inc +++ b/languages/cs_CZ/lang.inc @@ -626,6 +626,7 @@ URL: [url]', 'extension_manager' => 'Správa rozšíření', 'extension_mgr_error_upload' => '', 'extension_mgr_installed' => 'Instalováno', +'extension_mgr_no_toggle' => '', 'extension_mgr_no_upload' => 'Nahrání nového rozšíření není možné, jelikož do složky rozšíření nelze zapisovat.', 'extension_mgr_no_zipfile' => '', 'extension_mgr_repository' => 'Dostupný', @@ -1837,8 +1838,10 @@ Jméno: [username] 'splash_added_to_clipboard' => 'PÅ™idáno do schránky', 'splash_add_access' => 'PÅ™idáno Přístupové právo', 'splash_add_attribute' => 'PÅ™idán nový atribut', +'splash_add_category' => '', 'splash_add_group' => 'PÅ™idána nová skupina', 'splash_add_group_member' => 'PÅ™idán nový Älen skupiny', +'splash_add_keyword' => '', 'splash_add_notify' => '', 'splash_add_role' => 'PÅ™idána nová role', 'splash_add_task' => '', @@ -1859,8 +1862,10 @@ Jméno: [username] 'splash_document_unlocked' => 'Dokument odemÄen', 'splash_edit_access' => 'Přístupová práva zmÄ›nÄ›na', 'splash_edit_attribute' => 'Atribut uložen', +'splash_edit_category' => '', 'splash_edit_event' => 'Událost uložena', 'splash_edit_group' => 'Skupina uložena', +'splash_edit_keyword' => '', 'splash_edit_role' => 'Role uložena', 'splash_edit_task' => '', 'splash_edit_transmittal' => '', @@ -1891,11 +1896,13 @@ Jméno: [username] 'splash_removed_from_clipboard' => 'OdstranÄ›no ze schránky', 'splash_rm_attribute' => 'Atribut odstranÄ›n', 'splash_rm_attr_value' => 'Hodnota atributu byla odstranÄ›na', +'splash_rm_category' => '', 'splash_rm_document' => 'Dokument odstranÄ›n', 'splash_rm_download_link' => 'OdstranÄ›n odkaz ke stažení', 'splash_rm_folder' => 'Složka smazána', 'splash_rm_group' => 'Skupina odstranÄ›na', 'splash_rm_group_member' => 'ÄŒlen skupiny odstranÄ›n', +'splash_rm_keyword' => '', 'splash_rm_notify' => '', 'splash_rm_role' => 'Role odstranÄ›na', 'splash_rm_transmittal' => 'PÅ™enos odstranÄ›n', @@ -2115,6 +2122,9 @@ URL: [url]', 'versioning_info' => 'Info verzování', 'versiontolow' => 'PříliÅ¡ nízká verze', 'version_comment' => 'Poznámka k verzi', +'version_comment_changed_email_body' => '', +'version_comment_changed_email_body_html' => '', +'version_comment_changed_email_subject' => '', 'version_deleted_email' => 'Verze smazána', 'version_deleted_email_body' => 'Verze smazána Dokument: [name] diff --git a/languages/de_DE/lang.inc b/languages/de_DE/lang.inc index 0e48e5bfb..87b1b230b 100644 --- a/languages/de_DE/lang.inc +++ b/languages/de_DE/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (3091), dgrutsch (22) +// Translators: Admin (3102), dgrutsch (22) $text = array( '2_factor_auth' => '2-Faktor Authentifizierung', @@ -733,6 +733,7 @@ URL: [url]

', 'extension_manager' => 'Erweiterungen verwalten', 'extension_mgr_error_upload' => 'Beim Hochladen der Extension ist ein Fehler aufgetreten.', 'extension_mgr_installed' => 'Installiert', +'extension_mgr_no_toggle' => 'Erweiterungen können nicht aktiviert oder deaktiviert werden, weil die Konfigurationsdatei nicht schreibbar ist.', 'extension_mgr_no_upload' => 'Der Upload neuer Erweiterungen ist nicht möglich, weil das Verzeichnis für Erweiterungen nicht beschreibbar ist.', 'extension_mgr_no_zipfile' => 'Die hochgeladene Erweiterung ist keine Zip-Datei', 'extension_mgr_repository' => 'Verfügbar', @@ -2169,8 +2170,10 @@ Sollten Sie kein Passwort bekommen haben, dann nutzen Sie bitte die Passwort-Ver 'splash_added_to_clipboard' => 'Der Zwischenablage hinzugefügt', 'splash_add_access' => 'Neues Zugriffsrecht hinzugefügt', 'splash_add_attribute' => 'Neues Attribut hinzugefügt', +'splash_add_category' => 'Neue Kategorie hinzugefügt', 'splash_add_group' => 'Neue Gruppe hinzugefügt', 'splash_add_group_member' => 'Neues Gruppenmitglied hinzugefügt', +'splash_add_keyword' => 'Stichwort hinzugefügt', 'splash_add_notify' => 'Neue Benachrichtigung hinzugefügt', 'splash_add_role' => 'Neue Rolle hinzugefügt', 'splash_add_task' => 'Neuer Task hinzugefügt', @@ -2191,8 +2194,10 @@ Sollten Sie kein Passwort bekommen haben, dann nutzen Sie bitte die Passwort-Ver 'splash_document_unlocked' => 'Dokumentensperre aufgehoben', 'splash_edit_access' => 'Zugriffsrecht verändert', 'splash_edit_attribute' => 'Attribut gespeichert', +'splash_edit_category' => 'Kategorie gespeichert', 'splash_edit_event' => 'Ereignis gespeichert', 'splash_edit_group' => 'Gruppe gespeichert', +'splash_edit_keyword' => 'Stichwort gespeichert', 'splash_edit_role' => 'Rolle gespeichert', 'splash_edit_task' => 'Task gespeichert', 'splash_edit_transmittal' => 'Dokumentenliste gespeichert', @@ -2223,11 +2228,13 @@ Sollten Sie kein Passwort bekommen haben, dann nutzen Sie bitte die Passwort-Ver 'splash_removed_from_clipboard' => 'Aus der Zwischenablage entfernt', 'splash_rm_attribute' => 'Attribut gelöscht', 'splash_rm_attr_value' => 'Attributwert entfernt', +'splash_rm_category' => 'Kategorie gelöscht', 'splash_rm_document' => 'Dokument gelöscht', 'splash_rm_download_link' => 'Download-Link gelöscht', 'splash_rm_folder' => 'Ordner gelöscht', 'splash_rm_group' => 'Gruppe gelöscht', 'splash_rm_group_member' => 'Mitglied der Gruppe gelöscht', +'splash_rm_keyword' => 'Stichwort gelöscht', 'splash_rm_notify' => 'Benachrichtigung gelöscht', 'splash_rm_role' => 'Rolle gelöscht', 'splash_rm_transmittal' => 'Dokumentenliste gelöscht', @@ -2458,6 +2465,25 @@ URL: [url]

', 'versioning_info' => 'Versionsinformationen', 'versiontolow' => 'Version zu niedrig', 'version_comment' => 'Kommentar der Version', +'version_comment_changed_email_body' => 'Kommentar geändert + +Dokument: [name] +Version: [version] +Alter Kommentar: [old_comment] +Neuer Kommentar: [new_comment] +Elternordner: [folder_path] +Benutzer: [username] +URL: [url]', +'version_comment_changed_email_body_html' => '

Kommentar geändert

+ +

Dokument: [name]
+Version: [version]
+Alter Kommentar: [old_comment]
+Neuer Kommentar: [new_comment]
+Elternordner: [folder_path]
+Benutzer: [username]
+URL: [url]

', +'version_comment_changed_email_subject' => '[sitename]: [name] - Kommentar geändert', 'version_deleted_email' => 'Version gelöscht', 'version_deleted_email_body' => 'Version gelöscht diff --git a/languages/el_GR/lang.inc b/languages/el_GR/lang.inc index acf6df901..b40c5fd3f 100644 --- a/languages/el_GR/lang.inc +++ b/languages/el_GR/lang.inc @@ -551,6 +551,7 @@ $text = array( 'extension_manager' => 'ΔιαχείÏιση Ï€Ïόσθετων', 'extension_mgr_error_upload' => '', 'extension_mgr_installed' => '', +'extension_mgr_no_toggle' => '', 'extension_mgr_no_upload' => '', 'extension_mgr_no_zipfile' => '', 'extension_mgr_repository' => '', @@ -1639,8 +1640,10 @@ URL: [url]', 'splash_added_to_clipboard' => 'ΠÏοστέθηκε στο clipboard', 'splash_add_access' => '', 'splash_add_attribute' => '', +'splash_add_category' => '', 'splash_add_group' => '', 'splash_add_group_member' => '', +'splash_add_keyword' => '', 'splash_add_notify' => '', 'splash_add_role' => '', 'splash_add_task' => '', @@ -1661,8 +1664,10 @@ URL: [url]', 'splash_document_unlocked' => '', 'splash_edit_access' => '', 'splash_edit_attribute' => '', +'splash_edit_category' => '', 'splash_edit_event' => '', 'splash_edit_group' => '', +'splash_edit_keyword' => '', 'splash_edit_role' => '', 'splash_edit_task' => '', 'splash_edit_transmittal' => '', @@ -1693,11 +1698,13 @@ URL: [url]', 'splash_removed_from_clipboard' => '', 'splash_rm_attribute' => '', 'splash_rm_attr_value' => '', +'splash_rm_category' => '', 'splash_rm_document' => 'Το έγγÏαφο αφαιÏέθηκε', 'splash_rm_download_link' => '', 'splash_rm_folder' => '', 'splash_rm_group' => '', 'splash_rm_group_member' => '', +'splash_rm_keyword' => '', 'splash_rm_notify' => '', 'splash_rm_role' => '', 'splash_rm_transmittal' => '', @@ -1908,6 +1915,9 @@ URL: [url]', 'versioning_info' => '', 'versiontolow' => '', 'version_comment' => '', +'version_comment_changed_email_body' => '', +'version_comment_changed_email_body_html' => '', +'version_comment_changed_email_subject' => '', 'version_deleted_email' => '', 'version_deleted_email_body' => '', 'version_deleted_email_body_html' => '', diff --git a/languages/en_GB/lang.inc b/languages/en_GB/lang.inc index 765a1a741..56be9e763 100644 --- a/languages/en_GB/lang.inc +++ b/languages/en_GB/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (2187), archonwang (3), dgrutsch (9), netixw (14) +// Translators: Admin (2197), archonwang (3), dgrutsch (9), netixw (14) $text = array( '2_factor_auth' => '2-factor authentication', @@ -733,6 +733,7 @@ URL: [url]

', 'extension_manager' => 'Manage extensions', 'extension_mgr_error_upload' => 'Error while uploading the extension.', 'extension_mgr_installed' => 'Installed', +'extension_mgr_no_toggle' => 'Extensions cannot be enabled/disabled because the configuration file is not writable.', 'extension_mgr_no_upload' => 'Uploading new extensions is not possible because the extentension directory is not writable.', 'extension_mgr_no_zipfile' => 'The uploaded extension is not a zip file', 'extension_mgr_repository' => 'Available', @@ -2172,8 +2173,10 @@ If you did not receive a password, please use the password forgotten function on 'splash_added_to_clipboard' => 'Added to clipboard', 'splash_add_access' => 'New Access right added', 'splash_add_attribute' => 'New attribute added', +'splash_add_category' => 'New category added', 'splash_add_group' => 'New group added', 'splash_add_group_member' => 'New group member added', +'splash_add_keyword' => 'New keyword added', 'splash_add_notify' => 'Added new notification', 'splash_add_role' => 'Added new role', 'splash_add_task' => 'Added new task', @@ -2194,8 +2197,10 @@ If you did not receive a password, please use the password forgotten function on 'splash_document_unlocked' => 'Document unlocked', 'splash_edit_access' => 'Access right changed', 'splash_edit_attribute' => 'Attribute saved', +'splash_edit_category' => 'Category saved', 'splash_edit_event' => 'Event saved', 'splash_edit_group' => 'Group saved', +'splash_edit_keyword' => 'Keyword saved', 'splash_edit_role' => 'Role saved', 'splash_edit_task' => 'Task saved', 'splash_edit_transmittal' => 'Transmittal saved', @@ -2226,11 +2231,13 @@ If you did not receive a password, please use the password forgotten function on 'splash_removed_from_clipboard' => 'Removed from clipboard', 'splash_rm_attribute' => 'Attribute removed', 'splash_rm_attr_value' => 'Attribute value removed', +'splash_rm_category' => 'Category removed', 'splash_rm_document' => 'Document removed', 'splash_rm_download_link' => 'Removed download link', 'splash_rm_folder' => 'Folder deleted', 'splash_rm_group' => 'Group removed', 'splash_rm_group_member' => 'Member of group removed', +'splash_rm_keyword' => 'Keyword removed', 'splash_rm_notify' => 'Notification deleted', 'splash_rm_role' => 'Role deleted', 'splash_rm_transmittal' => 'Transmittal deleted', @@ -2461,6 +2468,25 @@ URL: [url]

', 'versioning_info' => 'Versioning info', 'versiontolow' => 'Version to low', 'version_comment' => 'Comment of version', +'version_comment_changed_email_body' => 'Comment changed + +Document: [name] +Version: [version] +Old comment: [old_comment] +New Comment: [new_comment] +Parent folder: [folder_path] +User: [username] +URL: [url]', +'version_comment_changed_email_body_html' => '

Comment changed

+ +

Document: [name]
+Version: [version]
+Old comment: [old_comment]
+New Comment: [new_comment]
+Parent folder: [folder_path]
+User: [username]
+URL: [url]

', +'version_comment_changed_email_subject' => '[sitename]: [name] - Comment changed', 'version_deleted_email' => 'Version deleted', 'version_deleted_email_body' => 'Version deleted diff --git a/languages/es_ES/lang.inc b/languages/es_ES/lang.inc index 14e9daec8..4287aa2d3 100644 --- a/languages/es_ES/lang.inc +++ b/languages/es_ES/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: acabello (20), Admin (1337), angel (123), francisco (2), jaimem (14) +// Translators: acabello (20), Admin (1340), angel (123), francisco (2), jaimem (14) $text = array( '2_factor_auth' => 'Autenticación de doble factor', @@ -402,7 +402,13 @@ Comentario: [new_comment] Carpeta principal: [folder_path] Usuario: [username] URL: [url]', -'document_comment_changed_email_body_html' => '', +'document_comment_changed_email_body_html' => '

Comentario modificado

+

Documento: [name]
+antiguo comentario: [old_comment]
+Comentario: [new_comment]
+Carpeta principal: [folder_path]
+Usuario: [username]
+URL: [url]

', 'document_comment_changed_email_subject' => '[sitename]: [name] - Comentario modificado', 'document_content_missing' => '', 'document_count' => '', @@ -609,6 +615,7 @@ URL: [url]', 'extension_manager' => 'Administrar extensiones', 'extension_mgr_error_upload' => '', 'extension_mgr_installed' => 'Instalada', +'extension_mgr_no_toggle' => '', 'extension_mgr_no_upload' => 'No es posible cargar mas extensiones porque el directorio de extensiones no se puede escribir', 'extension_mgr_no_zipfile' => '', 'extension_mgr_repository' => 'Disponible', @@ -641,7 +648,13 @@ Comentario: [new_comment] Carpeta principal: [folder_path] Usuario: [username] URL: [url]', -'folder_comment_changed_email_body_html' => '', +'folder_comment_changed_email_body_html' => '

Comentario modificado

+

Carpeta: [name]
+Comentario antiguo: [old_comment]
+Comentario: [new_comment]
+Carpeta principal: [folder_path]
+Usuario: [username]
+URL: [url]

', 'folder_comment_changed_email_subject' => '[sitename]: [name] - Comentario modificado', 'folder_contents' => 'Contenido de Carpetas', 'folder_deleted_email' => 'Carpeta eliminada', @@ -1780,8 +1793,10 @@ URL: [url]', 'splash_added_to_clipboard' => 'Agregado al portapapeles', 'splash_add_access' => '', 'splash_add_attribute' => 'Nuevo atributo agregado', +'splash_add_category' => '', 'splash_add_group' => 'Nuevo grupo agregado', 'splash_add_group_member' => 'Nuevo miembro del grupo agregado', +'splash_add_keyword' => '', 'splash_add_notify' => '', 'splash_add_role' => '', 'splash_add_task' => '', @@ -1802,8 +1817,10 @@ URL: [url]', 'splash_document_unlocked' => 'Documento desbloqueado', 'splash_edit_access' => '', 'splash_edit_attribute' => 'Atributo guardado', +'splash_edit_category' => '', 'splash_edit_event' => '', 'splash_edit_group' => 'Grupo guardado', +'splash_edit_keyword' => '', 'splash_edit_role' => '', 'splash_edit_task' => '', 'splash_edit_transmittal' => '', @@ -1834,11 +1851,13 @@ URL: [url]', 'splash_removed_from_clipboard' => 'Eliminado del portapapeles', 'splash_rm_attribute' => 'Atributo eliminado', 'splash_rm_attr_value' => '', +'splash_rm_category' => '', 'splash_rm_document' => 'Documento eliminado', 'splash_rm_download_link' => '', 'splash_rm_folder' => 'Carpeta eliminada', 'splash_rm_group' => 'Grupo eliminado', 'splash_rm_group_member' => 'Miembro eliminado del grupo', +'splash_rm_keyword' => '', 'splash_rm_notify' => '', 'splash_rm_role' => '', 'splash_rm_transmittal' => '', @@ -2058,6 +2077,9 @@ URL: [url]', 'versioning_info' => 'Información de versiones', 'versiontolow' => 'Versión', 'version_comment' => 'Comentario de la versión', +'version_comment_changed_email_body' => '', +'version_comment_changed_email_body_html' => '', +'version_comment_changed_email_subject' => '', 'version_deleted_email' => 'Versión eliminada', 'version_deleted_email_body' => 'Versión eliminada Documento: [name] diff --git a/languages/fr_FR/lang.inc b/languages/fr_FR/lang.inc index 4870f8d8a..dd3d0d8cb 100644 --- a/languages/fr_FR/lang.inc +++ b/languages/fr_FR/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (1113), jeromerobert (50), lonnnew (9), Oudiceval (1171) +// Translators: Admin (1126), jeromerobert (50), lonnnew (9), Oudiceval (1171) $text = array( '2_factor_auth' => 'Authentification forte', @@ -719,6 +719,7 @@ URL : [url]

', 'extension_manager' => 'Gestionnaire d\'extensions', 'extension_mgr_error_upload' => 'Erreur lors du chargement de l’extension', 'extension_mgr_installed' => 'Installées', +'extension_mgr_no_toggle' => '', 'extension_mgr_no_upload' => 'L’ajout de nouvelles extensions n’est pas possible car le répertoire des extensions n’est pas accessible en écriture.', 'extension_mgr_no_zipfile' => 'L’extension chargée n’est pas un dossier zip', 'extension_mgr_repository' => 'Disponibles', @@ -869,7 +870,7 @@ URL : [url]

', 'hu_HU' => 'Hongrois', 'id' => 'ID', 'identical_version' => 'Nouvelle version identique à l\'actuelle.', -'id_ID' => '', +'id_ID' => 'Indonésien', 'import' => 'Importer', 'importfs' => 'Importer depuis le système de fichiers', 'import_extension' => 'Importer l’extension', @@ -1802,8 +1803,8 @@ Nom : [username] 'settings_defaultDocPosition_desc' => 'C\'est la position par défaut dans un dossier lors de la création d\'un document.', 'settings_defaultDocPosition_val_end' => 'fin', 'settings_defaultDocPosition_val_start' => 'début', -'settings_defaultFolderPosition' => '', -'settings_defaultFolderPosition_desc' => '', +'settings_defaultFolderPosition' => 'Position du dossier à sa création', +'settings_defaultFolderPosition_desc' => 'Position par défaut dans un dossier lorsqu\'un nouveau dossier est créé.', 'settings_defaultSearchMethod' => 'Méthode de recherche par défaut', 'settings_defaultSearchMethod_desc' => 'Méthode de recherche par défaut, lorsque la recherche est exécutée depuis le moteur de recherche du menu principal', 'settings_defaultSearchMethod_valdatabase' => 'base de données', @@ -1846,12 +1847,12 @@ Nom : [username] 'settings_enableDuplicateSubFolderNames_desc' => 'Autorise plusieurs sous-dossiers de même nom dans un dossier.', 'settings_enableEmail' => 'E-mails', 'settings_enableEmail_desc' => 'Active/désactive la notification automatique par e-mail', -'settings_enableExtensionDownload' => '', -'settings_enableExtensionDownload_desc' => '', -'settings_enableExtensionImport' => '', -'settings_enableExtensionImportFromRepository' => '', -'settings_enableExtensionImportFromRepository_desc' => '', -'settings_enableExtensionImport_desc' => '', +'settings_enableExtensionDownload' => 'Autoriser le téléchargement des extensions', +'settings_enableExtensionDownload_desc' => 'Dans le gestionnaire d\'extensions, activez cette option pour autoriser le téléchargement d\'extensions.', +'settings_enableExtensionImport' => 'Autoriser l\'import d\'exensions', +'settings_enableExtensionImportFromRepository' => 'Autoriser l\'import d\'extension depuis le dossier de dépôt', +'settings_enableExtensionImportFromRepository_desc' => 'Activer si cette extension peut être importée depuis le dossier de dépôt', +'settings_enableExtensionImport_desc' => 'Si activé, l\'extension sera uploadée dans le gestionnaire d\'extensions', 'settings_enableFilterReceipt' => 'Éliminer des propriétaires, examinateurs… d’une liste de destinataires', 'settings_enableFilterReceipt_desc' => 'Activez cette option pour éliminer certains destinataires d’une liste s’ils sont entrés en tant que membres d’un groupe.', 'settings_enableFolderTree' => 'Activer l\'arborescence des dossiers', @@ -1930,7 +1931,7 @@ Nom : [username] 'settings_expandFolderTree_val0' => 'Démarrer avec l\'arborescence cachée', 'settings_expandFolderTree_val1' => 'Démarrer avec le premier niveau déroulé', 'settings_expandFolderTree_val2' => 'Démarrer avec l\'arborescence déroulée', -'settings_ExtensionMgr' => '', +'settings_ExtensionMgr' => 'Paramètres du gestionnaire d\'extensions', 'settings_Extensions' => 'Extensions', 'settings_extraPath' => 'Chemin d’inclusion supplémentaire PHP', 'settings_extraPath_desc' => 'Chemin vers des logiciels supplémentaires. Il s’agit du répertoire contenant par exemple le répertoire ADOdb ou des paquets PEAR supplémentaires.', @@ -1994,8 +1995,8 @@ Nom : [username] 'settings_more_settings' => 'Configurer d\'autres paramètres. Connexion par défaut: admin/admin', 'settings_noDocumentFormFields' => 'Ne pas afficher ces champs', 'settings_noDocumentFormFields_desc' => 'Ces champs ne seront pas visibles à l’ajout et à la modification d’un document. Les valeurs existantes seront conservées.', -'settings_noFolderFormFields' => '', -'settings_noFolderFormFields_desc' => '', +'settings_noFolderFormFields' => 'Ne pas montrer les champs (dossier)', +'settings_noFolderFormFields_desc' => 'Ces champs ne s\'afficheront pas lors de l\'addition ou la modification d\'un dossier. Les valeurs déjà existantes seront conservées.', 'settings_notfound' => 'Introuvable', 'settings_Notification' => 'Notifications', 'settings_notwritable' => 'La configuration ne peut pas être enregistrée car le fichier de configuration n’est pas accessible en écriture.', @@ -2155,8 +2156,10 @@ Nom : [username] 'splash_added_to_clipboard' => 'Ajouté au presse-papier', 'splash_add_access' => 'Droits d’accès ajoutés', 'splash_add_attribute' => 'Attribut ajouté', +'splash_add_category' => '', 'splash_add_group' => 'Nouveau groupe ajouté', 'splash_add_group_member' => 'Nouveau membre ajouté au groupe', +'splash_add_keyword' => '', 'splash_add_notify' => 'Nouvelle notification ajoutée', 'splash_add_role' => 'Nouveau rôle ajouté', 'splash_add_task' => 'Nouvelle tâche ajoutée', @@ -2177,8 +2180,10 @@ Nom : [username] 'splash_document_unlocked' => 'Document déverrouillé', 'splash_edit_access' => 'Droits d’accès modifiés', 'splash_edit_attribute' => 'Attribut modifié', +'splash_edit_category' => '', 'splash_edit_event' => 'Événement modifié', 'splash_edit_group' => 'Groupe modifié', +'splash_edit_keyword' => '', 'splash_edit_role' => 'Rôle modifié', 'splash_edit_task' => 'Tâche modifiée', 'splash_edit_transmittal' => 'Transmission enregistrée', @@ -2209,11 +2214,13 @@ Nom : [username] 'splash_removed_from_clipboard' => 'Supprimé du presse-papier', 'splash_rm_attribute' => 'Attribut supprimé', 'splash_rm_attr_value' => 'Valeur d’attribut retirée', +'splash_rm_category' => '', 'splash_rm_document' => 'Document supprimé', 'splash_rm_download_link' => 'Lien de téléchargement supprimé', 'splash_rm_folder' => 'Dossier supprimé', 'splash_rm_group' => 'Groupe supprimé', 'splash_rm_group_member' => 'Membre retiré du groupe', +'splash_rm_keyword' => '', 'splash_rm_notify' => 'Notification supprimée', 'splash_rm_role' => 'Rôle supprimé', 'splash_rm_transmittal' => 'Transmission supprimée', @@ -2444,6 +2451,9 @@ URL : [url]

', 'versioning_info' => 'Versions', 'versiontolow' => 'Version antérieure', 'version_comment' => 'Commentaire de la version', +'version_comment_changed_email_body' => '', +'version_comment_changed_email_body_html' => '', +'version_comment_changed_email_subject' => '', 'version_deleted_email' => 'Version supprimée', 'version_deleted_email_body' => 'Version supprimée diff --git a/languages/hr_HR/lang.inc b/languages/hr_HR/lang.inc index dc1b9645c..1afb4b532 100644 --- a/languages/hr_HR/lang.inc +++ b/languages/hr_HR/lang.inc @@ -614,6 +614,7 @@ Internet poveznica: [url]', 'extension_manager' => 'Upravljanje ekstenzijama', 'extension_mgr_error_upload' => '', 'extension_mgr_installed' => '', +'extension_mgr_no_toggle' => '', 'extension_mgr_no_upload' => 'Upload novih ekstenzija nije moguć poÅ¡to mapa ekstenzija nema dozvolu pisanja', 'extension_mgr_no_zipfile' => '', 'extension_mgr_repository' => 'Dostupno', @@ -1801,8 +1802,10 @@ Internet poveznica: [url]', 'splash_added_to_clipboard' => 'Dodano u meÄ‘uspremnik', 'splash_add_access' => '', 'splash_add_attribute' => 'Dodan novi atribut', +'splash_add_category' => '', 'splash_add_group' => 'Dodana nova grupa', 'splash_add_group_member' => 'Dodan novi Älan grupe', +'splash_add_keyword' => '', 'splash_add_notify' => '', 'splash_add_role' => '', 'splash_add_task' => '', @@ -1823,8 +1826,10 @@ Internet poveznica: [url]', 'splash_document_unlocked' => 'Dokument otkljuÄan', 'splash_edit_access' => '', 'splash_edit_attribute' => 'Atribut pohranjen', +'splash_edit_category' => '', 'splash_edit_event' => '', 'splash_edit_group' => 'Groupa pohranjena', +'splash_edit_keyword' => '', 'splash_edit_role' => '', 'splash_edit_task' => '', 'splash_edit_transmittal' => '', @@ -1855,11 +1860,13 @@ Internet poveznica: [url]', 'splash_removed_from_clipboard' => 'Uklonjeno iz meÄ‘uspremnika', 'splash_rm_attribute' => 'Atribut uklonjen', 'splash_rm_attr_value' => '', +'splash_rm_category' => '', 'splash_rm_document' => 'Dokument uklonjen', 'splash_rm_download_link' => '', 'splash_rm_folder' => 'Mapa izbrisana', 'splash_rm_group' => 'Grupa uklonjena', 'splash_rm_group_member' => 'ÄŒlan grupe uklonjen', +'splash_rm_keyword' => '', 'splash_rm_notify' => '', 'splash_rm_role' => '', 'splash_rm_transmittal' => '', @@ -2079,6 +2086,9 @@ Internet poveznica: [url]', 'versioning_info' => 'Info o verzijama', 'versiontolow' => 'Na nižu verziju', 'version_comment' => '', +'version_comment_changed_email_body' => '', +'version_comment_changed_email_body_html' => '', +'version_comment_changed_email_subject' => '', 'version_deleted_email' => 'Izbrisana verzija', 'version_deleted_email_body' => 'Izbrisana verzija Dokument: [name] diff --git a/languages/hu_HU/lang.inc b/languages/hu_HU/lang.inc index f71f3df93..569779ae9 100644 --- a/languages/hu_HU/lang.inc +++ b/languages/hu_HU/lang.inc @@ -609,6 +609,7 @@ URL: [url]', 'extension_manager' => 'BÅ‘vítmények kezelése', 'extension_mgr_error_upload' => '', 'extension_mgr_installed' => 'Telepített', +'extension_mgr_no_toggle' => '', 'extension_mgr_no_upload' => '', 'extension_mgr_no_zipfile' => '', 'extension_mgr_repository' => 'TelepíthetÅ‘', @@ -1779,8 +1780,10 @@ URL: [url]', 'splash_added_to_clipboard' => 'Vágólaphoz hozzáadva', 'splash_add_access' => '', 'splash_add_attribute' => 'Új jellemzÅ‘ hozzáadva', +'splash_add_category' => '', 'splash_add_group' => 'Új csoport hozzáadva', 'splash_add_group_member' => 'Új csoporttag hozzáadva', +'splash_add_keyword' => '', 'splash_add_notify' => '', 'splash_add_role' => '', 'splash_add_task' => '', @@ -1801,8 +1804,10 @@ URL: [url]', 'splash_document_unlocked' => 'Dokumentum zárolás feloldva', 'splash_edit_access' => '', 'splash_edit_attribute' => 'JellemzÅ‘ mentve', +'splash_edit_category' => '', 'splash_edit_event' => '', 'splash_edit_group' => 'Csoport mentve', +'splash_edit_keyword' => '', 'splash_edit_role' => '', 'splash_edit_task' => '', 'splash_edit_transmittal' => '', @@ -1833,11 +1838,13 @@ URL: [url]', 'splash_removed_from_clipboard' => 'Eltávolítva a vágólapról', 'splash_rm_attribute' => 'JellemzÅ‘ eltávolítva', 'splash_rm_attr_value' => '', +'splash_rm_category' => '', 'splash_rm_document' => 'Dokumentum eltávolítva', 'splash_rm_download_link' => '', 'splash_rm_folder' => 'Mappa törölve', 'splash_rm_group' => 'Csoport eltávolítva', 'splash_rm_group_member' => 'Csoporttag eltávolítva', +'splash_rm_keyword' => '', 'splash_rm_notify' => '', 'splash_rm_role' => '', 'splash_rm_transmittal' => '', @@ -2057,6 +2064,9 @@ URL: [url]', 'versioning_info' => 'Változás információ', 'versiontolow' => 'Túl alacsony verzió', 'version_comment' => '', +'version_comment_changed_email_body' => '', +'version_comment_changed_email_body_html' => '', +'version_comment_changed_email_subject' => '', 'version_deleted_email' => 'Változat törölve', 'version_deleted_email_body' => 'Változat törölve Dokumentum: [name] diff --git a/languages/it_IT/lang.inc b/languages/it_IT/lang.inc index 840f731c5..b05563ba3 100644 --- a/languages/it_IT/lang.inc +++ b/languages/it_IT/lang.inc @@ -619,6 +619,7 @@ URL: [url]', 'extension_manager' => 'Gestisci le estensioni dei files', 'extension_mgr_error_upload' => '', 'extension_mgr_installed' => 'Installato', +'extension_mgr_no_toggle' => '', 'extension_mgr_no_upload' => 'Il caricamento della nuova estensione non è possibile perchè la cartella delle estensioni non ha diritti di scrittura', 'extension_mgr_no_zipfile' => '', 'extension_mgr_repository' => 'Disponibile', @@ -1828,8 +1829,10 @@ Name: [username] 'splash_added_to_clipboard' => 'Aggiunto agli appunti', 'splash_add_access' => 'Accesso aggiunto', 'splash_add_attribute' => 'Attributo aggiunto', +'splash_add_category' => '', 'splash_add_group' => 'Gruppo aggiunto', 'splash_add_group_member' => 'Membro aggiunto al gruppo', +'splash_add_keyword' => '', 'splash_add_notify' => '', 'splash_add_role' => 'Aggiunto nuovo ruolo', 'splash_add_task' => '', @@ -1850,8 +1853,10 @@ Name: [username] 'splash_document_unlocked' => 'Documento sbloccato', 'splash_edit_access' => 'Accesso modificato', 'splash_edit_attribute' => 'Attributo modificato', +'splash_edit_category' => '', 'splash_edit_event' => 'Evento modificato', 'splash_edit_group' => 'Gruppo modificato', +'splash_edit_keyword' => '', 'splash_edit_role' => 'Ruolo memorizzato', 'splash_edit_task' => 'Attività modificata', 'splash_edit_transmittal' => '', @@ -1882,11 +1887,13 @@ Name: [username] 'splash_removed_from_clipboard' => 'Rimosso dagli appunti', 'splash_rm_attribute' => 'Attributo rimosso', 'splash_rm_attr_value' => 'Valore attributo rimosso', +'splash_rm_category' => '', 'splash_rm_document' => 'Documento rimosso', 'splash_rm_download_link' => 'Collegamento di scaricamento rimosso', 'splash_rm_folder' => 'Cartella eliminata', 'splash_rm_group' => 'Gruppo eliminato', 'splash_rm_group_member' => 'Membro del gruppo eliminato', +'splash_rm_keyword' => '', 'splash_rm_notify' => '', 'splash_rm_role' => 'Ruolo cancellato', 'splash_rm_transmittal' => 'Trasmissione cancellato', @@ -2106,6 +2113,9 @@ URL: [url]', 'versioning_info' => 'Informazioni di versione', 'versiontolow' => 'Versione obsoleta', 'version_comment' => 'Commento alla versione', +'version_comment_changed_email_body' => '', +'version_comment_changed_email_body_html' => '', +'version_comment_changed_email_subject' => '', 'version_deleted_email' => 'Cancellazione versione', 'version_deleted_email_body' => 'Versione cancellata Documento: [name] diff --git a/languages/ko_KR/lang.inc b/languages/ko_KR/lang.inc index cc39f3888..7fd0deb52 100644 --- a/languages/ko_KR/lang.inc +++ b/languages/ko_KR/lang.inc @@ -615,6 +615,7 @@ URL: [url]', 'extension_manager' => 'í™•ìž¥ìž ê´€ë¦¬', 'extension_mgr_error_upload' => '', 'extension_mgr_installed' => '', +'extension_mgr_no_toggle' => '', 'extension_mgr_no_upload' => '', 'extension_mgr_no_zipfile' => '', 'extension_mgr_repository' => '', @@ -1795,8 +1796,10 @@ URL : [url]', 'splash_added_to_clipboard' => 'í´ë¦½ ë³´ë“œì— ì¶”ê°€', 'splash_add_access' => '', 'splash_add_attribute' => '새로운 ì†ì„± 추가', +'splash_add_category' => '', 'splash_add_group' => '새 ê·¸ë£¹ì´ ì¶”ê°€', 'splash_add_group_member' => '새 그룹 êµ¬ì„±ì› ì¶”ê°€', +'splash_add_keyword' => '', 'splash_add_notify' => '', 'splash_add_role' => '', 'splash_add_task' => '', @@ -1817,8 +1820,10 @@ URL : [url]', 'splash_document_unlocked' => '문서 잠금 í•´ì œ', 'splash_edit_access' => '', 'splash_edit_attribute' => 'ì†ì„± 저장', +'splash_edit_category' => '', 'splash_edit_event' => '', 'splash_edit_group' => '그룹 저장', +'splash_edit_keyword' => '', 'splash_edit_role' => '', 'splash_edit_task' => '', 'splash_edit_transmittal' => '', @@ -1849,11 +1854,13 @@ URL : [url]', 'splash_removed_from_clipboard' => 'í´ë¦½ 보드ì—서 제거', 'splash_rm_attribute' => 'ì†ì„± 제거', 'splash_rm_attr_value' => '', +'splash_rm_category' => '', 'splash_rm_document' => '문서 ì‚­ì œ', 'splash_rm_download_link' => '', 'splash_rm_folder' => 'í´ë” ì‚­ì œ', 'splash_rm_group' => '그룹 제거', 'splash_rm_group_member' => 'íšŒì› ê·¸ë£¹ 제거', +'splash_rm_keyword' => '', 'splash_rm_notify' => '', 'splash_rm_role' => 'ì—­í•  지워ì§', 'splash_rm_transmittal' => '', @@ -2073,6 +2080,9 @@ URL : [url]', 'versioning_info' => '버전 관리 ì •ë³´', 'versiontolow' => 'ë‚®ì€ ë²„ì „', 'version_comment' => '', +'version_comment_changed_email_body' => '', +'version_comment_changed_email_body_html' => '', +'version_comment_changed_email_subject' => '', 'version_deleted_email' => '버전 ì‚­ì œ', 'version_deleted_email_body' => '버전 ì‚­ì œ 문서: [name] diff --git a/languages/lo_LA/lang.inc b/languages/lo_LA/lang.inc index 3ef12db03..50075ee2b 100644 --- a/languages/lo_LA/lang.inc +++ b/languages/lo_LA/lang.inc @@ -612,6 +612,7 @@ URL: [url]', 'extension_manager' => 'àºàº²àº™àºˆàº±àº”àºàº²àº™àºªà»ˆàº§àº™àº‚ະຫàºàº²àº', 'extension_mgr_error_upload' => '', 'extension_mgr_installed' => '', +'extension_mgr_no_toggle' => '', 'extension_mgr_no_upload' => '', 'extension_mgr_no_zipfile' => '', 'extension_mgr_repository' => '', @@ -1821,8 +1822,10 @@ URL: [url]', 'splash_added_to_clipboard' => 'ເພີ່ມລົງໃນຄິບບອດ', 'splash_add_access' => '', 'splash_add_attribute' => 'ເພີ່ມà»àº­àº±àº”ທີບິວໄຫມ່', +'splash_add_category' => '', 'splash_add_group' => 'ເພີ່ມàºàº¸à»ˆàº¡à»„ຫມ່à»àº¥à»‰àº§', 'splash_add_group_member' => 'ເພີ່ມສະມາຊິàºà»„à»à»ˆà»àº¥à»‰àº§', +'splash_add_keyword' => '', 'splash_add_notify' => '', 'splash_add_role' => 'ເພີ່ມບົດບາດໄຫມ່', 'splash_add_task' => '', @@ -1843,8 +1846,10 @@ URL: [url]', 'splash_document_unlocked' => 'ເອàºàº°àºªàº²àº™àº›àº»àº”ລັອàºà»àº¥à»‰àº§', 'splash_edit_access' => '', 'splash_edit_attribute' => 'ບັນທຶàºà»àº­àº±àº”ທີບິວà»àº¥à»‰àº§', +'splash_edit_category' => '', 'splash_edit_event' => 'ບັນທຶàºàºàº´àº”ຈະàºàº³à»àº¥à»‰àº§', 'splash_edit_group' => 'ບັນທຶàºàºàº¸à»ˆàº¡à»àº¥à»‰àº§', +'splash_edit_keyword' => '', 'splash_edit_role' => 'ບັນທຶàºàºšàº»àº”ບາດà»àº¥à»‰àº§', 'splash_edit_task' => '', 'splash_edit_transmittal' => '', @@ -1875,11 +1880,13 @@ URL: [url]', 'splash_removed_from_clipboard' => 'àºà»‰àº²àºàº­àº­àºàºˆàº²àºàº„ິບບອດ', 'splash_rm_attribute' => 'ນຳà»àº­àº±àº”ທີບິວອອàºà»àº¥à»‰àº§', 'splash_rm_attr_value' => '', +'splash_rm_category' => '', 'splash_rm_document' => 'ລົບເອàºàº°àºªàº²àº™à»àº¥à»‰àº§', 'splash_rm_download_link' => 'ລົບລີ້ງàºàº²àº™àº”າວໂຫຼດà»àº¥à»‰àº§', 'splash_rm_folder' => 'ລົບໂຟລເດີà»àº¥à»‰àº§', 'splash_rm_group' => 'ລົບàºàº¸à»ˆàº¡à»àº¥à»‰àº§', 'splash_rm_group_member' => 'ສະມະຊິàºàº‚ອງàºàº¸à»ˆàº¡à»„ດ້ຖືàºàº¥àº»àºšàº­àº­àºàºˆàº²àºàºàº¹àº¸à»ˆàº¡', +'splash_rm_keyword' => '', 'splash_rm_notify' => '', 'splash_rm_role' => 'ລົບບົດບາດà»àº¥à»‰àº§', 'splash_rm_transmittal' => 'àºàº»àºà»€àº¥àºµàºàºàº²àº™àº¥àº»àºšà»àº¥à»‰àº§', @@ -2099,6 +2106,9 @@ URL: [url]', 'versioning_info' => 'ຂà»à»‰àº¡àº¹àº™àºàº²àº™àºàº³àº™àº»àº”ລຸ້ນ', 'versiontolow' => 'ເວີຊັ້ນຕຳ', 'version_comment' => '', +'version_comment_changed_email_body' => '', +'version_comment_changed_email_body_html' => '', +'version_comment_changed_email_subject' => '', 'version_deleted_email' => 'ລົບເວີຊັ້ນà»àº¥à»‰àº§', 'version_deleted_email_body' => 'ລົບເວີຊັ້ນà»àº¥à»‰àº§ ເອàºàº°àºªàº²àº™: [name] diff --git a/languages/nb_NO/lang.inc b/languages/nb_NO/lang.inc index 60059386c..bd5b2ef94 100644 --- a/languages/nb_NO/lang.inc +++ b/languages/nb_NO/lang.inc @@ -626,6 +626,7 @@ URL: [url]', 'extension_manager' => 'Administrer utvidelser', 'extension_mgr_error_upload' => '', 'extension_mgr_installed' => 'Innstallert', +'extension_mgr_no_toggle' => '', 'extension_mgr_no_upload' => 'Det er ikke mulig Ã¥ laste opp nye utvidelser fordi utvidelseskatalogen ikke kan skrives til.', 'extension_mgr_no_zipfile' => '', 'extension_mgr_repository' => 'Tilgjengelig', @@ -1834,8 +1835,10 @@ Bruker: [username] 'splash_added_to_clipboard' => 'Lagt til utklippstavlen', 'splash_add_access' => 'Adgangs rett lagt til', 'splash_add_attribute' => 'Ny egenskap lagt til', +'splash_add_category' => '', 'splash_add_group' => 'Ny gruppe lagt til', 'splash_add_group_member' => 'Nytt gruppemedlem lagt til', +'splash_add_keyword' => '', 'splash_add_notify' => '', 'splash_add_role' => 'Lagt til ny rolle', 'splash_add_task' => '', @@ -1856,8 +1859,10 @@ Bruker: [username] 'splash_document_unlocked' => 'Dokumentet Ã¥pnet', 'splash_edit_access' => 'Adgangsretten ble endret', 'splash_edit_attribute' => 'Egenskapen ble lagret', +'splash_edit_category' => '', 'splash_edit_event' => 'Hendelsen lagret', 'splash_edit_group' => 'Gruppen lagret', +'splash_edit_keyword' => '', 'splash_edit_role' => 'Rollen er lagret', 'splash_edit_task' => 'Oppgaven lagret', 'splash_edit_transmittal' => 'Overføring lagret', @@ -1888,11 +1893,13 @@ Bruker: [username] 'splash_removed_from_clipboard' => 'Fjernet fra utklippstavlen', 'splash_rm_attribute' => 'Egenskap fjernet', 'splash_rm_attr_value' => 'Egenskapsverdi fjernet', +'splash_rm_category' => '', 'splash_rm_document' => 'Dokumentet er fjernet', 'splash_rm_download_link' => 'Fjernet nedlastingslenke', 'splash_rm_folder' => 'Mappen slettet', 'splash_rm_group' => 'Gruppen fjernet', 'splash_rm_group_member' => 'Gruppemedlem fjernet', +'splash_rm_keyword' => '', 'splash_rm_notify' => '', 'splash_rm_role' => 'Rolle slettet', 'splash_rm_transmittal' => 'Overføring slettet', @@ -2112,6 +2119,9 @@ URL: [url]', 'versioning_info' => 'Versjons info', 'versiontolow' => 'Versjon for lav', 'version_comment' => 'Kommentar til versjon', +'version_comment_changed_email_body' => '', +'version_comment_changed_email_body_html' => '', +'version_comment_changed_email_subject' => '', 'version_deleted_email' => 'Versjon slettet', 'version_deleted_email_body' => 'Versjon slettet Dokument: [name] diff --git a/languages/nl_NL/lang.inc b/languages/nl_NL/lang.inc index d974a2140..1cbc697b7 100644 --- a/languages/nl_NL/lang.inc +++ b/languages/nl_NL/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (1168), gijsbertush (673), pepijn (45), reinoutdijkstra@hotmail.com (270) +// Translators: Admin (1169), gijsbertush (673), pepijn (45), reinoutdijkstra@hotmail.com (270) $text = array( '2_factor_auth' => '2-factor-authenticatie', @@ -619,6 +619,7 @@ URL: [url]', 'extension_manager' => 'Extensies beheren', 'extension_mgr_error_upload' => 'Fout bij het uploaden van de extensie', 'extension_mgr_installed' => 'Geïnstalleerd', +'extension_mgr_no_toggle' => '', 'extension_mgr_no_upload' => 'Installeren nieuwe extensies is niet mogelijk omdat de extensies map niet schrijfbaar is.', 'extension_mgr_no_zipfile' => 'Fout bij uploaden extensie: is geen zipfile', 'extension_mgr_repository' => 'Beschikbaar', @@ -732,7 +733,7 @@ URL: [url]', 'hu_HU' => 'Hongaars', 'id' => 'ID', 'identical_version' => 'Nieuwe versie is identiek aan de bestaande versie', -'id_ID' => '', +'id_ID' => 'Indonesisch', 'import' => 'Importeer', 'importfs' => 'Importeer van bestandssysteem', 'import_extension' => 'Import-extensie', @@ -1833,8 +1834,10 @@ Name: [username] 'splash_added_to_clipboard' => 'Toegevoegd aan klembord', 'splash_add_access' => 'Toegangsrechten toegevoegd', 'splash_add_attribute' => 'Nieuw attribuut toegevoegd', +'splash_add_category' => '', 'splash_add_group' => 'Nieuwe groep toegevoegd', 'splash_add_group_member' => 'Nieuwe groepslid toegevoegd', +'splash_add_keyword' => '', 'splash_add_notify' => '', 'splash_add_role' => 'Nieuwe rol toegevoegd', 'splash_add_task' => 'Taak toegevoegd', @@ -1855,8 +1858,10 @@ Name: [username] 'splash_document_unlocked' => 'Document ontgrendeld', 'splash_edit_access' => 'Wijzig toegangsrechten', 'splash_edit_attribute' => 'Attribuut opgeslagen', +'splash_edit_category' => '', 'splash_edit_event' => 'Gebeurtenis opgeslagen', 'splash_edit_group' => 'Groep opgeslagen', +'splash_edit_keyword' => '', 'splash_edit_role' => 'Rol opgeslagen', 'splash_edit_task' => 'Taak opgeslagen', 'splash_edit_transmittal' => 'Zending opgeslagen', @@ -1887,11 +1892,13 @@ Name: [username] 'splash_removed_from_clipboard' => 'Verwijderd van het klembord', 'splash_rm_attribute' => 'Attribuut verwijderd', 'splash_rm_attr_value' => 'Waarde van attribuut verwijderd', +'splash_rm_category' => '', 'splash_rm_document' => 'Document verwijderd', 'splash_rm_download_link' => 'Download-link verwijderd', 'splash_rm_folder' => 'Map verwijderd', 'splash_rm_group' => 'Groep verwijderd', 'splash_rm_group_member' => 'Lid van de groep verwijderd', +'splash_rm_keyword' => '', 'splash_rm_notify' => '', 'splash_rm_role' => 'Rol verwijderd', 'splash_rm_transmittal' => 'Verzending verwijderd', @@ -2111,6 +2118,9 @@ URL: [url]', 'versioning_info' => 'Versie eigenschappen', 'versiontolow' => 'Versie voor laag', 'version_comment' => 'Commentaar op deze versie', +'version_comment_changed_email_body' => '', +'version_comment_changed_email_body_html' => '', +'version_comment_changed_email_subject' => '', 'version_deleted_email' => 'Versie verwijderd', 'version_deleted_email_body' => 'Version deleted Document: [name] diff --git a/languages/pl_PL/lang.inc b/languages/pl_PL/lang.inc index cc16a1dcc..38681fb79 100644 --- a/languages/pl_PL/lang.inc +++ b/languages/pl_PL/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (1683), netixw (84), romi (93), uGn (112) +// Translators: Admin (1684), netixw (84), romi (93), uGn (112) $text = array( '2_factor_auth' => 'Uwierzytelnianie dwuetapowe', @@ -602,6 +602,7 @@ URL: [url]', 'extension_manager' => 'ZarzÄ…dzanie rozszerzeniami', 'extension_mgr_error_upload' => '', 'extension_mgr_installed' => 'Zainstalowane', +'extension_mgr_no_toggle' => '', 'extension_mgr_no_upload' => 'Wgrywanie nowych rozszerzeÅ„ jest niemożliwe ponieważ folder rozszerzeÅ„ jest zablokowany do zapisu', 'extension_mgr_no_zipfile' => '', 'extension_mgr_repository' => 'DostÄ™pne', @@ -708,7 +709,7 @@ URL: [url]', 'hu_HU' => 'WÄ™gierski', 'id' => 'ID', 'identical_version' => 'Nowa wersja jest identyczna z obecnÄ…', -'id_ID' => '', +'id_ID' => 'Indonezyjski', 'import' => 'Import', 'importfs' => 'Importuj z systemu plików', 'import_extension' => 'Importuj rozszerzenie', @@ -1764,8 +1765,10 @@ Name: [username] 'splash_added_to_clipboard' => 'Dodano do schowka', 'splash_add_access' => 'Dodano prawo dostÄ™pu', 'splash_add_attribute' => 'Dodano nowy atrybut', +'splash_add_category' => '', 'splash_add_group' => 'Dodano nowÄ… grupÄ™', 'splash_add_group_member' => 'Dodano nowego czÅ‚onka grupy', +'splash_add_keyword' => '', 'splash_add_notify' => '', 'splash_add_role' => 'Dodano nowÄ… rolÄ™', 'splash_add_task' => '', @@ -1786,8 +1789,10 @@ Name: [username] 'splash_document_unlocked' => 'Odblokowano dokument', 'splash_edit_access' => 'Prawo dostÄ™pu zostaÅ‚o zmienione', 'splash_edit_attribute' => 'Zapisano atrybuty', +'splash_edit_category' => '', 'splash_edit_event' => 'Wydarzenie zapisane', 'splash_edit_group' => 'Grupa zapisana', +'splash_edit_keyword' => '', 'splash_edit_role' => 'Rola zapisana', 'splash_edit_task' => 'Zadanie zapisane', 'splash_edit_transmittal' => 'PrzesyÅ‚anie zapisane', @@ -1818,11 +1823,13 @@ Name: [username] 'splash_removed_from_clipboard' => 'UsuniÄ™to ze schowka', 'splash_rm_attribute' => 'UsuniÄ™to atrybut', 'splash_rm_attr_value' => 'Wartość atrybutu zostaÅ‚a usuniÄ™ta', +'splash_rm_category' => '', 'splash_rm_document' => 'Dokument usuniÄ™to', 'splash_rm_download_link' => 'UsuniÄ™to link do pobrania', 'splash_rm_folder' => 'Folder usuniÄ™ty', 'splash_rm_group' => 'GrupÄ™ usuniÄ™to', 'splash_rm_group_member' => 'UsuniÄ™to czÅ‚onka grupy', +'splash_rm_keyword' => '', 'splash_rm_notify' => '', 'splash_rm_role' => 'Rola usuniÄ™ta', 'splash_rm_transmittal' => 'Przekazywanie usuniÄ™te', @@ -2042,6 +2049,9 @@ URL: [url]', 'versioning_info' => 'Informacje o wersjach', 'versiontolow' => 'Za niska wersja', 'version_comment' => 'Opis wersji', +'version_comment_changed_email_body' => '', +'version_comment_changed_email_body_html' => '', +'version_comment_changed_email_subject' => '', 'version_deleted_email' => 'Wersja usuniÄ™ta', 'version_deleted_email_body' => 'Wersja zostaÅ‚a usuniÄ™ta Dokument: [name] diff --git a/languages/pt_BR/lang.inc b/languages/pt_BR/lang.inc index dd4ab0b2a..0cf0c03e3 100644 --- a/languages/pt_BR/lang.inc +++ b/languages/pt_BR/lang.inc @@ -626,6 +626,7 @@ URL: [url]', 'extension_manager' => 'Gerenciar extensões', 'extension_mgr_error_upload' => '', 'extension_mgr_installed' => 'Instalado', +'extension_mgr_no_toggle' => '', 'extension_mgr_no_upload' => 'O envio de novas extensões não esta disponível pois o diretório Extensões recebeu a atribuição de Somente Leitura.', 'extension_mgr_no_zipfile' => '', 'extension_mgr_repository' => 'Disponível', @@ -1840,8 +1841,10 @@ Nome: [username] 'splash_added_to_clipboard' => 'Adicionado a área de transferência', 'splash_add_access' => 'Direito de acesso adicionado', 'splash_add_attribute' => 'Novo atributo adicionado', +'splash_add_category' => '', 'splash_add_group' => 'Novo grupo adicionado', 'splash_add_group_member' => 'Novo membro do grupo adicionado', +'splash_add_keyword' => '', 'splash_add_notify' => '', 'splash_add_role' => 'Novo papel adicionado', 'splash_add_task' => '', @@ -1862,8 +1865,10 @@ Nome: [username] 'splash_document_unlocked' => 'Documento desbloqueado', 'splash_edit_access' => 'Direito de acesso alterado', 'splash_edit_attribute' => 'Atributo salvo', +'splash_edit_category' => '', 'splash_edit_event' => 'Evento salvo', 'splash_edit_group' => 'Grupo salvo', +'splash_edit_keyword' => '', 'splash_edit_role' => 'Papel salvo', 'splash_edit_task' => 'Tarefa salva', 'splash_edit_transmittal' => '', @@ -1894,11 +1899,13 @@ Nome: [username] 'splash_removed_from_clipboard' => 'Remover da área de transferência', 'splash_rm_attribute' => 'Atributo removido', 'splash_rm_attr_value' => 'Valor de atributo removido', +'splash_rm_category' => '', 'splash_rm_document' => 'Documento removido', 'splash_rm_download_link' => 'Link de download removido', 'splash_rm_folder' => 'Pasta excluida', 'splash_rm_group' => 'Grupo removido', 'splash_rm_group_member' => 'Membro do grupo removido', +'splash_rm_keyword' => '', 'splash_rm_notify' => '', 'splash_rm_role' => 'Papel removido', 'splash_rm_transmittal' => 'Transmissão excluída', @@ -2118,6 +2125,9 @@ URL: [url]', 'versioning_info' => 'Informação de versionamento', 'versiontolow' => 'Versão para baixo', 'version_comment' => 'Comentário da versão', +'version_comment_changed_email_body' => '', +'version_comment_changed_email_body_html' => '', +'version_comment_changed_email_subject' => '', 'version_deleted_email' => 'Versão eliminado', 'version_deleted_email_body' => 'Versão apagada Documento: [name] diff --git a/languages/ro_RO/lang.inc b/languages/ro_RO/lang.inc index 841ae3522..80935bc24 100644 --- a/languages/ro_RO/lang.inc +++ b/languages/ro_RO/lang.inc @@ -614,6 +614,7 @@ URL: [url]', 'extension_manager' => 'GestionaÈ›i extensiile', 'extension_mgr_error_upload' => '', 'extension_mgr_installed' => 'Instalata', +'extension_mgr_no_toggle' => '', 'extension_mgr_no_upload' => 'Nu se poate incarca o extensie noua pentru ca directorul nu are drepturi de scriere', 'extension_mgr_no_zipfile' => '', 'extension_mgr_repository' => 'Disponibila', @@ -1802,8 +1803,10 @@ URL: [url]', 'splash_added_to_clipboard' => 'Adăugat la clipboard', 'splash_add_access' => '', 'splash_add_attribute' => 'Atribut nou adăugat', +'splash_add_category' => '', 'splash_add_group' => 'Grup nou adăugat', 'splash_add_group_member' => 'Membru grup nou adăugat', +'splash_add_keyword' => '', 'splash_add_notify' => '', 'splash_add_role' => '', 'splash_add_task' => '', @@ -1824,8 +1827,10 @@ URL: [url]', 'splash_document_unlocked' => 'Document deblocat', 'splash_edit_access' => '', 'splash_edit_attribute' => 'Atribut salvat', +'splash_edit_category' => '', 'splash_edit_event' => '', 'splash_edit_group' => 'Grup salvat', +'splash_edit_keyword' => '', 'splash_edit_role' => '', 'splash_edit_task' => '', 'splash_edit_transmittal' => '', @@ -1856,11 +1861,13 @@ URL: [url]', 'splash_removed_from_clipboard' => 'Eliminat din clipboard', 'splash_rm_attribute' => 'Atribut eliminat', 'splash_rm_attr_value' => '', +'splash_rm_category' => '', 'splash_rm_document' => 'Document eliminat', 'splash_rm_download_link' => '', 'splash_rm_folder' => 'Folder È™ters', 'splash_rm_group' => 'Grup eliminat', 'splash_rm_group_member' => 'Membru grup eliminat', +'splash_rm_keyword' => '', 'splash_rm_notify' => '', 'splash_rm_role' => '', 'splash_rm_transmittal' => '', @@ -2080,6 +2087,9 @@ URL: [url]', 'versioning_info' => 'InformaÈ›ii versionare', 'versiontolow' => 'Versiunea e prea mică(veche)', 'version_comment' => '', +'version_comment_changed_email_body' => '', +'version_comment_changed_email_body_html' => '', +'version_comment_changed_email_subject' => '', 'version_deleted_email' => 'Versiune È™tearsă', 'version_deleted_email_body' => 'Versiune È™tearsă Document: [name] diff --git a/languages/ru_RU/lang.inc b/languages/ru_RU/lang.inc index b54ec0622..bdd921bbb 100644 --- a/languages/ru_RU/lang.inc +++ b/languages/ru_RU/lang.inc @@ -614,6 +614,7 @@ URL: [url]', 'extension_manager' => 'Управление раÑширениÑми', 'extension_mgr_error_upload' => '', 'extension_mgr_installed' => 'уÑтановлены', +'extension_mgr_no_toggle' => '', 'extension_mgr_no_upload' => 'Загрузка новых раÑширений невозможна, потому что каталог раÑширений недоÑтупен Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи.', 'extension_mgr_no_zipfile' => '', 'extension_mgr_repository' => 'УÑтановленные', @@ -1809,8 +1810,10 @@ URL: [url]', 'splash_added_to_clipboard' => 'Добавлено в буфер обмена', 'splash_add_access' => '', 'splash_add_attribute' => 'Добавлен новый атрибут', +'splash_add_category' => '', 'splash_add_group' => 'Добавлена Ð½Ð¾Ð²Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð°', 'splash_add_group_member' => 'Добавлен новый член группы', +'splash_add_keyword' => '', 'splash_add_notify' => '', 'splash_add_role' => '', 'splash_add_task' => '', @@ -1831,8 +1834,10 @@ URL: [url]', 'splash_document_unlocked' => 'Документ разблокирован', 'splash_edit_access' => '', 'splash_edit_attribute' => 'Ðтрибут Ñохранён', +'splash_edit_category' => '', 'splash_edit_event' => '', 'splash_edit_group' => 'Группа Ñохранена', +'splash_edit_keyword' => '', 'splash_edit_role' => '', 'splash_edit_task' => '', 'splash_edit_transmittal' => '', @@ -1863,11 +1868,13 @@ URL: [url]', 'splash_removed_from_clipboard' => 'Удалён из буфера обмена', 'splash_rm_attribute' => 'Ðтрибут удалён', 'splash_rm_attr_value' => '', +'splash_rm_category' => '', 'splash_rm_document' => 'Документ удалён', 'splash_rm_download_link' => '', 'splash_rm_folder' => 'Папка удалена', 'splash_rm_group' => 'Группа удалена', 'splash_rm_group_member' => 'Удалён член группы', +'splash_rm_keyword' => '', 'splash_rm_notify' => '', 'splash_rm_role' => '', 'splash_rm_transmittal' => '', @@ -2087,6 +2094,9 @@ URL: [url]', 'versioning_info' => 'Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ верÑиÑÑ…', 'versiontolow' => 'ВерÑÐ¸Ñ Ñлишком ÑтараÑ', 'version_comment' => '', +'version_comment_changed_email_body' => '', +'version_comment_changed_email_body_html' => '', +'version_comment_changed_email_subject' => '', 'version_deleted_email' => 'ВерÑÐ¸Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð°', 'version_deleted_email_body' => 'ВерÑÐ¸Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð° Документ: [name] diff --git a/languages/sk_SK/lang.inc b/languages/sk_SK/lang.inc index 0cd16ac4f..9049e1ff2 100644 --- a/languages/sk_SK/lang.inc +++ b/languages/sk_SK/lang.inc @@ -626,6 +626,7 @@ URL: [url]', 'extension_manager' => 'SpravovaÅ¥ rozšírenia', 'extension_mgr_error_upload' => '', 'extension_mgr_installed' => 'InÅ¡talované', +'extension_mgr_no_toggle' => '', 'extension_mgr_no_upload' => 'Uploading new extensions is not possible because the extentension directory is not writable.', 'extension_mgr_no_zipfile' => '', 'extension_mgr_repository' => 'Available', @@ -1842,8 +1843,10 @@ Meno: [username] 'splash_added_to_clipboard' => 'Pridané do schránky', 'splash_add_access' => 'Prístupové právo pridané', 'splash_add_attribute' => 'Bol pridaný nový atribút', +'splash_add_category' => '', 'splash_add_group' => 'Bola pridaná nová skupina', 'splash_add_group_member' => 'New group member added', +'splash_add_keyword' => '', 'splash_add_notify' => '', 'splash_add_role' => 'Nová rola bola pridaná', 'splash_add_task' => '', @@ -1864,8 +1867,10 @@ Meno: [username] 'splash_document_unlocked' => 'Dokument odomknutý', 'splash_edit_access' => 'Access right changed', 'splash_edit_attribute' => 'Atribút bol uložený', +'splash_edit_category' => '', 'splash_edit_event' => 'UdalosÅ¥ bola uložená', 'splash_edit_group' => 'Skupina bola uložená', +'splash_edit_keyword' => '', 'splash_edit_role' => 'Rola bola uložená', 'splash_edit_task' => '', 'splash_edit_transmittal' => '', @@ -1896,11 +1901,13 @@ Meno: [username] 'splash_removed_from_clipboard' => 'Odstránené zo schránky', 'splash_rm_attribute' => 'Atribút bol odstránený', 'splash_rm_attr_value' => 'Attribute value removed', +'splash_rm_category' => '', 'splash_rm_document' => 'Dokument odstránený', 'splash_rm_download_link' => 'Odkaz na prevzatie bol odstránený', 'splash_rm_folder' => 'Zložka zmazaná', 'splash_rm_group' => 'Skupina bola odstránená', 'splash_rm_group_member' => 'ÄŒlen skupiny odstránený', +'splash_rm_keyword' => '', 'splash_rm_notify' => '', 'splash_rm_role' => 'Rola bola odstránená', 'splash_rm_transmittal' => 'Transmittal deleted', @@ -2120,6 +2127,9 @@ URL: [url]', 'versioning_info' => 'Informácie o verziách', 'versiontolow' => 'Verzia je nízka', 'version_comment' => '', +'version_comment_changed_email_body' => '', +'version_comment_changed_email_body_html' => '', +'version_comment_changed_email_subject' => '', 'version_deleted_email' => 'Verzia zmazana', 'version_deleted_email_body' => 'Verzia bola zmazaná Dokument: [name] diff --git a/languages/sv_SE/lang.inc b/languages/sv_SE/lang.inc index d216e959e..72d625ec1 100644 --- a/languages/sv_SE/lang.inc +++ b/languages/sv_SE/lang.inc @@ -620,6 +620,7 @@ URL: [url]', 'extension_manager' => 'Hantera tillägg', 'extension_mgr_error_upload' => '', 'extension_mgr_installed' => '', +'extension_mgr_no_toggle' => '', 'extension_mgr_no_upload' => '', 'extension_mgr_no_zipfile' => '', 'extension_mgr_repository' => '', @@ -1815,8 +1816,10 @@ Kommentar: [comment]', 'splash_added_to_clipboard' => 'Tillagt till urklipp', 'splash_add_access' => '', 'splash_add_attribute' => 'Nytt attribut tillagt', +'splash_add_category' => '', 'splash_add_group' => 'Ny grupp tillagd', 'splash_add_group_member' => 'Ny gruppmedlem tillagt', +'splash_add_keyword' => '', 'splash_add_notify' => '', 'splash_add_role' => 'Lägg till ny roll', 'splash_add_task' => '', @@ -1837,8 +1840,10 @@ Kommentar: [comment]', 'splash_document_unlocked' => 'Dokument upplÃ¥st', 'splash_edit_access' => '', 'splash_edit_attribute' => 'Attribut sparat', +'splash_edit_category' => '', 'splash_edit_event' => 'Händelse sparad', 'splash_edit_group' => 'Grupp sparad', +'splash_edit_keyword' => '', 'splash_edit_role' => 'Roll sparad', 'splash_edit_task' => '', 'splash_edit_transmittal' => '', @@ -1869,11 +1874,13 @@ Kommentar: [comment]', 'splash_removed_from_clipboard' => 'Borttaget frÃ¥n urklipp', 'splash_rm_attribute' => 'Attribut har tagits bort', 'splash_rm_attr_value' => '', +'splash_rm_category' => '', 'splash_rm_document' => 'Dokument borttaget', 'splash_rm_download_link' => 'Nedladdningslänk borttagen', 'splash_rm_folder' => 'Katalog raderad', 'splash_rm_group' => 'Grupp har tagits bort', 'splash_rm_group_member' => 'Gruppmedlem har tagits bort', +'splash_rm_keyword' => '', 'splash_rm_notify' => '', 'splash_rm_role' => 'Rollen raderad', 'splash_rm_transmittal' => 'Meddelande raderat', @@ -2093,6 +2100,9 @@ URL: [url]', 'versioning_info' => 'Versionsinformation', 'versiontolow' => 'Version för lÃ¥g', 'version_comment' => '', +'version_comment_changed_email_body' => '', +'version_comment_changed_email_body_html' => '', +'version_comment_changed_email_subject' => '', 'version_deleted_email' => 'Version borttagen', 'version_deleted_email_body' => 'Version borttagen Dokument: [name] diff --git a/languages/tr_TR/lang.inc b/languages/tr_TR/lang.inc index d64b377b5..19d25297e 100644 --- a/languages/tr_TR/lang.inc +++ b/languages/tr_TR/lang.inc @@ -608,6 +608,7 @@ URL: [url]', 'extension_manager' => 'Uzantıları düzenle', 'extension_mgr_error_upload' => '', 'extension_mgr_installed' => 'Yüklendi', +'extension_mgr_no_toggle' => '', 'extension_mgr_no_upload' => '', 'extension_mgr_no_zipfile' => '', 'extension_mgr_repository' => 'Mevcut', @@ -1781,8 +1782,10 @@ URL: [url]', 'splash_added_to_clipboard' => 'Panoya eklendi', 'splash_add_access' => '', 'splash_add_attribute' => 'Yeni nitelik eklendi', +'splash_add_category' => '', 'splash_add_group' => 'Yeni grup eklendi', 'splash_add_group_member' => 'Yeni grup üyesi eklendi', +'splash_add_keyword' => '', 'splash_add_notify' => '', 'splash_add_role' => '', 'splash_add_task' => '', @@ -1803,8 +1806,10 @@ URL: [url]', 'splash_document_unlocked' => 'Doküman kiliti açıldı', 'splash_edit_access' => '', 'splash_edit_attribute' => 'Nitelik kaydedildi', +'splash_edit_category' => '', 'splash_edit_event' => '', 'splash_edit_group' => 'Grup kaydedildi', +'splash_edit_keyword' => '', 'splash_edit_role' => '', 'splash_edit_task' => '', 'splash_edit_transmittal' => '', @@ -1835,11 +1840,13 @@ URL: [url]', 'splash_removed_from_clipboard' => 'Panodan silindi', 'splash_rm_attribute' => 'Nitelik silindi', 'splash_rm_attr_value' => '', +'splash_rm_category' => '', 'splash_rm_document' => 'Doküman silindi', 'splash_rm_download_link' => '', 'splash_rm_folder' => 'Klasör silindi', 'splash_rm_group' => 'Grup silindi', 'splash_rm_group_member' => 'Grup üyesi silindi', +'splash_rm_keyword' => '', 'splash_rm_notify' => '', 'splash_rm_role' => '', 'splash_rm_transmittal' => '', @@ -2059,6 +2066,9 @@ URL: [url]', 'versioning_info' => 'Version bilgisi', 'versiontolow' => 'Versiyon düşük', 'version_comment' => 'Versiyon açıklaması', +'version_comment_changed_email_body' => '', +'version_comment_changed_email_body_html' => '', +'version_comment_changed_email_subject' => '', 'version_deleted_email' => 'Versiyon silindi', 'version_deleted_email_body' => 'Versiyon silindi Doküman: [name] diff --git a/languages/uk_UA/lang.inc b/languages/uk_UA/lang.inc index a51b70b28..7093afea9 100644 --- a/languages/uk_UA/lang.inc +++ b/languages/uk_UA/lang.inc @@ -614,6 +614,7 @@ URL: [url]', 'extension_manager' => 'ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñми', 'extension_mgr_error_upload' => '', 'extension_mgr_installed' => '', +'extension_mgr_no_toggle' => '', 'extension_mgr_no_upload' => '', 'extension_mgr_no_zipfile' => '', 'extension_mgr_repository' => '', @@ -1802,8 +1803,10 @@ URL: [url]', 'splash_added_to_clipboard' => 'Додано до буферу обміну', 'splash_add_access' => '', 'splash_add_attribute' => 'Додано новий атрибут', +'splash_add_category' => '', 'splash_add_group' => 'Додана нова група', 'splash_add_group_member' => 'Додано нового члена групи', +'splash_add_keyword' => '', 'splash_add_notify' => '', 'splash_add_role' => '', 'splash_add_task' => '', @@ -1824,8 +1827,10 @@ URL: [url]', 'splash_document_unlocked' => 'Документ розблоковано', 'splash_edit_access' => '', 'splash_edit_attribute' => 'Ðтрибут збережено', +'splash_edit_category' => '', 'splash_edit_event' => '', 'splash_edit_group' => 'Групу збережено', +'splash_edit_keyword' => '', 'splash_edit_role' => '', 'splash_edit_task' => '', 'splash_edit_transmittal' => '', @@ -1856,11 +1861,13 @@ URL: [url]', 'splash_removed_from_clipboard' => 'Видалити з буферу обміну', 'splash_rm_attribute' => 'Ðтрибут видалено', 'splash_rm_attr_value' => '', +'splash_rm_category' => '', 'splash_rm_document' => 'Документ видалено', 'splash_rm_download_link' => '', 'splash_rm_folder' => 'Папку видалено', 'splash_rm_group' => 'Групу видалено', 'splash_rm_group_member' => 'Члена групи видалено', +'splash_rm_keyword' => '', 'splash_rm_notify' => '', 'splash_rm_role' => '', 'splash_rm_transmittal' => '', @@ -2080,6 +2087,9 @@ URL: [url]', 'versioning_info' => 'Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ верÑÑ–Ñ—', 'versiontolow' => 'ВерÑÑ–Ñ Ð½Ð°Ð´Ñ‚Ð¾ Ñтара', 'version_comment' => '', +'version_comment_changed_email_body' => '', +'version_comment_changed_email_body_html' => '', +'version_comment_changed_email_subject' => '', 'version_deleted_email' => 'ВерÑÑ–ÑŽ видалено', 'version_deleted_email_body' => 'ВерÑÑ–ÑŽ видалено Документ: [name] diff --git a/languages/zh_CN/lang.inc b/languages/zh_CN/lang.inc index cefa9abfe..ff6ac991e 100644 --- a/languages/zh_CN/lang.inc +++ b/languages/zh_CN/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (1233), archonwang (469), fengjohn (5), yang86 (1) +// Translators: Admin (1234), archonwang (469), fengjohn (5), yang86 (1) $text = array( '2_factor_auth' => 'åŒé‡è®¤è¯', @@ -616,6 +616,7 @@ URL: [url]', 'extension_manager' => '扩展管ç†å™¨', 'extension_mgr_error_upload' => '', 'extension_mgr_installed' => '已安装', +'extension_mgr_no_toggle' => '', 'extension_mgr_no_upload' => '无法上传新扩展,extentension目录ä¸å¯å†™', 'extension_mgr_no_zipfile' => '', 'extension_mgr_repository' => 'å¯å¾—到', @@ -722,7 +723,7 @@ URL: [url]', 'hu_HU' => '匈牙利语', 'id' => 'åºå·', 'identical_version' => '新版本与当å‰ç‰ˆæœ¬å®Œå…¨ç›¸åŒ', -'id_ID' => '', +'id_ID' => 'å°åº¦å°¼è¥¿äºš', 'import' => '导入', 'importfs' => '从文件系统中导入', 'import_extension' => '导入扩展', @@ -1789,8 +1790,10 @@ URL: [url]', 'splash_added_to_clipboard' => 'å·²å¤åˆ¶', 'splash_add_access' => '访问æƒé™', 'splash_add_attribute' => '属性已添加', +'splash_add_category' => '', 'splash_add_group' => '组已添加', 'splash_add_group_member' => '组æˆå‘˜å·²æ·»åŠ ', +'splash_add_keyword' => '', 'splash_add_notify' => '', 'splash_add_role' => '添加新角色', 'splash_add_task' => '', @@ -1811,8 +1814,10 @@ URL: [url]', 'splash_document_unlocked' => '已解é”的文档', 'splash_edit_access' => '访问æƒé™å·²æ”¹å˜', 'splash_edit_attribute' => '属性已ä¿å­˜', +'splash_edit_category' => '', 'splash_edit_event' => '事件已ä¿å­˜', 'splash_edit_group' => '组已ä¿å­˜', +'splash_edit_keyword' => '', 'splash_edit_role' => '角色已ä¿å­˜', 'splash_edit_task' => '任务ä¿å­˜', 'splash_edit_transmittal' => '', @@ -1843,11 +1848,13 @@ URL: [url]', 'splash_removed_from_clipboard' => '已从剪切æ¿åˆ é™¤', 'splash_rm_attribute' => '属性已移除', 'splash_rm_attr_value' => '属性值删除', +'splash_rm_category' => '', 'splash_rm_document' => '文档已被移除', 'splash_rm_download_link' => '下载链接已移除', 'splash_rm_folder' => '已删除的文件夹', 'splash_rm_group' => '组信æ¯å·²åˆ é™¤', 'splash_rm_group_member' => '组æˆå‘˜å·²ç§»é™¤', +'splash_rm_keyword' => '', 'splash_rm_notify' => '', 'splash_rm_role' => '角色已删除', 'splash_rm_transmittal' => 'ä¼ é€åˆ é™¤', @@ -2058,6 +2065,9 @@ URL: [url]', 'versioning_info' => '版本信æ¯', 'versiontolow' => '版本低', 'version_comment' => '', +'version_comment_changed_email_body' => '', +'version_comment_changed_email_body_html' => '', +'version_comment_changed_email_subject' => '', 'version_deleted_email' => '版本已被删除', 'version_deleted_email_body' => '版本已删除 文档: [name] diff --git a/languages/zh_TW/lang.inc b/languages/zh_TW/lang.inc index 114c8fc19..0382868c7 100644 --- a/languages/zh_TW/lang.inc +++ b/languages/zh_TW/lang.inc @@ -626,6 +626,7 @@ URL: [url]', 'extension_manager' => '擴充套件的管ç†', 'extension_mgr_error_upload' => '', 'extension_mgr_installed' => '已安è£', +'extension_mgr_no_toggle' => '', 'extension_mgr_no_upload' => '無法上傳新的套件因為套件目錄無法寫入', 'extension_mgr_no_zipfile' => '', 'extension_mgr_repository' => 'å¯ç”¨', @@ -1840,8 +1841,10 @@ URL: [url]', 'splash_added_to_clipboard' => '已複製', 'splash_add_access' => 'æ–°å¢žè¨ªå•æ¬Šé™', 'splash_add_attribute' => '新增屬性', +'splash_add_category' => '', 'splash_add_group' => '新增群組', 'splash_add_group_member' => '新群組會員新增', +'splash_add_keyword' => '', 'splash_add_notify' => '', 'splash_add_role' => '新增一個角色', 'splash_add_task' => '', @@ -1862,8 +1865,10 @@ URL: [url]', 'splash_document_unlocked' => '已解鎖的文件', 'splash_edit_access' => 'è¨ªå•æ¬Šé™å·²æ›´æ”¹', 'splash_edit_attribute' => '屬性已ä¿å­˜', +'splash_edit_category' => '', 'splash_edit_event' => '活動已ä¿å­˜', 'splash_edit_group' => '群組已ä¿å­˜', +'splash_edit_keyword' => '', 'splash_edit_role' => '角色已ä¿å­˜', 'splash_edit_task' => '任務已儲存', 'splash_edit_transmittal' => '傳é€å·²å„²å­˜', @@ -1894,11 +1899,13 @@ URL: [url]', 'splash_removed_from_clipboard' => '已從剪貼簿中刪除', 'splash_rm_attribute' => '屬性已刪除', 'splash_rm_attr_value' => '屬性值已刪除', +'splash_rm_category' => '', 'splash_rm_document' => '文件已被移除', 'splash_rm_download_link' => 'åˆªé™¤äº†ä¸‹è¼‰éˆæŽ¥', 'splash_rm_folder' => '已刪除的資料夾', 'splash_rm_group' => '組已刪除', 'splash_rm_group_member' => '組æˆå“¡å·²åˆªé™¤', +'splash_rm_keyword' => '', 'splash_rm_notify' => '', 'splash_rm_role' => '角色已刪除', 'splash_rm_transmittal' => '傳é€å·²åˆªé™¤', @@ -2118,6 +2125,9 @@ URL: [url]', 'versioning_info' => '版本資訊', 'versiontolow' => '版本低', 'version_comment' => '版本註釋', +'version_comment_changed_email_body' => '', +'version_comment_changed_email_body_html' => '', +'version_comment_changed_email_subject' => '', 'version_deleted_email' => '版本已被刪除', 'version_deleted_email_body' => '版本已刪除 文件:[name] From c9fae356b39d4c2dd5226a1510f6069341a8a145 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 25 Feb 2022 12:31:57 +0100 Subject: [PATCH 353/413] add callbacks on onPostUpdateAttribute and onPostAddAttribute --- SeedDMS_Core/Core/inc.ClassAttribute.php | 8 ++++++++ SeedDMS_Core/Core/inc.ClassObject.php | 9 +++++++++ SeedDMS_Core/package.xml | 1 + 3 files changed, 18 insertions(+) diff --git a/SeedDMS_Core/Core/inc.ClassAttribute.php b/SeedDMS_Core/Core/inc.ClassAttribute.php index a51d6c81f..fff7423a3 100644 --- a/SeedDMS_Core/Core/inc.ClassAttribute.php +++ b/SeedDMS_Core/Core/inc.ClassAttribute.php @@ -259,6 +259,14 @@ class SeedDMS_Core_Attribute { /* {{{ */ $this->_value = $value; + /* Check if 'onPostUpdateAttribute' callback is set */ + if(isset($this->_dms->callbacks['onPostUpdateAttribute'])) { + foreach($this->_dms->callbacks['onPostUpdateAttribute'] as $callback) { + if(!call_user_func($callback[0], $callback[1], $this->_obj, $this->_attrdef, $value)) { + } + } + } + return true; } /* }}} */ diff --git a/SeedDMS_Core/Core/inc.ClassObject.php b/SeedDMS_Core/Core/inc.ClassObject.php index bc02592fa..0f7b90eb8 100644 --- a/SeedDMS_Core/Core/inc.ClassObject.php +++ b/SeedDMS_Core/Core/inc.ClassObject.php @@ -269,6 +269,15 @@ class SeedDMS_Core_Object { /* {{{ */ $attr = new SeedDMS_Core_Attribute($db->getInsertID($tablename), $this, $attrdef, $value); $attr->setDMS($this->_dms); $this->_attributes[$attrdef->getId()] = $attr; + + /* Check if 'onPostAddAttribute' callback is set */ + if(isset($this->_dms->callbacks['onPostAddAttribute'])) { + foreach($this->_dms->callbacks['onPostAddAttribute'] as $callback) { + if(!call_user_func($callback[0], $callback[1], $this, $attrdef, $value)) { + } + } + } + return true; } diff --git a/SeedDMS_Core/package.xml b/SeedDMS_Core/package.xml index 16fc74a1c..c6a2273ee 100644 --- a/SeedDMS_Core/package.xml +++ b/SeedDMS_Core/package.xml @@ -28,6 +28,7 @@ - getLastWorkflowLog() returns a workflow entry even if the workflow has ended - backport setFileType() from 6.0.x - add SeedDMS_Core_File::fileExtension() +- add callbacks on onPostUpdateAttribute and onPostAddAttribute From 3ad44fac0b958edba701d59c0a944b02a777b0c8 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 25 Feb 2022 18:38:00 +0100 Subject: [PATCH 354/413] pass old value to onPostUpdateAttribute callback --- SeedDMS_Core/Core/inc.ClassAttribute.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/SeedDMS_Core/Core/inc.ClassAttribute.php b/SeedDMS_Core/Core/inc.ClassAttribute.php index fff7423a3..088f4e73c 100644 --- a/SeedDMS_Core/Core/inc.ClassAttribute.php +++ b/SeedDMS_Core/Core/inc.ClassAttribute.php @@ -257,12 +257,13 @@ class SeedDMS_Core_Attribute { /* {{{ */ if (!$db->getResult($queryStr)) return false; + $oldvalue = $this->_value; $this->_value = $value; /* Check if 'onPostUpdateAttribute' callback is set */ if(isset($this->_dms->callbacks['onPostUpdateAttribute'])) { foreach($this->_dms->callbacks['onPostUpdateAttribute'] as $callback) { - if(!call_user_func($callback[0], $callback[1], $this->_obj, $this->_attrdef, $value)) { + if(!call_user_func($callback[0], $callback[1], $this->_obj, $this->_attrdef, $value, $oldvalue)) { } } } From 8052b761653466dffe710f2ba662d17522868a73 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 25 Feb 2022 19:14:54 +0100 Subject: [PATCH 355/413] set ETag --- controllers/class.Download.php | 1 + 1 file changed, 1 insertion(+) diff --git a/controllers/class.Download.php b/controllers/class.Download.php index 839ddb66c..6641e31df 100644 --- a/controllers/class.Download.php +++ b/controllers/class.Download.php @@ -58,6 +58,7 @@ class SeedDMS_Controller_Download extends SeedDMS_Controller_Common { header("Content-Disposition: attachment; filename=\"" . $efilename . "\"; filename*=UTF-8''".$efilename); header("Content-Type: " . $content->getMimeType()); header("Cache-Control: must-revalidate"); + header("ETag: ".$content->getChecksum()); sendFile($dms->contentDir.$content->getPath()); } From 2d6c1d635b7be53f7934011781e433c26257ed73 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Sat, 26 Feb 2022 14:15:06 +0100 Subject: [PATCH 356/413] add onPostRemoveAttribute callback --- SeedDMS_Core/Core/inc.ClassObject.php | 9 +++++++++ SeedDMS_Core/package.xml | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/SeedDMS_Core/Core/inc.ClassObject.php b/SeedDMS_Core/Core/inc.ClassObject.php index 0f7b90eb8..a2f0b1ae4 100644 --- a/SeedDMS_Core/Core/inc.ClassObject.php +++ b/SeedDMS_Core/Core/inc.ClassObject.php @@ -298,6 +298,7 @@ class SeedDMS_Core_Object { /* {{{ */ $this->getAttributes(); } if(isset($this->_attributes[$attrdef->getId()])) { + $oldvalue = $this->_attributes[$attrdef->getId()]->getValue(); switch(get_class($this)) { case $this->_dms->getClassname('document'): $queryStr = "DELETE FROM `tblDocumentAttributes` WHERE `document`=".$this->_id." AND `attrdef`=".$attrdef->getId(); @@ -315,6 +316,14 @@ class SeedDMS_Core_Object { /* {{{ */ if (!$res) return false; + /* Check if 'onPostRemoveAttribute' callback is set */ + if(isset($this->_dms->callbacks['onPostRemoveAttribute'])) { + foreach($this->_dms->callbacks['onPostRemoveAttribute'] as $callback) { + if(!call_user_func($callback[0], $callback[1], $this, $attrdef, $oldvalue)) { + } + } + } + unset($this->_attributes[$attrdef->getId()]); } return true; diff --git a/SeedDMS_Core/package.xml b/SeedDMS_Core/package.xml index c6a2273ee..b06963a7f 100644 --- a/SeedDMS_Core/package.xml +++ b/SeedDMS_Core/package.xml @@ -28,7 +28,7 @@ - getLastWorkflowLog() returns a workflow entry even if the workflow has ended - backport setFileType() from 6.0.x - add SeedDMS_Core_File::fileExtension() -- add callbacks on onPostUpdateAttribute and onPostAddAttribute +- add callbacks on onPostUpdateAttribute, onPostRemoveAttribute, onPostAddAttribute From fc44fdf537c877c37dbe20c66ca8dae8f7c4be80 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Wed, 2 Mar 2022 07:31:25 +0100 Subject: [PATCH 357/413] fix second parameter passed to setDefaultAccess() --- SeedDMS_Core/Core/inc.ClassDocument.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SeedDMS_Core/Core/inc.ClassDocument.php b/SeedDMS_Core/Core/inc.ClassDocument.php index 820eb413c..e1c03801d 100644 --- a/SeedDMS_Core/Core/inc.ClassDocument.php +++ b/SeedDMS_Core/Core/inc.ClassDocument.php @@ -749,7 +749,7 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ * * @return bool */ - function setDefaultAccess($mode, $noclean="false") { /* {{{ */ + function setDefaultAccess($mode, $noclean=false) { /* {{{ */ $db = $this->_dms->getDB(); if($mode < M_LOWEST_RIGHT || $mode > M_HIGHEST_RIGHT) From c810e99a6b14f18efa95f33698c6a58f37f0b220 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Wed, 2 Mar 2022 07:32:05 +0100 Subject: [PATCH 358/413] use backticks in sql statement --- SeedDMS_Core/Core/inc.ClassDocument.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SeedDMS_Core/Core/inc.ClassDocument.php b/SeedDMS_Core/Core/inc.ClassDocument.php index e1c03801d..cdf3b256e 100644 --- a/SeedDMS_Core/Core/inc.ClassDocument.php +++ b/SeedDMS_Core/Core/inc.ClassDocument.php @@ -1027,10 +1027,10 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ } $modeStr = ""; if ($mode!=M_ANY) { - $modeStr = " AND mode".$op.(int)$mode; + $modeStr = " AND `mode`".$op.(int)$mode; } $queryStr = "SELECT * FROM `tblACLs` WHERE `targetType` = ".T_DOCUMENT. - " AND target = " . $this->_id . $modeStr . " ORDER BY `targetType`"; + " AND `target` = " . $this->_id . $modeStr . " ORDER BY `targetType`"; $resArr = $db->getResultArray($queryStr); if (is_bool($resArr) && !$resArr) return false; From fc71efe437ec36adf5c9955a7e677d72a41e6107 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Wed, 2 Mar 2022 07:34:12 +0100 Subject: [PATCH 359/413] enhance description of addAccess() --- SeedDMS_Core/Core/inc.ClassDocument.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/SeedDMS_Core/Core/inc.ClassDocument.php b/SeedDMS_Core/Core/inc.ClassDocument.php index cdf3b256e..e55f17ff0 100644 --- a/SeedDMS_Core/Core/inc.ClassDocument.php +++ b/SeedDMS_Core/Core/inc.ClassDocument.php @@ -1049,8 +1049,10 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ /** * Add access right to folder - * This function may change in the future. Instead of passing the a flag + * This function may change in the future. Instead of passing a flag * and a user/group id a user or group object will be expected. + * Starting with version 5.1.25 this method will first check if there + * is already an access right for the user/group. * * @param integer $mode access mode * @param integer $userOrGroupID id of user or group From 1e5930fb98738cadb5fac5a44b0f42015ba8e09a Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Wed, 2 Mar 2022 07:34:32 +0100 Subject: [PATCH 360/413] fix line indenting --- SeedDMS_Core/Core/inc.ClassDocument.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/SeedDMS_Core/Core/inc.ClassDocument.php b/SeedDMS_Core/Core/inc.ClassDocument.php index e55f17ff0..d170f0c28 100644 --- a/SeedDMS_Core/Core/inc.ClassDocument.php +++ b/SeedDMS_Core/Core/inc.ClassDocument.php @@ -1068,6 +1068,13 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ $userOrGroup = ($isUser) ? "`userID`" : "`groupID`"; + /* Adding a second access right will return false */ + $queryStr = "SELECT * FROM `tblACLs` WHERE `targetType` = ".T_DOCUMENT. + " AND `target` = " . $this->_id . " AND ". $userOrGroup . " = ".$userOrGroupID; + $resArr = $db->getResultArray($queryStr); + if (is_bool($resArr) || $resArr) + return false; + $queryStr = "INSERT INTO `tblACLs` (`target`, `targetType`, ".$userOrGroup.", `mode`) VALUES (".$this->_id.", ".T_DOCUMENT.", " . (int) $userOrGroupID . ", " .(int) $mode. ")"; if (!$db->getResult($queryStr)) From 54fb986a59274d4b2c9d52552251e8ff215492de Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Wed, 2 Mar 2022 07:35:24 +0100 Subject: [PATCH 361/413] rename getApproversList() to __getApproversList(), it's deprecated --- SeedDMS_Core/Core/inc.ClassDocument.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SeedDMS_Core/Core/inc.ClassDocument.php b/SeedDMS_Core/Core/inc.ClassDocument.php index d170f0c28..d9ca707bf 100644 --- a/SeedDMS_Core/Core/inc.ClassDocument.php +++ b/SeedDMS_Core/Core/inc.ClassDocument.php @@ -2585,7 +2585,7 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ * This function is deprecated. Use * {@see SeedDMS_Core_Document::getReadAccessList()} instead. */ - function getApproversList() { /* {{{ */ + protected function __getApproversList() { /* {{{ */ return $this->getReadAccessList(0, 0, 0); } /* }}} */ From 313f5185480bbe64b0f0c569d3c3f7e2507a73e5 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Wed, 2 Mar 2022 07:36:16 +0100 Subject: [PATCH 362/413] add isType() for links and files, set _public to a bool value --- SeedDMS_Core/Core/inc.ClassDocument.php | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/SeedDMS_Core/Core/inc.ClassDocument.php b/SeedDMS_Core/Core/inc.ClassDocument.php index d9ca707bf..4b2f9e89b 100644 --- a/SeedDMS_Core/Core/inc.ClassDocument.php +++ b/SeedDMS_Core/Core/inc.ClassDocument.php @@ -5550,9 +5550,18 @@ class SeedDMS_Core_DocumentLink { /* {{{ */ $this->_document = $document; $this->_target = $target; $this->_userID = $userID; - $this->_public = $public; + $this->_public = $public ? true : false; } + /** + * Check if this object is of type 'documentlink'. + * + * @param string $type type of object + */ + public function isType($type) { /* {{{ */ + return $type == 'documentlink'; + } /* }}} */ + /** * @return int */ @@ -5725,9 +5734,18 @@ class SeedDMS_Core_DocumentFile { /* {{{ */ $this->_orgFileName = $orgFileName; $this->_name = $name; $this->_version = $version; - $this->_public = $public; + $this->_public = $public ? true : false; } + /** + * Check if this object is of type 'documentfile'. + * + * @param string $type type of object + */ + public function isType($type) { /* {{{ */ + return $type == 'documentfile'; + } /* }}} */ + /** * @return int */ From bc0e03c6c644431ac3c1367250fc95d65ab413ca Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Wed, 2 Mar 2022 07:37:20 +0100 Subject: [PATCH 363/413] set default value of setDate() to null --- SeedDMS_Core/Core/inc.ClassDocument.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SeedDMS_Core/Core/inc.ClassDocument.php b/SeedDMS_Core/Core/inc.ClassDocument.php index 4b2f9e89b..85531ebb7 100644 --- a/SeedDMS_Core/Core/inc.ClassDocument.php +++ b/SeedDMS_Core/Core/inc.ClassDocument.php @@ -5794,7 +5794,7 @@ class SeedDMS_Core_DocumentFile { /* {{{ */ * to the current timestamp * @return boolean true on success */ - function setDate($date) { /* {{{ */ + function setDate($date=null) { /* {{{ */ $db = $this->_document->getDMS()->getDB(); if(!$date) From c355fecc8b33c311d533687d164c52245a00d9ef Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Wed, 2 Mar 2022 07:37:58 +0100 Subject: [PATCH 364/413] set _public to a bool value, used to be int --- SeedDMS_Core/Core/inc.ClassDocument.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SeedDMS_Core/Core/inc.ClassDocument.php b/SeedDMS_Core/Core/inc.ClassDocument.php index 85531ebb7..34677a6c8 100644 --- a/SeedDMS_Core/Core/inc.ClassDocument.php +++ b/SeedDMS_Core/Core/inc.ClassDocument.php @@ -5909,7 +5909,7 @@ class SeedDMS_Core_DocumentFile { /* {{{ */ if (!$db->getResult($queryStr)) return false; - $this->_public = $newPublic ? 1 : 0; + $this->_public = $newPublic ? true : false; return true; } /* }}} */ From c218f9ab29641530bcceca5877efe83305e4f35e Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Wed, 2 Mar 2022 07:42:15 +0100 Subject: [PATCH 365/413] fix line indenting --- SeedDMS_Core/Core/inc.ClassFolder.php | 117 ++++++++++++++------------ 1 file changed, 62 insertions(+), 55 deletions(-) diff --git a/SeedDMS_Core/Core/inc.ClassFolder.php b/SeedDMS_Core/Core/inc.ClassFolder.php index c7863347d..6672982c9 100644 --- a/SeedDMS_Core/Core/inc.ClassFolder.php +++ b/SeedDMS_Core/Core/inc.ClassFolder.php @@ -126,27 +126,27 @@ class SeedDMS_Core_Folder extends SeedDMS_Core_Object { $this->_inheritAccess = $inheritAccess; $this->_defaultAccess = $defaultAccess; $this->_sequence = $sequence; - $this->_notifyList = array(); - /* Cache */ - $this->clearCache(); + $this->_notifyList = array(); + /* Cache */ + $this->clearCache(); } /* }}} */ /** - * Clear cache of this instance. - * - * The result of some expensive database actions (e.g. get all subfolders - * or documents) will be saved in a class variable to speed up consecutive - * calls of the same method. If a second call of the same method shall not - * use the cache, then it must be cleared. - * + * Clear cache of this instance. + * + * The result of some expensive database actions (e.g. get all subfolders + * or documents) will be saved in a class variable to speed up consecutive + * calls of the same method. If a second call of the same method shall not + * use the cache, then it must be cleared. + * */ public function clearCache() { /* {{{ */ - $this->_parent = null; - $this->_owner = null; - $this->_subFolders = null; - $this->_documents = null; - $this->_accessList = null; - $this->_notifyList = null; + $this->_parent = null; + $this->_owner = null; + $this->_subFolders = null; + $this->_documents = null; + $this->_accessList = null; + $this->_notifyList = null; } /* }}} */ /** @@ -384,16 +384,16 @@ class SeedDMS_Core_Folder extends SeedDMS_Core_Object { /** * Check if the folder is subfolder * - * This method checks if the current folder is in the path of the - * passed subfolder. In that case the current folder is a parent, - * grant parent, grant grant parent, etc. of the subfolder or - * to say it differently the passed folder is somewhere below the - * current folder. + * This method checks if the current folder is in the path of the + * passed subfolder. In that case the current folder is a parent, + * grant parent, grant grant parent, etc. of the subfolder or + * to say it differently the passed folder is somewhere below the + * current folder. * - * This is basically the opposite of {@see SeedDMS_Core_Folder::isDescendant()} - * - * @param SeedDMS_Core_Folder $subfolder folder to be checked if it is - * a subfolder on any level of the current folder + * This is basically the opposite of {@see SeedDMS_Core_Folder::isDescendant()} + * + * @param SeedDMS_Core_Folder $subfolder folder to be checked if it is + * a subfolder on any level of the current folder * @return bool true if passed folder is a subfolder, otherwise false */ function isSubFolder($subfolder) { /* {{{ */ @@ -797,22 +797,22 @@ class SeedDMS_Core_Folder extends SeedDMS_Core_Object { /** * Check, if this folder is a subfolder of a given folder - * - * This is basically the opposite of {@see SeedDMS_Core_Folder::isSubFolder()} - * + * + * This is basically the opposite of {@see SeedDMS_Core_Folder::isSubFolder()} + * * @param object $folder parent folder * @return boolean true if folder is a subfolder */ - function isDescendant($folder) { /* {{{ */ - /* If the current folder has no parent it cannot be a descendant */ + function isDescendant($folder) { /* {{{ */ + /* If the current folder has no parent it cannot be a descendant */ if(!$this->getParent()) - return false; - /* Check if the passed folder is the parent of the current folder. - * In that case the current folder is a subfolder of the passed folder. - */ + return false; + /* Check if the passed folder is the parent of the current folder. + * In that case the current folder is a subfolder of the passed folder. + */ if($this->getParent()->getID() == $folder->getID()) - return true; - /* Recursively go up to the root folder */ + return true; + /* Recursively go up to the root folder */ return $this->getParent()->isDescendant($folder); } /* }}} */ @@ -824,13 +824,13 @@ class SeedDMS_Core_Folder extends SeedDMS_Core_Object { * @return int number of documents or false in case of an error */ function hasDocuments() { /* {{{ */ - $db = $this->_dms->getDB(); - /* Do not use the cache because it may not contain all documents if - * the former call getDocuments() limited the number of documents + $db = $this->_dms->getDB(); + /* Do not use the cache because it may not contain all documents if + * the former call getDocuments() limited the number of documents if (isset($this->_documents)) { return count($this->_documents); - } - */ + } + */ $queryStr = "SELECT count(*) as c FROM `tblDocuments` WHERE `folder` = " . $this->_id; $resArr = $db->getResultArray($queryStr); if (is_bool($resArr) && !$resArr) @@ -1333,7 +1333,7 @@ class SeedDMS_Core_Folder extends SeedDMS_Core_Object { else //if ($row["groupID"] != -1) array_push($this->_accessList[$mode]["groups"], new SeedDMS_Core_GroupAccess($this->_dms->getGroup($row["groupID"]), (int) $row["mode"])); } - } + } return $this->_accessList[$mode]; } /* }}} */ @@ -1373,11 +1373,18 @@ class SeedDMS_Core_Folder extends SeedDMS_Core_Object { function addAccess($mode, $userOrGroupID, $isUser) { /* {{{ */ $db = $this->_dms->getDB(); - if($mode < M_NONE || $mode > M_ALL) - return false; + if($mode < M_NONE || $mode > M_ALL) + return false; $userOrGroup = ($isUser) ? "`userID`" : "`groupID`"; + /* Adding a second access right will return false */ + $queryStr = "SELECT * FROM `tblACLs` WHERE `targetType` = ".T_FOLDER. + " AND `target` = " . $this->_id . " AND ". $userOrGroup . " = ".$userOrGroupID; + $resArr = $db->getResultArray($queryStr); + if (is_bool($resArr) || $resArr) + return false; + $queryStr = "INSERT INTO `tblACLs` (`target`, `targetType`, ".$userOrGroup.", `mode`) VALUES (".$this->_id.", ".T_FOLDER.", " . (int) $userOrGroupID . ", " .(int) $mode. ")"; if (!$db->getResult($queryStr)) @@ -1450,18 +1457,18 @@ class SeedDMS_Core_Folder extends SeedDMS_Core_Object { /** * Get the access mode of a user on the folder - * - * The access mode is either M_READ, M_READWRITE, M_ALL, or M_NONE. - * It is determined - * - by the user (admins and owners have always access mode M_ALL) - * - by the access list for the user (possibly inherited) - * - by the default access mode - * + * + * The access mode is either M_READ, M_READWRITE, M_ALL, or M_NONE. + * It is determined + * - by the user (admins and owners have always access mode M_ALL) + * - by the access list for the user (possibly inherited) + * - by the default access mode + * * This function returns the access mode for a given user. An administrator * and the owner of the folder has unrestricted access. A guest user has * read only access or no access if access rights are further limited - * by access control lists all the default access. - * All other users have access rights according + * by access control lists all the default access. + * All other users have access rights according * to the access control lists or the default access. This function will * recursively check for access rights of parent folders if access rights * are inherited. @@ -1472,8 +1479,8 @@ class SeedDMS_Core_Folder extends SeedDMS_Core_Object { * will be passed as a third parameter to the callback. It contains * the operation for which the access mode is retrieved. It is for example * set to 'removeDocument' if the access mode is used to check for sufficient - * permission on deleting a document. This callback could be used to - * override any existing access mode in a certain context. + * permission on deleting a document. This callback could be used to + * override any existing access mode in a certain context. * * @param SeedDMS_Core_User $user user for which access shall be checked * @param string $context context in which the access mode is requested From e107139f1b9a4bd537747e54fd6b2ce15afa6396 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Wed, 2 Mar 2022 07:42:31 +0100 Subject: [PATCH 366/413] use backticks in sql statement --- SeedDMS_Core/Core/inc.ClassFolder.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/SeedDMS_Core/Core/inc.ClassFolder.php b/SeedDMS_Core/Core/inc.ClassFolder.php index 6672982c9..11cb88026 100644 --- a/SeedDMS_Core/Core/inc.ClassFolder.php +++ b/SeedDMS_Core/Core/inc.ClassFolder.php @@ -1312,14 +1312,14 @@ class SeedDMS_Core_Folder extends SeedDMS_Core_Object { return $this->_parent->getAccessList($mode, $op); } - if (!isset($this->_accessList[$mode])) { + if (!isset($this->_accessList[$mode])) { if ($op!=O_GTEQ && $op!=O_LTEQ && $op!=O_EQ) { return false; } $modeStr = ""; if ($mode!=M_ANY) { - $modeStr = " AND mode".$op.(int)$mode; - } + $modeStr = " AND `mode`".$op.(int)$mode; + } $queryStr = "SELECT * FROM `tblACLs` WHERE `targetType` = ".T_FOLDER. " AND `target` = " . $this->_id . $modeStr . " ORDER BY `targetType`"; $resArr = $db->getResultArray($queryStr); From 5b5ac45e21a0dda2b1aaa44d95b93368e7a08cf7 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 3 Mar 2022 12:41:42 +0100 Subject: [PATCH 367/413] no need to create access restriction class --- out/out.PasswordForgotten.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/out/out.PasswordForgotten.php b/out/out.PasswordForgotten.php index 636044ab4..2573d8d59 100644 --- a/out/out.PasswordForgotten.php +++ b/out/out.PasswordForgotten.php @@ -32,7 +32,7 @@ include $settings->_rootDir . "languages/" . $settings->_language . "/lang.inc"; $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); $view = UI::factory($theme, $tmp[1], array('dms'=>$dms)); -$accessop = new SeedDMS_AccessOperation($dms, null, $user, $settings); +//$accessop = new SeedDMS_AccessOperation($dms, null, $user, $settings); if (isset($_REQUEST["referuri"]) && strlen($_REQUEST["referuri"])>0) { $referrer = $_REQUEST["referuri"]; @@ -40,9 +40,8 @@ if (isset($_REQUEST["referuri"]) && strlen($_REQUEST["referuri"])>0) { $referrer = ''; } if($view) { - $view->setParam('accessobject', $accessop); $view->setParam('referrer', $referrer); - $view->setParam('accessobject', $accessop); +// $view->setParam('accessobject', $accessop); $view($_GET); exit; } From 10876c64953a7bdbc81586a745da2065a2f77144 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 3 Mar 2022 12:45:49 +0100 Subject: [PATCH 368/413] check if attribute is a string before using it in an sql statement --- SeedDMS_Core/Core/inc.ClassDMS.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SeedDMS_Core/Core/inc.ClassDMS.php b/SeedDMS_Core/Core/inc.ClassDMS.php index 32cb15d70..6b02de3c6 100644 --- a/SeedDMS_Core/Core/inc.ClassDMS.php +++ b/SeedDMS_Core/Core/inc.ClassDMS.php @@ -1542,7 +1542,7 @@ class SeedDMS_Core_DMS { if(is_string($attribute)) $attribute = array($attribute); $searchAttributes[] = "EXISTS (SELECT NULL FROM `tblFolderAttributes` WHERE `tblFolderAttributes`.`attrdef`=".$attrdefid." AND (`tblFolderAttributes`.`value` like '%".$valueset[0].implode("%' OR `tblFolderAttributes`.`value` like '%".$valueset[0], $attribute)."%') AND `tblFolderAttributes`.`folder`=`tblFolders`.`id`)"; - } else { + } elseif(is_string($attribute)) { $searchAttributes[] = "EXISTS (SELECT NULL FROM `tblFolderAttributes` WHERE `tblFolderAttributes`.`attrdef`=".$attrdefid." AND `tblFolderAttributes`.`value`='".$attribute."' AND `tblFolderAttributes`.`folder`=`tblFolders`.`id`)"; } } else { @@ -1554,7 +1554,7 @@ class SeedDMS_Core_DMS { $kkll[] = "`tblFolderAttributes`.`value`<='".$attribute['to']."'"; if($kkll) $searchAttributes[] = "EXISTS (SELECT NULL FROM `tblFolderAttributes` WHERE `tblFolderAttributes`.`attrdef`=".$attrdefid." AND ".implode(' AND ', $kkll)." AND `tblFolderAttributes`.`folder`=`tblFolders`.`id`)"; - } else { + } elseif(is_string($attribute)) { $searchAttributes[] = "EXISTS (SELECT NULL FROM `tblFolderAttributes` WHERE `tblFolderAttributes`.`attrdef`=".$attrdefid." AND `tblFolderAttributes`.`value` like '%".$attribute."%' AND `tblFolderAttributes`.`folder`=`tblFolders`.`id`)"; } } From 37d49474fdb37e5c6303efa2823c3d2478cf584f Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 4 Mar 2022 08:14:20 +0100 Subject: [PATCH 369/413] fix searching for document content with a custom attribute having a value set --- SeedDMS_Core/Core/inc.ClassDMS.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SeedDMS_Core/Core/inc.ClassDMS.php b/SeedDMS_Core/Core/inc.ClassDMS.php index 6b02de3c6..04daed032 100644 --- a/SeedDMS_Core/Core/inc.ClassDMS.php +++ b/SeedDMS_Core/Core/inc.ClassDMS.php @@ -1755,7 +1755,7 @@ class SeedDMS_Core_DMS { } } if($attrdef->getObjType() == SeedDMS_Core_AttributeDefinition::objtype_documentcontent || $attrdef->getObjType() == SeedDMS_Core_AttributeDefinition::objtype_all) { - if($attrdef->getValueSet()) { + if($valueset = $attrdef->getValueSet()) { if($attrdef->getMultipleValues()) { /** @noinspection PhpUndefinedVariableInspection */ if(is_string($attribute)) From c83c2c21f4b1026d4ac460a13f5658bc12cd4fc9 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 4 Mar 2022 08:14:41 +0100 Subject: [PATCH 370/413] add note for 5.1.25 --- SeedDMS_Core/package.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/SeedDMS_Core/package.xml b/SeedDMS_Core/package.xml index b06963a7f..39fb25552 100644 --- a/SeedDMS_Core/package.xml +++ b/SeedDMS_Core/package.xml @@ -29,6 +29,7 @@ - backport setFileType() from 6.0.x - add SeedDMS_Core_File::fileExtension() - add callbacks on onPostUpdateAttribute, onPostRemoveAttribute, onPostAddAttribute +- fix searching for document content with a custom attribute having a value set From 8e542b448f3a8691434da443453c20a20c787e07 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 4 Mar 2022 08:15:38 +0100 Subject: [PATCH 371/413] include Exception.php --- SeedDMS_SQLiteFTS/SQLiteFTS.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/SeedDMS_SQLiteFTS/SQLiteFTS.php b/SeedDMS_SQLiteFTS/SQLiteFTS.php index 0a3b710e8..338a79e1c 100644 --- a/SeedDMS_SQLiteFTS/SQLiteFTS.php +++ b/SeedDMS_SQLiteFTS/SQLiteFTS.php @@ -41,4 +41,9 @@ require_once('SQLiteFTS/QueryHit.php'); */ require_once('SQLiteFTS/IndexedDocument.php'); +/** + * @uses SeedDMS_SQLiteFTS_Exception + */ +require_once('SQLiteFTS/Exception.php'); + ?> From fe43b944c91e39f25d7fa67f2365814a6857b71f Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 4 Mar 2022 08:15:52 +0100 Subject: [PATCH 372/413] throw exeption in find() --- SeedDMS_SQLiteFTS/SQLiteFTS/Indexer.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/SeedDMS_SQLiteFTS/SQLiteFTS/Indexer.php b/SeedDMS_SQLiteFTS/SQLiteFTS/Indexer.php index 71de007e8..fd2ec197c 100644 --- a/SeedDMS_SQLiteFTS/SQLiteFTS/Indexer.php +++ b/SeedDMS_SQLiteFTS/SQLiteFTS/Indexer.php @@ -190,7 +190,8 @@ class SeedDMS_SQLiteFTS_Indexer { $sql .= " WHERE docs MATCH ".$this->_conn->quote($query); $res = $this->_conn->query($sql." GROUP BY `".$facetname."`"); if(!$res) - return false; + throw new SeedDMS_SQLiteFTS_Exception("Counting records in facet \"$facetname\" failed."); +// return false; $facets[$facetname] = array(); foreach($res as $row) { if($row[$facetname] && $row['c']) { @@ -220,7 +221,8 @@ class SeedDMS_SQLiteFTS_Indexer { $sql .= " WHERE docs MATCH ".$this->_conn->quote($query); $res = $this->_conn->query($sql." GROUP BY `record_type`"); if(!$res) - return false; + throw new SeedDMS_SQLiteFTS_Exception("Counting records in facet \"record_type\" failed."); +// return false; $facets['record_type'] = array('document'=>0, 'folder'=>0); foreach($res as $row) { $facets['record_type'][$row['record_type']] = $row['c']; @@ -239,6 +241,8 @@ class SeedDMS_SQLiteFTS_Indexer { if(!empty($limit['offset'])) $sql .= " OFFSET ".(int) $limit['offset']; $res = $this->_conn->query($sql); + if(!$res) + throw new SeedDMS_SQLiteFTS_Exception("Searching for documents failed."); $hits = array(); if($res) { foreach($res as $rec) { From e4fb5d525556f863f2112595bcaee176102fa92d Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 4 Mar 2022 08:17:07 +0100 Subject: [PATCH 373/413] set session to null if login fails to prevent warning when error msg is shown --- op/op.Login.php | 1 + 1 file changed, 1 insertion(+) diff --git a/op/op.Login.php b/op/op.Login.php index 541ccb936..e9763ff97 100644 --- a/op/op.Login.php +++ b/op/op.Login.php @@ -89,6 +89,7 @@ $controller->setParam('sesstheme', $sesstheme); $controller->setParam('referuri', $referuri); $controller->setParam('session', $session); if(!$controller->run()) { + $session = null; add_log_line("login failed", PEAR_LOG_ERR); _printMessage(getMLText($controller->getErrorMsg()), getMLText($controller->getErrorMsg())."\n"); exit; From 210f5cb1c44021ccc818e387662709f1b9cf2b7b Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 4 Mar 2022 08:17:34 +0100 Subject: [PATCH 374/413] no need to include inc.ClassEmailNotify.php --- op/op.PasswordForgotten.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/op/op.PasswordForgotten.php b/op/op.PasswordForgotten.php index c51794fc1..bfe719972 100644 --- a/op/op.PasswordForgotten.php +++ b/op/op.PasswordForgotten.php @@ -27,17 +27,16 @@ include("../inc/inc.Extension.php"); include("../inc/inc.DBInit.php"); include("../inc/inc.ClassSession.php"); include("../inc/inc.ClassUI.php"); -include("../inc/inc.ClassEmailNotify.php"); +//include("../inc/inc.ClassEmailNotify.php"); include $settings->_rootDir . "languages/" . $settings->_language . "/lang.inc"; function _printMessage($heading, $message) { - UI::htmlStartPage($heading, "password"); UI::globalBanner(); UI::pageNavigation($heading); UI::contentContainer($message."

" . getMLText("login") . "

\n"); - UI::htmlEndPage(); + UI::htmlEndPage(); return; } From a4afc1cfa71a208f7b08655009d1fe433de22473 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 4 Mar 2022 08:18:30 +0100 Subject: [PATCH 375/413] cast status to int when indexing it --- SeedDMS_SQLiteFTS/SQLiteFTS/Search.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SeedDMS_SQLiteFTS/SQLiteFTS/Search.php b/SeedDMS_SQLiteFTS/SQLiteFTS/Search.php index a227b24e1..d9a793974 100644 --- a/SeedDMS_SQLiteFTS/SQLiteFTS/Search.php +++ b/SeedDMS_SQLiteFTS/SQLiteFTS/Search.php @@ -113,7 +113,7 @@ class SeedDMS_SQliteFTS_Search { if(!empty($fields['status'])) { if($querystr) $querystr .= ' AND '; - $status = array_map(function($v){return $v+10;}, $fields['status']); + $status = array_map(function($v){return (int)$v+10;}, $fields['status']); $querystr .= '(status:'; $querystr .= implode(' OR status:', $status); $querystr .= ')'; From 8fdc15119838d00579f0fc1a246afbde5e48e7d0 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 4 Mar 2022 08:20:45 +0100 Subject: [PATCH 376/413] check if passed categories actually exist --- out/out.Search.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/out/out.Search.php b/out/out.Search.php index 8f11fe025..2c1e21368 100644 --- a/out/out.Search.php +++ b/out/out.Search.php @@ -69,9 +69,10 @@ if($fullsearch) { $category = $_GET['category']; foreach($_GET['category'] as $catid) { if($catid) { - $cat = $dms->getDocumentCategory($catid); - $categories[] = $cat; - $categorynames[] = $cat->getName(); + if($cat = $dms->getDocumentCategory($catid)) { + $categories[] = $cat; + $categorynames[] = $cat->getName(); + } } } } From 27b207f4dbf1e44259414a7f2a7c147151eea139 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 4 Mar 2022 08:21:03 +0100 Subject: [PATCH 377/413] add note --- SeedDMS_SQLiteFTS/package.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/SeedDMS_SQLiteFTS/package.xml b/SeedDMS_SQLiteFTS/package.xml index a550a95b0..0c397f520 100644 --- a/SeedDMS_SQLiteFTS/package.xml +++ b/SeedDMS_SQLiteFTS/package.xml @@ -26,6 +26,7 @@ - close pipes in execWithTimeout(), also return exit code of command - add support for fts5 (make it the default) - add class SeedDMS_SQLiteFTS_Field +- throw exeption in find() instead of returning false From 4d0b9a651131ae54a784923e0f9b156254c74f65 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 4 Mar 2022 08:23:49 +0100 Subject: [PATCH 378/413] start new version 1.0.17 --- SeedDMS_SQLiteFTS/package.xml | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/SeedDMS_SQLiteFTS/package.xml b/SeedDMS_SQLiteFTS/package.xml index 0c397f520..a0d990920 100644 --- a/SeedDMS_SQLiteFTS/package.xml +++ b/SeedDMS_SQLiteFTS/package.xml @@ -11,11 +11,11 @@ uwe@steinmann.cx yes - 2021-05-10 + 2022-03-04 - 1.0.16 - 1.0.16 + 1.0.17 + 1.0.17 stable @@ -23,9 +23,6 @@ GPL License -- close pipes in execWithTimeout(), also return exit code of command -- add support for fts5 (make it the default) -- add class SeedDMS_SQLiteFTS_Field - throw exeption in find() instead of returning false @@ -337,5 +334,23 @@ add user to list of terms - add indexing folders + + 2021-05-10 + + + 1.0.16 + 1.0.16 + + + stable + stable + + GPL License + +- close pipes in execWithTimeout(), also return exit code of command +- add support for fts5 (make it the default) +- add class SeedDMS_SQLiteFTS_Field + + From 1c4fbbed96dc96faced24188a95a1aef2cc1426b Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 4 Mar 2022 08:27:17 +0100 Subject: [PATCH 379/413] fix php warning in getAttributeEditField() --- views/bootstrap/class.Bootstrap.php | 4 ++-- views/bootstrap4/class.Bootstrap4.php | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/views/bootstrap/class.Bootstrap.php b/views/bootstrap/class.Bootstrap.php index 2abdc1d56..b4a43c96b 100644 --- a/views/bootstrap/class.Bootstrap.php +++ b/views/bootstrap/class.Bootstrap.php @@ -1811,7 +1811,7 @@ $(document).ready(function() { $content .= $this->getDocumentChooserHtml("attr".$attrdef->getId(), $target, $fieldname."[".$attrdef->getId()."]"); break; case SeedDMS_Core_AttributeDefinition::type_user: - $objvalue = $attribute ? (is_object($attribute) ? $attribute->getValueAsArray() : $attribute) : array(); + $objvalue = $attribute ? (is_object($attribute) ? $attribute->getValueAsArray() : (is_string($attribute) ? [$attribute] : $attribute)) : array(); $users = $dms->getAllUsers(); if($users) { $allowempty = $attrdef->getMinValues() == 0; @@ -1831,7 +1831,7 @@ $(document).ready(function() { } break; case SeedDMS_Core_AttributeDefinition::type_group: - $objvalue = $attribute ? (is_object($attribute) ? $attribute->getValueAsArray() : $attribute) : array(); + $objvalue = $attribute ? (is_object($attribute) ? $attribute->getValueAsArray() : (is_string($attribute) ? [$attribute] : $attribute)) : array(); $groups = $dms->getAllGroups(); if($groups) { $allowempty = $attrdef->getMinValues() == 0; diff --git a/views/bootstrap4/class.Bootstrap4.php b/views/bootstrap4/class.Bootstrap4.php index 1dabe4e01..181c1238e 100644 --- a/views/bootstrap4/class.Bootstrap4.php +++ b/views/bootstrap4/class.Bootstrap4.php @@ -1856,7 +1856,7 @@ $(document).ready(function() { $content .= $this->getDocumentChooserHtml("attr".$attrdef->getId(), $target, $fieldname."[".$attrdef->getId()."]"); break; case SeedDMS_Core_AttributeDefinition::type_user: - $objvalue = $attribute ? (is_object($attribute) ? $attribute->getValueAsArray() : $attribute) : array(); + $objvalue = $attribute ? (is_object($attribute) ? $attribute->getValueAsArray() : (is_string($attribute) ? [$attribute] : $attribute)) : array(); $users = $dms->getAllUsers(); if($users) { $allowempty = $attrdef->getMinValues() == 0; @@ -1876,7 +1876,7 @@ $(document).ready(function() { } break; case SeedDMS_Core_AttributeDefinition::type_group: - $objvalue = $attribute ? (is_object($attribute) ? $attribute->getValueAsArray() : $attribute) : array(); + $objvalue = $attribute ? (is_object($attribute) ? $attribute->getValueAsArray() : (is_string($attribute) ? [$attribute] : $attribute)) : array(); $groups = $dms->getAllGroups(); if($groups) { $allowempty = $attrdef->getMinValues() == 0; From c5dbe1995d5fbcc15dbad3415b62a1180a759d46 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 4 Mar 2022 08:27:46 +0100 Subject: [PATCH 380/413] fix possible cross side scripting --- views/bootstrap/class.Help.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/bootstrap/class.Help.php b/views/bootstrap/class.Help.php index 39283c9fa..610de136a 100644 --- a/views/bootstrap/class.Help.php +++ b/views/bootstrap/class.Help.php @@ -60,7 +60,7 @@ class SeedDMS_View_Help extends SeedDMS_Theme_Style { $this->columnEnd(); $this->columnStart(8); ?> - + params['session']->getLanguage()."/help/".$context.".html"; From 85f7332e06b67cc94e709ac19e456d2727245625 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 7 Mar 2022 15:19:22 +0100 Subject: [PATCH 381/413] comment and attributes can be passed to uploaddocument --- op/op.Ajax.php | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/op/op.Ajax.php b/op/op.Ajax.php index 70a75c1f4..87b4e0815 100644 --- a/op/op.Ajax.php +++ b/op/op.Ajax.php @@ -743,6 +743,16 @@ switch($command) { } } + if(isset($_POST["attributes"])) + $attributes = $_POST["attributes"]; + else + $attributes = array(); + + if(isset($_POST["comment"])) + $comment = trim($_POST["comment"]); + else + $comment = ''; + // Get the list of reviewers and approvers for this document. $reviewers = array(); $approvers = array(); @@ -784,7 +794,7 @@ switch($command) { $controller->setParam('folder', $folder); $controller->setParam('fulltextservice', $fulltextservice); $controller->setParam('name', $name); - $controller->setParam('comment', ''); + $controller->setParam('comment', $comment); $controller->setParam('expires', $expires); $controller->setParam('keywords', ''); $controller->setParam('categories', $cats); @@ -802,7 +812,7 @@ switch($command) { $controller->setParam('approvers', $approvers); $controller->setParam('reqversion', 1); $controller->setParam('versioncomment', ''); - $controller->setParam('attributes', array()); + $controller->setParam('attributes', $attributes); $controller->setParam('attributesversion', array()); $controller->setParam('workflow', $workflow); $controller->setParam('notificationgroups', array()); From 22b054f764f5bad4c468d26c2eb89c4111e93c29 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 7 Mar 2022 15:19:42 +0100 Subject: [PATCH 382/413] comment and attributes can passed to document uploaded by drag&drop --- views/bootstrap/styles/application.js | 29 ++++++++++++++++++++++++++ views/bootstrap4/styles/application.js | 29 ++++++++++++++++++++++++++ 2 files changed, 58 insertions(+) diff --git a/views/bootstrap/styles/application.js b/views/bootstrap/styles/application.js index 6795d4586..0d56d5d5b 100644 --- a/views/bootstrap/styles/application.js +++ b/views/bootstrap/styles/application.js @@ -777,6 +777,31 @@ function onAddClipboard(ev) { /* {{{ */ } } + // formData - instance of FormData object + // data - object to post + SeedDMSUpload.getFormData = function(formData, data, previousKey) { + if (data instanceof Object) { + Object.keys(data).forEach(key => { + const value = data[key]; + if (value instanceof Object && !Array.isArray(value)) { + return this.getFormData(formData, value, key); + } + if (previousKey) { + key = `${previousKey}[${key}]`; + } + if (Array.isArray(value)) { + value.forEach(val => { + formData.append(`${key}[]`, val); + }); + } else { + formData.append(key, value); + } + }); + } else { + formData.append(previousKey, data); + } + } + SeedDMSUpload.handleFileUpload = function(files,obj,statusbar) { /* target is set for the quick upload area */ var target_id = obj.data('target'); @@ -794,8 +819,12 @@ function onAddClipboard(ev) { /* {{{ */ fd.append('targettype', target_type); fd.append('folderid', target_id); fd.append('formtoken', obj.data('uploadformtoken')); + if (typeof obj.data('comment') !== 'undefined') { + fd.append('comment', obj.data('comment')); + } fd.append('userfile', files[i]); fd.append('command', 'uploaddocument'); + this.getFormData(fd, obj.data('attributes'), 'attributes'); // fd.append('path', files[i].webkitRelativePath); statusbar.parent().show(); diff --git a/views/bootstrap4/styles/application.js b/views/bootstrap4/styles/application.js index a404f2def..9064aae17 100644 --- a/views/bootstrap4/styles/application.js +++ b/views/bootstrap4/styles/application.js @@ -808,6 +808,31 @@ function onAddClipboard(ev) { /* {{{ */ } } + // formData - instance of FormData object + // data - object to post + SeedDMSUpload.getFormData = function(formData, data, previousKey) { + if (data instanceof Object) { + Object.keys(data).forEach(key => { + const value = data[key]; + if (value instanceof Object && !Array.isArray(value)) { + return this.getFormData(formData, value, key); + } + if (previousKey) { + key = `${previousKey}[${key}]`; + } + if (Array.isArray(value)) { + value.forEach(val => { + formData.append(`${key}[]`, val); + }); + } else { + formData.append(key, value); + } + }); + } else { + formData.append(previousKey, data); + } + } + SeedDMSUpload.handleFileUpload = function(files,obj,statusbar) { /* target is set for the quick upload area */ var target_id = obj.data('target'); @@ -825,8 +850,12 @@ function onAddClipboard(ev) { /* {{{ */ fd.append('targettype', target_type); fd.append('folderid', target_id); fd.append('formtoken', obj.data('uploadformtoken')); + if (typeof obj.data('comment') !== 'undefined') { + fd.append('comment', obj.data('comment')); + } fd.append('userfile', files[i]); fd.append('command', 'uploaddocument'); + this.getFormData(fd, obj.data('attributes'), 'attributes'); // fd.append('path', files[i].webkitRelativePath); statusbar.parent().show(); From 2fa2d33fe97fdf9221053929821d1419a706d6c6 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Wed, 9 Mar 2022 08:38:19 +0100 Subject: [PATCH 383/413] categories and keywords can be set in uploaddocument --- op/op.Ajax.php | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/op/op.Ajax.php b/op/op.Ajax.php index 87b4e0815..937c05cfc 100644 --- a/op/op.Ajax.php +++ b/op/op.Ajax.php @@ -781,13 +781,21 @@ switch($command) { $workflow = $user->getMandatoryWorkflow(); } - $expires = false; if($settings->_presetExpirationDate) { $expires = strtotime($settings->_presetExpirationDate); } + $keywords = isset($_POST["keywords"]) ? trim($_POST["keywords"]) : ''; + + $categories = isset($_POST["categories"]) ? $_POST["categories"] : null; $cats = array(); + if($categories) { + foreach($categories as $catid) { + if($cat = $dms->getDocumentCategory($catid)) + $cats[] = $cat; + } + } $controller = Controller::factory('AddDocument', array('dms'=>$dms, 'user'=>$user)); $controller->setParam('documentsource', 'upload'); @@ -796,7 +804,7 @@ switch($command) { $controller->setParam('name', $name); $controller->setParam('comment', $comment); $controller->setParam('expires', $expires); - $controller->setParam('keywords', ''); + $controller->setParam('keywords', $keywords); $controller->setParam('categories', $cats); $controller->setParam('owner', $user); $controller->setParam('userfiletmp', $userfiletmp); From a7212a0708ed60e9715b6fc8204be465bba3a5ff Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Wed, 9 Mar 2022 08:39:20 +0100 Subject: [PATCH 384/413] read categories and keywords from drag and drop area --- views/bootstrap/styles/application.js | 4 ++++ views/bootstrap4/styles/application.js | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/views/bootstrap/styles/application.js b/views/bootstrap/styles/application.js index 0d56d5d5b..7f3db95b8 100644 --- a/views/bootstrap/styles/application.js +++ b/views/bootstrap/styles/application.js @@ -822,9 +822,13 @@ function onAddClipboard(ev) { /* {{{ */ if (typeof obj.data('comment') !== 'undefined') { fd.append('comment', obj.data('comment')); } + if (typeof obj.data('keywords') !== 'undefined') { + fd.append('keywords', obj.data('keywords')); + } fd.append('userfile', files[i]); fd.append('command', 'uploaddocument'); this.getFormData(fd, obj.data('attributes'), 'attributes'); + this.getFormData(fd, obj.data('categories'), 'categories'); // fd.append('path', files[i].webkitRelativePath); statusbar.parent().show(); diff --git a/views/bootstrap4/styles/application.js b/views/bootstrap4/styles/application.js index 9064aae17..e95fe79cd 100644 --- a/views/bootstrap4/styles/application.js +++ b/views/bootstrap4/styles/application.js @@ -853,9 +853,13 @@ function onAddClipboard(ev) { /* {{{ */ if (typeof obj.data('comment') !== 'undefined') { fd.append('comment', obj.data('comment')); } + if (typeof obj.data('keywords') !== 'undefined') { + fd.append('keywords', obj.data('keywords')); + } fd.append('userfile', files[i]); fd.append('command', 'uploaddocument'); this.getFormData(fd, obj.data('attributes'), 'attributes'); + this.getFormData(fd, obj.data('categories'), 'categories'); // fd.append('path', files[i].webkitRelativePath); statusbar.parent().show(); From 6fc17be5d95e8f00fbe5c124c4acd377fa2ce69d Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Wed, 23 Mar 2022 11:27:42 +0100 Subject: [PATCH 385/413] fix xss attack in DefaultKeywords --- CHANGELOG | 1 + views/bootstrap/class.DefaultKeywords.php | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index a1966b83a..6ca2bc415 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -9,6 +9,7 @@ - various improvements for workflows - output splash message when removing, editing, adding a category or keyword - extensions cannot be disabled/enabled if configuration file is not writeable +- prevent cross site scripting in views/bootstrap/class.DefaultKeywords.php -------------------------------------------------------------------------------- Changes in version 5.1.24 diff --git a/views/bootstrap/class.DefaultKeywords.php b/views/bootstrap/class.DefaultKeywords.php index 8ecec6fdf..eb96e797b 100644 --- a/views/bootstrap/class.DefaultKeywords.php +++ b/views/bootstrap/class.DefaultKeywords.php @@ -140,7 +140,7 @@ $(document).ready( function() { 'element'=>'input', 'type'=>'text', 'name'=>'name', - 'value'=>$category->getName() + 'value'=>($category ? htmlspecialchars($category->getName()) : '') ) ); $this->contentContainerEnd(); From 8d3077cd34749b9fdf89a6028258a35c3a9a9543 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 24 Mar 2022 16:09:03 +0100 Subject: [PATCH 386/413] set placeholder of textarea in formField() --- views/bootstrap4/class.Bootstrap4.php | 1 + 1 file changed, 1 insertion(+) diff --git a/views/bootstrap4/class.Bootstrap4.php b/views/bootstrap4/class.Bootstrap4.php index 181c1238e..e1a8b3e97 100644 --- a/views/bootstrap4/class.Bootstrap4.php +++ b/views/bootstrap4/class.Bootstrap4.php @@ -1103,6 +1103,7 @@ background-image: linear-gradient(to bottom, #882222, #111111);; (empty($value['class']) ? ' class="form-control"' : ' class="form-control '.$value['class'].'"'). (!empty($value['rows']) ? ' rows="'.$value['rows'].'"' : ''). (!empty($value['cols']) ? ' cols="'.$value['cols'].'"' : ''). + (!empty($value['placeholder']) ? ' placeholder="'.$value['placeholder'].'"' : ''). (!empty($value['required']) ? ' required="required"' : '').">".(!empty($value['value']) ? $value['value'] : '').""; break; case 'plain': From d68c922152e8a8060dd7fc3ebdd7af685e270e36 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Sat, 26 Mar 2022 18:48:04 +0100 Subject: [PATCH 387/413] fix possible DoS --- CHANGELOG | 1 + op/op.RemoveLog.php | 1 + out/out.RemoveLog.php | 1 + 3 files changed, 3 insertions(+) diff --git a/CHANGELOG b/CHANGELOG index 6ca2bc415..8ebf17ebb 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -10,6 +10,7 @@ - output splash message when removing, editing, adding a category or keyword - extensions cannot be disabled/enabled if configuration file is not writeable - prevent cross site scripting in views/bootstrap/class.DefaultKeywords.php +- fix possible DoS in op/op.RemoveLog.php -------------------------------------------------------------------------------- Changes in version 5.1.24 diff --git a/op/op.RemoveLog.php b/op/op.RemoveLog.php index d698965b6..ab33ad0bb 100644 --- a/op/op.RemoveLog.php +++ b/op/op.RemoveLog.php @@ -41,6 +41,7 @@ if (!isset($_POST["lognames"]) || !is_array($_POST["lognames"])) { $lognames = $_POST["lognames"]; foreach($lognames as $file) { + $file = basename($file, '.log').'.log'; if(!file_exists($settings->_contentDir.'log/'.$file)) { UI::exitError(getMLText("admin_tools"),getMLText("unknown_id")); } diff --git a/out/out.RemoveLog.php b/out/out.RemoveLog.php index 96002c535..4fa445af8 100644 --- a/out/out.RemoveLog.php +++ b/out/out.RemoveLog.php @@ -49,6 +49,7 @@ if(!is_array($_GET["logname"])) else $lognames = $_GET["logname"]; foreach($lognames as $file) { + $file = basename($file, '.log').'.log'; if(!file_exists($settings->_contentDir.'log/'.$file)) { UI::exitError(getMLText("admin_tools"),getMLText("unknown_id")); } From b8924666b641d2e9b2e2720815dc97343736bcfb Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Sun, 27 Mar 2022 17:03:36 +0200 Subject: [PATCH 388/413] ensure log file ends with .log --- op/op.Download.php | 2 +- out/out.LogManagement.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/op/op.Download.php b/op/op.Download.php index c694bd128..c14117499 100644 --- a/op/op.Download.php +++ b/op/op.Download.php @@ -143,7 +143,7 @@ elseif (isset($_GET["arkname"])) { /* {{{ */ } /* }}} */ elseif (isset($_GET["logname"])) { /* {{{ */ - $filename = basename($_GET["logname"]); + $filename = basename($_GET["logname"], '.log').'.log'; // log download diff --git a/out/out.LogManagement.php b/out/out.LogManagement.php index 03a85496e..8f4a95a42 100644 --- a/out/out.LogManagement.php +++ b/out/out.LogManagement.php @@ -35,7 +35,7 @@ if (!$user->isAdmin()) { UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); } -if (isset($_GET["logname"])) $logname=basename($_GET["logname"]); +if (isset($_GET["logname"])) $logname=basename($_GET["logname"], '.log').'.log'; else $logname=NULL; if (isset($_GET["mode"])) $mode=$_GET["mode"]; From 2134754e9103265311c2192f6b963e8a1eb6b8f4 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 28 Mar 2022 19:09:02 +0200 Subject: [PATCH 389/413] show only events of logged in user unless it is admin --- inc/inc.ClassCalendar.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/inc/inc.ClassCalendar.php b/inc/inc.ClassCalendar.php index f7e87aab4..f537c52de 100644 --- a/inc/inc.ClassCalendar.php +++ b/inc/inc.ClassCalendar.php @@ -42,6 +42,9 @@ class SeedDMS_Calendar { $date = mktime(12,0,0, $month, $day, $year); $queryStr = "SELECT * FROM `tblEvents` WHERE `start` <= " . $date . " AND `stop` >= " . $date; + if(!$this->user->isAdmin()) { + $queryStr .= " AND `userID`=".$this->user->getID(); + } $ret = $this->db->getResultArray($queryStr); return $ret; } /* }}} */ @@ -50,6 +53,9 @@ class SeedDMS_Calendar { $queryStr = "SELECT * FROM `tblEvents` WHERE ( `start` <= " . (int) $start . " AND `stop` >= " . (int) $start . " ) ". "OR ( `start` <= " . (int) $stop . " AND `stop` >= " . (int) $stop . " ) ". "OR ( `start` >= " . (int) $start . " AND `stop` <= " . (int) $stop . " )"; + if(!$this->user->isAdmin()) { + $queryStr .= " AND `userID`=".$this->user->getID(); + } $ret = $this->db->getResultArray($queryStr); return $ret; } /* }}} */ From 58de462ff5eed3fe0799143b1390043c231d4e86 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 28 Mar 2022 19:10:03 +0200 Subject: [PATCH 390/413] show user who has created event --- views/bootstrap/class.Calendar.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/views/bootstrap/class.Calendar.php b/views/bootstrap/class.Calendar.php index b85eac334..1ab5792a2 100644 --- a/views/bootstrap/class.Calendar.php +++ b/views/bootstrap/class.Calendar.php @@ -93,6 +93,15 @@ class SeedDMS_View_Calendar extends SeedDMS_Theme_Style { 'required'=>$strictformcheck ) ); + if($euser = $dms->getUser($event['userID'])) { + $this->formField( + getMLText("user"), + array( + 'element'=>'plain', + 'value'=>htmlspecialchars($euser->getFullName()) + ) + ); + } $this->contentContainerEnd(); $this->formSubmit(" ".getMLText('save')); ?> From fe03d581009f52ed32fdd06411a35a15e4588ae8 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 28 Mar 2022 19:10:45 +0200 Subject: [PATCH 391/413] adjust colors and title of event --- views/bootstrap/class.Calendar.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/views/bootstrap/class.Calendar.php b/views/bootstrap/class.Calendar.php index 1ab5792a2..601d04219 100644 --- a/views/bootstrap/class.Calendar.php +++ b/views/bootstrap/class.Calendar.php @@ -195,10 +195,13 @@ class SeedDMS_View_Calendar extends SeedDMS_Theme_Style { $color = '#20a820'; break; case 'add_file': - $color = '#a82020'; + $color = '#c3bf00'; break; case 'status_change': - $color = '#a8a8a8'; + if($item['status'] == S_RELEASED) + $color = '#129a02'; + else + $color = '#a8a8a8'; break; default: $color = '#20a8a8'; @@ -206,7 +209,7 @@ class SeedDMS_View_Calendar extends SeedDMS_Theme_Style { if ($item['document']->getAccessMode($user) >= M_READ) $arr[] = array( 'start'=>$item['date'], - 'title'=>$item['document']->getName()."\n".$item['msg'], + 'title'=>$item['document']->getName()." (".$item['version'].")\n".getOverallStatusText($item['status']), //$item['msg'], 'allDay'=>false, 'color'=>$color, 'type'=>$item['type'], From 78e701d585d1bcf88a2086c9372fa49444d9e6e1 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 28 Mar 2022 19:11:00 +0200 Subject: [PATCH 392/413] date can be passed to AddEvent --- out/out.AddEvent.php | 10 ++++++++++ out/out.Calendar.php | 9 +++++++++ views/bootstrap/class.AddEvent.php | 8 +++++++- views/bootstrap/class.Calendar.php | 8 +++++++- 4 files changed, 33 insertions(+), 2 deletions(-) diff --git a/out/out.AddEvent.php b/out/out.AddEvent.php index 3f81697bb..2562b43ba 100644 --- a/out/out.AddEvent.php +++ b/out/out.AddEvent.php @@ -35,9 +35,19 @@ if ($user->isGuest()) { UI::exitError(getMLText("edit_event"),getMLText("access_denied")); } +if (isset($_GET["day"])) $day=(int) $_GET["day"]; +else $day = ''; +if (isset($_GET["year"])) $year=(int) $_GET["year"]; +else $year = ''; +if (isset($_GET["month"])) $month=(int) $_GET["month"]; +else $month = ''; + $accessop = new SeedDMS_AccessOperation($dms, null, $user, $settings); if($view) { + $view->setParam('day', $day); + $view->setParam('year', $year); + $view->setParam('month', $month); $view->setParam('accessobject', $accessop); $view->setParam('strictformcheck', $settings->_strictFormCheck); $view($_GET); diff --git a/out/out.Calendar.php b/out/out.Calendar.php index fd0a2fb51..ef95b50d8 100644 --- a/out/out.Calendar.php +++ b/out/out.Calendar.php @@ -37,6 +37,12 @@ if (isset($_GET["start"])) $start=$_GET["start"]; else $start = ''; if (isset($_GET["end"])) $end=$_GET["end"]; else $end = ''; +if (isset($_GET["day"])) $day=$_GET["day"]; +else $day = ''; +if (isset($_GET["year"])) $year=$_GET["year"]; +else $year = ''; +if (isset($_GET["month"])) $month=$_GET["month"]; +else $month = ''; if(isset($_GET['documentid']) && $_GET['documentid'] && is_numeric($_GET['documentid'])) { $document = $dms->getDocument($_GET["documentid"]); @@ -69,6 +75,9 @@ if($view) { $view->setParam('calendar', $calendar); $view->setParam('start', $start); $view->setParam('end', $end); + $view->setParam('day', $day); + $view->setParam('year', $year); + $view->setParam('month', $month); $view->setParam('document', $document); $view->setParam('version', $content); $view->setParam('event', $event); diff --git a/views/bootstrap/class.AddEvent.php b/views/bootstrap/class.AddEvent.php index 59be716ef..fa861afda 100644 --- a/views/bootstrap/class.AddEvent.php +++ b/views/bootstrap/class.AddEvent.php @@ -55,6 +55,9 @@ $(document).ready(function() { } /* }}} */ function show() { /* {{{ */ + $day = $this->params['day']; + $year = $this->params['year']; + $month = $this->params['month']; $this->htmlAddHeader(''."\n", 'js'); $this->htmlAddHeader(''."\n", 'js'); @@ -66,7 +69,10 @@ $(document).ready(function() { $this->contentHeading(getMLText("add_event")); - $expdate = getReadableDate(); + if($day && $year && $month) + $expdate = sprintf('%04d-%02d-%02d', $year, $month, $day); + else + $expdate = getReadableDate(); ?>
diff --git a/views/bootstrap/class.Calendar.php b/views/bootstrap/class.Calendar.php index 601d04219..8453ee704 100644 --- a/views/bootstrap/class.Calendar.php +++ b/views/bootstrap/class.Calendar.php @@ -232,8 +232,14 @@ class SeedDMS_View_Calendar extends SeedDMS_Theme_Style { $dms = $this->params['dms']; $user = $this->params['user']; $strictformcheck = $this->params['strictformcheck']; + $day = $this->params['day']; + $year = $this->params['year']; + $month = $this->params['month']; header('Content-Type: application/javascript; charset=UTF-8'); parent::jsTranslations(array('js_form_error', 'js_form_errors')); + $query = ''; + if($day && $year && $month) + $query = http_build_query(['day'=>$day, 'year'=>$year, 'month'=>$month]); ?> $(document).ready(function() { @@ -246,7 +252,7 @@ class SeedDMS_View_Calendar extends SeedDMS_Theme_Style { text: '', click: function() { // alert('clicked the custom button!'); - document.location.href = '../out/out.AddEvent.php'; + document.location.href = '../out/out.AddEvent.php'; } } }, From ef0f9cfc46d528f9e20a1993e38320bc98ee6629 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 28 Mar 2022 19:11:38 +0200 Subject: [PATCH 393/413] add entry for 5.1.25 --- CHANGELOG | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG b/CHANGELOG index 8ebf17ebb..9e982a4bc 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -11,6 +11,7 @@ - extensions cannot be disabled/enabled if configuration file is not writeable - prevent cross site scripting in views/bootstrap/class.DefaultKeywords.php - fix possible DoS in op/op.RemoveLog.php +- show only calendar events of logged in user -------------------------------------------------------------------------------- Changes in version 5.1.24 From e483796c85ac0082a69b9a7384363298339f0da0 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Wed, 30 Mar 2022 11:36:35 +0200 Subject: [PATCH 394/413] add field to filter user list --- views/bootstrap/class.UserList.php | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/views/bootstrap/class.UserList.php b/views/bootstrap/class.UserList.php index 4d90c3860..5ca7b3a05 100644 --- a/views/bootstrap/class.UserList.php +++ b/views/bootstrap/class.UserList.php @@ -31,6 +31,20 @@ */ class SeedDMS_View_UserList extends SeedDMS_Theme_Style { + function js() { /* {{{ */ + header('Content-Type: application/javascript; charset=UTF-8'); +?> + $(document).ready(function(){ + $("#myInput").on("keyup", function() { + var value = $(this).val().toLowerCase(); + $("#myTable tbody tr").filter(function() { + $(this).toggle($(this).text().toLowerCase().indexOf(value) > -1) + }); + }); + }); +params['dms']; $user = $this->params['user']; @@ -48,8 +62,9 @@ class SeedDMS_View_UserList extends SeedDMS_Theme_Style { $sessionmgr = new SeedDMS_SessionMgr($dms->getDB()); ?> -
".getMLText("name"); if(!$fullsearch) { - print " ".($orderby=="n"||$orderby=="na"?' ':($orderby=="nd"?' ':' ')).""; - $tmp['orderby'] = $orderby=="d"||$orderby=="da)"?"dd":"d"; + print $orderby." ".($orderby=="n"||$orderby=="na"?' ':($orderby=="nd"?' ':' ')).""; + $tmp['orderby'] = ($orderby=="d"||$orderby=="da") ? "dd" : "d"; print " ".($orderby=="d"||$orderby=="da"?' ':($orderby=="dd"?' ':' ')).""; } print "".getLongReadableDate($st["date"])."
". htmlspecialchars($moduser->getFullName()) ."
".getLongReadableDate($st["date"])."
". htmlspecialchars($modgroup->getName()) ."
- + +
+ isDisabled() ? " class=\"error\"" : "").">"; From f0e05463af4770eefe2ffa7077266096b175a2d3 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 31 Mar 2022 06:36:48 +0200 Subject: [PATCH 395/413] make methods public, add methods getUser() and setUser() --- inc/inc.ClassCalendar.php | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/inc/inc.ClassCalendar.php b/inc/inc.ClassCalendar.php index f537c52de..65ef21f5d 100644 --- a/inc/inc.ClassCalendar.php +++ b/inc/inc.ClassCalendar.php @@ -33,12 +33,20 @@ class SeedDMS_Calendar { */ protected $db; - function __construct($db, $user) { + public function __construct($db, $user) { /* {{{ */ $this->db = $db; $this->user = $user; - } + } /* }}} */ - function getEvents($day, $month, $year) { /* {{{ */ + public function setUser($user) { /* {{{ */ + $this->user = $user; + } /* }}} */ + + public function getUser() { /* {{{ */ + return $this->user; + } /* }}} */ + + public function getEvents($day, $month, $year) { /* {{{ */ $date = mktime(12,0,0, $month, $day, $year); $queryStr = "SELECT * FROM `tblEvents` WHERE `start` <= " . $date . " AND `stop` >= " . $date; @@ -49,7 +57,7 @@ class SeedDMS_Calendar { return $ret; } /* }}} */ - function getEventsInInterval($start, $stop) { /* {{{ */ + public function getEventsInInterval($start, $stop) { /* {{{ */ $queryStr = "SELECT * FROM `tblEvents` WHERE ( `start` <= " . (int) $start . " AND `stop` >= " . (int) $start . " ) ". "OR ( `start` <= " . (int) $stop . " AND `stop` >= " . (int) $stop . " ) ". "OR ( `start` >= " . (int) $start . " AND `stop` <= " . (int) $stop . " )"; @@ -60,7 +68,7 @@ class SeedDMS_Calendar { return $ret; } /* }}} */ - function addEvent($from, $to, $name, $comment ) { /* {{{ */ + public function addEvent($from, $to, $name, $comment ) { /* {{{ */ $queryStr = "INSERT INTO `tblEvents` (`name`, `comment`, `start`, `stop`, `date`, `userID`) VALUES ". "(".$this->db->qstr($name).", ".$this->db->qstr($comment).", ".(int) $from.", ".(int) $to.", ".$this->db->getCurrentTimestamp().", ".$this->user->getID().")"; @@ -68,7 +76,7 @@ class SeedDMS_Calendar { return $ret; } /* }}} */ - function getEvent($id) { /* {{{ */ + public function getEvent($id) { /* {{{ */ if (!is_numeric($id)) return false; $queryStr = "SELECT * FROM `tblEvents` WHERE `id` = " . (int) $id; @@ -80,7 +88,7 @@ class SeedDMS_Calendar { return $ret[0]; } /* }}} */ - function editEvent($id, $from, $to=null, $name=null, $comment=null) { /* {{{ */ + public function editEvent($id, $from, $to=null, $name=null, $comment=null) { /* {{{ */ if (!is_numeric($id)) return false; $queryStr = "UPDATE `tblEvents` SET `start` = " . (int) $from . ($to !== null ? ", `stop` = " . (int) $to : '') . ($name !== null ? ", `name` = " . $this->db->qstr($name) : '') . ($comment !== null ? ", `comment` = " . $this->db->qstr($comment) : '') . ", `date` = " . $this->db->getCurrentTimestamp() . " WHERE `id` = ". (int) $id; @@ -88,7 +96,7 @@ class SeedDMS_Calendar { return $ret; } /* }}} */ - function delEvent($id) { /* {{{ */ + public function delEvent($id) { /* {{{ */ if (!is_numeric($id)) return false; $queryStr = "DELETE FROM `tblEvents` WHERE `id` = " . (int) $id; From 38ea04c20dbe85c1161e41cc3dd8011c55602f00 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 31 Mar 2022 06:52:27 +0200 Subject: [PATCH 396/413] fix sql in getEventsInInterval() if user is taken into account --- inc/inc.ClassCalendar.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/inc/inc.ClassCalendar.php b/inc/inc.ClassCalendar.php index 65ef21f5d..32af407c1 100644 --- a/inc/inc.ClassCalendar.php +++ b/inc/inc.ClassCalendar.php @@ -58,9 +58,9 @@ class SeedDMS_Calendar { } /* }}} */ public function getEventsInInterval($start, $stop) { /* {{{ */ - $queryStr = "SELECT * FROM `tblEvents` WHERE ( `start` <= " . (int) $start . " AND `stop` >= " . (int) $start . " ) ". + $queryStr = "SELECT * FROM `tblEvents` WHERE (( `start` <= " . (int) $start . " AND `stop` >= " . (int) $start . " ) ". "OR ( `start` <= " . (int) $stop . " AND `stop` >= " . (int) $stop . " ) ". - "OR ( `start` >= " . (int) $start . " AND `stop` <= " . (int) $stop . " )"; + "OR ( `start` >= " . (int) $start . " AND `stop` <= " . (int) $stop . " ))"; if(!$this->user->isAdmin()) { $queryStr .= " AND `userID`=".$this->user->getID(); } From 1e0172dd8fe49ddfe905a76cd8889870cb1f2a00 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Sat, 2 Apr 2022 11:07:31 +0200 Subject: [PATCH 397/413] move workflow protocol on workflow tab --- views/bootstrap/class.ViewDocument.php | 44 ++++++++++++++------------ 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/views/bootstrap/class.ViewDocument.php b/views/bootstrap/class.ViewDocument.php index e1e725e21..db34e7c66 100644 --- a/views/bootstrap/class.ViewDocument.php +++ b/views/bootstrap/class.ViewDocument.php @@ -960,26 +960,6 @@ $(document).ready( function() { } print "\n
\n"; $this->contentContainerEnd(); - - $wkflogs = $latestContent->getWorkflowLog(); - if($wkflogs) { - $this->contentHeading(getMLText("workflow_log")); - $this->contentContainerStart(); - echo ""; - echo "\n"; - echo ""; - foreach($wkflogs as $wkflog) { - echo ""; - echo ""; - echo ""; - $loguser = $wkflog->getUser(); - echo ""; - echo ""; - echo ""; - } - print "\n
".getMLText('date')."".getMLText('action')."".getMLText('user')."".getMLText('comment')."
".getLongReadableDate($wkflog->getDate())."".htmlspecialchars(getMLText('action_'.strtolower($wkflog->getTransition()->getAction()->getName()), array(), $wkflog->getTransition()->getAction()->getName()))."".htmlspecialchars($loguser->getFullName())."".htmlspecialchars($wkflog->getComment())."
\n"; - $this->contentContainerEnd(); - } } ?>
@@ -1444,6 +1424,30 @@ $(document).ready( function() { $this->columnEnd(); } $this->rowEnd(); + + $wkflogs = $latestContent->getWorkflowLog(); + if($wkflogs) { + $this->rowStart(); + $this->columnStart(12); + $this->contentHeading(getMLText("workflow_log")); + $this->contentContainerStart(); + echo ""; + echo "\n"; + echo ""; + foreach($wkflogs as $wkflog) { + echo ""; + echo ""; + echo ""; + $loguser = $wkflog->getUser(); + echo ""; + echo ""; + echo ""; + } + print "\n
".getMLText('date')."".getMLText('action')."".getMLText('user')."".getMLText('comment')."
".getLongReadableDate($wkflog->getDate())."".htmlspecialchars(getMLText('action_'.strtolower($wkflog->getTransition()->getAction()->getName()), array(), $wkflog->getTransition()->getAction()->getName()))."".htmlspecialchars($loguser->getFullName())."".htmlspecialchars($wkflog->getComment())."
\n"; + $this->contentContainerEnd(); + $this->columnEnd(); + $this->rowEnd(); + } ?>
Date: Thu, 7 Apr 2022 13:57:49 +0200 Subject: [PATCH 398/413] addEvent() returns new event --- inc/inc.ClassCalendar.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/inc/inc.ClassCalendar.php b/inc/inc.ClassCalendar.php index 32af407c1..63face820 100644 --- a/inc/inc.ClassCalendar.php +++ b/inc/inc.ClassCalendar.php @@ -73,7 +73,12 @@ class SeedDMS_Calendar { "(".$this->db->qstr($name).", ".$this->db->qstr($comment).", ".(int) $from.", ".(int) $to.", ".$this->db->getCurrentTimestamp().", ".$this->user->getID().")"; $ret = $this->db->getResult($queryStr); - return $ret; + if (!$ret) + return false; + + $event = $this->getEvent((int) $this->db->getInsertID('tblEvents')); + + return $event; } /* }}} */ public function getEvent($id) { /* {{{ */ From de31db0bec989d80ae2e345c9a625cfa7d4b4bf6 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 7 Apr 2022 14:38:32 +0200 Subject: [PATCH 399/413] add new method getLogger() --- inc/inc.Utils.php | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/inc/inc.Utils.php b/inc/inc.Utils.php index 43cb098e8..6a2f8b9c1 100644 --- a/inc/inc.Utils.php +++ b/inc/inc.Utils.php @@ -390,6 +390,27 @@ function utf8_basename($path, $suffix='') { /* {{{ */ return $file; } /* }}} */ +function getLogger($prefix='') { /* {{{ */ + global $settings; + + if($settings->_logFileEnable) { + if ($settings->_logFileRotation=="h") $logname=date("YmdH", time()); + else if ($settings->_logFileRotation=="d") $logname=date("Ymd", time()); + else $logname=date("Ym", time()); + $logname = $settings->_contentDir."log/".$prefix.$logname.".log"; + if(!file_exists($settings->_contentDir.'log')) + @mkdir($settings->_contentDir.'log'); + if(file_exists($settings->_contentDir.'log') && is_dir($settings->_contentDir.'log')) { + $logger = Log::factory('file', $logname); + $logger->setMask(Log::MAX(PEAR_LOG_DEBUG)); + } else + $logger = null; + } else { + $logger = null; + } + return $logger; +} /* }}} */ + /** * Log a message * From f1e200ad83ef4f49c14d7720d846f638746cc7d8 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 7 Apr 2022 14:38:49 +0200 Subject: [PATCH 400/413] use new method getLogger() --- webdav/index.php | 22 ++++------------------ 1 file changed, 4 insertions(+), 18 deletions(-) diff --git a/webdav/index.php b/webdav/index.php index 89d89245d..a6be8fa13 100644 --- a/webdav/index.php +++ b/webdav/index.php @@ -1,25 +1,11 @@ _logFileEnable) { - if ($settings->_logFileRotation=="h") $logname=date("YmdH", time()); - else if ($settings->_logFileRotation=="d") $logname=date("Ymd", time()); - else $logname=date("Ym", time()); - $logname = $settings->_contentDir."log/webdav-".$logname.".log"; - if(!file_exists($settings->_contentDir.'log')) - @mkdir($settings->_contentDir.'log'); - if(file_exists($settings->_contentDir.'log') && is_dir($settings->_contentDir.'log')) { - $logger = Log::factory('file', $logname); - $logger->setMask(Log::MAX(PEAR_LOG_DEBUG)); - } else - $logger = null; -} else { - $logger = null; -} - require_once("../inc/inc.Language.php"); +require_once("../inc/inc.Utils.php"); + +$logger = getLogger('webdav-'); + require_once("../inc/inc.Init.php"); require_once("../inc/inc.Extension.php"); require_once("../inc/inc.DBInit.php"); From 1a9825f999f729e56eec667872f82056e58e41ab Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 7 Apr 2022 18:18:09 +0200 Subject: [PATCH 401/413] add expired docs in the future --- views/bootstrap/class.Calendar.php | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/views/bootstrap/class.Calendar.php b/views/bootstrap/class.Calendar.php index 8453ee704..6365e7c67 100644 --- a/views/bootstrap/class.Calendar.php +++ b/views/bootstrap/class.Calendar.php @@ -175,6 +175,20 @@ class SeedDMS_View_Calendar extends SeedDMS_Theme_Style { $arr[] = array('start'=>date('Y-m-d', $event["start"]), 'end'=>date('Y-m-d', $event["stop"]), 'title'=>$event["name"].($event['comment'] ? "\n".$event['comment'] : ''), 'eventid'=>$event["id"]); } break; + case 'expires': + if(mktime(23,59,59, $end[1], $end[2], $end[0]) > time()) { + $documents = $dms->getDocumentsExpired($this->params['end']); + foreach ($documents as $document){ + $arr[] = array( + 'start'=>date('Y-m-d', $document->getExpires()), + 'allDay'=>true, + 'color'=>'#ff4455', + 'title'=>$document->getName()."\nexpires", + 'documentid'=> $document->getID(), + ); + } + } + break; case 'action': if($this->params['start']) { $from = makeTsFromLongDate($this->params['start'].' 00:00:00'); @@ -293,6 +307,10 @@ class SeedDMS_View_Calendar extends SeedDMS_Theme_Style { { url: 'out.Calendar.php?action=events&eventtype=action', editable: false + }, + { + url: 'out.Calendar.php?action=events&eventtype=expires', + editable: false } ], eventClick: function(event, element) { From f235a8b8d84c319a6e543041cc0041a88fc309ef Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 7 Apr 2022 18:18:43 +0200 Subject: [PATCH 402/413] add item for 5.1.25 --- CHANGELOG | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG b/CHANGELOG index 9e982a4bc..386e08e8c 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -12,6 +12,7 @@ - prevent cross site scripting in views/bootstrap/class.DefaultKeywords.php - fix possible DoS in op/op.RemoveLog.php - show only calendar events of logged in user +- show expired documents in calendar -------------------------------------------------------------------------------- Changes in version 5.1.24 From 3a8ab4286cd070d390372aa43a22f7b6990a821a Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 8 Apr 2022 06:51:40 +0200 Subject: [PATCH 403/413] add expiring documents to calendar --- views/bootstrap/class.Calendar.php | 47 ++++++++++++++++++++---------- 1 file changed, 32 insertions(+), 15 deletions(-) diff --git a/views/bootstrap/class.Calendar.php b/views/bootstrap/class.Calendar.php index 6365e7c67..70093b560 100644 --- a/views/bootstrap/class.Calendar.php +++ b/views/bootstrap/class.Calendar.php @@ -172,7 +172,13 @@ class SeedDMS_View_Calendar extends SeedDMS_Theme_Style { case 'regular': $events = $calendar->getEventsInInterval(mktime(0,0,0, $start[1], $start[2], $start[0]), mktime(23,59,59, $end[1], $end[2], $end[0])); foreach ($events as $event){ - $arr[] = array('start'=>date('Y-m-d', $event["start"]), 'end'=>date('Y-m-d', $event["stop"]), 'title'=>$event["name"].($event['comment'] ? "\n".$event['comment'] : ''), 'eventid'=>$event["id"]); + $arr[] = array( + 'start'=>date('Y-m-d', $event["start"]), + 'end'=>date('Y-m-d', $event["stop"]), + 'title'=>$event["name"].($event['comment'] ? "\n".$event['comment'] : ''), + 'eventid'=>$event["id"], + 'eventtype'=> $eventtype, + ); } break; case 'expires': @@ -185,6 +191,7 @@ class SeedDMS_View_Calendar extends SeedDMS_Theme_Style { 'color'=>'#ff4455', 'title'=>$document->getName()."\nexpires", 'documentid'=> $document->getID(), + 'eventtype'=> $eventtype, ); } } @@ -231,7 +238,8 @@ class SeedDMS_View_Calendar extends SeedDMS_Theme_Style { 'version'=> isset($item['version']) ? (int) $item['version'] : '', 'statusid'=> isset($item['statusid']) ? (int) $item['statusid'] : '', 'statuslogid'=> isset($item['statuslogid']) ? (int) $item['statuslogid'] : '', - 'fileid'=> isset($item['fileid']) ? (int) $item['fileid'] : '' + 'fileid'=> isset($item['fileid']) ? (int) $item['fileid'] : '', + 'eventtype'=> $eventtype, ); } } @@ -285,18 +293,27 @@ class SeedDMS_View_Calendar extends SeedDMS_Theme_Style { // if (!confirm("Are you sure about this change?")) { // revertFunc(); // } - $.post("../op/op.EditEvent.php", "formtoken=&eventid="+event.eventid+"&from="+event.start.format()+"&ajax=1", function(response) { - noty({ - text: response.message, - type: response.success === true ? 'success' : 'error', - dismissQueue: true, - layout: 'topRight', - theme: 'defaultTheme', - timeout: 1500, - }); - $('#calendar').fullCalendar('refetchEvents'); - }, "json"); - + var fd = new FormData(); + fd.append('formtoken', ''); + fd.append('eventid', event.eventid); + fd.append('documentid', event.documentid); + fd.append('from', event.start.format()); + fd.append('ajax', 1); + fd.append('eventtype', event.eventtype); + $.post("../op/op.EditEvent.php", +// fd, + "formtoken=&eventid="+event.eventid+"&documentid="+event.documentid+"&from="+event.start.format()+"&ajax=1&eventtype="+event.eventtype, + function(response) { + noty({ + text: response.message, + type: response.success === true ? 'success' : 'error', + dismissQueue: true, + layout: 'topRight', + theme: 'defaultTheme', + timeout: 1500, + }); + $('#calendar').fullCalendar('refetchEvents'); + }, "json"); }, eventSources: [ { @@ -310,7 +327,7 @@ class SeedDMS_View_Calendar extends SeedDMS_Theme_Style { }, { url: 'out.Calendar.php?action=events&eventtype=expires', - editable: false + editable: true } ], eventClick: function(event, element) { From 91a081325d501a61db906c96839fb74d4a12edd6 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 8 Apr 2022 07:25:49 +0200 Subject: [PATCH 404/413] add commands to convert message/rfc822 to pdf --- doc/README.Converters | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/doc/README.Converters b/doc/README.Converters index 5b4887966..e916159dc 100644 --- a/doc/README.Converters +++ b/doc/README.Converters @@ -62,6 +62,12 @@ application/vnd.openxmlformats-officedocument.spreadsheetml.sheet application/vnd.oasis.opendocument.spreadsheet unoconv -d spreadsheet -f pdf --stdout -v '%f' > '%o' +message/rfc822 + java -jar emailconverter-2.5.3-all.jar '%f' -o '%o' + + The emailconverter can be obtained from https://github.com/nickrussler/email-to-pdf-converter + It requires wkhtmltopdf which is part of debian. + Conversion to png for preview images ===================================== From ad0f3b2cfef9b4118926ca69d9487119cb77346b Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 8 Apr 2022 12:44:10 +0200 Subject: [PATCH 405/413] better error checking if conversion fails --- SeedDMS_Preview/Preview/PdfPreviewer.php | 8 +++++--- SeedDMS_Preview/Preview/Previewer.php | 10 ++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/SeedDMS_Preview/Preview/PdfPreviewer.php b/SeedDMS_Preview/Preview/PdfPreviewer.php index 0edc719c2..53086867c 100644 --- a/SeedDMS_Preview/Preview/PdfPreviewer.php +++ b/SeedDMS_Preview/Preview/PdfPreviewer.php @@ -113,9 +113,11 @@ class SeedDMS_Preview_PdfPreviewer extends SeedDMS_Preview_Base { $this->lastpreviewfile = $target.'.pdf'; if($target != '' && (!file_exists($target.'.pdf') || filectime($target.'.pdf') < filectime($infile))) { if($this->conversionmgr) { -// if($this->conversionmgr->hasService($mimetype, 'application/pdf')) { - return $this->conversionmgr->convert($infile, $mimetype, 'application/pdf', $target.'.pdf'); -// } + if(!$this->conversionmgr->convert($infile, $mimetype, 'application/pdf', $target.'.pdf')) { + $this->lastpreviewfile = ''; + return false; + } + $new = true; } else { $cmd = ''; $mimeparts = explode('/', $mimetype, 2); diff --git a/SeedDMS_Preview/Preview/Previewer.php b/SeedDMS_Preview/Preview/Previewer.php index edd2638d1..327f5e099 100644 --- a/SeedDMS_Preview/Preview/Previewer.php +++ b/SeedDMS_Preview/Preview/Previewer.php @@ -122,12 +122,10 @@ class SeedDMS_Preview_Previewer extends SeedDMS_Preview_Base { $this->lastpreviewfile = $target.'.png'; if($target != '' && (!file_exists($target.'.png') || filectime($target.'.png') < filectime($infile))) { if($this->conversionmgr) { -// if($this->conversionmgr->hasService($mimetype, 'image/png')) { - if(!$this->conversionmgr->convert($infile, $mimetype, 'image/png', $target.'.png', array('width'=>$width))) { - $this->lastpreviewfile = ''; - return false; - } -// } + if(!$this->conversionmgr->convert($infile, $mimetype, 'image/png', $target.'.png', array('width'=>$width))) { + $this->lastpreviewfile = ''; + return false; + } $new = true; } else { $cmd = ''; From 7a0f2a784e2bb4b5310d8efaf880142f6ee34fb2 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 12 Apr 2022 08:14:53 +0200 Subject: [PATCH 406/413] add more extension in get_extension() --- inc/inc.Utils.php | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/inc/inc.Utils.php b/inc/inc.Utils.php index 6a2f8b9c1..15d43be93 100644 --- a/inc/inc.Utils.php +++ b/inc/inc.Utils.php @@ -609,6 +609,7 @@ function get_extension($mimetype) { /* {{{ */ if(empty($mimetype)) return false; switch($mimetype) { case 'image/bmp': return '.bmp'; + case 'image/x-ms-bmp': return '.bmp'; case 'image/cis-cod': return '.cod'; case 'image/gif': return '.gif'; case 'image/ief': return '.ief'; @@ -630,14 +631,28 @@ function get_extension($mimetype) { /* {{{ */ case 'image/x-jps': return '.jps'; case 'image/x-freehand': return '.fh'; case 'image/svg+xml': return '.svg'; + case 'audio/mp3': return '.mp3'; + case 'audio/mpeg': return '.mpeg'; + case 'audio/ogg': return '.ogg'; + case 'video/mp4': return '.mp4'; + case 'video/webm': return '.webm'; case 'application/zip': return '.zip'; + case 'application/x-gzip': return '.gz'; case 'application/x-rar': return '.rar'; + case 'application/x-compressed-tar': return '.tgz'; case 'application/pdf': return '.pdf'; + case 'application/dxf': return '.dxf'; + case 'application/msword': return '.doc'; case 'application/postscript': return '.ps'; case 'application/vnd.openxmlformats-officedocument.wordprocessingml.document': return '.docx'; case 'application/vnd.openxmlformats-officedocument.presentationml.presentation': return '.pptx'; case 'text/plain': return '.txt'; case 'text/csv': return '.csv'; + case 'text/rtf': return '.rtf'; + case 'text/xml': return '.xml'; + case 'text/x-php': return '.php'; + case 'text/x-tex': return '.tex'; + case 'message/rfc822': return '.eml'; default: return false; } } /* }}} */ From 0198955905a2e5ab6bc470aea3e1ed187d60c448 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 14 Apr 2022 16:59:42 +0200 Subject: [PATCH 407/413] add new hook cleanUpDocument --- CHANGELOG | 1 + op/op.AddDocument.php | 3 +++ op/op.UpdateDocument.php | 3 +++ 3 files changed, 7 insertions(+) diff --git a/CHANGELOG b/CHANGELOG index 386e08e8c..5eb2150e5 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -13,6 +13,7 @@ - fix possible DoS in op/op.RemoveLog.php - show only calendar events of logged in user - show expired documents in calendar +- call new hook 'cleanUpDocument' after uploading or updating a document -------------------------------------------------------------------------------- Changes in version 5.1.24 diff --git a/op/op.AddDocument.php b/op/op.AddDocument.php index c72cb79df..2825ceb20 100644 --- a/op/op.AddDocument.php +++ b/op/op.AddDocument.php @@ -414,6 +414,9 @@ foreach($file_ary as $file) { } UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),$errmsg); } else { + if($controller->hasHook('cleanUpDocument')) { + $controller->callHook('cleanUpDocument', $document, $file); + } // Send notification to subscribers of folder. if($notifier) { $notifier->sendNewDocumentMail($document, $user); diff --git a/op/op.UpdateDocument.php b/op/op.UpdateDocument.php index 23e5ad1e2..9c29d5230 100644 --- a/op/op.UpdateDocument.php +++ b/op/op.UpdateDocument.php @@ -318,6 +318,9 @@ default: if(!$content = $controller->run()) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText($controller->getErrorMsg())); } else { + if($controller->hasHook('cleanUpDocument')) { + $controller->callHook('cleanUpDocument', $document, $file); + } // Send notification to subscribers. if($notifier) { $notifier->sendNewDocumentVersionMail($document, $user); From 612a6d1473e019e947ec73f623844bc692a7ae9f Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 14 Apr 2022 17:00:44 +0200 Subject: [PATCH 408/413] pass 'add' or 'update' to hook 'addDocumentContentFile' --- CHANGELOG | 1 + views/bootstrap/class.AddDocument.php | 2 +- views/bootstrap/class.UpdateDocument.php | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 5eb2150e5..7d9885475 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -14,6 +14,7 @@ - show only calendar events of logged in user - show expired documents in calendar - call new hook 'cleanUpDocument' after uploading or updating a document +- pass 'add' or 'update' to hook 'addDocumentContentFile' -------------------------------------------------------------------------------- Changes in version 5.1.24 diff --git a/views/bootstrap/class.AddDocument.php b/views/bootstrap/class.AddDocument.php index dfd136d4e..563ba9670 100644 --- a/views/bootstrap/class.AddDocument.php +++ b/views/bootstrap/class.AddDocument.php @@ -399,7 +399,7 @@ console.log(params); $this->getDropFolderChooserHtml("adddocform", $dropfolderfile) ); } - if($arr = $this->callHook('addDocumentContentFile')) { + if($arr = $this->callHook('addDocumentContentFile', 'add')) { foreach($arr as $ar) if(is_array($ar)) { $this->formField($ar[0], $ar[1], isset($ar[2]) ? $ar[2] : null); diff --git a/views/bootstrap/class.UpdateDocument.php b/views/bootstrap/class.UpdateDocument.php index d66730d44..5ed3218d4 100644 --- a/views/bootstrap/class.UpdateDocument.php +++ b/views/bootstrap/class.UpdateDocument.php @@ -231,7 +231,7 @@ console.log(element); $this->getDropFolderChooserHtml("form1") ); } - if($arr = $this->callHook('addDocumentContentFile')) { + if($arr = $this->callHook('addDocumentContentFile', 'update')) { foreach($arr as $ar) if(is_array($ar)) { $this->formField($ar[0], $ar[1], isset($ar[2]) ? $ar[2] : null); From 31bcd5d9bfe9208dc252e4dc644fa07af10e90da Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 19 Apr 2022 11:02:27 +0200 Subject: [PATCH 409/413] more access restrictions on files in extensions --- .htaccess | 10 ++++++++-- CHANGELOG | 1 + 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/.htaccess b/.htaccess index 577662f59..474adf2bf 100644 --- a/.htaccess +++ b/.htaccess @@ -25,10 +25,16 @@ RewriteRule "^views/.*/images.*$" "-" [L] RewriteRule "^out/images.*$" "-" [L] RewriteRule "^styles/.*$" "-" [L] -# Accessing a file in an extension is always possible +# Accessing a file in an extension is only possible in one +# of the directories op, out. res # Added for old extensions which do not use routes +RewriteRule ^ext/[^/]+/icon.(?:png|svg)$ - [L] +RewriteCond %{REQUEST_URI} "ext/[^/]+/" +RewriteRule !^ext/[^/]+/.*(?:op|out|res) - [F] +RewriteCond %{REQUEST_URI} "ext/[^/]+/res/.*$" [NC] +RewriteRule !^ext/[^/]+/res/.*\.(?:css|js|png|svg) - [F] RewriteCond %{REQUEST_FILENAME} -f -RewriteRule "^ext/.*$" "-" [L] +RewriteRule ^ext/.*$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d diff --git a/CHANGELOG b/CHANGELOG index 7d9885475..cfd9136e4 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -15,6 +15,7 @@ - show expired documents in calendar - call new hook 'cleanUpDocument' after uploading or updating a document - pass 'add' or 'update' to hook 'addDocumentContentFile' +- more access restrictions on files in extensions -------------------------------------------------------------------------------- Changes in version 5.1.24 From 5ec682592eabc4d64edfae9aaec31f18957906ed Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 19 Apr 2022 11:23:17 +0200 Subject: [PATCH 410/413] add title to button for showing changelog --- views/bootstrap/class.ExtensionMgr.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/bootstrap/class.ExtensionMgr.php b/views/bootstrap/class.ExtensionMgr.php index 83c7ad423..f6e53bca3 100644 --- a/views/bootstrap/class.ExtensionMgr.php +++ b/views/bootstrap/class.ExtensionMgr.php @@ -220,7 +220,7 @@ class SeedDMS_View_ExtensionMgr extends SeedDMS_Theme_Style { echo ""; echo "
"; if(!empty($extconf['changelog']) && file_exists($extdir."/".$extname."/".$extconf['changelog'])) { - echo $this->getModalBoxLink(array('target'=>'extensionChangelog', 'remote'=>'out.ExtensionMgr.php?action=changelog&extensionname='.$extname, 'class'=>'', 'title'=>'')); + echo $this->getModalBoxLink(array('target'=>'extensionChangelog', 'remote'=>'out.ExtensionMgr.php?action=changelog&extensionname='.$extname, 'class'=>'', 'title'=>'', 'attributes'=>array('title'=>getMLText('show_extension_changelog')))); } if($extconf['config']) echo ""; From 4bfe18a7de96ec9d7f7ac3782ff9cc8eef00268d Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 19 Apr 2022 18:11:24 +0200 Subject: [PATCH 411/413] fix check of extension available from repos --- views/bootstrap/class.ExtensionMgr.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/views/bootstrap/class.ExtensionMgr.php b/views/bootstrap/class.ExtensionMgr.php index f6e53bca3..995e4011f 100644 --- a/views/bootstrap/class.ExtensionMgr.php +++ b/views/bootstrap/class.ExtensionMgr.php @@ -117,15 +117,15 @@ class SeedDMS_View_ExtensionMgr extends SeedDMS_Theme_Style { print "\n"; $list = $extmgr->getExtensionListByName($extname); foreach($list as $re) { - $extmgr->checkExtension($re); + $extmgr->checkExtensionByName($re['name'], $re); $checkmsgs = $extmgr->getErrorMsgs(); $needsupdate = !isset($extconf[$re['name']]) || SeedDMS_Extension_Mgr::cmpVersion($re['version'], $extconf[$re['name']]['version']) > 0; echo ""; echo "".($re['icon-data'] ? ''.$re['name'].'' : '').""; From 24c02b77f4b8ca268b157f790a8744d08e546460 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 19 Apr 2022 18:12:13 +0200 Subject: [PATCH 412/413] add item for 5.1.25 --- CHANGELOG | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG b/CHANGELOG index cfd9136e4..1f8dcfcbf 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -16,6 +16,7 @@ - call new hook 'cleanUpDocument' after uploading or updating a document - pass 'add' or 'update' to hook 'addDocumentContentFile' - more access restrictions on files in extensions +- fix check of extensions available in repository -------------------------------------------------------------------------------- Changes in version 5.1.24 From dd37e509b901841c95a0a30d79bdd3152ac4210e Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 19 Apr 2022 18:37:41 +0200 Subject: [PATCH 413/413] make printAccordion() public --- views/bootstrap/class.Bootstrap.php | 2 +- views/bootstrap4/class.Bootstrap4.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/views/bootstrap/class.Bootstrap.php b/views/bootstrap/class.Bootstrap.php index b4a43c96b..b19f1d7c3 100644 --- a/views/bootstrap/class.Bootstrap.php +++ b/views/bootstrap/class.Bootstrap.php @@ -3646,7 +3646,7 @@ $("body").on("click", "span.openpopupbox", function(e) { echo $html; } /* }}} */ - protected function printAccordion($title, $content) { /* {{{ */ + public function printAccordion($title, $content) { /* {{{ */ $id = substr(md5(uniqid()), 0, 4); ?>
diff --git a/views/bootstrap4/class.Bootstrap4.php b/views/bootstrap4/class.Bootstrap4.php index e1a8b3e97..d5bcb1ea2 100644 --- a/views/bootstrap4/class.Bootstrap4.php +++ b/views/bootstrap4/class.Bootstrap4.php @@ -3719,7 +3719,7 @@ $("body").on("click", "span.openpopupbox", function(e) { echo $html; } /* }}} */ - protected function printAccordion($title, $content) { /* {{{ */ + public function printAccordion($title, $content) { /* {{{ */ $id = substr(md5(uniqid()), 0, 4); ?>