diff --git a/.htaccess b/.htaccess index 99425bf93..474adf2bf 100644 --- a/.htaccess +++ b/.htaccess @@ -6,7 +6,9 @@ Header set X-Content-Type-Options: "nosniff" RewriteEngine On -RewriteRule ^favicon.ico$ styles/bootstrap/favicon.ico [L] +#RewriteRule "^favicon\.ico$" "-" [L] +#RewriteRule "^(favicon\.ico)$" %{HTTP_HOST}/views/bootstrap/images/favicon.svg [L,NC] +RewriteRule "(favicon\.ico)" /views/bootstrap/images/favicon.svg [L,NC] # Store the current location in an environment variable CWD to use # mod_rewrite in .htaccess files without knowing the RewriteBase @@ -23,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 e1f6fa90f..1f8dcfcbf 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,43 @@ +-------------------------------------------------------------------------------- + Changes in version 5.1.25 +-------------------------------------------------------------------------------- +- certain fields in configuration can be disabled for editing, also works for + configuration fields of extensions +- send notification mail to owner of document and uploader of a version +- new mail body for changing a version comment +- add hook documentListPreview +- 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 +- 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 +- 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 +-------------------------------------------------------------------------------- +- fix sending of some notification mails to groups +- major overhaul of notifications +- check view access for FolderAccess and DocumentAccess +- 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 +- add document conversion service +- send request email for next workflow step only if that step is actually reached +- send mails to owner of document/folder only if not logged in or already + in list of notifiers +- improve fulltext search +- improve validation of change password form +- better error checking if uploading or adding a document failed due to + size limits + -------------------------------------------------------------------------------- Changes in version 5.1.23 -------------------------------------------------------------------------------- diff --git a/Gruntfile.js b/Gruntfile.js index 1ad6013f0..bd277c831 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -1,6 +1,9 @@ module.exports = function (grunt) { 'use strict'; + // if you set bootstrapDir to views/bootstrap/vendors then make sure + // bootbox is not installed, because version 5 of bootbox will not work + // with bootstrap 2 var bootstrapDir = 'views/bootstrap4/vendors', tdkDir = 'views/tdk/vendors', nodeDir = 'node_modules'; @@ -106,6 +109,20 @@ module.exports = function (grunt) { ], dest: bootstrapDir + '/jquery-validation', flatten: true + },{ + expand: true, + src: [ + nodeDir + '/jquery-typeahead/dist/*' + ], + dest: bootstrapDir + '/jquery-typeahead', + flatten: true + },{ + expand: true, + src: [ + nodeDir + '/bootbox/dist/*' + ], + dest: bootstrapDir + '/bootbox', + flatten: true },{ expand: true, src: [ @@ -181,6 +198,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: [ diff --git a/Makefile b/Makefile index 0473b9308..cc2deac8d 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ VERSION=$(shell php -r 'include("inc/inc.Version.php"); $$v=new SeedDMS_Version( SRC=CHANGELOG inc conf utils index.php .htaccess languages op out controllers doc TODO LICENSE webdav install restapi pdfviewer VIEWS ?= bootstrap bootstrap4 -NODISTFILES=utils/importmail.php utils/seedddms-importmail utils/remote-email-upload utils/remote-upload utils/da-bv-reminder.php utils/seeddms-da-bv-reminder .svn .gitignore +NODISTFILES=utils/importmail.php utils/seedddms-importmail utils/remote-email-upload utils/remote-upload utils/da-bv-reminder.php utils/seeddms-da-bv-reminder utils/relodge.php utils/seeddms-relodge .svn .gitignore PHPDOC=~/Downloads/phpDocumentor.phar @@ -23,6 +23,12 @@ dist: (cd tmp; tar --exclude=.svn --exclude=.gitignore -czvf ../seeddms-$(VERSION).tar.gz seeddms-$(VERSION)) rm -rf tmp +quickstart: + vendor/bin/phing -Dversion=$(VERSION) package + +unittest: + vendor/bin/phing -Dversion=$(VERSION) phpunitfast + pear: (cd SeedDMS_Core/; pear package) (cd SeedDMS_Lucene/; pear package) diff --git a/SeedDMS_Core/Core/inc.AccessUtils.php b/SeedDMS_Core/Core/inc.AccessUtils.php index ccb087db7..1edbce647 100644 --- a/SeedDMS_Core/Core/inc.AccessUtils.php +++ b/SeedDMS_Core/Core/inc.AccessUtils.php @@ -38,6 +38,12 @@ define("M_READWRITE", 3); */ define("M_ALL", 4); +/* + * Lowest and highest access right + */ +define("M_LOWEST_RIGHT", 1); +define("M_HIGHEST_RIGHT", 4); + define ("O_GTEQ", ">="); define ("O_LTEQ", "<="); define ("O_EQ", "="); @@ -85,4 +91,4 @@ define("N_DELETE_VERSION", 5); /** * Notify when version of document was deleted */ -define("N_ADD_DOCUMENT", 6); \ No newline at end of file +define("N_ADD_DOCUMENT", 6); 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; + } +} /* }}} */ diff --git a/SeedDMS_Core/Core/inc.ClassAttribute.php b/SeedDMS_Core/Core/inc.ClassAttribute.php index 5d2d6c473..088f4e73c 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; @@ -257,8 +257,17 @@ 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, $oldvalue)) { + } + } + } + return true; } /* }}} */ @@ -409,7 +418,9 @@ class SeedDMS_Core_AttributeDefinition { /* {{{ */ protected $_dms; /** - * @var string + * @var string just the separator of a value set (not used) + * + * @access protected */ protected $_separator; @@ -441,6 +452,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 * @@ -465,10 +495,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; } /* }}} */ /** @@ -671,10 +701,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 ''; } @@ -683,6 +713,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 */ @@ -694,9 +726,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 @@ -717,7 +749,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 @@ -729,8 +763,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 { @@ -744,8 +779,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; } /* }}} */ @@ -763,12 +798,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($regex && @preg_match($regex, '') === false) + return false; + $queryStr = "UPDATE `tblAttributeDefinitions` SET `regex` =".$db->qstr($regex)." WHERE `id` = " . $this->_id; $res = $db->getResult($queryStr); if (!$res) @@ -809,13 +855,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. @@ -897,6 +945,11 @@ class SeedDMS_Core_AttributeDefinition { /* {{{ */ } } } + $valueset = $this->getValueSetAsArray(); + $possiblevalues = array(); + foreach($valueset as $value) { + $possiblevalues[md5($value)] = array('value'=>$value, 'c'=>0); + } $queryStr = "SELECT count(*) c, `value` FROM `tblDocumentAttributes` WHERE `attrdef`=".$this->_id." GROUP BY `value` ORDER BY c DESC"; $resArr = $db->getResultArray($queryStr); if($resArr) { @@ -1013,7 +1066,7 @@ class SeedDMS_Core_AttributeDefinition { /* {{{ */ * @param integer $limit limit number of documents/folders * @return array array containing list of documents and folders */ - public function getObjects($attrvalue, $limit='') { /* {{{ */ + public function getObjects($attrvalue, $limit=0) { /* {{{ */ $db = $this->_dms->getDB(); $result = array('docs'=>array(), 'folders'=>array(), 'contents'=>array()); @@ -1144,8 +1197,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) { /* {{{ */ @@ -1159,36 +1214,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; } @@ -1196,55 +1253,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) { @@ -1253,7 +1311,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) { @@ -1262,7 +1320,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) { @@ -1271,7 +1329,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) { @@ -1280,7 +1338,7 @@ class SeedDMS_Core_AttributeDefinition { /* {{{ */ $success = false; } if(!$success) - $this->_validation_error = 13; + $this->_validation_error = SeedDMS_Core_AttributeDefinition::val_error_group; break; } @@ -1289,10 +1347,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; + } } } } diff --git a/SeedDMS_Core/Core/inc.ClassDMS.php b/SeedDMS_Core/Core/inc.ClassDMS.php index a914da17e..04daed032 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@ */ @@ -123,13 +122,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 +133,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. @@ -217,7 +196,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. * @@ -275,7 +254,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 @@ -299,11 +279,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) @@ -366,9 +347,11 @@ class SeedDMS_Core_DMS { */ static function filterDocumentFiles($user, $files) { /* {{{ */ $tmp = array(); - foreach ($files as $file) - if ($file->isPublic() || ($file->getUser()->getID() == $user->getID()) || $user->isAdmin() || ($file->getDocument()->getOwner()->getID() == $user->getID())) - array_push($tmp, $file); + if($files) { + foreach ($files as $file) + if ($file->isPublic() || ($file->getUser()->getID() == $user->getID()) || $user->isAdmin() || ($file->getDocument()->getOwner()->getID() == $user->getID())) + array_push($tmp, $file); + } return $tmp; } /* }}} */ @@ -388,12 +371,12 @@ class SeedDMS_Core_DMS { else $this->contentDir = $contentDir.'/'; $this->rootFolderID = 1; + $this->user = null; $this->maxDirID = 0; //31998; $this->forceRename = false; $this->checkWithinRootDir = false; - $this->enableConverting = false; - $this->convertFileTypes = array(); $this->noReadForStatus = array(); + $this->user = null; $this->classnames = array(); $this->classnames['folder'] = 'SeedDMS_Core_Folder'; $this->classnames['document'] = 'SeedDMS_Core_Document'; @@ -404,7 +387,7 @@ class SeedDMS_Core_DMS { $this->lasterror = ''; $this->version = '@package_version@'; if($this->version[0] == '@') - $this->version = '5.1.23'; + $this->version = '5.1.25'; } /* }}} */ /** @@ -507,9 +490,9 @@ 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"; + $queryStr = "SELECT * FROM `tblVersion` ORDER BY `major`,`minor`,`subminor` LIMIT 1"; $resArr = $this->db->getResultArray($queryStr); if (is_bool($resArr) && $resArr == false) return false; @@ -529,9 +512,9 @@ 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"; + $queryStr = "SELECT * FROM `tblVersion` ORDER BY `major`,`minor`,`subminor` LIMIT 1"; $resArr = $this->db->getResultArray($queryStr); if (is_bool($resArr) && $resArr == false) return false; @@ -546,13 +529,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; } /* }}} */ /** @@ -592,18 +585,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; } /* }}} */ @@ -611,21 +592,32 @@ class SeedDMS_Core_DMS { /** * Set the logged in user * - * If user authentication was done externally, this function can - * be used to tell the dms who is currently logged in. + * This method tells SeeDMS_Core_DMS the currently logged in user. It must be + * called right after instanciating the class, because some methods in + * SeedDMS_Core_Document() require the currently logged in user. * - * @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; } /* }}} */ /** * Get the logged in user * - * If user authentication was done externally, this function can - * be used to tell the dms who is currently logged in. + * Returns the currently logged in user, as set by setUser() * * @return SeedDMS_Core_User $user * @@ -640,7 +632,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']; @@ -676,7 +668,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 @@ -696,14 +688,16 @@ class SeedDMS_Core_DMS { if (!$db->createTemporaryTable("ttstatid") || !$db->createTemporaryTable("ttcontentid")) { return false; } - + $tsnow = mktime(0, 0, 0); /* Start of today */ if(is_int($date)) { $ts = $tsnow + $date * 86400; } 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; @@ -757,14 +751,15 @@ 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); if (!$name) return false; $queryStr = "SELECT `tblDocuments`.*, `tblDocumentLocks`.`userID` as `lockUser` ". @@ -773,14 +768,16 @@ class SeedDMS_Core_DMS { "WHERE `tblDocuments`.`name` = " . $this->db->qstr($name); if($folder) $queryStr .= " AND `tblDocuments`.`folder` = ". $folder->getID(); - $queryStr .= " LIMIT 1"; + if($this->checkWithinRootDir) + $queryStr .= " AND `tblDocuments`.`folderList` LIKE '%:".$this->rootFolderID.":%'"; + $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 */ @@ -795,12 +792,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")) { @@ -814,14 +814,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 */ @@ -836,17 +836,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']); @@ -1025,7 +1027,7 @@ class SeedDMS_Core_DMS { $selectStr .= ", `tblDocumentReviewLog`.`date` as `duedate` "; $queryStr .= - "LEFT JOIN `tblDocumentReviewers` on `ttcontentid`.`document`=`tblDocumentReviewers`.`documentID` AND `ttcontentid`.`maxVersion`=`tblDocumentReviewers`.`version` ". + "LEFT JOIN `tblDocumentReviewers` ON `ttcontentid`.`document`=`tblDocumentReviewers`.`documentID` AND `ttcontentid`.`maxVersion`=`tblDocumentReviewers`.`version` ". "LEFT JOIN `ttreviewid` ON `ttreviewid`.`reviewID` = `tblDocumentReviewers`.`reviewID` ". "LEFT JOIN `tblDocumentReviewLog` ON `tblDocumentReviewLog`.`reviewLogID`=`ttreviewid`.`maxLogID` "; @@ -1044,7 +1046,7 @@ class SeedDMS_Core_DMS { $queryStr .= " AND `tblDocumentReviewLog`.`status` = 0 "; if ($orderby=='e') $queryStr .= "ORDER BY `expires`"; else if ($orderby=='u') $queryStr .= "ORDER BY `statusDate`"; - else if ($orderby=='s') $queryStr .= "ORDER BY `status`"; + else if ($orderby=='s') $queryStr .= "ORDER BY `tblDocumentStatusLog`.`status`"; else $queryStr .= "ORDER BY `name`"; $queryStr .= " ".$orderdir; } else { @@ -1107,7 +1109,7 @@ class SeedDMS_Core_DMS { $selectStr .= ", `tblDocumentApproveLog`.`date` as `duedate` "; $queryStr .= - "LEFT JOIN `tblDocumentApprovers` on `ttcontentid`.`document`=`tblDocumentApprovers`.`documentID` AND `ttcontentid`.`maxVersion`=`tblDocumentApprovers`.`version` ". + "LEFT JOIN `tblDocumentApprovers` ON `ttcontentid`.`document`=`tblDocumentApprovers`.`documentID` AND `ttcontentid`.`maxVersion`=`tblDocumentApprovers`.`version` ". "LEFT JOIN `ttapproveid` ON `ttapproveid`.`approveID` = `tblDocumentApprovers`.`approveID` ". "LEFT JOIN `tblDocumentApproveLog` ON `tblDocumentApproveLog`.`approveLogID`=`ttapproveid`.`maxLogID` "; @@ -1126,7 +1128,7 @@ class SeedDMS_Core_DMS { $queryStr .= " AND `tblDocumentApproveLog`.`status` = 0 "; if ($orderby=='e') $queryStr .= "ORDER BY `expires`"; else if ($orderby=='u') $queryStr .= "ORDER BY `statusDate`"; - else if ($orderby=='s') $queryStr .= "ORDER BY `status`"; + else if ($orderby=='s') $queryStr .= "ORDER BY `tblDocumentStatusLog`.`status`"; else $queryStr .= "ORDER BY `name`"; $queryStr .= " ".$orderdir; } else { @@ -1189,10 +1191,10 @@ class SeedDMS_Core_DMS { } $selectStr = 'distinct '.$selectStr; $queryStr .= - "LEFT JOIN `tblWorkflowDocumentContent` on `ttcontentid`.`document`=`tblWorkflowDocumentContent`.`document` AND `ttcontentid`.`maxVersion`=`tblWorkflowDocumentContent`.`version` ". - "LEFT JOIN `tblWorkflowTransitions` on `tblWorkflowDocumentContent`.`workflow`=`tblWorkflowTransitions`.`workflow` AND `tblWorkflowDocumentContent`.`state`=`tblWorkflowTransitions`.`state` ". - "LEFT JOIN `tblWorkflowTransitionUsers` on `tblWorkflowTransitionUsers`.`transition` = `tblWorkflowTransitions`.`id` ". - "LEFT JOIN `tblWorkflowTransitionGroups` on `tblWorkflowTransitionGroups`.`transition` = `tblWorkflowTransitions`.`id` "; + "LEFT JOIN `tblWorkflowDocumentContent` ON `ttcontentid`.`document`=`tblWorkflowDocumentContent`.`document` AND `ttcontentid`.`maxVersion`=`tblWorkflowDocumentContent`.`version` ". + "LEFT JOIN `tblWorkflowTransitions` ON `tblWorkflowDocumentContent`.`workflow`=`tblWorkflowTransitions`.`workflow` AND `tblWorkflowDocumentContent`.`state`=`tblWorkflowTransitions`.`state` ". + "LEFT JOIN `tblWorkflowTransitionUsers` ON `tblWorkflowTransitionUsers`.`transition` = `tblWorkflowTransitions`.`id` ". + "LEFT JOIN `tblWorkflowTransitionGroups` ON `tblWorkflowTransitionGroups`.`transition` = `tblWorkflowTransitions`.`id` "; if($user) { $queryStr .= "WHERE (`tblWorkflowTransitionUsers`.`userid` = ".$user->getID()." "; @@ -1200,6 +1202,7 @@ class SeedDMS_Core_DMS { $queryStr .= "OR `tblWorkflowTransitionGroups`.`groupid` IN (".implode(',', $groups).")"; $queryStr .= ") "; } + $queryStr .= "AND `tblDocumentStatusLog`.`status` = ".S_IN_WORKFLOW." "; // echo 'SELECT '.$selectStr." ".$queryStr; if ($orderby=='e') $queryStr .= "ORDER BY `expires`"; else if ($orderby=='u') $queryStr .= "ORDER BY `statusDate`"; @@ -1267,8 +1270,8 @@ class SeedDMS_Core_DMS { $orderdir = 'DESC'; else $orderdir = 'ASC'; - $queryStr .= "AND `tblDocuments`.`owner` = '".$user->getID()."' ". - "AND `tblDocumentStatusLog`.`status` IN (".S_REJECTED.") "; + $queryStr .= "AND `tblDocuments`.`owner` = '".$user->getID()."' "; + $queryStr .= "AND `tblDocumentStatusLog`.`status` IN (".S_REJECTED.") "; //$queryStr .= "ORDER BY `statusDate` DESC"; if ($orderby=='e') $queryStr .= "ORDER BY `expires`"; else if ($orderby=='u') $queryStr .= "ORDER BY `statusDate`"; @@ -1314,6 +1317,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 */ @@ -1328,7 +1333,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; @@ -1367,7 +1372,7 @@ class SeedDMS_Core_DMS { else $queryStr .= "ORDER BY `name`"; $queryStr .= " ".$orderdir; break; // }}} - default: + default: // {{{ return false; break; // }}} } @@ -1402,21 +1407,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); @@ -1432,12 +1433,15 @@ 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 * @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 @@ -1453,8 +1457,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()) { /* {{{ */ @@ -1468,6 +1472,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) { @@ -1534,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 { @@ -1546,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`)"; } } @@ -1622,10 +1630,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; @@ -1740,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)) @@ -1805,8 +1820,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); } } @@ -1815,6 +1828,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); } } @@ -1919,9 +1934,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 @@ -2011,28 +2034,9 @@ 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); - - 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 +2061,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 +2126,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))) { @@ -2211,7 +2249,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)) { } @@ -2239,6 +2277,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'); } /* }}} */ @@ -2262,6 +2301,7 @@ class SeedDMS_Core_DMS { * case of an error. */ function addGroup($name, $comment) { /* {{{ */ + $name = trim($name); if (is_object($this->getGroupByName($name))) { return false; } @@ -2285,13 +2325,15 @@ 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; $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"]); @@ -2300,10 +2342,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"]); @@ -2313,8 +2360,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) @@ -2332,29 +2382,22 @@ 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_numeric($userID) || $userID < 1) + return false; + $name = trim($name); + if(!$name) + return false; if (is_object($this->getKeywordCategoryByName($name, $userID))) { return false; } @@ -2377,13 +2420,15 @@ 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; $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_DocumentCategory($resArr["id"], $resArr["name"]); @@ -2417,9 +2462,10 @@ 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); + $queryStr = "SELECT * FROM `tblCategory` WHERE `name`=".$this->db->qstr($name); $resArr = $this->db->getResultArray($queryStr); if (!$resArr) return false; @@ -2432,6 +2478,9 @@ class SeedDMS_Core_DMS { } /* }}} */ function addDocumentCategory($name) { /* {{{ */ + $name = trim($name); + if(!$name) + return false; if (is_object($this->getDocumentCategoryByName($name))) { return false; } @@ -2506,7 +2555,7 @@ class SeedDMS_Core_DMS { */ function checkPasswordRequest($hash) { /* {{{ */ /* Get the password request from the database */ - $queryStr = "SELECT * FROM `tblUserPasswordRequest` where `hash`=".$this->db->qstr($hash); + $queryStr = "SELECT * FROM `tblUserPasswordRequest` WHERE `hash`=".$this->db->qstr($hash); $resArr = $this->db->getResultArray($queryStr); if (is_bool($resArr) && !$resArr) return false; @@ -2543,14 +2592,16 @@ class SeedDMS_Core_DMS { * @return bool|SeedDMS_Core_AttributeDefinition or false */ function getAttributeDefinition($id) { /* {{{ */ - if (!is_numeric($id)) + if (!is_numeric($id) || $id < 1) return false; $queryStr = "SELECT * FROM `tblAttributeDefinitions` 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]; @@ -2568,13 +2619,16 @@ 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); $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]; @@ -2630,9 +2684,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)) { @@ -2687,9 +2746,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) || $id < 1) + return false; + $queryStr = "SELECT * FROM `tblWorkflows` WHERE `id`=".intval($id); $resArr = $this->db->getResultArray($queryStr); @@ -2697,7 +2759,7 @@ class SeedDMS_Core_DMS { return false; if(!$resArr) - return false; + return null; $initstate = $this->getWorkflowState($resArr[0]['initstate']); @@ -2711,9 +2773,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); @@ -2723,7 +2786,7 @@ class SeedDMS_Core_DMS { return false; if(!$resArr) - return false; + return null; $initstate = $this->getWorkflowState($resArr[0]['initstate']); @@ -2742,6 +2805,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; } @@ -2762,14 +2828,17 @@ class SeedDMS_Core_DMS { * @return bool|SeedDMS_Core_Workflow_State or false */ function getWorkflowState($id) { /* {{{ */ - if (!is_numeric($id)) + if (!is_numeric($id) || $id < 1) return false; $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]; @@ -2785,6 +2854,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); @@ -2794,7 +2864,7 @@ class SeedDMS_Core_DMS { return false; if(!$resArr) - return false; + return null; $resArr = $resArr[0]; @@ -2835,6 +2905,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; } @@ -2855,14 +2928,17 @@ class SeedDMS_Core_DMS { * @return SeedDMS_Core_Workflow_Action|bool instance of {@link SeedDMS_Core_Workflow_Action} or false */ function getWorkflowAction($id) { /* {{{ */ - if (!is_numeric($id)) + if (!is_numeric($id) || $id < 1) return false; $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]; @@ -2880,13 +2956,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]; @@ -2926,6 +3006,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; } @@ -3061,9 +3144,9 @@ class SeedDMS_Core_DMS { * @return array|bool */ 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"; + $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 */ @@ -3107,13 +3190,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 +3252,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 +3319,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; @@ -3289,62 +3374,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; } /* }}} */ } diff --git a/SeedDMS_Core/Core/inc.ClassDocument.php b/SeedDMS_Core/Core/inc.ClassDocument.php index 9345e56d2..34677a6c8 100644 --- a/SeedDMS_Core/Core/inc.ClassDocument.php +++ b/SeedDMS_Core/Core/inc.ClassDocument.php @@ -1,4 +1,5 @@ _expires = $expires; $this->_ownerID = $ownerID; $this->_folderID = $folderID; - $this->_inheritAccess = $inheritAccess; + $this->_inheritAccess = $inheritAccess ? true : false; $this->_defaultAccess = $defaultAccess; $this->_locked = ($locked == null || $locked == '' ? -1 : $locked); $this->_keywords = $keywords; @@ -220,6 +227,27 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ $this->_notifyList = array(); $this->_latestContent = null; $this->_content = null; + /* 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->_documentLinks = null; + $this->_documentFiles = null; + $this->_content = null; + $this->_accessList = null; + $this->_notifyList = null; } /* }}} */ /** @@ -303,30 +331,9 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ return null; $resArr = $resArr[0]; - // New Locking mechanism uses a separate table to track the lock. - /* - $queryStr = "SELECT * FROM `tblDocumentLocks` WHERE `document` = " . (int) $id; - $lockArr = $db->getResultArray($queryStr); - if ((is_bool($lockArr) && $lockArr==false) || (count($lockArr)==0)) { - // Could not find a lock on the selected document. - $resArr['lock'] = -1; - } - else { - // A lock has been identified for this document. - $resArr['lock'] = $lockArr[0]["userID"]; - } -*/ $resArr['lock'] = !$resArr['lock'] ? -1 : $resArr['lock']; -// print_r($resArr);exit; return self::getInstanceByData($resArr, $dms); - - $classname = $dms->getClassname('document'); - /** @var SeedDMS_Core_Document $document */ - $document = new $classname($resArr["id"], $resArr["name"], $resArr["comment"], $resArr["date"], $resArr["expires"], $resArr["owner"], $resArr["folder"], $resArr["inheritAccess"], $resArr["defaultAccess"], $resArr['lock'], $resArr["keywords"], $resArr["sequence"]); - $document->setDMS($dms); - $document = $document->applyDecorators(); - return $document; } /* }}} */ /** @@ -458,11 +465,12 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ $db = $this->_dms->getDB(); if(!$this->_categories) { - $queryStr = "SELECT * FROM `tblCategory` where `id` in (select `categoryID` from `tblDocumentCategory` where `documentID` = ".$this->_id.")"; + $queryStr = "SELECT * FROM `tblCategory` WHERE `id` IN (SELECT `categoryID` FROM `tblDocumentCategory` WHERE `documentID` = ".$this->_id.")"; $resArr = $db->getResultArray($queryStr); if (is_bool($resArr) && !$resArr) return false; + $this->_categories = []; foreach ($resArr as $row) { $cat = new SeedDMS_Core_DocumentCategory($row['id'], $row['name']); $cat->setDMS($this->_dms); @@ -484,7 +492,7 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ $db = $this->_dms->getDB(); $db->startTransaction(); - $queryStr = "DELETE from `tblDocumentCategory` WHERE `documentID` = ". $this->_id; + $queryStr = "DELETE FROM `tblDocumentCategory` WHERE `documentID` = ". $this->_id; if (!$db->getResult($queryStr)) { $db->rollbackTransaction(); return false; @@ -549,7 +557,7 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ foreach($categories as $cat) $catids[] = $cat->getID(); - $queryStr = "DELETE from `tblDocumentCategory` WHERE `documentID` = ". $this->_id ." AND `categoryID` IN (".implode(',', $catids).")"; + $queryStr = "DELETE FROM `tblDocumentCategory` WHERE `documentID` = ". $this->_id ." AND `categoryID` IN (".implode(',', $catids).")"; if (!$db->getResult($queryStr)) { return false; } @@ -649,6 +657,12 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ function setFolder($newFolder) { /* {{{ */ $db = $this->_dms->getDB(); + if(!$newFolder) + return false; + + if(!$newFolder->isType('folder')) + return false; + $queryStr = "UPDATE `tblDocuments` SET `folder` = " . $newFolder->getID() . " WHERE `id` = ". $this->_id; if (!$db->getResult($queryStr)) return false; @@ -693,6 +707,12 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ function setOwner($newOwner) { /* {{{ */ $db = $this->_dms->getDB(); + if(!$newOwner) + return false; + + if(!$newOwner->isType('user')) + return false; + $queryStr = "UPDATE `tblDocuments` set `owner` = " . $newOwner->getID() . " WHERE `id` = " . $this->_id; if (!$db->getResult($queryStr)) return false; @@ -719,22 +739,33 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ * Set default access mode * * This method sets the default access mode and also removes all notifiers which - * will not have read access anymore. + * will not have read access anymore. Setting a default access mode will only + * have an immediate effect if the access rights are not inherited, otherwise + * it just updates the database record of the document and once the + * inheritance is turn off the default access mode will take effect. * - * @param integer $mode access mode + * @param integer $mode access mode * @param bool|string $noclean set to true if notifier list shall not be clean up + * * @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) + return false; + $queryStr = "UPDATE `tblDocuments` set `defaultAccess` = " . (int) $mode . " WHERE `id` = " . $this->_id; if (!$db->getResult($queryStr)) return false; $this->_defaultAccess = $mode; - if(!$noclean) + /* Setting the default access mode does not have any effect if access + * is still inherited. In that case there is no need to clean the + * notification list. + */ + if(!$noclean && !$this->_inheritAccess) $this->cleanNotifyList(); return true; @@ -745,6 +776,13 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ */ function inheritsAccess() { return $this->_inheritAccess; } + /** + * This is supposed to be a replacement for inheritsAccess() + * + * @return bool + */ + function getInheritAccess() { return $this->_inheritAccess; } + /** * Set inherited access mode * Setting inherited access mode will set or unset the internal flag which @@ -766,7 +804,7 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ if (!$db->getResult($queryStr)) return false; - $this->_inheritAccess = ($inheritAccess ? "1" : "0"); + $this->_inheritAccess = ($inheritAccess ? true : false); if(!$noclean) $this->cleanNotifyList(); @@ -989,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; @@ -1011,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 @@ -1023,8 +1063,18 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ function addAccess($mode, $userOrGroupID, $isUser) { /* {{{ */ $db = $this->_dms->getDB(); + 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_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)) @@ -1525,7 +1575,7 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ * innodb is used. That's why the version is now determined here. */ if ((int)$version<1) { - $queryStr = "SELECT MAX(`version`) as m from `tblDocumentContent` where `document` = ".$this->_id; + $queryStr = "SELECT MAX(`version`) AS m FROM `tblDocumentContent` WHERE `document` = ".$this->_id; $resArr = $db->getResultArray($queryStr); if (is_bool($resArr) && !$resArr) return false; @@ -1613,6 +1663,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 +1680,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; } @@ -1697,7 +1749,7 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ /* If $version < 1 than replace the content of the latest version. */ if ((int) $version<1) { - $queryStr = "SELECT MAX(`version`) as m from `tblDocumentContent` where `document` = ".$this->_id; + $queryStr = "SELECT MAX(`version`) AS m FROM `tblDocumentContent` WHERE `document` = ".$this->_id; $resArr = $db->getResultArray($queryStr); if (is_bool($resArr) && !$resArr) return false; @@ -1798,8 +1850,9 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ * currently logged in user. * * @param integer $version version number of content element - * @return SeedDMS_Core_DocumentContent|boolean object of class {@link SeedDMS_Core_DocumentContent} - * or false + * @return SeedDMS_Core_DocumentContent|null|boolean object of class + * {@link SeedDMS_Core_DocumentContent}, null if not content was found, + * false in case of an error */ function getContentByVersion($version) { /* {{{ */ if (!is_numeric($version)) return false; @@ -1809,7 +1862,7 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ if ($revision->getVersion() == $version) return $revision; } - return false; + return null; } $db = $this->_dms->getDB(); @@ -1818,7 +1871,7 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ if (is_bool($resArr) && !$resArr) return false; if (count($resArr) != 1) - return false; + return null; $resArr = $resArr[0]; $classname = $this->_dms->getClassname('documentcontent'); @@ -1827,7 +1880,7 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ $user = $this->_dms->getLoggedInUser(); /* A user with write access on the document may always see the version */ if($user && $content->getAccessMode($user) == M_NONE) - return false; + return null; else return $content; } else { @@ -1919,16 +1972,12 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ private function _removeContent($version) { /* {{{ */ $db = $this->_dms->getDB(); - if (file_exists( $this->_dms->contentDir.$version->getPath() )) - if (!SeedDMS_Core_File::removeFile( $this->_dms->contentDir.$version->getPath() )) - return false; - $db->startTransaction(); $status = $version->getStatus(); $stID = $status["statusID"]; - $queryStr = "DELETE FROM `tblDocumentContent` WHERE `document` = " . $this->getID() . " AND `version` = " . $version->getVersion(); + $queryStr = "DELETE FROM `tblDocumentContent` WHERE `document` = " . $this->getID() . " AND `version` = " . $version->getVersion(); if (!$db->getResult($queryStr)) { $db->rollbackTransaction(); return false; @@ -2036,6 +2085,12 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ return false; } + if (file_exists( $this->_dms->contentDir.$version->getPath() )) + if (!SeedDMS_Core_File::removeFile( $this->_dms->contentDir.$version->getPath() )) { + $db->rollbackTransaction(); + return false; + } + $db->commitTransaction(); return true; } /* }}} */ @@ -2048,6 +2103,23 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ */ function removeContent($version) { /* {{{ */ $this->_dms->lasterror = ''; + $db = $this->_dms->getDB(); + + /* Make sure the version exists */ + $queryStr = "SELECT * FROM `tblDocumentContent` WHERE `document` = " . $this->getID() . " AND `version` = " . $version->getVersion(); + $resArr = $db->getResultArray($queryStr); + if (is_bool($resArr) && !$resArr) + return false; + if (count($resArr)==0) + return false; + + /* Make sure this is not the last version */ + $queryStr = "SELECT * FROM `tblDocumentContent` WHERE `document` = " . $this->getID(); + $resArr = $db->getResultArray($queryStr); + if (is_bool($resArr) && !$resArr) + return false; + if (count($resArr)==1) + return false; /* Check if 'onPreRemoveDocument' callback is set */ if(isset($this->_dms->callbacks['onPreRemoveContent'])) { @@ -2094,8 +2166,10 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ $queryStr = "SELECT * FROM `tblDocumentLinks` WHERE `document` = " . $this->_id ." AND `id` = " . (int) $linkID; $resArr = $db->getResultArray($queryStr); - if ((is_bool($resArr) && !$resArr) || count($resArr)==0) + if (is_bool($resArr) && !$resArr) return false; + if (count($resArr)==0) + return null; $resArr = $resArr[0]; $document = $this->_dms->getDocument($resArr["document"]); @@ -2113,12 +2187,22 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ * The list may contain all links to other documents, even those which * may not be visible by certain users, unless you pass appropriate * parameters to filter out public links and those created by - * the given user. The application may call - * SeedDMS_Core_DMS::filterDocumentLinks() afterwards. + * the given user. The two parameters are or'ed. If $publiconly + * is set the method will return all public links disregarding the + * user. If $publiconly is not set but a user is set, the method + * will return all links of that user (public and none public). + * Setting a user and $publiconly to true will *not* return the + * public links of that user but all links which are public or + * owned by that user. * - * @param boolean $publiconly return on publically visible links - * @param object $user return also private links of this user - * @return array list of objects of class SeedDMS_Core_DocumentLink + * The application must call + * SeedDMS_Core_DMS::filterDocumentLinks() afterwards to filter out + * those links pointing to a document not accessible by a given user. + * + * @param boolean $publiconly return all publically visible links + * @param SeedDMS_Core_User $user return also private links of this user + * + * @return array list of objects of class {@see SeedDMS_Core_DocumentLink} */ function getDocumentLinks($publiconly=false, $user=null) { /* {{{ */ if (!isset($this->_documentLinks)) { @@ -2159,39 +2243,41 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ * parameters to filter out public links and those created by * the given user. * This functions is basically the reverse of - * SeedDMS_Core_Document::getDocumentLinks() + * {@see SeedDMS_Core_Document::getDocumentLinks()} * - * The application may call - * SeedDMS_Core_DMS::filterDocumentLinks() afterwards. + * The application must call + * SeedDMS_Core_DMS::filterDocumentLinks() afterwards to filter out + * those links pointing to a document not accessible by a given user. + * + * @param boolean $publiconly return all publically visible links + * @param SeedDMS_Core_User $user return also private links of this user * - * @param boolean $publiconly return on publically visible links - * @param object $user return also private links of this user * @return array list of objects of class SeedDMS_Core_DocumentLink */ function getReverseDocumentLinks($publiconly=false, $user=null) { /* {{{ */ - $db = $this->_dms->getDB(); + $db = $this->_dms->getDB(); - $queryStr = "SELECT * FROM `tblDocumentLinks` WHERE `target` = " . $this->_id; - $tmp = array(); - if($publiconly) - $tmp[] = "`public`=1"; - if($user) - $tmp[] = "`userID`=".$user->getID(); - if($tmp) { - $queryStr .= " AND (".implode(" OR ", $tmp).")"; - } + $queryStr = "SELECT * FROM `tblDocumentLinks` WHERE `target` = " . $this->_id; + $tmp = array(); + if($publiconly) + $tmp[] = "`public`=1"; + if($user) + $tmp[] = "`userID`=".$user->getID(); + if($tmp) { + $queryStr .= " AND (".implode(" OR ", $tmp).")"; + } - $resArr = $db->getResultArray($queryStr); - if (is_bool($resArr) && !$resArr) - return false; + $resArr = $db->getResultArray($queryStr); + if (is_bool($resArr) && !$resArr) + return false; - $links = array(); - foreach ($resArr as $row) { - $document = $this->_dms->getDocument($row["document"]); - $link = new SeedDMS_Core_DocumentLink($row["id"], $document, $this, $row["userID"], $row["public"]); - if($link->getAccessMode($user, $document, $this) >= M_READ) - array_push($links, $link); - } + $links = array(); + foreach ($resArr as $row) { + $document = $this->_dms->getDocument($row["document"]); + $link = new SeedDMS_Core_DocumentLink($row["id"], $document, $this, $row["userID"], $row["public"]); + if($link->getAccessMode($user, $document, $this) >= M_READ) + array_push($links, $link); + } return $links; } /* }}} */ @@ -2199,20 +2285,39 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ function addDocumentLink($targetID, $userID, $public) { /* {{{ */ $db = $this->_dms->getDB(); - $public = ($public) ? "1" : "0"; + $public = ($public) ? 1 : 0; - $queryStr = "INSERT INTO `tblDocumentLinks` (`document`, `target`, `userID`, `public`) VALUES (".$this->_id.", ".(int)$targetID.", ".(int)$userID.", ".(int)$public.")"; + if (!is_numeric($targetID) || $targetID < 1) + return false; + + if ($targetID == $this->_id) + return false; + + if (!is_numeric($userID) || $userID < 1) + return false; + + if(!($target = $this->_dms->getDocument($targetID))) + return false; + + if(!($user = $this->_dms->getUser($userID))) + return false; + + $queryStr = "INSERT INTO `tblDocumentLinks` (`document`, `target`, `userID`, `public`) VALUES (".$this->_id.", ".(int)$targetID.", ".(int)$userID.", ".$public.")"; if (!$db->getResult($queryStr)) return false; unset($this->_documentLinks); - return true; + + $id = $db->getInsertID('tblDocumentLinks'); + $link = new SeedDMS_Core_DocumentLink($id, $this, $target, $user->getId(), $public); + return $link; } /* }}} */ function removeDocumentLink($linkID) { /* {{{ */ $db = $this->_dms->getDB(); - if (!is_numeric($linkID)) return false; + if (!is_numeric($linkID) || $linkID < 1) + return false; $queryStr = "DELETE FROM `tblDocumentLinks` WHERE `document` = " . $this->_id ." AND `id` = " . (int) $linkID; if (!$db->getResult($queryStr)) return false; @@ -2246,8 +2351,9 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ /** * Get list of files attached to document * - * @param integer $version get only attachments for this version - *@param boolean $incnoversion include attachments without a version + * @param integer $version get only attachments for this version + * @param boolean $incnoversion include attachments without a version + * * @return array list of files, false in case of an sql error */ function getDocumentFiles($version=0, $incnoversion=true) { /* {{{ */ @@ -2285,7 +2391,7 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ return $this->_documentFiles[$hash]; } /* }}} */ - function addDocumentFile($name, $comment, $user, $tmpFile, $orgFileName,$fileType, $mimeType,$version=0,$public=1) { /* {{{ */ + function addDocumentFile($name, $comment, $user, $tmpFile, $orgFileName, $fileType, $mimeType, $version=0, $public=1) { /* {{{ */ $db = $this->_dms->getDB(); $dir = $this->getDir(); @@ -2318,29 +2424,37 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ } $db->commitTransaction(); + unset ($this->_documentFiles); return $file; } /* }}} */ function removeDocumentFile($ID) { /* {{{ */ $db = $this->_dms->getDB(); - if (!is_numeric($ID)) return false; + if (!is_numeric($ID) || $ID < 1) + return false; $file = $this->getDocumentFile($ID); if (is_bool($file) && !$file) return false; - if (file_exists( $this->_dms->contentDir . $file->getPath() )){ - if (!SeedDMS_Core_File::removeFile( $this->_dms->contentDir . $file->getPath() )) - return false; + $db->startTransaction(); + /* First delete the database record, because that can be undone + * if deletion of the file fails. + */ + $queryStr = "DELETE FROM `tblDocumentFiles` WHERE `document` = " . $this->getID() . " AND `id` = " . (int) $ID; + if (!$db->getResult($queryStr)) { + $db->rollbackTransaction(); + return false; } - $name=$file->getName(); - $comment=$file->getcomment(); - - $queryStr = "DELETE FROM `tblDocumentFiles` WHERE `document` = " . $this->getID() . " AND `id` = " . (int) $ID; - if (!$db->getResult($queryStr)) - return false; + if (file_exists( $this->_dms->contentDir . $file->getPath() )){ + if (!SeedDMS_Core_File::removeFile( $this->_dms->contentDir . $file->getPath() )) { + $db->rollbackTransaction(); + return false; + } + } + $db->commitTransaction(); unset ($this->_documentFiles); return true; @@ -2454,7 +2568,7 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ /* Check if 'onPostRemoveDocument' callback is set */ if(isset($this->_dms->callbacks['onPostRemoveDocument'])) { foreach($this->_dms->callbacks['onPostRemoveDocument'] as $callback) { - if(!call_user_func($callback[0], $callback[1], $this->_id)) { + if(!call_user_func($callback[0], $callback[1], $this)) { } } } @@ -2471,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); } /* }}} */ @@ -2621,7 +2735,7 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ function getFolderList() { /* {{{ */ $db = $this->_dms->getDB(); - $queryStr = "SELECT `folderList` FROM `tblDocuments` where id = ".$this->_id; + $queryStr = "SELECT `folderList` FROM `tblDocuments` WHERE id = ".$this->_id; $resArr = $db->getResultArray($queryStr); if (is_bool($resArr) && !$resArr) return false; @@ -2709,7 +2823,7 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ return false; foreach ($resArr as $row) { - $date = date('Y-m-d H:i:s', $row['date']); + $date = date('Y-m-d H:i:s', (int) $row['date']); $timeline[] = array('date'=>$date, 'msg'=>'Added attachment "'.$row['name'].'"', 'document'=>$this, 'type'=>'add_file', 'fileid'=>$row['id']); } @@ -2891,7 +3005,8 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ * * This method may not be called after a negative approval or review to * recalculated the status, because - * it doesn't take a defeating approval or review into account. It will + * it doesn't take a defeating approval or review into account. This method + * does not set the status to S_REJECTED! It will * just check for a pending workflow, approval or review and set the status * accordingly, e.g. after the list of reviewers or appovers has been * modified. If there is not pending workflow, approval or review the @@ -2911,13 +3026,15 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ unset($this->_status); $st=$this->getStatus(); - if (!$ignorecurrentstatus && ($st["status"]==S_OBSOLETE || $st["status"]==S_REJECTED || $st["status"]==S_EXPIRED )) return; + if (!$ignorecurrentstatus && ($st["status"]==S_OBSOLETE || $st["status"]==S_REJECTED || $st["status"]==S_EXPIRED )) return $st['status']; - unset($this->_workflow); // force to be reloaded from DB + $this->_workflow = null; // force to be reloaded from DB $hasworkflow = $this->getWorkflow() ? true : false; /* $pendingReview will be set when there are still open reviews */ $pendingReview=false; + /* $hasReview will be set if there is at least one positiv review */ + $hasReview=false; unset($this->_reviewStatus); // force to be reloaded from DB $reviewStatus=$this->getReviewStatus(); if (is_array($reviewStatus) && count($reviewStatus)>0) { @@ -2925,12 +3042,16 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ if ($r["status"]==0){ $pendingReview=true; break; + } elseif($r["status"]==1){ + $hasReview=true; } } } /* $pendingApproval will be set when there are still open approvals */ $pendingApproval=false; + /* $hasApproval will be set if there is at least one positiv review */ + $hasApproval=false; unset($this->_approvalStatus); // force to be reloaded from DB $approvalStatus=$this->getApprovalStatus(); if (is_array($approvalStatus) && count($approvalStatus)>0) { @@ -2938,15 +3059,18 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ if ($a["status"]==0){ $pendingApproval=true; break; + } elseif($a["status"]==1){ + $hasApproval=true; } } } /* First check for a running workflow or open reviews or approvals. */ - if ($hasworkflow) $this->setStatus(S_IN_WORKFLOW,$msg,$user); - elseif ($pendingReview) $this->setStatus(S_DRAFT_REV,$msg,$user); - elseif ($pendingApproval) $this->setStatus(S_DRAFT_APP,$msg,$user); - else $this->setStatus(S_RELEASED,$msg,$user); + if ($hasworkflow) { $newstatus = S_IN_WORKFLOW; $ret = $this->setStatus(S_IN_WORKFLOW,$msg,$user); } + elseif ($pendingReview) { $newstatus = S_DRAFT_REV; $ret = $this->setStatus(S_DRAFT_REV,$msg,$user); } + elseif ($pendingApproval) { $newstatus = S_DRAFT_APP; $ret = $this->setStatus(S_DRAFT_APP,$msg,$user); } + else { $newstatus = S_RELEASED; $ret = $this->setStatus(S_RELEASED,$msg,$user); } + return $ret ? $newstatus : $ret; } /* }}} */ function __construct($id, $document, $version, $comment, $date, $userID, $dir, $orgFileName, $fileType, $mimeType, $fileSize=0, $checksum='') { /* {{{ */ @@ -2954,7 +3078,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ $this->_document = $document; $this->_version = (int) $version; $this->_comment = $comment; - $this->_date = $date; + $this->_date = (int) $date; $this->_userID = (int) $userID; $this->_dir = $dir; $this->_orgFileName = $orgFileName; @@ -3010,17 +3134,28 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ */ function getPath() { return $this->_document->getDir() . $this->_version . $this->_fileType; } + /** + * Set upload date of document content + * + * @param string $date date must be a timestamp or in the format 'Y-m-d H:i:s' + * + * @return boolean true on success, otherwise false + */ function setDate($date = false) { /* {{{ */ $db = $this->_document->getDMS()->getDB(); if(!$date) $date = time(); else { - if(!is_numeric($date)) + if(is_string($date) && SeedDMS_Core_DMS::checkDate($date, 'Y-m-d H:i:s')) { + $date = strtotime($date); + } elseif(is_numeric($date)) + $date = (int) $date; + else return false; } - $queryStr = "UPDATE `tblDocumentContent` SET `date` = ".(int) $date." WHERE `document` = " . $this->_document->getID() . " AND `version` = " . $this->_version; + $queryStr = "UPDATE `tblDocumentContent` SET `date` = ". $date." WHERE `document` = " . $this->_document->getID() . " AND `version` = " . $this->_version; if (!$db->getResult($queryStr)) return false; @@ -3042,7 +3177,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ return false; $db = $this->_document->getDMS()->getDB(); - $queryStr = "UPDATE `tblDocumentContent` SET `fileSize` = ".$filesize." where `document` = " . $this->_document->getID() . " AND `version` = " . $this->_version; + $queryStr = "UPDATE `tblDocumentContent` SET `fileSize` = ".$filesize." WHERE `document` = " . $this->_document->getID() . " AND `version` = " . $this->_version; if (!$db->getResult($queryStr)) return false; $this->_fileSize = $filesize; @@ -3063,7 +3198,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ return false; $db = $this->_document->getDMS()->getDB(); - $queryStr = "UPDATE `tblDocumentContent` SET `checksum` = ".$db->qstr($checksum)." where `document` = " . $this->_document->getID() . " AND `version` = " . $this->_version; + $queryStr = "UPDATE `tblDocumentContent` SET `checksum` = ".$db->qstr($checksum)." WHERE `document` = " . $this->_document->getID() . " AND `version` = " . $this->_version; if (!$db->getResult($queryStr)) return false; $this->_checksum = $checksum; @@ -3071,10 +3206,55 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ return true; } /* }}} */ + /** + * Set file type by evaluating the mime type + */ + function setFileType() { /* {{{ */ + $mimetype = $this->getMimeType(); + + $expect = SeedDMS_Core_File::fileExtension($mimetype); + if($expect && '.'.$expect != $this->_fileType) { + $db = $this->_document->getDMS()->getDB(); + $db->startTransaction(); + $queryStr = "UPDATE `tblDocumentContent` SET `fileType`='.".$expect."' WHERE `id` = ". $this->_id; + $res = $db->getResult($queryStr); + if ($res) { + if(!SeedDMS_Core_File::renameFile($this->_dms->contentDir.$this->_document->getDir() . $this->_version . $this->_fileType, $this->_dms->contentDir.$this->_document->getDir() . $this->_version . '.' . $expect)) { + $db->rollbackTransaction(); + } else { + $this->_fileType = '.'.$expect; + $db->commitTransaction(); + return true; + } + } else { + $db->rollbackTransaction(); + } + } + + return false; + } /* }}} */ + + function setMimeType($newMimetype) { /* {{{ */ + $db = $this->_document->getDMS()->getDB(); + + $newMimetype = trim($newMimetype); + + if(!$newMimetype) + return false; + + $queryStr = "UPDATE `tblDocumentContent` SET `mimeType` = ".$db->qstr($newMimetype)." WHERE `document` = " . $this->_document->getID() . " AND `version` = " . $this->_version; + if (!$db->getResult($queryStr)) + return false; + + $this->_mimeType = $newMimetype; + + return true; + } /* }}} */ + function setComment($newComment) { /* {{{ */ $db = $this->_document->getDMS()->getDB(); - $queryStr = "UPDATE `tblDocumentContent` SET `comment` = ".$db->qstr($newComment)." WHERE `document` = " . $this->_document->getID() . " AND `version` = " . $this->_version; + $queryStr = "UPDATE `tblDocumentContent` SET `comment` = ".$db->qstr($newComment)." WHERE `document` = " . $this->_document->getID() . " AND `version` = " . $this->_version; if (!$db->getResult($queryStr)) return false; @@ -3169,9 +3349,11 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ * tblDocumentStatusLog. The method returns also false if the status * is already set on the value passed to the method. * - * @param integer $status new status of content - * @param string $comment comment for this status change - * @param object $updateUser user initiating the status change + * @param integer $status new status of content + * @param string $comment comment for this status change + * @param object $updateUser user initiating the status change + * @param string $date date in the format 'Y-m-d H:i:s' + * * @return boolean true on success, otherwise false */ function setStatus($status, $comment, $updateUser, $date='') { /* {{{ */ @@ -3180,12 +3362,12 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ if (!is_numeric($status)) return false; /* return an error if $updateuser is not set */ - if(!$updateUser) + if(!$updateUser || !$updateUser->isType('user')) return false; // If the supplied value lies outside of the accepted range, return an // error. - if ($status < -3 || $status > 3) { + if ($status < S_LOWEST_STATUS || $status > S_HIGHEST_STATUS) { return false; } @@ -3197,9 +3379,11 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ if ($this->_status["status"]==$status) { return true; } - if($date) + if($date) { + if(!SeedDMS_Core_DMS::checkDate($date, 'Y-m-d H:i:s')) + return false; $ddate = $db->qstr($date); - else + } else $ddate = $db->getCurrentDatetime(); $db->startTransaction(); $queryStr = "INSERT INTO `tblDocumentStatusLog` (`statusID`, `status`, `comment`, `date`, `userID`) ". @@ -3253,7 +3437,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ $db->startTransaction(); /* First, remove the old entries */ - $queryStr = "DELETE from `tblDocumentStatusLog` where `statusID`=".$statusID; + $queryStr = "DELETE FROM `tblDocumentStatusLog` WHERE `statusID`=".$statusID; if (!$db->getResult($queryStr)) { $db->rollbackTransaction(); return false; @@ -3404,6 +3588,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 +3619,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 @@ -3534,13 +3720,13 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ $reviewID = $review['reviewID']; /* First, remove the old entries */ - $queryStr = "DELETE from `tblDocumentReviewLog` where `reviewID`=".$reviewID; + $queryStr = "DELETE FROM `tblDocumentReviewLog` WHERE `reviewID`=".$reviewID; if (!$db->getResult($queryStr)) { $db->rollbackTransaction(); return false; } - $queryStr = "DELETE from `tblDocumentReviewers` where `reviewID`=".$reviewID; + $queryStr = "DELETE FROM `tblDocumentReviewers` WHERE `reviewID`=".$reviewID; if (!$db->getResult($queryStr)) { $db->rollbackTransaction(); return false; @@ -3582,6 +3768,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 +3799,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 @@ -3712,13 +3900,13 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ $reviewID = $review['reviewID']; /* First, remove the old entries */ - $queryStr = "DELETE from `tblDocumentApproveLog` where `approveID`=".$reviewID; + $queryStr = "DELETE FROM `tblDocumentApproveLog` WHERE `approveID`=".$reviewID; if (!$db->getResult($queryStr)) { $db->rollbackTransaction(); return false; } - $queryStr = "DELETE from `tblDocumentApprovers` where `approveID`=".$reviewID; + $queryStr = "DELETE FROM `tblDocumentApprovers` WHERE `approveID`=".$reviewID; if (!$db->getResult($queryStr)) { $db->rollbackTransaction(); return false; @@ -3758,9 +3946,25 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ return true; } /* }}} */ + /** + * Add user as new reviewer + * + * @param object $user user in charge for the review + * @param object $requestUser user requesting the operation (usually the + * currently logged in user) + * + * @return integer|false if > 0 the id of the review log, if < 0 the error + * code, false in case of an sql error + */ function addIndReviewer($user, $requestUser) { /* {{{ */ + if(!$user || !$requestUser) + return -1; + $db = $this->_document->getDMS()->getDB(); + if(!$user->isType('user')) + return -1; + $userID = $user->getID(); // Get the list of users and groups with read access to this document. @@ -3771,7 +3975,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ // Check to see if the user has already been added to the review list. $reviewStatus = $user->getReviewStatus($this->_document->getID(), $this->_version); if (is_bool($reviewStatus) && !$reviewStatus) { - return -1; + return false; } $indstatus = false; if (count($reviewStatus["indstatus"]) > 0) { @@ -3788,7 +3992,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ "VALUES ('". $this->_document->getID() ."', '". $this->_version ."', '0', '". $userID ."')"; $res = $db->getResult($queryStr); if (is_bool($res) && !$res) { - return -1; + return false; } $reviewID = $db->getInsertID('tblDocumentReviewers', 'reviewID'); } @@ -3800,18 +4004,33 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ "VALUES ('". $reviewID ."', '0', '', ".$db->getCurrentDatetime().", '". $requestUser->getID() ."')"; $res = $db->getResult($queryStr); if (is_bool($res) && !$res) { - return -1; + return false; } - // Add reviewer to event notification table. - //$this->_document->addNotify($userID, true); - - return 0; + $reviewLogID = $db->getInsertID('tblDocumentReviewLog', 'reviewLogID'); + $db->dropTemporaryTable('ttreviewid'); + return $reviewLogID; } /* }}} */ + /** + * Add group as new reviewer + * + * @param object $group group in charge for the review + * @param object $requestUser user requesting the operation (usually the + * currently logged in user) + * + * @return integer|false if > 0 the id of the review log, if < 0 the error + * code, false in case of an sql error + */ function addGrpReviewer($group, $requestUser) { /* {{{ */ + if(!$group || !$requestUser) + return -1; + $db = $this->_document->getDMS()->getDB(); + if(!$group->isType('group')) + return -1; + $groupID = $group->getID(); // Get the list of users and groups with read access to this document. @@ -3833,7 +4052,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ // Check to see if the group has already been added to the review list. $reviewStatus = $group->getReviewStatus($this->_document->getID(), $this->_version); if (is_bool($reviewStatus) && !$reviewStatus) { - return -1; + return false; } if (count($reviewStatus) > 0 && $reviewStatus[0]["status"]!=-2) { // Group is already on the list of reviewers; return an error. @@ -3846,7 +4065,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ "VALUES ('". $this->_document->getID() ."', '". $this->_version ."', '1', '". $groupID ."')"; $res = $db->getResult($queryStr); if (is_bool($res) && !$res) { - return -1; + return false; } $reviewID = $db->getInsertID('tblDocumentReviewers', 'reviewID'); } @@ -3858,13 +4077,12 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ "VALUES ('". $reviewID ."', '0', '', ".$db->getCurrentDatetime().", '". $requestUser->getID() ."')"; $res = $db->getResult($queryStr); if (is_bool($res) && !$res) { - return -1; + return false; } - // Add reviewer to event notification table. - //$this->_document->addNotify($groupID, false); - - return 0; + $reviewLogID = $db->getInsertID('tblDocumentReviewLog', 'reviewLogID'); + $db->dropTemporaryTable('ttreviewid'); + return $reviewLogID; } /* }}} */ /** @@ -3880,20 +4098,29 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ * added, the review log id will be returned. * * @see SeedDMS_Core_DocumentContent::setApprovalByInd() - * @param object $user user doing the review - * @param object $requestUser user asking for the review, this is mostly + * + * @param object $user user doing the review + * @param object $requestUser user asking for the review, this is mostly * the user currently logged in. * @param integer $status status of review - * @param string $comment comment for review - * @return integer new review log id + * @param string $comment comment for review + * + * @return integer|bool new review log id, error code 0 till -4, + * false in case of an sql error */ function setReviewByInd($user, $requestUser, $status, $comment, $file='') { /* {{{ */ + if(!$user || !$requestUser) + return -1; + $db = $this->_document->getDMS()->getDB(); - // Check to see if the user can be removed from the review list. + if(!$user->isType('user')) + return -1; + + // Check if the user is on the review list at all. $reviewStatus = $user->getReviewStatus($this->_document->getID(), $this->_version); if (is_bool($reviewStatus) && !$reviewStatus) { - return -1; + return false; } if (count($reviewStatus["indstatus"])==0) { // User is not assigned to review this document. No action required. @@ -3916,27 +4143,31 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ $requestUser->getID() ."')"; $res=$db->getResult($queryStr); if (is_bool($res) && !$res) - return -1; + return false; $reviewLogID = $db->getInsertID('tblDocumentReviewLog', 'reviewLogID'); if($file) { SeedDMS_Core_File::copyFile($file, $this->_dms->contentDir . $this->_document->getDir() . 'r' . $reviewLogID); } return $reviewLogID; - } /* }}} */ + } /* }}} */ /** * Add another entry to review log which resets the status * * This method will not delete anything from the database, but will add * a new review log entry which sets the status to 0. This is only allowed - * if the current status is either 1 or -1. + * if the current status is either 1 (reviewed) or -1 (rejected). * * After calling this method SeedDMS_Core_DocumentCategory::verifyStatus() * should be called to recalculate the document status. * - * @param SeedDMS_Core_User $user - * @return int 0 if successful + * @param integer $reviewid id of review + * @param SeedDMS_Core_User $requestUser user requesting the removal + * @param string $comment comment + * + * @return integer|bool true if successful, error code < 0, + * false in case of an sql error */ public function removeReview($reviewid, $requestUser, $comment='') { /* {{{ */ $db = $this->_document->getDMS()->getDB(); @@ -3944,7 +4175,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ // Check to see if the user can be removed from the review list. $reviews = $this->getReviewStatus(); if (is_bool($reviews) && !$reviews) { - return -1; + return false; } $reviewStatus = null; foreach($reviews as $review) { @@ -3964,13 +4195,12 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ `comment`, `date`, `userID`) ". "VALUES ('". $reviewStatus["reviewID"] ."', '0', ".$db->qstr($comment).", ".$db->getCurrentDatetime().", '". $requestUser->getID() ."')"; - //$queryStr = "DELETE FROM `tblDocumentReviewLog` WHERE `reviewLogID` = ".$reviewStatus['reviewLogID']; $res=$db->getResult($queryStr); if (is_bool($res) && !$res) - return -1; + return false; - return 0; - } /* }}} */ + return true; + } /* }}} */ /** * Add a review to the document content @@ -3979,27 +4209,35 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ * {@see SeedDMS_Core_DocumentContent::setReviewByInd()} but adds a review * for a group instead of a user. * - * @param object $group group doing the review - * @param object $requestUser user asking for the review, this is mostly + * @param object $group group doing the review + * @param object $requestUser user asking for the review, this is mostly * the user currently logged in. * @param integer $status status of review - * @param string $comment comment for review - * @return integer new review log id + * @param string $comment comment for review + * + * @return integer|bool new review log id, error code 0 till -4, + * false in case of an sql error */ function setReviewByGrp($group, $requestUser, $status, $comment, $file='') { /* {{{ */ + if(!$group || !$requestUser) + return -1; + $db = $this->_document->getDMS()->getDB(); - // Check to see if the user can be removed from the review list. + if(!$group->isType('group')) + return -1; + + // Check if the group is on the review list at all. $reviewStatus = $group->getReviewStatus($this->_document->getID(), $this->_version); if (is_bool($reviewStatus) && !$reviewStatus) { - return -1; + return false; } if (count($reviewStatus)==0) { // User is not assigned to review this document. No action required. // Return an error. return -3; } - if ($reviewStatus[0]["status"]==-2) { + if ((int) $reviewStatus[0]["status"]==-2) { // Group has been deleted from reviewers return -4; } @@ -4015,19 +4253,34 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ $requestUser->getID() ."')"; $res=$db->getResult($queryStr); if (is_bool($res) && !$res) - return -1; - else { - $reviewLogID = $db->getInsertID('tblDocumentReviewLog', 'reviewLogID'); - if($file) { - SeedDMS_Core_File::copyFile($file, $this->_dms->contentDir . $this->_document->getDir() . 'r' . $reviewLogID); - } - return $reviewLogID; + return false; + + $reviewLogID = $db->getInsertID('tblDocumentReviewLog', 'reviewLogID'); + if($file) { + SeedDMS_Core_File::copyFile($file, $this->_dms->contentDir . $this->_document->getDir() . 'r' . $reviewLogID); } + return $reviewLogID; } /* }}} */ + /** + * Add user as new approver + * + * @param object $user user in charge for the approval + * @param object $requestUser user requesting the operation (usually the + * currently logged in user) + * + * @return integer|false if > 0 the id of the approval log, if < 0 the error + * code, false in case of an sql error + */ function addIndApprover($user, $requestUser) { /* {{{ */ + if(!$user || !$requestUser) + return -1; + $db = $this->_document->getDMS()->getDB(); + if(!$user->isType('user')) + return -1; + $userID = $user->getID(); // Get the list of users and groups with read access to this document. @@ -4035,10 +4288,10 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ return -2; } - // Check to see if the user has already been added to the approvers list. + // Check if the user has already been added to the approvers list. $approvalStatus = $user->getApprovalStatus($this->_document->getID(), $this->_version); if (is_bool($approvalStatus) && !$approvalStatus) { - return -1; + return false; } $indstatus = false; if (count($approvalStatus["indstatus"]) > 0) { @@ -4055,7 +4308,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ "VALUES ('". $this->_document->getID() ."', '". $this->_version ."', '0', '". $userID ."')"; $res = $db->getResult($queryStr); if (is_bool($res) && !$res) { - return -1; + return false; } $approveID = $db->getInsertID('tblDocumentApprovers', 'approveID'); } @@ -4067,16 +4320,33 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ "VALUES ('". $approveID ."', '0', '', ".$db->getCurrentDatetime().", '". $requestUser->getID() ."')"; $res = $db->getResult($queryStr); if (is_bool($res) && !$res) { - return -1; + return false; } $approveLogID = $db->getInsertID('tblDocumentApproveLog', 'approveLogID'); + $db->dropTemporaryTable('ttapproveid'); return $approveLogID; } /* }}} */ + /** + * Add group as new approver + * + * @param object $group group in charge for the approval + * @param object $requestUser user requesting the operation (usually the + * currently logged in user) + * + * @return integer|false if > 0 the id of the approval log, if < 0 the error + * code, false in case of an sql error + */ function addGrpApprover($group, $requestUser) { /* {{{ */ + if(!$group || !$requestUser) + return -1; + $db = $this->_document->getDMS()->getDB(); + if(!$group->isType('group')) + return -1; + $groupID = $group->getID(); // Get the list of users and groups with read access to this document. @@ -4095,10 +4365,10 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ return -2; } - // Check to see if the group has already been added to the approver list. + // Check if the group has already been added to the approver list. $approvalStatus = $group->getApprovalStatus($this->_document->getID(), $this->_version); if (is_bool($approvalStatus) && !$approvalStatus) { - return -1; + return false; } if (count($approvalStatus) > 0 && $approvalStatus[0]["status"]!=-2) { // Group is already on the list of approvers; return an error. @@ -4111,7 +4381,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ "VALUES ('". $this->_document->getID() ."', '". $this->_version ."', '1', '". $groupID ."')"; $res = $db->getResult($queryStr); if (is_bool($res) && !$res) { - return -1; + return false; } $approveID = $db->getInsertID('tblDocumentApprovers', 'approveID'); } @@ -4123,13 +4393,11 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ "VALUES ('". $approveID ."', '0', '', ".$db->getCurrentDatetime().", '". $requestUser->getID() ."')"; $res = $db->getResult($queryStr); if (is_bool($res) && !$res) { - return -1; + return false; } - // Add approver to event notification table. - //$this->_document->addNotify($groupID, false); - $approveLogID = $db->getInsertID('tblDocumentApproveLog', 'approveLogID'); + $db->dropTemporaryTable('ttapproveid'); return $approveLogID; } /* }}} */ @@ -4145,8 +4413,9 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ * the function returns with an error. * * @see SeedDMS_Core_DocumentContent::setReviewByInd() - * @param object $user user in charge for doing the approval - * @param object $requestUser user actually calling this function + * + * @param object $user user in charge for doing the approval + * @param object $requestUser user actually calling this function * @param integer $status the status of the approval, possible values are * 0=unprocessed (maybe used to reset a status) * 1=approved, @@ -4154,15 +4423,23 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ * -2=user is deleted (use {link * SeedDMS_Core_DocumentContent::delIndApprover} instead) * @param string $comment approval comment - * @return integer 0 on success, < 0 in case of an error + * + * @return integer|bool new review log id, error code 0 till -4, + * false in case of an sql error */ function setApprovalByInd($user, $requestUser, $status, $comment, $file='') { /* {{{ */ + if(!$user || !$requestUser) + return -1; + $db = $this->_document->getDMS()->getDB(); - // Check to see if the user can be removed from the approval list. + if(!$user->isType('user')) + return -1; + + // Check if the user is on the approval list at all. $approvalStatus = $user->getApprovalStatus($this->_document->getID(), $this->_version); if (is_bool($approvalStatus) && !$approvalStatus) { - return -1; + return false; } if (count($approvalStatus["indstatus"])==0) { // User is not assigned to approve this document. No action required. @@ -4185,27 +4462,31 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ $requestUser->getID() ."')"; $res=$db->getResult($queryStr); if (is_bool($res) && !$res) - return -1; + return false; $approveLogID = $db->getInsertID('tblDocumentApproveLog', 'approveLogID'); if($file) { SeedDMS_Core_File::copyFile($file, $this->_dms->contentDir . $this->_document->getDir() . 'a' . $approveLogID); } return $approveLogID; - } /* }}} */ + } /* }}} */ /** * Add another entry to approval log which resets the status * * This method will not delete anything from the database, but will add - * a new review log entry which sets the status to 0. This is only allowed - * if the current status is either 1 or -1. + * a new approval log entry which sets the status to 0. This is only allowed + * if the current status is either 1 (approved) or -1 (rejected). * * After calling this method SeedDMS_Core_DocumentCategory::verifyStatus() * should be called to recalculate the document status. * - * @param SeedDMS_Core_User $user - * @return int 0 if successful + * @param integer $approveid id of approval + * @param SeedDMS_Core_User $requestUser user requesting the removal + * @param string $comment comment + * + * @return integer|bool true if successful, error code < 0, + * false in case of an sql error */ public function removeApproval($approveid, $requestUser, $comment='') { /* {{{ */ $db = $this->_document->getDMS()->getDB(); @@ -4213,7 +4494,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ // Check to see if the user can be removed from the approval list. $approvals = $this->getApprovalStatus(); if (is_bool($approvals) && !$approvals) { - return -1; + return false; } $approvalStatus = null; foreach($approvals as $approval) { @@ -4235,25 +4516,31 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ $requestUser->getID() ."')"; $res=$db->getResult($queryStr); if (is_bool($res) && !$res) - return -1; - - return 0; - } /* }}} */ + return false; + return true; + } /* }}} */ /** * Sets approval status of a document content for a group + * * The functions behaves like * {link SeedDMS_Core_DocumentContent::setApprovalByInd} but does it for - * group instead of a user + * a group instead of a user */ function setApprovalByGrp($group, $requestUser, $status, $comment, $file='') { /* {{{ */ + if(!$group || !$requestUser) + return -1; + $db = $this->_document->getDMS()->getDB(); - // Check to see if the user can be removed from the approval list. + if(!$group->isType('group')) + return -1; + + // Check if the group is on the approval list at all. $approvalStatus = $group->getApprovalStatus($this->_document->getID(), $this->_version); if (is_bool($approvalStatus) && !$approvalStatus) { - return -1; + return false; } if (count($approvalStatus)==0) { // User is not assigned to approve this document. No action required. @@ -4276,22 +4563,25 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ $requestUser->getID() ."')"; $res=$db->getResult($queryStr); if (is_bool($res) && !$res) - return -1; + return false; $approveLogID = $db->getInsertID('tblDocumentApproveLog', 'approveLogID'); if($file) { SeedDMS_Core_File::copyFile($file, $this->_dms->contentDir . $this->_document->getDir() . 'a' . $approveLogID); } return $approveLogID; - } /* }}} */ + } /* }}} */ function delIndReviewer($user, $requestUser, $msg='') { /* {{{ */ $db = $this->_document->getDMS()->getDB(); + if(!$user->isType('user')) + return -1; + // Check to see if the user can be removed from the review list. $reviewStatus = $user->getReviewStatus($this->_document->getID(), $this->_version); if (is_bool($reviewStatus) && !$reviewStatus) { - return -1; + return false; } if (count($reviewStatus["indstatus"])==0) { // User is not assigned to review this document. No action required. @@ -4309,7 +4599,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ "VALUES ('". $indstatus["reviewID"] ."', '".S_LOG_USER_REMOVED."', ".$db->qstr($msg).", ".$db->getCurrentDatetime().", '". $requestUser->getID() ."')"; $res = $db->getResult($queryStr); if (is_bool($res) && !$res) { - return -1; + return false; } return 0; @@ -4318,12 +4608,15 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ function delGrpReviewer($group, $requestUser, $msg='') { /* {{{ */ $db = $this->_document->getDMS()->getDB(); + if(!$group->isType('group')) + return -1; + $groupID = $group->getID(); // Check to see if the user can be removed from the review list. $reviewStatus = $group->getReviewStatus($this->_document->getID(), $this->_version); if (is_bool($reviewStatus) && !$reviewStatus) { - return -1; + return false; } if (count($reviewStatus)==0) { // User is not assigned to review this document. No action required. @@ -4340,7 +4633,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ "VALUES ('". $reviewStatus[0]["reviewID"] ."', '".S_LOG_USER_REMOVED."', ".$db->qstr($msg).", ".$db->getCurrentDatetime().", '". $requestUser->getID() ."')"; $res = $db->getResult($queryStr); if (is_bool($res) && !$res) { - return -1; + return false; } return 0; @@ -4349,12 +4642,15 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ function delIndApprover($user, $requestUser, $msg='') { /* {{{ */ $db = $this->_document->getDMS()->getDB(); + if(!$user->isType('user')) + return -1; + $userID = $user->getID(); - // Check to see if the user can be removed from the approval list. + // Check if the user is on the approval list at all. $approvalStatus = $user->getApprovalStatus($this->_document->getID(), $this->_version); if (is_bool($approvalStatus) && !$approvalStatus) { - return -1; + return false; } if (count($approvalStatus["indstatus"])==0) { // User is not assigned to approve this document. No action required. @@ -4372,7 +4668,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ "VALUES ('". $indstatus["approveID"] ."', '".S_LOG_USER_REMOVED."', ".$db->qstr($msg).", ".$db->getCurrentDatetime().", '". $requestUser->getID() ."')"; $res = $db->getResult($queryStr); if (is_bool($res) && !$res) { - return -1; + return false; } return 0; @@ -4381,12 +4677,15 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ function delGrpApprover($group, $requestUser, $msg='') { /* {{{ */ $db = $this->_document->getDMS()->getDB(); + if(!$group->isType('group')) + return -1; + $groupID = $group->getID(); - // Check to see if the user can be removed from the approver list. + // Check if the group is on the approval list at all. $approvalStatus = $group->getApprovalStatus($this->_document->getID(), $this->_version); if (is_bool($approvalStatus) && !$approvalStatus) { - return -1; + return false; } if (count($approvalStatus)==0) { // User is not assigned to approve this document. No action required. @@ -4403,7 +4702,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ "VALUES ('". $approvalStatus[0]["approveID"] ."', '".S_LOG_USER_REMOVED."', ".$db->qstr($msg).", ".$db->getCurrentDatetime().", '". $requestUser->getID() ."')"; $res = $db->getResult($queryStr); if (is_bool($res) && !$res) { - return -1; + return false; } return 0; @@ -4458,7 +4757,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ } /* }}} */ /** - * Assign a workflow to a document + * Assign a workflow to a document content * * @param object $workflow */ @@ -4466,6 +4765,9 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ $db = $this->_document->getDMS()->getDB(); $this->getWorkflow(); + if($this->_workflow) + return false; + if($workflow && is_object($workflow)) { $db->startTransaction(); $initstate = $workflow->getInitState(); @@ -4482,14 +4784,14 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ $db->commitTransaction(); return true; } - return true; + return false; } /* }}} */ /** * Get workflow assigned to the document content * * The method returns the last workflow if one was assigned. - * If a the document version is in a sub workflow, it will have + * If the document version is in a sub workflow, it will have * a never date and therefore will be found first. * * @return object/boolean an object of class SeedDMS_Core_Workflow @@ -4498,7 +4800,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ function getWorkflow() { /* {{{ */ $db = $this->_document->getDMS()->getDB(); - if (!isset($this->_workflow)) { + if (!$this->_workflow) { $queryStr= "SELECT b.* FROM `tblWorkflowDocumentContent` a LEFT JOIN `tblWorkflows` b ON a.`workflow` = b.`id` WHERE a.`version`='".$this->_version ."' AND a.`document` = '". $this->_document->getID() ."' " @@ -4543,7 +4845,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ $db->rollbackTransaction(); return false; } - $queryStr = "INSERT INTO `tblWorkflowLog` (`document`, `version`, `workflow`, `transition`, `comment`, `date`, `userid`) ". + $queryStr = "INSERT INTO `tblWorkflowLog` (`document`, `version`, `workflow`, `transition`, `comment`, `date`, `userid`) ". "VALUES ('".$this->_document->getID() ."', '".(int) $this->_version."', '".(int) $log['workflow']->getID()."', '".(int) $log['transition']->getID()."', ".$db->qstr($log['comment']) .", ".$db->qstr($log['date']).", ".$log['user']->getID().")"; if (!$db->getResult($queryStr)) { $db->rollbackTransaction(); @@ -4566,7 +4868,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ $this->getWorkflow(); - if (!isset($this->_workflow)) { + if (!$this->_workflow) { return true; } @@ -4607,7 +4909,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ $this->getWorkflow(); - if (!isset($this->_workflow)) { + if (!$this->_workflow) { return true; } @@ -4617,15 +4919,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 +4930,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'); @@ -4723,7 +5025,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ if(!$this->_workflow) return false; - if (isset($this->_workflow)) { + if ($this->_workflow) { $db->startTransaction(); $queryStr= @@ -5050,9 +5352,11 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ /** * Get the so far logged operations on the document content within the - * workflow + * workflow. Even after finishing the workflow (when the document content + * does not have workflow set anymore) this function returns the list of all + * log entries. * - * @return array list of operations + * @return array list of objects */ function getWorkflowLog($transition = null) { /* {{{ */ $db = $this->_document->getDMS()->getDB(); @@ -5085,30 +5389,33 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ } /* }}} */ /** - * Get the latest logged transition for the document content within the - * workflow + * Get the latest workflow log entry for the document content within the + * workflow. Even after finishing the workflow (when the document content + * does not have workflow set anymore) this function returns the last + * log entry. * - * @return array list of operations + * @return object */ - function getLastWorkflowTransition() { /* {{{ */ + function getLastWorkflowLog() { /* {{{ */ $db = $this->_document->getDMS()->getDB(); +/* if(!$this->_workflow) $this->getWorkflow(); if(!$this->_workflow) return false; - + */ $queryStr= - "SELECT * FROM `tblWorkflowLog` WHERE `version`='".$this->_version ."' AND `document` = '". $this->_document->getID() ."' AND `workflow` = ". $this->_workflow->getID(); + "SELECT * FROM `tblWorkflowLog` WHERE `version`='".$this->_version ."' AND `document` = '". $this->_document->getID() ."'"; // AND `workflow` = ". $this->_workflow->getID(); $queryStr .= " ORDER BY `id` DESC LIMIT 1"; $resArr = $db->getResultArray($queryStr); if (is_bool($resArr) && !$resArr) return false; - $workflowlogs = array(); $i = 0; - $workflowlog = new SeedDMS_Core_Workflow_Log($resArr[$i]["id"], $this->_document->getDMS()->getDocument($resArr[$i]["document"]), $resArr[$i]["version"], $this->_workflow, $this->_document->getDMS()->getUser($resArr[$i]["userid"]), $this->_workflow->getTransition($resArr[$i]["transition"]), $resArr[$i]["date"], $resArr[$i]["comment"]); + $workflow = $this->_document->getDMS()->getWorkflow($resArr[$i]["workflow"]); + $workflowlog = new SeedDMS_Core_Workflow_Log($resArr[$i]["id"], $this->_document->getDMS()->getDocument($resArr[$i]["document"]), $resArr[$i]["version"], $workflow, $this->_document->getDMS()->getUser($resArr[$i]["userid"]), $workflow->getTransition($resArr[$i]["transition"]), $resArr[$i]["date"], $resArr[$i]["comment"]); $workflowlog->setDMS($this); return $workflowlog; @@ -5243,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 */ @@ -5418,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 */ @@ -5469,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) @@ -5584,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; } /* }}} */ diff --git a/SeedDMS_Core/Core/inc.ClassDocumentCategory.php b/SeedDMS_Core/Core/inc.ClassDocumentCategory.php index 6d5451664..4f39e2ef9 100644 --- a/SeedDMS_Core/Core/inc.ClassDocumentCategory.php +++ b/SeedDMS_Core/Core/inc.ClassDocumentCategory.php @@ -53,7 +53,11 @@ class SeedDMS_Core_DocumentCategory { function getName() { return $this->_name; } - function setName($newName) { /* {{{ */ + function setName($newName) { /* {{{ */ + $newName = trim($newName); + if(!$newName) + return false; + $db = $this->_dms->getDB(); $queryStr = "UPDATE `tblCategory` SET `name` = ".$db->qstr($newName)." WHERE `id` = ". $this->_id; diff --git a/SeedDMS_Core/Core/inc.ClassFolder.php b/SeedDMS_Core/Core/inc.ClassFolder.php index 4ca28739c..11cb88026 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; @@ -127,6 +127,26 @@ class SeedDMS_Core_Folder extends SeedDMS_Core_Object { $this->_defaultAccess = $defaultAccess; $this->_sequence = $sequence; $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; + $this->_notifyList = null; } /* }}} */ /** @@ -244,7 +264,7 @@ class SeedDMS_Core_Folder extends SeedDMS_Core_Object { return false; if(!$resArr) - return false; + return null; return self::getInstanceByData($resArr[0], $dms); } /* }}} */ @@ -321,7 +341,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 @@ -330,7 +350,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)) @@ -347,11 +367,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)) { @@ -363,11 +384,17 @@ 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 + * 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) { /* {{{ */ $target_path = $subfolder->getPath(); @@ -442,7 +469,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) @@ -593,7 +620,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']; } /* }}} */ /** @@ -771,14 +798,21 @@ 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()} + * * @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 */ 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. + */ if($this->getParent()->getID() == $folder->getID()) return true; + /* Recursively go up to the root folder */ return $this->getParent()->isDescendant($folder); } /* }}} */ @@ -791,16 +825,18 @@ class SeedDMS_Core_Folder extends SeedDMS_Core_Object { */ 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 if (isset($this->_documents)) { - /** @noinspection PhpUndefinedFieldInspection */ return count($this->_documents); } + */ $queryStr = "SELECT count(*) as c FROM `tblDocuments` WHERE `folder` = " . $this->_id; $resArr = $db->getResultArray($queryStr); if (is_bool($resArr) && !$resArr) return false; - return $resArr[0]['c']; + return (int) $resArr[0]['c']; } /* }}} */ /** @@ -1015,9 +1051,7 @@ class SeedDMS_Core_Folder extends SeedDMS_Core_Object { $document = $this->_dms->getDocument($db->getInsertID('tblDocuments')); -// if ($version_comment!="") - $res = $document->addContent($version_comment, $owner, $tmpFile, $orgFileName, $fileType, $mimeType, $reviewers, $approvers, $reqversion, $version_attributes, $workflow); -// else $res = $document->addContent($comment, $owner, $tmpFile, $orgFileName, $fileType, $mimeType, $reviewers, $approvers,$reqversion, $version_attributes, $workflow); + $res = $document->addContent($version_comment, $owner, $tmpFile, $orgFileName, $fileType, $mimeType, $reviewers, $approvers, $reqversion, $version_attributes, $workflow); if (is_bool($res) && !$res) { $db->rollbackTransaction(); @@ -1260,9 +1294,9 @@ class SeedDMS_Core_Folder extends SeedDMS_Core_Object { * has no access list the returned array contains the two elements * 'users' and 'groups' which are than empty. The methode returns false * if the function fails. - * - * @param int $mode access mode (defaults to M_ANY) - * @param int|string $op operation (defaults to O_EQ) + * + * @param integer $mode access mode (defaults to M_ANY) + * @param integer $op operation (defaults to O_EQ) * @return bool|SeedDMS_Core_GroupAccess|SeedDMS_Core_UserAccess */ function getAccessList($mode = M_ANY, $op = O_EQ) { /* {{{ */ @@ -1284,7 +1318,7 @@ class SeedDMS_Core_Folder 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_FOLDER. " AND `target` = " . $this->_id . $modeStr . " ORDER BY `targetType`"; @@ -1339,8 +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; + $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)) @@ -1414,31 +1458,31 @@ class SeedDMS_Core_Folder extends SeedDMS_Core_Object { /** * Get the access mode of a user on the folder * - * 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 other users have access rights according - * to the access control lists or the default access. This function will - * recursive check for access rights of parent folders if access rights - * are inherited. + * 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 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 - * recursive check for access rights of parent folders if access rights + * recursively check for access rights of parent folders if access rights * are inherited. * - * Before checking the access in the method itself a callback 'onCheckAccessFolder' + * Before checking the access itself a callback 'onCheckAccessFolder' * is called. If it returns a value > 0, then this will be returned by this * method without any further checks. The optional paramater $context * 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. + * permission on deleting a document. This callback could be used to + * override any existing access mode in a certain context. * - * @param object $user user for which access shall be checked + * @param SeedDMS_Core_User $user user for which access shall be checked * @param string $context context in which the access mode is requested * @return integer access mode */ @@ -1458,7 +1502,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 */ @@ -2008,6 +2052,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]; + } /* }}} */ + } ?> diff --git a/SeedDMS_Core/Core/inc.ClassGroup.php b/SeedDMS_Core/Core/inc.ClassGroup.php index 696613600..66f5f8ee0 100644 --- a/SeedDMS_Core/Core/inc.ClassGroup.php +++ b/SeedDMS_Core/Core/inc.ClassGroup.php @@ -162,6 +162,10 @@ class SeedDMS_Core_Group { /* {{{ */ * @return bool */ function setName($newName) { /* {{{ */ + $newName = trim($newName); + if(!$newName) + return false; + $db = $this->_dms->getDB(); $queryStr = "UPDATE `tblGroups` SET `name` = ".$db->qstr($newName)." WHERE `id` = " . $this->_id; @@ -284,7 +288,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 +297,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); @@ -422,10 +427,11 @@ class SeedDMS_Core_Group { /* {{{ */ ($documentID==null ? "" : "AND `tblDocumentReviewers`.`documentID` = '". (int) $documentID ."' "). ($version==null ? "" : "AND `tblDocumentReviewers`.`version` = '". (int) $version ."' "). "AND `tblDocumentReviewers`.`type`='1' ". - "AND `tblDocumentReviewers`.`required`='". $this->_id ."' "; + "AND `tblDocumentReviewers`.`required`='". $this->_id ."' ". + "ORDER BY `tblDocumentReviewLog`.`reviewLogID` DESC"; $resArr = $db->getResultArray($queryStr); if (is_bool($resArr) && $resArr == false) - return false; + return false; if (count($resArr)>0) { foreach ($resArr as $res) $status[] = $res; diff --git a/SeedDMS_Core/Core/inc.ClassKeywords.php b/SeedDMS_Core/Core/inc.ClassKeywords.php index 0981023d3..aa11c9dc3 100644 --- a/SeedDMS_Core/Core/inc.ClassKeywords.php +++ b/SeedDMS_Core/Core/inc.ClassKeywords.php @@ -91,6 +91,10 @@ class SeedDMS_Core_KeywordCategory { * @return bool */ function setName($newName) { + $newName = trim($newName); + if(!$newName) + return false; + $db = $this->_dms->getDB(); $queryStr = "UPDATE `tblKeywordCategories` SET `name` = ".$db->qstr($newName)." WHERE `id` = ". $this->_id; @@ -105,10 +109,13 @@ class SeedDMS_Core_KeywordCategory { * @param SeedDMS_Core_User $user * @return bool */ - function setOwner($user) { + function setOwner($user) { + if(!$user || !$user->isType('user')) + return false; + $db = $this->_dms->getDB(); - $queryStr = "UPDATE `tblKeywordCategories` SET `owner` = " . $user->getID() . " WHERE = `id` = " . $this->_id; + $queryStr = "UPDATE `tblKeywordCategories` SET `owner` = " . $user->getID() . " WHERE `id` = " . $this->_id; if (!$db->getResult($queryStr)) return false; diff --git a/SeedDMS_Core/Core/inc.ClassObject.php b/SeedDMS_Core/Core/inc.ClassObject.php index bc02592fa..a2f0b1ae4 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; } @@ -289,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(); @@ -306,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/Core/inc.ClassUser.php b/SeedDMS_Core/Core/inc.ClassUser.php index 8c2893f00..c655d333c 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'; @@ -172,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; @@ -241,7 +245,7 @@ class SeedDMS_Core_User { /* {{{ */ $users = array(); for ($i = 0; $i < count($resArr); $i++) { - /** @var SeedDMS_Core_User $user */ + /** @var SeedDMS_Core_User $user */ $user = new self($resArr[$i]["id"], $resArr[$i]["login"], $resArr[$i]["pwd"], $resArr[$i]["fullName"], $resArr[$i]["email"], (isset($resArr[$i]["language"])?$resArr[$i]["language"]:NULL), (isset($resArr[$i]["theme"])?$resArr[$i]["theme"]:NULL), $resArr[$i]["comment"], $resArr[$i]["role"], $resArr[$i]["hidden"], $resArr[$i]["disabled"], $resArr[$i]["pwdExpiration"], $resArr[$i]["loginfailures"], $resArr[$i]["quota"], $resArr[$i]["homefolder"]); $user->setDMS($dms); $users[$i] = $user; @@ -288,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; @@ -354,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') @@ -380,7 +389,7 @@ class SeedDMS_Core_User { /* {{{ */ function setEmail($newEmail) { /* {{{ */ $db = $this->_dms->getDB(); - $queryStr = "UPDATE `tblUsers` SET `email` =".$db->qstr($newEmail)." WHERE `id` = " . $this->_id; + $queryStr = "UPDATE `tblUsers` SET `email` =".$db->qstr(trim($newEmail))." WHERE `id` = " . $this->_id; $res = $db->getResult($queryStr); if (!$res) return false; @@ -401,7 +410,7 @@ class SeedDMS_Core_User { /* {{{ */ function setLanguage($newLanguage) { /* {{{ */ $db = $this->_dms->getDB(); - $queryStr = "UPDATE `tblUsers` SET `language` =".$db->qstr($newLanguage)." WHERE `id` = " . $this->_id; + $queryStr = "UPDATE `tblUsers` SET `language` =".$db->qstr(trim($newLanguage))." WHERE `id` = " . $this->_id; $res = $db->getResult($queryStr); if (!$res) return false; @@ -422,7 +431,7 @@ class SeedDMS_Core_User { /* {{{ */ function setTheme($newTheme) { /* {{{ */ $db = $this->_dms->getDB(); - $queryStr = "UPDATE `tblUsers` SET `theme` =".$db->qstr($newTheme)." WHERE `id` = " . $this->_id; + $queryStr = "UPDATE `tblUsers` SET `theme` =".$db->qstr(trim($newTheme))." WHERE `id` = " . $this->_id; $res = $db->getResult($queryStr); if (!$res) return false; @@ -443,7 +452,7 @@ class SeedDMS_Core_User { /* {{{ */ function setComment($newComment) { /* {{{ */ $db = $this->_dms->getDB(); - $queryStr = "UPDATE `tblUsers` SET `comment` =".$db->qstr($newComment)." WHERE `id` = " . $this->_id; + $queryStr = "UPDATE `tblUsers` SET `comment` =".$db->qstr(trim($newComment))." WHERE `id` = " . $this->_id; $res = $db->getResult($queryStr); if (!$res) return false; @@ -463,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)) @@ -512,7 +522,7 @@ class SeedDMS_Core_User { /* {{{ */ } /* }}} */ /** - * @return bool|int + * @return bool */ function isHidden() { return $this->_isHidden; } @@ -524,11 +534,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; } /* }}} */ @@ -545,11 +555,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; } /* }}} */ @@ -610,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); @@ -635,7 +650,6 @@ class SeedDMS_Core_User { /* {{{ */ $homefolder = intval($homefolder); $queryStr = "UPDATE `tblUsers` SET `homefolder` = " . ($homefolder ? $homefolder : 'NULL') . " WHERE `id` = " . $this->_id; - echo $queryStr; if (!$db->getResult($queryStr)) return false; @@ -1095,7 +1109,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(); @@ -1106,8 +1121,9 @@ class SeedDMS_Core_User { /* {{{ */ return false; if($resArr) - $resArr = $resArr[0]; - return $resArr; + return $resArr[0]; + else + return null; } /* }}} */ /** @@ -1312,17 +1328,28 @@ class SeedDMS_Core_User { /* {{{ */ function getReviewStatus($documentID=null, $version=null) { /* {{{ */ $db = $this->_dms->getDB(); + if (!$db->createTemporaryTable("ttreviewid", true)) { + return false; + } + $status = array("indstatus"=>array(), "grpstatus"=>array()); // See if the user is assigned as an individual reviewer. + // Attention: this method didn't use ttreviewid to filter out the latest + // log entry. This was added 2021-09-29 because $group->getReviewStatus() + // does it as well. The check below if the date is larger than the date + // of a previos entry is still required to just take the latest version + // of a document into account. $queryStr = "SELECT `tblDocumentReviewers`.*, `tblDocumentReviewLog`.`status`, ". "`tblDocumentReviewLog`.`comment`, `tblDocumentReviewLog`.`date`, ". "`tblDocumentReviewLog`.`userID` ". "FROM `tblDocumentReviewers` ". "LEFT JOIN `tblDocumentReviewLog` USING (`reviewID`) ". - "WHERE `tblDocumentReviewers`.`type`='0' ". + "LEFT JOIN `ttreviewid` on `ttreviewid`.`maxLogID` = `tblDocumentReviewLog`.`reviewLogID` ". + "WHERE `ttreviewid`.`maxLogID`=`tblDocumentReviewLog`.`reviewLogID` ". ($documentID==null ? "" : "AND `tblDocumentReviewers`.`documentID` = '". (int) $documentID ."' "). ($version==null ? "" : "AND `tblDocumentReviewers`.`version` = '". (int) $version ."' "). + "AND `tblDocumentReviewers`.`type`='0' ". "AND `tblDocumentReviewers`.`required`='". $this->_id ."' ". "ORDER BY `tblDocumentReviewLog`.`reviewLogID` DESC"; $resArr = $db->getResultArray($queryStr); @@ -1347,10 +1374,12 @@ class SeedDMS_Core_User { /* {{{ */ "`tblDocumentReviewLog`.`userID` ". "FROM `tblDocumentReviewers` ". "LEFT JOIN `tblDocumentReviewLog` USING (`reviewID`) ". + "LEFT JOIN `ttreviewid` on `ttreviewid`.`maxLogID` = `tblDocumentReviewLog`.`reviewLogID` ". "LEFT JOIN `tblGroupMembers` ON `tblGroupMembers`.`groupID` = `tblDocumentReviewers`.`required` ". - "WHERE `tblDocumentReviewers`.`type`='1' ". + "WHERE `ttreviewid`.`maxLogID`=`tblDocumentReviewLog`.`reviewLogID` ". ($documentID==null ? "" : "AND `tblDocumentReviewers`.`documentID` = '". (int) $documentID ."' "). ($version==null ? "" : "AND `tblDocumentReviewers`.`version` = '". (int) $version ."' "). + "AND `tblDocumentReviewers`.`type`='1' ". "AND `tblGroupMembers`.`userID`='". $this->_id ."' ". "ORDER BY `tblDocumentReviewLog`.`reviewLogID` DESC"; $resArr = $db->getResultArray($queryStr); @@ -1405,16 +1434,29 @@ class SeedDMS_Core_User { /* {{{ */ function getApprovalStatus($documentID=null, $version=null) { /* {{{ */ $db = $this->_dms->getDB(); + if (!$db->createTemporaryTable("ttapproveid")) { + return false; + } + $status = array("indstatus"=>array(), "grpstatus"=>array()); + + // See if the user is assigned as an individual approver. + // Attention: this method didn't use ttapproveid to filter out the latest + // log entry. This was added 2021-09-29 because $group->getApprovalStatus() + // does it as well. The check below if the date is larger than the date + // of a previos entry is still required to just take the latest version + // of a document into account. $queryStr = "SELECT `tblDocumentApprovers`.*, `tblDocumentApproveLog`.`status`, ". "`tblDocumentApproveLog`.`comment`, `tblDocumentApproveLog`.`date`, ". "`tblDocumentApproveLog`.`userID` ". "FROM `tblDocumentApprovers` ". "LEFT JOIN `tblDocumentApproveLog` USING (`approveID`) ". - "WHERE `tblDocumentApprovers`.`type`='0' ". + "LEFT JOIN `ttapproveid` on `ttapproveid`.`maxLogID` = `tblDocumentApproveLog`.`approveLogID` ". + "WHERE `ttapproveid`.`maxLogID`=`tblDocumentApproveLog`.`approveLogID` ". ($documentID==null ? "" : "AND `tblDocumentApprovers`.`documentID` = '". (int) $documentID ."' "). ($version==null ? "" : "AND `tblDocumentApprovers`.`version` = '". (int) $version ."' "). + "AND `tblDocumentApprovers`.`type`='0' ". "AND `tblDocumentApprovers`.`required`='". $this->_id ."' ". "ORDER BY `tblDocumentApproveLog`.`approveLogID` DESC"; @@ -1441,10 +1483,12 @@ class SeedDMS_Core_User { /* {{{ */ "`tblDocumentApproveLog`.`userID` ". "FROM `tblDocumentApprovers` ". "LEFT JOIN `tblDocumentApproveLog` USING (`approveID`) ". + "LEFT JOIN `ttapproveid` on `ttapproveid`.`maxLogID` = `tblDocumentApproveLog`.`approveLogID` ". "LEFT JOIN `tblGroupMembers` ON `tblGroupMembers`.`groupID` = `tblDocumentApprovers`.`required` ". - "WHERE `tblDocumentApprovers`.`type`='1' ". + "WHERE `ttapproveid`.`maxLogID`=`tblDocumentApproveLog`.`approveLogID` ". ($documentID==null ? "" : "AND `tblDocumentApprovers`.`documentID` = '". (int) $documentID ."' "). ($version==null ? "" : "AND `tblDocumentApprovers`.`version` = '". (int) $version ."' "). + "AND `tblDocumentApprovers`.`type`='1' ". "AND `tblGroupMembers`.`userID`='". $this->_id ."' ". "ORDER BY `tblDocumentApproveLog`.`approveLogID` DESC"; $resArr = $db->getResultArray($queryStr); @@ -1694,7 +1738,7 @@ class SeedDMS_Core_User { /* {{{ */ if (is_bool($resArr) && !$resArr) return false; } - return false; + return true; } /* }}} */ /** @@ -1730,7 +1774,7 @@ class SeedDMS_Core_User { /* {{{ */ if (is_bool($resArr) && !$resArr) return false; } - return false; + return true; } /* }}} */ /** @@ -1751,7 +1795,7 @@ class SeedDMS_Core_User { /* {{{ */ $resArr = $db->getResult($queryStr); if (is_bool($resArr) && !$resArr) return false; - return false; + return true; } /* }}} */ /** diff --git a/SeedDMS_Core/Core/inc.ClassWorkflow.php b/SeedDMS_Core/Core/inc.ClassWorkflow.php index 329b79cc9..ea104dee0 100644 --- a/SeedDMS_Core/Core/inc.ClassWorkflow.php +++ b/SeedDMS_Core/Core/inc.ClassWorkflow.php @@ -150,8 +150,13 @@ class SeedDMS_Core_Workflow { /* {{{ */ return $this->_transitions; } /* }}} */ - /** - * @return array + /** + * Get all states this workflow at some point may reach + * + * It basically iterates through all transistions and makes a unique + * list of the start and end state. + * + * @return array list of states */ function getStates() { /* {{{ */ /** @noinspection PhpUnusedLocalVariableInspection */ @@ -161,7 +166,7 @@ class SeedDMS_Core_Workflow { /* {{{ */ $this->getTransitions(); $states = array(); - foreach($this->_transitions as $transition) { + foreach($this->_transitions as $transition) { if(!isset($states[$transition->getState()->getID()])) $states[$transition->getState()->getID()] = $transition->getState(); if(!isset($states[$transition->getNextState()->getID()])) 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 diff --git a/SeedDMS_Core/Core/inc.DBAccessPDO.php b/SeedDMS_Core/Core/inc.DBAccessPDO.php index 09b797e28..02e1ccdcb 100644 --- a/SeedDMS_Core/Core/inc.DBAccessPDO.php +++ b/SeedDMS_Core/Core/inc.DBAccessPDO.php @@ -232,7 +232,7 @@ class SeedDMS_Core_DatabaseAccess { $this->_ttapproveid = false; $this->_ttstatid = false; $this->_ttcontentid = false; - $this->_useviews = false; + $this->_useviews = false; // turn off views, because they are much slower then temp. tables $this->_debug = false; } /* }}} */ @@ -245,6 +245,15 @@ class SeedDMS_Core_DatabaseAccess { return $this->_driver; } /* }}} */ + /** + * Turn on views instead of temp. tables + * + * @param bool $onoff turn use of views instead of temp. table on/off + */ + function useViews($onoff) { /* {{{ */ + $this->_useviews = $onoff; + } /* }}} */ + /** * Destructor of SeedDMS_Core_DatabaseAccess */ @@ -392,8 +401,10 @@ class SeedDMS_Core_DatabaseAccess { } $res = $this->_conn->query($queryStr); if ($res === false) { - if($this->_debug) + if($this->_debug) { echo "error: ".$queryStr."
"; + print_r($this->_conn->errorInfo()); + } return false; } $resArr = $res->fetchAll(PDO::FETCH_ASSOC); @@ -420,8 +431,10 @@ class SeedDMS_Core_DatabaseAccess { } $res = $this->_conn->exec($queryStr); if($res === false) { - if($this->_debug) + if($this->_debug) { echo "error: ".$queryStr."
"; + print_r($this->_conn->errorInfo()); + } return false; } else return true; @@ -514,7 +527,7 @@ class SeedDMS_Core_DatabaseAccess { } else { if (is_bool($override) && $override) { - if (!$this->getResult("DELETE FROM `ttreviewid`")) + if (!$this->getResult("DROP TABLE IF EXISTS `ttreviewid`")) return false; if (!$this->getResult($queryStr)) return false; @@ -555,7 +568,7 @@ class SeedDMS_Core_DatabaseAccess { } else { if (is_bool($override) && $override) { - if (!$this->getResult("DELETE FROM `ttapproveid`")) + if (!$this->getResult("DROP TABLE IF NOT EXISTS `ttapproveid`")) return false; if (!$this->getResult($queryStr)) return false; @@ -596,7 +609,7 @@ class SeedDMS_Core_DatabaseAccess { } else { if (is_bool($override) && $override) { - if (!$this->getResult("DELETE FROM `ttstatid`")) + if (!$this->getResult("DROP TABLE IF NOT EXISTS `ttstatid`")) return false; if (!$this->getResult($queryStr)) return false; @@ -637,7 +650,7 @@ class SeedDMS_Core_DatabaseAccess { } else { if (is_bool($override) && $override) { - if (!$this->getResult("DELETE FROM `ttcontentid`")) + if (!$this->getResult("DROP TABLE IF NOT EXISTS `ttcontentid`")) return false; if (!$this->getResult($queryStr)) return false; @@ -648,11 +661,44 @@ class SeedDMS_Core_DatabaseAccess { return false; } /* }}} */ + /** + * Drop various temporary tables to enforce recreation when needed + * + * @param string $tableName + * + * @return bool + */ + private function __dropTemporaryTable($tableName) { /* {{{ */ + $queryStr = ''; + if (!strcasecmp($tableName, "ttreviewid")) { + $queryStr = "DROP TABLE IF EXISTS `ttreviewid`"; + } + elseif (!strcasecmp($tableName, "ttapproveid")) { + $queryStr = "DROP TABLE IF EXISTS `ttapproveid`"; + } + elseif (!strcasecmp($tableName, "ttstatid")) { + $queryStr = "DROP TABLE IF EXISTS `ttstatid`"; + } + elseif (!strcasecmp($tableName, "ttcontentid")) { + $queryStr = "DROP TABLE IF EXISTS `ttcontentid`"; + } + if($queryStr) { + if (!$this->getResult($queryStr)) + return false; + else { + $this->{'_'.$tableName} = false; + return true; + } + } + return false; + } /* }}} */ + /** * Create various views to speed up and simplify sql queries * * @param string $tableName * @param bool $override + * * @return bool */ private function __createView($tableName, $override=false) { /* {{{ */ @@ -818,7 +864,8 @@ class SeedDMS_Core_DatabaseAccess { * Create various temporary tables or view to speed up and simplify sql queries * * @param string $tableName - * @param bool $override + * @param bool $override + * * @return bool */ public function createTemporaryTable($tableName, $override=false) { /* {{{ */ @@ -828,6 +875,20 @@ class SeedDMS_Core_DatabaseAccess { return $this->__createTemporaryTable($tableName, $override); } /* }}} */ + /** + * Drop various temporary tables to force recreation when next time needed + * + * @param string $tableName + * + * @return bool + */ + public function dropTemporaryTable($tableName) { /* {{{ */ + if($this->_useviews) + return true; // No need to recreate a view + else + return $this->__dropTemporaryTable($tableName); + } /* }}} */ + /** * Return sql statement for extracting the date part from a field * containing a unix timestamp @@ -913,4 +974,35 @@ 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) { + if($table == 'sqlite_sequence') + continue; + $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; + } /* }}} */ } diff --git a/SeedDMS_Core/Core/inc.FileUtils.php b/SeedDMS_Core/Core/inc.FileUtils.php index 2001ea316..b3da438eb 100644 --- a/SeedDMS_Core/Core/inc.FileUtils.php +++ b/SeedDMS_Core/Core/inc.FileUtils.php @@ -58,10 +58,10 @@ class SeedDMS_Core_File { */ static function moveFile($source, $target) { /* {{{ */ /** @noinspection PhpUndefinedFunctionInspection */ - if (!@copyFile($source, $target)) + if (!self::copyFile($source, $target)) return false; /** @noinspection PhpUndefinedFunctionInspection */ - return @removeFile($source); + return self::removeFile($source); } /* }}} */ /** @@ -69,7 +69,7 @@ class SeedDMS_Core_File { * @return bool|int */ static function fileSize($file) { /* {{{ */ - if(!$a = fopen($file, 'r')) + if(!$a = @fopen($file, 'r')) return false; fseek($a, 0, SEEK_END); $filesize = ftell($a); @@ -84,8 +84,9 @@ class SeedDMS_Core_File { */ static function format_filesize($size, $sizes = array('Bytes', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB')) { /* {{{ */ if ($size == 0) return('0 Bytes'); - /** @noinspection PhpIllegalArrayKeyTypeInspection */ - return (round($size/pow(1024, ($i = floor(log($size, 1024)))), 2) . ' ' . $sizes[$i]); + if ($size == 1) return('1 Byte'); + /** @noinspection PhpIllegalArrayKeyTypeInspection */ + return (round($size/pow(1024, ($i = floor(log($size, 1024)))), 2) . ' ' . $sizes[$i]); } /* }}} */ /** @@ -126,6 +127,204 @@ class SeedDMS_Core_File { return md5_file($file); } /* }}} */ + /** + * @param $string mimetype + * @return string + */ + static function fileExtension($mimetype) { /* {{{ */ + switch($mimetype) { + case "application/pdf": + case "image/png": + case "image/gif": + case "image/jpg": + $expect = substr($this->_mimeType, -3, 3); + break; + default: + $mime_map = [ + 'video/3gpp2' => '3g2', + 'video/3gp' => '3gp', + 'video/3gpp' => '3gp', + 'application/x-compressed' => '7zip', + 'audio/x-acc' => 'aac', + 'audio/ac3' => 'ac3', + 'application/postscript' => 'ai', + 'audio/x-aiff' => 'aif', + 'audio/aiff' => 'aif', + 'audio/x-au' => 'au', + 'video/x-msvideo' => 'avi', + 'video/msvideo' => 'avi', + 'video/avi' => 'avi', + 'application/x-troff-msvideo' => 'avi', + 'application/macbinary' => 'bin', + 'application/mac-binary' => 'bin', + 'application/x-binary' => 'bin', + 'application/x-macbinary' => 'bin', + 'image/bmp' => 'bmp', + 'image/x-bmp' => 'bmp', + 'image/x-bitmap' => 'bmp', + 'image/x-xbitmap' => 'bmp', + 'image/x-win-bitmap' => 'bmp', + 'image/x-windows-bmp' => 'bmp', + 'image/ms-bmp' => 'bmp', + 'image/x-ms-bmp' => 'bmp', + 'application/bmp' => 'bmp', + 'application/x-bmp' => 'bmp', + 'application/x-win-bitmap' => 'bmp', + 'application/cdr' => 'cdr', + 'application/coreldraw' => 'cdr', + 'application/x-cdr' => 'cdr', + 'application/x-coreldraw' => 'cdr', + 'image/cdr' => 'cdr', + 'image/x-cdr' => 'cdr', + 'zz-application/zz-winassoc-cdr' => 'cdr', + 'application/mac-compactpro' => 'cpt', + 'application/pkix-crl' => 'crl', + 'application/pkcs-crl' => 'crl', + 'application/x-x509-ca-cert' => 'crt', + 'application/pkix-cert' => 'crt', + 'text/css' => 'css', + 'text/x-comma-separated-values' => 'csv', + 'text/comma-separated-values' => 'csv', + 'application/vnd.msexcel' => 'csv', + 'application/x-director' => 'dcr', + 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' => 'docx', + 'application/x-dvi' => 'dvi', + 'message/rfc822' => 'eml', + 'application/x-msdownload' => 'exe', + 'video/x-f4v' => 'f4v', + 'audio/x-flac' => 'flac', + 'video/x-flv' => 'flv', + 'image/gif' => 'gif', + 'application/gpg-keys' => 'gpg', + 'application/x-gtar' => 'gtar', + 'application/x-gzip' => 'gzip', + 'application/mac-binhex40' => 'hqx', + 'application/mac-binhex' => 'hqx', + 'application/x-binhex40' => 'hqx', + 'application/x-mac-binhex40' => 'hqx', + 'text/html' => 'html', + 'image/x-icon' => 'ico', + 'image/x-ico' => 'ico', + 'image/vnd.microsoft.icon' => 'ico', + 'text/calendar' => 'ics', + 'application/java-archive' => 'jar', + 'application/x-java-application' => 'jar', + 'application/x-jar' => 'jar', + 'image/jp2' => 'jp2', + 'video/mj2' => 'jp2', + 'image/jpx' => 'jp2', + 'image/jpm' => 'jp2', + 'image/jpeg' => 'jpeg', + 'image/pjpeg' => 'jpeg', + 'application/x-javascript' => 'js', + 'application/json' => 'json', + 'text/json' => 'json', + 'application/vnd.google-earth.kml+xml' => 'kml', + 'application/vnd.google-earth.kmz' => 'kmz', + 'text/x-log' => 'log', + 'audio/x-m4a' => 'm4a', + 'application/vnd.mpegurl' => 'm4u', + 'audio/midi' => 'mid', + 'application/vnd.mif' => 'mif', + 'video/quicktime' => 'mov', + 'video/x-sgi-movie' => 'movie', + 'audio/mpeg' => 'mp3', + 'audio/mpg' => 'mp3', + 'audio/mpeg3' => 'mp3', + 'audio/mp3' => 'mp3', + 'video/mp4' => 'mp4', + 'video/mpeg' => 'mpeg', + 'application/oda' => 'oda', + 'audio/ogg' => 'ogg', + 'video/ogg' => 'ogg', + 'application/ogg' => 'ogg', + 'application/x-pkcs10' => 'p10', + 'application/pkcs10' => 'p10', + 'application/x-pkcs12' => 'p12', + 'application/x-pkcs7-signature' => 'p7a', + 'application/pkcs7-mime' => 'p7c', + 'application/x-pkcs7-mime' => 'p7c', + 'application/x-pkcs7-certreqresp' => 'p7r', + 'application/pkcs7-signature' => 'p7s', + 'application/pdf' => 'pdf', + 'application/octet-stream' => 'pdf', + 'application/x-x509-user-cert' => 'pem', + 'application/x-pem-file' => 'pem', + 'application/pgp' => 'pgp', + 'application/x-httpd-php' => 'php', + 'application/php' => 'php', + 'application/x-php' => 'php', + 'text/php' => 'php', + 'text/x-php' => 'php', + 'application/x-httpd-php-source' => 'php', + 'image/png' => 'png', + 'image/x-png' => 'png', + 'application/powerpoint' => 'ppt', + 'application/vnd.ms-powerpoint' => 'ppt', + 'application/vnd.ms-office' => 'ppt', + 'application/msword' => 'doc', + 'application/vnd.openxmlformats-officedocument.presentationml.presentation' => 'pptx', + 'application/x-photoshop' => 'psd', + 'image/vnd.adobe.photoshop' => 'psd', + 'audio/x-realaudio' => 'ra', + 'audio/x-pn-realaudio' => 'ram', + 'application/x-rar' => 'rar', + 'application/rar' => 'rar', + 'application/x-rar-compressed' => 'rar', + 'audio/x-pn-realaudio-plugin' => 'rpm', + 'application/x-pkcs7' => 'rsa', + 'text/rtf' => 'rtf', + 'text/richtext' => 'rtx', + 'video/vnd.rn-realvideo' => 'rv', + 'application/x-stuffit' => 'sit', + 'application/smil' => 'smil', + 'text/srt' => 'srt', + 'image/svg+xml' => 'svg', + 'application/x-shockwave-flash' => 'swf', + 'application/x-tar' => 'tar', + 'application/x-gzip-compressed' => 'tgz', + 'image/tiff' => 'tiff', + 'text/plain' => 'txt', + 'text/x-vcard' => 'vcf', + 'application/videolan' => 'vlc', + 'text/vtt' => 'vtt', + 'audio/x-wav' => 'wav', + 'audio/wave' => 'wav', + 'audio/wav' => 'wav', + 'application/wbxml' => 'wbxml', + 'video/webm' => 'webm', + 'audio/x-ms-wma' => 'wma', + 'application/wmlc' => 'wmlc', + 'video/x-ms-wmv' => 'wmv', + 'video/x-ms-asf' => 'wmv', + 'application/xhtml+xml' => 'xhtml', + 'application/excel' => 'xl', + 'application/msexcel' => 'xls', + 'application/x-msexcel' => 'xls', + 'application/x-ms-excel' => 'xls', + 'application/x-excel' => 'xls', + 'application/x-dos_ms_excel' => 'xls', + 'application/xls' => 'xls', + 'application/x-xls' => 'xls', + 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' => 'xlsx', + 'application/vnd.ms-excel' => 'xlsx', + 'application/xml' => 'xml', + 'text/xml' => 'xml', + 'text/xsl' => 'xsl', + 'application/xspf+xml' => 'xspf', + 'application/x-compress' => 'z', + 'application/x-zip' => 'zip', + 'application/zip' => 'zip', + 'application/x-zip-compressed' => 'zip', + 'application/s-compressed' => 'zip', + 'multipart/x-zip' => 'zip', + 'text/x-scriptzsh' => 'zsh', + ]; + $expect = isset($mime_map[$mimetype]) === true ? $mime_map[$mimetype] : ''; + } + return $expect; + } /* }}} */ + /** * @param $old * @param $new @@ -204,14 +403,14 @@ class SeedDMS_Core_File { { if ($entry == ".." || $entry == ".") continue; - else if (is_dir($path . $entry)) + else if (is_dir($path . DIRECTORY_SEPARATOR . $entry)) { - if (!self::removeDir($path . $entry . "/")) + if (!self::removeDir($path . DIRECTORY_SEPARATOR . $entry . "/")) return false; } else { - if (!@unlink($path . $entry)) + if (!@unlink($path . DIRECTORY_SEPARATOR . $entry)) return false; } } @@ -231,10 +430,10 @@ class SeedDMS_Core_File { if ($entry == ".." || $entry == ".") continue; else if (is_dir($sourcePath . $entry)) { - if (!self::copyDir($sourcePath . $entry . "/", $targetPath . $entry . "/")) + if (!self::copyDir($sourcePath . DIRECTORY_SEPARATOR . $entry, $targetPath . DIRECTORY_SEPARATOR . $entry)) return false; } else { - if (!@copy($sourcePath . $entry, $targetPath . $entry)) + if (!@copy($sourcePath . DIRECTORY_SEPARATOR . $entry, $targetPath . DIRECTORY_SEPARATOR . $entry)) return false; } } 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 diff --git a/SeedDMS_Core/package.xml b/SeedDMS_Core/package.xml index a3089df7f..39fb25552 100644 --- a/SeedDMS_Core/package.xml +++ b/SeedDMS_Core/package.xml @@ -12,11 +12,11 @@ uwe@steinmann.cx yes - 2021-04-13 + 2022-02-18 - 5.1.23 - 5.1.23 + 5.1.25 + 5.1.25 stable @@ -24,19 +24,12 @@ 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() +- rename getLastWorkflowTransition() to getLastWorkflowLog() +- 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, onPostRemoveAttribute, onPostAddAttribute +- fix searching for document content with a custom attribute having a value set @@ -56,9 +49,6 @@ - - - @@ -97,8 +87,17 @@ - - + + + + + + + + + + + @@ -1895,5 +1894,64 @@ 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() + + + + 2021-12-11 + + + 5.1.24 + 5.1.24 + + + stable + stable + + GPL License + +- in SeedDMS_Core_DocumentContent::removeWorkflow() remove records from tblWorklflowLog before tblDWorkflowDocumentContent +- make all class variables of SeedDMS_Core_User protected +- fix various errors in SeedDMS_Core_AttributeDefinition::validate() +- add lots of unit tests +- replace incorrect use of array_search() by in_array() +- move method SeedDMS_Core_DMS::createDump() into SeedDMS_Core_DatabaseAccess +- lots of parameter checking when calling methods() +- make sure callbacks are callable +- SeedDMS_Core_Folder::getParent() returns null if there is no parent (used to be false) +- SeedDMS_Core_DMS::search() will not find document without an expiration date anymore, if the search is limited by an expiration end date but no start date +- add method SeedDMS_Core_Folder::getFoldersMinMax() +- init internal cache variables of SeedDMS_Core_Folder/SeedDMS_Core_Document and add method clearCache() +- SeedDMS_Core_Folder::hasDocuments() does not use the interal document cache anymore +- SeedDMS_Core_Document::addDocumentLink() returns an object of type SeedDMS_Core_DocumentLink in case of success +- trim email, comment, language, theme when setting data of user +- more checks whether an id > 0 when getting a database record + + diff --git a/SeedDMS_Lucene/Lucene.php b/SeedDMS_Lucene/Lucene.php index 951a5b518..96dee03e3 100644 --- a/SeedDMS_Lucene/Lucene.php +++ b/SeedDMS_Lucene/Lucene.php @@ -19,12 +19,12 @@ /** * @uses Zend_Search_Lucene */ -require_once('Zend/Search/Lucene.php'); +//require_once('Zend/Search/Lucene.php'); /** * @uses Zend_Search_Lucene_Analysis_TokenFilter_Stopwords */ -require_once("Zend/Search/Lucene/Analysis/TokenFilter/StopWords.php"); +//require_once("Zend/Search/Lucene/Analysis/TokenFilter/StopWords.php"); /** * @uses SeedDMS_Lucene_Indexer diff --git a/SeedDMS_Lucene/Lucene/IndexedDocument.php b/SeedDMS_Lucene/Lucene/IndexedDocument.php index 14bd3fd49..0ac27a583 100644 --- a/SeedDMS_Lucene/Lucene/IndexedDocument.php +++ b/SeedDMS_Lucene/Lucene/IndexedDocument.php @@ -179,29 +179,44 @@ class SeedDMS_Lucene_IndexedDocument extends Zend_Search_Lucene_Document { if($version && !$nocontent) { $path = $dms->contentDir . $version->getPath(); if(file_exists($path)) { - $content = ''; $mimetype = $version->getMimeType(); $this->mimetype = $mimetype; - $cmd = ''; - $mimeparts = explode('/', $mimetype, 2); - if(isset($convcmd[$mimetype])) { - $cmd = sprintf($convcmd[$mimetype], $path); - } elseif(isset($convcmd[$mimeparts[0].'/*'])) { - $cmd = sprintf($convcmd[$mimetype], $path); - } elseif(isset($convcmd['*'])) { - $cmd = sprintf($convcmd[$mimetype], $path); - } - if($cmd) { - $this->cmd = $cmd; - try { - $content = self::execWithTimeout($cmd, $timeout); - if($content['stdout']) { - $this->addField(Zend_Search_Lucene_Field::UnStored('content', $content['stdout'], 'utf-8')); + if(is_object($convcmd) && (get_class($convcmd) == 'SeedDMS_ConversionMgr')) { + if($service = $convcmd->getService($mimetype, 'text/plain')) { + $content = $convcmd->convert($path, $mimetype, 'text/plain'); + if($content) { + self::setContent($content); + } elseif($content === false) { + $this->errormsg = 'Conversion failed'; } - if($content['stderr']) { - $this->errormsg = $content['stderr']; + $this->cmd = get_class($service); + } else { + $this->cmd = 'No service to convert '.$mimetype.' to text/plain'; + } + } else { + $content = ''; + $cmd = ''; + $mimeparts = explode('/', $mimetype, 2); + if(isset($convcmd[$mimetype])) { + $cmd = sprintf($convcmd[$mimetype], $path); + } elseif(isset($convcmd[$mimeparts[0].'/*'])) { + $cmd = sprintf($convcmd[$mimetype], $path); + } elseif(isset($convcmd['*'])) { + $cmd = sprintf($convcmd[$mimetype], $path); + } + if($cmd) { + $this->cmd = $cmd; + try { + $content = self::execWithTimeout($cmd, $timeout); + if($content['stdout']) { + self::setContent($content['stdout']); + // $this->addField(Zend_Search_Lucene_Field::UnStored('content', $content['stdout'], 'utf-8')); + } + if($content['stderr']) { + $this->errormsg = $content['stderr']; + } + } catch (Exception $e) { } - } catch (Exception $e) { } } } diff --git a/SeedDMS_Lucene/Lucene/Search.php b/SeedDMS_Lucene/Lucene/Search.php index c25ba678a..5ca533d93 100644 --- a/SeedDMS_Lucene/Lucene/Search.php +++ b/SeedDMS_Lucene/Lucene/Search.php @@ -93,7 +93,7 @@ class SeedDMS_Lucene_Search { if($querystr) $querystr .= ' && '; $querystr .= '(category:"'; - $querystr .= implode('" || category:"', $fields['category']); + $querystr .= implode('" && category:"', $fields['category']); $querystr .= '")'; } if(!empty($fields['status'])) { diff --git a/SeedDMS_Preview/Preview/Base.php b/SeedDMS_Preview/Preview/Base.php index b58b6775b..1b67bcfae 100644 --- a/SeedDMS_Preview/Preview/Base.php +++ b/SeedDMS_Preview/Preview/Base.php @@ -38,6 +38,12 @@ class SeedDMS_Preview_Base { */ protected $converters; + /** + * @var object $conversionmgr + * @access protected + */ + protected $conversionmgr; + /** * @var integer $timeout maximum time for execution of external commands * @access protected @@ -68,6 +74,7 @@ class SeedDMS_Preview_Base { } $this->timeout = intval($timeout); $this->xsendfile = $xsendfile; + $this->conversionmgr = null; } /* }}} */ /** @@ -141,6 +148,18 @@ class SeedDMS_Preview_Base { $this->converters = $arr; } /* }}} */ + /** + * Set conversion service manager + * + * A conversion manager is a service for converting files from one format + * to another format. + * + * @param object $conversionmgr + */ + function setConversionMgr($conversionmgr) { /* {{{ */ + $this->conversionmgr = $conversionmgr; + } /* }}} */ + /** * Enable/Disable xsendfile extension * @@ -169,11 +188,16 @@ class SeedDMS_Preview_Base { /** * Check if converter for a given mimetype is set * - * @param string $mimetype + * @param string $from from mimetype + * @param string $to to mimetype + * * @return boolean true if converter exists, otherwise false */ - function hasConverter($mimetype) { /* {{{ */ - return array_key_exists($mimetype, $this->converters) && $this->converters[$mimetype]; + function hasConverter($from, $to='') { /* {{{ */ + if($this->conversionmgr) + return $this->conversionmgr->hasService($from, $to); + else + return array_key_exists($from, $this->converters) && $this->converters[$from]; } /* }}} */ /** diff --git a/SeedDMS_Preview/Preview/PdfPreviewer.php b/SeedDMS_Preview/Preview/PdfPreviewer.php index 202fe4e18..53086867c 100644 --- a/SeedDMS_Preview/Preview/PdfPreviewer.php +++ b/SeedDMS_Preview/Preview/PdfPreviewer.php @@ -68,6 +68,17 @@ class SeedDMS_Preview_PdfPreviewer extends SeedDMS_Preview_Base { return $target; } /* }}} */ + /** + * Check if converter for a given mimetype is set + * + * @param string $mimetype from mimetype + * + * @return boolean true if converter exists, otherwise false + */ + function hasConverter($from, $to='') { /* {{{ */ + return parent::hasConverter($from, 'application/pdf'); + } /* }}} */ + /** * Create a pdf preview for a given file * @@ -85,6 +96,9 @@ class SeedDMS_Preview_PdfPreviewer extends SeedDMS_Preview_Base { * @return boolean true on success, false on failure */ public function createRawPreview($infile, $dir, $mimetype, $target='') { /* {{{ */ + if(!self::hasConverter($mimetype)) + return false; + if(!$this->previewDir) return false; if(!is_dir($this->previewDir.'/'.$dir)) { @@ -98,22 +112,30 @@ class SeedDMS_Preview_PdfPreviewer extends SeedDMS_Preview_Base { $target = $this->previewDir.$dir.md5($infile); $this->lastpreviewfile = $target.'.pdf'; if($target != '' && (!file_exists($target.'.pdf') || filectime($target.'.pdf') < filectime($infile))) { - $cmd = ''; - $mimeparts = explode('/', $mimetype, 2); - if(isset($this->converters[$mimetype])) { - $cmd = str_replace(array('%f', '%o', '%m'), array($infile, $target.'.pdf', $mimetype), $this->converters[$mimetype]); - } elseif(isset($this->converters[$mimeparts[0].'/*'])) { - $cmd = str_replace(array('%f', '%o', '%m'), array($infile, $target.'.pdf', $mimetype), $this->converters[$mimeparts[0].'/*']); - } elseif(isset($this->converters['*'])) { - $cmd = str_replace(array('%f', '%o', '%m'), array($infile, $target.'.pdf', $mimetype), $this->converters['*']); - } - if($cmd) { - try { - self::execWithTimeout($cmd, $this->timeout); - } catch(Exception $e) { + if($this->conversionmgr) { + if(!$this->conversionmgr->convert($infile, $mimetype, 'application/pdf', $target.'.pdf')) { $this->lastpreviewfile = ''; return false; } + $new = true; + } else { + $cmd = ''; + $mimeparts = explode('/', $mimetype, 2); + if(isset($this->converters[$mimetype])) { + $cmd = str_replace(array('%f', '%o', '%m'), array($infile, $target.'.pdf', $mimetype), $this->converters[$mimetype]); + } elseif(isset($this->converters[$mimeparts[0].'/*'])) { + $cmd = str_replace(array('%f', '%o', '%m'), array($infile, $target.'.pdf', $mimetype), $this->converters[$mimeparts[0].'/*']); + } elseif(isset($this->converters['*'])) { + $cmd = str_replace(array('%f', '%o', '%m'), array($infile, $target.'.pdf', $mimetype), $this->converters['*']); + } + if($cmd) { + try { + self::execWithTimeout($cmd, $this->timeout); + } catch(Exception $e) { + $this->lastpreviewfile = ''; + return false; + } + } } return true; } diff --git a/SeedDMS_Preview/Preview/Previewer.php b/SeedDMS_Preview/Preview/Previewer.php index 32a06cc89..327f5e099 100644 --- a/SeedDMS_Preview/Preview/Previewer.php +++ b/SeedDMS_Preview/Preview/Previewer.php @@ -72,6 +72,17 @@ class SeedDMS_Preview_Previewer extends SeedDMS_Preview_Base { return $target; } /* }}} */ + /** + * Check if converter for a given mimetype is set + * + * @param string $mimetype from mimetype + * + * @return boolean true if converter exists, otherwise false + */ + function hasConverter($from, $to='') { /* {{{ */ + return parent::hasConverter($from, 'image/png'); + } /* }}} */ + /** * Create a preview image for a given file * @@ -90,6 +101,9 @@ class SeedDMS_Preview_Previewer extends SeedDMS_Preview_Base { * @return boolean true on success, false on failure */ public function createRawPreview($infile, $dir, $mimetype, $width=0, $target='', &$new=false) { /* {{{ */ + if(!self::hasConverter($mimetype)) + return false; + if($width == 0) $width = $this->width; else @@ -107,24 +121,32 @@ class SeedDMS_Preview_Previewer extends SeedDMS_Preview_Base { $target = $this->previewDir.$dir.md5($infile).'-'.$width; $this->lastpreviewfile = $target.'.png'; if($target != '' && (!file_exists($target.'.png') || filectime($target.'.png') < filectime($infile))) { - $cmd = ''; - $mimeparts = explode('/', $mimetype, 2); - if(isset($this->converters[$mimetype])) { - $cmd = str_replace(array('%w', '%f', '%o', '%m'), array($width, $infile, $target.'.png', $mimetype), $this->converters[$mimetype]); - } elseif(isset($this->converters[$mimeparts[0].'/*'])) { - $cmd = str_replace(array('%w', '%f', '%o', '%m'), array($width, $infile, $target.'.png', $mimetype), $this->converters[$mimeparts[0].'/*']); - } elseif(isset($this->converters['*'])) { - $cmd = str_replace(array('%w', '%f', '%o', '%m'), array($width, $infile, $target.'.png', $mimetype), $this->converters['*']); - } - - if($cmd) { - try { - self::execWithTimeout($cmd, $this->timeout); - $new = true; - } catch(Exception $e) { + if($this->conversionmgr) { + if(!$this->conversionmgr->convert($infile, $mimetype, 'image/png', $target.'.png', array('width'=>$width))) { $this->lastpreviewfile = ''; return false; } + $new = true; + } else { + $cmd = ''; + $mimeparts = explode('/', $mimetype, 2); + if(isset($this->converters[$mimetype])) { + $cmd = str_replace(array('%w', '%f', '%o', '%m'), array($width, $infile, $target.'.png', $mimetype), $this->converters[$mimetype]); + } elseif(isset($this->converters[$mimeparts[0].'/*'])) { + $cmd = str_replace(array('%w', '%f', '%o', '%m'), array($width, $infile, $target.'.png', $mimetype), $this->converters[$mimeparts[0].'/*']); + } elseif(isset($this->converters['*'])) { + $cmd = str_replace(array('%w', '%f', '%o', '%m'), array($width, $infile, $target.'.png', $mimetype), $this->converters['*']); + } + + if($cmd) { + try { + self::execWithTimeout($cmd, $this->timeout); + $new = true; + } catch(Exception $e) { + $this->lastpreviewfile = ''; + return false; + } + } } return true; } diff --git a/SeedDMS_Preview/package.xml b/SeedDMS_Preview/package.xml index fa544e705..5dd1e4b41 100644 --- a/SeedDMS_Preview/package.xml +++ b/SeedDMS_Preview/package.xml @@ -11,11 +11,11 @@ uwe@steinmann.cx yes - 2020-12-23 + 2021-10-16 - 1.3.3 - 1.3.3 + 1.4.0 + 1.4.0 stable @@ -23,9 +23,8 @@ GPL License -- close pipes in execWithTimeout(), also return exit code of command -- createPreview() has optional parameter by referenz to return true if a - preview image was actually created +- use new conversion service if available +- createRawPreview() checks early if a converter exists @@ -471,5 +470,23 @@ set header Content-Length update package description + + 2020-12-23 + + + 1.3.3 + 1.3.3 + + + stable + stable + + GPL License + +- close pipes in execWithTimeout(), also return exit code of command +- createPreview() has optional parameter by referenz to return true if a + preview image was actually created + + 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'); + ?> diff --git a/SeedDMS_SQLiteFTS/SQLiteFTS/IndexedDocument.php b/SeedDMS_SQLiteFTS/SQLiteFTS/IndexedDocument.php index 0fb7c86da..ab553bd96 100644 --- a/SeedDMS_SQLiteFTS/SQLiteFTS/IndexedDocument.php +++ b/SeedDMS_SQLiteFTS/SQLiteFTS/IndexedDocument.php @@ -106,6 +106,9 @@ class SeedDMS_SQLiteFTS_IndexedDocument extends SeedDMS_SQLiteFTS_Document { /** * Constructor. Creates our indexable document and adds all * necessary fields to it using the passed in document + * + * $convcmd can either be an array of conversion commands or + * an object of class SeedDMS_ConversionMgr */ public function __construct($dms, $document, $convcmd=null, $nocontent=false, $timeout=5) { /* {{{ */ $this->errormsg = ''; @@ -143,6 +146,7 @@ class SeedDMS_SQLiteFTS_IndexedDocument extends SeedDMS_SQLiteFTS_Document { if($document->isType('document')) { $this->addField(SeedDMS_SQLiteFTS_Field::Keyword('document_id', 'D'.$document->getID())); + $this->addField(SeedDMS_SQLiteFTS_Field::Keyword('record_type', 'document')); $version = $document->getLatestContent(); if($version) { $this->addField(SeedDMS_SQLiteFTS_Field::Keyword('mimetype', $version->getMimeType())); @@ -176,35 +180,51 @@ class SeedDMS_SQLiteFTS_IndexedDocument extends SeedDMS_SQLiteFTS_Document { if($version && !$nocontent) { $path = $dms->contentDir . $version->getPath(); if(file_exists($path)) { - $content = ''; $mimetype = $version->getMimeType(); $this->mimetype = $mimetype; - $cmd = ''; - $mimeparts = explode('/', $mimetype, 2); - if(isset($convcmd[$mimetype])) { - $cmd = sprintf($convcmd[$mimetype], $path); - } elseif(isset($convcmd[$mimeparts[0].'/*'])) { - $cmd = sprintf($convcmd[$mimetype], $path); - } elseif(isset($convcmd['*'])) { - $cmd = sprintf($convcmd[$mimetype], $path); - } - if($cmd) { - $this->cmd = $cmd; - try { - $content = self::execWithTimeout($cmd, $timeout); - if($content['stdout']) { - $this->addField(SeedDMS_SQLiteFTS_Field::UnStored('content', $content['stdout'])); + if(is_object($convcmd) && (get_class($convcmd) == 'SeedDMS_ConversionMgr')) { + if($service = $convcmd->getService($mimetype, 'text/plain')) { + $content = $convcmd->convert($path, $mimetype, 'text/plain'); + if($content) { + self::setContent($content); + } elseif($content === false) { + $this->errormsg = 'Conversion failed'; } - if($content['stderr']) { - $this->errormsg = $content['stderr']; + $this->cmd = get_class($service); + } else { + $this->cmd = 'No service to convert '.$mimetype.' to text/plain'; + } + } else { + $content = ''; + $cmd = ''; + $mimeparts = explode('/', $mimetype, 2); + if(isset($convcmd[$mimetype])) { + $cmd = sprintf($convcmd[$mimetype], $path); + } elseif(isset($convcmd[$mimeparts[0].'/*'])) { + $cmd = sprintf($convcmd[$mimetype], $path); + } elseif(isset($convcmd['*'])) { + $cmd = sprintf($convcmd[$mimetype], $path); + } + if($cmd) { + $this->cmd = $cmd; + try { + $content = self::execWithTimeout($cmd, $timeout); + if($content['stdout']) { + self::setContent($content['stdout']); + // $this->addField(SeedDMS_SQLiteFTS_Field::UnStored('content', $content['stdout'])); + } + if($content['stderr']) { + $this->errormsg = $content['stderr']; + } + } catch (Exception $e) { } - } catch (Exception $e) { } } } } } elseif($document->isType('folder')) { $this->addField(SeedDMS_SQLiteFTS_Field::Keyword('document_id', 'F'.$document->getID())); + $this->addField(SeedDMS_SQLiteFTS_Field::Keyword('record_type', 'folder')); $this->addField(SeedDMS_SQLiteFTS_Field::Keyword('created', $document->getDate(), 'unindexed')); } } /* }}} */ diff --git a/SeedDMS_SQLiteFTS/SQLiteFTS/Indexer.php b/SeedDMS_SQLiteFTS/SQLiteFTS/Indexer.php index 3170da355..fd2ec197c 100644 --- a/SeedDMS_SQLiteFTS/SQLiteFTS/Indexer.php +++ b/SeedDMS_SQLiteFTS/SQLiteFTS/Indexer.php @@ -77,9 +77,9 @@ class SeedDMS_SQLiteFTS_Indexer { $version = SQLite3::version(); if(self::ftstype == 'fts4') { if($version['versionNumber'] >= 3008000) - $sql = 'CREATE VIRTUAL TABLE docs USING fts4(documentid, title, comment, keywords, category, mimetype, origfilename, owner, content, created, users, status, path, notindexed=created, matchinfo=fts3)'; + $sql = 'CREATE VIRTUAL TABLE docs USING fts4(documentid, record_type, title, comment, keywords, category, mimetype, origfilename, owner, content, created, users, status, path, notindexed=created, matchinfo=fts3)'; else - $sql = 'CREATE VIRTUAL TABLE docs USING fts4(documentid, title, comment, keywords, category, mimetype, origfilename, owner, content, created, users, status, path, matchinfo=fts3)'; + $sql = 'CREATE VIRTUAL TABLE docs USING fts4(documentid, record_type, title, comment, keywords, category, mimetype, origfilename, owner, content, created, users, status, path, matchinfo=fts3)'; $res = $index->_conn->exec($sql); if($res === false) { return null; @@ -90,7 +90,7 @@ class SeedDMS_SQLiteFTS_Indexer { return null; } } elseif(self::ftstype == 'fts5') { - $sql = 'CREATE VIRTUAL TABLE docs USING fts5(documentid, title, comment, keywords, category, mimetype, origfilename, owner, content, created unindexed, users, status, path)'; + $sql = 'CREATE VIRTUAL TABLE docs USING fts5(documentid, record_type, title, comment, keywords, category, mimetype, origfilename, owner, content, created unindexed, users, status, path)'; $res = $index->_conn->exec($sql); if($res === false) { return null; @@ -130,7 +130,12 @@ class SeedDMS_SQLiteFTS_Indexer { ${$kk} = ''; } } - $sql = "INSERT INTO docs (documentid, title, comment, keywords, category, owner, content, mimetype, origfilename, created, users, status, path) VALUES (".$this->_conn->quote($doc->getFieldValue('document_id')).", ".$this->_conn->quote($doc->getFieldValue('title')).", ".$this->_conn->quote($comment).", ".$this->_conn->quote($keywords).", ".$this->_conn->quote($category).", ".$this->_conn->quote($doc->getFieldValue('owner')).", ".$this->_conn->quote($content).", ".$this->_conn->quote($mimetype).", ".$this->_conn->quote($origfilename).", ".(int)$created.", ".$this->_conn->quote($doc->getFieldValue('users')).", ".$this->_conn->quote($status).", ".$this->_conn->quote($doc->getFieldValue('path'))/*time()*/.")"; + $sql = "DELETE FROM docs WHERE documentid=".$this->_conn->quote($doc->getFieldValue('document_id')); + $res = $this->_conn->exec($sql); + if($res === false) { + return false; + } + $sql = "INSERT INTO docs (documentid, record_type, title, comment, keywords, category, owner, content, mimetype, origfilename, created, users, status, path) VALUES (".$this->_conn->quote($doc->getFieldValue('document_id')).", ".$this->_conn->quote($doc->getFieldValue('record_type')).", ".$this->_conn->quote($doc->getFieldValue('title')).", ".$this->_conn->quote($comment).", ".$this->_conn->quote($keywords).", ".$this->_conn->quote($category).", ".$this->_conn->quote($doc->getFieldValue('owner')).", ".$this->_conn->quote($content).", ".$this->_conn->quote($mimetype).", ".$this->_conn->quote($origfilename).", ".(int)$created.", ".$this->_conn->quote($doc->getFieldValue('users')).", ".$this->_conn->quote($status).", ".$this->_conn->quote($doc->getFieldValue('path'))/*time()*/.")"; $res = $this->_conn->exec($sql); if($res === false) { return false; @@ -178,13 +183,51 @@ class SeedDMS_SQLiteFTS_Indexer { if(!$this->_conn) return false; - $sql = "SELECT count(*) AS `c` FROM `docs`"; + /* First count some records for facets */ + foreach(array('owner', 'mimetype', 'category') as $facetname) { + $sql = "SELECT `".$facetname."`, count(*) AS `c` FROM `docs`"; + if($query) + $sql .= " WHERE docs MATCH ".$this->_conn->quote($query); + $res = $this->_conn->query($sql." GROUP BY `".$facetname."`"); + if(!$res) + 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']) { + if($facetname == 'category') { + $tmp = explode(' ', $row[$facetname]); + if(count($tmp) > 1) { + foreach($tmp as $t) { + if(!isset($facets[$facetname][$t])) + $facets[$facetname][$t] = $row['c']; + else + $facets[$facetname][$t] += $row['c']; + } + } else { + if(!isset($facets[$facetname][$row[$facetname]])) + $facets[$facetname][$row[$facetname]] = $row['c']; + else + $facets[$facetname][$row[$facetname]] += $row['c']; + } + } else + $facets[$facetname][$row[$facetname]] = $row['c']; + } + } + } + + $sql = "SELECT `record_type`, count(*) AS `c` FROM `docs`"; if($query) $sql .= " WHERE docs MATCH ".$this->_conn->quote($query); - $res = $this->_conn->query($sql); + $res = $this->_conn->query($sql." GROUP BY `record_type`"); if(!$res) - return false; - $row = $res->fetch(); + 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']; + } + $total = $facets['record_type']['document'] + $facets['record_type']['folder']; $sql = "SELECT ".$this->_rawid.", documentid FROM docs"; if($query) @@ -198,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) { @@ -207,7 +252,7 @@ class SeedDMS_SQLiteFTS_Indexer { $hits[] = $hit; } } - return array('count'=>$row['c'], 'hits'=>$hits); + return array('count'=>$total, 'hits'=>$hits, 'facets'=>$facets); } /* }}} */ /** diff --git a/SeedDMS_SQLiteFTS/SQLiteFTS/Search.php b/SeedDMS_SQLiteFTS/SQLiteFTS/Search.php index 20381d1a8..d9a793974 100644 --- a/SeedDMS_SQLiteFTS/SQLiteFTS/Search.php +++ b/SeedDMS_SQLiteFTS/SQLiteFTS/Search.php @@ -89,17 +89,31 @@ class SeedDMS_SQliteFTS_Search { $querystr .= ')'; } } + if(!empty($fields['record_type'])) { + if($querystr) + $querystr .= ' AND '; + $querystr .= '(record_type:'; + $querystr .= implode(' OR record_type:', $fields['record_type']); + $querystr .= ')'; + } if(!empty($fields['category'])) { if($querystr) $querystr .= ' AND '; - $querystr .= '(category:'; - $querystr .= implode(' OR category:', $fields['category']); - $querystr .= ')'; + $querystr .= '(category:"'; + $querystr .= implode('" AND category:"', $fields['category']); + $querystr .= '")'; + } + if(!empty($fields['mimetype'])) { + if($querystr) + $querystr .= ' AND '; + $querystr .= '(mimetype:"'; + $querystr .= implode('" OR mimetype:"', $fields['mimetype']); + $querystr .= '")'; } 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 .= ')'; @@ -131,7 +145,7 @@ class SeedDMS_SQliteFTS_Search { foreach($result["hits"] as $hit) { $recs[] = array('id'=>$hit->id, 'document_id'=>$hit->documentid); } - return array('count'=>$result['count'], 'hits'=>$recs, 'facets'=>array()); + return array('count'=>$result['count'], 'hits'=>$recs, 'facets'=>$result['facets']); } catch (Exception $e) { return false; } diff --git a/SeedDMS_SQLiteFTS/package.xml b/SeedDMS_SQLiteFTS/package.xml index a550a95b0..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,7 @@ 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 @@ -336,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 + + diff --git a/build.xml b/build.xml new file mode 100644 index 000000000..b02d9167e --- /dev/null +++ b/build.xml @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Hello + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/composer-dist.json b/composer-dist.json new file mode 100644 index 000000000..43624bd3a --- /dev/null +++ b/composer-dist.json @@ -0,0 +1,16 @@ +{ + "require": { + "sabre/dav": "^3.", + "slim/slim": "^3.0", + "erusev/parsedown": "*", + "erusev/parsedown-extra": "*", + "pear/log": "*", + "pear/mail": "*", + "pear/mail_mime": "*", + "pear/net_smtp": "*", + "pear/auth_sasl": "*", + "pear/db": "*", + "alecrabbit/php-console-colour": "*", + "zf1/zend-search-lucene": "*" + } +} diff --git a/conf/settings.xml.template b/conf/settings.xml.template index bc69afe77..01704a1ce 100644 --- a/conf/settings.xml.template +++ b/conf/settings.xml.template @@ -18,11 +18,12 @@ theme = "bootstrap" previewWidthList = "40" previewWidthDetail = "100" + onePageMode="true" /> 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 + + 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 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/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()); } diff --git a/controllers/class.PdfPreview.php b/controllers/class.PdfPreview.php index dfe10ef71..400e953c2 100644 --- a/controllers/class.PdfPreview.php +++ b/controllers/class.PdfPreview.php @@ -27,6 +27,7 @@ class SeedDMS_Controller_PdfPreview extends SeedDMS_Controller_Common { $dms = $this->params['dms']; $type = $this->params['type']; $settings = $this->params['settings']; + $conversionmgr = $this->params['conversionmgr']; switch($type) { case "version": @@ -51,7 +52,10 @@ class SeedDMS_Controller_PdfPreview extends SeedDMS_Controller_Common { $this->params['content'] = $content; if(null === $this->callHook('version')) { $previewer = new SeedDMS_Preview_PdfPreviewer($settings->_cacheDir, $settings->_cmdTimeout); - $previewer->setConverters(isset($settings->_converters['pdf']) ? $settings->_converters['pdf'] : array()); + if($conversionmgr) + $previewer->setConversionMgr($conversionmgr); + else + $previewer->setConverters(isset($settings->_converters['pdf']) ? $settings->_converters['pdf'] : array()); $previewer->setXsendfile($settings->_enableXsendfile); if(!$previewer->hasPreview($content)) { add_log_line(""); diff --git a/controllers/class.Preview.php b/controllers/class.Preview.php index 688ed7a0a..3cea95428 100644 --- a/controllers/class.Preview.php +++ b/controllers/class.Preview.php @@ -27,6 +27,7 @@ class SeedDMS_Controller_Preview extends SeedDMS_Controller_Common { $dms = $this->params['dms']; $type = $this->params['type']; $settings = $this->params['settings']; + $conversionmgr = $this->params['conversionmgr']; switch($type) { case "version": @@ -55,7 +56,10 @@ class SeedDMS_Controller_Preview extends SeedDMS_Controller_Common { $previewer = new SeedDMS_Preview_Previewer($settings->_cacheDir, $width, $settings->_cmdTimeout); else $previewer = new SeedDMS_Preview_Previewer($settings->_cacheDir); - $previewer->setConverters($settings->_converters['preview']); + if($conversionmgr) + $previewer->setConversionMgr($conversionmgr); + else + $previewer->setConverters($settings->_converters['preview']); $previewer->setXsendfile($settings->_enableXsendfile); if(!$previewer->hasPreview($content)) { add_log_line(""); @@ -86,7 +90,10 @@ class SeedDMS_Controller_Preview extends SeedDMS_Controller_Common { $previewer = new SeedDMS_Preview_Previewer($settings->_cacheDir, $width, $settings->_cmdTimeout); else $previewer = new SeedDMS_Preview_Previewer($settings->_cacheDir); - $previewer->setConverters($settings->_converters['preview']); + if($conversionmgr) + $previewer->setConversionMgr($conversionmgr); + else + $previewer->setConverters($settings->_converters['preview']); $previewer->setXsendfile($settings->_enableXsendfile); if(!$previewer->hasPreview($object)) { diff --git a/doc/README.Converters b/doc/README.Converters index f2dfb5295..e916159dc 100644 --- a/doc/README.Converters +++ b/doc/README.Converters @@ -9,6 +9,8 @@ application/csv application/pdf pdftotext -nopgbrk %s - | sed -e 's/ [a-zA-Z0-9.]\{1\} / /g' -e 's/[0-9.]//g' + mutool draw -F txt -q -N -o - %s + application/vnd.openxmlformats-officedocument.wordprocessingml.document docx2txt '%s' - @@ -16,10 +18,10 @@ application/msword catdoc %s application/vnd.openxmlformats-officedocument.spreadsheetml.sheet - xlsx2csv %s + xlsx2csv -d tab %s application/vnd.ms-excel - xls2csv %s + xls2csv -d tab %s text/html html2text %s @@ -48,7 +50,7 @@ text/rtf image/png image/jpg image/jpeg - convert -f pdf -density 300 '%f' '%o' + convert -density 300 '%f' 'pdf:%o' application/vnd.ms-powerpoint application/vnd.openxmlformats-officedocument.presentationml.presentation @@ -60,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 ===================================== @@ -71,16 +79,26 @@ It basically instructs you to comment out the line in /etc/ImageMagick-6/policy.xml +convert determines the format of the converted image from the extension of +the output filename. SeedDMS usually sets a propper extension when running +the command, but nevertheless it is good practice to explicitly set the output +format by prefixing the output filename with 'png:'. This is of course always +needed if the output goes to stdout. + image/jpg image/jpeg image/png - convert -resize %wx '%f' '%o' + convert -resize %wx '%f' 'png:%o' application/pdf gs -dBATCH -dNOPAUSE -sDEVICE=png16m -dPDFFitPage -r72x72 -sOutputFile=- -dFirstPage=1 -dLastPage=1 -q '%f' | convert -resize %wx png:- '%o' + convert -density 100 -resize %wx '%f[0]' 'png:%o' + + mutool draw -F png -w %w -q -N -o %o %f 1 + text/plain - a2ps -1 -a1 -R -B -o - '%f' | gs -dBATCH -dNOPAUSE -sDEVICE=png16m -dFirstPage=1 -dLastPage=1 -dPDFFitPage -r72x72 -sOutputFile=- -q - | convert -resize %wx png:- '%o' + a2ps -1 -a1 -R -B -o - '%f' | gs -dBATCH -dNOPAUSE -sDEVICE=png16m -dFirstPage=1 -dLastPage=1 -dPDFFitPage -r72x72 -sOutputFile=- -q - | convert -resize %wx png:- 'png:%o' application/msword application/vnd.oasis.opendocument.spreadsheet @@ -93,5 +111,5 @@ application/vnd.ms-powerpoint text/csv application/csv application/vnd.wordperfect - unoconv -d document -e PageRange=1 -f pdf --stdout -v '%f' | gs -dBATCH -dNOPAUSE -sDEVICE=pngalpha -dPDFFitPage -r72x72 -sOutputFile=- -dFirstPage=1 -dLastPage=1 -q - | convert -resize %wx png:- '%o' + unoconv -d document -e PageRange=1 -f pdf --stdout -v '%f' | gs -dBATCH -dNOPAUSE -sDEVICE=pngalpha -dPDFFitPage -r72x72 -sOutputFile=- -dFirstPage=1 -dLastPage=1 -q - | convert -resize %wx png:- 'png:%o' diff --git a/doc/README.Install.md b/doc/README.Install.md index 05ddf21fc..561e433e3 100644 --- a/doc/README.Install.md +++ b/doc/README.Install.md @@ -5,21 +5,21 @@ 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.x 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.0 -2. A mysql database, unless you use sqlite +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` 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,23 +30,25 @@ 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 +PostgreSQL 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` @@ -85,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 @@ -95,11 +97,11 @@ http://your-domain/ or http://your-domain/seeddms51x. SECURITY CONSIDERATIONS ======================= -First of all you should always access your SeedDMS installation through -a secured https connection, unless you know precisly what are you doing. +You should always access your SeedDMS installation through +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 @@ -109,17 +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 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 -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/`. +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, 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 @@ -138,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 --------------------------------- @@ -146,29 +152,43 @@ 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. + +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. @@ -176,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 @@ -311,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. @@ -420,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 @@ -564,16 +598,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 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'), 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); } diff --git a/inc/inc.ClassCalendar.php b/inc/inc.ClassCalendar.php index f7e87aab4..63face820 100644 --- a/inc/inc.ClassCalendar.php +++ b/inc/inc.ClassCalendar.php @@ -33,36 +33,55 @@ 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; + if(!$this->user->isAdmin()) { + $queryStr .= " AND `userID`=".$this->user->getID(); + } $ret = $this->db->getResultArray($queryStr); return $ret; } /* }}} */ - function getEventsInInterval($start, $stop) { /* {{{ */ - $queryStr = "SELECT * FROM `tblEvents` WHERE ( `start` <= " . (int) $start . " AND `stop` >= " . (int) $start . " ) ". + 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 . " )"; + "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; } /* }}} */ - 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().")"; $ret = $this->db->getResult($queryStr); - return $ret; + if (!$ret) + return false; + + $event = $this->getEvent((int) $this->db->getInsertID('tblEvents')); + + return $event; } /* }}} */ - function getEvent($id) { /* {{{ */ + public function getEvent($id) { /* {{{ */ if (!is_numeric($id)) return false; $queryStr = "SELECT * FROM `tblEvents` WHERE `id` = " . (int) $id; @@ -74,7 +93,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; @@ -82,7 +101,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; diff --git a/inc/inc.ClassConversionMgr.php b/inc/inc.ClassConversionMgr.php new file mode 100644 index 000000000..5ad9be70a --- /dev/null +++ b/inc/inc.ClassConversionMgr.php @@ -0,0 +1,88 @@ + + * @copyright Copyright (C) 2021 Uwe Steinmann + * @version Release: @package_version@ + */ + +require_once("inc/inc.ClassConversionServiceExec.php"); +require_once("inc/inc.ClassConversionServiceImageToImage.php"); +require_once("inc/inc.ClassConversionServicePdfToImage.php"); +require_once("inc/inc.ClassConversionServiceTextToText.php"); + +/** + * Implementation of conversion manager + * + * @category DMS + * @package SeedDMS + * @author Uwe Steinmann + * @copyright Copyright (C) 2021 Uwe Steinmann + * @version Release: @package_version@ + */ +class SeedDMS_ConversionMgr { + /** + * List of services for searching fulltext + */ + public $services; + + public function __construct() { + $this->services = array(); + } + + public function addService($service) { + $this->services[$service->from][$service->to][] = $service; + return $service; + } + + public function hasService($from, $to) { + if(!empty($this->services[$from][$to])) + return true; + else + return false; + } + + /** + * Return the service that would be tried first for converting + * the document. + * + * The conversion may not use this service but choose a different + * one when it fails. + */ + public function getService($from, $to) { + if(!empty($this->services[$from][$to])) + return end($this->services[$from][$to]); + else + return null; + } + + public function getServices() { + return $this->services; + } + + /** + * Convert a file + * + * @param string $file name of file to convert + * @param string $from mimetype of input file + * @param string $to mimetype of output file + * + * @return boolean true on success, other false + */ + public function convert($file, $from, $to, $target=null, $params=array()) { + if(isset($this->services[$from][$to])) { + $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; + } + } + } +} diff --git a/inc/inc.ClassConversionServiceBase.php b/inc/inc.ClassConversionServiceBase.php new file mode 100644 index 000000000..e4b75a474 --- /dev/null +++ b/inc/inc.ClassConversionServiceBase.php @@ -0,0 +1,66 @@ + + * @copyright Copyright (C) 2021 Uwe Steinmann + * @version Release: @package_version@ + */ + +/** + * Implementation of conversion service base class + * + * @category DMS + * @package SeedDMS + * @author Uwe Steinmann + * @copyright Copyright (C) 2021 Uwe Steinmann + * @version Release: @package_version@ + */ +abstract class SeedDMS_ConversionServiceBase { + /** + * mimetype original file + */ + public $from; + + /** + * mimetype converted file + */ + public $to; + + /** + * logger + */ + protected $logger; + + public function __construct() { + $this->from = null; + $this->to = null; + } + + public function setLogger($logger) { + $this->logger = $logger; + } + + public function getInfo() { + return 'Conversion service'; + } + + public function getAdditionalParams() { /* {{{ */ + return []; + } /* }}} */ + + /** + * This method does the conversion + * + * It either returns the content of converted file (if $target is null) + * or writes the converted file into $target and returns true on success + * or false on error. + */ + public function convert($infile, $target = null, $params = array()) { + return false; + } +} diff --git a/inc/inc.ClassConversionServiceExec.php b/inc/inc.ClassConversionServiceExec.php new file mode 100644 index 000000000..3931c0fb7 --- /dev/null +++ b/inc/inc.ClassConversionServiceExec.php @@ -0,0 +1,193 @@ + + * @copyright Copyright (C) 2021 Uwe Steinmann + * @version Release: @package_version@ + */ + +require_once("inc/inc.ClassConversionServiceBase.php"); + +/** + * Implementation of conversion service exec class + * + * @category DMS + * @package SeedDMS + * @author Uwe Steinmann + * @copyright Copyright (C) 2021 Uwe Steinmann + * @version Release: @package_version@ + */ +class SeedDMS_ConversionServiceExec extends SeedDMS_ConversionServiceBase { + /** + * shell cmd + */ + public $cmd; + + /** + * timeout + */ + public $timeout; + + /** + * Run a shell command + * + * @param $cmd + * @param int $timeout + * @return array + * @throws Exception + */ + static function execWithTimeout($cmd, $timeout=5) { /* {{{ */ + $descriptorspec = array( + 0 => array("pipe", "r"), + 1 => array("pipe", "w"), + 2 => array("pipe", "w") + ); + $pipes = array(); + + $timeout += time(); + // Putting an 'exec' before the command will not fork the command + // and therefore not create any child process. proc_terminate will + // then reliably terminate the cmd and not just shell. See notes of + // https://www.php.net/manual/de/function.proc-terminate.php + $process = proc_open('exec '.$cmd, $descriptorspec, $pipes); + if (!is_resource($process)) { + throw new Exception("proc_open failed on: " . $cmd); + } + stream_set_blocking($pipes[1], 0); + stream_set_blocking($pipes[2], 0); + + $output = $error = ''; + $timeleft = $timeout - time(); + $read = array($pipes[1], $pipes[2]); + $write = NULL; + $exeptions = NULL; + do { + $num_changed_streams = stream_select($read, $write, $exeptions, $timeleft, 200000); + + if ($num_changed_streams === false) { + proc_terminate($process); + throw new Exception("stream select failed on: " . $cmd); + } elseif ($num_changed_streams > 0) { + $output .= fread($pipes[1], 8192); + $error .= fread($pipes[2], 8192); + } + $timeleft = $timeout - time(); + } while (!feof($pipes[1]) && $timeleft > 0); + + fclose($pipes[0]); + fclose($pipes[1]); + fclose($pipes[2]); + if ($timeleft <= 0) { + proc_terminate($process); + throw new Exception("command timeout on: " . $cmd); + } else { + $return_value = proc_close($process); + return array('stdout'=>$output, 'stderr'=>$error, 'return'=>$return_value); + } + } /* }}} */ + + public function __construct($from, $to, $cmd) { + $this->from = $from; + $this->to = $to; + $this->cmd = $cmd; + $this->timeout = 5; + } + + public function getInfo() { + return "Convert with command '".$this->cmd."'"; + } + + public function getAdditionalParams() { /* {{{ */ + /* output format is an image and the command has a placeholder for the + * width of the converted image, then allow to set the width. + */ + if(substr($this->to, 0, 6) == 'image/' && strpos($this->cmd, '%w') !== false) + return [ + ['name'=>'width', 'type'=>'number', 'description'=>'Width of converted image'], + ]; + return []; + } /* }}} */ + + /** + * Convert by running an external command + * + * The command was set when calling the constructor. The command may + * either write a file or to stdout, depending on the placeholder '%o' + * either exists or not in the command. If $target is null, but the + * command writes to a file, it will create a temporary file, write + * ot it and read the content back to be returned by the method. + */ + public function convert($infile, $target = null, $params = array()) { + /* if no %f placeholder is found, we assume output to stdout */ + $tostdout = strpos($this->cmd, '%o') === false; + + $format = ''; + switch($this->to) { + case 'image/gif': + $format = 'gif'; + break; + case 'image/jpg': + case 'image/jpeg': + $format = 'jpg'; + break; + case 'image/png': + $format = 'png'; + break; + case 'application/pdf': + $format = 'pdf'; + break; + } + $start = microtime(true); + $hastempfile = false; + if(!$target && !$tostdout) { + $tmpfile = tempnam(sys_get_temp_dir(), 'convert'); + /* Some programms (e.g. unoconv) need the output file to have the + * right extension. Without an extension it will add one by itself. + */ + if($format) + rename($tmpfile, $tmpfile .= '.'.$format); + $hastempfile = true; + } else + $tmpfile = $target; + /* %s was just added because the commands to convert to text/plain used + * it instead of %f for the input file + * %f = input file + * %o = output file + * %m = mime type + * %w = width + */ + $cmd = str_replace(array('%w', '%f', '%s', '%if', '%o', '%m'), array(!empty($params['width']) ? (int) $params['width'] : '150', $infile, $infile, $format, $tmpfile, $this->from), $this->cmd); + try { + $ret = self::execWithTimeout($cmd, $this->timeout); + } catch(Exception $e) { + if($hastempfile) + unlink($tmpfile); + return false; + } + $end = microtime(true); + if($this->logger) { + $this->logger->log('Conversion from '.$this->from.' to '.$this->to.' with cmd "'.$this->cmd.'" took '.($end-$start).' sec.', PEAR_LOG_DEBUG); + } + if($tostdout) { + if(!$target) { + return $ret['stdout']; + } else { + return file_put_contents($tmpfile, $ret['stdout']); + } + } else { + if(!$target) { + $content = file_get_contents($tmpfile); + unlink($tmpfile); + return $content; + } else { + return true; + } + } + } +} + diff --git a/inc/inc.ClassConversionServiceImageToImage.php b/inc/inc.ClassConversionServiceImageToImage.php new file mode 100644 index 000000000..952efc4f0 --- /dev/null +++ b/inc/inc.ClassConversionServiceImageToImage.php @@ -0,0 +1,71 @@ + + * @copyright Copyright (C) 2021 Uwe Steinmann + * @version Release: @package_version@ + */ + +require_once("inc/inc.ClassConversionServiceBase.php"); + +/** + * Implementation of conversion service image class + * + * @category DMS + * @package SeedDMS + * @author Uwe Steinmann + * @copyright Copyright (C) 2021 Uwe Steinmann + * @version Release: @package_version@ + */ +class SeedDMS_ConversionServiceImageToImage extends SeedDMS_ConversionServiceBase { + /** + * timeout + */ + public $timeout; + + public function __construct($from, $to) { + $this->from = $from; + $this->to = $to; + $this->timeout = 5; + } + + public function getInfo() { + return "Convert with imagick php functions"; + } + + public function getAdditionalParams() { /* {{{ */ + return [ + ['name'=>'width', 'type'=>'number', 'description'=>'Width of converted image'] + ]; + } /* }}} */ + + public function convert($infile, $target = null, $params = array()) { + $start = microtime(true); + $imagick = new Imagick(); + try { + if($imagick->readImage($infile)) { + if(!empty($params['width'])) + $imagick->scaleImage(min((int) $params['width'], $imagick->getImageWidth()), 0); + $end = microtime(true); + if($this->logger) { + $this->logger->log('Conversion from '.$this->from.' to '.$this->to.' with image service took '.($end-$start).' sec.', PEAR_LOG_INFO); + } + if($target) { + return $imagick->writeImage($target); + } else { + return $imagick->getImageBlob(); + } + } + } catch (ImagickException $e) { + return false; + } + return false; + } +} + + diff --git a/inc/inc.ClassConversionServicePdfToImage.php b/inc/inc.ClassConversionServicePdfToImage.php new file mode 100644 index 000000000..7dd3cb5b9 --- /dev/null +++ b/inc/inc.ClassConversionServicePdfToImage.php @@ -0,0 +1,81 @@ + + * @copyright Copyright (C) 2021 Uwe Steinmann + * @version Release: @package_version@ + */ + +require_once("inc/inc.ClassConversionServiceBase.php"); + +/** + * Implementation of conversion service pdf class + * + * @category DMS + * @package SeedDMS + * @author Uwe Steinmann + * @copyright Copyright (C) 2021 Uwe Steinmann + * @version Release: @package_version@ + */ +class SeedDMS_ConversionServicePdfToImage extends SeedDMS_ConversionServiceBase { + /** + * timeout + */ + public $timeout; + + public function __construct($from, $to) { + $this->from = $from; + $this->to = $to; + $this->timeout = 5; + } + + public function getInfo() { + return "Convert with imagick php functions"; + } + + public function getAdditionalParams() { /* {{{ */ + return [ + ['name'=>'width', 'type'=>'number', 'description'=>'Width of converted image'], + ['name'=>'page', 'type'=>'number', 'description'=>'Page of Pdf document'], + ]; + } /* }}} */ + + public function convert($infile, $target = null, $params = array()) { + $start = microtime(true); + $imagick = new Imagick(); + /* Setting a smaller resolution will speed up the conversion + * A resolution of 72,72 will create a 596x842 image + */ + $imagick->setResolution(36,36); + $page = 0; + if(!empty($params['page']) && intval($params['page']) > 0) + $page = intval($params['page'])-1; + try { + if($imagick->readImage($infile.'['.$page.']')) { + if(!empty($params['width'])) + $imagick->scaleImage(min((int) $params['width'], $imagick->getImageWidth()), 0); + $imagick->setImageFormat('png'); + $end = microtime(true); + if($this->logger) { + $this->logger->log('Conversion from '.$this->from.' to '.$this->to.' with pdf service took '.($end-$start).' sec.', PEAR_LOG_INFO); + } + if($target) { + return $imagick->writeImage($target); + } else { + return $imagick->getImageBlob(); + } + } + } catch (ImagickException $e) { + return false; + } + return false; + } +} + + + diff --git a/inc/inc.ClassConversionServiceTextToText.php b/inc/inc.ClassConversionServiceTextToText.php new file mode 100644 index 000000000..5342c9f4d --- /dev/null +++ b/inc/inc.ClassConversionServiceTextToText.php @@ -0,0 +1,43 @@ + + * @copyright Copyright (C) 2021 Uwe Steinmann + * @version Release: @package_version@ + */ + +require_once("inc/inc.ClassConversionServiceBase.php"); + +/** + * Implementation of conversion service class for text to text + * + * @category DMS + * @package SeedDMS + * @author Uwe Steinmann + * @copyright Copyright (C) 2021 Uwe Steinmann + * @version Release: @package_version@ + */ +class SeedDMS_ConversionServiceTextToText extends SeedDMS_ConversionServiceBase { + public function __construct($from, $to) { + $this->from = $from; + $this->to = $to; + } + + public function getInfo() { + return "Pass through document contents"; + } + + public function convert($infile, $target = null, $params = array()) { + if($target) { + file_put_contents($target, file_get_contents($infile)); + return true; + } else + return file_get_contents($infile); + } +} + 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.ClassEmailNotify.php b/inc/inc.ClassEmailNotify.php index b5b1905de..f0445082f 100644 --- a/inc/inc.ClassEmailNotify.php +++ b/inc/inc.ClassEmailNotify.php @@ -83,7 +83,7 @@ class SeedDMS_EmailNotify extends SeedDMS_Notify { * @param array $attachments list of attachments * @return false or -1 in case of error, otherwise true */ - function toIndividual($sender, $recipient, $subject, $messagekey, $params=array(), $attachments=array()) { /* {{{ */ + function toIndividual($sender, $recipient, $subject, $messagekey, $params=array(), $attachments=array(), $images=array()) { /* {{{ */ if(is_object($recipient) && $recipient->isType('user') && !$recipient->isDisabled() && $recipient->getEmail()!="") { $to = $recipient->getEmail(); $lang = $recipient->getLanguage(); @@ -158,6 +158,19 @@ class SeedDMS_EmailNotify extends SeedDMS_Notify { if($bodyhtml) $mime->setHTMLBody($bodyhtml); + if($images) { + foreach($images as $image) { + if(!$mime->addHTMLImage( + $image['file'], + $image['mimetype'], + isset($image['name']) ? $image['name'] : '', + isset($image['isfile']) ? $image['isfile'] : true + )) { + return false; + } + } + } + if($attachments) { foreach($attachments as $attachment) { if(!$mime->addAttachment( @@ -217,11 +230,11 @@ class SeedDMS_EmailNotify extends SeedDMS_Notify { if (isset($GLOBALS['SEEDDMS_HOOKS']['mailqueue'])) { foreach($GLOBALS['SEEDDMS_HOOKS']['mailqueue'] as $queueService) { - if(method_exists($queueService, 'queueMailJob')) { + if(method_exists($queueService, 'queueMailJob')) { $ret = $queueService->queueMailJob($mail_params, $to, $hdrs, getMLText($subject, $params, "", $lang), $message); if($ret !== null) return $ret; - } + } } } $result = $mail->send($to, $hdrs, $message); diff --git a/inc/inc.ClassExtensionMgr.php b/inc/inc.ClassExtensionMgr.php index d098ad4d3..b70f0fe3b 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) { /* {{{ */ @@ -472,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); @@ -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; } @@ -513,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; } diff --git a/inc/inc.ClassFulltextService.php b/inc/inc.ClassFulltextService.php index 77f4f89f8..90ec5f8d0 100644 --- a/inc/inc.ClassFulltextService.php +++ b/inc/inc.ClassFulltextService.php @@ -31,6 +31,11 @@ class SeedDMS_FulltextService { */ protected $converters; + /** + * @var object + */ + protected $conversionmgr; + /** * Max file size for imediate indexing */ @@ -43,6 +48,7 @@ class SeedDMS_FulltextService { public function __construct() { $this->services = array(); $this->converters = array(); + $this->conversionmgr = null; $this->maxsize = 0; $this->index = null; $this->search = null; @@ -57,6 +63,18 @@ class SeedDMS_FulltextService { $this->converters = $converters; } + /** + * Set conversion service manager + * + * A conversion manager is a service for converting files from one format + * to another format. + * + * @param object $conversionmgr + */ + function setConversionMgr($conversionmgr) { /* {{{ */ + $this->conversionmgr = $conversionmgr; + } /* }}} */ + public function setMaxSize($maxsize) { $this->maxsize = $maxsize; } @@ -77,10 +95,10 @@ class SeedDMS_FulltextService { */ public function IndexedDocument($object, $forceupdate=false) { if($object->isType('document')) - $nocontent = ($object->getLatestContent()->getFileSize() > $this->maxsize) && !$forceupdate; + $nocontent = $object->getLatestContent()->getFileSize() > $this->maxsize && $this->maxsize && !$forceupdate; else $nocontent = true; - return new $this->services[0]['IndexedDocument']($object->getDMS(), $object, $this->converters, $nocontent, $this->cmdtimeout); + return new $this->services[0]['IndexedDocument']($object->getDMS(), $object, $this->conversionmgr ? $this->conversionmgr : $this->converters, $nocontent, $this->cmdtimeout); } /** 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) { /* {{{ */ diff --git a/inc/inc.ClassNotificationService.php b/inc/inc.ClassNotificationService.php index b760cc593..908861b37 100644 --- a/inc/inc.ClassNotificationService.php +++ b/inc/inc.ClassNotificationService.php @@ -50,6 +50,7 @@ class SeedDMS_NotificationService { const RECV_REVIEWER = 3; const RECV_APPROVER = 4; const RECV_WORKFLOW = 5; + const RECV_UPLOADER = 6; public function __construct($logger = null, $settings = null) { /* {{{ */ $this->services = array(); @@ -145,43 +146,14 @@ 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. + * 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(); @@ -233,6 +205,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. */ @@ -293,9 +347,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); + // if user is not owner and owner not already in list of notifiers, then + // send notification to owner + if($user->getID() != $document->getOwner()->getID() && + false === SeedDMS_Core_DMS::inList($document->getOwner(), $notifyList['users'])) + $this->toIndividual($user, $document->getOwner(), $subject, $message, $params, SeedDMS_NotificationService::RECV_OWNER); $this->sendRequestWorkflowActionMail($lc, $user); @@ -329,16 +385,45 @@ class SeedDMS_NotificationService { $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); + // if user is not owner and owner not already in list of notifiers, then + // send notification to owner + if($user->getID() != $document->getOwner()->getID() && + false === SeedDMS_Core_DMS::inList($document->getOwner(), $nl['users'])) + $this->toIndividual($user, $document->getOwner(), $subject, $message, $params, SeedDMS_NotificationService::RECV_OWNER); } } /* }}} */ /** * This notification is sent when a document version is deleted. - * Keep in mind that $document refers to a document which has just been + * Keep in mind that $version refers to a version which has just been * deleted from the database, but all the data needed is still in the * object. */ - public function sendDeleteDocumentVersionMail($document, $user) { /* {{{ */ + public function sendDeleteDocumentVersionMail($document, $version, $user) { /* {{{ */ + $nl = $document->getNotifyList(); + $subject = "version_deleted_email_subject"; + $message = "version_deleted_email_body"; + $params = array(); + $params['name'] = $document->getName(); + $params['version'] = $version->getVersion(); + $params['folder_path'] = $document->getFolder()->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(); + $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); + } + // if user is not owner and owner not already in list of notifiers, then + // send notification to owner + if($user->getID() != $document->getOwner()->getID() && + false === SeedDMS_Core_DMS::inList($document->getOwner(), $nl['users'])) + $this->toIndividual($user, $document->getOwner(), $subject, $message, $params, SeedDMS_NotificationService::RECV_OWNER); + + /* Send mail to uploader of version */ + if($user->getID() != $version->getUser()->getID() && false === SeedDMS_Core_DMS::inList($version->getUser(), $nl['users'])) + $this->toIndividual($user, $version->getUser(), $subject, $message, $params, SeedDMS_NotificationService::RECV_UPLOADER); } /* }}} */ /** @@ -457,6 +542,16 @@ class SeedDMS_NotificationService { foreach ($notifyList["groups"] as $grp) { $this->toGroup($user, $grp, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); } + + // if user is not owner and owner not already in list of notifiers, then + // send notification to owner + if($user->getID() != $document->getOwner()->getID() && + false === SeedDMS_Core_DMS::inList($document->getOwner(), $notifyList['users'])) + $this->toIndividual($user, $document->getOwner(), $subject, $message, $params, SeedDMS_NotificationService::RECV_OWNER); + + /* Send mail to uploader of version */ + if($user->getID() != $content->getUser()->getID() && false === SeedDMS_Core_DMS::inList($content->getUser(), $nl['users'])) + $this->toIndividual($user, $content->getUser(), $subject, $message, $params, SeedDMS_NotificationService::RECV_UPLOADER); } /* }}} */ /** @@ -664,9 +759,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() != $folder->getOwner()->getID()) - // $notifier->toIndividual($user, $folder->getOwner(), $subject, $message, $params, SeedDMS_NotificationService::RECV_OWNER); + // if user is not owner and owner not already in list of notifiers, then + // send notification to owner + if($user->getID() != $folder->getOwner()->getID() && + false === SeedDMS_Core_DMS::inList($folder->getOwner(), $notifyList['users'])) + $this->toIndividual($user, $folder->getOwner(), $subject, $message, $params, SeedDMS_NotificationService::RECV_OWNER); } } /* }}} */ @@ -676,8 +773,8 @@ class SeedDMS_NotificationService { $document = $content->getDocument(); $notifyList = $document->getNotifyList(); $folder = $document->getFolder(); - $subject = "document_comment_changed_email_subject"; - $message = "document_comment_changed_email_body"; + $subject = "version_comment_changed_email_subject"; + $message = "version_comment_changed_email_body"; $params = array(); $params['name'] = $document->getName(); $params['version'] = $content->getVersion(); @@ -723,7 +820,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); } } } /* }}} */ @@ -746,9 +843,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() != $folder->getOwner()->getID()) - // $this->toIndividual($user, $folder->getOwner(), $subject, $message, $params, SeedDMS_NotificationService::RECV_OWNER); + // if user is not owner and owner not already in list of notifiers, then + // send notification to owner + if($user->getID() != $folder->getOwner()->getID() && + false === SeedDMS_Core_DMS::inList($folder->getOwner(), $notifyList['users'])) + $this->toIndividual($user, $folder->getOwner(), $subject, $message, $params, SeedDMS_NotificationService::RECV_OWNER); } } /* }}} */ @@ -778,7 +877,8 @@ class SeedDMS_NotificationService { foreach ($nl["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 is not owner and owner not already in list of notifiers, then + // send notification to owner if ($user->getID() != $document->getOwner()->getID() && false === SeedDMS_Core_DMS::inList($document->getOwner(), $notifyList['users'])) { $this->toIndividual($user, $document->getOwner(), $subject, $message, $params, SeedDMS_NotificationService::RECV_OWNER); @@ -836,6 +936,12 @@ class SeedDMS_NotificationService { foreach ($nl["groups"] as $grp) { $this->toGroup($user, $grp, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); } + // if user is not owner and owner not already in list of notifiers, then + // send notification to owner + if ($user->getID() != $document->getOwner()->getID() && + false === SeedDMS_Core_DMS::inList($document->getOwner(), $nl['users'])) { + $this->toIndividual($user, $document->getOwner(), $subject, $message, $params, SeedDMS_NotificationService::RECV_OWNER); + } } /* }}} */ public function sendChangedDocumentStatusMail($content, $user, $oldstatus) { /* {{{ */ @@ -861,7 +967,15 @@ 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); + /* Send mail to owner only if the currently logged in user is not the + * owner and the owner is not already in the list of notifiers. + */ + if($user->getID() != $document->getOwner()->getID() && false === SeedDMS_Core_DMS::inList($document->getOwner(), $nl['users'])) + $this->toIndividual($user, $document->getOwner(), $subject, $message, $params, SeedDMS_NotificationService::RECV_OWNER); + + /* Send mail to uploader of version */ + if($user->getID() != $content->getUser()->getID() && false === SeedDMS_Core_DMS::inList($content->getUser(), $nl['users'])) + $this->toIndividual($user, $content->getUser(), $subject, $message, $params, SeedDMS_NotificationService::RECV_UPLOADER); } /* }}} */ public function sendNewDocumentNotifyMail($document, $user, $obj) { /* {{{ */ @@ -879,7 +993,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 +1010,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 +1028,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 +1045,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) { /* {{{ */ @@ -954,7 +1068,15 @@ 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); + /* Send mail to owner only if the currently logged in user is not the + * owner and the owner is not already in the list of notifiers. + */ + if($user->getID() != $document->getOwner()->getID() && false === SeedDMS_Core_DMS::inList($document->getOwner(), $nl['users'])) + $this->toIndividual($user, $document->getOwner(), $subject, $message, $params, SeedDMS_NotificationService::RECV_OWNER); + + /* Send mail to uploader of version */ + if($user->getID() != $content->getUser()->getID() && false === SeedDMS_Core_DMS::inList($content->getUser(), $nl['users'])) + $this->toIndividual($user, $content->getUser(), $subject, $message, $params, SeedDMS_NotificationService::RECV_UPLOADER); } /* }}} */ public function sendSubmittedApprovalMail($content, $user, $approvelog) { /* {{{ */ @@ -976,9 +1098,119 @@ 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->toIndividual($user, $content->getUser(), $subject, $message, $params, SeedDMS_NotificationService::RECV_OWNER); + $this->toGroup($user, $grp, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); + /* Send mail to owner only if the currently logged in user is not the + * owner and the owner is not already in the list of notifiers. + */ + if($user->getID() != $document->getOwner()->getID() && false === SeedDMS_Core_DMS::inList($document->getOwner(), $nl['users'])) + $this->toIndividual($user, $document->getOwner(), $subject, $message, $params, SeedDMS_NotificationService::RECV_OWNER); + + /* Send mail to uploader of version */ + if($user->getID() != $content->getUser()->getID() && false === SeedDMS_Core_DMS::inList($content->getUser(), $nl['users'])) + $this->toIndividual($user, $content->getUser(), $subject, $message, $params, SeedDMS_NotificationService::RECV_UPLOADER); + } /* }}} */ + + 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().$this->settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID(); + $params['sitename'] = $this->settings->_siteName; + $params['http_root'] = $this->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().$this->settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID(); + $params['sitename'] = $this->settings->_siteName; + $params['http_root'] = $this->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) { /* {{{ */ @@ -1000,7 +1232,11 @@ 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); + /* Send mail to old owner only if the currently logged in user is not the + * owner and the owner is not already in the list of notifiers. + */ + if($user->getID() != $oldowner->getID() && false === SeedDMS_Core_DMS::inList($oldowner, $notifyList['users'])) + $this->toIndividual($user, $oldowner, $subject, $message, $params, SeedDMS_NotificationService::RECV_OWNER); } } /* }}} */ @@ -1025,6 +1261,11 @@ class SeedDMS_NotificationService { foreach ($notifyList["groups"] as $grp) { $this->toGroup($user, $grp, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); } + /* Send mail to old owner only if the currently logged in user is not the + * owner and the owner is not already in the list of notifiers. + */ + if($user->getID() != $oldowner->getID() && false === SeedDMS_Core_DMS::inList($oldowner, $notifyList['users'])) + $this->toIndividual($user, $oldowner, $subject, $message, $params, SeedDMS_NotificationService::RECV_OWNER); } } /* }}} */ @@ -1066,5 +1307,115 @@ 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(!($workflow = $content->getWorkflow())) + return; + if($transition) { + $state = $transition->getNextState(); + } else { + $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); + } + } + } + } + } /* }}} */ + + /** + * 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/inc/inc.ClassSettings.php b/inc/inc.ClassSettings.php index a6907b4f1..ee2a95ad3 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 @@ -155,8 +158,6 @@ class Settings { /* {{{ */ var $_overrideTheme = false; // experimental one page mode for ViewFolder page var $_onePageMode = false; - // Workaround for page titles that go over more than 2 lines. - var $_titleDisplayHack = true; // enable/disable automatic email notification var $_enableEmail = true; // enable/disable group and user view for all users @@ -220,6 +221,12 @@ class Settings { /* {{{ */ var $_calendarDefaultView = "y"; // first day of the week (0=sunday, 1=monday, 6=saturday) var $_firstDayOfWeek = 0; + // enable/disable download of extensions + var $_enableExtensionDownload = true; + // enable/disable import of extensions + var $_enableExtensionImport = true; + // enable/disable import of extensions from repository + var $_enableExtensionImportFromRepository = true; // enable/disable display of the clipboard var $_enableClipboard = true; // enable/disable list of tasks in main menu @@ -254,6 +261,8 @@ class Settings { /* {{{ */ var $_sortFoldersDefault = ''; // Where to insert new documents ('start' or 'end') var $_defaultDocPosition = 'end'; + // Where to insert new folders ('start' or 'end') + var $_defaultFolderPosition = 'end'; // Set valid IP for admin logins // if enabled admin can login only by specified IP addres var $_adminIP = ""; @@ -389,8 +398,8 @@ class Settings { /* {{{ */ * */ function arrayToString($value) { /* {{{ */ - return implode(";", $value); - } /* }}} */ + return implode(";", $value); + } /* }}} */ /** * Return array from ';' seperated string @@ -399,8 +408,8 @@ class Settings { /* {{{ */ * */ function stringToArray($value) { /* {{{ */ - return explode(";", $Value); - } /* }}} */ + return explode(";", $Value); + } /* }}} */ /** * set $_viewOnlineFileTypes @@ -408,9 +417,9 @@ class Settings { /* {{{ */ * @param string $stringValue string value * */ - function setViewOnlineFileTypesFromString($stringValue) { /* {{{ */ - $this->_viewOnlineFileTypes = explode(";", $stringValue); - } /* }}} */ + function setViewOnlineFileTypesFromString($stringValue) { /* {{{ */ + $this->_viewOnlineFileTypes = explode(";", $stringValue); + } /* }}} */ /** * get $_viewOnlineFileTypes in a string value @@ -418,9 +427,9 @@ class Settings { /* {{{ */ * @return string value * */ - function getViewOnlineFileTypesToString() { /* {{{ */ - return implode(";", $this->_viewOnlineFileTypes); - } /* }}} */ + function getViewOnlineFileTypesToString() { /* {{{ */ + return implode(";", $this->_viewOnlineFileTypes); + } /* }}} */ /** * set $_editOnlineFileTypes @@ -428,9 +437,9 @@ class Settings { /* {{{ */ * @param string $stringValue string value * */ - function setEditOnlineFileTypesFromString($stringValue) { /* {{{ */ - $this->_editOnlineFileTypes = explode(";", $stringValue); - } /* }}} */ + function setEditOnlineFileTypesFromString($stringValue) { /* {{{ */ + $this->_editOnlineFileTypes = explode(";", $stringValue); + } /* }}} */ /** * get $_editOnlineFileTypes in a string value @@ -438,9 +447,9 @@ class Settings { /* {{{ */ * @return string value * */ - function getEditOnlineFileTypesToString() { /* {{{ */ - return implode(";", $this->_editOnlineFileTypes); - } /* }}} */ + function getEditOnlineFileTypesToString() { /* {{{ */ + return implode(";", $this->_editOnlineFileTypes); + } /* }}} */ /** * Load config file @@ -495,6 +504,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"]); @@ -522,8 +533,9 @@ class Settings { /* {{{ */ $this->_sortFoldersDefault = strval($tab["sortFoldersDefault"]); $this->_expandFolderTree = intval($tab["expandFolderTree"]); $this->_defaultDocPosition = strval($tab["defaultDocPosition"]); + $this->_defaultFolderPosition = strval($tab["defaultFolderPosition"]); - // XML Path: /configuration/site/calendar + // XML Path: /configuration/site/webdav $node = $xml->xpath('/configuration/site/webdav'); if($node) { $tab = $node[0]->attributes(); @@ -539,6 +551,15 @@ class Settings { /* {{{ */ $this->_firstDayOfWeek = intval($tab["firstDayOfWeek"]); } + // XML Path: /configuration/site/extensionmgr + $node = $xml->xpath('/configuration/site/extensionmgr'); + if($node) { + $tab = $node[0]->attributes(); + $this->_enableExtensionDownload = Settings::boolVal($tab["enableExtensionDownload"]); + $this->_enableExtensionImport = Settings::boolVal($tab["enableExtensionImport"]); + $this->_enableExtensionImportFromRepository = Settings::boolVal($tab["enableExtensionImportFromRepository"]); + } + // XML Path: /configuration/system/server $node = $xml->xpath('/configuration/system/server'); if($node) { @@ -675,7 +696,6 @@ class Settings { /* {{{ */ $this->_siteDefaultPage = strval($tab["siteDefaultPage"]); $this->_rootFolderID = intval($tab["rootFolderID"]); $this->_useHomeAsRootFolder = Settings::boolval($tab["useHomeAsRootFolder"]); - $this->_titleDisplayHack = Settings::boolval($tab["titleDisplayHack"]); $this->_showMissingTranslations = Settings::boolval($tab["showMissingTranslations"]); $this->_hiddenConfFields = explode(';', strval($tab["hiddenConfFields"])); } @@ -786,20 +806,20 @@ class Settings { /* {{{ */ * * @return true/false */ - protected function setXMLAttributValue($node, $attributName, $attributValue) { /* {{{ */ - if (is_bool($attributValue)) { - if ($attributValue) - $attributValue = "true"; - else - $attributValue = "false"; - } + protected function setXMLAttributValue($node, $attributName, $attributValue) { /* {{{ */ + if (is_bool($attributValue)) { + if ($attributValue) + $attributValue = "true"; + else + $attributValue = "false"; + } - if (isset($node[$attributName])) { - $node[$attributName] = $attributValue; - } else { - $node->addAttribute($attributName, $attributValue); - } - } /* }}} */ + if (isset($node[$attributName])) { + $node[$attributName] = $attributValue; + } else { + $node->addAttribute($attributName, $attributValue); + } + } /* }}} */ /** * Get XML node, create it if not exists @@ -831,12 +851,12 @@ class Settings { /* {{{ */ * @return true/false */ public function save($configFilePath=NULL) { /* {{{ */ - if (is_null($configFilePath)) - $configFilePath = $this->_configFilePath; + if (is_null($configFilePath)) + $configFilePath = $this->_configFilePath; - // Load - $xml = simplexml_load_string(file_get_contents($configFilePath)); - $this->getXMLNode($xml, '/', 'configuration'); + // Load + $xml = simplexml_load_string(file_get_contents($configFilePath)); + $this->getXMLNode($xml, '/', 'configuration'); // XML Path: /configuration/site/display $this->getXMLNode($xml, '/configuration', 'site'); @@ -865,6 +885,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); @@ -892,8 +913,9 @@ class Settings { /* {{{ */ $this->setXMLAttributValue($node, "sortUsersInList", $this->_sortUsersInList); $this->setXMLAttributValue($node, "sortFoldersDefault", $this->_sortFoldersDefault); $this->setXMLAttributValue($node, "defaultDocPosition", $this->_defaultDocPosition); + $this->setXMLAttributValue($node, "defaultFolderPosition", $this->_defaultFolderPosition); - // XML Path: /configuration/site/calendar + // XML Path: /configuration/site/webdav $node = $this->getXMLNode($xml, '/configuration/site', 'webdav'); $this->setXMLAttributValue($node, "enableWebdavReplaceDoc", $this->_enableWebdavReplaceDoc); @@ -903,6 +925,12 @@ class Settings { /* {{{ */ $this->setXMLAttributValue($node, "calendarDefaultView", $this->_calendarDefaultView); $this->setXMLAttributValue($node, "firstDayOfWeek", $this->_firstDayOfWeek); + // XML Path: /configuration/site/extensionmgr + $node = $this->getXMLNode($xml, '/configuration/site', 'extensionmgr'); + $this->setXMLAttributValue($node, "enableExtensionDownload", $this->_enableExtensionDownload); + $this->setXMLAttributValue($node, "enableExtensionImport", $this->_enableExtensionImport); + $this->setXMLAttributValue($node, "enableExtensionImportFromRepository", $this->_enableExtensionImportFromRepository); + // XML Path: /configuration/system/server $this->getXMLNode($xml, '/configuration', 'system'); $node = $this->getXMLNode($xml, '/configuration/system', 'server'); @@ -945,71 +973,71 @@ class Settings { /* {{{ */ $this->setXMLAttributValue($node, "enableUserImage", $this->_enableUserImage); $this->setXMLAttributValue($node, "disableSelfEdit", $this->_disableSelfEdit); - // XML Path: /configuration/system/authentication/connectors - foreach($this->_usersConnectors as $keyConn => $paramConn) - { - // search XML node - $node = $xml->xpath('/configuration/system/authentication/connectors/connector[@type="'. $keyConn .'"]'); + // XML Path: /configuration/system/authentication/connectors + foreach($this->_usersConnectors as $keyConn => $paramConn) + { + // search XML node + $node = $xml->xpath('/configuration/system/authentication/connectors/connector[@type="'. $keyConn .'"]'); - // Just the first is configured - if (isset($node)) - { - if (count($node)>0) - { - $node = $node[0]; - } - else - { - $nodeParent = $xml->xpath('/configuration/system/authentication/connectors'); - $node = $nodeParent[0]->addChild("connector"); - } + // Just the first is configured + if (isset($node)) + { + if (count($node)>0) + { + $node = $node[0]; + } + else + { + $nodeParent = $xml->xpath('/configuration/system/authentication/connectors'); + $node = $nodeParent[0]->addChild("connector"); + } - foreach($paramConn as $key => $value) - { - $this->setXMLAttributValue($node, $key, $value); - } + foreach($paramConn as $key => $value) + { + $this->setXMLAttributValue($node, $key, $value); + } - } // isset($node) + } // isset($node) - } // foreach + } // foreach - // XML Path: /configuration/system/authentication/connectors - // manage old settings parameters - if (isset($this->_ldapHost) && (strlen($this->_ldapHost)>0)) - { - if ($this->_ldapType == 1) - { - $node = $xml->xpath('/configuration/system/authentication/connectors/connector[@type="AD"]'); - $node = $node[0]; - $this->setXMLAttributValue($node, "accountDomainName", $this->_ldapAccountDomainName); - } - else - { - $node = $xml->xpath('/configuration/system/authentication/connectors/connector[@type="ldap"]'); - $node = $node[0]; - } + // XML Path: /configuration/system/authentication/connectors + // manage old settings parameters + if (isset($this->_ldapHost) && (strlen($this->_ldapHost)>0)) + { + if ($this->_ldapType == 1) + { + $node = $xml->xpath('/configuration/system/authentication/connectors/connector[@type="AD"]'); + $node = $node[0]; + $this->setXMLAttributValue($node, "accountDomainName", $this->_ldapAccountDomainName); + } + else + { + $node = $xml->xpath('/configuration/system/authentication/connectors/connector[@type="ldap"]'); + $node = $node[0]; + } - $this->setXMLAttributValue($node, "host", $this->_ldapHost); - $this->setXMLAttributValue($node, "port", $this->_ldapPort); - $this->setXMLAttributValue($node, "baseDN", $this->_ldapBaseDN); - } + $this->setXMLAttributValue($node, "host", $this->_ldapHost); + $this->setXMLAttributValue($node, "port", $this->_ldapPort); + $this->setXMLAttributValue($node, "baseDN", $this->_ldapBaseDN); + } - // XML Path: /configuration/system/database - $node = $this->getXMLNode($xml, '/configuration/system', 'database'); - $this->setXMLAttributValue($node, "dbDriver", $this->_dbDriver); - $this->setXMLAttributValue($node, "dbHostname", $this->_dbHostname); - $this->setXMLAttributValue($node, "dbDatabase", $this->_dbDatabase); - $this->setXMLAttributValue($node, "dbUser", $this->_dbUser); - $this->setXMLAttributValue($node, "dbPass", $this->_dbPass); - $this->setXMLAttributValue($node, "doNotCheckDBVersion", $this->_doNotCheckDBVersion); + // XML Path: /configuration/system/database + $node = $this->getXMLNode($xml, '/configuration/system', 'database'); + $this->setXMLAttributValue($node, "dbDriver", $this->_dbDriver); + $this->setXMLAttributValue($node, "dbHostname", $this->_dbHostname); + $this->setXMLAttributValue($node, "dbDatabase", $this->_dbDatabase); + $this->setXMLAttributValue($node, "dbUser", $this->_dbUser); + $this->setXMLAttributValue($node, "dbPass", $this->_dbPass); + $this->setXMLAttributValue($node, "doNotCheckDBVersion", $this->_doNotCheckDBVersion); - // XML Path: /configuration/system/smtp - $node = $this->getXMLNode($xml, '/configuration/system', 'smtp'); - $this->setXMLAttributValue($node, "smtpServer", $this->_smtpServer); - $this->setXMLAttributValue($node, "smtpPort", $this->_smtpPort); - $this->setXMLAttributValue($node, "smtpSendFrom", $this->_smtpSendFrom); - $this->setXMLAttributValue($node, "smtpUser", $this->_smtpUser); - $this->setXMLAttributValue($node, "smtpPassword", $this->_smtpPassword); + // XML Path: /configuration/system/smtp + $node = $this->getXMLNode($xml, '/configuration/system', 'smtp'); + $this->setXMLAttributValue($node, "smtpServer", $this->_smtpServer); + $this->setXMLAttributValue($node, "smtpPort", $this->_smtpPort); + $this->setXMLAttributValue($node, "smtpSendFrom", $this->_smtpSendFrom); + $this->setXMLAttributValue($node, "smtpUser", $this->_smtpUser); + $this->setXMLAttributValue($node, "smtpPassword", $this->_smtpPassword); // XML Path: /configuration/advanced/display $advnode = $this->getXMLNode($xml, '/configuration', 'advanced'); @@ -1017,54 +1045,53 @@ class Settings { /* {{{ */ $this->setXMLAttributValue($node, "siteDefaultPage", $this->_siteDefaultPage); $this->setXMLAttributValue($node, "rootFolderID", $this->_rootFolderID); $this->setXMLAttributValue($node, "useHomeAsRootFolder", $this->_useHomeAsRootFolder); - $this->setXMLAttributValue($node, "titleDisplayHack", $this->_titleDisplayHack); $this->setXMLAttributValue($node, "showMissingTranslations", $this->_showMissingTranslations); // $this->setXMLAttributValue($node, "hiddenConfFields", $this->_hiddenConfFields); - // XML Path: /configuration/advanced/authentication - $node = $this->getXMLNode($xml, '/configuration/advanced', 'authentication'); - $this->setXMLAttributValue($node, "guestID", $this->_guestID); - $this->setXMLAttributValue($node, "adminIP", $this->_adminIP); - $this->setXMLAttributValue($node, "apiKey", $this->_apiKey); - $this->setXMLAttributValue($node, "apiUserId", $this->_apiUserId); - $this->setXMLAttributValue($node, "apiOrigin", $this->_apiOrigin); + // XML Path: /configuration/advanced/authentication + $node = $this->getXMLNode($xml, '/configuration/advanced', 'authentication'); + $this->setXMLAttributValue($node, "guestID", $this->_guestID); + $this->setXMLAttributValue($node, "adminIP", $this->_adminIP); + $this->setXMLAttributValue($node, "apiKey", $this->_apiKey); + $this->setXMLAttributValue($node, "apiUserId", $this->_apiUserId); + $this->setXMLAttributValue($node, "apiOrigin", $this->_apiOrigin); - // XML Path: /configuration/advanced/edition - $node = $this->getXMLNode($xml, '/configuration/advanced', 'edition'); - $this->setXMLAttributValue($node, "enableAdminRevApp", $this->_enableAdminRevApp); - $this->setXMLAttributValue($node, "enableOwnerRevApp", $this->_enableOwnerRevApp); - $this->setXMLAttributValue($node, "enableSelfRevApp", $this->_enableSelfRevApp); - $this->setXMLAttributValue($node, "enableUpdateRevApp", $this->_enableUpdateRevApp); - $this->setXMLAttributValue($node, "enableRemoveRevApp", $this->_enableRemoveRevApp); - $this->setXMLAttributValue($node, "presetExpirationDate", $this->_presetExpirationDate); - $this->setXMLAttributValue($node, "versioningFileName", $this->_versioningFileName); - $this->setXMLAttributValue($node, "presetExpirationDate", $this->_presetExpirationDate); - $this->setXMLAttributValue($node, "workflowMode", $this->_workflowMode); - $this->setXMLAttributValue($node, "allowReviewerOnly", $this->_allowReviewerOnly); - $this->setXMLAttributValue($node, "enableVersionDeletion", $this->_enableVersionDeletion); - $this->setXMLAttributValue($node, "enableVersionModification", $this->_enableVersionModification); - $this->setXMLAttributValue($node, "enableDuplicateDocNames", $this->_enableDuplicateDocNames); - $this->setXMLAttributValue($node, "enableDuplicateSubFolderNames", $this->_enableDuplicateSubFolderNames); - $this->setXMLAttributValue($node, "overrideMimeType", $this->_overrideMimeType); - $this->setXMLAttributValue($node, "removeFromDropFolder", $this->_removeFromDropFolder); + // XML Path: /configuration/advanced/edition + $node = $this->getXMLNode($xml, '/configuration/advanced', 'edition'); + $this->setXMLAttributValue($node, "enableAdminRevApp", $this->_enableAdminRevApp); + $this->setXMLAttributValue($node, "enableOwnerRevApp", $this->_enableOwnerRevApp); + $this->setXMLAttributValue($node, "enableSelfRevApp", $this->_enableSelfRevApp); + $this->setXMLAttributValue($node, "enableUpdateRevApp", $this->_enableUpdateRevApp); + $this->setXMLAttributValue($node, "enableRemoveRevApp", $this->_enableRemoveRevApp); + $this->setXMLAttributValue($node, "presetExpirationDate", $this->_presetExpirationDate); + $this->setXMLAttributValue($node, "versioningFileName", $this->_versioningFileName); + $this->setXMLAttributValue($node, "presetExpirationDate", $this->_presetExpirationDate); + $this->setXMLAttributValue($node, "workflowMode", $this->_workflowMode); + $this->setXMLAttributValue($node, "allowReviewerOnly", $this->_allowReviewerOnly); + $this->setXMLAttributValue($node, "enableVersionDeletion", $this->_enableVersionDeletion); + $this->setXMLAttributValue($node, "enableVersionModification", $this->_enableVersionModification); + $this->setXMLAttributValue($node, "enableDuplicateDocNames", $this->_enableDuplicateDocNames); + $this->setXMLAttributValue($node, "enableDuplicateSubFolderNames", $this->_enableDuplicateSubFolderNames); + $this->setXMLAttributValue($node, "overrideMimeType", $this->_overrideMimeType); + $this->setXMLAttributValue($node, "removeFromDropFolder", $this->_removeFromDropFolder); - // XML Path: /configuration/advanced/notification - $node = $this->getXMLNode($xml, '/configuration/advanced', 'notification'); - $this->setXMLAttributValue($node, "enableNotificationAppRev", $this->_enableNotificationAppRev); - $this->setXMLAttributValue($node, "enableOwnerNotification", $this->_enableOwnerNotification); - $this->setXMLAttributValue($node, "enableNotificationWorkflow", $this->_enableNotificationWorkflow); + // XML Path: /configuration/advanced/notification + $node = $this->getXMLNode($xml, '/configuration/advanced', 'notification'); + $this->setXMLAttributValue($node, "enableNotificationAppRev", $this->_enableNotificationAppRev); + $this->setXMLAttributValue($node, "enableOwnerNotification", $this->_enableOwnerNotification); + $this->setXMLAttributValue($node, "enableNotificationWorkflow", $this->_enableNotificationWorkflow); - // XML Path: /configuration/advanced/server - $node = $this->getXMLNode($xml, '/configuration/advanced', 'server'); - $this->setXMLAttributValue($node, "coreDir", $this->_coreDir); - $this->setXMLAttributValue($node, "luceneClassDir", $this->_luceneClassDir); - $this->setXMLAttributValue($node, "extraPath", $this->_extraPath); - $this->setXMLAttributValue($node, "contentOffsetDir", $this->_contentOffsetDir); - $this->setXMLAttributValue($node, "maxDirID", $this->_maxDirID); - $this->setXMLAttributValue($node, "updateNotifyTime", $this->_updateNotifyTime); - $this->setXMLAttributValue($node, "maxExecutionTime", $this->_maxExecutionTime); - $this->setXMLAttributValue($node, "cmdTimeout", $this->_cmdTimeout); - $this->setXMLAttributValue($node, "enableDebugMode", $this->_enableDebugMode); + // XML Path: /configuration/advanced/server + $node = $this->getXMLNode($xml, '/configuration/advanced', 'server'); + $this->setXMLAttributValue($node, "coreDir", $this->_coreDir); + $this->setXMLAttributValue($node, "luceneClassDir", $this->_luceneClassDir); + $this->setXMLAttributValue($node, "extraPath", $this->_extraPath); + $this->setXMLAttributValue($node, "contentOffsetDir", $this->_contentOffsetDir); + $this->setXMLAttributValue($node, "maxDirID", $this->_maxDirID); + $this->setXMLAttributValue($node, "updateNotifyTime", $this->_updateNotifyTime); + $this->setXMLAttributValue($node, "maxExecutionTime", $this->_maxExecutionTime); + $this->setXMLAttributValue($node, "cmdTimeout", $this->_cmdTimeout); + $this->setXMLAttributValue($node, "enableDebugMode", $this->_enableDebugMode); /* Check if there is still a converters list with a target attribute */ $node = $xml->xpath('/configuration/advanced/converters[count(@*)=0]'); @@ -1103,8 +1130,8 @@ class Settings { /* {{{ */ } // foreach - // XML Path: /configuration/extensions - $extnodes = $xml->xpath('/configuration/extensions'); + // XML Path: /configuration/extensions + $extnodes = $xml->xpath('/configuration/extensions'); if(!$extnodes) { $nodeParent = $xml->xpath('/configuration'); $extnodes = $nodeParent[0]->addChild("extensions"); @@ -1112,9 +1139,9 @@ class Settings { /* {{{ */ unset($xml->extensions); $extnodes = $xml->addChild("extensions"); } - foreach($this->_extensions as $name => $extension) + foreach($this->_extensions as $name => $extension) { - // search XML node + // search XML node $extnode = $extnodes->addChild('extension'); $this->setXMLAttributValue($extnode, 'name', $name); $this->setXMLAttributValue($extnode, 'disable', $extension['__disable__'] ? 'true' : 'false'); @@ -1140,10 +1167,10 @@ class Settings { /* {{{ */ */ - } // foreach + } // foreach - // Save - return $xml->asXML($configFilePath); + // Save + return $xml->asXML($configFilePath); } /* }}} */ /** @@ -1179,7 +1206,7 @@ class Settings { /* {{{ */ $configDir = null; /* new code starts here */ while($_arr && !$configDir) { - if(file_exists(implode('/', $_arr)."/conf/")) + if(file_exists(implode('/', $_arr)."/conf/settings.xml")) $configDir = implode('/', $_arr)."/conf/"; else array_pop($_arr); @@ -1215,15 +1242,15 @@ class Settings { /* {{{ */ $pageURL = 'http'; if (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on") { - $pageURL .= "s"; + $pageURL .= "s"; } $pageURL .= "://"; if ($_SERVER["SERVER_PORT"] != "80") { - $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; + $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; } else { - $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; + $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; } return $pageURL; 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.ConversionInit.php b/inc/inc.ConversionInit.php new file mode 100644 index 000000000..908b71f33 --- /dev/null +++ b/inc/inc.ConversionInit.php @@ -0,0 +1,43 @@ +_converters['preview'])) { + foreach($settings->_converters['preview'] as $mimetype=>$cmd) { + $conversionmgr->addService(new SeedDMS_ConversionServiceExec($mimetype, 'image/png', $cmd))->setLogger($logger); + } +} + +if(!empty($settings->_converters['pdf'])) { + foreach($settings->_converters['pdf'] as $mimetype=>$cmd) { + $conversionmgr->addService(new SeedDMS_ConversionServiceExec($mimetype, 'application/pdf', $cmd))->setLogger($logger); + } +} + +if(!empty($settings->_converters['fulltext'])) { + foreach($settings->_converters['fulltext'] as $mimetype=>$cmd) { + $conversionmgr->addService(new SeedDMS_ConversionServiceExec($mimetype, 'text/plain', $cmd))->setLogger($logger); + } +} + +$conversionmgr->addService(new SeedDMS_ConversionServicePdfToImage('application/pdf', 'image/png'))->setLogger($logger); + +$conversionmgr->addService(new SeedDMS_ConversionServiceImageToImage('image/jpeg', 'image/png'))->setLogger($logger); +$conversionmgr->addService(new SeedDMS_ConversionServiceImageToImage('image/png', 'image/png'))->setLogger($logger); +$conversionmgr->addService(new SeedDMS_ConversionServiceImageToImage('image/jpg', 'image/png'))->setLogger($logger); +$conversionmgr->addService(new SeedDMS_ConversionServiceImageToImage('image/svg+xml', 'image/png'))->setLogger($logger); + +$conversionmgr->addService(new SeedDMS_ConversionServiceTextToText('text/plain', 'text/plain'))->setLogger($logger); + +if(isset($GLOBALS['SEEDDMS_HOOKS']['initConversion'])) { + foreach($GLOBALS['SEEDDMS_HOOKS']['initConversion'] as $hookObj) { + if (method_exists($hookObj, 'getConversionServices')) { + if($services = $hookObj->getConversionServices(array('dms'=>$dms, 'settings'=>$settings, 'logger'=>$logger))) { + foreach($services as $service) { + $conversionmgr->addService($service)->setLogger($logger); + } + } + } + } +} diff --git a/inc/inc.DBInit.php b/inc/inc.DBInit.php index 3a44c2612..40a2df262 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) { @@ -68,4 +66,5 @@ if(isset($GLOBALS['SEEDDMS_HOOKS']['initDMS'])) { } } +require_once("inc.ConversionInit.php"); require_once('inc.FulltextInit.php'); 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; + } } } } } - } } } diff --git a/inc/inc.FulltextInit.php b/inc/inc.FulltextInit.php index 73e2bcfbe..ef7954154 100644 --- a/inc/inc.FulltextInit.php +++ b/inc/inc.FulltextInit.php @@ -42,6 +42,7 @@ if($settings->_enableFullSearch) { } } $fulltextservice->setConverters(isset($settings->_converters['fulltext']) ? $settings->_converters['fulltext'] : null); + $fulltextservice->setConversionMgr($conversionmgr); $fulltextservice->setMaxSize($settings->_maxSizeForFullText); $fulltextservice->setCmdTimeout($settings->_cmdTimeout); } diff --git a/inc/inc.Settings.php b/inc/inc.Settings.php index 659653cd0..3014536ce 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 = $__datadir; +} +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')); diff --git a/inc/inc.Utils.php b/inc/inc.Utils.php index 0520262db..15d43be93 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 * @@ -406,14 +427,19 @@ function add_log_line($msg="", $priority=null) { /* {{{ */ if(!$logger) return; + $ip = "-"; if(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; - else + elseif(!empty($_SERVER['REMOTE_ADDR'])) $ip = $_SERVER['REMOTE_ADDR']; - if($user) - $logger->log($user->getLogin()." (".$ip.") ".basename($_SERVER["REQUEST_URI"], ".php").($msg ? $msg : ''), $priority); + if(!empty($_SERVER["REQUEST_URI"])) + $scriptname = basename($_SERVER["REQUEST_URI"]).' '; else - $logger->log("-- (".$ip.") ".basename($_SERVER["REQUEST_URI"]).($msg ? $msg : ''), $priority); + $scriptname = basename($_SERVER["SCRIPT_NAME"]).' '; + if($user) + $logger->log($user->getLogin()." (".$ip.") ".$scriptname.($msg ? $msg : ''), $priority); + else + $logger->log("-- (".$ip.") ".$scriptname.($msg ? $msg : ''), $priority); } /* }}} */ function _add_log_line($msg="") { /* {{{ */ @@ -583,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'; @@ -604,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; } } /* }}} */ @@ -1015,12 +1056,12 @@ class SeedDMS_JwtToken { /* {{{ */ class SeedDMS_FolderTree { /* {{{ */ public function __construct($folder, $callback) { /* {{{ */ - $iter = new \SeedDMS\RecursiveFolderIterator($folder); - $iter2 = new RecursiveIteratorIterator($iter, RecursiveIteratorIterator:: SELF_FIRST); + $iter = new \SeedDMS\RecursiveFolderIterator($folder); + $iter2 = new RecursiveIteratorIterator($iter, RecursiveIteratorIterator::SELF_FIRST); foreach($iter2 as $ff) { call_user_func($callback, $ff, $iter2->getDepth()); // echo $ff->getID().': '.$ff->getFolderPathPlain().'-'.$ff->getName()."
"; - } + } } /* }}} */ } /* }}} */ diff --git a/inc/inc.Version.php b/inc/inc.Version.php index a4e428ad6..34e76f75c 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.25"; const _string = "SeedDMS"; function __construct() { 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); diff --git a/languages/ar_EG/lang.inc b/languages/ar_EG/lang.inc index 36ca7a2ac..9d281fb89 100644 --- a/languages/ar_EG/lang.inc +++ b/languages/ar_EG/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 (2271) +// Translators: Admin (2273) $text = array( '2_factor_auth' => 'توثيق ذو عاملين', @@ -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' => 'مجموعة الموافقة', @@ -123,10 +125,12 @@ Version: [version] Parent folder: [folder_path] User: [username] URL: [url]', +'approval_request_email_body_html' => '', 'approval_request_email_subject' => '[sitename]: [name] - طلب موافقة موضوع البريد الإلكتروني', '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' => 'خطأ في تحديث حالة الموافقة. فشل التحديث.', @@ -150,6 +154,7 @@ URL: [url]', 'attrdefgrp_show_searchlist' => 'معرف إضهار لائحة البحث', 'attrdef_exists' => 'تعريف السمة بالفعل موجود', 'attrdef_info' => 'معلومات', +'attrdef_invalid_regex' => '', 'attrdef_in_use' => 'تعريف السمة مشغول حاليا', 'attrdef_management' => 'ادارة تعريف السمات', 'attrdef_maxvalues' => 'اكبر عدد من القيم', @@ -167,10 +172,10 @@ URL: [url]', 'attrdef_type' => 'نوع', 'attrdef_type_boolean' => 'boolean', 'attrdef_type_date' => 'تاريخ', -'attrdef_type_document' => '', +'attrdef_type_document' => 'ﻢﺴﺘﻧﺩ', 'attrdef_type_email' => 'بريد إلكتروني', 'attrdef_type_float' => 'رقم مع فواصل', -'attrdef_type_folder' => '', +'attrdef_type_folder' => 'ﻢﺠﻟﺩ', 'attrdef_type_group' => '', 'attrdef_type_int' => 'رقم صحيح', 'attrdef_type_string' => 'نص', @@ -188,6 +193,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 +385,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 +395,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 +405,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 +425,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 +435,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 +444,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 +458,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' => 'لا ينتهى صلاحيته', @@ -465,6 +479,8 @@ URL: [url]', 'download_header_review_state' => '', 'download_header_state' => '', 'download_links' => 'تنزيل روابط', +'download_link_email_body' => '', +'download_link_email_subject' => '', 'do_no_transfer_to_user' => '', 'do_object_repair' => 'إصلاح كل المستندات والمجلدات.', 'do_object_setchecksum' => 'تحديد فحص اخطاء', @@ -574,6 +590,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' => '', @@ -585,9 +602,11 @@ 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' => 'مستودع إدارة الإضافات', +'extension_mgr_upload_disabled' => '', 'extension_missing_name' => '', 'extension_toggle_error' => '', 'extension_version_list' => 'لائحة الإضافات حسب الإصدار', @@ -606,6 +625,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 +635,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 +644,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 +654,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 +663,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' => 'مجلس النواب اللبناني', @@ -685,6 +709,7 @@ URL: [url]', 'hu_HU' => 'مجرية', 'id' => 'معرف', 'identical_version' => 'الاصدار الجديد مماثل للاصدار الحالي.', +'id_ID' => '', 'import' => 'استيراد', 'importfs' => 'استيرادات', 'import_extension' => 'استيراد إضافات', @@ -883,6 +908,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 +917,7 @@ Name: [name] تعليق: [comment] مستخدم: [username] URL: [url]', +'new_file_email_body_html' => '', 'new_file_email_subject' => '[sitename]: [document] - مرفقات جديدة', 'new_folder' => 'مجلد جديد', 'new_password' => 'كلمة سر جديدة', @@ -901,6 +928,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 +942,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 +950,7 @@ URL: [url]', Parent folder: [folder_path] مستخدم: [username] URL: [url]', +'notify_deleted_email_body_html' => '', 'notify_deleted_email_subject' => '[sitename]: [name] - تم ازالتك من قائمة التنبيهات', 'not_subscribed' => '', 'november' => 'نوفمبر', @@ -934,9 +964,11 @@ URL: [url]', 'no_current_version' => 'لا يوجد اصدار جديد', 'no_default_keywords' => 'لايوجد كلمات بحثية متاحة', 'no_docs_checked_out' => 'لم يتم سحب اي مستند', +'no_docs_draft' => '', 'no_docs_expired' => '', 'no_docs_locked' => 'لايوجد مستندات حاليا مقفلة/محمية من التعديل', 'no_docs_needs_correction' => 'لا يوجد مستندات تحتاج الى تصحيح', +'no_docs_obsolete' => '', 'no_docs_rejected' => 'لم يتم رفض اي مستند', 'no_docs_to_approve' => 'لايوجد مستندات حالية في انتظار الموافقة', 'no_docs_to_look_at' => 'لايوجد مستندات حاليا تستدعي انتباهك', @@ -957,6 +989,7 @@ URL: [url]', 'no_user_image' => 'لا يوجد صورة متاحة', 'no_version_check' => 'لم يتحقق من اي اصدار', 'no_version_modification' => 'لا تعديل على الإصدار', +'no_workflows' => '', 'no_workflow_available' => 'لا يوجد سير عمل', 'objectcheck' => 'التحقق من مستند/مجلد', 'object_check_critical' => 'التحقق من الشيء في حالة حرجة', @@ -966,6 +999,14 @@ URL: [url]', 'old' => 'قديم', 'only_jpg_user_images' => 'فقط يمكنك استخدام ملفات من تنسيق jpg كصورة المستخدم', 'operation_disallowed' => '', +'orderby' => '', +'orderby_date_asc' => '', +'orderby_date_desc' => '', +'orderby_id_asc' => '', +'orderby_id_desc' => '', +'orderby_name_asc' => '', +'orderby_name_desc' => '', +'orderby_unsorted' => '', 'order_by_sequence_off' => 'الترتيب بالتسلسل موقف', 'original_filename' => 'اسم الملف الاصلي', 'overall_indexing_progress' => 'متابعة الفهرسة', @@ -978,6 +1019,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,7 +1029,10 @@ 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_invalid_hash' => '', +'password_forgotten_invalid_hash_title' => '', 'password_forgotten_send_hash' => 'تم ارسال التعليمات اللازمة لبريدك الالكتروني', 'password_forgotten_text' => 'قم بملء النموذج التالي واتبع التعليمات التى سيتم ارسالها اليك بالبريد الالكتروني', 'password_forgotten_title' => 'ارسال كلمة السر', @@ -1034,11 +1079,16 @@ 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_body_html' => '', +'receipt_submit_email_subject' => '', 'receipt_summary' => 'ملخص الإيصال', 'receipt_update_failed' => 'فشل في تحديث الإيصال', 'recent_uploads' => 'الإضافات الأخيرة', @@ -1048,6 +1098,7 @@ URL: [url]', 'reception_rejected' => 'إستقبال مرفوض', 'recipients' => 'المستلمين', 'recipient_already_removed' => 'تم إيزال المستلم', +'record_type' => '', 'redraw' => 'إعادة رسم', 'refresh' => 'اعادة تحميل', 'rejected' => 'مرفوض', @@ -1058,6 +1109,7 @@ URL: [url]', مستند: [document] المستخدم: [username] URL: [url]', +'removed_file_email_body_html' => '', 'removed_file_email_subject' => '[sitename]: [document] - تم ازالة المرفقات', 'removed_recipient' => 'إزالة المستلم', 'removed_reviewer' => 'تم ازالته من قائمة المراجعة', @@ -1069,6 +1121,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 +1130,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 +1147,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 +1163,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 +1182,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 +1202,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 +1220,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 +1263,7 @@ URL: [url]', Parent folder: [folder_path] المستخدم: [username] URL: [url]', +'run_subworkflow_email_body_html' => '', 'run_subworkflow_email_subject' => '[sitename]: [name] - مسار العمل الفرعي بدأ', 'ru_RU' => 'الروسي', 'saturday' => 'السبت', @@ -1256,6 +1319,7 @@ URL: [url]', 'select_mimetype' => '', 'select_one' => 'اختر واحد', 'select_owner' => '', +'select_record_type' => '', 'select_status' => '', 'select_user' => 'اختر مستخدم', 'select_users' => 'اضغط لاختيار المستخدم', @@ -1349,6 +1413,8 @@ URL: [url]', 'settings_defaultDocPosition_desc' => 'الموقف الافتراضي للوثيقة', 'settings_defaultDocPosition_val_end' => 'الموقف الافتراضي للوثيقة نهاية القيمة', 'settings_defaultDocPosition_val_start' => 'الموقف الافتراضي للوثيقة بداية القيمة', +'settings_defaultFolderPosition' => '', +'settings_defaultFolderPosition_desc' => '', 'settings_defaultSearchMethod' => 'طريقة البحث الافتراضية', 'settings_defaultSearchMethod_desc' => 'طريقة البحث الافتراضية', 'settings_defaultSearchMethod_valdatabase' => 'طريقة البحث الافتراضية في قاعدة البيانات', @@ -1391,6 +1457,12 @@ URL: [url]', 'settings_enableDuplicateSubFolderNames_desc' => 'تمكين أسماء مكررة للمجلدات الفرعية', 'settings_enableEmail' => 'تمكين البريد الإلكتروني', 'settings_enableEmail_desc' => 'تمكين البريد الإلكتروني', +'settings_enableExtensionDownload' => '', +'settings_enableExtensionDownload_desc' => '', +'settings_enableExtensionImport' => '', +'settings_enableExtensionImportFromRepository' => '', +'settings_enableExtensionImportFromRepository_desc' => '', +'settings_enableExtensionImport_desc' => '', 'settings_enableFilterReceipt' => 'تمكين الاستلام حسب الفلتر', 'settings_enableFilterReceipt_desc' => 'تمكين الاستلام حسب الفلتر', 'settings_enableFolderTree' => 'تمكين شجرة المجلد', @@ -1469,6 +1541,7 @@ URL: [url]', 'settings_expandFolderTree_val0' => 'قم بتوسيع شجرة المجلد قيمة0', 'settings_expandFolderTree_val1' => 'قم بتوسيع شجرة المجلد قيمة1', 'settings_expandFolderTree_val2' => 'قم بتوسيع شجرة المجلد قيمة2', +'settings_ExtensionMgr' => '', 'settings_Extensions' => 'الملحقات', 'settings_extraPath' => 'مسار اضافي', 'settings_extraPath_desc' => 'مسار اضافي', @@ -1532,6 +1605,8 @@ URL: [url]', 'settings_more_settings' => 'المزيد من الإعدادات', 'settings_noDocumentFormFields' => '', 'settings_noDocumentFormFields_desc' => '', +'settings_noFolderFormFields' => '', +'settings_noFolderFormFields_desc' => '', 'settings_notfound' => 'غير موجود', 'settings_Notification' => 'اشعار', 'settings_notwritable' => 'غير قابل للكتابة', @@ -1691,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' => '', @@ -1713,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' => '', @@ -1735,6 +1814,7 @@ URL: [url]', 'splash_inherit_access' => 'يرث الوصول', 'splash_invalid_folder_id' => 'معرف المجلد غير صالح', 'splash_invalid_searchterm' => 'بحث غير صالح', +'splash_invalid_search_service' => '', 'splash_link_document' => 'رابط المستند', 'splash_moved_clipboard' => 'انتقلت الحافظة', 'splash_move_document' => 'نقل المستند', @@ -1744,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' => 'تم حذف إحالة', @@ -1892,6 +1974,7 @@ URL: [url]', Parent folder: [folder_path] المستخدم: [username] URL: [url]', +'transition_triggered_email_body_html' => '', 'transition_triggered_email_subject' => '[sitename]: [name] - تم تحريك انتقال مسار العمل', 'transmittal' => 'الإحالة', 'transmittalitem_removed' => 'تم إزالة الإحالة', @@ -1939,6 +2022,7 @@ URL: [url]', 'uploaded_by' => 'تم الرفع بواسطة', 'uploading_failed' => 'عملية رفع واحد من ملفاتك فشلت . من فضلك قم بالتأكد من اقصى ملف يمكن تحميله', 'uploading_maxsize' => 'الملف المرفوع يتخطى حجم الملف القياسي المسموح', +'uploading_postmaxsize' => '', 'uploading_zerosize' => 'تحميل ملف فارغ. عملية التحميل الغيت', 'used_discspace' => 'المساحة المستخدمة', 'user' => 'مستخدم', @@ -1966,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] @@ -1973,6 +2060,7 @@ Version: [version] Parent folder: [folder_path] المستخدم: [username] URL: [url]', +'version_deleted_email_body_html' => '', 'version_deleted_email_subject' => '[sitename]: [name] - تم مسح الاصدار', 'version_info' => 'معلومات الاصدار', 'view' => 'اعرض', @@ -2001,6 +2089,7 @@ URL: [url]', 'workflow_initstate' => 'الحالة الأولية', 'workflow_in_use' => 'مسار العمل هذا مستخدم حاليا لمستندات', 'workflow_layoutdata_saved' => 'تم حفظ بيانات تخطيط سير العمل', +'workflow_log' => '', 'workflow_management' => 'ادارة مسار العمل', 'workflow_name' => 'اسم', 'workflow_no_doc_rejected_state' => 'حالة الوثيقة مرفوضة', diff --git a/languages/bg_BG/lang.inc b/languages/bg_BG/lang.inc index fb780635e..d164abbe7 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,16 +109,19 @@ $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' => 'Утвърждаваща група', 'approval_log' => 'Потвърден лог', 'approval_request_email' => 'Запитване за утвърждаване', 'approval_request_email_body' => '', +'approval_request_email_body_html' => '', 'approval_request_email_subject' => '', 'approval_status' => 'Статус на утвърждаването', 'approval_submit_email' => 'Утвърдено', 'approval_submit_email_body' => '', +'approval_submit_email_body_html' => '', 'approval_submit_email_subject' => '', 'approval_summary' => 'Инфо за утвърждаване', 'approval_update_failed' => 'Стана грешка при промяната на статуса на утвърждаването', @@ -141,6 +145,7 @@ $text = array( 'attrdefgrp_show_searchlist' => '', 'attrdef_exists' => 'Тази дефиниция на атрибути вече съществува', 'attrdef_info' => '', +'attrdef_invalid_regex' => '', 'attrdef_in_use' => 'Тази дефиниция на атрибути все още се ползва', 'attrdef_management' => 'Управление дефинирането на атрибути', 'attrdef_maxvalues' => 'Max. брой стойности', @@ -171,6 +176,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 +368,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 +394,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' => 'Безсрочен', @@ -418,6 +432,8 @@ $text = array( 'download_header_review_state' => '', 'download_header_state' => '', 'download_links' => '', +'download_link_email_body' => '', +'download_link_email_subject' => '', 'do_no_transfer_to_user' => '', 'do_object_repair' => 'Поправи всички папки и документи', 'do_object_setchecksum' => 'Установи контролна сума', @@ -523,6 +539,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' => '', @@ -534,9 +551,11 @@ $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' => '', +'extension_mgr_upload_disabled' => '', 'extension_missing_name' => '', 'extension_toggle_error' => '', 'extension_version_list' => '', @@ -555,20 +574,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' => '', @@ -614,6 +638,7 @@ $text = array( 'hu_HU' => 'Унгарски', 'id' => 'ID', 'identical_version' => 'Новата версия е идентична с текущата.', +'id_ID' => '', 'import' => '', 'importfs' => '', 'import_extension' => '', @@ -806,14 +831,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 +851,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' => 'ноември', @@ -839,9 +869,11 @@ $text = array( 'no_current_version' => '', 'no_default_keywords' => 'Няма ключови думи', 'no_docs_checked_out' => '', +'no_docs_draft' => '', 'no_docs_expired' => '', 'no_docs_locked' => 'Няма блокирани документи', 'no_docs_needs_correction' => '', +'no_docs_obsolete' => '', 'no_docs_rejected' => '', 'no_docs_to_approve' => 'Няма документи, нуждаещи се от утвърждаване', 'no_docs_to_look_at' => 'Няма документи, нуждаещи се от внимание', @@ -862,6 +894,7 @@ $text = array( 'no_user_image' => 'Изображение не е намерено', 'no_version_check' => '', 'no_version_modification' => '', +'no_workflows' => '', 'no_workflow_available' => '', 'objectcheck' => 'Проверка на Папка/Документ', 'object_check_critical' => '', @@ -871,12 +904,21 @@ $text = array( 'old' => 'Стар', 'only_jpg_user_images' => 'Разрешени са само .jpg-изображения', 'operation_disallowed' => '', +'orderby' => '', +'orderby_date_asc' => '', +'orderby_date_desc' => '', +'orderby_id_asc' => '', +'orderby_id_desc' => '', +'orderby_name_asc' => '', +'orderby_name_desc' => '', +'orderby_unsorted' => '', 'order_by_sequence_off' => 'Подреждането по последователност е изключено в настройките. Ако искате този параметър да има ефект, ще трябва да го включите отново.', 'original_filename' => 'Оригинално име на файл', 'overall_indexing_progress' => '', 'owner' => 'Собственик', 'ownership_changed_email' => 'Собственикът променен', 'ownership_changed_email_body' => '', +'ownership_changed_email_body_html' => '', 'ownership_changed_email_subject' => '', 'password' => 'Парола', 'password_already_used' => 'Вече използвана парола', @@ -886,7 +928,10 @@ $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_invalid_hash' => '', +'password_forgotten_invalid_hash_title' => '', 'password_forgotten_send_hash' => 'Инструкциите са изпратени на email', 'password_forgotten_text' => 'Попълнете формата и следвайте инструкциите в писмото', 'password_forgotten_title' => 'Парола изпратена', @@ -933,11 +978,16 @@ $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_body_html' => '', +'receipt_submit_email_subject' => '', 'receipt_summary' => '', 'receipt_update_failed' => '', 'recent_uploads' => 'Последно Качени', @@ -947,6 +997,7 @@ $text = array( 'reception_rejected' => '', 'recipients' => '', 'recipient_already_removed' => '', +'record_type' => '', 'redraw' => '', 'refresh' => 'Обнови', 'rejected' => 'Отказан', @@ -954,11 +1005,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 +1020,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 +1046,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 +1078,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 +1090,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 +1126,7 @@ $text = array( 'ro_RO' => 'Румънски', 'run_subworkflow' => 'Пусни под-процес', 'run_subworkflow_email_body' => '', +'run_subworkflow_email_body_html' => '', 'run_subworkflow_email_subject' => '', 'ru_RU' => 'Руски', 'saturday' => 'събота', @@ -1119,6 +1182,7 @@ $text = array( 'select_mimetype' => '', 'select_one' => 'Избери един', 'select_owner' => '', +'select_record_type' => '', 'select_status' => '', 'select_user' => '', 'select_users' => 'Кликни да избереш потребители', @@ -1212,6 +1276,8 @@ $text = array( 'settings_defaultDocPosition_desc' => '', 'settings_defaultDocPosition_val_end' => '', 'settings_defaultDocPosition_val_start' => '', +'settings_defaultFolderPosition' => '', +'settings_defaultFolderPosition_desc' => '', 'settings_defaultSearchMethod' => '', 'settings_defaultSearchMethod_desc' => '', 'settings_defaultSearchMethod_valdatabase' => '', @@ -1254,6 +1320,12 @@ $text = array( 'settings_enableDuplicateSubFolderNames_desc' => '', 'settings_enableEmail' => 'Включи E-mail', 'settings_enableEmail_desc' => 'Включване/изключване автоматично уведомяване по email', +'settings_enableExtensionDownload' => '', +'settings_enableExtensionDownload_desc' => '', +'settings_enableExtensionImport' => '', +'settings_enableExtensionImportFromRepository' => '', +'settings_enableExtensionImportFromRepository_desc' => '', +'settings_enableExtensionImport_desc' => '', 'settings_enableFilterReceipt' => '', 'settings_enableFilterReceipt_desc' => '', 'settings_enableFolderTree' => 'Включи дървото с папките', @@ -1332,6 +1404,7 @@ $text = array( 'settings_expandFolderTree_val0' => 'започвайки от сгънато дърво', 'settings_expandFolderTree_val1' => 'започвайки от сгънато дърво с разгънато перво ниво', 'settings_expandFolderTree_val2' => 'започвайки от напълно разгънато дърво', +'settings_ExtensionMgr' => '', 'settings_Extensions' => 'Разширения', 'settings_extraPath' => 'Extra PHP include Path', 'settings_extraPath_desc' => 'Път към доп. софт. Това е директорията съдържаща напр. the adodb directory or additional pear packages', @@ -1395,6 +1468,8 @@ $text = array( 'settings_more_settings' => 'Още настройки. Логин по подразбиране: admin/admin', 'settings_noDocumentFormFields' => '', 'settings_noDocumentFormFields_desc' => '', +'settings_noFolderFormFields' => '', +'settings_noFolderFormFields_desc' => '', 'settings_notfound' => 'Не е намерено', 'settings_Notification' => 'Настройка за известяване', 'settings_notwritable' => 'Конфигурацията не може да бъде съхранена, защото файлът на конфигурацията е само за четене.', @@ -1554,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' => '', @@ -1576,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' => '', @@ -1598,6 +1677,7 @@ $text = array( 'splash_inherit_access' => '', 'splash_invalid_folder_id' => '', 'splash_invalid_searchterm' => '', +'splash_invalid_search_service' => '', 'splash_link_document' => '', 'splash_moved_clipboard' => '', 'splash_move_document' => '', @@ -1607,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' => '', @@ -1746,6 +1828,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' => '', @@ -1793,6 +1876,7 @@ $text = array( 'uploaded_by' => 'Качен от', 'uploading_failed' => 'Качването не стана. Свържете се с админа', 'uploading_maxsize' => '', +'uploading_postmaxsize' => '', 'uploading_zerosize' => 'Качване на празен файл/размер=0. Качването прекратено.', 'used_discspace' => 'Използвано дисково пространство', 'user' => 'Потребител', @@ -1820,8 +1904,12 @@ $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' => '', 'version_deleted_email_subject' => '', 'version_info' => 'Информация за версията', 'view' => 'Преглед', @@ -1850,6 +1938,7 @@ $text = array( 'workflow_initstate' => 'Начално състояние', 'workflow_in_use' => 'Този процес се използва от документ.', 'workflow_layoutdata_saved' => '', +'workflow_log' => '', 'workflow_management' => 'Управление на процеси', 'workflow_name' => 'Име', 'workflow_no_doc_rejected_state' => '', diff --git a/languages/ca_ES/lang.inc b/languages/ca_ES/lang.inc index f04ac4b84..ffc6fa7c0 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', @@ -119,10 +121,12 @@ Version: [version] Elternordner: [folder_path] Benutzer: [username] URL: [url]', +'approval_request_email_body_html' => '', 'approval_request_email_subject' => '[sitename]: [name] - Petició d\'aprovació', '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.', @@ -146,6 +150,7 @@ URL: [url]', 'attrdefgrp_show_searchlist' => '', 'attrdef_exists' => '', 'attrdef_info' => '', +'attrdef_invalid_regex' => '', 'attrdef_in_use' => '', 'attrdef_management' => '', 'attrdef_maxvalues' => '', @@ -176,6 +181,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 +373,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 +399,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', @@ -423,6 +437,8 @@ URL: [url]', 'download_header_review_state' => '', 'download_header_state' => '', 'download_links' => '', +'download_link_email_body' => '', +'download_link_email_subject' => '', 'do_no_transfer_to_user' => '', 'do_object_repair' => '', 'do_object_setchecksum' => '', @@ -528,6 +544,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' => '', @@ -539,9 +556,11 @@ 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' => '', +'extension_mgr_upload_disabled' => '', 'extension_missing_name' => '', 'extension_toggle_error' => '', 'extension_version_list' => '', @@ -560,20 +579,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' => '', @@ -619,6 +643,7 @@ URL: [url]', 'hu_HU' => 'Hongarès', 'id' => 'ID', 'identical_version' => '', +'id_ID' => '', 'import' => 'importar', 'importfs' => '', 'import_extension' => '', @@ -811,14 +836,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 +856,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', @@ -844,9 +874,11 @@ URL: [url]', 'no_current_version' => '', 'no_default_keywords' => 'No hi ha mots clau disponibles', 'no_docs_checked_out' => '', +'no_docs_draft' => '', 'no_docs_expired' => '', 'no_docs_locked' => 'No hi ha documents bloquejats.', 'no_docs_needs_correction' => '', +'no_docs_obsolete' => '', 'no_docs_rejected' => '', 'no_docs_to_approve' => 'Actualmente no hi ha documents que necessitin aprovació.', 'no_docs_to_look_at' => 'No hi ha documents que necessitin atenció.', @@ -867,6 +899,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' => '', @@ -876,12 +909,21 @@ URL: [url]', 'old' => 'Vell', 'only_jpg_user_images' => 'Només pot utilitzar imatges .jpg com imatges d\'usuari', 'operation_disallowed' => '', +'orderby' => '', +'orderby_date_asc' => '', +'orderby_date_desc' => '', +'orderby_id_asc' => '', +'orderby_id_desc' => '', +'orderby_name_asc' => '', +'orderby_name_desc' => '', +'orderby_unsorted' => '', 'order_by_sequence_off' => 'L\'ordenació per seqüència és desactivada a la configuració. Si vol que aquest paràmetre sigui efectiu, haurà d\'activar-lo.', 'original_filename' => '', 'overall_indexing_progress' => '', '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,7 +933,10 @@ URL: [url]', 'password_expires_in_days' => '', 'password_forgotten' => '', 'password_forgotten_email_body' => '', +'password_forgotten_email_body_html' => '', 'password_forgotten_email_subject' => '', +'password_forgotten_invalid_hash' => '', +'password_forgotten_invalid_hash_title' => '', 'password_forgotten_send_hash' => '', 'password_forgotten_text' => '', 'password_forgotten_title' => '', @@ -938,11 +983,16 @@ 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_body_html' => '', +'receipt_submit_email_subject' => '', 'receipt_summary' => '', 'receipt_update_failed' => '', 'recent_uploads' => 'Documents pujats recentment', @@ -952,6 +1002,7 @@ URL: [url]', 'reception_rejected' => '', 'recipients' => '', 'recipient_already_removed' => '', +'record_type' => '', 'redraw' => '', 'refresh' => 'Refresh', 'rejected' => 'Rebutjat', @@ -959,11 +1010,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 +1025,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 +1051,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 +1083,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 +1095,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 +1131,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', @@ -1124,6 +1187,7 @@ URL: [url]', 'select_mimetype' => '', 'select_one' => 'Seleccionar un', 'select_owner' => '', +'select_record_type' => '', 'select_status' => '', 'select_user' => 'Seleccionar usuari', 'select_users' => 'Prem per seleccionar els usuaris', @@ -1217,6 +1281,8 @@ URL: [url]', 'settings_defaultDocPosition_desc' => '', 'settings_defaultDocPosition_val_end' => '', 'settings_defaultDocPosition_val_start' => '', +'settings_defaultFolderPosition' => '', +'settings_defaultFolderPosition_desc' => '', 'settings_defaultSearchMethod' => '', 'settings_defaultSearchMethod_desc' => '', 'settings_defaultSearchMethod_valdatabase' => '', @@ -1259,6 +1325,12 @@ URL: [url]', 'settings_enableDuplicateSubFolderNames_desc' => '', 'settings_enableEmail' => 'Enable E-mail', 'settings_enableEmail_desc' => '', +'settings_enableExtensionDownload' => '', +'settings_enableExtensionDownload_desc' => '', +'settings_enableExtensionImport' => '', +'settings_enableExtensionImportFromRepository' => '', +'settings_enableExtensionImportFromRepository_desc' => '', +'settings_enableExtensionImport_desc' => '', 'settings_enableFilterReceipt' => '', 'settings_enableFilterReceipt_desc' => '', 'settings_enableFolderTree' => 'Enable Folder Tree', @@ -1337,6 +1409,7 @@ URL: [url]', 'settings_expandFolderTree_val0' => '', 'settings_expandFolderTree_val1' => '', 'settings_expandFolderTree_val2' => '', +'settings_ExtensionMgr' => '', 'settings_Extensions' => '', 'settings_extraPath' => '', 'settings_extraPath_desc' => '', @@ -1400,6 +1473,8 @@ URL: [url]', 'settings_more_settings' => '', 'settings_noDocumentFormFields' => '', 'settings_noDocumentFormFields_desc' => '', +'settings_noFolderFormFields' => '', +'settings_noFolderFormFields_desc' => '', 'settings_notfound' => '', 'settings_Notification' => '', 'settings_notwritable' => '', @@ -1559,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' => '', @@ -1581,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' => '', @@ -1603,6 +1682,7 @@ URL: [url]', 'splash_inherit_access' => '', 'splash_invalid_folder_id' => '', 'splash_invalid_searchterm' => '', +'splash_invalid_search_service' => '', 'splash_link_document' => '', 'splash_moved_clipboard' => '', 'splash_move_document' => '', @@ -1612,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' => '', @@ -1751,6 +1833,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' => '', @@ -1798,6 +1881,7 @@ URL: [url]', 'uploaded_by' => 'Enviat per', 'uploading_failed' => 'Enviament (Upload) fallat. Si us plau, contacteu amb l\'administrador.', 'uploading_maxsize' => '', +'uploading_postmaxsize' => '', 'uploading_zerosize' => '', 'used_discspace' => 'Espai utilitzat', 'user' => 'Usuari', @@ -1825,8 +1909,12 @@ 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' => '', 'version_deleted_email_subject' => '', 'version_info' => 'Informació de versió', 'view' => '', @@ -1855,6 +1943,7 @@ URL: [url]', 'workflow_initstate' => '', 'workflow_in_use' => '', 'workflow_layoutdata_saved' => '', +'workflow_log' => '', 'workflow_management' => '', 'workflow_name' => '', 'workflow_no_doc_rejected_state' => '', diff --git a/languages/cs_CZ/lang.inc b/languages/cs_CZ/lang.inc index b09f0a19f..fab2fdb59 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', @@ -128,6 +130,7 @@ Verze: [version] Nařazená složka: [folder_path] Uživatel: [username] URL: [url]', +'approval_request_email_body_html' => '', 'approval_request_email_subject' => '[sitename]: [name] - Žádost o schválení', 'approval_status' => 'Stav schválení', 'approval_submit_email' => 'Schválení odeslání emailu', @@ -139,6 +142,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.', @@ -162,6 +166,7 @@ URL: [url]', 'attrdefgrp_show_searchlist' => 'Seznam hledání atributů', 'attrdef_exists' => 'Definice atributů již existuje', 'attrdef_info' => 'Informace', +'attrdef_invalid_regex' => '', 'attrdef_in_use' => 'Definice atributů je ještě užívána', 'attrdef_management' => 'Správa definic atributů', 'attrdef_maxvalues' => 'Max. počet hodnot', @@ -200,6 +205,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 +404,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 +414,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 +424,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 +444,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 +454,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 +463,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 +472,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 +482,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ší', @@ -489,6 +503,8 @@ URL: [url]', 'download_header_review_state' => '', 'download_header_state' => '', 'download_links' => 'Odkazy ke stažení', +'download_link_email_body' => '', +'download_link_email_subject' => '', 'do_no_transfer_to_user' => '', 'do_object_repair' => 'Opravit všechny složky a dokumenty.', 'do_object_setchecksum' => 'Nastavit kontrolní součet', @@ -598,6 +614,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' => '', @@ -609,9 +626,11 @@ 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ý', +'extension_mgr_upload_disabled' => '', 'extension_missing_name' => '', 'extension_toggle_error' => '', 'extension_version_list' => 'Verze', @@ -637,6 +656,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 +666,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 +675,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 +685,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 +694,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' => '', @@ -716,6 +740,7 @@ URL: [url]', 'hu_HU' => 'Maďarština', 'id' => 'ID', 'identical_version' => 'Nová verze je identická se současnou verzí', +'id_ID' => '', 'import' => 'Nahrát', 'importfs' => 'Import ze souborového systému', 'import_extension' => 'Importovat rozšíření', @@ -914,6 +939,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 +948,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 +959,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 +973,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 +981,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', @@ -965,9 +995,11 @@ URL: [url]', 'no_current_version' => 'Používáte starou verzi SeedDMS. Nejnovější dostupná verze je [latestversion].', 'no_default_keywords' => 'Nejsou dostupná žádná klíčová slova.', 'no_docs_checked_out' => 'Nebyly odbaveny žádné dokumenty', +'no_docs_draft' => '', 'no_docs_expired' => '', 'no_docs_locked' => 'Žádné uzamčené dokumenty', 'no_docs_needs_correction' => 'Nejsou žádné dokumenty, které je třeba opravit', +'no_docs_obsolete' => '', 'no_docs_rejected' => 'Nebyly zamítnuty žádné dokumenty.', 'no_docs_to_approve' => 'Nejsou žádné dokumenty, které vyžadují schválení.', 'no_docs_to_look_at' => 'Nejsou žádné dokumenty, které vyžadují pozornost.', @@ -988,6 +1020,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', @@ -997,6 +1030,14 @@ URL: [url]', 'old' => 'Starý', 'only_jpg_user_images' => 'Pro obrázky uživatelů je možné použít pouze obrázky .jpg', 'operation_disallowed' => '', +'orderby' => '', +'orderby_date_asc' => '', +'orderby_date_desc' => '', +'orderby_id_asc' => '', +'orderby_id_desc' => '', +'orderby_name_asc' => '', +'orderby_name_desc' => '', +'orderby_unsorted' => '', 'order_by_sequence_off' => 'Pořadí podle řazení je v nastavení vypnuto. Chcete-li mít tento parametr vliv, musíte jej znovu zapnout.', 'original_filename' => 'Originální název souboru', 'overall_indexing_progress' => 'Celkový průběh indexování', @@ -1009,6 +1050,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,7 +1064,10 @@ 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_invalid_hash' => '', +'password_forgotten_invalid_hash_title' => '', '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.', 'password_forgotten_title' => 'Heslo odesláno', @@ -1075,6 +1120,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 +1129,12 @@ 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_body_html' => '', +'receipt_submit_email_subject' => '', 'receipt_summary' => 'Souhrn přijetí', 'receipt_update_failed' => 'Potvrzení že přijetí se nezdařilo', 'recent_uploads' => 'Naposledy nahráno', @@ -1094,6 +1144,7 @@ URL: [url]', 'reception_rejected' => 'Přijetí odmítnuto', 'recipients' => 'Příjemci', 'recipient_already_removed' => '', +'record_type' => '', 'redraw' => 'Překreslit', 'refresh' => 'Obnovit', 'rejected' => 'Odmítnuto', @@ -1104,6 +1155,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 +1167,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 +1176,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 +1186,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 +1200,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 +1221,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 +1233,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 +1244,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 +1269,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 +1287,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 +1330,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', @@ -1323,6 +1386,7 @@ URL: [url]', 'select_mimetype' => '', 'select_one' => 'Vybrat jeden', 'select_owner' => '', +'select_record_type' => '', 'select_status' => '', 'select_user' => 'Vybrat uživatele', 'select_users' => 'Kliknutím vybrat uživatele', @@ -1421,6 +1485,8 @@ Jméno: [username] 'settings_defaultDocPosition_desc' => 'Toto je výchozí pozice ve složce při vytváření dokumentu.', 'settings_defaultDocPosition_val_end' => 'konec', 'settings_defaultDocPosition_val_start' => 'začátek', +'settings_defaultFolderPosition' => '', +'settings_defaultFolderPosition_desc' => '', 'settings_defaultSearchMethod' => 'Výchozí metoda vyhledávání', 'settings_defaultSearchMethod_desc' => 'Výchozí metoda vyhledávání, když je vyhledávací formulář spuštěn v hlavním menu.', 'settings_defaultSearchMethod_valdatabase' => 'databáze', @@ -1463,6 +1529,12 @@ Jméno: [username] 'settings_enableDuplicateSubFolderNames_desc' => '', 'settings_enableEmail' => 'Zapnout E-mail', 'settings_enableEmail_desc' => 'Zapne / Vypne automatická e-mailová upozornění', +'settings_enableExtensionDownload' => '', +'settings_enableExtensionDownload_desc' => '', +'settings_enableExtensionImport' => '', +'settings_enableExtensionImportFromRepository' => '', +'settings_enableExtensionImportFromRepository_desc' => '', +'settings_enableExtensionImport_desc' => '', 'settings_enableFilterReceipt' => 'Filtrování vlastníka, recenzenta, ... ze seznamu přijetí', 'settings_enableFilterReceipt_desc' => 'Povolit, chcete-li filtrovat některé příjemce ze seznamu příjemců, pokud jsou vybráni členové skupiny.', 'settings_enableFolderTree' => 'Povolit strom složek', @@ -1541,6 +1613,7 @@ Jméno: [username] 'settings_expandFolderTree_val0' => 'začít se skrytým stromem', 'settings_expandFolderTree_val1' => 'začít se zobrazeným stromem a rozbalenou první položkou', 'settings_expandFolderTree_val2' => 'začít s plně rozbaleným stromem', +'settings_ExtensionMgr' => '', 'settings_Extensions' => 'Rozšíření', 'settings_extraPath' => 'Extra PHP include Path', 'settings_extraPath_desc' => 'Cesta pro další software. To je adresář obsahující např. "adodb" adresář nebo další "pear" balíčky.', @@ -1604,6 +1677,8 @@ Jméno: [username] 'settings_more_settings' => 'Konfigurovat další nastavení. Výchozí přihlášení: admin / admin', 'settings_noDocumentFormFields' => 'Nezobrazovat tato pole', 'settings_noDocumentFormFields_desc' => '', +'settings_noFolderFormFields' => '', +'settings_noFolderFormFields_desc' => '', 'settings_notfound' => 'Nenalezeno', 'settings_Notification' => 'Nastavení upozornění', 'settings_notwritable' => 'Konfigurace nemůže být uložena, protože se do konfiguračního souboru nedá zapsat.', @@ -1763,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' => '', @@ -1785,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' => '', @@ -1807,6 +1886,7 @@ Jméno: [username] 'splash_inherit_access' => 'Přístupové právo bude zděděno', 'splash_invalid_folder_id' => 'Neplatné ID složky', 'splash_invalid_searchterm' => 'Neplatný vyhledávací dotaz', +'splash_invalid_search_service' => '', 'splash_link_document' => '', 'splash_moved_clipboard' => 'Schránka přenesena do aktuální složky', 'splash_move_document' => 'Dokument přesunut', @@ -1816,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', @@ -1964,6 +2046,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', @@ -2011,6 +2094,7 @@ URL: [url]', 'uploaded_by' => 'Nahrál', 'uploading_failed' => 'Nahrání selhalo. Prosím, kontaktujte správce.', 'uploading_maxsize' => 'Nahrávaný soubor je větší než maximální velikost pro upload.', +'uploading_postmaxsize' => '', 'uploading_zerosize' => 'Nahrávání prázdného souboru. Nahrání zrušeno.', 'used_discspace' => 'Použité místo na disku', 'user' => 'Uživatel', @@ -2038,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] @@ -2045,6 +2132,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í', @@ -2073,6 +2161,7 @@ URL: [url]', 'workflow_initstate' => 'Počáteční stav', 'workflow_in_use' => 'Toto workflow je v současné době používáno v dokumentech.', 'workflow_layoutdata_saved' => 'Data rozvržení pracovního postupu uložena', +'workflow_log' => '', 'workflow_management' => 'Správa workflow', 'workflow_name' => 'Název', 'workflow_no_doc_rejected_state' => 'Dokument nebude odmítnut ve stavu workflow!', diff --git a/languages/de_DE/lang.inc b/languages/de_DE/lang.inc index 1cc21a2c0..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 (2960), dgrutsch (22) +// Translators: Admin (3102), 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,26 +119,43 @@ 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', 'approval_log' => 'Freigabeprotokoll', 'approval_request_email' => 'Aufforderung zur Freigabe', 'approval_request_email_body' => 'Aufforderung zur Freigabe + Dokument: [name] Version: [version] Elternordner: [folder_path] Benutzer: [username] URL: [url]', +'approval_request_email_body_html' => '

Aufforderung zur Freigabe

+ +

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

', 'approval_request_email_subject' => '[sitename]: [name] - Aufforderung zur Freigabe', 'approval_status' => 'Freigabestatus', 'approval_submit_email' => '', 'approval_submit_email_body' => 'Freigabe erteilt + Dokument: [name] Version: [version] Elternordner: [folder_path] @@ -139,6 +163,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', @@ -162,6 +195,7 @@ URL: [url]', 'attrdefgrp_show_searchlist' => 'Suchergebnis', 'attrdef_exists' => 'Attributdefinition existiert bereits', 'attrdef_info' => 'Information', +'attrdef_invalid_regex' => 'Fehlerhafter regulärer Ausdruck', 'attrdef_in_use' => 'Definition des Attributs noch in Gebrauch', 'attrdef_management' => 'Attributdefinitions-Management', 'attrdef_maxvalues' => 'Max. Anzahl Werte', @@ -192,6 +226,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 +235,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', @@ -248,7 +293,7 @@ URL: [url]', 'categories_loading' => 'Bitte warten, bis die Liste der Kategorien geladen ist …', 'category' => 'Kategorie', 'category_exists' => 'Kategorie existiert bereits.', -'category_filter' => 'Nur Kategorien', +'category_filter' => 'Kategorien', 'category_info' => 'Information', 'category_in_use' => 'Diese Kategorie wird zur Zeit von Dokumenten verwendet.', 'category_noname' => 'Kein Kategoriename eingetragen.', @@ -325,7 +370,7 @@ URL: [url]', 'confirm_rm_user' => 'Möchten Sie wirklich den Benutzer "[username]" löschen?
Beachten Sie, dass diese Operation nicht rückgängig gemacht werden kann.', 'confirm_rm_user_from_processes' => 'Möchten Sie wirklich den Benutzer "[username]" aus allen Prozessen löschen?
Beachten Sie, dass dies möglicherweise in der Freigabe von Dokumenten resultiert, wenn der Benutzer der einzige oder letzte Prüfer ist.', 'confirm_rm_version' => 'Wollen Sie die Version [version] des Dokumentes "[documentname]" wirklich löschen?
Achtung: Dieser Vorgang kann nicht rückgängig gemacht werden.', -'confirm_transfer_link_document' => 'Möchten Sie das Dokument verlinken oder dessen Inhalt auf das Zieldokument als neue Version übertragen. Der Inhalt kann nur übertragen werden, wenn das Ursprungsdokument lediglich eine Version hat. Das Ursprungsdokument wird danach gelöscht.', +'confirm_transfer_link_document' => 'Möchten Sie das Dokument verlinken oder dessen Inhalt auf das Zieldokument als neue Version übertragen. Der Inhalt kann nur übertragen werden, wenn das Ursprungsdokument genau eine Version hat. Das Ursprungsdokument wird danach gelöscht.', 'confirm_transfer_objects' => 'Möchten Sie wirklich die Dokumente, Ordner, etc. des Benutzer "[username]" übertragen?
Beachten Sie, dass diese Operation nicht rückgängig gemacht werden kann.', 'confirm_update_transmittalitem' => 'Aktualisierung bestätigen', 'content' => 'Inhalt', @@ -391,6 +436,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 +444,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 +500,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 +575,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', @@ -491,6 +604,8 @@ URL: [url]', 'download_header_review_state' => 'Prüfstatus', 'download_header_state' => 'Status', 'download_links' => 'Download Links', +'download_link_email_body' => '', +'download_link_email_subject' => '', 'do_no_transfer_to_user' => 'Prozesse nicht auf anderen Benutzer übertragen', 'do_object_repair' => 'Repariere alle Ordner und Dokumente.', 'do_object_setchecksum' => 'Setze Check-Summe', @@ -596,10 +711,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', @@ -611,9 +733,11 @@ 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', +'extension_mgr_upload_disabled' => 'Der Upload neuer Erweiterungen ist nicht möglich, weil dies in den Einstellungen ausgeschaltet ist.', 'extension_missing_name' => 'Kein Erweiterungsname übergeben', 'extension_toggle_error' => 'Konnte Erweiterung nicht aus/einschalten', 'extension_version_list' => 'Versionen', @@ -632,6 +756,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 +764,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 +799,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' => '', @@ -718,6 +883,7 @@ URL: [url]', 'hu_HU' => 'Ungarisch', 'id' => 'ID', 'identical_version' => 'Neue Version ist identisch zu aktueller Version.', +'id_ID' => 'Indonesisch', 'import' => 'Importiere', 'importfs' => 'Importiere aus Dateisystem', 'import_extension' => 'Erweiterung importieren', @@ -910,29 +1076,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 +1131,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', @@ -966,9 +1167,11 @@ URL: [url]', 'no_current_version' => 'Sie verwenden eine ältere Version als die zur Zeit verfügbare Version [latestversion].', 'no_default_keywords' => 'Keine Vorlagen vorhanden', 'no_docs_checked_out' => 'Keine Dokumente ausgecheckt', +'no_docs_draft' => '', 'no_docs_expired' => 'Keine abgelaufenen Dokumente', 'no_docs_locked' => 'Keine Dokumente gesperrt.', 'no_docs_needs_correction' => 'Keine Dokumente, die korrigiert werden müssen', +'no_docs_obsolete' => '', 'no_docs_rejected' => 'Keine Dokumente abgelehnt.', 'no_docs_to_approve' => 'Es gibt zur Zeit keine Dokumente, die eine Freigabe erfordern.', 'no_docs_to_look_at' => 'Keine Dokumente, nach denen geschaut werden müsste.', @@ -989,6 +1192,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', @@ -998,18 +1202,35 @@ URL: [url]', 'old' => 'Alt', 'only_jpg_user_images' => 'Es sind nur JPG-Bilder erlaubt', 'operation_disallowed' => 'Operation nicht erlaubt', +'orderby' => 'Sortiert nach', +'orderby_date_asc' => 'Nach Datum (aufsteigend)', +'orderby_date_desc' => 'Nach Datum (absteigend)', +'orderby_id_asc' => 'Nach Id (aufsteigend)', +'orderby_id_desc' => 'Nach Id (absteigend)', +'orderby_name_asc' => 'Nach Name (aufsteigend)', +'orderby_name_desc' => 'Nach Name (absteigend)', +'orderby_unsorted' => 'Unsortiert', 'order_by_sequence_off' => 'Die Sortierung nach Folge ist in den Einstellungen ausgeschaltet. Wenn dieser Parameter wirksam sein soll, muss sie wieder eingeschaltet werden.', 'original_filename' => 'Original filename', 'overall_indexing_progress' => 'Gesamtfortschritt bei der Indizierung', '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,8 +1247,19 @@ 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_invalid_hash' => 'Ungültiger Hash-Wert', +'password_forgotten_invalid_hash_title' => 'Ungültiger Hash-Wert', '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', 'password_forgotten_title' => 'Passwort gesendet', @@ -1073,23 +1305,59 @@ 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_body_html' => '

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', @@ -1099,6 +1367,7 @@ URL: [url]', 'reception_rejected' => 'Empfang abgelehnt', 'recipients' => 'Empfänger', 'recipient_already_removed' => '', +'record_type' => 'Typ', 'redraw' => 'Neu zeichnen', 'refresh' => 'Aktualisieren', 'rejected' => 'abgelehnt', @@ -1106,20 +1375,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 +1411,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 +1458,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 +1482,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 +1526,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 +1554,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 +1578,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 +1594,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 +1644,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 +1652,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', @@ -1341,6 +1716,7 @@ URL: [url]', 'select_mimetype' => 'Klicken zur Auswahl eines Mimetypes', 'select_one' => 'Bitte wählen', 'select_owner' => 'Klicken zur Auswahl eines Besitzers', +'select_record_type' => 'Typ auswählen', 'select_status' => 'Klicken zur Auswaohl des Dokumentstatus', 'select_user' => 'Benutzer auswählen', 'select_users' => 'Klicken zur Auswahl eines Benutzers', @@ -1441,6 +1817,8 @@ Sollten Sie kein Passwort bekommen haben, dann nutzen Sie bitte die Passwort-Ver 'settings_defaultDocPosition_desc' => 'Dies ist die voreingestellte Position eines Dokuments innerhalb eines Ordners, wenn dieses angelegt wird.', 'settings_defaultDocPosition_val_end' => 'Ende', 'settings_defaultDocPosition_val_start' => 'Anfang', +'settings_defaultFolderPosition' => 'Position eines Ordners beim Anlegen', +'settings_defaultFolderPosition_desc' => 'Dies ist die voreingestellte Position eines Ordners innerhalb eines Ordners, wenn dieser neu angelegt wird.', 'settings_defaultSearchMethod' => 'Voreingestellte Suchmethode', 'settings_defaultSearchMethod_desc' => 'Voreingestellte Suchmethode, wenn über das Suchfeld in der Menüleiste gesucht wird.', 'settings_defaultSearchMethod_valdatabase' => 'Datenbank', @@ -1483,6 +1861,12 @@ Sollten Sie kein Passwort bekommen haben, dann nutzen Sie bitte die Passwort-Ver 'settings_enableDuplicateSubFolderNames_desc' => 'Erlaube doppelte Namen von Unterordnern in einem Ordner.', 'settings_enableEmail' => 'E-Mail-Benachrichtigung aktivieren', 'settings_enableEmail_desc' => 'Automatische E-Mail-Benachrichtigung ein-/ausschalten', +'settings_enableExtensionDownload' => 'Erlaube das Herunterladen von Erweiterungen', +'settings_enableExtensionDownload_desc' => 'Anwählen, um den Download einer Extension im Extension-Manager zu erlauben.', +'settings_enableExtensionImport' => 'Erlaube Import von Erweiterungen', +'settings_enableExtensionImportFromRepository' => 'Erlaube Import von Erweiterung aus dem Repository', +'settings_enableExtensionImportFromRepository_desc' => 'Anwählen, um den Import einer Erweiterung aus dem Repositorium zu erlauben.', +'settings_enableExtensionImport_desc' => 'Wenn dies gesetzt ist, können Erweiterung durch Hochladen im Erweiterungs-Manager importiert werden.', 'settings_enableFilterReceipt' => 'Besitzer, Prüfer, ... aus Empfängerliste filtern', 'settings_enableFilterReceipt_desc' => 'Anwählen, um einige Empfänger aus der Liste zu entfernen, wenn diese als Mitglieder einer Gruppe eingetragen werden.', 'settings_enableFolderTree' => 'Verzeichnisbaum einschalten', @@ -1561,6 +1945,7 @@ Sollten Sie kein Passwort bekommen haben, dann nutzen Sie bitte die Passwort-Ver 'settings_expandFolderTree_val0' => 'versteckt', 'settings_expandFolderTree_val1' => 'sichtbar und erste Ebene ausgeklappt', 'settings_expandFolderTree_val2' => 'sichtbar und komplett ausgeklappt', +'settings_ExtensionMgr' => 'Erweiterungs-Manager-Einstellungen', 'settings_Extensions' => 'Erweiterungen', 'settings_extraPath' => 'Extra PHP Include-Pfad', 'settings_extraPath_desc' => 'Pfad für zusätzliche Software. Dies ist das Verzeichnis, welches die zusätzlichen PEAR-Pakete beinhaltet.', @@ -1622,8 +2007,10 @@ Sollten Sie kein Passwort bekommen haben, dann nutzen Sie bitte die Passwort-Ver 'settings_maxUploadSize' => 'Maximale Größe hochzuladener Dateien', 'settings_maxUploadSize_desc' => 'Dies ist die maximale Größe einer hochzuladenen Datei. Es begrenzt sowohl Dokumentenversionen als auch Anhänge.', 'settings_more_settings' => 'Weitere Einstellungen. Login mit admin/admin', -'settings_noDocumentFormFields' => 'Diese Felder nicht zeigen', +'settings_noDocumentFormFields' => 'Diese Felder nicht zeigen (Dokumente)', 'settings_noDocumentFormFields_desc' => 'Diese Felder werden bei der Neuanlage und beim Bearbeiten eines Dokuments nicht angezeigt. Bestehende Werte werden beibehalten.', +'settings_noFolderFormFields' => 'Diese Felder nicht anzeigen (Ordner)', +'settings_noFolderFormFields_desc' => 'Diese Felder werden bei der Neuanlage und beim Bearbeiten eines Ordners nicht angezeigt. Bestehende Werte werden beibehalten.', 'settings_notfound' => 'Nicht gefunden', 'settings_Notification' => 'Benachrichtigungen-Einstellungen', 'settings_notwritable' => 'Die Konfiguration kann nicht gespeichert werden, weil die Konfigurationsdatei nicht schreibbar ist.', @@ -1783,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', @@ -1805,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', @@ -1827,6 +2218,7 @@ Sollten Sie kein Passwort bekommen haben, dann nutzen Sie bitte die Passwort-Ver 'splash_inherit_access' => 'Zugriffsrechte werden geerbt', 'splash_invalid_folder_id' => 'Ungültige Ordner-ID', 'splash_invalid_searchterm' => 'Ungültiger Suchbegriff', +'splash_invalid_search_service' => 'Ungültiger Suchdienst', 'splash_link_document' => 'Link hinzugefügt', 'splash_moved_clipboard' => 'Inhalt der Zwischenablage in aktuellen Ordner verschoben', 'splash_move_document' => 'Dokument verschoben', @@ -1836,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', @@ -1974,16 +2368,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', @@ -2031,6 +2437,7 @@ URL: [url]', 'uploaded_by' => 'Hochgeladen durch', 'uploading_failed' => 'Das Hochladen einer Datei ist fehlgeschlagen. Bitte überprüfen Sie die maximale Dateigröße für Uploads.', 'uploading_maxsize' => 'Die Datei überschreitet die maximale Dateigröße für Uploads.', +'uploading_postmaxsize' => 'Der Post-Request überschreitet die maximal Größe.', 'uploading_zerosize' => 'Versuch eine leere Datei hochzuladen. Vorgang wird abgebrochen.', 'used_discspace' => 'Verbrauchter Speicherplatz', 'user' => 'Benutzer', @@ -2058,13 +2465,40 @@ 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 + 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', @@ -2093,6 +2527,7 @@ URL: [url]', 'workflow_initstate' => 'Initialer Status', 'workflow_in_use' => 'Dieser Workflow wird zur Zeit noch von einem Dokument verwendet.', 'workflow_layoutdata_saved' => 'Layout-Daten gespeichert', +'workflow_log' => 'Workflow Protokoll', 'workflow_management' => 'Workflow-Management', 'workflow_name' => 'Name', 'workflow_no_doc_rejected_state' => 'Das Dokument wird in keinem Workflow-Status abgelehnt!', diff --git a/languages/el_GR/lang.inc b/languages/el_GR/lang.inc index d0c2c24f1..b40c5fd3f 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,16 +109,19 @@ $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' => '', 'approval_log' => '', 'approval_request_email' => '', 'approval_request_email_body' => '', +'approval_request_email_body_html' => '', 'approval_request_email_subject' => '', 'approval_status' => '', 'approval_submit_email' => '', 'approval_submit_email_body' => '', +'approval_submit_email_body_html' => '', 'approval_submit_email_subject' => '', 'approval_summary' => 'Σύνολο Εγκρίσεων', 'approval_update_failed' => '', @@ -141,6 +145,7 @@ $text = array( 'attrdefgrp_show_searchlist' => '', 'attrdef_exists' => '', 'attrdef_info' => '', +'attrdef_invalid_regex' => '', 'attrdef_in_use' => '', 'attrdef_management' => '', 'attrdef_maxvalues' => 'Μέγιστος αριθμός τιμών', @@ -171,6 +176,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 +368,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 +394,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' => 'Δεν λήγει', @@ -418,6 +432,8 @@ $text = array( 'download_header_review_state' => '', 'download_header_state' => '', 'download_links' => '', +'download_link_email_body' => '', +'download_link_email_subject' => '', 'do_no_transfer_to_user' => '', 'do_object_repair' => '', 'do_object_setchecksum' => '', @@ -523,6 +539,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' => '', @@ -534,9 +551,11 @@ $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' => '', +'extension_mgr_upload_disabled' => '', 'extension_missing_name' => '', 'extension_toggle_error' => '', 'extension_version_list' => '', @@ -555,20 +574,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' => '', @@ -614,6 +638,7 @@ $text = array( 'hu_HU' => 'Ουγγρικά', 'id' => 'ID', 'identical_version' => '', +'id_ID' => '', 'import' => '', 'importfs' => '', 'import_extension' => '', @@ -812,9 +837,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 +852,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 +862,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' => 'Νοέμβριος', @@ -850,9 +880,11 @@ URL: [url]', 'no_current_version' => '', 'no_default_keywords' => '', 'no_docs_checked_out' => '', +'no_docs_draft' => '', 'no_docs_expired' => '', 'no_docs_locked' => '', 'no_docs_needs_correction' => '', +'no_docs_obsolete' => '', 'no_docs_rejected' => '', 'no_docs_to_approve' => '', 'no_docs_to_look_at' => '', @@ -873,6 +905,7 @@ URL: [url]', 'no_user_image' => '', 'no_version_check' => '', 'no_version_modification' => '', +'no_workflows' => '', 'no_workflow_available' => '', 'objectcheck' => 'Αναζήτηση σε αρχεία και φακέλους', 'object_check_critical' => '', @@ -882,12 +915,21 @@ URL: [url]', 'old' => 'Παλιό', 'only_jpg_user_images' => '', 'operation_disallowed' => '', +'orderby' => '', +'orderby_date_asc' => '', +'orderby_date_desc' => '', +'orderby_id_asc' => '', +'orderby_id_desc' => '', +'orderby_name_asc' => '', +'orderby_name_desc' => '', +'orderby_unsorted' => '', 'order_by_sequence_off' => '', 'original_filename' => '', 'overall_indexing_progress' => 'Συνολική πρόοδος δημιουργίας δεικτών', 'owner' => 'Ιδιοκτήτης', 'ownership_changed_email' => '', 'ownership_changed_email_body' => '', +'ownership_changed_email_body_html' => '', 'ownership_changed_email_subject' => '', 'password' => '', 'password_already_used' => '', @@ -897,7 +939,10 @@ URL: [url]', 'password_expires_in_days' => '', 'password_forgotten' => '', 'password_forgotten_email_body' => '', +'password_forgotten_email_body_html' => '', 'password_forgotten_email_subject' => '', +'password_forgotten_invalid_hash' => '', +'password_forgotten_invalid_hash_title' => '', 'password_forgotten_send_hash' => '', 'password_forgotten_text' => '', 'password_forgotten_title' => '', @@ -944,11 +989,16 @@ 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_body_html' => '', +'receipt_submit_email_subject' => '', 'receipt_summary' => '', 'receipt_update_failed' => '', 'recent_uploads' => 'Πρόσφατες μεταφορτώσεις', @@ -958,6 +1008,7 @@ URL: [url]', 'reception_rejected' => '', 'recipients' => '', 'recipient_already_removed' => '', +'record_type' => '', 'redraw' => '', 'refresh' => '', 'rejected' => '', @@ -965,11 +1016,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 +1031,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 +1057,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 +1089,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 +1101,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 +1137,7 @@ URL: [url]', 'ro_RO' => 'Ρουμάνικα', 'run_subworkflow' => '', 'run_subworkflow_email_body' => '', +'run_subworkflow_email_body_html' => '', 'run_subworkflow_email_subject' => '', 'ru_RU' => 'Russian/Ρωσσικά', 'saturday' => 'Σαββάτο', @@ -1130,6 +1193,7 @@ URL: [url]', 'select_mimetype' => '', 'select_one' => 'Επιλογή', 'select_owner' => '', +'select_record_type' => '', 'select_status' => '', 'select_user' => 'Επιλογή χρήστη', 'select_users' => 'Κάντε κλικ για να επιλέξετε χρήστες', @@ -1223,6 +1287,8 @@ URL: [url]', 'settings_defaultDocPosition_desc' => '', 'settings_defaultDocPosition_val_end' => '', 'settings_defaultDocPosition_val_start' => '', +'settings_defaultFolderPosition' => '', +'settings_defaultFolderPosition_desc' => '', 'settings_defaultSearchMethod' => '', 'settings_defaultSearchMethod_desc' => '', 'settings_defaultSearchMethod_valdatabase' => '', @@ -1265,6 +1331,12 @@ URL: [url]', 'settings_enableDuplicateSubFolderNames_desc' => '', 'settings_enableEmail' => '', 'settings_enableEmail_desc' => '', +'settings_enableExtensionDownload' => '', +'settings_enableExtensionDownload_desc' => '', +'settings_enableExtensionImport' => '', +'settings_enableExtensionImportFromRepository' => '', +'settings_enableExtensionImportFromRepository_desc' => '', +'settings_enableExtensionImport_desc' => '', 'settings_enableFilterReceipt' => '', 'settings_enableFilterReceipt_desc' => '', 'settings_enableFolderTree' => '', @@ -1343,6 +1415,7 @@ URL: [url]', 'settings_expandFolderTree_val0' => '', 'settings_expandFolderTree_val1' => '', 'settings_expandFolderTree_val2' => '', +'settings_ExtensionMgr' => '', 'settings_Extensions' => '', 'settings_extraPath' => '', 'settings_extraPath_desc' => '', @@ -1406,6 +1479,8 @@ URL: [url]', 'settings_more_settings' => '', 'settings_noDocumentFormFields' => '', 'settings_noDocumentFormFields_desc' => '', +'settings_noFolderFormFields' => '', +'settings_noFolderFormFields_desc' => '', 'settings_notfound' => '', 'settings_Notification' => '', 'settings_notwritable' => '', @@ -1565,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' => '', @@ -1587,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' => '', @@ -1609,6 +1688,7 @@ URL: [url]', 'splash_inherit_access' => '', 'splash_invalid_folder_id' => '', 'splash_invalid_searchterm' => '', +'splash_invalid_search_service' => '', 'splash_link_document' => '', 'splash_moved_clipboard' => '', 'splash_move_document' => '', @@ -1618,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' => '', @@ -1757,6 +1839,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' => '', @@ -1804,6 +1887,7 @@ URL: [url]', 'uploaded_by' => 'ανέβηκε από', 'uploading_failed' => '', 'uploading_maxsize' => '', +'uploading_postmaxsize' => '', 'uploading_zerosize' => '', 'used_discspace' => 'Χώρος', 'user' => 'Χρήστης', @@ -1831,8 +1915,12 @@ 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' => '', 'version_deleted_email_subject' => '', 'version_info' => 'Πληροφορίες έκδοσης', 'view' => '', @@ -1861,6 +1949,7 @@ URL: [url]', 'workflow_initstate' => '', 'workflow_in_use' => 'This workflow is currently used by documents.', 'workflow_layoutdata_saved' => '', +'workflow_log' => '', 'workflow_management' => 'Διαχείριση Ροών', 'workflow_name' => 'Όνομα', 'workflow_no_doc_rejected_state' => '', diff --git a/languages/en_GB/lang.inc b/languages/en_GB/lang.inc index 471199d5f..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 (2061), archonwang (3), dgrutsch (9), netixw (14) +// Translators: Admin (2197), 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,26 +119,43 @@ 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', 'approval_log' => 'Approval log', 'approval_request_email' => 'Approval request', 'approval_request_email_body' => 'Approval request + Document: [name] Version: [version] Parent folder: [folder_path] User: [username] URL: [url]', +'approval_request_email_body_html' => '

Approval request

+ +

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

', 'approval_request_email_subject' => '[sitename]: [name] - Approval request', 'approval_status' => 'Approval Status', 'approval_submit_email' => '', 'approval_submit_email_body' => 'Approval of document + Document: [name] Version: [version] Parent folder: [folder_path] @@ -139,6 +163,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.', @@ -162,6 +195,7 @@ URL: [url]', 'attrdefgrp_show_searchlist' => 'Search result', 'attrdef_exists' => 'Attribute definition already exists', 'attrdef_info' => 'Information', +'attrdef_invalid_regex' => 'Invalid regular expression', 'attrdef_in_use' => 'Attribute definition still in use', 'attrdef_management' => 'Attribute definition management', 'attrdef_maxvalues' => 'Max. number of values', @@ -192,6 +226,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 +235,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', @@ -248,7 +293,7 @@ URL: [url]', 'categories_loading' => 'Please wait, until the list of categories is loaded …', 'category' => 'Category', 'category_exists' => 'Category already exists.', -'category_filter' => 'Only categories', +'category_filter' => 'Categories', 'category_info' => 'Information', 'category_in_use' => 'This category is currently used by documents.', 'category_noname' => 'No category name given.', @@ -325,7 +370,7 @@ URL: [url]', 'confirm_rm_user' => 'Do you really want to remove the user "[username]"?
Be careful: This action cannot be undone.', 'confirm_rm_user_from_processes' => 'Do you really want to remove the user "[username]" from all processes?
Be careful: This action can lead to the release of documents if the user was the only or last approver.', 'confirm_rm_version' => 'Do you really want to remove version [version] of document "[documentname]"?
Be careful: This action cannot be undone.', -'confirm_transfer_link_document' => 'Select if you like to link the dragged document or transfer its content to the target document as a new version. Only documents with one version can be transferred. The dragged document will be removed afterwards.', +'confirm_transfer_link_document' => 'Select if you would like to link the dragged document or transfer its content to the target document as a new version. Only documents with excactly one version can be transferred. The dragged document will be removed afterwards.', 'confirm_transfer_objects' => 'Do you really want to transfer the documents, folders, etc. of the user "[username]"?
Be careful: This action cannot be undone.', 'confirm_update_transmittalitem' => 'Confirm update', 'content' => 'Content', @@ -391,6 +436,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 +444,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 +499,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 +575,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', @@ -491,6 +604,8 @@ URL: [url]', 'download_header_review_state' => 'Review state', 'download_header_state' => 'State', 'download_links' => 'Download links', +'download_link_email_body' => '', +'download_link_email_subject' => '', 'do_no_transfer_to_user' => 'Do not transfer processes to user', 'do_object_repair' => 'Repair all folders and documents.', 'do_object_setchecksum' => 'Set checksum', @@ -596,10 +711,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', @@ -611,9 +733,11 @@ 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', +'extension_mgr_upload_disabled' => 'Uploading new extensions is not possible because it is disabled in the configuraton.', 'extension_missing_name' => 'No extension name given', 'extension_toggle_error' => 'Could not toggle extension', 'extension_version_list' => 'Versions', @@ -632,6 +756,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 +764,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' => '', @@ -718,6 +884,7 @@ URL: [url]', 'hu_HU' => 'Hungarian', 'id' => 'ID', 'identical_version' => 'New version is identical to current version.', +'id_ID' => 'Indonesian', 'import' => 'Import', 'importfs' => 'Import from Filesystem', 'import_extension' => 'Import extension', @@ -910,30 +1077,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 +1134,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 +1152,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', @@ -967,9 +1170,11 @@ URL: [url]', 'no_current_version' => 'You are running an old version of SeedDMS. The latest available version is [latestversion].', 'no_default_keywords' => 'No keywords available', 'no_docs_checked_out' => 'No documents checked out', +'no_docs_draft' => '', 'no_docs_expired' => 'No expired documents', 'no_docs_locked' => 'No documents locked.', 'no_docs_needs_correction' => 'No documents, that need to be corrected', +'no_docs_obsolete' => '', 'no_docs_rejected' => 'No documents rejected.', 'no_docs_to_approve' => 'There are currently no documents that require approval.', 'no_docs_to_look_at' => 'No documents that need attention.', @@ -990,6 +1195,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', @@ -999,18 +1205,35 @@ URL: [url]', 'old' => 'Old', 'only_jpg_user_images' => 'Only .jpg-images may be used as user-images', 'operation_disallowed' => 'Operation not permitted', +'orderby' => 'Order by', +'orderby_date_asc' => 'by date (ascending)', +'orderby_date_desc' => 'by date (descending)', +'orderby_id_asc' => 'by id (ascending)', +'orderby_id_desc' => 'by id (descending)', +'orderby_name_asc' => 'by name (ascending)', +'orderby_name_desc' => 'by name (descending)', +'orderby_unsorted' => 'unsorted', 'order_by_sequence_off' => 'Ordering by sequence is turned off in the settings. If you want this parameter to have effect, you will have to turn it back on.', 'original_filename' => 'Original filename', '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,7 +1251,18 @@ 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_invalid_hash' => 'Invalid hash', +'password_forgotten_invalid_hash_title' => 'Invalid hash', '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.', 'password_forgotten_title' => 'Password sent', @@ -1074,23 +1308,59 @@ 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_body_html' => '

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', @@ -1100,6 +1370,7 @@ URL: [url]', 'reception_rejected' => 'Reception rejected', 'recipients' => 'Recipients', 'recipient_already_removed' => 'Recipient has already been removed or aknowledged recepiton.', +'record_type' => 'Type', 'redraw' => 'Redraw', 'refresh' => 'Refresh', 'rejected' => 'Rejected', @@ -1107,20 +1378,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 +1414,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 +1461,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 +1485,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 +1529,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 +1557,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 +1597,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 +1647,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 +1655,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', @@ -1335,6 +1719,7 @@ URL: [url]', 'select_mimetype' => 'Click to select mimetype', 'select_one' => 'Select one', 'select_owner' => 'Click to select owner', +'select_record_type' => 'Choose type', 'select_status' => 'Click to select document status', 'select_user' => 'Select user', 'select_users' => 'Click to select users', @@ -1432,9 +1817,11 @@ If you did not receive a password, please use the password forgotten function on 'settings_defaultAccessDocs' => 'Default access for new documents', 'settings_defaultAccessDocs_desc' => 'When a new document is created, this will be the default access right.', 'settings_defaultDocPosition' => 'Position of document when created', -'settings_defaultDocPosition_desc' => 'This is the default position within a folder when a document is created.', +'settings_defaultDocPosition_desc' => 'This is the default position within a folder when a new document is created.', 'settings_defaultDocPosition_val_end' => 'end', 'settings_defaultDocPosition_val_start' => 'start', +'settings_defaultFolderPosition' => 'Position of folder when created', +'settings_defaultFolderPosition_desc' => 'This is the default position within a folder when a new folder is created.', 'settings_defaultSearchMethod' => 'Default search method', 'settings_defaultSearchMethod_desc' => 'Default search method, when a search is started by the search form in the main menu.', 'settings_defaultSearchMethod_valdatabase' => 'database', @@ -1477,6 +1864,12 @@ If you did not receive a password, please use the password forgotten function on 'settings_enableDuplicateSubFolderNames_desc' => 'Allows to have duplicate subfolder names in a folder.', 'settings_enableEmail' => 'Enable E-mail Notification', 'settings_enableEmail_desc' => 'Enable/disable automatic email notification', +'settings_enableExtensionDownload' => 'Allow download of extensions', +'settings_enableExtensionDownload_desc' => 'Enable this to allow downloading extensions in the extension manager.', +'settings_enableExtensionImport' => 'Allow import of extensions', +'settings_enableExtensionImportFromRepository' => 'Allow import of extension from repository', +'settings_enableExtensionImportFromRepository_desc' => 'Enable this if extension may be imported from the repository.', +'settings_enableExtensionImport_desc' => 'If set, extension may be imported by uploading it in the extension manager.', 'settings_enableFilterReceipt' => 'Filter out owner, reviewer, ... from reception list', 'settings_enableFilterReceipt_desc' => 'Enable, in order to filter out some recipients from a reception list if members of a group are selected.', 'settings_enableFolderTree' => 'Enable Folder Tree', @@ -1555,6 +1948,7 @@ If you did not receive a password, please use the password forgotten function on 'settings_expandFolderTree_val0' => 'start with tree hidden', 'settings_expandFolderTree_val1' => 'start with tree shown and first level expanded', 'settings_expandFolderTree_val2' => 'start with tree shown fully expanded', +'settings_ExtensionMgr' => 'Extension manager settings', 'settings_Extensions' => 'Extensions', 'settings_extraPath' => 'Extra PHP include Path', 'settings_extraPath_desc' => 'Path to additional software. This is the directory containing e.g. the adodb directory or additional pear packages', @@ -1616,8 +2010,10 @@ If you did not receive a password, please use the password forgotten function on 'settings_maxUploadSize' => 'Maxium size for uploaded files', 'settings_maxUploadSize_desc' => 'This is the maximum size for uploaded files. It will take affect for document versions and attachments.', 'settings_more_settings' => 'Configure more settings. Default login: admin/admin', -'settings_noDocumentFormFields' => 'Do not show this fields', -'settings_noDocumentFormFields_desc' => 'This fields will not been show when adding or edition a document. Existing values will be kept.', +'settings_noDocumentFormFields' => 'Do not show this fields (documents)', +'settings_noDocumentFormFields_desc' => 'This fields will not be shown when adding or edition a document. Existing values will be kept.', +'settings_noFolderFormFields' => 'Do not show this fields (folder)', +'settings_noFolderFormFields_desc' => 'This fields will not be shown when adding or edition a folder. Existing values will be kept.', 'settings_notfound' => 'Not found', 'settings_Notification' => 'Notification settings', 'settings_notwritable' => 'The configuration cannot be saved because the configuration file is not writable.', @@ -1777,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', @@ -1799,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', @@ -1821,6 +2221,7 @@ If you did not receive a password, please use the password forgotten function on 'splash_inherit_access' => 'Access right will be inherited', 'splash_invalid_folder_id' => 'Invalid folder ID', 'splash_invalid_searchterm' => 'Invalid search term', +'splash_invalid_search_service' => 'Invalid search service', 'splash_link_document' => 'Link added', 'splash_moved_clipboard' => 'Clipboard moved into current folder', 'splash_move_document' => 'Document moved', @@ -1830,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', @@ -1969,6 +2372,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 +2382,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', @@ -2025,6 +2440,7 @@ URL: [url]', 'uploaded_by' => 'Uploaded by', 'uploading_failed' => 'Uploading one of your files failed. Please check your maximum upload file size.', 'uploading_maxsize' => 'The uploaded file exceeds the maximum upload file size.', +'uploading_postmaxsize' => 'The post request exceeds the maximum size.', 'uploading_zerosize' => 'Uploading an empty file. Upload is canceled.', 'used_discspace' => 'Used disk space', 'user' => 'User', @@ -2052,13 +2468,40 @@ 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 + 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', @@ -2087,6 +2530,7 @@ URL: [url]', 'workflow_initstate' => 'Initial state', 'workflow_in_use' => 'This workflow is currently used by documents.', 'workflow_layoutdata_saved' => 'Layout data saved', +'workflow_log' => 'Workflow protocol', 'workflow_management' => 'Workflow management', 'workflow_name' => 'Name', 'workflow_no_doc_rejected_state' => 'The document will not be rejected in a workflow state!', diff --git a/languages/es_ES/lang.inc b/languages/es_ES/lang.inc index cd5c21d22..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 (1316), 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', @@ -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', @@ -123,6 +125,7 @@ Versión: [version] Carpeta principal: [folder_path] Usuario: [username] URL: [url]', +'approval_request_email_body_html' => '', 'approval_request_email_subject' => '[sitename]: [name] - Petición de aprobación', 'approval_status' => 'Estado de aprobación', 'approval_submit_email' => '', @@ -134,6 +137,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.', @@ -157,6 +161,7 @@ URL: [url]', 'attrdefgrp_show_searchlist' => '', 'attrdef_exists' => 'Definición de atributos ya existe', 'attrdef_info' => '', +'attrdef_invalid_regex' => '', 'attrdef_in_use' => 'Definición de atributo en uso', 'attrdef_management' => 'Gestión de definición de atributos', 'attrdef_maxvalues' => 'Núm. máximo de valores', @@ -195,6 +200,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 +392,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 +402,13 @@ Comentario: [new_comment] Carpeta principal: [folder_path] Usuario: [username] URL: [url]', +'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' => '', @@ -404,6 +418,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 +438,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 +448,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 +457,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 +471,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', @@ -472,6 +492,8 @@ URL: [url]', 'download_header_review_state' => '', 'download_header_state' => '', 'download_links' => '', +'download_link_email_body' => '', +'download_link_email_subject' => '', 'do_no_transfer_to_user' => '', 'do_object_repair' => 'Reparar todas las carpetas y documentos.', 'do_object_setchecksum' => 'Set checksum', @@ -485,10 +507,10 @@ URL: [url]', 'dropfolderdir_missing' => '', 'dropfolder_file' => 'Fichero de la carpeta destino', 'dropfolder_folder' => 'Carpeta de la carpeta destino', -'dropfolder_metadata' => '', +'dropfolder_metadata' => 'Metadata de archivos a importar', '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 +603,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' => '', @@ -592,9 +615,11 @@ 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', +'extension_mgr_upload_disabled' => '', 'extension_missing_name' => '', 'extension_toggle_error' => '', 'extension_version_list' => 'Versiones', @@ -613,6 +638,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 +648,13 @@ Comentario: [new_comment] Carpeta principal: [folder_path] Usuario: [username] URL: [url]', +'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', @@ -630,6 +663,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 +673,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 +682,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' => '', @@ -692,6 +728,7 @@ URL: [url]', 'hu_HU' => 'Hungaro', 'id' => 'ID', 'identical_version' => 'La nueva versión es idéntica a la actual.', +'id_ID' => '', 'import' => 'Importar', 'importfs' => '', 'import_extension' => '', @@ -890,6 +927,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 +936,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 +947,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 +961,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 +969,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', @@ -941,9 +983,11 @@ URL: [url]', 'no_current_version' => 'Está utilizando una versión desactualizada de este producto. La última versión disponible es [latestversion].', 'no_default_keywords' => 'No hay palabras clave disponibles', 'no_docs_checked_out' => '', +'no_docs_draft' => '', 'no_docs_expired' => '', 'no_docs_locked' => 'No hay documentos bloqueados.', 'no_docs_needs_correction' => '', +'no_docs_obsolete' => '', 'no_docs_rejected' => '', 'no_docs_to_approve' => 'Actualmente no hay documentos que necesiten aprobación.', 'no_docs_to_look_at' => 'No hay documentos que necesiten atención.', @@ -964,6 +1008,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', @@ -973,6 +1018,14 @@ URL: [url]', 'old' => 'Viejo', 'only_jpg_user_images' => 'Sólo puede usar imágenes .jpg como imágenes de usuario', 'operation_disallowed' => '', +'orderby' => '', +'orderby_date_asc' => '', +'orderby_date_desc' => '', +'orderby_id_asc' => '', +'orderby_id_desc' => '', +'orderby_name_asc' => '', +'orderby_name_desc' => '', +'orderby_unsorted' => '', 'order_by_sequence_off' => 'El orden secuencial está desactivado en la configuración. Si quiere utilizar este parámetro, deberá activarlo.', 'original_filename' => 'Nombre de fichero original', 'overall_indexing_progress' => 'Proceso de indexación global', @@ -985,6 +1038,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,7 +1056,10 @@ 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_invalid_hash' => '', +'password_forgotten_invalid_hash_title' => '', '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á.', 'password_forgotten_title' => 'Envío de contraseña', @@ -1049,11 +1106,16 @@ 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_body_html' => '', +'receipt_submit_email_subject' => '', 'receipt_summary' => 'Resumen de recepción', 'receipt_update_failed' => '', 'recent_uploads' => 'Subidas recientes', @@ -1063,6 +1125,7 @@ Si continua teniendo problemas de acceso, por favor contacte con el administrado 'reception_rejected' => 'Recepción rechazada', 'recipients' => 'Destinatario', 'recipient_already_removed' => '', +'record_type' => '', 'redraw' => '', 'refresh' => 'Actualizar', 'rejected' => 'Rechazado', @@ -1073,6 +1136,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 +1148,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 +1157,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 +1174,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 +1190,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 +1209,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 +1229,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 +1247,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 +1290,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', @@ -1271,6 +1346,7 @@ URL: [url]', 'select_mimetype' => '', 'select_one' => 'Seleccionar uno', 'select_owner' => '', +'select_record_type' => '', 'select_status' => '', 'select_user' => 'Seleccionar Usuario', 'select_users' => 'Haga Click para seleccionar usuarios', @@ -1326,7 +1402,7 @@ URL: [url]', 'settings_checkOutDir_desc' => 'Este es el directorio donde se copia el último contenido de un documento, si el documento ya esta revisado. Si haces accesible este documento para los usuarios, podrán editar el archivo y volverlo a revisar cuando hayan terminado.', 'settings_cmdTimeout' => 'Tiempo limite para comandos externos', 'settings_cmdTimeout_desc' => 'Esta duración definirá cuando debe interrumpirse la ejecución de un comando externo (i.e. para crear el índice de texto completo).', -'settings_conf_field_not_editable' => '', +'settings_conf_field_not_editable' => 'Este valor no es editable', 'settings_contentDir' => 'Carpeta de contenidos', 'settings_contentDir_desc' => 'Donde se almacenan los archivos subidos (es preferible seleccionar una carpeta que no sea accesible a través del servidor web)', 'settings_contentOffsetDir' => 'Carpeta de contenidos de desplazamiento', @@ -1344,9 +1420,9 @@ URL: [url]', 'settings_currentvalue' => 'Valor actual', 'settings_Database' => 'Configuración de Base de datos', 'settings_dateformat' => 'Formato de fecha', -'settings_dateformat_desc' => '', +'settings_dateformat_desc' => 'Este formato de fecha utiliza la sintaxis de la funcion date() de php', 'settings_datetimeformat' => 'Format fecha/hora', -'settings_datetimeformat_desc' => '', +'settings_datetimeformat_desc' => 'Este formato de fecha utiliza la sintaxis de la funcion date() de php', 'settings_dbDatabase' => 'Base de datos', 'settings_dbDatabase_desc' => 'Nombre para su base de datos introducido durante el proceso de instalación. No edite este campo a menos que sea necesario, por ejemplo si la base de datos se traslada.', 'settings_dbDriver' => 'Tipo de Base de datos', @@ -1364,6 +1440,8 @@ URL: [url]', 'settings_defaultDocPosition_desc' => 'Esta es la posición por defecto dentro del folder cuando un documento es creado.', 'settings_defaultDocPosition_val_end' => 'Fin', 'settings_defaultDocPosition_val_start' => 'arranque', +'settings_defaultFolderPosition' => 'Posición de carpeta cuando se crea', +'settings_defaultFolderPosition_desc' => 'Esta es la posición por defecto dentro de una carpeta cuando se crea una nueva carpeta', 'settings_defaultSearchMethod' => 'Método de búsqueda por defecto', 'settings_defaultSearchMethod_desc' => 'Método de búsqueda por defecto, cuando se inicia una búsqueda mediante el formulario en el menú principal', 'settings_defaultSearchMethod_valdatabase' => 'base de datos', @@ -1406,6 +1484,12 @@ URL: [url]', 'settings_enableDuplicateSubFolderNames_desc' => 'Permite tener nombres duplicados de subcarpetas dentro de una carpeta', 'settings_enableEmail' => 'Habilitar E-mail', 'settings_enableEmail_desc' => 'Habilitar/Deshabilitar notificación automática por correo electrónico', +'settings_enableExtensionDownload' => 'Permitir descarga de extensiones', +'settings_enableExtensionDownload_desc' => '', +'settings_enableExtensionImport' => 'Permitir importación de extensiones', +'settings_enableExtensionImportFromRepository' => 'Habilitar importacion de extensiones desde el repositorio', +'settings_enableExtensionImportFromRepository_desc' => 'Habilitar importacion de extensiones desde el repositorio', +'settings_enableExtensionImport_desc' => 'Si se habilita, una extensión puede importarse subiéndola en el manejador de extensiones', 'settings_enableFilterReceipt' => 'Filtrar por propietario, recisor, ... de la lista de recepción.', 'settings_enableFilterReceipt_desc' => 'Habilitar, para filtrar algunos recipientes de la lista de receptores, si los miembros del grupo son seleccionados.', 'settings_enableFolderTree' => 'Habilitar árbol de carpetas', @@ -1444,8 +1528,8 @@ URL: [url]', 'settings_enableReceiptWorkflow_desc' => '', 'settings_enableRecursiveCount' => 'Habilitar cuenta de documento/carpeta recursivo', 'settings_enableRecursiveCount_desc' => 'Si cambia a activado, el número de documentos y carpetas en la carpeta será determinado por la cuenta de todos los objetos recursivos procesados de la carpeta y una vez contados el usuarios tendrá permiso para acceder.', -'settings_enableRemoveRevApp' => '', -'settings_enableRemoveRevApp_desc' => '', +'settings_enableRemoveRevApp' => 'Permitir eliminación de revisiones / aprobaciones existentes', +'settings_enableRemoveRevApp_desc' => 'Marque esto, si los administradores pueden remover una revisión / aprobación. Esto no eliminará la revisión / aprobación de la base de datos, sino que agrega una nueva entrada en el registro de revisiones/ aprobaciones ajustando el estado a su condición inicial', 'settings_enableRevisionOneVoteReject' => 'Rechazado por un revisor', 'settings_enableRevisionOneVoteReject_desc' => 'Si está habilitado, una vez que el primer revisor rechaza el documento, el estado del documento será \'necesita corrección\'. Si se encuentra deshabilitado, el estado del docuento no cambiará hast que todos los revisores hayan concluido su revisión.', 'settings_enableRevisionOnVoteReject' => '', @@ -1484,6 +1568,7 @@ URL: [url]', 'settings_expandFolderTree_val0' => 'Comenzar con el árbol oculto', 'settings_expandFolderTree_val1' => 'comentar con el árbol visible y el primer nivel de expansión', 'settings_expandFolderTree_val2' => 'comentar con el árbol visible y completamente expandido', +'settings_ExtensionMgr' => 'Ajustes del Manejador de extensiones', 'settings_Extensions' => 'Extensiones', 'settings_extraPath' => 'Extra PHP include Ruta', 'settings_extraPath_desc' => 'Ruta para software adicional. Esta es la carpeta que contiene ej. la carpeta adodb o paquetes PEAR adicionales', @@ -1547,6 +1632,8 @@ URL: [url]', 'settings_more_settings' => 'Configure más parámetros. Acceso por defecto: admin/admin', 'settings_noDocumentFormFields' => 'No mostrar estos campos', 'settings_noDocumentFormFields_desc' => 'Estos campos no están siendo mostrados al añadir o editar un documento. Se conservarán los valores existentes.', +'settings_noFolderFormFields' => 'No mostrar estos campos (carpetas)', +'settings_noFolderFormFields_desc' => 'Estos campos NO se mostrarán al añadir o editar una crpeta. Se mantendrán los valores existentes', 'settings_notfound' => 'No encontrado', 'settings_Notification' => 'Parámetros de notificación', 'settings_notwritable' => 'La configuración no se puede guardar porque el fichero de configuración no es escribible.', @@ -1555,8 +1642,8 @@ URL: [url]', 'settings_onePageMode_desc' => 'El modo una página encenderá el código javascript en la página visor de carpetas, el cual actualiza la lista de carpetas/documentos, navegación, etc. Al hacer click en una carpeta o al cambiar el parametro ordenar.', 'settings_overrideMimeType' => 'Anular MimeType', 'settings_overrideMimeType_desc' => 'Permitir que SeedDMS fije el tipo MIME sobreescribiendo el que haya definido el navegador durante el proceso de carga de un archivo.', -'settings_overrideTheme' => '', -'settings_overrideTheme_desc' => '', +'settings_overrideTheme' => 'Sobreescribir Tema', +'settings_overrideTheme_desc' => 'Marque este campo para sobreescribir el tema definido en el perfil del usuario por el de esta configuracion', 'settings_partitionSize' => 'Tamaño de fichero parcial', 'settings_partitionSize_desc' => 'Tamaño de ficheros parciales en bytes, subidos por jumploader. No configurar un valor mayor que el tamaño máximo de subida configurado en el servidor.', 'settings_passwordExpiration' => 'Caducidad de contraseña', @@ -1671,7 +1758,7 @@ URL: [url]', 'settings_updateNotifyTime_desc' => 'Se notificará a los usuarios sobre los cambios en documentos que tengan lugar en los próximos segundos de «Tiempo de notificación de actualización»', 'settings_upgrade_php' => 'Actualice PHP a una versión igual o mayor a 5.6.38', 'settings_useHomeAsRootFolder' => '', -'settings_useHomeAsRootFolder_desc' => '', +'settings_useHomeAsRootFolder_desc' => 'Habilite esto, si la carpeta inicial de usuario (no admin) debe utilizarse como carpeta raíz (experimental)', 'settings_versioningFileName' => 'Archivo de versionado', 'settings_versioningFileName_desc' => 'Nombre de archivo de información de versionado creado por la herramienta de copia de respaldo', 'settings_versiontolow' => 'Versión antigua', @@ -1706,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' => '', @@ -1728,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' => '', @@ -1750,6 +1841,7 @@ URL: [url]', 'splash_inherit_access' => '', 'splash_invalid_folder_id' => 'ID de carpeta inválido', 'splash_invalid_searchterm' => 'Término de búsqueda inválido', +'splash_invalid_search_service' => '', 'splash_link_document' => '', 'splash_moved_clipboard' => 'Portapapeles movido a la carpeta actual', 'splash_move_document' => '', @@ -1759,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' => '', @@ -1907,6 +2001,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' => '', @@ -1954,6 +2049,7 @@ URL: [url]', 'uploaded_by' => 'Enviado por', 'uploading_failed' => 'Envío (Upload) fallido. Por favor contacte con el Administrador.', 'uploading_maxsize' => 'El archivo subido supera el tamaño máximo de upload', +'uploading_postmaxsize' => '', 'uploading_zerosize' => 'Subiendo un fichero vacío. -Subida cancelada.', 'used_discspace' => 'Espacio de disco utilizado', 'user' => 'Usuario', @@ -1981,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] @@ -1988,6 +2087,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', @@ -2016,6 +2116,7 @@ URL: [url]', 'workflow_initstate' => 'Estado Inicial', 'workflow_in_use' => 'Este flujo de trabajo esta siendo usado por documentos.', 'workflow_layoutdata_saved' => '', +'workflow_log' => '', 'workflow_management' => 'Gestión Flujo de Trabajo', 'workflow_name' => 'Nombre', 'workflow_no_doc_rejected_state' => '', diff --git a/languages/fr_FR/lang.inc b/languages/fr_FR/lang.inc index 84d273cbd..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 (1091) +// Translators: Admin (1126), jeromerobert (50), lonnnew (9), Oudiceval (1171) $text = array( '2_factor_auth' => 'Authentification forte', @@ -50,6 +50,12 @@ Document : [name] Dossier parent : [folder_path] Utilisateur : [username] URL : [url]', +'access_permission_changed_email_body_html' => '

Permission modifiée

+ +

Document : [name]
+Dossier parent : [folder_path]
+Utilisateur : [username]
+URL : [url]

', 'access_permission_changed_email_subject' => '[sitename] : [name] - Permission modifiée', 'according_settings' => 'Paramètres en fonction', 'action' => 'Action', @@ -117,6 +123,13 @@ Version : [version] Dossier parent : [folder_path] Utilisateur : [username] URL : [url]', +'approval_deletion_email_body_html' => '

Demande d’approbation supprimée

+ +

Document : [name]
+Version : [version]
+Dossier parent : [folder_path]
+Utilisateur : [username]
+URL : [url]

', 'approval_deletion_email_subject' => '[sitename] : [name] - Requête d\'approbation supprimée', 'approval_file' => 'Fichier', 'approval_group' => 'Groupe d\'approbation', @@ -128,6 +141,7 @@ Version: [version] Dossier parent: [folder_path] Utilisateur: [username] URL: [url]', +'approval_request_email_body_html' => '', 'approval_request_email_subject' => '[sitename] : [name] - Demande d\'approbation', 'approval_status' => 'Statut d\'approbation', 'approval_submit_email' => 'Approbation d\'un document', @@ -139,6 +153,15 @@ Statut : [status] Commentaire : [comment] Utilisateur : [username] URL : [url]', +'approval_submit_email_body_html' => '

Approbation d’un document

+ +

Document : [name]
+Version : [version]
+Dossier parent : [folder_path]
+Statut : [status]
+Commentaire : [comment]
+Utilisateur : [username]
+URL : [url]

', '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.', @@ -162,6 +185,7 @@ URL : [url]', 'attrdefgrp_show_searchlist' => 'Résultats de recherche', 'attrdef_exists' => 'La définition d\'attribut existe déjà', 'attrdef_info' => 'Information', +'attrdef_invalid_regex' => '', 'attrdef_in_use' => 'La définition d\'attribut est en cours d\'utilisation', 'attrdef_management' => 'Gestion des définitions d\'attributs', 'attrdef_maxvalues' => 'Nombre maximum de valeurs', @@ -191,15 +215,26 @@ URL : [url]', 'attrdef_valueset' => 'Ensemble de valeurs', 'attrdef_valueset_help' => 'Liste de valeurs séparées par un caractère arbitraire, qui doit également être le premier et le dernier caractère de la chaîne. Ex : #un#deux#trois#', 'attributes' => 'Attributs', -'attribute_changed_email_body' => 'Attribut changé -Document: [name] -Version: [version] -Attribut: [attribute_name] -Old value: [attribute_old_value] -New value: [attribute_new_value] -Répertoire parent: [folder_path] -Utilisateur: [username] -URL: [url]', +'attribute_changed_email_body' => 'Attribut modifié + +Document : [name] +Version : [version] +Attribut : [attribute_name] +Ancienne valeur : [attribute_old_value] +Nouvelle valeur : [attribute_new_value] +Dossier parent : [folder_path] +Utilisateur : [username] +URL : [url]', +'attribute_changed_email_body_html' => '

Attribut modifié

+ +

Document : [name]
+Version : [version]
+Attribut : [attribute_name]
+Ancienne valeur : [attribute_old_value]
+Nouvelle valeur: [attribute_new_value]
+Dossier parent : [folder_path]
+Utilisateur : [username]
+URL : [url]

', 'attribute_changed_email_subject' => '[sitename] : [name] - Attribut modifié', 'attribute_count' => 'Nombre d\'utilisations', 'attribute_value' => 'Valeur de l\'attribut', @@ -398,24 +433,48 @@ Nouvelle valeur : [attribute_new_value] Dossier parent : [folder_path] Utilisateur : [username] URL : [url]', +'document_attribute_changed_email_body_html' => '

Attribut modifié

+ +

Document : [name]
+Attribut : [attribute_name]
+Ancienne valeur : [attribute_old_value]
+Nouvelle valeur : [attribute_new_value]
+Dossier parent : [folder_path]
+Utilisateur : [username]
+URL : [url]

', 'document_attribute_changed_email_subject' => '[sitename] : [name] - Attribut modifié', 'document_comment_changed_email' => 'Commentaire modifié', -'document_comment_changed_email_body' => 'Commentaire modifié -Document: [name] -Ancien commentaire: [old_comment] -Commentaire: [new_comment] -Dossier parent: [folder_path] -Utilisateur: [username] -URL: [url]', +'document_comment_changed_email_body' => 'Commentaire modifié + +Document : [name] +Ancien commentaire : [old_comment] +Nouveau commentaire : [new_comment] +Dossier parent : [folder_path] +Utilisateur : [username] +URL : [url]', +'document_comment_changed_email_body_html' => '

Commentaire modifié

+ +

Document : [name]
+Ancien commentaire: [old_comment]
+Nouveau commentaire : [new_comment]
+Dossier parent : [folder_path]
+Utilisateur : [username]
+URL : [url]

', 'document_comment_changed_email_subject' => '[sitename] : [name] - Commentaire modifié', 'document_content_missing' => 'Contenu du document manquant', 'document_count' => 'Nombre de documents', 'document_deleted' => 'Document supprimé', 'document_deleted_email' => 'Document supprimé', 'document_deleted_email_body' => 'Document supprimé + Document : [name] Dossier parent : [folder_path] Utilisateur : [username]', +'document_deleted_email_body_html' => '

Document supprimé

+ +

Document : [name]
+Dossier parent : [folder_path]
+Utilisateur : [username]

', 'document_deleted_email_subject' => '[sitename] : [name] - Document supprimé', 'document_duplicate_name' => 'Un document porte déjà ce nom !', 'document_files' => 'Fichiers attachés', @@ -429,29 +488,53 @@ Utilisateur : [username]', 'document_link_by' => 'Lié par', 'document_link_public' => 'Public', 'document_moved_email' => 'Document déplacé', -'document_moved_email_body' => 'Document déplacé -Document: [name] -Ancien dossier: [old_folder_path] -Nouveau dossier: [new_folder_path] -Utilisateur: [username] -URL: [url]', +'document_moved_email_body' => 'Document déplacé + +Document : [name] +Ancien dossier : [old_folder_path] +Nouveau dossier : [new_folder_path] +Utilisateur : [username] +URL : [url]', +'document_moved_email_body_html' => '

Document déplacé

+ +

Document : [name]
+Ancien dossier : [old_folder_path]
+Nouveau dossier : [new_folder_path]
+Utilisateur : [username]
+URL : [url]

', '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é', -'document_renamed_email_body' => 'Document renommé -Document: [name] -Dossier parent: [folder_path] -Ancien nom: [old_name] -Utilisateur: [username] -URL: [url]', +'document_renamed_email_body' => 'Document renommé + +Document : [name] +Dossier parent : [folder_path] +Ancien nom : [old_name] +Utilisateur : [username] +URL : [url]', +'document_renamed_email_body_html' => '

Document renommé

+ +

Document : [name]
+Dossier parent : [folder_path]
+Ancien nom : [old_name]
+Utilisateur : [username]
+URL : [url]

', '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é -Document: [name] -Statut: [status] -Dossier parent: [folder_path] -Utilisateur: [username] -URL: [url]', +'document_status_changed_email_body' => 'Statut du document modifié + +Document : [name] +Statut : [status] +Dossier parent : [folder_path] +Utilisateur : [username] +URL : [url]', +'document_status_changed_email_body_html' => '

Statut du document modifié

+ +

Document : [name]
+Statut : [status]
+Dossier parent : [folder_path]
+Utilisateur : [username]
+URL : [url]

', '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,15 +543,33 @@ Nouveau propriétaire : [newuser] Dossier parent : [folder_path] Utilisateur : [username] URL : [url]', +'document_transfered_email_body_html' => '

Transfert d’un document à un autre utilisateur

+ +

Document : [name]
+Nouveau propriétaire : [newuser]
+Ancien propriétaire : [olduser]
+Dossier parent : [folder_path]
+Utilisateur : [username]
+URL : [url]

', 'document_transfered_email_subject' => '[sitename] : [name] - Transfert d’un document', 'document_updated_email' => 'Document mis à jour', -'document_updated_email_body' => 'Document mis à jour -Document: [name] -Dossier parent: [folder_path] -Commentaire: [comment] -Commentaire de version: [version_comment] -Utilisateur: [username] -URL: [url]', +'document_updated_email_body' => 'Document mis à jour + +Document : [name] +Dossier parent : [folder_path] +Commentaire : [comment] +Commentaire de version : [version_comment] +Utilisateur : [username] +URL : [url]', +'document_updated_email_body_html' => '

Document mis à jour

+ +

Document : [name]
+Version : [version]
+Dossier parent : [folder_path]
+Utilisateur : [username]
+Commentaire : [comment]
+Commentaire de la version : [version_comment]
+URL : [url]

', 'document_updated_email_subject' => '[sitename] : [name] - Document mis à jour', 'document_versions' => 'Versions du document', 'does_not_expire' => 'N\'expire jamais', @@ -489,6 +590,8 @@ URL: [url]', 'download_header_review_state' => 'Statut de vérification', 'download_header_state' => 'Statut', 'download_links' => 'Liens de téléchargement', +'download_link_email_body' => '', +'download_link_email_subject' => '', 'do_no_transfer_to_user' => 'Ne pas transférer les processus à l’utilisateur', 'do_object_repair' => 'Réparer tous les dossiers et documents.', 'do_object_setchecksum' => 'Définir checksum', @@ -594,10 +697,17 @@ URL: [url]', 'expire_tomorrow' => 'Expire demain', 'expiry_changed_email' => 'Date d\'expiration modifiée', 'expiry_changed_email_body' => 'Date d\'expiration modifiée + Document : [name] Dossier parent : [folder_path] Utilisateur : [username] URL : [url]', +'expiry_changed_email_body_html' => '

Date d’expiration modifiée

+ +

Document : [name]
+Dossier parent : [folder_path]
+Utilisateur : [username]
+URL : [url]

', 'expiry_changed_email_subject' => '[sitename] : [name] - Date d’expiration modifiée', 'export' => 'Exporter', 'export_user_list_csv' => 'Exporter les utilisateurs en CSV', @@ -609,9 +719,11 @@ 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', +'extension_mgr_upload_disabled' => '', 'extension_missing_name' => 'Nom d’extension manquant', 'extension_toggle_error' => 'Impossible d’activer/désactiver l’extension', 'extension_version_list' => 'Versions', @@ -630,6 +742,7 @@ URL : [url]', 'folders_and_documents_statistic' => 'Aperçu du contenu', 'folders_with_notification' => 'Dossiers avec notification', 'folder_attribute_changed_email_body' => 'Attribut modifié + Dossier : [name] Attribut : [attribute_name] Ancienne valeur : [attribute_old_value] @@ -637,40 +750,81 @@ Nouvelle valeur : [attribute_new_value] Dossier parent : [folder_path] Utilisateur : [username] URL : [url]', +'folder_attribute_changed_email_body_html' => '

Attribut modifié

+ +

Dossier : [name]
+Attribut : [attribute_name]
+Ancienne valeur : [attribute_old_value]
+Nouvelle valeur : [attribute_new_value]
+Dossier parent : [folder_path]
+Utilisateur : [username]
+URL : [url]

', 'folder_attribute_changed_email_subject' => '[sitename] : [name] - Attribut modifié', 'folder_comment_changed_email' => 'Commentaire changé', -'folder_comment_changed_email_body' => 'Commentaire changé -Dossier: [name] -Ancien commentaire: [old_comment] -Commentaire: [new_comment] -Dossier parent: [folder_path] -Utilisateur: [username] -URL: [url]', +'folder_comment_changed_email_body' => 'Commentaire modifié + +Dossier : [name] +Ancien commentaire : [old_comment] +Commentaire : [new_comment] +Dossier parent : [folder_path] +Utilisateur : [username] +URL : [url]', +'folder_comment_changed_email_body_html' => '

Commentaire modifié

+ +

Dossier : [name]
+Ancien commentaire : [old_comment]
+Nouveau commentaire : [new_comment]
+Dossier parent : [folder_path]
+Utilisateur : [username]
+URL : [url]

', 'folder_comment_changed_email_subject' => '[sitename] : [name] - Commentaire modifié', 'folder_contents' => 'Dossiers', 'folder_deleted_email' => 'Dossier supprimé', -'folder_deleted_email_body' => 'Dossier supprimé -Dossier: [name] -Dossier parent: [folder_path] -Utilisateur: [username] -URL: [url]', +'folder_deleted_email_body' => 'Dossier supprimé + +Dossier : [name] +Dossier parent : [folder_path] +Utilisateur : [username] +URL : [url]', +'folder_deleted_email_body_html' => '

Dossier supprimé

+ +

Dossier : [name]
+Dossier parent : [folder_path]
+Utilisateur : [username]
+URL : [url]

', 'folder_deleted_email_subject' => '[sitename] : [name] - Dossier supprimé', 'folder_infos' => 'Informations sur le dossier', 'folder_moved_email' => 'Dossier déplacé', -'folder_moved_email_body' => 'Dossier déplacé -Dossier: [name] -Ancien dossier: [old_folder_path] -Nouveau dossier: [new_folder_path] -Utilisateur: [username] -URL: [url]', +'folder_moved_email_body' => 'Dossier déplacé + +Dossier : [name] +Ancien dossier : [old_folder_path] +Nouveau dossier : [new_folder_path] +Utilisateur : [username] +URL : [url]', +'folder_moved_email_body_html' => '

Dossier déplacé

+ +

Dossier : [name]
+Ancien dossier : [old_folder_path]
+Nouveau dossier : [new_folder_path]
+Utilisateur : [username]
+URL : [url]

', 'folder_moved_email_subject' => '[sitename] : [name] - Dossier déplacé', 'folder_renamed_email' => 'Dossier renommé', -'folder_renamed_email_body' => 'Dossier renommé -Dossier: [name] -Dossier parent: [folder_path] -Ancien nom: [old_name] -Utilisateur: [username] -URL: [url]', +'folder_renamed_email_body' => 'Dossier renommé + +Dossier : [name] +Dossier parent : [folder_path] +Ancien nom : [old_name] +Utilisateur : [username] +URL : [url]', +'folder_renamed_email_body_html' => '

Dossier renommé

+ +

Dossier : [name]
+Dossier parent : [folder_path]
+Ancien nom : [old_name]
+Utilisateur : [username]
+URL : [url]

', 'folder_renamed_email_subject' => '[sitename] : [name] - Dossier renommé', 'folder_title' => 'Dossier \'[foldername]\'', 'foot_note' => '', @@ -716,6 +870,7 @@ URL: [url]', 'hu_HU' => 'Hongrois', 'id' => 'ID', 'identical_version' => 'Nouvelle version identique à l\'actuelle.', +'id_ID' => 'Indonésien', 'import' => 'Importer', 'importfs' => 'Importer depuis le système de fichiers', 'import_extension' => 'Importer l’extension', @@ -908,30 +1063,55 @@ URL: [url]', 'new_document_category' => 'Ajouter une catégorie', 'new_document_email' => 'Nouveau document', 'new_document_email_body' => 'Nouveau document + Nom : [name] Dossier parent : [folder_path] Commentaire : [comment] Commentaire de version : [version_comment] Utilisateur : [username] -URL: [url]', +URL : [url]', +'new_document_email_body_html' => '

Nouveau document

+ +

Nom : [name]
+Dossier parent : [folder_path]
+Commentaire : [comment]
+Commentaire de version : [version_comment]
+Utilisateur : [username]
+URL : [url]

', 'new_document_email_subject' => '[sitename] : [folder_name] - Nouveau document', 'new_file_email' => 'Nouvel attachement', -'new_file_email_body' => 'Nouvel attachement -Name: [name] -Document: [document] -Commentaire: [comment] -Utilisateur: [username] -URL: [url]', +'new_file_email_body' => 'Nouveau fichier attaché + +Nom : [name] +Document : [document] +Commentaire : [comment] +Utilisateur : [username] +URL : [url]', +'new_file_email_body_html' => '

Nouveau fichier attaché

+ +

Nom : [name]
+Document : [document]
+Commentaire : [comment]
+Utilisateur : [username]
+URL : [url]

', 'new_file_email_subject' => '[sitename] : [document] - Nouveau fichier attaché', 'new_folder' => 'Nouveau dossier', 'new_password' => 'Nouveau mot de passe', 'new_subfolder_email' => 'Nouveau dossier', 'new_subfolder_email_body' => 'Nouveau dossier + Nom : [name] Dossier parent : [folder_path] Commentaire : [comment] Utilisateur : [username] URL : [url]', +'new_subfolder_email_body_html' => '

Nouveau dossier

+ +

Nom : [name]
+Dossier parent : [folder_path]
+Commentaire : [comment]
+Utilisateur : [username]
+URL : [url]

', 'new_subfolder_email_subject' => '[sitename] : [name] - Nouveau dossier', 'new_user_image' => 'Nouvelle image', 'next_revision_abbr' => 'Prochaine rév.', @@ -941,17 +1121,29 @@ URL : [url]', 'notification' => 'Notification', 'notify_added_email' => 'Vous avez été ajouté à la liste des notifications.', 'notify_added_email_body' => 'Ajouté à la liste des notifications + Nom : [name] Dossier parent : [folder_path] Utilisateur : [username] URL : [url]', +'notify_added_email_body_html' => '

Ajouté à la liste des notifications

+

Nom : [name]
+Dossier parent : [folder_path]
+Utilisateur : [username]
+URL : [url]

', '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 -Nom: [name] -Dossier parent: [folder_path] -Utilisateur: [username] -URL: [url]', +'notify_deleted_email_body' => 'Supprimé de la liste des notifications + +Nom : [name] +Dossier parent : [folder_path] +Utilisateur : [username] +URL : [url]', +'notify_deleted_email_body_html' => '

Supprimé de la liste des notifications

+

Nom : [name]
+Dossier parent : [folder_path]
+Utilisateur : [username]
+URL : [url]

', 'notify_deleted_email_subject' => '[sitename] : [name] - Supprimé de la liste des notifications', 'not_subscribed' => 'Non inscrit', 'november' => 'Novembre', @@ -959,15 +1151,17 @@ URL: [url]', 'no_action' => 'Aucune action n\'est nécessaire', 'no_approval_needed' => 'Aucune approbation en attente', 'no_attached_files' => 'Aucun fichier attaché', -'no_attributes_defined' => '', +'no_attributes_defined' => 'Vous n’avez créé aucun attribut personnalisé.', 'no_attribute_definitions' => 'Aucune définition d’attribut', 'no_backup_dir' => 'Le répertoire de sauvegarde n’est pas défini.', 'no_current_version' => 'Vous utilisez une ancienne version de SeedDMS. La dernière version disponible est la [latestversion].', 'no_default_keywords' => 'Aucun mot-clé disponible', 'no_docs_checked_out' => 'Aucun document vérifié', +'no_docs_draft' => '', 'no_docs_expired' => 'Aucun document expiré', 'no_docs_locked' => 'Aucun document verrouillé', 'no_docs_needs_correction' => 'Aucun document ne nécessite de correction', +'no_docs_obsolete' => '', 'no_docs_rejected' => 'Aucun document rejeté.', 'no_docs_to_approve' => 'Aucun document ne nécessite actuellement une approbation', 'no_docs_to_look_at' => 'Aucun document à surveiller', @@ -988,6 +1182,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' => 'Vous n’avez pas encore créé de workflow', 'no_workflow_available' => 'Aucun workflow disponible', 'objectcheck' => 'Vérification des dossiers et documents', 'object_check_critical' => 'Erreurs critiques', @@ -997,18 +1192,35 @@ URL: [url]', 'old' => 'Ancien', 'only_jpg_user_images' => 'Images d\'utilisateur au format .jpg seulement', 'operation_disallowed' => 'Opération non autorisée', +'orderby' => '', +'orderby_date_asc' => '', +'orderby_date_desc' => '', +'orderby_id_asc' => '', +'orderby_id_desc' => '', +'orderby_name_asc' => '', +'orderby_name_desc' => '', +'orderby_unsorted' => '', 'order_by_sequence_off' => 'Le tri par position est désactivé dans les préférences. Si vous souhaitez que ce paramètre prenne effet, vous devez l’activer.', 'original_filename' => 'Nom de fichier original', 'overall_indexing_progress' => 'Progression globale de l’indexation', 'owner' => 'Propriétaire', 'ownership_changed_email' => 'Propriétaire modifié', -'ownership_changed_email_body' => 'Propriétaire modifié -Document: [name] -Dossier parent: [folder_path] -Ancien propriétaire: [old_owner] -Nouveau propriétaire: [new_owner] -Utilisateur: [username] -URL: [url]', +'ownership_changed_email_body' => 'Propriétaire modifié + +Document : [name] +Dossier parent : [folder_path] +Ancien propriétaire : [old_owner] +Nouveau propriétaire : [new_owner] +Utilisateur : [username] +URL : [url]', +'ownership_changed_email_body_html' => '

Propriétaire modifié

+ +

Document : [name]
+Dossier parent : [folder_path]
+Ancien propriétaire : [old_owner]
+Nouveau propriétaire : [new_owner]
+Utilisateur : [username]
+URL : [url]

', 'ownership_changed_email_subject' => '[sitename] : [name] - Propriétaire modifié', 'password' => 'Mot de passe', 'password_already_used' => 'Mot de passe déjà utilisé', @@ -1024,7 +1236,18 @@ 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' => '

Cher utilisateur de SeedDMS,

+ +

Nous avons reçu une demande pour modifier votre mot de passe.

+ +

Pour ce faire, veuillez cliquer sur le lien suivant :

+ +

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

+ +

Si vous rencontrez toujours des problèmes pour vous connecter, veuillez contacter votre administrateur.

', 'password_forgotten_email_subject' => '[sitename] : Mot de passe oublié', +'password_forgotten_invalid_hash' => '', +'password_forgotten_invalid_hash_title' => '', '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é.', 'password_forgotten_title' => 'Mot de passe envoyé', @@ -1071,22 +1294,58 @@ En cas de problème persistant, veuillez contacter votre administrateur.', 'receipts_without_group' => 'Réceptions sans groupe', 'receipts_without_user' => 'Réceptions sans utilisateur', 'receipt_deletion_email_body' => 'L’utilisateur a été retiré de la liste des destinataires + Document : [name] Version : [version] Dossier parent : [folder_path] Destinataire : [recipient] Utilisateur : [username] URL : [url]', +'receipt_deletion_email_body_html' => '

L’utilisateur a été retiré de la liste des destinataires

+ +

Document : [name]
+Version : [version]
+Dossier parent : [folder_path]
+Destinataire : [recipient]
+Utilisateur : [username]
+URL : [url]

', 'receipt_deletion_email_subject' => '[sitename] : [name] - Destinataire supprimé', 'receipt_log' => 'Journal des réceptions', 'receipt_request_email_body' => 'Demande de réception + Document : [name] Version : [version] Dossier parent : [folder_path] Utilisateur : [username] URL : [url]', +'receipt_request_email_body_html' => '

Demande de réception

+ +

Document : [name]
+Version : [version]
+Dossier parent : [folder_path]
+Utilisateur : [username]
+URL : [url]

', 'receipt_request_email_subject' => '[sitename] : [name] - Demande de réception', 'receipt_status' => 'Statut', +'receipt_submit_email_body' => 'Réception faite + +Document : [name] +Version : [version] +Statut : [status] +Commentaire : [comment] +Dossier parent : [folder_path] +Utilisateur : [username] +URL : [url]', +'receipt_submit_email_body_html' => '

Réception faite

+ +

Document : [name]
+Version : [version]
+Statut : [status]
+Commentaire : [comment]
+Dossier parent : [folder_path]
+Utilisateur : [username]
+URL : [url]

', +'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', @@ -1096,26 +1355,43 @@ URL : [url]', 'reception_rejected' => 'Réception rejetée', 'recipients' => 'Destinataires', 'recipient_already_removed' => 'Le destinataire a déjà été supprimé ou a accusé réception.', +'record_type' => '', 'redraw' => 'Redessiner', 'refresh' => 'Actualiser', 'rejected' => 'Rejeté', 'released' => 'Publié', 'removed_approver' => 'a été retiré de la liste des approbateurs.', 'removed_file_email' => 'Attachement supprimé', -'removed_file_email_body' => 'Attachement supprimé -Document: [document] -Utilisateur: [username] -URL: [url]', +'removed_file_email_body' => 'Fichier attaché supprimé + +Document : [document] +Utilisateur : [username] +URL : [url]', +'removed_file_email_body_html' => '

Fichier attaché supprimé

+ +

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

', '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.', 'removed_revisor' => 'a été supprimé de la liste des réviseurs.', -'removed_workflow_email_body' => 'Workflow du document supprimé: [name] -Version: [version] -Workflow: [workflow] -Répertoire: [folder_path] -Utilisateur: [username] -URL: [url]', +'removed_workflow_email_body' => 'Workflow du document supprimé + +Document : [name] +Version : [version] +Workflow : [workflow] +Dossier parent : [folder_path] +Utilisateur : [username] +URL : [url]', +'removed_workflow_email_body_html' => '

Workflow du document supprimé

+ +

Document : [name]
+Version : [version]
+Workflow : [workflow]
+Dossier parent : [folder_path]
+Utilisateur : [username]
+URL : [url]

', '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', @@ -1123,14 +1399,23 @@ URL: [url]', 'remove_review_log' => 'Vérification retirée', 'repaired' => 'réparé', 'repairing_objects' => 'Réparation des documents et des dossiers.', -'replace_content_email_body' => 'La dernière version du document a été remplacée +'replace_content_email_body' => 'La dernière version du document a été remplacée. + Document : [name] Version : [version] Dossier parent : [folder_path] Utilisateur : [username] URL : [url]', +'replace_content_email_body_html' => '

La dernière version du document a été remplacée.

+ +

Document : [name]
+Version : [version]
+Dossier parent : [folder_path]
+Utilisateur : [username]
+URL : [url]

', '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] Version : [version] Workflow : [workflow] @@ -1138,12 +1423,22 @@ Workflow : [workflow] Dossier parent : [folder_path] Utilisateur : [username] URL : [url]', +'request_workflow_action_email_body_html' => '

Le workflow a atteint un état nécessitant une action de votre part.

+ +

Document : [name]
+Version : [version]
+Workflow : [workflow]
+État actuel : [current_state]
+Dossier parent : [folder_path]
+Utilisateur : [username]
+URL : [url]

', 'request_workflow_action_email_subject' => '[sitename] : [name] - Action de Workflow requise', 'reset_checkout' => 'Terminer la vérification', 'restrict_access' => 'Pas d\'accès', 'results_page' => 'Page de résultats', 'return_from_subworkflow' => 'Revenir du sous-workflow', 'return_from_subworkflow_email_body' => 'Retour du sous-workflow + Document : [name] Version : [version] Workflow : [workflow] @@ -1151,6 +1446,15 @@ Sous-workflow : [subworkflow] Dossier parent : [folder_path] Utilisateur : [username] URL : [url]', +'return_from_subworkflow_email_body_html' => '

Retour du sous-workflow

+ +

Document : [name]
+Version : [version]
+Workflow : [workflow]
+Sous-workflow: [subworkflow]
+Dossier parent : [folder_path]
+Utilisateur : [username]
+URL : [url]

', 'return_from_subworkflow_email_subject' => 'Retour du sous-workflow', 'reverse_links' => 'Documents liés au document actuel', 'reviewers' => 'Examinateurs', @@ -1166,26 +1470,43 @@ URL : [url]', 'reviews_without_user' => 'Vérifications sans utilisateur', 'review_deletion_email' => 'Demande de vérification supprimée', 'review_deletion_email_body' => 'Demande de vérification supprimée + Document : [name] Version : [version] Dossier parent : [folder_path] Utilisateur : [username] URL : [url]', +'review_deletion_email_body_html' => '

Demande de vérification supprimée

+ +

Document : [name]
+Version : [version]
+Dossier parent : [folder_path]
+Utilisateur : [username]
+URL : [url]

', 'review_deletion_email_subject' => '[sitename] : [name] - Demande de vérification supprimée', 'review_file' => 'Fichier', 'review_group' => 'Groupe de vérification', 'review_log' => 'Journal des vérifications', 'review_request_email' => 'Demande de vérification', 'review_request_email_body' => 'Demande de vérification + Document : [name] Version : [version] Dossier parent : [folder_path] Utilisateur : [username] URL : [url]', +'review_request_email_body_html' => '

Demande de vérification

+ +

Document : [name]
+Version : [version]
+Dossier parent : [folder_path]
+Utilisateur : [username]
+URL : [url]

', 'review_request_email_subject' => '[sitename] : [name] - Demande de vérification', 'review_status' => 'Statut de vérification', 'review_submit_email' => 'Vérification faite', 'review_submit_email_body' => 'Vérification faite + Document : [name] Version : [version] Statut : [status] @@ -1193,6 +1514,15 @@ Commentaire : [comment] Dossier parent : [folder_path] Utilisateur : [username] URL : [url]', +'review_submit_email_body_html' => '

Vérification faite

+ +

Document : [name]
+Version : [version]
+Statut : [status]
+Commentaire : [comment]
+Dossier parent : [folder_path]
+Utilisateur : [username]
+URL : [url]

', '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.', @@ -1212,14 +1542,23 @@ URL : [url]', 'revision_date' => 'Date de révision', 'revision_log' => 'Journal des révisions', 'revision_request_email_body' => 'Demande de révision + Document : [name] Version : [version] Dossier parent : [folder_path] Utilisateur : [username] URL : [url]', +'revision_request_email_body_html' => '

Demande de révision

+ +

Document : [name]
+Version : [version]
+Dossier parent : [folder_path]
+Utilisateur : [username]
+URL : [url]

', 'revision_request_email_subject' => '[sitename] : [name] - Demande de révision', 'revision_status' => 'État', -'revision_submit_email_body' => 'Publié à nouveau +'revision_submit_email_body' => 'Révision faite + Document : [name] Version : [version] Dossier parent : [folder_path] @@ -1227,13 +1566,37 @@ Statut : [status] Commentaire : [comment] Utilisateur : [username] URL : [url]', +'revision_submit_email_body_html' => '

Révision faite

+ +

Document : [name]
+Version : [version]
+Statut : [status]
+Commentaire : [comment]
+Dossier parent : [folder_path]
+Utilisateur : [username]
+URL : [url]

', 'revision_submit_email_subject' => '[sitename]: [name] - Publié à nouveau', 'revision_summary' => 'Récapitulatif révision', 'revisors' => 'Réviseurs', 'revisor_already_assigned' => 'L’utilisateur est déjà attribué en tant que réviseur.', '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' => 'Le workflow a été reculé + +Document : [name] +Version : [version] +Workflow : [workflow] +Dossier parent : [folder_path] +Utilisateur : [username] +URL : [url]', +'rewind_workflow_email_body_html' => '

Le workflow a été reculé

+ +

Document : [name]
+Version : [version]
+Workflow : [workflow]
+Dossier parent : [folder_path]
+Utilisateur : [username]
+URL : [url]

', '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', @@ -1269,6 +1632,7 @@ URL : [url]', 'ro_RO' => 'Roumain', 'run_subworkflow' => 'Lancer le sous-workflow', 'run_subworkflow_email_body' => 'Sous-workflow démarré + Document : [name] Version : [version] Workflow : [workflow] @@ -1276,6 +1640,15 @@ Sous-workflow : [subworkflow] Dossier parent : [folder_path] Utilisateur : [username] URL : [url]', +'run_subworkflow_email_body_html' => '

Sous-workflow démarré

+ +

Document : [name]
+Version : [version]
+Workflow : [workflow]
+Sous-workflow : [subworkflow]
+Dossier parent : [folder_path]
+Utilisateur : [username]
+URL : [url]

', 'run_subworkflow_email_subject' => '[sitename] : [name] - Sous-workflow initialisé', 'ru_RU' => 'Russe', 'saturday' => 'Samedi', @@ -1331,6 +1704,7 @@ URL : [url]', 'select_mimetype' => 'Sélectionner un type MIME', 'select_one' => 'Selectionner', 'select_owner' => 'Sélectionner un propriétaire', +'select_record_type' => '', 'select_status' => 'Cliquer pour sélectionner un statut', 'select_user' => 'Sélectionner un utilisateur', 'select_users' => 'Cliquer pour choisir un utilisateur', @@ -1429,6 +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' => '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', @@ -1471,6 +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' => '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', @@ -1549,6 +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' => '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.', @@ -1612,6 +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' => '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.', @@ -1771,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', @@ -1793,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', @@ -1815,6 +2204,7 @@ Nom : [username] 'splash_inherit_access' => 'Droits d’accès hérités', 'splash_invalid_folder_id' => 'Identifiant de répertoire invalide', 'splash_invalid_searchterm' => 'Recherche invalide', +'splash_invalid_search_service' => '', 'splash_link_document' => 'Lien ajouté', 'splash_moved_clipboard' => 'Contenu du presse-papier déplacé vers le dossier en cours', 'splash_move_document' => 'Document déplacé', @@ -1824,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', @@ -1963,6 +2355,7 @@ Nom : [username] 'transfer_to_user' => 'Transférer à l’utilisateur', 'transition_triggered_email' => 'Transition de workflow activé', 'transition_triggered_email_body' => 'Transition de workflow déclenchée + Document : [name] Version : [version] Commentaires : [comment] @@ -1972,6 +2365,17 @@ Workflow : [workflow] Dossier parent : [folder_path] Utilisateur : [username] URL : [url]', +'transition_triggered_email_body_html' => '

Transition de workflow déclenchée

+ +

Document : [name]
+Version : [version]
+Commentaire : [comment]
+Workflow : [workflow]
+État précédent : [previous_state]
+État actuel : [current_state]
+Dossier parent : [folder_path]
+Utilisateur : [username]
+URL : [url]

', 'transition_triggered_email_subject' => '[sitename] : [name] - Transition de workflow déclenchée', 'transmittal' => 'Transmission', 'transmittalitem_removed' => 'Élément de la transmission supprimé', @@ -2019,6 +2423,7 @@ URL : [url]', 'uploaded_by' => 'Déposé par', 'uploading_failed' => 'Dépôt d\'un des documents échoué. Veuillez vérifier la taille d\'envoi maximale autorisée.', 'uploading_maxsize' => 'La taille du fichier dépasse la limite maximale autorisée.', +'uploading_postmaxsize' => '', 'uploading_zerosize' => 'Chargement d\'un fichier vide. Chargement annulé.', 'used_discspace' => 'Espace disque utilisé', 'user' => 'Utilisateur', @@ -2046,13 +2451,24 @@ 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 -Document: [name] -Version: [version] -Dossier parent: [folder_path] -Utilisateur: [username] -URL: [url]', +'version_deleted_email_body' => 'Version supprimée + +Document : [name] +Version : [version] +Dossier parent : [folder_path] +Utilisateur : [username] +URL : [url]', +'version_deleted_email_body_html' => '

Version supprimée

+ +

Document : [name]
+Version : [version]
+Dossier parent : [folder_path]
+Utilisateur : [username]
+URL : [url]

', 'version_deleted_email_subject' => '[sitename] : [name] - Version supprimée', 'version_info' => 'Informations de version', 'view' => 'Aperçu', @@ -2081,6 +2497,7 @@ URL: [url]', 'workflow_initstate' => 'État initial', 'workflow_in_use' => 'Ce workflow est actuellement utilisé par des documents.', 'workflow_layoutdata_saved' => 'Données de mise en page enregistrées', +'workflow_log' => '', 'workflow_management' => 'Gestion des workflows', 'workflow_name' => 'Nom', 'workflow_no_doc_rejected_state' => 'L’état « rejeté » n’a été défini sur aucune action !', diff --git a/languages/hr_HR/lang.inc b/languages/hr_HR/lang.inc index 0995ce1bb..1afb4b532 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', @@ -128,6 +130,7 @@ Verzija: [version] Glavna mapa: [folder_path] Korisnik: [username] Internet poveznica: [url]', +'approval_request_email_body_html' => '', 'approval_request_email_subject' => '[sitename]: [name] - Zahtjev za odobrenje', 'approval_status' => 'Status odobrenja', 'approval_submit_email' => 'Predan zahtjev za odobrenje', @@ -139,6 +142,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.', @@ -162,6 +166,7 @@ Internet poveznica: [url]', 'attrdefgrp_show_searchlist' => '', 'attrdef_exists' => 'Definicija atributa već postoji', 'attrdef_info' => '', +'attrdef_invalid_regex' => '', 'attrdef_in_use' => 'Definicija atributa se već koristi', 'attrdef_management' => 'Upravljanje definicijama atributa', 'attrdef_maxvalues' => 'Max. broj vrijednosti', @@ -200,6 +205,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 +397,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 +407,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 +417,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 +437,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 +447,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 +456,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 +470,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', @@ -477,6 +491,8 @@ Internet poveznica: [url]', 'download_header_review_state' => '', 'download_header_state' => '', 'download_links' => '', +'download_link_email_body' => '', +'download_link_email_subject' => '', 'do_no_transfer_to_user' => '', 'do_object_repair' => 'Popravi sve mape i dokumente.', 'do_object_setchecksum' => 'Postavi kontrolnu sumu', @@ -586,6 +602,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' => '', @@ -597,9 +614,11 @@ 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', +'extension_mgr_upload_disabled' => '', 'extension_missing_name' => '', 'extension_toggle_error' => '', 'extension_version_list' => 'Inačice', @@ -618,6 +637,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 +647,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 +656,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 +666,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 +675,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' => '', @@ -697,6 +721,7 @@ Internet poveznica: [url]', 'hu_HU' => 'Mađarski', 'id' => 'ID', 'identical_version' => 'Nova verzija je identična trenutnoj verziji.', +'id_ID' => '', 'import' => '', 'importfs' => '', 'import_extension' => '', @@ -895,6 +920,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 +928,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 +939,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 +953,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 +961,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', @@ -945,9 +975,11 @@ Internet poveznica: [url]', 'no_current_version' => 'Koristite na staru verziju ProsperaDMS-a. Najnovija dostupna verzija je[latestversion].', 'no_default_keywords' => 'Nema dostupnih ključnih riječi', 'no_docs_checked_out' => 'Niti jedan dokument nije odjavljen', +'no_docs_draft' => '', 'no_docs_expired' => '', 'no_docs_locked' => 'Nema zaključanih dokumenata.', 'no_docs_needs_correction' => '', +'no_docs_obsolete' => '', 'no_docs_rejected' => '', 'no_docs_to_approve' => 'Trenutno nema dokumenata koji zahtjevaju odobrenje.', 'no_docs_to_look_at' => 'Nema dokumenata na koje treba obratiti pozornost.', @@ -968,6 +1000,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' => '', @@ -977,6 +1010,14 @@ Internet poveznica: [url]', 'old' => 'Staro', 'only_jpg_user_images' => 'Kao korisničke slike mogu se koristiti samo .jpg slike', 'operation_disallowed' => '', +'orderby' => '', +'orderby_date_asc' => '', +'orderby_date_desc' => '', +'orderby_id_asc' => '', +'orderby_id_desc' => '', +'orderby_name_asc' => '', +'orderby_name_desc' => '', +'orderby_unsorted' => '', 'order_by_sequence_off' => 'Sortiranje po sekvencei ne isključeno u postavkama. Ako želite da ovaj parametar ima utjecaja, morat ćete ga ponovno uključiti.', 'original_filename' => 'Izvorni naziv datoteke', 'overall_indexing_progress' => '', @@ -989,6 +1030,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,7 +1048,10 @@ 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_invalid_hash' => '', +'password_forgotten_invalid_hash_title' => '', '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.', 'password_forgotten_title' => 'Lozinka je poslana', @@ -1053,11 +1098,16 @@ 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_body_html' => '', +'receipt_submit_email_subject' => '', 'receipt_summary' => 'Sažetak prijema', 'receipt_update_failed' => '', 'recent_uploads' => 'Poslijedni Prenosi', @@ -1067,6 +1117,7 @@ Ako i dalje imate problema s prijavom, molimo kontaktirajte Vašeg administrator 'reception_rejected' => '', 'recipients' => 'Primatelji', 'recipient_already_removed' => '', +'record_type' => '', 'redraw' => '', 'refresh' => 'Osvježi', 'rejected' => 'Odbijeno', @@ -1077,6 +1128,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 +1140,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 +1149,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 +1159,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 +1173,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 +1194,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 +1206,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 +1218,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 +1238,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 +1256,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 +1299,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', @@ -1292,6 +1355,7 @@ Internet poveznica: [url]', 'select_mimetype' => '', 'select_one' => 'Odaberite jednog', 'select_owner' => '', +'select_record_type' => '', 'select_status' => '', 'select_user' => 'Izaberi korisnika', 'select_users' => 'Kliknite za odabir korisnika', @@ -1385,6 +1449,8 @@ Internet poveznica: [url]', 'settings_defaultDocPosition_desc' => '', 'settings_defaultDocPosition_val_end' => '', 'settings_defaultDocPosition_val_start' => '', +'settings_defaultFolderPosition' => '', +'settings_defaultFolderPosition_desc' => '', 'settings_defaultSearchMethod' => 'Zadana metoda pretrage', 'settings_defaultSearchMethod_desc' => 'Zadana metoda pretrage, kada se pretraživanje pokreće putem formulara iz glavnog izbornika', 'settings_defaultSearchMethod_valdatabase' => 'baza podataka', @@ -1427,6 +1493,12 @@ Internet poveznica: [url]', 'settings_enableDuplicateSubFolderNames_desc' => '', 'settings_enableEmail' => 'Omogući E-mail', 'settings_enableEmail_desc' => 'Omogući/onemogući automatsku email obavijest', +'settings_enableExtensionDownload' => '', +'settings_enableExtensionDownload_desc' => '', +'settings_enableExtensionImport' => '', +'settings_enableExtensionImportFromRepository' => '', +'settings_enableExtensionImportFromRepository_desc' => '', +'settings_enableExtensionImport_desc' => '', 'settings_enableFilterReceipt' => '', 'settings_enableFilterReceipt_desc' => '', 'settings_enableFolderTree' => 'Omogući stablo mape', @@ -1505,6 +1577,7 @@ Internet poveznica: [url]', 'settings_expandFolderTree_val0' => 'započni sa skrivenim stablom', 'settings_expandFolderTree_val1' => 'započni sa prikazanim stablom i prvom proširenom razinom', 'settings_expandFolderTree_val2' => 'započni sa potpuno proširenim vidljivom stablom', +'settings_ExtensionMgr' => '', 'settings_Extensions' => 'Ekstenzije', 'settings_extraPath' => 'Extra PHP sadrži putanju', 'settings_extraPath_desc' => 'Putanja do dodatnog softvera. To je mapa koja sadrži npr. adodb mapu ili dodatne Pear pakete', @@ -1568,6 +1641,8 @@ Internet poveznica: [url]', 'settings_more_settings' => 'Konfiguriraj više postavki. Zadana prijava: admin/admin', 'settings_noDocumentFormFields' => '', 'settings_noDocumentFormFields_desc' => '', +'settings_noFolderFormFields' => '', +'settings_noFolderFormFields_desc' => '', 'settings_notfound' => 'Nije pronađeno', 'settings_Notification' => 'Postavke bilježenja', 'settings_notwritable' => 'Konfiguracija se ne može pohraniti jer datoteka konfiguracije nema mogućnost upisivanja.', @@ -1727,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' => '', @@ -1749,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' => '', @@ -1771,6 +1850,7 @@ Internet poveznica: [url]', 'splash_inherit_access' => '', 'splash_invalid_folder_id' => 'Nevažeći ID mape', 'splash_invalid_searchterm' => 'Nevažeći traženi pojam', +'splash_invalid_search_service' => '', 'splash_link_document' => '', 'splash_moved_clipboard' => 'Međuspremnik je premješten u trenutnu mapu', 'splash_move_document' => '', @@ -1780,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' => '', @@ -1928,6 +2010,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', @@ -1975,6 +2058,7 @@ Internet poveznica: [url]', 'uploaded_by' => 'Učitao', 'uploading_failed' => 'Neuspješno učitavanje jedne od vaših datoteka. Molimo provjerite maksimalnu veličinu datoteke za učitavanje.', 'uploading_maxsize' => 'Učitana datoteke premašuje maksimalnu veličinu datoteke za učitavanje.', +'uploading_postmaxsize' => '', 'uploading_zerosize' => 'Datoteka koja se učitava je prazna. Učitavanje je otkazano.', 'used_discspace' => 'Iskorišteni prostor na disku', 'user' => 'Korisnik', @@ -2002,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] @@ -2009,6 +2096,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', @@ -2037,6 +2125,7 @@ Internet poveznica: [url]', 'workflow_initstate' => 'Početni status', 'workflow_in_use' => 'Dokumenti trenutno koriste ovaj tok rada.', 'workflow_layoutdata_saved' => '', +'workflow_log' => '', 'workflow_management' => 'Upravljanje toka rada', 'workflow_name' => 'Naziv', 'workflow_no_doc_rejected_state' => '', diff --git a/languages/hu_HU/lang.inc b/languages/hu_HU/lang.inc index afa0065d6..569779ae9 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', @@ -123,6 +125,7 @@ Verzió: [version] Szülő mappa: [folder_path] Felhasználó: [username] URL: [url]', +'approval_request_email_body_html' => '', 'approval_request_email_subject' => '[sitename]: [name] - Jóváhagyási kérelem', 'approval_status' => 'Jóváhagyási állapot', 'approval_submit_email' => 'Fordítás hiányzik', @@ -134,6 +137,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.', @@ -157,6 +161,7 @@ URL: [url]', 'attrdefgrp_show_searchlist' => 'Keresés eredménye', 'attrdef_exists' => 'Jellemző meghatározás már létezik', 'attrdef_info' => 'Információ', +'attrdef_invalid_regex' => '', 'attrdef_in_use' => 'Jellemző meghatározás még használatban van', 'attrdef_management' => 'Jellemző meghatározás kezelése', 'attrdef_maxvalues' => 'Legnagyobb érték', @@ -195,6 +200,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 +392,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 +402,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 +412,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 +432,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 +442,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 +451,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 +465,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', @@ -472,6 +486,8 @@ URL: [url]', 'download_header_review_state' => '', 'download_header_state' => '', 'download_links' => '', +'download_link_email_body' => '', +'download_link_email_subject' => '', 'do_no_transfer_to_user' => '', 'do_object_repair' => 'Valamennyi mappa és dokumentum helyreállítása.', 'do_object_setchecksum' => 'Ellenőrző összeg beállítása', @@ -581,6 +597,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' => '', @@ -592,9 +609,11 @@ 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ő', +'extension_mgr_upload_disabled' => '', 'extension_missing_name' => '', 'extension_toggle_error' => '', 'extension_version_list' => 'Verziók', @@ -613,6 +632,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 +642,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 +651,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 +661,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 +670,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' => '', @@ -692,6 +716,7 @@ URL: [url]', 'hu_HU' => 'Magyar', 'id' => 'ID', 'identical_version' => 'Az új verzió megegyezik az eredetivel.', +'id_ID' => '', 'import' => 'Import', 'importfs' => '', 'import_extension' => 'Kiterjesztés import', @@ -890,6 +915,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 +924,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 +935,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 +949,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 +957,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', @@ -941,9 +971,11 @@ URL: [url]', 'no_current_version' => 'Ön a SeedDMS régebbi változatát futtatja. A legutolsó elérhető verzió [latestversion].', 'no_default_keywords' => 'Nincsenek elérhető kulcsszavak', 'no_docs_checked_out' => '', +'no_docs_draft' => '', 'no_docs_expired' => '', 'no_docs_locked' => 'Nincsenek zárolt dokumentumok.', 'no_docs_needs_correction' => '', +'no_docs_obsolete' => '', 'no_docs_rejected' => '', 'no_docs_to_approve' => 'Nincsenek jóváhagyandó dokumentumok.', 'no_docs_to_look_at' => 'Nincs karbantartást igénylő dokumentum.', @@ -964,6 +996,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' => '', @@ -973,6 +1006,14 @@ URL: [url]', 'old' => 'Régi', 'only_jpg_user_images' => 'Felhasználói képként csak .jpg állományok adhatók meg', 'operation_disallowed' => '', +'orderby' => '', +'orderby_date_asc' => '', +'orderby_date_desc' => '', +'orderby_id_asc' => '', +'orderby_id_desc' => '', +'orderby_name_asc' => '', +'orderby_name_desc' => '', +'orderby_unsorted' => '', 'order_by_sequence_off' => '', 'original_filename' => 'Eredeti fájlnév', 'overall_indexing_progress' => 'Teljes indexelési folyamat', @@ -985,6 +1026,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,7 +1044,10 @@ 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_invalid_hash' => '', +'password_forgotten_invalid_hash_title' => '', '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.', 'password_forgotten_title' => 'Jelszó küldés', @@ -1049,11 +1094,16 @@ 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_body_html' => '', +'receipt_submit_email_subject' => '', 'receipt_summary' => '', 'receipt_update_failed' => '', 'recent_uploads' => 'Legutóbbi feltöltések', @@ -1063,6 +1113,7 @@ Amennyiben problémákba ütközik a bejelentkezés során, kérjük vegye fel a 'reception_rejected' => '', 'recipients' => '', 'recipient_already_removed' => '', +'record_type' => '', 'redraw' => 'újrarajzol', 'refresh' => 'Frissítés', 'rejected' => 'Elutasított', @@ -1073,6 +1124,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 +1136,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 +1145,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 +1162,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 +1178,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 +1197,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 +1217,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 +1235,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 +1277,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', @@ -1270,6 +1333,7 @@ URL: [url]', 'select_mimetype' => '', 'select_one' => 'Válasszon egyet', 'select_owner' => '', +'select_record_type' => '', 'select_status' => '', 'select_user' => 'Felhasználó kiválasztása', 'select_users' => 'Kattintson a felhasználó kiválasztásához', @@ -1363,6 +1427,8 @@ URL: [url]', 'settings_defaultDocPosition_desc' => 'Ez az alapértelmezett hely egy mappában egy dokumentum létrehozásakor.', 'settings_defaultDocPosition_val_end' => 'vége', 'settings_defaultDocPosition_val_start' => 'eleje', +'settings_defaultFolderPosition' => '', +'settings_defaultFolderPosition_desc' => '', 'settings_defaultSearchMethod' => 'Alapértelmezett keresési módszer', 'settings_defaultSearchMethod_desc' => '', 'settings_defaultSearchMethod_valdatabase' => 'adatbázis', @@ -1405,6 +1471,12 @@ URL: [url]', 'settings_enableDuplicateSubFolderNames_desc' => '', 'settings_enableEmail' => 'Email engedélyezése', 'settings_enableEmail_desc' => 'Engedélyezi/tiltja az automatikus email értesítést', +'settings_enableExtensionDownload' => '', +'settings_enableExtensionDownload_desc' => '', +'settings_enableExtensionImport' => '', +'settings_enableExtensionImportFromRepository' => '', +'settings_enableExtensionImportFromRepository_desc' => '', +'settings_enableExtensionImport_desc' => '', 'settings_enableFilterReceipt' => '', 'settings_enableFilterReceipt_desc' => '', 'settings_enableFolderTree' => 'Mappa fastruktúra engedélyezése', @@ -1483,6 +1555,7 @@ URL: [url]', 'settings_expandFolderTree_val0' => 'indulás rejtett fastruktúrával', 'settings_expandFolderTree_val1' => 'indulás a fastruktúra első szintjének kibontásával', 'settings_expandFolderTree_val2' => 'indulás teljesen kibontott fastruktúrával', +'settings_ExtensionMgr' => '', 'settings_Extensions' => 'Bővítmények', 'settings_extraPath' => 'További PHP include elérési út', 'settings_extraPath_desc' => 'További szoftverek elérési útvonala. Ez a könyvtár tartalmazza pl.: az adodb könyvtárat vagy kiegészítő pear csomagokat.', @@ -1546,6 +1619,8 @@ URL: [url]', 'settings_more_settings' => 'További beállítások konfigurálása. Alapértelmezett bejelentkezés: admin/admin', 'settings_noDocumentFormFields' => '', 'settings_noDocumentFormFields_desc' => '', +'settings_noFolderFormFields' => '', +'settings_noFolderFormFields_desc' => '', 'settings_notfound' => 'Nem található', 'settings_Notification' => 'Értesítés beállításai', 'settings_notwritable' => 'A konfiguráció nem menthető, mert a konfigurációs állomány nem írható.', @@ -1705,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' => '', @@ -1727,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' => '', @@ -1749,6 +1828,7 @@ URL: [url]', 'splash_inherit_access' => '', 'splash_invalid_folder_id' => 'Érvénytelen mappa azonosító', 'splash_invalid_searchterm' => 'Érvénytelen keresési feltétel', +'splash_invalid_search_service' => '', 'splash_link_document' => '', 'splash_moved_clipboard' => 'Vágólap tartalom áthelyezve az aktuális mappába', 'splash_move_document' => '', @@ -1758,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' => '', @@ -1906,6 +1988,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' => '', @@ -1953,6 +2036,7 @@ URL: [url]', 'uploaded_by' => 'Feltöltötte', 'uploading_failed' => 'Állományai egyikének feltöltése sikertelen. Kérjük ellenőrizze a legnagyobb feltölthető állomány méretet.', 'uploading_maxsize' => 'A feltöltött fájl nagyobb, mint a megengedezz maximális méret', +'uploading_postmaxsize' => '', 'uploading_zerosize' => 'Üres állomány feltöltése. Feltöltés megszakítva.', 'used_discspace' => 'Felhasznált lemezterület', 'user' => 'Felhasználó', @@ -1980,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] @@ -1987,6 +2074,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', @@ -2015,6 +2103,7 @@ URL: [url]', 'workflow_initstate' => 'Kezdeti állapot', 'workflow_in_use' => 'Ezt a munkafolyamatot dokumentumok használják.', 'workflow_layoutdata_saved' => '', +'workflow_log' => '', 'workflow_management' => 'Munkafolyamat kezelés', 'workflow_name' => 'Név', 'workflow_no_doc_rejected_state' => '', diff --git a/languages/it_IT/lang.inc b/languages/it_IT/lang.inc index 44c82edec..b05563ba3 100644 --- a/languages/it_IT/lang.inc +++ b/languages/it_IT/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 (2055), rickr (144), s.pnt (26) +// Translators: Admin (2057), rickr (144), s.pnt (26) $text = array( '2_factor_auth' => 'Autorizzazione a due fattori', @@ -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', @@ -128,6 +130,7 @@ Versione: [version] Cartella: [folder_path] Utente: [username] URL: [url]', +'approval_request_email_body_html' => '', 'approval_request_email_subject' => '[sitename]: [name] - Richiesta di approvazione', 'approval_status' => 'Stato di approvazione', 'approval_submit_email' => '', @@ -139,6 +142,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.', @@ -162,6 +166,7 @@ URL: [url]', 'attrdefgrp_show_searchlist' => 'risultati trovati', 'attrdef_exists' => 'Definizione di Attributo già esistente', 'attrdef_info' => 'Informazione', +'attrdef_invalid_regex' => '', 'attrdef_in_use' => 'Definizione di attributo ancora in uso', 'attrdef_management' => 'Gestione attributi', 'attrdef_maxvalues' => 'Numero di valori max.', @@ -200,6 +205,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 +397,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 +407,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 +417,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 +437,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 +447,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 +456,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 +465,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 +475,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', @@ -482,6 +496,8 @@ URL: [url]', 'download_header_review_state' => '', 'download_header_state' => '', 'download_links' => 'Collegamenti di scaricamento', +'download_link_email_body' => '', +'download_link_email_subject' => '', 'do_no_transfer_to_user' => '', 'do_object_repair' => 'Ripara tutte le cartelle e i documenti.', 'do_object_setchecksum' => 'Imposta il checksum', @@ -591,6 +607,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' => '', @@ -602,9 +619,11 @@ 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', +'extension_mgr_upload_disabled' => '', 'extension_missing_name' => '', 'extension_toggle_error' => '', 'extension_version_list' => 'Versioni', @@ -623,6 +642,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 +652,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 +661,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 +671,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 +680,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' => '', @@ -702,6 +726,7 @@ URL: [url]', 'hu_HU' => 'Ungherese', 'id' => 'ID', 'identical_version' => 'La nuova versione è identica a quella attuale.', +'id_ID' => 'Indonesiano', 'import' => 'Importa', 'importfs' => 'Importa da file system/disco', 'import_extension' => 'Importa estensione', @@ -900,6 +925,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 +934,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 +945,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 +959,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 +967,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', @@ -951,9 +981,11 @@ URL: [url]', 'no_current_version' => 'La corrente versione di SeedDMS non è aggiornata. La versione più recente disponibile è la [latestversion].', 'no_default_keywords' => 'Nessuna parola-chiave disponibile', 'no_docs_checked_out' => 'Nessun documento approvato', +'no_docs_draft' => '', 'no_docs_expired' => '', 'no_docs_locked' => 'Nessun documento bloccato.', 'no_docs_needs_correction' => 'Nessun documento che necessita di correzioni', +'no_docs_obsolete' => '', 'no_docs_rejected' => 'Nessun documento rifiutato', 'no_docs_to_approve' => 'Non ci sono documenti che richiedano approvazione.', 'no_docs_to_look_at' => 'Non ci sono documenti che richiedano attenzione.', @@ -974,6 +1006,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', @@ -983,6 +1016,14 @@ URL: [url]', 'old' => 'Vecchio', 'only_jpg_user_images' => 'Possono essere utilizzate solo immagini di tipo jpeg', 'operation_disallowed' => '', +'orderby' => '', +'orderby_date_asc' => '', +'orderby_date_desc' => '', +'orderby_id_asc' => '', +'orderby_id_desc' => '', +'orderby_name_asc' => '', +'orderby_name_desc' => '', +'orderby_unsorted' => '', 'order_by_sequence_off' => 'Ordina in sequenza disabilitato', 'original_filename' => 'Nome file originale', 'overall_indexing_progress' => 'Totale processo di indicizzazione', @@ -995,6 +1036,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,7 +1054,10 @@ 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_invalid_hash' => '', +'password_forgotten_invalid_hash_title' => '', '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.', 'password_forgotten_title' => 'Password inviata', @@ -1065,6 +1110,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 +1119,12 @@ 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_body_html' => '', +'receipt_submit_email_subject' => '', 'receipt_summary' => 'Sommario ricezione', 'receipt_update_failed' => 'Conferma della ricezione non riuscita', 'recent_uploads' => 'Caricamenti recenti', @@ -1084,6 +1134,7 @@ URL: [url]', 'reception_rejected' => 'Ricezione respinta', 'recipients' => 'Cartelle', 'recipient_already_removed' => 'Il destinatario è già stato rimosso o riconosciuto come destinatario.', +'record_type' => '', 'redraw' => 'Ridisegna', 'refresh' => 'Ricarica', 'rejected' => 'Rifiutato', @@ -1094,6 +1145,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 +1157,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 +1166,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 +1176,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 +1190,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 +1211,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 +1223,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 +1235,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 +1260,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 +1278,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 +1321,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', @@ -1314,6 +1377,7 @@ URL: [url]', 'select_mimetype' => '', 'select_one' => 'Seleziona uno', 'select_owner' => '', +'select_record_type' => '', 'select_status' => '', 'select_user' => 'Seleziona utente', 'select_users' => 'Clicca per selezionare gli utenti', @@ -1391,7 +1455,7 @@ Name: [username] 'settings_createdirectory' => 'Crea cartella', 'settings_currentvalue' => 'Valore corrente', 'settings_Database' => 'Impostazioni database', -'settings_dateformat' => '', +'settings_dateformat' => 'Formato Data', 'settings_dateformat_desc' => '', 'settings_datetimeformat' => '', 'settings_datetimeformat_desc' => '', @@ -1412,6 +1476,8 @@ Name: [username] 'settings_defaultDocPosition_desc' => 'Questa è la posizione predefinita all\'interno di una cartella, quando viene creato un documento', 'settings_defaultDocPosition_val_end' => 'fine', 'settings_defaultDocPosition_val_start' => 'inizio', +'settings_defaultFolderPosition' => '', +'settings_defaultFolderPosition_desc' => '', 'settings_defaultSearchMethod' => 'Metodo di ricerca predefinito', 'settings_defaultSearchMethod_desc' => 'Metodo di ricerca predefinito, quando la ricerca viene avviata dal modulo di ricerca nel menu principale.', 'settings_defaultSearchMethod_valdatabase' => 'database', @@ -1454,6 +1520,12 @@ Name: [username] 'settings_enableDuplicateSubFolderNames_desc' => 'Permetti di avere nomi duplicati di sottocartelle in una cartella.', 'settings_enableEmail' => 'Abilita l\'email', 'settings_enableEmail_desc' => 'Abilita/disabilita la notifica automatica via email', +'settings_enableExtensionDownload' => '', +'settings_enableExtensionDownload_desc' => '', +'settings_enableExtensionImport' => '', +'settings_enableExtensionImportFromRepository' => '', +'settings_enableExtensionImportFromRepository_desc' => '', +'settings_enableExtensionImport_desc' => '', 'settings_enableFilterReceipt' => 'Filtra per proprietario, revisore, ecc. dall\'elenco delle ricezioni', 'settings_enableFilterReceipt_desc' => 'Abilita, per poter filtrare dei destinatari da un elenco di ricezioni se i membri di un gruppo sono selezionati.', 'settings_enableFolderTree' => 'Visualizza la struttura ad albero', @@ -1532,6 +1604,7 @@ Name: [username] 'settings_expandFolderTree_val0' => 'Inizia con l\'albero nascosto', 'settings_expandFolderTree_val1' => 'Inizia con l\'albero aperto ed il primo livello espanso', 'settings_expandFolderTree_val2' => 'Inizia con l\'albero aperto e completamente espanso', +'settings_ExtensionMgr' => '', 'settings_Extensions' => 'Estensioni', 'settings_extraPath' => 'Percorso addizionale per gli include PHP', 'settings_extraPath_desc' => 'Percorso verso software aggiuntivo: per esempio la cartella contenente la sottocartella ADOdb o software Pear aggiuntivi.', @@ -1595,6 +1668,8 @@ Name: [username] 'settings_more_settings' => 'Ulteriori configurazioni. Login di default: admin/admin', 'settings_noDocumentFormFields' => 'Non mostrare questi campi', 'settings_noDocumentFormFields_desc' => 'Questo campo non verrà mostrato quando aggiungi o modifichi un documento. Il valore esistente verrà conservato.', +'settings_noFolderFormFields' => '', +'settings_noFolderFormFields_desc' => '', 'settings_notfound' => 'Non trovato', 'settings_Notification' => 'Impostazioni di notifica', 'settings_notwritable' => 'La configurazione non può essere salvata perchè il file di configurazione non può essere sovrascritto.', @@ -1754,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' => '', @@ -1776,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' => '', @@ -1798,6 +1877,7 @@ Name: [username] 'splash_inherit_access' => 'Il diritto di accesso verrà ereditato', 'splash_invalid_folder_id' => 'ID cartella non valido', 'splash_invalid_searchterm' => 'Termine di ricerca non valido', +'splash_invalid_search_service' => '', 'splash_link_document' => 'Collegamento aggiunto', 'splash_moved_clipboard' => 'Appunti trasferiti nella cartella corrente', 'splash_move_document' => 'Documento spostato', @@ -1807,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', @@ -1955,6 +2037,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', @@ -2002,6 +2085,7 @@ URL: [url]', 'uploaded_by' => 'Caricato da', 'uploading_failed' => 'Upload fallito. Controllare la dimensione massima caricabile consentita.', 'uploading_maxsize' => 'Il file caricato supera la dimensione massima consentita.', +'uploading_postmaxsize' => '', 'uploading_zerosize' => 'Si sta caricando un file vuoto. Operazione abortita.', 'used_discspace' => 'Spazio su disco occupato', 'user' => 'Utente', @@ -2029,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] @@ -2036,6 +2123,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', @@ -2064,6 +2152,7 @@ URL: [url]', 'workflow_initstate' => 'Stato iniziale', 'workflow_in_use' => 'Questo flusso di lavoro è attualmente usato da alcuni documenti', 'workflow_layoutdata_saved' => 'Dati di layout salvati', +'workflow_log' => '', 'workflow_management' => 'Gestione flusso di lavoro', 'workflow_name' => 'Nome', 'workflow_no_doc_rejected_state' => 'Il documento non verrà rifiutato in uno stato di flusso di lavoro!', diff --git a/languages/ko_KR/lang.inc b/languages/ko_KR/lang.inc index dd99c2e9d..7fd0deb52 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' => '승인 그룹', @@ -128,6 +130,7 @@ URL: [url]', 상위폴더: [folder_path] 사용자: [username] URL: [url]', +'approval_request_email_body_html' => '', 'approval_request_email_subject' => '[sitename] : [name ] - 승인 요청', 'approval_status' => '승인 상태', 'approval_submit_email' => '제출 승인', @@ -139,6 +142,7 @@ URL: [url]', 코맨트: [comment] 사용자: [username] URL: [url]', +'approval_submit_email_body_html' => '', 'approval_submit_email_subject' => '[sitename]: [name] - 제출 승인', 'approval_summary' => '승인 개요', 'approval_update_failed' => '승인 상태를 업데이트 중 오류가 발생. 업데이트 실패.', @@ -162,6 +166,7 @@ URL: [url]', 'attrdefgrp_show_searchlist' => '검색 결과', 'attrdef_exists' => '이미 존재하는 속성', 'attrdef_info' => '속성정보', +'attrdef_invalid_regex' => '', 'attrdef_in_use' => '사용중인 속성 정의', 'attrdef_management' => '속성 관리', 'attrdef_maxvalues' => '최대수', @@ -200,6 +205,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 +400,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 +410,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 +420,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 +440,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 +450,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 +459,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 +471,7 @@ URL: [url]', 상위 폴더: [folder_path] 사용자: [username] URL: [url]', +'document_updated_email_body_html' => '', 'document_updated_email_subject' => '[name]:[sitename] - 업데이트 된 문서', 'document_versions' => '', 'does_not_expire' => '만료 안됨', @@ -478,6 +492,8 @@ URL: [url]', 'download_header_review_state' => '', 'download_header_state' => '', 'download_links' => '', +'download_link_email_body' => '', +'download_link_email_subject' => '', 'do_no_transfer_to_user' => '', 'do_object_repair' => '모든 폴더와 문서를 복구', 'do_object_setchecksum' => '오류 검사', @@ -587,6 +603,7 @@ URL: [url]', 상위 폴더: [folder_path] 사용자: [username] URL: [url]', +'expiry_changed_email_body_html' => '', 'expiry_changed_email_subject' => '[sitename] : [name] - 유효 기간 변경', 'export' => '내보내기', 'export_user_list_csv' => '', @@ -598,9 +615,11 @@ 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' => '', +'extension_mgr_upload_disabled' => '', 'extension_missing_name' => '', 'extension_toggle_error' => '', 'extension_version_list' => '', @@ -619,6 +638,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 +648,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 +657,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 +667,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 +676,7 @@ URL : [url]', 이전 이름: [old_name 사용자: [username] URL: [url]', +'folder_renamed_email_body_html' => '', 'folder_renamed_email_subject' => '[sitename] : [name] - 폴더 이름', 'folder_title' => '폴더 \'[foldername]\'', 'foot_note' => '', @@ -698,6 +722,7 @@ URL: [url]', 'hu_HU' => '헝가리어', 'id' => 'ID', 'identical_version' => '새 버전은 최신 버전으로 동일하다.', +'id_ID' => '', 'import' => '가져오기', 'importfs' => '파일시스템으로부터 가져오기', 'import_extension' => '', @@ -896,6 +921,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 +930,7 @@ URL: [url]', 코멘트: [comment] 사용자: [username] URL: [url]', +'new_file_email_body_html' => '', 'new_file_email_subject' => '[sitename] : [document] - 새 첨부 파일', 'new_folder' => '새 폴더', 'new_password' => '새 암호', @@ -914,6 +941,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 +955,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 +963,7 @@ URL: [url]', 상위 폴더: [folder_path] 사용자: [username] URL : [url]', +'notify_deleted_email_body_html' => '', 'notify_deleted_email_subject' => '[sitename]: [name] - 알림목록으로부터 제거됨', 'not_subscribed' => '', 'november' => '11월', @@ -947,9 +977,11 @@ URL : [url]', 'no_current_version' => '당신은 이전 버전의 SeedDMS를 사용하고 있습니다. 사용 가능한 최신 버전은 [latestversion] 입니다.', 'no_default_keywords' => '사용 가능한 키워드가 존재하지 않습니다.', 'no_docs_checked_out' => '체크아웃 문서가 없습니다.', +'no_docs_draft' => '', 'no_docs_expired' => '', 'no_docs_locked' => '잠긴 문서가 없습니다.', 'no_docs_needs_correction' => '', +'no_docs_obsolete' => '', 'no_docs_rejected' => '', 'no_docs_to_approve' => '승인이 필요한 문서가 현재 없습니다.', 'no_docs_to_look_at' => '.주의가 필요한 문서가 현재 없습니다', @@ -970,6 +1002,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' => '치명적 오류', @@ -979,6 +1012,14 @@ URL : [url]', 'old' => '이전', 'only_jpg_user_images' => '.JPG - 이미지만 사용자가 이미지로 사용할 수 있습니다', 'operation_disallowed' => '', +'orderby' => '', +'orderby_date_asc' => '', +'orderby_date_desc' => '', +'orderby_id_asc' => '', +'orderby_id_desc' => '', +'orderby_name_asc' => '', +'orderby_name_desc' => '', +'orderby_unsorted' => '', 'order_by_sequence_off' => '순서에 의한 정렬 설정이 켜져 있습니다. 이 매개 변수를 사용하고 싶은 경우 이것을 활성화 해야 합니다.', 'original_filename' => '원래본 파일명', 'overall_indexing_progress' => '전체 색인 진행률', @@ -991,6 +1032,7 @@ URL : [url]', 새 사용자 : [new_owner] 사용자 : [username] URL : [url]', +'ownership_changed_email_body_html' => '', 'ownership_changed_email_subject' => '[sitename] : [name] - 소유자 변경', 'password' => '암호', 'password_already_used' => '예전에 쓰인 암호', @@ -1000,7 +1042,10 @@ 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_invalid_hash' => '', +'password_forgotten_invalid_hash_title' => '', 'password_forgotten_send_hash' => '사용자의 이메일 주소로 전송 진행 방법에 대한 지침', 'password_forgotten_text' => '아래의 양식을 작성하시고 당신에게 보낼 이메일에 있는 지시 사항을 따르십시오.', 'password_forgotten_title' => '비밀번호 전송', @@ -1047,11 +1092,16 @@ 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_body_html' => '', +'receipt_submit_email_subject' => '', 'receipt_summary' => '접수증 요약', 'receipt_update_failed' => '', 'recent_uploads' => '', @@ -1061,6 +1111,7 @@ URL : [url]', 'reception_rejected' => '', 'recipients' => '받는 사람', 'recipient_already_removed' => '', +'record_type' => '', 'redraw' => '다시 그리기', 'refresh' => '새로 고침', 'rejected' => '거부', @@ -1071,6 +1122,7 @@ URL : [url]', 문서: [document] 사용자: [username] URL : [url]', +'removed_file_email_body_html' => '', 'removed_file_email_subject' => '[sitename] : [document] - 제거 된 첨부 파일', 'removed_recipient' => '수신자 목록에서 제거되었습니다.', 'removed_reviewer' => '사용자기 검토자 목록에서 제거되었습니다.', @@ -1082,6 +1134,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 +1143,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 +1153,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 +1167,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 +1188,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 +1200,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 +1212,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 +1232,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 +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' => '속성 정의 제거', @@ -1231,6 +1293,7 @@ URL: [url]', 상위 폴더: [folder_path] 사용자: [username] URL : [url]', +'run_subworkflow_email_body_html' => '', 'run_subworkflow_email_subject' => '[sitename] : [name] - 서브 워크플로우가 시작되었다', 'ru_RU' => '러시아', 'saturday' => '토요일', @@ -1286,6 +1349,7 @@ URL : [url]', 'select_mimetype' => '', 'select_one' => '선택', 'select_owner' => '', +'select_record_type' => '', 'select_status' => '', 'select_user' => '', 'select_users' => '사용자를 선택합니다', @@ -1379,6 +1443,8 @@ URL : [url]', 'settings_defaultDocPosition_desc' => '', 'settings_defaultDocPosition_val_end' => '', 'settings_defaultDocPosition_val_start' => '', +'settings_defaultFolderPosition' => '', +'settings_defaultFolderPosition_desc' => '', 'settings_defaultSearchMethod' => '기본 검색 방법 설정', 'settings_defaultSearchMethod_desc' => '기본 검색 설정', 'settings_defaultSearchMethod_valdatabase' => '기본 검색 방법 설정', @@ -1421,6 +1487,12 @@ URL : [url]', 'settings_enableDuplicateSubFolderNames_desc' => '', 'settings_enableEmail' => '전자 메일 사용', 'settings_enableEmail_desc' => '자동화 전자우편 알림 활성화/비활성화', +'settings_enableExtensionDownload' => '', +'settings_enableExtensionDownload_desc' => '', +'settings_enableExtensionImport' => '', +'settings_enableExtensionImportFromRepository' => '', +'settings_enableExtensionImportFromRepository_desc' => '', +'settings_enableExtensionImport_desc' => '', 'settings_enableFilterReceipt' => '', 'settings_enableFilterReceipt_desc' => '', 'settings_enableFolderTree' => '폴더 트리 사용', @@ -1499,6 +1571,7 @@ URL : [url]', 'settings_expandFolderTree_val0' => '숨겨진 Tree로 시작', 'settings_expandFolderTree_val1' => '보이는 Tree로 시작 및 첫 번째 레벨 확장', 'settings_expandFolderTree_val2' => '보이는 Tree로 시작 및 전체 레벨 확장', +'settings_ExtensionMgr' => '', 'settings_Extensions' => '확장자', 'settings_extraPath' => '추가 PHP 경로', 'settings_extraPath_desc' => '추가 소프트웨어의 경로. 예를 들어 이 디렉토리는 ADODB 또는 추가 pear packages를 포함 합니다', @@ -1562,6 +1635,8 @@ URL : [url]', 'settings_more_settings' => '기타 설정을 구성합니다. 기본 로그인 : admin/admin', 'settings_noDocumentFormFields' => '', 'settings_noDocumentFormFields_desc' => '', +'settings_noFolderFormFields' => '', +'settings_noFolderFormFields_desc' => '', 'settings_notfound' => '찾을 수 없음', 'settings_Notification' => '알림 설정', 'settings_notwritable' => '구성값을 저장할 수 없습니다 구성 파일에 쓰기 권한이 없습니다.', @@ -1721,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' => '', @@ -1743,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' => '', @@ -1765,6 +1844,7 @@ URL : [url]', 'splash_inherit_access' => '', 'splash_invalid_folder_id' => '잘못된 폴더 ID', 'splash_invalid_searchterm' => '잘못된 검색 범위', +'splash_invalid_search_service' => '', 'splash_link_document' => '', 'splash_moved_clipboard' => '클립 보드가 현재 폴더로 이동', 'splash_move_document' => '문서 옮겨짐', @@ -1774,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' => '', @@ -1922,6 +2004,7 @@ URL : [url]', 상위 폴더: [folder_path] 사용자: [username] URL : [url]', +'transition_triggered_email_body_html' => '', 'transition_triggered_email_subject' => '[sitename] : [name] - 워크플로우 전환이 트리거', 'transmittal' => '전송', 'transmittalitem_removed' => '송부 항목 삭제', @@ -1969,6 +2052,7 @@ URL : [url]', 'uploaded_by' => '업로드', 'uploading_failed' => '파일 업로드중 실패 최대. 업로드 파일 크기를 확인하시기 바랍니다.', 'uploading_maxsize' => '최대 업로드 파일 크기를 초과하였습니다.', +'uploading_postmaxsize' => '', 'uploading_zerosize' => '빈 파일을 업로드 합니다. 업로드가 취소 됩니다.', 'used_discspace' => '사용된 디스크 공간', 'user' => '사용자', @@ -1996,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] @@ -2003,6 +2090,7 @@ URL : [url]', 상위 폴더: [folder_path] 사용자: [username] URL : [url]', +'version_deleted_email_body_html' => '', 'version_deleted_email_subject' => '[sitename] : [name] - 버전 삭제', 'version_info' => '버전 정보', 'view' => '보기', @@ -2031,6 +2119,7 @@ URL : [url]', 'workflow_initstate' => '초기 상태', 'workflow_in_use' => '이 워크플로는 현재 문서에서 사용 됩니다.', 'workflow_layoutdata_saved' => '', +'workflow_log' => '', 'workflow_management' => '워크플로우 관리', 'workflow_name' => '이름', 'workflow_no_doc_rejected_state' => '', diff --git a/languages/lo_LA/lang.inc b/languages/lo_LA/lang.inc index de194a948..50075ee2b 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' => 'ກຸ່ມທີໄດ້ຮັບການອະນຸມັດ', @@ -128,6 +130,7 @@ URL: [url]', ໂຟລເດີຫຼັກ: [folder_path] ຜູ້ໃຊ້: [username] URL: [url]', +'approval_request_email_body_html' => '', 'approval_request_email_subject' => '[sitename]:[name] - ຄຳຂໍອະນຸມັດ', 'approval_status' => 'ສະຖານະການອະນຸມັດ', 'approval_submit_email' => '', @@ -139,6 +142,7 @@ URL: [url]', ສະແດງຄວາມຄິດເຫັນ: [comment] ຜູ້ໃຊ້: [username] URL: [url]', +'approval_submit_email_body_html' => '', 'approval_submit_email_subject' => '[sitename]:[name] ສົ່ງຄຳຂໍອະນຸມັດແລ້ວ', 'approval_summary' => 'ສະຫຼຸບການອະນຸມັດ', 'approval_update_failed' => 'ເກີດຂໍຜິດພາດໃນການອັບເດດສະຖານະການອະນຸມັດ ການອັບເດດໄດ້ລົ້ມເຫລວ', @@ -162,6 +166,7 @@ URL: [url]', 'attrdefgrp_show_searchlist' => 'ຜົນການຄົ້ນຫາ', 'attrdef_exists' => 'ຄວາມຫມາຍຂອງຄຳວ່າລັກສະນະແມ່ນມີຫຼາຍຢູ່ແລ້ວ', 'attrdef_info' => 'ຂໍ້ມູນ', +'attrdef_invalid_regex' => '', 'attrdef_in_use' => 'ນຶຍາມຂອງຄຳວ່າລັກສະນະຍັງມີການນຳໃຊ້ຢູ່', 'attrdef_management' => 'ການຈັດການຄວາມຫມາຍຂອງຄຳວ່າລັກສະນະ', 'attrdef_maxvalues' => 'ຈຳນວນ ມູນຄ່າຫຼາຍສຸດ', @@ -198,6 +203,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 +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' => 'ປ່ຽນຄວາມຄິດເຫັນ @@ -398,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' => 'ຈຳນວນເອກະສານ', @@ -407,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' => '', @@ -426,6 +435,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 +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' => 'ປ່ຽນສະຖານະເອກະສານແລ້ວ @@ -443,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' => 'ອັບເດດເອກະສານແລ້ວ @@ -455,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' => 'ຍັງບໍ່ຫມົດອາຍຸ', @@ -475,6 +489,8 @@ URL: [url]', 'download_header_review_state' => '', 'download_header_state' => '', 'download_links' => 'ດາວໂຫລດລິ້ງ', +'download_link_email_body' => '', +'download_link_email_subject' => '', 'do_no_transfer_to_user' => '', 'do_object_repair' => 'ສ້ອມແຊມໂຟລເດີ ແລະເອກະສານທັງໝົດ', 'do_object_setchecksum' => 'ຕັ້ງຄ່າການກວດສອບ', @@ -584,6 +600,7 @@ URL: [url]', ໂຟລເດີຫຼັກ: [folder_path] ໂຟລເດີຫຼັກ: [username] URL: [url]', +'expiry_changed_email_body_html' => '', 'expiry_changed_email_subject' => '[sitename]:[name] - ວັນໝົດອາຍຸໄດ້ປ່ຽນແລ້ວ', 'export' => 'ສົ່ງອອກ', 'export_user_list_csv' => '', @@ -595,9 +612,11 @@ 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' => '', +'extension_mgr_upload_disabled' => '', 'extension_missing_name' => '', 'extension_toggle_error' => '', 'extension_version_list' => '', @@ -616,6 +635,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 +645,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 +654,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 +664,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 +673,7 @@ URL: [url]', ຊື່ເກົ່າ: [old_name] ຜູ້ໄຊ້: [username] URL: [url]', +'folder_renamed_email_body_html' => '', 'folder_renamed_email_subject' => '[sitename]:[name] - ປ່ຽນຊື່ໂຟລເດີ', 'folder_title' => 'ໂຟລເດີ "[foldername] "', 'foot_note' => '', @@ -695,6 +719,7 @@ URL: [url]', 'hu_HU' => 'ຮັງກາລີ', 'id' => 'ໄອດີ', 'identical_version' => 'ເວີຊັນໄຫມ່ຈະຄືກັບເວີຊັ້ນປະຈຸບັນ', +'id_ID' => '', 'import' => 'ນຳເຂົ້າ', 'importfs' => 'ນຳເຂົ້າຈາກຟາຍລະບົບ', 'import_extension' => '', @@ -893,6 +918,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 +927,7 @@ URL: [url]', ຄວາມຄິດເຫັນ: [comment] ຜູ້ໄຊ້: [username] URL: [url]', +'new_file_email_body_html' => '', 'new_file_email_subject' => '[sitename]:[document] - ແນບໄຟລໄຫມ່', 'new_folder' => 'ແຟ້ມໄຫມ່', 'new_password' => 'ລະຫັດຜ່ານໄຫມ່', @@ -911,6 +938,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 +952,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 +960,7 @@ URL: [url]', ໂຟລເດີຫຼັກ: [folder_path] ຜູ້ໄຊ້: [username] URL: [url]', +'notify_deleted_email_body_html' => '', 'notify_deleted_email_subject' => '[sitename]:[name] - ນຳອອກຈາກການແຈ້ງເຕືອນແລ້ວ', 'not_subscribed' => '', 'november' => 'ເດືອນພະຈິກ', @@ -944,9 +974,11 @@ URL: [url]', 'no_current_version' => 'ເຈົ້າກຳລັງນຳໄຊ້ເວີຊັນເກົ່າຄື ຊິສ DMS. ສວນເວີຊັນທີ່ມີຢູ່ລ້າສຸດຄື [latestversion]', 'no_default_keywords' => 'ບໍ່ມີຄຳຫລັກ', 'no_docs_checked_out' => 'ບໍ່ມີເອກະສານທີ່ເອົາອອກໄປ', +'no_docs_draft' => '', 'no_docs_expired' => '', 'no_docs_locked' => 'ເອກະສານທີ່ບໍຖືກລັອກ', 'no_docs_needs_correction' => '', +'no_docs_obsolete' => '', 'no_docs_rejected' => 'ບໍ່ມີເອກະສານທີຖືກປະຕິເສດ', 'no_docs_to_approve' => 'ປະຈຸບັນນີ້ຍັງບໍ່ມີເອກະສານທີ່ຕ້ອງການຮັບອານຸມັດ', 'no_docs_to_look_at' => 'ບໍ່ມີເອກະສານທີຕ້ອງມີຄວາມເອົາໃຈໄສ່', @@ -967,6 +999,7 @@ URL: [url]', 'no_user_image' => 'ບໍ່ມີຮູບພາບ', 'no_version_check' => 'ການກວດສອບເວີຊັນໄຫມ່ທີກ່ຽວຂອງ DMSລົ້ມເຫຼວ! ເຊີ່ງອາດຈະເກີດຈາກການຕັ້ງຄ່າ-ຢູອາເອວ-ໂຟລເດີ ເປັນ0 ໃນການກຳນົດຄ່າ PHP ຂອງທ່ານ', 'no_version_modification' => 'ບໍ່ມີການປ່ຽນເວີຊັນ', +'no_workflows' => '', 'no_workflow_available' => 'ບໍ່ມີເວີກໂຟລທີ່ພ້ອມໄຊ້ງານ', 'objectcheck' => 'ການກວດສອບໂຟລເດີ / ເອກະສານ', 'object_check_critical' => 'ຂໍ້ຜິດພາດທີ່ສຳຄັນ', @@ -976,6 +1009,14 @@ URL: [url]', 'old' => 'ເກົ່າ', 'only_jpg_user_images' => 'ອາດໄຊ້ພາບ ຈິພີເຈ ເປັນພາບຂອງຜູ້ນຳໄຊ້ເທົ່ານັ້ນ', 'operation_disallowed' => '', +'orderby' => '', +'orderby_date_asc' => '', +'orderby_date_desc' => '', +'orderby_id_asc' => '', +'orderby_id_desc' => '', +'orderby_name_asc' => '', +'orderby_name_desc' => '', +'orderby_unsorted' => '', 'order_by_sequence_off' => 'ການສັ່ງຊື້ຕາມລຳດັບຖືກປິດຢູ່ການຕັ້ງຄ່າ, ຖ້າເຈົ້າຕ້ອງການໃຫ້ພາລາມິດເຕີນີ້ໄດ້ຮັບຜົນ, ເຈົ້າຈະຕ້ອງເປີດໄຊ້ງານອີກຄັ້ງ', 'original_filename' => 'ຊື່ໄຟລຕົ້ນສະບັບ', 'overall_indexing_progress' => 'ຄວາມຄືບໜ້າການເຮັດດັດສະນີໂດຍລວມ', @@ -988,6 +1029,7 @@ URL: [url]', ເຈົ້າຂອງໄຫມ່: [new_owner] ຜູ້ໄຊ້: [username] URL: [url]', +'ownership_changed_email_body_html' => '', 'ownership_changed_email_subject' => '[sitename]:[name] - ປ່ຽນເຈົ້າຂອງແລ້ວ', 'password' => 'ລະຫັດຜ່ານ', 'password_already_used' => 'ລະຫັດຜ່ານທີນຳໄຊ້ແລ້ວ', @@ -1005,7 +1047,10 @@ URL: [url]', [url_prefix]out/out.ChangePassword.php?hash=[hash] ຖ້າຫາກເຈົ້າຍັງມີບັນຫາໃນການເຊົ້າສູ້ລະບົບ, ກະລຸນາຕິດຕໍ່ຫາຜູ້ດູແລລະບົບຂອງທ່ານ.', +'password_forgotten_email_body_html' => '', 'password_forgotten_email_subject' => '[sitename]: ລື່ມລະຫັດຜ່ານ', +'password_forgotten_invalid_hash' => '', +'password_forgotten_invalid_hash_title' => '', 'password_forgotten_send_hash' => 'ຄຳແນະນຳໃນການດຳເນີນການຖືກສົ່ງໄປຫາອີເມວຂອງຜູ້ນຳໄຊ້', 'password_forgotten_text' => 'ກະລຸນາຂຽນແບບຟອມດ້ານລຸ່ມ ແລະເຮັດຕາມຄຳແນະນຳໃນອີເມວທີໄດ້ສົ່ງຫາເຈົ້າ', 'password_forgotten_title' => 'ສົ່ງລະຫັດຜ່ານ', @@ -1058,6 +1103,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 +1112,12 @@ 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_body_html' => '', +'receipt_submit_email_subject' => '', 'receipt_summary' => 'ສະຫຼູບໃບບິນ', 'receipt_update_failed' => 'ການຍອມຮັບສັນຍານບໍ່ສຳເລັດ', 'recent_uploads' => '', @@ -1077,6 +1127,7 @@ URL: [url]', 'reception_rejected' => 'ປະຕິເສດການຕ້ອນຮັບ', 'recipients' => 'ຜູ້ຮັບ', 'recipient_already_removed' => '', +'record_type' => '', 'redraw' => 'ຂຽນໄຫມ່', 'refresh' => 'ລີເຟສ', 'rejected' => 'ປະຕິເສດ', @@ -1087,6 +1138,7 @@ URL: [url]', ເອກະສານ: [document] ຜູ້ໄຊ້: [username] URL: [url]', +'removed_file_email_body_html' => '', 'removed_file_email_subject' => '[sitename]:[document] - ຍ້າຍໄຟລທີແນບບອອກ', 'removed_recipient' => 'ຖືກຍ້າຍອອກຈາກລາຍຊື່ຜູ້ຮັບ', 'removed_reviewer' => 'ຖືກລົບອອກຈາກລາຍຊື່ຜູ້ກວດກາແລ້ວ', @@ -1098,6 +1150,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 +1159,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 +1169,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 +1183,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 +1204,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 +1216,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 +1228,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 +1253,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 +1271,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 +1314,7 @@ URL: [url]', ໂຟລເດີຫຼັກ: [folder_path] ຜູ້ໄຊ້: [username] URL: [url]', +'run_subworkflow_email_body_html' => '', 'run_subworkflow_email_subject' => '[sitename]:[name] - ໄດ້ເລີ່ມເຮັດວຽກຍ່ອຍໆ ແລ້ວ', 'ru_RU' => 'ລັດເຊຍ', 'saturday' => 'ວັນເສົາ', @@ -1307,6 +1370,7 @@ URL: [url]', 'select_mimetype' => '', 'select_one' => 'ເລືອກໜື່ງອັນ', 'select_owner' => '', +'select_record_type' => '', 'select_status' => '', 'select_user' => '', 'select_users' => 'ຄິກເພື່ອເລືອກຜູ້ໄຊ້', @@ -1405,6 +1469,8 @@ URL: [url]', 'settings_defaultDocPosition_desc' => '', 'settings_defaultDocPosition_val_end' => '', 'settings_defaultDocPosition_val_start' => '', +'settings_defaultFolderPosition' => '', +'settings_defaultFolderPosition_desc' => '', 'settings_defaultSearchMethod' => 'ວິທີການຄົ້ນຫາຂັ້ນເລີ່ມຕົ້ນ', 'settings_defaultSearchMethod_desc' => 'ວິທີການຄົ້ນຫາແບບເລີ້ມຕົ້ນ ເມືອການຄົ້ນຫາເລີ່ມຈາກແບບຟອມການຄົ້ນຫາໃນເມນູ', 'settings_defaultSearchMethod_valdatabase' => 'ຖານຂໍ້ມູນ', @@ -1447,6 +1513,12 @@ URL: [url]', 'settings_enableDuplicateSubFolderNames_desc' => '', 'settings_enableEmail' => 'ເປີດໄຊ້ອີເມວ', 'settings_enableEmail_desc' => 'ເປີດ/ປິດໄຊ້ງານການແຈ້ງເຕືອນທາງອີເມວໂດຍອັດຕະໂນມັດ', +'settings_enableExtensionDownload' => '', +'settings_enableExtensionDownload_desc' => '', +'settings_enableExtensionImport' => '', +'settings_enableExtensionImportFromRepository' => '', +'settings_enableExtensionImportFromRepository_desc' => '', +'settings_enableExtensionImport_desc' => '', 'settings_enableFilterReceipt' => '', 'settings_enableFilterReceipt_desc' => '', 'settings_enableFolderTree' => 'ເປີດໄຊ້ທີໂຟລເດີ', @@ -1525,6 +1597,7 @@ URL: [url]', 'settings_expandFolderTree_val0' => 'ການເລີ່ມຕົ້ນດ້ວຍສາຂາຍ່ອຍ', 'settings_expandFolderTree_val1' => 'ເລີ່ມຕົ້ນສະແດງສາຂາແລະຂະຫຍາຍເປັນລະດັບທຳອິດ', 'settings_expandFolderTree_val2' => 'ເລີ້ມຕົ້ນສະແດງສາຂາທັງໝົດ', +'settings_ExtensionMgr' => '', 'settings_Extensions' => 'ການຂະຫຍາຍ', 'settings_extraPath' => 'ເສັ້ນທາງ PHP ລວມພິເສດ', 'settings_extraPath_desc' => 'ເສັ້ນທາງໄປຍັງຊັອບແວເພີ່ມເຕີມ ນີ້ແມ່ນໄດເລັກທໍລີ້ທີມີ ໄດເລັກທໍລີ້ adodb ຫຼືເພຍແພັກເກັດ', @@ -1588,6 +1661,8 @@ URL: [url]', 'settings_more_settings' => 'กำหนดค่าการตั้งค่าเพิ่มเติม ค่าเริ่มต้นการเข้าสู่ระบบ: ผู้ดูแลระบบ / ผู้ดูแลระบบ.', 'settings_noDocumentFormFields' => '', 'settings_noDocumentFormFields_desc' => '', +'settings_noFolderFormFields' => '', +'settings_noFolderFormFields_desc' => '', 'settings_notfound' => 'ເຂົ້າລະບົບ', 'settings_Notification' => 'ການຕັ້ງຄ່າການແຈ້ງເຕືອນ', 'settings_notwritable' => 'ການກຳນົດຄ່າທີ່ບໍ່ສາມາດບັນທືກໄດ້ຍ້ອນວ່າໄຟລກຳນົດຄ່າບໍ່ສາມາດຂຽນໄດ້', @@ -1747,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' => '', @@ -1769,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' => '', @@ -1791,6 +1870,7 @@ URL: [url]', 'splash_inherit_access' => '', 'splash_invalid_folder_id' => 'ID ໂຟລເດີບໍ່ຖືກຕ້ອງ', 'splash_invalid_searchterm' => 'ຄຳຄົນຫາບໍ່ຖືກຕ້ອງ', +'splash_invalid_search_service' => '', 'splash_link_document' => '', 'splash_moved_clipboard' => 'ຍ້າຍຄິບບອດໄປທີ່ໂຟລເດີປັດຈຸບັນແລ້ວ', 'splash_move_document' => 'ຍ້າຍເອກະສານແລ້ວ', @@ -1800,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' => 'ຍົກເລີກການລົບແລ້ວ', @@ -1948,6 +2030,7 @@ URL: [url]', ໂຟລເດີຫຼັກ: [folder_path] ຜູ້ໄຊ້: [username] URL: [url]', +'transition_triggered_email_body_html' => '', 'transition_triggered_email_subject' => '[sitename]:[name] - ປ່ຽນກະບ່ວນການເຮັດວຽກ', 'transmittal' => 'ການສົ່ງ', 'transmittalitem_removed' => 'ລົບລາຍການທີ່ສົງຜ່ານໄປແລ້ວ', @@ -1995,6 +2078,7 @@ URL: [url]', 'uploaded_by' => 'ອັບໂຫລດໂດຍ', 'uploading_failed' => 'ການອັບໂຫລດໜື່ງໄຟລຂອງທ່ານລົ້ມເຫຼວ ກະລຸນາກວດສອບຂະໜາດໄຟລສູງສຸດສຳລັບການອັບໂຫລດ', 'uploading_maxsize' => 'ໄຟລທີອັບໂຫລດມີຂະໜາດໃຫ່ຍກວ່າໄຟລທີມີຂະໜາດອັບໂຫລດສູງສຸດ', +'uploading_postmaxsize' => '', 'uploading_zerosize' => 'ການອັບໂຫລດໄຟລເປົ່າ, ການອັບໂຫຼດຖຶກຍົກເລີກ', 'used_discspace' => 'ໄຊ້ເນື້ອທີດິສ', 'user' => 'ຜູ້ໄຊ້ງານ', @@ -2022,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] @@ -2029,6 +2116,7 @@ URL: [url]', ໂຟລເດີຫຼັກ: [folder_path] ຜູ້ໄຊ້: [username] URL: [url]', +'version_deleted_email_body_html' => '', 'version_deleted_email_subject' => '[sitename]:[name] - ເວີຊັ້ນທີຖືກລົບ', 'version_info' => 'ຂໍ້ມູນເວີຊັນ', 'view' => 'ດູ', @@ -2057,6 +2145,7 @@ URL: [url]', 'workflow_initstate' => 'ສະຖານະເລີມຕົ້ນ', 'workflow_in_use' => 'ວິທີການດຳເນີນງານນີ້ຖືກໄຊ້ໂດຍເອກະສານ', 'workflow_layoutdata_saved' => 'ບັນທືກຂໍ້ມູນໂຄງຮ່າງແລ້ວ', +'workflow_log' => '', 'workflow_management' => 'ການຈັດການເວີກໂຟລ', 'workflow_name' => 'ຊື່', 'workflow_no_doc_rejected_state' => 'ເອກະສານຈະບໍ່ຖືກປະຕິເສດໃນຖານະຂອງເວີກໂຟລ', diff --git a/languages/nb_NO/lang.inc b/languages/nb_NO/lang.inc index 4c2b7a3d9..bd5b2ef94 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', @@ -128,6 +130,7 @@ Versjon: [version] Overordnet mappe: [folder_path] Bruker: [username] URL: [url]', +'approval_request_email_body_html' => '', 'approval_request_email_subject' => '[sitename]: [name] - Godkjennings forespørsel', 'approval_status' => 'Godkjennings status', 'approval_submit_email' => 'godkjenning av sendt epost', @@ -139,6 +142,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.', @@ -162,6 +166,7 @@ URL: [url]', 'attrdefgrp_show_searchlist' => 'Søkeresultat', 'attrdef_exists' => 'Egenskaps definisjon eksisterer allerede', 'attrdef_info' => 'Informasjon', +'attrdef_invalid_regex' => '', 'attrdef_in_use' => 'Egenskaps definisjon fortsatt i bruk', 'attrdef_management' => 'Styring av egenskaps definisjon', 'attrdef_maxvalues' => 'Maks. antall verdier', @@ -200,6 +205,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 +404,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 +414,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 +424,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 +444,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 +454,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 +463,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 +472,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 +482,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', @@ -489,6 +503,8 @@ URL: [url]', 'download_header_review_state' => '', 'download_header_state' => '', 'download_links' => 'Nedlastings link', +'download_link_email_body' => '', +'download_link_email_subject' => '', 'do_no_transfer_to_user' => '', 'do_object_repair' => 'Reparere alle mapper og dokumenter.', 'do_object_setchecksum' => 'Legg til checksum', @@ -598,6 +614,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' => '', @@ -609,9 +626,11 @@ 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', +'extension_mgr_upload_disabled' => '', 'extension_missing_name' => '', 'extension_toggle_error' => '', 'extension_version_list' => 'Versjon', @@ -637,6 +656,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 +666,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 +675,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 +685,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 +694,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', @@ -716,6 +740,7 @@ URL: [url]', 'hu_HU' => 'Ungarn', 'id' => 'Navn', 'identical_version' => 'Ny version er identisk med nåverende version.', +'id_ID' => '', 'import' => 'Import', 'importfs' => 'Import fra filsystem', 'import_extension' => 'Importer utvidelse', @@ -914,6 +939,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 +948,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 +959,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 +973,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 +981,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', @@ -965,9 +995,11 @@ URL: [url]', 'no_current_version' => 'Du har en gammal version av SeedDMS. Siste versionen er [latestversion].', 'no_default_keywords' => 'Ingen søkeord tilgjengelig', 'no_docs_checked_out' => 'Ingen dokumenter sjekket ut', +'no_docs_draft' => '', 'no_docs_expired' => 'Ingen utgåtte dokumenter', 'no_docs_locked' => 'Ingen låste dokumenter.', 'no_docs_needs_correction' => 'Ingen dokumenter som må rettes opp', +'no_docs_obsolete' => '', 'no_docs_rejected' => 'Ingen dokumenter avvist.', 'no_docs_to_approve' => 'Det er for øyeblikket ingen dokumenter som krever godkjenning.', 'no_docs_to_look_at' => 'Ingen dokumenter som trenger oppmerksomhet.', @@ -988,6 +1020,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!!', @@ -997,6 +1030,14 @@ URL: [url]', 'old' => 'Gammel', 'only_jpg_user_images' => 'Bare .jpg-bilder kan brukes som bruker-bilder', 'operation_disallowed' => '', +'orderby' => '', +'orderby_date_asc' => '', +'orderby_date_desc' => '', +'orderby_id_asc' => '', +'orderby_id_desc' => '', +'orderby_name_asc' => '', +'orderby_name_desc' => '', +'orderby_unsorted' => '', 'order_by_sequence_off' => 'Sortering etter sekvens er slått av i innstillingene. Hvis du vil at denne parameteren skal ha effekt, må du slå den på igjen.', 'original_filename' => 'Orginalt filnavn', 'overall_indexing_progress' => 'Samlet fremgang for indeksering', @@ -1009,6 +1050,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,7 +1062,10 @@ 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_invalid_hash' => '', +'password_forgotten_invalid_hash_title' => '', '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.', 'password_forgotten_title' => 'Passord sendt', @@ -1073,6 +1118,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 +1127,12 @@ 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_body_html' => '', +'receipt_submit_email_subject' => '', 'receipt_summary' => 'Kvitteringssammendrag', 'receipt_update_failed' => 'Bekreftelse av mottak mislyktes', 'recent_uploads' => 'Nylige opplastinger', @@ -1092,6 +1142,7 @@ URL: [url]', 'reception_rejected' => 'Mottaket avvist', 'recipients' => 'Mottakere', 'recipient_already_removed' => 'Mottakeren er allerede fjernet eller bekreftet mottak.', +'record_type' => '', 'redraw' => 'Tegne', 'refresh' => 'Oppdatere', 'rejected' => 'Avvist', @@ -1102,6 +1153,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 +1165,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 +1174,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 +1184,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 +1198,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 +1219,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 +1231,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 +1243,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 +1268,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 +1286,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 +1329,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', @@ -1322,6 +1385,7 @@ URL: [url]', 'select_mimetype' => '', 'select_one' => 'Velg en', 'select_owner' => '', +'select_record_type' => '', 'select_status' => '', 'select_user' => 'Velg bruker', 'select_users' => 'Klikk for å velge flere brukere', @@ -1418,6 +1482,8 @@ Bruker: [username] 'settings_defaultDocPosition_desc' => 'Dette er standardposisjonen i en mappe når et dokument opprettes.', 'settings_defaultDocPosition_val_end' => 'slutt', 'settings_defaultDocPosition_val_start' => 'start', +'settings_defaultFolderPosition' => '', +'settings_defaultFolderPosition_desc' => '', 'settings_defaultSearchMethod' => 'Standard søkemetode', 'settings_defaultSearchMethod_desc' => 'Standard søkemetode, når et søk startes av søkeskjemaet i hovedmenyen.', 'settings_defaultSearchMethod_valdatabase' => 'database', @@ -1460,6 +1526,12 @@ Bruker: [username] 'settings_enableDuplicateSubFolderNames_desc' => 'Gjør det mulig å ha dupliserte undermappenavn i en mappe.', 'settings_enableEmail' => 'Aktiver e-post', 'settings_enableEmail_desc' => 'Aktiver/deaktiver automatisk e-postvarsling', +'settings_enableExtensionDownload' => '', +'settings_enableExtensionDownload_desc' => '', +'settings_enableExtensionImport' => '', +'settings_enableExtensionImportFromRepository' => '', +'settings_enableExtensionImportFromRepository_desc' => '', +'settings_enableExtensionImport_desc' => '', 'settings_enableFilterReceipt' => 'Filtrer eier, anmelder, etc. fra mottakslisten', 'settings_enableFilterReceipt_desc' => 'Aktiver for å filtrere ut noen mottakere fra en mottaksliste hvis medlemmer av en gruppe er valgt.', 'settings_enableFolderTree' => 'Aktiver mappetre', @@ -1538,6 +1610,7 @@ Bruker: [username] 'settings_expandFolderTree_val0' => 'starte med treet gjemt', 'settings_expandFolderTree_val1' => 'start med vist tre og første nivå utvidet', 'settings_expandFolderTree_val2' => 'start med treet vist fullt utvidet', +'settings_ExtensionMgr' => '', 'settings_Extensions' => 'Utvidelser', 'settings_extraPath' => 'Ekstra PHP inkluderer sti', 'settings_extraPath_desc' => 'Sti til tilleggsprogramvare. Dette er mappeen som inneholder f.eks. adodb-mappeen eller ytterligere pear-pakker.', @@ -1601,6 +1674,8 @@ Bruker: [username] 'settings_more_settings' => 'Konfigurer flere innstillinger. Standard innlogging: admin / admin', 'settings_noDocumentFormFields' => 'Ikke vis disse feltene', 'settings_noDocumentFormFields_desc' => 'Disse feltene vil ikke bli vist når du legger til eller utgiver et dokument. Eksisterende verdier vil bli holdt.', +'settings_noFolderFormFields' => '', +'settings_noFolderFormFields_desc' => '', 'settings_notfound' => 'Ikke funnet', 'settings_Notification' => 'Varslingsinnstillinger', 'settings_notwritable' => 'Konfigurasjonen kan ikke lagres fordi konfigurasjonsfilen ikke er skrivbar.', @@ -1760,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' => '', @@ -1782,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', @@ -1804,6 +1883,7 @@ Bruker: [username] 'splash_inherit_access' => 'Adgangsrett blir arvet', 'splash_invalid_folder_id' => 'Ugyldig mappenavn', 'splash_invalid_searchterm' => 'Ugyldig søkeord', +'splash_invalid_search_service' => '', 'splash_link_document' => 'Link lagt til', 'splash_moved_clipboard' => 'Utklippstavlen flyttet inn i gjeldende mappe', 'splash_move_document' => 'Dokumentet flyttet', @@ -1813,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', @@ -1961,6 +2043,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', @@ -2008,6 +2091,7 @@ URL: [url]', 'uploaded_by' => 'Lastet opp av', 'uploading_failed' => 'Opplasting av en av filene dine mislyktes. Kontroller den maksimale filstørrelsen for opplastning.', 'uploading_maxsize' => 'Den opplastede filen overskrider den maksimale opplastede filstørrelsen.', +'uploading_postmaxsize' => '', 'uploading_zerosize' => 'Laster opp en tom fil. Opplastingen er kansellert.', 'used_discspace' => 'Brukt diskplass', 'user' => 'Bruker', @@ -2035,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] @@ -2042,6 +2129,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', @@ -2070,6 +2158,7 @@ URL: [url]', 'workflow_initstate' => 'Opprinnelige tilstand', 'workflow_in_use' => 'Denne arbeidsflyten brukes for tiden av dokumenter.', 'workflow_layoutdata_saved' => 'Layoutdata lagret', +'workflow_log' => '', 'workflow_management' => 'Arbeidsflytstyring', 'workflow_name' => 'Navn', 'workflow_no_doc_rejected_state' => 'Dokumentet vil ikke bli avvist i arbeidsflyttilstand!', diff --git a/languages/nl_NL/lang.inc b/languages/nl_NL/lang.inc index 22ac527e3..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 (1167), 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', @@ -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', @@ -128,10 +130,12 @@ Versie: [version] Bovenliggende map: [folder_path] User: [username] URL: [url]', +'approval_request_email_body_html' => '', 'approval_request_email_subject' => '[sitename]: [name] - Toestemming vereist', '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.', @@ -155,6 +159,7 @@ URL: [url]', 'attrdefgrp_show_searchlist' => 'Lijst van gezochte attribuut-definiities', 'attrdef_exists' => 'Attribuut-definitie bestaat al', 'attrdef_info' => 'attribuut info', +'attrdef_invalid_regex' => '', 'attrdef_in_use' => 'attribuutdefinitie nog in gebruikt', 'attrdef_management' => 'Attribuut-definities beheren', 'attrdef_maxvalues' => 'Max. aantal waarden', @@ -193,6 +198,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 +397,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 +407,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 +417,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 +437,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 +447,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 +456,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 +465,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 +475,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', @@ -482,6 +496,8 @@ URL: [url]', 'download_header_review_state' => 'Status beoordeling', 'download_header_state' => 'Status', 'download_links' => 'Download-links', +'download_link_email_body' => '', +'download_link_email_subject' => '', 'do_no_transfer_to_user' => 'Niet overdragen aan gebruiker', 'do_object_repair' => 'Repareer alle mappen en documenten.', 'do_object_setchecksum' => 'Set checksum', @@ -498,7 +514,7 @@ URL: [url]', 'dropfolder_metadata' => 'eigenschappen vd dropfolder', 'dropupload' => 'Snel toevoegen', 'drop_files_here' => 'Sleep bestanden hierheen', -'drop_files_here_or_click' => '', +'drop_files_here_or_click' => 'Plaats bestanden hier of klik', 'dump_creation' => 'DB-dump aanmaken', 'dump_creation_warning' => 'M.b.v. deze functie maakt U een DB dump file. het bestand wordt opgeslagen in uw data-map op de Server', 'dump_list' => 'Bestaande dump bestanden', @@ -591,6 +607,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', @@ -602,9 +619,11 @@ 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', +'extension_mgr_upload_disabled' => '', 'extension_missing_name' => 'Naam extensie ontbreekt', 'extension_toggle_error' => 'Omschakelen mislukt', 'extension_version_list' => 'Versies', @@ -630,6 +649,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 +659,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 +668,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 +678,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 +687,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', @@ -709,6 +733,7 @@ URL: [url]', 'hu_HU' => 'Hongaars', 'id' => 'ID', 'identical_version' => 'Nieuwe versie is identiek aan de bestaande versie', +'id_ID' => 'Indonesisch', 'import' => 'Importeer', 'importfs' => 'Importeer van bestandssysteem', 'import_extension' => 'Import-extensie', @@ -907,6 +932,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 +940,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 +951,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 +965,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 +973,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', @@ -957,9 +987,11 @@ URL: [url]', 'no_current_version' => 'U werkt met een oude versie van SeedDMS. De laatste versie beschikbaar is [latestversion].', 'no_default_keywords' => 'Geen sleutelwoorden beschikbaar', 'no_docs_checked_out' => 'Geen documenten in gebruik genomen', +'no_docs_draft' => '', 'no_docs_expired' => 'Geen documenten verlopen.', 'no_docs_locked' => 'Geen documenten in gebruik.', 'no_docs_needs_correction' => 'Geen documenten te corrigeren', +'no_docs_obsolete' => '', 'no_docs_rejected' => 'Geen documenten geweigerd', 'no_docs_to_approve' => 'Er zijn momenteel geen documenten die goedkeuring behoeven.', 'no_docs_to_look_at' => 'Geen documenten die aandacht behoeven.', @@ -980,6 +1012,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', @@ -989,6 +1022,14 @@ URL: [url]', 'old' => 'Oude', 'only_jpg_user_images' => 'U mag alleen .jpg afbeeldingen gebruiken als gebruikersafbeeldingen.', 'operation_disallowed' => 'Bewerking niet toegestaan', +'orderby' => '', +'orderby_date_asc' => '', +'orderby_date_desc' => '', +'orderby_id_asc' => '', +'orderby_id_desc' => '', +'orderby_name_asc' => '', +'orderby_name_desc' => '', +'orderby_unsorted' => '', 'order_by_sequence_off' => 'Volgorde uit', 'original_filename' => 'Originele bestandsnaam', 'overall_indexing_progress' => 'Voortgang van de indexering', @@ -1001,6 +1042,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,7 +1060,10 @@ 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_invalid_hash' => '', +'password_forgotten_invalid_hash_title' => '', '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.', 'password_forgotten_title' => 'Wachtwoord verzonden', @@ -1072,6 +1117,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 +1126,12 @@ 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_body_html' => '', +'receipt_submit_email_subject' => '', 'receipt_summary' => 'Samenvatting', 'receipt_update_failed' => 'Update ontvangst mislukt', 'recent_uploads' => 'Recent Uploads', @@ -1091,6 +1141,7 @@ URL: [url]', 'reception_rejected' => 'bestemming geweigerd', 'recipients' => 'Ontvangers', 'recipient_already_removed' => 'Ontvanger is al verwijderd', +'record_type' => '', 'redraw' => 'Nogmaals weergeven', 'refresh' => 'Verversen', 'rejected' => 'Afgewezen', @@ -1101,6 +1152,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 +1163,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 +1172,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 +1182,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 +1196,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 +1217,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 +1229,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 +1240,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 +1265,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 +1283,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 +1326,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', @@ -1319,6 +1382,7 @@ URL: [url]', 'select_mimetype' => 'Selecteer het mime-type', 'select_one' => 'Kies er een', 'select_owner' => 'Kies de eigenaar', +'select_record_type' => '', 'select_status' => '', 'select_user' => 'Selecteer gebruiker', 'select_users' => 'Klik om gebruikers te selecteren', @@ -1417,6 +1481,8 @@ Name: [username] 'settings_defaultDocPosition_desc' => 'Dit is de standaardplaats binnen een map waar een document wordt gecreëerd.', 'settings_defaultDocPosition_val_end' => 'aan het einde', 'settings_defaultDocPosition_val_start' => 'aan het begin', +'settings_defaultFolderPosition' => '', +'settings_defaultFolderPosition_desc' => '', 'settings_defaultSearchMethod' => 'Standaard zoekmethode', 'settings_defaultSearchMethod_desc' => 'Default zoekmethode = op documentnaam / fulltext-search', 'settings_defaultSearchMethod_valdatabase' => 'Default zoekmethode (Documentnaam)', @@ -1459,6 +1525,12 @@ Name: [username] 'settings_enableDuplicateSubFolderNames_desc' => 'Staat het toe om mapnamen te dupliceren in een map.', 'settings_enableEmail' => 'E-mail inschakelen', 'settings_enableEmail_desc' => 'Inschakelen/uitschakelen automatische email notificatie', +'settings_enableExtensionDownload' => '', +'settings_enableExtensionDownload_desc' => '', +'settings_enableExtensionImport' => '', +'settings_enableExtensionImportFromRepository' => '', +'settings_enableExtensionImportFromRepository_desc' => '', +'settings_enableExtensionImport_desc' => '', 'settings_enableFilterReceipt' => 'Filter de eigenaar, beoordelaar .... weg uit de ontvangerslijst', 'settings_enableFilterReceipt_desc' => 'Sommige ontvangers / leden van de groep worden weggefilterd uit de lijst van ontvangers.', 'settings_enableFolderTree' => 'Mappenstructuur tonen', @@ -1537,6 +1609,7 @@ Name: [username] 'settings_expandFolderTree_val0' => 'begin met verborgen structuur', 'settings_expandFolderTree_val1' => 'begin met structuur eerste niveau uitgevouwen', 'settings_expandFolderTree_val2' => 'begin met structuur volledig uitgevouwen', +'settings_ExtensionMgr' => '', 'settings_Extensions' => 'Uitbreidingen', 'settings_extraPath' => 'Extra PHP include Path', 'settings_extraPath_desc' => 'Pad naar extra software. Dit pad bevat bv. het adodb pad of de extra pear packages.', @@ -1600,6 +1673,8 @@ Name: [username] 'settings_more_settings' => 'Meer instellingen. Standaardlogin: admin/admin', 'settings_noDocumentFormFields' => 'Deze velden niet tonen', 'settings_noDocumentFormFields_desc' => 'Deze velden niet laten zien bij toevoegen of bewerken van een document. Bestaande waardes worden bewaard.', +'settings_noFolderFormFields' => '', +'settings_noFolderFormFields_desc' => '', 'settings_notfound' => 'nietgevonden', 'settings_Notification' => 'Notificatie-instellingen', 'settings_notwritable' => 'De configuratie kan nietopgeslagen worden omdat het configuratiebestand nietbeschrijfbaar is.', @@ -1759,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', @@ -1781,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', @@ -1803,6 +1882,7 @@ Name: [username] 'splash_inherit_access' => 'Toegangsrechten worden overgeërfd', 'splash_invalid_folder_id' => 'Ongeldige map ID', 'splash_invalid_searchterm' => 'Ongeldige zoekterm', +'splash_invalid_search_service' => '', 'splash_link_document' => 'Link toegevoegd', 'splash_moved_clipboard' => 'Klembord verplaatst naar de huidige map', 'splash_move_document' => 'Document verplaatst', @@ -1812,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', @@ -1960,6 +2042,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', @@ -2007,6 +2090,7 @@ URL: [url]', 'uploaded_by' => 'Geüpload door', 'uploading_failed' => 'Upload mislukt. Neem contact op met de [Beheerder].', 'uploading_maxsize' => 'Het geüploade bestand overschrijdt de maximum grootte.', +'uploading_postmaxsize' => '', 'uploading_zerosize' => 'Uploaden van een leeg bestand. Upload wordt geannuleerd.', 'used_discspace' => 'Gebruike schijf ruimte', 'user' => 'Gebruiker', @@ -2034,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] @@ -2041,6 +2128,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', @@ -2069,6 +2157,7 @@ URL: [url]', 'workflow_initstate' => 'Begin status', 'workflow_in_use' => 'Deze workflow wordt momenteel gebruikt door documenten.', 'workflow_layoutdata_saved' => 'Sla de layout op', +'workflow_log' => '', 'workflow_management' => 'Workflow beheer', 'workflow_name' => 'Naam', 'workflow_no_doc_rejected_state' => 'Het document ma in deze fase van de workflow niet geweigerd worden!', diff --git a/languages/pl_PL/lang.inc b/languages/pl_PL/lang.inc index d04dadc17..38681fb79 100644 --- a/languages/pl_PL/lang.inc +++ b/languages/pl_PL/lang.inc @@ -19,14 +19,14 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (1480), netixw (84), romi (93), uGn (112) +// Translators: Admin (1684), netixw (84), romi (93), uGn (112) $text = array( '2_factor_auth' => 'Uwierzytelnianie dwuetapowe', '2_factor_auth_info' => 'Uwierzytelnianie dwuetapowe', -'2_fact_auth_current_secret' => '', -'2_fact_auth_new_secret' => '', -'2_fact_auth_secret' => 'Uwierzytelnianie dwuetapowe poufny kod', +'2_fact_auth_current_secret' => 'Obecny poufny kod', +'2_fact_auth_new_secret' => 'Nowy poufny kod', +'2_fact_auth_secret' => 'Uwierzytelnianie dwuetapowe: poufny kod', 'abbr_day' => '', 'abbr_hour' => '', 'abbr_minute' => '', @@ -36,8 +36,8 @@ $text = array( 'abbr_year' => '', 'accept' => 'Akceptuj', 'access_control' => 'Kontrola dostępu', -'access_control_is_off' => 'Kontrola dostepu jest wyłączona', -'access_denied' => 'Dostęp zabroniony.', +'access_control_is_off' => 'Kontrola dostępu jest wyłączona', +'access_denied' => 'Dostęp zabroniony', 'access_inheritance' => 'Dziedziczenie dostępu', 'access_mode' => 'Tryb dostępu', 'access_mode_all' => 'Wszystkie uprawnienia', @@ -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', @@ -67,13 +68,13 @@ URL: [url]', 'add_document' => 'Dodaj dokument', 'add_document_link' => 'Dodaj link', 'add_document_notify' => 'Przypisz powiadomienia', -'add_doc_reviewer_approver_warning' => 'Nota Bene. Dokumenty są automatycznie oznaczane jako wydane, jeśli recenzent lub zatwierdzający nie jest przypisany.', +'add_doc_reviewer_approver_warning' => 'Dokumenty są automatycznie oznaczane jako wydane, jeśli recenzent lub zatwierdzający nie jest przypisany.', 'add_doc_workflow_warning' => 'Dokumenty zostaną automatycznie opublikowane jeżeli nie zostanie przypisany żaden proces.', 'add_event' => 'Dodaj zdarzenie', 'add_group' => 'Dodaj nową grupę', 'add_member' => 'Dodaj członka', 'add_multiple_documents' => 'Dodaj wiele dokumentów', -'add_multiple_files' => 'Dodaj wiele plików (Nazwy plików zostaną użyte jako nazwy dokumentów)', +'add_multiple_files' => 'Dodaj wiele plików (nazwy plików zostaną użyte jako nazwy dokumentów)', 'add_receipt' => 'Dodaj potwierdzenie', 'add_review' => 'Zatwierdź recenzję', 'add_revision' => 'Dodaj korektę', @@ -100,22 +101,23 @@ URL: [url]', 'apikey' => '', 'apply' => 'Zastosuj', 'approvals_accepted' => 'Zatwierdzenia zaakceptowane', -'approvals_accepted_latest' => 'Zatwierdzenia zaakceptowane później', +'approvals_accepted_latest' => '(istnieje [no_approvals] w ostatniej wersji)', 'approvals_and_reviews_accepted' => 'Zatwierdzenia i recenzje zaakceptowane', -'approvals_and_reviews_not_touched' => 'Zatwierdzenia i recenzje nie oglądane', +'approvals_and_reviews_not_touched' => 'Zatwierdzenia i recenzje nieoglądane', 'approvals_and_reviews_rejected' => 'Zatwierdzenia i recenzje odrzucone', -'approvals_not_touched' => 'Zatwierdzenia nie oglądane', -'approvals_not_touched_latest' => 'Zatwierdzenia nie oglądane później', +'approvals_not_touched' => 'Zatwierdzenia nieoglądane', +'approvals_not_touched_latest' => '(istnieje [no_approvals] w ostatniej wersji)', 'approvals_rejected' => 'Zatwierdzenia odrzucone', -'approvals_rejected_latest' => 'Zatwierdzenia odrzucone później', +'approvals_rejected_latest' => '(istnieje [no_approvals] w ostatniej wersji)', 'approvals_without_group' => 'Zatwierdzenia bez grupy', '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', -'approval_log' => 'Zatwierdź log', +'approval_log' => 'Log zatwierdzeń', 'approval_request_email' => 'Prośba o akceptację', 'approval_request_email_body' => 'Prośba o zatwierdzenie Dokument: [name] @@ -123,23 +125,25 @@ Wersja: [version] Folder nadrzędny: [folder_path] Użytkownik: [username] URL: [url]', +'approval_request_email_body_html' => '', 'approval_request_email_subject' => '[sitename]: [name] - Prośba o zatwierdzenie', '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ę.', 'approvers' => 'Osoby akceptujące', 'approver_already_assigned' => 'Użytkownik jest już przypisany jako osoba zatwierdzająca.', -'approver_already_removed' => 'Osoba zatwierdzająca została już usunięta z procesu zatwierdzania lub już przesłała zatwierdzenie.', +'approver_already_removed' => 'Osoba zatwierdzająca została już usunięta z procesu zatwierdzania lub przesłała już zatwierdzenie.', 'april' => 'Kwiecień', 'archive' => 'Archiwum', 'archive_creation' => 'Tworzenie archiwum', 'archive_creation_warning' => 'Ta operacja utworzy archiwum zawierające pliki z całego repozytorium. Po utworzeniu archiwum będzie zapisane w folderze na serwerze.
UWAGA: archiwum utworzone jako czytelne dla ludzi będzie bezużyteczne jako kopia serwera.', 'ar_EG' => 'Arabski', 'assign_approvers' => 'Przypisz osoby akceptujące', -'assign_recipients' => 'Przypisz Odbiorców', +'assign_recipients' => 'Przypisz odbiorców', 'assign_reviewers' => 'Przypisz recenzentów', 'assign_user_property_to' => 'Przypisz właściwości użytkownika do', 'assumed_released' => 'Assumed released', @@ -150,6 +154,7 @@ URL: [url]', 'attrdefgrp_show_searchlist' => 'Wynik wyszukiwania', 'attrdef_exists' => 'Definicja atrybutu już istnieje', 'attrdef_info' => 'Informacja', +'attrdef_invalid_regex' => '', 'attrdef_in_use' => 'Definicja atrybutu nadal jest w użyciu', 'attrdef_management' => 'Zarządzanie definicją atrybutu', 'attrdef_maxvalues' => 'Max. ilość wartości', @@ -167,10 +172,10 @@ URL: [url]', 'attrdef_type' => 'Typ', 'attrdef_type_boolean' => 'Boolean', 'attrdef_type_date' => 'Data', -'attrdef_type_document' => '', +'attrdef_type_document' => 'Dokument', 'attrdef_type_email' => 'Email', -'attrdef_type_float' => 'Liczna zmiennoprzecinkowa', -'attrdef_type_folder' => '', +'attrdef_type_float' => 'Liczba zmiennoprzecinkowa', +'attrdef_type_folder' => 'Folder', 'attrdef_type_group' => 'Grupa', 'attrdef_type_int' => 'Liczba całkowita', 'attrdef_type_string' => 'Ciąg znaków', @@ -188,16 +193,17 @@ 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', -'attribute_value_not_in_valueset' => 'Wartość nie w zestawie wartości', -'attr_malformed_boolean' => 'Wartość atrybutu \'[value]\' \'[attrname]\' nie jest prawidłowy boolean', +'attribute_value_not_in_valueset' => 'Wartość nie jest w zestawie wartości', +'attr_malformed_boolean' => 'Wartość atrybutu \'[value]\' \'[attrname]\' nie jest prawidłową wartością boolean', 'attr_malformed_date' => 'Wartość atrybutu \'[value]\' \'[attrname]\' nie jest prawidłową datą', -'attr_malformed_email' => 'Wartość atrybutu \'[value]\' \'[attrname]\' nie jest prawidłowy adres email', +'attr_malformed_email' => 'Wartość atrybutu \'[value]\' \'[attrname]\' nie jest prawidłowym adresem e-mail', 'attr_malformed_float' => 'Wartość atrybutu \'[value]\' \'[attrname]\' nie jest prawidłową liczbą zmiennoprzecinkową', 'attr_malformed_int' => 'Wartość atrybutu \'[value]\' \'[attrname]\' nie jest prawidłową liczbą całkowitą', -'attr_malformed_url' => 'Wartość atrybutu \'[value]\' \'[attrname]\' nie jest prawidłowy URL', +'attr_malformed_url' => 'Wartość atrybutu \'[value]\' \'[attrname]\' nie jest prawidłowym adresem URL', 'attr_max_values' => 'Przekroczono maksymalną liczbę wymaganych wartości dla atrybutu \'[attrname]\'', 'attr_min_values' => 'Minimalna liczba wymaganych wartości dla atrybutu \'[attrname]\' nie została osiągnięta', 'attr_not_in_valueset' => 'Wartość atrybutu \'[value]\' \'[attrname]\' nie jest zawarta w zestawie wartości', @@ -223,17 +229,17 @@ URL: [url]', 'cancel_checkout' => '', 'cancel_checkout_warning' => '', 'cannot_assign_invalid_state' => 'Nie można modyfikować zdezaktualizowanego lub odrzuconego dokumentu', -'cannot_change_final_states' => 'Ostrzeżenie: Nie można zmienić statusu dla dokumentu odrzuconego, wygasłego, lub w trakcie recenzowania albo zatwierdzania.', +'cannot_change_final_states' => 'Ostrzeżenie: Nie można zmienić statusu dla dokumentu odrzuconego, wygasłego, w trakcie recenzowania lub zatwierdzania.', 'cannot_delete_user' => 'Nie można usunąć użytkownika', 'cannot_delete_yourself' => 'Nie możesz usunąć samego siebie', 'cannot_move_root' => 'Błąd: Nie można przenieść katalogu głównego.', 'cannot_retrieve_approval_snapshot' => 'Nie można pobrać migawki stanu akceptacji dla tej wersji dokumentu.', 'cannot_retrieve_review_snapshot' => 'Nie można pobrać migawki stanu recenzowania dla tej wersji dokumentu.', -'cannot_revapp_expired_docs' => '', -'cannot_rm_root' => 'Błąd: Nie można usunąć katalogu głównego.', +'cannot_revapp_expired_docs' => 'Dokument nie może być recenzowany ani zatwierdzony, ponieważ już wygasł.', +'cannot_rm_root' => 'Nie można usunąć katalogu głównego.', 'cannot_transfer_your_objects' => '', 'categories' => 'Kategorie', -'categories_loading' => 'Poczekaj, aż lista kategorii zostanie załadowana…', +'categories_loading' => 'Poczekaj, aż lista kategorii zostanie załadowana.', 'category' => 'Kategoria', 'category_exists' => 'Kategoria już istnieje.', 'category_filter' => 'Tylko w kategoriach', @@ -241,7 +247,7 @@ URL: [url]', 'category_in_use' => 'Ta kategoria jest aktualnie używana przez dokumenty.', 'category_noname' => 'Nie podano nazwy kategorii.', 'ca_ES' => 'Kataloński', -'changelog_loading' => 'Poczekaj, aż dziennik zmian zostanie załadowany…', +'changelog_loading' => 'Poczekaj, aż dziennik zmian zostanie załadowany.', 'change_assignments' => 'Zmiana przypisania', 'change_password' => 'Zmiana hasła', 'change_password_message' => 'Twoje hasło zostało zmienione.', @@ -250,12 +256,12 @@ URL: [url]', 'change_status' => 'Zmień status', 'charts' => 'Wykresy', 'chart_docsaccumulated_title' => 'Liczba dokumentów', -'chart_docspercategory_title' => 'Dokumentów na kategorię', -'chart_docspermimetype_title' => 'Dokumenty według typu mime', +'chart_docspercategory_title' => 'Dokumenty według kategorii', +'chart_docspermimetype_title' => 'Dokumenty według typu MIME', 'chart_docspermonth_title' => 'Nowe dokumenty według miesięcy', 'chart_docsperstatus_title' => 'Dokumenty według statusu', 'chart_docsperuser_title' => 'Dokumenty na użytkownika', -'chart_foldersperuser_title' => '', +'chart_foldersperuser_title' => 'Foldery na użytkownika', 'chart_selection' => 'Wybierz wykres', 'chart_sizeperuser_title' => 'Zajętość dysku na użytkownika', 'checkedout_file_has_different_version' => 'Wersja wypisana nie jest identyczna z bieżącą wersją. Zameldowanie nie zaktualizuje dokumentu.', @@ -263,7 +269,7 @@ URL: [url]', 'checkedout_file_is_unchanged' => 'Plik wyrejestrowanego dokumentu jest nadal niezmieniony. Zameldowanie nie będzie możliwe. Jeśli nie planujesz żadnych modyfikacji, możesz zresetować status transakcji.', 'checkin_document' => 'Zamelduj się', 'checkoutpath_does_not_exist' => 'Ścieżka realizacji transakcji nie istnieje', -'checkout_cancel_confirm' => '', +'checkout_cancel_confirm' => 'Potwierdź anulowanie wymeldowania', 'checkout_document' => 'Wymelduj się', 'checkout_is_disabled' => 'Wyewidencjonowywanie dokumentów jest wyłączone w konfiguracji.', 'choose_attrdef' => 'Proszę wybrać definicję atrybutu', @@ -279,21 +285,21 @@ URL: [url]', 'choose_workflow' => 'Wybierz proces', 'choose_workflow_action' => 'Wybierz działanie procesu', 'choose_workflow_state' => 'Wybierz stan obiegu', -'class_finfo_missing' => '', +'class_finfo_missing' => 'Klasa finfo będzie użyta dla przesyłanych plików w celu określenia typu MIME.', 'class_name' => 'Nazwa klasy', 'clear_cache' => 'Wyczyść cache', 'clear_clipboard' => 'Oczyść schowek', 'clear_password' => 'Wyczyść hasło', 'clipboard' => 'Schowek', 'close' => 'Zamknij', -'color' => '', +'color' => 'Kolor', 'command' => 'Polecenia', 'comment' => 'Opis', 'comment_changed_email' => '', 'comment_for_current_version' => 'Komentarz do wersji', 'configure_extension' => 'Konfiguruj rozszerzenie', 'confirm_clear_cache' => 'Czy naprawdę chcesz wyczyścić pamięć podręczną? Spowoduje to usunięcie wszystkich wstępnie obliczonych obrazów podglądu.', -'confirm_create_fulltext_index' => 'Tak, chcę ponownie utworzyć indeks pełnotekstowy!', +'confirm_create_fulltext_index' => 'Tak, chcę ponownie utworzyć indeks pełnotekstowy.', 'confirm_move_document' => 'Potwierdź przeniesienie dokumentu', 'confirm_move_folder' => 'Potwierdź przeniesienie folderu', 'confirm_pwd' => 'Potwierdź hasło', @@ -325,7 +331,7 @@ URL: [url]', 'create_fulltext_index' => 'Utwórz indeks pełnotekstowy', 'create_fulltext_index_warning' => 'Zamierzasz ponownie utworzyć indeks pełnotekstowy. To może zająć sporo czasu i ograniczyć ogólną wydajność systemu. Jeśli faktycznie chcesz to zrobić, proszę potwierdź tę operację.', 'creation_date' => 'Utworzony', -'cs_CZ' => 'czeski', +'cs_CZ' => 'Czeski', 'current_password' => 'Aktualne hasło', 'current_quota' => 'Obecny limit systemowy jest ustawiony [quota].', 'current_state' => 'Bieżący stan', @@ -344,17 +350,17 @@ URL: [url]', 'delete' => 'Usuń', 'details' => 'Szczegóły', 'details_version' => 'Szczegóły dla wersji: [version]', -'de_DE' => 'niemiecki', +'de_DE' => 'Niemiecki', 'disable_extension' => '', 'disclaimer' => 'To jest zastrzeżona strefa. Dostęp do niej ma wyłącznie wyznaczony personel. Wszelkie naruszenia będą ścigane zgodnie z prawem krajowym i międzynarodowym.', -'discspace' => 'Miejsce na dysku', +'discspace' => 'Zajęta przestrzeń dyskowa', 'docs_in_reception_no_access' => 'Dokumenty z odbiorem bez dostępu odbiorcy', 'docs_in_revision_no_access' => 'Dokumenty w wersji bez dostępu przez audytora', 'document' => 'Dokument', 'documentcontent' => 'Zawartość dokumentu', -'documents' => 'Dokumenty', +'documents' => 'Bieżące dokumenty', 'documents_checked_out_by_you' => 'Dokumenty sprawdzone przez Ciebie', -'documents_expired' => 'Wygasłe dokumenty', +'documents_expired' => 'Dokumenty wygasłe', 'documents_in_process' => 'Dokumenty procesowane', 'documents_locked' => 'Dokumenty zablokowane', 'documents_locked_by_you' => 'Dokumenty zablokowane przez Ciebie', @@ -365,20 +371,21 @@ URL: [url]', 'documents_to_process' => 'Dokumenty oczekujące na Twoje przetworzenie', 'documents_to_receipt' => 'Dokumenty oczekujące na Twoje potwierdzenie', 'documents_to_review' => 'Dokumenty oczekujące na Twoją recenzję', -'documents_to_revise' => 'Dokumenty oczekujące na Twoją weryfikacje', +'documents_to_revise' => 'Dokumenty oczekujące na Twoją weryfikację', 'documents_to_trigger_workflow' => 'Dokumenty w przepływie pracy', 'documents_user_draft' => 'Dokumenty w projekcie', 'documents_user_expiration' => 'Dokumenty wygasłe', 'documents_user_needs_correction' => 'Dokumenty wymagające korekty', -'documents_user_no_reception' => 'Nie odebrane dokumenty', -'documents_user_obsolete' => 'Dokument przestarzały', -'documents_user_reception' => 'Odebrane dokumenty', -'documents_user_rejected' => 'Odrzucone dokumenty', +'documents_user_no_reception' => 'Dokumenty nieodebrane', +'documents_user_obsolete' => 'Dokumenty przestarzałe', +'documents_user_reception' => 'Dokumenty odebrane', +'documents_user_rejected' => 'Dokumenty odrzucone', 'documents_user_requiring_attention' => 'Dokumenty należące do Ciebie, które wymagają uwagi', -'documents_with_notification' => 'Dokument z powiadomieniem', +'documents_with_notification' => 'Dokumenty z powiadomieniem', '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 +395,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 +405,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 +425,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 +435,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 +444,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 +458,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', @@ -465,6 +479,8 @@ URL: [url]', 'download_header_review_state' => 'Status recezenta', 'download_header_state' => 'Status', 'download_links' => 'Pobierz link', +'download_link_email_body' => '', +'download_link_email_subject' => '', 'do_no_transfer_to_user' => 'Nie przesyłaj procesów do użytkownika', 'do_object_repair' => 'Napraw wszystkie katalogi i pliki.', 'do_object_setchecksum' => 'Ustaw sumę kontrolną', @@ -474,7 +490,7 @@ URL: [url]', 'draft' => 'Szkic', 'draft_pending_approval' => 'Szkic - w oczekiwaniu na akceptację', 'draft_pending_review' => 'Szkic - w oczekiwaniu na opinię', -'drag_icon_here' => 'Przeciągnij ikonę folderu lub dokumentu tutaj!', +'drag_icon_here' => 'Przeciągnij tutaj ikonę dokumentu lub folderu', 'dropfolderdir_missing' => 'Twój osobisty folder zrzutu nie istnieje na serwerze! Poproś swojego administratora o jego utworzenie.', 'dropfolder_file' => 'Plik z folderu zrzutu', 'dropfolder_folder' => 'Katalog ze strefy zrzutu', @@ -506,24 +522,24 @@ URL: [url]', 'edit_group' => 'Edytuj grupę', 'edit_online' => 'Edytuj online', 'edit_online_not_allowed' => '', -'edit_online_warning' => 'Zapisanie zmian spowoduje zastąpienie zawartości bieżącej wersji, zamiast tworzenia nowej wersji.', +'edit_online_warning' => 'Zapisanie zmian spowoduje zastąpienie zawartości bieżącej wersji, zamiast utworzenia nowej wersji.', 'edit_task' => 'Edytuj zadanie', 'edit_transmittal_props' => 'Edytuj właściwości przekazu', 'edit_user' => 'Edytuj użytkownika', 'edit_user_details' => 'Zmień dane użytkownika', 'edit_version' => 'Edytuj wersję', 'el_GR' => 'Grecki', -'email' => 'Email', -'email_error_title' => 'Nie wprowadzono adresu email', -'email_footer' => 'W każdej chwili możesz zmienić swój email używając zakładki \'Moje konto\'.', +'email' => 'E-mail', +'email_error_title' => 'Nie wprowadzono adresu e-mail', +'email_footer' => 'W każdej chwili możesz zmienić swój e-mail używając zakładki \'Moje konto\'.', 'email_footer_html' => '', 'email_header' => 'To jest automatyczne powiadomienie serwera DMS.', 'email_header_html' => '', -'email_not_given' => 'Proszę podać poprawny adres email.', +'email_not_given' => 'Proszę podać poprawny adres e-mail.', 'empty_attribute_group_list' => 'Brak grup atrybutów', 'empty_folder_list' => 'Nie ma dokumentów lub folderów', 'empty_list' => 'Brak wpisów', -'empty_notify_list' => 'Brak elementów', +'empty_notify_list' => 'Brak dokumentów', 'enable_extension' => '', 'en_GB' => 'Angielski (GB)', 'equal_transition_states' => 'Stan rozpoczęcia i ukończenia jest taki sam', @@ -552,7 +568,7 @@ URL: [url]', 'es_ES' => 'Hiszpański', 'event_details' => 'Szczegóły zdarzenia', 'exclude_items' => 'Pozycje wykluczone', -'expired' => 'Wygasłe', +'expired' => 'Wygasły', 'expired_at_date' => 'Wygasło [datetime]', 'expired_docs_mail_subject' => '', 'expired_documents' => 'Wygasłe dokumenty', @@ -574,9 +590,10 @@ 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' => '', +'export_user_list_csv' => 'Eksportuj użytkowników do pliku CSV', 'extension_archive' => 'Rozszerzenie', 'extension_changelog' => 'Log Zmian', 'extension_is_off_now' => '', @@ -585,9 +602,11 @@ 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', +'extension_mgr_upload_disabled' => '', 'extension_missing_name' => '', 'extension_toggle_error' => '', 'extension_version_list' => 'Wersje', @@ -596,7 +615,7 @@ URL: [url]', 'files' => 'Pliki', 'files_deletion' => 'Usuwanie plików', 'files_deletion_warning' => 'Ta operacja pozwala usunąć wszystkie pliki z repozytorium. Informacje o wersjonowaniu pozostaną widoczne.', -'files_loading' => 'Proszę czekać do załadowania lista plików…', +'files_loading' => 'Proszę czekać do załadowania lista plików.', 'filetype' => 'Typ pliku', 'file_size' => 'Rozmiar pliku', 'filter_for_documents' => 'Dodatkowe filtrowanie dla dokumentów', @@ -606,6 +625,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 +635,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 +644,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 +654,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 +663,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' => '', @@ -685,14 +709,15 @@ URL: [url]', 'hu_HU' => 'Węgierski', 'id' => 'ID', 'identical_version' => 'Nowa wersja jest identyczna z obecną', +'id_ID' => 'Indonezyjski', 'import' => 'Import', 'importfs' => 'Importuj z systemu plików', 'import_extension' => 'Importuj rozszerzenie', 'import_fs' => 'Import z systemu plików', 'import_fs_warning' => 'Będzie to działać tylko w przypadku folderów w folderze zrzutu. Operacja rekurencyjnie importuje wszystkie foldery i pliki. Pliki zostaną natychmiast zwolnione.', 'import_users' => 'Import użytkowników', -'import_users_addnew' => '', -'import_users_update' => '', +'import_users_addnew' => 'Dodaj nowych użytkowników', +'import_users_update' => 'Aktualizuj istniejących użytkowników', 'include_content' => 'Dołącz treść', 'include_documents' => 'Uwzględnij dokumenty', 'include_subdirectories' => 'Uwzględnij podkatalogi', @@ -719,8 +744,8 @@ URL: [url]', 'inherits_access_copy_msg' => 'Kopiuj odziedziczoną listę dostępu', 'inherits_access_empty_msg' => 'Rozpocznij z pustą listą dostępu', 'inherits_access_msg' => 'Dostęp jest dziedziczony.', -'installed_apache_extensions' => '', -'installed_php_extensions' => '', +'installed_apache_extensions' => 'Zainstalowane rozszerzenia serwera APACHE', +'installed_php_extensions' => 'Zainstalowane rozszerzenia PHP', 'internal_error' => 'Błąd wewnętrzny', 'internal_error_exit' => 'Błąd wewnętrzny. Nie można ukończyć zadania.', 'invalid_access_mode' => 'Nieprawidłowy tryb dostępu', @@ -745,27 +770,27 @@ URL: [url]', 'invalid_user_id' => 'Nieprawidłowy identyfikator użytkownika', 'invalid_version' => 'Nieprawidłowa wersja dokumentu', 'in_folder' => 'w folderze', -'in_revision' => 'W korekcie', -'in_workflow' => 'W procesie', +'in_revision' => 'Korygowany', +'in_workflow' => 'Procesowany', 'is_disabled' => 'Konto nieaktywne', 'is_hidden' => 'Nie pokazuj na liście użytkowników', 'it_IT' => 'Włoski', 'january' => 'Styczeń', -'js_form_error' => 'Formularz nadal zawiera # błąd.', -'js_form_errors' => 'Formularz nadal zawiera # błędów.', -'js_invalid_email' => 'The email address is invalid', +'js_form_error' => 'Formularz zawiera # błąd.', +'js_form_errors' => 'Formularz zawiera kilka błędów (#).', +'js_invalid_email' => 'Wpisany adres e-mail jest niepoprawny', 'js_no_approval_group' => 'Proszę wybrać grupę odpowiedzalną za akceptację', 'js_no_approval_status' => 'Proszę wybrać status akceptacji', 'js_no_comment' => 'Proszę dodać komentarz', 'js_no_currentpwd' => 'Proszę podać swoje aktualne hasło', -'js_no_document' => '', -'js_no_email' => 'Wprowadź swój adres email', +'js_no_document' => 'Proszę wybrać dokument', +'js_no_email' => 'Wprowadź swój adres e-mail', 'js_no_file' => 'Proszę wybrać plik', -'js_no_folder' => '', +'js_no_folder' => 'Proszę wybrać folder', 'js_no_keywords' => 'Wybierz jakieś słowa kluczowe', 'js_no_login' => 'Proszę wprowadzić nazwę użytkownika', 'js_no_name' => 'Proszę wpisać imię', -'js_no_override_status' => 'Proszę wybrać nowy [override] status', +'js_no_override_status' => 'Proszę wybrać nowy status', 'js_no_pwd' => 'Musisz wprowadzić swoje hasło', 'js_no_query' => 'Wprowadź zapytanie', 'js_no_review_group' => 'Proszę wybrać grupę recenzującą', @@ -779,7 +804,7 @@ URL: [url]', 'keep' => 'Zachować', 'keep_doc_status' => 'Pozostaw status dokumentu', 'keywords' => 'Słowa kluczowe', -'keywords_loading' => 'Proszę czekać do załadowania lista słów kluczowych…', +'keywords_loading' => 'Proszę poczekać na załadowania listy słów kluczowych.', 'keyword_exists' => 'Słowo kluczowe już istnieje', 'ko_KR' => 'Koreański', 'language' => 'Język', @@ -802,14 +827,14 @@ URL: [url]', 'local_file' => 'Lokalny plik', 'locked_by' => 'Zablokowane przez', 'lock_document' => 'Zablokuj', -'lock_message' => 'Ten dokument jest zablokowany przez [username]. Tylko uprawnieni użytkownicy mogą odblokować dokument.', +'lock_message' => 'Ten dokument jest zablokowany przez użytkownika [username]. Tylko uprawnieni użytkownicy mogą odblokować dokument.', 'lock_status' => 'Status', -'logfile' => '', -'logfile_loading' => 'Proszę czekać, aż plik dziennika zostanie załadowany…', +'logfile' => 'Plik z logami', +'logfile_loading' => 'Proszę czekać, aż plik dziennika zostanie załadowany.', 'login' => 'Login', 'login_disabled_text' => 'Twoje konto jest zablokowane. Prawdopodobnie z powodu zbyt wielu nieudanych prób logowania.', 'login_disabled_title' => 'Konto jest zablokowane', -'login_error_text' => 'Błąd logowania. Niepoprawna nazwa użytkownika lub hasło.', +'login_error_text' => 'Błąd logowania. Podano nieprawidłową nazwę użytkownika lub niepoprawne hasło.', 'login_error_title' => 'Błąd logowania', 'login_not_given' => 'Nie podano nazwy użytkownika', 'login_ok' => 'Zalogowano', @@ -834,15 +859,15 @@ URL: [url]', 'menu_dropfolder' => 'Folder zrzutu', 'menu_upload_from_dropfolder' => 'Kopiuj do folderu zrzutu', 'message' => '', -'mimetype' => 'Typ mime', +'mimetype' => 'Typ MIME', 'minutes' => 'minut', 'misc' => 'Różne', 'missing_checksum' => 'Brak sumy kontrolnej', 'missing_file' => 'Brakujący plik', 'missing_filesize' => 'Brakujący rozmiar pliku', -'missing_func_class_note' => '', -'missing_php_extensions' => '', -'missing_php_functions_and_classes' => '', +'missing_func_class_note' => 'Informacja', +'missing_php_extensions' => 'Brakujące rozszerzenia PHP', +'missing_php_functions_and_classes' => 'Brakujące funkcje i klasy PHP', 'missing_reception' => 'Brakuje odbioru', 'missing_request_object' => 'Brak obiektu żądania', 'missing_transition_user_group' => 'Brak użytkownika / grupy dla przejścia', @@ -850,7 +875,7 @@ URL: [url]', 'monday_abbr' => 'Pn.', 'monthly' => 'Miesięcznie', 'month_view' => 'Widok miesięczny', -'more_objects_loading' => 'Ładuję więcej obiektów ...', +'more_objects_loading' => 'Ładuję więcej obiektów...', 'move' => 'Przenieś', 'move_clipboard' => 'Przenieś schowek', 'move_document' => 'Przenieś dokument', @@ -859,17 +884,17 @@ URL: [url]', 'my_documents' => 'Moje dokumenty', 'my_transmittals' => 'Moi recenzenci', 'name' => 'Nazwa', -'nav_brand_admin_tools' => '', -'nav_brand_calendar' => '', -'nav_brand_my_account' => '', -'nav_brand_my_documents' => '', -'nav_brand_view_document' => '', -'nav_brand_view_folder' => '', +'nav_brand_admin_tools' => 'Narzędzia administracyjne', +'nav_brand_calendar' => 'Kalendarz', +'nav_brand_my_account' => 'Moje konto', +'nav_brand_my_documents' => 'Moje dokumenty', +'nav_brand_view_document' => 'Dokument', +'nav_brand_view_folder' => 'Folder', 'nb_NO' => 'Norweski', 'needs_correction' => 'Wymaga korekty', -'needs_workflow_action' => 'Dokument wymaga uwagi. Proszę sprawdzić kartę workflow.', +'needs_workflow_action' => 'Dokument wymaga uwagi. Proszę sprawdzić kartę przepływu pracy dokumentu.', 'network_drive' => 'Dysk sieciowy', -'never' => 'Nowszy', +'never' => 'nigdy', 'new' => 'Nowy', 'new_attrdef' => 'Dodaj definicję atrybutu', 'new_default_keywords' => 'Dodaj słowa kluczowe', @@ -883,6 +908,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 +917,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 +928,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 +942,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,28 +950,31 @@ 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', 'now' => 'teraz', 'no_action' => 'Żadne działanie nie jest wymagane', -'no_approval_needed' => 'Nie ma dokumentów oczekujących na akceptację.', +'no_approval_needed' => 'Nie ma dokumentów oczekujących na akceptację', 'no_attached_files' => 'Brak załączonych plików', -'no_attributes_defined' => '', -'no_attribute_definitions' => '', +'no_attributes_defined' => 'Brak utworzonych atrybutów', +'no_attribute_definitions' => 'Brak definicji atrybutów', 'no_backup_dir' => 'Katalog kopii zapasowej nie jest ustawiony', 'no_current_version' => 'Brak aktualnej wersji', 'no_default_keywords' => 'Nie ma słów kluczowych', 'no_docs_checked_out' => 'Brak dokumentów', -'no_docs_expired' => 'Brak wygasłych dokumentów', -'no_docs_locked' => 'Brak zablokowanych dokumentów.', -'no_docs_needs_correction' => 'Brak dokumentów wymagających korekty', -'no_docs_rejected' => 'Brak dokumentów odrzuconych', -'no_docs_to_approve' => 'Aktualnie nie ma dokumentów wymagających akceptacji.', -'no_docs_to_look_at' => 'Brak dokumentów wymagających uwagi.', -'no_docs_to_receipt' => 'Brak dokumentów na potwierdzenie', -'no_docs_to_review' => 'Aktualnie nie ma dokumentów oczekujących na recenzję.', -'no_docs_to_revise' => 'Brak dokumentów oczekyjących na weryfikację', +'no_docs_draft' => 'Brak dokumentów', +'no_docs_expired' => 'Brak dokumentów', +'no_docs_locked' => 'Brak dokumentów', +'no_docs_needs_correction' => 'Brak dokumentów', +'no_docs_obsolete' => 'Brak dokumentów', +'no_docs_rejected' => 'Brak dokumentów', +'no_docs_to_approve' => 'Brak dokumentów', +'no_docs_to_look_at' => 'Brak dokumentów', +'no_docs_to_receipt' => 'Brak dokumentów', +'no_docs_to_review' => 'Brak dokumentów', +'no_docs_to_revise' => 'Brak dokumentów', 'no_email_or_login' => 'Login i adres e-mail muszą zostać wprowadzone', 'no_fulltextindex' => 'Brak indeksu pełnotekstowego', 'no_groups' => 'Brak grup', @@ -950,22 +982,31 @@ URL: [url]', 'no_linked_files' => 'Brak powiązanych dokumentów', 'no_previous_versions' => 'Nie znaleziono poprzednich wersji', 'no_receipt_needed' => 'Brak dokumentów w trakcie potwierdzenia', -'no_review_needed' => 'Brak dokumentów w trakcie opiniowania.', +'no_review_needed' => 'Brak dokumentów w trakcie opiniowania', 'no_revision_needed' => 'Brak dokumentów w trakcie korygowania', 'no_revision_planed' => 'Brak dokumentów w wersji planowanej korekty', 'no_update_cause_locked' => 'Nie możesz zaktualizować tego dokumentu. Proszę skontaktuj się z osobą która go blokuje.', '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', 'object_check_warning' => 'Ostrzeżenia', -'obsolete' => 'Zdezaktualizowany', +'obsolete' => 'Nieaktualny', 'october' => 'Październik', 'old' => 'Stary', 'only_jpg_user_images' => 'Wyłącznie pliki typu .jpg mogą być użyte jako obrazy użytkowników', 'operation_disallowed' => '', +'orderby' => '', +'orderby_date_asc' => '', +'orderby_date_desc' => '', +'orderby_id_asc' => '', +'orderby_id_desc' => '', +'orderby_name_asc' => '', +'orderby_name_desc' => '', +'orderby_unsorted' => '', 'order_by_sequence_off' => 'Porządkowanie według sekwencji jest wyłączone w ustawieniach. Jeśli chcesz, aby ten parametr zadziałał, musisz go ponownie włączyć.', 'original_filename' => 'Oryginalna nazwa pliku', 'overall_indexing_progress' => 'Całkowity postęp indeksowania', @@ -978,6 +1019,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,9 +1037,12 @@ 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.', +'password_forgotten_invalid_hash' => '', +'password_forgotten_invalid_hash_title' => '', +'password_forgotten_send_hash' => 'Instrukcje dotyczące zmiany hasła zostały wysłane na adres e-mail użytkownika.', +'password_forgotten_text' => 'Wypełnij pola poniżej i postępuj wg instrukcji z wiadomości e-mail, która zostanie do Ciebie wysłana.', 'password_forgotten_title' => 'Hasło wysłane', 'password_mismatch_error' => '', 'password_mismatch_error_title' => '', @@ -1013,8 +1058,8 @@ Jeśli nadal będą problemy z zalogowaniem, prosimy o kontakt z administratorem 'pending_reviews' => 'Oczekuje na recenzje', 'pending_revision' => 'Oczekuje na korekty', 'pending_workflows' => 'Oczekuje na przepływ pracy', -'personal_default_keywords' => 'Osobiste sława kluczowe', -'php_info' => '', +'personal_default_keywords' => 'Osobiste słowa kluczowe', +'php_info' => 'Informacje na temat zainstalowanej wersji PHP', 'pl_PL' => 'Polski', 'possible_substitutes' => 'Ewentualni zastępcy', 'preset_expires' => 'Wygasa', @@ -1033,20 +1078,25 @@ Jeśli nadal będą problemy z zalogowaniem, prosimy o kontakt z administratorem 'quota_exceeded' => 'Twój limit przydzielonej przestrzeni dyskowej został przekroczony o [bytes].', 'quota_is_disabled' => 'Wsparcie limitów dyskowych jest obecnie wyłączone w ustawieniach. Ustawiony limit dyskowy użytkownika nie będzie działał dopóki wparcie nie zostanie ponownie włączone.', 'quota_warning' => 'Przekroczono użycie dysku o [bytes]. Usuń dokumenty lub poprzednie wersje.', -'receipts_accepted' => 'Potwierdzenie zaakceptowane', -'receipts_accepted_latest' => 'Potwierdzenie zaakceptowane później', -'receipts_not_touched' => 'Potwierdzenie nie oglądane', -'receipts_not_touched_latest' => 'Potwierdzenie nie oglądane później', -'receipts_rejected' => 'Potwierdzenie odrzucone', -'receipts_rejected_latest' => 'Potwierdzenie odrzucone później', -'receipts_without_group' => 'Potwierdzenie bez grupy', -'receipts_without_user' => 'Potwierdzenie bez użytkownika', +'receipts_accepted' => 'Potwierdzenia zaakceptowane', +'receipts_accepted_latest' => '(istnieje [no_receipts] w ostatniej wersji)', +'receipts_not_touched' => 'Potwierdzenia nieoglądane', +'receipts_not_touched_latest' => '(istnieje [no_receipts] w ostatniej wersji)', +'receipts_rejected' => 'Potwierdzenia odrzucone', +'receipts_rejected_latest' => '(istnieje [no_receipts] w ostatniej wersji)', +'receipts_without_group' => 'Potwierdzenia bez grupy', +'receipts_without_user' => 'Potwierdzenia 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_body_html' => '', +'receipt_submit_email_subject' => '', 'receipt_summary' => 'Podsumowanie odbioru', 'receipt_update_failed' => 'Potwierdzenie odbioru nie powiodło się', 'recent_uploads' => 'Najnowsze dodania', @@ -1056,6 +1106,7 @@ Jeśli nadal będą problemy z zalogowaniem, prosimy o kontakt z administratorem 'reception_rejected' => 'Przyjęcie odrzucone', 'recipients' => 'Odbiorcy', 'recipient_already_removed' => 'Odbiorca został już usunięty lub potwierdzony.', +'record_type' => '', 'redraw' => 'Przerysuj', 'refresh' => 'Odśwież', 'rejected' => 'Odrzucony', @@ -1066,10 +1117,11 @@ 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.', -'removed_revisor' => 'został usunięty z listy revisors', +'removed_revisor' => 'został usunięty z listy audytorów', 'removed_workflow_email_body' => 'Usunięcie procesu z wersji dokumentu Dokument: [name] Wersja: [version] @@ -1077,7 +1129,8 @@ Proces: [workflow] Folder nadrzędny: [folder_path] Użytkownik: [username] URL: [url]', -'removed_workflow_email_subject' => '[sitename]: [name] - Usunięty workflow z wersji dokumentu', +'removed_workflow_email_body_html' => '', +'removed_workflow_email_subject' => '[sitename]: [name] - Usunięty przepływ dokumentu z wersji dokumentu', 'removeFolderFromDropFolder' => 'Usuń folder po imporcie', 'remove_approval_log' => '', 'remove_marked_files' => 'Usuń zaznaczone pliki', @@ -1085,61 +1138,69 @@ 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', 'reviewer_already_assigned' => 'jest już przypisany jako recenzent', 'reviewer_already_removed' => 'został już usunięty z procesu opiniowania lub już wydał swoją opinię', 'reviews_accepted' => 'Recenzje zaakceptowane', -'reviews_accepted_latest' => 'Recenzje zaakceptowane później', -'reviews_not_touched' => 'Recenzje nie oglądane', -'reviews_not_touched_latest' => 'Recenzje nie oglądane później', +'reviews_accepted_latest' => '(istnieje [no_reviews] w ostatniej wersji)', +'reviews_not_touched' => 'Recenzje nieoglądane', +'reviews_not_touched_latest' => '(istnieje [no_reviews] w ostatniej wersji)', 'reviews_rejected' => 'Recenzje odrzucone', -'reviews_rejected_latest' => 'Recenzje odrzucone później', +'reviews_rejected_latest' => '(istnieje [no_reviews] w ostatniej wersji)', 'reviews_without_group' => 'Recenzje bez grupy', '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' => 'Prośba o recenzję', 'review_request_email_body' => '', +'review_request_email_body_html' => '', 'review_request_email_subject' => '', -'review_status' => 'Status recensji', +'review_status' => 'Status recenzji', '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ę.', 'revise_document' => 'Zweryfikuj dokument', 'revise_document_on' => 'Sprawdź dokument', -'revision' => '', +'revision' => 'Korekta', 'revisions_accepted' => 'Korekty zaakceptowane', -'revisions_accepted_latest' => 'Korekty zaakceptowane później', -'revisions_not_touched' => 'Korekty nie oglądane', -'revisions_not_touched_latest' => 'Korekty nie oglądane później', +'revisions_accepted_latest' => '(istnieje [no_revisions] w ostatniej wersji)', +'revisions_not_touched' => 'Korekty nieoglądane', +'revisions_not_touched_latest' => '(istnieje [no_revisions] w ostatniej wersji)', 'revisions_pending' => 'Korekty oczekujące', -'revisions_pending_latest' => 'Korekty oczekujące później', +'revisions_pending_latest' => '(istnieje [no_revisions] w ostatniej wersji)', 'revisions_rejected' => 'Korekty odrzucone', -'revisions_rejected_latest' => 'Korekty odrzucone później', +'revisions_rejected_latest' => '(istnieje [no_revisions] w ostatniej wersji)', 'revisions_without_group' => 'Korekty bez grupy', 'revisions_without_user' => 'Korekty bez użytkownika', '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 +1214,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', @@ -1165,9 +1227,9 @@ URL: [url]', 'rm_file' => 'Usuń plik', 'rm_folder' => 'Usuń folder', 'rm_from_clipboard' => 'Usuń ze schowka', -'rm_group' => 'Usuń tą grupę', -'rm_role' => 'Usuń tę rolę', -'rm_task' => '', +'rm_group' => 'Usuń grupę', +'rm_role' => 'Usuń rolę', +'rm_task' => 'Usuń zadanie', 'rm_transmittal' => 'Usuń przekaz', 'rm_transmittalitem' => 'Usuń element', 'rm_user' => 'Usuń tego użytkownika', @@ -1195,6 +1257,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', @@ -1208,17 +1271,17 @@ URL: [url]', 'search' => 'Szukaj', 'search_fulltext' => 'Przeszukaj całe teksty', 'search_in' => 'Szukaj w', -'search_mode' => '', -'search_mode_and' => 'wszystkie słowa', +'search_mode' => 'Tryb wyszukiwania', +'search_mode_and' => 'Wszystkie słowa', 'search_mode_documents' => 'Tylko dokumenty', 'search_mode_folders' => 'Tylko foldery', -'search_mode_or' => 'conajmnej jedno słowo', +'search_mode_or' => 'Co najmnej jedno słowo', 'search_no_results' => 'Nie znaleziono dokumentów spełniających kryteria wyszukiwania.', 'search_query' => 'Wyszukaj', 'search_report' => 'Znaleziono [doccount] dokumentów i [foldercount] katalogów w [searchtime] sec.', 'search_report_fulltext' => 'Znaleziono [doccount] dokumentów', 'search_resultmode' => 'Wyniki wyszukiwania', -'search_resultmode_both' => 'Dokumenty i Foldery', +'search_resultmode_both' => 'Dokumenty i foldery', 'search_results' => 'Wyniki wyszukiwania', 'search_results_access_filtered' => 'Wyniki wyszukiwania mogą zawierać treści, do których dostęp jest zabroniony.', 'search_time' => 'Upływający czas: [time] sec.', @@ -1250,7 +1313,8 @@ URL: [url]', 'select_mimetype' => '', 'select_one' => 'Wybierz', 'select_owner' => '', -'select_status' => '', +'select_record_type' => '', +'select_status' => 'Kliknij by wybrać status dokumentu', 'select_user' => 'Wybierz użytkownika', 'select_users' => 'Kliknij by wybrać użytkowników', 'select_value' => 'Wybrać wartość', @@ -1301,7 +1365,7 @@ Name: [username] 'settings_backupDir' => 'Lokalizacja kopii zapasowej', 'settings_backupDir_desc' => 'Katalog, w którym narzędzie do tworzenia kopii zapasowych zapisuje kopie zapasowe. Jeśli ten katalog nie jest ustawiony lub nie można uzyskać do niego dostępu, kopie zapasowe zostaną zapisane w katalogu zawartości.', 'settings_cacheDir' => 'Folder bufora', -'settings_cacheDir_desc' => 'Miejsce przechowywania obrazków podglądu (najlepiej wybrać katalog nie dostępny bezpośrednio dla web-serwera).', +'settings_cacheDir_desc' => 'Miejsce przechowywania obrazków podglądu (najlepiej wybrać katalog niedostępny bezpośrednio dla web-serwera).', 'settings_Calendar' => 'Ustawienia kalendarza', 'settings_calendarDefaultView' => 'Domyślny widok kalendarza', 'settings_calendarDefaultView_desc' => 'Domyślny widok kalendarza', @@ -1319,8 +1383,8 @@ Name: [username] 'settings_convertToPdf_desc' => 'Jeżeli dokument nie będzie możliwy do pokazania w natywnej formie, wyświetlona zostanie wersja skonwertowana do pdf.', 'settings_cookieLifetime' => 'Czas życia ciasteczka', 'settings_cookieLifetime_desc' => 'Czas życia pliku cookie w sekundach. Jeśli wartość zostanie ustawione na 0, plik cookie zostanie usunięte po zamknięciu przeglądarki.', -'settings_coreDir' => 'Katalog Core letoDMS', -'settings_coreDir_desc' => 'Ścieżka do LetoDMS_Core (opcjonalnie)', +'settings_coreDir' => 'Katalog Core SeedDMS', +'settings_coreDir_desc' => 'Ścieżka do SeedDMS_Core (opcjonalnie)', 'settings_createCheckOutDir' => 'Tworzenie katalogu wyewidencjonowania', 'settings_createCheckOutDir_desc' => 'Utwórz katalog do wyewidencjonowania, jeśli nie istnieje', 'settings_createdatabase' => 'Utwórz tabele basy danych', @@ -1348,11 +1412,13 @@ Name: [username] 'settings_defaultDocPosition_desc' => 'Jest to domyślna pozycja w folderze podczas tworzenia dokumentu.', 'settings_defaultDocPosition_val_end' => 'koniec', 'settings_defaultDocPosition_val_start' => 'początek', +'settings_defaultFolderPosition' => '', +'settings_defaultFolderPosition_desc' => '', 'settings_defaultSearchMethod' => 'Domyślna metoda wyszukiwania', 'settings_defaultSearchMethod_desc' => 'Domyślna metoda wyszukiwania, gdy wyszukiwanie jest uruchamiane przez formularz wyszukiwania w menu głównym.', 'settings_defaultSearchMethod_valdatabase' => 'baza danych', 'settings_defaultSearchMethod_valfulltext' => 'pełnotekstowe', -'settings_delete_install_folder' => 'Aby móc używać LetoDMS, musisz usunąć plik ENABLE_INSTALL_TOOL znajdujący się w katalogu konfiguracyjnym', +'settings_delete_install_folder' => 'Aby móc używać SeedDMS, musisz usunąć plik ENABLE_INSTALL_TOOL znajdujący się w katalogu konfiguracyjnym', 'settings_disableSelfEdit' => 'Wyłącz auto edycję', 'settings_disableSelfEdit_desc' => 'Jeśli zaznaczone, użytkownik nie może zmieniać własnych danych', 'settings_disable_install' => 'Usuń plik ENABLE_INSTALL_TOOL jeśli to możliwe', @@ -1367,15 +1433,15 @@ Name: [username] 'settings_enableAcknowledgeWorkflow' => 'Włączanie potwierdzenia przepływu pracy', 'settings_enableAcknowledgeWorkflow_desc' => 'Włączanie potwierdzenia przepływu pracy', 'settings_enableAdminReceipt' => 'Zezwalaj na odbieranie dokumentów dla administratorów', -'settings_enableAdminReceipt_desc' => 'Włącz tę opcję, jeśli chcesz, aby administratorzy były wymienieni jako adresaci dokumentów.', +'settings_enableAdminReceipt_desc' => 'Włącz tę opcję, jeśli chcesz, aby administratorzy byli wymienieni jako adresaci dokumentów.', 'settings_enableAdminRevApp' => 'Dołącz Administratora do recenzji/rewizji', 'settings_enableAdminRevApp_desc' => 'Odznacz aby usunąć Administratora z listy zatwierdzających/recenzentów', 'settings_enableCalendar' => 'Włącz kalendarz', 'settings_enableCalendar_desc' => 'Włącz/Wyłącz kalendarz', -'settings_enableCancelCheckout' => '', -'settings_enableCancelCheckout_desc' => '', +'settings_enableCancelCheckout' => 'Zezwól na anulowanie statusu odrzuconego', +'settings_enableCancelCheckout_desc' => 'Jeśli zaznaczone, wypisany dokument, który został już zmodyfikowany, może zostać odrzucony.', 'settings_enableClipboard' => 'Włącz schowek', -'settings_enableClipboard_desc' => 'Włącz/wyłącz schowek', +'settings_enableClipboard_desc' => 'Włącz/Wyłącz schowek', 'settings_enableConverting' => 'Włącz konwertowanie', 'settings_enableConverting_desc' => 'Włącz/Wyłącz konwertowanie plików', 'settings_enableDebugMode' => 'Włączenie debugowania', @@ -1390,7 +1456,13 @@ Name: [username] 'settings_enableDuplicateSubFolderNames_desc' => 'Zezwala na zduplikowane nazwy podfolderów w folderze', 'settings_enableEmail' => 'Włącz powiadomienia e-mail', 'settings_enableEmail_desc' => 'Włącz/Wyłącz automatyczne powiadomienia drogą mailową', -'settings_enableFilterReceipt' => 'Odfiltruj właściciela, recenzenta, ... z listy odbioru', +'settings_enableExtensionDownload' => '', +'settings_enableExtensionDownload_desc' => '', +'settings_enableExtensionImport' => '', +'settings_enableExtensionImportFromRepository' => '', +'settings_enableExtensionImportFromRepository_desc' => '', +'settings_enableExtensionImport_desc' => '', +'settings_enableFilterReceipt' => 'Odfiltruj właściciela, recenzenta, itp. z listy odbioru', 'settings_enableFilterReceipt_desc' => 'Włącz, aby odfiltrować niektórych adresatów z listy odbioru, jeśli wybrano członków grupy.', 'settings_enableFolderTree' => 'Pokaż drzewo katalogów', 'settings_enableFolderTree_desc' => 'Odznacz aby nie pokazywać drzewa katalogów', @@ -1405,9 +1477,9 @@ Name: [username] 'settings_enableLanguageSelector' => 'Włącz wybór języka', 'settings_enableLanguageSelector_desc' => 'Pokaż selektor języka dla interfejsu użytkownika po zalogowaniu To nie ma wpływu na wybór języka na stronie logowania.', 'settings_enableLargeFileUpload' => 'Zezwól na wczytywanie dużych plików', -'settings_enableLargeFileUpload_desc' => 'Jeśli zaznaczone, wczytywanie plików będzie możliwe również przez aplet javy nazywany jumploader bez limitu rozmiaru plików. Aplet ten pozwala również na wczytywanie wielu plików jednocześnie.', +'settings_enableLargeFileUpload_desc' => 'Jeśli zaznaczone, wczytywanie plików będzie możliwe również przez aplet javy bez limitu rozmiaru plików. Aplet pozwala również na wczytywanie wielu plików jednocześnie.', 'settings_enableMenuTasks' => 'Włącz listę zadań w menu', -'settings_enableMenuTasks_desc' => 'Włącza /Wyłącza pozycję w menu w której znajdują się wszystkie zadania dla użytkownika. Zawiera dokumenty, które potrzebują być ocenione, zatwierdzone, i.t.d.', +'settings_enableMenuTasks_desc' => 'Włącza/Wyłącza pozycję w menu w której znajdują się wszystkie zadania dla użytkownika. Zawiera dokumenty, które potrzebują być ocenione, zatwierdzone, itd.', 'settings_enableMultiUpload' => 'Zezwól na wysyłanie wielu plików', 'settings_enableMultiUpload_desc' => 'Zezwolenie na wysyłanie wielu plików', 'settings_enableNotificationAppRev' => 'Włącz/Wyłącz powiadomienia dla zatwierdzających/recenzentów', @@ -1415,28 +1487,28 @@ Name: [username] 'settings_enableNotificationWorkflow' => 'Wysyłanie powiadomień do użytkowników w następnym przejściu przepływu pracy', 'settings_enableNotificationWorkflow_desc' => 'Jeśli ta opcja jest włączona, użytkownicy i grupy, które muszą podjąć działania w następnym przejściu przepływu pracy, zostaną powiadomieni. Nawet jeśli nie dodali powiadomienia o dokumencie.', 'settings_enableOwnerNotification' => 'Włącz domyślne powiadamianie właściciela', -'settings_enableOwnerNotification_desc' => 'Zaznacz aby właściciel pliku był powiadamiany zmianach w pliku.', +'settings_enableOwnerNotification_desc' => 'Zaznacz aby właściciel pliku był powiadamiany o zmianach w pliku.', 'settings_enableOwnerReceipt' => 'Zezwalaj na odbiór dokumentów przez właściciela', 'settings_enableOwnerReceipt_desc' => 'Włącz tę opcję, jeśli chcesz, aby właściciel dokumentu był wyświetlany jako adresat.', -'settings_enableOwnerRevApp' => 'Pozwól przeglądać/zatwierdzenia właściciela', -'settings_enableOwnerRevApp_desc' => 'Włącz tę opcję jeżeli właściciel dokumentu powinien być wymieniony jako zatwierdzających/recenzentów oraz dla przepływu procesu', +'settings_enableOwnerRevApp' => 'Pozwól przeglądać/zatwierdzać właścicielom', +'settings_enableOwnerRevApp_desc' => 'Włącz tę opcję jeżeli właściciel dokumentu powinien być wymieniony jako zatwierdzający/recenzent oraz dla przepływu procesu.', 'settings_enablePasswordForgotten' => 'Włącz odzyskiwanie hasła po jego zapomnieniu', -'settings_enablePasswordForgotten_desc' => 'Jeśli chcesz zezwolić użytkownikom na zmianę własnego hasła i wysyłanie go emailem, zaznacz tę opcję.', -'settings_enableReceiptReject' => 'Umożliwianie odrzucania przyjęć', -'settings_enableReceiptReject_desc' => 'Włącz, aby włączyć odrzucenie przyjęć.', -'settings_enableReceiptWorkflow' => 'Włącz potwierdzenie odbioru dokumentu', +'settings_enablePasswordForgotten_desc' => 'Jeśli chcesz zezwolić użytkownikom na zmianę ich własnego hasła oraz wysyłanie go e-mail\'em, zaznacz tę opcję.', +'settings_enableReceiptReject' => 'Umożliwianie odrzucanie przyjęć', +'settings_enableReceiptReject_desc' => 'Włącz, aby włączyć odrzucanie przyjęć', +'settings_enableReceiptWorkflow' => 'Włącz potwierdzanie odbioru dokumentu', 'settings_enableReceiptWorkflow_desc' => 'Włącz, aby włączyć przepływ pracy, aby potwierdzić odbiór dokumentu.', 'settings_enableRecursiveCount' => 'Włącz licznik rekurencji dokumentu/folderu', -'settings_enableRecursiveCount_desc' => 'Jeżeli jest włączone, to liczba dokumentów i folderów w widoku będzie ustalona poprzez zliczenie wszystkich obiektów przez rekurencyjnie przetwarzane foldery i policzenia tych dokumentów i folderów do których użytkownik ma dostęp', -'settings_enableRemoveRevApp' => '', -'settings_enableRemoveRevApp_desc' => '', +'settings_enableRecursiveCount_desc' => 'Jeżeli jest włączone, to liczba dokumentów i folderów w widoku będzie określana poprzez zliczenie wszystkich obiektów. Odbywa się to poprzez rekurencyjne przetworzenie wszystkich folderów i przeliczenie obiektów do których użytkownik ma dostęp.', +'settings_enableRemoveRevApp' => 'Zezwalaj na usunięcie istniejącej recenzji/zatwierdzenia', +'settings_enableRemoveRevApp_desc' => 'Włącz tę opcję, jeśli administratorzy mogą usuwać recenzje/zatwierdzenia. Nie spowoduje to usunięcia przeglądu/zatwierdzenia z bazy danych, ale doda nowy wpis w statusie ustawień dziennika przeglądów/zatwierdzeń do stanu początkowego.', 'settings_enableRevisionOneVoteReject' => 'Odrzuć przez jedną korektę', -'settings_enableRevisionOneVoteReject_desc' => 'Jeśli ta opcja jest włączona, stan dokumentu zostanie ustawiony na "wymaga korekty", gdy pierwsza korekta odrzuci dokument. Jeśli jest wyłączona, stan dokumentu nie ulegnie zmianie, dopóki wszystkie zmiany nie zakończą ich rewizji.', +'settings_enableRevisionOneVoteReject_desc' => 'Jeśli ta opcja jest włączona, stan dokumentu zostanie ustawiony na \'wymaga korekty\', gdy pierwsza korekta odrzuci dokument. Jeśli jest wyłączona, stan dokumentu nie ulegnie zmianie, dopóki wszystkie zmiany nie zakończą ich rewizji.', 'settings_enableRevisionOnVoteReject' => 'Odrzuć przez korektę', 'settings_enableRevisionOnVoteReject_desc' => 'Odrzuć przez korektę', 'settings_enableRevisionWorkflow' => 'Włączanie korekty dokumentów', 'settings_enableRevisionWorkflow_desc' => 'Włącz, aby móc uruchomić przepływ pracy w celu zmiany dokumentu po określonym czasie.', -'settings_enableSelfReceipt' => 'Zezwalaj na odbiór dokumentów dla zalogowanego użytkownika', +'settings_enableSelfReceipt' => 'Zezwalaj na odbiór dokumentów zalogowanym użytkownikom', 'settings_enableSelfReceipt_desc' => 'Włącz tę opcję, jeśli chcesz, aby aktualnie zalogowany użytkownik był wymieniony jako adresat dokumentu.', 'settings_enableSelfRevApp' => 'Pozwalaj przeglądać/zatwierdzać dla zalogowanych użytkowników', 'settings_enableSelfRevApp_desc' => 'Włącz tę opcję jeżeli zalogowany użytkownik ma prawo do recenzowania/zatwierdzania oraz do przepływu procesu', @@ -1446,14 +1518,14 @@ Name: [username] 'settings_enableThemeSelector_desc' => 'Włącza/wyłącza wybór motywu na stronie logowania.', 'settings_enableUpdateReceipt' => 'Zezwalaj na edycję istniejącego odbioru', 'settings_enableUpdateReceipt_desc' => 'Włącz to, jeśli użytkownik, który dokonał odbioru, może zmienić decyzję.', -'settings_enableUpdateRevApp' => 'Zezwól na edycję zamykania recenzji / zatwierdzenia', -'settings_enableUpdateRevApp_desc' => 'Włącz to, jeśli użytkownik, który dokonał przeglądu / zatwierdzenia, może zmienić decyzję, dopóki bieżący krok przepływu pracy nie zostanie zakończony.', +'settings_enableUpdateRevApp' => 'Zezwól na edycję zamykania recenzji/zatwierdzenia', +'settings_enableUpdateRevApp_desc' => 'Włącz to, jeśli użytkownik, który dokonał przeglądu/zatwierdzenia, może zmienić decyzję, dopóki bieżący krok przepływu pracy nie zostanie zakończony.', 'settings_enableUserImage' => 'Włącz obrazy użytkowników', 'settings_enableUserImage_desc' => 'Zezwól na indywidualne obrazki użytkowników', 'settings_enableUsersView' => 'Włącz podgląd użytkownika', -'settings_enableUsersView_desc' => 'Włącz/Wyłącz wgląd w profil użytkownika dla innych', +'settings_enableUsersView_desc' => 'Włącz/Wyłącz podgląd profilu użytkownika dla innych', 'settings_enableVersionDeletion' => 'Zezwól na usuwanie starych wersji plików', -'settings_enableVersionDeletion_desc' => 'Włącz/Wyłącz możliwość kasowania poprzednich wersji plików przez zwykłych użytkowników. Administrator może w każdej chwili usunąć stare wersjie.', +'settings_enableVersionDeletion_desc' => 'Włącz/Wyłącz możliwość kasowania poprzednich wersji plików przez zwykłych użytkowników. Administrator może w każdej chwili usunąć stare wersje.', 'settings_enableVersionModification' => 'Zezwól na modyfikowanie wersji', 'settings_enableVersionModification_desc' => 'Włącz/Wyłącz możliwość modyfikacji wersji dokumentów przez zwykłych użytkowników po wczytaniu pliku. Administrator może w każdej chwili zmienić wersję wczytanego pliku.', 'settings_enableWebdavReplaceDoc' => 'Zamień dokument podczas zapisywania', @@ -1468,6 +1540,7 @@ Name: [username] 'settings_expandFolderTree_val0' => 'Rozpocznij z ukrytym drzewem', 'settings_expandFolderTree_val1' => 'Rozpocznij z pokazanym drzewem i rozwiniętym pierwszym poziomem', 'settings_expandFolderTree_val2' => 'Rozpocznij z pokazanym, w pełni rozwiniętym drzewem', +'settings_ExtensionMgr' => '', 'settings_Extensions' => 'Rozszerzenia', 'settings_extraPath' => 'Dodatkowa ścieżka include dla PHP', 'settings_extraPath_desc' => 'Ścieżka do dodatkowego oprogramowania. Jest to katalog zawierający np. adodb, pear lub dodatkowe pakiety', @@ -1484,9 +1557,9 @@ Name: [username] 'settings_guestid_is_admin' => '', 'settings_guestid_is_disabled' => '', 'settings_httpRoot' => 'Http Root', -'settings_httpRoot_desc' => 'Relatywna ścieżka w URL, część za domeną. Nie dołączaj przedrostka http:// ani nazwy hosta. Np. Jeśli cały URL to http://www.example.com/letodms/, wpisz \'/letodms/\'. Jeśli URL to http://www.example.com/, set \'/\'', +'settings_httpRoot_desc' => 'Relatywna ścieżka w URL, część za domeną. Nie dołączaj przedrostka http:// ani nazwy hosta. Np. Jeśli cały URL to http://www.example.com/seeddms/, wpisz \'/seeddms/\'. Jeśli URL to http://www.example.com/, set \'/\'', 'settings_incItemsPerPage' => 'Liczba wpisów załadowana na dole strony', -'settings_incItemsPerPage_desc' => 'Jeśli liczba folderów i dokumentów jest ograniczona, spowoduje to ustawienie liczby dodatkowo załadowanych obiektów podczas przewijania w dół do dołu strony folderu widoku. Ustawienie tego na 0 spowoduje załadowanie takiej samej liczby obiektów, jaka została załadowana początkowo.', +'settings_incItemsPerPage_desc' => 'Jeśli liczba folderów i dokumentów jest ograniczona, spowoduje to ustawienie liczby dodatkowo załadowanych obiektów podczas przewijania w kierunku dołu strony folderu widoku. Ustawienie tego na 0 spowoduje załadowanie takiej samej liczby obiektów, jaka została załadowana początkowo.', 'settings_initialDocumentStatus' => 'Stan dokumentu początkowego', 'settings_initialDocumentStatus_desc' => 'Ten stan zostanie ustawiony po dodaniu dokumentu.', 'settings_initialDocumentStatus_draft' => 'Projekt', @@ -1494,12 +1567,12 @@ Name: [username] 'settings_inlineEditing' => 'Edycja w szczegółach', 'settings_inlineEditing_desc' => 'Pozwala edytować nazwę dokumentu na stronie szczegółów dokumentu.', 'settings_installADOdb' => 'Zainstaluj ADOdb', -'settings_install_disabled' => 'Plik ENABLE_INSTALL_TOOL został usunięty. Możesz teraz zalogować się do LetoDMS i przeprowadzić dalszą konfigurację.', +'settings_install_disabled' => 'Plik ENABLE_INSTALL_TOOL został usunięty. Możesz teraz zalogować się do SeedDMS i przeprowadzić dalszą konfigurację.', 'settings_install_pear_package_log' => 'Zainstaluj pakiet Pear \'Log\'', 'settings_install_pear_package_webdav' => 'Zainstaluj pakiet Pear \'HTTP_WebDAV_Server\', jeżli zamierzasz używać interfejsu webdav', 'settings_install_success' => 'Instalacja zakończyła się sukcesem.', -'settings_install_welcome_text' => '

Zanim uruchomisz instalację upewnij się, że masz utworzony plik \'ENABLE_INSTALL_TOOL\' w katalogu konfiguracyjnym, w przeciwnym wypadku instalacja nie zadziała. W systemach uniksowych może to był łatwo wykonane poprzez polecenie \'touch conf/ENABLE_INSTALL_TOOL\'. Po zakończeniu instalacji usuń ten plik.

LetoDMS ma bardzo niewielkie wymagania. Będziesz potrzebował bazy danych MySQL i włączonej obsługi PHP na swerze http. Do działania lucene - systemu przeszukiwania pełnoteksotowego - będzie także potrzebny Zend Framework, zainstalowany na dysku, na którym będzie widziany przez PHP. Począwszy od wersji 3.2.0 letoDMS, ADOdb nie będzie już częścią pakietu instalacyjnego. Pobierz kopię ADOdb z http://adodb.sourceforge.net i zainstaluj. Ścieżka do ADOdb może być później ustawiona w trakcie instalacji.

Jeśli chcesz przygotować bazę danych przed uruchomieniem instalacji, możesz wykonać to ręcznie ulubionym narzędziem. Ewentualnie utwórz użytkownika bazy danych z prawem dostępu do bazy danych i zaimportuj ją ze zrzutu z katalogu konfiguracyjnego. Skrypt instalacyjny może to wszystko zrobić za Ciebie, lecz będzie do tego potrzebował dostępu do bazy danych z uprawnieniami zezwalającymi na tworzenie baz danych.

', -'settings_install_welcome_title' => 'Witamy w procesie instalacyjnym LetoDMS', +'settings_install_welcome_text' => '

Zanim uruchomisz instalację upewnij się, że masz utworzony plik \'ENABLE_INSTALL_TOOL\' w katalogu konfiguracyjnym, w przeciwnym wypadku instalacja nie zadziała. W systemach uniksowych może to był łatwo wykonane poprzez polecenie \'touch conf/ENABLE_INSTALL_TOOL\'. Po zakończeniu instalacji usuń ten plik.

SeedDMS ma bardzo niewielkie wymagania. Będziesz potrzebował bazy danych MySQL i włączonej obsługi PHP na swerze http. Do działania lucene - systemu przeszukiwania pełnoteksotowego - będzie także potrzebny Zend Framework, zainstalowany na dysku, na którym będzie widziany przez PHP. Począwszy od wersji 3.2.0 letoDMS, ADOdb nie będzie już częścią pakietu instalacyjnego. Pobierz kopię ADOdb z http://adodb.sourceforge.net i zainstaluj. Ścieżka do ADOdb może być później ustawiona w trakcie instalacji.

Jeśli chcesz przygotować bazę danych przed uruchomieniem instalacji, możesz wykonać to ręcznie ulubionym narzędziem. Ewentualnie utwórz użytkownika bazy danych z prawem dostępu do bazy danych i zaimportuj ją ze zrzutu z katalogu konfiguracyjnego. Skrypt instalacyjny może to wszystko zrobić za Ciebie, lecz będzie do tego potrzebował dostępu do bazy danych z uprawnieniami zezwalającymi na tworzenie baz danych.

', +'settings_install_welcome_title' => 'Witamy w procesie instalacyjnym SeedDMS', 'settings_install_zendframework' => 'Zainstaluj Zend Framework, jeśli zamierzasz używać przeszukiwania pełnotekstowego', 'settings_invalid_guestid' => '', 'settings_language' => 'Domyślny język', @@ -1512,14 +1585,14 @@ Name: [username] 'settings_logFileRotation_desc' => 'Rotowanie pliku dziennika', 'settings_loginFailure' => 'Błędy logowania', 'settings_loginFailure_desc' => 'Wyłącz konto po n nieprawidłowych logowaniach.', -'settings_luceneClassDir' => 'Katalog Lucene LetoDMS', -'settings_luceneClassDir_desc' => 'Ścieżka do Path to LetoDMS_Lucene (opcjonalnie)', +'settings_luceneClassDir' => 'Katalog Lucene SeedDMS', +'settings_luceneClassDir_desc' => 'Ścieżka do Path to SeedDMS_Lucene (opcjonalnie)', 'settings_luceneDir' => 'Katalog dla indeksu pełnotekstowego', 'settings_luceneDir_desc' => 'Ścieżka do indeksu Lucene', 'settings_maxDirID' => 'Maksymalny ID katalogu', 'settings_maxDirID_desc' => 'Maksymalna liczba podkatalogów dla katalogu nadrzędnego. Domyślnie: 0.', 'settings_maxExecutionTime' => 'Maksymalny czas wykonywania (s)', -'settings_maxExecutionTime_desc' => 'Ustawia maksymalny czas, liczony w sekundach, jaki ma na wykonanie skrypt zanim zostanie zakończony.', +'settings_maxExecutionTime_desc' => 'Ustawia maksymalny czas liczony w sekundach, jaki skrypt ma na wykonanie zanim zostanie zakończony.', 'settings_maxItemsPerPage' => 'Maksymalna liczba wpisów na stronę', 'settings_maxItemsPerPage_desc' => 'Ogranicza liczbę folderów i dokumentów wyświetlanych na stronie folderu widoku. Kolejne obiekty zostaną załadowane podczas przewijania do końca strony. Ustaw na 0, aby zawsze wyświetlać wszystkie obiekty.', 'settings_maxRecursiveCount' => 'Max. liczba rekurencji dokumentów/folderów', @@ -1531,6 +1604,8 @@ Name: [username] 'settings_more_settings' => 'Wykonaj dalszą konfigurację. Domyślny login/hasło: admin/admin', 'settings_noDocumentFormFields' => 'Nie pokazuj tych pól', 'settings_noDocumentFormFields_desc' => 'Te pola nie będą wyświetlane podczas dodawania lub edycji dokumentu. Istniejące wartości zostaną zachowane.', +'settings_noFolderFormFields' => '', +'settings_noFolderFormFields_desc' => '', 'settings_notfound' => 'Nie znaleziono', 'settings_Notification' => 'Ustawienia powiadomień', 'settings_notwritable' => 'Konfiguracja nie może zostać zapisana ponieważ plik konfiguracyjny nie jest zapisywalny.', @@ -1587,7 +1662,7 @@ Name: [username] 'settings_restricted' => 'Ograniczony dostęp', 'settings_restricted_desc' => 'Mogą zalogować się tylko ci użytkownicy, którzy mają swoje wpisy w lokalnej bazie danych (niezależnie od pomyślnego uwierzytelnienia w LDAP)', 'settings_rootDir' => 'Katalog główny', -'settings_rootDir_desc' => 'Ścieżka do miejsca, gdzie znajduje się letoDMS', +'settings_rootDir_desc' => 'Ścieżka do miejsca, gdzie znajduje się SeedDMS', 'settings_rootFolderID' => 'ID katalogu głównego', 'settings_rootFolderID_desc' => 'ID katalogu głównego (zazwyczaj nie trzeba tego zmieniać)', 'settings_SaveError' => 'Błąd zapisu pliku konfiguracyjnego', @@ -1597,12 +1672,12 @@ Name: [username] 'settings_showMissingTranslations' => 'Pokaż brakujące tłumaczenia', 'settings_showMissingTranslations_desc' => 'Wyświetl wszystkie brakujące tłumaczenia na stronie u dołu strony. Zalogowany użytkownik będzie mógł przesłać propozycję braku tłumaczenia, które zostanie zapisane w pliku csv. Nie włączaj tej funkcji w środowisku produkcyjnym!', 'settings_showSingleSearchHit' => 'Przejdź prosto do pojedynczego trafienia wyszukiwania', -'settings_showSingleSearchHit_desc' => 'Jeśli wyniki wyszukiwania w jednym trafieniu, zostanie on wyświetlony od razu zamiast listy wyników.', +'settings_showSingleSearchHit_desc' => 'Jeśli wyniki wyszukiwania jest w jednym trafieniu, zostanie on wyświetlony od razu zamiast listy wyników.', 'settings_Site' => 'Strona', 'settings_siteDefaultPage' => 'Domyślna strona', 'settings_siteDefaultPage_desc' => 'Strona wyświetlana domyślnie po zalogowaniu. Domyślnie jest to out/out.ViewFolder.php', 'settings_siteName' => 'Nazwa strony', -'settings_siteName_desc' => 'Nazwa strony używana tytułach. Domyślnie: letoDMS', +'settings_siteName_desc' => 'Nazwa strony używana tytułach. Domyślnie: SeedDMS', 'settings_SMTP' => 'Ustawienia serwera SMTP', 'settings_smtpPassword' => 'Hasło serwera SMTP', 'settings_smtpPassword_desc' => 'Hasło SMTP', @@ -1631,31 +1706,31 @@ Name: [username] 'settings_stopWordsFile' => 'Ścieżka do pliku ze słowami stopu', 'settings_stopWordsFile_desc' => 'Plik ten zawiera słowa, które nie będą brane pod uwagę podczas wyszukiwania pełnotekstowego', 'settings_strictFormCheck' => 'Sprawdzanie poprawności formularzy', -'settings_strictFormCheck_desc' => 'Sprawdzanie poprawności forularzy. Jeśli ta opcja jest włączona, to wszystkie pola w formularzach będą obowiązkowe do wypełnienia. Jeśli nie włączysz tej opcji, to większość komentarzy i pól słów kluczowych będzie opcjonalna. Komentarze są zawsze wymagane przy zatwierdzaniu, opiniowaniu lub zmianie statusu dokumentu.', +'settings_strictFormCheck_desc' => 'Sprawdzanie poprawności formularzy. Jeśli ta opcja jest włączona, to wszystkie pola w formularzach będą obowiązkowe do wypełnienia. Jeśli nie włączysz tej opcji, to większość komentarzy i pól słów kluczowych będzie opcjonalna. Komentarze są zawsze wymagane przy zatwierdzaniu, opiniowaniu lub zmianie statusu dokumentu.', 'settings_suggestionvalue' => 'Sugerowana wartość', 'settings_System' => 'System', 'settings_tasksInMenu' => 'Wybrane zadania', 'settings_tasksInMenu_approval' => 'Zatwierdzone', -'settings_tasksInMenu_checkedout' => '', +'settings_tasksInMenu_checkedout' => 'Sprawdzone', 'settings_tasksInMenu_desc' => 'Wybierz te zadania, które mają być zliczane. Jeśli żadna opcja nie zostanie wybrana, wszystkie zadania zostaną policzone.', 'settings_tasksInMenu_needscorrection' => 'Konieczna korekta', 'settings_tasksInMenu_receipt' => 'Wpływy', -'settings_tasksInMenu_rejected' => '', -'settings_tasksInMenu_review' => 'Recenzji', +'settings_tasksInMenu_rejected' => 'Odrzucone', +'settings_tasksInMenu_review' => 'Do przeglądu', 'settings_tasksInMenu_revision' => 'Korekty', -'settings_tasksInMenu_workflow' => 'Przepływu pracy', +'settings_tasksInMenu_workflow' => 'Przepływ pracy', 'settings_theme' => 'Domyślny motyw', 'settings_theme_desc' => 'Domyślny styl wyglądu (nazwa podkatalogu w katalogu "styles")', 'settings_titleDisplayHack' => 'Korekta wyświetlania tytułu', 'settings_titleDisplayHack_desc' => 'Obejście problemu z wyświetlaniem tytułów zajmujących więcej niż dwie linie.', 'settings_undelUserIds' => 'Użytkownika nie można usunąć', 'settings_undelUserIds_desc' => 'Oddzielona przecinkami lista identyfikatorów użytkowników, którzy nie mogą być usunięci.', -'settings_updateDatabase' => 'Uruchom skrytoy aktualizujące shemat bazy danych', +'settings_updateDatabase' => 'Uruchom skrypty aktualizujące schemat bazy danych', 'settings_updateNotifyTime' => 'Okres powiadamiania o zmianach', 'settings_updateNotifyTime_desc' => 'Użytkownicy są powiadamiani o zmianach w dokumentach, które miały miejsce w ciągu ostatnich \'Update Notify Time\' sekund', 'settings_upgrade_php' => 'Uaktualnij PHP do wersji przynajmniej 5.6.38', 'settings_useHomeAsRootFolder' => 'Użyj folderu domowego jako początkowego', -'settings_useHomeAsRootFolder_desc' => 'Włącz tą opcję jeżeli folder domowy użytkownika (nie-administratora) ma być folderem początkowym (eksperymentalne)', +'settings_useHomeAsRootFolder_desc' => 'Włącz tą opcję jeżeli folder domowy użytkownika (nie administratora) ma być folderem początkowym (eksperymentalne)', 'settings_versioningFileName' => 'Nazwa pliku z wersjonowaniem', 'settings_versioningFileName_desc' => 'Nazwa pliku, zawierającego informacje o wersjonowaniu, utworzonego przez narzędzie kopii zapasowej.', 'settings_versiontolow' => 'Za niska wersja', @@ -1663,8 +1738,8 @@ Name: [username] 'settings_viewOnlineFileTypes_desc' => 'Pliki z jednym z następujących rozszerzeń mogą być widoczne online (UŻYWAJ WYŁĄCZNIE MAŁYCH LITER)', 'settings_webdav' => 'WebDAV', 'settings_workflowMode' => 'Tryb procesu', -'settings_workflowMode_desc' => 'Zaawansowany proces pozwala określić własne release procesu zwalniający dla wersji dokumentu.', -'settings_workflowMode_valadvanced' => 'zaawansowane', +'settings_workflowMode_desc' => 'Zaawansowany proces pozwala określić własny przebieg procesu dla wersji dokumentu.', +'settings_workflowMode_valadvanced' => 'zaawansowany', 'settings_workflowMode_valnone' => 'żaden', 'settings_workflowMode_valtraditional' => 'tradycyjny', 'settings_workflowMode_valtraditional_only_approval' => 'tradycyjny (bez recenzji)', @@ -1690,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' => '', @@ -1712,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', @@ -1734,6 +1813,7 @@ Name: [username] 'splash_inherit_access' => 'Prawa dostępu będą dziedziczone', 'splash_invalid_folder_id' => 'Nieprawidłowy identyfikator folderu', 'splash_invalid_searchterm' => 'Nieprawidłowa wartość wyszukiwania', +'splash_invalid_search_service' => '', 'splash_link_document' => 'Dodano link', 'splash_moved_clipboard' => 'Schowek został przeniesiony do bieżącego folderu', 'splash_move_document' => 'Dokument został przeniesiony', @@ -1743,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', @@ -1758,7 +1840,7 @@ Name: [username] 'splash_rm_workflow_state' => 'Usunięto stan przepływu pracy', 'splash_saved_file' => 'Wersja zapisana', 'splash_save_user_data' => 'Zapisane dane użytkownika', -'splash_send_download_link' => 'Link do pobrania wysłany e-mailem.', +'splash_send_download_link' => 'Link do pobrania wysłany e-mail\'em.', 'splash_send_login_data' => 'Dane do logowania zostały wysłane', 'splash_setowner' => 'Ustaw nowego właściciela', 'splash_settings_saved' => 'Zmiany zapisano', @@ -1776,12 +1858,12 @@ Name: [username] 'status_approval_rejected' => 'Szkic odrzucony', 'status_approved' => 'Zatwierdzone', 'status_approver_removed' => 'Osoba zatwierdzająca usunięta z procesu', -'status_change' => '', +'status_change' => 'Zmiana statusu', 'status_needs_correction' => 'Wymaga korekty', -'status_not_approved' => 'Nie zatwierdzone', -'status_not_receipted' => 'Jeszcze nie otrzymane', -'status_not_reviewed' => 'Nie zrecenzowane', -'status_not_revised' => 'Nie zweryfikowane', +'status_not_approved' => 'Niezatwierdzone', +'status_not_receipted' => 'Jeszcze nieotrzymane', +'status_not_reviewed' => 'Niezrecenzowane', +'status_not_revised' => 'Niezweryfikowane', 'status_receipted' => 'Otrzymane', 'status_receipt_rejected' => 'Odrzucone', 'status_recipient_removed' => 'Adresat usunięty z listy', @@ -1815,7 +1897,7 @@ Name: [username] 'success_toogle_permission' => 'Zmieniono uprawnienie', 'sunday' => 'Niedziela', 'sunday_abbr' => 'Ni', -'sv_SE' => 'szwedzki', +'sv_SE' => 'Szwedzki', 'switched_to' => 'Przełączone na', 'takeOverAttributeValue' => 'Przejmij wartość atrybutu z ostatniej wersji', 'takeOverGrpApprover' => 'Przejmij grupę osób zatwierdzających z ostatniej wersji.', @@ -1840,7 +1922,7 @@ Name: [username] 'task_name' => 'Nazwa zadania', 'task_next_run' => 'Zadanie następnego uruchomienia', 'temp_jscode' => 'Tymczasowy kod javascript', -'testmail_body' => 'To jest mail testowy SeedDMS', +'testmail_body' => 'To jest e-mail testowy SeedDMS', 'testmail_subject' => 'Wiadomość testowa', 'theme' => 'Wygląd', 'thursday' => 'Czwartek', @@ -1857,7 +1939,7 @@ Name: [username] 'timeline_skip_add_file' => 'dodano załącznik', 'timeline_skip_scheduled_revision' => 'Zaplanowana wersja', 'timeline_skip_status_change_-1' => 'odrzucony', -'timeline_skip_status_change_-2' => '', +'timeline_skip_status_change_-2' => 'nieaktualny', 'timeline_skip_status_change_-3' => 'przedawniony', 'timeline_skip_status_change_0' => 'oczekuje na opinię', 'timeline_skip_status_change_1' => 'oczekuje na zatwierdzenie', @@ -1891,6 +1973,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', @@ -1910,13 +1993,13 @@ URL: [url]', 'uk_UA' => 'Ukrainski', 'under_folder' => 'W folderze', 'unknown_attrdef' => 'Nieznana definicja atrybutu', -'unknown_command' => 'Polecenie nie rozpoznane.', +'unknown_command' => 'Polecenie nierozpoznane.', 'unknown_document_category' => 'Nieznana kategoria', 'unknown_group' => 'Nieznany ID grupy', 'unknown_id' => 'Nieznany ID', 'unknown_keyword_category' => 'Nieznana kategoria', 'unknown_owner' => 'Nieznany ID właściciela', -'unknown_status' => '', +'unknown_status' => 'Nieznany status', 'unknown_user' => 'Nieznany ID użytkownika', 'unlinked_content' => 'Odłączone treści', 'unlinked_documents' => 'Odłączone dokumenty', @@ -1938,16 +2021,17 @@ URL: [url]', 'uploaded_by' => 'Przesłane przez', 'uploading_failed' => 'Przesyłanie nie powiodło się. Skontaktuj się z administratorem.', 'uploading_maxsize' => 'Rozmiar pliku większy niż dopuszczalny', -'uploading_zerosize' => 'Próba przesłania pustego pliku. Przesłanie zostało przerwane.', +'uploading_postmaxsize' => '', +'uploading_zerosize' => 'Próba przesłania pustego pliku. Przesyłanie zostało przerwane.', 'used_discspace' => 'Użyta przestrzeń dyskowa', 'user' => 'Użytkownik', -'userdata_file' => '', +'userdata_file' => 'Plik z listą użytkowników', 'userid_groupid' => 'Id Użytkownika/Id Grupy', 'users' => 'Użytkownicy', 'users_and_groups' => 'Użytkownicy/Grupy', 'users_done_work' => 'Użytkownicy', 'user_exists' => 'Użytkownik już istnieje.', -'user_group' => 'Użytkownik / grupa', +'user_group' => 'Użytkownik/grupa', 'user_group_management' => 'Zarządzanie Użytkownikami/Grupami', 'user_image' => 'Zdjęcie', 'user_info' => 'Informacje o użytkowniku', @@ -1955,7 +2039,7 @@ URL: [url]', 'user_login' => 'Nazwa użytkownika', 'user_management' => 'Zarządzanie użytkownikami', 'user_name' => 'Pełna nazwa', -'use_comment_of_document' => 'Skomentuj dokumentu', +'use_comment_of_document' => 'Użyj komentarza', 'use_default_categories' => 'Użyj predefiniowanych kategorii', 'use_default_keywords' => 'Użyj predefiniowanych słów kluczowych', 'valid_till' => 'Ważne do', @@ -1965,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] @@ -1972,11 +2059,12 @@ 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', 'view_document' => 'Wyświetl szczegóły dokumentu', -'view_folder' => '', +'view_folder' => 'Folder', 'view_online' => 'Obejrzyj online', 'warning' => 'Ostrzeżenie', 'warning_remove_approval_log' => '', @@ -2000,6 +2088,7 @@ URL: [url]', 'workflow_initstate' => 'Początkowy status', 'workflow_in_use' => 'Proces ten jest obecnie zastosowany w dokumentach.', 'workflow_layoutdata_saved' => 'Zapisano dane układu', +'workflow_log' => '', 'workflow_management' => 'Menadżer procesów', 'workflow_name' => 'Nazwa', 'workflow_no_doc_rejected_state' => 'Dokument nie zostanie odrzucony w stanie przepływu pracy!', diff --git a/languages/pt_BR/lang.inc b/languages/pt_BR/lang.inc index 5c7054dd8..0cf0c03e3 100644 --- a/languages/pt_BR/lang.inc +++ b/languages/pt_BR/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 (1850), flaviove (627), lfcristofoli (352) +// Translators: Admin (1854), flaviove (627), lfcristofoli (352) $text = array( '2_factor_auth' => 'Autenticação de dois fatores', @@ -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', @@ -128,6 +130,7 @@ Versão: [version] Pasta mãe: [folder_path] Usuário: [username] URL: [url]', +'approval_request_email_body_html' => '', 'approval_request_email_subject' => '[sitename]: [name] - Solicitação de aprovação', 'approval_status' => 'Estado da aprovação', 'approval_submit_email' => 'aprovação enviar email', @@ -139,6 +142,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.', @@ -162,6 +166,7 @@ URL: [url]', 'attrdefgrp_show_searchlist' => 'Resultado da pesquisa', 'attrdef_exists' => 'Definição de atributo já existe', 'attrdef_info' => 'Informação', +'attrdef_invalid_regex' => '', 'attrdef_in_use' => 'Definição de atributo ainda em uso', 'attrdef_management' => 'Gerência de definição de atributo', 'attrdef_maxvalues' => 'Max. número de valores', @@ -200,6 +205,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 +404,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 +414,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 +424,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 +444,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 +454,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 +463,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 +472,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 +482,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', @@ -489,6 +503,8 @@ URL: [url]', 'download_header_review_state' => '', 'download_header_state' => '', 'download_links' => 'Links para download', +'download_link_email_body' => '', +'download_link_email_subject' => '', 'do_no_transfer_to_user' => '', 'do_object_repair' => 'Reparar todas as pastas e documentos.', 'do_object_setchecksum' => 'Defina soma de verificação', @@ -598,6 +614,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' => '', @@ -609,9 +626,11 @@ 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', +'extension_mgr_upload_disabled' => '', 'extension_missing_name' => '', 'extension_toggle_error' => '', 'extension_version_list' => 'Versões', @@ -637,6 +656,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 +666,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 +675,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 +685,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 +694,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' => '', @@ -716,6 +740,7 @@ URL: [url]', 'hu_HU' => 'Húngaro', 'id' => 'ID', 'identical_version' => 'Nova versão é idêntica à versão atual.', +'id_ID' => 'Indonésio', 'import' => 'Importar', 'importfs' => 'Importar do sistema de arquivos', 'import_extension' => 'Importar extensão', @@ -914,6 +939,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 +947,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 +958,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 +972,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 +980,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', @@ -964,9 +994,11 @@ URL: [url]', 'no_current_version' => 'Você está executando uma versão atualizda do Sistema GED. A última versão disponível é [latestversion].', 'no_default_keywords' => 'não há palavras-chave disponíveis', 'no_docs_checked_out' => 'Nenhum documento retirado', +'no_docs_draft' => '', 'no_docs_expired' => '', 'no_docs_locked' => 'Nenhum documento bloqueado.', 'no_docs_needs_correction' => 'Nenhum documento que precise ser corrigido', +'no_docs_obsolete' => '', 'no_docs_rejected' => 'Nenhum documento rejeitado.', 'no_docs_to_approve' => 'There are currently no documents that require approval.', 'no_docs_to_look_at' => 'Não há documentos que precisam de atenção.', @@ -987,6 +1019,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', @@ -996,6 +1029,14 @@ URL: [url]', 'old' => 'Antigo', 'only_jpg_user_images' => 'Somente imagens jpg podem ser utilizadas como avatar', 'operation_disallowed' => '', +'orderby' => '', +'orderby_date_asc' => '', +'orderby_date_desc' => '', +'orderby_id_asc' => '', +'orderby_id_desc' => '', +'orderby_name_asc' => '', +'orderby_name_desc' => '', +'orderby_unsorted' => '', 'order_by_sequence_off' => 'O pedido por sequência é desativado nas configurações. Se você quiser que este parâmetro tenha efeito, você terá que ativá-lo novamente.', 'original_filename' => 'Arquivo original', 'overall_indexing_progress' => 'Progresso geral da indexação', @@ -1008,6 +1049,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,7 +1067,10 @@ 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_invalid_hash' => '', +'password_forgotten_invalid_hash_title' => '', '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ê.', 'password_forgotten_title' => 'Senha enviada', @@ -1078,6 +1123,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 +1132,12 @@ 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_body_html' => '', +'receipt_submit_email_subject' => '', 'receipt_summary' => 'Resumo da entrada', 'receipt_update_failed' => 'Confirmação de entrada falhou', 'recent_uploads' => 'Uploads recentes', @@ -1097,6 +1147,7 @@ URL: [url]', 'reception_rejected' => 'Entrega rejeitada', 'recipients' => 'Destinatários', 'recipient_already_removed' => 'O destinatário já foi removido ou já acusou o recebimento.', +'record_type' => '', 'redraw' => 'Redesenhar', 'refresh' => 'Atualizar', 'rejected' => 'Rejeitado', @@ -1107,6 +1158,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 +1170,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 +1179,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 +1189,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 +1203,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 +1224,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 +1236,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 +1247,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 +1272,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 +1290,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 +1333,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', @@ -1284,7 +1347,7 @@ URL: [url]', 'search' => 'Busca', 'search_fulltext' => 'Pesquisa em texto completo', 'search_in' => 'Busca em', -'search_mode' => '', +'search_mode' => 'Modo de Pesquisa', 'search_mode_and' => 'todas as palavras', 'search_mode_documents' => 'Só Documentos', 'search_mode_folders' => 'Só Pastas', @@ -1326,7 +1389,8 @@ URL: [url]', 'select_mimetype' => '', 'select_one' => 'Selecione um', 'select_owner' => '', -'select_status' => '', +'select_record_type' => '', +'select_status' => 'Pressione para selecionar o estado do documento', 'select_user' => 'Selecione o usuário', 'select_users' => 'Clique para selecionar os usuários', 'select_value' => 'Selecionar opção', @@ -1424,6 +1488,8 @@ Nome: [username] 'settings_defaultDocPosition_desc' => 'Esta é a posição padrão dentro de uma pasta quando um documento é criado.', 'settings_defaultDocPosition_val_end' => 'fim', 'settings_defaultDocPosition_val_start' => 'início', +'settings_defaultFolderPosition' => '', +'settings_defaultFolderPosition_desc' => '', 'settings_defaultSearchMethod' => 'Forma padrão para buscas', 'settings_defaultSearchMethod_desc' => 'Método de pesquisa padrão, quando uma pesquisa é iniciada pelo formulário de pesquisa no menu principal.', 'settings_defaultSearchMethod_valdatabase' => 'Banco de Dados', @@ -1466,6 +1532,12 @@ Nome: [username] 'settings_enableDuplicateSubFolderNames_desc' => 'Permite ter nomes de subpastas duplicados em uma pasta.', 'settings_enableEmail' => 'Ativar E-mail', 'settings_enableEmail_desc' => 'Ativar/desativar a notificação de e-mail automático', +'settings_enableExtensionDownload' => '', +'settings_enableExtensionDownload_desc' => '', +'settings_enableExtensionImport' => '', +'settings_enableExtensionImportFromRepository' => '', +'settings_enableExtensionImportFromRepository_desc' => '', +'settings_enableExtensionImport_desc' => '', 'settings_enableFilterReceipt' => 'Filtrar dono, revisor, ... da lista de recepção', 'settings_enableFilterReceipt_desc' => 'Ativar para filtrar alguns destinatários de uma lista de recepção, se os membros de um grupo estiverem selecionados.', 'settings_enableFolderTree' => 'Ativar Árvore de Pasta', @@ -1544,6 +1616,7 @@ Nome: [username] 'settings_expandFolderTree_val0' => 'começar com a árvore escondida', 'settings_expandFolderTree_val1' => 'começar com a árvore mostrada e primeiro nível expandido', 'settings_expandFolderTree_val2' => 'começar com árvore mostrada totalmente expandida', +'settings_ExtensionMgr' => '', 'settings_Extensions' => 'Extensões', 'settings_extraPath' => 'PHP extra incluem Path', 'settings_extraPath_desc' => 'Caminho para o software adicional. Este é o diretório que contém, por exemplo, o diretório adodb ou pacotes adicionais em pear', @@ -1607,6 +1680,8 @@ Nome: [username] 'settings_more_settings' => 'Configurar outras configurações. Login padrão: admin/admin', 'settings_noDocumentFormFields' => 'configurações sem campos de formulário de documento', 'settings_noDocumentFormFields_desc' => 'configurações sem campos de formulário de documento desc', +'settings_noFolderFormFields' => '', +'settings_noFolderFormFields_desc' => '', 'settings_notfound' => 'Não encontrado', 'settings_Notification' => 'Configurações de notificação', 'settings_notwritable' => 'A configuração não pode ser salva porque o arquivo de configuração não é gravável.', @@ -1766,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' => '', @@ -1788,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' => '', @@ -1810,6 +1889,7 @@ Nome: [username] 'splash_inherit_access' => 'O direito de acesso será herdado', 'splash_invalid_folder_id' => 'ID de pasta inválida', 'splash_invalid_searchterm' => 'Termo de pesquisa inválido', +'splash_invalid_search_service' => '', 'splash_link_document' => 'documento de link inicial', 'splash_moved_clipboard' => 'Área de transferência movida para a pasta corrente', 'splash_move_document' => 'Documento movido', @@ -1819,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', @@ -1967,6 +2049,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', @@ -1992,7 +2075,7 @@ URL: [url]', 'unknown_id' => 'ID desconhecido', 'unknown_keyword_category' => 'Categoria desconhecida', 'unknown_owner' => 'ID do proprietário desconhecida', -'unknown_status' => '', +'unknown_status' => 'Estado desconhecido', 'unknown_user' => 'ID do usuário desconhecida', 'unlinked_content' => 'Conteúdo não conectado', 'unlinked_documents' => 'Documentos não conectados', @@ -2014,6 +2097,7 @@ URL: [url]', 'uploaded_by' => 'Inserido por', 'uploading_failed' => 'Inserção falhou. Por favor contacte o administrador', 'uploading_maxsize' => 'O arquivo excede o tamanho máximo permitido para envio.', +'uploading_postmaxsize' => '', 'uploading_zerosize' => 'Envio de um arquivo vazio. Envio cancelado.', 'used_discspace' => 'Espaço em disco usado', 'user' => 'Usuário', @@ -2041,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] @@ -2048,6 +2135,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', @@ -2076,6 +2164,7 @@ URL: [url]', 'workflow_initstate' => 'Estado inicial', 'workflow_in_use' => 'Esse fluxo de trabalho é usado atualmente por documentos.', 'workflow_layoutdata_saved' => 'Dados de layout salvos', +'workflow_log' => '', 'workflow_management' => 'Gestão de fluxo de trabalho', 'workflow_name' => 'Nome', 'workflow_no_doc_rejected_state' => 'O documento não será rejeitado em um estado de fluxo de trabalho!', diff --git a/languages/ro_RO/lang.inc b/languages/ro_RO/lang.inc index 45a79606f..80935bc24 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', @@ -128,6 +130,7 @@ Versiune: [version] Folder parinte: [folder_path] Utilizator: [username] URL: [url]', +'approval_request_email_body_html' => '', 'approval_request_email_subject' => '[sitename]: [name] - Cerere aprobare', 'approval_status' => 'Status aprobare', 'approval_submit_email' => '', @@ -139,6 +142,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.', @@ -162,6 +166,7 @@ URL: [url]', 'attrdefgrp_show_searchlist' => '', 'attrdef_exists' => 'Definitie atribut exista deja', 'attrdef_info' => '', +'attrdef_invalid_regex' => '', 'attrdef_in_use' => 'Definitie atribut inca in utilizare', 'attrdef_management' => 'Management definitii atribute', 'attrdef_maxvalues' => 'Numar maxim de valori', @@ -200,6 +205,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 +397,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 +407,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 +417,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 +437,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 +447,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 +456,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 +470,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ă', @@ -477,6 +491,8 @@ URL: [url]', 'download_header_review_state' => '', 'download_header_state' => '', 'download_links' => '', +'download_link_email_body' => '', +'download_link_email_subject' => '', 'do_no_transfer_to_user' => '', 'do_object_repair' => 'Repară toate folderele și documentele.', 'do_object_setchecksum' => 'Setare sumă de control(checksum)', @@ -586,6 +602,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' => '', @@ -597,9 +614,11 @@ 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', +'extension_mgr_upload_disabled' => '', 'extension_missing_name' => '', 'extension_toggle_error' => '', 'extension_version_list' => 'Versiuni', @@ -618,6 +637,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 +647,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 +656,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 +666,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 +675,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' => '', @@ -697,6 +721,7 @@ URL: [url]', 'hu_HU' => 'Ungureste', 'id' => 'ID', 'identical_version' => 'Noua versiune este identică cu versiunea curentă.', +'id_ID' => '', 'import' => '', 'importfs' => '', 'import_extension' => '', @@ -895,6 +920,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 +929,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 +940,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 +954,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 +962,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', @@ -946,9 +976,11 @@ URL: [url]', 'no_current_version' => 'Utilizați o versiune veche de SeedDMS. Cea mai recentă versiune disponibilă este [latestversion].', 'no_default_keywords' => 'Nu există cuvinte cheie disponibile', 'no_docs_checked_out' => 'Nu exista documente verificate', +'no_docs_draft' => '', 'no_docs_expired' => '', 'no_docs_locked' => 'Nici un document blocat.', 'no_docs_needs_correction' => '', +'no_docs_obsolete' => '', 'no_docs_rejected' => '', 'no_docs_to_approve' => 'Momentan nu există documente care necesită aprobarea.', 'no_docs_to_look_at' => 'Nici un document care necesită atenție.', @@ -969,6 +1001,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' => '', @@ -978,6 +1011,14 @@ URL: [url]', 'old' => 'Vechi', 'only_jpg_user_images' => 'Doar imagini .jpg pot fi utilizate ca imagine-utilizator', 'operation_disallowed' => '', +'orderby' => '', +'orderby_date_asc' => '', +'orderby_date_desc' => '', +'orderby_id_asc' => '', +'orderby_id_desc' => '', +'orderby_name_asc' => '', +'orderby_name_desc' => '', +'orderby_unsorted' => '', 'order_by_sequence_off' => 'Ordonarea dupa secventa este dezactivata in setari. Daca doriti acest parametru sa aiba efect, va trebui sa-l reactivati.', 'original_filename' => 'Nume de fișier original', 'overall_indexing_progress' => 'Progres indexare total', @@ -990,6 +1031,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,7 +1049,10 @@ 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_invalid_hash' => '', +'password_forgotten_invalid_hash_title' => '', '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.', 'password_forgotten_title' => 'Parola a fost trimisă', @@ -1054,11 +1099,16 @@ 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_body_html' => '', +'receipt_submit_email_subject' => '', 'receipt_summary' => '', 'receipt_update_failed' => '', 'recent_uploads' => 'Incarcari recente', @@ -1068,6 +1118,7 @@ Dacă aveți în continuare probleme la autentificare, vă rugăm să contactaț 'reception_rejected' => '', 'recipients' => 'Destinatari', 'recipient_already_removed' => '', +'record_type' => '', 'redraw' => '', 'refresh' => 'Refresh', 'rejected' => 'Respins', @@ -1078,6 +1129,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 +1141,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 +1150,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 +1160,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 +1174,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 +1195,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 +1207,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 +1219,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 +1239,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 +1257,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 +1300,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ă', @@ -1293,6 +1356,7 @@ URL: [url]', 'select_mimetype' => '', 'select_one' => 'Selectați unul', 'select_owner' => '', +'select_record_type' => '', 'select_status' => '', 'select_user' => 'Selecteaza utilizator', 'select_users' => 'Click pentru a selecta utilizatori', @@ -1386,6 +1450,8 @@ URL: [url]', 'settings_defaultDocPosition_desc' => '', 'settings_defaultDocPosition_val_end' => '', 'settings_defaultDocPosition_val_start' => '', +'settings_defaultFolderPosition' => '', +'settings_defaultFolderPosition_desc' => '', 'settings_defaultSearchMethod' => 'metoda de cautare implicita', 'settings_defaultSearchMethod_desc' => 'Metoda de cautare implicita cand cautarea a fost initiata prin formularul de cautare din meniul principal', 'settings_defaultSearchMethod_valdatabase' => 'baza de date', @@ -1428,6 +1494,12 @@ URL: [url]', 'settings_enableDuplicateSubFolderNames_desc' => '', 'settings_enableEmail' => 'Activare E-mail', 'settings_enableEmail_desc' => 'Activare/dezactivare notificari automare prin e-mail', +'settings_enableExtensionDownload' => '', +'settings_enableExtensionDownload_desc' => '', +'settings_enableExtensionImport' => '', +'settings_enableExtensionImportFromRepository' => '', +'settings_enableExtensionImportFromRepository_desc' => '', +'settings_enableExtensionImport_desc' => '', 'settings_enableFilterReceipt' => '', 'settings_enableFilterReceipt_desc' => '', 'settings_enableFolderTree' => 'Activare Folder Ierarhic', @@ -1506,6 +1578,7 @@ URL: [url]', 'settings_expandFolderTree_val0' => 'începeți cu ierarhia ascunsă', 'settings_expandFolderTree_val1' => 'începeți cu ierarhia afișată si primul nivel expandat', 'settings_expandFolderTree_val2' => 'începeți cu ierarhia afișată expandat', +'settings_ExtensionMgr' => '', 'settings_Extensions' => 'Extensii', 'settings_extraPath' => 'Extra PHP include Path', 'settings_extraPath_desc' => 'Calea catre software suplimentare. Acesta este directorul ce conține de exemplu directorul adodb sau pachete suplimentare de pear package', @@ -1569,6 +1642,8 @@ URL: [url]', 'settings_more_settings' => 'Configurare mai multe setări. Autentificare implicită: admin/admin', 'settings_noDocumentFormFields' => '', 'settings_noDocumentFormFields_desc' => '', +'settings_noFolderFormFields' => '', +'settings_noFolderFormFields_desc' => '', 'settings_notfound' => 'Nu a fost găsit', 'settings_Notification' => 'Setările de notificare', 'settings_notwritable' => 'Configurația nu poate fi salvată deoarece fișierul de configurare nu poate fi scris.', @@ -1728,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' => '', @@ -1750,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' => '', @@ -1772,6 +1851,7 @@ URL: [url]', 'splash_inherit_access' => '', 'splash_invalid_folder_id' => 'ID folder invalid', 'splash_invalid_searchterm' => 'Termen de căutare invalid', +'splash_invalid_search_service' => '', 'splash_link_document' => '', 'splash_moved_clipboard' => 'Clipboard mutat în folderul curent', 'splash_move_document' => '', @@ -1781,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' => '', @@ -1929,6 +2011,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' => '', @@ -1976,6 +2059,7 @@ URL: [url]', 'uploaded_by' => 'Adaugate de', 'uploading_failed' => 'Încărcarea unuia dintre fișierele a eșuat. Vă rugăm să verificați dimensiunea maximă de încărcare fișiere.', 'uploading_maxsize' => 'Fișierul încărcat depășește dimensiunea maximă de încărcare fișiere.', +'uploading_postmaxsize' => '', 'uploading_zerosize' => 'Se încarcă un fișier gol. Încărcarea este anulată.', 'used_discspace' => 'Spatiu pe disc folosit', 'user' => 'Utilizator', @@ -2003,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] @@ -2010,6 +2097,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', @@ -2038,6 +2126,7 @@ URL: [url]', 'workflow_initstate' => 'Stare inițială', 'workflow_in_use' => 'Acest Workflow este utilizat în prezent de documente.', 'workflow_layoutdata_saved' => '', +'workflow_log' => '', 'workflow_management' => 'Management Workflow', 'workflow_name' => 'Nume', 'workflow_no_doc_rejected_state' => '', diff --git a/languages/ru_RU/lang.inc b/languages/ru_RU/lang.inc index 0d560988b..bdd921bbb 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' => 'Утверждающая группа', @@ -128,6 +130,7 @@ URL: [url]', Родительский каталог: [folder_path] Пользователь: [username] URL: [url]', +'approval_request_email_body_html' => '', 'approval_request_email_subject' => '[sitename]: запрос на утверждение «[name]»', 'approval_status' => 'Статус утверждения', 'approval_submit_email' => 'Утвержденный документ', @@ -139,6 +142,7 @@ URL: [url]', Комментарий: [comment] Пользователь: [username] URL: [url]', +'approval_submit_email_body_html' => '', 'approval_submit_email_subject' => '[sitename]: [name] - Утверждено', 'approval_summary' => 'Сводка по утверждению', 'approval_update_failed' => 'Произошла ошибка при изменении статуса утверждения', @@ -162,6 +166,7 @@ URL: [url]', 'attrdefgrp_show_searchlist' => 'Найденные определения', 'attrdef_exists' => 'Определение атрибута уже существует', 'attrdef_info' => 'Информация', +'attrdef_invalid_regex' => '', 'attrdef_in_use' => 'Определение этого атрибута используется', 'attrdef_management' => 'Управление определениями атрибутов', 'attrdef_maxvalues' => 'Макс. количество значений', @@ -200,6 +205,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 +397,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 +407,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 +417,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 +437,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 +447,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 +456,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 +470,7 @@ URL: [url]', Комментарий: [comment] Комментарий версии: [version_comment] URL: [url]', +'document_updated_email_body_html' => '', 'document_updated_email_subject' => '[sitename]: обновлён документ «[name]»', 'document_versions' => '', 'does_not_expire' => 'безсрочный', @@ -477,6 +491,8 @@ URL: [url]', 'download_header_review_state' => '', 'download_header_state' => '', 'download_links' => '', +'download_link_email_body' => '', +'download_link_email_subject' => '', 'do_no_transfer_to_user' => '', 'do_object_repair' => 'Исправить все каталоги и документы', 'do_object_setchecksum' => 'Установить контрольную сумму', @@ -493,7 +509,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 +602,7 @@ URL: [url]', Родительский каталог: [folder_path] Пользователь: [username] URL: [url]', +'expiry_changed_email_body_html' => '', 'expiry_changed_email_subject' => '[sitename]: изменен срок действия для «[name]»', 'export' => 'Экспорт', 'export_user_list_csv' => '', @@ -597,9 +614,11 @@ 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' => 'Установленные', +'extension_mgr_upload_disabled' => '', 'extension_missing_name' => '', 'extension_toggle_error' => '', 'extension_version_list' => 'Версии', @@ -618,6 +637,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 +647,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 +656,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 +666,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 +675,7 @@ URL: [url]', Предыдущее имя: [old_name] Пользователь: [username] URL: [url]', +'folder_renamed_email_body_html' => '', 'folder_renamed_email_subject' => '[sitename]: переименован каталог «[name]»', 'folder_title' => 'Каталог [foldername]', 'foot_note' => '', @@ -697,6 +721,7 @@ URL: [url]', 'hu_HU' => 'Hungarian', 'id' => 'Идентификатор', 'identical_version' => 'Новая версия идентична текущей.', +'id_ID' => '', 'import' => 'Импорт', 'importfs' => 'Импорт из файлов', 'import_extension' => '', @@ -895,6 +920,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 +928,7 @@ URL: [url]', Комментарий: [comment] Пользователь: [username] URL: [url]', +'new_file_email_body_html' => '', 'new_file_email_subject' => '[sitename]: новое приложение к документу «[document]»', 'new_folder' => 'Новый каталог', 'new_password' => 'Новый пароль', @@ -912,6 +939,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 +953,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 +961,7 @@ URL: [url]', Родительский каталог: [folder_path] Пользователь: [username] URL: [url]', +'notify_deleted_email_body_html' => '', 'notify_deleted_email_subject' => '[sitename]: вы удалены из списка уведомлений для «[name]»', 'not_subscribed' => '', 'november' => 'Ноябрь', @@ -945,9 +975,11 @@ URL: [url]', 'no_current_version' => 'Вы используете старую версию SeedDMS. Последняя доступная версия [latestversion].', 'no_default_keywords' => 'Нет меток', 'no_docs_checked_out' => 'Нет документов на рассмотрении', +'no_docs_draft' => '', 'no_docs_expired' => '', 'no_docs_locked' => 'Нет заблокированных документов', 'no_docs_needs_correction' => '', +'no_docs_obsolete' => '', 'no_docs_rejected' => 'Нет отклоненных докуметов', 'no_docs_to_approve' => 'Нет документов, нуждающихся в утверждении', 'no_docs_to_look_at' => 'Нет документов, нуждающихся во внимании', @@ -968,6 +1000,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' => '', @@ -977,6 +1010,14 @@ URL: [url]', 'old' => 'Старый', 'only_jpg_user_images' => 'Разрешены только .jpg-изображения', 'operation_disallowed' => '', +'orderby' => '', +'orderby_date_asc' => '', +'orderby_date_desc' => '', +'orderby_id_asc' => '', +'orderby_id_desc' => '', +'orderby_name_asc' => '', +'orderby_name_desc' => '', +'orderby_unsorted' => '', 'order_by_sequence_off' => 'Сортировка последовательности выключена в настройках. Если вы хотите применить этот эффект, вам необходимо его включить', 'original_filename' => 'Исходное имя файла', 'overall_indexing_progress' => 'Общий прогресс индексации', @@ -989,6 +1030,7 @@ URL: [url]', Новый владелец: [new_owner] Пользователь: [username] URL: [url]', +'ownership_changed_email_body_html' => '', 'ownership_changed_email_subject' => '[sitename]: изменён владелец «[name]»', 'password' => 'Пароль', 'password_already_used' => 'Пароль уже используется', @@ -1004,7 +1046,10 @@ URL: [url]', [url_prefix]out/out.ChangePassword.php?hash=[hash] Если вы и после этого не сможете войти, свяжитесь с администратором.', +'password_forgotten_email_body_html' => '', 'password_forgotten_email_subject' => '[sitename]: Забытый пароль', +'password_forgotten_invalid_hash' => '', +'password_forgotten_invalid_hash_title' => '', 'password_forgotten_send_hash' => 'Инструкции высланы на e-mail', 'password_forgotten_text' => 'Заполните форму и следуйте инструкциям в письме', 'password_forgotten_title' => 'Пароль выслан', @@ -1051,6 +1096,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 +1105,12 @@ 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_body_html' => '', +'receipt_submit_email_subject' => '', 'receipt_summary' => 'Сводка по получению', 'receipt_update_failed' => '', 'recent_uploads' => 'Последние загрузки', @@ -1070,6 +1120,7 @@ URL: [url]', 'reception_rejected' => '', 'recipients' => 'Получатели', 'recipient_already_removed' => '', +'record_type' => '', 'redraw' => 'Обновить картинку', 'refresh' => 'Обновить', 'rejected' => 'Отклонён', @@ -1080,6 +1131,7 @@ URL: [url]', Документ: [document] Пользователь: [username] URL: [url]', +'removed_file_email_body_html' => '', 'removed_file_email_subject' => '[sitename]: удалено вложение к «[document]»', 'removed_recipient' => 'удален из списка получателей', 'removed_reviewer' => 'удалён из списка рецензентов', @@ -1091,6 +1143,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 +1152,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 +1162,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 +1176,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 +1197,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 +1209,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 +1221,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 +1246,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 +1264,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 +1307,7 @@ URL: [url]', Родительский каталог: [folder_path] Пользователь: [username] URL: [url]', +'run_subworkflow_email_body_html' => '', 'run_subworkflow_email_subject' => '[sitename]: запущен подпроцесс для «[name]»', 'ru_RU' => 'Русский', 'saturday' => 'Суббота', @@ -1300,6 +1363,7 @@ URL: [url]', 'select_mimetype' => '', 'select_one' => 'Выберите', 'select_owner' => '', +'select_record_type' => '', 'select_status' => '', 'select_user' => 'Выберите пользователя', 'select_users' => 'Выберите пользователей', @@ -1393,6 +1457,8 @@ URL: [url]', 'settings_defaultDocPosition_desc' => '', 'settings_defaultDocPosition_val_end' => '', 'settings_defaultDocPosition_val_start' => '', +'settings_defaultFolderPosition' => '', +'settings_defaultFolderPosition_desc' => '', 'settings_defaultSearchMethod' => 'Метод поиска по умолчанию', 'settings_defaultSearchMethod_desc' => 'Метод поиска по умолчанию, когда поиск начинается с поисковой формы главного меню.', 'settings_defaultSearchMethod_valdatabase' => 'база данных', @@ -1435,6 +1501,12 @@ URL: [url]', 'settings_enableDuplicateSubFolderNames_desc' => '', 'settings_enableEmail' => 'Включить e-mail', 'settings_enableEmail_desc' => 'Включить/отключить автоматическое уведомление по e-mail.', +'settings_enableExtensionDownload' => '', +'settings_enableExtensionDownload_desc' => '', +'settings_enableExtensionImport' => '', +'settings_enableExtensionImportFromRepository' => '', +'settings_enableExtensionImportFromRepository_desc' => '', +'settings_enableExtensionImport_desc' => '', 'settings_enableFilterReceipt' => '', 'settings_enableFilterReceipt_desc' => '', 'settings_enableFolderTree' => 'Включить дерево каталогов', @@ -1513,6 +1585,7 @@ URL: [url]', 'settings_expandFolderTree_val0' => 'Начинать со свёрнутого дерева', 'settings_expandFolderTree_val1' => 'Начинать с развёрнутого дерева до первого уровня', 'settings_expandFolderTree_val2' => 'Начинать с полностью развёрнутого дерева', +'settings_ExtensionMgr' => '', 'settings_Extensions' => 'Расширения', 'settings_extraPath' => 'Дополнительный путь PHP', 'settings_extraPath_desc' => 'Расположение дополнительного программного обеспечения. Например, каталог содержащий adodb или дополнительные pear-пакеты.', @@ -1576,6 +1649,8 @@ URL: [url]', 'settings_more_settings' => 'Прочие настройки. Логин по умолчанию: admin/admin', 'settings_noDocumentFormFields' => 'Не показывать поле', 'settings_noDocumentFormFields_desc' => '', +'settings_noFolderFormFields' => '', +'settings_noFolderFormFields_desc' => '', 'settings_notfound' => 'Не найден', 'settings_Notification' => 'Настройки извещения', 'settings_notwritable' => 'Конфигурация не может быть сохранена, потому что файл конфигурации только для чтения.', @@ -1735,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' => '', @@ -1757,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' => '', @@ -1779,6 +1858,7 @@ URL: [url]', 'splash_inherit_access' => '', 'splash_invalid_folder_id' => 'Неверный идентификатор каталога', 'splash_invalid_searchterm' => 'Неверный поисковый запрос', +'splash_invalid_search_service' => '', 'splash_link_document' => '', 'splash_moved_clipboard' => 'Буфер обмена перенесён в текущий каталог', 'splash_move_document' => '', @@ -1788,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' => '', @@ -1936,6 +2018,7 @@ URL: [url]', Родительский каталог: [folder_path] Пользователь: [username] URL: [url]', +'transition_triggered_email_body_html' => '', 'transition_triggered_email_subject' => '[sitename]: изменено состояние процесса для «[name]»', 'transmittal' => 'Передача', 'transmittalitem_removed' => 'Переданный элемент удален', @@ -1983,6 +2066,7 @@ URL: [url]', 'uploaded_by' => 'Загрузил(а)', 'uploading_failed' => 'Загрузка не удалась. Свяжитесь с администратором.', 'uploading_maxsize' => 'Размер загруженного файла превышает максимально возможный', +'uploading_postmaxsize' => '', 'uploading_zerosize' => 'Отменена загрузка пустого файла.', 'used_discspace' => 'Занятое дисковое пространство', 'user' => 'Пользователь', @@ -2010,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] @@ -2017,6 +2104,7 @@ URL: [url]', Родительский каталог: [folder_path] Пользователь: [username] URL: [url]', +'version_deleted_email_body_html' => '', 'version_deleted_email_subject' => '[sitename]: удалена версия «[name]»', 'version_info' => 'Информация о версии', 'view' => 'Просмотр', @@ -2045,6 +2133,7 @@ URL: [url]', 'workflow_initstate' => 'Начальный статус', 'workflow_in_use' => 'Этот процесс используется документами.', 'workflow_layoutdata_saved' => '', +'workflow_log' => '', 'workflow_management' => 'Управление процессами', 'workflow_name' => 'Название', 'workflow_no_doc_rejected_state' => '', diff --git a/languages/sk_SK/lang.inc b/languages/sk_SK/lang.inc index 96ad8a9a8..9049e1ff2 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', @@ -128,6 +130,7 @@ Verzia: [version] Nadradený adresár: [folder_path] Užívateľ: [username] URL: [url]', +'approval_request_email_body_html' => '', 'approval_request_email_subject' => '[sitename]: [name] - Požiadavka na schválenie', 'approval_status' => 'Stav schválenia', 'approval_submit_email' => '', @@ -139,6 +142,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.', @@ -162,6 +166,7 @@ URL: [url]', 'attrdefgrp_show_searchlist' => 'Výsledok hľadania', 'attrdef_exists' => 'Definícia atribútu už existuje', 'attrdef_info' => 'Informácia', +'attrdef_invalid_regex' => '', 'attrdef_in_use' => 'Definícia atribútu sa stále používa', 'attrdef_management' => 'Správa definície atribútu', 'attrdef_maxvalues' => 'Max. počet hodnôt', @@ -200,6 +205,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 +404,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 +414,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 +424,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 +444,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 +454,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 +463,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 +472,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 +482,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ší', @@ -489,6 +503,8 @@ URL: [url]', 'download_header_review_state' => '', 'download_header_state' => '', 'download_links' => 'Odkazy na stiahnutie', +'download_link_email_body' => '', +'download_link_email_subject' => '', 'do_no_transfer_to_user' => '', 'do_object_repair' => 'Opraviť všetky zložky a dokumenty.', 'do_object_setchecksum' => 'Nastaviť kontrolný súčet', @@ -598,6 +614,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' => '', @@ -609,9 +626,11 @@ 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', +'extension_mgr_upload_disabled' => '', 'extension_missing_name' => '', 'extension_toggle_error' => '', 'extension_version_list' => 'Versions', @@ -637,6 +656,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 +666,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 +675,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 +685,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 +694,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' => '', @@ -716,6 +740,7 @@ URL: [url]', 'hu_HU' => 'Maďarčina', 'id' => 'ID', 'identical_version' => 'Nová verzia je identická s terajšou.', +'id_ID' => '', 'import' => 'Importovať', 'importfs' => 'Importovať zo súborového systému', 'import_extension' => 'Import extension', @@ -914,6 +939,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 +948,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 +959,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 +973,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 +981,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', @@ -965,9 +995,11 @@ URL: [url]', 'no_current_version' => 'Neaktualizovaná verzia', 'no_default_keywords' => 'Nie sú dostupné žiadne kľúčové slová.', 'no_docs_checked_out' => 'No documents checked out', +'no_docs_draft' => '', 'no_docs_expired' => '', 'no_docs_locked' => 'Žiadne uzamknuté dokumenty.', 'no_docs_needs_correction' => 'Žiadne dokumenty potrebné opraviť', +'no_docs_obsolete' => '', 'no_docs_rejected' => 'Žiadne dokumenty neboli zamietnuté.', 'no_docs_to_approve' => 'Momentálne neexistujú žiadne dokumenty, ktoré vyžadujú schválenie.', 'no_docs_to_look_at' => 'Žiadne dokumenty, ktoré potrebujú pozornosť.', @@ -988,6 +1020,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', @@ -997,6 +1030,14 @@ URL: [url]', 'old' => 'Staré', 'only_jpg_user_images' => 'Ako obrázky používateľov je možné použiť iba obrázky .jpg', 'operation_disallowed' => '', +'orderby' => '', +'orderby_date_asc' => '', +'orderby_date_desc' => '', +'orderby_id_asc' => '', +'orderby_id_desc' => '', +'orderby_name_asc' => '', +'orderby_name_desc' => '', +'orderby_unsorted' => '', 'order_by_sequence_off' => 'Ordering by sequence is turned off in the settings. If you want this parameter to have effect, you will have to turn it back on.', 'original_filename' => 'Pôvodný názov súboru', 'overall_indexing_progress' => 'Celkový priebeh indexovania', @@ -1009,6 +1050,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,7 +1068,10 @@ 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_invalid_hash' => '', +'password_forgotten_invalid_hash_title' => '', '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.', 'password_forgotten_title' => 'Heslo bolo odoslané', @@ -1079,6 +1124,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 +1133,12 @@ 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_body_html' => '', +'receipt_submit_email_subject' => '', 'receipt_summary' => 'Receipt summary', 'receipt_update_failed' => 'Acknowledging reception failed', 'recent_uploads' => 'Naposledy nahrané súbory', @@ -1098,6 +1148,7 @@ URL: [url]', 'reception_rejected' => 'Reception rejected', 'recipients' => 'Príjemcovia', 'recipient_already_removed' => '', +'record_type' => '', 'redraw' => 'Prekresliť', 'refresh' => 'Obnoviť', 'rejected' => 'Odmietnuté', @@ -1108,6 +1159,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 +1171,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 +1180,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 +1190,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 +1204,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 +1225,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 +1237,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 +1249,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 +1274,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 +1292,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 +1335,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', @@ -1328,6 +1391,7 @@ URL: [url]', 'select_mimetype' => '', 'select_one' => 'Vyberte', 'select_owner' => '', +'select_record_type' => '', 'select_status' => '', 'select_user' => 'Vyberte používateľa', 'select_users' => 'Kliknutím vyberte používateľov', @@ -1426,6 +1490,8 @@ Meno: [username] 'settings_defaultDocPosition_desc' => 'This is the default position within a folder when a document is created.', 'settings_defaultDocPosition_val_end' => 'end', 'settings_defaultDocPosition_val_start' => 'start', +'settings_defaultFolderPosition' => '', +'settings_defaultFolderPosition_desc' => '', 'settings_defaultSearchMethod' => 'Default search method', 'settings_defaultSearchMethod_desc' => 'Default search method, when a search is started by the search form in the main menu.', 'settings_defaultSearchMethod_valdatabase' => 'databáza', @@ -1468,6 +1534,12 @@ Meno: [username] 'settings_enableDuplicateSubFolderNames_desc' => '', 'settings_enableEmail' => 'Povoliť e-mail', 'settings_enableEmail_desc' => 'Povoliť/zakázať automatickú emailovú notifikáciu', +'settings_enableExtensionDownload' => '', +'settings_enableExtensionDownload_desc' => '', +'settings_enableExtensionImport' => '', +'settings_enableExtensionImportFromRepository' => '', +'settings_enableExtensionImportFromRepository_desc' => '', +'settings_enableExtensionImport_desc' => '', 'settings_enableFilterReceipt' => 'Filter out owner, reviewer, ... from reception list', 'settings_enableFilterReceipt_desc' => 'Enable, in order to filter out some recipients from a reception list if members of a group are selected.', 'settings_enableFolderTree' => 'Zobrazovať strom zložiek', @@ -1546,6 +1618,7 @@ Meno: [username] 'settings_expandFolderTree_val0' => 'začať so skrytou stromovou štruktúrou', 'settings_expandFolderTree_val1' => 'začať so stromovou štruktúrou s prvou rozbalenou úrovňou', 'settings_expandFolderTree_val2' => 'začať so stromovou štruktúrou plne rozbalenou', +'settings_ExtensionMgr' => '', 'settings_Extensions' => 'Rozšírenia', 'settings_extraPath' => 'Extra PHP include Path', 'settings_extraPath_desc' => 'Path to additional software. This is the directory containing e.g. the adodb directory or additional pear packages', @@ -1609,6 +1682,8 @@ Meno: [username] 'settings_more_settings' => 'Configure more settings. Default login: admin/admin', 'settings_noDocumentFormFields' => '', 'settings_noDocumentFormFields_desc' => '', +'settings_noFolderFormFields' => '', +'settings_noFolderFormFields_desc' => '', 'settings_notfound' => 'Nenájdené', 'settings_Notification' => 'Nastavenia notifikácií', 'settings_notwritable' => 'The configuration cannot be saved because the configuration file is not writable.', @@ -1768,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' => '', @@ -1790,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' => '', @@ -1812,6 +1891,7 @@ Meno: [username] 'splash_inherit_access' => 'Access right will be inherited', 'splash_invalid_folder_id' => 'Neplatné ID zložky', 'splash_invalid_searchterm' => 'Invalid search term', +'splash_invalid_search_service' => '', 'splash_link_document' => '', 'splash_moved_clipboard' => 'Schránka sa presunula do aktuálnej zložky', 'splash_move_document' => 'Dokument bol presunutý', @@ -1821,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', @@ -1969,6 +2051,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', @@ -2016,6 +2099,7 @@ URL: [url]', 'uploaded_by' => 'Nahral/a', 'uploading_failed' => 'Nahranie niektorého súboru zlyhalo. Preverte maximálnu povolenú veľkosť.', 'uploading_maxsize' => 'Nahrávaný súbor prekročil maximálnu povolenú velkosť.', +'uploading_postmaxsize' => '', 'uploading_zerosize' => 'Nahrávate prázdny súbor. Nahrávanie je zrušené.', 'used_discspace' => 'Využitý priestor na disku', 'user' => 'Používateľ', @@ -2043,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] @@ -2050,6 +2137,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ť', @@ -2078,6 +2166,7 @@ URL: [url]', 'workflow_initstate' => 'Initial state', 'workflow_in_use' => 'This workflow is currently used by documents.', 'workflow_layoutdata_saved' => 'Layout data saved', +'workflow_log' => '', 'workflow_management' => 'Workflow management', 'workflow_name' => 'Názov', 'workflow_no_doc_rejected_state' => 'The document will not be rejected in a workflow state!', diff --git a/languages/sv_SE/lang.inc b/languages/sv_SE/lang.inc index d9a2e51df..72d625ec1 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', @@ -129,6 +131,7 @@ Version: [version] Överordnade katalog: [folder_path] Användare: [username] URL: [url]', +'approval_request_email_body_html' => '', 'approval_request_email_subject' => '[sitename]: [name] - Begäran om godkännande', 'approval_status' => 'Status för godkännande', 'approval_submit_email' => '', @@ -140,6 +143,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.', @@ -163,6 +167,7 @@ URL: [url]', 'attrdefgrp_show_searchlist' => 'Sökresutlat', 'attrdef_exists' => 'Attributdefinitionen finns redan', 'attrdef_info' => 'Information', +'attrdef_invalid_regex' => '', 'attrdef_in_use' => 'Attributdefinitionen används', 'attrdef_management' => 'Hantering av attributdefinitioner', 'attrdef_maxvalues' => 'Max tillåtna värde', @@ -201,6 +206,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 +398,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 +408,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 +418,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 +438,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 +448,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 +457,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 +466,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 +476,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', @@ -483,6 +497,8 @@ URL: [url]', 'download_header_review_state' => '', 'download_header_state' => '', 'download_links' => 'Nedladdningslänkar', +'download_link_email_body' => '', +'download_link_email_subject' => '', 'do_no_transfer_to_user' => '', 'do_object_repair' => 'Reparera alla kataloger och dokument.', 'do_object_setchecksum' => 'Lägg till checksumma', @@ -592,6 +608,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' => '', @@ -603,9 +620,11 @@ 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' => '', +'extension_mgr_upload_disabled' => '', 'extension_missing_name' => '', 'extension_toggle_error' => '', 'extension_version_list' => '', @@ -624,6 +643,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 +653,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 +662,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 +672,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 +681,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' => '', @@ -703,6 +727,7 @@ URL: [url]', 'hu_HU' => 'Ungerska', 'id' => 'ID', 'identical_version' => 'Ny version är identisk med nuvarande version.', +'id_ID' => '', 'import' => 'Importera', 'importfs' => 'Import från filsystem', 'import_extension' => '', @@ -901,6 +926,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 +935,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 +946,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 +960,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 +968,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', @@ -952,9 +982,11 @@ URL: [url]', 'no_current_version' => 'Du har en gammal version av SeedDMS. Senaste versionen är [latestversion].', 'no_default_keywords' => 'Inga nyckelord tillgängliga', 'no_docs_checked_out' => 'Inga utcheckade dokument', +'no_docs_draft' => '', 'no_docs_expired' => '', 'no_docs_locked' => 'Inga låsta dokument.', 'no_docs_needs_correction' => '', +'no_docs_obsolete' => '', 'no_docs_rejected' => 'Det finns inga avvisade dokument.', 'no_docs_to_approve' => 'Det finns inga dokument som behöver godkännas.', 'no_docs_to_look_at' => 'Det finns inga dokument som behöver godkännas eller granskas.', @@ -975,6 +1007,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', @@ -984,6 +1017,14 @@ URL: [url]', 'old' => 'gammalt', 'only_jpg_user_images' => 'Bara .jpg-bilder kan användas som användarbild', 'operation_disallowed' => '', +'orderby' => '', +'orderby_date_asc' => '', +'orderby_date_desc' => '', +'orderby_id_asc' => '', +'orderby_id_desc' => '', +'orderby_name_asc' => '', +'orderby_name_desc' => '', +'orderby_unsorted' => '', 'order_by_sequence_off' => 'Sortering efter sekvens är inaktiverat i inställningarna.', 'original_filename' => 'Ursprungligt filnamn', 'overall_indexing_progress' => 'Total indexeringsprocess', @@ -996,6 +1037,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,7 +1052,10 @@ 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_invalid_hash' => '', +'password_forgotten_invalid_hash_title' => '', '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.', 'password_forgotten_title' => 'Glömt lösenord', @@ -1057,11 +1102,16 @@ 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_body_html' => '', +'receipt_submit_email_subject' => '', 'receipt_summary' => '', 'receipt_update_failed' => '', 'recent_uploads' => 'Senast uppladdat', @@ -1071,6 +1121,7 @@ Om du fortfarande har problem med inloggningen, kontakta administratören.', 'reception_rejected' => '', 'recipients' => 'Mottagare', 'recipient_already_removed' => '', +'record_type' => '', 'redraw' => 'Återkalla', 'refresh' => 'Uppdatera', 'rejected' => 'Avvisat', @@ -1081,6 +1132,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 +1144,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 +1153,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 +1163,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 +1177,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 +1198,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 +1210,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 +1222,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 +1247,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 +1265,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 +1308,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', @@ -1301,6 +1364,7 @@ URL: [url]', 'select_mimetype' => '', 'select_one' => 'Välj', 'select_owner' => '', +'select_record_type' => '', 'select_status' => '', 'select_user' => 'Välj användare', 'select_users' => 'Välj användare', @@ -1399,6 +1463,8 @@ Kommentar: [comment]', 'settings_defaultDocPosition_desc' => '', 'settings_defaultDocPosition_val_end' => '', 'settings_defaultDocPosition_val_start' => '', +'settings_defaultFolderPosition' => '', +'settings_defaultFolderPosition_desc' => '', 'settings_defaultSearchMethod' => 'Standard sökmetod', 'settings_defaultSearchMethod_desc' => 'Standard sökmetod, när en sökning startas i sökformuläret i huvudmenyn.', 'settings_defaultSearchMethod_valdatabase' => 'databas', @@ -1441,6 +1507,12 @@ Kommentar: [comment]', 'settings_enableDuplicateSubFolderNames_desc' => '', 'settings_enableEmail' => 'Använd e-postmeddelanden', 'settings_enableEmail_desc' => 'Aktivera/Inaktivera automatiska e-postmeddelanden', +'settings_enableExtensionDownload' => '', +'settings_enableExtensionDownload_desc' => '', +'settings_enableExtensionImport' => '', +'settings_enableExtensionImportFromRepository' => '', +'settings_enableExtensionImportFromRepository_desc' => '', +'settings_enableExtensionImport_desc' => '', 'settings_enableFilterReceipt' => '', 'settings_enableFilterReceipt_desc' => '', 'settings_enableFolderTree' => 'Visa katalogers trädstruktur', @@ -1519,6 +1591,7 @@ Kommentar: [comment]', 'settings_expandFolderTree_val0' => 'Börja med dolt träd', 'settings_expandFolderTree_val1' => 'Börja med att visa trädet och första nivån', 'settings_expandFolderTree_val2' => 'Börja med att visa hela trädet', +'settings_ExtensionMgr' => '', 'settings_Extensions' => 'Tillägg', 'settings_extraPath' => 'Extra PHP include sökväg', 'settings_extraPath_desc' => 'Sökväg till ytterligare mjukvara. Detta är mappen som kan innehålla t.ex. ADOdb-mappen eller ytterligare pear paket.', @@ -1582,6 +1655,8 @@ Kommentar: [comment]', 'settings_more_settings' => 'Konfigurera flera inställningar. Standard-inloggning: admin/admin', 'settings_noDocumentFormFields' => '', 'settings_noDocumentFormFields_desc' => '', +'settings_noFolderFormFields' => '', +'settings_noFolderFormFields_desc' => '', 'settings_notfound' => 'Hittades inte', 'settings_Notification' => 'Meddelandeinställningar', 'settings_notwritable' => 'Konfigurationen kunde inte sparas, eftersom konfigurationsfilen inte är skrivbar.', @@ -1741,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' => '', @@ -1763,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' => '', @@ -1785,6 +1864,7 @@ Kommentar: [comment]', 'splash_inherit_access' => '', 'splash_invalid_folder_id' => 'Ogiltigt katalog-ID', 'splash_invalid_searchterm' => 'Ogiltigt sökord', +'splash_invalid_search_service' => '', 'splash_link_document' => '', 'splash_moved_clipboard' => 'Urklipp flyttades till aktuell katalog', 'splash_move_document' => 'Dokumentet flyttat', @@ -1794,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', @@ -1942,6 +2024,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', @@ -1989,6 +2072,7 @@ URL: [url]', 'uploaded_by' => 'Uppladdat av', 'uploading_failed' => 'Fel vid uppladdningen. Kontakta administratören.', 'uploading_maxsize' => 'Den uppladdade filen översteg maxgränsen för filstorlek.', +'uploading_postmaxsize' => '', 'uploading_zerosize' => 'Uppladdning av tom fil. Uppladdningen avbryts.', 'used_discspace' => 'Använt lagringsutrymme', 'user' => 'Användare', @@ -2016,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] @@ -2023,6 +2110,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', @@ -2051,6 +2139,7 @@ URL: [url]', 'workflow_initstate' => 'Ursprungsstatus', 'workflow_in_use' => 'Detta arbetsflöde används av dokument.', 'workflow_layoutdata_saved' => 'Data för layout sparat', +'workflow_log' => '', 'workflow_management' => 'Arbetsflöden', 'workflow_name' => 'Namn', 'workflow_no_doc_rejected_state' => 'Dokumentet kommer inte att avvisas i någon status i arbetsflödet!', diff --git a/languages/tr_TR/lang.inc b/languages/tr_TR/lang.inc index 2afd0c8b1..19d25297e 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', @@ -122,6 +124,7 @@ Versiyon: [version] Üst klasör: [folder_path] Kullanıcı: [username] URL: [url]', +'approval_request_email_body_html' => '', 'approval_request_email_subject' => '[sitename]: [name] - Onay talebi', 'approval_status' => 'Onay Durumu', 'approval_submit_email' => '', @@ -133,6 +136,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.', @@ -156,6 +160,7 @@ URL: [url]', 'attrdefgrp_show_searchlist' => '', 'attrdef_exists' => 'Nitelik tanımı zaten mevcut', 'attrdef_info' => '', +'attrdef_invalid_regex' => '', 'attrdef_in_use' => 'Nitelik tanımı halen kullanımda', 'attrdef_management' => 'Nitelik tanımı yönetimi', 'attrdef_maxvalues' => 'Maks. değer', @@ -194,6 +199,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 +391,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 +401,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 +411,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 +431,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 +441,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 +450,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 +464,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', @@ -471,6 +485,8 @@ URL: [url]', 'download_header_review_state' => '', 'download_header_state' => '', 'download_links' => '', +'download_link_email_body' => '', +'download_link_email_subject' => '', 'do_no_transfer_to_user' => '', 'do_object_repair' => 'Tüm klasörleri ve dokümanları onar.', 'do_object_setchecksum' => 'Sağlama (checksum) ayarla', @@ -580,6 +596,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', @@ -591,9 +608,11 @@ 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', +'extension_mgr_upload_disabled' => '', 'extension_missing_name' => '', 'extension_toggle_error' => '', 'extension_version_list' => 'Veysionlar', @@ -612,6 +631,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 +641,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 +650,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 +660,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 +669,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' => '', @@ -691,6 +715,7 @@ URL: [url]', 'hu_HU' => 'Macarca', 'id' => 'ID', 'identical_version' => 'Yeni versiyon güncel versiyonla aynı.', +'id_ID' => '', 'import' => '', 'importfs' => '', 'import_extension' => '', @@ -889,6 +914,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 +923,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 +934,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 +948,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 +956,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', @@ -940,9 +970,11 @@ URL: [url]', 'no_current_version' => 'Kullandığınız SeedDMS versiyonu eski görünüyor. Son versiyon [latestversion].', 'no_default_keywords' => 'Anahtar kelime yok', 'no_docs_checked_out' => '', +'no_docs_draft' => '', 'no_docs_expired' => '', 'no_docs_locked' => 'Kilitli doküman yok.', 'no_docs_needs_correction' => '', +'no_docs_obsolete' => '', 'no_docs_rejected' => '', 'no_docs_to_approve' => 'Şu anda onay bekleyen doküman yok.', 'no_docs_to_look_at' => 'Dikkat edilmesi gereken bir doküman yok.', @@ -963,6 +995,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' => '', @@ -972,6 +1005,14 @@ URL: [url]', 'old' => 'Eski', 'only_jpg_user_images' => 'Kullanıcı resmi olarak sadece .jpg uzantı resimler kullanılabilir', 'operation_disallowed' => '', +'orderby' => '', +'orderby_date_asc' => '', +'orderby_date_desc' => '', +'orderby_id_asc' => '', +'orderby_id_desc' => '', +'orderby_name_asc' => '', +'orderby_name_desc' => '', +'orderby_unsorted' => '', 'order_by_sequence_off' => '', 'original_filename' => 'Orijinal dosya adı', 'overall_indexing_progress' => '', @@ -984,6 +1025,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,7 +1045,10 @@ 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_invalid_hash' => '', +'password_forgotten_invalid_hash_title' => '', '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.', 'password_forgotten_title' => 'Parola gönderildi', @@ -1050,11 +1095,16 @@ 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_body_html' => '', +'receipt_submit_email_subject' => '', 'receipt_summary' => '', 'receipt_update_failed' => '', 'recent_uploads' => 'En son yüklenenler', @@ -1064,6 +1114,7 @@ Giriş yaparken halen sorun yaşıyorsanız lütfen sistem yöneticinizle görü 'reception_rejected' => 'Resepsiyon reddedildi', 'recipients' => '', 'recipient_already_removed' => '', +'record_type' => '', 'redraw' => '', 'refresh' => 'Yenile', 'rejected' => 'Reddedildi', @@ -1074,6 +1125,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 +1137,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 +1146,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 +1163,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 +1179,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 +1198,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 +1218,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 +1236,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 +1279,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', @@ -1272,6 +1335,7 @@ URL: [url]', 'select_mimetype' => '', 'select_one' => 'Birini seçiniz', 'select_owner' => '', +'select_record_type' => '', 'select_status' => '', 'select_user' => 'Kullanıcı Seç', 'select_users' => 'Kullanıcı seçmek için tıklayın', @@ -1365,6 +1429,8 @@ URL: [url]', 'settings_defaultDocPosition_desc' => '', 'settings_defaultDocPosition_val_end' => '', 'settings_defaultDocPosition_val_start' => '', +'settings_defaultFolderPosition' => '', +'settings_defaultFolderPosition_desc' => '', 'settings_defaultSearchMethod' => 'Ön tanımlı arama metodu', 'settings_defaultSearchMethod_desc' => '', 'settings_defaultSearchMethod_valdatabase' => 'veritabanı', @@ -1407,6 +1473,12 @@ URL: [url]', 'settings_enableDuplicateSubFolderNames_desc' => '', 'settings_enableEmail' => 'E-Postayı Etkinleştir', 'settings_enableEmail_desc' => 'Otomatik e-posta bildirimlerini etkinleştir/devre dışı bırak', +'settings_enableExtensionDownload' => '', +'settings_enableExtensionDownload_desc' => '', +'settings_enableExtensionImport' => '', +'settings_enableExtensionImportFromRepository' => '', +'settings_enableExtensionImportFromRepository_desc' => '', +'settings_enableExtensionImport_desc' => '', 'settings_enableFilterReceipt' => '', 'settings_enableFilterReceipt_desc' => '', 'settings_enableFolderTree' => 'Klasör Ağaç Yapısını Etkinleştir', @@ -1485,6 +1557,7 @@ URL: [url]', 'settings_expandFolderTree_val0' => 'ağaç yapısı gizli olarak başlat', 'settings_expandFolderTree_val1' => 'ağaç yapısı görünür ve ilk seviye genişletilmiş olarak başlat', 'settings_expandFolderTree_val2' => 'ağaç yapısı tam görünür oluruk başlat', +'settings_ExtensionMgr' => '', 'settings_Extensions' => 'Bileşenler (Extensions)', 'settings_extraPath' => 'Ekstra PHP kapsama yolu', 'settings_extraPath_desc' => 'Ek yazılımlar için yol. Bu dizinde örneğin adodb gibi ek pear paketler bulunur', @@ -1548,6 +1621,8 @@ URL: [url]', 'settings_more_settings' => 'Daha fazla ayar yapın. Varsayılan kullanıcı adı/parola: admin/admin', 'settings_noDocumentFormFields' => 'Bu alanı gösterme', 'settings_noDocumentFormFields_desc' => '', +'settings_noFolderFormFields' => '', +'settings_noFolderFormFields_desc' => '', 'settings_notfound' => 'Bulunamadı', 'settings_Notification' => 'Bildirim ayarları', 'settings_notwritable' => 'Konfigürasyon dosyası yazılabilir olmadığından ayarlar kaydedilmeyecek.', @@ -1707,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' => '', @@ -1729,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' => '', @@ -1751,6 +1830,7 @@ URL: [url]', 'splash_inherit_access' => '', 'splash_invalid_folder_id' => 'Hatalı klasör ID', 'splash_invalid_searchterm' => 'Hatalı arama terimi', +'splash_invalid_search_service' => '', 'splash_link_document' => '', 'splash_moved_clipboard' => 'Pano mevcut klasöre taşındı', 'splash_move_document' => '', @@ -1760,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' => '', @@ -1908,6 +1990,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' => '', @@ -1955,6 +2038,7 @@ URL: [url]', 'uploaded_by' => 'Yükleyen', 'uploading_failed' => 'Dosyalardan biri yüklenirken başarısız oldu. Maksimum yükleme boyutunuzu kontrol ediniz.', 'uploading_maxsize' => 'Yüklenen dosya maksimum yükleme boyutundan fazla.', +'uploading_postmaxsize' => '', 'uploading_zerosize' => 'Boş bir dosya yükleniyor. Yükleme iptal edildi.', 'used_discspace' => 'Kullanılan disk alanı', 'user' => 'Kullanıcı', @@ -1982,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] @@ -1989,6 +2076,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', @@ -2017,6 +2105,7 @@ URL: [url]', 'workflow_initstate' => 'İlk durum', 'workflow_in_use' => 'Bu iş akışı doküman(lar) tarafından kullanımda.', 'workflow_layoutdata_saved' => '', +'workflow_log' => '', 'workflow_management' => 'İş akış yönetimi', 'workflow_name' => 'İsim', 'workflow_no_doc_rejected_state' => '', diff --git a/languages/uk_UA/lang.inc b/languages/uk_UA/lang.inc index e00cb3018..7093afea9 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' => 'Група затверджувачів', @@ -128,6 +130,7 @@ URL: [url]', Батьківський каталог: [folder_path] Користувач: [username] URL: [url]', +'approval_request_email_body_html' => '', 'approval_request_email_subject' => '[sitename]: запит на затвердження «[name]»', 'approval_status' => 'Статус затвердження', 'approval_submit_email' => 'Затверджено документ', @@ -139,6 +142,7 @@ URL: [url]', Коментар: [comment] Користувач: [username] URL: [url]', +'approval_submit_email_body_html' => '', 'approval_submit_email_subject' => '[sitename]: [name] - Затверджено', 'approval_summary' => 'Підсумки затвердження', 'approval_update_failed' => 'Виникла помилка при зміні статусу затвердження', @@ -162,6 +166,7 @@ URL: [url]', 'attrdefgrp_show_searchlist' => '', 'attrdef_exists' => 'Визначення атрибуту вже існує', 'attrdef_info' => 'Інформація', +'attrdef_invalid_regex' => '', 'attrdef_in_use' => 'Визначення цього атрибуту вже використовується', 'attrdef_management' => 'Керування визначенням атрибутів', 'attrdef_maxvalues' => 'Макс. кількість значень', @@ -200,6 +205,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 +397,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 +407,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 +417,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 +437,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 +447,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 +456,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 +470,7 @@ URL: [url]', Коментар: [comment] Коментар версії: [version_comment] URL: [url]', +'document_updated_email_body_html' => '', 'document_updated_email_subject' => '[sitename]: оновлено документ «[name]»', 'document_versions' => '', 'does_not_expire' => 'Без терміну виконання', @@ -477,6 +491,8 @@ URL: [url]', 'download_header_review_state' => '', 'download_header_state' => '', 'download_links' => '', +'download_link_email_body' => '', +'download_link_email_subject' => '', 'do_no_transfer_to_user' => '', 'do_object_repair' => 'Виправити всі каталоги і документи', 'do_object_setchecksum' => 'Встановити контрольну суму', @@ -586,6 +602,7 @@ URL: [url]', Батьківський каталог: [folder_path] Користувач: [username] URL: [url]', +'expiry_changed_email_body_html' => '', 'expiry_changed_email_subject' => '[sitename]: зміна дати терміну виконання для «[name]»', 'export' => 'Експорт', 'export_user_list_csv' => '', @@ -597,9 +614,11 @@ 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' => '', +'extension_mgr_upload_disabled' => '', 'extension_missing_name' => '', 'extension_toggle_error' => '', 'extension_version_list' => '', @@ -618,6 +637,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 +647,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 +656,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 +666,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 +675,7 @@ URL: [url]', Попередня назва: [old_name] Користувач: [username] URL: [url]', +'folder_renamed_email_body_html' => '', 'folder_renamed_email_subject' => '[sitename]: перейменовано каталог «[name]»', 'folder_title' => 'Каталог [foldername]', 'foot_note' => '', @@ -697,6 +721,7 @@ URL: [url]', 'hu_HU' => 'Hungarian', 'id' => 'Ідентифікатор', 'identical_version' => 'Нова версія ідентична поточній.', +'id_ID' => '', 'import' => '', 'importfs' => '', 'import_extension' => '', @@ -895,6 +920,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 +928,7 @@ URL: [url]', Коментар: [comment] Користувач: [username] URL: [url]', +'new_file_email_body_html' => '', 'new_file_email_subject' => '[sitename]: новий додаток до документа «[document]»', 'new_folder' => 'Новий каталог', 'new_password' => 'Новий пароль', @@ -912,6 +939,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 +953,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 +961,7 @@ URL: [url]', Батьківський каталог: [folder_path] Користувач: [username] URL: [url]', +'notify_deleted_email_body_html' => '', 'notify_deleted_email_subject' => '[sitename]: вас видалено зі списку сповіщення для «[name]»', 'not_subscribed' => '', 'november' => 'Листопад', @@ -945,9 +975,11 @@ URL: [url]', 'no_current_version' => 'Ви використовуєте застарілу версію SeedDMS. Остання версія [latestversion].', 'no_default_keywords' => 'Немає ключових слів', 'no_docs_checked_out' => 'Немає документів на опрацюванні', +'no_docs_draft' => '', 'no_docs_expired' => '', 'no_docs_locked' => 'Немає заблокованих документів', 'no_docs_needs_correction' => '', +'no_docs_obsolete' => '', 'no_docs_rejected' => '', 'no_docs_to_approve' => 'Немає документів, які потребують затвердження', 'no_docs_to_look_at' => 'Немає документів, які потребують уваги', @@ -968,6 +1000,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' => '', @@ -977,6 +1010,14 @@ URL: [url]', 'old' => 'Старий', 'only_jpg_user_images' => 'Дозволені лише .jpg-зображення', 'operation_disallowed' => '', +'orderby' => '', +'orderby_date_asc' => '', +'orderby_date_desc' => '', +'orderby_id_asc' => '', +'orderby_id_desc' => '', +'orderby_name_asc' => '', +'orderby_name_desc' => '', +'orderby_unsorted' => '', 'order_by_sequence_off' => 'Можливість ручного сортування відключена в налаштуваннях. Якщо ви хочете використовувати цю функцію, ви повинні знову її включити.', 'original_filename' => 'Початкова назва файлу', 'overall_indexing_progress' => 'Загальне просування індексації"', @@ -989,6 +1030,7 @@ URL: [url]', Новий власник: [new_owner] Користувач: [username] URL: [url]', +'ownership_changed_email_body_html' => '', 'ownership_changed_email_subject' => '[sitename]: змінено власника «[name]»', 'password' => 'Пароль', 'password_already_used' => 'Пароль вже використовується', @@ -1004,7 +1046,10 @@ URL: [url]', [url_prefix]out/out.ChangePassword.php?hash=[hash] Якщо ви і після цього не зможете зайти, зв\'яжіться з адміністратором', +'password_forgotten_email_body_html' => '', 'password_forgotten_email_subject' => '[sitename]: Втрачено пароль', +'password_forgotten_invalid_hash' => '', +'password_forgotten_invalid_hash_title' => '', 'password_forgotten_send_hash' => 'Інструкції вислано на e-mail', 'password_forgotten_text' => 'Заповніть форму і виконайте інструкції в листі', 'password_forgotten_title' => 'Пароль вислано', @@ -1051,6 +1096,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 +1105,12 @@ 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_body_html' => '', +'receipt_submit_email_subject' => '', 'receipt_summary' => 'Підсумки отримання', 'receipt_update_failed' => '', 'recent_uploads' => 'Останні завантаження', @@ -1070,6 +1120,7 @@ URL: [url]', 'reception_rejected' => '', 'recipients' => 'Отримувачі', 'recipient_already_removed' => '', +'record_type' => '', 'redraw' => '', 'refresh' => 'Оновити', 'rejected' => 'Відхилений', @@ -1080,6 +1131,7 @@ URL: [url]', Документ: [document] Користувач: [username] URL: [url]', +'removed_file_email_body_html' => '', 'removed_file_email_subject' => '[sitename]: видалено додаток до «[document]»', 'removed_recipient' => 'видалено отримувача', 'removed_reviewer' => 'видалено зі списку рецензентів', @@ -1091,6 +1143,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 +1152,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 +1169,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 +1190,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 +1202,7 @@ URL: [url]', Батьківський каталог: [folder_path] Користувач: [username] URL: [url]', +'review_request_email_body_html' => '', 'review_request_email_subject' => 'Запит на рецензування', 'review_status' => 'Статус рецензування', 'review_submit_email' => 'Відправлено на рецензування', @@ -1156,6 +1214,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 +1239,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 +1257,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 +1300,7 @@ URL: [url]', Батьківський каталог: [folder_path] Користувач: [username] URL: [url]', +'run_subworkflow_email_body_html' => '', 'run_subworkflow_email_subject' => '[sitename]: запущено підпроцес для «[name]»', 'ru_RU' => 'Русский', 'saturday' => 'Субота', @@ -1293,6 +1356,7 @@ URL: [url]', 'select_mimetype' => '', 'select_one' => 'Оберіть', 'select_owner' => '', +'select_record_type' => '', 'select_status' => '', 'select_user' => '', 'select_users' => 'Оберіть користувачів', @@ -1386,6 +1450,8 @@ URL: [url]', 'settings_defaultDocPosition_desc' => '', 'settings_defaultDocPosition_val_end' => '', 'settings_defaultDocPosition_val_start' => '', +'settings_defaultFolderPosition' => '', +'settings_defaultFolderPosition_desc' => '', 'settings_defaultSearchMethod' => 'Метод пошуку за замовчуванням', 'settings_defaultSearchMethod_desc' => 'Метод пошуку за замовчуванням, коли пошук починається з пошукової форми головного меню.', 'settings_defaultSearchMethod_valdatabase' => 'база даних', @@ -1428,6 +1494,12 @@ URL: [url]', 'settings_enableDuplicateSubFolderNames_desc' => '', 'settings_enableEmail' => 'Увімкнути e-mail', 'settings_enableEmail_desc' => 'Увімкнути/вимкнути автоматичне сповіщення по e-mail.', +'settings_enableExtensionDownload' => '', +'settings_enableExtensionDownload_desc' => '', +'settings_enableExtensionImport' => '', +'settings_enableExtensionImportFromRepository' => '', +'settings_enableExtensionImportFromRepository_desc' => '', +'settings_enableExtensionImport_desc' => '', 'settings_enableFilterReceipt' => '', 'settings_enableFilterReceipt_desc' => '', 'settings_enableFolderTree' => 'Увімкнути дерево каталогів', @@ -1506,6 +1578,7 @@ URL: [url]', 'settings_expandFolderTree_val0' => 'Починати із згорнутого дерева', 'settings_expandFolderTree_val1' => 'Починати з розгорнутого дерева першого рівня', 'settings_expandFolderTree_val2' => 'Починати з повністю розгорнутого дерева', +'settings_ExtensionMgr' => '', 'settings_Extensions' => 'Розширення', 'settings_extraPath' => 'Додатковий шлях PHP', 'settings_extraPath_desc' => 'Розміщення додаткового програмного забезпечення. Наприклад, каталог, що містить adodb або додаткові pear-пакети.', @@ -1569,6 +1642,8 @@ URL: [url]', 'settings_more_settings' => 'Інші налаштування. Логін по замовчуванню: admin/admin', 'settings_noDocumentFormFields' => '', 'settings_noDocumentFormFields_desc' => '', +'settings_noFolderFormFields' => '', +'settings_noFolderFormFields_desc' => '', 'settings_notfound' => 'Не знайдено', 'settings_Notification' => 'Налаштування сповіщення', 'settings_notwritable' => 'Конфігурація не може бути збережена, тому що файл налаштувань доступний лише на читання.', @@ -1728,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' => '', @@ -1750,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' => '', @@ -1772,6 +1851,7 @@ URL: [url]', 'splash_inherit_access' => '', 'splash_invalid_folder_id' => 'Невірний ідентифікатор каталогу', 'splash_invalid_searchterm' => 'Невірний пошуковий запит', +'splash_invalid_search_service' => '', 'splash_link_document' => '', 'splash_moved_clipboard' => 'Буфер обміну перенесено в поточний каталог', 'splash_move_document' => '', @@ -1781,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' => '', @@ -1929,6 +2011,7 @@ URL: [url]', Батьківський каталог: [folder_path] Користувач: [username] URL: [url]', +'transition_triggered_email_body_html' => '', 'transition_triggered_email_subject' => '[sitename]: змінено стан процесу для «[name]»', 'transmittal' => 'Передача', 'transmittalitem_removed' => 'Переданий елемент видалено', @@ -1976,6 +2059,7 @@ URL: [url]', 'uploaded_by' => 'Завантажив(ла)', 'uploading_failed' => 'Завантаження не успішне. Зв\'яжіться з адміністратором.', 'uploading_maxsize' => 'Розмір завантаженого файлу перевищує максимально допустимий', +'uploading_postmaxsize' => '', 'uploading_zerosize' => 'Відміна завантаження порожнього файлу.', 'used_discspace' => 'Зайнятий дисковий простір', 'user' => 'Користувач', @@ -2003,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] @@ -2010,6 +2097,7 @@ URL: [url]', Батьківський каталог: [folder_path] Користувач: [username] URL: [url]', +'version_deleted_email_body_html' => '', 'version_deleted_email_subject' => '[sitename]: знищено версію «[name]»', 'version_info' => 'Інформація про версію', 'view' => 'Перегляд', @@ -2038,6 +2126,7 @@ URL: [url]', 'workflow_initstate' => 'Початковий статус', 'workflow_in_use' => 'Цей процес використовується в документах.', 'workflow_layoutdata_saved' => '', +'workflow_log' => '', 'workflow_management' => 'Керування процесами', 'workflow_name' => 'Назва', 'workflow_no_doc_rejected_state' => '', diff --git a/languages/zh_CN/lang.inc b/languages/zh_CN/lang.inc index a257f2ad5..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 (784), archonwang (469), fengjohn (5), yang86 (1) +// Translators: Admin (1234), archonwang (469), fengjohn (5), yang86 (1) $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' => '执行', @@ -68,21 +69,21 @@ URL: [url]', 'add_document_link' => '添加链接', 'add_document_notify' => '派发通知', 'add_doc_reviewer_approver_warning' => '备注:如果没有指派校对人或审核人那么文档将被自动标注为发布', -'add_doc_workflow_warning' => '', +'add_doc_workflow_warning' => '备注:如果没有分配工作流,文件将自动标记为已发布', 'add_event' => '添加事件', 'add_group' => '增加新组', 'add_member' => '添加成员', 'add_multiple_documents' => '添加多个文件', 'add_multiple_files' => '批量添加文档(文档名无法手动修改)', -'add_receipt' => '', +'add_receipt' => '添加接受提示', 'add_review' => '提交校对', 'add_revision' => '添加审核人', 'add_role' => '新建角色', 'add_subfolder' => '添加子文件夹', -'add_task' => '', +'add_task' => '添加任务', 'add_to_clipboard' => '复制', -'add_to_transmittal' => '添加到传送', -'add_transmittal' => '', +'add_to_transmittal' => '添加到发送列表', +'add_transmittal' => '添加发送', 'add_user' => '添加新用户', 'add_user_to_group' => '添加用户到组', 'add_workflow' => '新建工作流', @@ -96,10 +97,10 @@ URL: [url]', 'all_pages' => '所有页面', 'all_users' => '所有用户', 'already_subscribed' => '已经订阅', -'and' => 'and', +'and' => '和', 'apikey' => '', 'apply' => '应用', -'approvals_accepted' => '', +'approvals_accepted' => '[no_approvals]审批已接受', 'approvals_accepted_latest' => '', 'approvals_and_reviews_accepted' => '[no_approvals] 审核和 [no_reviews] 校对已通过', 'approvals_and_reviews_not_touched' => '[no_approvals] 审核和 [no_reviews] 校对暂未执行', @@ -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' => '审核组', @@ -128,9 +130,10 @@ URL: [url]', 父文件夹: [folder_path] 用户: [username] URL: [url]', +'approval_request_email_body_html' => '', 'approval_request_email_subject' => '[sitename]: [name] - 审核请求', 'approval_status' => '审核状态', -'approval_submit_email' => '', +'approval_submit_email' => '提交审批', 'approval_submit_email_body' => '文档审核 文档: [name] 版本: [version] @@ -139,6 +142,7 @@ URL: [url]', 批注: [comment] 用户: [username] URL: [url]', +'approval_submit_email_body_html' => '', 'approval_submit_email_subject' => '[sitename]: [name] - 提交审核', 'approval_summary' => '审核汇总', 'approval_update_failed' => '错误:更新审核状态.更新失败.', @@ -146,12 +150,12 @@ URL: [url]', 'approver_already_assigned' => '用户已被设置为审核人。', 'approver_already_removed' => '审核人已从审核进程中移除,或已提交审核结果。', 'april' => '四 月', -'archive' => '', +'archive' => '存档', 'archive_creation' => '创建存档', -'archive_creation_warning' => '通过此操作您可以创建一个包含这个DMS(文档管理系统)的数据文件夹。之后,所有文档都将保存到您服务器的数据文件夹中.
警告:如果所创建文档名为非数字的,那么将在服务器备份中不可用', +'archive_creation_warning' => '通过此操作您可以创建一个包含文档管理系统的数据文件夹。之后,所有文档都将保存到您服务器的数据文件夹中.
警告:如果所创建文档名为非数字的,那么将在服务器备份中不可用', 'ar_EG' => '阿拉伯语', 'assign_approvers' => '指派审核人', -'assign_recipients' => '', +'assign_recipients' => '指派接收人', 'assign_reviewers' => '指派校对人', 'assign_user_property_to' => '分配用户属性给', 'assumed_released' => '假定发布', @@ -161,18 +165,19 @@ URL: [url]', 'attrdefgrp_show_search' => '检索', 'attrdefgrp_show_searchlist' => '检索结果', 'attrdef_exists' => '属性定义已存在', -'attrdef_info' => '', +'attrdef_info' => '属性', +'attrdef_invalid_regex' => '', 'attrdef_in_use' => '属性定义仍在使用中', 'attrdef_management' => '属性定义管理', 'attrdef_maxvalues' => '最大值', 'attrdef_minvalues' => '最小值', 'attrdef_minvalues_help' => '', -'attrdef_min_greater_max' => '', +'attrdef_min_greater_max' => '最小值数目大于最大值数目', 'attrdef_multiple' => '允许多个值', -'attrdef_multiple_needs_valueset' => '', -'attrdef_must_be_multiple' => '', +'attrdef_multiple_needs_valueset' => '有多个值的属性定义需要设置值', +'attrdef_must_be_multiple' => '必须为多个值', 'attrdef_name' => '名称', -'attrdef_noname' => '', +'attrdef_noname' => '无名称', 'attrdef_objtype' => '类别', 'attrdef_regex' => '正则表达式', 'attrdef_regex_help' => '', @@ -191,26 +196,27 @@ URL: [url]', 'attrdef_valueset' => '属性值', 'attrdef_valueset_help' => '', 'attributes' => '属性', -'attribute_changed_email_body' => '', -'attribute_changed_email_subject' => '', +'attribute_changed_email_body' => '属性改变', +'attribute_changed_email_body_html' => '', +'attribute_changed_email_subject' => '[sitename]: [name] -属性更改', 'attribute_count' => '使用次数', 'attribute_value' => '属性值', -'attribute_value_not_in_valueset' => '', +'attribute_value_not_in_valueset' => '属性值不在范围内', 'attr_malformed_boolean' => '属性 \'[attrname]\' 的值 \'[value]\' 不是合法的布尔(boolean)值。', 'attr_malformed_date' => '属性 \'[attrname]\' 的值 \'[value]\' 不是合法的日期(date)值。', 'attr_malformed_email' => '属性 \'[attrname]\' 的值 \'[value]\' 不是合法的 URL。', 'attr_malformed_float' => '属性 \'[attrname]\' 的值 \'[value]\' 不是合法的浮点数(float)值。', 'attr_malformed_int' => '属性 \'[attrname]\' 的值 \'[value]\' 不是合法的数值(interger)。', 'attr_malformed_url' => '属性 \'[attrname]\' 的值 \'[value]\' 不是合法的 URL。', -'attr_max_values' => '', +'attr_max_values' => '超过了属性[attrname]所需值的最大数目。', 'attr_min_values' => '最小值没达到', -'attr_not_in_valueset' => '', -'attr_no_regex_match' => '', +'attr_not_in_valueset' => '不在范围内', +'attr_no_regex_match' => '正则表达式属性值不匹配\'[regex]\'', 'attr_validation_error' => '属性 \'[attrname]\' 的值 \'[value]\' 非法。', -'at_least_n_users_of_group' => '', +'at_least_n_users_of_group' => '[group] 至少需要 [number_of_users] 个用户', 'august' => '八 月', 'authentication' => '认证', -'authentication_failed' => '', +'authentication_failed' => '认证失败', 'author' => '作者', 'automatic_status_update' => '自动状态变化', 'back' => '返回', @@ -262,14 +268,14 @@ URL: [url]', 'chart_foldersperuser_title' => '', 'chart_selection' => '选择报表', 'chart_sizeperuser_title' => '单用户磁盘空间', -'checkedout_file_has_different_version' => '', -'checkedout_file_has_disappeared' => '', -'checkedout_file_is_unchanged' => '', +'checkedout_file_has_different_version' => '检查后的版本和现在的版本不一样。将不会更新文件。', +'checkedout_file_has_disappeared' => '签出文件不存在,无法登记。', +'checkedout_file_is_unchanged' => '签出文件的文件仍然没有变化,无法登记。您可以考虑重置文件签出状态。', 'checkin_document' => '签入', 'checkoutpath_does_not_exist' => '签出路径不存在', 'checkout_cancel_confirm' => '', 'checkout_document' => '签出', -'checkout_is_disabled' => '', +'checkout_is_disabled' => '不允许签出', 'choose_attrdef' => '请选择属性', 'choose_attrdefgroup' => '选择属性组', 'choose_category' => '请选择', @@ -293,15 +299,15 @@ URL: [url]', 'color' => '', 'command' => '命令', 'comment' => '说明', -'comment_changed_email' => '', +'comment_changed_email' => '评论更新', 'comment_for_current_version' => '版本说明', 'configure_extension' => '配置扩展', -'confirm_clear_cache' => '', +'confirm_clear_cache' => '确认清除缓存吗?这将删除所有预先计算的预览图像。', 'confirm_create_fulltext_index' => '确认重新创建全文索引', -'confirm_move_document' => '', +'confirm_move_document' => '请确认移动文件', 'confirm_move_folder' => '请确认移动文件夹', 'confirm_pwd' => '确认密码', -'confirm_rm_attr_value' => '', +'confirm_rm_attr_value' => '真的想删除属性值吗?', 'confirm_rm_backup' => '您确定要删除"[arkname]"备份文档?
请注意:此动作执行后不能撤销.', 'confirm_rm_document' => '您确定要删除\'[documentname]\'文档?
请注意:此动作执行后不能撤销.', 'confirm_rm_dump' => '您确定要删除"[dumpname]"转储文件?
请注意:此动作执行后不能撤销.', @@ -312,28 +318,28 @@ URL: [url]', 'confirm_rm_group' => '您确定要删除"[groupname]"组?
请注意:此动作执行后不能撤销.', 'confirm_rm_log' => '您确定要删除"[logname]"日志文件?
请注意:此动作执行后不能撤销.', 'confirm_rm_task' => '', -'confirm_rm_transmittal' => '', +'confirm_rm_transmittal' => '确认清除', 'confirm_rm_transmittalitem' => '确认删除', 'confirm_rm_user' => '您确定要删除"[username]"用户?
请注意:此动作执行后不能撤销.', -'confirm_rm_user_from_processes' => '', +'confirm_rm_user_from_processes' => '您真的想从所有进程中删除用户"[username]"吗?
注意:如果用户是唯一或最后一个批准者这个操作可能导致文档的发布', 'confirm_rm_version' => '您确定要删除"[documentname]文档的[version]版本文件?
请注意:此动作执行后不能撤销.', 'confirm_transfer_link_document' => '', -'confirm_transfer_objects' => '', +'confirm_transfer_objects' => '确定要转移用户[username]的文件、文件夹等吗?
注意:这个操作是不能撤销的.', 'confirm_update_transmittalitem' => '确认更新', 'content' => '内容', 'continue' => '继续', 'converter_new_cmd' => '命令', 'converter_new_mimetype' => '新建 MIME 类型', -'copied_to_checkout_as' => '', -'create_download_link' => '', +'copied_to_checkout_as' => '"[username]"复制文件到签出空间\'[filename]\' 日期 [date]', +'create_download_link' => '添加下载链接', 'create_fulltext_index' => '创建全文索引', -'create_fulltext_index_warning' => '你将重新创建全 -文索引。这将花费一定的时间但是会提升系统的整体表现。如果你想要重新创建索引,请确 +'create_fulltext_index_warning' => '你将重新创建全 +文索引。这将花费一定的时间但是会提升系统的整体表现。如果你想要重新创建索引,请确 认你的操作', 'creation_date' => '创建日期', 'cs_CZ' => '捷克语', 'current_password' => '当前密码', -'current_quota' => '', +'current_quota' => '当前系统配额设置为[quota]', 'current_state' => '当前状态', 'current_version' => '当前版本', 'daily' => '天', @@ -354,8 +360,8 @@ URL: [url]', 'disable_extension' => '', 'disclaimer' => '警告:这是机密区.只有授权用户才被允许访问.任何违反行为将受到法律制裁', 'discspace' => '磁盘空间', -'docs_in_reception_no_access' => '', -'docs_in_revision_no_access' => '', +'docs_in_reception_no_access' => '收件人未访问接收到的文档', +'docs_in_revision_no_access' => '修订人未访问带修订文档', 'document' => '文档', 'documentcontent' => '文档内容', 'documents' => '文档', @@ -367,25 +373,26 @@ URL: [url]', 'documents_only' => '指定文件', 'documents_rejected' => '', 'documents_to_approve' => '待您审核的文档', -'documents_to_correct' => '', -'documents_to_process' => '', -'documents_to_receipt' => '', -'documents_to_review' => '待您校对的文档', -'documents_to_revise' => '', -'documents_to_trigger_workflow' => '', -'documents_user_draft' => '', -'documents_user_expiration' => '', -'documents_user_needs_correction' => '', -'documents_user_no_reception' => '', -'documents_user_obsolete' => '', -'documents_user_reception' => '', +'documents_to_correct' => '待您校对的文档', +'documents_to_process' => '待您处理的文档', +'documents_to_receipt' => '待您接收的文档', +'documents_to_review' => '待您复核的文档', +'documents_to_revise' => '待您修订的文档', +'documents_to_trigger_workflow' => '工作流中的文档', +'documents_user_draft' => '草稿', +'documents_user_expiration' => '过期的文档', +'documents_user_needs_correction' => '待校正文档', +'documents_user_no_reception' => '未接收文档', +'documents_user_obsolete' => '已废弃文档', +'documents_user_reception' => '待接收文档', 'documents_user_rejected' => '已拒绝的文档', 'documents_user_requiring_attention' => '需您关注的文档', -'documents_with_notification' => '', +'documents_with_notification' => '有通知文档', 'document_already_checkedout' => '当前文档已签出', 'document_already_locked' => '该文档已被锁定', -'document_attribute_changed_email_body' => '', -'document_attribute_changed_email_subject' => '', +'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' => '批注已更新 文档: [name] @@ -394,6 +401,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,12 +411,13 @@ URL: [url]', 文档: [name] 父文件夹: [folder_path] 用户: [username]', +'document_deleted_email_body_html' => '', 'document_deleted_email_subject' => '[sitename]: [name] - 文档已删除', 'document_duplicate_name' => '文档名称重复', 'document_files' => '', 'document_has_no_workflow' => '文档未配置工作流', 'document_infos' => '文档信息', -'document_is_checked_out' => '', +'document_is_checked_out' => '文档已签出。如上传了新版本,则已签出的版本则不能再被签回。', 'document_is_checked_out_remove' => '', 'document_is_checked_out_update' => '文档已签出。如上传了新版本,则已签出的版本则不能再被签回。', 'document_is_not_locked' => '该文档没有被锁定', @@ -422,6 +431,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 +441,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,10 +450,12 @@ 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_subject' => '', +'document_title' => '文档 \'[documentname]\'', +'document_transfered_email_body' => '文件转移给其他用户', +'document_transfered_email_body_html' => '', +'document_transfered_email_subject' => '[sitename]: [name] - 转移文件', 'document_updated_email' => '文档已被更新', 'document_updated_email_body' => '文档已更新 文档: [name] @@ -451,6 +464,7 @@ URL: [url]', 批注: [comment] 版本批注: [version_comment] URL: [url]', +'document_updated_email_body_html' => '', 'document_updated_email_subject' => '[sitename]: [name] - 文档已更新', 'document_versions' => '', 'does_not_expire' => '永不过期', @@ -471,9 +485,17 @@ URL: [url]', 'download_header_review_state' => '', 'download_header_state' => '', 'download_links' => '下载链接', +'download_link_email_body' => '点击以下链接下载文档 \'[docname]\' 的 [version] 版本。 + +[url] + +该链接有效性:[valid] + +[comment]', +'download_link_email_subject' => '下载链接', 'do_no_transfer_to_user' => '', -'do_object_repair' => '', -'do_object_setchecksum' => '', +'do_object_repair' => '修复所有文件夹和文件。', +'do_object_setchecksum' => '校验和', 'do_object_setfilesize' => '设置文件大小', 'do_object_setfiletype' => '', 'do_object_unlink' => '删除文档版本信息', @@ -481,13 +503,13 @@ URL: [url]', 'draft_pending_approval' => '待审核', 'draft_pending_review' => '待校对', 'drag_icon_here' => '拖动图标到这里', -'dropfolderdir_missing' => '', +'dropfolderdir_missing' => '服务器上不存在所选文件夹,请通知管理员。', 'dropfolder_file' => '所选文件夹的文件', 'dropfolder_folder' => '从下拉菜单中选择文件夹', 'dropfolder_metadata' => '', 'dropupload' => '快速上传', 'drop_files_here' => '拖入这里', -'drop_files_here_or_click' => '', +'drop_files_here_or_click' => '拖拽文件至此或点击', 'dump_creation' => '转储数据', 'dump_creation_warning' => '通过此操作,您可以创建一个您数据库的转储文件,之后可以将转储数据保存到您服务器所在的数据文件夹中', 'dump_list' => '存在转储文件', @@ -510,15 +532,15 @@ URL: [url]', 'edit_folder_notify' => '文件夹通知列表', 'edit_folder_props' => '编辑文件夹', 'edit_group' => '编辑组别', -'edit_online' => '', +'edit_online' => '在线编辑', 'edit_online_not_allowed' => '', 'edit_online_warning' => '', -'edit_task' => '', -'edit_transmittal_props' => '', +'edit_task' => '编辑任务', +'edit_transmittal_props' => '编辑传输属性', 'edit_user' => '编辑用户', 'edit_user_details' => '编辑用户详情', 'edit_version' => '编辑版本', -'el_GR' => '希腊人', +'el_GR' => '希腊语', 'email' => 'Email', 'email_error_title' => '未输入 Email 地址', 'email_footer' => '您可以用‘我的账户’选项来改变您的e-mail设置', @@ -526,20 +548,20 @@ URL: [url]', 'email_header' => '这是来自于DMS(文档管理系统)的自动发送消息', 'email_header_html' => '', 'email_not_given' => '请输入有效的 Email 地址', -'empty_attribute_group_list' => '', +'empty_attribute_group_list' => '无属性组', 'empty_folder_list' => '没有文件或子目录', -'empty_list' => '', +'empty_list' => '没有条目', 'empty_notify_list' => '没有条目', 'enable_extension' => '', 'en_GB' => '英语', -'equal_transition_states' => '开始日期和结束日期相同', +'equal_transition_states' => '开始状态和下一个状态相同!', 'error' => '错误', -'error_add_aro' => '', +'error_add_aro' => '添加访问对象出错', 'error_add_permission' => '添加权限时出错', 'error_cleared_cache' => '清理缓存时出错', 'error_document_indexed' => '', -'error_edit_task' => '', -'error_extension_getlist' => '', +'error_edit_task' => '保存任务出错', +'error_extension_getlist' => '从存储库获取扩展列表出错', 'error_importfs' => '从文件系统导入时出错', 'error_no_document_selected' => '请选择文档', 'error_no_folder_selected' => '请选择文件夹', @@ -547,19 +569,19 @@ URL: [url]', 'error_remove_document' => '删除文档时出错', 'error_remove_folder' => '删除文件夹时出错', 'error_remove_permission' => '移除权限时报错', -'error_rm_workflow' => '', -'error_rm_workflow_action' => '', -'error_rm_workflow_state' => '', +'error_rm_workflow' => '删除工作流时报错', +'error_rm_workflow_action' => '删除工作流报错', +'error_rm_workflow_state' => '删除工作流状态时报错', 'error_toogle_permission' => '修改权限时报错', -'error_transfer_document' => '', -'error_trigger_workflow' => '', -'error_update_document' => '', -'error_uploading_reviewer_only' => '', +'error_transfer_document' => '转换文档时报错', +'error_trigger_workflow' => '出发工作流转换时报错', +'error_update_document' => '文档升级时报错', +'error_uploading_reviewer_only' => '创建文档时报错!文档有复核人,但没有审核人。', 'es_ES' => '西班牙语', 'event_details' => '错误详情', 'exclude_items' => '排除项目', 'expired' => '过期', -'expired_at_date' => '过期时间', +'expired_at_date' => '在[datetime]过期', 'expired_docs_mail_subject' => '', 'expired_documents' => '过期文档', 'expires' => '有效限期', @@ -575,11 +597,18 @@ URL: [url]', 'expire_today' => '截止今天', 'expire_tomorrow' => '截止至明天', 'expiry_changed_email' => '到期日子已改变', -'expiry_changed_email_body' => '', -'expiry_changed_email_subject' => '', +'expiry_changed_email_body' => '有效期已修改 +文档: [name] +上级文件夹: [folder_path] +用户: [username] +批注: [comment] +版本批注: [version_comment] +URL: [url]', +'expiry_changed_email_body_html' => '', +'expiry_changed_email_subject' => '[sitename]:[name] - 有效期已修改', 'export' => '导出', 'export_user_list_csv' => '', -'extension_archive' => '', +'extension_archive' => '扩展', 'extension_changelog' => '更新日志', 'extension_is_off_now' => '', 'extension_is_on_now' => '', @@ -587,9 +616,11 @@ URL: [url]', 'extension_manager' => '扩展管理器', 'extension_mgr_error_upload' => '', 'extension_mgr_installed' => '已安装', -'extension_mgr_no_upload' => '上传新扩展名是不可能的,因为extentension目录不可写', +'extension_mgr_no_toggle' => '', +'extension_mgr_no_upload' => '无法上传新扩展,extentension目录不可写', 'extension_mgr_no_zipfile' => '', 'extension_mgr_repository' => '可得到', +'extension_mgr_upload_disabled' => '', 'extension_missing_name' => '', 'extension_toggle_error' => '', 'extension_version_list' => '版本列表', @@ -606,9 +637,10 @@ URL: [url]', 'folder' => '文件夹', 'folders' => '文件夹', 'folders_and_documents_statistic' => '内容概要', -'folders_with_notification' => '', -'folder_attribute_changed_email_body' => '', -'folder_attribute_changed_email_subject' => '', +'folders_with_notification' => '文件夹与通知', +'folder_attribute_changed_email_body' => '属性改变', +'folder_attribute_changed_email_body_html' => '', +'folder_attribute_changed_email_subject' => '[sitename]: [name] -属性更改', 'folder_comment_changed_email' => '注释已更新', 'folder_comment_changed_email_body' => '批注已更新 文件夹: [name] @@ -617,6 +649,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 +658,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 +668,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,12 +677,13 @@ URL: [url]', 历史名称: [old_name] 用户: [username] URL: [url]', +'folder_renamed_email_body_html' => '', 'folder_renamed_email_subject' => '[sitename]: [name] - 文件夹已重命名', 'folder_title' => '文件夹 \'[foldername]\'', 'foot_note' => '', 'force_update' => '强制更新', -'friday' => 'Friday', -'friday_abbr' => '', +'friday' => '周 五', +'friday_abbr' => '周五', 'from' => '从', 'fr_FR' => '法语', 'fullsearch' => '全文搜索', @@ -670,7 +706,7 @@ URL: [url]', 'group_info' => '组信息', 'group_management' => '组管理', 'group_members' => '组成员', -'group_receipt_summary' => '', +'group_receipt_summary' => '组别已收到汇总', 'group_review_removed' => '', 'group_review_summary' => '校对组汇总', 'group_revision_summary' => '', @@ -686,20 +722,21 @@ URL: [url]', 'human_readable' => '可读存档', 'hu_HU' => '匈牙利语', 'id' => '序号', -'identical_version' => '', +'identical_version' => '新版本与当前版本完全相同', +'id_ID' => '印度尼西亚', 'import' => '导入', 'importfs' => '从文件系统中导入', -'import_extension' => '', +'import_extension' => '导入扩展', 'import_fs' => '从文件系统导入', 'import_fs_warning' => '这将只适用于拖动文件夹。该操作将递归导入所有文件夹和文件。文件将立即释放。', 'import_users' => '导入用户', 'import_users_addnew' => '', 'import_users_update' => '', -'include_content' => '', +'include_content' => '包括内容', 'include_documents' => '包含文档', 'include_subdirectories' => '包含子目录', 'indexing_tasks_in_queue' => '队列中的检索任务', -'index_converters' => '', +'index_converters' => '索引转换器', 'index_document_added' => '', 'index_document_unchanged' => '', 'index_document_updated' => '', @@ -709,13 +746,13 @@ URL: [url]', 'index_folder_added' => '', 'index_folder_unchanged' => '', 'index_folder_updated' => '', -'index_no_content' => '', +'index_no_content' => '没有索引内容', 'index_pending' => '待处理', -'index_waiting' => '', +'index_waiting' => '等待', 'individuals' => '个人', 'individuals_in_groups' => '组成员', 'ind_review_removed' => '', -'info_recipients_tab_not_released' => '', +'info_recipients_tab_not_released' => '由于该版本尚未发布因此无法确认收到此文件版本', 'info_rm_user_from_processes_user' => '', 'inherited' => '继承', 'inherits_access_copy_msg' => '复制继承访问权限列表', @@ -731,14 +768,14 @@ URL: [url]', 'invalid_create_date_end' => '无效截止日期,不在创建日期范围内', 'invalid_create_date_start' => '无效开始日期,不在创建日期范围内', 'invalid_doc_id' => '无效文档ID号', -'invalid_dropfolder_folder' => '', -'invalid_expiration_date_end' => '', -'invalid_expiration_date_start' => '', +'invalid_dropfolder_folder' => '删除文件夹中无效文件夹', +'invalid_expiration_date_end' => '过期日期范围的终止日期无效。', +'invalid_expiration_date_start' => '过期日期范围的开始日期无效。', 'invalid_file_id' => '无效文件ID号', 'invalid_folder_id' => '无效文件夹ID号', 'invalid_group_id' => '无效组别ID号', 'invalid_link_id' => '无效链接标示', -'invalid_request_token' => 'Invalid Request Token', +'invalid_request_token' => '请求令牌不合法', 'invalid_review_status' => '无效校对状态', 'invalid_sequence' => '无效序列值', 'invalid_status' => '无效文档状态', @@ -746,9 +783,9 @@ URL: [url]', 'invalid_target_folder' => '无效目标文件夹ID号', 'invalid_user_id' => '无效用户ID号', 'invalid_version' => '无效文档版本', -'in_folder' => '', -'in_revision' => '', -'in_workflow' => '', +'in_folder' => '在文件夹中', +'in_revision' => '修改中', +'in_workflow' => '在工作流中', 'is_disabled' => '禁用帐户', 'is_hidden' => '从用户列表中隐藏', 'it_IT' => '意大利语', @@ -779,7 +816,7 @@ URL: [url]', 'july' => '七 月', 'june' => '六 月', 'keep' => '未变更', -'keep_doc_status' => '', +'keep_doc_status' => '保持文档状态', 'keywords' => '关键字', 'keywords_loading' => '请稍等,直到关键字列表载入', 'keyword_exists' => '关键字已存在', @@ -798,9 +835,9 @@ URL: [url]', 'link_document' => '', 'link_to_version' => '附加到版本', 'list_access_rights' => '列出所有的访问权限', -'list_contains_no_access_docs' => '', +'list_contains_no_access_docs' => '这个列表包含了更多你无法访问的文件也没有显示出来。', 'list_hooks' => '钩子列表', -'list_tasks' => '', +'list_tasks' => '任务列表', 'local_file' => '本地文件', 'locked_by' => '锁定人', 'lock_document' => '锁定', @@ -809,57 +846,57 @@ URL: [url]', 'logfile' => '', 'logfile_loading' => '', 'login' => '登录', -'login_disabled_text' => '', +'login_disabled_text' => '您的帐户已被禁用可能是因为多次登录失败。', 'login_disabled_title' => '账号已禁用', 'login_error_text' => '登录错误.用户名或密码不正确', 'login_error_title' => '登录错误', 'login_not_given' => '缺少用户名', 'login_ok' => '登录成功', -'login_restrictions_apply' => '', +'login_restrictions_apply' => '由于限制而登录失败', 'logout' => '登出', 'log_management' => '日志管理', 'lo_LA' => '老挝', -'malformed_expiration_date' => '', +'malformed_expiration_date' => '日期不正确', 'manager' => '管理员', 'manager_of_group' => '您是当前组的管理员', -'mandatory_approvergroups' => '', -'mandatory_approvergroup_no_access' => '', +'mandatory_approvergroups' => '必须的审批人小组', +'mandatory_approvergroup_no_access' => '必须的审批人组\'[group]\'没有足够的访问权限', 'mandatory_approvers' => '必须的审批者', -'mandatory_approver_no_access' => '', -'mandatory_reviewergroups' => '', -'mandatory_reviewergroup_no_access' => '', +'mandatory_approver_no_access' => '必须的审批者\'[user]\'没有足够的访问权限。', +'mandatory_reviewergroups' => '必须的评审组', +'mandatory_reviewergroup_no_access' => '必须的评审组\'[group]\'没有足够的访问权限。', 'mandatory_reviewers' => '必选校对人', -'mandatory_reviewer_no_access' => '', +'mandatory_reviewer_no_access' => '必须的评审员\'[user]\'没有足够的访问权限', 'march' => '三 月', 'max_upload_size' => '最大上传文件大小', 'may' => '五 月', 'menu_dropfolder' => '删除文件夹', -'menu_upload_from_dropfolder' => '', +'menu_upload_from_dropfolder' => '导入这个文件', 'message' => '', 'mimetype' => 'MIME类型', 'minutes' => '分钟', 'misc' => '其他', 'missing_checksum' => '缺失校验', -'missing_file' => '', +'missing_file' => '文件丢失', 'missing_filesize' => '缺失文件大小', 'missing_func_class_note' => '', 'missing_php_extensions' => '', 'missing_php_functions_and_classes' => '', -'missing_reception' => '', -'missing_request_object' => '', -'missing_transition_user_group' => '', -'monday' => 'Monday', -'monday_abbr' => '', +'missing_reception' => '缺失的对象', +'missing_request_object' => '缺失的请求对象', +'missing_transition_user_group' => '需要转换的用户/组丢失', +'monday' => '周 一', +'monday_abbr' => '周一', 'monthly' => '月', 'month_view' => '月视图', -'more_objects_loading' => '', +'more_objects_loading' => '更多对象载入…', 'move' => '移动', 'move_clipboard' => '移动剪切板', 'move_document' => '移动文档', 'move_folder' => '移动文件夹', 'my_account' => '我的账户', 'my_documents' => '我的文档', -'my_transmittals' => '我的送达函', +'my_transmittals' => '我的传送', 'name' => '名称', 'nav_brand_admin_tools' => '', 'nav_brand_calendar' => '', @@ -868,11 +905,11 @@ URL: [url]', 'nav_brand_view_document' => '', 'nav_brand_view_folder' => '', 'nb_NO' => '挪威语(书面挪威语)', -'needs_correction' => '', -'needs_workflow_action' => '', +'needs_correction' => '需要修正', +'needs_workflow_action' => '请关注这份文件,检查工作流选项卡。', 'network_drive' => '网络驱动器', 'never' => '从不', -'new' => 'New', +'new' => '新增', 'new_attrdef' => '添加属性', 'new_default_keywords' => '添加关键字', 'new_default_keyword_category' => '添加类别', @@ -885,6 +922,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 +931,7 @@ URL: [url]', 备注: [comment] 用户: [username] URL: [url]', +'new_file_email_body_html' => '', 'new_file_email_subject' => '[sitename]: [document] - 新建附件', 'new_folder' => '新建文件夹', 'new_password' => '新密码', @@ -903,6 +942,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 +956,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 +964,7 @@ URL: [url]', 父文件夹: [folder_path] 用户: [username] URL: [url]', +'notify_deleted_email_body_html' => '', 'notify_deleted_email_subject' => '[sitename]: [name] - 从通知列表中移除', 'not_subscribed' => '', 'november' => '十一月', @@ -933,32 +975,35 @@ URL: [url]', 'no_attributes_defined' => '', 'no_attribute_definitions' => '', 'no_backup_dir' => '', -'no_current_version' => '', +'no_current_version' => '你运行的是旧版本的DMS。最新版本为[latestversion]。', 'no_default_keywords' => '无关键字', 'no_docs_checked_out' => '文档未签出', +'no_docs_draft' => '', 'no_docs_expired' => '', 'no_docs_locked' => '无锁定的文档', -'no_docs_needs_correction' => '', -'no_docs_rejected' => '', +'no_docs_needs_correction' => '没有需要更正的文件', +'no_docs_obsolete' => '', +'no_docs_rejected' => '没有被拒绝的文件', 'no_docs_to_approve' => '当前没有需要审核的文档', 'no_docs_to_look_at' => '没有需要关注的文档', -'no_docs_to_receipt' => '', +'no_docs_to_receipt' => '不需要文件收据', 'no_docs_to_review' => '当前没有需要校对的文档', -'no_docs_to_revise' => '', +'no_docs_to_revise' => '目前没有需要修改的文件', 'no_email_or_login' => '登录名和 Email 必须填写', 'no_fulltextindex' => '全文索引不可用', 'no_groups' => '无组别', 'no_group_members' => '该组没有成员', 'no_linked_files' => '无链接文件', 'no_previous_versions' => '无其它版本', -'no_receipt_needed' => '', +'no_receipt_needed' => '目前没有需要收据确认的文件', 'no_review_needed' => '无待校对的文件', -'no_revision_needed' => '', -'no_revision_planed' => '', +'no_revision_needed' => '没有待修订文件', +'no_revision_planed' => '没有修订文件的计划', 'no_update_cause_locked' => '您不能更新此文档,请联系该文档锁定人', 'no_user_image' => '无图片', 'no_version_check' => '检查SeedDMS的新版本失败!这可能是由于在您的php配置中allow_url_fopen设置为0引起的。', 'no_version_modification' => '版本未修改', +'no_workflows' => '', 'no_workflow_available' => '工作流不可用', 'objectcheck' => '文件夹/文件检查', 'object_check_critical' => '重大错误', @@ -968,6 +1013,14 @@ URL: [url]', 'old' => 'Old', 'only_jpg_user_images' => '只用jpg格式的图片才可以作为用户身份图片', 'operation_disallowed' => '', +'orderby' => '', +'orderby_date_asc' => '', +'orderby_date_desc' => '', +'orderby_id_asc' => '', +'orderby_id_desc' => '', +'orderby_name_asc' => '', +'orderby_name_desc' => '', +'orderby_unsorted' => '', 'order_by_sequence_off' => '按顺序排序功能设置已关闭。 如果你需要此参数设定有效,请在设置中打开它。', 'original_filename' => '原始文件名', 'overall_indexing_progress' => '所有索引进程', @@ -980,6 +1033,7 @@ URL: [url]', 当前所有者: [new_owner] 用户: [username] URL: [url]', +'ownership_changed_email_body_html' => '', 'ownership_changed_email_subject' => '[sitename]: [name] - 所有者已更新', 'password' => '密码', 'password_already_used' => '密码已被使用', @@ -988,7 +1042,7 @@ URL: [url]', 'password_expired' => '密码已过期', 'password_expires_in_days' => '密码将在 %s 天后过期。', 'password_forgotten' => '忘记密码', -'password_forgotten_email_body' => '尊敬的 SeedDMS 用户, +'password_forgotten_email_body' => '尊敬的用户, 我们接收到您要求修改密码的请求。 @@ -996,9 +1050,12 @@ 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_invalid_hash' => '', +'password_forgotten_invalid_hash_title' => '', +'password_forgotten_send_hash' => '有关如何进行的说明已发送至用户的电子邮件地址', 'password_forgotten_text' => '填写以下表格,并遵循邮件中的指示找回遗失密码。', 'password_forgotten_title' => '密码已发送', 'password_mismatch_error' => '', @@ -1009,7 +1066,7 @@ URL: [url]', 'password_strength' => '密码强度', 'password_strength_insuffient' => '密码强度不够', 'password_wrong' => '密码错误', -'pdf_converters' => '', +'pdf_converters' => 'PDF转换器', 'pending_approvals' => '待处理的审核', 'pending_receipt' => '待处理的接收', 'pending_reviews' => '待处理的校对', @@ -1018,13 +1075,13 @@ URL: [url]', 'personal_default_keywords' => '用户关键字', 'php_info' => '', 'pl_PL' => '波兰语', -'possible_substitutes' => '', +'possible_substitutes' => '替代', 'preset_expires' => '预设失效时间', 'preview' => '预览', 'preview_converters' => '预览文档', 'preview_images' => '预览图片', 'preview_markdown' => 'Markdown', -'preview_pdf' => '', +'preview_pdf' => '作为PDF预览', 'preview_plain' => 'TEXT', 'previous_state' => 'Previous state', 'previous_versions' => '先前版本', @@ -1035,16 +1092,17 @@ URL: [url]', 'quota_exceeded' => '您的磁盘配额已超过 [bytes]。', 'quota_is_disabled' => '配额的支持', 'quota_warning' => '您的磁盘最大使用量已超过 [bytes]。请删除文档或以前的版本。', -'receipts_accepted' => '', +'receipts_accepted' => '已收到收据', 'receipts_accepted_latest' => '', -'receipts_not_touched' => '', +'receipts_not_touched' => '未获取收据[no_receipts]', 'receipts_not_touched_latest' => '', -'receipts_rejected' => '', +'receipts_rejected' => '[no_receipts]收据已被拒绝', 'receipts_rejected_latest' => '', -'receipts_without_group' => '', -'receipts_without_user' => '', -'receipt_deletion_email_body' => '', -'receipt_deletion_email_subject' => '', +'receipts_without_group' => '收据没有群组', +'receipts_without_user' => '无用户接收', +'receipt_deletion_email_body' => '该用户已从收件人列表中删除', +'receipt_deletion_email_body_html' => '', +'receipt_deletion_email_subject' => '[sitename]: [name] - 收件人被删除', 'receipt_log' => '处理日志', 'receipt_request_email_body' => '接收请求 文档: [name] @@ -1052,18 +1110,23 @@ URL: [url]', 父文件夹: [folder_path] 用户: [username] URL: [url]', -'receipt_request_email_subject' => '', +'receipt_request_email_body_html' => '', +'receipt_request_email_subject' => '[sitename]: [name] - 接收请求', 'receipt_status' => '状态', -'receipt_summary' => '', -'receipt_update_failed' => '', +'receipt_submit_email_body' => '', +'receipt_submit_email_body_html' => '', +'receipt_submit_email_subject' => '', +'receipt_summary' => '收据的汇总', +'receipt_update_failed' => '接收失败了', 'recent_uploads' => '最近上传', -'reception' => '', -'reception_acknowleged' => '', -'reception_noaction' => '', -'reception_rejected' => '', -'recipients' => '收件者', +'reception' => '接待', +'reception_acknowleged' => '确认接收', +'reception_noaction' => '无需任何操作', +'reception_rejected' => '拒绝接收', +'recipients' => '接收者', 'recipient_already_removed' => '', -'redraw' => '', +'record_type' => '', +'redraw' => '重绘', 'refresh' => '刷新', 'rejected' => '拒绝', 'released' => '发布', @@ -1073,10 +1136,11 @@ URL: [url]', 文档: [document] 用户: [username] URL: [url]', +'removed_file_email_body_html' => '', 'removed_file_email_subject' => '[sitename]: [document] - 已删除附件', -'removed_recipient' => '', +'removed_recipient' => '已经从收件人名单中删除了', 'removed_reviewer' => '已经从校对人名单中删除', -'removed_revisor' => '', +'removed_revisor' => '已经从审校名单上删除了', 'removed_workflow_email_body' => '从文档版本中移除工作流 文档: [name] 版本: [version] @@ -1084,43 +1148,49 @@ URL: [url]', 父文件夹: [folder_path] 用户: [username] URL: [url]', +'removed_workflow_email_body_html' => '', 'removed_workflow_email_subject' => '[sitename]: [name] - 已从文档版本中移除工作流', 'removeFolderFromDropFolder' => '导入后删除文件夹', 'remove_approval_log' => '', 'remove_marked_files' => '删除选中的文件', 'remove_review_log' => '', 'repaired' => '已修复', -'repairing_objects' => '', +'repairing_objects' => '修复文件和文件夹', 'replace_content_email_body' => '', +'replace_content_email_body_html' => '', 'replace_content_email_subject' => '', -'request_workflow_action_email_body' => '', -'request_workflow_action_email_subject' => '', +'request_workflow_action_email_body' => '工作流已经达到需要您采取行动的状态。', +'request_workflow_action_email_body_html' => '', +'request_workflow_action_email_subject' => '[sitename]: [name] - 工作流操作要求', 'reset_checkout' => '完成签出', 'restrict_access' => '无访问权限', 'results_page' => '结果页面', -'return_from_subworkflow' => '', -'return_from_subworkflow_email_body' => '', -'return_from_subworkflow_email_subject' => '', -'reverse_links' => '', +'return_from_subworkflow' => '从子工作流返回', +'return_from_subworkflow_email_body' => '从子工作流返回', +'return_from_subworkflow_email_body_html' => '', +'return_from_subworkflow_email_subject' => '[sitename]: [name] - 从子工作流返回', +'reverse_links' => '文档清单中有一个链接到当前文档', 'reviewers' => '校对人', 'reviewer_already_assigned' => '已经被指派为校对人', 'reviewer_already_removed' => '已经从校对队列中删除或者已经提交校对', -'reviews_accepted' => '', +'reviews_accepted' => '[no_reviews]评论已经接受', 'reviews_accepted_latest' => '', -'reviews_not_touched' => '', +'reviews_not_touched' => '[no_reviews]评论不被触及', 'reviews_not_touched_latest' => '', -'reviews_rejected' => '', +'reviews_rejected' => '[no_reviews]评论已经被拒绝', 'reviews_rejected_latest' => '', -'reviews_without_group' => '', -'reviews_without_user' => '', +'reviews_without_group' => '没有组的审查', +'reviews_without_user' => '无需用户评论', 'review_deletion_email' => '校对请求被删除', -'review_deletion_email_body' => '', -'review_deletion_email_subject' => '', +'review_deletion_email_body' => '审查请求删除', +'review_deletion_email_body_html' => '', +'review_deletion_email_subject' => '[sitename]: [name] - 审查请求被删除', 'review_file' => '文件', 'review_group' => '校对组', 'review_log' => '审阅记录', 'review_request_email' => '校对请求', -'review_request_email_body' => '', +'review_request_email_body' => '审查请求', +'review_request_email_body_html' => '', 'review_request_email_subject' => '[sitename]: [name] - 校对请求', 'review_status' => '校对状态', 'review_submit_email' => '提交校对', @@ -1132,22 +1202,23 @@ URL: [url]', 父文件夹: [folder_path] 用户: [username] URL: [url]', -'review_submit_email_subject' => '', +'review_submit_email_body_html' => '', +'review_submit_email_subject' => '[sitename]: [name] -提交评审', 'review_summary' => '校对汇总', 'review_update_failed' => '错误 更新校对状态.更新失败', -'revise_document' => '', -'revise_document_on' => '', +'revise_document' => '修改文档', +'revise_document_on' => '下次修订的文件版本于[date]', 'revision' => '', 'revisions_accepted' => '[no_revisions] 修订已被接受', 'revisions_accepted_latest' => '', -'revisions_not_touched' => '', +'revisions_not_touched' => '[no_revisions] 修改没有成功', 'revisions_not_touched_latest' => '', -'revisions_pending' => '', +'revisions_pending' => '[no_revisions] 修订还没发行', 'revisions_pending_latest' => '', -'revisions_rejected' => '', +'revisions_rejected' => '[no_revisions] 修改被拒绝了', 'revisions_rejected_latest' => '', -'revisions_without_group' => '', -'revisions_without_user' => '', +'revisions_without_group' => '无修订群组', +'revisions_without_user' => '无修改用户', 'revision_date' => '修订日期', 'revision_log' => '修订日志', 'revision_request_email_body' => '修订请求 @@ -1156,21 +1227,24 @@ 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_subject' => '', +'revision_submit_email_body' => '提交修改的标题', +'revision_submit_email_body_html' => '', +'revision_submit_email_subject' => '提交修改的正文', 'revision_summary' => '', 'revisors' => '修订人', 'revisor_already_assigned' => '用户已被分配为修订人', 'revisor_already_removed' => '修订人已经从修订过程中删除,或者已经修改了文档。', 'rewind_workflow' => '回退工作流', -'rewind_workflow_email_body' => '', -'rewind_workflow_email_subject' => '', -'rewind_workflow_warning' => '', +'rewind_workflow_email_body' => '回退的工作流', +'rewind_workflow_email_body_html' => '', +'rewind_workflow_email_subject' => '[sitename]: [name] -回退的工作流', +'rewind_workflow_warning' => '如果您将一个工作流回退到其初始状态那么该文档的整个工作流日志将被删除并且无法恢复。', 'rm_attrdef' => '去掉属性定义', -'rm_attrdefgroup' => '', -'rm_attr_value' => '', +'rm_attrdefgroup' => '删除此属性组', +'rm_attr_value' => '删除值', 'rm_default_keyword_category' => '删除类别', 'rm_document' => '删除文档', 'rm_document_category' => '删除分类', @@ -1181,15 +1255,15 @@ URL: [url]', 'rm_group' => '删除该组', 'rm_role' => '删除角色', 'rm_task' => '', -'rm_transmittal' => '', +'rm_transmittal' => '删除传输', 'rm_transmittalitem' => '移除项目', 'rm_user' => '删除该用户', -'rm_user_from_processes' => '', +'rm_user_from_processes' => '从进程中删除用户', 'rm_version' => '删除该版本', 'rm_workflow' => '删除工作流', 'rm_workflow_action' => '删除工作流节点', 'rm_workflow_state' => '删除工作流状态', -'rm_workflow_warning' => '', +'rm_workflow_warning' => '你要从文件中删除工作流,此操作无法撤销。', 'role' => '角色', 'role_admin' => '管理员', 'role_guest' => '来宾', @@ -1208,16 +1282,17 @@ URL: [url]', 父文件夹: [folder_path] 用户: [username] URL: [url]', +'run_subworkflow_email_body_html' => '', 'run_subworkflow_email_subject' => '[sitename]: [name] - 子工作流已启动', 'ru_RU' => '俄语', -'saturday' => 'Saturday', -'saturday_abbr' => '', +'saturday' => '周 六', +'saturday_abbr' => '周六', 'save' => '保存', -'scheduler_class' => '', -'scheduler_class_description' => '', -'scheduler_class_parameter' => '', -'scheduler_class_tasks' => '', -'scheduler_task_mgr' => '排程表', +'scheduler_class' => '类', +'scheduler_class_description' => '描述', +'scheduler_class_parameter' => '参数', +'scheduler_class_tasks' => '类任务', +'scheduler_task_mgr' => '调度', 'search' => '搜索', 'search_fulltext' => '全文检索', 'search_in' => '搜索于', @@ -1240,8 +1315,8 @@ URL: [url]', 'seeddms_version' => 'SeedDMS 版本', 'selection' => '选择', 'select_attrdef' => '', -'select_attrdefgrp_show' => '', -'select_attribute_value' => '', +'select_attrdefgrp_show' => '选择何时显示', +'select_attribute_value' => '选择属性值', 'select_category' => '选中分类', 'select_group' => '选择用户组', 'select_groups' => '点击选择组', @@ -1250,19 +1325,20 @@ URL: [url]', 'select_grp_ind_notification' => '点击选择组', 'select_grp_ind_recipients' => '点击选择组', 'select_grp_ind_reviewers' => '点击选择组', -'select_grp_ind_revisors' => '', +'select_grp_ind_revisors' => '点击选择组', 'select_grp_notification' => '点击选择被通知组', -'select_grp_recipients' => '', +'select_grp_recipients' => '点击选择收件人组', 'select_grp_reviewers' => '点击选择审核群组', -'select_grp_revisors' => '', +'select_grp_revisors' => '点击选择审查组', 'select_ind_approvers' => '点击选择审批个人', 'select_ind_notification' => '点击选择被通知人', -'select_ind_recipients' => '', +'select_ind_recipients' => '点击选择其他收件人', 'select_ind_reviewers' => '点击选择审核人', -'select_ind_revisors' => '', +'select_ind_revisors' => '点击选择其他审查用户', 'select_mimetype' => '', 'select_one' => '选择一个', 'select_owner' => '', +'select_record_type' => '', 'select_status' => '', 'select_user' => '选择用户', 'select_users' => '点击选择用户', @@ -1285,21 +1361,21 @@ URL: [url]', 'seq_keep' => '当前', 'seq_start' => '首位', 'sessions' => '在线用户', -'setDateFromFile' => '从文件设置日期', -'setDateFromFolder' => '从文件夹中设置日期', +'setDateFromFile' => '导入文件接收日期', +'setDateFromFolder' => '导入文件夹接收日期', 'settings' => '设置', 'settings_activate_module' => '启用模块', 'settings_activate_php_extension' => '启用 PHP 扩展', 'settings_adminIP' => '管理员IP', -'settings_adminIP_desc' => '', +'settings_adminIP_desc' => '如果设置管理员只能通过指定的IP地址登录,请确认网络连接和端口。注意:只适用于本地认证(没有LDAP)', 'settings_Advanced' => '高级设置', 'settings_advancedAcl' => '高级访问控制', -'settings_advancedAcl_desc' => '', -'settings_allowChangeRevAppInProcess' => '', -'settings_allowChangeRevAppInProcess_desc' => '', -'settings_allowReviewerOnly' => '', -'settings_allowReviewerOnly_desc' => '', -'settings_apache_mod_rewrite' => '', +'settings_advancedAcl_desc' => '高级访问控制允许打开/关闭软件的某些模块,不能用于文件和文件夹的访问权限。', +'settings_allowChangeRevAppInProcess' => '流程启动后允许更改审批人/审批人', +'settings_allowChangeRevAppInProcess_desc' => '默认情况下,已提交审核或审核人员和审批人有批准就不能再更改。', +'settings_allowReviewerOnly' => '允许只设置审阅者', +'settings_allowReviewerOnly_desc' => '在传统的工作流程模式中,只允许设置审批人而不允许设置审批人则启用此功能。', +'settings_apache_mod_rewrite' => 'Apache -模块重写', 'settings_apiKey' => '', 'settings_apiKey_desc' => '', 'settings_apiOrigin' => '', @@ -1308,32 +1384,32 @@ URL: [url]', 'settings_apiUserId_desc' => '', 'settings_Authentication' => '授权管理', 'settings_autoLoginUser' => '自动登陆', -'settings_autoLoginUser_desc' => '', +'settings_autoLoginUser_desc' => '如果用户尚未登录则使用此用户id进行访问。这样的访问不会创建一个会话。', 'settings_available_languages' => '可用的语言', 'settings_available_languages_desc' => '只有选中的语言会被显示在语言选>择框内。默认的语言始终可选。', 'settings_backupDir' => '备份目录', -'settings_backupDir_desc' => '', +'settings_backupDir_desc' => '备份保存的目录。如果该目录未设置或无法访问则备份将保存在内容目录中。', 'settings_cacheDir' => 'Cashe 缓存目录', -'settings_cacheDir_desc' => '', +'settings_cacheDir_desc' => '预览图像存储的位置(最好选择一个无法通过网络服务器访问的目录)', 'settings_Calendar' => '日历设置', 'settings_calendarDefaultView' => '日历默认试图', 'settings_calendarDefaultView_desc' => '日历默认试图', 'settings_cannot_disable' => 'ENABLE_INSTALL_TOOL 文件不能删除', 'settings_checkOutDir' => '用于已签出文件的目录', -'settings_checkOutDir_desc' => '', -'settings_cmdTimeout' => '', -'settings_cmdTimeout_desc' => '', +'settings_checkOutDir_desc' => '如果文件被签出则该目录将复制该文件的最新内容。如果你让用户可以访问这个目录他们可以编辑文件并在完成后签入。', +'settings_cmdTimeout' => '外部命令超时', +'settings_cmdTimeout_desc' => '以秒为单位的持续时间决定了外部命令(例如创建全文索引)何时终止。', 'settings_conf_field_not_editable' => '', -'settings_contentDir' => '', -'settings_contentDir_desc' => '', +'settings_contentDir' => '内容目录', +'settings_contentDir_desc' => '上传文件的存放位置(最好选择无法通过网络服务器访问的目录)', 'settings_contentOffsetDir' => '内容偏移目录', 'settings_contentOffsetDir_desc' => '要解决在底层文件系统的限制,一个新的目录结构已制定了内容目录(内容目录)中存在的。这需要从它开始一个基本目录。通常离开这个为默认设置,1048576,也可以是内(内容目录)不存在任何数字或字符串', 'settings_convertToPdf' => '将文档转换为pdf预览', 'settings_convertToPdf_desc' => '如果浏览器不支持原始文件预览,允许转换为pdf文件预览', -'settings_cookieLifetime' => '', -'settings_cookieLifetime_desc' => '', -'settings_coreDir' => 'SeedDMS核心目录', -'settings_coreDir_desc' => '', +'settings_cookieLifetime' => 'cookie生存时间', +'settings_cookieLifetime_desc' => 'cookie的生存时间是几秒。如果设置为0,cookie将在浏览器关闭时被删除。', +'settings_coreDir' => 'DMS核心目录', +'settings_coreDir_desc' => 'DMS_Core的路径(可选)。如果你已经安装了DMS_Core请将此空例如Extra PHP Include-Path', 'settings_createCheckOutDir' => '创建签出目录', 'settings_createCheckOutDir_desc' => '若签出目录不存在,则创建签出目录', 'settings_createdatabase' => '新建数据库表', @@ -1347,42 +1423,44 @@ URL: [url]', 'settings_dbDatabase' => '数据库名称', 'settings_dbDatabase_desc' => '设置连接的数据库', 'settings_dbDriver' => '数据库类型', -'settings_dbDriver_desc' => '', +'settings_dbDriver_desc' => '在安装过程中输入的数据库类型。不要编辑此字段除非由于主机的更改而不得不迁移到其他类型的数据库。adodb使用DB-Driver类型(参见adodb-readme)', 'settings_dbHostname' => '数据库地址', 'settings_dbHostname_desc' => '设置数据库的连接地址', 'settings_dbPass' => '数据库密码', 'settings_dbPass_desc' => '填写连接数据库用户的密码', 'settings_dbUser' => '数据库用户', 'settings_dbUser_desc' => '设置连接数据库的用户', -'settings_dbVersion' => '', +'settings_dbVersion' => '数据库模式太旧', 'settings_defaultAccessDocs' => '新增文档时默认访问控制', 'settings_defaultAccessDocs_desc' => '创建新文档时的默认访问权限', -'settings_defaultDocPosition' => '', -'settings_defaultDocPosition_desc' => '', -'settings_defaultDocPosition_val_end' => '', -'settings_defaultDocPosition_val_start' => '', +'settings_defaultDocPosition' => '文件创建时的位置', +'settings_defaultDocPosition_desc' => '这是创建文档时文件夹内的默认位置。', +'settings_defaultDocPosition_val_end' => '结束', +'settings_defaultDocPosition_val_start' => '开始', +'settings_defaultFolderPosition' => '', +'settings_defaultFolderPosition_desc' => '', 'settings_defaultSearchMethod' => '默认搜索模式', 'settings_defaultSearchMethod_desc' => '在主菜单中启动检索时,设置默认的搜索方式', 'settings_defaultSearchMethod_valdatabase' => '数据库', 'settings_defaultSearchMethod_valfulltext' => '全文', -'settings_delete_install_folder' => '在使用 SeedDMS 前,您必须先删除配置目录(config)下的 ENABLE_INSTALL_TOOL 文件', +'settings_delete_install_folder' => '在使用 DMS 前,您必须先删除配置目录(config)下的 ENABLE_INSTALL_TOOL 文件', 'settings_disableSelfEdit' => '禁用自编辑', 'settings_disableSelfEdit_desc' => '若勾选,则用户不能编辑自己的档案信息', 'settings_disable_install' => '如有可能,则删除 ENABLE_INSTALL_TOOL 文件', 'settings_Display' => '设置显示', -'settings_dropFolderDir' => '', -'settings_dropFolderDir_desc' => '', +'settings_dropFolderDir' => '文件夹目录', +'settings_dropFolderDir_desc' => '这个目录用于将文件放到服务器的文件系统中,然后从那里导入文件而不是通过浏览器上传。该目录必须包含允许以这种方式导入文件的每个用户的子目录。', 'settings_Edition' => '编辑设置', 'settings_editOnlineFileTypes' => '编辑在线文件类型', -'settings_editOnlineFileTypes_desc' => '', +'settings_editOnlineFileTypes_desc' => '以下后缀的文件可以在线编辑(只使用小写字符)', 'settings_enable2FactorAuthentication' => '启用双重认证', 'settings_enable2FactorAuthentication_desc' => '启用/禁用双重认证机制。用户将需要在手机上进行 Google 认证。', -'settings_enableAcknowledgeWorkflow' => '', -'settings_enableAcknowledgeWorkflow_desc' => '', -'settings_enableAdminReceipt' => '', -'settings_enableAdminReceipt_desc' => '', +'settings_enableAcknowledgeWorkflow' => '启用确定的工作流', +'settings_enableAcknowledgeWorkflow_desc' => '启用确定的工作流,并倒序排列', +'settings_enableAdminReceipt' => '允许管理员接收文件', +'settings_enableAdminReceipt_desc' => '如果你想让管理员被列为文档接收人请启用此功能。', 'settings_enableAdminRevApp' => '允许管理员账号进行校对/审核处理', -'settings_enableAdminRevApp_desc' => '', +'settings_enableAdminRevApp_desc' => '如果您希望管理员被列为审阅者/审批者以及用于工作流转换请启用此功能。', 'settings_enableCalendar' => '开启日历', 'settings_enableCalendar_desc' => '启用/禁用日历模块', 'settings_enableCancelCheckout' => '', @@ -1396,15 +1474,21 @@ URL: [url]', 'settings_enableDropFolderList' => '在菜单的拖拽文件夹中启用文件列表', 'settings_enableDropFolderList_desc' => '打开拖拽文件夹中的文件列表。该列表将在主菜单中显示。', 'settings_enableDropUpload' => '允许快速上传', -'settings_enableDropUpload_desc' => '', +'settings_enableDropUpload_desc' => '启用/禁用通过拖放上传文件的查看文件夹页面的拖放区域', 'settings_enableDuplicateDocNames' => '允许重复的文件名', -'settings_enableDuplicateDocNames_desc' => '', +'settings_enableDuplicateDocNames_desc' => '允许在一个文件夹中有重复的文档名称。', 'settings_enableDuplicateSubFolderNames' => '', 'settings_enableDuplicateSubFolderNames_desc' => '', 'settings_enableEmail' => '开启邮件', 'settings_enableEmail_desc' => '开启/关闭邮件自动提醒', -'settings_enableFilterReceipt' => '', -'settings_enableFilterReceipt_desc' => '', +'settings_enableExtensionDownload' => '', +'settings_enableExtensionDownload_desc' => '', +'settings_enableExtensionImport' => '', +'settings_enableExtensionImportFromRepository' => '', +'settings_enableExtensionImportFromRepository_desc' => '', +'settings_enableExtensionImport_desc' => '', +'settings_enableFilterReceipt' => '从接收列表过滤掉所有者、评论员……', +'settings_enableFilterReceipt_desc' => '启用以便在群组成员被选中时从接收列表中过滤掉一些收件人。', 'settings_enableFolderTree' => '开启目录树', 'settings_enableFolderTree_desc' => '在【查看文件夹】页面上,启用/禁用文件夹树', 'settings_enableFullSearch' => '允许全文搜索', @@ -1412,54 +1496,54 @@ URL: [url]', 'settings_enableGuestAutoLogin' => '启用游客账户自动登陆', 'settings_enableGuestAutoLogin_desc' => '若访客登陆并自动登录的选项启用,则访客将自动登录系统。', 'settings_enableGuestLogin' => '启用访客登录', -'settings_enableGuestLogin_desc' => '', +'settings_enableGuestLogin_desc' => '如果你想让任何人以访客身份登录请点击这个选项。注意:访客登录只能在受信任的环境中使用', 'settings_enableHelp' => '开启帮助', -'settings_enableHelp_desc' => '', +'settings_enableHelp_desc' => '启用/禁用菜单中的帮助链接', 'settings_enableLanguageSelector' => '启用多语言支持', -'settings_enableLanguageSelector_desc' => '', +'settings_enableLanguageSelector_desc' => '登录后显示用户界面语言选择', 'settings_enableLargeFileUpload' => '开启大文件上传', -'settings_enableLargeFileUpload_desc' => '', +'settings_enableLargeFileUpload_desc' => '如果设置了文件上传,也可以通过一个名为jumploader的浏览器java小程序来实现文件上传。它还允许一次上传多个文件。打开此选项将关闭网页cookie。', 'settings_enableMenuTasks' => '在菜单中启用任务列表', -'settings_enableMenuTasks_desc' => '', +'settings_enableMenuTasks_desc' => '启用/禁用包含用户所有任务的菜单项。其中包含需要审核、批准的文件等。', 'settings_enableMultiUpload' => '允许一次性上传多个文件', -'settings_enableMultiUpload_desc' => '', +'settings_enableMultiUpload_desc' => '当创建新文档时可以上传多个文件。每个上传的文件都将创建一个新文档。', 'settings_enableNotificationAppRev' => '启用校对/审核通知', 'settings_enableNotificationAppRev_desc' => '勾选后,将向校对人/审核人发送文档新版本通知', -'settings_enableNotificationWorkflow' => '', -'settings_enableNotificationWorkflow_desc' => '', +'settings_enableNotificationWorkflow' => '在下一个工作流转换中向用户发送通知', +'settings_enableNotificationWorkflow_desc' => '如果启用了这个选项,将会通知到需要在下一个工作流转换中操作的用户和组,即使他们没有为文件添加通知。', 'settings_enableOwnerNotification' => '默认通知所有者', -'settings_enableOwnerNotification_desc' => '', -'settings_enableOwnerReceipt' => '', -'settings_enableOwnerReceipt_desc' => '', +'settings_enableOwnerNotification_desc' => '检查是否在添加文档时为文档所有者添加通知', +'settings_enableOwnerReceipt' => '允许文档所有者接收文件', +'settings_enableOwnerReceipt_desc' => '如果需要将文件的所有者列为收件人请启用此功能。', 'settings_enableOwnerRevApp' => '允许所有者进行审查或批准', -'settings_enableOwnerRevApp_desc' => '', +'settings_enableOwnerRevApp_desc' => '如果希望文档的所有者被列为审阅者/审批者,并用于工作流转换,请启用此功能。', 'settings_enablePasswordForgotten' => '启用忘记密码功能', 'settings_enablePasswordForgotten_desc' => '如您想让用户可以通过邮件方式自主设置新密码,请勾选此选项', 'settings_enableReceiptReject' => '', 'settings_enableReceiptReject_desc' => '', 'settings_enableReceiptWorkflow' => '启用文档接收确认通知', -'settings_enableReceiptWorkflow_desc' => '', -'settings_enableRecursiveCount' => '', -'settings_enableRecursiveCount_desc' => '', +'settings_enableReceiptWorkflow_desc' => '启用会打开工作流以确认文档接收。', +'settings_enableRecursiveCount' => '启用递归文档/文件夹计数', +'settings_enableRecursiveCount_desc' => '如果打开文件夹视图中的文档和文件夹的数量,将通过计算所有对象来确定通过递归处理文件夹,并计算用户允许访问的文档和文件夹的数量。', 'settings_enableRemoveRevApp' => '', 'settings_enableRemoveRevApp_desc' => '', 'settings_enableRevisionOneVoteReject' => '', 'settings_enableRevisionOneVoteReject_desc' => '', -'settings_enableRevisionOnVoteReject' => '', -'settings_enableRevisionOnVoteReject_desc' => '', +'settings_enableRevisionOnVoteReject' => '一个审批者拒收', +'settings_enableRevisionOnVoteReject_desc' => '如果有一个校订者拒收该文档则该文档将被退回', 'settings_enableRevisionWorkflow' => '启用文档修订记录', -'settings_enableRevisionWorkflow_desc' => '', -'settings_enableSelfReceipt' => '', -'settings_enableSelfReceipt_desc' => '', -'settings_enableSelfRevApp' => '', -'settings_enableSelfRevApp_desc' => '', +'settings_enableRevisionWorkflow_desc' => '允许能够在给定的一段时间后运行修改文档的工作流。', +'settings_enableSelfReceipt' => '允许接收已登录用户的文件', +'settings_enableSelfReceipt_desc' => '如果希望当前登录的用户被列为文档的收件人请启用此功能。', +'settings_enableSelfRevApp' => '允许审查/批准已登录用户', +'settings_enableSelfRevApp_desc' => '如果希望当前登录的用户被列为审阅者/审批者并用于工作流转换请启用此功能。', 'settings_enableSessionList' => '在菜单中启用在线用户列表', 'settings_enableSessionList_desc' => '在菜单中启用当前已登录用户列表', 'settings_enableThemeSelector' => '主题选择', 'settings_enableThemeSelector_desc' => '在登录页启用/禁用主题选择', 'settings_enableUpdateReceipt' => '允许修改已处理内容', 'settings_enableUpdateReceipt_desc' => '若允许用户修改已提交的处理意见,则启用该选项。', -'settings_enableUpdateRevApp' => '', +'settings_enableUpdateRevApp' => '允许编辑现有的审查/批准', 'settings_enableUpdateRevApp_desc' => '启用该选项,如果已经进行审核/审批的用户可以在当前工作流程步骤尚未完成的情况下更改解除条件。', 'settings_enableUserImage' => '启用用户图片', 'settings_enableUserImage_desc' => '启用用户图片', @@ -1469,18 +1553,19 @@ URL: [url]', 'settings_enableVersionDeletion_desc' => '启用/禁用普通用户删除以前的文档版本。管理员除外(可随时删除旧版本)。', 'settings_enableVersionModification' => '启用版本修改功能', 'settings_enableVersionModification_desc' => '通过用户上传新版本,启用/禁用文档版本修改', -'settings_enableWebdavReplaceDoc' => '', -'settings_enableWebdavReplaceDoc_desc' => '', -'settings_enableXsendfile' => '', -'settings_enableXsendfile_desc' => '', +'settings_enableWebdavReplaceDoc' => '保存时替换文档', +'settings_enableWebdavReplaceDoc_desc' => '如果启用保存新版本的文档将取代旧文档而不是创建新版本。只有当用户、类型和文件名与上一个版本相同时适用。', +'settings_enableXsendfile' => '使用apache xsendfile模块', +'settings_enableXsendfile_desc' => '如果设置了这个选项并且安装了apache xsendfile模块,它将被用于传送图像', 'settings_encryptionKey' => '加密密钥', -'settings_encryptionKey_desc' => '', +'settings_encryptionKey_desc' => '这个字符串用于创建一个唯一的标识符,并作为一个隐藏字段添加到表单中以防止CSRF攻击。', 'settings_error' => '错误', 'settings_expandFolderTree' => '展开文件夹树', 'settings_expandFolderTree_desc' => '展开文件夹树', 'settings_expandFolderTree_val0' => '启动时隐藏树形结构', 'settings_expandFolderTree_val1' => '启动时显示树形结构并展开第一级', 'settings_expandFolderTree_val2' => '启动时显示属性结构并全部展开', +'settings_ExtensionMgr' => '', 'settings_Extensions' => '设置扩展', 'settings_extraPath' => '额外的PHP的include路径', 'settings_extraPath_desc' => '附加软件的路径。这是包含目录,例如在ADODB目录或额外的PEAR包', @@ -1493,57 +1578,59 @@ URL: [url]', 'settings_fullSearchEngine_vallucene' => 'Zend Lucene', 'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', 'settings_guestID' => '访客名称', -'settings_guestID_desc' => '', +'settings_guestID_desc' => '来宾用户登录时使用的ID(基本不需要更改)', 'settings_guestid_is_admin' => '', 'settings_guestid_is_disabled' => '', -'settings_httpRoot' => '', -'settings_httpRoot_desc' => '', -'settings_incItemsPerPage' => '', -'settings_incItemsPerPage_desc' => '', +'settings_httpRoot' => 'Http根节点', +'settings_httpRoot_desc' => 'URL中的相对路径在域名之后。不要包含http://前缀或web主机名。例如如果完整的URL是http://www.example.com/dms/设置\'/dms/\'。如果URL是http://www.example.com/设置\'/ "', +'settings_incItemsPerPage' => '在页面末尾载入的条目数', +'settings_incItemsPerPage_desc' => '如果文件夹和文档的数量有限当滚动到视图文件夹页面的底部时,它将设置额外加载的对象的数量。将此设置为0将加载与最初加载的相同数量的对象。', 'settings_initialDocumentStatus' => '初始化文档状态', -'settings_initialDocumentStatus_desc' => '', +'settings_initialDocumentStatus_desc' => '此状态将在添加文档时设置', 'settings_initialDocumentStatus_draft' => '起草中', 'settings_initialDocumentStatus_released' => '已发布', 'settings_inlineEditing' => '', 'settings_inlineEditing_desc' => '', 'settings_installADOdb' => '安装 ADOdb', -'settings_install_disabled' => 'ENABLE_INSTALL_TOOL 文件已删除。祝贺您,您现在可以登陆并开始使用 SeedDMS 系统了!', -'settings_install_pear_package_log' => '', -'settings_install_pear_package_webdav' => '', +'settings_install_disabled' => 'ENABLE_INSTALL_TOOL 文件已删除。祝贺您,您现在可以登陆并开始使用 DMS 系统了!', +'settings_install_pear_package_log' => '安装Pear包 \'Log\'', +'settings_install_pear_package_webdav' => '如果你打算使用webdav接口,安装Pear包\'HTTP_WebDAV_Server\'', 'settings_install_success' => '安装已完成!', -'settings_install_welcome_text' => '在开始安装 SeedDMS 之前,请确保您已经在配置目录中创建了文件“ENABLE_INSTALL_TOOL”,否则将不能安装。在 Unix 系统上,这可以很容易地通过命令 “touch conf / ENABLE_INSTALL_TOOL” 完成。完成安装后,请务必删除该文件。

SeedDMS 的要求非常低。您需要安装 mysql 数据库或 sqlite 支持,并启用支持 php 的 Web 服务器。Pear Package Log 也必须安装。对于 lucene 全文搜索,您还需要安装在光盘上的 Zend 框架,可以通过 php 找到它。对于 WebDAV 服务器,您还需要 HTTP_WebDAV_Server。您可以在安装过程中设置路径。

如果您希望在开始安装之前创建数据库,那么只需使用自己喜爱的工具手动创建数据库,可以选择创建具有数据库访问权限的数据库用户并在配置目录中导入数据库转储之一。安装脚本也可以为您做到这一点,但是它需要数据库访问权限才能创建数据库。', -'settings_install_welcome_title' => '欢迎使用 SeedDMS 安装向导!', -'settings_install_zendframework' => '', +'settings_install_welcome_text' => '在开始安装 DMS 之前,请确保您已经在配置目录中创建了文件“ENABLE_INSTALL_TOOL”,否则将不能安装。在 Unix 系统上,这可以很容易地通过命令 “touch conf / ENABLE_INSTALL_TOOL” 完成。完成安装后,请务必删除该文件。

DMS 的要求非常低。您需要安装 mysql 数据库或 sqlite 支持,并启用支持 php 的 Web 服务器。Pear Package Log 也必须安装。对于 lucene 全文搜索,您还需要安装在光盘上的 Zend 框架,可以通过 php 找到它。对于 WebDAV 服务器,您还需要 HTTP_WebDAV_Server。您可以在安装过程中设置路径。

如果您希望在开始安装之前创建数据库,那么只需使用自己喜爱的工具手动创建数据库,可以选择创建具有数据库访问权限的数据库用户并在配置目录中导入数据库转储之一。安装脚本也可以为您做到这一点,但是它需要数据库访问权限才能创建数据库。', +'settings_install_welcome_title' => '欢迎使用 DMS 安装向导!', +'settings_install_zendframework' => '如果你想使用基于Zend的全文搜索引擎请安装Zend Framework。否则请忽略此消息并继续安装。', 'settings_invalid_guestid' => '', 'settings_language' => '语言设置', 'settings_language_desc' => '默认语言(“语言”文件夹的一个子文件夹的名字', 'settings_libraryFolder' => '库文件夹', -'settings_libraryFolder_desc' => '', +'settings_libraryFolder_desc' => '可复制文件以创建新文件的文件夹', 'settings_logFileEnable' => '开启日历文件', 'settings_logFileEnable_desc' => '启用 / 禁用日志文件', -'settings_logFileRotation' => '', -'settings_logFileRotation_desc' => '', +'settings_logFileRotation' => '设置日志文件时间段', +'settings_logFileRotation_desc' => '日志文件时间段切换', 'settings_loginFailure' => '登录失败', 'settings_loginFailure_desc' => '在 n 次登陆失败后,锁定账号', -'settings_luceneClassDir' => 'Lucene的SeedDMS目录', -'settings_luceneClassDir_desc' => '', +'settings_luceneClassDir' => 'Lucene的DMS目录', +'settings_luceneClassDir_desc' => '路径到DMS_Lucene(可选)。如果你已经在PHP可以找到的地方安装了DMS_Lucene请将此空例如Extra PHP Include-Path', 'settings_luceneDir' => '全文索引目录', 'settings_luceneDir_desc' => 'Lucene 索引路径', 'settings_maxDirID' => '最大目录编号', 'settings_maxDirID_desc' => '每个父目录的子目录的最大数目。默认值:0。', 'settings_maxExecutionTime' => '最大执行时间(秒)', 'settings_maxExecutionTime_desc' => '此设置最长时间,以秒为脚本允许运行之前它是由解析终止', -'settings_maxItemsPerPage' => '', -'settings_maxItemsPerPage_desc' => '', -'settings_maxRecursiveCount' => '', -'settings_maxRecursiveCount_desc' => '', -'settings_maxSizeForFullText' => '', -'settings_maxSizeForFullText_desc' => '', +'settings_maxItemsPerPage' => '每页的最大条目数', +'settings_maxItemsPerPage_desc' => '限制在视图文件夹页上显示的文件夹和文档的数量。当滚动到页面末尾时将加载更多的对象。设置为0总是显示所有对象。', +'settings_maxRecursiveCount' => '递归文档/文件夹计数的最大数量', +'settings_maxRecursiveCount_desc' => '这是递归计算对象时要检查访问权限的文档或文件夹的最大数量。如果超过这个数字将估计文件夹视图中的文档和文件夹的数量。', +'settings_maxSizeForFullText' => '即时索引的最大文件大小', +'settings_maxSizeForFullText_desc' => '所有小于配置大小的新文档版本在上传后将被完全索引。在其他所有情况下只有元数据将被索引。', 'settings_maxUploadSize' => '上传文件尺寸上限', -'settings_maxUploadSize_desc' => '', +'settings_maxUploadSize_desc' => '这是上传文件的最大尺寸。它将对文档版本和附件生效。', 'settings_more_settings' => '更多设置。默认登陆账户: admin / admin', 'settings_noDocumentFormFields' => '', 'settings_noDocumentFormFields_desc' => '', +'settings_noFolderFormFields' => '', +'settings_noFolderFormFields_desc' => '', 'settings_notfound' => '未找到', 'settings_Notification' => '通知设置', 'settings_notwritable' => '设置_不可写', @@ -1551,34 +1638,34 @@ URL: [url]', 'settings_onePageMode' => '', 'settings_onePageMode_desc' => '', 'settings_overrideMimeType' => '覆盖Mime Type', -'settings_overrideMimeType_desc' => '', +'settings_overrideMimeType_desc' => '如果上传了文件请覆盖浏览器提供的MimeType。新的MimeType是由DMS自己决定的。', 'settings_overrideTheme' => '', 'settings_overrideTheme_desc' => '', -'settings_partitionSize' => '', -'settings_partitionSize_desc' => '', +'settings_partitionSize' => '部分文件大小', +'settings_partitionSize_desc' => '由jumploader上传的部分文件的大小。不要设定比服务器设置更大的值。', 'settings_passwordExpiration' => '密码过期', -'settings_passwordExpiration_desc' => '', +'settings_passwordExpiration_desc' => '密码过期和必须重置的天数。设置为 0 则密码长期有效', 'settings_passwordHistory' => '密码历史', -'settings_passwordHistory_desc' => '', +'settings_passwordHistory_desc' => '一个用户在重复使用密码之前必须使用的密码数量。0关闭密码历史记录', 'settings_passwordStrength' => '密码最小强度', -'settings_passwordStrengthAlgorithm' => '', -'settings_passwordStrengthAlgorithm_desc' => '', +'settings_passwordStrengthAlgorithm' => '密码强度算法', +'settings_passwordStrengthAlgorithm_desc' => '用于计算密码强度的算法。\'simple\'算法只检查总共至少8个字符(一个小写字母,一个大写字母,一个数字和一个特殊字符)。如果满足这些条件返回的值为100否则为0', 'settings_passwordStrengthAlgorithm_valadvanced' => '高级', 'settings_passwordStrengthAlgorithm_valsimple' => '简单', -'settings_passwordStrength_desc' => '', -'settings_pear_log' => '', -'settings_pear_webdav' => '', +'settings_passwordStrength_desc' => '最小密码强度是一个从0到100的整数。设置为0将关闭对最小密码强度的检查。', +'settings_pear_log' => 'Pear package: Log', +'settings_pear_webdav' => 'Pear package: \'HTTP_WebDAV_Server\'', 'settings_perms' => '权限', -'settings_php_dbDriver' => '', -'settings_php_gd2' => '', -'settings_php_mbstring' => '', +'settings_php_dbDriver' => 'PHP扩展:php_\'see current value\'', +'settings_php_gd2' => 'PHP扩展名:php_gd2', +'settings_php_mbstring' => 'PHP扩展:php_mbstring', 'settings_php_version' => 'PHP 版本', -'settings_presetExpirationDate' => '', -'settings_presetExpirationDate_desc' => '', +'settings_presetExpirationDate' => '预定截止日期', +'settings_presetExpirationDate_desc' => '所有新上传的文档都会将过期日期设置为这个值。输入的日期可以指定为PHP的strtotime()函数理解的日期例如+5 周.', 'settings_previewWidthDetail' => '缩略图宽度(详情页中)', 'settings_previewWidthDetail_desc' => '详情页面中缩略图的宽度', -'settings_previewWidthDropFolderList' => '预览图像的宽度', -'settings_previewWidthDropFolderList_desc' => '', +'settings_previewWidthDropFolderList' => '文件夹列表中预览图像的宽度', +'settings_previewWidthDropFolderList_desc' => '详情页面中预览图像的宽度', 'settings_previewWidthList' => '缩略图宽度(列表中)', 'settings_previewWidthList_desc' => '列表中缩略图的宽度', 'settings_previewWidthMenuList' => '预览图像的宽度(菜单列表)', @@ -1592,30 +1679,30 @@ URL: [url]', 'settings_proxyUser' => '', 'settings_proxyUser_desc' => '', 'settings_quota' => '设置磁盘配额', -'settings_quota_desc' => '', -'settings_removeFromDropFolder' => '', -'settings_removeFromDropFolder_desc' => '', -'settings_repositoryUrl' => '', -'settings_repositoryUrl_desc' => '', +'settings_quota_desc' => '用户可以在磁盘上使用的最大字节数。对于无限的磁盘空间将此设置为0。这个值可以被每个用户在他的配置文件中重新设置。', +'settings_removeFromDropFolder' => '上传成功后从drop文件夹中删除文件', +'settings_removeFromDropFolder_desc' => '如果上传成功后要删除从drop文件夹中取下的文件请启用此功能。', +'settings_repositoryUrl' => '存储库URL', +'settings_repositoryUrl_desc' => '扩展库的URL', 'settings_restricted' => '禁止访问', -'settings_restricted_desc' => '', +'settings_restricted_desc' => '只有用户在本地数据库中有条目时才允许用户登录(不管LDAP身份验证是否成功)', 'settings_rootDir' => '根目录', -'settings_rootDir_desc' => '', +'settings_rootDir_desc' => '通往DMS所在的路径', 'settings_rootFolderID' => '根文件夹名称', -'settings_rootFolderID_desc' => '', +'settings_rootFolderID_desc' => '根文件夹的ID(基本不需要更改)', 'settings_SaveError' => '配置文件报错时发生错误', 'settings_Server' => '服务设置', 'settings_showFullPreview' => '显示完整的文档', 'settings_showFullPreview_desc' => '启用/禁用详细页面完整预览, 如果浏览器>支持的话', 'settings_showMissingTranslations' => '显示丢失的翻译', -'settings_showMissingTranslations_desc' => '', -'settings_showSingleSearchHit' => '', -'settings_showSingleSearchHit_desc' => '', +'settings_showMissingTranslations_desc' => '在这一页的底部列出所有缺少的翻译。登录的用户将能够将建议的缺失翻译保存在一个csv文件提交。如果是在生产环境中请不要打开此函数!', +'settings_showSingleSearchHit' => '直接跳转到一个搜索结果', +'settings_showSingleSearchHit_desc' => '如果搜索结果只有一项,那么它就会立即显示出来而不是结果列表。', 'settings_Site' => '站点设置', 'settings_siteDefaultPage' => '网站的默认页', 'settings_siteDefaultPage_desc' => '登录时的默认页。若为空则设置为 out/out.ViewFolder.php', 'settings_siteName' => '站点名称', -'settings_siteName_desc' => '用于页面标题的站点名称,默认为SeedDMS', +'settings_siteName_desc' => '用于页面标题的站点名称,默认为DMS', 'settings_SMTP' => 'SMTP 服务器设定', 'settings_smtpPassword' => 'SMTP服务器密码', 'settings_smtpPassword_desc' => 'SMTP服务器密码', @@ -1623,23 +1710,23 @@ URL: [url]', 'settings_smtpPort_desc' => 'SMTP 服务器端口,默认25', 'settings_smtpSendFrom' => '发送自', 'settings_smtpSendFrom_desc' => '发送自', -'settings_smtpSendTestMail' => '', -'settings_smtpSendTestMail_desc' => '', +'settings_smtpSendTestMail' => '发送测试邮件', +'settings_smtpSendTestMail_desc' => '发送一个测试邮件检查当前的电子邮件配置', 'settings_smtpServer' => 'SMTP 服务器名称', 'settings_smtpServer_desc' => 'SMTP 服务器名称', 'settings_smtpUser' => 'SMTP服务器用户', 'settings_smtpUser_desc' => 'SMTP服务器用户', 'settings_sortFoldersDefault' => '默认排序方式', -'settings_sortFoldersDefault_desc' => '', +'settings_sortFoldersDefault_desc' => '这设置了文件夹视图中的文件夹和文档的排序方法。', 'settings_sortFoldersDefault_val_name' => '通过名字', -'settings_sortFoldersDefault_val_sequence' => '', +'settings_sortFoldersDefault_val_sequence' => '通过序列', 'settings_sortFoldersDefault_val_unsorted' => '未分类', 'settings_sortUsersInList' => '对列表中的用户排序', -'settings_sortUsersInList_desc' => '', +'settings_sortUsersInList_desc' => '如果用户在选择菜单中按登录名或全名排序则设置', 'settings_sortUsersInList_val_fullname' => '按用户全称排序', 'settings_sortUsersInList_val_login' => '按用户登录名排序', -'settings_stagingDir' => '', -'settings_stagingDir_desc' => '', +'settings_stagingDir' => '部分上传目录', +'settings_stagingDir_desc' => 'jumploader文件上传的部分将被放回同一目录', 'settings_start_install' => '开始安装', 'settings_stopWordsFile' => '停止词文件所在路径', 'settings_stopWordsFile_desc' => '如果启用全文搜索,包含停止词的文件则不会被索引', @@ -1647,46 +1734,46 @@ URL: [url]', 'settings_strictFormCheck_desc' => '严格表格检查。如果此项为是,将检查所有表格中字段的值。如果设置为否,内容和关键字段检查将成为可选项。同时提交评论或覆盖文件时,始终要求注释', 'settings_suggestionvalue' => '推荐值', 'settings_System' => '系统设置', -'settings_tasksInMenu' => '', -'settings_tasksInMenu_approval' => '', +'settings_tasksInMenu' => '选择任务', +'settings_tasksInMenu_approval' => '审批', 'settings_tasksInMenu_checkedout' => '', -'settings_tasksInMenu_desc' => '', -'settings_tasksInMenu_needscorrection' => '', -'settings_tasksInMenu_receipt' => '', +'settings_tasksInMenu_desc' => '选择那些要计算的任务。如果没有选中那么所有的任务将被计算。', +'settings_tasksInMenu_needscorrection' => '需要修正', +'settings_tasksInMenu_receipt' => '收据', 'settings_tasksInMenu_rejected' => '', -'settings_tasksInMenu_review' => '', -'settings_tasksInMenu_revision' => '', -'settings_tasksInMenu_workflow' => '', +'settings_tasksInMenu_review' => '评论', +'settings_tasksInMenu_revision' => '修改', +'settings_tasksInMenu_workflow' => '工作流', 'settings_theme' => '主题设置', 'settings_theme_desc' => '默认风格(“风格”文件夹的一个子文件夹的名字', -'settings_titleDisplayHack' => '', -'settings_titleDisplayHack_desc' => '', +'settings_titleDisplayHack' => '标题显示', +'settings_titleDisplayHack_desc' => '解决超过两行的页面标题。', 'settings_undelUserIds' => '不可删除的用户名', -'settings_undelUserIds_desc' => '', -'settings_updateDatabase' => '', +'settings_undelUserIds_desc' => '以逗号分隔的用户id列表不能删除', +'settings_updateDatabase' => '在数据库上运行架构更新脚本', 'settings_updateNotifyTime' => '更新时间通知', 'settings_updateNotifyTime_desc' => '通知用户有关文档的变化,采取了最后的内地方“更新通知时间”秒', -'settings_upgrade_php' => '', +'settings_upgrade_php' => '将PHP至少升级到5.2.0版本', 'settings_useHomeAsRootFolder' => '', 'settings_useHomeAsRootFolder_desc' => '', 'settings_versioningFileName' => '文件名版本', -'settings_versioningFileName_desc' => '', -'settings_versiontolow' => '', +'settings_versioningFileName_desc' => '备份工具创建版本信息文件的名称', +'settings_versiontolow' => '版本低', 'settings_viewOnlineFileTypes' => '查看在线文件属性', -'settings_viewOnlineFileTypes_desc' => '', -'settings_webdav' => '', +'settings_viewOnlineFileTypes_desc' => '具有下列后缀的文件可以在线查看(只使用小写字符)', +'settings_webdav' => 'WebDAV 协议', 'settings_workflowMode' => '工作流模式', -'settings_workflowMode_desc' => '', +'settings_workflowMode_desc' => '高级工作流允许为文档版本指定自己的发布工作流。', 'settings_workflowMode_valadvanced' => '先进...', 'settings_workflowMode_valnone' => '', 'settings_workflowMode_valtraditional' => '传统', -'settings_workflowMode_valtraditional_only_approval' => '', -'settings_zendframework' => '', +'settings_workflowMode_valtraditional_only_approval' => '传统的(没有评论)', +'settings_zendframework' => 'Zend框架', 'set_expiry' => '设置截止日期', 'set_owner' => '设置所有者', 'set_owner_error' => '错误 设置所有者', 'set_password' => '设定密码', -'set_workflow' => '', +'set_workflow' => '设置工作流', 'show_extension_changelog' => '显示更新记录', 'show_extension_version_list' => '显示版本列表', 'signed_in_as' => '登录为', @@ -1701,20 +1788,22 @@ URL: [url]', 'sort_by_sequence' => '顺序排列', 'space_used_on_data_folder' => '数据文件夹使用空间', 'splash_added_to_clipboard' => '已复制', -'splash_add_access' => '', +'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' => '', -'splash_add_to_transmittal' => '', -'splash_add_transmittal' => '', +'splash_add_to_transmittal' => '增加传输', +'splash_add_transmittal' => '添加传输', 'splash_add_user' => '用户已添加', 'splash_cancel_checkout' => '', 'splash_cleared_cache' => 'Cache 缓存已清理', 'splash_cleared_clipboard' => '剪贴板已清空', -'splash_delete_access' => '', +'splash_delete_access' => '访问权限已删除', 'splash_document_added' => '文档已添加', 'splash_document_checkedout' => '文档已签出', 'splash_document_deleted' => '', @@ -1723,97 +1812,102 @@ URL: [url]', 'splash_document_locked' => '文档已被锁定', 'splash_document_name_changed' => '', 'splash_document_unlocked' => '已解锁的文档', -'splash_edit_access' => '', +'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_task' => '任务保存', 'splash_edit_transmittal' => '', 'splash_edit_user' => '用户信息已保存', -'splash_error_add_to_transmittal' => '', +'splash_error_add_to_transmittal' => '在传送中添加文件时出错', 'splash_error_rm_download_link' => '移除下载链接时报错', 'splash_error_saving_file' => '', 'splash_error_send_download_link' => '发送下载链接时报错', 'splash_expiration_date_cleared' => '', 'splash_expiration_date_set' => '', -'splash_extension_getlist' => '', -'splash_extension_import' => '', -'splash_extension_refresh' => '', -'splash_extension_upload' => '', +'splash_extension_getlist' => '更新的扩展库列表', +'splash_extension_import' => '扩展安装完成', +'splash_extension_refresh' => '刷新的扩展列表', +'splash_extension_upload' => '扩展安装', 'splash_folder_deleted' => '', 'splash_folder_edited' => '更新文件夹', 'splash_importfs' => '已导入文档 [docs] 和文件夹 [folders]', -'splash_inherit_access' => '', +'splash_inherit_access' => '使用权将被继承', 'splash_invalid_folder_id' => '非法的文件夹 ID', 'splash_invalid_searchterm' => '无效的搜索项', +'splash_invalid_search_service' => '', 'splash_link_document' => '', -'splash_moved_clipboard' => '', +'splash_moved_clipboard' => '剪贴板移到当前文件夹', 'splash_move_document' => '文档已迁移', 'splash_move_folder' => '文件夹已迁移', -'splash_notinherit_access' => '', -'splash_receipt_update_success' => '', +'splash_notinherit_access' => '访问权不再继承', +'splash_receipt_update_success' => '接收人添加成功', 'splash_removed_from_clipboard' => '已从剪切板删除', 'splash_rm_attribute' => '属性已移除', -'splash_rm_attr_value' => '', +'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' => '', +'splash_rm_transmittal' => '传送删除', 'splash_rm_user' => '用户信息已删除', -'splash_rm_user_processes' => '', -'splash_rm_workflow' => '', -'splash_rm_workflow_action' => '', -'splash_rm_workflow_state' => '', +'splash_rm_user_processes' => '用户已从所有进程中删除', +'splash_rm_workflow' => '工作流删除', +'splash_rm_workflow_action' => '工作流操作删除', +'splash_rm_workflow_state' => '工作流状态删除', 'splash_saved_file' => '版本已保存', 'splash_save_user_data' => '用户数据已保存', 'splash_send_download_link' => '下载链接已通过邮件发送。', 'splash_send_login_data' => '登录数据已发送', -'splash_setowner' => '', +'splash_setowner' => '设置新所有者', 'splash_settings_saved' => '设置已保存', -'splash_set_default_access' => '', -'splash_substituted_user' => '', -'splash_switched_back_user' => '', -'splash_toogle_group_manager' => '', +'splash_set_default_access' => '默认访问权限设置', +'splash_substituted_user' => '切换用户', +'splash_switched_back_user' => '"切换回原来的用户"', +'splash_toogle_group_manager' => '组管理员设置不正确', 'splash_transfer_content' => '', -'splash_transfer_document' => '', -'splash_transfer_objects' => '', -'splash_trigger_workflow' => '', -'state_and_next_state' => '', +'splash_transfer_document' => '文档转移', +'splash_transfer_objects' => '对象转移', +'splash_trigger_workflow' => '触发工作流过渡', +'state_and_next_state' => '状态/下一个状态', 'statistic' => '统计', 'status' => '状态', 'status_approval_rejected' => '拟拒绝', 'status_approved' => '批准', 'status_approver_removed' => '从审核队列中删除', 'status_change' => '', -'status_needs_correction' => '', +'status_needs_correction' => '需要修正', 'status_not_approved' => '未批准', -'status_not_receipted' => '尚未接收', +'status_not_receipted' => '没有签收', 'status_not_reviewed' => '未校对', -'status_not_revised' => '', -'status_receipted' => '已接收', -'status_receipt_rejected' => '', -'status_recipient_removed' => '', +'status_not_revised' => '没有修改', +'status_receipted' => '签收', +'status_receipt_rejected' => '拒绝', +'status_recipient_removed' => '收件人从名单上删除', 'status_reviewed' => '通过', 'status_reviewer_rejected' => '拟拒绝', 'status_reviewer_removed' => '从校对队列中删除', -'status_revised' => '', -'status_revision_rejected' => '', -'status_revision_sleeping' => '', -'status_revisor_removed' => '', +'status_revised' => '修改', +'status_revision_rejected' => '拒绝', +'status_revision_sleeping' => '等待', +'status_revisor_removed' => '从名单中删除校订人', 'status_unknown' => '未知', 'storage_size' => '存储大小', 'subfolder_duplicate_name' => '重复的文件夹', -'submit_2_fact_auth' => '', +'submit_2_fact_auth' => '保存秘钥', 'submit_approval' => '提交审核', 'submit_login' => '登录', 'submit_password' => '设置新密码', 'submit_password_forgotten' => '开始处理', -'submit_receipt' => '', +'submit_receipt' => '提交收据', 'submit_review' => '提交校对', 'submit_revision' => '添加修订', 'submit_userinfo' => '提交信息', @@ -1822,22 +1916,22 @@ URL: [url]', 'subsribe_timelinefeed' => '订阅时间线更新', 'substitute_to_user' => '切换到 \'[username]\' 账户', 'substitute_user' => '代理人', -'success_add_aro' => '', +'success_add_aro' => '添加访问请求对象', 'success_add_permission' => '权限已添加', 'success_remove_permission' => '权限已移除', 'success_toogle_permission' => '权限已更新', -'sunday' => 'Sunday', -'sunday_abbr' => '', +'sunday' => '周 日', +'sunday_abbr' => '周日', 'sv_SE' => '瑞典语', 'switched_to' => '登录为', -'takeOverAttributeValue' => '', +'takeOverAttributeValue' => '从上一个版本获取属性值', 'takeOverGrpApprover' => '继承上一版本的审核人', 'takeOverGrpApprovers' => '', 'takeOverGrpReviewer' => '继承上一版本的校对人', 'takeOverGrpReviewers' => '', -'takeOverIndApprover' => '', +'takeOverIndApprover' => '从上一个版本中获取审批用户', 'takeOverIndApprovers' => '', -'takeOverIndReviewer' => '', +'takeOverIndReviewer' => '从上一个版本获取审稿用户', 'takeOverIndReviewers' => '', 'target_equals_source_folder' => '', 'tasks' => '任务', @@ -1845,30 +1939,30 @@ URL: [url]', 'task_core_expireddocs_email' => '', 'task_core_expireddocs_peruser' => '', 'task_core_indexingdocs_recreate' => '', -'task_description' => '', -'task_disabled' => '', -'task_frequency' => '', +'task_description' => '描述', +'task_disabled' => '禁用', +'task_frequency' => '频率', 'task_frequency_placeholder' => '', -'task_last_run' => '', -'task_name' => '', -'task_next_run' => '', -'temp_jscode' => '', -'testmail_body' => '', +'task_last_run' => '上一次运行', +'task_name' => '名称', +'task_next_run' => '下一个运行', +'temp_jscode' => '临时JavaScript代码', +'testmail_body' => '此邮件仅用于测试DMS的邮件配置', 'testmail_subject' => '测试邮件配置', 'theme' => '主题', -'thursday' => 'Thursday', -'thursday_abbr' => '', +'thursday' => '周 四', +'thursday_abbr' => '周四', 'timeline' => '时间轴', 'timeline_add_file' => '新附件', 'timeline_add_version' => '新建版本 [version]', 'timeline_full_add_file' => '[document]
新建附件', 'timeline_full_add_version' => '[document]
新建版本 [version]', -'timeline_full_scheduled_revision' => '', +'timeline_full_scheduled_revision' => '[document]
[version]版本的修订版', 'timeline_full_status_change' => '[document]
版本[version]: [status]', -'timeline_scheduled_revision' => '', +'timeline_scheduled_revision' => '修订版本[version]', 'timeline_selected_item' => '已选择文档', 'timeline_skip_add_file' => '添加附件', -'timeline_skip_scheduled_revision' => '', +'timeline_skip_scheduled_revision' => '修订计划', 'timeline_skip_status_change_-1' => '拒绝', 'timeline_skip_status_change_-2' => '', 'timeline_skip_status_change_-3' => '过期', @@ -1876,7 +1970,7 @@ URL: [url]', 'timeline_skip_status_change_1' => '待批准', 'timeline_skip_status_change_2' => '发布', 'timeline_skip_status_change_3' => '在工作咯流中', -'timeline_skip_status_change_4' => '', +'timeline_skip_status_change_4' => '修改中', 'timeline_skip_status_change_5' => '起草中', 'timeline_status_change' => '版本 [版本]: [状态]', 'to' => '到', @@ -1889,24 +1983,25 @@ URL: [url]', 'transfer_no_read_access' => '用户没有该文件夹的读权限', 'transfer_no_users' => '', 'transfer_no_write_access' => '当前用户没有文件夹写入权限', -'transfer_objects' => '', -'transfer_objects_to_user' => '', +'transfer_objects' => '传输对象', +'transfer_objects_to_user' => '新的所有者', 'transfer_process_to_user' => '', 'transfer_to_user' => '共享给其他用户', -'transition_triggered_email' => '', -'transition_triggered_email_body' => '', -'transition_triggered_email_subject' => '', -'transmittal' => '', -'transmittalitem_removed' => '', -'transmittalitem_updated' => '', +'transition_triggered_email' => '工作流转换触发', +'transition_triggered_email_body' => '工作流转换触发', +'transition_triggered_email_body_html' => '', +'transition_triggered_email_subject' => '[sitename]: [name] -工作流转换触发', +'transmittal' => '传输', +'transmittalitem_removed' => '传送条目删除', +'transmittalitem_updated' => '文件更新至最新版本', 'transmittal_comment' => '备注', -'transmittal_name' => '', -'transmittal_size' => '', +'transmittal_name' => '名称', +'transmittal_size' => '大小', 'tree_loading' => '文档结构尚未加载完成,请等待...', 'trigger_workflow' => '工作流', 'tr_TR' => '土耳其', -'tuesday' => 'Tuesday', -'tuesday_abbr' => '', +'tuesday' => '周 二', +'tuesday_abbr' => '周二', 'types_generic' => '', 'type_of_hook' => '钩子类型', 'type_to_filter' => '', @@ -1937,11 +2032,12 @@ URL: [url]', 'update_locked_msg' => '该文档被锁定', 'update_recipients' => '更新收件人列表', 'update_reviewers' => '更新校对人名单', -'update_revisors' => '', -'update_transmittalitem' => '', +'update_revisors' => '更新重新提交者名单', +'update_transmittalitem' => '更新至最新文件版本', 'uploaded_by' => '上传者', 'uploading_failed' => '文件太大无法上传!请处理后重新上传。', 'uploading_maxsize' => '最大上传限制', +'uploading_postmaxsize' => '', 'uploading_zerosize' => '上传失败!请检查是否没有选择上传的文件。', 'used_discspace' => '使用磁盘空间', 'user' => '用户', @@ -1949,7 +2045,7 @@ URL: [url]', 'userid_groupid' => '用户ID/组ID', 'users' => '用户', 'users_and_groups' => '用户/组', -'users_done_work' => '', +'users_done_work' => '用户完成的工作', 'user_exists' => '用户已存在', 'user_group' => '用户/组', 'user_group_management' => '用户/组的管理', @@ -1962,13 +2058,16 @@ URL: [url]', 'use_comment_of_document' => '文档注释', 'use_default_categories' => '默认分类', 'use_default_keywords' => '使用预定义关键字', -'valid_till' => '有效期至', +'valid_till' => '有效期到', 'version' => '版本', 'versioning_file_creation' => '创建版本文件', 'versioning_file_creation_warning' => '通过此操作,您可以一个包含整个DMS文件夹的版本信息文件. 版本文件一经创建,每个文件都将保存到文件夹中.', 'versioning_info' => '版本信息', -'versiontolow' => '', +'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] @@ -1976,10 +2075,11 @@ URL: [url]', 父文件夹: [folder_path] 用户: [username] URL: [url]', +'version_deleted_email_body_html' => '', 'version_deleted_email_subject' => '[sitename]: [name] - 版本已删除', 'version_info' => '版本信息', 'view' => '查看', -'view_document' => '', +'view_document' => '查看', 'view_folder' => '', 'view_online' => '在线浏览', 'warning' => '警告', @@ -1989,12 +2089,12 @@ URL: [url]', 'webauthn_crossplatform_info' => '', 'webauthn_info' => '', 'webauth_crossplatform' => '', -'wednesday' => 'Wednesday', -'wednesday_abbr' => '', +'wednesday' => '周 三', +'wednesday_abbr' => '周三', 'weeks' => '周', 'week_view' => '周视图', 'workflow' => '工作流', -'workflows_involded' => '', +'workflows_involded' => '参与工作流', 'workflow_actions_management' => '工作流活动管理', 'workflow_action_in_use' => '当前活动已被工作流使用。', 'workflow_action_name' => '工作流节点名称', @@ -2003,14 +2103,15 @@ URL: [url]', 'workflow_has_cycle' => '周期性工作流', 'workflow_initstate' => '初始状态', 'workflow_in_use' => '文档正使用当前工作流。', -'workflow_layoutdata_saved' => '', +'workflow_layoutdata_saved' => '布局已保存', +'workflow_log' => '', 'workflow_management' => '工作流管理', 'workflow_name' => '工作流名称', -'workflow_no_doc_rejected_state' => '', -'workflow_no_doc_released_state' => '', -'workflow_no_initial_state' => '', -'workflow_no_states' => '', -'workflow_save_layout' => '', +'workflow_no_doc_rejected_state' => '在工作流状态下文档将不会被拒绝!', +'workflow_no_doc_released_state' => '在工作流状态下文件将不会发布!', +'workflow_no_initial_state' => '没有一个过渡是从工作流的初始状态开始的!', +'workflow_no_states' => '在添加工作流之前必须首先定义工作流状态。', +'workflow_save_layout' => '保存布局', 'workflow_state' => '工作流状态', 'workflow_states_management' => '工作流状态管理', 'workflow_state_docstatus' => '文档状态', @@ -2018,7 +2119,7 @@ URL: [url]', 'workflow_state_name' => '状态名称', 'workflow_summary' => '工作流概述', 'workflow_title' => '', -'workflow_transition_without_user_group' => '', +'workflow_transition_without_user_group' => '至少有一个转换既没有用户也没有用户组!', 'workflow_user_summary' => '用户概述', 'wrong_checksum' => '', 'wrong_filetype' => '', diff --git a/languages/zh_TW/lang.inc b/languages/zh_TW/lang.inc index 84355e5c3..0382868c7 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' => '審核組', @@ -128,6 +130,7 @@ URL: [url]', 父文件夾:[folder_path] 使用者:[username] 網址:[url]', +'approval_request_email_body_html' => '', 'approval_request_email_subject' => '[sitename]:[name]-批准請求', 'approval_status' => '審核狀態', 'approval_submit_email' => '', @@ -139,6 +142,7 @@ URL: [url]', 評論:[comment] 使用者:[username] 網址:[url]', +'approval_submit_email_body_html' => '', 'approval_submit_email_subject' => '[sitename]: [name] - 提交審核', 'approval_summary' => '審核匯總', 'approval_update_failed' => '錯誤:更新審核狀態.更新失敗.', @@ -162,6 +166,7 @@ URL: [url]', 'attrdefgrp_show_searchlist' => '搜尋結果', 'attrdef_exists' => '屬性定義已存在', 'attrdef_info' => '資訊', +'attrdef_invalid_regex' => '', 'attrdef_in_use' => '屬性定義仍在使用', 'attrdef_management' => '屬性定義管理', 'attrdef_maxvalues' => '最大值', @@ -200,6 +205,7 @@ URL: [url]', 父文件夾:[folder_path] 使用者:[username] 網址:[url]', +'attribute_changed_email_body_html' => '', 'attribute_changed_email_subject' => '[sitename]:[name]-屬性已更改', 'attribute_count' => '使用次數', 'attribute_value' => '屬性值', @@ -398,6 +404,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 +414,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 +424,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 +444,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 +454,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 +463,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 +472,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 +482,7 @@ URL: [url]', 評論:[comment] 版本註釋:[version_comment] 網址:[url]', +'document_updated_email_body_html' => '', 'document_updated_email_subject' => '[sitename]:[name]-文檔已更新', 'document_versions' => '', 'does_not_expire' => '永不過期', @@ -489,6 +503,8 @@ URL: [url]', 'download_header_review_state' => '', 'download_header_state' => '', 'download_links' => '下載連結', +'download_link_email_body' => '', +'download_link_email_subject' => '', 'do_no_transfer_to_user' => '不要轉移流程給使用者。', 'do_object_repair' => '修復所有文件夾和文檔。', 'do_object_setchecksum' => '設置文件校驗', @@ -598,6 +614,7 @@ URL: [url]', 父文件夾:[folder_path] 使用者:[username] 網址:[url]', +'expiry_changed_email_body_html' => '', 'expiry_changed_email_subject' => '[sitename]: [name] - 有效日期已更改', 'export' => '匯出', 'export_user_list_csv' => '', @@ -609,9 +626,11 @@ 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' => '可用', +'extension_mgr_upload_disabled' => '', 'extension_missing_name' => '', 'extension_toggle_error' => '', 'extension_version_list' => '版本', @@ -637,6 +656,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 +666,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 +675,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 +685,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 +694,7 @@ URL: [url]', 舊名稱:[old_name] 使用者:[username] 網址:[url]', +'folder_renamed_email_body_html' => '', 'folder_renamed_email_subject' => '[sitename]: [name] - 資料夾已經重新命名', 'folder_title' => '資料夾 \'[foldername]\'', 'foot_note' => '', @@ -716,6 +740,7 @@ URL: [url]', 'hu_HU' => '匈牙利語', 'id' => '序號', 'identical_version' => '新版本的內容與舊版本完全相同', +'id_ID' => '', 'import' => '匯入', 'importfs' => '從檔案系統匯入', 'import_extension' => '匯入擴充', @@ -914,6 +939,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 +948,7 @@ URL: [url]', 評論:[comment] 使用者:[username] 網址:[url]', +'new_file_email_body_html' => '', 'new_file_email_subject' => '[sitename]: [document] - 新附件', 'new_folder' => '新建資料夾', 'new_password' => '新密碼', @@ -932,6 +959,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 +973,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 +981,7 @@ URL: [url]', 父文件夾:[folder_path] 使用者:[username] 網址:[url]', +'notify_deleted_email_body_html' => '', 'notify_deleted_email_subject' => '[sitename]: [name] - 從通知列表中刪除', 'not_subscribed' => '', 'november' => '十一月', @@ -965,9 +995,11 @@ URL: [url]', 'no_current_version' => '您正在運行舊版本的SeedDMS。最新的可用版本是[latestversion]。', 'no_default_keywords' => '無關鍵字', 'no_docs_checked_out' => '沒有簽出文件', +'no_docs_draft' => '', 'no_docs_expired' => '沒有過期的文件', 'no_docs_locked' => '無鎖定的文件', 'no_docs_needs_correction' => '沒有文件,需要更正', +'no_docs_obsolete' => '', 'no_docs_rejected' => '沒有文件被拒絕。', 'no_docs_to_approve' => '當前沒有需要審核的文件', 'no_docs_to_look_at' => '沒有需要關注的文件', @@ -988,6 +1020,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' => '嚴重錯誤', @@ -997,6 +1030,14 @@ URL: [url]', 'old' => 'Old', 'only_jpg_user_images' => '只用jpg格式的圖片才可以作為使用者身份圖片', 'operation_disallowed' => '', +'orderby' => '', +'orderby_date_asc' => '', +'orderby_date_desc' => '', +'orderby_id_asc' => '', +'orderby_id_desc' => '', +'orderby_name_asc' => '', +'orderby_name_desc' => '', +'orderby_unsorted' => '', 'order_by_sequence_off' => '在設置中關閉了按順序排序。如果希望此參數生效,則必須重新打開它。', 'original_filename' => '原始檔名', 'overall_indexing_progress' => '整體索引編制進度', @@ -1009,6 +1050,7 @@ URL: [url]', 新所有者:[new_owner] 使用者:[username] 網址:[url]', +'ownership_changed_email_body_html' => '', 'ownership_changed_email_subject' => '[sitename]: [name] - 擁有者已改變', 'password' => '密碼', 'password_already_used' => '密碼已使用', @@ -1024,7 +1066,10 @@ URL: [url]', 可以通過單擊以下鏈接來完成: [url_prefix] out / out.ChangePassword.php?hash = [hash]', +'password_forgotten_email_body_html' => '', 'password_forgotten_email_subject' => '[sitename]: 密碼忘記', +'password_forgotten_invalid_hash' => '', +'password_forgotten_invalid_hash_title' => '', 'password_forgotten_send_hash' => '有關如何進行操作的說明已發送到使用者的電子郵件地址', 'password_forgotten_text' => '填寫以下表格,然後按照將發送給您的電子郵件中的說明進行操作。', 'password_forgotten_title' => '密碼已寄出', @@ -1077,6 +1122,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 +1131,12 @@ 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_body_html' => '', +'receipt_submit_email_subject' => '', 'receipt_summary' => '收據摘要', 'receipt_update_failed' => '確認接收失敗', 'recent_uploads' => '最近上傳', @@ -1096,6 +1146,7 @@ URL: [url]', 'reception_rejected' => '接待被拒絕', 'recipients' => '收件者', 'recipient_already_removed' => '收件人已被刪除或已知為收件人。', +'record_type' => '', 'redraw' => '重畫', 'refresh' => '重新整理', 'rejected' => '拒絕', @@ -1106,6 +1157,7 @@ URL: [url]', 文件:[document] 使用者:[username] 網址:[url]', +'removed_file_email_body_html' => '', 'removed_file_email_subject' => '[sitename]: [document] - 移除了附件', 'removed_recipient' => '已從收件人列表中刪除。', 'removed_reviewer' => '已經從校對人名單中刪除', @@ -1117,6 +1169,7 @@ URL: [url]', 父文件夾:[folder_path] 使用者:[username] 網址:[url]', +'removed_workflow_email_body_html' => '', 'removed_workflow_email_subject' => '[sitename]: [name] - 從文檔版本中刪除了工作流程', 'removeFolderFromDropFolder' => '導入後刪除文件夾', 'remove_approval_log' => '', @@ -1125,6 +1178,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 +1188,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 +1202,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 +1223,7 @@ URL: [url]', 父文件夾:[folder_path] 使用者:[username] 網址:[url]', +'review_deletion_email_body_html' => '', 'review_deletion_email_subject' => '[sitename]: [name] - 審核請求已刪除', 'review_file' => '檔案', 'review_group' => '校對組', @@ -1178,6 +1235,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 +1247,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 +1272,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 +1290,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 +1333,7 @@ URL: [url]', 父文件夾:[folder_path] 使用者:[username] 網址:[url]', +'run_subworkflow_email_body_html' => '', 'run_subworkflow_email_subject' => '[sitename]: [name] - 子流程啟動', 'ru_RU' => '俄語', 'saturday' => 'Saturday', @@ -1326,6 +1389,7 @@ URL: [url]', 'select_mimetype' => '', 'select_one' => '選擇一個', 'select_owner' => '', +'select_record_type' => '', 'select_status' => '', 'select_user' => '選擇使用者', 'select_users' => '點擊選擇使用者', @@ -1424,6 +1488,8 @@ URL: [url]', 'settings_defaultDocPosition_desc' => '這是創建文檔時文件夾中的默認位置。', 'settings_defaultDocPosition_val_end' => '結束', 'settings_defaultDocPosition_val_start' => '開始', +'settings_defaultFolderPosition' => '', +'settings_defaultFolderPosition_desc' => '', 'settings_defaultSearchMethod' => '預設搜尋方式', 'settings_defaultSearchMethod_desc' => '默認搜索方法,當通過主菜單中的搜索表單開始搜索時。', 'settings_defaultSearchMethod_valdatabase' => '資料庫', @@ -1466,6 +1532,12 @@ URL: [url]', 'settings_enableDuplicateSubFolderNames_desc' => '允許文件夾中有重複的子文件夾名稱。', 'settings_enableEmail' => '啟動 E-mail', 'settings_enableEmail_desc' => '啟用/禁用自動電子郵件通知', +'settings_enableExtensionDownload' => '', +'settings_enableExtensionDownload_desc' => '', +'settings_enableExtensionImport' => '', +'settings_enableExtensionImportFromRepository' => '', +'settings_enableExtensionImportFromRepository_desc' => '', +'settings_enableExtensionImport_desc' => '', 'settings_enableFilterReceipt' => '從接待清單中過濾出所有者,審閱者,...', 'settings_enableFilterReceipt_desc' => '啟用,以便在選擇了組成員的情況下從接收列表中過濾掉某些收件人。', 'settings_enableFolderTree' => '啟動目錄樹', @@ -1544,6 +1616,7 @@ URL: [url]', 'settings_expandFolderTree_val0' => '從隱藏的樹開始', 'settings_expandFolderTree_val1' => '從顯示的樹開始,展開第一級', 'settings_expandFolderTree_val2' => '從顯示完全展開的樹開始', +'settings_ExtensionMgr' => '', 'settings_Extensions' => '延伸功能', 'settings_extraPath' => '額外的PHP的include路徑', 'settings_extraPath_desc' => '附加軟體的路徑。這是包含目錄,例如在ADODB目錄或額外的PEAR包', @@ -1607,6 +1680,8 @@ URL: [url]', 'settings_more_settings' => '配置更多設置。默認登錄名:admin / admin', 'settings_noDocumentFormFields' => '不顯示此字段', 'settings_noDocumentFormFields_desc' => '添加或編輯文檔時不會顯示此字段。現有值將保留。', +'settings_noFolderFormFields' => '', +'settings_noFolderFormFields_desc' => '', 'settings_notfound' => '找不到', 'settings_Notification' => '通知設置', 'settings_notwritable' => '由於配置文件不可寫,因此無法保存配置。', @@ -1766,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' => '', @@ -1788,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' => '傳送已儲存', @@ -1810,6 +1889,7 @@ URL: [url]', 'splash_inherit_access' => '訪問權限將被繼承', 'splash_invalid_folder_id' => '無效的文件夾ID', 'splash_invalid_searchterm' => '搜尋字詞無效', +'splash_invalid_search_service' => '', 'splash_link_document' => '鏈接已添加', 'splash_moved_clipboard' => '剪貼簿已移至當前文件夾', 'splash_move_document' => '文件已移走', @@ -1819,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' => '傳送已刪除', @@ -1967,6 +2049,7 @@ URL: [url]', 父文件夾:[folder_path] 用戶:[username] 網址:[url]', +'transition_triggered_email_body_html' => '', 'transition_triggered_email_subject' => '[sitename]: [name] - 觸發工作流程過渡', 'transmittal' => '傳輸', 'transmittalitem_removed' => '傳輸項目已刪除', @@ -2014,6 +2097,7 @@ URL: [url]', 'uploaded_by' => '上傳者', 'uploading_failed' => '文件太大無法上傳!請處理後重新上傳。', 'uploading_maxsize' => '最大上傳限制', +'uploading_postmaxsize' => '', 'uploading_zerosize' => '上傳失敗!請檢查是否沒有選擇上傳的檔。', 'used_discspace' => '使用磁碟空間', 'user' => '使用者', @@ -2041,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] @@ -2048,6 +2135,7 @@ URL: [url]', 父文件夾:[folder_path] 用戶:[username] 網址:[url]', +'version_deleted_email_body_html' => '', 'version_deleted_email_subject' => '[sitename]: [name]-版本已刪除', 'version_info' => '版本資訊', 'view' => '檢視', @@ -2076,6 +2164,7 @@ URL: [url]', 'workflow_initstate' => '初始狀態', 'workflow_in_use' => '正在使用之流程', 'workflow_layoutdata_saved' => '版面數據已保存', +'workflow_log' => '', 'workflow_management' => '流程管理', 'workflow_name' => '流程名稱', 'workflow_no_doc_rejected_state' => '在工作流程狀態下不會拒絕該文檔!', diff --git a/op/op.AddDocument.php b/op/op.AddDocument.php index ff6e6f6ca..2825ceb20 100644 --- a/op/op.AddDocument.php +++ b/op/op.AddDocument.php @@ -33,6 +33,13 @@ include("../inc/inc.ClassController.php"); $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); $controller = Controller::factory($tmp[1], array('dms'=>$dms, 'user'=>$user)); +/* if post_max_size is to small, then $_POST will not be set and the content + * lenght will exceed post_max_size + */ +if(empty($_POST) && $_SERVER['CONTENT_LENGTH'] > SeedDMS_Core_File::parse_filesize(ini_get('post_max_size'))) { + UI::exitError(getMLText("folder_title", array("foldername" => '')),getMLText("uploading_postmaxsize")); +} + /* Check if the form data comes from a trusted request */ if(!checkFormKey('adddocument')) { UI::exitError(getMLText("folder_title", array("foldername" => getMLText("invalid_request_token"))),getMLText("invalid_request_token")); @@ -330,15 +337,18 @@ if(!empty($_POST['notification_groups'])) { /* Check files for Errors first */ $maxuploadsize = SeedDMS_Core_File::parse_filesize($settings->_maxUploadSize); foreach($file_ary as $file) { + if($file['error']==1) { + UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("uploading_maxsize")); + } + if($file['error']!=0) { + UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("uploading_failed")); + } if ($file["size"]==0) { UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("uploading_zerosize")); } if ($maxuploadsize && $file["size"] > $maxuploadsize) { UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("uploading_maxsize")); } - if($file['error']!=0) { - UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("uploading_failed")); - } } foreach($file_ary as $file) { @@ -367,6 +377,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); @@ -403,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.AddFile.php b/op/op.AddFile.php index 305972af5..cbb203c35 100644 --- a/op/op.AddFile.php +++ b/op/op.AddFile.php @@ -27,6 +27,13 @@ include("../inc/inc.DBInit.php"); include("../inc/inc.ClassUI.php"); include("../inc/inc.Authentication.php"); +/* if post_max_size is to small, then $_POST will not be set and the content + * lenght will exceed post_max_size + */ +if(empty($_POST) && $_SERVER['CONTENT_LENGTH'] > SeedDMS_Core_File::parse_filesize(ini_get('post_max_size'))) { + UI::exitError(getMLText("document_title", array("documentname" => '')),getMLText("uploading_postmaxsize")); +} + if (!isset($_POST["documentid"]) || !is_numeric($_POST["documentid"]) || intval($_POST["documentid"])<1) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } diff --git a/op/op.Ajax.php b/op/op.Ajax.php index af947601e..937c05cfc 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(); @@ -771,22 +781,30 @@ 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'); $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('keywords', $keywords); $controller->setParam('categories', $cats); $controller->setParam('owner', $user); $controller->setParam('userfiletmp', $userfiletmp); @@ -802,7 +820,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()); @@ -896,6 +914,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(); diff --git a/op/op.ApproveDocument.php b/op/op.ApproveDocument.php index 2314b64e4..a2834cbf5 100644 --- a/op/op.ApproveDocument.php +++ b/op/op.ApproveDocument.php @@ -96,7 +96,7 @@ if ($_POST["approvalType"] == "ind") { else $file = ''; $approvalLogID = $latestContent->setApprovalByInd($user, $user, $_POST["approvalStatus"], $comment, $file); - if(0 > $approvalLogID) { + if($approvalLogID === false || 0 > $approvalLogID) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("approval_update_failed")); } else { @@ -115,7 +115,7 @@ else if ($_POST["approvalType"] == "grp") { else $file = ''; $approvalLogID = $latestContent->setApprovalByGrp($group, $user, $_POST["approvalStatus"], $comment, $file); - if(0 > $approvalLogID) { + if($approvalLogID === false || 0 > $approvalLogID) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("approval_update_failed")); } else { 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'))); diff --git a/op/op.Categories.php b/op/op.Categories.php index ce54a75e9..7fdabceab 100644 --- a/op/op.Categories.php +++ b/op/op.Categories.php @@ -54,6 +54,9 @@ if ($action == "addcategory") { UI::exitError(getMLText("admin_tools"),getMLText("error_occured")); } $categoryid=$newCategory->getID(); + + $session->setSplashMsg(array('type'=>'success', 'msg'=>getMLText('splash_add_category'))); + add_log_line(".php&action=addcategory&categoryid=".$categoryid); } //Kategorie lschen ---------------------------------------------------------------------------------- @@ -76,6 +79,9 @@ else if ($action == "removecategory") { if (!$category->remove()) { UI::exitError(getMLText("admin_tools"),getMLText("error_occured")); } + + $session->setSplashMsg(array('type'=>'success', 'msg'=>getMLText('splash_rm_category'))); + add_log_line(".php&action=removecategory&categoryid=".$categoryid); $categoryid=-1; } @@ -100,6 +106,9 @@ else if ($action == "editcategory") { if (!$category->setName($name)) { UI::exitError(getMLText("admin_tools"),getMLText("error_occured")); } + + $session->setSplashMsg(array('type'=>'success', 'msg'=>getMLText('splash_edit_category'))); + add_log_line(".php&action=editcategory&categoryid=".$categoryid); } else { diff --git a/op/op.ChangePassword.php b/op/op.ChangePassword.php index da4c6f32c..5eee414d3 100644 --- a/op/op.ChangePassword.php +++ b/op/op.ChangePassword.php @@ -66,7 +66,5 @@ if($user) { exit; } -UI::exitError(getMLText("password_mismatch_error_title"),getMLText("password_mismatch_error")); - -?> +UI::exitError(getMLText("password_forgotten_invalid_hash_title"),getMLText("password_forgotten_invalid_hash")); 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")); diff --git a/op/op.DefaultKeywords.php b/op/op.DefaultKeywords.php index c85271f94..069d8955a 100644 --- a/op/op.DefaultKeywords.php +++ b/op/op.DefaultKeywords.php @@ -54,6 +54,9 @@ if ($action == "addcategory") { UI::exitError(getMLText("admin_tools"),getMLText("error_occured")); } $categoryid=$newCategory->getID(); + + $session->setSplashMsg(array('type'=>'success', 'msg'=>getMLText('splash_add_keyword_category'))); + add_log_line(".php&action=addcategory&categoryid=".$categoryid); } // Delete keyword categorie --------------------------------------------- @@ -80,6 +83,9 @@ else if ($action == "removecategory") { if (!$category->remove()) { UI::exitError(getMLText("admin_tools"),getMLText("error_occured")); } + + $session->setSplashMsg(array('type'=>'success', 'msg'=>getMLText('splash_rm_keyword_category'))); + add_log_line(".php&action=removecategory&categoryid=".$categoryid); $categoryid=-1; } @@ -109,6 +115,9 @@ else if ($action == "editcategory") { if (!$category->setName($name)) { UI::exitError(getMLText("admin_tools"),getMLText("error_occured")); } + + $session->setSplashMsg(array('type'=>'success', 'msg'=>getMLText('splash_edit_keyword_category'))); + add_log_line(".php&action=editcategory&categoryid=".$categoryid); } // Modify keyword categorie: new list of keywords ----------------------- @@ -132,6 +141,9 @@ else if ($action == "newkeywords") { UI::exitError(getMLText("admin_tools"),getMLText("error_occured")); } } + + $session->setSplashMsg(array('type'=>'success', 'msg'=>getMLText('splash_add_keyword'))); + add_log_line(".php&action=newkeywords&categoryid=".$categoryid); } // Modify keyword categorie: modify list of keywords ------------------- @@ -166,6 +178,9 @@ else if ($action == "editkeywords") if (!$category->editKeywordList($keywordsid, $keywords)) { UI::exitError(getMLText("admin_tools"),getMLText("error_occured")); } + + $session->setSplashMsg(array('type'=>'success', 'msg'=>getMLText('splash_edit_keyword'))); + add_log_line(".php&action=editkeywords&categoryid=".$categoryid); } // Modify keyword categorie: delete list of keywords -------------------- @@ -198,6 +213,9 @@ else if ($action == "removekeywords") { if (!$category->removeKeywordList($keywordsid)) { UI::exitError(getMLText("admin_tools"),getMLText("error_occured")); } + + $session->setSplashMsg(array('type'=>'success', 'msg'=>getMLText('splash_rm_keyword'))); + add_log_line(".php&action=removekeywords&categoryid=".$categoryid); } else { UI::exitError(getMLText("admin_tools"),getMLText("unknown_command")); 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/op/op.EditAttributes.php b/op/op.EditAttributes.php index 95a5740b7..6a0f75890 100644 --- a/op/op.EditAttributes.php +++ b/op/op.EditAttributes.php @@ -63,6 +63,7 @@ if (!is_object($version)) { * will just update the old attribute object in array attributes[] and hence * also update the old value */ +$oldattributes = array(); foreach($version->getAttributes() as $ai=>$aa) $oldattributes[$ai] = clone $aa; diff --git a/op/op.ExtensionMgr.php b/op/op.ExtensionMgr.php index 528b6aa66..6bc46add1 100644 --- a/op/op.ExtensionMgr.php +++ b/op/op.ExtensionMgr.php @@ -45,6 +45,9 @@ else $currenttab=NULL; // Download extension ------------------------------------------------------- if ($action == "download") { /* {{{ */ + if(!$settings->_enableExtensionDownload) { + UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); + } if (!isset($_POST["extname"])) { UI::exitError(getMLText("admin_tools"),getMLText("unknown_id")); } @@ -65,13 +68,16 @@ 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(); header("Location:../out/out.ExtensionMgr.php?currenttab=".$currenttab); } /* }}} */ elseif ($action == "upload") { /* {{{ */ + if(!$settings->_enableExtensionImport) { + UI::exitError(getMLText("admin_tools"),getMLText("extension_mgr_upload_disabled")); + } if(!$extMgr->isWritableExtDir()) { UI::exitError(getMLText("admin_tools"),getMLText("extension_mgr_no_upload")); } @@ -85,13 +91,16 @@ elseif ($action == "upload") { /* {{{ */ $controller->setParam('extmgr', $extMgr); $controller->setParam('file', $_FILES['userfile']['tmp_name']); if (!$controller($_POST)) { - UI::exitError(getMLText("admin_tools"),getMLText("error_occured")); + UI::exitError(getMLText("admin_tools"),$controller->getErrorMsg()); } $session->setSplashMsg(array('type'=>'success', 'msg'=>getMLText('splash_extension_import'))); add_log_line(); header("Location:../out/out.ExtensionMgr.php?currenttab=".$currenttab); } /* }}} */ elseif ($action == "import") { /* {{{ */ + if(!$settings->_enableExtensionImportFromRepository) { + UI::exitError(getMLText("admin_tools"),getMLText("extension_mgr_upload_disabled")); + } if(!$_POST['url']) { UI::exitError(getMLText("admin_tools"),getMLText("error_occured")); } 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; 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; } diff --git a/op/op.PdfPreview.php b/op/op.PdfPreview.php index 9f0ad2849..e3743fb05 100644 --- a/op/op.PdfPreview.php +++ b/op/op.PdfPreview.php @@ -59,6 +59,7 @@ if(isset($_GET['version'])) { $controller->setParam('document', $document); $controller->setParam('version', $version); $controller->setParam('type', 'version'); + $controller->setParam('conversionmgr', $conversionmgr); if(!$controller->run()) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("invalid_version")); } diff --git a/op/op.Preview.php b/op/op.Preview.php index da3c11a9a..9e560e4aa 100644 --- a/op/op.Preview.php +++ b/op/op.Preview.php @@ -54,6 +54,7 @@ if ($document->getAccessMode($user) < M_READ) { exit; } +$controller->setParam('conversionmgr', $conversionmgr); if(isset($_GET['version'])) { $version = $_GET["version"]; if (!is_numeric($version)) diff --git a/op/op.RemoveApprovalLog.php b/op/op.RemoveApprovalLog.php index 9aa103a2d..8c971a951 100644 --- a/op/op.RemoveApprovalLog.php +++ b/op/op.RemoveApprovalLog.php @@ -93,7 +93,7 @@ if($approveStatus['type'] == 0) { UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("invalid_approveid")); $comment = $_POST["comment"]; -if(0 == $latestContent->removeApproval($approveid, $user, $comment)) { +if(true === $latestContent->removeApproval($approveid, $user, $comment)) { $latestContent->verifyStatus(true, $user, $msg); } header("Location:../out/out.ViewDocument.php?documentid=".$documentid."¤ttab=revapp"); 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/op/op.RemoveReviewLog.php b/op/op.RemoveReviewLog.php index 1ec2b00b3..1e14c7b22 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"]; -if(0 == $latestContent->removeReview($reviewid, $user, $comment)) { +$overallStatus = $latestContent->getStatus(); +if(true === $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"); diff --git a/op/op.RemoveVersion.php b/op/op.RemoveVersion.php index ca68b62f4..480e73fa6 100644 --- a/op/op.RemoveVersion.php +++ b/op/op.RemoveVersion.php @@ -142,13 +142,14 @@ else { if($hit = $lucenesearch->getDocument($document->getID())) { $index->delete($hit->id); } - $version = $document->getLatestContent(); $index->addDocument($fulltextservice->IndexedDocument($document)); $index->commit(); } // Notify affected users. if ($notifier){ + $notifier->sendDeleteDocumentVersionMail($document, $version, $user); + /* $nl=$document->getNotifyList(); $userrecipientsR = array(); foreach ($emailUserListR as $eID) { @@ -195,6 +196,7 @@ else { foreach ($nl["groups"] as $grp) { $notifier->toGroup($user, $grp, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); } + */ } } } 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.ReviewDocument.php b/op/op.ReviewDocument.php index 1547f1541..bbfa98de7 100644 --- a/op/op.ReviewDocument.php +++ b/op/op.ReviewDocument.php @@ -94,7 +94,7 @@ if ($_POST["reviewType"] == "ind") { else $file = ''; $reviewLogID = $latestContent->setReviewByInd($user, $user, $_POST["reviewStatus"], $comment, $file); - if(0 > $reviewLogID) { + if($reviewLogID === false || 0 > $reviewLogID) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("review_update_failed")); } else { @@ -113,7 +113,7 @@ else if ($_POST["reviewType"] == "grp") { else $file = ''; $reviewLogID = $latestContent->setReviewByGrp($group, $user, $_POST["reviewStatus"], $comment, $file); - if(0 > $reviewLogID) { + if($reviewLogID === false || 0 > $reviewLogID) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("review_update_failed")); } else { @@ -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); } } } diff --git a/op/op.RewindWorkflow.php b/op/op.RewindWorkflow.php index d67cdc8f7..b01b6a278 100644 --- a/op/op.RewindWorkflow.php +++ b/op/op.RewindWorkflow.php @@ -62,33 +62,7 @@ if (!is_object($workflow)) { if($version->rewindWorkflow()) { if ($notifier) { - $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(); - $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); } } 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); } } } diff --git a/op/op.SetReviewersApprovers.php b/op/op.SetReviewersApprovers.php index 1abc8ed3d..16d767e95 100644 --- a/op/op.SetReviewersApprovers.php +++ b/op/op.SetReviewersApprovers.php @@ -127,39 +127,25 @@ foreach ($pIndRev as $p) { // Proposed reviewer is not a current reviewer, so add as a new // reviewer. $res = $content->addIndReviewer($docAccess["users"][$accessIndex["i"][$p]], $user); - switch ($res) { - case 0: + switch (true) { + case $res > 0: // 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; - case -1: + case $res === -1: + case $res === false: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("internal_error")); break; - case -2: + case $res === -2: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); break; - case -3: + case $res === -3: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("reviewer_already_assigned")); break; - case -4: - // email error - break; } } else { @@ -193,39 +179,25 @@ if (count($reviewIndex["i"]) > 0) { } else { $res = $content->delIndReviewer($docAccess["users"][$accessIndex["i"][$rx]], $user); - switch ($res) { - case 0: + switch (true) { + case $res === 0: // Send an email notification to the reviewer. if($settings->_enableNotificationAppRev) { if ($notifier) { - $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); + $notifier->sendDeleteReviewMail($content, $user, $docAccess["users"][$accessIndex["i"][$rx]]); } } break; - case -1: + case $res === -1: + case $res === false: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("internal_error")); break; - case -2: + case $res === -2: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); break; - case -3: + case $res === -3: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("reviewer_already_removed")); break; - case -4: - // email error - break; } } } @@ -239,39 +211,25 @@ foreach ($pGrpRev as $p) { // Proposed reviewer is not a current reviewer, so add as a new // reviewer. $res = $content->addGrpReviewer($docAccess["groups"][$accessIndex["g"][$p]], $user); - switch ($res) { - case 0: + switch (true) { + case $res > 0: // 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; - case -1: + case $res === -1: + case $res === false: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("internal_error")); break; - case -2: + case $res === -2: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); break; - case -3: + case $res === -3: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("reviewer_already_assigned")); break; - case -4: - // email error - break; } } else { @@ -297,39 +255,25 @@ if (count($reviewIndex["g"]) > 0) { } else { $res = $content->delGrpReviewer($docAccess["groups"][$accessIndex["g"][$rx]], $user); - switch ($res) { - case 0: + switch (true) { + case $res === 0: // Send an email notification to the review group. if($settings->_enableNotificationAppRev) { if ($notifier) { - $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); + $notifier->sendDeleteReviewMail($content, $user, $docAccess["groups"][$accessIndex["g"][$rx]]); } } break; - case -1: + case $res === -1: + case $res === false: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("internal_error")); break; - case -2: + case $res === -2: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); break; - case -3: + case $res === -3: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("reviewer_already_removed")); break; - case -4: - // email error - break; } } } @@ -359,39 +303,29 @@ foreach ($pIndApp as $p) { // Proposed approver is not a current approver, so add as a new // approver. $res = $content->addIndApprover($docAccess["users"][$accessIndex["i"][$p]], $user); - switch ($res) { - case 0: + switch (true) { + case $res > 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; - case -1: + case $res === -1: + case $res === false: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("internal_error")); break; - case -2: + case $res === -2: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); break; - case -3: + case $res === -3: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("reviewer_already_assigned")); break; - case -4: - // email error - break; } } else { @@ -417,39 +351,25 @@ if (count($approvalIndex["i"]) > 0) { } else { $res = $content->delIndApprover($docAccess["users"][$accessIndex["i"][$rx]], $user); - switch ($res) { - case 0: + switch (true) { + case $res === 0: // Send an email notification to the approver. if($settings->_enableNotificationAppRev) { if ($notifier) { - $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); + $notifier->sendDeleteApprovalMail($content, $user, $docAccess["users"][$accessIndex["i"][$rx]]); } } break; - case -1: + case $res === -1: + case $res === false: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("internal_error")); break; - case -2: + case $res === -2: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); break; - case -3: + case $res === -3: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("reviewer_already_removed")); break; - case -4: - // email error - break; } } } @@ -463,39 +383,29 @@ foreach ($pGrpApp as $p) { // Proposed approver is not a current approver, so add as a new // approver. $res = $content->addGrpApprover($docAccess["groups"][$accessIndex["g"][$p]], $user); - switch ($res) { - case 0: + switch (true) { + case $res > 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; - case -1: + case $res === -1: + case $res === false: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("internal_error")); break; - case -2: + case $res === -2: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); break; - case -3: + case $res === -3: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("approver_already_assigned")); break; - case -4: - // email error - break; } } else { @@ -521,39 +431,25 @@ if (count($approvalIndex["g"]) > 0) { } else { $res = $content->delGrpApprover($docAccess["groups"][$accessIndex["g"][$rx]], $user); - switch ($res) { - case 0: + switch (true) { + case $res === 0: // Send an email notification to the approval group. if($settings->_enableNotificationAppRev) { if ($notifier) { - $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); + $notifier->sendDeleteApprovalMail($content, $user, $docAccess["groups"][$accessIndex["g"][$rx]]); } } break; - case -1: + case $res === -1: + case $res === false: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("internal_error")); break; - case -2: + case $res === -2: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); break; - case -3: + case $res === -3: UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("approver_already_removed")); break; - case -4: - // email error - break; } } } diff --git a/op/op.Settings.php b/op/op.Settings.php index cb2ef35e6..7c482f5a9 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)) @@ -149,6 +150,7 @@ if ($action == "saveSettings") setStrValue("sortUsersInList"); setStrValue("sortFoldersDefault"); setStrValue("defaultDocPosition"); + setStrValue("defaultFolderPosition"); // SETTINGS - SITE - WEBDAV setBoolValue("enableWebdavReplaceDoc"); @@ -158,6 +160,11 @@ if ($action == "saveSettings") setStrValue("calendarDefaultView"); setIntValue("firstDayOfWeek"); + // SETTINGS - SITE - EXTENSIONMGR + setBoolValue("enableExtensionDownload"); + setBoolValue("enableExtensionImport"); + setBoolValue("enableExtensionImportFromRepository"); + // SETTINGS - SYSTEM - SERVER setDirValue("rootDir"); setStrValue("httpRoot"); @@ -218,7 +225,6 @@ if ($action == "saveSettings") setStrValue("siteDefaultPage"); setIntValue("rootFolderID"); setBoolValue("useHomeAsRootFolder"); - setBoolValue("titleDisplayHack"); setBoolValue("showMissingTranslations"); // SETTINGS - ADVANCED - AUTHENTICATION @@ -286,13 +292,16 @@ if ($action == "saveSettings") } // SETTINGS - EXTENSIONS - if(isset($_POST['extensions']) && !in_array('extensions', $settings->_hiddenConfFields)) { + if(isset($_POST['extensions'])) { foreach($_POST['extensions'] as $extname=>$conf) { - if(!in_array('extensions|'.$extname, $settings->_hiddenConfFields)) { - $settings->_extensions[$extname] = $conf; + if(!in_array($extname.'|', $settings->_hiddenConfFields)) { + foreach($conf as $confname=>$confval) { + if(!in_array($extname.'|'.$confname, $settings->_hiddenConfFields)) { + $settings->_extensions[$extname][$confname] = $confval; + } + } } } -// $settings->_extensions = isset($_POST["extensions"]) ? $_POST["extensions"] : array(); } // ------------------------------------------------------------------------- diff --git a/op/op.TriggerWorkflow.php b/op/op.TriggerWorkflow.php index 6d4b9dac1..a42511316 100644 --- a/op/op.TriggerWorkflow.php +++ b/op/op.TriggerWorkflow.php @@ -76,61 +76,17 @@ if(isset($GLOBALS['SEEDDMS_HOOKS']['triggerWorkflowTransition'])) { } } -if($version->triggerWorkflowTransition($user, $transition, $_POST["comment"])) { +$overallStatus = $version->getStatus(); +if($ret = $version->triggerWorkflowTransition($user, $transition, $_POST["comment"])) { + /* $ret is the next state if it was entered otherwise it is just true */ 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->getLastWorkflowLog(); + $notifier->sendTriggerWorkflowTransitionMail($version, $user, $wkflog); - // 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_WO▨KFLOW); - } - } - 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); - } - } + if(is_object($ret)) { + $notifier->sendRequestWorkflowActionMail($version, $user, $transition); + if($overallStatus['status'] != $version->getStatus()['status']) { + $notifier->sendChangedDocumentStatusMail($version, $user, $overallStatus["status"]); } } } @@ -150,5 +106,7 @@ if($version->triggerWorkflowTransition($user, $transition, $_POST["comment"])) { add_log_line("?documentid=".$documentid."&version".$version_num); -header("Location:../out/out.ViewDocument.php?documentid=".$documentid."¤ttab=workflow"); -?> +if($version->getStatus()['status'] == S_IN_WORKFLOW) + header("Location:../out/out.ViewDocument.php?documentid=".$documentid."¤ttab=workflow"); +else + header("Location:../out/out.ViewDocument.php?documentid=".$documentid); diff --git a/op/op.UpdateDocument.php b/op/op.UpdateDocument.php index 7800fa7b9..9c29d5230 100644 --- a/op/op.UpdateDocument.php +++ b/op/op.UpdateDocument.php @@ -31,6 +31,13 @@ include("../inc/inc.ClassController.php"); $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); $controller = Controller::factory($tmp[1], array('dms'=>$dms, 'user'=>$user)); +/* if post_max_size is to small, then $_POST will not be set and the content + * lenght will exceed post_max_size + */ +if(empty($_POST) && $_SERVER['CONTENT_LENGTH'] > SeedDMS_Core_File::parse_filesize(ini_get('post_max_size'))) { + UI::exitError(getMLText("folder_title", array("foldername" => '')),getMLText("uploading_postmaxsize")); +} + /* Check if the form data comes from a trusted request */ if(!checkFormKey('updatedocument')) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_request_token"))),getMLText("invalid_request_token")); @@ -129,6 +136,12 @@ if(!$file_ary) { $file = $file_ary[0]; if ($file['error'] == 0) { + if($file['error']==1) { + UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("uploading_maxsize")); + } + if($file['error']!=0) { + UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("uploading_failed")); + } if ($file["size"]==0) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("uploading_zerosize")); } @@ -285,6 +298,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); @@ -303,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); 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.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/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/out/out.DocumentVersionDetail.php b/out/out.DocumentVersionDetail.php index b0809c996..58923d132 100644 --- a/out/out.DocumentVersionDetail.php +++ b/out/out.DocumentVersionDetail.php @@ -71,6 +71,7 @@ $accessop = new SeedDMS_AccessOperation($dms, $document, $user, $settings); $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user)); if($view) { + $view->setParam('conversionmgr', $conversionmgr); $view->setParam('folder', $folder); $view->setParam('document', $document); $view->setParam('version', $version); diff --git a/out/out.EditFolder.php b/out/out.EditFolder.php index 0ad1245d7..85e4be781 100644 --- a/out/out.EditFolder.php +++ b/out/out.EditFolder.php @@ -54,6 +54,7 @@ if($view) { $view->setParam('folder', $folder); $view->setParam('attrdefs', $attrdefs); $view->setParam('strictformcheck', $settings->_strictFormCheck); + $view->setParam('nofolderformfields', $settings->_noFolderFormFields); $view->setParam('rootfolderid', $settings->_rootFolderID); $view->setParam('orderby', $settings->_sortFoldersDefault); $view->setParam('accessobject', $accessop); diff --git a/out/out.ErrorDlg.php b/out/out.ErrorDlg.php index 6681f02c8..015d0377e 100644 --- a/out/out.ErrorDlg.php +++ b/out/out.ErrorDlg.php @@ -31,16 +31,11 @@ require_once("inc/inc.Init.php"); require_once("inc/inc.Extension.php"); require_once("inc/inc.DBInit.php"); require_once("inc/inc.ClassUI.php"); -require_once("inc/inc.ClassAccessOperation.php"); -require_once("inc/inc.Authentication.php"); $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); -$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user)); - -$accessop = new SeedDMS_AccessOperation($dms, null, $user, $settings); +$view = UI::factory($theme, $tmp[1], array('dms'=>$dms)); if($view) { - $view->setParam('accessobject', $accessop); $view($_GET); exit; } 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/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"]; 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; } 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")); } diff --git a/out/out.Search.php b/out/out.Search.php index 7b2becf9e..2c1e21368 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"]; @@ -63,12 +64,15 @@ if(((!isset($_GET["fullsearch"]) && $settings->_defaultSearchMethod == 'fulltext // category $categories = array(); $categorynames = array(); + $category = array(); if(isset($_GET['category']) && $_GET['category']) { + $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(); + } } } } @@ -111,7 +115,6 @@ if(((!isset($_GET["fullsearch"]) && $settings->_defaultSearchMethod == 'fulltext } } } - // Check to see if the search has been restricted to a particular // mimetype. $mimetype = []; @@ -133,6 +136,12 @@ if(((!isset($_GET["fullsearch"]) && $settings->_defaultSearchMethod == 'fulltext else $status = array(); + // record_type + if(isset($_GET['record_type'])) + $record_type = $_GET['record_type']; + else + $record_type = array(); + // Check to see if the search has been restricted to a particular sub-tree in // the folder hierarchy. $startFolder = null; @@ -164,7 +173,7 @@ if(((!isset($_GET["fullsearch"]) && $settings->_defaultSearchMethod == 'fulltext $index = $fulltextservice->Indexer(); if($index) { $lucenesearch = $fulltextservice->Search(); - $searchresult = $lucenesearch->search($query, array('owner'=>$ownernames, 'status'=>$status, 'category'=>$categorynames, 'user'=>$user->isAdmin() ? [] : [$user->getLogin()], 'mimetype'=>$mimetype, 'startFolder'=>$startFolder, 'rootFolder'=>$rootFolder), ($pageNumber == 'all' ? array() : array('limit'=>$limit, 'offset'=>$limit * ($pageNumber-1)))); + $searchresult = $lucenesearch->search($query, array('record_type'=>$record_type, 'owner'=>$ownernames, 'status'=>$status, 'category'=>$categorynames, 'user'=>$user->isAdmin() ? [] : [$user->getLogin()], 'mimetype'=>$mimetype, 'startFolder'=>$startFolder, 'rootFolder'=>$rootFolder), ($pageNumber == 'all' ? array() : array('limit'=>$limit, 'offset'=>$limit * ($pageNumber-1)))); if($searchresult === false) { $session->setSplashMsg(array('type'=>'error', 'msg'=>getMLText('splash_invalid_searchterm'))); $dcount = 0; @@ -197,6 +206,10 @@ if(((!isset($_GET["fullsearch"]) && $settings->_defaultSearchMethod == 'fulltext } } } + if(isset($facets['record_type'])) { + $fcount = isset($facets['record_type']['folder']) ? $facets['record_type']['folder'] : 0; + $dcount = isset($facets['record_type']['document']) ? $facets['record_type']['document'] : 0 ; + } } if($pageNumber != 'all' && $searchresult['count'] > $limit) { $totalPages = (int) ($searchresult['count']/$limit); @@ -399,7 +412,9 @@ if(((!isset($_GET["fullsearch"]) && $settings->_defaultSearchMethod == 'fulltext // category $categories = array(); + $category = []; if(isset($_GET['category']) && $_GET['category']) { + $category = $_GET['category']; foreach($_GET['category'] as $catid) { if($cat = $dms->getDocumentCategory($catid)) { $categories[] = $cat; @@ -535,7 +550,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); @@ -552,8 +567,10 @@ if($settings->_showSingleSearchHit && count($entries) == 1) { $view->setParam('creationdate', isset($creationdate) ? $creationdate : ''); $view->setParam('expirationdate', isset($expirationdate) ? $expirationdate: ''); $view->setParam('statusdate', isset($statusdate) ? $statusdate: ''); - $view->setParam('status', isset($status) ? $status : array()); + $view->setParam('status', $status); + $view->setParam('recordtype', isset($record_type) ? $record_type : null); $view->setParam('categories', isset($categories) ? $categories : ''); + $view->setParam('category', $category); $view->setParam('mimetype', isset($mimetype) ? $mimetype : ''); $view->setParam('attributes', isset($attributes) ? $attributes : ''); $attrdefs = $dms->getAllAttributeDefinitions(array(SeedDMS_Core_AttributeDefinition::objtype_document, SeedDMS_Core_AttributeDefinition::objtype_documentcontent, SeedDMS_Core_AttributeDefinition::objtype_folder, SeedDMS_Core_AttributeDefinition::objtype_all)); diff --git a/out/out.ViewDocument.php b/out/out.ViewDocument.php index 0923b4d5b..e1013cb84 100644 --- a/out/out.ViewDocument.php +++ b/out/out.ViewDocument.php @@ -66,6 +66,7 @@ if ($document->verifyLastestContentExpriry()){ if($view) { $view->setParam('fulltextservice', $fulltextservice); + $view->setParam('conversionmgr', $conversionmgr); $view->setParam('folder', $folder); $view->setParam('document', $document); $view->setParam('accessobject', $accessop); diff --git a/out/out.ViewFolder.php b/out/out.ViewFolder.php index 65f68eff0..2aca32070 100644 --- a/out/out.ViewFolder.php +++ b/out/out.ViewFolder.php @@ -77,6 +77,7 @@ if($view) { if(isset($_GET['action']) && $_GET['action'] == 'subtree') $view->setParam('node', $node); $view->setParam('fulltextservice', $fulltextservice); + $view->setParam('conversionmgr', $conversionmgr); $view->setParam('folder', $folder); $view->setParam('orderby', $orderby); $view->setParam('enableFolderTree', $settings->_enableFolderTree); diff --git a/package.json b/package.json index 8ea4d5328..cf8485b8a 100644 --- a/package.json +++ b/package.json @@ -11,13 +11,15 @@ "dependencies": { "@coreui/coreui": "^3.3.0", "@ttskch/select2-bootstrap4-theme": "^1.5.2", + "bootbox": "^5.5.2", "bootstrap": "^4.5.2", "bootstrap-datepicker": "^1.9.0", "chartjs": "^0.3.24", "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", @@ -25,12 +27,14 @@ "grunt-contrib-copy": "^1.0.0", "jqtree": "^1.5.1", "jquery": "^1.12.4", + "jquery-typeahead": "^2.11.1", "jquery-validation": "^1.19.2", "moment": "^2.29.1", "noty": "^2.4.1", "perfect-scrollbar": "^1.5.0", "popper.js": "^1.16.1", "select2": "^4.0.13", + "spectrum-colorpicker2": "^2.0.8", "vis-timeline": "^7.4.7" } } diff --git a/restapi/index.php b/restapi/index.php index 7f1eefb75..4b9db252f 100644 --- a/restapi/index.php +++ b/restapi/index.php @@ -330,6 +330,7 @@ class RestapiController { /* {{{ */ $dms = $this->container->dms; $userobj = $this->container->userobj; + $id = $args['id']; if($id == 0) { return $response->withJson(array('success'=>true, 'message'=>'id is 0', 'data'=>''), 200); } @@ -1308,6 +1309,7 @@ class RestapiController { /* {{{ */ $dms = $this->container->dms; $userobj = $this->container->userobj; $settings = $this->container->config; + $conversionmgr = $this->container->conversionmgr; if(!ctype_digit($args['id'])) { return $response->withJson(array('success'=>false, 'message'=>'Invalid parameter', 'data'=>''), 400); @@ -1328,6 +1330,10 @@ class RestapiController { /* {{{ */ $previewer = new SeedDMS_Preview_Previewer($settings->_cacheDir, $args['width']); else $previewer = new SeedDMS_Preview_Previewer($settings->_cacheDir); + if($conversionmgr) + $previewer->setConversionMgr($conversionmgr); + else + $previewer->setConverters($settings->_converters['preview']); if(!$previewer->hasPreview($object)) $previewer->createPreview($object); @@ -2328,8 +2334,8 @@ class TestController { /* {{{ */ $this->container = $container; } - public function echoData($request, $response) { /* {{{ */ - return $response->withJson(array('success'=>true, 'message'=>'This is the result of the echo call.', 'data'=>''), 200); + public function echoData($request, $response, $args) { /* {{{ */ + return $response->withJson(array('success'=>true, 'message'=>'This is the result of the echo call.', 'data'=>$args['data']), 200); } /* }}} */ } /* }}} */ @@ -2367,9 +2373,9 @@ class Auth { /* {{{ */ } /* The preflight options request doesn't have authorization in the header. So * don't even try to authorize. - */ + */ if($request->getMethod() == 'OPTIONS') { - } elseif(!in_array($request->getUri()->getPath(), array('echo', 'login'))) { + } elseif(!in_array($request->getUri()->getPath(), array('login')) && substr($request->getUri()->getPath(), 0, 5) != 'echo/') { $userobj = null; if(!empty($this->container->environment['HTTP_AUTHORIZATION']) && !empty($settings->_apiKey) && !empty($settings->_apiUserId)) { if($settings->_apiKey == $this->container->environment['HTTP_AUTHORIZATION']) { @@ -2425,6 +2431,7 @@ class Auth { /* {{{ */ $container = $app->getContainer(); $container['dms'] = $dms; $container['config'] = $settings; +$container['conversionmgr'] = $conversionmgr; $app->add(new Auth($container)); // Make CORS preflighted request possible @@ -2504,7 +2511,7 @@ $app->post('/categories', \RestapiController::class.':createCategory'); $app->put('/categories/{id}/name', \RestapiController::class.':changeCategoryName'); $app->get('/attributedefinitions', \RestapiController::class.':getAttributeDefinitions'); $app->put('/attributedefinitions/{id}/name', \RestapiController::class.':changeAttributeDefinitionName'); -$app->get('/echo', \TestController::class.':echoData'); +$app->get('/echo/{data}', \TestController::class.':echoData'); $app->run(); ?> diff --git a/styles/blue/application.js b/styles/blue/application.js deleted file mode 100644 index 2122cec18..000000000 --- a/styles/blue/application.js +++ /dev/null @@ -1,18 +0,0 @@ - $(document).ready( function() { - $(".pwd").passStrength({ - url: "../op/op.Ajax.php", - minscore: , - onChange: function(data, target) { - pws = ; - kids = $('#'+target).children(); - $(kids[1]).html(Math.round(data.strength)); - $(kids[0]).width(data.strength); - if(data.strength > pws) { - $(kids[0]).css('background-color', 'green'); - } else { - $(kids[0]).css('background-color', 'red'); - } - } - }); - }); - diff --git a/styles/blue/favicon.ico b/styles/blue/favicon.ico deleted file mode 100644 index de626d5de..000000000 Binary files a/styles/blue/favicon.ico and /dev/null differ diff --git a/styles/blue/img/bg-global-tl.png b/styles/blue/img/bg-global-tl.png deleted file mode 100644 index 99c68e0d7..000000000 Binary files a/styles/blue/img/bg-global-tl.png and /dev/null differ diff --git a/styles/blue/img/bg-global-tr.png b/styles/blue/img/bg-global-tr.png deleted file mode 100644 index 82613fbed..000000000 Binary files a/styles/blue/img/bg-global-tr.png and /dev/null differ diff --git a/styles/blue/img/bg-global.png b/styles/blue/img/bg-global.png deleted file mode 100644 index dc7ebd41f..000000000 Binary files a/styles/blue/img/bg-global.png and /dev/null differ diff --git a/styles/blue/img/blue-gradient-48px.png b/styles/blue/img/blue-gradient-48px.png deleted file mode 100644 index f15e66937..000000000 Binary files a/styles/blue/img/blue-gradient-48px.png and /dev/null differ diff --git a/styles/blue/img/blue-gradient.png b/styles/blue/img/blue-gradient.png deleted file mode 100644 index bb1dfd82a..000000000 Binary files a/styles/blue/img/blue-gradient.png and /dev/null differ diff --git a/styles/blue/img/content-bl.png b/styles/blue/img/content-bl.png deleted file mode 100644 index 369b26081..000000000 Binary files a/styles/blue/img/content-bl.png and /dev/null differ diff --git a/styles/blue/img/content-br.png b/styles/blue/img/content-br.png deleted file mode 100644 index 60c3603e7..000000000 Binary files a/styles/blue/img/content-br.png and /dev/null differ diff --git a/styles/blue/img/content-gradient.png b/styles/blue/img/content-gradient.png deleted file mode 100644 index e3122e182..000000000 Binary files a/styles/blue/img/content-gradient.png and /dev/null differ diff --git a/styles/blue/img/edge.png b/styles/blue/img/edge.png deleted file mode 100644 index b1a4b9389..000000000 Binary files a/styles/blue/img/edge.png and /dev/null differ diff --git a/styles/blue/img/small-blue-gradient.png b/styles/blue/img/small-blue-gradient.png deleted file mode 100644 index b91f3eef7..000000000 Binary files a/styles/blue/img/small-blue-gradient.png and /dev/null differ diff --git a/styles/blue/img/small-grey-gradient.png b/styles/blue/img/small-grey-gradient.png deleted file mode 100644 index 38194f416..000000000 Binary files a/styles/blue/img/small-grey-gradient.png and /dev/null differ diff --git a/styles/blue/style.css b/styles/blue/style.css deleted file mode 100644 index ffad53abb..000000000 --- a/styles/blue/style.css +++ /dev/null @@ -1,522 +0,0 @@ -/* Copyright (C) 2006-2008 Malcolm Cowe -*/ -body { - font-size: 76%; - font-family: sans-serif; -} -body.login { - width: 50%; - margin-left: auto; - margin-right: auto; -} -.headingContainer { - background: #35566c url(img/blue-gradient.png) repeat-x bottom; - border: 1px solid rgb(53,85,107); - position: relative; -} -/* IE6 Hack */ -* html .headingContainer { - position: relative; -} -.localNavContainer { - padding: 2px; - margin-bottom: 0.4em; - background: #35566c; - border: 1px solid rgb(53,85,107); - position: relative; -} -a:link { - color: rgb(231,111,0); - text-decoration: none; -} -a:visited { - color: rgb(231,111,0); - text-decoration: none; -} -a:hover { - text-decoration: underline; -} -a:active { - color: rgb(231,111,0); - text-decoration: none; -} -.headingContainer a:link { - color: white; -} -.headingContainer a:visited { - color: white; -} -.localNavContainer a:link { - color: white; -} -.localNavContainer a:visited { - color: white; -} -.contentHeading a:link { - color: white; -} -.contentHeading a:visited { - color: white; -} -.localNav a:link { - text-decoration: none; -} -.localNav a:visited { - text-decoration: none; -} -.localNav a:hover { - text-decoration: underline; -} -.globalNav a:link { - color: rgb(192,102,0); - text-decoration: none; -} -.globalNav a:visited { - color: rgb(192,102,0); - text-decoration: none; -} -.globalNav a:hover { - color: rgb(192,102,0); - text-decoration: underline; -} -.globalNav a:active { - color: rgb(192,102,0); -} -.mainHeading { - padding: 2px 4px 0px 4px; - font-size: 1.5em; - font-weight: bold; - color: white; - position: absolute; - bottom: 0px; -} -/* IE6 Hack */ -* html .mainHeading { - position: relative; -} -.contentHeading { - background: #35566c url(img/blue-gradient.png) repeat-x bottom; - color: white; - padding: 2px 4px 2px 4px; - margin-top: 10px; - font-size: 1.2em; - font-weight: bold; -} -.contentSubHeading { - font-weight: bold; - border-bottom: 1px solid; - margin-top: 1em; - margin-bottom: 2px; -} -.contentSubHeading#first { - margin-top: 0; - margin-bottom: 2px; -} - -#logo { - float:left; - margin-right: 5px; -} - -.siteName { - background: url(img/bg-global-tl.png) no-repeat top left; - padding: 2px 4px 2px 4px; - font-size: 1.6em; - font-weight: bold; - /*width: 40%; */ -} - -.siteNameLogin { - background: url(img/bg-global-tl.png) no-repeat top left; - padding: 2px 4px 0px 4px; - font-size: 3em; - font-weight: bold; - font-style: italic; - color: #fff; -} -.globalBox { - background: url(img/bg-global.png) repeat-x top left; - position: relative; - height: 4em; -} - -/* IE6 Hack */ -* html .globalBox { - position: relative; -} - -.globalBox#noNav { - height: 4em; -} -.globalBox div#signatory { - padding-left: 55px; - position: absolute; - bottom: 1px; -} - -/* IE6 Hack */ -* html .globalBox div#signatory { - position: relative; -} - -.globalNav { - padding: 4px; - list-style-type: none; - margin: 0px; - text-align: right; - float:right; -} - -/* IE6 Hack */ -* html .globalNav { - position: relative; -} - -.globalNav li { - display: inline; - padding: 0px 4px 0px 4px; - border-left: 1px solid; - } -.globalNav li#first { - border-left: none; - padding: 0px 4px 0px 0px; -} -.globalNav li form { - display: inline; -} -.globalNav li input { - font-size: 0.8em; - border: 1px solid; - padding: 1px; -} -.globalNav li input#searchButton { - border-left:0px; - padding: 0px; -} -.localNav { - padding:1px; - margin: 0px; - text-align: center; - list-style-type: none; - text-align:left; - color: white; - text-transform: uppercase; -} -.localNav li { - display: inline; - padding: 0px 4px 0px 4px; - border-left: 1px solid; -} -.localNav li#first { - border-left: none; -} -.globalTR { - background: url(img/bg-global-tr.png) no-repeat top right; - float: right; - width: 8px; - height: 8px; -} -.smallText { - font-size: 0.8em; -} -.contentContainer { - padding: 0px; - width: 100%; - margin: auto; -} -.content { - background: url(img/content-gradient.png) repeat-x bottom left; - background-color: white; - margin-top: 0.2em; - padding: 0; - border-top: 1px solid #e0e0e0; -} -.content-l { - background: url(img/edge.png) repeat-y bottom left; -} -.content-r { - background: url(img/edge.png) repeat-y bottom right; -} -.content-br { - background: url(img/content-br.png) no-repeat bottom right; -} -.content-bl { - background: url(img/content-bl.png) no-repeat bottom left; - padding: 0.6em 1em; -} -.content input, .content select { - font-size: 0.8em; - border: 1px solid; -} -.content textarea { - border: 1px solid; - font-family: sans-serif; - font-size: 1.0em; -} -td { - vertical-align: top; -} -table.folderView { - border-collapse: collapse; - width: 100%; -} -table.folderView thead tr { - border-bottom: 1px solid rgb(189, 190, 192); -} -table.folderView th, table.folderView td { - padding: 0.1em 0.4em; -} -table.folderView th { - text-align: left; -} -table.folderView td { - border-bottom: 1px solid rgb(224, 224, 224); -} -table.folderView td.center { - text-align: center; -} -table.folderView tr.folder { - border-bottom: 1px solid rgb(224, 224, 224); - background: rgb(240, 240, 240); -} -table.defaultView { - border-collapse: collapse; -} -table.defaultView thead tr { - border-bottom: 1px solid rgb(189, 190, 192); -} -table.defaultView th, table.defaultView td { - padding: 0.1em 0.4em; -} -table.defaultView th { - text-align: left; -} -table.defaultView td { - border-bottom: 1px solid rgb(224, 224, 224); -} -table.defaultView td.center { - text-align: center; -} -table.defaultView tr.folder { - border-bottom: 1px solid rgb(224, 224, 224); - background: rgb(240, 240, 240); -} -td#userImage { - border: 1px solid rgb(189, 190, 192); -} -img.userImage { - height: 72px; -} -img.mimeicon { - height: 18px; - vertical-align: middle; - border: none; -} -img.treeicon { - border: none; - padding-right: 0.1em; -} -input.mimeicon { - height: 18px; - vertical-align: middle; - border: none; -} -ul.reviewer { - padding: 0; - margin: 0; -} -ul.reviewer li { - list-style: none; - padding: 0.1em 0em; - border-top: 1px solid rgb(163, 184, 203); -} -ul.reviewer li.first { - border-top: none; -} -ul.actions, ul.documentDetail { - padding: 0; - margin: 0; -} -ul.actions li, ul.documentDetail li { - list-style: none; - padding: 0 0 0.1em 0; -} -ul.actions li.first, ul.documentDetail li.first { - border-top: none; -} -dl.documentDetail { - margin: 0; -} -dl.documentDetail dt { - font-weight: bold; -} -.cbSelectTitle { - float:left; - width: 9em; -} -.cbSelectContainer { - overflow:auto; - height: 8em; - border: 1px solid; - padding: 0.2em 0; - margin: 0.2em 0; -} -.cbSelectContainer.empty { - height: 1em; -} -.cbSelectList { - padding: 0.1em; -} -.cbSelectItem { - list-style-type: none; -} -div.pageList{ - border: 1px solid #ddd; - padding: 3px; - margin-top: 15px; - margin-bottom: 15px; -} -div.pageList span.selected{ - font-weight: bold; - color: #fff; - background-color: #35566c; - padding: 1px; -} -/* - * I rather foolishly decided to have the title of the page exist at the - * bottom of the containing DIV element. This means using absolute - * positioning in order to get the desired effect in a way that is consistent. - * However, this causes problems when the fonts are scaled as overlap can - * occur with other elements, leading to unclean layout (since absolute - * positioning removes the element from the document flow). My solution is to - * place an empty element in the page directly before the title that remains - * in the document flow. This fakes a margin around the title. - * I've also applied this to the login form in the global navigation section. - */ -span.absSpacerNorm { - display: block; - height: 1.4em; - line-height: 14px; - font-size: 1.2em; -} - -span.absSpacerTitle { - display: block; - min-height: 1.8em; - font-size: 1.5em; - padding-top: 0.2em; - visibility: hidden; -} - -div.error { - text-align: center; - margin: 20px; - padding: 20px; - border: 1px solid black; - border-radius: 15px; - background-color: #ff8787; - font-weight: bold; -} - -.disclaimer { - margin-top: 1em; - padding: 3px; - text-align: center; - border: 1px solid #000; -} - -.footNote { - text-align: center; - margin-top: 1em; -} -.legend{ - list-style: none; - border: 1px solid black; - padding: 5px; -} - -/* these are used in help only */ - -h1{ - font-size: 140%; - font-weight: bold; - background: #35566c; - color: #fff; -} - -h2{ - font-size: 110%; - font-weight: bold; - border-bottom: 1px solid #999; -} -/* these are used in calendar */ - -table.calendaryear td.today{ - border: 1px solid #000; - font-weight: bold; -} - -table.calendaryear td.header{ - font-weight: bold; -} - -table.calendaryear td{ - border: 1px solid #000; - padding : 10px; -} - -table.calendaryear table td{ - border: 0; - padding : 1px; -} - -table.calendarmonth , table.calendarweek { - margin-top: 1em; -} - -table.calendarmonth td, table.calendarweek td{ - border-bottom: 1px solid #ddd; - padding-left: 1em; - padding-right: 1em; -} - -table.calendarmonth td.separator, table.calendarweek td.separator{ - border: 0; - padding: 0; - margin:0; -} - -table.calendarmonth td.header, table.calendarmonth td.todayHeader, table.calendarweek td.header, table.calendarweek td.todayHeader{ - border: 1px solid #000; - background: #eee; - font-weight: bold; - padding: 1px; - color: #222; - padding-left: 1em; - padding-right: 1em; - padding-bottom: 1em; -} - -table.calendarmonth td.header a, table.calendarmonth td.todayHeader a, table.calendarweek td.header a, table.calendarweek td.todayHeader a{ - color: #000; -} - - -table.calendarmonth td.today, table.calendarweek td.today{ - background: #ddd; -} - -table.calendarmonth td.todayHeader, table.calendarweek td.todayHeader,table.calendarmonth td.todayHeader a, table.calendarweek td.todayHeader a{ - background: #000; - color: #eee; -} - -table.calendarweek td.header, table.calendarweek td.todayHeader{ - padding-bottom: 2em; -} - -table.searchform td{ - padding-top: 5px; - padding-bottom: 10px; - padding-right: 5px; -} diff --git a/styles/clean/application.js b/styles/clean/application.js deleted file mode 100644 index 2122cec18..000000000 --- a/styles/clean/application.js +++ /dev/null @@ -1,18 +0,0 @@ - $(document).ready( function() { - $(".pwd").passStrength({ - url: "../op/op.Ajax.php", - minscore: , - onChange: function(data, target) { - pws = ; - kids = $('#'+target).children(); - $(kids[1]).html(Math.round(data.strength)); - $(kids[0]).width(data.strength); - if(data.strength > pws) { - $(kids[0]).css('background-color', 'green'); - } else { - $(kids[0]).css('background-color', 'red'); - } - } - }); - }); - diff --git a/styles/clean/favicon.ico b/styles/clean/favicon.ico deleted file mode 100644 index e1ecd2a64..000000000 Binary files a/styles/clean/favicon.ico and /dev/null differ diff --git a/styles/clean/img/bg-global-tl.png b/styles/clean/img/bg-global-tl.png deleted file mode 100644 index 99c68e0d7..000000000 Binary files a/styles/clean/img/bg-global-tl.png and /dev/null differ diff --git a/styles/clean/img/bg-global-tr.png b/styles/clean/img/bg-global-tr.png deleted file mode 100644 index 82613fbed..000000000 Binary files a/styles/clean/img/bg-global-tr.png and /dev/null differ diff --git a/styles/clean/img/bg-global.png b/styles/clean/img/bg-global.png deleted file mode 100644 index dc7ebd41f..000000000 Binary files a/styles/clean/img/bg-global.png and /dev/null differ diff --git a/styles/clean/img/blue-gradient-48px.png b/styles/clean/img/blue-gradient-48px.png deleted file mode 100644 index f15e66937..000000000 Binary files a/styles/clean/img/blue-gradient-48px.png and /dev/null differ diff --git a/styles/clean/img/blue-gradient.png b/styles/clean/img/blue-gradient.png deleted file mode 100644 index bb1dfd82a..000000000 Binary files a/styles/clean/img/blue-gradient.png and /dev/null differ diff --git a/styles/clean/img/content-bl.png b/styles/clean/img/content-bl.png deleted file mode 100644 index 369b26081..000000000 Binary files a/styles/clean/img/content-bl.png and /dev/null differ diff --git a/styles/clean/img/content-br.png b/styles/clean/img/content-br.png deleted file mode 100644 index 60c3603e7..000000000 Binary files a/styles/clean/img/content-br.png and /dev/null differ diff --git a/styles/clean/img/content-gradient.png b/styles/clean/img/content-gradient.png deleted file mode 100644 index e3122e182..000000000 Binary files a/styles/clean/img/content-gradient.png and /dev/null differ diff --git a/styles/clean/img/edge.png b/styles/clean/img/edge.png deleted file mode 100644 index b1a4b9389..000000000 Binary files a/styles/clean/img/edge.png and /dev/null differ diff --git a/styles/clean/img/small-blue-gradient.png b/styles/clean/img/small-blue-gradient.png deleted file mode 100644 index b91f3eef7..000000000 Binary files a/styles/clean/img/small-blue-gradient.png and /dev/null differ diff --git a/styles/clean/img/small-grey-gradient.png b/styles/clean/img/small-grey-gradient.png deleted file mode 100644 index 38194f416..000000000 Binary files a/styles/clean/img/small-grey-gradient.png and /dev/null differ diff --git a/styles/clean/style.css b/styles/clean/style.css deleted file mode 100644 index 83f9c38cc..000000000 --- a/styles/clean/style.css +++ /dev/null @@ -1,556 +0,0 @@ -/* Copyright (C) 2010 Matteo Lucarelli -*/ -body { - font-size: 70%; - font-family: sans-serif; -} -body.login { - width: 50%; - margin-left: auto; - margin-right: auto; -} -.headingContainer { - background: #fff; - position: relative; -} -/* IE6 Hack */ -* html .headingContainer { - position: relative; -} -.localNavContainer { - padding: 2px; - margin-bottom: 0.4em; - background: #fff; - position: relative; -} -a:link { - color: rgb(150,50,0); - text-decoration: none; -} -a:visited { - color: rgb(150,50,0); - text-decoration: none; -} -a:hover { - color: rgb(231,111,0); - text-decoration: none; -} -a:active { - color: rgb(150,50,0); - text-decoration: none; -} - -.mainHeading { - padding: 2px 4px 0px 4px; - font-size: 1.5em; - font-weight: bold; - color: black; - position: absolute; - bottom: 0px; -} -/* IE6 Hack */ -* html .mainHeading { - position: relative; -} -.contentHeading { - background: #7d8288; - color: white; - padding: 2px 4px 2px 4px; - margin-top: 10px; - font-size: 1.2em; - font-weight: bold; -} -.contentSubHeading { - font-weight: bold; - border-bottom: 1px solid; - margin-top: 1em; - margin-bottom: 2px; -} -.contentSubHeading#first { - margin-top: 0; - margin-bottom: 2px; -} - -#logo { - float:left; - margin-right: 5px; -} - -.siteName { - background: url(img/bg-global-tl.png) no-repeat top left; - padding: 2px 4px 0px 4px; - font-size: 1.6em; - font-weight: bold; - font-style: italic; - color: #fff; -} - -.siteNameLogin { - background: url(img/bg-global-tl.png) no-repeat top left; - padding: 2px 4px 0px 4px; - font-size: 3em; - font-weight: bold; - font-style: italic; - color: #fff; -} - -.globalBox { - background: url(img/bg-global.png) repeat-x top left; - position: relative; - height: 4em; -} - -/* IE6 Hack */ -* html .globalBox { - position: relative; -} - -.globalBox#noNav { - height: 4em; -} - -div#signatory { - padding-left: 55px; - position: absolute; - bottom: 1px; -} - -/* IE6 Hack */ -* html .globalBox div#signatory { - position: relative; -} - -.globalNav { - padding: 4px; - list-style-type: none; - margin: 0px; - text-align: right; - float:right; - /*font-variant: small-caps;*/ -} - -/* IE6 Hack */ -* html .globalNav { - position: relative; -} - -.globalNav li { - display: inline; - padding: 0px 4px 0px 4px; - border-left: 1px solid; - } -.globalNav li#first { - border-left: none; - padding: 0px 4px 0px 0px; -} -.globalNav li form { - display: inline; -} -.globalNav li input { - font-size: 0.8em; - border: 1px solid; - padding: 1px; -} -.globalNav li input#searchButton { - border-left:0px; - padding: 0px; -} -.localNav { - padding:1px; - margin: 0px; - margin-top: 3px; - text-align: left; - list-style-type: none; - color: white; - text-transform: uppercase; -} -.localNav li { - font-size: 0.8em; - display: inline; - padding: 2px 4px 2px 4px; - border: 1px solid #fff; - background-color: #eee; -} - -.globalTR { - background: url(img/bg-global-tr.png) no-repeat top right; - float: right; - width: 8px; - height: 8px; -} -.smallText { - font-size: 0.8em; -} -.contentContainer { - padding: 0px; - width: 100%; - margin: auto; -} -.content { - background: url(img/content-gradient.png) repeat-x bottom left; - background-color: white; - padding: 0; - border-top: 1px solid #e0e0e0; -} -.content-l { - background: url(img/edge.png) repeat-y bottom left; -} -.content-r { - background: url(img/edge.png) repeat-y bottom right; -} -.content-br { - background: url(img/content-br.png) no-repeat bottom right; -} -.content-bl { - background: url(img/content-bl.png) no-repeat bottom left; - padding: 0.6em 1em; -} -.content input, .content select { - font-size: 1em; -} - -.content textarea { - border: 1px solid; - font-family: sans-serif; - font-size: 1em; -} -td { - vertical-align: top; -} - -table.userView { - border-collapse: collapse; - width: 100%; -} - -table.userView th { - text-align: left; -} - -ul.groupView{ - list-style: none; - font-weight: bold; -} - -ul.groupView ul{ - margin-top: 5px; - margin-bottom: 20px; - border-top: 1px solid #000; - list-style-image:url("../../out/images/usericon.gif"); - font-weight: normal; -} - -#tree-open{ - width: 25%; -} - -#tree-open ul{ - margin-left: 0px; - padding: 0; - padding-left:15px; -} - -#tree-closed{ - width: 20px; -} - -table.folderView { - border-collapse: collapse; - width: 100%; -} -table.folderView thead tr { - border-bottom: 1px solid rgb(189, 190, 192); -} -table.folderView th, table.folderView td { - padding: 0.1em 0.4em; -} -table.folderView th { - text-align: left; -} - -table.folderView td { - border-bottom: 1px solid rgb(224, 224, 224); -} - -table.folderView tr.folder { - border-bottom: 1px solid rgb(224, 224, 224); -} -table.defaultView { - border-collapse: collapse; -} -table.defaultView thead tr { - border-bottom: 1px solid rgb(189, 190, 192); -} -table.defaultView th, table.defaultView td { - padding: 0.1em 0.4em; -} -table.defaultView th { - text-align: left; -} -table.defaultView td { - border-bottom: 1px solid rgb(224, 224, 224); -} -table.defaultView td.center { - text-align: center; -} -table.defaultView tr.folder { - border-bottom: 1px solid rgb(224, 224, 224); -} -td#userImage { - border: 1px solid rgb(189, 190, 192); -} -img.userImage { - height: 72px; -} -img.mimeicon { - height: 18px; - vertical-align: middle; - border: none; -} -img.treeicon { - border: none; - padding-right: 0.1em; -} -span.selectedfoldertree{ - font-weight: bold; -} - -input.mimeicon { - height: 18px; - vertical-align: middle; - border: none; -} -ul.reviewer { - padding: 0; - margin: 0; -} -ul.reviewer li { - list-style: none; - padding: 0.1em 0em; -} - -ul.reviewer li.first { - border-top: none; -} -ul.actions { - padding: 0; - margin: 0; -} -form ul.actions li { - list-style: none; - padding: 0 0 0.1em 0; -} -ul.actions li { - list-style: none; - padding: 0 0 0.1em 0; -} - -ul.actions li img{ - padding: 3px; -} - -ul.documentDetail { - margin: 0; - padding:0; - font-size: 0.8em; - list-style: none; -} - -.cbSelectTitle { - float:left; - width: 9em; -} -.cbSelectContainer { - overflow:auto; - height: 6em; - width: 30em; - border: 1px solid #777; - margin-bottom: 3px; -} -.cbSelectContainer.empty { - height: 1em; -} -.cbSelectList { - margin:0; - padding: 0.1em; -} -.cbSelectItem { - list-style-type: none; -} - -div.pageList{ - border: 1px solid #ddd; - padding: 3px; - margin-top: 15px; - margin-bottom: 15px; -} -div.pageList span.selected{ - font-weight: bold; - color: #fff; - background-color: #7d8288; - padding: 1px; -} - -/* - * I rather foolishly decided to have the title of the page exist at the - * bottom of the containing DIV element. This means using absolute - * positioning in order to get the desired effect in a way that is consistent. - * However, this causes problems when the fonts are scaled as overlap can - * occur with other elements, leading to unclean layout (since absolute - * positioning removes the element from the document flow). My solution is to - * place an empty element in the page directly before the title that remains - * in the document flow. This fakes a margin around the title. - * I've also applied this to the login form in the global navigation section. - */ -span.absSpacerNorm { - display: block; - height: 1.4em; - line-height: 14px; - font-size: 1.2em; -} - -span.absSpacerTitle { - display: block; - min-height: 1.8em; - font-size: 1.5em; - padding-top: 0.2em; - visibility: hidden; -} - -.disclaimer { - margin-top: 1em; - padding: 3px; - text-align: center; - border: 1px solid #000; -} - -.footNote { - text-align: center; - margin-top: 1em; -} - -.warning{ - font-weight: bold; - padding:0.1em; - border: 1px solid rgb(255,0,0); -} - -.install_warning{ - margin: 20px; - padding: 10px; - background: #fa0; - color: #fff; - font-weight: bold; - font-size: 120%; -} -.error, .install_error{ - margin: 20px; - padding: 10px; - background: #f00; - color: #fff; - font-weight: bold; - font-size: 120%; -} -.legend{ - list-style: none; - border: 1px solid black; - padding: 5px; -} - -pre{ - font-size: 140%; -} - -/* these are used in help only */ - -h1{ - font-size: 140%; - font-weight: bold; - background: #7d8288; - color: #fff; - padding-left: 5px; -} - -h2{ - font-size: 110%; - font-weight: bold; - border-bottom: 1px solid #999; -} - -/* these are used in calendar */ - -table.calendaryear td.today{ - border: 1px solid #7d8288; - font-weight: bold; -} - -table.calendaryear td.header{ - font-weight: bold; - color: #444; -} - -table.calendaryear td{ - border: 1px solid #000; - padding : 10px; -} - -table.calendaryear table td{ - border: 0; - padding : 1px; -} - -table.calendarmonth , table.calendarweek { - margin-top: 1em; -} - -table.calendarmonth td, table.calendarweek td{ - border-bottom: 1px solid #ddd; - padding-left: 1em; - padding-right: 1em; -} - -table.calendarmonth td.separator, table.calendarweek td.separator{ - border: 0; - padding: 0; - margin:0; -} - -table.calendarmonth td.header, table.calendarmonth td.todayHeader, table.calendarweek td.header, table.calendarweek td.todayHeader{ - border: 1px solid #7d8288; - background: #eee; - font-weight: bold; - padding: 1px; - color: #222; - padding-left: 1em; - padding-right: 1em; - padding-bottom: 1em; -} - -table.calendarmonth td.header a, table.calendarmonth td.todayHeader a, table.calendarweek td.header a, table.calendarweek td.todayHeader a{ - color: #000; -} - - -table.calendarmonth td.today, table.calendarweek td.today{ - background: #eee; -} - -table.calendarmonth td.todayHeader, table.calendarweek td.todayHeader,table.calendarmonth td.todayHeader a, table.calendarweek td.todayHeader a{ - background: #7d8288; - color: #fff; -} - -table.calendarweek td.header, table.calendarweek td.todayHeader{ - padding-bottom: 2em; -} - -table.searchform td{ - padding-top: 5px; - padding-bottom: 10px; - padding-right: 5px; -} - -div.logview{ - overflow:auto; - font-size: 80%; -} diff --git a/styles/hc/application.js b/styles/hc/application.js deleted file mode 100644 index 2122cec18..000000000 --- a/styles/hc/application.js +++ /dev/null @@ -1,18 +0,0 @@ - $(document).ready( function() { - $(".pwd").passStrength({ - url: "../op/op.Ajax.php", - minscore: , - onChange: function(data, target) { - pws = ; - kids = $('#'+target).children(); - $(kids[1]).html(Math.round(data.strength)); - $(kids[0]).width(data.strength); - if(data.strength > pws) { - $(kids[0]).css('background-color', 'green'); - } else { - $(kids[0]).css('background-color', 'red'); - } - } - }); - }); - diff --git a/styles/hc/favicon.ico b/styles/hc/favicon.ico deleted file mode 100644 index e1ecd2a64..000000000 Binary files a/styles/hc/favicon.ico and /dev/null differ diff --git a/styles/hc/img/bg-global-tl.png b/styles/hc/img/bg-global-tl.png deleted file mode 100644 index 99c68e0d7..000000000 Binary files a/styles/hc/img/bg-global-tl.png and /dev/null differ diff --git a/styles/hc/img/bg-global-tr.png b/styles/hc/img/bg-global-tr.png deleted file mode 100644 index 82613fbed..000000000 Binary files a/styles/hc/img/bg-global-tr.png and /dev/null differ diff --git a/styles/hc/img/bg-global.png b/styles/hc/img/bg-global.png deleted file mode 100644 index dc7ebd41f..000000000 Binary files a/styles/hc/img/bg-global.png and /dev/null differ diff --git a/styles/hc/img/blue-gradient-48px.png b/styles/hc/img/blue-gradient-48px.png deleted file mode 100644 index f15e66937..000000000 Binary files a/styles/hc/img/blue-gradient-48px.png and /dev/null differ diff --git a/styles/hc/img/blue-gradient.png b/styles/hc/img/blue-gradient.png deleted file mode 100644 index bb1dfd82a..000000000 Binary files a/styles/hc/img/blue-gradient.png and /dev/null differ diff --git a/styles/hc/img/content-bl.png b/styles/hc/img/content-bl.png deleted file mode 100644 index 369b26081..000000000 Binary files a/styles/hc/img/content-bl.png and /dev/null differ diff --git a/styles/hc/img/content-br.png b/styles/hc/img/content-br.png deleted file mode 100644 index 60c3603e7..000000000 Binary files a/styles/hc/img/content-br.png and /dev/null differ diff --git a/styles/hc/img/content-gradient.png b/styles/hc/img/content-gradient.png deleted file mode 100644 index e3122e182..000000000 Binary files a/styles/hc/img/content-gradient.png and /dev/null differ diff --git a/styles/hc/img/edge.png b/styles/hc/img/edge.png deleted file mode 100644 index b1a4b9389..000000000 Binary files a/styles/hc/img/edge.png and /dev/null differ diff --git a/styles/hc/img/small-blue-gradient.png b/styles/hc/img/small-blue-gradient.png deleted file mode 100644 index b91f3eef7..000000000 Binary files a/styles/hc/img/small-blue-gradient.png and /dev/null differ diff --git a/styles/hc/img/small-grey-gradient.png b/styles/hc/img/small-grey-gradient.png deleted file mode 100644 index 38194f416..000000000 Binary files a/styles/hc/img/small-grey-gradient.png and /dev/null differ diff --git a/styles/hc/style.css b/styles/hc/style.css deleted file mode 100644 index 74c0dea5c..000000000 --- a/styles/hc/style.css +++ /dev/null @@ -1,482 +0,0 @@ -/* Copyright (C) 2006-2008 Malcolm Cowe -*/ -body { - font-size: 90%; - font-family: sans-serif; -} -body.login { - width: 50%; - margin-left: auto; - margin-right: auto; -} -.headingContainer { - background: #fff; - position: relative; -} -/* IE6 Hack */ -* html .headingContainer { - position: relative; -} -.localNavContainer { - padding: 2px; - margin-bottom: 0.4em; - background: #fff; - position: relative; -} -a:link { - color: rgb(0,0,100); - text-decoration: none; -} -a:visited { - color: rgb(0,0,100); - text-decoration: none; -} -a:hover { - color: rgb(255,0,0); - text-decoration: none; -} -a:active { - color: rgb(0,0,100); - text-decoration: none; -} - -.mainHeading { - padding: 2px 4px 0px 4px; - font-size: 1.5em; - font-weight: bold; - color: black; - position: absolute; - bottom: 0px; -} -/* IE6 Hack */ -* html .mainHeading { - position: relative; -} -.contentHeading { - background: #000; - color: white; - padding: 2px 4px 2px 4px; - margin-top: 10px; - font-size: 1.2em; - font-weight: bold; -} -.contentSubHeading { - font-weight: bold; - border-bottom: 1px solid; - margin-top: 1em; - margin-bottom: 2px; -} -.contentSubHeading#first { - margin-top: 0; - margin-bottom: 2px; -} - -#logo { - float:left; - margin-right: 5px; -} - -.siteName { - background: url(img/bg-global-tl.png) no-repeat top left; - padding: 2px 4px 0px 4px; - font-size: 1.8em; - font-weight: bold; - font-style: italic; - color: #fff; -} - -.siteNameLogin { - background: url(img/bg-global-tl.png) no-repeat top left; - padding: 2px 4px 0px 4px; - font-size: 3em; - font-weight: bold; - font-style: italic; - color: #fff; -} - -.globalBox { - background: url(img/bg-global.png) repeat-x top left; - position: relative; - height: 4em; -} - -/* IE6 Hack */ -* html .globalBox { - position: relative; -} - -.globalBox#noNav { - height: 4em; -} -.globalBox div#signatory { - padding-left: 55px; - position: absolute; - bottom: 1px; -} - -/* IE6 Hack */ -* html .globalBox div#signatory { - position: relative; -} - -.globalNav { - padding: 4px; - list-style-type: none; - margin: 0px; - text-align: right; - float:right; -} - -/* IE6 Hack */ -* html .globalNav { - position: relative; -} - -.globalNav li { - display: inline; - padding: 0px 4px 0px 4px; - border-left: 1px solid; - } -.globalNav li#first { - border-left: none; - padding: 0px 4px 0px 0px; -} -.globalNav li form { - display: inline; -} -.globalNav li input { - font-size: 0.8em; - border: 1px solid; - padding: 1px; -} -.globalNav li input#searchButton { - border-left:0; - padding: 0px; -} -.localNav { - padding:1px; - margin: 0px; - margin-top: 3px; - text-align: left; - list-style-type: none; - color: white; - text-transform: uppercase; -} -.localNav li { - font-size: 0.8em; - display: inline; - padding: 2px 4px 2px 4px; - border: 1px solid #000; - background-color: #fff; -} - -.globalTR { - background: url(img/bg-global-tr.png) no-repeat top right; - float: right; - width: 8px; - height: 8px; -} -.smallText { - font-size: 0.8em; -} -.contentContainer { - padding: 0px; - width: 100%; - margin: auto; -} -.content { - background: url(img/content-gradient.png) repeat-x bottom left; - background-color: white; - padding: 0; - border-top: 1px solid #e0e0e0; -} -.content-l { - background: url(img/edge.png) repeat-y bottom left; -} -.content-r { - background: url(img/edge.png) repeat-y bottom right; -} -.content-br { - background: url(img/content-br.png) no-repeat bottom right; -} -.content-bl { - background: url(img/content-bl.png) no-repeat bottom left; - padding: 0.6em 1em; -} -.content input, .content select { - font-size: 0.8em; -} - -.content textarea { - border: 1px solid; - font-family: sans-serif; - font-size: 1.0em; -} -td { - vertical-align: top; -} -table.folderView { - border-collapse: collapse; - width: 100%; -} -table.folderView thead tr { - border-bottom: 1px solid rgb(189, 190, 192); -} -table.folderView th, table.folderView td { - padding: 0.1em 0.4em; -} -table.folderView th { - text-align: left; -} -table.folderView td { - border-bottom: 1px solid rgb(224, 224, 224); -} -table.folderView td.center { - text-align: center; -} -table.folderView tr.folder { - border-bottom: 1px solid rgb(224, 224, 224); - background: #fff; -} -table.defaultView { - border-collapse: collapse; -} -table.defaultView thead tr { - border-bottom: 1px solid rgb(189, 190, 192); -} -table.defaultView th, table.defaultView td { - padding: 0.1em 0.4em; -} -table.defaultView th { - text-align: left; -} -table.defaultView td { - border-bottom: 1px solid rgb(224, 224, 224); -} -table.defaultView td.center { - text-align: center; -} -table.defaultView tr.folder { - border-bottom: 1px solid rgb(224, 224, 224); - background: #fff; -} -td#userImage { - border: 1px solid rgb(189, 190, 192); -} -img.userImage { - height: 72px; -} -img.mimeicon { - height: 18px; - vertical-align: middle; - border: none; -} -img.treeicon { - border: none; - padding-right: 0.1em; -} -input.mimeicon { - height: 18px; - vertical-align: middle; - border: none; -} -ul.reviewer { - padding: 0; - margin: 0; -} -ul.reviewer li { - list-style: none; - padding: 0.1em 0em; - border-top: 1px solid rgb(163, 184, 203); -} - -ul.reviewer li.first { - border-top: none; -} -ul.actions { - padding: 0; - margin: 0; -} -form ul.actions li { - list-style: none; - padding: 0 0 0.1em 0; - display: inline; -} -ul.actions li { - list-style: none; - padding: 0 0 0.1em 0; -} -ul.actions li.first { - border-top: none; -} -dl.documentDetail { - margin: 0; - font-size: 0.8em; -} -dl.documentDetail dt { - font-weight: bold; -} -.cbSelectTitle { - float:left; - width: 9em; -} -.cbSelectContainer { - overflow:auto; - height: 8em; - border: 1px solid; - padding: 0.2em 0; - margin: 0.2em 0; -} -.cbSelectContainer.empty { - height: 1em; -} -.cbSelectList { - padding: 0.1em; -} -.cbSelectItem { - list-style-type: none; -} - -div.pageList{ - border: 1px solid #ddd; - padding: 3px; - margin-top: 15px; - margin-bottom: 15px; -} -div.pageList span.selected{ - font-weight: bold; - color: #fff; - background-color: #000; - padding: 1px; -} - -/* - * I rather foolishly decided to have the title of the page exist at the - * bottom of the containing DIV element. This means using absolute - * positioning in order to get the desired effect in a way that is consistent. - * However, this causes problems when the fonts are scaled as overlap can - * occur with other elements, leading to unclean layout (since absolute - * positioning removes the element from the document flow). My solution is to - * place an empty element in the page directly before the title that remains - * in the document flow. This fakes a margin around the title. - * I've also applied this to the login form in the global navigation section. - */ -span.absSpacerNorm { - display: block; - height: 1.4em; - line-height: 14px; - font-size: 1.2em; -} - -span.absSpacerTitle { - display: block; - min-height: 1.8em; - font-size: 1.5em; - padding-top: 0.2em; - visibility: hidden; -} - -.disclaimer { - margin-top: 1em; - padding: 3px; - text-align: center; - border: 1px solid #000; - background: #000; - color: #fff; -} - -.footNote { - text-align: center; - margin-top: 1em; -} - -.warning{ - color: rgb(150,50,0); - font-weight: bold; - text-decoration: underline; -} - -.error{ - margin: 20px; - padding: 10px; - background: #f00; - color: #fff; - font-weight: bold; - font-size: 1.2em; -} -.legend{ - list-style: none; - border: 1px solid black; - padding: 5px; -} -/* these are used in calendar */ - -table.calendaryear td.today{ - border: 1px solid #000; - font-weight: bold; -} - -table.calendaryear td.header{ - font-weight: bold; -} - -table.calendaryear td{ - border: 1px solid #000; - padding : 10px; -} - -table.calendaryear table td{ - border: 0; - padding : 1px; -} - -table.calendarmonth , table.calendarweek { - margin-top: 1em; -} - -table.calendarmonth td, table.calendarweek td{ - border-bottom: 1px solid #ddd; - padding-left: 1em; - padding-right: 1em; -} - -table.calendarmonth td.separator, table.calendarweek td.separator{ - border: 0; - padding: 0; - margin:0; -} - -table.calendarmonth td.header, table.calendarmonth td.todayHeader, table.calendarweek td.header, table.calendarweek td.todayHeader{ - border: 1px solid #000; - background: #eee; - font-weight: bold; - padding: 1px; - color: #222; - padding-left: 1em; - padding-right: 1em; - padding-bottom: 1em; -} - -table.calendarmonth td.header a, table.calendarmonth td.todayHeader a, table.calendarweek td.header a, table.calendarweek td.todayHeader a{ - color: #000; -} - - -table.calendarmonth td.today, table.calendarweek td.today{ - background: #ddd; -} - -table.calendarmonth td.todayHeader, table.calendarweek td.todayHeader,table.calendarmonth td.todayHeader a, table.calendarweek td.todayHeader a{ - background: #000; - color: #eee; -} - -table.calendarweek td.header, table.calendarweek td.todayHeader{ - padding-bottom: 2em; -} - -table.searchform td{ - padding-top: 5px; - padding-bottom: 10px; - padding-right: 5px; -} diff --git a/styles/logo.png b/styles/logo.png deleted file mode 100644 index b662349ae..000000000 Binary files a/styles/logo.png and /dev/null differ diff --git a/utils/adddoc.php b/utils/adddoc.php index 925d86d59..9ff44051f 100644 --- a/utils/adddoc.php +++ b/utils/adddoc.php @@ -122,9 +122,9 @@ if(isset($options['f'])) { exit(1); } -$mimetype = ''; +$mymimetype = ''; if(isset($options['t'])) { - $mimetype = $options['t']; + $mymimetype = $options['t']; } $reqversion = 0; @@ -248,8 +248,8 @@ if(isset($GLOBALS['SEEDDMS_HOOKS']['notification'])) { if(is_readable($filename)) { if(filesize($filename)) { $finfo = new finfo(FILEINFO_MIME_TYPE); - if(!$mimetype) { - $mimetype = $finfo->file($filename); + if(!$mymimetype) { + $mymimetype = $finfo->file($filename); } $filetype = "." . pathinfo($filename, PATHINFO_EXTENSION); } else { @@ -304,20 +304,11 @@ $filetmp = $filename; $reviewers = array(); $approvers = array(); -if($settings->_enableFullSearch) { - $index = $indexconf['Indexer']::open($settings->_luceneDir); - $indexconf['Indexer']::init($settings->_stopWordsFile); -} else { - $index = null; - $indexconf = null; -} - if($folder) { $controller = Controller::factory('AddDocument', array('dms'=>$dms, 'user'=>$user)); $controller->setParam('documentsource', 'script'); $controller->setParam('folder', $folder); - $controller->setParam('index', $index); - $controller->setParam('indexconf', $indexconf); + $controller->setParam('fulltextservice', $fulltextservice); $controller->setParam('name', $name); $controller->setParam('comment', $comment); $controller->setParam('expires', $expires); @@ -327,7 +318,7 @@ if($folder) { $controller->setParam('userfiletmp', $filetmp); $controller->setParam('userfilename', basename($filename)); $controller->setParam('filetype', $filetype); - $controller->setParam('userfiletype', $mimetype); + $controller->setParam('userfiletype', $mymimetype); $minmax = $folder->getDocumentsMinMax(); if($settings->_defaultDocPosition == 'start') $controller->setParam('sequence', $minmax['min'] - 1); diff --git a/utils/xmldump.php b/utils/xmldump.php index 54a14bf09..e85ef09fa 100644 --- a/utils/xmldump.php +++ b/utils/xmldump.php @@ -87,10 +87,9 @@ if(isset($options['sections'])) { $sections = explode(',', $options['sections']); } +$folderid = 0; if(isset($options['folder'])) { $folderid = intval($options['folder']); -} else { - $folderid = $settings->_rootFolderID; } $skiproot = false; @@ -464,6 +463,10 @@ include($myincpath."/inc/inc.Init.php"); include($myincpath."/inc/inc.Extension.php"); include($myincpath."/inc/inc.DBInit.php"); +if(!$folderid) { + $folderid = $settings->_rootFolderID; +} + echo "\n"; echo "getDBVersion(), 1, 3))."\" date=\"".date('Y-m-d H:i:s')."\">\n"; diff --git a/views/bootstrap/class.AddDocument.php b/views/bootstrap/class.AddDocument.php index f432deccd..563ba9670 100644 --- a/views/bootstrap/class.AddDocument.php +++ b/views/bootstrap/class.AddDocument.php @@ -223,23 +223,25 @@ console.log(params); getMLText("keywords"), $this->getKeywordChooserHtml('adddocform') ); - if(!$nodocumentformfields || !in_array('categories', $nodocumentformfields)) { - $options = array(); $categories = $dms->getDocumentCategories(); - foreach($categories as $category) { - $options[] = array($category->getID(), $category->getName()); - } - $this->formField( - getMLText("categories"), - array( - 'element'=>'select', - 'class'=>'chzn-select', - 'name'=>'categories[]', - 'multiple'=>true, - 'attributes'=>array(array('data-placeholder', getMLText('select_category'), array('data-no_results_text', getMLText('unknown_document_category')))), - 'options'=>$options - ) - ); + if($categories) { + if(!$nodocumentformfields || !in_array('categories', $nodocumentformfields)) { + $options = array(); + foreach($categories as $category) { + $options[] = array($category->getID(), $category->getName()); + } + $this->formField( + getMLText("categories"), + array( + 'element'=>'select', + 'class'=>'chzn-select', + 'name'=>'categories[]', + 'multiple'=>true, + 'attributes'=>array(array('data-placeholder', getMLText('select_category'), array('data-no_results_text', getMLText('unknown_document_category')))), + 'options'=>$options + ) + ); + } } if(!$nodocumentformfields || !in_array('sequence', $nodocumentformfields)) { $this->formField(getMLText("sequence"), $this->getSequenceChooser($folder->getDocuments('s')).($orderby != 's' ? "
".getMLText('order_by_sequence_off') : '')); @@ -397,12 +399,13 @@ console.log(params); $this->getDropFolderChooserHtml("adddocform", $dropfolderfile) ); } - 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; - } + 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); + } elseif(is_string($ar)) { + echo $ar; + } } if(!$nodocumentformfields || !in_array('version_comment', $nodocumentformfields)) { $this->formField( 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.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.ApprovalSummary.php b/views/bootstrap/class.ApprovalSummary.php index d11d47976..21233bd98 100644 --- a/views/bootstrap/class.ApprovalSummary.php +++ b/views/bootstrap/class.ApprovalSummary.php @@ -119,6 +119,7 @@ class SeedDMS_View_ApprovalSummary extends SeedDMS_Theme_Style { $version = $document->getContentByVersion($st['version']); $modgroup = $dms->getGroup($st['required']); + /* Filter out those documents which already require an approval as an individual */ if (!in_array($st["documentID"], $iRev) && $document && $version) { if ($printheader){ diff --git a/views/bootstrap/class.AttributeMgr.php b/views/bootstrap/class.AttributeMgr.php index 528a98500..16934ddb5 100644 --- a/views/bootstrap/class.AttributeMgr.php +++ b/views/bootstrap/class.AttributeMgr.php @@ -134,13 +134,8 @@ $(document).ready( function() { } if($res['folders'] || $res['docs']) { - print ""; - print "\n\n"; - print "\n"; - print "\n"; - print "\n"; - print "\n"; - print "\n\n\n"; + print $this->folderListHeader(); + print "\n"; foreach($res['folders'] as $subFolder) { echo $this->folderListRow($subFolder); } @@ -308,6 +303,7 @@ $(document).ready( function() { 'element'=>'input', 'type'=>'text', 'name'=>'regex', + 'placeholder'=>'/[0-9]+abc.-*/', 'value'=>($attrdef ? $attrdef->getRegex() : ''), ), ['help'=>getMLText('attrdef_regex_help')] diff --git a/views/bootstrap/class.Bootstrap.php b/views/bootstrap/class.Bootstrap.php index 849faef0a..b19f1d7c3 100644 --- a/views/bootstrap/class.Bootstrap.php +++ b/views/bootstrap/class.Bootstrap.php @@ -58,18 +58,21 @@ class SeedDMS_Theme_Style extends SeedDMS_View_Common { * Content-Security-Policy since version 23+ * 'worker-src blob:' is needed for cytoscape */ - $csp_rules = ''; - $csp_rules .= "script-src 'self' 'unsafe-eval'"; + $csp_rules = []; + $csp_rule = "script-src 'self' 'unsafe-eval'"; if($this->nonces) { - $csp_rules .= " 'nonce-".implode("' 'nonce-", $this->nonces)."'"; + $csp_rule .= " 'nonce-".implode("' 'nonce-", $this->nonces)."'"; } - $csp_rules .= ";"; - $csp_rules .= " worker-src blob:;"; - //$csp_rules .= "style-src 'self';"; + $csp_rules[] = $csp_rule; + $csp_rules[] = "worker-src blob:"; + //$csp_rules[] = "style-src 'self'"; /* Do not allow to embed myself into frames on foreigns pages */ - $csp_rules .= " frame-ancestors 'self';"; + $csp_rules[] = "frame-ancestors 'self'"; + if($this->hasHook('getCspRules')) { + $csp_rules = $this->callHook('getCspRules', $csp_rules); + } foreach (array("X-WebKit-CSP", "X-Content-Security-Policy", "Content-Security-Policy") as $csp) { - header($csp . ": " . $csp_rules); + header($csp . ": " . implode('; ', $csp_rules).';'); } } header('X-Content-Type-Options: nosniff'); @@ -84,7 +87,7 @@ class SeedDMS_Theme_Style extends SeedDMS_View_Common { echo "\n"; echo "\n\n"; echo "\n"; - echo ''."\n"; + echo ''."\n"; if($base) echo ''."\n"; elseif($this->baseurl) @@ -92,19 +95,19 @@ class SeedDMS_Theme_Style extends SeedDMS_View_Common { $sitename = trim(strip_tags($this->params['sitename'])); if($this->params['session']) echo ''."\n"; - echo ''."\n"; - echo ''."\n"; - echo ''."\n"; - echo ''."\n"; - echo ''."\n"; - echo ''."\n"; - echo ''."\n"; - echo ''."\n"; - echo ''."\n"; + echo ''."\n"; + echo ''."\n"; + echo ''."\n"; + echo ''."\n"; + echo ''."\n"; + echo ''."\n"; + echo ''."\n"; + echo ''."\n"; + echo ''."\n"; if($this->extraheader['css']) echo $this->extraheader['css']; if(method_exists($this, 'css')) - echo ''."\n"; + echo ''."\n"; echo ''."\n"; if($this->extraheader['js']) @@ -181,8 +184,10 @@ background-image: linear-gradient(to bottom, #882222, #111111);; $tmp['action'] = 'webrootjs'; if(isset($tmp['formtoken'])) unset($tmp['formtoken']); + if(isset($tmp['referuri'])) + unset($tmp['referuri']); if(!empty($this->params['class'])) - echo ''."\n"; + echo ''."\n"; echo ''."\n"; if($this->params['enablemenutasks'] && isset($this->params['user']) && $this->params['user']) { $this->addFooterJS('SeedDMSTask.run();'); @@ -205,12 +210,12 @@ background-image: linear-gradient(to bottom, #882222, #111111);; } $tmp['action'] = 'footerjs'; $tmp['hashjs'] = $hashjs; - echo ''."\n"; + echo ''."\n"; } if(method_exists($this, 'js')) { parse_str($_SERVER['QUERY_STRING'], $tmp); $tmp['action'] = 'js'; - echo ''."\n"; + echo ''."\n"; } echo "\n\n"; } /* }}} */ @@ -245,7 +250,7 @@ background-image: linear-gradient(to bottom, #882222, #111111);; echo "
".getMLText("name")."".getMLText("status")."".getMLText("action")."
"; 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"; @@ -289,7 +294,7 @@ background-image: linear-gradient(to bottom, #882222, #111111);; echo "
\n"; echo " \n"; @@ -1076,7 +1081,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])) @@ -1117,8 +1122,9 @@ 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['required']) ? ' required' : '').">".(!empty($value['value']) ? $value['value'] : '').""; + (!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': echo $value['value']; @@ -1127,6 +1133,8 @@ background-image: linear-gradient(to bottom, #882222, #111111);; default: switch($value['type']) { default: + if(!empty($value['addon'])) + echo ""; echo '"; + echo "/>"; + if(!empty($value['addon'])) { + echo ''.$value['addon'].''; + echo "\n"; + } break; } break; @@ -1280,9 +1292,10 @@ background-image: linear-gradient(to bottom, #882222, #111111);; $attrs[] = array('href', $config['remote']); $attrs[] = array('data-toggle', 'modal'); $attrs[] = array('role', 'button'); - if(isset($config['class'])) - $attrs[] = array('class', $config['class']); - else + if(isset($config['class'])) { + if($config['class']) + $attrs[] = array('class', $config['class']); + } else $attrs[] = array('class', 'btn'); return $attrs; } /* }}} */ @@ -1297,8 +1310,8 @@ background-image: linear-gradient(to bottom, #882222, #111111);; * @return string */ function getModalBoxLink($config) { /* {{{ */ - $content = ''; - $content .= " + '; @@ -1631,7 +1644,7 @@ $(document).ready(function() { $content = ''; $content .= '
- '; + '; $content .= $this->getModalBoxLink( array( 'target' => 'keywordChooser', @@ -1775,11 +1788,11 @@ $(document).ready(function() { break; case SeedDMS_Core_AttributeDefinition::type_email: $objvalue = $attribute ? (is_object($attribute) ? $attribute->getValue() : $attribute) : ''; - $content .= "getId()."]\" value=\"".htmlspecialchars($objvalue)."\"".((!$norequire && $attrdef->getMinValues() > 0) ? ' required' : '').' data-rule-email="true"'." />"; + $content .= "getId()."]\" value=\"".htmlspecialchars($objvalue)."\"".((!$norequire && $attrdef->getMinValues() > 0) ? ' required="required"' : '').' data-rule-email="true"'." />"; break; case SeedDMS_Core_AttributeDefinition::type_float: $objvalue = $attribute ? (is_object($attribute) ? $attribute->getValue() : $attribute) : ''; - $content .= "getId()."\" name=\"".$fieldname."[".$attrdef->getId()."]\" value=\"".htmlspecialchars($objvalue)."\"".((!$norequire && $attrdef->getMinValues() > 0) ? ' required' : '')." data-rule-number=\"true\"/>"; + $content .= "getId()."\" name=\"".$fieldname."[".$attrdef->getId()."]\" value=\"".htmlspecialchars($objvalue)."\"".((!$norequire && $attrdef->getMinValues() > 0) ? ' required="required"' : '')." data-rule-number=\"true\"/>"; break; case SeedDMS_Core_AttributeDefinition::type_folder: $objvalue = $attribute ? (is_object($attribute) ? (int) $attribute->getValue() : (int) $attribute) : 0; @@ -1798,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; @@ -1818,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; @@ -1846,7 +1859,7 @@ $(document).ready(function() { } else { $content .= "\" data-allow-clear=\"true\""; } - $content .= "".((!$norequire && $attrdef->getMinValues() > 0) ? ' required' : '')." class=\"chzn-select\" data-placeholder=\"".getMLText("select_value")."\">"; + $content .= "".((!$norequire && $attrdef->getMinValues() > 0) ? ' required="required"' : '')." class=\"chzn-select\" data-placeholder=\"".getMLText("select_value")."\">"; if(!$attrdef->getMultipleValues()) { $content .= ""; } @@ -1865,9 +1878,9 @@ $(document).ready(function() { } else { $objvalue = $attribute ? (is_object($attribute) ? $attribute->getValue() : $attribute) : ''; if(strlen($objvalue) > 80) { - $content .= ""; + $content .= ""; } else { - $content .= "getId()."\" name=\"".$fieldname."[".$attrdef->getId()."]\" value=\"".htmlspecialchars($objvalue)."\"".((!$norequire && $attrdef->getMinValues() > 0) ? ' required' : '').($attrdef->getType() == SeedDMS_Core_AttributeDefinition::type_int ? ' data-rule-digits="true"' : '')." />"; + $content .= "getId()."\" name=\"".$fieldname."[".$attrdef->getId()."]\" value=\"".htmlspecialchars($objvalue)."\"".((!$norequire && $attrdef->getMinValues() > 0) ? ' required="required"' : '').($attrdef->getType() == SeedDMS_Core_AttributeDefinition::type_int ? ' data-rule-digits="true"' : '')." />"; } } break; @@ -2039,7 +2052,7 @@ $(document).ready(function() { function printNewTreeNavigationHtml($folderid=0, $accessmode=M_READ, $showdocs=0, $formid='form1', $expandtree=0, $orderby='') { /* {{{ */ //echo "
\n"; - echo "
\n"; + echo "
\n"; } /* }}} */ /** @@ -2162,9 +2175,9 @@ $(function() { onCreateLi: function(node, $li) { // Add 'icon' span before title if(node.is_folder) - $li.find('.jqtree-title').before(' ').attr('data-name', node.name).attr('rel', 'folder_' + node.id).attr('formtoken', '').attr('data-uploadformtoken', '').attr('data-droptarget', 'folder_' + node.id).addClass('droptarget'); + $li.find('.jqtree-title').prepend(' ').attr('data-name', node.name).attr('rel', 'folder_' + node.id).attr('formtoken', '').attr('data-uploadformtoken', '').attr('data-droptarget', 'folder_' + node.id).addClass('droptarget'); else - $li.find('.jqtree-title').before(' '); + $li.find('.jqtree-title').prepend(' '); } }); // Unfold node for currently selected folder @@ -2498,12 +2511,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; @@ -2822,6 +2838,44 @@ $('body').on('click', '[id^=\"table-row-folder\"] td:nth-child(2)', function(ev) return $belowtitle; } /* }}} */ + public function folderListHeaderImage() { /* {{{ */ + $folder = $this->getParam('folder'); + $onepage = $this->params['onepage']; + $parent = ($folder && $onepage) ? $folder->getParent() : null; + $headcol = ($parent ? '' : '')."\n"; + return $headcol; + } /* }}} */ + + public function folderListHeaderName() { /* {{{ */ + $folder = $this->getParam('folder'); + $headcol = getMLText("name"); + if($folder) { + $folderid = $folder->getId(); + $orderby = $this->params['orderby']; + $orderdir = (isset($orderby[1]) ? ($orderby[1] == 'd' ? 'desc' : 'asc') : 'asc'); + $headcol .= " params['settings']->_httpRoot."out/out.ViewFolder.php?folderid=". $folderid .($orderby=="n"||$orderby=="na"?"&orderby=nd":"&orderby=n")."\" data-orderby=\"".($orderby=="n"||$orderby=="na"?"nd":"n")."\"title=\"".getMLText("sort_by_name")."\">".($orderby=="n"||$orderby=="na"?' ':($orderby=="nd"?' ':' ')).""; + $headcol .= " params['settings']->_httpRoot."out/out.ViewFolder.php?folderid=". $folderid .($orderby=="s"||$orderby=="sa"?"&orderby=sd":"&orderby=s")."\" data-orderby=\"".($orderby=="s"||$orderby=="sa"?"sd":"s")."\" title=\"".getMLText("sort_by_sequence")."\">".($orderby=="s"||$orderby=="sa"?' ':($orderby=="sd"?' ':' ')).""; + $headcol .= " params['settings']->_httpRoot."out/out.ViewFolder.php?folderid=". $folderid .($orderby=="d"||$orderby=="da"?"&orderby=dd":"&orderby=d")."\" data-orderby=\"".($orderby=="d"||$orderby=="da"?"dd":"d")."\" title=\"".getMLText("sort_by_date")."\">".($orderby=="d"||$orderby=="da"?' ':($orderby=="dd"?' ':' ')).""; + } + return $headcol; + } /* }}} */ + + public function folderListHeader() { /* {{{ */ + $content = ""; + $content .= "\n\n"; + $headcols = array(); + $headcols['image'] = $this->folderListHeaderImage(); + $headcols['name'] = $this->folderListHeaderName(); + if($ec = $this->callHook('folderListHeaderExtraColumns')) + $headcols = array_merge($headcols, $ec); + $headcols['status'] = getMLText("status"); + $headcols['action'] = getMLText("action"); + foreach($headcols as $headcol) + $content .= "\n"; + $content .= "\n\n"; + return $content; + } /* }}} */ + /** * Start the row for a folder in list of documents and folders * @@ -2837,6 +2891,96 @@ $('body').on('click', '[id^=\"table-row-folder\"] td:nth-child(2)', function(ev) return "\n"; } /* }}} */ + function documentListRowStatus($latestContent) { /* {{{ */ + $user = $this->params['user']; + $workflowmode = $this->params['workflowmode']; + $document = $latestContent->getDocument(); + + $status = $latestContent->getStatus(); + $attentionstr = ''; + if ( $document->isLocked() ) { + $attentionstr .= "getImgPath("lock.png")."\" title=\"". getMLText("locked_by").": ".htmlspecialchars($document->getLockingUser()->getFullName())."\"> "; + } + $needwkflaction = false; + if($workflowmode == 'advanced') { + $workflow = $latestContent->getWorkflow(); + if($workflow) { + $needwkflaction = $latestContent->needsWorkflowAction($user); + } + } + if ( $needwkflaction ) { + $attentionstr .= "getImgPath("attention.gif")."\" title=\"". getMLText("workflow").": ".htmlspecialchars($workflow->getName())."\"> "; + } + $content = ''; + if($attentionstr) + $content .= $attentionstr."
"; + $content .= ""; + /* Retrieve attacheѕ files */ + $files = $document->getDocumentFiles($latestContent->getVersion()); + $files = SeedDMS_Core_DMS::filterDocumentFiles($user, $files); + + /* Retrieve linked documents */ + $links = $document->getDocumentLinks(); + $links = SeedDMS_Core_DMS::filterDocumentLinks($user, $links); + + /* Retrieve reverse linked documents */ + $revlinks = $document->getReverseDocumentLinks(); + $revlinks = SeedDMS_Core_DMS::filterDocumentLinks($user, $revlinks); + + if(count($files)) + $content .= count($files)." ".getMLText("linked_files")."
"; + if(count($links) || count($revlinks)) + $content .= count($links)."/".count($revlinks)." ".getMLText("linked_documents")."
"; + if($status["status"] == S_IN_WORKFLOW && $workflowmode == 'advanced') { + if($workflowstate = $latestContent->getWorkflowState()) + $content .= 'getName()) : '').'">'.($workflowstate ? htmlspecialchars($workflowstate->getName()) : '').''; + } else { + $content .= getOverallStatusText($status["status"]); + } + $content .= "
"; + return $content; + } /* }}} */ + + function documentListRowAction($document, $previewer, $skipcont=false, $version=0, $extracontent=array()) { /* {{{ */ + $user = $this->params['user']; + $enableClipboard = $this->params['enableclipboard']; + $accessop = $this->params['accessobject']; + $onepage = $this->params['onepage']; + + $content = ''; + $content .= "
"; + if(!empty($extracontent['begin_action_list'])) + $content .= $extracontent['begin_action_list']; + if($accessop->check_view_access('RemoveDocument')) { + if($document->getAccessMode($user) >= M_ALL) { + $content .= $this->printDeleteDocumentButton($document, 'splash_rm_document', true); + } else { + $content .= ''; + } + } + $docID = $document->getID(); + if($document->getAccessMode($user) >= M_READWRITE) { + $content .= ''; + } else { + $content .= ''; + } + if($document->getAccessMode($user) >= M_READWRITE) { + $content .= $this->printLockButton($document, 'splash_document_locked', 'splash_document_unlocked', true); + } + if($document->getAccessMode($user) >= M_READWRITE) { + $content .= $this->printAccessButton($document, true); + } + if($enableClipboard) { + $content .= ''; + } + if($onepage) + $content .= ''; + if(!empty($extracontent['end_action_list'])) + $content .= $extracontent['end_action_list']; + $content .= "
"; + return $content; + } /* }}} */ + /** * Return HTML of a single row in the document list table * @@ -2877,38 +3021,26 @@ $('body').on('click', '[id^=\"table-row-folder\"] td:nth-child(2)', function(ev) $previewer->createPreview($latestContent); $version = $latestContent->getVersion(); - $status = $latestContent->getStatus(); - $needwkflaction = false; - if($workflowmode == 'advanced') { - $workflow = $latestContent->getWorkflow(); - if($workflow) { - $needwkflaction = $latestContent->needsWorkflowAction($user); - } - } - /* Retrieve attacheѕ files */ - $files = $document->getDocumentFiles($latestContent->getVersion()); - $files = SeedDMS_Core_DMS::filterDocumentFiles($user, $files); - - /* Retrieve linked documents */ - $links = $document->getDocumentLinks(); - $links = SeedDMS_Core_DMS::filterDocumentLinks($user, $links); - - /* Retrieve reverse linked documents */ - $revlinks = $document->getReverseDocumentLinks(); - $revlinks = SeedDMS_Core_DMS::filterDocumentLinks($user, $revlinks); + if($ec = $this->callHook('documentListRowExtraContent', $document, $latestContent)) + $extracontent = array_merge($extracontent, $ec); $content .= ""; @@ -2937,59 +3069,16 @@ $('body').on('click', '[id^=\"table-row-folder\"] td:nth-child(2)', function(ev) $content .= $extracontent['bottom_title']; $content .= "\n"; + if(!empty($extracontent['columns'])) { + foreach($extracontent['columns'] as $col) + $content .= ''; + } + $content .= ""; -// $content .= ""; + $content .= $this->documentListRowStatus($latestContent); + $content .= ""; $content .= ""; if(!$skipcont) $content .= $this->documentListRowEnd($document); @@ -3037,6 +3126,48 @@ $('body').on('click', '[id^=\"table-row-folder\"] td:nth-child(2)', function(ev) return "\n"; } /* }}} */ + function folderListRowAction($subFolder, $skipcont=false, $extracontent=array()) { /* {{{ */ + $dms = $this->params['dms']; + $user = $this->params['user']; +// $folder = $this->params['folder']; + $showtree = $this->params['showtree']; + $enableRecursiveCount = $this->params['enableRecursiveCount']; + $maxRecursiveCount = $this->params['maxRecursiveCount']; + $enableClipboard = $this->params['enableclipboard']; + $accessop = $this->params['accessobject']; + $onepage = $this->params['onepage']; + + $content = ''; + $content .= "
"; + if(!empty($extracontent['begin_action_list'])) + $content .= $extracontent['begin_action_list']; + $subFolderAccessMode = $subFolder->getAccessMode($user); + if ($accessop->check_view_access('RemoveFolder')) { + if($subFolderAccessMode >= M_ALL) { + $content .= $this->printDeleteFolderButton($subFolder, 'splash_rm_folder', true); + } else { + $content .= ''; + } + } + if($subFolderAccessMode >= M_READWRITE) { + $content .= ''; + } else { + $content .= ''; + } + if($subFolderAccessMode >= M_READWRITE) { + $content .= $this->printAccessButton($subFolder, true); + } + if($enableClipboard) { + $content .= ''; + } + if($onepage) + $content .= ''; + if(!empty($extracontent['end_action_list'])) + $content .= $extracontent['end_action_list']; + $content .= "
"; + return $content; + } /* }}} */ + function folderListRow($subFolder, $skipcont=false, $extracontent=array()) { /* {{{ */ $dms = $this->params['dms']; $user = $this->params['user']; @@ -3055,6 +3186,9 @@ $('body').on('click', '[id^=\"table-row-folder\"] td:nth-child(2)', function(ev) $comment = $subFolder->getComment(); if (strlen($comment) > 150) $comment = substr($comment, 0, 147) . "..."; + if($ec = $this->callHook('folderListRowExtraContent', $subFolder)) + $extracontent = array_merge($extracontent, $ec); + $content = ''; if(!$skipcont) $content .= $this->folderListRowStart($subFolder); @@ -3101,35 +3235,8 @@ $('body').on('click', '[id^=\"table-row-folder\"] td:nth-child(2)', function(ev) $content .= count($subsub)." ".getMLText("folders")."
".count($subdoc)." ".getMLText("documents"); } $content .= ""; -// $content .= ""; $content .= ""; if(!$skipcont) $content .= $this->folderListRowEnd($subFolder); @@ -3340,7 +3447,7 @@ $(document).ready(function() { $accessop = $this->params['accessobject']; ?> -
".$headcol."
"; if (file_exists($dms->contentDir . $latestContent->getPath())) { - if($accessop->check_controller_access('Download', array('action'=>'version'))) - $content .= "params['settings']->_httpRoot."op/op.Download.php?documentid=".$docID."&version=".$version."\">"; - if($previewer->hasPreview($latestContent)) { - $content .= "params['settings']->_httpRoot."op/op.Preview.php?documentid=".$document->getID()."&version=".$latestContent->getVersion()."&width=".$previewwidth."\" title=\"".htmlspecialchars($latestContent->getMimeType())."\">"; - } else { - $content .= "getMimeIcon($latestContent->getFileType())."\" ".($previewwidth ? "width=\"".$previewwidth."\"" : "")."\" title=\"".htmlspecialchars($latestContent->getMimeType())."\">"; + $previewhtml = $this->callHook('documentListPreview', $previewer, $document, $latestContent); + if(is_string($previewhtml)) + $content .= $previewhtml; + else { + if($accessop->check_controller_access('Download', array('action'=>'version'))) + $content .= "params['settings']->_httpRoot."op/op.Download.php?documentid=".$docID."&version=".$version."\">"; + if($previewer->hasPreview($latestContent)) { + $content .= "params['settings']->_httpRoot."op/op.Preview.php?documentid=".$document->getID()."&version=".$latestContent->getVersion()."&width=".$previewwidth."\" title=\"".htmlspecialchars($latestContent->getMimeType())."\">"; + } else { + $content .= "getMimeIcon($latestContent->getFileType())."\" ".($previewwidth ? "width=\"".$previewwidth."\"" : "")."\" title=\"".htmlspecialchars($latestContent->getMimeType())."\">"; + } + if($accessop->check_controller_access('Download', array('action'=>'version'))) + $content .= ""; } - if($accessop->check_controller_access('Download', array('action'=>'version'))) - $content .= ""; } else $content .= "getMimeIcon($latestContent->getFileType())."\" title=\"".htmlspecialchars($latestContent->getMimeType())."\">"; $content .= "'.$col.'"; - $attentionstr = ''; - if ( $document->isLocked() ) { - $attentionstr .= "getImgPath("lock.png")."\" title=\"". getMLText("locked_by").": ".htmlspecialchars($document->getLockingUser()->getFullName())."\"> "; - } - if ( $needwkflaction ) { - $attentionstr .= "getImgPath("attention.gif")."\" title=\"". getMLText("workflow").": ".htmlspecialchars($workflow->getName())."\"> "; - } - if($attentionstr) - $content .= $attentionstr."
"; - $content .= ""; - if(count($files)) - $content .= count($files)." ".getMLText("linked_files")."
"; - if(count($links) || count($revlinks)) - $content .= count($links)."/".count($revlinks)." ".getMLText("linked_documents")."
"; - if($status["status"] == S_IN_WORKFLOW && $workflowmode == 'advanced') { - $workflowstate = $latestContent->getWorkflowState(); - $content .= 'getName()) : '').'">'.($workflowstate ? htmlspecialchars($workflowstate->getName()) : '').''; - } else { - $content .= getOverallStatusText($status["status"]); - } - $content .= "
".$version.""; - $content .= "
"; - if(!empty($extracontent['begin_action_list'])) - $content .= $extracontent['begin_action_list']; - if($accessop->check_view_access('RemoveDocument')) { - if($document->getAccessMode($user) >= M_ALL) { - $content .= $this->printDeleteDocumentButton($document, 'splash_rm_document', true); - } else { - $content .= ''; - } - } - if($document->getAccessMode($user) >= M_READWRITE) { - $content .= ''; - } else { - $content .= ''; - } - if($document->getAccessMode($user) >= M_READWRITE) { - $content .= $this->printLockButton($document, 'splash_document_locked', 'splash_document_unlocked', true); - } - if($document->getAccessMode($user) >= M_READWRITE) { - $content .= $this->printAccessButton($document, true); - } - if($enableClipboard) { - $content .= ''; - } - if($onepage) - $content .= ''; - if(!empty($extracontent['end_action_list'])) - $content .= $extracontent['end_action_list']; - $content .= "
"; + $content .= $this->documentListRowAction($document, $previewer, $skipcont, $version, $extracontent); $content .= "
"; - $content .= "
"; - if(!empty($extracontent['begin_action_list'])) - $content .= $extracontent['begin_action_list']; - $subFolderAccessMode = $subFolder->getAccessMode($user); - if ($accessop->check_view_access('RemoveFolder')) { - if($subFolderAccessMode >= M_ALL) { - $content .= $this->printDeleteFolderButton($subFolder, 'splash_rm_folder', true); - } else { - $content .= ''; - } - } - if($subFolderAccessMode >= M_READWRITE) { - $content .= ''; - } else { - $content .= ''; - } - if($subFolderAccessMode >= M_READWRITE) { - $content .= $this->printAccessButton($subFolder, true); - } - if($enableClipboard) { - $content .= ''; - } - if($onepage) - $content .= ''; - if(!empty($extracontent['end_action_list'])) - $content .= $extracontent['end_action_list']; - $content .= "
"; + $content .= $this->folderListRowAction($subFolder, $skipcont, $extracontent); $content .= "
+
diff --git a/views/bootstrap/class.Calendar.php b/views/bootstrap/class.Calendar.php index ac7e91971..70093b560 100644 --- a/views/bootstrap/class.Calendar.php +++ b/views/bootstrap/class.Calendar.php @@ -49,18 +49,11 @@ class SeedDMS_View_Calendar extends SeedDMS_Theme_Style { $xsendfile = $this->params['xsendfile']; if($document) { - // $this->contentHeading(getMLText("timeline_selected_item")); - print "
,
"; - print "\n\n"; - print "\n"; - print "\n"; - print "\n"; - print "\n"; - print "\n\n\n"; - $previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidthdetail, $timeout, $xsendfile); - echo $this->documentListRow($document, $previewer); - - echo "\n
".getMLText("name")."".getMLText("status")."".getMLText("action")."
\n"; + print $this->folderListHeader(); + print "\n"; + $previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidthdetail, $timeout, $xsendfile); + echo $this->documentListRow($document, $previewer); + echo "\n\n"; } if($event) { // print_r($event); @@ -100,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')); ?> @@ -170,7 +172,28 @@ 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': + 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(), + 'eventtype'=> $eventtype, + ); + } } break; case 'action': @@ -193,10 +216,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'; @@ -204,7 +230,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'], @@ -212,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, ); } } @@ -227,8 +254,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() { @@ -241,7 +274,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'; } } }, @@ -260,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: [ { @@ -282,6 +324,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: true } ], eventClick: function(event, element) { diff --git a/views/bootstrap/class.Categories.php b/views/bootstrap/class.Categories.php index e3711fb53..f2688277b 100644 --- a/views/bootstrap/class.Categories.php +++ b/views/bootstrap/class.Categories.php @@ -70,13 +70,8 @@ $(document).ready( function() { $documents = $selcat->getDocumentsByCategory(10); if($documents) { - print ""; - print "\n\n"; - print "\n"; - print "\n"; - print "\n"; - print "\n"; - print "\n\n\n"; + print $this->folderListHeader(); + print "\n"; $previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth, $timeout, $xsendfile); foreach($documents as $doc) { echo $this->documentListRow($doc, $previewer); diff --git a/views/bootstrap/class.ChangePassword.php b/views/bootstrap/class.ChangePassword.php index 16fb77807..335fc9270 100644 --- a/views/bootstrap/class.ChangePassword.php +++ b/views/bootstrap/class.ChangePassword.php @@ -33,8 +33,22 @@ class SeedDMS_View_ChangePassword extends SeedDMS_Theme_Style { function js() { /* {{{ */ header('Content-Type: application/javascript; charset=UTF-8'); + parent::jsTranslations(array('js_form_error', 'js_form_errors')); ?> document.form1.newpassword.focus(); +$(document).ready(function() { + $("#form1").validate({ + rules: { + newpasswordrepeat: { + equalTo: "#newpassword" + } + }, + messages: { + newpassword: "", + newpasswordrepeat: "", + }, + }); +}); params['hash']; $passwordstrength = $this->params['passwordstrength']; + $this->htmlAddHeader(''."\n", 'js'); + $this->htmlAddHeader(''."\n", 'js'); + $this->htmlStartPage(getMLText("change_password"), "login"); $this->globalBanner(); $this->contentStart(); $this->pageNavigation(getMLText("change_password")); ?> - +contentContainerStart(); $this->formField( getMLText("password"), - '' + '' ); if($passwordstrength > 0) { $this->formField( @@ -74,9 +91,10 @@ document.form1.newpassword.focus(); array( 'element'=>'input', 'type'=>'password', - 'id'=>'passwordrepeat', + 'id'=>'newpasswordrepeat', 'name'=>'newpasswordrepeat', 'autocomplete'=>'off', + 'required'=>true ) ); $this->contentContainerEnd(); 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(); diff --git a/views/bootstrap/class.DocumentVersionDetail.php b/views/bootstrap/class.DocumentVersionDetail.php index 9c75985be..29767ac20 100644 --- a/views/bootstrap/class.DocumentVersionDetail.php +++ b/views/bootstrap/class.DocumentVersionDetail.php @@ -60,6 +60,7 @@ class SeedDMS_View_DocumentVersionDetail extends SeedDMS_Theme_Style { $converttopdf = $this->params['convertToPdf']; $pdfconverters = $this->params['pdfConverters']; $cachedir = $this->params['cachedir']; + $conversionmgr = $this->params['conversionmgr']; $version = $this->params['version']; if(!$showfullpreview) return; @@ -125,7 +126,10 @@ class SeedDMS_View_DocumentVersionDetail extends SeedDMS_Theme_Style { if($converttopdf) { $pdfpreviewer = new SeedDMS_Preview_PdfPreviewer($cachedir, $timeout, $xsendfile); - $pdfpreviewer->setConverters($pdfconverters); + if($conversionmgr) + $pdfpreviewer->setConversionMgr($conversionmgr); + else + $pdfpreviewer->setConverters($pdfconverters); if($pdfpreviewer->hasConverter($version->getMimeType())) { $this->contentHeading(getMLText("preview_pdf")); ?> @@ -145,7 +149,9 @@ class SeedDMS_View_DocumentVersionDetail extends SeedDMS_Theme_Style { $viewonlinefiletypes = $this->params['viewonlinefiletypes']; $enableversionmodification = $this->params['enableversionmodification']; $cachedir = $this->params['cachedir']; + $conversionmgr = $this->params['conversionmgr']; $previewwidthdetail = $this->params['previewWidthDetail']; + $previewconverters = $this->params['previewConverters']; $timeout = $this->params['timeout']; $xsendfile = $this->params['xsendfile']; @@ -261,6 +267,10 @@ class SeedDMS_View_DocumentVersionDetail extends SeedDMS_Theme_Style { print ""; $previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidthdetail, $timeout, $xsendfile); + if($conversionmgr) + $previewer->setConversionMgr($conversionmgr); + else + $previewer->setConverters($previewconverters); $previewer->createPreview($version); if ($file_exists) { if ($viewonlinefiletypes && (in_array(strtolower($version->getFileType()), $viewonlinefiletypes) || in_array(strtolower($version->getMimeType()), $viewonlinefiletypes))) { diff --git a/views/bootstrap/class.EditDocument.php b/views/bootstrap/class.EditDocument.php index 69432bd8b..634d9f5ba 100644 --- a/views/bootstrap/class.EditDocument.php +++ b/views/bootstrap/class.EditDocument.php @@ -134,35 +134,37 @@ $(document).ready( function() { ) ); } - if(!$nodocumentformfields || !in_array('categories', $nodocumentformfields)) { - $options = array(); $categories = $dms->getDocumentCategories(); - foreach($categories as $category) { - $options[] = array($category->getID(), $category->getName(), in_array($category, $document->getCategories())); - } - $this->formField( - getMLText("categories"), - array( - 'element'=>'select', - 'class'=>'chzn-select', - 'name'=>'categories[]', - 'multiple'=>true, - 'attributes'=>array(array('data-placeholder', getMLText('select_category'), array('data-no_results_text', getMLText('unknown_document_category')))), - 'options'=>$options - ) - ); - } else { - $categories = $document->getCategories(); - foreach($categories as $category) { + if($categories) { + if(!$nodocumentformfields || !in_array('categories', $nodocumentformfields)) { + $options = array(); + foreach($categories as $category) { + $options[] = array($category->getID(), $category->getName(), in_array($category, $document->getCategories())); + } $this->formField( - null, + getMLText("categories"), array( - 'element'=>'input', - 'type'=>'hidden', + 'element'=>'select', + 'class'=>'chzn-select', 'name'=>'categories[]', - 'value'=>htmlspecialchars($category->getId()), + 'multiple'=>true, + 'attributes'=>array(array('data-placeholder', getMLText('select_category'), array('data-no_results_text', getMLText('unknown_document_category')))), + 'options'=>$options ) ); + } else { + $categories = $document->getCategories(); + foreach($categories as $category) { + $this->formField( + null, + array( + 'element'=>'input', + 'type'=>'hidden', + 'name'=>'categories[]', + 'value'=>htmlspecialchars($category->getId()), + ) + ); + } } } if(!$nodocumentformfields || !in_array('expires', $nodocumentformfields)) { diff --git a/views/bootstrap/class.EditFolder.php b/views/bootstrap/class.EditFolder.php index 4f15a6de4..4a44d5c2b 100644 --- a/views/bootstrap/class.EditFolder.php +++ b/views/bootstrap/class.EditFolder.php @@ -54,6 +54,7 @@ $(document).ready(function() { $attrdefs = $this->params['attrdefs']; $rootfolderid = $this->params['rootfolderid']; $strictformcheck = $this->params['strictformcheck']; + $nofolderformfields = $this->params['nofolderformfields']; $orderby = $this->params['orderby']; $this->htmlAddHeader(''."\n", 'js'); @@ -81,22 +82,35 @@ $(document).ready(function() { 'required'=>true ) ); - $this->formField( - getMLText("comment"), - array( - 'element'=>'textarea', - 'name'=>'comment', - 'rows'=>4, - 'cols'=>80, - 'value'=>htmlspecialchars($folder->getComment()), - 'required'=>$strictformcheck - ) - ); - $parent = ($folder->getID() == $rootfolderid) ? false : $folder->getParent(); - if ($parent && $parent->getAccessMode($user) > M_READ) { - $this->formField(getMLText("sequence"), $this->getSequenceChooser($parent->getSubFolders('s'), $folder->getID()).($orderby != 's' ? "
".getMLText('order_by_sequence_off') : '')); + if(!$nofolderformfields || !in_array('comment', $nofolderformfields)) { + $this->formField( + getMLText("comment"), + array( + 'element'=>'textarea', + 'name'=>'comment', + 'rows'=>4, + 'cols'=>80, + 'value'=>htmlspecialchars($folder->getComment()), + 'required'=>$strictformcheck + ) + ); + } else { + $this->formField( + null, + array( + 'element'=>'input', + 'type'=>'hidden', + 'name'=>'comment', + 'value'=>htmlspecialchars($folder->getComment()), + ) + ); + } + $parent = ($folder->getID() == $rootfolderid) ? false : $folder->getParent(); + if(!$nofolderformfields || !in_array('sequence', $nofolderformfields)) { + if ($parent && $parent->getAccessMode($user) > M_READ) { + $this->formField(getMLText("sequence"), $this->getSequenceChooser($parent->getSubFolders('s'), $folder->getID()).($orderby != 's' ? "
".getMLText('order_by_sequence_off') : '')); + } } - if($attrdefs) { foreach($attrdefs as $attrdef) { $arr = $this->callHook('editFolderAttribute', $folder, $attrdef); diff --git a/views/bootstrap/class.ExtensionMgr.php b/views/bootstrap/class.ExtensionMgr.php index 4ec1e035a..995e4011f 100644 --- a/views/bootstrap/class.ExtensionMgr.php +++ b/views/bootstrap/class.ExtensionMgr.php @@ -89,6 +89,13 @@ class SeedDMS_View_ExtensionMgr extends SeedDMS_Theme_Style { }); }); }); + /* This function is called after the list of installed extension is updated */ + function filterList() { + var value = $("#extensionfilter").val().toLowerCase(); + $("#extensionlist tbody tr").filter(function() { + $(this).toggle($(this).text().toLowerCase().indexOf(value) > -1) + }); + } printFileChooserJs(); @@ -110,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 ""; @@ -189,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 ""; @@ -250,7 +259,7 @@ class SeedDMS_View_ExtensionMgr extends SeedDMS_Theme_Style { $this->contentHeading(getMLText("extension_manager")); $this->rowStart(); $this->columnStart(4); - if($extmgr->isWritableExtDir()) { + if($settings->_enableExtensionImport && $extmgr->isWritableExtDir()) { ?> @@ -265,7 +274,13 @@ class SeedDMS_View_ExtensionMgr extends SeedDMS_Theme_Style { ".getMLText('extension_mgr_no_upload').""; + if($settings->_enableExtensionImport) + echo "
".getMLText('extension_mgr_no_upload')."
"; + else + echo "
".getMLText('extension_mgr_upload_disabled')."
"; + } + if(!is_writeable($settings->_configFilePath)) { + $this->warningMsg(getMLText("extension_mgr_no_toggle")); } $this->columnEnd(); $this->columnStart(8); @@ -277,7 +292,7 @@ class SeedDMS_View_ExtensionMgr extends SeedDMS_Theme_Style {
-
+
installedList(); ?> @@ -298,10 +313,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 ""; echo $this->getModalBoxLink(array('target'=>'extensionInfo', 'remote'=>'out.ExtensionMgr.php?action=info_versions&extensionname='.$re['name'], 'class'=>'', 'title'=>'')); echo $this->getModalBoxLink(array('target'=>'extensionChangelog', 'remote'=>'out.ExtensionMgr.php?action=info_changelog&extensionname='.$re['name'], 'class'=>'', 'title'=>'')); - if(!$checkmsgs && $extmgr->isWritableExtDir()) + if(!$checkmsgs && $settings->_enableExtensionImportFromRepository && $extmgr->isWritableExtDir()) echo "
".createHiddenFieldWithKey('extensionmgr').""; echo ""; echo ""; diff --git a/views/bootstrap/class.ForcePasswordChange.php b/views/bootstrap/class.ForcePasswordChange.php index 4a13df770..34adeaf94 100644 --- a/views/bootstrap/class.ForcePasswordChange.php +++ b/views/bootstrap/class.ForcePasswordChange.php @@ -55,35 +55,9 @@ function runValidation() { } }); } -runValidation(); - -function checkForm() -{ - msg = new Array(); - - if($("#currentpwd").val() == "") msg.push(""); - if($("#pwd").val() == "") msg.push(""); - if($("#pwd").val() != $("#pwdconf").val()) 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', '#form', function(ev){ -// if(checkForm()) return; -// ev.preventDefault(); -// }); + runValidation(); }); params['user']; $allUsers = $this->params['allusers']; $groups = $this->params['allgroups']; + $sortusersinlist = $this->params['sortusersinlist']; ?>
columnEnd(); $this->columnStart(8); ?> - + params['session']->getLanguage()."/help/".$context.".html"; 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')); diff --git a/views/bootstrap/class.OverrideContentStatus.php b/views/bootstrap/class.OverrideContentStatus.php index 8b8aab4d3..3332559ca 100644 --- a/views/bootstrap/class.OverrideContentStatus.php +++ b/views/bootstrap/class.OverrideContentStatus.php @@ -33,30 +33,22 @@ class SeedDMS_View_OverrideContentStatus 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.overrideStatus.value == "") msg.push(""); - 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({ + rules: { + comment: { + required: true + }, + overrideStatus: { + required: true + }, + }, + messages: { + comment: "", + overrideStatus: "", + }, }); }); getReviewStatus(); $approvalStatus = $content->getApprovalStatus(); + $this->htmlAddHeader(''."\n", 'js'); + $this->htmlAddHeader(''."\n", 'js'); + $this->htmlStartPage(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName())))); $this->globalNavigation($folder); $this->contentStart(); @@ -93,6 +88,7 @@ $(document).ready(function() { array( 'element'=>'textarea', 'name'=>'comment', + 'required'=>true, 'rows'=>4, ) ); diff --git a/views/bootstrap/class.RemoveWorkflowFromDocument.php b/views/bootstrap/class.RemoveWorkflowFromDocument.php index 98fa89fac..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(); @@ -58,21 +59,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')); ?> -

@@ -84,28 +87,34 @@ class SeedDMS_View_RemoveWorkflowFromDocument extends SeedDMS_Theme_Style { $this->columnStart(8); ?>
- +check_view_access('WorkflowGraph')) { +?> + +
columnEnd(); - $this->contentContainerEnd(); + $this->rowEnd(); + //$this->contentContainerEnd(); if($wkflog) { - $this->contentContainerStart(); - echo "
".getMLText("name")."".getMLText("status")."".getMLText("action")."
".($re['icon-data'] ? ''.$re['name'].'' : '')."
"; if($extconf['icon']) echo "\"".$extname."\""; @@ -214,15 +220,18 @@ 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 ""; - echo "".createHiddenFieldWithKey('extensionmgr').""; - if(!$settings->extensionIsDisabled($extname)) { - echo ' '; - } else { - echo ' '; + if($settings->_enableExtensionDownload) + echo "
".createHiddenFieldWithKey('extensionmgr')."
"; + if(is_writeable($settings->_configFilePath)) { + if(!$settings->extensionIsDisabled($extname)) { + echo ' '; + } else { + echo ' '; + } } echo "
"; 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.ReviewSummary.php b/views/bootstrap/class.ReviewSummary.php index 46154d32b..a3e62a25e 100644 --- a/views/bootstrap/class.ReviewSummary.php +++ b/views/bootstrap/class.ReviewSummary.php @@ -123,6 +123,7 @@ class SeedDMS_View_ReviewSummary extends SeedDMS_Theme_Style { $owner = $document->getOwner(); $modgroup = $dms->getGroup($st['required']); + /* Filter out those documents which already require a review as an individual */ if (!in_array($st["documentID"], $iRev) && $document && $version) { if ($printheader){ diff --git a/views/bootstrap/class.RewindWorkflow.php b/views/bootstrap/class.RewindWorkflow.php index 09b142c69..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(); @@ -58,20 +59,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 +86,30 @@ class SeedDMS_View_RewindWorkflow extends SeedDMS_Theme_Style { $this->columnStart(8); ?>
- +check_view_access('WorkflowGraph')) { +?> + +
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..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']; @@ -62,46 +63,52 @@ 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); ?>
- +check_view_access('WorkflowGraph')) { +?> + +
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.Search.php b/views/bootstrap/class.Search.php index ff3b56edc..9e2466e60 100644 --- a/views/bootstrap/class.Search.php +++ b/views/bootstrap/class.Search.php @@ -123,10 +123,25 @@ function typeahead() { /* {{{ */ echo json_encode($recs); } /* }}} */ + public function folderListHeaderName() { /* {{{ */ + $orderby = $this->params['orderby']; + $fullsearch = $this->params['fullsearch']; + parse_str($_SERVER['QUERY_STRING'], $tmp); + $tmp['orderby'] = ($orderby=="n"||$orderby=="na") ? "nd" : "n"; + $headcol = getMLText("name"); + if(!$fullsearch) { + $headcol .= $orderby." ".($orderby=="n"||$orderby=="na"?' ':($orderby=="nd"?' ':' ')).""; + $tmp['orderby'] = ($orderby=="d"||$orderby=="da") ? "dd" : "d"; + $headcol .= " ".($orderby=="d"||$orderby=="da"?' ':($orderby=="dd"?' ':' ')).""; + } + return $headcol; + } /* }}} */ + function show() { /* {{{ */ $dms = $this->params['dms']; $user = $this->params['user']; $fullsearch = $this->params['fullsearch']; + $total = $this->params['total']; $totaldocs = $this->params['totaldocs']; $totalfolders = $this->params['totalfolders']; $attrdefs = $this->params['attrdefs']; @@ -139,6 +154,7 @@ function typeahead() { /* {{{ */ $enableclipboard = $this->params['enableclipboard']; $attributes = $this->params['attributes']; $categories = $this->params['categories']; + $category = $this->params['category']; $mimetype = $this->params['mimetype']; $owner = $this->params['owner']; $startfolder = $this->params['startfolder']; @@ -152,6 +168,7 @@ function typeahead() { /* {{{ */ $expirationdate = $this->params['expirationdate']; $statusdate = $this->params['statusdate']; $status = $this->params['status']; + $record_type = $this->params['recordtype']; $this->query = $this->params['query']; $orderby = $this->params['orderby']; $entries = $this->params['searchhits']; @@ -173,9 +190,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 "
"; } ?>
@@ -415,7 +453,7 @@ function typeahead() { /* {{{ */ if($enablefullsearch) { echo "
\n"; ?> -
+ contentContainerStart(); @@ -423,100 +461,134 @@ function typeahead() { /* {{{ */ getMLText("search_query"), array( 'element'=>'input', - 'type'=>'text', + 'type'=>'search', 'name'=>'query', 'value'=>htmlspecialchars($this->query) ) ); $this->formField(getMLText("under_folder"), $this->getFolderChooserHtml("form1", M_READ, -1, $startfolder, 'folderfullsearchid')); if(!isset($facets['owner'])) { - $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())))); + $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())))); + } + $this->formField( + getMLText("owner"), + array( + 'element'=>'select', + 'name'=>'owner[]', + 'class'=>'chzn-select', + 'multiple'=>true, + 'options'=>$options + ) + ); } - $this->formField( - getMLText("owner"), - array( - 'element'=>'select', - 'name'=>'owner[]', - 'class'=>'chzn-select', - 'multiple'=>true, - 'options'=>$options - ) - ); - } - if(!isset($facets['category'])) { - $tmpcatids = array(); - foreach($categories as $tmpcat) - $tmpcatids[] = $tmpcat->getID(); - $options = array(); - $allcategories = $dms->getDocumentCategories(); - foreach($allcategories as $category) { - $options[] = array($category->getID(), $category->getName(), in_array($category->getId(), $tmpcatids)); + if(!isset($facets['category'])) { + $tmpcatids = array(); + foreach($categories as $tmpcat) + $tmpcatids[] = $tmpcat->getID(); + $options = array(); + $allcategories = $dms->getDocumentCategories(); + foreach($allcategories as $acategory) { + $options[] = array($acategory->getID(), $acategory->getName(), in_array($acategory->getId(), $tmpcatids)); + } + $this->formField( + getMLText("category_filter"), + array( + 'element'=>'select', + 'class'=>'chzn-select', + 'name'=>'category[]', + 'multiple'=>true, + 'attributes'=>array(array('data-placeholder', getMLText('select_category'), array('data-no_results_text', getMLText('unknown_document_category')))), + 'options'=>$options + ) + ); } - $this->formField( - getMLText("category_filter"), - array( - 'element'=>'select', - 'class'=>'chzn-select', - 'name'=>'category[]', - 'multiple'=>true, - 'attributes'=>array(array('data-placeholder', getMLText('select_category'), array('data-no_results_text', getMLText('unknown_document_category')))), - 'options'=>$options - ) - ); - } - $options = array(); - if($workflowmode == 'traditional' || $workflowmode == 'traditional_only_approval') { - if($workflowmode == 'traditional') { - $options[] = array(S_DRAFT_REV, getOverallStatusText(S_DRAFT_REV), in_array(S_DRAFT_REV, $status)); + if(!isset($facets['status'])) { + $options = array(); + if($workflowmode == 'traditional' || $workflowmode == 'traditional_only_approval') { + if($workflowmode == 'traditional') { + $options[] = array(S_DRAFT_REV, getOverallStatusText(S_DRAFT_REV), in_array(S_DRAFT_REV, $status)); + } + } elseif($workflowmode == 'advanced') { + $options[] = array(S_IN_WORKFLOW, getOverallStatusText(S_IN_WORKFLOW), in_array(S_IN_WORKFLOW, $status)); + } + $options[] = array(S_DRAFT_APP, getOverallStatusText(S_DRAFT_APP), in_array(S_DRAFT_APP, $status)); + $options[] = array(S_RELEASED, getOverallStatusText(S_RELEASED), in_array(S_RELEASED, $status)); + $options[] = array(S_REJECTED, getOverallStatusText(S_REJECTED), in_array(S_REJECTED, $status)); + $options[] = array(S_EXPIRED, getOverallStatusText(S_EXPIRED), in_array(S_EXPIRED, $status)); + $options[] = array(S_OBSOLETE, getOverallStatusText(S_OBSOLETE), in_array(S_OBSOLETE, $status)); + $this->formField( + getMLText("status"), + array( + 'element'=>'select', + 'class'=>'chzn-select', + 'name'=>'status[]', + 'multiple'=>true, + 'attributes'=>array(array('data-placeholder', getMLText('select_status')), array('data-no_results_text', getMLText('unknown_status'))), + 'options'=>$options + ) + ); } - } elseif($workflowmode == 'advanced') { - $options[] = array(S_IN_WORKFLOW, getOverallStatusText(S_IN_WORKFLOW), in_array(S_IN_WORKFLOW, $status)); - } - $options[] = array(S_DRAFT_APP, getOverallStatusText(S_DRAFT_APP), in_array(S_DRAFT_APP, $status)); - $options[] = array(S_RELEASED, getOverallStatusText(S_RELEASED), in_array(S_RELEASED, $status)); - $options[] = array(S_REJECTED, getOverallStatusText(S_REJECTED), in_array(S_REJECTED, $status)); - $options[] = array(S_EXPIRED, getOverallStatusText(S_EXPIRED), in_array(S_EXPIRED, $status)); - $options[] = array(S_OBSOLETE, getOverallStatusText(S_OBSOLETE), in_array(S_OBSOLETE, $status)); - $this->formField( - getMLText("status"), - array( - 'element'=>'select', - 'class'=>'chzn-select', - 'name'=>'status[]', - 'multiple'=>true, - 'attributes'=>array(array('data-placeholder', getMLText('select_status')), array('data-no_results_text', getMLText('unknown_status'))), - 'options'=>$options - ) - ); - if($facets) { -foreach($facets as $facetname=>$values) { - $options = array(); - foreach($values as $v=>$c) { - $option = array($v, $v.' ('.$c.')'); - if(isset(${$facetname}) && in_array($v, ${$facetname})) - $option[] = true; - $options[] = $option; - } - $this->formField( - getMLText($facetname), - array( - 'element'=>'select', - 'id'=>$facetname, - 'name'=>$facetname."[]", - 'class'=>'chzn-select', - 'attributes'=>array(array('data-placeholder', getMLText('select_'.$facetname))), - 'options'=>$options, - 'multiple'=>true - ) - ); -} - } - $this->contentContainerEnd(); - $this->formSubmit(" ".getMLText('search')); + if($facets) { + foreach($facets as $facetname=>$values) { + $multiple = true; +// if(in_array($facetname, ['owner', 'status', 'mimetype'])) +// $multiple = false; + $options = array(); + if($facetname == 'owner') { + foreach($values as $v=>$c) { + $uu = $dms->getUserByLogin($v); + if($uu) { + $option = array($uu->getId(), $v.' ('.$c.')'); + if(isset(${$facetname}) && in_array($uu->getId(), ${$facetname})) + $option[] = true; + $options[] = $option; + } + } + } elseif($facetname == 'category') { + foreach($values as $v=>$c) { + $cat = $dms->getDocumentCategoryByName($v); + if($cat) { + $option = array($cat->getId(), $v.' ('.$c.')'); + if(isset(${$facetname}) && in_array($cat->getId(), ${$facetname})) + $option[] = true; + $options[] = $option; + } + } + } elseif($facetname == 'status') { + foreach($values as $v=>$c) { + $option = array($v, getOverallStatusText($v).' ('.$c.')'); + if(isset(${$facetname}) && in_array($v, ${$facetname})) + $option[] = true; + $options[] = $option; + } + } else { + foreach($values as $v=>$c) { + $option = array($v, $v.' ('.$c.')'); + if(isset(${$facetname}) && in_array($v, ${$facetname})) + $option[] = true; + $options[] = $option; + } + } + $this->formField( + getMLText($facetname), + array( + 'element'=>'select', + 'id'=>$facetname, + 'name'=>$facetname."[]", + 'class'=>'chzn-select', + 'attributes'=>array(array('data-placeholder', getMLText('select_'.$facetname)), array('data-allow-clear', 'true')), + 'options'=>$options, + 'multiple'=>$multiple + ) + ); + } + } + $this->contentContainerEnd(); + $this->formSubmit(" ".getMLText('search')); ?>
$values) { } } */ - echo $this->infoMsg(getMLText("search_report", array("doccount" => $totaldocs, "foldercount" => $totalfolders, 'searchtime'=>$searchTime))); + echo $this->infoMsg(getMLText("search_report", array("count"=>$total, "doccount" => $totaldocs, "foldercount" => $totalfolders, 'searchtime'=>$searchTime))); $this->pageList($pageNumber, $totalpages, "../out/out.Search.php", $urlparams); // $this->contentContainerStart(); $txt = $this->callHook('searchListHeader', $orderby, 'asc'); - if(is_string($txt)) + if(is_string($txt)) { echo $txt; - else { - parse_str($_SERVER['QUERY_STRING'], $tmp); - $tmp['orderby'] = $orderby=="n"||$orderby=="na)"?"nd":"n"; + } elseif(is_array($txt)) { print ""; print "\n\n"; - print "\n"; - print "\n"; - //print "\n"; - print "\n"; - print "\n"; - print "\n\n\n"; + foreach($txt as $headcol) + echo "\n"; + print "\n\n"; + } else { + echo $this->folderListHeader(null, 'search'); } + print "\n"; $previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth, $timeout, $xsendfile); foreach ($entries as $entry) { if($entry->isType('document')) { - $txt = $this->callHook('documentListItem', $entry, $previewer, false, 'search'); + $document = $entry; + if($lc = $document->getLatestContent()) + $previewer->createPreview($lc); + + $lcattributes = $lc ? $lc->getAttributes() : null; + $attrstr = ''; + if($lcattributes) { + $attrstr .= "
".getMLText("name"); - if(!$fullsearch) { - print " ".($orderby=="n"||$orderby=="na"?' ':($orderby=="nd"?' ':' ')).""; - $tmp['orderby'] = $orderby=="d"||$orderby=="da)"?"dd":"d"; - print " ".($orderby=="d"||$orderby=="da"?' ':($orderby=="dd"?' ':' ')).""; - } - print "".getMLText("attributes")."".getMLText("status")."".getMLText("action")."
".$headcol."
\n"; + $attrstr .= ""; + foreach($lcattributes as $lcattribute) { + $arr = $this->callHook('showDocumentContentAttribute', $lc, $lcattribute); + if(is_array($arr)) { + $attrstr .= ""; + $attrstr .= ""; + $attrstr .= ""; + $attrstr .= ""; + } elseif(is_string($arr)) { + $attrstr .= $arr; + } else { + $attrdef = $lcattribute->getAttributeDefinition(); + $attrstr .= "\n"; + // TODO: better use printAttribute() + // $this->printAttribute($lcattribute); + } + } + $attrstr .= "
".getMLText('name')."".getMLText('attribute_value')."
".$arr[0].":".$arr[1]."
".htmlspecialchars($attrdef->getName())."".htmlspecialchars(implode(', ', $lcattribute->getValueAsArray()))."
\n"; + } + $docattributes = $document->getAttributes(); + if($docattributes) { + $attrstr .= "\n"; + $attrstr .= ""; + foreach($docattributes as $docattribute) { + $arr = $this->callHook('showDocumentAttribute', $document, $docattribute); + if(is_array($arr)) { + $attrstr .= ""; + $attrstr .= ""; + $attrstr .= ""; + $attrstr .= ""; + } elseif(is_string($arr)) { + $attrstr .= $arr; + } else { + $attrdef = $docattribute->getAttributeDefinition(); + $attrstr .= "\n"; + } + } + $attrstr .= "
".getMLText('name')."".getMLText('attribute_value')."
".$arr[0].":".$arr[1]."
".htmlspecialchars($attrdef->getName())."".htmlspecialchars(implode(', ', $docattribute->getValueAsArray()))."
\n"; + } + $extracontent = array(); + $extracontent['below_title'] = $this->getListRowPath($document); + if($attrstr) + $extracontent['bottom_title'] = '
'.$this->printPopupBox(''.getMLText('attributes').'', $attrstr, true); + + $txt = $this->callHook('documentListItem', $entry, $previewer, false, 'search', $extracontent); if(is_string($txt)) echo $txt; else { - $document = $entry; - $owner = $document->getOwner(); - if($lc = $document->getLatestContent()) - $previewer->createPreview($lc); - - if (in_array(3, $searchin)) - $comment = $this->markQuery(htmlspecialchars($document->getComment())); - else - $comment = htmlspecialchars($document->getComment()); - if (strlen($comment) > 150) $comment = substr($comment, 0, 147) . "..."; - - $lcattributes = $lc ? $lc->getAttributes() : null; - $attrstr = ''; - if($lcattributes) { - $attrstr .= "\n"; - $attrstr .= ""; - foreach($lcattributes as $lcattribute) { - $arr = $this->callHook('showDocumentContentAttribute', $lc, $lcattribute); - if(is_array($arr)) { - $attrstr .= ""; - $attrstr .= ""; - $attrstr .= ""; - $attrstr .= ""; - } elseif(is_string($arr)) { - $attrstr .= $arr; - } else { - $attrdef = $lcattribute->getAttributeDefinition(); - $attrstr .= "\n"; - // TODO: better use printAttribute() - // $this->printAttribute($lcattribute); - } - } - $attrstr .= "
".getMLText('name')."".getMLText('attribute_value')."
".$arr[0].":".$arr[1]."
".htmlspecialchars($attrdef->getName())."".htmlspecialchars(implode(', ', $lcattribute->getValueAsArray()))."
\n"; - } - $docattributes = $document->getAttributes(); - if($docattributes) { - $attrstr .= "\n"; - $attrstr .= ""; - foreach($docattributes as $docattribute) { - $arr = $this->callHook('showDocumentAttribute', $document, $docattribute); - if(is_array($arr)) { - $attrstr .= ""; - $attrstr .= ""; - $attrstr .= ""; - $attrstr .= ""; - } elseif(is_string($arr)) { - $attrstr .= $arr; - } else { - $attrdef = $docattribute->getAttributeDefinition(); - $attrstr .= "\n"; - } - } - $attrstr .= "
".getMLText('name')."".getMLText('attribute_value')."
".$arr[0].":".$arr[1]."
".htmlspecialchars($attrdef->getName())."".htmlspecialchars(implode(', ', $docattribute->getValueAsArray()))."
\n"; - } - $extracontent = array(); - $extracontent['below_title'] = $this->getListRowPath($document); - if($attrstr) - $extracontent['bottom_title'] = '
'.$this->printPopupBox(''.getMLText('attributes').'', $attrstr, true); print $this->documentListRow($document, $previewer, false, 0, $extracontent); } } elseif($entry->isType('folder')) { @@ -642,12 +700,6 @@ foreach($facets as $facetname=>$values) { echo $txt; else { $folder = $entry; - $owner = $folder->getOwner(); - if (in_array(2, $searchin)) { - $folderName = $this->markQuery(htmlspecialchars($folder->getName()), "i"); - } else { - $folderName = htmlspecialchars($folder->getName()); - } $attrstr = ''; $folderattributes = $folder->getAttributes(); diff --git a/views/bootstrap/class.Settings.php b/views/bootstrap/class.Settings.php index 90af30d5c..d266e5b8c 100644 --- a/views/bootstrap/class.Settings.php +++ b/views/bootstrap/class.Settings.php @@ -59,7 +59,7 @@ class SeedDMS_View_Settings extends SeedDMS_Theme_Style { $class = 'input-medium'; else $class = 'input-small'; - $html .= ''; + $html .= ''; } return $html; } /* }}} */ @@ -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); ?> +showConfigHeadline('settings_ExtensionMgr'); ?> +showConfigCheckbox('settings_enableExtensionDownload', 'enableExtensionDownload'); ?> +showConfigCheckbox('settings_enableExtensionImport', 'enableExtensionImport'); ?> +showConfigCheckbox('settings_enableExtensionImportFromRepository', 'enableExtensionImportFromRepository'); ?> showEndPaneContent('site', $currenttab); @@ -454,7 +464,6 @@ if(($kkk = $this->callHook('getFullSearchEngine')) && is_array($kkk)) showConfigText('settings_siteDefaultPage', 'siteDefaultPage'); ?> showConfigText('settings_rootFolderID', 'rootFolderID'); ?> showConfigCheckbox('settings_useHomeAsRootFolder', 'useHomeAsRootFolder'); ?> -showConfigCheckbox('settings_titleDisplayHack', 'titleDisplayHack'); ?> showConfigCheckbox('settings_showMissingTranslations', 'showMissingTranslations'); ?>