diff --git a/CHANGELOG b/CHANGELOG index dd49c400c..12848d04a 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,22 @@ +-------------------------------------------------------------------------------- + Changes in version 5.1.27 +-------------------------------------------------------------------------------- +- fix adding new attribute definition if object type is 'all' +- EmptyFolder runs callbacks to remove objects from index and remove preview images +- skip internal conversion service for images if imagick extension is missing +- running the controller will always call the hooks preRun and postRun +- add tabs on ViewFolder page +- link behind logo in header can be set in extension +- move attributes for documents and folders on search page into own accordion +- search page uses conversion mgr for preview images +- backport export of search result from seeddms 6.0.x +- ldap authentication used 'uid' instead 'cn' in distinguished name if + the initial bind failed and a second bind with the user's credentials + is done +- fix sorting in search result +- import of users can handle hidden and disabled flag +- image conversion falls back to gd library if imagick extension is not loaded + -------------------------------------------------------------------------------- Changes in version 5.1.26 -------------------------------------------------------------------------------- diff --git a/SeedDMS_Core/Core/inc.ClassDMS.php b/SeedDMS_Core/Core/inc.ClassDMS.php index ad59145d3..bfda37984 100644 --- a/SeedDMS_Core/Core/inc.ClassDMS.php +++ b/SeedDMS_Core/Core/inc.ClassDMS.php @@ -387,7 +387,7 @@ class SeedDMS_Core_DMS { $this->lasterror = ''; $this->version = '@package_version@'; if($this->version[0] == '@') - $this->version = '5.1.26'; + $this->version = '5.1.27'; } /* }}} */ /** @@ -1542,8 +1542,8 @@ 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`)"; - } elseif(is_string($attribute)) { - $searchAttributes[] = "EXISTS (SELECT NULL FROM `tblFolderAttributes` WHERE `tblFolderAttributes`.`attrdef`=".$attrdefid." AND `tblFolderAttributes`.`value`='".$attribute."' AND `tblFolderAttributes`.`folder`=`tblFolders`.`id`)"; + } else { + $searchAttributes[] = "EXISTS (SELECT NULL FROM `tblFolderAttributes` WHERE `tblFolderAttributes`.`attrdef`=".$attrdefid." AND (`tblFolderAttributes`.`value`='".(is_array($attribute) ? implode("' OR `tblFolderAttributes`.`value` = '", $attribute) : $attribute)."') AND `tblFolderAttributes`.`folder`=`tblFolders`.`id`)"; } } else { if($attrdef->getType() == SeedDMS_Core_AttributeDefinition::type_date && is_array($attribute)) { @@ -1630,12 +1630,14 @@ class SeedDMS_Core_DMS { $searchQuery .= " ORDER BY `tblFolders`.`name` DESC"; break; case 'na': + case 'n': $searchQuery .= " ORDER BY `tblFolders`.`name`"; break; case 'id': $searchQuery .= " ORDER BY `tblFolders`.`id` DESC"; break; case 'ia': + case 'i': $searchQuery .= " ORDER BY `tblFolders`.`id`"; break; default: @@ -1739,7 +1741,7 @@ class SeedDMS_Core_DMS { $attribute = array($attribute); $lsearchAttributes[] = "EXISTS (SELECT NULL FROM `tblDocumentAttributes` WHERE `tblDocumentAttributes`.`attrdef`=".$attrdefid." AND (`tblDocumentAttributes`.`value` like '%".$valueset[0].implode("%' OR `tblDocumentAttributes`.`value` like '%".$valueset[0], $attribute)."%') AND `tblDocumentAttributes`.`document` = `tblDocuments`.`id`)"; } else - $lsearchAttributes[] = "EXISTS (SELECT NULL FROM `tblDocumentAttributes` WHERE `tblDocumentAttributes`.`attrdef`=".$attrdefid." AND `tblDocumentAttributes`.`value`='".$attribute."' AND `tblDocumentAttributes`.`document` = `tblDocuments`.`id`)"; + $lsearchAttributes[] = "EXISTS (SELECT NULL FROM `tblDocumentAttributes` WHERE `tblDocumentAttributes`.`attrdef`=".$attrdefid." AND (`tblDocumentAttributes`.`value`='".(is_array($attribute) ? implode("' OR `tblDocumentAttributes`.`value` = '", $attribute) : $attribute)."') AND `tblDocumentAttributes`.`document` = `tblDocuments`.`id`)"; } else { if($attrdef->getType() == SeedDMS_Core_AttributeDefinition::type_date && is_array($attribute)) { $kkll = []; @@ -1762,7 +1764,7 @@ class SeedDMS_Core_DMS { $attribute = array($attribute); $lsearchAttributes[] = "EXISTS (SELECT NULL FROM `tblDocumentContentAttributes` WHERE `tblDocumentContentAttributes`.`attrdef`=".$attrdefid." AND (`tblDocumentContentAttributes`.`value` like '%".$valueset[0].implode("%' OR `tblDocumentContentAttributes`.`value` like '%".$valueset[0], $attribute)."%') AND `tblDocumentContentAttributes`.`content` = `tblDocumentContent`.`id`)"; } else { - $lsearchAttributes[] = "EXISTS (SELECT NULL FROM `tblDocumentContentAttributes` WHERE `tblDocumentContentAttributes`.`attrdef`=".$attrdefid." AND `tblDocumentContentAttributes`.`value`='".$attribute."' AND `tblDocumentContentAttributes`.content = `tblDocumentContent`.id)"; + $lsearchAttributes[] = "EXISTS (SELECT NULL FROM `tblDocumentContentAttributes` WHERE `tblDocumentContentAttributes`.`attrdef`=".$attrdefid." AND (`tblDocumentContentAttributes`.`value`='".(is_array($attribute) ? implode("' OR `tblDocumentContentAttributes`.`value` = '", $attribute) : $attribute)."') AND `tblDocumentContentAttributes`.content = `tblDocumentContent`.id)"; } } else { if($attrdef->getType() == SeedDMS_Core_AttributeDefinition::type_date && is_array($attribute)) { @@ -1934,12 +1936,14 @@ class SeedDMS_Core_DMS { $orderbyQuery = " ORDER BY `tblDocuments`.`name` DESC"; break; case 'na': + case 'n': $orderbyQuery = " ORDER BY `tblDocuments`.`name`"; break; case 'id': $orderbyQuery = " ORDER BY `tblDocuments`.`id` DESC"; break; case 'ia': + case 'i': $orderbyQuery = " ORDER BY `tblDocuments`.`id`"; break; default: @@ -2703,7 +2707,7 @@ class SeedDMS_Core_DMS { if (is_object($this->getAttributeDefinitionByName($name))) { return false; } - if(!$objtype) + if($objtype < SeedDMS_Core_AttributeDefinition::objtype_all || $objtype > SeedDMS_Core_AttributeDefinition::objtype_documentcontent) return false; if(!$type) return false; diff --git a/SeedDMS_Core/package.xml b/SeedDMS_Core/package.xml index 1d88541ca..853ed07d6 100644 --- a/SeedDMS_Core/package.xml +++ b/SeedDMS_Core/package.xml @@ -12,11 +12,11 @@ uwe@steinmann.cx yes - 2022-04-25 + 2022-08-31 - 5.1.26 - 5.1.26 + 5.1.27 + 5.1.27 stable @@ -24,12 +24,9 @@ GPL License -- fix validating multi value attributes -- SeedDMS_Core_User::removeFromProcesses() can be limited to a list of documents. In that case only the last version will be modified. -- add more types to getStatisticalData() -- add optional parameter $op to SeedDMS_Core_AttributeDefinition::getObjects() -- SeedDMS_Core_AttributeDefinition::getObjects() will not filter by value if null is passed -- SeedDMS_Core_DMS::getAllAttributeDefinitions() has second parameter to filter attributes by type +- fix SeedDMS_Core_DMS::addAttributeDefinition() when objtype is 0 +- sort search result even if sortorder is 'i' or 'n' +- pass an array as an attribute to search() will OR each element @@ -1974,5 +1971,26 @@ add method SeedDMS_Core_DatabaseAccess::setLogFp() - fix searching for document content with a custom attribute having a value set + + 2022-04-25 + + + 5.1.26 + 5.1.26 + + + stable + stable + + GPL License + +- fix validating multi value attributes +- SeedDMS_Core_User::removeFromProcesses() can be limited to a list of documents. In that case only the last version will be modified. +- add more types to getStatisticalData() +- add optional parameter $op to SeedDMS_Core_AttributeDefinition::getObjects() +- SeedDMS_Core_AttributeDefinition::getObjects() will not filter by value if null is passed +- SeedDMS_Core_DMS::getAllAttributeDefinitions() has second parameter to filter attributes by type + + diff --git a/TODO b/TODO index 830548653..affeada6a 100644 --- a/TODO +++ b/TODO @@ -1,3 +1,6 @@ +This list is hopelessly outdated, but some of the issues are +still worth to be implemented! + Update comment and date of a review/approval, if the same status is set again. Currently setting the same status is turned of, because it didn't have any effect, which is quite confusing if the user can do an operation @@ -25,8 +28,6 @@ approaches to get the configuration directory. Show expiration status of documents in document list -Copy folders recursivly - Allow operations like delete, move, approve, etc. on a list of documents installation script: diff --git a/composer-dist.json b/composer-dist.json index 43624bd3a..7c0171634 100644 --- a/composer-dist.json +++ b/composer-dist.json @@ -11,6 +11,7 @@ "pear/auth_sasl": "*", "pear/db": "*", "alecrabbit/php-console-colour": "*", - "zf1/zend-search-lucene": "*" + "zf1/zend-search-lucene": "*", + "symfony/http-foundation": "^5.4" } } diff --git a/controllers/class.AddDocument.php b/controllers/class.AddDocument.php index d3ecb2679..bf6e9fb69 100644 --- a/controllers/class.AddDocument.php +++ b/controllers/class.AddDocument.php @@ -64,7 +64,7 @@ class SeedDMS_Controller_AddDocument extends SeedDMS_Controller_Common { $attribute = date('Y-m-d', makeTsFromDate($attribute)); break; } - if(!$attrdef->validate($attribute)) { + if(!$attrdef->validate($attribute, null, true)) { $this->errormsg = getAttributeValidationError($attrdef->getValidationError(), $attrdef->getName(), $attribute); return false; } @@ -88,10 +88,13 @@ class SeedDMS_Controller_AddDocument extends SeedDMS_Controller_Common { $attribute = date('Y-m-d', makeTsFromDate($attribute)); break; } - if(!$attrdef->validate($attribute)) { + if(!$attrdef->validate($attribute, null, true)) { $this->errormsg = getAttributeValidationError($attrdef->getValidationError(), $attrdef->getName(), $attribute); return false; } + } elseif($attrdef->getMinValues() > 0) { + $this->errormsg = array("attr_min_values", array("attrname"=>$attrdef->getName())); + return false; } } else { if($ret === false) diff --git a/controllers/class.AddSubFolder.php b/controllers/class.AddSubFolder.php index 9b1835a12..24a609cb8 100644 --- a/controllers/class.AddSubFolder.php +++ b/controllers/class.AddSubFolder.php @@ -45,7 +45,12 @@ class SeedDMS_Controller_AddSubFolder extends SeedDMS_Controller_Common { if($attrdef = $dms->getAttributeDefinition($attrdefid)) { if(null === ($ret = $this->callHook('validateAttribute', $attrdef, $attribute))) { if($attribute) { - if(!$attrdef->validate($attribute)) { + switch($attrdef->getType()) { + case SeedDMS_Core_AttributeDefinition::type_date: + $attribute = date('Y-m-d', makeTsFromDate($attribute)); + break; + } + if(!$attrdef->validate($attribute, null, true)) { $this->errormsg = getAttributeValidationError($attrdef->getValidationError(), $attrdef->getName(), $attribute); return false; } diff --git a/controllers/class.DocumentAccess.php b/controllers/class.DocumentAccess.php index aaeb6a457..e3da3cacd 100644 --- a/controllers/class.DocumentAccess.php +++ b/controllers/class.DocumentAccess.php @@ -30,119 +30,180 @@ class SeedDMS_Controller_DocumentAccess extends SeedDMS_Controller_Common { $settings = $this->params['settings']; $action = $this->params['action']; - // Change owner ----------------------------------------------------------- - if ($action == "setowner") { - if(false === $this->callHook('preSetOwner', $document)) { - if(empty($this->errormsg)) - $this->errormsg = 'hook_preSetOwner_failed'; - return null; - } - $newowner = $this->params['newowner']; - $oldowner = $document->getOwner(); - if($document->setOwner($newowner)) { - if(false === $this->callHook('postSetOwner', $document, $oldowner)) { - if(empty($this->errormsg)) - $this->errormsg = 'hook_postSetOwner_failed'; - return null; - } - } - } elseif ($action == "notinherit") { - if(false === $this->callHook('preSetNotInherit', $document)) { - if(empty($this->errormsg)) - $this->errormsg = 'hook_preSetNotInherit_failed'; - return null; - } + return null; + } - /* Get default access before access is not longer inherited. This - * will return the default access from the parent folder. - */ - $defAccess = $document->getDefaultAccess(); - if(!$document->setInheritAccess(false)) { - return false; - } + // Change owner ----------------------------------------------------------- + public function setowner() { + $dms = $this->params['dms']; + $user = $this->params['user']; + $folder = $this->params['folder']; + $document = $this->params['document']; + $settings = $this->params['settings']; - if(!$document->setDefaultAccess($defAccess)) { - return false; - } - - //copy ACL of parent folder - $mode = $this->params['mode']; - if ($mode == "copy") { - $accessList = $folder->getAccessList(); - foreach ($accessList["users"] as $userAccess) - $document->addAccess($userAccess->getMode(), $userAccess->getUserID(), true); - foreach ($accessList["groups"] as $groupAccess) - $document->addAccess($groupAccess->getMode(), $groupAccess->getGroupID(), false); - } - - if(false === $this->callHook('postSetNotInherit', $document)) { + if(false === $this->callHook('preSetOwner', $document)) { + if(empty($this->errormsg)) + $this->errormsg = 'hook_preSetOwner_failed'; + return null; + } + $newowner = $this->params['newowner']; + $oldowner = $document->getOwner(); + if($document->setOwner($newowner)) { + if(false === $this->callHook('postSetOwner', $document, $oldowner)) { if(empty($this->errormsg)) - $this->errormsg = 'hook_postSetNotInherit_failed'; + $this->errormsg = 'hook_postSetOwner_failed'; return null; } - } elseif ($action == "inherit") { - if(false === $this->callHook('preSetInherit', $document)) { - if(empty($this->errormsg)) - $this->errormsg = 'hook_preSetInherit_failed'; - return null; - } - if(!$document->clearAccessList() || !$document->setInheritAccess(true)) { - return false; - } - - if(false === $this->callHook('postSetInherit', $document)) { - if(empty($this->errormsg)) - $this->errormsg = 'hook_postSetInherit_failed'; - return null; - } - } elseif ($action == "setdefault") { - if(false === $this->callHook('preSetDefault', $document)) { - if(empty($this->errormsg)) - $this->errormsg = 'hook_preSetDefault_failed'; - return null; - } - - $mode = $this->params['mode']; - if(!$document->setDefaultAccess($mode)) { - return false; - } - - if(false === $this->callHook('postSetDefault', $document)) { - if(empty($this->errormsg)) - $this->errormsg = 'hook_postSetDefault_failed'; - return null; - } - } elseif ($action == "editaccess") { - $mode = $this->params['mode']; - $userid = $this->params['userid']; - $groupid = $this->params['groupid']; - if ($userid) { - $document->changeAccess($mode, $userid, true); - } - elseif ($groupid) { - $document->changeAccess($mode, $groupid, false); - } - } elseif ($action == "delaccess") { - $userid = $this->params['userid']; - $groupid = $this->params['groupid']; - if ($userid) { - $document->removeAccess($userid, true); - } - elseif ($groupid) { - $document->removeAccess($groupid, false); - } - } elseif ($action == "addaccess") { - $mode = $this->params['mode']; - $userid = $this->params['userid']; - $groupid = $this->params['groupid']; - if ($userid && $userid != -1) { - $document->addAccess($mode, $userid, true); - } - elseif ($groupid && $groupid != -1) { - $document->addAccess($mode, $groupid, false); - } } + return true; + } + public function notinherit() { + $dms = $this->params['dms']; + $user = $this->params['user']; + $folder = $this->params['folder']; + $document = $this->params['document']; + $settings = $this->params['settings']; + + if(false === $this->callHook('preSetNotInherit', $document)) { + if(empty($this->errormsg)) + $this->errormsg = 'hook_preSetNotInherit_failed'; + return null; + } + + /* Get default access before access is not longer inherited. This + * will return the default access from the parent folder. + */ + $defAccess = $document->getDefaultAccess(); + if(!$document->setInheritAccess(false)) { + return false; + } + + if(!$document->setDefaultAccess($defAccess)) { + return false; + } + + //copy ACL of parent folder + $mode = $this->params['mode']; + if ($mode == "copy") { + $accessList = $folder->getAccessList(); + foreach ($accessList["users"] as $userAccess) + $document->addAccess($userAccess->getMode(), $userAccess->getUserID(), true); + foreach ($accessList["groups"] as $groupAccess) + $document->addAccess($groupAccess->getMode(), $groupAccess->getGroupID(), false); + } + + if(false === $this->callHook('postSetNotInherit', $document)) { + if(empty($this->errormsg)) + $this->errormsg = 'hook_postSetNotInherit_failed'; + return null; + } + return true; + } + + public function inherit() { + $dms = $this->params['dms']; + $user = $this->params['user']; + $folder = $this->params['folder']; + $document = $this->params['document']; + $settings = $this->params['settings']; + + if(false === $this->callHook('preSetInherit', $document)) { + if(empty($this->errormsg)) + $this->errormsg = 'hook_preSetInherit_failed'; + return null; + } + if(!$document->clearAccessList() || !$document->setInheritAccess(true)) { + return false; + } + + if(false === $this->callHook('postSetInherit', $document)) { + if(empty($this->errormsg)) + $this->errormsg = 'hook_postSetInherit_failed'; + return null; + } + return true; + } + + public function setdefault() { + $dms = $this->params['dms']; + $user = $this->params['user']; + $folder = $this->params['folder']; + $document = $this->params['document']; + $settings = $this->params['settings']; + + if(false === $this->callHook('preSetDefault', $document)) { + if(empty($this->errormsg)) + $this->errormsg = 'hook_preSetDefault_failed'; + return null; + } + + $mode = $this->params['mode']; + if(!$document->setDefaultAccess($mode)) { + return false; + } + + if(false === $this->callHook('postSetDefault', $document)) { + if(empty($this->errormsg)) + $this->errormsg = 'hook_postSetDefault_failed'; + return null; + } + return true; + } + + public function editaccess() { + $dms = $this->params['dms']; + $user = $this->params['user']; + $folder = $this->params['folder']; + $document = $this->params['document']; + $settings = $this->params['settings']; + + $mode = $this->params['mode']; + $userid = $this->params['userid']; + $groupid = $this->params['groupid']; + if ($userid) { + $document->changeAccess($mode, $userid, true); + } + elseif ($groupid) { + $document->changeAccess($mode, $groupid, false); + } + return true; + } + + public function delaccess() { + $dms = $this->params['dms']; + $user = $this->params['user']; + $folder = $this->params['folder']; + $document = $this->params['document']; + $settings = $this->params['settings']; + + $userid = $this->params['userid']; + $groupid = $this->params['groupid']; + if ($userid) { + $document->removeAccess($userid, true); + } + elseif ($groupid) { + $document->removeAccess($groupid, false); + } + return true; + } + + public function addaccess() { + $dms = $this->params['dms']; + $user = $this->params['user']; + $folder = $this->params['folder']; + $document = $this->params['document']; + $settings = $this->params['settings']; + + $mode = $this->params['mode']; + $userid = $this->params['userid']; + $groupid = $this->params['groupid']; + if ($userid && $userid != -1) { + $document->addAccess($mode, $userid, true); + } + elseif ($groupid && $groupid != -1) { + $document->addAccess($mode, $groupid, false); + } return true; } } diff --git a/controllers/class.EditDocument.php b/controllers/class.EditDocument.php index 483972780..a67011a65 100644 --- a/controllers/class.EditDocument.php +++ b/controllers/class.EditDocument.php @@ -125,7 +125,7 @@ class SeedDMS_Controller_EditDocument extends SeedDMS_Controller_Common { $attribute = date('Y-m-d', makeTsFromDate($attribute)); break; } - if(!$attrdef->validate($attribute, $document, true)) { + if(!$attrdef->validate($attribute, $document, false)) { $this->errormsg = getAttributeValidationError($attrdef->getValidationError(), $attrdef->getName(), $attribute); return false; } diff --git a/controllers/class.EditFolder.php b/controllers/class.EditFolder.php index 9f8aee5aa..818f146b2 100644 --- a/controllers/class.EditFolder.php +++ b/controllers/class.EditFolder.php @@ -59,7 +59,7 @@ class SeedDMS_Controller_EditFolder extends SeedDMS_Controller_Common { $attribute = date('Y-m-d', makeTsFromDate($attribute)); break; } - if(!$attrdef->validate($attribute, $folder, true)) { + if(!$attrdef->validate($attribute, $folder, false)) { $this->errormsg = getAttributeValidationText($attrdef->getValidationError(), $attrdef->getName(), $attribute); return false; } @@ -70,6 +70,7 @@ class SeedDMS_Controller_EditFolder extends SeedDMS_Controller_Common { } } elseif($attrdef->getMinValues() > 0) { $this->errormsg = getMLText("attr_min_values", array("attrname"=>$attrdef->getName())); + return false; } elseif(isset($oldattributes[$attrdefid])) { if(!$folder->removeAttribute($dms->getAttributeDefinition($attrdefid))) return false; diff --git a/controllers/class.EmptyFolder.php b/controllers/class.EmptyFolder.php index a6629923c..eb1c5a629 100644 --- a/controllers/class.EmptyFolder.php +++ b/controllers/class.EmptyFolder.php @@ -22,41 +22,64 @@ */ class SeedDMS_Controller_EmptyFolder extends SeedDMS_Controller_Common { - public function run() { + /* Register a callback which removes each document/folder from the fulltext index + * The callback must return null otherwise the removal will be canceled. + */ + static function removeFromIndex($arr, $object) { /* {{{ */ + $fulltextservice = $arr[0]; + $lucenesearch = $fulltextservice->Search(); + $hit = null; + if($object->isType('document')) + $hit = $lucenesearch->getDocument($object->getID()); + elseif($object->isType('folder')) + $hit = $lucenesearch->getFolder($object->getID()); + if($hit) { + $index = $fulltextservice->Indexer(); + $index->delete($hit->id); + $index->commit(); + } + return null; + } /* }}} */ + + static function removePreviews($arr, $document) { /* {{{ */ + $previewer = $arr[0]; + + $previewer->deleteDocumentPreviews($document); + return null; + } /* }}} */ + + public function run() { /* {{{ */ $dms = $this->params['dms']; $user = $this->params['user']; $settings = $this->params['settings']; $folder = $this->params['folder']; - $index = $this->params['index']; - $indexconf = $this->params['indexconf']; + $fulltextservice = $this->params['fulltextservice']; - /* Get the document id and name before removing the document */ + /* Get the folder id and name before removing the folder */ $foldername = $folder->getName(); $folderid = $folder->getID(); if(false === $this->callHook('preEmptyFolder')) { if(empty($this->errormsg)) $this->errormsg = 'hook_preEmptyFolder_failed'; - return null; + return false; } $result = $this->callHook('emptyFolder', $folder); if($result === null) { - /* Register a callback which removes each document from the fulltext index - * The callback must return null other the removal will be canceled. - */ - function removeFromIndex($arr, $document) { - $index = $arr[0]; - $indexconf = $arr[1]; - $lucenesearch = new $indexconf['Search']($index); - if($hit = $lucenesearch->getDocument($document->getID())) { - $index->delete($hit->id); - $index->commit(); - } - return null; + if($fulltextservice && ($index = $fulltextservice->Indexer())) { + /* Register a callback which is called by SeedDMS_Core when a folder + * or document is removed. The second parameter passed to this callback + * is the document or folder to be removed. + */ + $dms->addCallback('onPreRemoveDocument', 'SeedDMS_Controller_EmptyFolder::removeFromIndex', array($fulltextservice)); + $dms->addCallback('onPreRemoveFolder', 'SeedDMS_Controller_EmptyFolder::removeFromIndex', array($fulltextservice)); } - if($index) - $dms->setCallback('onPreEmptyDocument', 'removeFromIndex', array($index, $indexconf)); + + /* Register another callback which removes the preview images of the document */ + require_once("SeedDMS/Preview.php"); + $previewer = new SeedDMS_Preview_Previewer($settings->_cacheDir); + $dms->addCallback('onPreRemoveDocument', 'SeedDMS_Controller_EmptyFolder::removePreviews', array($previewer)); if (!$folder->emptyFolder()) { $this->errormsg = 'error_occured'; @@ -72,5 +95,5 @@ class SeedDMS_Controller_EmptyFolder extends SeedDMS_Controller_Common { } return true; - } + } /* }}} */ } diff --git a/controllers/class.Preview.php b/controllers/class.Preview.php index 3cea95428..af8075dd1 100644 --- a/controllers/class.Preview.php +++ b/controllers/class.Preview.php @@ -22,96 +22,93 @@ */ class SeedDMS_Controller_Preview extends SeedDMS_Controller_Common { - public function run() { - global $theme; + public function version() { /* {{{ */ $dms = $this->params['dms']; - $type = $this->params['type']; $settings = $this->params['settings']; $conversionmgr = $this->params['conversionmgr']; - switch($type) { - case "version": - $version = $this->params['version']; - $document = $this->params['document']; - $width = $this->params['width']; - if($version < 1) { - $content = $this->callHook('documentLatestContent', $document); - if($content === null) - $content = $document->getLatestContent(); - } else { - $content = $this->callHook('documentContent', $document, $version); - if($content === null) - $content = $document->getContentByVersion($version); - } - if (!is_object($content)) { - $this->errormsg = 'invalid_version'; - return false; - } - /* set params['content'] for compatiblity with older extensions which - * expect the content in the controller - */ - $this->params['content'] = $content; - if(null === $this->callHook('version')) { - if($width) - $previewer = new SeedDMS_Preview_Previewer($settings->_cacheDir, $width, $settings->_cmdTimeout); - else - $previewer = new SeedDMS_Preview_Previewer($settings->_cacheDir); - if($conversionmgr) - $previewer->setConversionMgr($conversionmgr); - else - $previewer->setConverters($settings->_converters['preview']); - $previewer->setXsendfile($settings->_enableXsendfile); - if(!$previewer->hasPreview($content)) { - add_log_line(""); - if(!$previewer->createPreview($content)) { - add_log_line("", PEAR_LOG_ERR); - } - } - if(!$previewer->hasPreview($content)) { - header('Content-Type: image/svg+xml'); - readfile('../views/'.$theme.'/images/empty.svg'); - exit; - } - header('Content-Type: image/png'); - $previewer->getPreview($content); - } - break; - case "file": - $object = $this->params['object']; - $document = $this->params['document']; - $width = $this->params['width']; - if (!is_object($object)) { - $this->errormsg = 'invalid_version'; - return false; - } - - if(null === $this->callHook('file')) { - if($width) - $previewer = new SeedDMS_Preview_Previewer($settings->_cacheDir, $width, $settings->_cmdTimeout); - else - $previewer = new SeedDMS_Preview_Previewer($settings->_cacheDir); - if($conversionmgr) - $previewer->setConversionMgr($conversionmgr); - else - $previewer->setConverters($settings->_converters['preview']); - $previewer->setXsendfile($settings->_enableXsendfile); - - if(!$previewer->hasPreview($object)) { - add_log_line(""); - if(!$previewer->createPreview($object)) { - add_log_line("", PEAR_LOG_ERR); - } - } - if(!$previewer->hasPreview($object)) { - header('Content-Type: image/svg+xml'); - readfile('../views/'.$theme.'/images/empty.svg'); - exit; - } - header('Content-Type: image/png'); - $previewer->getPreview($object); - } - break; + $version = $this->params['version']; + $document = $this->params['document']; + $width = $this->params['width']; + if($version < 1) { + $content = $this->callHook('documentLatestContent', $document); + if($content === null) + $content = $document->getLatestContent(); + } else { + $content = $this->callHook('documentContent', $document, $version); + if($content === null) + $content = $document->getContentByVersion($version); } - return true; - } + if (!is_object($content)) { + $this->errormsg = 'invalid_version'; + return false; + } + /* set params['content'] for compatiblity with older extensions which + * expect the content in the controller + */ + $this->params['content'] = $content; + if(null === $this->callHook('version')) { + if($width) + $previewer = new SeedDMS_Preview_Previewer($settings->_cacheDir, $width, $settings->_cmdTimeout); + else + $previewer = new SeedDMS_Preview_Previewer($settings->_cacheDir); + if($conversionmgr) + $previewer->setConversionMgr($conversionmgr); + else + $previewer->setConverters($settings->_converters['preview']); + $previewer->setXsendfile($settings->_enableXsendfile); + if(!$previewer->hasPreview($content)) { + add_log_line(""); + if(!$previewer->createPreview($content)) { + add_log_line("", PEAR_LOG_ERR); + } + } + if(!$previewer->hasPreview($content)) { + return false; + } + header('Content-Type: image/png'); + $previewer->getPreview($content); + return true; + } + } /* }}} */ + + public function file() { /* {{{ */ + $dms = $this->params['dms']; + $settings = $this->params['settings']; + $conversionmgr = $this->params['conversionmgr']; + + $object = $this->params['object']; + $document = $this->params['document']; + $width = $this->params['width']; + if (!is_object($object)) { + $this->errormsg = 'invalid_version'; + return false; + } + + if(null === $this->callHook('file')) { + if($width) + $previewer = new SeedDMS_Preview_Previewer($settings->_cacheDir, $width, $settings->_cmdTimeout); + else + $previewer = new SeedDMS_Preview_Previewer($settings->_cacheDir); + if($conversionmgr) + $previewer->setConversionMgr($conversionmgr); + else + $previewer->setConverters($settings->_converters['preview']); + $previewer->setXsendfile($settings->_enableXsendfile); + + if(!$previewer->hasPreview($object)) { + add_log_line(""); + if(!$previewer->createPreview($object)) { + add_log_line("", PEAR_LOG_ERR); + } + } + if(!$previewer->hasPreview($object)) { + return false; + } + header('Content-Type: image/png'); + $previewer->getPreview($object); + return true; + } + } /* }}} */ + } diff --git a/controllers/class.RemoveFolder.php b/controllers/class.RemoveFolder.php index a0633d093..ac64f246a 100644 --- a/controllers/class.RemoveFolder.php +++ b/controllers/class.RemoveFolder.php @@ -22,17 +22,17 @@ */ class SeedDMS_Controller_RemoveFolder extends SeedDMS_Controller_Common { - /* Register a callback which removes each document from the fulltext index + /* Register a callback which removes each document/folder from the fulltext index * The callback must return null otherwise the removal will be canceled. */ - static function removeFromIndex($arr, $document) { /* {{{ */ + static function removeFromIndex($arr, $object) { /* {{{ */ $fulltextservice = $arr[0]; $lucenesearch = $fulltextservice->Search(); $hit = null; - if($document->isType('document')) - $hit = $lucenesearch->getDocument($document->getID()); - elseif($document->isType('folder')) - $hit = $lucenesearch->getFolder($document->getID()); + if($object->isType('document')) + $hit = $lucenesearch->getDocument($object->getID()); + elseif($object->isType('folder')) + $hit = $lucenesearch->getFolder($object->getID()); if($hit) { $index = $fulltextservice->Indexer(); $index->delete($hit->id); @@ -55,7 +55,7 @@ class SeedDMS_Controller_RemoveFolder extends SeedDMS_Controller_Common { $folder = $this->params['folder']; $fulltextservice = $this->params['fulltextservice']; - /* Get the document id and name before removing the document */ + /* Get the folder id and name before removing the folder */ $foldername = $folder->getName(); $folderid = $folder->getID(); diff --git a/controllers/class.ViewOnline.php b/controllers/class.ViewOnline.php index 7d071db17..6b9ca3f0a 100644 --- a/controllers/class.ViewOnline.php +++ b/controllers/class.ViewOnline.php @@ -49,16 +49,19 @@ class SeedDMS_Controller_ViewOnline extends SeedDMS_Controller_Common { */ $this->params['content'] = $content; if(null === $this->callHook('version')) { - header("Content-Type: " . $content->getMimeType()); - $efilename = rawurlencode($content->getOriginalFileName()); - if (!isset($settings->_viewOnlineFileTypes) || !is_array($settings->_viewOnlineFileTypes) || !in_array(strtolower($content->getFileType()), $settings->_viewOnlineFileTypes)) { - header("Content-Disposition: attachment; filename=\"" . $efilename . "\"; filename*=UTF-8''".$efilename); - } else { - header("Content-Disposition: filename=\"" . $efilename . "\"; filename*=UTF-8''".$efilename); - } - header("Cache-Control: must-revalidate"); + if(file_exists($dms->contentDir . $content->getPath())) { + header("Content-Type: " . $content->getMimeType()); + $efilename = rawurlencode($content->getOriginalFileName()); + if (!isset($settings->_viewOnlineFileTypes) || !is_array($settings->_viewOnlineFileTypes) || !in_array(strtolower($content->getFileType()), $settings->_viewOnlineFileTypes)) { + header("Content-Disposition: attachment; filename=\"" . $efilename . "\"; filename*=UTF-8''".$efilename); + } else { + header("Content-Disposition: filename=\"" . $efilename . "\"; filename*=UTF-8''".$efilename); + } + header("Cache-Control: must-revalidate"); + header("ETag: ".$content->getChecksum()); - sendFile($dms->contentDir.$content->getPath()); + sendFile($dms->contentDir.$content->getPath()); + } } break; } diff --git a/doc/README.Ldap b/doc/README.Ldap new file mode 100644 index 000000000..7940ca091 --- /dev/null +++ b/doc/README.Ldap @@ -0,0 +1,58 @@ +Ldap configuration +=================== + +The configuration for authentication against an ldap server needs to be done +the settings.xml file using a text editor. It cannot be edited from within the +web gui. + +SeedDMS supports ldap authentication using an Active Directory (AD) or a +regular ldap server, e.g. openldap + +The location of the ldap server is specified in two parameters: 'host' and +'port'. 'host' can be either a plain hostname or an ldap URI, including the +protocol, the host and optionally the port, e.g. ldap://localhost:389. In case +of an URI the port in the configuration must remain empty. + +The authentication itself is a two step process which differs, depending on how +to bind to the server. If the configuration sets 'bindDN' and 'bindPW', those +values will be used for a initial non anonymous bind to the ldap server +otherwise an anonymous bind is executed. + +After the initial bind, a ldap search for either 'uid=' (ldap) or +'sAMAccountName=' (AD) below basedn is done. The purpose of this +search is to retrieve a working bindDN which is then used to actually +authenticate the user. In case of an anonymous first bind the search will +likely fail and the bindDN for the second bind will be either +'uid=,' (ldap) or '@' (AD). If +the search succeeds the bindDN will be taken from the user's data in the ldap +server. This bindDN will be used for a second bind using the users password. +If the second bind succeeds the user could be successfully authenticated. + +The data from the ldap server can be used to create an account in SeedDMS +if the user trying to login does not exist yet, but was able to authenticate. +This will only be done if 'authentication->restricted' in the configuration +is set to true. In that case the common name (cn) and email address is taken +from ldap. Existing accounts in SeedDMS will not be updated with data from +ldap. + +Examples +--------- + +Anonymous bind to openldap on localhost, port 389 +- type = "ldap" +- baseDN = "ou=users,dc=mycompany,dc=de" +- host = "ldap://localhost" + +During authentication as user 'admin' the following steps are executed + +1. connect to ldap server at localhost:389 +2. do an anonymous bind +3. search for 'uid=admin' below basedn +4.1. if search succeeds use the dn from the user +4.2. if search fails use 'uid=admin,' as dn +5. do a non anonymous bind with dn and password entered by user +6. if step 5. succeeds the use is authenticated + +If bindDN and bindPW are specified in the configuration, the second step +will be a non anonymous bind. + diff --git a/doc/README.Mail b/doc/README.Mail new file mode 100644 index 000000000..2ee7c999d --- /dev/null +++ b/doc/README.Mail @@ -0,0 +1,30 @@ +Mail configuration +=================== + +SeedDMS uses email to + +* notify users about changes of documents and folders +* send instructions during the password forgotten process + +Configuring email in SeedDMS is simple on systems running a +local mail server, because this is the default in SeedDMS and +no additional configuration is needed. On Linux you should +consider running a local mail server, which relais the mails +to your outgoing mail server. If you cannot run a local mail +server, you can still configure SeedDMS to use an outgoing +SMTP server. Below are some examples on how to configure +SeedDMS for different hosters. + +1&1 +--------- + +smtp server: ssl://smtp.1und1.de +smtp port: 465 + +Gmail +--------- +smtp server: smtp.gmail.com +smtp port: 587 +note: you have to turn on 'Less secure app access' in your google account, +otherwise you will not be able to send mail. It will quit with an error +complaining about wrong credentials diff --git a/doc/README.ocr b/doc/README.ocr new file mode 100644 index 000000000..aaf6a9196 --- /dev/null +++ b/doc/README.ocr @@ -0,0 +1,59 @@ +OCR +==== + +SeedDMS itself has no support for optical character recognition (OCR) +because it does not care about the content of file. Though, external +OCR software can be used to convert an image into text and index it +by the full text search engine. + +The following script can be use to convert a scanned image into pdf +with a text layer added. The script actually takes this file to +ran it through pdftotext. It was published in the seeddms forum +https://sourceforge.net/p/seeddms/discussion/general/thread/4ec5973d/ + + +#!/bin/bash +inputpdf=$1 +temp_folder=/tmp/seedinput/$(date +"%Y_%m_%d_%H%M%S")/ +lockfile=/tmp/seed +protokolldatei=./tesser_syslog +cores=2 + +mkdir -p $lockfile + +while [ -e "$lockfile"/"`basename $0`" ]; +do + sleep 5 +done + +if ( set -o noclobber; echo "locked" > "$lockfile"/"`basename $0`"); then + +trap 'rm -f "$lockfile"/"`basename $0`"; echo $(date) " Lockdatei wird geloescht: " $lockfile"/"`basename $0` Aufrufparameter: $* >> $protokolldatei ;rm -r $temp_folder; exit $?' INT TERM KILL EXIT + #das Datum mit dem Scriptnamen in die Protokolldatei schreiben + echo $(date) " Lockdatei erstellt: " $lockfile"/"`basename $0` >> $protokolldatei + +else + #Script beenden falls Lockdatei nicht erstellt werden konnte + echo $(date) " Programm wird beendet, Lockdatei konnte nicht erstellt werden: $lockfile"/"`basename $0` Aufrufparameter: $* " >> $protokolldatei + exit 1 +fi + +mkdir -p $temp_folder + +$(pdftotext -raw $1 - 1> $temp_folder''tmp.txt ) +pdf_contents=`cat $temp_folder''tmp.txt` +pdf_contents=`echo "$pdf_contents" | tr -dc '[:print:]'` +if [ -z "$pdf_contents" ]; then + convert -density 300 -quality 95 $inputpdf +adjoin $temp_folder''image%03d.jpg + find $temp_folder -name '*.jpg'| parallel --gnu -j $cores tesseract -l deu --psm 6 {} {} pdf + +num=`find $temp_folder -name '*.pdf'| wc -l` +if [ "$num" -gt "1" ]; then + pdfunite $temp_folder*.pdf $temp_folder''tmp.pdf +else + mv $temp_folder*.pdf $temp_folder''tmp.pdf +fi + pdftotext $temp_folder''tmp.pdf $temp_folder''tmp.txt + mv $temp_folder''tmp.pdf $1 +fi +cat $temp_folder''tmp.txt diff --git a/inc/inc.ClassController.php b/inc/inc.ClassController.php index 2092d9313..a6ebc1936 100644 --- a/inc/inc.ClassController.php +++ b/inc/inc.ClassController.php @@ -30,7 +30,7 @@ class Controller { * @return object an object of a class implementing the view */ static function factory($class, $params=array()) { /* {{{ */ - global $settings, $session, $extMgr; + global $settings, $session, $extMgr, $request; if(!$class) { return null; } @@ -56,6 +56,7 @@ class Controller { $controller->setParam('getVars', $_GET); $controller->setParam('requestVars', $_REQUEST); $controller->setParam('session', $session); + $controller->setParam('request', $request); $controller->setParam('settings', $settings); return $controller; } diff --git a/inc/inc.ClassControllerCommon.php b/inc/inc.ClassControllerCommon.php index 403f18518..2f7d1afa4 100644 --- a/inc/inc.ClassControllerCommon.php +++ b/inc/inc.ClassControllerCommon.php @@ -41,37 +41,56 @@ class SeedDMS_Controller_Common { */ protected $lasthookresult; - function __construct($params) { + public function __construct($params) { $this->params = $params; $this->error = 0; $this->errormsg = ''; } /** - * Call methods with name in $get['action'] + * Call method with name in $get['action'] * - * @params array $get $_GET or $_POST variables + * Until 5.1.26 (6.0.19) this method took the name of the + * controller method to run from the element 'action' passed + * in the array $get. Since 5.1.27 (6.0.20) a PSR7 Request + * object is available in the controller and used to get the + * action. + * + * @params array $get $_GET or $_POST variables (since 5.1.27 this is no longer used) * @return mixed return value of called method */ - function __invoke($get=array()) { - $this->callHook('preRun', isset($get['action']) ? $get['action'] : 'run'); - if(isset($get['action']) && $get['action']) { - if(method_exists($this, $get['action'])) { - return $this->{$get['action']}(); - } else { - echo "Missing action '".$get['action']."'"; - return false; + public function __invoke($get=array()) { + $action = null; + if(!$action = $this->getParam('action')) { + $request = $this->getParam('request'); + if($request) { + if($request->isMethod('get')) + $action = $request->query->get('action'); + elseif($request->isMethod('post')) + $action = $request->request->get('action'); } - } else - return $this->run(); - $this->callHook('postRun', isset($get['action']) ? $get['action'] : 'run'); + } + if(!$this->callHook('preRun', get_class($this), $action ? $action : 'run')) { + if($action) { + if(method_exists($this, $action)) { + return $this->{$action}(); + } else { + echo "Missing action '".$action."'"; + return false; + } + } else + return $this->run(); + } else { + return false; + } + $this->callHook('postRun', get_class($this), $action ? $action : 'run'); } - function setParams($params) { + public function setParams($params) { $this->params = $params; } - function setParam($name, $value) { + public function setParam($name, $value) { $this->params[$name] = $value; } @@ -85,7 +104,7 @@ class SeedDMS_Controller_Common { * @param string $name name of parameter * @return mixed value of parameter or null if parameter does not exist */ - function getParam($name) { + public function getParam($name) { return isset($this->params[$name]) ? $this->params[$name] : null; } @@ -95,7 +114,7 @@ class SeedDMS_Controller_Common { * @param string $name name of parameter * @return boolean true if parameter exists otherwise false */ - function hasParam($name) { + public function hasParam($name) { return isset($this->params[$name]) ? true : false; } @@ -104,12 +123,12 @@ class SeedDMS_Controller_Common { * * @param string $name name of parameter */ - function unsetParam($name) { + public function unsetParam($name) { if(isset($this->params[$name])) unset($this->params[$name]); } - function run() { + public function run() { } /** diff --git a/inc/inc.ClassConversionMgr.php b/inc/inc.ClassConversionMgr.php index 5ad9be70a..278d2e510 100644 --- a/inc/inc.ClassConversionMgr.php +++ b/inc/inc.ClassConversionMgr.php @@ -13,6 +13,7 @@ require_once("inc/inc.ClassConversionServiceExec.php"); require_once("inc/inc.ClassConversionServiceImageToImage.php"); +require_once("inc/inc.ClassConversionServiceImageToText.php"); require_once("inc/inc.ClassConversionServicePdfToImage.php"); require_once("inc/inc.ClassConversionServiceTextToText.php"); diff --git a/inc/inc.ClassConversionServiceImageToImage.php b/inc/inc.ClassConversionServiceImageToImage.php index 952efc4f0..b5c9e7951 100644 --- a/inc/inc.ClassConversionServiceImageToImage.php +++ b/inc/inc.ClassConversionServiceImageToImage.php @@ -28,15 +28,15 @@ class SeedDMS_ConversionServiceImageToImage extends SeedDMS_ConversionServiceBas */ public $timeout; - public function __construct($from, $to) { + 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 getInfo() { /* {{{ */ + return "Convert with imagick or gd php functions"; + } /* }}} */ public function getAdditionalParams() { /* {{{ */ return [ @@ -44,28 +44,68 @@ class SeedDMS_ConversionServiceImageToImage extends SeedDMS_ConversionServiceBas ]; } /* }}} */ - public function convert($infile, $target = null, $params = array()) { + /** + * Convert a pixel image into png and scale it + * + * This method uses imagick and if not available falls back to the gd library. + */ + public function convert($infile, $target = null, $params = array()) { /* {{{ */ $start = microtime(true); - $imagick = new Imagick(); - try { - if($imagick->readImage($infile)) { + if(extension_loaded('imagick')) { + $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 imagick service took '.($end-$start).' sec.', PEAR_LOG_INFO); + } + if($target) { + return $imagick->writeImage($target); + } else { + return $imagick->getImageBlob(); + } + } + } catch (ImagickException $e) { + return false; + } + } elseif(extension_loaded('gd')) { + $im = null; + switch($this->from) { + case 'image/jpeg': + case 'image/jpg': + $im = @imagecreatefromjpeg($infile); + break; + case 'image/png': + $im = @imagecreatefrompng($infile); + break; + case 'image/gif': + $im = @imagecreatefromgif($infile); + break; + } + if($im) { + $size = getimagesize($infile); if(!empty($params['width'])) - $imagick->scaleImage(min((int) $params['width'], $imagick->getImageWidth()), 0); + $im = imagescale($im, min((int) $params['width'], $size[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); + $this->logger->log('Conversion from '.$this->from.' to '.$this->to.' with gd image service took '.($end-$start).' sec.', PEAR_LOG_INFO); } if($target) { - return $imagick->writeImage($target); + return imagepng($im, $target); } else { - return $imagick->getImageBlob(); + ob_start(); + var_dump(imagepng($im)); + $image = ob_get_clean(); + return $image; } + } else { + return false; } - } catch (ImagickException $e) { - return false; } return false; - } + } /* }}} */ } diff --git a/inc/inc.ClassConversionServiceImageToText.php b/inc/inc.ClassConversionServiceImageToText.php new file mode 100644 index 000000000..326dba28c --- /dev/null +++ b/inc/inc.ClassConversionServiceImageToText.php @@ -0,0 +1,75 @@ + + * @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_ConversionServiceImageToText extends SeedDMS_ConversionServiceBase { + /** + * timeout + */ + public $timeout; + + public function __construct($from, $to) { /* {{{ */ + $this->from = $from; + $this->to = $to; + } /* }}} */ + + public function getInfo() { /* {{{ */ + return "Convert by extracting iptc data"; + } /* }}} */ + + public function getAdditionalParams() { /* {{{ */ + return [ + ]; + } /* }}} */ + + /** + * Convert a pixel image into text by reading the iptc data + * + * This method uses getimagesize() to extract the data. + */ + public function convert($infile, $target = null, $params = array()) { /* {{{ */ + $start = microtime(true); + $imsize = getimagesize($infile, $moreinfo); + if(!empty($moreinfo['APP13'])) { + $txt = ''; + $iptcdata = iptcparse($moreinfo['APP13']); + foreach(['2#005', '2#015', '2#025', '2#105', '2#080', '2#115', '2#120'] as $key) { + if(isset($iptcdata[$key])) + $txt .= implode(' ', $iptcdata[$key])."\n"; + } + $end = microtime(true); + if($this->logger) { + $this->logger->log('Conversion from '.$this->from.' to '.$this->to.' by extracting iptc took '.($end-$start).' sec.', PEAR_LOG_INFO); + } + if($target) { + file_put_contents($target, $txt); + return true; + } else { + return $txt; + } + } + return false; + } /* }}} */ +} + + diff --git a/inc/inc.ClassDownloadMgr.php b/inc/inc.ClassDownloadMgr.php new file mode 100644 index 000000000..1958e652e --- /dev/null +++ b/inc/inc.ClassDownloadMgr.php @@ -0,0 +1,230 @@ + + * @copyright 2015 Uwe Steinmann + * @version Release: @package_version@ + */ + +#require_once("PHPExcel.php"); +require_once("vendor/autoload.php"); + +/** + * Class to represent an download manager + * + * This class provides some very basic methods to download document lists. + * + * @category DMS + * @package SeedDMS + * @author Uwe Steinmann + * @copyright 2015 Uwe Steinmann + * @version Release: @package_version@ + */ +class SeedDMS_Download_Mgr { + /** + * @var string $tmpdir directory where download archive is temp. created + * @access protected + */ + protected $tmpdir; + + /** + * @var array $items list of document content items + * @access protected + */ + protected $items; + + /** + * @var array $extracols list of arrays with extra columns per item + * @access protected + */ + protected $extracols; + + /** + * @var array $rawcontents list of content used instead of document content + * @access protected + */ + protected $rawcontents; + + /** + * @var array $filenames filename used in archive + * @access protected + */ + protected $filnames; + + function __construct($tmpdir = '') { + $this->tmpdir = $tmpdir; + $this->items = array(); + $this->header = array(getMLText('download_header_document_no'), getMLText('download_header_document_name'), getMLText('download_header_filename'), getMLText('download_header_state'), getMLText('download_header_internal_version'), getMLText('download_header_reviewer'), getMLText('download_header_review_date'), getMLText('download_header_review_comment'), getMLText('download_header_review_state'), getMLText('download_header_approver'), getMLText('download_header_approval_date'), getMLText('download_header_approval_comment'), getMLText('download_header_approval_state')); + $this->extracols = array(); + $this->rawcontents = array(); + $this->extraheader = array(); + } + + public function addHeader($extraheader) { /* {{{ */ + $this->extraheader = $extraheader; + } /* }}} */ + + public function addItem($item, $extracols=array(), $rawcontent='', $filename='') { /* {{{ */ + $this->items[$item->getID()] = $item; + $this->extracols[$item->getID()] = $extracols; + $this->rawcontents[$item->getID()] = $rawcontent; + $this->filenames[$item->getID()] = $filename; + } /* }}} */ + + public function createToc($file) { /* {{{ */ + $items = $this->items; + $objPHPExcel = new PhpOffice\PhpSpreadsheet\Spreadsheet(); + $objPHPExcel->getProperties()->setCreator("SeedDMS")->setTitle("Metadata"); + $sheet = $objPHPExcel->setActiveSheetIndex(0); + + $i = 1; + $col = 0; + foreach($this->header as $h) + $sheet->setCellValueByColumnAndRow($col++, $i, $h); + foreach($this->extraheader as $h) + $sheet->setCellValueByColumnAndRow($col++, $i, $h); + $i++; + foreach($items as $item) { + $document = $item->getDocument(); + $dms = $document->_dms; + $status = $item->getStatus(); + $reviewStatus = $item->getReviewStatus(); + $approvalStatus = $item->getApprovalStatus(); + + $col = 0; + $sheet->setCellValueByColumnAndRow($col++, $i, $document->getID()); + $sheet->setCellValueByColumnAndRow($col++, $i, $document->getName()); + $sheet->setCellValueByColumnAndRow($col++, $i, $document->getID()."-".$item->getOriginalFileName()); + $sheet->setCellValueByColumnAndRow($col++, $i, getOverallStatusText($status['status'])); + $sheet->setCellValueByColumnAndRow($col++, $i, $item->getVersion()); + $l = $i; + $k = $i; + if($reviewStatus) { + foreach ($reviewStatus as $r) { + switch ($r["type"]) { + case 0: // Reviewer is an individual. + $required = $dms->getUser($r["required"]); + if (!is_object($required)) { + $reqName = getMLText("unknown_user")." '".$r["required"]."'"; + } else { + $reqName = htmlspecialchars($required->getFullName()." (".$required->getLogin().")"); + } + break; + case 1: // Reviewer is a group. + $required = $dms->getGroup($r["required"]); + if (!is_object($required)) { + $reqName = getMLText("unknown_group")." '".$r["required"]."'"; + } else { + $reqName = htmlspecialchars($required->getName()); + } + break; + } + $tcol = $col; + $sheet->setCellValueByColumnAndRow($tcol++, $l, $reqName); + $sheet->setCellValueByColumnAndRow($tcol, $l, ($r['status']==1 || $r['status']==-1) ? PHPExcel_Shared_Date::PHPToExcel(new DateTime($r['date'])) : null); + $sheet->getStyleByColumnAndRow($tcol++, $l)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_XLSX22); + $sheet->setCellValueByColumnAndRow($tcol++, $l, $r['comment']); + $sheet->setCellValueByColumnAndRow($tcol++, $l, getReviewStatusText($r["status"])); + $l++; + } + $l--; + } + $col += 4; + if($approvalStatus) { + foreach ($approvalStatus as $r) { + switch ($r["type"]) { + case 0: // Reviewer is an individual. + $required = $dms->getUser($r["required"]); + if (!is_object($required)) { + $reqName = getMLText("unknown_user")." '".$r["required"]."'"; + } else { + $reqName = htmlspecialchars($required->getFullName()." (".$required->getLogin().")"); + } + break; + case 1: // Reviewer is a group. + $required = $dms->getGroup($r["required"]); + if (!is_object($required)) { + $reqName = getMLText("unknown_group")." '".$r["required"]."'"; + } else { + $reqName = htmlspecialchars($required->getName()); + } + break; + } + $tcol = $col; + $sheet->setCellValueByColumnAndRow($tcol++, $k, $reqName); + $sheet->setCellValueByColumnAndRow($tcol, $k, ($r['status']==1 || $r['status']==-1) ?PHPExcel_Shared_Date::PHPToExcel(new DateTime($r['date'])) : null); + $sheet->getStyleByColumnAndRow($tcol++, $k)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_XLSX22); + $sheet->setCellValueByColumnAndRow($tcol++, $k, $r['comment']); + $sheet->setCellValueByColumnAndRow($tcol++, $k, getApprovalStatusText($r["status"])); + $k++; + } + $k--; + } + $col += 4; + if(isset($this->extracols[$item->getID()]) && $this->extracols[$item->getID()]) { + foreach($this->extracols[$item->getID()] as $column) + $sheet->setCellValueByColumnAndRow($col++, $i, is_array($column) ? implode("\n", $column) : $column ); + } + $i = max($l, $k); + $i++; + } + + $objWriter = new PhpOffice\PhpSpreadsheet\Writer\Xlsx($objPHPExcel); + $objWriter->save($file); + + return true; + } /* }}} */ + + public function createArchive($filename) { /* {{{ */ + if(!$this->items) { + return false; + } + + $file = tempnam(sys_get_temp_dir(), "export-list-"); + if(!$file) + return false; + $this->createToc($file); + + $zip = new ZipArchive(); + $prefixdir = date('Y-m-d', time()); + + if(($errcode = $zip->open($filename, ZipArchive::OVERWRITE)) !== TRUE) { + echo $errcode; + return false; + } + + foreach($this->items as $item) { + $document = $item->getDocument(); + $dms = $document->_dms; + if($this->filenames[$item->getID()]) { + $filename = $this->filenames[$item->getID()]; + } else { + $ext = pathinfo($document->getName(), PATHINFO_EXTENSION); + $oext = pathinfo($item->getOriginalFileName(), PATHINFO_EXTENSION); + if($ext == $oext) + $filename = preg_replace('/[^A-Za-z0-9_.-]/', '_', $document->getName()); + else { + $filename = preg_replace('/[^A-Za-z0-9_-]/', '_', $document->getName()).'.'.$oext; + } + $filename = $document->getID().'-'.$item->getVersion().'-'.$filename; //$lc->getOriginalFileName(); + } + $filename = $prefixdir."/".$filename; + if($this->rawcontents[$item->getID()]) { + $zip->addFromString(utf8_decode($filename), $this->rawcontents[$item->getID()]); + } else + $zip->addFile($dms->contentDir.$item->getPath(), utf8_decode($filename)); + } + + $zip->addFile($file, $prefixdir."/metadata.xlsx"); + $zip->close(); + unlink($file); + return true; + } /* }}} */ +} diff --git a/inc/inc.ClassLdapAuthentication.php b/inc/inc.ClassLdapAuthentication.php index 402347f18..a62ff280d 100644 --- a/inc/inc.ClassLdapAuthentication.php +++ b/inc/inc.ClassLdapAuthentication.php @@ -55,7 +55,7 @@ class SeedDMS_LdapAuthentication extends SeedDMS_Authentication { /* Check if ldap base dn is set, and use ldap server if it is */ if (isset($settings->_ldapBaseDN)) { $ldapSearchAttribut = "uid="; - $tmpDN = "cn=".$username.",".$settings->_ldapBaseDN; + $tmpDN = "uid=".$username.",".$settings->_ldapBaseDN; } /* Active directory has a different base dn */ @@ -127,6 +127,7 @@ class SeedDMS_LdapAuthentication extends SeedDMS_Authentication { if (!is_bool($search)) { $info = ldap_get_entries($ds, $search); + if (!is_bool($info) && $info["count"]==1 && $info[0]["count"]>0) { $user = $dms->addUser($username, null, $info[0]['cn'][0], $info[0]['mail'][0], $settings->_language, $settings->_theme, "", 0); } diff --git a/inc/inc.ClassUI.php b/inc/inc.ClassUI.php index b8f4de275..e29b69523 100644 --- a/inc/inc.ClassUI.php +++ b/inc/inc.ClassUI.php @@ -45,7 +45,7 @@ class UI extends UI_Default { * @return object an object of a class implementing the view */ static function factory($theme, $class='', $params=array()) { /* {{{ */ - global $settings, $session, $extMgr; + global $settings, $session, $extMgr, $request; if(!$class) { $class = 'Bootstrap'; $class = 'Style'; @@ -126,6 +126,7 @@ class UI extends UI_Default { $view->setParam('theme', $theme); $view->setParam('class', $class); $view->setParam('session', $session); + $view->setParam('request', $request); // $view->setParam('settings', $settings); $view->setParam('sitename', $settings->_siteName); $view->setParam('rootfolderid', $settings->_rootFolderID); diff --git a/inc/inc.ClassViewCommon.php b/inc/inc.ClassViewCommon.php index 28a268831..05021234f 100644 --- a/inc/inc.ClassViewCommon.php +++ b/inc/inc.ClassViewCommon.php @@ -45,17 +45,40 @@ class SeedDMS_View_Common { $this->imgpath = '../views/'.$theme.'/images/'; } + /** + * Call method with name in $get['action'] + * + * Until 5.1.26 (6.0.19) this method took the name of the + * controller method to run from the element 'action' passed + * in the array $get. Since 5.1.27 (6.0.20) a PSR7 Request + * object is available in the controller and used to get the + * action. + * + * @params array $get $_GET or $_POST variables (since 5.1.27 this is no longer used) + * @return mixed return value of called method + */ public function __invoke($get=array()) { - $this->callHook('preRun', isset($get['action']) ? $get['action'] : 'show'); - if(isset($get['action']) && $get['action']) { - if(method_exists($this, $get['action'])) { - $this->{$get['action']}(); - } else { - echo "Missing action '".htmlspecialchars($get['action'])."'"; - } - } else - $this->show(); - $this->callHook('postRun', isset($get['action']) ? $get['action'] : 'show'); + $action = null; + $request = $this->getParam('request'); + if($request) { + if($request->isMethod('get')) + $action = $request->query->get('action'); + elseif($request->isMethod('post')) + $action = $request->request->get('action'); + } + if(!$this->callHook('preRun', get_class($this), $action ? $action : 'show')) { + if($action) { + if(method_exists($this, $action)) { + $this->{$action}(); + } else { + echo "Missing action '".htmlspecialchars($action)."'"; + } + } else + $this->show(); + } else { + return false; + } + $this->callHook('postRun', $action ? $action : 'show'); } public function setParams($params) { @@ -78,7 +101,7 @@ class SeedDMS_View_Common { * @param string $name name of parameter * @return boolean true if parameter exists otherwise false */ - function hasParam($name) { + public function hasParam($name) { return isset($this->params[$name]) ? true : false; } diff --git a/inc/inc.ConversionInit.php b/inc/inc.ConversionInit.php index 1acb3d12a..a1ccb56e6 100644 --- a/inc/inc.ConversionInit.php +++ b/inc/inc.ConversionInit.php @@ -21,14 +21,21 @@ if(!empty($settings->_converters['fulltext'])) { } } -$conversionmgr->addService(new SeedDMS_ConversionServicePdfToImage('application/pdf', 'image/png'))->setLogger($logger); +if(extension_loaded('imagick')) { + $conversionmgr->addService(new SeedDMS_ConversionServicePdfToImage('application/pdf', 'image/png'))->setLogger($logger); + $conversionmgr->addService(new SeedDMS_ConversionServiceImageToImage('image/tiff', 'image/png'))->setLogger($logger); + $conversionmgr->addService(new SeedDMS_ConversionServiceImageToImage('image/svg+xml', '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/gif', 'image/png'))->setLogger($logger); -$conversionmgr->addService(new SeedDMS_ConversionServiceImageToImage('image/tiff', 'image/png'))->setLogger($logger); -$conversionmgr->addService(new SeedDMS_ConversionServiceImageToImage('image/svg+xml', 'image/png'))->setLogger($logger); +if(extension_loaded('gd') || extension_loaded('imagick')) { + $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/gif', 'image/png'))->setLogger($logger); +} + +$conversionmgr->addService(new SeedDMS_ConversionServiceImageToText('image/jpeg', 'text/plain'))->setLogger($logger); +$conversionmgr->addService(new SeedDMS_ConversionServiceImageToText('image/jpg', 'text/plain'))->setLogger($logger); $conversionmgr->addService(new SeedDMS_ConversionServiceTextToText('text/plain', 'text/plain'))->setLogger($logger); diff --git a/inc/inc.Init.php b/inc/inc.Init.php index 2336a7344..69ed0c6a4 100644 --- a/inc/inc.Init.php +++ b/inc/inc.Init.php @@ -18,8 +18,11 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +use Symfony\Component\HttpFoundation\Request; + if(!empty($settings->_coreDir)) require_once($settings->_coreDir.'/Core.php'); else require_once('SeedDMS/Core.php'); +$request = Request::createFromGlobals(); diff --git a/inc/inc.Settings.php b/inc/inc.Settings.php index 3014536ce..83688f255 100644 --- a/inc/inc.Settings.php +++ b/inc/inc.Settings.php @@ -64,9 +64,6 @@ ini_set('include_path', $settings->_rootDir.'pear'. PATH_SEPARATOR .ini_get('inc if(!empty($settings->_extraPath)) { ini_set('include_path', $settings->_extraPath. PATH_SEPARATOR .ini_get('include_path')); } -/* composer is installed in pear directory, but install tool does not need it */ -if(!defined("SEEDDMS_INSTALL")) - require_once $settings->_rootDir.'../pear/vendor/autoload.php'; if(isset($settings->_maxExecutionTime)) { if (php_sapi_name() !== "cli") { @@ -74,22 +71,6 @@ if(isset($settings->_maxExecutionTime)) { } } -if (function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc()) { - $process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST); - while (list($key, $val) = each($process)) { - foreach ($val as $k => $v) { - unset($process[$key][$k]); - if (is_array($v)) { - $process[$key][stripslashes($k)] = $v; - $process[] = &$process[$key][stripslashes($k)]; - } else { - $process[$key][stripslashes($k)] = stripslashes($v); - } - } - } - unset($process); -} - /* Add root Dir. Needed because the view classes are included * relative to it. */ @@ -98,3 +79,7 @@ ini_set('include_path', $settings->_rootDir. PATH_SEPARATOR .ini_get('include_pa * relative to it. */ ini_set('include_path', $settings->_rootDir.'../pear'. PATH_SEPARATOR .ini_get('include_path')); + +/* composer is installed in pear directory, but install tool does not need it */ +if(!defined("SEEDDMS_INSTALL")) + require_once 'vendor/autoload.php'; diff --git a/inc/inc.Utils.php b/inc/inc.Utils.php index cfe4c7cef..d54bd0439 100644 --- a/inc/inc.Utils.php +++ b/inc/inc.Utils.php @@ -166,53 +166,6 @@ function getReadableDurationArray($secs) { /* {{{ */ return $units; } /* }}} */ -// -// The original string sanitizer, kept for reference. -//function sanitizeString($string) { -// $string = str_replace("'", "'", $string); -// $string = str_replace("--", "", $string); -// $string = str_replace("<", "<", $string); -// $string = str_replace(">", ">", $string); -// $string = str_replace("/*", "", $string); -// $string = str_replace("*/", "", $string); -// $string = str_replace("\"", """, $string); -// -// return $string; -//} - -/* Deprecated, do not use anymore */ -function sanitizeString($string) { /* {{{ */ - - $string = (string) $string; - if (get_magic_quotes_gpc()) { - $string = stripslashes($string); - } - - // The following three are against sql injection. They are not - // needed anymore because strings are quoted propperly when saved into - // the database. -// $string = str_replace("\\", "\\\\", $string); -// $string = str_replace("--", "\-\-", $string); -// $string = str_replace(";", "\;", $string); - // Use HTML entities to represent the other characters that have special - // meaning in SQL. These can be easily converted back to ASCII / UTF-8 - // with a decode function if need be. - $string = str_replace("&", "&", $string); - $string = str_replace("%", "%", $string); // percent - $string = str_replace("\"", """, $string); // double quote - $string = str_replace("/*", "/*", $string); // start of comment - $string = str_replace("*/", "*/", $string); // end of comment - $string = str_replace("<", "<", $string); - $string = str_replace(">", ">", $string); - $string = str_replace("=", "=", $string); - $string = str_replace(")", ")", $string); - $string = str_replace("(", "(", $string); - $string = str_replace("'", "'", $string); - $string = str_replace("+", "+", $string); - - return trim($string); -} /* }}} */ - /* Deprecated, do not use anymore, but keep it for upgrading * older versions */ @@ -414,6 +367,34 @@ function utf8_basename($path, $suffix='') { /* {{{ */ return $file; } /* }}} */ +/** + * Return a valid file name + * + * This function returns a valid file name for the given document content + * or an arbitrary string. If a document content is given the name of + * the document will be used. The extension of the file name will be + * either taken from the document name or the original file. If the two + * differ the extension from the original file name will be used. + * + * @param object|string $content document content or an arbitrary string + * @return string valid file name + */ +function getFilenameByDocname($content) { /* {{{ */ + if(is_string) { + $filename = $content; + } else { + $document = $content->getDocument(); + $ext = pathinfo($document->getName(), PATHINFO_EXTENSION); + $oext = pathinfo($content->getOriginalFileName(), PATHINFO_EXTENSION); + if($ext == $oext) + $filename = $document->getName(); + else { + $filename = $document->getName().'.'.$oext; + } + } + return mb_ereg_replace("([^\w\s\d\-_~,;\[\]\(\).])", '', $filename); +} /* }}} */ + function getLogger($prefix='') { /* {{{ */ global $settings; diff --git a/inc/inc.Version.php b/inc/inc.Version.php index 08fdd5d5b..4368970f4 100644 --- a/inc/inc.Version.php +++ b/inc/inc.Version.php @@ -20,7 +20,7 @@ class SeedDMS_Version { /* {{{ */ - const _number = "5.1.26"; + const _number = "5.1.27"; const _string = "SeedDMS"; function __construct() { diff --git a/install/update-1.8.1/update.php b/install/update-1.8.1/update.php index c1ac6fd2e..9e483850b 100644 --- a/install/update-1.8.1/update.php +++ b/install/update-1.8.1/update.php @@ -1,42 +1,42 @@ -"; if (!$user->isAdmin()) { print "ERROR: You must be administrator to execute the update"; - die; + die; } -function update_content() +function update_content() { GLOBAL $db,$settings; @@ -45,7 +45,7 @@ function update_content() if (!makedir($settings->_contentDir."/temp")) return false; // for all contents - $queryStr = "SELECT * FROM tblDocumentContent"; + $queryStr = "SELECT * FROM tblDocumentContent"; $contents = $db->getResultArray($queryStr); if (is_bool($contents)&&!$contents) return false; @@ -75,7 +75,7 @@ function update_db() GLOBAL $db,$settings; // for all contents - $queryStr = "SELECT * FROM tblDocumentContent"; + $queryStr = "SELECT * FROM tblDocumentContent"; $contents = $db->getResultArray($queryStr); if (is_bool($contents)&&!$contents) return false; @@ -100,25 +100,24 @@ function update_db() if (!$db->getResult($queryStr)) return false; return true; -} +} print "Updating ...please wait
"; - - -if (!update_content()) { + + +if (!update_content()) { print "ERROR: An error occurred during the directory reordering"; - die; + die; } -if (!update_db()) { +if (!update_db()) { print "ERROR: An error occurred during the DB update"; print "
Please try to execute the update.sql manually"; - die; + die; } print "Update done
"; - print ""; - -?> +print ""; + diff --git a/install/update-1.8.1/update.sql b/install/update-1.8.1/update.sql index ecaf891be..a5d7ce657 100644 --- a/install/update-1.8.1/update.sql +++ b/install/update-1.8.1/update.sql @@ -1,33 +1,33 @@ -- mysql -uroot -ppassword mydms < update.sql -- this script must be executed when updating form a version < 1.8.1 --- -------------------------------------------------------- - --- --- New table for document-related files +-- -------------------------------------------------------- + +-- +-- New table for document-related files -- -CREATE TABLE `tblDocumentFiles` ( - `id` int(11) NOT NULL auto_increment, - `document` int(11) NOT NULL default '0', - `userID` int(11) NOT NULL default '0', - `comment` text, - `name` varchar(150) default NULL, - `date` int(12) default NULL, - `dir` varchar(255) NOT NULL default '', - `orgFileName` varchar(150) NOT NULL default '', - `fileType` varchar(10) NOT NULL default '', - `mimeType` varchar(70) NOT NULL default '', - PRIMARY KEY (`id`) -) ; +CREATE TABLE `tblDocumentFiles` ( + `id` int(11) NOT NULL auto_increment, + `document` int(11) NOT NULL default '0', + `userID` int(11) NOT NULL default '0', + `comment` text, + `name` varchar(150) default NULL, + `date` int(12) default NULL, + `dir` varchar(255) NOT NULL default '', + `orgFileName` varchar(150) NOT NULL default '', + `fileType` varchar(10) NOT NULL default '', + `mimeType` varchar(70) NOT NULL default '', + PRIMARY KEY (`id`) +) Engine=MyISAM ; --- -------------------------------------------------------- - --- --- Not longer required by new filesystem structure +-- -------------------------------------------------------- + +-- +-- Not longer required by new filesystem structure -- -DROP TABLE `tblDirPath`; -DROP TABLE `tblPathList`; - - +DROP TABLE `tblDirPath`; +DROP TABLE `tblPathList`; + + diff --git a/install/update-1.9.0/update.php b/install/update-1.9.0/update.php index ab190d1a1..f2ce8ea2d 100644 --- a/install/update-1.9.0/update.php +++ b/install/update-1.9.0/update.php @@ -1,39 +1,39 @@ -"; if (!$user->isAdmin()) { print "ERROR: You must be administrator to execute the update"; - die; + die; } function update_db() @@ -52,22 +52,21 @@ function update_db() if (!$db->getResult($queryStr)) return false; return true; -} +} print "Updating ...please wait
"; -print "
";
-
+print "
";
+
 if (!update_db()) {
 
 	print "
"; - + print "ERROR: An error occurred during the DB update"; print "
Please try to execute the update.sql manually"; die; - + }else print "
Update done
"; - print ""; - -?> +print ""; + diff --git a/install/update-1.9.0/update.sql b/install/update-1.9.0/update.sql index d0aeaee6b..1e50b1363 100644 --- a/install/update-1.9.0/update.sql +++ b/install/update-1.9.0/update.sql @@ -1,10 +1,10 @@ -- mysql -uyouruser -pyourpassword yourdb < update.sql -- this script must be executed when updating form a version < 1.9 --- -------------------------------------------------------- - --- --- New field for hidden users +-- -------------------------------------------------------- + +-- +-- New field for hidden users -- ALTER TABLE `tblUsers` ADD `hidden` smallint(1) NOT NULL default '0' ; @@ -12,27 +12,27 @@ ALTER TABLE `tblUsers` ADD `hidden` smallint(1) NOT NULL default '0' ; -- -- New field for group manager permission -- - -ALTER TABLE `tblGroupMembers` ADD `manager` smallint(1) NOT NULL default '0' ; --- --- Table structure for mandatory reviewers --- - -CREATE TABLE `tblMandatoryReviewers` ( - `userID` int(11) NOT NULL default '0', - `reviewerUserID` int(11) NOT NULL default '0', - `reviewerGroupID` int(11) NOT NULL default '0', - PRIMARY KEY (`userID`,`reviewerUserID`,`reviewerGroupID`) -) ; +ALTER TABLE `tblGroupMembers` ADD `manager` smallint(1) NOT NULL default '0' ; --- --- Table structure for mandatory approvers --- - -CREATE TABLE `tblMandatoryApprovers` ( - `userID` int(11) NOT NULL default '0', - `approverUserID` int(11) NOT NULL default '0', - `approverGroupID` int(11) NOT NULL default '0', - PRIMARY KEY (`userID`,`approverUserID`,`approverGroupID`) -) ; +-- +-- Table structure for mandatory reviewers +-- + +CREATE TABLE `tblMandatoryReviewers` ( + `userID` int(11) NOT NULL default '0', + `reviewerUserID` int(11) NOT NULL default '0', + `reviewerGroupID` int(11) NOT NULL default '0', + PRIMARY KEY (`userID`,`reviewerUserID`,`reviewerGroupID`) +) Engine=MyISAM ; + +-- +-- Table structure for mandatory approvers +-- + +CREATE TABLE `tblMandatoryApprovers` ( + `userID` int(11) NOT NULL default '0', + `approverUserID` int(11) NOT NULL default '0', + `approverGroupID` int(11) NOT NULL default '0', + PRIMARY KEY (`userID`,`approverUserID`,`approverGroupID`) +) Engine=MyISAM ; diff --git a/install/update-2.0.1/update.php b/install/update-2.0.1/update.php index ab190d1a1..ae3874722 100644 --- a/install/update-2.0.1/update.php +++ b/install/update-2.0.1/update.php @@ -1,39 +1,39 @@ -"; if (!$user->isAdmin()) { print "ERROR: You must be administrator to execute the update"; - die; + die; } function update_db() @@ -52,22 +52,20 @@ function update_db() if (!$db->getResult($queryStr)) return false; return true; -} +} print "Updating ...please wait
"; -print "
";
-
+print "
";
+
 if (!update_db()) {
 
 	print "
"; - + print "ERROR: An error occurred during the DB update"; print "
Please try to execute the update.sql manually"; die; - + }else print "
Update done
"; - print ""; - -?> +print ""; diff --git a/install/update-3.3.0/update.php b/install/update-3.3.0/update.php index 7ea4e9485..8e5304841 100644 --- a/install/update-3.3.0/update.php +++ b/install/update-3.3.0/update.php @@ -20,9 +20,7 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -function check($doupdate=0) { /* {{{ */ - global $db, $settings; - +function check($db, $doupdate=0) { /* {{{ */ $arr = array(); $arr['tblDocuments'] = array('key'=>'id', 'fields'=>array('name', 'comment', 'keywords')); $arr['tblDocumentFiles'] = array('key'=>'id', 'fields'=>array('name', 'comment', 'mimeType')); @@ -91,7 +89,7 @@ else $doupdate = 0; $doupdate = 1; -if (!check($doupdate)) { +if (!check($db, $doupdate)) { print "

Update failed

"; } diff --git a/languages/ar_EG/lang.inc b/languages/ar_EG/lang.inc index 46c8d7f73..c5908d269 100644 --- a/languages/ar_EG/lang.inc +++ b/languages/ar_EG/lang.inc @@ -220,6 +220,14 @@ URL: [url]', 'backup_log_management' => 'نسخ احتياطي/سجلات', 'backup_remove' => 'ازالة ملف النسخ الاحتياطي', 'backup_tools' => 'أدوات النسخ الاحتياطية', +'batch_add_category_msg' => '', +'batch_change_category' => '', +'batch_change_owner' => '', +'batch_new_owner_msg' => '', +'batch_operation' => '', +'batch_operation_result' => '', +'batch_remove_category' => '', +'batch_remove_category_msg' => '', 'between' => 'بين', 'bg_BG' => 'بلغارية', 'browse' => 'تصفح', @@ -298,6 +306,7 @@ URL: [url]', 'comment_changed_email' => 'تعليق تغيير البريد الإلكتروني', 'comment_for_current_version' => 'تعليق على الاصدار', 'configure_extension' => 'تعديل', +'confirm_change_owner' => '', 'confirm_clear_cache' => 'تعديل مسح المحفوظات', 'confirm_create_fulltext_index' => 'نعم: اود اعادة انشاء فهرس للنص الكامل !', 'confirm_move_document' => 'تاكيد نقل الملف', @@ -356,6 +365,7 @@ URL: [url]', 'discspace' => 'مساحة القرص', 'docs_in_reception_no_access' => 'الدخول مرفوض الى المستندات في الإستقبال', 'docs_in_revision_no_access' => 'الدخول مرفوض الى المستندات قيد المراجعة', +'docs_with_missing_revision_date' => '', 'document' => 'مستند', 'documentcontent' => 'موضوع المستند', 'documents' => 'مستندات', @@ -621,6 +631,7 @@ URL: [url]', 'filetype' => '', 'file_size' => 'حجم الملف', 'filter_for_documents' => 'فلتر للمستندات', +'filter_for_documents_and_folders' => '', 'filter_for_folders' => 'فلتر للملفات', 'folder' => 'مجلد', 'folders' => 'مجلدات', @@ -692,8 +703,14 @@ URL: [url]', 'group_approval_summary' => 'ملخص موافقة المجموعة', 'group_exists' => 'المجموعة موجودة بالفعل.', 'group_info' => 'معلومات عن المجموعة', +'group_is_mandatory_approver' => '', +'group_is_mandatory_reviewer' => '', 'group_management' => 'إدارة المجموعات', 'group_members' => 'أعضاء المجموعة', +'group_previously_removed_from_approvers' => '', +'group_previously_removed_from_recipients' => '', +'group_previously_removed_from_reviewers' => '', +'group_previously_removed_from_revisors' => '', 'group_receipt_summary' => 'ملخص وصل المجموعة', 'group_review_removed' => '', 'group_review_summary' => 'ملخص مراجعة المجموعة', @@ -774,6 +791,7 @@ URL: [url]', 'in_folder' => 'مجلد خاطئ', 'in_revision' => 'مراجعة خاطئة', 'in_workflow' => 'رهن مسار عمل', +'iptc_metadata' => '', 'is_disabled' => 'تعطيل الحساب', 'is_hidden' => 'اخفاء من قائمة المستخدمين', 'it_IT' => 'الإيطالية', @@ -857,6 +875,8 @@ URL: [url]', 'mandatory_reviewers' => 'مراجعين اجباريين', 'mandatory_reviewer_no_access' => 'ممنوع دخول المراجع الإجباري', 'march' => 'مارس', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => 'الحجم الاقصى للملف', 'may' => 'مايو', 'menu_dropfolder' => 'صفحة المجلد', @@ -986,6 +1006,7 @@ URL: [url]', 'no_previous_versions' => 'لايوجد اصدارات سابقة', 'no_receipt_needed' => 'لا يحتاج لأي مستلم', 'no_review_needed' => 'لايوجد مراجعات في الانتظار', +'no_revision_date' => '', 'no_revision_needed' => 'لا يحتاج إلى مراجعة', 'no_revision_planed' => 'لم يخطط لأي مراجعة', 'no_update_cause_locked' => 'لايمكنك تعديل المستند. قم بمخاطبة المستخدم الذي قام بحمايته من التعديل', @@ -1303,6 +1324,7 @@ URL: [url]', 'select_attrdefgrp_show' => 'حدد معرف سمة المجموعة', 'select_attribute_value' => 'اختيار سمة الرقم', 'select_category' => 'اضغط لاختيار قسم', +'select_documents_for_process' => '', 'select_group' => 'اختيار مجموعة', 'select_groups' => 'اضغط لاختيار مجموعة', 'select_grp_approvers' => 'اضغط لاختيار مجموعة الموافقون', @@ -1967,6 +1989,7 @@ URL: [url]', 'transfer_no_write_access' => 'تحويل بلا دخول للكتابة', 'transfer_objects' => 'تحويل أشياء', 'transfer_objects_to_user' => 'تحويل شيء إلى مستخدم', +'transfer_processes_to_user' => '', 'transfer_process_to_user' => '', 'transfer_to_user' => 'تحويل إلى مستخدم', 'transition_triggered_email' => 'تم تحريك انتقال مسار العمل', @@ -2042,10 +2065,16 @@ URL: [url]', 'user_group_management' => 'إدارة المستخدمين/المجموعات', 'user_image' => 'صورة', 'user_info' => 'بيانات المستخدمين', +'user_is_mandatory_approver' => '', +'user_is_mandatory_reviewer' => '', 'user_list' => 'قائمة المستخدمين', 'user_login' => 'الإسم', 'user_management' => 'إدارة المستخدمين', 'user_name' => 'الاسم المستعار', +'user_previously_removed_from_approvers' => '', +'user_previously_removed_from_recipients' => '', +'user_previously_removed_from_reviewers' => '', +'user_previously_removed_from_revisors' => '', 'use_comment_of_document' => 'استخدم التعليقات للوثيقة', 'use_default_categories' => 'استخدم اقسام سابقة التعريف', 'use_default_keywords' => 'استخدام كلمات بحثية معدة مسبقا', diff --git a/languages/bg_BG/lang.inc b/languages/bg_BG/lang.inc index dca7c5b09..6d75b0eb8 100644 --- a/languages/bg_BG/lang.inc +++ b/languages/bg_BG/lang.inc @@ -203,6 +203,14 @@ $text = array( 'backup_log_management' => 'Backup/Logging', 'backup_remove' => 'Изтрий бекъп', 'backup_tools' => 'Иструменти за бекъп', +'batch_add_category_msg' => '', +'batch_change_category' => '', +'batch_change_owner' => '', +'batch_new_owner_msg' => '', +'batch_operation' => '', +'batch_operation_result' => '', +'batch_remove_category' => '', +'batch_remove_category_msg' => '', 'between' => 'между', 'bg_BG' => 'Български', 'browse' => 'Преглеждане', @@ -281,6 +289,7 @@ $text = array( 'comment_changed_email' => 'Коментарите са изменени', 'comment_for_current_version' => 'Коментар за версията', 'configure_extension' => '', +'confirm_change_owner' => '', 'confirm_clear_cache' => '', 'confirm_create_fulltext_index' => 'Да, пресъздай пълнотекстов индекс!', 'confirm_move_document' => '', @@ -339,6 +348,7 @@ $text = array( 'discspace' => '', 'docs_in_reception_no_access' => '', 'docs_in_revision_no_access' => '', +'docs_with_missing_revision_date' => '', 'document' => 'Документ', 'documentcontent' => '', 'documents' => 'Документи', @@ -570,6 +580,7 @@ $text = array( 'filetype' => '', 'file_size' => 'Размер', 'filter_for_documents' => '', +'filter_for_documents_and_folders' => '', 'filter_for_folders' => '', 'folder' => 'Папка', 'folders' => 'Папки', @@ -621,8 +632,14 @@ $text = array( 'group_approval_summary' => 'Сводка по утвърждаването на група', 'group_exists' => 'Групата вече съществува', 'group_info' => '', +'group_is_mandatory_approver' => '', +'group_is_mandatory_reviewer' => '', 'group_management' => 'Управление на групи', 'group_members' => 'Членове на групата', +'group_previously_removed_from_approvers' => '', +'group_previously_removed_from_recipients' => '', +'group_previously_removed_from_reviewers' => '', +'group_previously_removed_from_revisors' => '', 'group_receipt_summary' => '', 'group_review_removed' => '', 'group_review_summary' => 'Сводка по рецензирането на групи', @@ -703,6 +720,7 @@ $text = array( 'in_folder' => 'В папка', 'in_revision' => '', 'in_workflow' => 'в процес', +'iptc_metadata' => '', 'is_disabled' => 'забранена сметка', 'is_hidden' => 'Не показвай в списъка с потребители', 'it_IT' => 'Италиански', @@ -786,6 +804,8 @@ $text = array( 'mandatory_reviewers' => '', 'mandatory_reviewer_no_access' => '', 'march' => 'март', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => 'Лимит за размер на файла', 'may' => 'май', 'menu_dropfolder' => '', @@ -891,6 +911,7 @@ $text = array( 'no_previous_versions' => 'Няма други версии', 'no_receipt_needed' => '', 'no_review_needed' => 'Рецензия не е нужна', +'no_revision_date' => '', 'no_revision_needed' => '', 'no_revision_planed' => '', 'no_update_cause_locked' => 'Вие не можете да обновите документа. Свържете се с блокирщия го потребител.', @@ -1166,6 +1187,7 @@ $text = array( 'select_attrdefgrp_show' => '', 'select_attribute_value' => '', 'select_category' => 'Изберете категория', +'select_documents_for_process' => '', 'select_group' => '', 'select_groups' => 'Кликни да избереш групи', 'select_grp_approvers' => 'Кликни да избереш група утвърждаващи', @@ -1830,6 +1852,7 @@ $text = array( 'transfer_no_write_access' => '', 'transfer_objects' => '', 'transfer_objects_to_user' => '', +'transfer_processes_to_user' => '', 'transfer_process_to_user' => '', 'transfer_to_user' => '', 'transition_triggered_email' => 'Забелязана промяна на процес', @@ -1896,10 +1919,16 @@ $text = array( 'user_group_management' => 'Управление на потребители/групи', 'user_image' => 'Изображение', 'user_info' => 'Информация за потребител', +'user_is_mandatory_approver' => '', +'user_is_mandatory_reviewer' => '', 'user_list' => 'Списък потребители', 'user_login' => 'Идентификатор на потребителя', 'user_management' => 'Управление на потребителите', 'user_name' => 'Пълно име', +'user_previously_removed_from_approvers' => '', +'user_previously_removed_from_recipients' => '', +'user_previously_removed_from_reviewers' => '', +'user_previously_removed_from_revisors' => '', 'use_comment_of_document' => 'Използвай коментара от документа', 'use_default_categories' => 'Исползвай предопределени категории', 'use_default_keywords' => 'Исползовай предопределенни ключови думи', diff --git a/languages/ca_ES/lang.inc b/languages/ca_ES/lang.inc index b3105a748..ff1d3e5c6 100644 --- a/languages/ca_ES/lang.inc +++ b/languages/ca_ES/lang.inc @@ -208,6 +208,14 @@ URL: [url]', 'backup_log_management' => 'Còpia / Accés', 'backup_remove' => 'Eliminar fitxer de còpia de seguretat', 'backup_tools' => 'Eines de còpia de seguretat', +'batch_add_category_msg' => '', +'batch_change_category' => '', +'batch_change_owner' => '', +'batch_new_owner_msg' => '', +'batch_operation' => '', +'batch_operation_result' => '', +'batch_remove_category' => '', +'batch_remove_category_msg' => '', 'between' => 'entre', 'bg_BG' => 'Búlgar', 'browse' => 'Navega', @@ -286,6 +294,7 @@ URL: [url]', 'comment_changed_email' => '', 'comment_for_current_version' => 'Comentari de la versió actual', 'configure_extension' => '', +'confirm_change_owner' => '', 'confirm_clear_cache' => '', 'confirm_create_fulltext_index' => '', 'confirm_move_document' => '', @@ -344,6 +353,7 @@ URL: [url]', 'discspace' => '', 'docs_in_reception_no_access' => '', 'docs_in_revision_no_access' => '', +'docs_with_missing_revision_date' => '', 'document' => 'Document', 'documentcontent' => '', 'documents' => 'Documents', @@ -575,6 +585,7 @@ URL: [url]', 'filetype' => '', 'file_size' => 'Mida', 'filter_for_documents' => '', +'filter_for_documents_and_folders' => '', 'filter_for_folders' => 'Filtre adicional per les carpetes', 'folder' => 'Carpeta', 'folders' => 'Carpetes', @@ -626,8 +637,14 @@ URL: [url]', 'group_approval_summary' => 'Resum del grup aprovador', 'group_exists' => 'El grup ja existeix', 'group_info' => '', +'group_is_mandatory_approver' => '', +'group_is_mandatory_reviewer' => '', 'group_management' => 'Grups', 'group_members' => 'Membres del grup', +'group_previously_removed_from_approvers' => '', +'group_previously_removed_from_recipients' => '', +'group_previously_removed_from_reviewers' => '', +'group_previously_removed_from_revisors' => '', 'group_receipt_summary' => '', 'group_review_removed' => '', 'group_review_summary' => 'Resum del grup revisor', @@ -708,6 +725,7 @@ URL: [url]', 'in_folder' => '', 'in_revision' => '', 'in_workflow' => '', +'iptc_metadata' => '', 'is_disabled' => '', 'is_hidden' => 'Amagar de la llista d\'usuaris', 'it_IT' => 'Italià', @@ -791,6 +809,8 @@ URL: [url]', 'mandatory_reviewers' => '', 'mandatory_reviewer_no_access' => '', 'march' => 'Març', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => 'Mida màxima de pujada de cada fitxer', 'may' => 'Maig', 'menu_dropfolder' => '', @@ -896,6 +916,7 @@ URL: [url]', 'no_previous_versions' => 'No s\'han trobat altres versions', 'no_receipt_needed' => '', 'no_review_needed' => 'No hi ha revisions pendents.', +'no_revision_date' => '', 'no_revision_needed' => '', 'no_revision_planed' => '', 'no_update_cause_locked' => 'Aquest document no es pot actualitzar. Si us plau, contacteu amb l\'usuari que l\'ha bloquejat.', @@ -1171,6 +1192,7 @@ URL: [url]', 'select_attrdefgrp_show' => '', 'select_attribute_value' => '', 'select_category' => 'Prem per seleccionar la categoria', +'select_documents_for_process' => '', 'select_group' => 'Seleccionar grup', 'select_groups' => '', 'select_grp_approvers' => '', @@ -1835,6 +1857,7 @@ URL: [url]', 'transfer_no_write_access' => 'transferir sense poder escriure', 'transfer_objects' => '', 'transfer_objects_to_user' => '', +'transfer_processes_to_user' => '', 'transfer_process_to_user' => '', 'transfer_to_user' => '', 'transition_triggered_email' => '', @@ -1901,10 +1924,16 @@ URL: [url]', 'user_group_management' => 'Usuaris/Control de grups', 'user_image' => 'Imatge', 'user_info' => 'Informació d\'usuari', +'user_is_mandatory_approver' => '', +'user_is_mandatory_reviewer' => '', 'user_list' => 'Llista d\'usuaris', 'user_login' => 'Nom d\'usuari', 'user_management' => 'Usuaris', 'user_name' => 'Nom complet', +'user_previously_removed_from_approvers' => '', +'user_previously_removed_from_recipients' => '', +'user_previously_removed_from_reviewers' => '', +'user_previously_removed_from_revisors' => '', 'use_comment_of_document' => '', 'use_default_categories' => 'Use predefined categories', 'use_default_keywords' => 'Utilitzar els mots clau per omisió', diff --git a/languages/cs_CZ/lang.inc b/languages/cs_CZ/lang.inc index ee603637f..26cb89c69 100644 --- a/languages/cs_CZ/lang.inc +++ b/languages/cs_CZ/lang.inc @@ -232,6 +232,14 @@ URL: [url]', 'backup_log_management' => 'Záloha/Logování', 'backup_remove' => 'Odstranit soubor zálohy', 'backup_tools' => 'Nástroje pro zálohování', +'batch_add_category_msg' => '', +'batch_change_category' => '', +'batch_change_owner' => '', +'batch_new_owner_msg' => '', +'batch_operation' => '', +'batch_operation_result' => '', +'batch_remove_category' => '', +'batch_remove_category_msg' => '', 'between' => 'mezi', 'bg_BG' => 'Bulharština', 'browse' => 'Prohlížet', @@ -310,6 +318,7 @@ URL: [url]', 'comment_changed_email' => '', 'comment_for_current_version' => 'Komentář k aktuální verzi', 'configure_extension' => 'Konfigurovat rozšíření', +'confirm_change_owner' => '', 'confirm_clear_cache' => 'Chtěli byste vyčistit mezipaměť? Tím se odstraní všechny předběžně vygenerované náhledy.', 'confirm_create_fulltext_index' => 'Ano, chci znovu vytvořit fulltext index!', 'confirm_move_document' => 'Potvrďte přesunutí dokumentu.', @@ -368,6 +377,7 @@ URL: [url]', 'discspace' => 'Místo na disku', 'docs_in_reception_no_access' => 'Dokumenty s přijetím, ale bez přístupu příjemce', 'docs_in_revision_no_access' => 'Dokumenty v revizi bez přístupu kontrolora', +'docs_with_missing_revision_date' => '', 'document' => 'Dokument', 'documentcontent' => 'Obsah dokumentu', 'documents' => 'Dokumenty', @@ -645,6 +655,7 @@ URL: [url]', 'filetype' => '', 'file_size' => 'Velikost souboru', 'filter_for_documents' => 'Další filtr pro dokumenty', +'filter_for_documents_and_folders' => '', 'filter_for_folders' => 'Další filtr pro složky', 'folder' => 'Složka', 'folders' => 'Složky', @@ -723,8 +734,14 @@ URL: [url]', 'group_approval_summary' => 'Souhrn schválení skupiny', 'group_exists' => 'Skupina již existuje.', 'group_info' => 'Informace o skupině', +'group_is_mandatory_approver' => '', +'group_is_mandatory_reviewer' => '', 'group_management' => 'Skupiny', 'group_members' => 'Členové skupiny', +'group_previously_removed_from_approvers' => '', +'group_previously_removed_from_recipients' => '', +'group_previously_removed_from_reviewers' => '', +'group_previously_removed_from_revisors' => '', 'group_receipt_summary' => 'Přehled potvrzení přijímání do skupiny', 'group_review_removed' => '', 'group_review_summary' => 'Souhrn recenzí skupiny', @@ -805,6 +822,7 @@ URL: [url]', 'in_folder' => 'Ve složce', 'in_revision' => 'V revizi', 'in_workflow' => 'Ve workflow', +'iptc_metadata' => '', 'is_disabled' => 'Zakázat účet', 'is_hidden' => 'Utajit v seznamu uživatelů', 'it_IT' => 'Italština', @@ -888,6 +906,8 @@ URL: [url]', 'mandatory_reviewers' => 'Stanovení recenzenti', 'mandatory_reviewer_no_access' => 'Stanovený recenzent \'[user]\' má nedostatečná přístupová práva.', 'march' => 'Březen', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => 'Max. délka pro nahrání jednoho souboru', 'may' => 'Květen', 'menu_dropfolder' => 'Vhazovací složka', @@ -1017,6 +1037,7 @@ URL: [url]', 'no_previous_versions' => 'Nebyly nalezeny žádné jiné verze', 'no_receipt_needed' => 'Nejsou žádné dokumenty, které by vyžadovaly potvrzení o přijetí.', 'no_review_needed' => 'Nic nečeká k recenzi.', +'no_revision_date' => '', 'no_revision_needed' => 'Neprobíhá žádná revize', 'no_revision_planed' => 'Není v plánu žádná revize dokumentu', 'no_update_cause_locked' => 'Proto nemůžete aktualizovat tento dokument. Kontaktujte uživatele, který ho zamknul.', @@ -1370,6 +1391,7 @@ URL: [url]', 'select_attrdefgrp_show' => 'Vybrat, kdy chcete zobrazit', 'select_attribute_value' => 'Vybrat hodnotu atributu', 'select_category' => 'Kliknutím vybrat kategorii', +'select_documents_for_process' => '', 'select_group' => 'Vybrat skupinu', 'select_groups' => 'Kliknutím vybrat skupiny', 'select_grp_approvers' => 'Kliknutím vybrat skupinu schvalovatele', @@ -2039,6 +2061,7 @@ Jméno: [username] 'transfer_no_write_access' => 'Uživatel nemá přístup k zápisu do složky', 'transfer_objects' => 'Přenos objektů', 'transfer_objects_to_user' => 'Nový vlastník', +'transfer_processes_to_user' => '', 'transfer_process_to_user' => '', 'transfer_to_user' => 'Přenos k uživateli', 'transition_triggered_email' => 'Spuštěn přechod workflow', @@ -2114,10 +2137,16 @@ URL: [url]', 'user_group_management' => 'Správa uživatelů / skupin', 'user_image' => 'Obrázek', 'user_info' => 'Informace o uživateli', +'user_is_mandatory_approver' => '', +'user_is_mandatory_reviewer' => '', 'user_list' => 'Seznam uživatelů', 'user_login' => 'ID uživatele', 'user_management' => 'Správa uživatelů', 'user_name' => 'Plné jméno', +'user_previously_removed_from_approvers' => '', +'user_previously_removed_from_recipients' => '', +'user_previously_removed_from_reviewers' => '', +'user_previously_removed_from_revisors' => '', 'use_comment_of_document' => 'Použít komentář dokumentu', 'use_default_categories' => 'Použít předdefinované kategorie', 'use_default_keywords' => 'Použít předdefinovaná klíčová slova', diff --git a/languages/de_DE/lang.inc b/languages/de_DE/lang.inc index f66371b3f..7ad280448 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 (3113), dgrutsch (22) +// Translators: Admin (3143), dgrutsch (22) $text = array( '2_factor_auth' => '2-Faktor Authentifizierung', @@ -271,6 +271,14 @@ URL: [url]

', 'backup_log_management' => 'Backup/Logging', 'backup_remove' => 'Backup löschen', 'backup_tools' => 'Backup tools', +'batch_add_category_msg' => '[count] Dokumenten wurde die neue Kategorie \'[catname]\' hinzugefügt.', +'batch_change_category' => 'Kategorie ändern', +'batch_change_owner' => 'Besitzer ändern', +'batch_new_owner_msg' => 'Der Besitzer von [count] Dokuments wurde geändert.', +'batch_operation' => 'Massenoperation', +'batch_operation_result' => 'Ergebnis der Massenoperation', +'batch_remove_category' => 'Kategorie löschen', +'batch_remove_category_msg' => 'Von [count] Dokumenten wurde die Kategorie \'[catname]\' entfernt.', 'between' => 'zwischen', 'bg_BG' => 'Bulgarisch', 'browse' => 'Durchsuchen', @@ -349,6 +357,7 @@ URL: [url]

', 'comment_changed_email' => '', 'comment_for_current_version' => 'Kommentar zur aktuellen Version', 'configure_extension' => 'Erweiterung konfigurieren', +'confirm_change_owner' => 'Bitte bestätigen Sie den Besitzerwechsel der ausgewählten Objekte.', 'confirm_clear_cache' => 'Wollen Sie wirklich den Cache löschen? Dies entfernt alle vorberechneten Vorschaubilder, Javascript und andere Dateien.', 'confirm_create_fulltext_index' => 'Ja, Ich möchte den Volltext-Index neu erzeugen!.', 'confirm_move_document' => 'Dokument wirklich verschieben?', @@ -407,6 +416,7 @@ URL: [url]

', 'discspace' => 'Plattenplatz', 'docs_in_reception_no_access' => 'Dokumente mit Empfangsbestätigung ohne Zugriff des Empfängers', 'docs_in_revision_no_access' => 'Dokumente in Revision ohne Zugriff des Prüfers', +'docs_with_missing_revision_date' => 'Dokumente ohne Datum der Wiederholungsprüfung', 'document' => 'Dokument', 'documentcontent' => 'Dokumentenversion', 'documents' => 'Dokumente', @@ -615,7 +625,7 @@ URL: [url]

', 'draft' => 'Entwurf', 'draft_pending_approval' => 'Freigabe erforderlich', 'draft_pending_review' => 'Prüfung erforderlich', -'drag_icon_here' => 'Ordners oder Dokument hier hin ziehen!', +'drag_icon_here' => 'Ordner oder Dokument hier hin ziehen!', 'dropfolderdir_missing' => 'Ihr persönlicher Ablageordner auf dem Server existiert nicht! Kontaktieren Sie den Administrator, um in anlegen zu lassen.', 'dropfolder_file' => 'Datei aus Ablageordner', 'dropfolder_folder' => 'Ordner aus Ablageordner', @@ -752,6 +762,7 @@ URL: [url]

', 'filetype' => 'Dateityp', 'file_size' => 'Dateigröße', 'filter_for_documents' => 'Zusätzliche Filter für Dokumente', +'filter_for_documents_and_folders' => 'Zusätzliche Filter für Ordner und Dokumente', 'filter_for_folders' => 'Zusätzliche Filter für Ordner', 'folder' => 'Ordner', 'folders' => 'Verzeichnisse', @@ -866,8 +877,14 @@ URL: [url]

', 'group_approval_summary' => 'Übersicht Gruppenfreigabe', 'group_exists' => 'Gruppe existiert bereits', 'group_info' => 'Gruppeninformation', +'group_is_mandatory_approver' => 'Gruppe ist zwingender Freigeber', +'group_is_mandatory_reviewer' => 'Gruppe ist zwingender Prüfer', 'group_management' => 'Gruppenverwaltung', 'group_members' => 'Gruppenmitglieder', +'group_previously_removed_from_approvers' => 'Gruppe wurde zuvor als Freigeber entfernt.', +'group_previously_removed_from_recipients' => 'Gruppe wurde zuvor als Empfänger entfernt.', +'group_previously_removed_from_reviewers' => 'Gruppe wurde zuvor als Prüfer entfernt.', +'group_previously_removed_from_revisors' => 'Gruppe wurde zuvor als Wiederholungsprüfer entfernt.', 'group_receipt_summary' => 'Übersicht Gruppenbestätigungen', 'group_review_removed' => 'Statuswechsel, weil Prufung der Gruppe [name] entfernt wurde.', 'group_review_summary' => 'Übersicht Gruppenprüfungen', @@ -948,6 +965,7 @@ URL: [url]

', 'in_folder' => 'In', 'in_revision' => 'Erneute Prüfung', 'in_workflow' => 'im Workflow', +'iptc_metadata' => 'IPTC Daten', 'is_disabled' => 'Anmeldung sperren', 'is_hidden' => 'In der Benutzerliste verbergen', 'it_IT' => 'Italienisch', @@ -1031,6 +1049,8 @@ URL: [url]

', 'mandatory_reviewers' => 'Zwingende Prüfer', 'mandatory_reviewer_no_access' => 'Zwingender Prüfer \'[user]\' hat nicht ausreichende Zugriffsrechte.', 'march' => 'März', +'mark_document' => 'Dokument für Massenoperation auswählen', +'mark_folder' => 'Ordner für Massenoperation auswählen', 'max_upload_size' => 'Maximale Dateigröße', 'may' => 'Mai', 'menu_dropfolder' => 'Ablageordner', @@ -1189,6 +1209,7 @@ URL: [url]

', 'no_previous_versions' => 'Keine anderen Versionen gefunden', 'no_receipt_needed' => 'Es gibt zur Zeit keine Dokumente, die eine Empfangsbestätigung erfordern.', 'no_review_needed' => 'Keine offenen Prüfungen.', +'no_revision_date' => 'Datum der Wiederholungsprüfung fehlt', 'no_revision_needed' => 'Es gibt zur Zeit keine Dokumente, die eine erneute Prüfung erfordern.', 'no_revision_planed' => 'Keine Wiederholungsprüfung des Dokuments eingeplant.', 'no_update_cause_locked' => 'Sie können daher im Moment diese Datei nicht aktualisieren. Wenden Sie sich an den Benutzer, der die Sperrung eingerichtet hat', @@ -1700,6 +1721,7 @@ URL: [url]

', 'select_attrdefgrp_show' => 'Anzeigeort auswählen', 'select_attribute_value' => 'Attributwert auswählen', 'select_category' => 'Klicken zur Auswahl einer Kategorie', +'select_documents_for_process' => 'Dokumente auswählen', 'select_group' => 'Gruppe auswählen', 'select_groups' => 'Klicken zur Auswahl einer Gruppe', 'select_grp_approvers' => 'Klicken zur Auswahl einer Freigabegruppe', @@ -2371,6 +2393,7 @@ Sollten Sie kein Passwort bekommen haben, dann nutzen Sie bitte die Passwort-Ver 'transfer_no_write_access' => 'Der Benutzer hat in dem Ordner keine Schreibrechte', 'transfer_objects' => 'Objekte übertragen', 'transfer_objects_to_user' => 'Neuer Eigentümer', +'transfer_processes_to_user' => 'Prozesse auf Benutzer übertragen', 'transfer_process_to_user' => 'Prozess auf Benutzer übertragen', 'transfer_to_user' => 'Auf Benutzer übertragen', 'transition_triggered_email' => 'Workflow transition triggered', @@ -2457,10 +2480,16 @@ URL: [url]

', 'user_group_management' => 'Benutzer-/Gruppenmanagement', 'user_image' => 'Bild', 'user_info' => 'Benutzerinformation', +'user_is_mandatory_approver' => 'Benutzer ist zwingender Freigeber', +'user_is_mandatory_reviewer' => 'Benutzer ist zwingender Prüfer', 'user_list' => 'Benutzerübersicht', 'user_login' => 'Benutzername', 'user_management' => 'Benutzerverwaltung', 'user_name' => 'Vollst. Name', +'user_previously_removed_from_approvers' => 'Benutzer wurde zuvor als Freigeber entfernt.', +'user_previously_removed_from_recipients' => 'Benutzer wurde zuvor als Empfänger entfernt.', +'user_previously_removed_from_reviewers' => 'Benutzer wurde zuvor als Prüfer entfernt.', +'user_previously_removed_from_revisors' => 'Benutzer wurde zuvor als Wiederholungsprüfer entfernt.', 'use_comment_of_document' => 'Verwende Kommentar des Dokuments', 'use_default_categories' => 'Kategorievorlagen', 'use_default_keywords' => 'Stichwortvorlagen', diff --git a/languages/el_GR/lang.inc b/languages/el_GR/lang.inc index 653f4d714..445841412 100644 --- a/languages/el_GR/lang.inc +++ b/languages/el_GR/lang.inc @@ -203,6 +203,14 @@ $text = array( 'backup_log_management' => 'Αρχεία Εφεδρικά/Καταγραφής', 'backup_remove' => '', 'backup_tools' => 'Εργαλεία εφεδρικής καταγραφής', +'batch_add_category_msg' => '', +'batch_change_category' => '', +'batch_change_owner' => '', +'batch_new_owner_msg' => '', +'batch_operation' => '', +'batch_operation_result' => '', +'batch_remove_category' => '', +'batch_remove_category_msg' => '', 'between' => 'μεταξύ', 'bg_BG' => 'Βουλγάρικα', 'browse' => '', @@ -281,6 +289,7 @@ $text = array( 'comment_changed_email' => '', 'comment_for_current_version' => 'τρέχουσα έκδοση', 'configure_extension' => '', +'confirm_change_owner' => '', 'confirm_clear_cache' => '', 'confirm_create_fulltext_index' => 'Ναι, Θα ήθελα την επαναδημιουργία των δεικτών πλήρους κειμένου', 'confirm_move_document' => '', @@ -339,6 +348,7 @@ $text = array( 'discspace' => '', 'docs_in_reception_no_access' => '', 'docs_in_revision_no_access' => '', +'docs_with_missing_revision_date' => '', 'document' => 'Έγγραφο', 'documentcontent' => '', 'documents' => 'Έγγραφα', @@ -570,6 +580,7 @@ $text = array( 'filetype' => '', 'file_size' => 'Μέγεθος αρχείου', 'filter_for_documents' => '', +'filter_for_documents_and_folders' => '', 'filter_for_folders' => '', 'folder' => 'Φάκελος', 'folders' => 'Φάκελοι', @@ -621,8 +632,14 @@ $text = array( 'group_approval_summary' => '', 'group_exists' => 'Η ομάδα υπάρχει.', 'group_info' => '', +'group_is_mandatory_approver' => '', +'group_is_mandatory_reviewer' => '', 'group_management' => 'Διαχείριση ομάδων', 'group_members' => 'Μέλη ομάδας', +'group_previously_removed_from_approvers' => '', +'group_previously_removed_from_recipients' => '', +'group_previously_removed_from_reviewers' => '', +'group_previously_removed_from_revisors' => '', 'group_receipt_summary' => '', 'group_review_removed' => '', 'group_review_summary' => '', @@ -703,6 +720,7 @@ $text = array( 'in_folder' => '', 'in_revision' => '', 'in_workflow' => '', +'iptc_metadata' => '', 'is_disabled' => '', 'is_hidden' => '', 'it_IT' => 'Ιταλικά', @@ -786,6 +804,8 @@ $text = array( 'mandatory_reviewers' => '', 'mandatory_reviewer_no_access' => '', 'march' => 'Μάρτιος', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => 'Μέγιστο μέγεθος μεταφόρτωσης', 'may' => 'Μάϊος', 'menu_dropfolder' => '', @@ -902,6 +922,7 @@ URL: [url]', 'no_previous_versions' => '', 'no_receipt_needed' => '', 'no_review_needed' => '', +'no_revision_date' => '', 'no_revision_needed' => '', 'no_revision_planed' => '', 'no_update_cause_locked' => '', @@ -1177,6 +1198,7 @@ URL: [url]', 'select_attrdefgrp_show' => '', 'select_attribute_value' => '', 'select_category' => 'Επιλογή κατηγορίας', +'select_documents_for_process' => '', 'select_group' => 'Επιλογή ομάδας', 'select_groups' => '', 'select_grp_approvers' => '', @@ -1841,6 +1863,7 @@ URL: [url]', 'transfer_no_write_access' => '', 'transfer_objects' => '', 'transfer_objects_to_user' => '', +'transfer_processes_to_user' => '', 'transfer_process_to_user' => '', 'transfer_to_user' => '', 'transition_triggered_email' => '', @@ -1907,10 +1930,16 @@ URL: [url]', 'user_group_management' => 'Διαχείριση Χρηστών/Ομάδων', 'user_image' => 'Εικόνα', 'user_info' => 'Πληροφορίες Χρήστη', +'user_is_mandatory_approver' => '', +'user_is_mandatory_reviewer' => '', 'user_list' => 'Κατάλογος Χρηστών', 'user_login' => '', 'user_management' => 'Διαχείριση χρηστών', 'user_name' => 'Πλήρες Όνομα', +'user_previously_removed_from_approvers' => '', +'user_previously_removed_from_recipients' => '', +'user_previously_removed_from_reviewers' => '', +'user_previously_removed_from_revisors' => '', 'use_comment_of_document' => 'Χρήση σχολίου εγγράφου', 'use_default_categories' => '', 'use_default_keywords' => 'Χρήση προκαθορισμένων λέξεων κλειδιών', diff --git a/languages/en_GB/lang.inc b/languages/en_GB/lang.inc index 00f65900c..7dfdbbb90 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 (2207), archonwang (3), dgrutsch (9), netixw (14) +// Translators: Admin (2238), archonwang (3), dgrutsch (9), netixw (14) $text = array( '2_factor_auth' => '2-factor authentication', @@ -271,6 +271,14 @@ URL: [url]

', 'backup_log_management' => 'Backup/Logging', 'backup_remove' => 'Remove backup file', 'backup_tools' => 'Backup tools', +'batch_add_category_msg' => 'Added a new category \'[catname]\' to [count] documents.', +'batch_change_category' => 'Change category', +'batch_change_owner' => 'Change owner', +'batch_new_owner_msg' => 'The owner of [count] documents has been changed.', +'batch_operation' => 'Batch operation', +'batch_operation_result' => 'Result of batch operation', +'batch_remove_category' => 'Remove category', +'batch_remove_category_msg' => 'Removed category \'[catname]\' from [count] documents.', 'between' => 'between', 'bg_BG' => 'Bulgarian', 'browse' => 'Browse', @@ -349,6 +357,7 @@ URL: [url]

', 'comment_changed_email' => '', 'comment_for_current_version' => 'Version comment', 'configure_extension' => 'Configure extension', +'confirm_change_owner' => 'Please confirm changing the owner of the selected objects.', 'confirm_clear_cache' => 'Would you really like to clear the cache? This will remove all precalculated preview images, javascript and other files.', 'confirm_create_fulltext_index' => 'Yes, I would like to recreate the fulltext index!', 'confirm_move_document' => 'Please confirm moving the document.', @@ -407,6 +416,7 @@ URL: [url]

', 'discspace' => 'Disc space', 'docs_in_reception_no_access' => 'Documents with reception without access by recipient', 'docs_in_revision_no_access' => 'Documents in revision without access by revisor', +'docs_with_missing_revision_date' => 'Documents withoug date of revision', 'document' => 'Document', 'documentcontent' => 'Document content', 'documents' => 'Documents', @@ -752,6 +762,7 @@ URL: [url]

', 'filetype' => 'File type', 'file_size' => 'Filesize', 'filter_for_documents' => 'Additional filter for documents', +'filter_for_documents_and_folders' => 'Additional filter for folder and documents', 'filter_for_folders' => 'Additional filter for folders', 'folder' => 'Folder', 'folders' => 'Folders', @@ -867,8 +878,14 @@ URL: [url]

', 'group_approval_summary' => 'Group approval summary', 'group_exists' => 'Group already exists.', 'group_info' => 'Group information', +'group_is_mandatory_approver' => 'Group is mandatory approver', +'group_is_mandatory_reviewer' => 'Group is mandatory reviewer', 'group_management' => 'Groups management', 'group_members' => 'Group members', +'group_previously_removed_from_approvers' => 'Group was previously removed as a approver.', +'group_previously_removed_from_recipients' => 'Group was previously removed as a revisor.', +'group_previously_removed_from_reviewers' => 'Group was previously removed as a reviewer.', +'group_previously_removed_from_revisors' => 'Group was previously removed as a revisor.', 'group_receipt_summary' => 'Group receipt summary', 'group_review_removed' => 'Change of status, because review of group [name] was removed.', 'group_review_summary' => 'Group review summary', @@ -949,6 +966,7 @@ URL: [url]

', 'in_folder' => 'In', 'in_revision' => 'In revision', 'in_workflow' => 'In workflow', +'iptc_metadata' => 'IPTC Data', 'is_disabled' => 'Disable account', 'is_hidden' => 'Hide from users list', 'it_IT' => 'Italian', @@ -1032,6 +1050,8 @@ URL: [url]

', 'mandatory_reviewers' => 'Mandatory reviewers', 'mandatory_reviewer_no_access' => 'Mandatory reviewer \'[user]\' has insufficient access rights.', 'march' => 'March', +'mark_document' => 'Mark document for batch operation', +'mark_folder' => 'Mark folder for batch operation', 'max_upload_size' => 'Maximum upload size', 'may' => 'May', 'menu_dropfolder' => 'Drop folder', @@ -1192,6 +1212,7 @@ URL: [url]

', 'no_previous_versions' => 'No other versions found', 'no_receipt_needed' => 'There are currently no documents requiring a receipt confirmation.', 'no_review_needed' => 'No review pending.', +'no_revision_date' => 'Ddate of revision missing', 'no_revision_needed' => 'No revision pending.', 'no_revision_planed' => 'No revision of document scheduled', 'no_update_cause_locked' => 'You can therefore not update this document. Please contact the locking user.', @@ -1703,6 +1724,7 @@ URL: [url]

', 'select_attrdefgrp_show' => 'Choose when to show', 'select_attribute_value' => 'Select attribute value', 'select_category' => 'Click to select category', +'select_documents_for_process' => 'Select documents', 'select_group' => 'Select group', 'select_groups' => 'Click to select groups', 'select_grp_approvers' => 'Click to select group approver', @@ -2374,6 +2396,7 @@ If you did not receive a password, please use the password forgotten function on 'transfer_no_write_access' => 'The user does not have write access in the folder', 'transfer_objects' => 'Transfer objects', 'transfer_objects_to_user' => 'New owner', +'transfer_processes_to_user' => 'Transfer processes to user', 'transfer_process_to_user' => 'Transfer process to user', 'transfer_to_user' => 'Transfer to user', 'transition_triggered_email' => 'Workflow transition triggered', @@ -2440,8 +2463,8 @@ URL: [url]

', 'update_info' => 'Update Information', 'update_locked_msg' => 'This document is locked.', 'update_recipients' => 'Update list of recipients', -'update_reviewers' => 'Update List of Reviewers', -'update_revisors' => 'Update list of resubmitters', +'update_reviewers' => 'Update list of Reviewers', +'update_revisors' => 'Update list of revisors', 'update_transmittalitem' => 'Update to latest document version', 'uploaded_by' => 'Uploaded by', 'uploading_failed' => 'Uploading one of your files failed. Please check your maximum upload file size.', @@ -2460,10 +2483,16 @@ URL: [url]

', 'user_group_management' => 'Users/Groups management', 'user_image' => 'Image', 'user_info' => 'User Information', +'user_is_mandatory_approver' => 'User is mandatory approver', +'user_is_mandatory_reviewer' => 'User is mandatory reviewer', 'user_list' => 'List of Users', 'user_login' => 'User ID', 'user_management' => 'Users management', 'user_name' => 'Full name', +'user_previously_removed_from_approvers' => 'User was previously removed as a approver.', +'user_previously_removed_from_recipients' => 'User was previously removed as a revisor.', +'user_previously_removed_from_reviewers' => 'User was previously removed as a reviewer.', +'user_previously_removed_from_revisors' => 'User was previously removed as a revisor.', 'use_comment_of_document' => 'Use comment of document', 'use_default_categories' => 'Use predefined categories', 'use_default_keywords' => 'Use predefined keywords', diff --git a/languages/es_ES/lang.inc b/languages/es_ES/lang.inc index d45779a24..a797e9995 100644 --- a/languages/es_ES/lang.inc +++ b/languages/es_ES/lang.inc @@ -227,6 +227,14 @@ URL: [url]', 'backup_log_management' => 'Gestión log Backup', 'backup_remove' => 'Eliminar fichero de copia de seguridad', 'backup_tools' => 'Herramientas de copia de seguridad', +'batch_add_category_msg' => '', +'batch_change_category' => '', +'batch_change_owner' => '', +'batch_new_owner_msg' => '', +'batch_operation' => '', +'batch_operation_result' => '', +'batch_remove_category' => '', +'batch_remove_category_msg' => '', 'between' => 'entre', 'bg_BG' => 'Búlgaro', 'browse' => 'Listar', @@ -305,6 +313,7 @@ URL: [url]', 'comment_changed_email' => '', 'comment_for_current_version' => 'Comentario de la versión actual', 'configure_extension' => 'Configurar extensión', +'confirm_change_owner' => '', 'confirm_clear_cache' => '', 'confirm_create_fulltext_index' => '¡Sí, quiero regenerar el índice te texto completo¡', 'confirm_move_document' => '', @@ -363,6 +372,7 @@ URL: [url]', 'discspace' => 'Espacio en disco', 'docs_in_reception_no_access' => 'Documentos recibidos sin acceso por recipiente', 'docs_in_revision_no_access' => 'Documentos en revisión sin acceso para el revisor', +'docs_with_missing_revision_date' => '', 'document' => 'Documento', 'documentcontent' => 'Contenido del documento', 'documents' => 'Documentos', @@ -634,6 +644,7 @@ URL: [url]', 'filetype' => '', 'file_size' => 'Tamaño', 'filter_for_documents' => 'Filtro adicional para documentos', +'filter_for_documents_and_folders' => '', 'filter_for_folders' => 'Filtro adicional para carpetas', 'folder' => 'Carpeta', 'folders' => 'Carpetas', @@ -711,8 +722,14 @@ URL: [url]', 'group_approval_summary' => 'Resumen del grupo aprobador', 'group_exists' => 'El grupo ya existe.', 'group_info' => '', +'group_is_mandatory_approver' => '', +'group_is_mandatory_reviewer' => '', 'group_management' => 'Gestion de Grupos', 'group_members' => 'Miembros de grupo', +'group_previously_removed_from_approvers' => '', +'group_previously_removed_from_recipients' => '', +'group_previously_removed_from_reviewers' => '', +'group_previously_removed_from_revisors' => '', 'group_receipt_summary' => '', 'group_review_removed' => '', 'group_review_summary' => 'Resumen del grupo revisor', @@ -793,6 +810,7 @@ URL: [url]', 'in_folder' => 'En el directorio', 'in_revision' => 'En revisión', 'in_workflow' => 'En flujo de trabajo', +'iptc_metadata' => '', 'is_disabled' => 'Deshabilitar cuenta', 'is_hidden' => 'Ocultar de la lista de usuarios', 'it_IT' => 'Italiano', @@ -876,6 +894,8 @@ URL: [url]', 'mandatory_reviewers' => 'Revisores obligatorios', 'mandatory_reviewer_no_access' => 'El revisor obligatorio \'[user]\' no tiene suficiente nivel de acceso.', 'march' => 'Marzo', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => 'Tamaño máximo de subida para cada fichero', 'may' => 'Mayo', 'menu_dropfolder' => '', @@ -1005,6 +1025,7 @@ URL: [url]', 'no_previous_versions' => 'No se han encontrado otras versiones', 'no_receipt_needed' => '', 'no_review_needed' => 'No hay revisiones pendientes.', +'no_revision_date' => '', 'no_revision_needed' => '', 'no_revision_planed' => '', 'no_update_cause_locked' => 'No puede actualizar este documento. Contacte con el usuario que lo bloqueó.', @@ -1330,6 +1351,7 @@ URL: [url]', 'select_attrdefgrp_show' => '', 'select_attribute_value' => 'Seleccionar valores de atributos', 'select_category' => 'Haga Click para seleccionar categoría', +'select_documents_for_process' => '', 'select_group' => 'Seleccionar Grupo', 'select_groups' => 'Haga Click para seleccionar grupos', 'select_grp_approvers' => 'Haga Click para seleccionar grupo de aprobadores', @@ -1994,6 +2016,7 @@ URL: [url]', 'transfer_no_write_access' => 'El usuario no tiene acceso de escritura en la carpeta', 'transfer_objects' => '', 'transfer_objects_to_user' => '', +'transfer_processes_to_user' => '', 'transfer_process_to_user' => '', 'transfer_to_user' => 'Transferir al usuario', 'transition_triggered_email' => 'Workflow transition triggered', @@ -2069,10 +2092,16 @@ URL: [url]', 'user_group_management' => 'Gestión de Usuarios/Grupos', 'user_image' => 'Imagen', 'user_info' => 'Información de usuario', +'user_is_mandatory_approver' => '', +'user_is_mandatory_reviewer' => '', 'user_list' => 'Lista de usuarios', 'user_login' => 'Nombre de usuario', 'user_management' => 'Usuarios', 'user_name' => 'Nombre completo', +'user_previously_removed_from_approvers' => '', +'user_previously_removed_from_recipients' => '', +'user_previously_removed_from_reviewers' => '', +'user_previously_removed_from_revisors' => '', 'use_comment_of_document' => 'Usar comentario del documento', 'use_default_categories' => 'Utilizar categorías predefinidas', 'use_default_keywords' => 'Utilizar palabras claves por defecto', diff --git a/languages/fr_FR/lang.inc b/languages/fr_FR/lang.inc index 4030a9308..fdd49deb4 100644 --- a/languages/fr_FR/lang.inc +++ b/languages/fr_FR/lang.inc @@ -261,6 +261,14 @@ URL : [url]

', 'backup_log_management' => 'Sauvegarde/Log', 'backup_remove' => 'Supprimer le fichier de sauvegarde', 'backup_tools' => 'Outils de sauvegarde', +'batch_add_category_msg' => '', +'batch_change_category' => '', +'batch_change_owner' => '', +'batch_new_owner_msg' => '', +'batch_operation' => '', +'batch_operation_result' => '', +'batch_remove_category' => '', +'batch_remove_category_msg' => '', 'between' => 'entre', 'bg_BG' => 'Bulgare', 'browse' => 'Parcourir', @@ -339,6 +347,7 @@ URL : [url]

', 'comment_changed_email' => 'Commentaire lors du changement d\'adresse mail', 'comment_for_current_version' => 'Commentaires pour la version actuelle', 'configure_extension' => 'Configurer l’extension', +'confirm_change_owner' => '', 'confirm_clear_cache' => 'Voulez-vous vraiment vider le cache ? Cela va effacer toutes les miniatures.', 'confirm_create_fulltext_index' => 'Oui, je souhaite recréer l\'index de recherche plein texte !', 'confirm_move_document' => 'Veuillez confirmer le déplacement du document.', @@ -397,6 +406,7 @@ URL : [url]

', 'discspace' => 'Espace disque', 'docs_in_reception_no_access' => 'Documents en attente de réception sans accès du destinataire', 'docs_in_revision_no_access' => 'Documents en révision sans accès du réviseur', +'docs_with_missing_revision_date' => '', 'document' => 'Document', 'documentcontent' => 'Version de document', 'documents' => 'Documents', @@ -738,6 +748,7 @@ URL : [url]

', 'filetype' => 'Type de fichier', 'file_size' => 'Taille', 'filter_for_documents' => 'Filtre additionnel pour les documents', +'filter_for_documents_and_folders' => '', 'filter_for_folders' => 'Filtre additionnel pour les dossiers', 'folder' => 'Dossier', 'folders' => 'Dossiers', @@ -853,8 +864,14 @@ URL : [url]

', 'group_approval_summary' => 'Récapitulatif groupe approbation', 'group_exists' => 'Ce groupe existe déjà.', 'group_info' => 'Informations du groupe', +'group_is_mandatory_approver' => '', +'group_is_mandatory_reviewer' => '', 'group_management' => 'Gestion des groupes', 'group_members' => 'Membres du groupe', +'group_previously_removed_from_approvers' => '', +'group_previously_removed_from_recipients' => '', +'group_previously_removed_from_reviewers' => '', +'group_previously_removed_from_revisors' => '', 'group_receipt_summary' => 'Récapitulatif groupe réception', 'group_review_removed' => 'Changement de statut car la vérification du groupe [name] a été supprimée.', 'group_review_summary' => 'Récapitulatif groupe vérification', @@ -935,6 +952,7 @@ URL : [url]

', 'in_folder' => 'Dans', 'in_revision' => 'En révision', 'in_workflow' => 'Dans le workflow', +'iptc_metadata' => '', 'is_disabled' => 'Compte désactivé', 'is_hidden' => 'Cacher de la liste utilisateur', 'it_IT' => 'Italien', @@ -1018,6 +1036,8 @@ URL : [url]

', 'mandatory_reviewers' => 'Examinateurs', 'mandatory_reviewer_no_access' => 'Examinateur \'[user]\' ne dispose pas des droits suffisants', 'march' => 'Mars', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => 'Taille maximum de fichier déposé', 'may' => 'Mai', 'menu_dropfolder' => 'Dossier de dépôt', @@ -1179,6 +1199,7 @@ URL : [url]

', 'no_previous_versions' => 'Aucune autre version trouvée', 'no_receipt_needed' => 'Il n’y a actuellement aucun document nécessitant une confirmation de réception.', 'no_review_needed' => 'Aucune vérification en attente', +'no_revision_date' => '', 'no_revision_needed' => 'Aucune révision en attente', 'no_revision_planed' => 'Aucune révision de document prévue', 'no_update_cause_locked' => 'Vous ne pouvez actuellement pas mettre à jour ce document. Contactez l\'utilisateur qui l\'a verrouillé.', @@ -1688,6 +1709,7 @@ URL : [url]

', 'select_attrdefgrp_show' => 'Sélectionner quand afficher', 'select_attribute_value' => 'Sélectionner la valeur de l’attribut', 'select_category' => 'Cliquer pour choisir une catégorie', +'select_documents_for_process' => '', 'select_group' => 'Sélectionner un groupe', 'select_groups' => 'Cliquer pour choisir un groupe', 'select_grp_approvers' => 'Cliquer pour choisir un groupe d\'approbateur', @@ -2357,6 +2379,7 @@ Nom : [username] 'transfer_no_write_access' => 'L’utilisateur n’a pas le droit d’écriture dans ce dossier', 'transfer_objects' => 'Transférer les objets', 'transfer_objects_to_user' => 'Nouveau propriétaire', +'transfer_processes_to_user' => '', 'transfer_process_to_user' => 'Transférer le processus à l’utilisateur', 'transfer_to_user' => 'Transférer à l’utilisateur', 'transition_triggered_email' => 'Transition de workflow activé', @@ -2443,10 +2466,16 @@ URL : [url]

', 'user_group_management' => 'Gestion des utilisateurs/groupes', 'user_image' => 'Image', 'user_info' => 'Informations utilisateur', +'user_is_mandatory_approver' => '', +'user_is_mandatory_reviewer' => '', 'user_list' => 'Liste des utilisateurs', 'user_login' => 'Identifiant', 'user_management' => 'Gestion des utilisateurs', 'user_name' => 'Nom d’affichage', +'user_previously_removed_from_approvers' => '', +'user_previously_removed_from_recipients' => '', +'user_previously_removed_from_reviewers' => '', +'user_previously_removed_from_revisors' => '', 'use_comment_of_document' => 'Utiliser le commentaire du document', 'use_default_categories' => 'Use predefined categories', 'use_default_keywords' => 'Utiliser les mots-clés prédéfinis', diff --git a/languages/hr_HR/lang.inc b/languages/hr_HR/lang.inc index da527d4c8..b780ad153 100644 --- a/languages/hr_HR/lang.inc +++ b/languages/hr_HR/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 (1247), marbanas (16) +// Translators: Admin (1249), marbanas (16) $text = array( '2_factor_auth' => '', @@ -232,6 +232,14 @@ Internet poveznica: [url]', 'backup_log_management' => 'Sigurnosna kopija / Bilježenje', 'backup_remove' => 'Ukloni datoteku sigurnosne kopije', 'backup_tools' => 'Alat za sigurnosnu kopiju', +'batch_add_category_msg' => '', +'batch_change_category' => '', +'batch_change_owner' => '', +'batch_new_owner_msg' => '', +'batch_operation' => '', +'batch_operation_result' => '', +'batch_remove_category' => '', +'batch_remove_category_msg' => '', 'between' => 'između', 'bg_BG' => 'Bugarski', 'browse' => 'Pretraži', @@ -310,6 +318,7 @@ Internet poveznica: [url]', 'comment_changed_email' => 'Promjena komentara', 'comment_for_current_version' => 'Verzija komentara', 'configure_extension' => '', +'confirm_change_owner' => '', 'confirm_clear_cache' => '', 'confirm_create_fulltext_index' => 'Da, želim ponovo indeksirati cijeli tekst!', 'confirm_move_document' => '', @@ -368,6 +377,7 @@ Internet poveznica: [url]', 'discspace' => 'Prostor na disku', 'docs_in_reception_no_access' => '', 'docs_in_revision_no_access' => '', +'docs_with_missing_revision_date' => '', 'document' => 'Dokument', 'documentcontent' => '', 'documents' => 'Dokumenti', @@ -633,6 +643,7 @@ Internet poveznica: [url]', 'filetype' => '', 'file_size' => 'Veličina datoteke', 'filter_for_documents' => 'Dodatni filter za dokumente', +'filter_for_documents_and_folders' => '', 'filter_for_folders' => 'Dodatni filter za dokumente', 'folder' => 'Mapa', 'folders' => 'Mape', @@ -704,8 +715,14 @@ Internet poveznica: [url]', 'group_approval_summary' => 'Pregled odobrenja grupe', 'group_exists' => 'Grupa već postoji.', 'group_info' => '', +'group_is_mandatory_approver' => '', +'group_is_mandatory_reviewer' => '', 'group_management' => 'Upravljanje grupama', 'group_members' => 'Članovi grupe', +'group_previously_removed_from_approvers' => '', +'group_previously_removed_from_recipients' => '', +'group_previously_removed_from_reviewers' => '', +'group_previously_removed_from_revisors' => '', 'group_receipt_summary' => 'Sažetak prijema za grupu', 'group_review_removed' => '', 'group_review_summary' => 'Sažetak pregleda grupe', @@ -723,7 +740,7 @@ Internet poveznica: [url]', 'hu_HU' => 'Mađarski', 'id' => 'ID', 'identical_version' => 'Nova verzija je identična trenutnoj verziji.', -'id_ID' => '', +'id_ID' => 'Indonezija', 'import' => '', 'importfs' => '', 'import_extension' => '', @@ -786,6 +803,7 @@ Internet poveznica: [url]', 'in_folder' => '', 'in_revision' => 'U reviziji', 'in_workflow' => 'U toku rada', +'iptc_metadata' => '', 'is_disabled' => 'Onemogući klijenta', 'is_hidden' => 'Sakrij iz popisa korisnika', 'it_IT' => 'Talijanski', @@ -869,6 +887,8 @@ Internet poveznica: [url]', 'mandatory_reviewers' => 'Obavezni recezenti', 'mandatory_reviewer_no_access' => 'Recezenti \'[user]\' nemaju dovoljno prava pristupa.', 'march' => 'Ožujak', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => 'Max. veličina za prijenos', 'may' => 'Svibanj', 'menu_dropfolder' => '', @@ -997,6 +1017,7 @@ Internet poveznica: [url]', 'no_previous_versions' => 'Nema pronađenih drugih verzija', 'no_receipt_needed' => 'Nije potrebna potvrda primitka', 'no_review_needed' => 'Nema pregleda na čekanju.', +'no_revision_date' => '', 'no_revision_needed' => 'Nema revizije na čekanju.', 'no_revision_planed' => 'Nema zakazane revizije dokumenta', 'no_update_cause_locked' => 'Dakle, ne možete ažurirati ovaj dokument. Molim kontaktirajte korisnika koji zaključava.', @@ -1339,6 +1360,7 @@ Internet poveznica: [url]', 'select_attrdefgrp_show' => '', 'select_attribute_value' => 'Izbari vrednost atributa', 'select_category' => 'Kliknite za odabir kategorije', +'select_documents_for_process' => '', 'select_group' => 'Izaberi grupu', 'select_groups' => 'Kliknite za odabir grupa', 'select_grp_approvers' => 'Kliknite za odabir validatora grupe', @@ -2003,6 +2025,7 @@ Internet poveznica: [url]', 'transfer_no_write_access' => 'Korisnik nema pravo pisanja u ovom folderu', 'transfer_objects' => '', 'transfer_objects_to_user' => '', +'transfer_processes_to_user' => '', 'transfer_process_to_user' => '', 'transfer_to_user' => 'Prijenos korisniku', 'transition_triggered_email' => 'Zatražena promjena toka rada', @@ -2078,14 +2101,20 @@ Internet poveznica: [url]', 'user_group_management' => 'Upravljanje korisnicima/grupama', 'user_image' => 'Slika', 'user_info' => 'Korisničke informacije', +'user_is_mandatory_approver' => '', +'user_is_mandatory_reviewer' => '', 'user_list' => 'Popis korisnika', 'user_login' => 'Korisničko ime', 'user_management' => 'Upravljanje korisnicima', 'user_name' => 'Puni naziv', +'user_previously_removed_from_approvers' => '', +'user_previously_removed_from_recipients' => '', +'user_previously_removed_from_reviewers' => '', +'user_previously_removed_from_revisors' => '', 'use_comment_of_document' => 'Koristi komentar dokumenta', 'use_default_categories' => 'Koristi predefinirane kategorije', 'use_default_keywords' => 'Koristi predefinirane ključne riječi', -'valid_till' => '', +'valid_till' => 'Validan do', 'version' => 'Verzija', 'versioning_file_creation' => 'Stvaranje nove verzije datoteke', 'versioning_file_creation_warning' => 'Ovo radnjom možete izraditi datoteku koja sadrži informacije o verzijama cijele DMS mape. Nakon izrade, svaka datoteka će biti pohranjena unutar podatkovne mape.', diff --git a/languages/hu_HU/lang.inc b/languages/hu_HU/lang.inc index a97633105..7923e22f7 100644 --- a/languages/hu_HU/lang.inc +++ b/languages/hu_HU/lang.inc @@ -227,6 +227,14 @@ URL: [url]', 'backup_log_management' => 'Mentés/Naplózás', 'backup_remove' => 'Mentési állomány eltávolítása', 'backup_tools' => 'Mentő eszközök', +'batch_add_category_msg' => '', +'batch_change_category' => '', +'batch_change_owner' => '', +'batch_new_owner_msg' => '', +'batch_operation' => '', +'batch_operation_result' => '', +'batch_remove_category' => '', +'batch_remove_category_msg' => '', 'between' => 'között', 'bg_BG' => 'Bulgár', 'browse' => 'Tallózás', @@ -305,6 +313,7 @@ URL: [url]', 'comment_changed_email' => '', 'comment_for_current_version' => 'Megjegyzés az aktuális verzióhoz', 'configure_extension' => '', +'confirm_change_owner' => '', 'confirm_clear_cache' => '', 'confirm_create_fulltext_index' => 'Igen, szeretném újra létrehozni a teljes szöveg indexet!', 'confirm_move_document' => '', @@ -363,6 +372,7 @@ URL: [url]', 'discspace' => 'Lemezterület', 'docs_in_reception_no_access' => '', 'docs_in_revision_no_access' => '', +'docs_with_missing_revision_date' => '', 'document' => 'Dokumentum', 'documentcontent' => '', 'documents' => 'Dokumentumok', @@ -628,6 +638,7 @@ URL: [url]', 'filetype' => '', 'file_size' => 'Állomány méret', 'filter_for_documents' => 'További dokumentum szűrők', +'filter_for_documents_and_folders' => '', 'filter_for_folders' => 'További mappa szűrők', 'folder' => 'Mappa', 'folders' => 'Mappák', @@ -699,8 +710,14 @@ URL: [url]', 'group_approval_summary' => 'Csoport jóváhagyás összefoglaló', 'group_exists' => 'Csoport már létezik.', 'group_info' => '', +'group_is_mandatory_approver' => '', +'group_is_mandatory_reviewer' => '', 'group_management' => 'Csoportok', 'group_members' => 'Csoporttagok', +'group_previously_removed_from_approvers' => '', +'group_previously_removed_from_recipients' => '', +'group_previously_removed_from_reviewers' => '', +'group_previously_removed_from_revisors' => '', 'group_receipt_summary' => '', 'group_review_removed' => '', 'group_review_summary' => 'Csoport felülvizsgálat összefoglaló', @@ -781,6 +798,7 @@ URL: [url]', 'in_folder' => '', 'in_revision' => '', 'in_workflow' => 'Munkafolyamatban', +'iptc_metadata' => '', 'is_disabled' => 'Hozzáférés tiltás', 'is_hidden' => 'Felhasználó listáról elrejt', 'it_IT' => 'Olasz', @@ -864,6 +882,8 @@ URL: [url]', 'mandatory_reviewers' => 'Kötelező felülvizsgálók', 'mandatory_reviewer_no_access' => 'Kötelező felülvizsgáló \'[user]\' nem rendelkezik elegendő jogosultságokkal.', 'march' => 'Március', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => 'Legnagyobb feltölthető méret', 'may' => 'Május', 'menu_dropfolder' => '', @@ -993,6 +1013,7 @@ URL: [url]', 'no_previous_versions' => 'Nem találhatók más változatok', 'no_receipt_needed' => '', 'no_review_needed' => 'Nincs folyamatban lévő felülvizsgálat.', +'no_revision_date' => '', 'no_revision_needed' => '', 'no_revision_planed' => '', 'no_update_cause_locked' => 'Emiatt nem módosíthatja a dokumentumot. Kérjük lépjen kapcsolatba a zároló felhasználóval.', @@ -1317,6 +1338,7 @@ URL: [url]', 'select_attrdefgrp_show' => '', 'select_attribute_value' => '', 'select_category' => 'Kattintson a kategória kiválasztásához', +'select_documents_for_process' => '', 'select_group' => 'Csoport kiválasztása', 'select_groups' => 'Kattintson a csoportok kijelöléséhez', 'select_grp_approvers' => 'Kattintson a csoport jóváhagyó kijelöléséhez', @@ -1981,6 +2003,7 @@ URL: [url]', 'transfer_no_write_access' => '', 'transfer_objects' => 'Adatok átadása', 'transfer_objects_to_user' => 'Új tulajdonos', +'transfer_processes_to_user' => '', 'transfer_process_to_user' => '', 'transfer_to_user' => '', 'transition_triggered_email' => 'Munkamenet átmenet kiváltva', @@ -2056,10 +2079,16 @@ URL: [url]', 'user_group_management' => 'Felhasználók/Csoportok kezelése', 'user_image' => 'Kép', 'user_info' => 'Felhasználói információ', +'user_is_mandatory_approver' => '', +'user_is_mandatory_reviewer' => '', 'user_list' => 'Felhasználók listája', 'user_login' => 'Felhasználói azonosító', 'user_management' => 'Felhasználók kezelése', 'user_name' => 'Teljes név', +'user_previously_removed_from_approvers' => '', +'user_previously_removed_from_recipients' => '', +'user_previously_removed_from_reviewers' => '', +'user_previously_removed_from_revisors' => '', 'use_comment_of_document' => 'Használja a dokumentum megjegyzését', 'use_default_categories' => 'Használjon előre megadott kategóriákat', 'use_default_keywords' => 'Használjon előre meghatározott kulcsszavakat', diff --git a/languages/id_ID/lang.inc b/languages/id_ID/lang.inc new file mode 100644 index 000000000..de7ad1880 --- /dev/null +++ b/languages/id_ID/lang.inc @@ -0,0 +1,2226 @@ + '', +'2_factor_auth_info' => '', +'2_fact_auth_current_secret' => 'Kunci rahasi saat ini', +'2_fact_auth_new_secret' => '', +'2_fact_auth_secret' => 'Rahasia', +'abbr_day' => '', +'abbr_hour' => '', +'abbr_minute' => '', +'abbr_month' => '', +'abbr_second' => '', +'abbr_week' => '', +'abbr_year' => '', +'accept' => 'Terima', +'access_control' => 'Kontrol akses', +'access_control_is_off' => 'Kontrol akses lanjutan telah dimatikan', +'access_denied' => 'Akses ditolak.', +'access_inheritance' => '', +'access_mode' => 'Mode akses', +'access_mode_all' => 'Semua izin', +'access_mode_none' => 'Tidak memiliki akses', +'access_mode_read' => 'Izin Membaca', +'access_mode_readwrite' => 'Izin Baca-Tulis', +'access_permission_changed_email' => 'Izin diterapkan', +'access_permission_changed_email_body' => 'Izin diterapkan +Dokumen: [name] +Folder induk: [folder_path] +Pengguna: [username] +URL: [url]', +'access_permission_changed_email_body_html' => '

Izin diubah

+ +

Dokumen: [name]
+Folder induk: [folder_path]
+Pengguna: [username]
+URL: [url]

', +'access_permission_changed_email_subject' => '[sitename]: [name] - Izin diterapkan', +'according_settings' => 'sesuai pengaturan', +'action' => 'Aksi', +'actions' => 'Aksi', +'action_approve' => 'Menyetujui', +'action_complete' => 'Selesai', +'action_is_complete' => 'Telah selesai', +'action_is_not_complete' => 'Belum selesai', +'action_reject' => 'Menolak', +'action_review' => 'Meninjau', +'action_revise' => 'Merevisi', +'add' => 'Tambah', +'add_approval' => 'Tambah approval', +'add_attrdefgroup' => 'Tambah label kelompok baru', +'add_document' => 'Tambah dokumen', +'add_document_link' => 'Tambah link', +'add_document_notify' => 'Tetapkan pemberitahuan', +'add_doc_reviewer_approver_warning' => 'N.B. Dokumen secara otomatis ditandai sebagai dirilis jika tidak ada peninjau atau pemberi persetujuan yang ditugaskan.', +'add_doc_workflow_warning' => '', +'add_event' => 'Tambah event', +'add_group' => 'Tambah kelompok baru', +'add_member' => 'Tambah anggota', +'add_multiple_documents' => 'Tambah beberapa dokumen', +'add_multiple_files' => 'Tambah beberapa file (akan menggunakan nama file sebagai nama dokumen)', +'add_receipt' => 'Acknowledge reception', +'add_review' => 'Tambah review', +'add_revision' => 'Tambah revision', +'add_role' => 'Tambah new role', +'add_subfolder' => 'Tambah subfolder', +'add_task' => 'Tambah new task for this class', +'add_to_clipboard' => 'Tambah ke clipboard', +'add_to_transmittal' => 'Tambah ke transmittal', +'add_transmittal' => 'Tambah transmittal', +'add_user' => 'Tambah pengguna baru', +'add_user_to_group' => 'Tambah pengguna ke kelompok', +'add_workflow' => 'Tambah alur kerja baru', +'add_workflow_action' => 'Tambah new workflow action', +'add_workflow_state' => 'Tambah new workflow state', +'admin' => '', +'admin_tools' => '', +'all' => 'Semua', +'all_categories' => 'Semua kategori', +'all_documents' => 'Semua Dokumen', +'all_pages' => 'Semua', +'all_users' => 'Semua pengguna', +'already_subscribed' => 'Telah berlangganan', +'and' => 'dan', +'apikey' => 'Kunci API', +'apply' => 'Terapkan', +'approvals_accepted' => '[no_approvals] persetujuan sudah diterima', +'approvals_accepted_latest' => '', +'approvals_and_reviews_accepted' => '[no_approvals] persetujuan dan [no_reviews] ulasan sudah diterima', +'approvals_and_reviews_not_touched' => '', +'approvals_and_reviews_rejected' => '[no_approvals] persetujuan dan [no_reviews] ulasan sudah ditolak', +'approvals_not_touched' => '[no_approvals] persetujuan tidak disentuh', +'approvals_not_touched_latest' => '(menjadi [no_approvals] dalam versi terbaru)', +'approvals_rejected' => '', +'approvals_rejected_latest' => '(menjadi [no_approvals] dalam versi terbaru)', +'approvals_without_group' => 'Persetujuan tanpa kelompok', +'approvals_without_user' => 'Persetujuan tanpa pengguna', +'approval_deletion_email' => 'Permintaan persetujuan dihapus', +'approval_deletion_email_body' => '', +'approval_deletion_email_body_html' => '

Permintaan persetujuan telah dihapus

+ +

Dokumen: [name]
+Versi: [version]
+Folder induk: [folder_path]
+Pengguna: [username]
+URL: [url]

', +'approval_deletion_email_subject' => '', +'approval_file' => 'Berkas', +'approval_group' => 'Kelompok Persetujuan', +'approval_log' => 'Log persetujuan', +'approval_request_email' => 'Permintaan persetujuan', +'approval_request_email_body' => 'Permintaan persetujuan + +Dokumen: [name] +Versi: [version] +Folder induk: [folder_path] +Pengguna: [username] +URL: [url]', +'approval_request_email_body_html' => '', +'approval_request_email_subject' => '[sitename]: [name] - Permintaan persetujuan', +'approval_status' => 'Status Persetujuan', +'approval_submit_email' => '', +'approval_submit_email_body' => 'Persetujuan dokumen + +Dokumen: [name] +Versi: [version] +Folder induk: [folder_path] +Status: [status] +Komentar: [comment] +Pengguna: [username] +URL: [url]', +'approval_submit_email_body_html' => '', +'approval_submit_email_subject' => '[sitename]: [name] - Persetujuan diajukan', +'approval_summary' => 'Ringkasan Persetujuan', +'approval_update_failed' => 'Terjadi kesalahan saat memperbarui status persetujuan. Pembaharuan gagal.', +'approvers' => '', +'approver_already_assigned' => 'Pengguna sudah ditetapkan sebagai pemberi persetujuan.', +'approver_already_removed' => '', +'april' => 'April', +'archive' => 'Arsip', +'archive_creation' => 'Arsip creation', +'archive_creation_warning' => 'Dengan operasi ini Anda dapat membuat arsip yang berisi file dari seluruh folder DMS. Setelah pembuatan arsip akan disimpan di folder data server Anda.
PERINGATAN: arsip yang dibuat sebagai dapat dibaca manusia tidak akan dapat digunakan sebagai cadangan server.', +'ar_EG' => 'Arab', +'assign_approvers' => '', +'assign_recipients' => 'Tetapkan Penerima', +'assign_reviewers' => '', +'assign_user_property_to' => 'Tetapkan properti pengguna ke', +'assumed_released' => 'Diasumsikan dirilis', +'attrdefgroup_management' => 'Manajemen kelompok label', +'attrdefgrp_show_detail' => 'Rincian', +'attrdefgrp_show_list' => 'Daftar', +'attrdefgrp_show_search' => 'Pencarian', +'attrdefgrp_show_searchlist' => 'Hasil pencarian', +'attrdef_exists' => 'Definisi label telah tersedia', +'attrdef_info' => 'Informasi', +'attrdef_invalid_regex' => '', +'attrdef_in_use' => 'Definisi atribut masih digunakan', +'attrdef_management' => 'Manajemen definisi label', +'attrdef_maxvalues' => '', +'attrdef_minvalues' => 'min. jumlah nilai', +'attrdef_minvalues_help' => '', +'attrdef_min_greater_max' => 'Jumlah nilai minimum lebih besar dari jumlah nilai maksimum', +'attrdef_multiple' => '', +'attrdef_multiple_needs_valueset' => 'Definisi atribut dengan beberapa nilai membutuhkan nilai yang ditetapkan.', +'attrdef_must_be_multiple' => '', +'attrdef_name' => 'Nama', +'attrdef_noname' => 'Tidak ada nama untuk definisi atribut', +'attrdef_objtype' => '', +'attrdef_regex' => '', +'attrdef_regex_help' => 'Regular expression yang harus cocok dengan nilai atribut jika tipenya adalah string.', +'attrdef_type' => '', +'attrdef_type_boolean' => '', +'attrdef_type_date' => 'Tanggal', +'attrdef_type_document' => 'Dokumen', +'attrdef_type_email' => 'Email', +'attrdef_type_float' => '', +'attrdef_type_folder' => 'Folder', +'attrdef_type_group' => 'Kelompok', +'attrdef_type_int' => '', +'attrdef_type_string' => '', +'attrdef_type_url' => 'URL', +'attrdef_type_user' => 'Pengguna', +'attrdef_valueset' => '', +'attrdef_valueset_help' => '', +'attributes' => 'Atribut', +'attribute_changed_email_body' => '', +'attribute_changed_email_body_html' => '

Atribut diubah

+ +

Dokumen: [name]
+Versi: [version]
+Atribut: [attribute_name]
+Nilai awal: [attribute_old_value]
+Nilai baru: [attribute_new_value]
+Folder induk: [folder_path]
+Pengguna: [username]
+URL: [url]

', +'attribute_changed_email_subject' => '[sitename]: [name] - Atribut berubah', +'attribute_count' => 'Jumlah penggunaan', +'attribute_value' => 'Nilai atribut', +'attribute_value_not_in_valueset' => '', +'attr_malformed_boolean' => 'Nilai atribut \'[value]\' dari atribut \'[attrname]\' bukan boolean yang valid.', +'attr_malformed_date' => 'Nilai atribut \'[value]\' dari atribut \'[attrname]\' bukan tanggal yang valid.', +'attr_malformed_email' => 'Nilai atribut \'[value]\' dari atribut \'[attrname]\' bukan URL yang valid.', +'attr_malformed_float' => '', +'attr_malformed_int' => 'Nilai atribut \'[value]\' dari atribut \'[attrname]\' bukan integer yang valid.', +'attr_malformed_url' => 'Nilai atribut \'[value]\' dari atribut \'[attrname]\' bukan URL yang valid.', +'attr_max_values' => 'Jumlah maksimum nilai yang diperlukan untuk atribut [attrname] terlampaui.', +'attr_min_values' => '', +'attr_not_in_valueset' => 'Nilai atribut \'[nilai]\' untuk atribut \'[attrname]\' tidak terdapat dalam kumpulan nilai.', +'attr_no_regex_match' => 'Nilai atribut \'[value]\' untuk atribut \'[attrname]\' tidak cocok dengan regular expression \'[regex]\'', +'attr_validation_error' => '', +'at_least_n_users_of_group' => '', +'august' => 'Agustus', +'authentication' => 'Autentikasi', +'authentication_failed' => 'Autentikasi gagal', +'author' => 'Pengarang', +'automatic_status_update' => 'Perubahan status otomatis', +'back' => 'Kembali', +'backup_list' => 'Cadangan yang ada', +'backup_log_management' => 'Pencadangan/Logging', +'backup_remove' => 'Hapus berkas backup', +'backup_tools' => 'Alat cadangan', +'batch_add_category_msg' => '', +'batch_change_category' => '', +'batch_change_owner' => '', +'batch_new_owner_msg' => '', +'batch_operation' => '', +'batch_operation_result' => '', +'batch_remove_category' => '', +'batch_remove_category_msg' => '', +'between' => '', +'bg_BG' => 'Bulgaria', +'browse' => 'Jelajahi', +'calendar' => 'Kalender', +'calendar_week' => 'Kalender Mingguan', +'cancel' => 'Batal', +'cancel_checkout' => 'Batalkan pembayaran', +'cancel_checkout_warning' => 'Check out dapat dibatalkan jika berkas check out telah diubah. Dalam hal ini berkas akan dihapus dari ruang check out dan modifikasi Anda akan hilang.', +'cannot_assign_invalid_state' => '', +'cannot_change_final_states' => 'Peringatan: Anda tidak dapat mengubah status untuk dokumen yang ditolak, kedaluwarsa, atau dengan tinjauan atau persetujuan yang tertunda', +'cannot_delete_user' => 'Tidak dapat menghapus pengguna', +'cannot_delete_yourself' => 'Tidak dapat menghapus akun anda sendiri', +'cannot_move_root' => 'Galat: Tidak dapat memindahkan folder root.', +'cannot_retrieve_approval_snapshot' => '', +'cannot_retrieve_review_snapshot' => 'Tidak dapat mengambil snapshot status tinjauan untuk versi dokumen ini.', +'cannot_revapp_expired_docs' => '', +'cannot_rm_root' => 'Galat: Tidak dapat menghapus folder root.', +'cannot_transfer_your_objects' => 'Anda tidak dapat mentransfer objek Anda sendiri', +'categories' => 'Kategori', +'categories_loading' => '', +'category' => 'Kategori', +'category_exists' => 'Kategori telah ada.', +'category_filter' => 'Hanya kategori', +'category_info' => 'Informasi', +'category_in_use' => 'Kategori ini telah digunakan oleh dokumen.', +'category_noname' => 'Tidak ada nama kategori yang diberikan.', +'ca_ES' => '', +'changelog_loading' => 'Harap tunggu, sampai log perubahan dimuat ...', +'change_assignments' => 'Tetapkan pengulas/pemberi persetujuan', +'change_password' => 'Terapkan kata sandi', +'change_password_message' => 'Kata sandi Anda telah diterapkan.', +'change_recipients' => 'Tetapkan penerima', +'change_revisors' => 'Tetapkan revisor', +'change_status' => 'Merubah Status', +'charts' => 'Bagan', +'chart_docsaccumulated_title' => 'Jumlah dokumen', +'chart_docspercategory_title' => 'Dokumen per kategori', +'chart_docspermimetype_title' => '', +'chart_docspermonth_title' => 'Dokumen baru per bulan', +'chart_docsperstatus_title' => 'Dokumen berdasarkan status', +'chart_docsperuser_title' => 'Dokumen berdasarkan pengguna', +'chart_foldersperuser_title' => 'Folder berdasarkan pengguna', +'chart_selection' => 'Pilih grafik', +'chart_sizeperuser_title' => 'Ruang penyimpanan per pengguna', +'checkedout_file_has_different_version' => '', +'checkedout_file_has_disappeared' => 'Berkas dokumen yang diperiksa telah hilang. Check-in tidak dapat dilakukan.', +'checkedout_file_is_unchanged' => '', +'checkin_document' => 'Mendaftar', +'checkoutpath_does_not_exist' => '', +'checkout_cancel_confirm' => 'Konfirmasi untuk membatalkan checkout', +'checkout_document' => '', +'checkout_is_disabled' => 'Check out dokumen dinonaktifkan dalam konfigurasi', +'choose_attrdef' => 'Harap memilih definisi label', +'choose_attrdefgroup' => 'Pilih kelompok label', +'choose_category' => 'Harap pilih', +'choose_group' => 'Pilih kelompok', +'choose_role' => 'Pilih role', +'choose_target_category' => 'Pilih kategori', +'choose_target_document' => 'Pilih dokumen', +'choose_target_file' => 'Pilih file', +'choose_target_folder' => 'Pilih folder', +'choose_user' => 'Pilih pengguna', +'choose_workflow' => 'Pilih alur kerja', +'choose_workflow_action' => '', +'choose_workflow_state' => 'Pilih status alur kerja', +'class_finfo_missing' => '', +'class_name' => 'Nama kelas', +'clear_cache' => 'Hapus cache', +'clear_clipboard' => 'Hapus Papan klip', +'clear_password' => 'Hapus kata sandi', +'clipboard' => 'Papan klip', +'close' => 'Tutup', +'color' => 'Warna', +'command' => 'Perintah', +'comment' => 'Komentar', +'comment_changed_email' => '', +'comment_for_current_version' => 'Komentar versi', +'configure_extension' => 'Konfigurasi ekstensi', +'confirm_change_owner' => '', +'confirm_clear_cache' => '', +'confirm_create_fulltext_index' => 'Ya, saya ingin membuat ulang indeks teks secara lengkap!', +'confirm_move_document' => '', +'confirm_move_folder' => 'Harap konfirmasi pemindahan folder.', +'confirm_pwd' => 'Konfirmasi Kata Sandi', +'confirm_rm_attr_value' => '', +'confirm_rm_backup' => 'Apakah Anda benar-benar ingin menghapus berkas "[arkname]"?
Hati-hati: Tindakan ini tidak dapat diurungkan.', +'confirm_rm_document' => '', +'confirm_rm_dump' => 'Anda yakin ingin menghapus berkas "[dumpname]"?
Berhati-hatilah: Tindakan ini tidak dapat dibatalkan.', +'confirm_rm_event' => 'Yakin ingin menghapus acara "[name]"?
Hati-hati: Tindakan ini tidak dapat diurungkan.', +'confirm_rm_file' => '', +'confirm_rm_folder' => 'Apakah Anda benar-benar ingin menghapus folder \'[foldername]\' beserta isinya?
Hati-hati: Tindakan ini tidak dapat diurungkan.', +'confirm_rm_folder_files' => '', +'confirm_rm_group' => 'Yakin ingin menghapus kelompok "[groupname]"?
Hati-hati: Tindakan ini tidak dapat diurungkan.', +'confirm_rm_log' => '', +'confirm_rm_task' => 'Harap konfirmasi penghapusan tugas ini.', +'confirm_rm_transmittal' => '', +'confirm_rm_transmittalitem' => 'Konfirmasi penghapusan', +'confirm_rm_user' => 'Apakah Anda benar-benar ingin menghapus pengguna "[username]"?
Hati-hati: Tindakan ini tidak dapat diurungkan.', +'confirm_rm_user_from_processes' => '', +'confirm_rm_version' => 'Apakah Anda benar-benar ingin menghapus versi [versi] dokumen "[documentname]"?
Hati-hati: Tindakan ini tidak dapat diurungkan.', +'confirm_transfer_link_document' => '', +'confirm_transfer_objects' => 'Apakah Anda benar-benar ingin mentransfer dokumen, folder, dll. dari pengguna "[username]"?
Hati-hati: Tindakan ini tidak dapat dibatalkan.', +'confirm_update_transmittalitem' => '', +'content' => 'Isi', +'continue' => 'Melanjutkan', +'converter_new_cmd' => 'Perintah', +'converter_new_mimetype' => 'Mimetype baru', +'copied_to_checkout_as' => '', +'create_download_link' => 'Buat link unduhan', +'create_fulltext_index' => 'Buat fulltext indek', +'create_fulltext_index_warning' => 'Anda akan membuat ulang indeks fulltext. Ini dapat memakan banyak waktu dan mengurangi kinerja sistem Anda secara keseluruhan. Jika Anda benar-benar ingin membuat ulang indeks, harap konfirmasikan operasi Anda.', +'creation_date' => 'Dibuat', +'cs_CZ' => 'Ceko', +'current_password' => 'Kata sandi Sebelumnya', +'current_quota' => '', +'current_state' => 'State saat ini', +'current_version' => 'Versi saat ini', +'daily' => 'Harian', +'databasesearch' => 'Pencarian Basis data', +'database_schema_version' => 'Versi skema basis data', +'data_loading' => '', +'date' => 'Tanggal', +'days' => 'hari', +'debug' => 'Debug', +'december' => 'Desember', +'default_access' => 'Mode akses bawaan', +'default_keywords' => 'Kata kunci yang tersedia', +'definitions' => 'Definisi', +'delete' => 'Hapus', +'details' => 'Rincian', +'details_version' => 'Rincian versi: [version]', +'de_DE' => 'Jerman', +'disable_extension' => 'Nonaktifkan ekstensi', +'disclaimer' => 'Ini adalah area rahasia. Akses hanya diizinkan untuk personel yang berwenang. Setiap pelanggaran akan dituntut sesuai dengan hukum nasional dan internasional.', +'discspace' => 'Ruang penyimpanan', +'docs_in_reception_no_access' => '', +'docs_in_revision_no_access' => 'Dokumen dalam revisi tanpa akses oleh revisor', +'docs_with_missing_revision_date' => '', +'document' => 'Dokumen', +'documentcontent' => 'Isi dokumen', +'documents' => 'Dokumen', +'documents_checked_out_by_you' => '', +'documents_expired' => 'Dokumen kedaluwarsa', +'documents_in_process' => '', +'documents_locked' => 'Dokumen terkunci', +'documents_locked_by_you' => '', +'documents_only' => 'Hanya dokumen', +'documents_rejected' => 'Ditolak', +'documents_to_approve' => 'Dokumen menunggu persetujuan Anda', +'documents_to_correct' => 'Dokumen yang perlu dikoreksi', +'documents_to_process' => 'Dokumen yang perlu diproses', +'documents_to_receipt' => '', +'documents_to_review' => 'Dokumen menunggu tinjauan Anda', +'documents_to_revise' => '', +'documents_to_trigger_workflow' => 'Dokumen dalam alur kerja', +'documents_user_draft' => 'Draf', +'documents_user_expiration' => 'Dokumen kedaluwarsa', +'documents_user_needs_correction' => '', +'documents_user_no_reception' => 'Dokumen tanpa penerimaan', +'documents_user_obsolete' => '', +'documents_user_reception' => 'Dokumen menunggu penerimaan', +'documents_user_rejected' => 'Dokumen yang ditolak', +'documents_user_requiring_attention' => '', +'documents_with_notification' => 'Dokumen dengan notifikasi', +'document_already_checkedout' => 'Dokumen ini sudah diperiksa', +'document_already_locked' => 'Dokumen ini telah dikunci', +'document_attribute_changed_email_body' => '', +'document_attribute_changed_email_body_html' => '

Atribut diubah

+ +

Dokumen: [name]
+Atribut: [attribute_name]
+Nilai awal: [attribute_old_value]
+Nilai Baru: [attribute_new_value]
+Folder induk: [folder_path]
+Pengguna: [username]
+URL: [url]

', +'document_attribute_changed_email_subject' => '', +'document_comment_changed_email' => 'Komentar diubah', +'document_comment_changed_email_body' => '', +'document_comment_changed_email_body_html' => '

Komentar diubah

+ +

Dokumen: [name]
+Komentar awal: [old_comment]
+Komentar baru: [new_comment]
+Folder induk: [folder_path]
+Pengguna: [username]
+URL: [url]

', +'document_comment_changed_email_subject' => '', +'document_content_missing' => 'Konten dokumen telah hilang', +'document_count' => '', +'document_deleted' => 'Dokumen dihapus', +'document_deleted_email' => 'Dokumen dihapus', +'document_deleted_email_body' => 'Dokumen dihapus + +Dokumen: [name] +Folder induk: [folder_path] +Pengguna: [username]', +'document_deleted_email_body_html' => '', +'document_deleted_email_subject' => '[sitename]: [name] - Dokumen dihapus', +'document_duplicate_name' => 'Duplikasi nama dokumen', +'document_files' => 'Lampiran', +'document_has_no_workflow' => 'Dokumen tidak memiliki alur kerja', +'document_infos' => 'Informasi Dokumen', +'document_is_checked_out' => '', +'document_is_checked_out_remove' => 'Dokumen sedang diperiksa. Jika Anda menghapus dokumen, versi check out tidak dapat ditambahkan lagi dan tetap berada di area checkout.', +'document_is_checked_out_update' => '', +'document_is_not_locked' => 'Dokumen ini tidak terkunci', +'document_links' => 'Tautan dokumen', +'document_link_by' => 'Ditautkan oleh', +'document_link_public' => 'Publik', +'document_moved_email' => 'Dokumen dipindahkan', +'document_moved_email_body' => '', +'document_moved_email_body_html' => '

Dokumen dipindahkan

+ +

Dokumen: [name]
+Folder awal: [old_folder_path]
+Folder baru: [new_folder_path]
+Pengguna: [username]
+URL: [url]

', +'document_moved_email_subject' => '[sitename]: [name] - Dokumen dipindahkan', +'document_not_checkedout' => '', +'document_renamed_email' => 'Dokumen diganti namanya', +'document_renamed_email_body' => '', +'document_renamed_email_body_html' => '

Nama dokumen diubah

+ +

Dokumen: [name]
+Folder induk: [folder_path]
+Nama awal: [old_name]
+Pengguna: [username]
+URL: [url]

', +'document_renamed_email_subject' => '', +'document_status_changed_email' => 'Status dokumen berubah', +'document_status_changed_email_body' => 'Status dokumen berubah + +Dokumen: [name] +Status: [status] +Folder induk: [folder_path] +Pengguna: [username] +URL: [url]', +'document_status_changed_email_body_html' => '', +'document_status_changed_email_subject' => '[sitename]: [name] - Status dokumen berubah', +'document_title' => 'Dokumen \'[documentname]\'', +'document_transfered_email_body' => 'Transfer dokumen ke pengguna lain + +Dokumen: [name] +Pemilik awal: [newuser] +Pemilik baru: [olduser] +Folder induk: [folder_path] +Pengguna: [username] +URL: [url]', +'document_transfered_email_body_html' => '', +'document_transfered_email_subject' => '[sitename]: [name] - Transfer Dokumen', +'document_updated_email' => 'Dokumen diperbarui', +'document_updated_email_body' => 'Dokumen diperbarui + +Dokumen: [name] +Versi: [version] +Folder induk: [folder_path] +Pengguna: [username] +Komentar: [comment] +Versi komentar: [version_comment] +URL: [url]', +'document_updated_email_body_html' => '

Dokumen diperbarui

+ +

Dokumen: [name]
+Versi: [version]
+Folder induk: [folder_path]
+Pengguna: [username]
+Komentar: [comment]
+Versi komentar: [version_comment]
+URL: [url]

', +'document_updated_email_subject' => '', +'document_versions' => 'Versi dokumen', +'does_not_expire' => 'Tidak kedaluwarsa', +'does_not_inherit_access_msg' => '', +'download' => 'Unduh', +'download_extension' => 'Unduh ekstensi sebagai file zip', +'download_header_approval_comment' => 'Komentar persetujuan', +'download_header_approval_date' => 'Tanggal persetujuan', +'download_header_approval_state' => 'Status persetujuan', +'download_header_approver' => 'Penyetuju', +'download_header_document_name' => 'Nama dokumen', +'download_header_document_no' => 'Nomor Dokumen', +'download_header_filename' => 'Nama berkas', +'download_header_internal_version' => 'Int. versi', +'download_header_reviewer' => 'Pengulas', +'download_header_review_comment' => '', +'download_header_review_date' => 'Tanggal ulasan', +'download_header_review_state' => 'Status ulasan', +'download_header_state' => '', +'download_links' => 'Unduh link', +'download_link_email_body' => '', +'download_link_email_subject' => 'Unduh link', +'do_no_transfer_to_user' => 'Jangan mentransfer proses ke pengguna', +'do_object_repair' => 'Perbaiki semua folder dan dokumen.', +'do_object_setchecksum' => 'Setel checksum', +'do_object_setfilesize' => '', +'do_object_setfiletype' => 'Setel jenis berkas', +'do_object_unlink' => 'Hapus versi dokumen', +'draft' => 'Draf', +'draft_pending_approval' => 'menunggu persetujuan', +'draft_pending_review' => 'tinjauan tertunda', +'drag_icon_here' => 'Seret folder atau dokumen ke sini!', +'dropfolderdir_missing' => '', +'dropfolder_file' => 'Berkas dari folder drop', +'dropfolder_folder' => '', +'dropfolder_metadata' => 'Metadata berkas yang akan diimpor', +'dropupload' => 'Unggah cepat', +'drop_files_here' => 'Seret berkas kesini!', +'drop_files_here_or_click' => 'Seret berkas di sini atau klik!', +'dump_creation' => '', +'dump_creation_warning' => 'Dengan operasi ini Anda dapat membuat berkas dump konten basis data Anda. Setelah pembuatan berkas dump akan disimpan di folder data server Anda.', +'dump_list' => '', +'dump_remove' => 'Hapus file sampah', +'duplicates' => 'Duplikasi', +'duplicate_content' => '', +'edit' => 'Ubah', +'edit_attributes' => 'Ubah label', +'edit_comment' => 'Ubah komentar', +'edit_default_keywords' => 'Ubah kata kunci', +'edit_document_access' => 'Ubah Hak Akses', +'edit_document_notify' => 'Daftar Notifikasi Dokumen', +'edit_document_props' => 'Ubah dokumen', +'edit_event' => 'Ubah event', +'edit_existing_access' => 'Ubah Daftar Hak Akses', +'edit_existing_attribute_groups' => 'Ubah label kelompok', +'edit_existing_notify' => 'Ubah daftar notifikasi', +'edit_folder_access' => 'Ubah hak akses', +'edit_folder_attrdefgrp' => 'Ubah label kelompok', +'edit_folder_notify' => 'Daftar Pemberitahuan Folder', +'edit_folder_props' => 'Ubah folder', +'edit_group' => 'Ubah kelompok', +'edit_online' => 'Ubah online', +'edit_online_not_allowed' => 'Anda tidak diperbolehkan untuk mengedit file ini karena Anda belum membuat versi terbaru. Cukup unggah versi baru dokumen.', +'edit_online_warning' => 'Menyimpan perubahan Anda akan menimpa konten versi saat ini, bukan membuat versi baru.', +'edit_task' => 'Ubah task', +'edit_transmittal_props' => '', +'edit_user' => 'Ubah pengguna', +'edit_user_details' => 'Ubah detail pengguna', +'edit_version' => 'Ubah versi', +'el_GR' => 'Yunani', +'email' => '', +'email_error_title' => 'Tidak ada email yang dimasukkan', +'email_footer' => 'Anda selalu dapat mengubah pengaturan email Anda menggunakan fitur \'Akun Saya\'', +'email_footer_html' => '

Anda selalu dapat mengubah setelan email menggunakan fitur \'Akun Saya\'

', +'email_header' => 'Ini adalah pesan otomatis dari server DMS.', +'email_header_html' => '', +'email_not_given' => 'Silakan isi alamat email.', +'empty_attribute_group_list' => 'Tidak ada kelompok atribut', +'empty_folder_list' => 'Tidak ada dokumen atau folder', +'empty_list' => 'Tidak ada entri', +'empty_notify_list' => 'Tidak ada entri', +'enable_extension' => 'Aktifkan ekstensi', +'en_GB' => '', +'equal_transition_states' => 'Status awal dan akhir sama', +'error' => 'Galat', +'error_add_aro' => 'Kesalahan saat menambahkan objek permintaan akses', +'error_add_permission' => 'Kesalahan saat menambahkan izin', +'error_cleared_cache' => 'Kesalahan saat membersihkan cache', +'error_document_indexed' => 'Kesalahan pengindeksan dokumen', +'error_edit_task' => 'Kesalahan saat menyimpan tugas', +'error_extension_getlist' => 'Kesalahan mendapatkan daftar ekstensi dari repositori', +'error_importfs' => 'Kesalahan saat mengimpor formulir file system', +'error_no_document_selected' => 'Tidak ada dokumen yang dipilih', +'error_no_folder_selected' => 'Tidak ada folder yang dipilih', +'error_occured' => 'Sebuah kesalahan telah terjadi', +'error_remove_document' => 'Kesalahan saat menghapus dokumen', +'error_remove_folder' => 'Kesalahan saat menghapus folder', +'error_remove_permission' => 'Kesalahan saat menghapus izin', +'error_rm_user_processes' => '', +'error_rm_user_processes_no_docs' => '', +'error_rm_workflow' => 'Kesalahan saat menghapus alur kerja', +'error_rm_workflow_action' => 'Kesalahan saat menghapus tindakan alur kerja', +'error_rm_workflow_state' => '', +'error_toogle_permission' => 'Kesalahan saat mengubah izin', +'error_transfer_document' => 'Kesalahan saat mentransfer dokumen', +'error_trigger_workflow' => 'Kesalahan saat memicu transisi alur kerja', +'error_update_document' => '', +'error_uploading_reviewer_only' => 'Kesalahan saat membuat dokumen. Dokumen memiliki peninjau, tetapi tidak ada pemberi persetujuan.', +'es_ES' => 'Spanyol', +'event_details' => '', +'exclude_items' => 'Kecualikan item ini', +'expired' => 'Kedaluwarsa', +'expired_at_date' => 'Kedaluwarsa pada [datetime]', +'expired_docs_mail_subject' => 'Dokumen kedaluwarsa', +'expired_documents' => 'Dokumen kedaluwarsa', +'expires' => 'Kadaluwarsa', +'expire_by_date' => 'Kadaluwarsa berdasarkan tanggal', +'expire_in_1d' => 'Kadaluwarsa dalam 1 hari', +'expire_in_1h' => 'Kadaluwarsa dalam 1 jam', +'expire_in_1m' => 'Kadaluwarsa dalam 1 bulan', +'expire_in_1w' => 'Kadaluwarsa dalam 1 minggu', +'expire_in_1y' => 'Kadaluwarsa dalam 1 tahun', +'expire_in_2h' => 'Kadaluwarsa dalam 2 jam', +'expire_in_2y' => 'Kadaluwarsa dalam 2 tahun', +'expire_in_3y' => 'Kadaluwarsa dalam 3 tahun', +'expire_today' => 'Kadaluwarsa hari ini', +'expire_tomorrow' => 'Kadaluwarsa besok', +'expiry_changed_email' => 'Tanggal kedaluwarsa berubah', +'expiry_changed_email_body' => 'Tanggal kedaluwarsa berubah + +Dokumen: [name] +Folder induk: [folder_path] +Pengguna: [username] +URL: [url]', +'expiry_changed_email_body_html' => '', +'expiry_changed_email_subject' => '[sitename]: [name] - Tanggal kedaluwarsa berubah', +'export' => 'Ekspor', +'export_user_list_csv' => 'Ekspor pengguna sebagai CSV', +'extension_archive' => 'Ekstensi', +'extension_changelog' => '', +'extension_is_off_now' => 'Perpanjangan tidak aktif sekarang', +'extension_is_on_now' => '', +'extension_loading' => 'Memuat ekstensi...', +'extension_manager' => 'Kelola ekstensi', +'extension_mgr_error_upload' => '', +'extension_mgr_installed' => 'Terpasang', +'extension_mgr_no_toggle' => '', +'extension_mgr_no_upload' => '', +'extension_mgr_no_zipfile' => 'Ekstensi yang diunggah bukan berkas zip', +'extension_mgr_repository' => 'Tersedia', +'extension_mgr_upload_disabled' => 'Mengunggah ekstensi baru tidak dimungkinkan karena dinonaktifkan di konfigurasi.', +'extension_missing_name' => '', +'extension_toggle_error' => 'Tidak dapat mengaktifkan ekstensi', +'extension_version_list' => 'Versi', +'february' => 'Februari', +'file' => 'Berkas', +'files' => '', +'files_deletion' => 'Penghapusan berkas', +'files_deletion_warning' => '', +'files_loading' => 'Harap tunggu, hingga daftar berkas dimuat ...', +'filetype' => '', +'file_size' => 'Ukuran berkas', +'filter_for_documents' => '', +'filter_for_documents_and_folders' => '', +'filter_for_folders' => 'Filter tambahan untuk folder', +'folder' => '', +'folders' => 'Folder', +'folders_and_documents_statistic' => '', +'folders_with_notification' => 'Folder dengan pemberitahuan', +'folder_attribute_changed_email_body' => 'Label berubah + +Folder: [name] +Label: [attribute_name] +Nilai sebelumnya: [attribute_old_value] +Nilai baru: [attribute_new_value] +Folder indux: [folder_path] +Pengguna: [username] +URL: [url]', +'folder_attribute_changed_email_body_html' => '', +'folder_attribute_changed_email_subject' => '[sitename]: [name] - Atribut berubah', +'folder_comment_changed_email' => '', +'folder_comment_changed_email_body' => 'Komentar diubah + +Folder: [name] +Komentar awal: [old_comment] +Komentar baru: [new_comment] +Folder induk: [folder_path] +Pengguna: [username] +URL: [url]', +'folder_comment_changed_email_body_html' => '', +'folder_comment_changed_email_subject' => '[sitename]: [name] - Komentar diubah', +'folder_contents' => 'Isi Folder', +'folder_deleted_email' => 'Folder telah dihapus', +'folder_deleted_email_body' => 'Folder telah dihapus +Folder: [name] +Folder induk: [folder_path] +Pengguna: [username] +URL: [url]', +'folder_deleted_email_body_html' => '', +'folder_deleted_email_subject' => '[sitename]: [name] - Folder dihapus', +'folder_infos' => 'Informasi Folder', +'folder_moved_email' => 'Folder telah dipindahkan', +'folder_moved_email_body' => 'Pemindahan folder + +Folder: [name] +Folder awal: [old_folder_path] +Folder baru: [new_folder_path] +Pengguna: [username] +URL: [url]', +'folder_moved_email_body_html' => '', +'folder_moved_email_subject' => '[sitename]: [name] - Folder dipindahkan', +'folder_renamed_email' => 'Folder berganti nama', +'folder_renamed_email_body' => '', +'folder_renamed_email_body_html' => '

Nama folder diganti

+ +

Folder: [name]
+Folder induk: [folder_path]
+Nama awal: [old_name]
+Pengguna: [username]
+URL: [url]

', +'folder_renamed_email_subject' => '', +'folder_title' => '', +'foot_note' => '', +'force_update' => 'Memperbarui', +'friday' => 'Jumat', +'friday_abbr' => 'Jumat', +'from' => 'Dari', +'fr_FR' => 'Perancis', +'fullsearch' => '', +'fullsearch_hint' => 'Gunakan indeks fulltext', +'fulltextsearch_disabled' => '', +'fulltext_converters' => 'Konversi dokumen indeks', +'fulltext_info' => '', +'func_proc_open_missing' => 'proc_open diperlukan untuk mengindeks konten dokumen. Tanpa fungsi ini hanya metadata yang akan diindeks.', +'global_attributedefinitiongroups' => '', +'global_attributedefinitions' => 'Atribut', +'global_default_keywords' => 'Kata kunci global', +'global_document_categories' => 'Kategori', +'global_workflows' => 'Alur kerja', +'global_workflow_actions' => '', +'global_workflow_states' => 'Status alur kerja', +'group' => 'Kelompok', +'groups' => 'Kelompok', +'group_approval_summary' => '', +'group_exists' => 'Kelompok telah tersedia.', +'group_info' => 'Informasi Kelompok', +'group_is_mandatory_approver' => '', +'group_is_mandatory_reviewer' => '', +'group_management' => 'Manajemen Kelompok', +'group_members' => 'Anggota kelompok', +'group_previously_removed_from_approvers' => '', +'group_previously_removed_from_recipients' => '', +'group_previously_removed_from_reviewers' => '', +'group_previously_removed_from_revisors' => '', +'group_receipt_summary' => '', +'group_review_removed' => 'Perubahan status, karena ulasan kelompok [name] telah dihapus.', +'group_review_summary' => '', +'group_revision_summary' => 'Ringkasan revisi kelompok', +'guest_login' => '', +'guest_login_disabled' => 'Login tamu dinonaktifkan.', +'hash' => '', +'help' => 'Bantuan', +'home_folder' => '', +'hook_name' => 'Nama pengait', +'hourly' => 'Per jam', +'hours' => 'jam', +'hr_HR' => 'Kroasia', +'human_readable' => '', +'hu_HU' => 'Hungaria', +'id' => '', +'identical_version' => 'Versi baru identik dengan versi saat ini.', +'id_ID' => 'Bahasa Indonesia', +'import' => 'Impor', +'importfs' => '', +'import_extension' => 'Impor ekstensi', +'import_fs' => 'Impor dari filesystem', +'import_fs_warning' => '', +'import_users' => 'Impor pengguna', +'import_users_addnew' => 'Tambah pengguna baru', +'import_users_update' => 'Perbarui pengguna yang ada', +'include_content' => '', +'include_documents' => 'Sertakan dokumen', +'include_subdirectories' => 'Sertakan subdirektori', +'indexing_tasks_in_queue' => '', +'index_converters' => '', +'index_document_added' => 'Dokumen ditambahkan', +'index_document_unchanged' => 'Dokumen tidak berubah', +'index_document_updated' => 'Dokumen diperbarui', +'index_done' => 'Selesai', +'index_error' => 'Galat', +'index_folder' => 'Indeks folder', +'index_folder_added' => 'Folder ditambahkan', +'index_folder_unchanged' => '', +'index_folder_updated' => 'Folder diperbarui', +'index_no_content' => '', +'index_pending' => 'Ditunda', +'index_waiting' => 'Mengunggu', +'individuals' => 'Perorangan', +'individuals_in_groups' => '', +'ind_review_removed' => 'Perubahan status, karena ulasan pengguna [name] telah dihapus.', +'info_recipients_tab_not_released' => '', +'info_rm_user_from_processes_user' => 'Hanya tugas yang tidak disentuh yang dapat ditransfer ke pengguna lain. Tugas yang telah diurus, hanya akan menambahkan item dalam riwayat, seolah-olah pengguna telah dihapus.', +'inherited' => '', +'inherits_access_copy_msg' => 'Salin daftar akses yang diwarisi', +'inherits_access_empty_msg' => 'Mulai dengan daftar akses kosong', +'inherits_access_msg' => 'Akses sedang diwarisi.', +'installed_apache_extensions' => 'Ekstensi apache yang diinstal', +'installed_php_extensions' => 'Ekstensi php yang diinstal', +'internal_error' => 'Kesalahan internal', +'internal_error_exit' => 'Kesalahan internal. Tidak dapat menyelesaikan permintaan.', +'invalid_access_mode' => 'Mode Akses Tidak Valid', +'invalid_action' => 'Tindakan Tidak Valid', +'invalid_approval_status' => 'Status Persetujuan Tidak Valid', +'invalid_create_date_end' => 'Tanggal akhir tidak valid untuk rentang tanggal pembuatan.', +'invalid_create_date_start' => 'Tanggal mulai tidak valid untuk rentang tanggal pembuatan.', +'invalid_doc_id' => 'ID Dokumen Tidak Valid', +'invalid_dropfolder_folder' => '', +'invalid_expiration_date_end' => 'Tanggal akhir tidak valid untuk rentang tanggal kedaluwarsa.', +'invalid_expiration_date_start' => 'Tanggal mulai tidak valid untuk rentang tanggal kedaluwarsa.', +'invalid_file_id' => 'ID berkas tidak valid', +'invalid_folder_id' => 'ID Folder Tidak Valid', +'invalid_group_id' => 'ID Kelompok Tidak Valid', +'invalid_link_id' => 'Pengidentifikasi tautan tidak valid', +'invalid_request_token' => 'Permintaan Token Tidak Valid', +'invalid_review_status' => 'Status Tinjauan Tidak Valid', +'invalid_sequence' => '', +'invalid_status' => 'Status Dokumen Tidak Valid', +'invalid_target_doc_id' => '', +'invalid_target_folder' => 'ID Folder Target Tidak Valid', +'invalid_user_id' => '', +'invalid_version' => 'Versi Dokumen Tidak Valid', +'in_folder' => 'Dalam', +'in_revision' => 'Dalam revisi', +'in_workflow' => 'Dalam alur kerja', +'iptc_metadata' => '', +'is_disabled' => 'Nonaktifkan akun', +'is_hidden' => 'Sembunyikan dari daftar pengguna', +'it_IT' => 'Italia', +'january' => 'Januari', +'js_form_error' => '', +'js_form_errors' => 'Formulir masih mengandung # errors.', +'js_invalid_email' => '', +'js_no_approval_group' => 'Silakan pilih kelompok persetujuan', +'js_no_approval_status' => 'Silakan pilih status persetujuan', +'js_no_comment' => 'Tidak ada komentar', +'js_no_currentpwd' => 'Harap masukkan kata sandi sebelumnya', +'js_no_document' => 'Harap pilih dokumen', +'js_no_email' => '', +'js_no_file' => 'Harap pilih berkas', +'js_no_folder' => 'Harap pilih folder', +'js_no_keywords' => 'Tentukan beberapa kata kunci', +'js_no_login' => 'Harap masukkan nama pengguna', +'js_no_name' => 'Silakan ketik nama', +'js_no_override_status' => '', +'js_no_pwd' => 'Anda perlu mengetikkan kata sandi Anda', +'js_no_query' => '', +'js_no_review_group' => 'Silakan pilih kelompok ulasan', +'js_no_review_status' => 'Silakan pilih status ulasan', +'js_pwd_not_conf' => 'Kata sandi dan konfirmasi kata sandi tidak sama', +'js_select_user' => 'Harap pilih pengguna', +'js_select_user_or_group' => '', +'js_unequal_passwords' => 'Kata sandi tidak sama', +'july' => 'Juli', +'june' => 'Juni', +'keep' => 'Jangan merubah', +'keep_doc_status' => 'Simpan status dokumen', +'keywords' => 'Kata kunci', +'keywords_loading' => '', +'keyword_exists' => 'Kata kunci sudah ada', +'ko_KR' => 'Korea', +'language' => 'Bahasa', +'lastaccess' => 'Akses terakhir', +'last_update' => 'Pembaharuan Terakhir', +'legend' => 'Legenda', +'librarydoc' => 'Dokumen dari perpustakaan', +'linked_documents' => 'Dokumen Terkait', +'linked_files' => 'Lampiran', +'linked_to_current_version' => '', +'linked_to_document' => 'Tertaut ke dokumen', +'linked_to_this_version' => 'Tertaut ke versi ini', +'link_alt_updatedocument' => '', +'link_document' => 'Tautan dokumen', +'link_to_version' => 'Lampirkan ke versi', +'list_access_rights' => 'Daftar semua hak akses ...', +'list_contains_no_access_docs' => '', +'list_hooks' => 'Daftar hooks', +'list_notification_services' => '', +'list_tasks' => 'Daftar tasks', +'local_file' => 'Berkas lokal', +'locked_by' => 'Dikunci oleh', +'lock_document' => 'Kunci', +'lock_message' => 'Dokumen ini dikunci oleh [username]. Hanya pengguna yang berwenang yang dapat membuka kunci dokumen ini.', +'lock_status' => 'Status', +'logfile' => 'Berkas Log', +'logfile_loading' => '', +'login' => 'Masuk', +'login_disabled_text' => 'Akun Anda dinonaktifkan, mungkin karena terlalu banyak login yang gagal.', +'login_disabled_title' => 'Akun dinonaktifkan', +'login_error_text' => '', +'login_error_title' => 'Kesalahan akses', +'login_not_given' => 'Tidak ada nama pengguna yang diberikan', +'login_ok' => '', +'login_restrictions_apply' => 'Login gagal karena dibatasi', +'logout' => 'Keluar', +'log_management' => '', +'lo_LA' => 'Laos', +'malformed_expiration_date' => 'Tanggal kedaluwarsa salah format', +'manager' => '', +'manager_of_group' => 'Anda adalah manager kelompok ini', +'mandatory_approvergroups' => '', +'mandatory_approvergroup_no_access' => 'Mandatory group of approvers \'[group]\' tidak memiliki hak akses yang memadai.', +'mandatory_approvers' => '', +'mandatory_approver_no_access' => 'Mandatory approver \'[user]\' tidak memiliki hak akses yang memadai.', +'mandatory_reviewergroups' => '', +'mandatory_reviewergroup_no_access' => 'Mandatory group of reviewers \'[group]\' tidak memiliki hak akses yang memadai.', +'mandatory_reviewers' => '', +'mandatory_reviewer_no_access' => 'Mandatory reviewer \'[user]\' memiliki hak akses yang tidak memadai.', +'march' => 'Maret', +'mark_document' => '', +'mark_folder' => '', +'max_upload_size' => 'Ukuran maksimum unggahan', +'may' => 'Mei', +'menu_dropfolder' => 'Seret folder', +'menu_upload_from_dropfolder' => 'Impor berkas ini', +'message' => 'Pesan', +'mimetype' => '', +'minutes' => 'menit', +'misc' => 'Lain-lain', +'missing_checksum' => '', +'missing_file' => 'Berkas hilang', +'missing_filesize' => '', +'missing_func_class_note' => 'Catatan', +'missing_php_extensions' => 'Ekstensi php tidak ada', +'missing_php_functions_and_classes' => '', +'missing_reception' => 'Resepsi hilang', +'missing_request_object' => '', +'missing_transition_user_group' => 'Pengguna/kelompok tidak ada untuk transisi', +'monday' => 'Senin', +'monday_abbr' => 'Senin', +'monthly' => 'Bulanan', +'month_view' => 'Tampilan bulan', +'more_objects_loading' => '', +'move' => 'Pindah', +'move_clipboard' => 'Pindah clipboard', +'move_document' => 'Pindah dokumen', +'move_folder' => 'Pindah Folder', +'my_account' => 'Akun Saya', +'my_documents' => 'Dokumen Saya', +'my_transmittals' => 'Transmisi Saya', +'name' => 'Nama', +'nav_brand_admin_tools' => '', +'nav_brand_calendar' => 'Kalender', +'nav_brand_my_account' => 'Akun Saya', +'nav_brand_my_documents' => 'Dokumen Saya', +'nav_brand_view_document' => 'Dokumen', +'nav_brand_view_folder' => 'Folder', +'nb_NO' => 'Norwegia', +'needs_correction' => 'Memerlukan koreksi', +'needs_workflow_action' => 'Dokumen ini membutuhkan perhatian Anda. Silakan periksa tab alur kerja.', +'network_drive' => '', +'never' => 'jangan pernah', +'new' => 'Baru', +'new_attrdef' => 'Tambah definisi label', +'new_default_keywords' => 'Tambah kata kunci', +'new_default_keyword_category' => 'Tambah kategori', +'new_document_category' => 'Tambah kategori', +'new_document_email' => 'Tambah dokumen', +'new_document_email_body' => 'Tambah dokumen +Name: [name] +Folder induk: [folder_path] +Comment: [comment] +Version comment: [version_comment] +Pengguna: [username] +URL: [url]', +'new_document_email_body_html' => '

Dokumen baru

+ +

Nama: [name]
+Folder induk: [folder_path]
+Komentar: [comment]
+Versi komentar: [version_comment]
+Pengguna: [username]
+URL: [url]

', +'new_document_email_subject' => '[sitename]: [folder_name] - Dokumen baru', +'new_file_email' => 'Lampiran baru', +'new_file_email_body' => 'Lampiran baru + +Nama: [name] +Dokumen: [document] +Komentar: [comment] +Pengguna: [username] +URL: [url]', +'new_file_email_body_html' => '', +'new_file_email_subject' => '[sitename]: [document] - Lampiran baru', +'new_folder' => 'Folder baru', +'new_password' => 'Kata sandi baru', +'new_subfolder_email' => 'Folder baru', +'new_subfolder_email_body' => 'Folder baru + +Nama: [name] +Folder induk: [folder_path] +Komentar: [comment] +Pengguna: [username] +URL: [url]', +'new_subfolder_email_body_html' => '', +'new_subfolder_email_subject' => '[sitename]: [name] - Folder baru', +'new_user_image' => 'Gambar baru', +'next_revision_abbr' => 'Revisi Berikutnya.', +'next_state' => '', +'nl_NL' => 'Belanda', +'no' => 'Tidak', +'notification' => 'Notifikasi', +'notify_added_email' => 'Anda telah ditambahkan ke daftar pemberitahuan', +'notify_added_email_body' => 'Ditambahkan ke daftar notifikasi. + +Nama: [name] +Folder induk: [folder_path] +Pengguna: [username] +URL: [url]', +'notify_added_email_body_html' => '

Ditambahkan ke daftar notifikasi.

+

Nama: [name]
+Folder induk: [folder_path]
+Pengguna: [username]
+URL: [url]

', +'notify_added_email_subject' => '[sitename]: [name] - Ditambahkan ke daftar notifikasi', +'notify_deleted_email' => 'Anda telah dihapus dari daftar pemberitahuan', +'notify_deleted_email_body' => '', +'notify_deleted_email_body_html' => '

Dihapus dari daftar notifikasi

+

Nama: [name]
+Folder induk: [folder_path]
+Pengguna: [username]
+URL: [url]

', +'notify_deleted_email_subject' => '', +'not_subscribed' => 'Tidak berlangganan', +'november' => 'November', +'now' => 'sekarang', +'no_action' => 'Tidak ada tindakan yang diperlukan', +'no_approval_needed' => 'Tidak ada persetujuan yang tertunda.', +'no_attached_files' => '', +'no_attributes_defined' => 'Anda belum membuat atribut khusus apa pun.', +'no_attribute_definitions' => '', +'no_backup_dir' => 'Direktori cadangan tidak disetel.', +'no_current_version' => '', +'no_default_keywords' => 'Tidak ada kata kunci yang tersedia', +'no_docs_checked_out' => 'Tidak ada dokumen yang diperiksa', +'no_docs_draft' => '', +'no_docs_expired' => 'Tidak ada dokumen yang kedaluwarsa', +'no_docs_locked' => '', +'no_docs_needs_correction' => 'Tidak ada dokumen, yang perlu diperbaiki', +'no_docs_obsolete' => '', +'no_docs_rejected' => 'Tidak ada dokumen yang ditolak.', +'no_docs_to_approve' => 'Saat ini tidak ada dokumen yang memerlukan persetujuan.', +'no_docs_to_look_at' => 'Tidak ada dokumen yang perlu diperhatikan.', +'no_docs_to_receipt' => 'Tidak diperlukan tanda terima dokumen', +'no_docs_to_review' => 'Saat ini tidak ada dokumen yang memerlukan peninjauan.', +'no_docs_to_revise' => 'Saat ini tidak ada dokumen yang perlu direvisi.', +'no_email_or_login' => 'Login dan email harus dimasukkan', +'no_fulltextindex' => 'Tidak ada indeks teks lengkap yang tersedia', +'no_groups' => 'Tidak ada kelompok', +'no_group_members' => 'Kelompok ini tidak memiliki anggota', +'no_linked_files' => 'Tidak ada berkas yang ditautkan', +'no_previous_versions' => 'Tidak ada versi lain yang ditemukan', +'no_receipt_needed' => 'Saat ini tidak ada dokumen yang memerlukan konfirmasi tanda terima.', +'no_review_needed' => 'Tidak ada tinjauan yang tertunda.', +'no_revision_date' => '', +'no_revision_needed' => 'Tidak ada revisi yang tertunda.', +'no_revision_planed' => 'Tidak ada revisi dokumen yang dijadwalkan', +'no_update_cause_locked' => 'Oleh karena itu, Anda tidak dapat memperbarui dokumen ini. Silakan hubungi pengguna yang menguncinya.', +'no_user_image' => 'Tidak ada gambar yang ditemukan', +'no_version_check' => 'Memeriksa versi baru SeedDMS telah gagal! Ini bisa disebabkan oleh allow_url_fopen disetel ke 0 dalam konfigurasi php anda.', +'no_version_modification' => 'Tidak ada versi yang dimodifikasi', +'no_workflows' => 'Anda belum membuat alur kerja', +'no_workflow_available' => 'Tidak ada alur kerja yang tersedia', +'objectcheck' => 'Pemeriksaan Folder/Dokumen', +'object_check_critical' => 'Kesalahan kritis', +'object_check_warning' => 'Peringatan', +'obsolete' => 'Usang', +'october' => 'Oktober', +'old' => 'Lawas', +'only_jpg_user_images' => 'Hanya gambar .jpg-images yang dapat digunakan sebagai gambar pengguna', +'operation_disallowed' => 'Operasi tidak diizinkan', +'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' => 'Pengurutan berdasarkan urutan dimatikan dalam pengaturan. Jika Anda ingin parameter ini berpengaruh, Anda harus mengaktifkannya kembali.', +'original_filename' => 'Nama berkas asli', +'overall_indexing_progress' => 'Kemajuan pengindeksan keseluruhan', +'owner' => 'Pemilik', +'ownership_changed_email' => 'Pemilik diterapkan', +'ownership_changed_email_body' => 'Pemilik diterapkan +Dokumen: [name] +Folder induk: [folder_path] +Pemilik sebelumnya: [old_owner] +Pemilik baru: [new_owner] +Pengguna: [username] +URL: [url]', +'ownership_changed_email_body_html' => '

Pemilik berubah

+ +

Dokumen: [name]
+Folder induk: [folder_path]
+Pemilik lama: [old_owner]
+Pemilik baru: [new_owner]
+Pengguna: [username]
+URL: [url]

', +'ownership_changed_email_subject' => '[sitename]: [name] - Pemilik diterapkan', +'password' => 'Kata sandi', +'password_already_used' => 'Kata sandi telah digunakan', +'password_expiration' => 'Kata sandi telah kadaluwarsa', +'password_expiration_text' => 'Kata sandi Anda telah kedaluwarsa. Silakan pilih yang baru sebelum Anda dapat melanjutkan menggunakan SeedDMS.', +'password_expired' => 'Kata sandi telah kadaluwarsa', +'password_expires_in_days' => 'Kata sandi kadaluwarsa dalam %s hari.', +'password_forgotten' => 'Lupa kata sandi', +'password_forgotten_email_body' => 'Pengguna SeedDMS yang terhormat, + +kami telah menerima permintaan untuk mengubah kata sandi Anda. + +Ini dapat dilakukan dengan mengklik link berikut: + +[url_prefix]out/out.ChangePassword.php?hash=[hash] + +Jika Anda masih mengalami masalah untuk login, silakan hubungi administrator Anda.', +'password_forgotten_email_body_html' => '

Pengguna SeedDMS yang terhormat,

+ +

kami telah menerima permintaan untuk mengubah kata sandi Anda.

+ +

Hal ini dapat dilakukan dengan mengeklik tautan berikut:

+ +

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

+ +

Jika Anda masih mengalami masalah untuk login, silakan hubungi administrator Anda.

', +'password_forgotten_email_subject' => '[sitename]: Lupa kata sandi', +'password_forgotten_invalid_hash' => '', +'password_forgotten_invalid_hash_title' => '', +'password_forgotten_send_hash' => 'Petunjuk tentang cara melanjutkan telah dikirim ke alamat email pengguna', +'password_forgotten_text' => 'Isi formulir di bawah ini dan ikuti petunjuk dalam email yang akan dikirimkan kepada Anda.', +'password_forgotten_title' => 'Kirim kata sandi', +'password_mismatch_error' => 'Kata sandi tidak cocok', +'password_mismatch_error_title' => 'Kata sandi tidak cocok', +'password_repeat' => 'Ulangi kata sandi', +'password_send' => 'Kata sandi terkirim', +'password_send_text' => 'Kata sandi baru Anda telah dikirim ke alamat email yang diberikan, jika login dan email cocok dengan pengguna yang ada. Jika Anda tidak menerima email dalam beberapa menit berikutnya, pastikan login dan email sudah benar dan mulai ulang prosesnya lagi.', +'password_strength' => 'Kekuatan kata sandi', +'password_strength_insuffient' => 'Kekuatan kata sandi tidak cukup', +'password_wrong' => 'Kata sandi salah', +'pdf_converters' => 'Konverter PDF', +'pending_approvals' => 'Persetujuan tertunda', +'pending_receipt' => 'Tanda terima tertunda', +'pending_reviews' => 'Ulasan tertunda', +'pending_revision' => 'Revisi tertunda', +'pending_workflows' => 'Alur kerja yang tertunda', +'personal_default_keywords' => 'Daftar kata kunci pribadi', +'php_info' => 'Informasi tentang PHP', +'pl_PL' => 'Polandia', +'possible_substitutes' => '', +'preset_expires' => 'Kedaluwarsa yang telah ditentukan sebelumnya', +'preview' => 'Pratinjau', +'preview_converters' => 'Pratinjau konversi dokumen', +'preview_images' => 'Pratinjau gambar', +'preview_markdown' => 'Markdown', +'preview_pdf' => 'Lihat sebagai PDF', +'preview_plain' => 'Text', +'previous_state' => '', +'previous_versions' => 'Versi sebelumnya', +'process' => 'Proses', +'process_without_user_group' => 'Proses tanpa pengguna/kelompok', +'pt_BR' => 'Portugis (BR)', +'quota' => 'Kuota', +'quota_exceeded' => '', +'quota_is_disabled' => 'Dukungan kuota saat ini dinonaktifkan di pengaturan. Menetapkan kuota pengguna tidak akan berpengaruh hingga diaktifkan kembali.', +'quota_warning' => '', +'receipts_accepted' => '[no_receipts] kuitansi sudah diterima', +'receipts_accepted_latest' => '(menjadi [no_receipts] dalam versi terbaru)', +'receipts_not_touched' => '', +'receipts_not_touched_latest' => '(menjadi [no_receipts] dalam versi terbaru)', +'receipts_rejected' => '', +'receipts_rejected_latest' => '(menjadi [no_receipts] dalam versi terbaru)', +'receipts_without_group' => 'Tanda terima tanpa kelompok', +'receipts_without_user' => 'Tanda terima tanpa pengguna', +'receipt_deletion_email_body' => '', +'receipt_deletion_email_body_html' => '

Pengguna telah dihapus dari daftar penerima.

+ +

Dokumen: [name]
+Versi: [version]
+Folder induk: [folder_path]
+Penerima: [recipient]
+Pengguna: [username]
+URL: [url]

', +'receipt_deletion_email_subject' => '', +'receipt_log' => 'Log Penerimaan', +'receipt_request_email_body' => 'Permintaan penerimaan + +Dokumen: [name] +Versi: [version] +Folder induk: [folder_path] +Pengguna: [username] +URL: [url]', +'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' => '[sitename]: [name] - Tanda terima yang dikirimkan', +'receipt_summary' => 'Ringkasan tanda terima', +'receipt_update_failed' => 'Mengakui penerimaan gagal', +'recent_uploads' => 'Unggahan Terbaru', +'reception' => 'Penerimaan', +'reception_acknowleged' => 'Penerimaan diakui', +'reception_noaction' => 'Tidak ada tindakan', +'reception_rejected' => 'Penerimaan ditolak', +'recipients' => 'Penerima', +'recipient_already_removed' => '', +'record_type' => '', +'redraw' => 'Gambar ulang', +'refresh' => 'Segarkan', +'rejected' => 'Ditolak', +'released' => '', +'removed_approver' => '', +'removed_file_email' => 'Lampiran yang dihapus', +'removed_file_email_body' => 'Dokumen lampiran yang dihapus + +Dokumen: [document] +Pengguna: [username] +URL: [url]', +'removed_file_email_body_html' => '', +'removed_file_email_subject' => '', +'removed_recipient' => 'telah dihapus dari daftar penerima.', +'removed_reviewer' => 'telah dihapus dari daftar pengulas.', +'removed_revisor' => 'telah dihapus dari daftar revisor.', +'removed_workflow_email_body' => '', +'removed_workflow_email_body_html' => '', +'removed_workflow_email_subject' => '', +'removeFolderFromDropFolder' => 'Hapus folder setelah diimpor', +'remove_approval_log' => 'Hapus persetujuan', +'remove_marked_files' => 'Hapus file yang ditandai', +'remove_review_log' => 'Hapus ulasan', +'remove_task' => '', +'repaired' => 'diperbaiki', +'repairing_objects' => 'Memperbaiki dokumen dan folder.', +'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' => 'Tidak ada akses ke', +'results_page' => '', +'return_from_subworkflow' => '', +'return_from_subworkflow_email_body' => '', +'return_from_subworkflow_email_body_html' => '', +'return_from_subworkflow_email_subject' => '', +'reverse_links' => 'Dokumen, yang memiliki tautan ke dokumen saat ini', +'reviewers' => 'Pengulas', +'reviewer_already_assigned' => 'Pengguna sudah ditetapkan sebagai pengulas', +'reviewer_already_removed' => '', +'reviews_accepted' => '[no_reviews] ulasan sudah diterima', +'reviews_accepted_latest' => '', +'reviews_not_touched' => '', +'reviews_not_touched_latest' => '', +'reviews_rejected' => '', +'reviews_rejected_latest' => '', +'reviews_without_group' => 'Ulasan tanpa kelompok', +'reviews_without_user' => 'Ulasan tanpa pengguna', +'review_deletion_email' => '', +'review_deletion_email_body' => '', +'review_deletion_email_body_html' => '', +'review_deletion_email_subject' => '', +'review_file' => 'Berkas', +'review_group' => 'Kelompok ulasan', +'review_log' => 'Tinjau log', +'review_request_email' => 'Tinjau permintaan', +'review_request_email_body' => '', +'review_request_email_body_html' => '', +'review_request_email_subject' => '', +'review_status' => 'Tinjau status', +'review_submit_email' => 'Ulasan yang dikirim', +'review_submit_email_body' => '', +'review_submit_email_body_html' => '', +'review_submit_email_subject' => '', +'review_summary' => 'Rangkuman Ulasan', +'review_update_failed' => 'Terjadi kesalahan saat memperbarui status tinjauan. Pembaharuan gagal.', +'revise_document' => 'Merevisi dokumen', +'revise_document_on' => 'Revisi versi dokumen berikutnya pada [date]', +'revision' => 'Revisi', +'revisions_accepted' => '', +'revisions_accepted_latest' => '', +'revisions_not_touched' => '', +'revisions_not_touched_latest' => '', +'revisions_pending' => '', +'revisions_pending_latest' => '', +'revisions_rejected' => '', +'revisions_rejected_latest' => '', +'revisions_without_group' => 'Revisi tanpa kelompok', +'revisions_without_user' => '', +'revision_date' => 'Tanggal revisi', +'revision_log' => '', +'revision_request_email_body' => '', +'revision_request_email_body_html' => '', +'revision_request_email_subject' => '', +'revision_status' => 'Status', +'revision_submit_email_body' => '', +'revision_submit_email_body_html' => '', +'revision_submit_email_subject' => '', +'revision_summary' => 'Ringkasan revisi', +'revisors' => '', +'revisor_already_assigned' => 'Pengguna sudah ditetapkan sebagai revisor.', +'revisor_already_removed' => '', +'rewind_workflow' => '', +'rewind_workflow_email_body' => '', +'rewind_workflow_email_body_html' => '', +'rewind_workflow_email_subject' => '', +'rewind_workflow_warning' => 'Jika Anda memundurkan alur kerja ke keadaan awalnya, maka seluruh log alur kerja untuk dokumen ini akan dihapus dan tidak dapat dipulihkan.', +'rm_attrdef' => 'Hapus definisi atribut', +'rm_attrdefgroup' => '', +'rm_attr_value' => 'Hapus nilai', +'rm_default_keyword_category' => 'Hapus kategori', +'rm_document' => 'Hapus dokumen', +'rm_document_category' => 'Hapus kategori', +'rm_event' => 'Hapus event', +'rm_file' => 'Hapus berkas', +'rm_folder' => 'Hapus folder', +'rm_from_clipboard' => 'Hapus dari papan klip', +'rm_group' => 'Hapus kelompok ini', +'rm_role' => 'Hapus peran ini', +'rm_task' => 'Hapus tugas', +'rm_transmittal' => '', +'rm_transmittalitem' => 'Hapus item', +'rm_user' => 'Hapus pengguna', +'rm_user_from_processes' => '', +'rm_version' => 'Hapus versi', +'rm_workflow' => 'Hapus Alur Kerja', +'rm_workflow_action' => 'Hapus Tindakan Alur Kerja', +'rm_workflow_state' => '', +'rm_workflow_warning' => '', +'role' => 'Peran', +'role_admin' => '', +'role_guest' => 'Tamu', +'role_info' => 'Informasi', +'role_management' => 'Manajemen peran', +'role_name' => 'Nama', +'role_type' => 'Tipe peran', +'role_user' => 'Pengguna', +'ro_RO' => 'Rumania', +'run_subworkflow' => '', +'run_subworkflow_email_body' => '', +'run_subworkflow_email_body_html' => '', +'run_subworkflow_email_subject' => '', +'ru_RU' => 'Rusia', +'saturday' => 'Sabtu', +'saturday_abbr' => 'Sabtu', +'save' => 'Simpan', +'scheduler_class' => '', +'scheduler_class_description' => 'Deskripsi', +'scheduler_class_parameter' => '', +'scheduler_class_tasks' => '', +'scheduler_task_mgr' => 'Penjadwal', +'search' => 'Pencarian', +'search_fulltext' => 'Pencarian dalam fulltext', +'search_in' => 'Pencarian dalam', +'search_mode' => 'Mode pencarian', +'search_mode_and' => 'semua kata', +'search_mode_documents' => 'Hanya dokumen', +'search_mode_folders' => 'Hanya Folder', +'search_mode_or' => 'setidaknya satu kata', +'search_no_results' => '', +'search_query' => 'Pencarian untuk', +'search_report' => 'Ditemukan [doccount] dokumen dan [foldercount] folder dalam [searchtime] detik.', +'search_report_fulltext' => 'Ditemukan [doccount] dokumen', +'search_resultmode' => 'Hasil pencarian', +'search_resultmode_both' => 'Dokumen dan folder', +'search_results' => 'Hasil pencarian', +'search_results_access_filtered' => 'Hasil pencarian mungkin berisi konten yang aksesnya telah ditolak.', +'search_time' => '', +'seconds' => 'detik', +'seeddms_info' => 'Informasi tentang SeedDMS', +'seeddms_version' => 'Versi SeedDMS', +'selection' => 'Pilihan', +'select_attrdef' => 'Pilih definisi atribut', +'select_attrdefgrp_show' => 'Pilih waktu untuk ditampilkan', +'select_attribute_value' => 'Pilih label value', +'select_category' => 'Klik untuk memilih kategori', +'select_documents_for_process' => '', +'select_group' => 'Pilih group', +'select_groups' => 'Klik untuk memilih groups', +'select_grp_approvers' => 'Klik untuk memilih group approver', +'select_grp_ind_approvers' => 'Klik untuk memilih group', +'select_grp_ind_notification' => 'Klik untuk memilih group', +'select_grp_ind_recipients' => 'Klik untuk memilih group', +'select_grp_ind_reviewers' => 'Klik untuk memilih group', +'select_grp_ind_revisors' => 'Klik untuk memilih group', +'select_grp_notification' => 'Klik untuk memilih group notification', +'select_grp_recipients' => 'Klik untuk memilih group of recipients', +'select_grp_reviewers' => 'Klik untuk memilih group reviewer', +'select_grp_revisors' => 'Klik untuk memilih group of revisors', +'select_ind_approvers' => 'Klik untuk memilih individual approver', +'select_ind_notification' => 'Klik untuk memilih individual notification', +'select_ind_recipients' => 'Klik untuk memilih individual recipients', +'select_ind_reviewers' => 'Klik untuk memilih individual reviewer', +'select_ind_revisors' => 'Klik untuk memilih individual revisors', +'select_mimetype' => 'Klik untuk memilih mimetype', +'select_one' => 'Pilih salah satu', +'select_owner' => 'Klik untuk memilih pemilik', +'select_record_type' => '', +'select_status' => 'Klik untuk memilih status dokumen', +'select_user' => 'Pilih pengguna', +'select_users' => 'Klik untuk memilih pengguna', +'select_value' => 'Pilih value', +'select_workflow' => 'Pilih workflow', +'send_email' => 'Kirim email', +'send_login_data' => 'Kirim login data', +'send_login_data_body' => 'Data login + +Login: [login] +Nama: [username] + +[comment] + +Jika Anda tidak menerima kata sandi, silakan gunakan fitur lupa kata sandi di halaman login untuk mengatur kata sandi baru.', +'send_login_data_subject' => '[sitename]: [login] - Data login anda', +'send_test_mail' => 'Kirim surel percobaan', +'september' => 'September', +'sequence' => 'Urutan', +'seq_after' => 'Setelah "[prevname]"', +'seq_end' => 'Terakhir', +'seq_keep' => 'Keep Position', +'seq_start' => 'Posisi awal', +'service_has_filter' => '', +'service_name' => '', +'sessions' => 'Pengguna Online', +'setDateFromFile' => 'Ambil alih tanggal dari file yang diimpor', +'setDateFromFolder' => 'Ambil alih tanggal dari folder yang diimpor', +'settings' => 'Pengaturan', +'settings_activate_module' => 'Aktifkan modul', +'settings_activate_php_extension' => 'Aktifkan ekstensi PHP', +'settings_adminIP' => 'IP Admin', +'settings_adminIP_desc' => 'Jika disetel, admin hanya dapat login dengan alamat IP yang ditentukan. Biarkan kosong untuk menghindari kehilangan akses. CATATAN: hanya berfungsi dengan autentikasi lokal (tanpa LDAP)', +'settings_Advanced' => 'Lanjutan', +'settings_advancedAcl' => 'Kontrol Akses Tingkat Lanjut', +'settings_advancedAcl_desc' => 'Kontrol akses lanjutan akan memungkinkan untuk mengaktifkan/menonaktifkan modul perangkat lunak tertentu. Itu tidak dapat digunakan untuk hak akses pada dokumen dan folder.', +'settings_allowChangeRevAppInProcess' => 'Izinkan pengubahan pengulas/penyetuju setelah proses dimulai', +'settings_allowChangeRevAppInProcess_desc' => 'Secara default, peninjau dan pemberi persetujuan tidak dapat diubah lagi setelah tinjauan atau persetujuan telah dikirimkan. Opsi ini akan memungkinkan administrator untuk melakukan ini selama dokumen tidak dirilis atau ditolak.', +'settings_allowReviewerOnly' => 'Izinkan untuk menyetel pengulas saja', +'settings_allowReviewerOnly_desc' => 'Aktifkan ini, jika diizinkan untuk menetapkan hanya peninjau tetapi tidak ada pemberi persetujuan dalam mode alur kerja tradisional.', +'settings_apache_mod_rewrite' => 'Apache - Modul Rewrite', +'settings_apiKey' => 'Kunci otentikasi untuk rest api', +'settings_apiKey_desc' => 'Kunci ini digunakan sebagai otentikasi alternatif untuk rest api. Pilih panjang string 32 karakter.', +'settings_apiOrigin' => 'Asal panggilan api yang diizinkan', +'settings_apiOrigin_desc' => 'Daftar alamat yang dipisahkan dengan titik koma. Setiap alamat memiliki bentuk ://[:]. Port dapat dihilangkan. Jika bagian ini dibiarkan kosong, tidak ada batasan yang akan diterapkan.', +'settings_apiUserId' => 'Pengguna untuk rest api', +'settings_apiUserId_desc' => 'Pengguna ini akan digunakan oleh rest api, jika otentikasi dilakukan dengan kunci api yang dikonfigurasi.', +'settings_Authentication' => 'Pengaturan otentikasi', +'settings_autoLoginUser' => 'Masuk otomatis', +'settings_autoLoginUser_desc' => 'Gunakan id pengguna ini untuk mengakses jika pengguna belum masuk. Akses seperti itu tidak akan membuat sesi.', +'settings_available_languages' => 'Bahasa yang tersedia', +'settings_available_languages_desc' => 'Hanya bahasa yang dipilih yang akan dimuat dan muncul di pemilih bahasa. Bahasa default akan selalu dimuat.', +'settings_backupDir' => 'Direktori cadangan', +'settings_backupDir_desc' => 'Direktori tempat alat pencadangan menyimpan cadangan. Jika direktori ini tidak disetel atau tidak dapat diakses, maka cadangan akan disimpan di direktori konten.', +'settings_cacheDir' => 'Direktori cache', +'settings_cacheDir_desc' => 'Di mana gambar pratinjau disimpan (paling baik memilih direktori yang tidak dapat diakses melalui server web Anda)', +'settings_Calendar' => 'Pengaturan kalender', +'settings_calendarDefaultView' => 'Tampilan Default Kalender', +'settings_calendarDefaultView_desc' => 'Tampilan default kalender', +'settings_cannot_disable' => 'Berkas ENABLE_INSTALL_TOOL tidak dapat dihapus', +'settings_checkOutDir' => 'Direktori untuk dokumen yang diperiksa', +'settings_checkOutDir_desc' => 'Ini adalah direktori tempat konten dokumen terbaru disalin jika dokumen tersebut diperiksa. Jika Anda membuat direktori ini dapat diakses oleh pengguna, mereka dapat mengedit file dan memeriksanya kembali setelah selesai.', +'settings_cmdTimeout' => 'Batas waktu untuk perintah eksternal', +'settings_cmdTimeout_desc' => 'Durasi dalam detik ini menentukan kapan perintah eksternal (misalnya untuk membuat indeks teks lengkap) akan dihentikan.', +'settings_conf_field_not_editable' => 'Nilai ini tidak dapat diedit', +'settings_contentDir' => 'Direktori konten', +'settings_contentDir_desc' => 'Di mana file yang diunggah disimpan (terbaik untuk memilih direktori yang tidak dapat diakses melalui server web Anda)', +'settings_contentOffsetDir' => 'Direktori Offset Konten', +'settings_contentOffsetDir_desc' => 'Untuk mengatasi keterbatasan dalam sistem file yang mendasarinya, struktur direktori baru telah dirancang yang ada di dalam direktori konten (Direktori Konten). Ini membutuhkan direktori dasar untuk memulai. Biasanya biarkan ini ke pengaturan default, 1048576, tetapi dapat berupa angka atau string apa pun yang belum ada di dalam (Direktori Konten)', +'settings_convertToPdf' => 'Konversi dokumen ke PDF untuk dilihat', +'settings_convertToPdf_desc' => 'Jika dokumen tidak dapat ditampilkan secara asli oleh browser, versi yang dikonversi ke pdf akan ditampilkan.', +'settings_cookieLifetime' => 'Masa Aktif Cookie', +'settings_cookieLifetime_desc' => 'Masa aktif cookie dalam hitungan detik. Jika disetel ke 0 cookie akan dihapus saat browser ditutup.', +'settings_coreDir' => 'Direktori Core SeedDMS', +'settings_coreDir_desc' => 'Jalur ke SeedDMS_Core (opsional). Biarkan ini kosong jika Anda telah menginstal SeedDMS_Core di tempat yang dapat ditemukan oleh PHP, mis. Ekstra PHP Include-Path', +'settings_createCheckOutDir' => '', +'settings_createCheckOutDir_desc' => 'Buat direktori checkout jika tidak ada', +'settings_createdatabase' => 'Buat tabel basis data', +'settings_createdirectory' => 'Buat direktori', +'settings_currentvalue' => 'Nilai sekarang', +'settings_Database' => 'Pengaturan basis data', +'settings_dateformat' => 'Format tanggal', +'settings_dateformat_desc' => 'Format tanggal ini menggunakan sintaks fungsi date() php', +'settings_datetimeformat' => 'Format Tanggal/Waktu', +'settings_datetimeformat_desc' => 'Format tanggal ini menggunakan sintaks fungsi date() php', +'settings_dbDatabase' => 'Basis data', +'settings_dbDatabase_desc' => 'Nama untuk basis data Anda dimasukkan selama proses instalasi. Jangan edit bagian ini kecuali diperlukan, jika misalnya basis data telah dipindahkan.', +'settings_dbDriver' => 'Tipe Basis data', +'settings_dbDriver_desc' => 'Jenis basis data yang telah digunakan selama proses instalasi. Jangan edit bagian ini kecuali Anda harus bermigrasi ke tipe basis data yang berbeda mungkin karena perubahan host. Jenis DB-Driver yang digunakan oleh adodb (lihat adodb-readme)', +'settings_dbHostname' => 'Nama Server', +'settings_dbHostname_desc' => 'Nama host yang telah diterapkan untuk basis data Anda selama proses instalasi. Jangan mengedit bagian ini kecuali benar-benar diperlukan, misalnya transfer basis data ke Host baru.', +'settings_dbPass' => 'Kata sandi', +'settings_dbPass_desc' => 'Kata sandi untuk mengakses ke basis data Anda yang telah diterapkan selama proses instalasi.', +'settings_dbUser' => 'Nama pengguna', +'settings_dbUser_desc' => '', +'settings_dbVersion' => 'Skema basis data terlalu lawas', +'settings_defaultAccessDocs' => 'Akses default untuk dokumen baru', +'settings_defaultAccessDocs_desc' => 'Ketika dokumen baru dibuat, ini akan menjadi hak akses default.', +'settings_defaultDocPosition' => 'Posisi dokumen saat dibuat', +'settings_defaultDocPosition_desc' => '', +'settings_defaultDocPosition_val_end' => 'akhir', +'settings_defaultDocPosition_val_start' => 'awal', +'settings_defaultFolderPosition' => 'Posisi folder saat dibuat', +'settings_defaultFolderPosition_desc' => '', +'settings_defaultSearchMethod' => 'Metode pencarian default', +'settings_defaultSearchMethod_desc' => 'Metode pencarian default, ketika pencarian dimulai dengan formulir pencarian di menu utama.', +'settings_defaultSearchMethod_valdatabase' => 'basis data', +'settings_defaultSearchMethod_valfulltext' => '', +'settings_delete_install_folder' => 'Untuk menggunakan SeedDMS, Anda harus menghapus file ENABLE_INSTALL_TOOL di direktori konfigurasi', +'settings_disableSelfEdit' => '', +'settings_disableSelfEdit_desc' => 'Jika dicentang, pengguna tidak dapat mengedit profilnya sendiri', +'settings_disable_install' => '', +'settings_Display' => 'Pengaturan tampilan', +'settings_dropFolderDir' => 'Direktori untuk folder drop', +'settings_dropFolderDir_desc' => '', +'settings_Edition' => 'Pengaturan edisi', +'settings_editOnlineFileTypes' => 'Ubah Online File Types', +'settings_editOnlineFileTypes_desc' => 'Berkas dengan salah satu akhiran atau mime types berikut dapat diedit secara online (GUNAKAN HANYA KARAKTER HURUF KECIL)', +'settings_enable2FactorAuthentication' => '', +'settings_enable2FactorAuthentication_desc' => 'Aktifkan/nonaktifkan autentikasi 2 arah. Pengguna memerlukan Google Authenticator yang terinstall di ponselnya.', +'settings_enableAcknowledgeWorkflow' => '', +'settings_enableAcknowledgeWorkflow_desc' => '', +'settings_enableAdminReceipt' => 'Izinkan penerimaan dokumen untuk admin', +'settings_enableAdminReceipt_desc' => '', +'settings_enableAdminRevApp' => 'Izinkan peninjauan/persetujuan untuk admin', +'settings_enableAdminRevApp_desc' => '', +'settings_enableCalendar' => 'Aktifkan Kalender', +'settings_enableCalendar_desc' => 'Aktifkan/Nonaktifkan kalender', +'settings_enableCancelCheckout' => 'Izinkan untuk membatalkan check out', +'settings_enableCancelCheckout_desc' => '', +'settings_enableClipboard' => 'Aktifkan Papan Klip', +'settings_enableClipboard_desc' => 'Aktifkan/nonaktifkan clipboard di halaman \'Lihat Folder\'', +'settings_enableConverting' => 'Aktifkan Konversi', +'settings_enableConverting_desc' => 'Aktifkan/Nonaktifkan konversi berkas', +'settings_enableDebugMode' => '', +'settings_enableDebugMode_desc' => 'Aktifkan ini untuk mengaktifkan mode debug yang menambahkan menu baru di admin tools', +'settings_enableDropFolderList' => '', +'settings_enableDropFolderList_desc' => 'Aktifkan daftar file di folder drop. Daftar ditampilkan di menu utama.', +'settings_enableDropUpload' => 'Aktifkan Unggahan Cepat', +'settings_enableDropUpload_desc' => '', +'settings_enableDuplicateDocNames' => 'Izinkan nama dokumen duplikat', +'settings_enableDuplicateDocNames_desc' => 'Memungkinkan untuk memiliki nama dokumen duplikat dalam folder.', +'settings_enableDuplicateSubFolderNames' => 'Izinkan nama subfolder duplikat', +'settings_enableDuplicateSubFolderNames_desc' => 'Memungkinkan untuk memiliki nama subfolder duplikat dalam folder.', +'settings_enableEmail' => 'Aktifkan E-mail', +'settings_enableEmail_desc' => 'Aktifkan/nonaktifkan pemberitahuan email otomatis', +'settings_enableExtensionDownload' => 'Izinkan unduhan ekstensi', +'settings_enableExtensionDownload_desc' => '', +'settings_enableExtensionImport' => 'Izinkan impor ekstensi', +'settings_enableExtensionImportFromRepository' => 'Izinkan impor ekstensi dari repositori', +'settings_enableExtensionImportFromRepository_desc' => '', +'settings_enableExtensionImport_desc' => '', +'settings_enableFilterReceipt' => 'Saring pemilik, pengulas, ... dari daftar penerima', +'settings_enableFilterReceipt_desc' => 'Aktifkan, untuk memfilter beberapa penerima dari daftar penerimaan jika anggota kelompok dipilih.', +'settings_enableFolderTree' => 'Aktifkan Folder Tree', +'settings_enableFolderTree_desc' => '', +'settings_enableFullSearch' => 'Aktifkan Pencarian teks lengkap', +'settings_enableFullSearch_desc' => 'Aktifkan Pencarian teks lengkap', +'settings_enableGuestAutoLogin' => 'Aktifkan login otomatis untuk tamu', +'settings_enableGuestAutoLogin_desc' => 'Jika login tamu dan login otomatis diaktifkan, tamu akan login secara otomatis.', +'settings_enableGuestLogin' => 'Aktifkan Guest Login', +'settings_enableGuestLogin_desc' => '', +'settings_enableHelp' => 'Aktifkan Bantuan', +'settings_enableHelp_desc' => 'Aktifkan/nonaktifkan tautan ke layar bantuan di menu', +'settings_enableLanguageSelector' => 'Aktifkan Pemilihan Bahasa', +'settings_enableLanguageSelector_desc' => 'Tampilkan pemilihan bahasa antarmuka pengguna setelah masuk.', +'settings_enableLargeFileUpload' => 'Aktifkan unggahan file besar', +'settings_enableLargeFileUpload_desc' => 'Jika disetel, unggah berkas juga tersedia melalui java applet yang disebut jumploader tanpa batas ukuran berkas yang ditetapkan oleh peramban. Ini juga memungkinkan untuk mengunggah beberapa berkas dalam satu langkah. Mengaktifkan ini akan mematikan cookie http saja.', +'settings_enableMenuTasks' => 'Aktifkan daftar task di menu', +'settings_enableMenuTasks_desc' => '', +'settings_enableMultiUpload' => 'Izinkan mengunggah banyak berkas', +'settings_enableMultiUpload_desc' => 'Saat membuat dokumen baru, beberapa berkas dapat diunggah. Masing-masing akan membuat dokumen baru.', +'settings_enableNotificationAppRev' => 'Aktifkan pemberitahuan pengulas/pemberi persetujuan', +'settings_enableNotificationAppRev_desc' => '', +'settings_enableNotificationWorkflow' => 'Kirim pemberitahuan kepada pengguna dalam transisi alur kerja berikutnya', +'settings_enableNotificationWorkflow_desc' => '', +'settings_enableOwnerNotification' => 'Aktifkan pemberitahuan pemilik secara default', +'settings_enableOwnerNotification_desc' => '', +'settings_enableOwnerReceipt' => 'Izinkan penerimaan dokumen oleh pemilik', +'settings_enableOwnerReceipt_desc' => '', +'settings_enableOwnerRevApp' => 'Izinkan ulasan/persetujuan untuk pemilik', +'settings_enableOwnerRevApp_desc' => '', +'settings_enablePasswordForgotten' => 'Aktifkan Password forgotten', +'settings_enablePasswordForgotten_desc' => 'Jika Anda ingin mengizinkan pengguna menyetel kata sandi baru dan mengirimkannya melalui email, centang opsi ini.', +'settings_enableReceiptReject' => '', +'settings_enableReceiptReject_desc' => '', +'settings_enableReceiptWorkflow' => '', +'settings_enableReceiptWorkflow_desc' => '', +'settings_enableRecursiveCount' => '', +'settings_enableRecursiveCount_desc' => '', +'settings_enableRemoveRevApp' => '', +'settings_enableRemoveRevApp_desc' => '', +'settings_enableRevisionOneVoteReject' => '', +'settings_enableRevisionOneVoteReject_desc' => '', +'settings_enableRevisionOnVoteReject' => '', +'settings_enableRevisionOnVoteReject_desc' => '', +'settings_enableRevisionWorkflow' => '', +'settings_enableRevisionWorkflow_desc' => '', +'settings_enableSelfReceipt' => '', +'settings_enableSelfReceipt_desc' => '', +'settings_enableSelfRevApp' => '', +'settings_enableSelfRevApp_desc' => '', +'settings_enableSessionList' => 'Aktifkan daftar pengguna online di menu', +'settings_enableSessionList_desc' => '', +'settings_enableThemeSelector' => 'Pemilihan Tema', +'settings_enableThemeSelector_desc' => '', +'settings_enableUpdateReceipt' => '', +'settings_enableUpdateReceipt_desc' => '', +'settings_enableUpdateRevApp' => '', +'settings_enableUpdateRevApp_desc' => '', +'settings_enableUserImage' => 'Aktifkan Gambar Pengguna', +'settings_enableUserImage_desc' => '', +'settings_enableUsersView' => '', +'settings_enableUsersView_desc' => '', +'settings_enableVersionDeletion' => '', +'settings_enableVersionDeletion_desc' => '', +'settings_enableVersionModification' => '', +'settings_enableVersionModification_desc' => '', +'settings_enableWebdavReplaceDoc' => '', +'settings_enableWebdavReplaceDoc_desc' => '', +'settings_enableXsendfile' => '', +'settings_enableXsendfile_desc' => '', +'settings_encryptionKey' => '', +'settings_encryptionKey_desc' => '', +'settings_error' => 'Galat', +'settings_expandFolderTree' => '', +'settings_expandFolderTree_desc' => '', +'settings_expandFolderTree_val0' => '', +'settings_expandFolderTree_val1' => '', +'settings_expandFolderTree_val2' => '', +'settings_ExtensionMgr' => '', +'settings_Extensions' => 'Ekstensi', +'settings_extraPath' => '', +'settings_extraPath_desc' => '', +'settings_firstDayOfWeek' => '', +'settings_firstDayOfWeek_desc' => '', +'settings_footNote' => 'Catatan Kaki', +'settings_footNote_desc' => '', +'settings_fullSearchEngine' => '', +'settings_fullSearchEngine_desc' => '', +'settings_fullSearchEngine_vallucene' => '', +'settings_fullSearchEngine_valsqlitefts' => '', +'settings_guestID' => '', +'settings_guestID_desc' => '', +'settings_guestid_is_admin' => '', +'settings_guestid_is_disabled' => '', +'settings_httpRoot' => '', +'settings_httpRoot_desc' => '', +'settings_incItemsPerPage' => '', +'settings_incItemsPerPage_desc' => '', +'settings_initialDocumentStatus' => '', +'settings_initialDocumentStatus_desc' => '', +'settings_initialDocumentStatus_draft' => 'Draf', +'settings_initialDocumentStatus_released' => '', +'settings_inlineEditing' => '', +'settings_inlineEditing_desc' => '', +'settings_installADOdb' => '', +'settings_install_disabled' => '', +'settings_install_pear_package_log' => '', +'settings_install_pear_package_webdav' => '', +'settings_install_success' => '', +'settings_install_welcome_text' => '', +'settings_install_welcome_title' => 'Selamat datang di instalasi SeedDMS', +'settings_install_zendframework' => '', +'settings_invalid_guestid' => '', +'settings_language' => 'Bahasa default', +'settings_language_desc' => '', +'settings_libraryFolder' => '', +'settings_libraryFolder_desc' => '', +'settings_logFileEnable' => '', +'settings_logFileEnable_desc' => '', +'settings_logFileRotation' => '', +'settings_logFileRotation_desc' => '', +'settings_loginFailure' => 'Gagal masuk', +'settings_loginFailure_desc' => '', +'settings_luceneClassDir' => '', +'settings_luceneClassDir_desc' => '', +'settings_luceneDir' => '', +'settings_luceneDir_desc' => '', +'settings_maxDirID' => '', +'settings_maxDirID_desc' => '', +'settings_maxExecutionTime' => '', +'settings_maxExecutionTime_desc' => '', +'settings_maxItemsPerPage' => '', +'settings_maxItemsPerPage_desc' => '', +'settings_maxRecursiveCount' => '', +'settings_maxRecursiveCount_desc' => '', +'settings_maxSizeForFullText' => '', +'settings_maxSizeForFullText_desc' => '', +'settings_maxUploadSize' => 'Ukuran maksimal untuk mengunggah berkas', +'settings_maxUploadSize_desc' => '', +'settings_more_settings' => '', +'settings_noDocumentFormFields' => '', +'settings_noDocumentFormFields_desc' => '', +'settings_noFolderFormFields' => 'Jangan tampilkan bidang ini (folder)', +'settings_noFolderFormFields_desc' => '', +'settings_notfound' => 'Tidak ditemukan', +'settings_Notification' => 'Pengaturan notifikasi', +'settings_notwritable' => '', +'settings_no_content_dir' => '', +'settings_onePageMode' => 'Mode satu halaman', +'settings_onePageMode_desc' => '', +'settings_overrideMimeType' => '', +'settings_overrideMimeType_desc' => '', +'settings_overrideTheme' => '', +'settings_overrideTheme_desc' => '', +'settings_partitionSize' => '', +'settings_partitionSize_desc' => '', +'settings_passwordExpiration' => 'Kata sandi kadaluwarsa', +'settings_passwordExpiration_desc' => '', +'settings_passwordHistory' => 'Sejarah kata sandi', +'settings_passwordHistory_desc' => '', +'settings_passwordStrength' => '', +'settings_passwordStrengthAlgorithm' => '', +'settings_passwordStrengthAlgorithm_desc' => '', +'settings_passwordStrengthAlgorithm_valadvanced' => '', +'settings_passwordStrengthAlgorithm_valsimple' => '', +'settings_passwordStrength_desc' => '', +'settings_pear_log' => '', +'settings_pear_webdav' => '', +'settings_perms' => 'Izin', +'settings_php_dbDriver' => '', +'settings_php_gd2' => '', +'settings_php_mbstring' => '', +'settings_php_version' => 'Versi PHP', +'settings_presetExpirationDate' => '', +'settings_presetExpirationDate_desc' => '', +'settings_previewWidthDetail' => '', +'settings_previewWidthDetail_desc' => '', +'settings_previewWidthDropFolderList' => '', +'settings_previewWidthDropFolderList_desc' => '', +'settings_previewWidthList' => '', +'settings_previewWidthList_desc' => '', +'settings_previewWidthMenuList' => '', +'settings_previewWidthMenuList_desc' => '', +'settings_printDisclaimer' => '', +'settings_printDisclaimer_desc' => '', +'settings_proxyUPassword' => 'Kata sandi untuk proxy', +'settings_proxyUPassword_desc' => '', +'settings_proxyUrl' => '', +'settings_proxyUrl_desc' => '', +'settings_proxyUser' => '', +'settings_proxyUser_desc' => '', +'settings_quota' => '', +'settings_quota_desc' => '', +'settings_removeFromDropFolder' => '', +'settings_removeFromDropFolder_desc' => '', +'settings_repositoryUrl' => '', +'settings_repositoryUrl_desc' => '', +'settings_restricted' => 'Akses terbatas', +'settings_restricted_desc' => '', +'settings_rootDir' => 'Direktori Root', +'settings_rootDir_desc' => '', +'settings_rootFolderID' => '', +'settings_rootFolderID_desc' => '', +'settings_SaveError' => '', +'settings_Server' => 'Pengaturan server', +'settings_showFullPreview' => '', +'settings_showFullPreview_desc' => '', +'settings_showMissingTranslations' => 'Tampilkan terjemahan yang hilang', +'settings_showMissingTranslations_desc' => '', +'settings_showSingleSearchHit' => '', +'settings_showSingleSearchHit_desc' => '', +'settings_Site' => 'Situs', +'settings_siteDefaultPage' => 'Halaman Situs Default', +'settings_siteDefaultPage_desc' => '', +'settings_siteName' => 'Nama Situs', +'settings_siteName_desc' => 'Nama situs yang digunakan dalam judul halaman. Bawaan: SeedDMS', +'settings_SMTP' => 'Pengaturan SMTP Server', +'settings_smtpPassword' => 'Kata sandi SMTP Server', +'settings_smtpPassword_desc' => 'Kata sandi SMTP Server', +'settings_smtpPort' => 'Port SMTP Server', +'settings_smtpPort_desc' => 'Port SMTP Server, default 25', +'settings_smtpSendFrom' => 'Kirim dari', +'settings_smtpSendFrom_desc' => 'Kirim dari', +'settings_smtpSendTestMail' => 'Kirimkan surel uji coba', +'settings_smtpSendTestMail_desc' => 'Mengirim surel uji coba, untuk memeriksa konfigurasi surel saat ini.', +'settings_smtpServer' => 'Nama host SMTP Server', +'settings_smtpServer_desc' => 'Nama host SMTP Server', +'settings_smtpUser' => 'Pengguna SMTP Server', +'settings_smtpUser_desc' => 'Pengguna SMTP Server', +'settings_sortFoldersDefault' => 'Metode pengurutan default', +'settings_sortFoldersDefault_desc' => '', +'settings_sortFoldersDefault_val_name' => 'berdasarkan nama', +'settings_sortFoldersDefault_val_sequence' => 'berdasarkan sequence', +'settings_sortFoldersDefault_val_unsorted' => 'jangan urutkan', +'settings_sortUsersInList' => 'Urutkan pengguna dalam daftar', +'settings_sortUsersInList_desc' => '', +'settings_sortUsersInList_val_fullname' => 'Urutkan berdasarkan nama lengkap', +'settings_sortUsersInList_val_login' => 'Urutkan berdasarkan login', +'settings_stagingDir' => '', +'settings_stagingDir_desc' => '', +'settings_start_install' => 'Memulai pemasangan', +'settings_stopWordsFile' => '', +'settings_stopWordsFile_desc' => '', +'settings_strictFormCheck' => '', +'settings_strictFormCheck_desc' => '', +'settings_suggestionvalue' => '', +'settings_System' => 'Sistem', +'settings_tasksInMenu' => 'Tugas yang dipilih', +'settings_tasksInMenu_approval' => 'Persetujuan', +'settings_tasksInMenu_checkedout' => 'Memeriksa', +'settings_tasksInMenu_desc' => '', +'settings_tasksInMenu_needscorrection' => 'Koreksi diperlukan', +'settings_tasksInMenu_receipt' => 'Tanda Terima', +'settings_tasksInMenu_rejected' => 'Ditolak', +'settings_tasksInMenu_review' => 'Ulasan', +'settings_tasksInMenu_revision' => 'Revisi', +'settings_tasksInMenu_workflow' => 'Alur kerja', +'settings_theme' => 'Tema default', +'settings_theme_desc' => '', +'settings_titleDisplayHack' => '', +'settings_titleDisplayHack_desc' => '', +'settings_undelUserIds' => '', +'settings_undelUserIds_desc' => '', +'settings_updateDatabase' => '', +'settings_updateNotifyTime' => '', +'settings_updateNotifyTime_desc' => '', +'settings_upgrade_php' => '', +'settings_useHomeAsRootFolder' => 'Gunakan folder home sebagai folder root', +'settings_useHomeAsRootFolder_desc' => '', +'settings_versioningFileName' => '', +'settings_versioningFileName_desc' => '', +'settings_versiontolow' => 'Versi terlalu rendah', +'settings_viewOnlineFileTypes' => '', +'settings_viewOnlineFileTypes_desc' => '', +'settings_webdav' => '', +'settings_workflowMode' => 'Mode alur kerja', +'settings_workflowMode_desc' => '', +'settings_workflowMode_valadvanced' => 'lanjutan', +'settings_workflowMode_valnone' => '', +'settings_workflowMode_valtraditional' => '', +'settings_workflowMode_valtraditional_only_approval' => '', +'settings_zendframework' => '', +'set_expiry' => 'Setel Kedaluwarsa', +'set_owner' => 'Tetapkan Pemilik', +'set_owner_error' => 'Kesalahan menyetel pemilik', +'set_password' => 'Setel Kata Sandi', +'set_workflow' => 'Setel Alur Kerja', +'show_extension_changelog' => 'Tampilkan Changelog', +'show_extension_version_list' => 'Tampilkan daftar versi', +'signed_in_as' => 'Masuk sebagai', +'sign_in' => 'Masuk', +'sign_out' => 'Keluar', +'sign_out_user' => '', +'site_brand' => '', +'sk_SK' => 'Slovakia', +'sort_by_date' => 'Urutkan berdasarkan tanggal', +'sort_by_expiration_date' => 'Urutkan berdasarkan tanggal kadaluwarsa', +'sort_by_name' => 'Urutkan berdasarkan nama', +'sort_by_sequence' => '', +'space_used_on_data_folder' => 'Ruang yang digunakan pada folder data', +'splash_added_to_clipboard' => 'Tambahkan ke clipboard', +'splash_add_access' => '', +'splash_add_attribute' => 'Label baru ditembahkan', +'splash_add_category' => '', +'splash_add_group' => 'Kelompok baru ditambahkan', +'splash_add_group_member' => 'Anggota kelompok baru ditambahkan', +'splash_add_keyword' => '', +'splash_add_notify' => 'Menambahkan notifikasi baru', +'splash_add_role' => 'Menambahkan izin baru', +'splash_add_task' => 'Menambahkan tugas baru', +'splash_add_to_transmittal' => 'Ditambahkan ke pengiriman', +'splash_add_transmittal' => 'Menambahkan transmisi baru', +'splash_add_user' => 'Pengguna baru ditambahkan', +'splash_cancel_checkout' => 'Pembayaran dibatalkan', +'splash_cleared_cache' => '', +'splash_cleared_clipboard' => '', +'splash_delete_access' => '', +'splash_document_added' => 'Dokumen telah ditambahkan', +'splash_document_checkedout' => 'Dokumen diperiksa', +'splash_document_deleted' => 'Dokumen dihapus', +'splash_document_edited' => 'Dokumen telah disimpan', +'splash_document_indexed' => 'Dokumen \'[name]\' indexed.', +'splash_document_locked' => 'Dokumen terkunci', +'splash_document_name_changed' => 'Nama dokumen diubah', +'splash_document_unlocked' => '', +'splash_edit_access' => '', +'splash_edit_attribute' => 'Label telah disimpan', +'splash_edit_category' => '', +'splash_edit_event' => '', +'splash_edit_group' => 'Kelompok telah disimpan', +'splash_edit_keyword' => '', +'splash_edit_role' => 'Izin disimpan', +'splash_edit_task' => 'Tugas disimpan', +'splash_edit_transmittal' => 'Pengiriman disimpan', +'splash_edit_user' => 'Pengguna telah disimpan', +'splash_error_add_to_transmittal' => 'Kesalahan saat menambahkan dokumen ke pengiriman', +'splash_error_rm_download_link' => 'Kesalahan saat menghapus tautan unduhan', +'splash_error_saving_file' => '', +'splash_error_send_download_link' => '', +'splash_expiration_date_cleared' => '', +'splash_expiration_date_set' => '', +'splash_extension_getlist' => '', +'splash_extension_import' => 'Ekstensi terpasang', +'splash_extension_refresh' => '', +'splash_extension_upload' => '', +'splash_folder_deleted' => 'Folder dihapus', +'splash_folder_edited' => '', +'splash_importfs' => '', +'splash_inherit_access' => '', +'splash_invalid_folder_id' => '', +'splash_invalid_searchterm' => '', +'splash_invalid_search_service' => '', +'splash_link_document' => 'Tautan ditambahkan', +'splash_moved_clipboard' => '', +'splash_move_document' => 'Dokumen dipindahkan', +'splash_move_folder' => 'Folder dipindahkan', +'splash_notinherit_access' => '', +'splash_receipt_update_success' => '', +'splash_removed_from_clipboard' => '', +'splash_rm_attribute' => 'Label dihapus', +'splash_rm_attr_value' => '', +'splash_rm_category' => '', +'splash_rm_document' => 'Dokumen dihapus', +'splash_rm_download_link' => '', +'splash_rm_folder' => 'Folder dihapus', +'splash_rm_group' => 'Kelompok dihapus', +'splash_rm_group_member' => '', +'splash_rm_keyword' => '', +'splash_rm_notify' => 'Notifikasi dihapus', +'splash_rm_role' => 'Izin dihapus', +'splash_rm_transmittal' => '', +'splash_rm_user' => 'Pengguna dihapus', +'splash_rm_user_processes' => '', +'splash_rm_workflow' => 'Alur kerja dihapus', +'splash_rm_workflow_action' => '', +'splash_rm_workflow_state' => '', +'splash_saved_file' => 'Versi disimpan', +'splash_save_user_data' => 'Data pengguna disimpan', +'splash_send_download_link' => 'Tautan unduhan dikirim melalui email.', +'splash_send_login_data' => 'Data akses dikirim', +'splash_setowner' => 'Tentukan pemilik baru', +'splash_settings_saved' => 'Pengaturan disimpan', +'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' => '', +'statistic' => 'Statistik', +'status' => 'Status', +'status_approval_rejected' => 'ditolak', +'status_approved' => 'Disetujui', +'status_approver_removed' => '', +'status_change' => 'Perubahan status', +'status_needs_correction' => 'Perlu koreksi', +'status_not_approved' => 'Tidak disetujui', +'status_not_receipted' => 'Belum diterima', +'status_not_reviewed' => 'Tidak ditinjau', +'status_not_revised' => 'tidak direvisi', +'status_receipted' => 'Diterima', +'status_receipt_rejected' => 'Ditolak', +'status_recipient_removed' => '', +'status_reviewed' => 'Ditinjau', +'status_reviewer_rejected' => 'ditolak', +'status_reviewer_removed' => '', +'status_revised' => 'diperbaiki', +'status_revision_rejected' => 'Ditolak', +'status_revision_sleeping' => 'tertunda', +'status_revisor_removed' => '', +'status_unknown' => 'Tidak diketahui', +'storage_size' => 'Ukuran penyimpanan', +'subfolder_duplicate_name' => 'Duplikasi nama subfolder', +'submit_2_fact_auth' => '', +'submit_approval' => 'Kirim persetujuan', +'submit_login' => '', +'submit_password' => 'Setel kata sandi baru', +'submit_password_forgotten' => 'Mulai proses', +'submit_receipt' => 'Kirim tanda terima', +'submit_review' => 'Kirim ulasan', +'submit_revision' => 'Tambahkan Revisi', +'submit_userinfo' => 'Kirim info', +'submit_webauthn_login' => 'Masuk', +'submit_webauthn_register' => 'Daftar', +'subsribe_timelinefeed' => 'Berlangganan umpan balik linimasa', +'substitute_to_user' => 'Beralih ke \'[username]\'', +'substitute_user' => 'Pengguna Pengganti', +'success_add_aro' => '', +'success_add_permission' => 'Menambahkan izin', +'success_remove_permission' => 'Menghapus izin', +'success_toogle_permission' => 'Izin diterapkan', +'sunday' => 'Minggu', +'sunday_abbr' => 'Minggu', +'sv_SE' => 'Swedia', +'switched_to' => 'Beralih ke', +'takeOverAttributeValue' => 'Ambil alih nilai atribut dari versi terakhir', +'takeOverGrpApprover' => 'Ambil alih kelompok pemberi persetujuan dari versi terakhir.', +'takeOverGrpApprovers' => '', +'takeOverGrpReviewer' => '', +'takeOverGrpReviewers' => '', +'takeOverIndApprover' => '', +'takeOverIndApprovers' => '', +'takeOverIndReviewer' => '', +'takeOverIndReviewers' => '', +'target_equals_source_folder' => '', +'tasks' => 'Tugas', +'task_core_expireddocs_days' => 'Hari', +'task_core_expireddocs_email' => '', +'task_core_expireddocs_peruser' => '', +'task_core_indexingdocs_recreate' => '', +'task_description' => 'Deskripsi', +'task_disabled' => 'Nonaktif', +'task_frequency' => 'Frekuensi', +'task_frequency_placeholder' => '', +'task_last_run' => '', +'task_name' => 'Nama', +'task_next_run' => '', +'temp_jscode' => '', +'testmail_body' => '', +'testmail_subject' => '', +'theme' => 'Tema', +'thursday' => 'Kamis', +'thursday_abbr' => 'Kamis', +'timeline' => 'Linimasa', +'timeline_add_file' => 'Lampiran Baru', +'timeline_add_version' => 'Versi baru [version]', +'timeline_full_add_file' => '[document]
Lampiran Baru', +'timeline_full_add_version' => '[document]
Versi baru [version]', +'timeline_full_scheduled_revision' => '', +'timeline_full_status_change' => '', +'timeline_scheduled_revision' => 'Revisi versi [version]', +'timeline_selected_item' => 'Dokumen yang dipilih', +'timeline_skip_add_file' => 'lampiran ditambahkan', +'timeline_skip_scheduled_revision' => 'Revisi terjadwal', +'timeline_skip_status_change_-1' => 'ditolak', +'timeline_skip_status_change_-2' => 'usang', +'timeline_skip_status_change_-3' => 'kedaluwarsa', +'timeline_skip_status_change_0' => 'tinjauan tertunda', +'timeline_skip_status_change_1' => 'menunggu persetujuan', +'timeline_skip_status_change_2' => 'dilepaskan', +'timeline_skip_status_change_3' => 'dalam alur kerja', +'timeline_skip_status_change_4' => 'dalam revisi', +'timeline_skip_status_change_5' => 'draf', +'timeline_status_change' => '', +'to' => 'Kepada', +'toggle_manager' => '', +'toggle_qrcode' => 'Tampilkan/sembunyikan kode QR', +'total' => '', +'to_before_from' => 'Tanggal akhir tidak boleh sebelum tanggal mulai', +'transfer_content' => '', +'transfer_document' => '', +'transfer_no_read_access' => 'Pengguna tidak memiliki akses baca di folder', +'transfer_no_users' => '', +'transfer_no_write_access' => '', +'transfer_objects' => '', +'transfer_objects_to_user' => 'Pemilik baru', +'transfer_processes_to_user' => '', +'transfer_process_to_user' => '', +'transfer_to_user' => '', +'transition_triggered_email' => '', +'transition_triggered_email_body' => '', +'transition_triggered_email_body_html' => '', +'transition_triggered_email_subject' => '', +'transmittal' => 'Pengiriman', +'transmittalitem_removed' => 'Item pengiriman dihapus', +'transmittalitem_updated' => 'Perbarui dokumen ke versi terkini', +'transmittal_comment' => 'Komentar', +'transmittal_name' => 'Nama', +'transmittal_size' => 'Ukuran', +'tree_loading' => '', +'trigger_workflow' => 'Alur kerja', +'tr_TR' => 'Turki', +'tuesday' => 'Selasa', +'tuesday_abbr' => 'Selasa', +'types_generic' => '', +'type_of_hook' => '', +'type_to_filter' => '', +'type_to_search' => '', +'uk_UA' => 'Ukraina', +'under_folder' => 'Dalam Folder', +'unknown_attrdef' => 'Definisi atribut tidak diketahui', +'unknown_command' => 'Perintah tidak dikenali.', +'unknown_document_category' => 'Kategori tidak diketahui', +'unknown_group' => 'ID kelompok tidak diketahui', +'unknown_id' => 'ID tidak diketahui', +'unknown_keyword_category' => 'Kategori tidak diketahui', +'unknown_owner' => 'ID pemilik tidak diketahui', +'unknown_status' => 'Status tidak diketahui', +'unknown_user' => 'ID pengguna tidak diketahui', +'unlinked_content' => 'Konten yang tidak ditautkan', +'unlinked_documents' => 'Dokumen yang tidak ditautkan', +'unlinked_folders' => 'Folder yang tidak tertaut', +'unlinking_objects' => 'Membatalkan tautan konten', +'unlock_cause_access_mode_all' => '', +'unlock_cause_locking_user' => '', +'unlock_document' => 'Membuka kunci', +'update' => 'Perbarui', +'update_approvers' => 'Perbarui Daftar Penyetuju', +'update_document' => 'Perbarui dokumen', +'update_fulltext_index' => 'Perbarui indek fulltext', +'update_info' => 'Perbarui Informasi', +'update_locked_msg' => 'Dokumen ini terkunci.', +'update_recipients' => 'Perbarui daftar penerima', +'update_reviewers' => 'Perbarui Daftar Peninjau', +'update_revisors' => 'Perbarui daftar pengirim ulang', +'update_transmittalitem' => 'Perbarui ke versi dokumen terbaru', +'uploaded_by' => 'Diunggah oleh', +'uploading_failed' => '', +'uploading_maxsize' => '', +'uploading_postmaxsize' => '', +'uploading_zerosize' => '', +'used_discspace' => 'Ruang penyimpanan yang digunakan', +'user' => 'Pengguna', +'userdata_file' => 'File data pengguna', +'userid_groupid' => 'Pengguna id/Kelompok id', +'users' => 'Pengguna', +'users_and_groups' => 'Pengguna/Kelompok', +'users_done_work' => 'Pengguna selesai bekerja', +'user_exists' => 'Pengguna telah tersedia.', +'user_group' => 'Pengguna/Kelompok', +'user_group_management' => 'Manajemen Pengguna/Kelompok', +'user_image' => 'Gambar', +'user_info' => 'Informasi Pengguna', +'user_is_mandatory_approver' => '', +'user_is_mandatory_reviewer' => '', +'user_list' => 'Daftar Pengguna', +'user_login' => 'ID Pengguna', +'user_management' => 'Manajemen Pengguna', +'user_name' => 'Nama lengkap', +'user_previously_removed_from_approvers' => '', +'user_previously_removed_from_recipients' => '', +'user_previously_removed_from_reviewers' => '', +'user_previously_removed_from_revisors' => '', +'use_comment_of_document' => 'Gunakan komentar dokumen', +'use_default_categories' => '', +'use_default_keywords' => '', +'valid_till' => 'Berlaku sampai', +'version' => 'Versi', +'versioning_file_creation' => '', +'versioning_file_creation_warning' => '', +'versioning_info' => 'Info versi', +'versiontolow' => 'Versi terlalu rendah', +'version_comment' => '', +'version_comment_changed_email_body' => '', +'version_comment_changed_email_body_html' => '', +'version_comment_changed_email_subject' => '', +'version_deleted_email' => 'Versi dihapus', +'version_deleted_email_body' => '', +'version_deleted_email_body_html' => '', +'version_deleted_email_subject' => '', +'version_info' => 'Informasi Versi', +'view' => 'Lihat', +'view_document' => 'Lihat detail dokumen', +'view_folder' => 'Lihat detail folder', +'view_online' => 'Lihat daring', +'warning' => 'Peringatan', +'warning_remove_approval_log' => '', +'warning_remove_review_log' => '', +'webauthn_auth' => '', +'webauthn_crossplatform_info' => '', +'webauthn_info' => '', +'webauth_crossplatform' => '', +'wednesday' => 'Rabu', +'wednesday_abbr' => 'Rabu', +'weeks' => 'minggu', +'week_view' => 'Tampilan minggu', +'workflow' => 'Alur kerja', +'workflows_involded' => '', +'workflow_actions_management' => '', +'workflow_action_in_use' => '', +'workflow_action_name' => 'Nama', +'workflow_editor' => '', +'workflow_group_summary' => 'Ringkasan kelompok', +'workflow_has_cycle' => '', +'workflow_initstate' => 'Keadaan awal', +'workflow_in_use' => '', +'workflow_layoutdata_saved' => '', +'workflow_log' => '', +'workflow_management' => '', +'workflow_name' => 'Nama', +'workflow_no_doc_rejected_state' => 'Dokumen tidak akan ditolak dalam status alur kerja!', +'workflow_no_doc_released_state' => '', +'workflow_no_initial_state' => '', +'workflow_no_states' => '', +'workflow_save_layout' => 'Simpan tata letak', +'workflow_state' => '', +'workflow_states_management' => '', +'workflow_state_docstatus' => 'Status dokumen', +'workflow_state_in_use' => '', +'workflow_state_name' => 'Nama', +'workflow_summary' => 'Ringkasan alur kerja', +'workflow_title' => '', +'workflow_transition_without_user_group' => '', +'workflow_user_summary' => 'Ringkasan pengguna', +'wrong_checksum' => 'Salah checksum', +'wrong_filetype' => 'Jenis berkas salah', +'x_more_objects' => '', +'year_view' => '', +'yes' => 'Ya', +'zh_CN' => 'China (CN)', +'zh_TW' => 'China/Taiwan (TW)', +); +?> diff --git a/languages/it_IT/lang.inc b/languages/it_IT/lang.inc index 65c3c4943..271c9fa0c 100644 --- a/languages/it_IT/lang.inc +++ b/languages/it_IT/lang.inc @@ -232,6 +232,14 @@ URL: [url]', 'backup_log_management' => 'Backup/Logging', 'backup_remove' => 'Elimina file di backup', 'backup_tools' => 'Strumenti di backup', +'batch_add_category_msg' => '', +'batch_change_category' => '', +'batch_change_owner' => '', +'batch_new_owner_msg' => '', +'batch_operation' => '', +'batch_operation_result' => '', +'batch_remove_category' => '', +'batch_remove_category_msg' => '', 'between' => 'tra', 'bg_BG' => 'Bulgaro', 'browse' => 'Scegli file', @@ -310,6 +318,7 @@ URL: [url]', 'comment_changed_email' => '', 'comment_for_current_version' => 'Commento per la versione', 'configure_extension' => 'Configura estensione', +'confirm_change_owner' => '', 'confirm_clear_cache' => 'Vuoi davvero cancellare la cache? Questo eliminerà tutte le immagini di anteprima precalcolate.', 'confirm_create_fulltext_index' => 'Sì, desidero ricreare l\'indice fulltext!', 'confirm_move_document' => 'Conferma lo spostamento del documento.', @@ -368,6 +377,7 @@ URL: [url]', 'discspace' => 'Spazio su disco', 'docs_in_reception_no_access' => 'Documenti con ricezione senza accesso dai destinatari', 'docs_in_revision_no_access' => 'Documenti in riesame senza accesso dai revisori', +'docs_with_missing_revision_date' => '', 'document' => 'Documento', 'documentcontent' => 'Contenuto documento', 'documents' => 'Documenti', @@ -638,6 +648,7 @@ URL: [url]', 'filetype' => '', 'file_size' => 'Grandezza del file', 'filter_for_documents' => 'Filtro aggiuntivo per i documenti', +'filter_for_documents_and_folders' => '', 'filter_for_folders' => 'Filtro aggiuntivo per le cartelle', 'folder' => 'Cartella', 'folders' => 'Cartelle', @@ -709,8 +720,14 @@ URL: [url]', 'group_approval_summary' => 'Dettaglio approvazioni di gruppo', 'group_exists' => 'Il gruppo è già esistente', 'group_info' => 'Informazion del gruppo', +'group_is_mandatory_approver' => '', +'group_is_mandatory_reviewer' => '', 'group_management' => 'Amministrazione gruppi', 'group_members' => 'Membri del gruppo', +'group_previously_removed_from_approvers' => '', +'group_previously_removed_from_recipients' => '', +'group_previously_removed_from_reviewers' => '', +'group_previously_removed_from_revisors' => '', 'group_receipt_summary' => 'Panoramica delle conferme ricevute gruppo.', 'group_review_removed' => '', 'group_review_summary' => 'Dettaglio revisioni di gruppo', @@ -791,6 +808,7 @@ URL: [url]', 'in_folder' => 'nella cartella', 'in_revision' => 'In riesame', 'in_workflow' => 'In lavorazione', +'iptc_metadata' => '', 'is_disabled' => 'Account disabilitato', 'is_hidden' => 'Nascondi dalla lista utenti', 'it_IT' => 'Italiano', @@ -874,6 +892,8 @@ URL: [url]', 'mandatory_reviewers' => 'Revisori necessari', 'mandatory_reviewer_no_access' => 'Il revisore necessario \'[user]\' non ha sufficienti permessi d\'accesso.', 'march' => 'Marzo', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => 'Dimensione massima caricabile per ogni file', 'may' => 'Maggio', 'menu_dropfolder' => 'Cartella di pubblicazione', @@ -1003,6 +1023,7 @@ URL: [url]', 'no_previous_versions' => 'Nessun\'altra versione trovata', 'no_receipt_needed' => 'Rete disco', 'no_review_needed' => 'Nessuna revisione in corso.', +'no_revision_date' => '', 'no_revision_needed' => 'Nessun riesame in corso.', 'no_revision_planed' => 'Nessun riesame pianificato.', 'no_update_cause_locked' => 'Non è quindi possible aggiornare il documento. Prego contattare l\'utente che l\'ha bloccato.', @@ -1361,6 +1382,7 @@ URL: [url]', 'select_attrdefgrp_show' => 'Scegli quando mostrare', 'select_attribute_value' => 'Seleziona il valore dell\'attributo', 'select_category' => 'Clicca per selezionare la categoria', +'select_documents_for_process' => '', 'select_group' => 'Seleziona gruppo', 'select_groups' => 'Clicca per selezionare i gruppi', 'select_grp_approvers' => 'Seleziona gruppo approvatore', @@ -2030,6 +2052,7 @@ Name: [username] 'transfer_no_write_access' => 'L\'utente non ha i permessi in scrittura per la cartella', 'transfer_objects' => 'Trasferisci oggetti', 'transfer_objects_to_user' => 'Trasferisci all\'utente', +'transfer_processes_to_user' => '', 'transfer_process_to_user' => '', 'transfer_to_user' => 'Trasferisci all\'utente', 'transition_triggered_email' => 'Inizio transizione del flusso di lavoro', @@ -2105,10 +2128,16 @@ URL: [url]', 'user_group_management' => 'Gestione Utenti/Gruppi', 'user_image' => 'Immagine', 'user_info' => 'Informazioni utente', +'user_is_mandatory_approver' => '', +'user_is_mandatory_reviewer' => '', 'user_list' => 'Lista Utenti', 'user_login' => 'ID Utente', 'user_management' => 'Gestione Utenti', 'user_name' => 'Nome e Cognome', +'user_previously_removed_from_approvers' => '', +'user_previously_removed_from_recipients' => '', +'user_previously_removed_from_reviewers' => '', +'user_previously_removed_from_revisors' => '', 'use_comment_of_document' => 'Utilizza il commento al documento', 'use_default_categories' => 'Usa categorie predefinite', 'use_default_keywords' => 'Usa parole-chiave predefinite', diff --git a/languages/ko_KR/lang.inc b/languages/ko_KR/lang.inc index cddc0457a..de8f2db0b 100644 --- a/languages/ko_KR/lang.inc +++ b/languages/ko_KR/lang.inc @@ -234,6 +234,14 @@ URL: [url]', 'backup_log_management' => '백업/로깅', 'backup_remove' => '백업 파일 제거', 'backup_tools' => '백업 도구', +'batch_add_category_msg' => '', +'batch_change_category' => '', +'batch_change_owner' => '', +'batch_new_owner_msg' => '', +'batch_operation' => '', +'batch_operation_result' => '', +'batch_remove_category' => '', +'batch_remove_category_msg' => '', 'between' => '사이', 'bg_BG' => '불가리아', 'browse' => '검색', @@ -312,6 +320,7 @@ URL: [url]', 'comment_changed_email' => '', 'comment_for_current_version' => '버전 주석', 'configure_extension' => '', +'confirm_change_owner' => '', 'confirm_clear_cache' => '', 'confirm_create_fulltext_index' => '예, 전체 텍스트 인덱스를 다시 만들고 싶습니다!', 'confirm_move_document' => '', @@ -371,6 +380,7 @@ URL: [url]', 'discspace' => '디스크 공간', 'docs_in_reception_no_access' => '', 'docs_in_revision_no_access' => '', +'docs_with_missing_revision_date' => '', 'document' => '문서', 'documentcontent' => '', 'documents' => '문서', @@ -634,6 +644,7 @@ URL: [url]', 'filetype' => '', 'file_size' => '파일 크기', 'filter_for_documents' => '문서에 대한 추가 필터', +'filter_for_documents_and_folders' => '', 'filter_for_folders' => '폴더에 대한 추가 필터', 'folder' => '폴더', 'folders' => '폴더', @@ -705,8 +716,14 @@ URL: [url]', 'group_approval_summary' => '그룹의 승인 요약', 'group_exists' => '그룹이 이미 존재합니다.', 'group_info' => '그룹 정보', +'group_is_mandatory_approver' => '', +'group_is_mandatory_reviewer' => '', 'group_management' => '그룹 관리', 'group_members' => '카페 회원', +'group_previously_removed_from_approvers' => '', +'group_previously_removed_from_recipients' => '', +'group_previously_removed_from_reviewers' => '', +'group_previously_removed_from_revisors' => '', 'group_receipt_summary' => '그룹 접수 요약', 'group_review_removed' => '', 'group_review_summary' => '그룹 검토 요약', @@ -787,6 +804,7 @@ URL: [url]', 'in_folder' => '', 'in_revision' => '개정에서', 'in_workflow' => '워크플로우내', +'iptc_metadata' => '', 'is_disabled' => '계정 사용 안 함', 'is_hidden' => '숨긴 사용자 목록', 'it_IT' => '이탈리아어', @@ -870,6 +888,8 @@ URL: [url]', 'mandatory_reviewers' => '필수 검토자', 'mandatory_reviewer_no_access' => '필수 검수자\'[user]\'가 충분한 권한을 가지고 있지 않습니다.', 'march' => '3월', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => '최대 업로드 크기', 'may' => '월', 'menu_dropfolder' => '', @@ -999,6 +1019,7 @@ URL : [url]', 'no_previous_versions' => '다른 버전을 찾을 수 없습니다', 'no_receipt_needed' => '접수가 필요하지 않습니다', 'no_review_needed' => '검토중인 자료가 없습니다.', +'no_revision_date' => '', 'no_revision_needed' => '보류된 개정은 없습니다.', 'no_revision_planed' => '문서의 개정 예약이 없습니다.', 'no_update_cause_locked' => '이 문서를 업데이트 할 수 없습니다. 문서를 잠근 사용자 문의하시기 바랍니다..', @@ -1333,6 +1354,7 @@ URL : [url]', 'select_attrdefgrp_show' => '', 'select_attribute_value' => '', 'select_category' => '범주를 선택합니다', +'select_documents_for_process' => '', 'select_group' => '', 'select_groups' => '그룹을 선택합니다', 'select_grp_approvers' => '그룹 승인을 선택합니다', @@ -1997,6 +2019,7 @@ URL : [url]', 'transfer_no_write_access' => '', 'transfer_objects' => '', 'transfer_objects_to_user' => '새 소유자', +'transfer_processes_to_user' => '', 'transfer_process_to_user' => '', 'transfer_to_user' => '', 'transition_triggered_email' => '워크플로우 전환 트리거', @@ -2072,10 +2095,16 @@ URL : [url]', 'user_group_management' => '사용자/그룹 관리', 'user_image' => '이미지', 'user_info' => '사용자 정보', +'user_is_mandatory_approver' => '', +'user_is_mandatory_reviewer' => '', 'user_list' => '사용자 목록', 'user_login' => '사용자 ID', 'user_management' => '사용자 관리', 'user_name' => '전체 이름', +'user_previously_removed_from_approvers' => '', +'user_previously_removed_from_recipients' => '', +'user_previously_removed_from_reviewers' => '', +'user_previously_removed_from_revisors' => '', 'use_comment_of_document' => '문서 코멘트로 사용하기', 'use_default_categories' => '미리 정의 된 범주를 사용하십시오', 'use_default_keywords' => '사전 정의 된 키워드를 사용하십시오', diff --git a/languages/lo_LA/lang.inc b/languages/lo_LA/lang.inc index 511361805..f21751132 100644 --- a/languages/lo_LA/lang.inc +++ b/languages/lo_LA/lang.inc @@ -230,6 +230,14 @@ URL: [url]', 'backup_log_management' => 'ສຳຮອງ/ເຂົ້າສຸ່ລະບົບ', 'backup_remove' => 'ລົບຟາຍສຳຮອງ', 'backup_tools' => 'ເຄື່ອງມືສຳຮອງຂໍມູນ', +'batch_add_category_msg' => '', +'batch_change_category' => '', +'batch_change_owner' => '', +'batch_new_owner_msg' => '', +'batch_operation' => '', +'batch_operation_result' => '', +'batch_remove_category' => '', +'batch_remove_category_msg' => '', 'between' => 'ລະຫວ່າງ', 'bg_BG' => 'ບັດແກເຣີຍ', 'browse' => 'ໝວດ', @@ -308,6 +316,7 @@ URL: [url]', 'comment_changed_email' => '', 'comment_for_current_version' => 'ຄວາມຄິດເຫັນກ່ຽວກັບເວີຊັ້ນ', 'configure_extension' => '', +'confirm_change_owner' => '', 'confirm_clear_cache' => 'ເຈົ້າຕ້ອງການລົບແຄຣຫຼືບໍ່? ການດຳເນີນການນີ້ຈະລົບພາບຕົວຢ່າງທັງໝົດທີມີການຄຳນວນລ່ວງໜ້າ', 'confirm_create_fulltext_index' => 'ແມ່ນແລ້ວ, ຂ້ອຍຕ້ອງການສ້າງດັດສະນີຂໍ້ມູນເຕັມ', 'confirm_move_document' => 'ກະລຸນາຢືນຢັນການຍ້າຍເອກະສານ', @@ -366,6 +375,7 @@ URL: [url]', 'discspace' => 'ຟື້ນທີ່ວ່າງໃນດິສ', 'docs_in_reception_no_access' => 'ເອກະສານທີ່ໄດ້ຮັບແມ່ນບໍ່ສາມາດເຂົ້າເບີ່ງໄດ້', 'docs_in_revision_no_access' => 'ເອກະສານທີ້ແກ້ໄຂໂດຍບໍ່ຕ້ອງເຂົ້າໄຊ້ງານ', +'docs_with_missing_revision_date' => '', 'document' => 'ຟື້ນທີ່ວ່າງໃນດິສ', 'documentcontent' => 'ເນື້ອຫາເອກະສານ', 'documents' => 'ເອກະສານ', @@ -631,6 +641,7 @@ URL: [url]', 'filetype' => '', 'file_size' => 'ຂະໜາດ', 'filter_for_documents' => 'ຕົວກອງເພີ່ມເຕົມສຳລັບເອກະສານ', +'filter_for_documents_and_folders' => '', 'filter_for_folders' => 'ຕົວກອງເພີ່ມເຕີມສຳລັບໂຟລເດີ', 'folder' => 'ໂຟລເດີ', 'folders' => 'ໂຟລເດີ', @@ -702,8 +713,14 @@ URL: [url]', 'group_approval_summary' => 'ສະຫຼຸບການອະນຸມັດໃນກຸ່ມ', 'group_exists' => 'ມີກຸ່ມແລ້ວ', 'group_info' => 'ຂໍມູນກຸ່ມ', +'group_is_mandatory_approver' => '', +'group_is_mandatory_reviewer' => '', 'group_management' => 'ການຈັດການກຸ່ມ', 'group_members' => 'ສະມາຊິກກຸ່ມ', +'group_previously_removed_from_approvers' => '', +'group_previously_removed_from_recipients' => '', +'group_previously_removed_from_reviewers' => '', +'group_previously_removed_from_revisors' => '', 'group_receipt_summary' => 'ພາບລວມການຢືນຢັນເນື້ອຫາຂອງກຸ່ມ', 'group_review_removed' => '', 'group_review_summary' => 'ສະຫຼຸບບົດວິຈານຂອງກຸ່ມ', @@ -784,6 +801,7 @@ URL: [url]', 'in_folder' => 'ໃນ', 'in_revision' => 'ໃນການແກ້ໄຂ', 'in_workflow' => 'ໃນຂັນຕອນການເຮັດວຽກ', +'iptc_metadata' => '', 'is_disabled' => 'ປິດການໄຊ້ບັນຊີ', 'is_hidden' => 'ຊ້ອນຈາກລາຍຊື່ຜູ້ໄຊ້', 'it_IT' => 'ອີຕາລີ', @@ -867,6 +885,8 @@ URL: [url]', 'mandatory_reviewers' => 'ຜູ້ກວດສອບແບບບັງຄັບ', 'mandatory_reviewer_no_access' => 'ຜູ້ກວດສອບແບບບັງຄັບ "[user] " ມີສິດທິການເຂົ້າເຖິງບໍ່ພຽງພໍ', 'march' => 'ເດືອນມີນາ', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => 'ຂະຫນາດການອັບໂຫລດສູງສຸດ', 'may' => 'ເດືອນພຶດສະພາ', 'menu_dropfolder' => 'ວາງໂຟລເດີ', @@ -996,6 +1016,7 @@ URL: [url]', 'no_previous_versions' => 'ບໍ່ພົບເວີຊັນອື່ນ', 'no_receipt_needed' => 'ປະຈຸບັນນີ້ບໍ່ມີເອກະສານທີ່ຈະຕ້ອງຢືນຢັນກ່ຽວກັບການຮັບສິນຄ້າ', 'no_review_needed' => 'ບໍ່ມີເອກະສານທີຍັງຄ້າງທີລໍຖ້າກວດຄືນ', +'no_revision_date' => '', 'no_revision_needed' => 'ບໍ່ມີເອກະສານທີຍັງຄ້າງທີລໍຖ້າກວດຄືນ', 'no_revision_planed' => 'ບໍ່ມີການກຳນົດເອກະສານທີຕ້ອງແກ້ໄຂ', 'no_update_cause_locked' => 'ເຈົ້າບໍ່ສາມາດອັບເດດເອກະສານນີ້ໄດ້, ກະລຸນາຕິດຕໍ່ຜູ້ໄຊ້ທີລັອກເອກະສານ', @@ -1354,6 +1375,7 @@ URL: [url]', 'select_attrdefgrp_show' => 'ເລືອກເວລາທີ່ຈະສະແດງ', 'select_attribute_value' => '', 'select_category' => 'ຄິກເພື່ອເລືອກປະເພດ', +'select_documents_for_process' => '', 'select_group' => '', 'select_groups' => 'ຄິກເລືອກກຸ່ມ', 'select_grp_approvers' => 'ຄິກເພືອເລືອກຜູ້ອະນຸມັດກຸ່ມ', @@ -2023,6 +2045,7 @@ URL: [url]', 'transfer_no_write_access' => '', 'transfer_objects' => 'ຖ່າຍໂອນວັດຖຸ', 'transfer_objects_to_user' => 'ເຈົ້າຂອງໄຫມ່', +'transfer_processes_to_user' => '', 'transfer_process_to_user' => '', 'transfer_to_user' => '', 'transition_triggered_email' => 'ປ່ຽນຮູບແບບການເຮັດວຽກຮຽບຮ້ອຍແລ້ວ', @@ -2098,10 +2121,16 @@ URL: [url]', 'user_group_management' => 'ການຈັດການຜູ້ໄຊ້ / ກຸ່ມ', 'user_image' => 'ພາບ', 'user_info' => 'ຂໍ້ມູນຜູ້ໄຊ້', +'user_is_mandatory_approver' => '', +'user_is_mandatory_reviewer' => '', 'user_list' => 'ລາຍຊື່ຜູ້ໄຊ້', 'user_login' => 'ID ຜູ້ໄຊ້', 'user_management' => 'ການຈັດການຜູ້ໄຊ້', 'user_name' => 'ຊື່ເຕັມ', +'user_previously_removed_from_approvers' => '', +'user_previously_removed_from_recipients' => '', +'user_previously_removed_from_reviewers' => '', +'user_previously_removed_from_revisors' => '', 'use_comment_of_document' => 'ໄຊ້ຄວາມຄິດເຫັນໃນເອກະສານ', 'use_default_categories' => 'ໄຊ້ໝວກໝູ່ທີກຳນົດໄວ້ລ່ວງໜ້າ', 'use_default_keywords' => 'ໄຊ້ຄຳຫຼັກທີ່ກຳນົດໄວ້ລ່ວງໜ້າ', diff --git a/languages/nb_NO/lang.inc b/languages/nb_NO/lang.inc index 966aad3bc..484c2da5b 100644 --- a/languages/nb_NO/lang.inc +++ b/languages/nb_NO/lang.inc @@ -232,6 +232,14 @@ URL: [url]', 'backup_log_management' => 'Sikkerhetskopi logg', 'backup_remove' => 'Slette sikkerhetskopi', 'backup_tools' => 'Sikkerhetskopi-verktøy', +'batch_add_category_msg' => '', +'batch_change_category' => '', +'batch_change_owner' => '', +'batch_new_owner_msg' => '', +'batch_operation' => '', +'batch_operation_result' => '', +'batch_remove_category' => '', +'batch_remove_category_msg' => '', 'between' => 'mellom', 'bg_BG' => 'Bulgaria', 'browse' => 'Bla', @@ -310,6 +318,7 @@ URL: [url]', 'comment_changed_email' => 'Forandre e-post', 'comment_for_current_version' => 'Versjonskommentar', 'configure_extension' => 'Konfigurere utvidelse', +'confirm_change_owner' => '', 'confirm_clear_cache' => 'Vil du virkelig tømme hurtigbufferen? Dette vil fjerne alle forhåndsberegnede forhåndsbilder.', 'confirm_create_fulltext_index' => 'Ja, jeg vil gjenskape fulltekstindeksen!', 'confirm_move_document' => 'Venligst bekreft flytting av dokumentet.', @@ -368,6 +377,7 @@ URL: [url]', 'discspace' => 'Diskplass', 'docs_in_reception_no_access' => 'Dokumenter med mottak uten tilgang fra mottaker', 'docs_in_revision_no_access' => 'Dokumenter i revisjon uten tilgang fra korrekturleser', +'docs_with_missing_revision_date' => '', 'document' => 'Dokument', 'documentcontent' => 'Dokumentinnehold', 'documents' => 'Dokumenter', @@ -645,6 +655,7 @@ URL: [url]', 'filetype' => 'Filtype', 'file_size' => 'Filstørrelse', 'filter_for_documents' => 'Tilleggsfilter for dokumentet', +'filter_for_documents_and_folders' => '', 'filter_for_folders' => 'Tilleggsfilter for mapper', 'folder' => 'Mappe', 'folders' => 'Mapper', @@ -723,8 +734,14 @@ URL: [url]', 'group_approval_summary' => 'Gruppegodkjennings-oppsummering', 'group_exists' => 'Gruppen finnes allerede.', 'group_info' => 'Gruppe informasjon', +'group_is_mandatory_approver' => '', +'group_is_mandatory_reviewer' => '', 'group_management' => 'Gruppe ledelse', 'group_members' => 'Gruppemedlemmer', +'group_previously_removed_from_approvers' => '', +'group_previously_removed_from_recipients' => '', +'group_previously_removed_from_reviewers' => '', +'group_previously_removed_from_revisors' => '', 'group_receipt_summary' => 'Gruppe kvitterings sammendrag', 'group_review_removed' => '', 'group_review_summary' => 'Sammendrag av gruppevisning', @@ -805,6 +822,7 @@ URL: [url]', 'in_folder' => 'I', 'in_revision' => 'I revisjon', 'in_workflow' => 'I arbeidsflyt', +'iptc_metadata' => '', 'is_disabled' => 'Deaktivert konto', 'is_hidden' => 'Skjul fra brukerlisten', 'it_IT' => 'Italiensk', @@ -888,6 +906,8 @@ URL: [url]', 'mandatory_reviewers' => 'Obligatorisk korrekturleser', 'mandatory_reviewer_no_access' => 'Obligatorisk korrekturleser \'[user]\' har mangelfull adgangsrettigheter.', 'march' => 'Mars', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => 'Maksimal størrelse for opplasting', 'may' => 'Mai', 'menu_dropfolder' => 'Slipp mappe', @@ -1017,6 +1037,7 @@ URL: [url]', 'no_previous_versions' => 'Ingen andre versjoner funnet', 'no_receipt_needed' => 'Det er for øyeblikket ingen dokumenter som krever kvitteringsbekreftelse.', 'no_review_needed' => 'Ingen gjennomgang i påvente.', +'no_revision_date' => '', 'no_revision_needed' => 'Ingen korrektur i påvente.', 'no_revision_planed' => 'Ingen planlagte korrigering av dokumentet', 'no_update_cause_locked' => 'Du kan derfor ikke oppdatere dette dokumentet. Kontakt brukeren som låste dette.', @@ -1369,6 +1390,7 @@ URL: [url]', 'select_attrdefgrp_show' => 'Velg visings alternativ', 'select_attribute_value' => 'Velg egenskapsverdi', 'select_category' => 'Klikk for å velge kategori', +'select_documents_for_process' => '', 'select_group' => 'Klikk for å velge gruppe', 'select_groups' => 'Klikk for å velge grupper', 'select_grp_approvers' => 'Klikk for å velge gruppe godkjennere', @@ -2036,6 +2058,7 @@ Bruker: [username] 'transfer_no_write_access' => 'Brukeren har ikke skrivetilgang i mappen', 'transfer_objects' => 'Overfør objekter', 'transfer_objects_to_user' => 'Ny eier', +'transfer_processes_to_user' => '', 'transfer_process_to_user' => 'Overfør prosess til bruker', 'transfer_to_user' => 'Overfør til bruker', 'transition_triggered_email' => 'Arbeidsflytovergang utløst', @@ -2111,10 +2134,16 @@ URL: [url]', 'user_group_management' => 'Ledelse av brukere/grupper', 'user_image' => 'Bilde', 'user_info' => 'Brukerinformasjon', +'user_is_mandatory_approver' => '', +'user_is_mandatory_reviewer' => '', 'user_list' => 'Liste over brukere', 'user_login' => 'Brukernavn', 'user_management' => 'Brukerstyring', 'user_name' => 'Fullt navn', +'user_previously_removed_from_approvers' => '', +'user_previously_removed_from_recipients' => '', +'user_previously_removed_from_reviewers' => '', +'user_previously_removed_from_revisors' => '', 'use_comment_of_document' => 'Bruk kommentaren til dokument', 'use_default_categories' => 'Bruk forhåndsdefinerte kategorier', 'use_default_keywords' => 'Bruk forhåndsdefinerte søkeord', diff --git a/languages/nl_NL/lang.inc b/languages/nl_NL/lang.inc index 1f7a2b806..7fdd9db6c 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 (1176), gijsbertush (673), pepijn (45), reinoutdijkstra@hotmail.com (270) +// Translators: Admin (1177), gijsbertush (673), pepijn (45), reinoutdijkstra@hotmail.com (270) $text = array( '2_factor_auth' => '2-factor-authenticatie', @@ -225,6 +225,14 @@ URL: [url]', 'backup_log_management' => 'Backup/loggen', 'backup_remove' => 'Verwijder backupbestand', 'backup_tools' => 'Backup-gereedschap', +'batch_add_category_msg' => '', +'batch_change_category' => '', +'batch_change_owner' => '', +'batch_new_owner_msg' => '', +'batch_operation' => '', +'batch_operation_result' => '', +'batch_remove_category' => '', +'batch_remove_category_msg' => '', 'between' => 'tussen', 'bg_BG' => 'Bulgaars', 'browse' => 'Browse', @@ -303,6 +311,7 @@ URL: [url]', 'comment_changed_email' => 'Gewijzigde email', 'comment_for_current_version' => 'Versie van het commentaar', 'configure_extension' => 'Configureer extensie', +'confirm_change_owner' => '', 'confirm_clear_cache' => 'Ja, ik wil de cache opschonen!', 'confirm_create_fulltext_index' => 'Ja, Ik wil de fulltext index opnieuw maken!', 'confirm_move_document' => 'Bevestig verplaatsing van document', @@ -361,6 +370,7 @@ URL: [url]', 'discspace' => 'Schijfruimte', 'docs_in_reception_no_access' => 'Documenten zonder toegang ontvanger', 'docs_in_revision_no_access' => 'Documenten in revisie zonder toegang ontvanger', +'docs_with_missing_revision_date' => '', 'document' => 'Document', 'documentcontent' => 'Documentinhoud', 'documents' => 'Documenten', @@ -638,6 +648,7 @@ URL: [url]', 'filetype' => 'Type file', 'file_size' => 'Bestandsomvang', 'filter_for_documents' => 'Extra filter voor documenten', +'filter_for_documents_and_folders' => '', 'filter_for_folders' => 'Extra filter voor mappen', 'folder' => 'Map', 'folders' => 'Mappen', @@ -716,8 +727,14 @@ URL: [url]', 'group_approval_summary' => 'Groepsgoedkeuring (samenvatting)', 'group_exists' => 'Groep bestaat reeds', 'group_info' => 'Info over de groep', +'group_is_mandatory_approver' => '', +'group_is_mandatory_reviewer' => '', 'group_management' => 'Groepenbeheer', 'group_members' => 'Groepsleden', +'group_previously_removed_from_approvers' => '', +'group_previously_removed_from_recipients' => '', +'group_previously_removed_from_reviewers' => '', +'group_previously_removed_from_revisors' => '', 'group_receipt_summary' => 'Overzicht van ontvangst per groep', 'group_review_removed' => '', 'group_review_summary' => 'Samenvatting beoordeling per groep', @@ -798,6 +815,7 @@ URL: [url]', 'in_folder' => 'In map', 'in_revision' => 'In herziening', 'in_workflow' => 'In workflow', +'iptc_metadata' => '', 'is_disabled' => 'Deactiveer account', 'is_hidden' => 'Afschermen van Gebruikerslijst', 'it_IT' => 'Italiaans', @@ -881,6 +899,8 @@ URL: [url]', 'mandatory_reviewers' => 'Verplichte beoordelaars \'[user]\'', 'mandatory_reviewer_no_access' => 'De verplichte gebruikers hebben onvoldoende rechten.', 'march' => 'maart', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => 'Maximale upload omvang voor ieder bestand', 'may' => 'mei', 'menu_dropfolder' => 'Dropfolder', @@ -1009,6 +1029,7 @@ URL: [url]', 'no_previous_versions' => 'Geen andere versie(s) gevonden', 'no_receipt_needed' => 'Geen ontvangstbericht nodig', 'no_review_needed' => 'Geen review bezig.', +'no_revision_date' => '', 'no_revision_needed' => 'Geen herziening nodig', 'no_revision_planed' => 'Geen herziening gepland', 'no_update_cause_locked' => 'U kunt daarom dit document niet bijwerken. Neem contact op met de persoon die het document heeft geblokkeerd.', @@ -1366,6 +1387,7 @@ URL: [url]', 'select_attrdefgrp_show' => 'Toon attribuut-definities-groep', 'select_attribute_value' => 'Kies een waarde voor het attribuut', 'select_category' => 'klik om categorie te selecteren', +'select_documents_for_process' => '', 'select_group' => 'Selecteer groep', 'select_groups' => 'Klik om groep te selecteren', 'select_grp_approvers' => 'Klik om beoordelaars te selecteren', @@ -1467,7 +1489,7 @@ Name: [username] 'settings_currentvalue' => 'Huidige waarde', 'settings_Database' => 'Database instellingen', 'settings_dateformat' => 'Datum formaat', -'settings_dateformat_desc' => '', +'settings_dateformat_desc' => 'Dit datum formaat gebruikt de syntax van de php\'s date() functie', 'settings_datetimeformat' => 'Datum/Tijd formaat', 'settings_datetimeformat_desc' => 'Dit datum formaat gebruikt de syntax van de php\'s date() functie', 'settings_dbDatabase' => 'Database', @@ -2035,6 +2057,7 @@ Name: [username] 'transfer_no_write_access' => 'De gebruiker heeft geen schrijfrechten in deze map', 'transfer_objects' => 'Objecten overdragen', 'transfer_objects_to_user' => 'Objecten verzenden aan gebruiker', +'transfer_processes_to_user' => '', 'transfer_process_to_user' => 'Verzenden naar gebruiker', 'transfer_to_user' => 'Overdragen aan gebruiker', 'transition_triggered_email' => 'Workflow-overgang geactiveerd', @@ -2110,10 +2133,16 @@ URL: [url]', 'user_group_management' => 'Gebruikers / Groepenbeheer', 'user_image' => 'Afbeelding', 'user_info' => 'Gebruikers-informatie', +'user_is_mandatory_approver' => '', +'user_is_mandatory_reviewer' => '', 'user_list' => 'Lijst van Gebruikers', 'user_login' => 'Gebruikersnaam', 'user_management' => 'Gebruikersbeheer', 'user_name' => 'Voornaam en naam', +'user_previously_removed_from_approvers' => '', +'user_previously_removed_from_recipients' => '', +'user_previously_removed_from_reviewers' => '', +'user_previously_removed_from_revisors' => '', 'use_comment_of_document' => 'Gebruik reactie van document', 'use_default_categories' => 'Gebruik voorgedefinieerde categorieen', 'use_default_keywords' => 'Gebruik bestaande sleutelwoorden', diff --git a/languages/pl_PL/lang.inc b/languages/pl_PL/lang.inc index b1b7b7f4c..a638d4d2a 100644 --- a/languages/pl_PL/lang.inc +++ b/languages/pl_PL/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (1684), netixw (84), romi (93), uGn (112) +// Translators: Admin (1693), netixw (84), romi (93), uGn (112) $text = array( '2_factor_auth' => 'Uwierzytelnianie dwuetapowe', @@ -220,6 +220,14 @@ URL: [url]', 'backup_log_management' => 'Backup/Logi', 'backup_remove' => 'Usuń plik backupu', 'backup_tools' => 'Narzędzia kopii zapasowej', +'batch_add_category_msg' => '', +'batch_change_category' => '', +'batch_change_owner' => '', +'batch_new_owner_msg' => '', +'batch_operation' => '', +'batch_operation_result' => '', +'batch_remove_category' => '', +'batch_remove_category_msg' => '', 'between' => 'między', 'bg_BG' => 'Bułgarski', 'browse' => 'Przeglądaj', @@ -298,6 +306,7 @@ URL: [url]', 'comment_changed_email' => '', 'comment_for_current_version' => 'Komentarz do wersji', 'configure_extension' => 'Konfiguruj rozszerzenie', +'confirm_change_owner' => '', '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_move_document' => 'Potwierdź przeniesienie dokumentu', @@ -356,6 +365,7 @@ URL: [url]', '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', +'docs_with_missing_revision_date' => '', 'document' => 'Dokument', 'documentcontent' => 'Zawartość dokumentu', 'documents' => 'Bieżące dokumenty', @@ -621,6 +631,7 @@ URL: [url]', 'filetype' => 'Typ pliku', 'file_size' => 'Rozmiar pliku', 'filter_for_documents' => 'Dodatkowe filtrowanie dla dokumentów', +'filter_for_documents_and_folders' => '', 'filter_for_folders' => 'Dodatkowe filtrowanie dla folderów', 'folder' => 'Folder', 'folders' => 'Foldery', @@ -692,8 +703,14 @@ URL: [url]', 'group_approval_summary' => 'Podsumowanie akceptacji dla grupy', 'group_exists' => 'Grupa już istnieje.', 'group_info' => 'Informacje o grupie', +'group_is_mandatory_approver' => '', +'group_is_mandatory_reviewer' => '', 'group_management' => 'Zarządzanie grupami', 'group_members' => 'Członkowie grupy', +'group_previously_removed_from_approvers' => '', +'group_previously_removed_from_recipients' => '', +'group_previously_removed_from_reviewers' => '', +'group_previously_removed_from_revisors' => '', 'group_receipt_summary' => 'Podsumowanie potwierdzienia dla grupy', 'group_review_removed' => '', 'group_review_summary' => 'Podsumowanie opiniowania dla grupy', @@ -774,6 +791,7 @@ URL: [url]', 'in_folder' => 'w folderze', 'in_revision' => 'Korygowany', 'in_workflow' => 'Procesowany', +'iptc_metadata' => '', 'is_disabled' => 'Konto nieaktywne', 'is_hidden' => 'Nie pokazuj na liście użytkowników', 'it_IT' => 'Włoski', @@ -857,6 +875,8 @@ URL: [url]', 'mandatory_reviewers' => 'Wymagani przeglądający', 'mandatory_reviewer_no_access' => 'Obowiązkowy recenzent \'[user]\' ma niewystarczające prawa dostępu.', 'march' => 'Marzec', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => 'Maksymalny rozmiar pliku', 'may' => 'Maj', 'menu_dropfolder' => 'Folder zrzutu', @@ -986,6 +1006,7 @@ URL: [url]', '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_revision_date' => '', '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.', @@ -1002,14 +1023,14 @@ URL: [url]', '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' => '', +'orderby' => 'sortuj po', +'orderby_date_asc' => 'po dacie (rosnąco)', +'orderby_date_desc' => 'po dacie (malejaco)', +'orderby_id_asc' => 'po id (rosnąco)', +'orderby_id_desc' => 'po id (malejąco)', +'orderby_name_asc' => 'po nazwie (rosnąco)', +'orderby_name_desc' => 'po nazwie (malejaco)', +'orderby_unsorted' => 'niesortowane', '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', @@ -1297,6 +1318,7 @@ URL: [url]', 'select_attrdefgrp_show' => 'Wybierz, kiedy pokazać', 'select_attribute_value' => 'Wybierz wartość atrybutu', 'select_category' => 'Kliknij by wybrać kategorię', +'select_documents_for_process' => '', 'select_group' => 'Wybierz grupę', 'select_groups' => 'Kliknij by wybrać grupy', 'select_grp_approvers' => 'Kliknij by wybrać grupę zatwierdzającą', @@ -1966,6 +1988,7 @@ Name: [username] 'transfer_no_write_access' => 'Użytkownik nie ma prawa do zapisu w tym folderze', 'transfer_objects' => 'Przenieś obiekty', 'transfer_objects_to_user' => 'Nowy właściciel', +'transfer_processes_to_user' => '', 'transfer_process_to_user' => 'Prześlij proces do użytkownika', 'transfer_to_user' => 'Przekaż użytkownikowi', 'transition_triggered_email' => 'Uruchomiono proces przepływu', @@ -2041,10 +2064,16 @@ URL: [url]', 'user_group_management' => 'Zarządzanie Użytkownikami/Grupami', 'user_image' => 'Zdjęcie', 'user_info' => 'Informacje o użytkowniku', +'user_is_mandatory_approver' => '', +'user_is_mandatory_reviewer' => '', 'user_list' => 'Lista użytkowników', 'user_login' => 'Nazwa użytkownika', 'user_management' => 'Zarządzanie użytkownikami', 'user_name' => 'Pełna nazwa', +'user_previously_removed_from_approvers' => '', +'user_previously_removed_from_recipients' => '', +'user_previously_removed_from_reviewers' => '', +'user_previously_removed_from_revisors' => '', 'use_comment_of_document' => 'Użyj komentarza', 'use_default_categories' => 'Użyj predefiniowanych kategorii', 'use_default_keywords' => 'Użyj predefiniowanych słów kluczowych', diff --git a/languages/pt_BR/lang.inc b/languages/pt_BR/lang.inc index f1e67049f..57d7c0229 100644 --- a/languages/pt_BR/lang.inc +++ b/languages/pt_BR/lang.inc @@ -232,6 +232,14 @@ URL: [url]', 'backup_log_management' => 'Backup/Logs', 'backup_remove' => 'Remove backup file', 'backup_tools' => 'Ferramentas de backup', +'batch_add_category_msg' => '', +'batch_change_category' => '', +'batch_change_owner' => '', +'batch_new_owner_msg' => '', +'batch_operation' => '', +'batch_operation_result' => '', +'batch_remove_category' => '', +'batch_remove_category_msg' => '', 'between' => 'entre', 'bg_BG' => 'Bulgaro', 'browse' => 'Procurar', @@ -310,6 +318,7 @@ URL: [url]', 'comment_changed_email' => 'comentário alterado email', 'comment_for_current_version' => 'Comentário para versão atual', 'configure_extension' => 'Configurar extensão', +'confirm_change_owner' => '', 'confirm_clear_cache' => 'Você realmente gostaria de limpar o cache? Isso removerá todas as imagens de pré-visualização.', 'confirm_create_fulltext_index' => 'Sim, eu gostaria de recriar o índice de texto completo!', 'confirm_move_document' => 'Por favor, confirme a movimentação do documento.', @@ -368,6 +377,7 @@ URL: [url]', 'discspace' => 'Espaço em Disco', 'docs_in_reception_no_access' => 'Documentos com recepção sem acesso pelo destinatário', 'docs_in_revision_no_access' => 'Documentos em revisão sem acesso por revisor', +'docs_with_missing_revision_date' => '', 'document' => 'Documento', 'documentcontent' => 'Conteúdo do Documento', 'documents' => 'Documentos', @@ -645,6 +655,7 @@ URL: [url]', 'filetype' => '', 'file_size' => 'Tamanho', 'filter_for_documents' => 'Filtro adicional para documentos', +'filter_for_documents_and_folders' => '', 'filter_for_folders' => 'Filtro adicional para pasta', 'folder' => 'Pasta', 'folders' => 'Pastas', @@ -723,8 +734,14 @@ URL: [url]', 'group_approval_summary' => 'Resumo de aprovação de grupo', 'group_exists' => 'Grupo já existe.', 'group_info' => 'Informações do grupo', +'group_is_mandatory_approver' => '', +'group_is_mandatory_reviewer' => '', 'group_management' => 'Grupos', 'group_members' => 'Membros do Grupo', +'group_previously_removed_from_approvers' => '', +'group_previously_removed_from_recipients' => '', +'group_previously_removed_from_reviewers' => '', +'group_previously_removed_from_revisors' => '', 'group_receipt_summary' => 'Resumo de recebimento de grupo', 'group_review_removed' => '', 'group_review_summary' => 'Resumo da avaliação do grupo', @@ -805,6 +822,7 @@ URL: [url]', 'in_folder' => 'Na pasta', 'in_revision' => 'Em revisão', 'in_workflow' => 'No fluxo de trabalho', +'iptc_metadata' => '', 'is_disabled' => 'Desativar conta', 'is_hidden' => 'Ocultar perfil da lista de usuários', 'it_IT' => 'Italiano', @@ -888,6 +906,8 @@ URL: [url]', 'mandatory_reviewers' => 'Avaliadores obrigatórios', 'mandatory_reviewer_no_access' => 'Avaliação obrigatória \'[usuário]\' tem direitos de acesso insuficientes.', 'march' => 'Março', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => 'Tamanho máximo de arquivo para upload', 'may' => 'Maio', 'menu_dropfolder' => 'Pasta suspensa', @@ -1016,6 +1036,7 @@ URL: [url]', 'no_previous_versions' => 'Nenhuma outra versão encontrada', 'no_receipt_needed' => 'Atualmente, não há documentos que exijam uma confirmação de recebimento.', 'no_review_needed' => 'Nenhuma revisão pendente.', +'no_revision_date' => '', 'no_revision_needed' => 'Nenhuma revisão pendente.', 'no_revision_planed' => 'Nenhuma revisão do documento agendada.', 'no_update_cause_locked' => 'Por isso você não pode atualizar este documento. Por favor contacte usuário que poáui a trava.', @@ -1373,6 +1394,7 @@ URL: [url]', 'select_attrdefgrp_show' => 'Escolha quando mostrar', 'select_attribute_value' => 'Selecione o valor do atributo', 'select_category' => 'Clique para selecionar a categoria', +'select_documents_for_process' => '', 'select_group' => 'Selecione o grupo', 'select_groups' => 'Clique para selecionar os grupos', 'select_grp_approvers' => 'Clique para selecionar o grupo aprovador', @@ -2042,6 +2064,7 @@ Nome: [username] 'transfer_no_write_access' => 'O usuário não possui acesso de escrita na pasta', 'transfer_objects' => 'Transferir objetos', 'transfer_objects_to_user' => 'Novo proprietário', +'transfer_processes_to_user' => '', 'transfer_process_to_user' => '', 'transfer_to_user' => 'Transferir para o usuário', 'transition_triggered_email' => 'Transição de fluxo de trabalho desencadeado', @@ -2117,10 +2140,16 @@ URL: [url]', 'user_group_management' => 'Gerenciamento Usuários/Grupos', 'user_image' => 'Imagem', 'user_info' => 'Perfil do usuário', +'user_is_mandatory_approver' => '', +'user_is_mandatory_reviewer' => '', 'user_list' => 'Lista de Usuários', 'user_login' => 'Usuário', 'user_management' => 'Usuários', 'user_name' => 'Nome Completo', +'user_previously_removed_from_approvers' => '', +'user_previously_removed_from_recipients' => '', +'user_previously_removed_from_reviewers' => '', +'user_previously_removed_from_revisors' => '', 'use_comment_of_document' => 'Utilize comentário de documento', 'use_default_categories' => 'Utilize categorias predefinidas', 'use_default_keywords' => 'Use palavras-chave pré-definidas', diff --git a/languages/ro_RO/lang.inc b/languages/ro_RO/lang.inc index 5fdfb94ab..59c95cbe7 100644 --- a/languages/ro_RO/lang.inc +++ b/languages/ro_RO/lang.inc @@ -232,6 +232,14 @@ URL: [url]', 'backup_log_management' => 'Backup/Logging', 'backup_remove' => 'Sterge fișier backup', 'backup_tools' => 'Backup tools', +'batch_add_category_msg' => '', +'batch_change_category' => '', +'batch_change_owner' => '', +'batch_new_owner_msg' => '', +'batch_operation' => '', +'batch_operation_result' => '', +'batch_remove_category' => '', +'batch_remove_category_msg' => '', 'between' => 'între', 'bg_BG' => 'Bulgară', 'browse' => 'Browse', @@ -310,6 +318,7 @@ URL: [url]', 'comment_changed_email' => '', 'comment_for_current_version' => 'Comentariu versiune', 'configure_extension' => '', +'confirm_change_owner' => '', 'confirm_clear_cache' => '', 'confirm_create_fulltext_index' => 'Da, aș dori să recreeze indexul pentru tot textul!', 'confirm_move_document' => '', @@ -368,6 +377,7 @@ URL: [url]', 'discspace' => 'Spațiu pe disc', 'docs_in_reception_no_access' => '', 'docs_in_revision_no_access' => '', +'docs_with_missing_revision_date' => '', 'document' => 'Document', 'documentcontent' => 'Continut Document', 'documents' => 'Documente', @@ -633,6 +643,7 @@ URL: [url]', 'filetype' => '', 'file_size' => 'Mărimea fișierului', 'filter_for_documents' => 'Filtru suplimentar pentru documente', +'filter_for_documents_and_folders' => '', 'filter_for_folders' => 'Filtru suplimentar pentru foldere', 'folder' => 'Folder', 'folders' => 'Foldere', @@ -704,8 +715,14 @@ URL: [url]', 'group_approval_summary' => 'Sumar aprobare grup', 'group_exists' => 'Grupul există deja.', 'group_info' => '', +'group_is_mandatory_approver' => '', +'group_is_mandatory_reviewer' => '', 'group_management' => 'Management grupuri', 'group_members' => 'Membrii grupului', +'group_previously_removed_from_approvers' => '', +'group_previously_removed_from_recipients' => '', +'group_previously_removed_from_reviewers' => '', +'group_previously_removed_from_revisors' => '', 'group_receipt_summary' => '', 'group_review_removed' => '', 'group_review_summary' => 'Sumar revizuiri grup', @@ -786,6 +803,7 @@ URL: [url]', 'in_folder' => '', 'in_revision' => 'In revizuire', 'in_workflow' => 'În workflow', +'iptc_metadata' => '', 'is_disabled' => 'Dezactivează cont', 'is_hidden' => 'Ascunde din lista de utilizatori', 'it_IT' => 'Italiană', @@ -869,6 +887,8 @@ URL: [url]', 'mandatory_reviewers' => 'Revizuitori obligatorii', 'mandatory_reviewer_no_access' => 'Revizuitorul obligatoriu \'[user]\' are drepturi de acces insuficiente.', 'march' => 'Martie', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => 'Dimensiunea maximă de încărcare', 'may' => 'Mai', 'menu_dropfolder' => '', @@ -998,6 +1018,7 @@ URL: [url]', 'no_previous_versions' => 'Nu sunt alte versiuni gasite', 'no_receipt_needed' => '', 'no_review_needed' => 'Nici o revizuire în așteptare.', +'no_revision_date' => '', 'no_revision_needed' => '', 'no_revision_planed' => '', 'no_update_cause_locked' => 'Deci, nu puteti sa actualizati acest document. Vă rugăm să contactați administratorul.', @@ -1340,6 +1361,7 @@ URL: [url]', 'select_attrdefgrp_show' => '', 'select_attribute_value' => '', 'select_category' => 'Click pentru a selecta categoria', +'select_documents_for_process' => '', 'select_group' => 'Selecteaza grupul', 'select_groups' => 'Click pentru a selecta grupuri', 'select_grp_approvers' => 'Click pentru a selecta grupul de aprobatori', @@ -2004,6 +2026,7 @@ URL: [url]', 'transfer_no_write_access' => 'Utilizatorul nu are drepturi de scriere pe acest dosar', 'transfer_objects' => '', 'transfer_objects_to_user' => '', +'transfer_processes_to_user' => '', 'transfer_process_to_user' => '', 'transfer_to_user' => 'Trabsferare catre alt utilizator', 'transition_triggered_email' => 'Tranziție Workflow declanșată', @@ -2079,10 +2102,16 @@ URL: [url]', 'user_group_management' => 'Management Utilizatorii/Grupuri', 'user_image' => 'Imagine', 'user_info' => 'Informații utilizator', +'user_is_mandatory_approver' => '', +'user_is_mandatory_reviewer' => '', 'user_list' => 'Lista de utilizatori', 'user_login' => 'ID Utilizator', 'user_management' => 'Management utilizatori', 'user_name' => 'Numele complet', +'user_previously_removed_from_approvers' => '', +'user_previously_removed_from_recipients' => '', +'user_previously_removed_from_reviewers' => '', +'user_previously_removed_from_revisors' => '', 'use_comment_of_document' => 'Utilizați comentarii la documente', 'use_default_categories' => 'Utilizați categorii predefinite', 'use_default_keywords' => 'Utilizați cuvinte cheie predefinite', diff --git a/languages/ru_RU/lang.inc b/languages/ru_RU/lang.inc index 4f97fcbf0..89c0ecf3a 100644 --- a/languages/ru_RU/lang.inc +++ b/languages/ru_RU/lang.inc @@ -232,6 +232,14 @@ URL: [url]', 'backup_log_management' => 'Резервные копии и журналы', 'backup_remove' => 'Удалить резервную копию', 'backup_tools' => 'Резервные копии', +'batch_add_category_msg' => '', +'batch_change_category' => '', +'batch_change_owner' => '', +'batch_new_owner_msg' => '', +'batch_operation' => '', +'batch_operation_result' => '', +'batch_remove_category' => '', +'batch_remove_category_msg' => '', 'between' => 'между', 'bg_BG' => 'Болгарский', 'browse' => 'Выбрать', @@ -310,6 +318,7 @@ URL: [url]', 'comment_changed_email' => 'Сообщение об изменении комментария', 'comment_for_current_version' => 'Комментарий версии', 'configure_extension' => '', +'confirm_change_owner' => '', 'confirm_clear_cache' => 'Подтвердить очистку кеша', 'confirm_create_fulltext_index' => 'Да, пересоздать полнотекстовый индекс!', 'confirm_move_document' => 'Подтвердить перемещение документа', @@ -368,6 +377,7 @@ URL: [url]', 'discspace' => 'Дисковое пространство', 'docs_in_reception_no_access' => '', 'docs_in_revision_no_access' => '', +'docs_with_missing_revision_date' => '', 'document' => 'Документ', 'documentcontent' => 'Содержание документа', 'documents' => 'док.', @@ -633,6 +643,7 @@ URL: [url]', 'filetype' => '', 'file_size' => 'Размер', 'filter_for_documents' => 'Дополнительный фильтр по документам', +'filter_for_documents_and_folders' => '', 'filter_for_folders' => 'Дополнительный фильтр по папкам', 'folder' => 'Каталог', 'folders' => 'кат.', @@ -704,8 +715,14 @@ URL: [url]', 'group_approval_summary' => 'Сводка по утверждению группы', 'group_exists' => 'Группа уже существует', 'group_info' => 'Информация о группе', +'group_is_mandatory_approver' => '', +'group_is_mandatory_reviewer' => '', 'group_management' => 'Управление группами', 'group_members' => 'Члены группы', +'group_previously_removed_from_approvers' => '', +'group_previously_removed_from_recipients' => '', +'group_previously_removed_from_reviewers' => '', +'group_previously_removed_from_revisors' => '', 'group_receipt_summary' => 'Обзор подтверждений получения группой', 'group_review_removed' => '', 'group_review_summary' => 'Сводка по рецензированию группы', @@ -786,6 +803,7 @@ URL: [url]', 'in_folder' => 'В каталоге', 'in_revision' => 'В рассмотрении', 'in_workflow' => 'В процессе', +'iptc_metadata' => '', 'is_disabled' => 'Отключить учётную запись', 'is_hidden' => 'Не показывать в
списке пользователей', 'it_IT' => 'Italian', @@ -869,6 +887,8 @@ URL: [url]', 'mandatory_reviewers' => 'Обязательные рецензенты', 'mandatory_reviewer_no_access' => 'Обязательный рецензент «[user]» не имеет достаточных прав доступа.', 'march' => 'Март', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => 'Ограничение размера файла', 'may' => 'Май', 'menu_dropfolder' => '', @@ -997,6 +1017,7 @@ URL: [url]', 'no_previous_versions' => 'Нет предыдущих версий', 'no_receipt_needed' => 'Нет документов, нуждающихся в подтверждении получения', 'no_review_needed' => 'Рецензия не требуется', +'no_revision_date' => '', 'no_revision_needed' => 'Ревизия не требуется', 'no_revision_planed' => 'Ревизия документа не запланирован', 'no_update_cause_locked' => 'Вы не можете обновить документ. Свяжитесь с заблокировавшим его пользователем.', @@ -1347,6 +1368,7 @@ URL: [url]', 'select_attrdefgrp_show' => '', 'select_attribute_value' => '', 'select_category' => 'Выберите категорию', +'select_documents_for_process' => '', 'select_group' => 'Выберите группу', 'select_groups' => 'Выберите группы', 'select_grp_approvers' => 'Выберите утверждающую группу', @@ -2011,6 +2033,7 @@ URL: [url]', 'transfer_no_write_access' => 'Пользователь не имеет доступа на запись в этой папке', 'transfer_objects' => '', 'transfer_objects_to_user' => '', +'transfer_processes_to_user' => '', 'transfer_process_to_user' => '', 'transfer_to_user' => 'Передать пользователю', 'transition_triggered_email' => 'Изменено состояние процесса', @@ -2086,10 +2109,16 @@ URL: [url]', 'user_group_management' => 'Пользователи и группы', 'user_image' => 'Изображение', 'user_info' => 'Информация о пользователе', +'user_is_mandatory_approver' => '', +'user_is_mandatory_reviewer' => '', 'user_list' => 'Список пользователей', 'user_login' => 'Пользователь', 'user_management' => 'Управление пользователями', 'user_name' => 'Полное имя', +'user_previously_removed_from_approvers' => '', +'user_previously_removed_from_recipients' => '', +'user_previously_removed_from_reviewers' => '', +'user_previously_removed_from_revisors' => '', 'use_comment_of_document' => 'Использовать комментарий документа', 'use_default_categories' => 'Использовать предопределённые категории', 'use_default_keywords' => 'Использовать предопределённые метки', diff --git a/languages/sk_SK/lang.inc b/languages/sk_SK/lang.inc index e32f76eb6..3d00e11e6 100644 --- a/languages/sk_SK/lang.inc +++ b/languages/sk_SK/lang.inc @@ -232,6 +232,14 @@ URL: [url]', 'backup_log_management' => 'Zálohovanie/Log-y', 'backup_remove' => 'Odstrániť zálohu', 'backup_tools' => 'Zálohovacie nástroje', +'batch_add_category_msg' => '', +'batch_change_category' => '', +'batch_change_owner' => '', +'batch_new_owner_msg' => '', +'batch_operation' => '', +'batch_operation_result' => '', +'batch_remove_category' => '', +'batch_remove_category_msg' => '', 'between' => 'medzi', 'bg_BG' => 'Bulharsky', 'browse' => 'Prehľadávať', @@ -310,6 +318,7 @@ URL: [url]', 'comment_changed_email' => 'Nepreložené', 'comment_for_current_version' => 'Version comment', 'configure_extension' => 'Configure extension', +'confirm_change_owner' => '', 'confirm_clear_cache' => 'Chcete naozaj vyčistiť vyrovnávaciu pamäť? Tým sa odstránia všetky predbežne náhľady obrázkov.', 'confirm_create_fulltext_index' => 'Áno, chcel by som obnoviť fullttext index!', 'confirm_move_document' => 'Potvrďte presunutie dokumentu.', @@ -368,6 +377,7 @@ URL: [url]', 'discspace' => 'Priestor na disku', 'docs_in_reception_no_access' => 'Documents with reception without access by recipient', 'docs_in_revision_no_access' => 'Documents in revision without access by revisor', +'docs_with_missing_revision_date' => '', 'document' => 'Dokument', 'documentcontent' => 'Obsah dokumentu', 'documents' => 'Dokumenty', @@ -645,6 +655,7 @@ URL: [url]', 'filetype' => '', 'file_size' => 'Veľkosť súboru', 'filter_for_documents' => 'Ďalší filter pre dokumenty', +'filter_for_documents_and_folders' => '', 'filter_for_folders' => 'Ďalší filter pre zložky', 'folder' => 'Zložka', 'folders' => 'Zložky', @@ -723,8 +734,14 @@ URL: [url]', 'group_approval_summary' => 'Zhrnutie skupinového schválenia', 'group_exists' => 'Skupina už existuje.', 'group_info' => 'Informácie o skupine', +'group_is_mandatory_approver' => '', +'group_is_mandatory_reviewer' => '', 'group_management' => 'Skupiny', 'group_members' => 'Členovia skupiny', +'group_previously_removed_from_approvers' => '', +'group_previously_removed_from_recipients' => '', +'group_previously_removed_from_reviewers' => '', +'group_previously_removed_from_revisors' => '', 'group_receipt_summary' => 'Group receipt summary', 'group_review_removed' => '', 'group_review_summary' => 'Zhrnutie skupinovej recenzie', @@ -805,6 +822,7 @@ URL: [url]', 'in_folder' => 'V', 'in_revision' => 'V revízií', 'in_workflow' => 'V pracovnom postupe', +'iptc_metadata' => '', 'is_disabled' => 'Zakázať účet', 'is_hidden' => 'Nezobrazovať v zozname používateľov', 'it_IT' => 'Taliančina', @@ -888,6 +906,8 @@ URL: [url]', 'mandatory_reviewers' => 'Mandatory reviewers', 'mandatory_reviewer_no_access' => 'Mandatory reviewer \'[user]\' has insufficient access rights.', 'march' => 'Marec', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => 'Maximálna veľkosť každého súboru', 'may' => 'Máj', 'menu_dropfolder' => 'Drop zložka', @@ -1017,6 +1037,7 @@ URL: [url]', 'no_previous_versions' => 'Neboli nájdené žiadne iné verzie', 'no_receipt_needed' => 'There are currently no documents requiring a receipt confirmation.', 'no_review_needed' => 'No review pending.', +'no_revision_date' => '', 'no_revision_needed' => 'No revision pending.', 'no_revision_planed' => 'No revision of document scheduled', 'no_update_cause_locked' => 'Preto nemôžete aktualizovať tento dokument. Kontaktujte používateľa, ktorý ho zamkol.', @@ -1375,6 +1396,7 @@ URL: [url]', 'select_attrdefgrp_show' => 'Choose when to show', 'select_attribute_value' => 'Vyberte hodnotu atribútu', 'select_category' => 'Vyber kategóriu', +'select_documents_for_process' => '', 'select_group' => 'Vybrať skupinu', 'select_groups' => 'Kliknutím vyberte skupiny', 'select_grp_approvers' => 'Kliknutím vyberte schvaľovateľa skupiny', @@ -2044,6 +2066,7 @@ Meno: [username] 'transfer_no_write_access' => 'Používateľ nemá práva na zapisovanie v adresári', 'transfer_objects' => 'Prenesené objekty', 'transfer_objects_to_user' => 'Nový vlastník', +'transfer_processes_to_user' => '', 'transfer_process_to_user' => '', 'transfer_to_user' => 'Transfer používateľovi', 'transition_triggered_email' => 'Workflow transition triggered', @@ -2119,10 +2142,16 @@ URL: [url]', 'user_group_management' => 'Správa užívateľov/skupín', 'user_image' => 'Obrázok', 'user_info' => 'Informácie o používateľovi', +'user_is_mandatory_approver' => '', +'user_is_mandatory_reviewer' => '', 'user_list' => 'Zoznam používateľov', 'user_login' => 'ID používateľa', 'user_management' => 'Používatelia', 'user_name' => 'Plné meno', +'user_previously_removed_from_approvers' => '', +'user_previously_removed_from_recipients' => '', +'user_previously_removed_from_reviewers' => '', +'user_previously_removed_from_revisors' => '', 'use_comment_of_document' => 'Použite komentár dokumentu', 'use_default_categories' => 'Použiť preddefinované kategórie', 'use_default_keywords' => 'Použiť preddefinované kľúčové slová', diff --git a/languages/sv_SE/lang.inc b/languages/sv_SE/lang.inc index 14b9e3ac6..ea4c3ed0a 100644 --- a/languages/sv_SE/lang.inc +++ b/languages/sv_SE/lang.inc @@ -233,6 +233,14 @@ URL: [url]', 'backup_log_management' => 'Backup/Loggning', 'backup_remove' => 'Ta bort backup-fil', 'backup_tools' => 'Backup-verktyg', +'batch_add_category_msg' => '', +'batch_change_category' => '', +'batch_change_owner' => '', +'batch_new_owner_msg' => '', +'batch_operation' => '', +'batch_operation_result' => '', +'batch_remove_category' => '', +'batch_remove_category_msg' => '', 'between' => 'mellan', 'bg_BG' => 'Bulgariska', 'browse' => 'Bläddra', @@ -311,6 +319,7 @@ URL: [url]', 'comment_changed_email' => '', 'comment_for_current_version' => 'Kommentar till versionen', 'configure_extension' => '', +'confirm_change_owner' => '', 'confirm_clear_cache' => 'Vill du verkligen rensa cachen? Detta kommer att ta bort alla förlagrade bilder för förhandsvisning.', 'confirm_create_fulltext_index' => 'Ja, jag vill återskapa fulltext-sökindex!', 'confirm_move_document' => 'Vänligen bekräfta flytt av dokumentet.', @@ -369,6 +378,7 @@ URL: [url]', 'discspace' => 'Diskutrymme', 'docs_in_reception_no_access' => 'Dokument med angiven mottagare som saknar behörighet till dokumentet', 'docs_in_revision_no_access' => 'Dokument med angiven granskare som saknar behörighet till dokumentet', +'docs_with_missing_revision_date' => '', 'document' => 'Dokument', 'documentcontent' => 'Dokumentinnehåll', 'documents' => 'Dokument', @@ -639,6 +649,7 @@ URL: [url]', 'filetype' => '', 'file_size' => 'Filstorlek', 'filter_for_documents' => 'Tilläggsfilter för dokument', +'filter_for_documents_and_folders' => '', 'filter_for_folders' => 'Tilläggsfilter för kataloger', 'folder' => 'Katalog', 'folders' => 'Kataloger', @@ -710,8 +721,14 @@ URL: [url]', 'group_approval_summary' => 'Sammanfattning av gruppgodkännande', 'group_exists' => 'Grupp finns redan.', 'group_info' => 'Gruppinformation', +'group_is_mandatory_approver' => '', +'group_is_mandatory_reviewer' => '', 'group_management' => 'Grupphantering', 'group_members' => 'Gruppmedlemmar', +'group_previously_removed_from_approvers' => '', +'group_previously_removed_from_recipients' => '', +'group_previously_removed_from_reviewers' => '', +'group_previously_removed_from_revisors' => '', 'group_receipt_summary' => 'Sammanfattning av mottagningsbevis för grupp', 'group_review_removed' => '', 'group_review_summary' => 'Sammanfattning av gruppgranskning', @@ -792,6 +809,7 @@ URL: [url]', 'in_folder' => 'I', 'in_revision' => 'Under granskning', 'in_workflow' => 'Utkast: under bearbetning', +'iptc_metadata' => '', 'is_disabled' => 'Inaktivera kontot', 'is_hidden' => 'Dölj från listan med användare', 'it_IT' => 'Italienska', @@ -875,6 +893,8 @@ URL: [url]', 'mandatory_reviewers' => 'Obligatoriska granskare', 'mandatory_reviewer_no_access' => 'Obligatorisk person som granskar \'[user]\' ar inga rättigheter.', 'march' => 'Mars', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => 'Maximal storlek för uppladdning', 'may' => 'Maj', 'menu_dropfolder' => 'Mapp för snabbuppladdning', @@ -1004,6 +1024,7 @@ URL: [url]', 'no_previous_versions' => 'Inga andra versioner hittades.', 'no_receipt_needed' => 'Det finns inga dokument som saknar mottagningsbevis.', 'no_review_needed' => 'Det finns inga dokument som du behöver granska.', +'no_revision_date' => '', 'no_revision_needed' => 'Ingen förestående revidering.', 'no_revision_planed' => 'Ingen planerad revidering av dokument', 'no_update_cause_locked' => 'därför kan du inte uppdatera detta dokument. Ta kontakt med användaren som låst dokumentet.', @@ -1348,6 +1369,7 @@ URL: [url]', 'select_attrdefgrp_show' => 'Välj visingsalternativ', 'select_attribute_value' => '', 'select_category' => 'Klicka för att välja en kategori', +'select_documents_for_process' => '', 'select_group' => 'Välj grupp', 'select_groups' => 'Välj grupper', 'select_grp_approvers' => 'Välj en grupp som ska godkänna', @@ -2017,6 +2039,7 @@ Kommentar: [comment]', 'transfer_no_write_access' => 'Användaren har inte skrivrättigheter i katalogen', 'transfer_objects' => 'Överför objekt', 'transfer_objects_to_user' => 'Ny ägare', +'transfer_processes_to_user' => '', 'transfer_process_to_user' => '', 'transfer_to_user' => 'Överför till användare', 'transition_triggered_email' => 'Arbetsflödesövergång utlöstes', @@ -2092,10 +2115,16 @@ URL: [url]', 'user_group_management' => 'Hantering av användare/grupper', 'user_image' => 'Bild', 'user_info' => 'Användarinformation', +'user_is_mandatory_approver' => '', +'user_is_mandatory_reviewer' => '', 'user_list' => 'Lista med användare', 'user_login' => 'Användarnamn', 'user_management' => 'Användar-hantering', 'user_name' => 'Helt namn', +'user_previously_removed_from_approvers' => '', +'user_previously_removed_from_recipients' => '', +'user_previously_removed_from_reviewers' => '', +'user_previously_removed_from_revisors' => '', 'use_comment_of_document' => 'Använd dokumentets kommentar', 'use_default_categories' => 'Använd fördefinerade kategorier', 'use_default_keywords' => 'Använd fördefinerade nyckelord', diff --git a/languages/tr_TR/lang.inc b/languages/tr_TR/lang.inc index f6428aca1..7dfe3251b 100644 --- a/languages/tr_TR/lang.inc +++ b/languages/tr_TR/lang.inc @@ -226,6 +226,14 @@ URL: [url]', 'backup_log_management' => 'Yedekleme/Loglama', 'backup_remove' => 'Yedek dosyasını sil', 'backup_tools' => 'Yedekleme araçları', +'batch_add_category_msg' => '', +'batch_change_category' => '', +'batch_change_owner' => '', +'batch_new_owner_msg' => '', +'batch_operation' => '', +'batch_operation_result' => '', +'batch_remove_category' => '', +'batch_remove_category_msg' => '', 'between' => 'arasında', 'bg_BG' => 'Bulgarca', 'browse' => 'Tara', @@ -304,6 +312,7 @@ URL: [url]', 'comment_changed_email' => '', 'comment_for_current_version' => 'Versiyon açıklaması', 'configure_extension' => '', +'confirm_change_owner' => '', 'confirm_clear_cache' => '', 'confirm_create_fulltext_index' => 'Evet, tam metin indeksini yeniden oluşturmak istiyorum!', 'confirm_move_document' => '', @@ -362,6 +371,7 @@ URL: [url]', 'discspace' => 'Disk alanı', 'docs_in_reception_no_access' => '', 'docs_in_revision_no_access' => '', +'docs_with_missing_revision_date' => '', 'document' => 'Doküman', 'documentcontent' => 'Döküman İçeriği', 'documents' => 'Dokümanlar', @@ -627,6 +637,7 @@ URL: [url]', 'filetype' => '', 'file_size' => 'Dosya boyutu', 'filter_for_documents' => 'Dokümanlar için ek filtreler', +'filter_for_documents_and_folders' => '', 'filter_for_folders' => 'Klasörler için ek filtreler', 'folder' => 'Klasör', 'folders' => 'Klasör', @@ -698,8 +709,14 @@ URL: [url]', 'group_approval_summary' => 'Grup onay özeti', 'group_exists' => 'Grup zaten mevcut.', 'group_info' => '', +'group_is_mandatory_approver' => '', +'group_is_mandatory_reviewer' => '', 'group_management' => 'Grup yönetimi', 'group_members' => 'Grup üyeleri', +'group_previously_removed_from_approvers' => '', +'group_previously_removed_from_recipients' => '', +'group_previously_removed_from_reviewers' => '', +'group_previously_removed_from_revisors' => '', 'group_receipt_summary' => '', 'group_review_removed' => '', 'group_review_summary' => 'Grup gözden geçirme özeti', @@ -780,6 +797,7 @@ URL: [url]', 'in_folder' => '', 'in_revision' => 'revizyonda', 'in_workflow' => 'İş Akışında', +'iptc_metadata' => '', 'is_disabled' => 'Hesap devredışı', 'is_hidden' => 'Kullanıcı listesinde gizle', 'it_IT' => 'İtalyanca', @@ -863,6 +881,8 @@ URL: [url]', 'mandatory_reviewers' => 'Zorunlu kontrol edenler', 'mandatory_reviewer_no_access' => 'Zorunlu kontrol üyesi \'[user]\' yetersiz erişim haklarına sahip', 'march' => 'Mart', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => 'Maksimum yükleme boyutu', 'may' => 'Mayıs', 'menu_dropfolder' => '', @@ -992,6 +1012,7 @@ URL: [url]', 'no_previous_versions' => 'Başka versiyon yok', 'no_receipt_needed' => '', 'no_review_needed' => 'Bekleyen kontrol yok.', +'no_revision_date' => '', 'no_revision_needed' => '', 'no_revision_planed' => '', 'no_update_cause_locked' => 'Bu doküman kilitli olduğundan güncellenemez. Lütfen kilitleyen kullanıcıyla görüşünüz.', @@ -1319,6 +1340,7 @@ URL: [url]', 'select_attrdefgrp_show' => '', 'select_attribute_value' => '', 'select_category' => 'Kategori seçmek için tıklayın', +'select_documents_for_process' => '', 'select_group' => 'Grup Seç', 'select_groups' => 'Grup seçmek için tıklayın', 'select_grp_approvers' => 'Grup onaylayıcı seçmek için tıklayın', @@ -1983,6 +2005,7 @@ URL: [url]', 'transfer_no_write_access' => 'Kullanıcının klasör üzerinde yazma hakkı yok', 'transfer_objects' => '', 'transfer_objects_to_user' => '', +'transfer_processes_to_user' => '', 'transfer_process_to_user' => '', 'transfer_to_user' => 'Kullanıcıya transfer et', 'transition_triggered_email' => 'İş Akış Geçişi Tetiklendi', @@ -2058,10 +2081,16 @@ URL: [url]', 'user_group_management' => 'Kullanıcı/Grup Yönetimi', 'user_image' => 'İmaj', 'user_info' => 'Kullanıcı Bilgisi', +'user_is_mandatory_approver' => '', +'user_is_mandatory_reviewer' => '', 'user_list' => 'Kullanıcıların Listesi', 'user_login' => 'Kullanıcı adı', 'user_management' => 'Kullanıcı Yönetimi', 'user_name' => 'Tam isim', +'user_previously_removed_from_approvers' => '', +'user_previously_removed_from_recipients' => '', +'user_previously_removed_from_reviewers' => '', +'user_previously_removed_from_revisors' => '', 'use_comment_of_document' => 'Doküman açıklamasını kullan', 'use_default_categories' => 'Ön tanımlı kategorileri kullan', 'use_default_keywords' => 'Ön tanımlı anahtar kelimeleri kullan', diff --git a/languages/uk_UA/lang.inc b/languages/uk_UA/lang.inc index 9bccea671..c3150f174 100644 --- a/languages/uk_UA/lang.inc +++ b/languages/uk_UA/lang.inc @@ -232,6 +232,14 @@ URL: [url]', 'backup_log_management' => 'Резервні копії і журнали', 'backup_remove' => 'Видалити резервну копію', 'backup_tools' => 'Резервні копії', +'batch_add_category_msg' => '', +'batch_change_category' => '', +'batch_change_owner' => '', +'batch_new_owner_msg' => '', +'batch_operation' => '', +'batch_operation_result' => '', +'batch_remove_category' => '', +'batch_remove_category_msg' => '', 'between' => 'між', 'bg_BG' => 'Bulgarian', 'browse' => 'Вибрати', @@ -310,6 +318,7 @@ URL: [url]', 'comment_changed_email' => 'Повідомлення про зміну коментаря', 'comment_for_current_version' => 'Коментар версії', 'configure_extension' => '', +'confirm_change_owner' => '', 'confirm_clear_cache' => '', 'confirm_create_fulltext_index' => 'Так, перестворити повнотекстовий індекс!', 'confirm_move_document' => '', @@ -368,6 +377,7 @@ URL: [url]', 'discspace' => 'Дисковий простір', 'docs_in_reception_no_access' => '', 'docs_in_revision_no_access' => '', +'docs_with_missing_revision_date' => '', 'document' => 'Документ', 'documentcontent' => '', 'documents' => 'док.', @@ -633,6 +643,7 @@ URL: [url]', 'filetype' => '', 'file_size' => 'Розмір', 'filter_for_documents' => 'Додатковий фільтр по документах', +'filter_for_documents_and_folders' => '', 'filter_for_folders' => 'Додатковий фільтр по каталогах', 'folder' => 'Каталог', 'folders' => 'кат.', @@ -704,8 +715,14 @@ URL: [url]', 'group_approval_summary' => 'Підсумки затвердження групи', 'group_exists' => 'Група вже існує', 'group_info' => 'Інформація про групу', +'group_is_mandatory_approver' => '', +'group_is_mandatory_reviewer' => '', 'group_management' => 'Керування групами', 'group_members' => 'Члени групи', +'group_previously_removed_from_approvers' => '', +'group_previously_removed_from_recipients' => '', +'group_previously_removed_from_reviewers' => '', +'group_previously_removed_from_revisors' => '', 'group_receipt_summary' => 'Підсумки отримання групи', 'group_review_removed' => '', 'group_review_summary' => 'Підсумки рецензування групи', @@ -786,6 +803,7 @@ URL: [url]', 'in_folder' => '', 'in_revision' => 'В процесі ревізії', 'in_workflow' => 'В процесі', +'iptc_metadata' => '', 'is_disabled' => 'Відключити обліковий запис', 'is_hidden' => 'Не відображати в
переліку користувачів', 'it_IT' => 'Italian', @@ -869,6 +887,8 @@ URL: [url]', 'mandatory_reviewers' => 'Обов\'язкові рецензенти', 'mandatory_reviewer_no_access' => 'Обов\'язковий рецензент «[user]» не має достатніх прав доступу.', 'march' => 'Березень', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => 'Обмеження розміру файлу', 'may' => 'Травень', 'menu_dropfolder' => '', @@ -997,6 +1017,7 @@ URL: [url]', 'no_previous_versions' => 'Немає попередніх версій', 'no_receipt_needed' => 'Немає документів, які потребують підтвердження отримання', 'no_review_needed' => 'Рецензія не потрібна', +'no_revision_date' => '', 'no_revision_needed' => 'Ревізія не потрібна', 'no_revision_planed' => 'Повторне опрацювання не заплановане', 'no_update_cause_locked' => 'Ви не можете оновити документ. Зв\'яжіться з користувачем, який його заблокував.', @@ -1340,6 +1361,7 @@ URL: [url]', 'select_attrdefgrp_show' => '', 'select_attribute_value' => '', 'select_category' => 'Оберіть категорію', +'select_documents_for_process' => '', 'select_group' => '', 'select_groups' => 'Оберіть групи', 'select_grp_approvers' => 'Оберіть групу затверджувачів', @@ -2004,6 +2026,7 @@ URL: [url]', 'transfer_no_write_access' => '', 'transfer_objects' => '', 'transfer_objects_to_user' => '', +'transfer_processes_to_user' => '', 'transfer_process_to_user' => '', 'transfer_to_user' => 'Передати користувачу', 'transition_triggered_email' => 'Змінено стан процесу', @@ -2079,10 +2102,16 @@ URL: [url]', 'user_group_management' => 'Користувачі і групи', 'user_image' => 'Зображення', 'user_info' => 'Інформація про користувача', +'user_is_mandatory_approver' => '', +'user_is_mandatory_reviewer' => '', 'user_list' => 'Перелік користувачів', 'user_login' => 'Користувач', 'user_management' => 'Керування користувачами', 'user_name' => 'Повне ім\'я', +'user_previously_removed_from_approvers' => '', +'user_previously_removed_from_recipients' => '', +'user_previously_removed_from_reviewers' => '', +'user_previously_removed_from_revisors' => '', 'use_comment_of_document' => 'Використовувати коментар документа', 'use_default_categories' => 'Використовувати наперед визначені категорії', 'use_default_keywords' => 'Використовувати наперед визначені ключові слова', diff --git a/languages/zh_CN/lang.inc b/languages/zh_CN/lang.inc index 2497b16af..bf8a2dd0e 100644 --- a/languages/zh_CN/lang.inc +++ b/languages/zh_CN/lang.inc @@ -224,6 +224,14 @@ URL: [url]', 'backup_log_management' => '备份/日志', 'backup_remove' => '删除备份', 'backup_tools' => '备份工具', +'batch_add_category_msg' => '', +'batch_change_category' => '', +'batch_change_owner' => '', +'batch_new_owner_msg' => '', +'batch_operation' => '', +'batch_operation_result' => '', +'batch_remove_category' => '', +'batch_remove_category_msg' => '', 'between' => '时间段', 'bg_BG' => '保加利亚语', 'browse' => '浏览', @@ -302,6 +310,7 @@ URL: [url]', 'comment_changed_email' => '评论更新', 'comment_for_current_version' => '版本说明', 'configure_extension' => '配置扩展', +'confirm_change_owner' => '', 'confirm_clear_cache' => '确认清除缓存吗?这将删除所有预先计算的预览图像。', 'confirm_create_fulltext_index' => '确认重新创建全文索引', 'confirm_move_document' => '请确认移动文件', @@ -362,6 +371,7 @@ URL: [url]', 'discspace' => '磁盘空间', 'docs_in_reception_no_access' => '收件人未访问接收到的文档', 'docs_in_revision_no_access' => '修订人未访问带修订文档', +'docs_with_missing_revision_date' => '', 'document' => '文档', 'documentcontent' => '文档内容', 'documents' => '文档', @@ -635,6 +645,7 @@ URL: [url]', 'filetype' => '', 'file_size' => '文件大小', 'filter_for_documents' => '文档新增过滤', +'filter_for_documents_and_folders' => '', 'filter_for_folders' => '文件夹新增过滤', 'folder' => '文件夹', 'folders' => '文件夹', @@ -706,8 +717,14 @@ URL: [url]', 'group_approval_summary' => '审核组汇总', 'group_exists' => '组已存在', 'group_info' => '组信息', +'group_is_mandatory_approver' => '', +'group_is_mandatory_reviewer' => '', 'group_management' => '组管理', 'group_members' => '组成员', +'group_previously_removed_from_approvers' => '', +'group_previously_removed_from_recipients' => '', +'group_previously_removed_from_reviewers' => '', +'group_previously_removed_from_revisors' => '', 'group_receipt_summary' => '组别已收到汇总', 'group_review_removed' => '', 'group_review_summary' => '校对组汇总', @@ -788,6 +805,7 @@ URL: [url]', 'in_folder' => '在文件夹中', 'in_revision' => '修改中', 'in_workflow' => '在工作流中', +'iptc_metadata' => '', 'is_disabled' => '禁用帐户', 'is_hidden' => '从用户列表中隐藏', 'it_IT' => '意大利语', @@ -871,6 +889,8 @@ URL: [url]', 'mandatory_reviewers' => '必选校对人', 'mandatory_reviewer_no_access' => '必须的评审员\'[user]\'没有足够的访问权限', 'march' => '三 月', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => '最大上传文件大小', 'may' => '五 月', 'menu_dropfolder' => '删除文件夹', @@ -1000,6 +1020,7 @@ URL: [url]', 'no_previous_versions' => '无其它版本', 'no_receipt_needed' => '目前没有需要收据确认的文件', 'no_review_needed' => '无待校对的文件', +'no_revision_date' => '', 'no_revision_needed' => '没有待修订文件', 'no_revision_planed' => '没有修订文件的计划', 'no_update_cause_locked' => '您不能更新此文档,请联系该文档锁定人', @@ -1322,6 +1343,7 @@ URL: [url]', 'select_attrdefgrp_show' => '选择何时显示', 'select_attribute_value' => '选择属性值', 'select_category' => '选中分类', +'select_documents_for_process' => '', 'select_group' => '选择用户组', 'select_groups' => '点击选择组', 'select_grp_approvers' => '点击选择组审批组', @@ -1991,6 +2013,7 @@ URL: [url]', 'transfer_no_write_access' => '当前用户没有文件夹写入权限', 'transfer_objects' => '传输对象', 'transfer_objects_to_user' => '新的所有者', +'transfer_processes_to_user' => '', 'transfer_process_to_user' => '', 'transfer_to_user' => '共享给其他用户', 'transition_triggered_email' => '工作流转换触发', @@ -2057,10 +2080,16 @@ URL: [url]', 'user_group_management' => '用户/组的管理', 'user_image' => '用户图片', 'user_info' => '用户信息', +'user_is_mandatory_approver' => '', +'user_is_mandatory_reviewer' => '', 'user_list' => '用户列表', 'user_login' => '用户ID', 'user_management' => '用户管理', 'user_name' => '全名', +'user_previously_removed_from_approvers' => '', +'user_previously_removed_from_recipients' => '', +'user_previously_removed_from_reviewers' => '', +'user_previously_removed_from_revisors' => '', 'use_comment_of_document' => '文档注释', 'use_default_categories' => '默认分类', 'use_default_keywords' => '使用预定义关键字', diff --git a/languages/zh_TW/lang.inc b/languages/zh_TW/lang.inc index 4fe7770f3..a04043ebb 100644 --- a/languages/zh_TW/lang.inc +++ b/languages/zh_TW/lang.inc @@ -232,6 +232,14 @@ URL: [url]', 'backup_log_management' => '備份/日誌', 'backup_remove' => '刪除備份', 'backup_tools' => '備份工具', +'batch_add_category_msg' => '', +'batch_change_category' => '', +'batch_change_owner' => '', +'batch_new_owner_msg' => '', +'batch_operation' => '', +'batch_operation_result' => '', +'batch_remove_category' => '', +'batch_remove_category_msg' => '', 'between' => '時間段', 'bg_BG' => '保加利亞語', 'browse' => '瀏覽', @@ -310,6 +318,7 @@ URL: [url]', 'comment_changed_email' => '', 'comment_for_current_version' => '版本說明', 'configure_extension' => '配置擴充套件', +'confirm_change_owner' => '', 'confirm_clear_cache' => '您真的要清除緩存嗎?這將刪除所有預先計算的預覽圖像。', 'confirm_create_fulltext_index' => '確認已新增之全文索引', 'confirm_move_document' => '請確認移動文件。', @@ -368,6 +377,7 @@ URL: [url]', 'discspace' => '磁碟空間', 'docs_in_reception_no_access' => '帶有收件人的文件,收件人無法訪問', 'docs_in_revision_no_access' => '修訂中的文件,沒有修訂者可以訪問', +'docs_with_missing_revision_date' => '', 'document' => '文件', 'documentcontent' => '文件內容', 'documents' => '文件', @@ -645,6 +655,7 @@ URL: [url]', 'filetype' => '檔案類型', 'file_size' => '文件大小', 'filter_for_documents' => '附加文件過濾器', +'filter_for_documents_and_folders' => '', 'filter_for_folders' => '文件夾的附加過濾器', 'folder' => '資料夾', 'folders' => '資料夾', @@ -723,8 +734,14 @@ URL: [url]', 'group_approval_summary' => '審核組匯總', 'group_exists' => '組已存在', 'group_info' => '群組資訊', +'group_is_mandatory_approver' => '', +'group_is_mandatory_reviewer' => '', 'group_management' => '組管理', 'group_members' => '組成員', +'group_previously_removed_from_approvers' => '', +'group_previously_removed_from_recipients' => '', +'group_previously_removed_from_reviewers' => '', +'group_previously_removed_from_revisors' => '', 'group_receipt_summary' => '群組回覆匯總', 'group_review_removed' => '', 'group_review_summary' => '校對組匯總', @@ -805,6 +822,7 @@ URL: [url]', 'in_folder' => '在', 'in_revision' => '修訂中', 'in_workflow' => '在工作流程中', +'iptc_metadata' => '', 'is_disabled' => '禁用帳戶', 'is_hidden' => '從使用者列表中隱藏', 'it_IT' => '義大利語', @@ -888,6 +906,8 @@ URL: [url]', 'mandatory_reviewers' => '強制性審稿人', 'mandatory_reviewer_no_access' => '強制性審閱者\'[user] \'沒有足夠的訪問權限。', 'march' => '三 月', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => '最大上傳文件大小', 'may' => '五 月', 'menu_dropfolder' => '下拉目錄', @@ -1017,6 +1037,7 @@ URL: [url]', 'no_previous_versions' => '無其它版本', 'no_receipt_needed' => '當前沒有需要收據確認的文件。', 'no_review_needed' => '無待校對的文件', +'no_revision_date' => '', 'no_revision_needed' => '沒有待定的修訂。', 'no_revision_planed' => '未計劃修訂文件', 'no_update_cause_locked' => '您不能更新此文件,請聯繫該文件鎖定人', @@ -1373,6 +1394,7 @@ URL: [url]', 'select_attrdefgrp_show' => '選擇當展示時', 'select_attribute_value' => '選擇屬性值', 'select_category' => '選中分類', +'select_documents_for_process' => '', 'select_group' => '選擇群', 'select_groups' => '點擊選擇組', 'select_grp_approvers' => '請點選審核人員群組', @@ -2042,6 +2064,7 @@ URL: [url]', 'transfer_no_write_access' => '用戶在文件夾中沒有寫權限', 'transfer_objects' => '傳送物件', 'transfer_objects_to_user' => '新擁有者', +'transfer_processes_to_user' => '', 'transfer_process_to_user' => '傳送處理給使用者', 'transfer_to_user' => '傳送給使用者', 'transition_triggered_email' => '觸發工作流程過渡', @@ -2117,10 +2140,16 @@ URL: [url]', 'user_group_management' => '使用者/組的管理', 'user_image' => '使用者圖片', 'user_info' => '使用者資訊', +'user_is_mandatory_approver' => '', +'user_is_mandatory_reviewer' => '', 'user_list' => '使用者列表', 'user_login' => '使用者ID', 'user_management' => '使用者管理', 'user_name' => '全名', +'user_previously_removed_from_approvers' => '', +'user_previously_removed_from_recipients' => '', +'user_previously_removed_from_reviewers' => '', +'user_previously_removed_from_revisors' => '', 'use_comment_of_document' => '使用文件的評論', 'use_default_categories' => '默認分類', 'use_default_keywords' => '使用預定義關鍵字', diff --git a/op/op.AddDocument.php b/op/op.AddDocument.php index 2825ceb20..add3a5161 100644 --- a/op/op.AddDocument.php +++ b/op/op.AddDocument.php @@ -261,7 +261,7 @@ function reArrayFiles(&$file_post) { return $file_ary; } -if ($_FILES['userfile']) { +if(!empty($_FILES['userfile'])) { $file_ary = reArrayFiles($_FILES['userfile']); } else { $file_ary = array(); @@ -403,7 +403,7 @@ foreach($file_ary as $file) { $controller->setParam('maxsizeforfulltext', $settings->_maxSizeForFullText); $controller->setParam('defaultaccessdocs', $settings->_defaultAccessDocs); - if(!$document = $controller->run()) { + if(!$document = $controller()) { $err = $controller->getErrorMsg(); if(is_string($err)) $errmsg = getMLText($err); diff --git a/op/op.AddSubFolder.php b/op/op.AddSubFolder.php index 5c8efb226..716c6bff5 100644 --- a/op/op.AddSubFolder.php +++ b/op/op.AddSubFolder.php @@ -116,7 +116,7 @@ $controller->setParam('sequence', $sequence); $controller->setParam('attributes', $attributes); $controller->setParam('notificationgroups', $notgroups); $controller->setParam('notificationusers', $notusers); -if(!$subFolder = $controller->run()) { +if(!$subFolder = $controller()) { UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText($controller->getErrorMsg())); } else { // Send notification to subscribers. diff --git a/op/op.Ajax.php b/op/op.Ajax.php index 5c2944d18..d84ded609 100644 --- a/op/op.Ajax.php +++ b/op/op.Ajax.php @@ -133,7 +133,9 @@ switch($command) { if($hits) { $result = array(); foreach($hits['docs'] as $hit) { - $result[] = $hit->getID().'#'.$hit->getName(); + if($hit->getAccessMode($user, 'search') >= M_READ) { + $result[] = $hit->getID().'#'.$hit->getName(); + } } header('Content-Type: application/json'); echo json_encode($result); @@ -152,26 +154,30 @@ switch($command) { if(count($hits['folders']) == 1) { $hit = $hits['folders'][0]; $basefolder = $dms->getFolder($hit->getID()); - if($subquery = substr($query, $pos+1)) { - $hits = $dms->search($subquery, $limit=0, $offset=0, $logicalmode='AND', $searchin=array(), $startFolder=$basefolder, $owner=null, $status = array(), $creationstartdate=array(), $creationenddate=array(), $modificationstartdate=array(), $modificationenddate=array(), $categories=array(), $attributes=array(), $mode=0x2, $expirationstartdate=array(), $expirationenddate=array()); - if($hits) { + if($basefolder->getAccessMode($user, 'search') >= M_READ) { + if($subquery = substr($query, $pos+1)) { + $hits = $dms->search($subquery, $limit=0, $offset=0, $logicalmode='AND', $searchin=array(), $startFolder=$basefolder, $owner=null, $status = array(), $creationstartdate=array(), $creationenddate=array(), $modificationstartdate=array(), $modificationenddate=array(), $categories=array(), $attributes=array(), $mode=0x2, $expirationstartdate=array(), $expirationenddate=array()); + if($hits) { + $result = array(); + foreach($hits['folders'] as $hit) { + if($hit->getAccessMode($user, 'search') >= M_READ) + $result[] = $hit->getID().'#'.$basefolder->getName().'/'.$hit->getName(); + } + header('Content-Type: application/json'); + echo json_encode($result); + return; + } + } else { + $subfolders = $basefolder->getSubFolders(); + $subfolders = SeedDMS_Core_DMS::filterAccess($subfolders, $user, M_READ); $result = array(); - foreach($hits['folders'] as $hit) { - $result[] = $hit->getID().'#'.$basefolder->getName().'/'.$hit->getName(); + foreach($subfolders as $subfolder) { + $result[] = $subfolder->getID().'#'.$basefolder->getName().'/'.$subfolder->getName(); } header('Content-Type: application/json'); echo json_encode($result); return; } - } else { - $subfolders = $basefolder->getSubFolders(); - $result = array(); - foreach($subfolders as $subfolder) { - $result[] = $subfolder->getID().'#'.$basefolder->getName().'/'.$subfolder->getName(); - } - header('Content-Type: application/json'); - echo json_encode($result); - return; } } } @@ -180,7 +186,8 @@ switch($command) { if($hits) { $result = array(); foreach($hits['folders'] as $hit) { - $result[] = $hit->getID().'#'.$hit->getName(); + if($hit->getAccessMode($user, 'search') >= M_READ) + $result[] = $hit->getID().'#'.$hit->getName(); } header('Content-Type: application/json'); echo json_encode($result); @@ -546,7 +553,7 @@ switch($command) { $controller = Controller::factory('RemoveDocument', array('dms'=>$dms, 'user'=>$user)); $controller->setParam('document', $document); $controller->setParam('fulltextservice', $fulltextservice); - if($controller->run()) { + if($controller()) { if ($notifier){ /* $document still has the data from the just deleted document, * which is just enough to send the email. @@ -828,7 +835,7 @@ switch($command) { $controller->setParam('maxsizeforfulltext', $settings->_maxSizeForFullText); $controller->setParam('defaultaccessdocs', $settings->_defaultAccessDocs); - if(!$document = $controller->run()) { + if(!$document = $controller()) { header('Content-Type: application/json'); echo json_encode(array('success'=>false, 'message'=>getMLText($controller->getErrorMsg()))); exit; diff --git a/op/op.AttributeMgr.php b/op/op.AttributeMgr.php index 87c60eeb5..e263c93de 100644 --- a/op/op.AttributeMgr.php +++ b/op/op.AttributeMgr.php @@ -84,7 +84,7 @@ if ($action == "addattrdef") { $controller->setParam('maxvalues', $maxvalues); $controller->setParam('valueset', $valueset); $controller->setParam('regex', $regex); - if (!($newAttrdef = $controller($_POST))) { + if (!($newAttrdef = $controller())) { UI::exitError(getMLText("admin_tools"),getMLText("error_occured")); } diff --git a/op/op.ClearCache.php b/op/op.ClearCache.php index 77dfcb2ed..ad9a1d63f 100644 --- a/op/op.ClearCache.php +++ b/op/op.ClearCache.php @@ -43,7 +43,7 @@ if(!is_dir($settings->_cacheDir)) { } $controller->setParam('post', $_POST); -if(!$controller->run()) +if(!$controller()) $session->setSplashMsg(array('type'=>'error', 'msg'=>getMLText('error_cleared_cache'))); else $session->setSplashMsg(array('type'=>'success', 'msg'=>getMLText('splash_cleared_cache'))); diff --git a/op/op.DocumentAccess.php b/op/op.DocumentAccess.php index e256435af..d4877c736 100644 --- a/op/op.DocumentAccess.php +++ b/op/op.DocumentAccess.php @@ -138,7 +138,7 @@ $controller->setParam('mode', $mode); $controller->setParam('userid', $userid); $controller->setParam('groupid', $groupid); $controller->setParam('newowner', $newowner); -if(!$controller->run()) { +if(!$controller()) { UI::exitError(getMLText("folder_title", array("foldername" => htmlspecialchars($foldername))),getMLText("error_change_access")); } diff --git a/op/op.Download.php b/op/op.Download.php index c14117499..585251152 100644 --- a/op/op.Download.php +++ b/op/op.Download.php @@ -62,7 +62,7 @@ if (isset($_GET["version"])) { /* {{{ */ $controller->setParam('document', $document); $controller->setParam('version', $version); $controller->setParam('type', 'version'); - if(!$controller->run()) { + if(!$controller()) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("invalid_version")); } diff --git a/op/op.EditAttributes.php b/op/op.EditAttributes.php index 6a0f75890..3dd4f21b7 100644 --- a/op/op.EditAttributes.php +++ b/op/op.EditAttributes.php @@ -77,7 +77,7 @@ if($attributes) { $attribute = date('Y-m-d', makeTsFromDate($attribute)); break; } - if(!$attrdef->validate($attribute, $version, true)) { + if(!$attrdef->validate($attribute, $version, false)) { $errmsg = getAttributeValidationText($attrdef->getValidationError(), $attrdef->getName(), $attribute); UI::exitError(getMLText("document_title", array("documentname" => $document->getName())), $errmsg); } diff --git a/op/op.EditDocument.php b/op/op.EditDocument.php index 8e9f21518..0876c7971 100644 --- a/op/op.EditDocument.php +++ b/op/op.EditDocument.php @@ -136,7 +136,7 @@ $controller->setParam('categories', $categories); $controller->setParam('expires', $expires); $controller->setParam('sequence', $sequence); $controller->setParam('attributes', $attributes); -if(!$controller->run()) { +if(!$controller()) { $err = $controller->getErrorMsg(); if(is_string($err)) $errmsg = getMLText($err); diff --git a/op/op.EditDocumentFile.php b/op/op.EditDocumentFile.php index 14f2e7c40..71f3ae0be 100644 --- a/op/op.EditDocumentFile.php +++ b/op/op.EditDocumentFile.php @@ -69,7 +69,7 @@ $controller->setParam('name', isset($_POST['name']) ? $_POST['name'] : ''); $controller->setParam('comment', isset($_POST['comment']) ? $_POST['comment'] : ''); $controller->setParam('version', isset($_POST['version']) ? $_POST['version'] : ''); $controller->setParam('public', isset($_POST['public']) ? $_POST['public'] : ''); -if(!$controller->run()) { +if(!$controller()) { if($controller->getErrorMsg()) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())), $controller->getErrorMsg()); } diff --git a/op/op.EditFolder.php b/op/op.EditFolder.php index d834329b1..2a58a0286 100644 --- a/op/op.EditFolder.php +++ b/op/op.EditFolder.php @@ -85,7 +85,7 @@ $controller->setParam('name', $name); $controller->setParam('comment', $comment); $controller->setParam('sequence', $sequence); $controller->setParam('attributes', $attributes); -if(!$controller->run()) { +if(!$controller()) { $err = $controller->getErrorMsg(); if(is_string($err)) $errmsg = getMLText($err); diff --git a/op/op.ExtensionMgr.php b/op/op.ExtensionMgr.php index 6bc46add1..8e53c9d33 100644 --- a/op/op.ExtensionMgr.php +++ b/op/op.ExtensionMgr.php @@ -58,7 +58,7 @@ if ($action == "download") { /* {{{ */ // $extMgr = new SeedDMS_Extension_Mgr($settings->_rootDir."/ext", $settings->_cacheDir); $controller->setParam('extmgr', $extMgr); $controller->setParam('extname', $extname); - if (!$controller($_POST)) { + if (!$controller()) { echo json_encode(array('success'=>false, 'msg'=>'Could not download extension')); } add_log_line(); @@ -67,7 +67,7 @@ elseif ($action == "refresh") { /* {{{ */ // $extMgr = new SeedDMS_Extension_Mgr($settings->_rootDir."/ext", $settings->_cacheDir); $extMgr->createExtensionConf(); $controller->setParam('extmgr', $extMgr); - if (!$controller($_POST)) { + if (!$controller()) { UI::exitError(getMLText("admin_tools"),$extMgr->getErrorMsg()); } $session->setSplashMsg(array('type'=>'success', 'msg'=>getMLText('splash_extension_refresh'))); @@ -90,7 +90,7 @@ elseif ($action == "upload") { /* {{{ */ // $extMgr = new SeedDMS_Extension_Mgr($settings->_rootDir."/ext", $settings->_cacheDir); $controller->setParam('extmgr', $extMgr); $controller->setParam('file', $_FILES['userfile']['tmp_name']); - if (!$controller($_POST)) { + if (!$controller()) { UI::exitError(getMLText("admin_tools"),$controller->getErrorMsg()); } $session->setSplashMsg(array('type'=>'success', 'msg'=>getMLText('splash_extension_import'))); @@ -115,8 +115,8 @@ elseif ($action == "import") { /* {{{ */ // $extMgr = new SeedDMS_Extension_Mgr($settings->_rootDir."/ext", $settings->_cacheDir); $controller->setParam('extmgr', $extMgr); $controller->setParam('file', $file); - $_POST['action'] = 'upload'; - if (!$controller($_POST)) { + $controller->setParam('action', 'upload'); + if (!$controller()) { unlink($file); UI::exitError(getMLText("admin_tools"),getMLText("error_occured")); } @@ -130,8 +130,8 @@ elseif ($action == "getlist") { /* {{{ */ $controller->setParam('extmgr', $extMgr); $controller->setParam('forceupdate', (isset($_POST['forceupdate']) && $_POST['forceupdate']) ? true : false); $controller->setParam('version', $v->version()); - if (!$controller($_POST)) { - $session->setSplashMsg(array('type'=>'error', 'msg'=>getMLText('error_extension_getlist').$controller->getErrorMsg(), 'timeout'=>5000)); + if (!$controller()) { + $session->setSplashMsg(array('type'=>'error', 'msg'=>getMLText('error_extension_getlist').":".$controller->getErrorMsg(), 'timeout'=>5000)); } else { $session->setSplashMsg(array('type'=>'success', 'msg'=>getMLText('splash_extension_getlist'))); } @@ -148,7 +148,7 @@ elseif ($action == "toggle") { /* {{{ */ } $controller->setParam('extmgr', $extMgr); $controller->setParam('extname', $extname); - if (!$controller($_POST)) { + if (!$controller()) { echo json_encode(array('success'=>false, 'msg'=>getMLText('extinsion_toggle_error'))); } else { if($settings->extensionIsDisabled($extname)) diff --git a/op/op.ImportUsers.php b/op/op.ImportUsers.php index de10c8527..29315235a 100644 --- a/op/op.ImportUsers.php +++ b/op/op.ImportUsers.php @@ -35,6 +35,15 @@ function renderBaseData($colname, $objdata) { /* {{{ */ return $objdata[$colname]; } /* }}} */ +function getBooleanData($colname, $coldata, $objdata) { /* {{{ */ + $objdata[$colname] = $coldata == '1'; + return $objdata; +} /* }}} */ + +function renderBooleanData($colname, $objdata) { /* {{{ */ + return $objdata[$colname] ? '1' : '0'; +} /* }}} */ + function getPasswordPlainData($colname, $coldata, $objdata) { /* {{{ */ $objdata['passenc'] = seed_pass_hash($coldata); return $objdata; @@ -49,6 +58,10 @@ function getQuotaData($colname, $coldata, $objdata) { /* {{{ */ return $objdata; } /* }}} */ +function renderQuotaData($colname, $objdata) { /* {{{ */ + return SeedDMS_Core_File::format_filesize($objdata[$colname]); +} /* }}} */ + function getFolderData($colname, $coldata, $objdata) { /* {{{ */ global $dms; if($coldata) { @@ -173,6 +186,8 @@ if (isset($_FILES['userdata']) && $_FILES['userdata']['error'] == 0) { $colmap[$i] = array("getPasswordPlainData", "renderPasswordPlainData", 'passenc'); } elseif(in_array($colname, array('login', 'name', 'passenc', 'email', 'comment', 'group'))) { $colmap[$i] = array("getBaseData", "renderBaseData", $colname); + } elseif(in_array($colname, array('disabled', 'hidden'))) { + $colmap[$i] = array("getBooleanData", "renderBooleanData", $colname); } elseif(substr($colname, 0, 5) == 'attr:') { $kk = explode(':', $colname, 2); if(($attrdef = $dms->getAttributeDefinitionByName($kk[1])) || ($attrdef = $dms->getAttributeDefinition((int) $kk[1]))) { @@ -209,7 +224,7 @@ if (isset($_FILES['userdata']) && $_FILES['userdata']['error'] == 0) { $newusers[$md['login']] = $md; } } -// echo "
";print_r($newusers);echo "
"; +// echo "
";print_r($newusers);echo "
";exit; $makeupdate = !empty($_POST['update']); foreach($newusers as $uhash=>$u) { $log[$uhash] = []; @@ -244,6 +259,16 @@ if (isset($_FILES['userdata']) && $_FILES['userdata']['error'] == 0) { if($makeupdate) $eu->setQuota($u['quota']); } + if(isset($u['disabled']) && $u['disabled'] != $eu->isDisabled()) { + $log[$uhash][] = array('id'=>$eu->getLogin(), 'type'=>'success', 'msg'=> "Disabled flag of user updated. '".$u['disabled']."' != '".$eu->isDisabled()."'"); + if($makeupdate) + $eu->setDisabled($u['disabled']); + } + if(isset($u['hidden']) && $u['hidden'] != $eu->isHidden()) { + $log[$uhash][] = array('id'=>$eu->getLogin(), 'type'=>'success', 'msg'=> "Hidden flag of user updated. '".$u['hidden']."' != '".$eu->isHidden()."'"); + if($makeupdate) + $eu->setHidden($u['hidden']); + } if(isset($u['homefolder']) && $u['homefolder']->getId() != $eu->getHomeFolder()) { $log[$uhash][] = array('id'=>$eu->getLogin(), 'type'=>'success', 'msg'=> "Homefolder of user updated. '".(is_object($u['homefolder']) ? $u['homefolder']->getId() : '')."' != '".($eu->getHomeFolder() ? $eu->getHomeFolder() : '')."'"); if($makeupdate) @@ -286,10 +311,12 @@ if (isset($_FILES['userdata']) && $_FILES['userdata']['error'] == 0) { $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); if($view) { $view->setParam('log', $log); $view->setParam('newusers', $newusers); $view->setParam('colmap', $colmap); + $view->setParam('accessobject', $accessop); $view($_GET); exit; } diff --git a/op/op.Login.php b/op/op.Login.php index e9763ff97..8209e06ad 100644 --- a/op/op.Login.php +++ b/op/op.Login.php @@ -88,7 +88,7 @@ $controller->setParam('lang', $lang); $controller->setParam('sesstheme', $sesstheme); $controller->setParam('referuri', $referuri); $controller->setParam('session', $session); -if(!$controller->run()) { +if(!$controller()) { $session = null; add_log_line("login failed", PEAR_LOG_ERR); _printMessage(getMLText($controller->getErrorMsg()), getMLText($controller->getErrorMsg())."\n"); diff --git a/op/op.Logout.php b/op/op.Logout.php index 58d446500..96b99e430 100644 --- a/op/op.Logout.php +++ b/op/op.Logout.php @@ -53,7 +53,7 @@ if(isset($_COOKIE['mydms_session'])) { $controller->setParam('user', $user); $controller->setParam('session', $session); - $controller->run(); + $controller(); } //Forward to Login-page diff --git a/op/op.PdfPreview.php b/op/op.PdfPreview.php index e3743fb05..a516c6088 100644 --- a/op/op.PdfPreview.php +++ b/op/op.PdfPreview.php @@ -60,7 +60,7 @@ if(isset($_GET['version'])) { $controller->setParam('version', $version); $controller->setParam('type', 'version'); $controller->setParam('conversionmgr', $conversionmgr); - if(!$controller->run()) { + if(!$controller()) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("invalid_version")); } exit; diff --git a/op/op.Preview.php b/op/op.Preview.php index 9e560e4aa..d62d4a31c 100644 --- a/op/op.Preview.php +++ b/op/op.Preview.php @@ -55,16 +55,16 @@ if ($document->getAccessMode($user) < M_READ) { } $controller->setParam('conversionmgr', $conversionmgr); +$controller->setParam('width', !empty($_GET["width"]) ? $_GET["width"] : null); +$controller->setParam('document', $document); if(isset($_GET['version'])) { $version = $_GET["version"]; if (!is_numeric($version)) exit; - $controller->setParam('width', !empty($_GET["width"]) ? $_GET["width"] : null); - $controller->setParam('document', $document); + $controller->setParam('action', 'version'); $controller->setParam('version', $version); - $controller->setParam('type', 'version'); - if(!$controller->run()) { + if(!$controller()) { header('Content-Type: image/svg+xml'); readfile('../views/'.$theme.'/images/empty.svg'); exit; @@ -75,11 +75,9 @@ if(isset($_GET['version'])) { if (!is_numeric($file) || intval($file)<1) exit; $object = $document->getDocumentFile($file); - $controller->setParam('width', !empty($_GET["width"]) ? $_GET["width"] : null); - $controller->setParam('document', $document); + $controller->setParam('action', 'file'); $controller->setParam('object', $object); - $controller->setParam('type', 'file'); - if(!$controller->run()) { + if(!$controller()) { header('Content-Type: image/svg+xml'); readfile('../views/'.$theme.'/images/empty.svg'); exit; @@ -88,29 +86,3 @@ if(isset($_GET['version'])) { } else { exit; } - -/* From here on old code which isn't used anymore -if (!is_object($object)) { - exit; -} - -if(!empty($_GET["width"])) - $previewer = new SeedDMS_Preview_Previewer($settings->_cacheDir, $_GET["width"]); -else - $previewer = new SeedDMS_Preview_Previewer($settings->_cacheDir); -$previewer->setConverters($settings->_converters['preview']); -$previewer->setXsendfile($settings->_enableXsendfile); -if(!$previewer->hasPreview($object)) { - add_log_line(""); - if(!$previewer->createPreview($object)) { - } -} -if(!$previewer->hasPreview($object)) { - header('Content-Type: image/svg+xml'); - readfile('../views/'.$theme.'/images/empty.svg'); - exit; -} -header('Content-Type: image/png'); -$previewer->getPreview($object); - */ -?> diff --git a/op/op.RemoveDocument.php b/op/op.RemoveDocument.php index f700b96ac..36fb9bee1 100644 --- a/op/op.RemoveDocument.php +++ b/op/op.RemoveDocument.php @@ -78,7 +78,7 @@ $docname = $document->getName(); $controller->setParam('document', $document); $controller->setParam('fulltextservice', $fulltextservice); -if(!$controller->run()) { +if(!$controller()) { if ($controller->getErrorMsg() != '') $errormsg = $controller->getErrorMsg(); else diff --git a/op/op.RemoveFolder.php b/op/op.RemoveFolder.php index 5d0e09b64..caae1ad54 100644 --- a/op/op.RemoveFolder.php +++ b/op/op.RemoveFolder.php @@ -80,7 +80,7 @@ $nl = array( $controller->setParam('folder', $folder); $controller->setParam('fulltextservice', $fulltextservice); -if(!$controller->run()) { +if(!$controller()) { UI::exitError(getMLText("folder_title", array("foldername" => htmlspecialchars($foldername))),getMLText("error_remove_folder")); } @@ -88,6 +88,8 @@ if ($notifier) { $notifier->sendDeleteFolderMail($folder, $user); } +$session->setSplashMsg(array('type'=>'success', 'msg'=>getMLText('splash_rm_folder'))); + add_log_line("?folderid=".$folderid."&name=".$foldername); header("Location:../out/out.ViewFolder.php?folderid=".$parent->getID()."&showtree=".$_POST["showtree"]); diff --git a/op/op.RemoveVersion.php b/op/op.RemoveVersion.php index 480e73fa6..d372521b5 100644 --- a/op/op.RemoveVersion.php +++ b/op/op.RemoveVersion.php @@ -79,7 +79,7 @@ if (count($document->getContent())==1) { $controller->setParam('document', $document); $controller->setParam('fulltextservice', $fulltextservice); - if(!$controller->run()) { + if(!$controller()) { if ($controller->getErrorMsg() != '') $errormsg = $controller->getErrorMsg(); else diff --git a/op/op.TransferDocument.php b/op/op.TransferDocument.php index 12cd11810..d146c50d3 100644 --- a/op/op.TransferDocument.php +++ b/op/op.TransferDocument.php @@ -66,7 +66,7 @@ $oldowner = $document->getOwner(); $controller->setParam('document', $document); $controller->setParam('newuser', $newuser); -if(!$controller->run()) { +if(!$controller()) { UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("error_transfer_document")); } diff --git a/op/op.UpdateDocument.php b/op/op.UpdateDocument.php index 9c29d5230..117f20c99 100644 --- a/op/op.UpdateDocument.php +++ b/op/op.UpdateDocument.php @@ -286,7 +286,7 @@ default: $attribute = date('Y-m-d', makeTsFromDate($attribute)); break; } - if(!$attrdef->validate($attribute)) { + if(!$attrdef->validate($attribute, null, true)) { $errmsg = getAttributeValidationText($attrdef->getValidationError(), $attrdef->getName(), $attribute); UI::exitError(getMLText("document_title", array("documentname" => $document->getName())), $errmsg); } @@ -315,7 +315,7 @@ default: $controller->setParam('attributes', $attributes); $controller->setParam('workflow', $workflow); - if(!$content = $controller->run()) { + if(!$content = $controller()) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText($controller->getErrorMsg())); } else { if($controller->hasHook('cleanUpDocument')) { diff --git a/op/op.UserListCsv.php b/op/op.UserListCsv.php index 7e48c6dce..805787a62 100644 --- a/op/op.UserListCsv.php +++ b/op/op.UserListCsv.php @@ -43,7 +43,7 @@ $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); $controller = Controller::factory($tmp[1], array('dms'=>$dms, 'user'=>$user)); $controller->setParam('group', $group); -if(!$controller->run()) { +if(!$controller()) { if ($controller->getErrorMsg() != '') $errormsg = $controller->getErrorMsg(); else diff --git a/op/op.ViewOnline.php b/op/op.ViewOnline.php index ef15a0a7d..32d011bbc 100644 --- a/op/op.ViewOnline.php +++ b/op/op.ViewOnline.php @@ -56,7 +56,7 @@ if(isset($_GET["version"])) { /* {{{ */ $controller->setParam('document', $document); $controller->setParam('version', intval($version)); $controller->setParam('type', 'version'); - if(!$controller->run()) { + if(!$controller()) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("invalid_version")); } } /* }}} */ diff --git a/out/out.Calendar.php b/out/out.Calendar.php index ef95b50d8..22a40b405 100644 --- a/out/out.Calendar.php +++ b/out/out.Calendar.php @@ -71,6 +71,7 @@ if(isset($_GET['eventtype']) && $_GET['eventtype']) { if($view) { $view->setParam('accessobject', $accessop); + $view->setParam('conversionmgr', $conversionmgr); $view->setParam('onepage', $settings->_onePageMode); // do most navigation by reloading areas of pages with ajax $view->setParam('calendar', $calendar); $view->setParam('start', $start); @@ -87,6 +88,7 @@ if($view) { $view->setParam('cachedir', $settings->_cacheDir); $view->setParam('previewWidthList', $settings->_previewWidthList); $view->setParam('previewWidthDetail', $settings->_previewWidthDetail); + $view->setParam('previewConverters', isset($settings->_converters['preview']) ? $settings->_converters['preview'] : array()); $view->setParam('timeout', $settings->_cmdTimeout); $view->setParam('accessobject', $accessop); $view->setParam('xsendfile', $settings->_enableXsendfile); diff --git a/out/out.RemoveUserFromProcesses.php b/out/out.RemoveUserFromProcesses.php index fa7247ffa..4521647fc 100644 --- a/out/out.RemoveUserFromProcesses.php +++ b/out/out.RemoveUserFromProcesses.php @@ -44,9 +44,9 @@ if (!is_object($rmuser)) { UI::exitError(getMLText("rm_user"),getMLText("invalid_user_id")); } -if ($rmuser->getID()==$user->getID()) { - UI::exitError(getMLText("rm_user"),getMLText("cannot_delete_yourself")); -} +//if ($rmuser->getID()==$user->getID()) { +// UI::exitError(getMLText("rm_user"),getMLText("cannot_delete_yourself")); +//} $task = null; if (isset($_GET["task"])) { diff --git a/out/out.Search.php b/out/out.Search.php index 2c1e21368..ad0ff113c 100644 --- a/out/out.Search.php +++ b/out/out.Search.php @@ -49,7 +49,23 @@ if (isset($_GET["navBar"])) { } } -$accessop = new SeedDMS_AccessOperation($dms, null, $user, $settings); +$includecontent = false; +if (isset($_GET["includecontent"]) && $_GET["includecontent"]) + $includecontent = true; + +$newowner = null; +if (isset($_GET["newowner"]) && is_numeric($_GET["newowner"]) && $_GET['newowner'] > 0) { + $newowner = $dms->getUser((int) $_GET['newowner']); +} + +$changecategory = null; +if (isset($_GET["changecategory"]) && is_numeric($_GET["changecategory"]) && $_GET['changecategory'] > 0) { + $changecategory = $dms->getDocumentCategory((int) $_GET['changecategory']); +} +$removecategory = 0; +if (isset($_GET["removecategory"]) && is_numeric($_GET["removecategory"]) && $_GET['removecategory'] > 0) { + $removecategory = (int) $_GET['removecategory']; +} $fullsearch = ((!isset($_GET["fullsearch"]) && $settings->_defaultSearchMethod == 'fulltext') || !empty($_GET["fullsearch"])) && $settings->_enableFullSearch; if($fullsearch) { @@ -90,7 +106,7 @@ if($fullsearch) { if (is_numeric($_GET["pg"]) && $_GET["pg"]>0) { $pageNumber = (integer)$_GET["pg"]; } - else if (!strcasecmp($_GET["pg"], "all")) { + elseif (!strcasecmp($_GET["pg"], "all")) { $pageNumber = "all"; } } @@ -211,7 +227,7 @@ if($fullsearch) { $dcount = isset($facets['record_type']['document']) ? $facets['record_type']['document'] : 0 ; } } - if($pageNumber != 'all' && $searchresult['count'] > $limit) { + if(/* $pageNumber != 'all' && */$searchresult['count'] > $limit) { $totalPages = (int) ($searchresult['count']/$limit); if($searchresult['count']%$limit) $totalPages++; @@ -462,7 +478,7 @@ if($fullsearch) { $pageNumber = (int) $_GET["pg"]; } elseif (!strcasecmp($_GET["pg"], "all")) { - // $limit = 0; + $pageNumber = "all"; } } @@ -497,11 +513,13 @@ if($fullsearch) { $entries = array(); $fcount = 0; - if($resArr['folders']) { - foreach ($resArr['folders'] as $entry) { - if ($entry->getAccessMode($user) >= M_READ) { - $entries[] = $entry; - $fcount++; + if(!isset($_GET['action']) || $_GET['action'] != 'export') { + if($resArr['folders']) { + foreach ($resArr['folders'] as $entry) { + if ($entry->getAccessMode($user) >= M_READ) { + $entries[] = $entry; + $fcount++; + } } } } @@ -509,17 +527,21 @@ if($fullsearch) { if($resArr['docs']) { foreach ($resArr['docs'] as $entry) { if ($entry->getAccessMode($user) >= M_READ) { - $entry->verifyLastestContentExpriry(); - $entries[] = $entry; - $dcount++; + if($entry->getLatestContent()) { + $entry->verifyLastestContentExpriry(); + $entries[] = $entry; + $dcount++; + } } } } - if (!isset($_GET["pg"]) || strcasecmp($_GET["pg"], "all")) { + $totalPages = 1; + if ((!isset($_GET['action']) || $_GET['action'] != 'export') /*&& (!isset($_GET["pg"]) || strcasecmp($_GET["pg"], "all"))*/) { $totalPages = (int) (count($entries)/$limit); if(count($entries)%$limit) $totalPages++; - $entries = array_slice($entries, ($pageNumber-1)*$limit, $limit); + if($pageNumber != 'all') + $entries = array_slice($entries, ($pageNumber-1)*$limit, $limit); } else $totalPages = 1; $facets = array(); @@ -539,10 +561,24 @@ if($settings->_showSingleSearchHit && count($entries) == 1) { } } else { $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); - $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'query'=>$query, 'searchhits'=>$entries, 'totalpages'=>$totalPages, 'pagenumber'=>$pageNumber, 'searchtime'=>$searchTime, 'urlparams'=>$_GET, 'cachedir'=>$settings->_cacheDir)); + $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user)); + $accessop = new SeedDMS_AccessOperation($dms, null, $user, $settings); if($view) { $view->setParam('facets', $facets); $view->setParam('accessobject', $accessop); + $view->setParam('query', $query); + $view->setParam('includecontent', $includecontent); + $view->setParam('marks', isset($_GET['marks']) ? $_GET['marks'] : array()); + $view->setParam('newowner', $newowner); + $view->setParam('changecategory', $changecategory); + $view->setParam('removecategory', $removecategory); + $view->setParam('searchhits', $entries); + $view->setParam('totalpages', $totalPages); + $view->setParam('pagenumber', $pageNumber); + $view->setParam('limit', $limit); + $view->setParam('searchtime', $searchTime); + $view->setParam('urlparams', $_GET); + $view->setParam('cachedir', $settings->_cacheDir); $view->setParam('onepage', $settings->_onePageMode); // do most navigation by reloading areas of pages with ajax $view->setParam('showtree', showtree()); $view->setParam('enableRecursiveCount', $settings->_enableRecursiveCount); @@ -582,8 +618,11 @@ if($settings->_showSingleSearchHit && count($entries) == 1) { $view->setParam('workflowmode', $settings->_workflowMode); $view->setParam('enablefullsearch', $settings->_enableFullSearch); $view->setParam('previewWidthList', $settings->_previewWidthList); + $view->setParam('previewConverters', isset($settings->_converters['preview']) ? $settings->_converters['preview'] : array()); + $view->setParam('conversionmgr', $conversionmgr); $view->setParam('timeout', $settings->_cmdTimeout); $view->setParam('xsendfile', $settings->_enableXsendfile); + $view->setParam('showsinglesearchhit', $settings->_showSingleSearchHit); $view($_GET); exit; } diff --git a/out/out.Timeline.php b/out/out.Timeline.php index 82f394588..ed7d8f2d2 100644 --- a/out/out.Timeline.php +++ b/out/out.Timeline.php @@ -48,14 +48,15 @@ if(isset($_GET['documentid']) && $_GET['documentid'] && is_numeric($_GET['docume if($document = $dms->getDocument($_GET["documentid"])) { if(isset($_GET['version']) && $_GET['version'] && is_numeric($_GET['version'])) { $content = $document->getContentByVersion($_GET['version']); + } else { + $content = $document->getLatestContent(); } } } if($view) { - $view->setParam('dms', $dms); - $view->setParam('user', $user); $view->setParam('accessobject', $accessop); + $view->setParam('conversionmgr', $conversionmgr); $view->setParam('onepage', $settings->_onePageMode); // do most navigation by reloading areas of pages with ajax $view->setParam('showtree', showtree()); $view->setParam('fromdate', isset($_GET['fromdate']) ? $_GET['fromdate'] : ''); @@ -66,6 +67,7 @@ if($view) { $view->setParam('cachedir', $settings->_cacheDir); $view->setParam('previewWidthList', $settings->_previewWidthList); $view->setParam('previewWidthDetail', $settings->_previewWidthDetail); + $view->setParam('previewConverters', isset($settings->_converters['preview']) ? $settings->_converters['preview'] : array()); $view->setParam('timeout', $settings->_cmdTimeout); $view->setParam('xsendfile', $settings->_enableXsendfile); $view($_GET); diff --git a/out/out.ViewFolder.php b/out/out.ViewFolder.php index 2aca32070..7e54d20f2 100644 --- a/out/out.ViewFolder.php +++ b/out/out.ViewFolder.php @@ -99,6 +99,7 @@ if($view) { $view->setParam('offset', $offset); $view->setParam('limit', $limit); $view->setParam('onepage', $settings->_onePageMode); // do most navigation by reloading areas of pages with ajax + $view->setParam('currenttab', 'folderinfo'); $view($_GET); exit; } diff --git a/restapi/index.php b/restapi/index.php index d3a1e7657..54306dea7 100644 --- a/restapi/index.php +++ b/restapi/index.php @@ -2470,7 +2470,7 @@ $app->get('/logout', \RestapiController::class.':doLogout'); $app->get('/account', \RestapiController::class.':getAccount'); $app->get('/search', \RestapiController::class.':doSearch'); $app->get('/searchbyattr', \RestapiController::class.':doSearchByAttr'); -$app->get('/folder/', \RestapiController::class.':getFolder'); +$app->get('/folder', \RestapiController::class.':getFolder'); $app->get('/folder/{id}', \RestapiController::class.':getFolder'); $app->post('/folder/{id}/move/{folderid}', \RestapiController::class.':moveFolder'); $app->delete('/folder/{id}', \RestapiController::class.':deleteFolder'); diff --git a/utils/indexer.php b/utils/indexer.php index 3abb67a5b..0784c6398 100644 --- a/utils/indexer.php +++ b/utils/indexer.php @@ -12,7 +12,7 @@ function usage() { /* {{{ */ echo " seeddms-indexer [-h] [-v] [-c] [--config ]".PHP_EOL; echo PHP_EOL; echo "Description:".PHP_EOL; - echo " This program recreates the full text index of SeedDMS.".PHP_EOL; + echo " This program recreates or updates the full text index of SeedDMS.".PHP_EOL; echo PHP_EOL; echo "Options:".PHP_EOL; echo " -h, --help: print usage information and exit.".PHP_EOL; @@ -42,6 +42,10 @@ if(isset($options['v']) || isset($options['verѕion'])) { exit(0); } +$config['log'] = true; +$config['verbosity'] = 3; +$config['stats'] = true; + /* Set alternative config file */ if(isset($options['config'])) { define('SEEDDMS_CONFIG_FILE', $options['config']); @@ -56,20 +60,21 @@ if(isset($options['c'])) { } include($myincpath."/inc/inc.Settings.php"); -if(empty($options['no-log'])) +if(empty($options['no-log'])) { + $config['log'] = false; include($myincpath."/inc/inc.LogInit.php"); +} include($myincpath."/inc/inc.Init.php"); include($myincpath."/inc/inc.Extension.php"); include($myincpath."/inc/inc.DBInit.php"); function tree($dms, $fulltextservice, $folder, $indent='', $numdocs) { /* {{{ */ - global $settings, $themes; + global $settings, $themes, $config, $stats; $index = $fulltextservice->Indexer(); $lucenesearch = $fulltextservice->Search(); -// echo $themes->black($indent."D ".$folder->getName()).PHP_EOL; - echo $themes->black($indent."D ".$folder->getId().":".$folder->getName()." "); + $prefix = $themes->black(($config['verbosity'] >= 3 ? $indent : '')."D ".$folder->getId().":".$folder->getName()." "); if(($numdocs == 0) || !($hit = $lucenesearch->getFolder($folder->getId()))) { try { $idoc = $fulltextservice->IndexedDocument($folder, true); @@ -81,9 +86,10 @@ function tree($dms, $fulltextservice, $folder, $indent='', $numdocs) { /* {{{ */ } } $index->addDocument($idoc); - echo $themes->green(" (Folder added)").PHP_EOL; + echo $prefix.$themes->green(" (Folder added)").PHP_EOL; + $stats['folder']['add']++; } catch(Exception $e) { - echo $themes->error(" (Timeout)").PHP_EOL; + echo $prefix.$themes->error(" (Timeout)").PHP_EOL; } } else { try { @@ -92,7 +98,9 @@ function tree($dms, $fulltextservice, $folder, $indent='', $numdocs) { /* {{{ */ $created = 0; } if($created >= $folder->getDate()) { - echo $themes->italic(" (Folder unchanged)").PHP_EOL; + if($config['verbosity'] >= 3) + echo $prefix.$themes->italic(" (Folder unchanged)").PHP_EOL; + $stats['folder']['unchanged']++; } else { $index->delete($hit->id); try { @@ -105,9 +113,10 @@ function tree($dms, $fulltextservice, $folder, $indent='', $numdocs) { /* {{{ */ } } $index->addDocument($idoc); - echo $themes->green(" (Folder updated)").PHP_EOL; + echo $prefix.$themes->green(" (Folder updated)").PHP_EOL; + $stats['folder']['update']++; } catch(Exception $e) { - echo $themes->error(" (Timeout)").PHP_EOL; + echo $prefix.$themes->error(" (Timeout)").PHP_EOL; } } } @@ -119,7 +128,7 @@ function tree($dms, $fulltextservice, $folder, $indent='', $numdocs) { /* {{{ */ $documents = $folder->getDocuments(); foreach($documents as $document) { - echo $themes->black($indent." ".$document->getId().":".$document->getName()." "); + $prefix = $themes->black(($config['verbosity'] >= 3 ? $indent : '')." ".$document->getId().":".$document->getName()." "); if(($numdocs == 0) || !($hit = $lucenesearch->getDocument($document->getId()))) { try { $idoc = $fulltextservice->IndexedDocument($document, true); @@ -131,9 +140,10 @@ function tree($dms, $fulltextservice, $folder, $indent='', $numdocs) { /* {{{ */ } } $index->addDocument($idoc); - echo $themes->green(" (Document added)").PHP_EOL; + echo $prefix.$themes->green(" (Document added)").PHP_EOL; + $stats['document']['add']++; } catch(Exception $e) { - echo $themes->error(" (Timeout)").PHP_EOL; + echo $prefix.$themes->error(" (Timeout)").PHP_EOL; } } else { try { @@ -143,7 +153,9 @@ function tree($dms, $fulltextservice, $folder, $indent='', $numdocs) { /* {{{ */ } $content = $document->getLatestContent(); if($created >= $content->getDate()) { - echo $themes->italic(" (Document unchanged)").PHP_EOL; + if($config['verbosity'] >= 3) + echo $prefix.$themes->italic(" (Document unchanged)").PHP_EOL; + $stats['document']['unchanged']++; } else { $index->delete($hit->id); try { @@ -156,9 +168,10 @@ function tree($dms, $fulltextservice, $folder, $indent='', $numdocs) { /* {{{ */ } } $index->addDocument($idoc); - echo $themes->green(" (Document updated)").PHP_EOL; + echo $prefix.$themes->green(" (Document updated)").PHP_EOL; + $stats['document']['update']++; } catch(Exception $e) { - echo $themes->error(" (Timeout)").PHP_EOL; + echo $prefix.$themes->error(" (Timeout)").PHP_EOL; } } } @@ -173,6 +186,12 @@ if(!$index) { exit(1); } +$stats['folder']['add'] = 0; +$stats['folder']['unchanged'] = 0; +$stats['folder']['update'] = 0; +$stats['document']['add'] = 0; +$stats['document']['unchanged'] = 0; +$stats['document']['update'] = 0; $numdocs = $fulltextservice->Indexer()->count(); $folder = $dms->getFolder($settings->_rootFolderID); /* if numdocs is 0, then there is no need to check if a document/folder is already @@ -182,3 +201,13 @@ tree($dms, $fulltextservice, $folder,'', $numdocs); $index->commit(); $index->optimize(); + +echo PHP_EOL; +echo $themes->black("Documents").PHP_EOL; +echo $themes->black(" added: ".$stats['document']['add']).PHP_EOL; +echo $themes->black(" updated: ".$stats['document']['update']).PHP_EOL; +echo $themes->black(" unchanged: ".$stats['document']['unchanged']).PHP_EOL; +echo $themes->black("Folders").PHP_EOL; +echo $themes->black(" added: ".$stats['folder']['add']).PHP_EOL; +echo $themes->black(" updated: ".$stats['folder']['update']).PHP_EOL; +echo $themes->black(" unchanged: ".$stats['folder']['unchanged']).PHP_EOL; diff --git a/views/bootstrap/class.AddDocument.php b/views/bootstrap/class.AddDocument.php index bee74b937..cb1698c10 100644 --- a/views/bootstrap/class.AddDocument.php +++ b/views/bootstrap/class.AddDocument.php @@ -224,7 +224,7 @@ console.log(params); if(!$nodocumentformfields || !in_array('categories', $nodocumentformfields)) { $options = array(); foreach($categories as $category) { - $options[] = array($category->getID(), $category->getName()); + $options[] = array($category->getID(), htmlspecialchars($category->getName())); } $this->formField( getMLText("categories"), diff --git a/views/bootstrap/class.AttributeMgr.php b/views/bootstrap/class.AttributeMgr.php index 16934ddb5..b3fe8817d 100644 --- a/views/bootstrap/class.AttributeMgr.php +++ b/views/bootstrap/class.AttributeMgr.php @@ -93,13 +93,19 @@ $(document).ready( function() { $content .= "".getMLText("attribute_value")."\n"; $content .= "".getMLText("attribute_count")."\n"; $content .= "\n"; + $content .= "\n"; $content .= "\n\n"; $separator = $selattrdef->getValueSetSeparator(); foreach($res['frequencies'][$type] as $entry) { $value = $selattrdef->parseValue($entry['value']); $content .= ""; $content .= "".htmlspecialchars(implode(''.($separator ? ' '.$separator.' ' : ' ; ').'', $value)).""; - $content .= "getID()."]=".urlencode($entry['value'])."\">".urlencode($entry['c']).""; + $content .= "getType() == SeedDMS_Core_AttributeDefinition::type_date) + $content .= "attributes[".$selattrdef->getID()."][from]=".urlencode($entry['value'])."&attributes[".$selattrdef->getID()."][to]=".urlencode($entry['value']); + else + $content .= "attributes[".$selattrdef->getID()."]=".urlencode($entry['value']); + $content .= "\">".urlencode($entry['c']).""; $content .= ""; /* various checks, if the value is valid */ if(!$selattrdef->validate($entry['value'])) { diff --git a/views/bootstrap/class.Bootstrap.php b/views/bootstrap/class.Bootstrap.php index e3af611d8..6f0dd0ed1 100644 --- a/views/bootstrap/class.Bootstrap.php +++ b/views/bootstrap/class.Bootstrap.php @@ -31,7 +31,7 @@ class SeedDMS_Theme_Style extends SeedDMS_View_Common { function __construct($params, $theme='bootstrap') { parent::__construct($params, $theme); - $this->extraheader = array('js'=>'', 'css'=>'', 'favicon'=>'', 'logo'=>''); + $this->extraheader = array('js'=>'', 'css'=>'', 'favicon'=>'', 'logo'=>'', 'logolink'=>''); $this->footerjs = array(); $this->nonces = array(); } @@ -151,7 +151,7 @@ background-image: linear-gradient(to bottom, #882222, #111111);; } /* }}} */ function htmlAddHeader($head, $type='js') { /* {{{ */ - if($type == 'logo' || $type == 'favicon') + if($type == 'logo' || $type == 'favicon' || $type == 'logolink') $this->extraheader[$type] = $head; else $this->extraheader[$type] .= $head; @@ -294,8 +294,8 @@ background-image: linear-gradient(to bottom, #882222, #111111);; echo "\n"; @@ -313,8 +313,8 @@ background-image: linear-gradient(to bottom, #882222, #111111);; echo " params['settings']->_httpRoot."op/op.Logout.php\">\n"; echo " \n"; echo " \n"; - echo " params['settings']->_httpRoot."out/out.ViewFolder.php?folderid=".$this->params['dms']->getRootFolder()->getId()."\">".(!empty($this->extraheader['logo']) ? '' : '').""; - echo " params['settings']->_httpRoot."out/out.ViewFolder.php?folderid=".$this->params['dms']->getRootFolder()->getId()."\">".(strlen($this->params['sitename'])>0 ? $this->params['sitename'] : "SeedDMS")."\n"; + echo " extraheader['logolink']) ? $this->extraheader['logolink'] : $this->params['settings']->_httpRoot."out/out.ViewFolder.php")."\">".(!empty($this->extraheader['logo']) ? '' : '').""; + echo " extraheader['logolink']) ? $this->extraheader['logolink'] : $this->params['settings']->_httpRoot."out/out.ViewFolder.php")."\">".(strlen($this->params['sitename'])>0 ? $this->params['sitename'] : "SeedDMS")."\n"; /* user profile menu {{{ */ if(isset($this->params['session']) && isset($this->params['user']) && $this->params['user']) { @@ -342,14 +342,14 @@ background-image: linear-gradient(to bottom, #882222, #111111);; if (!$this->params['user']->isGuest()) { $menuitems = array(); if ($accessobject->check_view_access('MyDocuments')) - $menuitems['my_documents'] = array('link'=>$this->params['settings']->_httpRoot."out/out.MyDocuments.php?inProcess=1", 'label'=>'my_documents'); + $menuitems['my_documents'] = array('link'=>$this->params['settings']->_httpRoot."out/out.MyDocuments.php?inProcess=1", 'label'=>getMLText('my_documents')); if ($accessobject->check_view_access('MyAccount')) - $menuitems['my_account'] = array('link'=>$this->params['settings']->_httpRoot."out/out.MyAccount.php", 'label'=>'my_account'); + $menuitems['my_account'] = array('link'=>$this->params['settings']->_httpRoot."out/out.MyAccount.php", 'label'=>getMLText('my_account')); if($this->hasHook('userMenuItems')) $menuitems = $this->callHook('userMenuItems', $menuitems); if($menuitems) { foreach($menuitems as $menuitem) { - echo "
  • ".getMLText($menuitem['label'])."
  • "; + echo "
  • ".$menuitem['label']."
  • "; } echo "
  • \n"; } @@ -430,11 +430,11 @@ background-image: linear-gradient(to bottom, #882222, #111111);; echo "
      \n"; $menuitems = array(); /* calendar {{{ */ - if ($this->params['enablecalendar'] && $accessobject->check_view_access('Calendar')) $menuitems['calendar'] = array('link'=>$this->params['settings']->_httpRoot.'out/out.Calendar.php?mode='.$this->params['calendardefaultview'], 'label'=>"calendar"); - if ($this->params['user']->isAdmin()) $menuitems['admintools'] = array('link'=>$this->params['settings']->_httpRoot.'out/out.AdminTools.php', 'label'=>"admin_tools"); + if ($this->params['enablecalendar'] && $accessobject->check_view_access('Calendar')) $menuitems['calendar'] = array('link'=>$this->params['settings']->_httpRoot.'out/out.Calendar.php?mode='.$this->params['calendardefaultview'], 'label'=>getMLText("calendar")); + if ($this->params['user']->isAdmin()) $menuitems['admintools'] = array('link'=>$this->params['settings']->_httpRoot.'out/out.AdminTools.php', 'label'=>getMLText("admin_tools")); if($this->params['enablehelp']) { $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); - $menuitems['help'] = array('link'=>$this->params['settings']->_httpRoot.'out/out.Help.php?context='.$tmp[1], 'label'=>"help"); + $menuitems['help'] = array('link'=>$this->params['settings']->_httpRoot.'out/out.Help.php?context='.$tmp[1], 'label'=>getMLText("help")); } /* }}} End of calendar */ @@ -444,14 +444,14 @@ background-image: linear-gradient(to bottom, #882222, #111111);; foreach($menuitems as $menuitem) { if(!empty($menuitem['children'])) { echo "
    • \n"; - echo " ".getMLText($menuitem['label'])." \n"; + echo " ".$menuitem['label']." \n"; echo " \n"; } else { - echo "
    • ".getMLText($menuitem['label'])."
    • "; + echo "
    • ".$menuitem['label']."
    • "; } } echo "
    \n"; @@ -693,9 +693,16 @@ background-image: linear-gradient(to bottom, #882222, #111111);; $menuitems['index_folder'] = array('link'=>$this->params['settings']->_httpRoot."out/out.Indexer.php?folderid=". $folderID."&showtree=".showtree(), 'label'=>getMLText('index_folder')); } - /* Check if hook exists because otherwise callHook() will override $menuitems */ - if($this->hasHook('folderNavigationBar')) - $menuitems = $this->callHook('folderNavigationBar', $folder, $menuitems); + /* Do not use $this->callHook() because $menuitems must be returned by the the + * first hook and passed to next hook. $this->callHook() will just pass + * the menuitems to each single hook. Hence, the last hook will win. + */ + $hookObjs = $this->getHookObjects(); + foreach($hookObjs as $hookObj) { + if (method_exists($hookObj, 'folderNavigationBar')) { + $menuitems = $hookObj->folderNavigationBar($this, $folder, $menuitems); + } + } self::showNavigationBar($menuitems); @@ -789,9 +796,16 @@ background-image: linear-gradient(to bottom, #882222, #111111);; $menuitems['groups'] = array('link'=>$this->params['settings']->_httpRoot."out/out.GroupView.php", 'label'=>getMLText('groups')); } - /* Check if hook exists because otherwise callHook() will override $menuitems */ - if($this->hasHook('accountNavigationBar')) - $menuitems = $this->callHook('accountNavigationBar', $menuitems); + /* Do not use $this->callHook() because $menuitems must be returned by the the + * first hook and passed to next hook. $this->callHook() will just pass + * the menuitems to each single hook. Hence, the last hook will win. + */ + $hookObjs = $this->getHookObjects(); + foreach($hookObjs as $hookObj) { + if (method_exists($hookObj, 'accountNavigationBar')) { + $menuitems = $hookObj->accountNavigationBar($this, $menuitems); + } + } self::showNavigationBar($menuitems); @@ -819,9 +833,16 @@ background-image: linear-gradient(to bottom, #882222, #111111);; $menuitems['workflow_summary'] = array('link'=>$this->params['settings']->_httpRoot."out/out.WorkflowSummary.php", 'label'=>getMLText('workflow_summary')); } - /* Check if hook exists because otherwise callHook() will override $menuitems */ - if($this->hasHook('mydocumentsNavigationBar')) - $menuitems = $this->callHook('mydocumentsNavigationBar', $menuitems); + /* Do not use $this->callHook() because $menuitems must be returned by the the + * first hook and passed to next hook. $this->callHook() will just pass + * the menuitems to each single hook. Hence, the last hook will win. + */ + $hookObjs = $this->getHookObjects(); + foreach($hookObjs as $hookObj) { + if (method_exists($hookObj, 'mydocumentsNavigationBar')) { + $menuitems = $hookObj->mydocumentsNavigationBar($this, $menuitems); + } + } self::showNavigationBar($menuitems); @@ -908,9 +929,16 @@ background-image: linear-gradient(to bottom, #882222, #111111);; $menuitems['misc']['children']['version_info'] = array('link'=>$this->params['settings']->_httpRoot."out/out.Info.php", 'label'=>getMLText('version_info')); } - /* Check if hook exists because otherwise callHook() will override $menuitems */ - if($this->hasHook('admintoolsNavigationBar')) - $menuitems = $this->callHook('admintoolsNavigationBar', $menuitems); + /* Do not use $this->callHook() because $menuitems must be returned by the the + * first hook and passed to next hook. $this->callHook() will just pass + * the menuitems to each single hook. Hence, the last hook will win. + */ + $hookObjs = $this->getHookObjects(); + foreach($hookObjs as $hookObj) { + if (method_exists($hookObj, 'admintoolsNavigationBar')) { + $menuitems = $hookObj->admintoolsNavigationBar($this, $menuitems); + } + } self::showNavigationBar($menuitems); @@ -944,16 +972,23 @@ background-image: linear-gradient(to bottom, #882222, #111111);; if (!$this->params['user']->isGuest()) $menuitems['addevent'] = array('link'=>$this->params['settings']->_httpRoot."out/out.AddEvent.php", 'label'=>getMLText('add_event')); - /* Check if hook exists because otherwise callHook() will override $menuitems */ - if($this->hasHook('calendarNavigationBar')) - $menuitems = $this->callHook('calendarNavigationBar', $menuitems); + /* Do not use $this->callHook() because $menuitems must be returned by the the + * first hook and passed to next hook. $this->callHook() will just pass + * the menuitems to each single hook. Hence, the last hook will win. + */ + $hookObjs = $this->getHookObjects(); + foreach($hookObjs as $hookObj) { + if (method_exists($hookObj, 'calendarNavigationBar')) { + $menuitems = $hookObj->calendarNavigationBar($this, $menuitems); + } + } self::showNavigationBar($menuitems); echo "\n"; } /* }}} */ - function pageList($pageNumber, $totalPages, $baseURI, $params) { /* {{{ */ + function pageList($pageNumber, $totalPages, $baseURI, $params, $dataparams=[]) { /* {{{ */ $maxpages = 25; // skip pages when more than this is shown $range = 5; // pages left and right of current page @@ -972,11 +1007,17 @@ background-image: linear-gradient(to bottom, #882222, #111111);; $first=false; } + $datastr = ''; + if($dataparams) { + $datastr .= ' '; + foreach($dataparams as $k=>$v) + $datastr .= 'data-'.$k.'="'.$v.'"'; + } echo "
    "; echo "
      "; if($totalPages <= $maxpages) { for ($i = 1; $i <= $totalPages; $i++) { - echo "
    • ".$i."
    • "; + echo "
    • ".$i."
    • "; } } else { if($pageNumber-$range > 1) @@ -996,21 +1037,21 @@ background-image: linear-gradient(to bottom, #882222, #111111);; $end -= $diff; } if($pageNumber > 1) - echo "
    • «
    • "; - echo "
    • 1
    • "; + echo "
    • «
    • "; + echo "
    • 1
    • "; if($start > 2) echo "
    • ...
    • "; for($j=$start; $j<=$end; $j++) - echo "
    • ".$j."
    • "; + echo "
    • ".$j."
    • "; if($end < $totalPages-1) echo "
    • ...
    • "; if($end < $totalPages) - echo "
    • ".$totalPages."
    • "; + echo "
    • ".$totalPages."
    • "; if($pageNumber < $totalPages) - echo "
    • »
    • "; + echo "
    • »
    • "; } if ($totalPages>1) { - echo "
    • ".getMLText("all_pages")."
    • "; + echo "
    • ".getMLText("all_pages")."
    • "; } echo "
    "; echo "
    "; @@ -1303,7 +1344,7 @@ function getOverallStatusIcon($status) { /* {{{ */ $icon = 'fa fa-question'; break; } - return ''; + return '
    '.getOverallStatusText($status).'
    '; } } /* }}} */ @@ -1795,11 +1836,11 @@ $(document).ready(function() { } } /* }}} */ - function printAttributeEditField($attrdef, $attribute, $fieldname='attributes', $norequire=false, $namepostfix='') { /* {{{ */ - echo self::getAttributeEditField($attrdef, $attribute, $fieldname, $norequire, $namepostfix); + function printAttributeEditField($attrdef, $attribute, $fieldname='attributes', $norequire=false, $namepostfix='', $alwaysmultiple=false) { /* {{{ */ + echo self::getAttributeEditField($attrdef, $attribute, $fieldname, $norequire, $namepostfix, $alwaysmultiple); } /* }}} */ - function getAttributeEditField($attrdef, $attribute, $fieldname='attributes', $norequire=false, $namepostfix='') { /* {{{ */ + function getAttributeEditField($attrdef, $attribute, $fieldname='attributes', $norequire=false, $namepostfix='', $alwaysmultiple=false) { /* {{{ */ $dms = $this->params['dms']; $content = ''; switch($attrdef->getType()) { @@ -1845,7 +1886,7 @@ $(document).ready(function() { $users = $dms->getAllUsers(); if($users) { $allowempty = $attrdef->getMinValues() == 0; - $allowmultiple = $attrdef->getMultipleValues(); + $allowmultiple = $attrdef->getMultipleValues() || $alwaysmultiple; $content .= "getId()."]".($allowmultiple ? '[]' : '')."\"".($allowmultiple ? " multiple" : "")." data-placeholder=\"".getMLText("select_group")."\">"; if($allowempty) $content .= ""; @@ -1884,13 +1925,13 @@ $(document).ready(function() { if($valueset = $attrdef->getValueSetAsArray()) { $content .= "getId()."]\" value=\"\"/>"; $content .= "getId()."\" data-task=\"".$o[1]."s_".$o[2]."\" data-type=\"".$o[1]."_".$o[0]."\">"; + echo "".$o[3]."".$o[4]."getId()."\" data-task=\"".$o[1]."s_".$o[2]."\" data-type=\"".$o[1]."_".$o[0]."\">"; } echo ""; diff --git a/views/bootstrap/class.Search.php b/views/bootstrap/class.Search.php index 647fa1e45..f1d3f4827 100644 --- a/views/bootstrap/class.Search.php +++ b/views/bootstrap/class.Search.php @@ -45,10 +45,10 @@ class SeedDMS_View_Search extends SeedDMS_Theme_Style { */ function markQuery($str, $tag = "b") { /* {{{ */ $querywords = preg_split("/ /", $this->query); - + foreach ($querywords as $queryword) $str = str_ireplace("($queryword)", "<" . $tag . ">\\1", $str); - + return $str; } /* }}} */ @@ -57,8 +57,105 @@ class SeedDMS_View_Search extends SeedDMS_Theme_Style { parent::jsTranslations(array('cancel', 'splash_move_document', 'confirm_move_document', 'move_document', 'confirm_transfer_link_document', 'transfer_content', 'link_document', 'splash_move_folder', 'confirm_move_folder', 'move_folder')); +?> +$(document).ready( function() { + $('#export').on('click', function(e) { + e.preventDefault(); + var url = ""; + url = $(this).attr('href')+'&includecontent='+($('#includecontent').prop('checked') ? '1' : '0'); + + var inputs = $('input[name^=\"marks\"]'); + var values = {}; + inputs.each(function() { + if(this.checked) + values[this.name] = 1; + }); + url += '&'+$.param(values); + window.location.href = url; + }); + + $('#changecategory').on('click', function(e) { + e.preventDefault(); + var url = ""; + url = $(this).attr('href')+'&changecategory='+$('#batchcategory').val()+'&removecategory='+($('#removecategory').prop('checked') ? '1' : '0'); + var inputs = $('input[name^=\"marks\"]'); + var values = {}; + inputs.each(function() { + if(this.checked) + values[this.name] = 1; + }); + url += '&'+$.param(values); + window.location.href = url; + }); + +getParam('theme') !== 'bootstrap4'): ?> + $('body').on('click', 'a.change-owner-btn', function(ev){ + ev.preventDefault(); + ev.stopPropagation(); + confirmmsg = $(ev.currentTarget).attr('confirmmsg'); + href = $(ev.currentTarget).attr('href'); + bootbox.dialog(confirmmsg, [{ + "label" : " ", + "class" : "btn-danger", + "callback": function() { + var url = ""; + url = href+'&newowner='+($('#newowner').val()); + var inputs = $('input[name^=\"marks\"]'); + var values = {}; + inputs.each(function() { + if(this.checked) + values[this.name] = 1; + }); + url += '&'+$.param(values); + window.location.href = url; + } + }, { + "label" : "", + "class" : "btn-cancel", + "callback": function() { + } + }]); + }); + + $('body').on('click', 'a.change-owner-btn', function(ev){ + ev.preventDefault(); + ev.stopPropagation(); + confirmmsg = $(ev.currentTarget).attr('confirmmsg'); + href = $(ev.currentTarget).attr('href'); + bootbox.confirm({ + "message": confirmmsg, + "buttons": { + "confirm": { + "label" : " ", + "className" : "btn-danger", + }, + "cancel": { + "label" : " ", + "className" : "btn-secondary", + } + }, + "callback": function(result) { + if(result) { + var url = ""; + url = href+'&newowner='+($('#newowner').val()); + var inputs = $('input[name^=\"marks\"]'); + var values = {}; + inputs.each(function() { + if(this.checked) + values[this.name] = 1; + }); + url += '&'+$.param(values); + window.location.href = url; + } + } + }); + }); + +}); +printFolderChooserJs("form1"); $this->printDeleteFolderButtonJs(); + $this->printMarkDocumentButtonJs(); $this->printDeleteDocumentButtonJs(); /* Add js for catching click on document in one page mode */ $this->printClickDocumentJs(); @@ -71,7 +168,166 @@ $(document).ready(function() { getID(); + $content = ''; + $content .= '
    '; + if($return) + return $content; + else + echo $content; + return ''; + } /* }}} */ + + /** + * Print button with icon for marking a folder + * + * @param object $folder folder to be marked + * @param boolean $return return html instead of printing it + * @return string html content if $return is true, otherwise an empty string + */ + function printMarkFolderButton($folder, $return=false){ /* {{{ */ + $folderid = $folder->getID(); + $content = ''; + $content .= '
    '; + if($return) + return $content; + else + echo $content; + return ''; + } /* }}} */ + + function printMarkDocumentButtonJs(){ /* {{{ */ + $url = $this->html_url('Search', array_merge($_GET, array('action'=>null))); + echo " + // ".$url." + $(document).ready(function () { + $('body').on('click', 'span.mark-btn', function(ev){ + ev.stopPropagation(); + id = $(ev.currentTarget).attr('rel'); + $('#marks_'+id).each(function () { this.checked = !this.checked; }); + $(this).parents('tr').toggleClass('table-info'); + $(this).find('i').toggleClass('fa-square-o fa-check-square-o') + }); + }); + "; + } /* }}} */ + + function export() { /* {{{ */ + $dms = $this->params['dms']; + $user = $this->params['user']; + $entries = $this->params['searchhits']; + $includecontent = $this->params['includecontent']; + $marks = $this->params['marks']; + + include("../inc/inc.ClassDownloadMgr.php"); + $downmgr = new SeedDMS_Download_Mgr(); + if($extraheader = $this->callHook('extraDownloadHeader')) + $downmgr->addHeader($extraheader); + foreach($entries as $entry) { + if($entry->isType('document')) { + if(empty($marks) || !empty($marks['D'.$entry->getId()])) { + $extracols = $this->callHook('extraDownloadColumns', $entry); + $filename = $this->callHook('filenameDownloadItem', $entry->getLatestContent()); + if($includecontent && $rawcontent = $this->callHook('rawcontent', $entry->getLatestContent())) { + $downmgr->addItem($entry->getLatestContent(), $extracols, $rawcontent, $filename); + } else + $downmgr->addItem($entry->getLatestContent(), $extracols, null, $filename); + } + } + } + $filename = tempnam(sys_get_temp_dir(), ''); + if($includecontent) { + $downmgr->createArchive($filename); + header("Content-Transfer-Encoding: binary"); + header("Content-Length: " . filesize($filename)); + header("Content-Disposition: attachment; filename=\"export-" .date('Y-m-d') . ".zip\""); + header("Content-Type: application/zip"); + header("Cache-Control: must-revalidate"); + } else { + $downmgr->createToc($filename); + header("Content-Transfer-Encoding: binary"); + header("Content-Length: " . filesize($filename)); + header("Content-Disposition: attachment; filename=\"export-" .date('Y-m-d') . ".xlsx\""); + header("Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + header("Cache-Control: must-revalidate"); + } + + readfile($filename); + unlink($filename); + } /* }}} */ + + function changeowner() { /* {{{ */ + $dms = $this->params['dms']; + $user = $this->params['user']; + $entries = $this->params['searchhits']; + $newowner = $this->params['newowner']; + $marks = $this->params['marks']; + + if($newowner && $user->isAdmin()) { + $j = $i = 0; + foreach($entries as $entry) { + $prefix = $entry->isType('document') ? 'D' : 'F'; + if(empty($marks) || !empty($marks[$prefix.$entry->getId()])) { + if($entry->getOwner()->getId() != $newowner->getId()) { + $entry->setOwner($newowner); + $j++; + } + } + } + $this->setParam('batchmsg', getMLText('batch_new_owner_msg', ['count'=>$j])); + } else { + } + + return self::show(); + } /* }}} */ + + function changecategory() { /* {{{ */ + $dms = $this->params['dms']; + $user = $this->params['user']; + $entries = $this->params['searchhits']; + $changecategory = $this->params['changecategory']; + $removecategory = $this->params['removecategory']; + $marks = $this->params['marks']; + + if($changecategory && $user->isAdmin()) { + $j = $i = 0; + foreach($entries as $entry) { + if($entry->isType('document')) { + if(empty($marks) || !empty($marks['D'.$entry->getId()])) { + if(!$removecategory) { + if(!$entry->hasCategory($changecategory)) { + $entry->addCategories([$changecategory]); + $j++; + } + } else { + if($entry->hasCategory($changecategory)) { + $entry->removeCategories([$changecategory]); + $j++; + } + } + } + } + } + if($removecategory) { + $this->setParam('batchmsg', getMLText('batch_remove_category_msg', ['count'=>$j, 'catname'=>$changecategory->getName()])); + } else { + $this->setParam('batchmsg', getMLText('batch_add_category_msg', ['count'=>$j, 'catname'=>$changecategory->getName()])); + } + } else { + } + + return self::show(); + } /* }}} */ + + function opensearchsuggestion() { /* {{{ */ $dms = $this->params['dms']; $user = $this->params['user']; $query = $this->params['query']; @@ -134,7 +390,7 @@ function typeahead() { /* {{{ */ $tmp['orderby'] = ($orderby=="d"||$orderby=="da") ? "dd" : "d"; $headcol .= " ".($orderby=="d"||$orderby=="da"?' ':($orderby=="dd"?' ':' ')).""; } - return $headcol; + return $headcol; } /* }}} */ function show() { /* {{{ */ @@ -180,6 +436,8 @@ function typeahead() { /* {{{ */ $searchin = $this->params['searchin']; $cachedir = $this->params['cachedir']; $previewwidth = $this->params['previewWidthList']; + $previewconverters = $this->params['previewConverters']; + $conversionmgr = $this->params['conversionmgr']; $timeout = $this->params['timeout']; $xsendfile = $this->params['xsendfile']; @@ -193,7 +451,7 @@ function typeahead() { /* {{{ */ //$this->contentHeading(" ".getMLText('search'), true); $this->contentHeading(getMLText('search'), true); if($this->query) { - echo "
    "; + echo "
    "; } ?>
    -
    + getDateChooser($createenddate, "createend", $this->params['session']->getLanguage()) ); + $this->contentContainerEnd(); + + // Seach options for documents and folders {{{ + /* First check if any of the folder/document filters are set. If it is, + * open the accordion. + */ + $openfilterdlg = false; + $hasattrs = false; if($attrdefs) { foreach($attrdefs as $attrdef) { if($attrdef->getObjType() == SeedDMS_Core_AttributeDefinition::objtype_all) { - if($attrdef->getType() == SeedDMS_Core_AttributeDefinition::type_date) { - $this->formField(htmlspecialchars($attrdef->getName().' ('.getMLText('from').')'), $this->getAttributeEditField($attrdef, !empty($attributes[$attrdef->getID()]['from']) ? getReadableDate(makeTsFromDate($attributes[$attrdef->getID()]['from'])) : '', 'attributes', true, 'from')); - $this->formField(htmlspecialchars($attrdef->getName().' ('.getMLText('to').')'), $this->getAttributeEditField($attrdef, !empty($attributes[$attrdef->getID()]['to']) ? getReadableDate(makeTsFromDate($attributes[$attrdef->getID()]['to'])) : '', 'attributes', true, 'to')); - } else - $this->formField(htmlspecialchars($attrdef->getName()), $this->getAttributeEditField($attrdef, isset($attributes[$attrdef->getID()]) ? $attributes[$attrdef->getID()] : '', 'attributes', true)); + /* Do not check dates because they always have 'from' and 'to' element + * even if it is empty. FIXME should be also checked. + */ + $hasattrs = true; + if($attrdef->getType() != SeedDMS_Core_AttributeDefinition::type_date) + if(!empty($attributes[$attrdef->getID()])) + $openfilterdlg = true; } } } - $this->contentContainerEnd(); + if($hasattrs) { + ob_start(); + if($attrdefs) { + foreach($attrdefs as $attrdef) { + if($attrdef->getObjType() == SeedDMS_Core_AttributeDefinition::objtype_all) { + if($attrdef->getType() == SeedDMS_Core_AttributeDefinition::type_date) { + $this->formField(htmlspecialchars($attrdef->getName().' ('.getMLText('from').')'), $this->getAttributeEditField($attrdef, !empty($attributes[$attrdef->getID()]['from']) ? getReadableDate(makeTsFromDate($attributes[$attrdef->getID()]['from'])) : '', 'attributes', true, 'from')); + $this->formField(htmlspecialchars($attrdef->getName().' ('.getMLText('to').')'), $this->getAttributeEditField($attrdef, !empty($attributes[$attrdef->getID()]['to']) ? getReadableDate(makeTsFromDate($attributes[$attrdef->getID()]['to'])) : '', 'attributes', true, 'to')); + } else + $this->formField(htmlspecialchars($attrdef->getName()), $this->getAttributeEditField($attrdef, isset($attributes[$attrdef->getID()]) ? $attributes[$attrdef->getID()] : '', 'attributes', true)); + } + } + } + $content = ob_get_clean(); + $this->printAccordion(getMLText('filter_for_documents_and_folders'), $content, $openfilterdlg); + } + // }}} + // Seach options for documents {{{ /* First check if any of the folder filters are set. If it is, * open the accordion. */ @@ -326,8 +611,12 @@ function typeahead() { /* {{{ */ if($attrdefs) { foreach($attrdefs as $attrdef) { if($attrdef->getObjType() == SeedDMS_Core_AttributeDefinition::objtype_document || $attrdef->getObjType() == SeedDMS_Core_AttributeDefinition::objtype_documentcontent) { - if(!empty($attributes[$attrdef->getID()])) - $openfilterdlg = true; + /* Do not check dates because they always have 'from' and 'to' element + * even if it is empty. FIXME should be also checked. + */ + if($attrdef->getType() != SeedDMS_Core_AttributeDefinition::type_date) + if(!empty($attributes[$attrdef->getID()])) + $openfilterdlg = true; } } } @@ -408,41 +697,47 @@ function typeahead() { /* {{{ */ $this->formField(htmlspecialchars($attrdef->getName().' ('.getMLText('from').')'), $this->getAttributeEditField($attrdef, !empty($attributes[$attrdef->getID()]['from']) ? getReadableDate(makeTsFromDate($attributes[$attrdef->getID()]['from'])) : '', 'attributes', true, 'from')); $this->formField(htmlspecialchars($attrdef->getName().' ('.getMLText('to').')'), $this->getAttributeEditField($attrdef, !empty($attributes[$attrdef->getID()]['to']) ? getReadableDate(makeTsFromDate($attributes[$attrdef->getID()]['to'])) : '', 'attributes', true, 'to')); } else - $this->formField(htmlspecialchars($attrdef->getName()), $this->getAttributeEditField($attrdef, isset($attributes[$attrdef->getID()]) ? $attributes[$attrdef->getID()] : '', 'attributes', true)); + $this->formField(htmlspecialchars($attrdef->getName()), $this->getAttributeEditField($attrdef, isset($attributes[$attrdef->getID()]) ? $attributes[$attrdef->getID()] : '', 'attributes', true, '', true)); } } } -?> -printAccordion(getMLText('filter_for_documents'), $content); + $this->printAccordion(getMLText('filter_for_documents'), $content, $openfilterdlg); + // }}} + + // Seach options for folders {{{ /* First check if any of the folder filters are set. If it is, * open the accordion. */ $openfilterdlg = false; + $hasattrs = false; if($attrdefs) { foreach($attrdefs as $attrdef) { if($attrdef->getObjType() == SeedDMS_Core_AttributeDefinition::objtype_folder) { - if(!empty($attributes[$attrdef->getID()])) - $openfilterdlg = true; + $hasattrs = true; + if($attrdef->getType() != SeedDMS_Core_AttributeDefinition::type_date) + if(!empty($attributes[$attrdef->getID()])) + $openfilterdlg = true; } } } - ob_start(); - if($attrdefs) { - foreach($attrdefs as $attrdef) { - if($attrdef->getObjType() == SeedDMS_Core_AttributeDefinition::objtype_folder) { - if($attrdef->getType() == SeedDMS_Core_AttributeDefinition::type_date) { - $this->formField(htmlspecialchars($attrdef->getName().' ('.getMLText('from').')'), $this->getAttributeEditField($attrdef, !empty($attributes[$attrdef->getID()]['from']) ? getReadableDate(makeTsFromDate($attributes[$attrdef->getID()]['from'])) : '', 'attributes', true, 'from')); - $this->formField(htmlspecialchars($attrdef->getName().' ('.getMLText('to').')'), $this->getAttributeEditField($attrdef, !empty($attributes[$attrdef->getID()]['to']) ? getReadableDate(makeTsFromDate($attributes[$attrdef->getID()]['to'])) : '', 'attributes', true, 'to')); - } else - $this->formField(htmlspecialchars($attrdef->getName()), $this->getAttributeEditField($attrdef, isset($attributes[$attrdef->getID()]) ? $attributes[$attrdef->getID()] : '', 'attributes', true)); + if($hasattrs) { + ob_start(); + if($attrdefs) { + foreach($attrdefs as $attrdef) { + if($attrdef->getObjType() == SeedDMS_Core_AttributeDefinition::objtype_folder) { + if($attrdef->getType() == SeedDMS_Core_AttributeDefinition::type_date) { + $this->formField(htmlspecialchars($attrdef->getName().' ('.getMLText('from').')'), $this->getAttributeEditField($attrdef, !empty($attributes[$attrdef->getID()]['from']) ? getReadableDate(makeTsFromDate($attributes[$attrdef->getID()]['from'])) : '', 'attributes', true, 'from')); + $this->formField(htmlspecialchars($attrdef->getName().' ('.getMLText('to').')'), $this->getAttributeEditField($attrdef, !empty($attributes[$attrdef->getID()]['to']) ? getReadableDate(makeTsFromDate($attributes[$attrdef->getID()]['to'])) : '', 'attributes', true, 'to')); + } else + $this->formField(htmlspecialchars($attrdef->getName()), $this->getAttributeEditField($attrdef, isset($attributes[$attrdef->getID()]) ? $attributes[$attrdef->getID()] : '', 'attributes', true, '', true)); + } } } + $content = ob_get_clean(); + $this->printAccordion(getMLText('filter_for_folders'), $content, $openfilterdlg); } - $content = ob_get_clean(); - if($content) - $this->printAccordion(getMLText('filter_for_folders'), $content); // }}} $this->formSubmit(" ".getMLText('search')); @@ -450,6 +745,9 @@ function typeahead() { /* {{{ */
    \n"; ?> @@ -594,14 +892,106 @@ function typeahead() { /* {{{ */ \n"; } + // }}} ?>
    query) { echo "
    \n"; } + + /* Batch operations {{{ */ + if($total) + $this->contentHeading(getMLText('batch_operation')); + if($totaldocs) { + ob_start(); + $this->formField( + getMLText("include_content"), + array( + 'element'=>'input', + 'type'=>'checkbox', + 'name'=>'includecontent', + 'id'=>'includecontent', + 'value'=>1, + ) + ); + //$this->formSubmit(" ".getMLText('export')); + print $this->html_link('Search', array_merge($_GET, array('action'=>'export')), array('class'=>'btn btn-primary', 'id'=>'export'), " ".getMLText("export"), false, true)."\n"; + $content = ob_get_clean(); + $this->printAccordion(getMLText('export'), $content); + } + + if($user->isAdmin() && $total) { + ob_start(); + $users = $dms->getAllUsers(); + $options = array(); + $options[] = array("-1", getMLText("choose_user")); + foreach ($users as $currUser) { + $options[] = array($currUser->getID(), htmlspecialchars($currUser->getLogin().' - '.$currUser->getFullName()), false, array(array('data-subtitle', htmlspecialchars($currUser->getEmail())))); + } + $this->formField( + null, //getMLText("selection"), + array( + 'element'=>'select', + 'id'=>'newowner', + 'class'=>'chzn-select', + 'options'=>$options, + 'placeholder'=>getMLText('select_users'), + 'attributes'=>array(array('style', 'width: 100%;')) + ) + ); +// print $this->html_link('Search', array_merge($_GET, array('action'=>'changeowner')), array('class'=>'btn btn-primary', 'id'=>'changeowner'), " ".getMLText("batch_change_owner"), false, true)."\n"; + + print $this->html_link('Search', array_merge($_GET, array('action'=>'changeowner')), array('class'=>'btn btn-primary change-owner-btn mt-4', 'confirmmsg'=>htmlspecialchars(getMLText("confirm_change_owner", array ()), ENT_QUOTES)), " ".getMLText("batch_change_owner"), false, true)."\n"; + + $content = ob_get_clean(); + $this->printAccordion(getMLText('batch_change_owner'), $content); + + ob_start(); + $cats = $dms->getDocumentCategories(); + $options = array(); + $options[] = array("-1", getMLText("choose_category")); + foreach ($cats as $currcat) { + $options[] = array($currcat->getID(), htmlspecialchars($currcat->getName()), false); + } + $this->formField( + null, + array( + 'element'=>'select', + 'id'=>'batchcategory', + 'class'=>'chzn-select', + 'options'=>$options, + 'multiple'=>false, + 'placeholder'=>getMLText('select_category'), + 'attributes'=>array(array('style', 'width: 100%;')) + ) + ); + $this->formField( + getMLText("batch_remove_category"), + array( + 'element'=>'input', + 'type'=>'checkbox', + 'id'=>'removecategory', + 'value'=>'1', + ) + ); +// print $this->html_link('Search', array_merge($_GET, array('action'=>'changeowner')), array('class'=>'btn btn-primary', 'id'=>'changeowner'), " ".getMLText("batch_change_owner"), false, true)."\n"; + + print $this->html_link('Search', array_merge($_GET, array('action'=>'changecategory')), array('class'=>'btn btn-primary change-category-btn mt-4', 'id'=>'changecategory'), " ".getMLText("batch_change_category"), false, true)."\n"; + + $content = ob_get_clean(); + $this->printAccordion(getMLText('batch_change_category'), $content); + } + // }}} + +?> +columnEnd(); $this->columnStart(8); + if($batchmsg = $this->getParam('batchmsg')) { + $this->contentHeading(getMLText('batch_operation_result')); + echo $this->infoMsg($batchmsg); + } $this->contentHeading(getMLText('search_results')); // Search Result {{{ $foldercount = $doccount = 0; @@ -616,7 +1006,7 @@ function typeahead() { /* {{{ */ } */ 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->pageList((int) $pageNumber, $totalpages, "../out/out.Search.php", $urlparams); // $this->contentContainerStart(); $txt = $this->callHook('searchListHeader', $orderby, 'asc'); @@ -634,6 +1024,10 @@ function typeahead() { /* {{{ */ print "\n"; $previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth, $timeout, $xsendfile); + if($conversionmgr) + $previewer->setConversionMgr($conversionmgr); + else + $previewer->setConverters($previewconverters); foreach ($entries as $entry) { if($entry->isType('document')) { $document = $entry; @@ -687,6 +1081,7 @@ function typeahead() { /* {{{ */ $extracontent['below_title'] = $this->getListRowPath($document); if($attrstr) $extracontent['bottom_title'] = '
    '.$this->printPopupBox(''.getMLText('attributes').'', $attrstr, true); + $extracontent['end_action_list'] = $this->printMarkDocumentButton($document, true); $txt = $this->callHook('documentListItem', $entry, $previewer, false, 'search', $extracontent); if(is_string($txt)) @@ -716,13 +1111,14 @@ function typeahead() { /* {{{ */ $extracontent['below_title'] = $this->getListRowPath($folder); if($attrstr) $extracontent['bottom_title'] = '
    '.$this->printPopupBox(''.getMLText('attributes').'', $attrstr, true); + $extracontent['end_action_list'] = $this->printMarkFolderButton($folder, true); print $this->folderListRow($folder, false, $extracontent); } } } print "\n"; // $this->contentContainerEnd(); - $this->pageList($pageNumber, $totalpages, "../out/out.Search.php", $_GET); + $this->pageList((int) $pageNumber, $totalpages, "../out/out.Search.php", $_GET); } else { $numResults = $totaldocs + $totalfolders; if ($numResults == 0) { diff --git a/views/bootstrap/class.SetReviewersApprovers.php b/views/bootstrap/class.SetReviewersApprovers.php index 1306399c6..b899b3ecb 100644 --- a/views/bootstrap/class.SetReviewersApprovers.php +++ b/views/bootstrap/class.SetReviewersApprovers.php @@ -85,13 +85,8 @@ class SeedDMS_View_SetReviewersApprovers extends SeedDMS_Theme_Style { -contentSubHeading(getMLText("update_reviewers"));?> -contentContainerStart(); ?> - -
    :
    - "; - + $options[] = array($usr->getID(), htmlspecialchars($usr->getLogin() . " - ". $usr->getFullName()), false, array(array('disabled', 'disabled'), array('data-subtitle', getMLText('user_is_mandatory_reviewer')))); } elseif (isset($reviewIndex["i"][$usr->getID()])) { - switch ($reviewIndex["i"][$usr->getID()]["status"]) { - case 0: - print ""; + case S_LOG_WAITING: + $options[] = array($usr->getID(), htmlspecialchars($usr->getLogin() . " - ". $usr->getFullName()), true); break; - case -2: - print ""; + case S_LOG_USER_REMOVED: + $options[] = array($usr->getID(), htmlspecialchars($usr->getLogin() . " - ". $usr->getFullName()), false, array(array('data-subtitle', getMLText('user_previously_removed_from_reviewers')))); break; default: - print ""; + $options[] = array($usr->getID(), htmlspecialchars($usr->getLogin() . " - ". $usr->getFullName()), false, array(array('disabled', 'disabled'))); break; } } else { if (!$enableselfrevapp && $usr->getID()==$user->getID()) continue; - print ""; + $options[] = array($usr->getID(), htmlspecialchars($usr->getLogin() . " - ". $usr->getFullName())); } } -?> - -'.getMLText('mandatory_reviewers').': '; - echo implode(', ', $tmp); - echo "
    \n"; + $extraparams['field_wrap'] = ['', '
    '.getMLText('mandatory_reviewers').': '.implode(', ', $tmp)."
    \n"]; } } -?> -
    :
    - "; - + if ($mandatory) { + $options[] = array($group->getID(), htmlspecialchars($group->getName().' ('.count($grpusers).')'), false, array(array('disabled', 'disabled'), array('data-subtitle', getMLText('group_is_mandatory_reviewer')))); } elseif (isset($reviewIndex["g"][$group->getID()])) { - switch ($reviewIndex["g"][$group->getID()]["status"]) { - case 0: - print ""; + case S_LOG_WAITING: + $options[] = array($group->getID(), htmlspecialchars($group->getName().' ('.count($grpusers).')'), true); break; - case -2: - print ""; + case S_LOG_USER_REMOVED: + $options[] = array($group->getID(), htmlspecialchars($group->getName().' ('.count($grpusers).')'), false, array(array('data-subtitle', getMLText('group_previously_removed_from_reviewers')))); break; default: - print ""; + $options[] = array($group->getID(), htmlspecialchars($group->getName().' ('.count($grpusers).')'), false, array(array('disabled', 'disabled'))); break; } } else { - print ""; + $options[] = array($group->getID(), htmlspecialchars($group->getName().' ('.count($grpusers).')')); } } -?> - -'.getMLText('mandatory_reviewergroups').': '; - echo implode(', ', $tmp); - echo "\n"; + $extraparams['field_wrap'] = ['', '
    '.getMLText('mandatory_reviewergroups').': '.implode(', ', $tmp)."
    \n"]; } } + $this->formField( + getMLText("groups"), + array( + 'element'=>'select', + 'id'=>'grpReviewers', + 'name'=>'grpReviewers[]', + 'class'=>'chzn-select', + 'multiple'=>true, + 'attributes'=>array(array('data-allow-clear', 'true'), array('data-placeholder', getMLText('select_grp_reviewers')), array('data-no_results_text', getMLText('unknown_group'))), + 'options'=>$options, + ), + $extraparams + ); } -?> -contentContainerEnd(); ?> -contentSubHeading(getMLText("update_approvers"));?> -contentContainerStart(); ?> - -
    :
    - "; - + $options[] = array($usr->getID(), htmlspecialchars($usr->getLogin() . " - ". $usr->getFullName()), false, array(array('disabled', 'disabled'), array('data-subtitle', getMLText('user_is_mandatory_approver')))); } elseif (isset($approvalIndex["i"][$usr->getID()])) { switch ($approvalIndex["i"][$usr->getID()]["status"]) { - case 0: - print ""; + case S_LOG_WAITING: + $options[] = array($usr->getID(), htmlspecialchars($usr->getLogin() . " - ". $usr->getFullName()), true); break; - case -2: - print ""; + case S_LOG_USER_REMOVED: + $options[] = array($usr->getID(), htmlspecialchars($usr->getLogin() . " - ". $usr->getFullName()), false, array(array('data-subtitle', getMLText('user_previously_removed_from_approvers')))); break; default: - print ""; + $options[] = array($usr->getID(), htmlspecialchars($usr->getLogin() . " - ". $usr->getFullName()), false, array(array('disabled', 'disabled'))); break; } } else { if (!$enableselfrevapp && $usr->getID()==$user->getID()) continue; - print ""; + $options[] = array($usr->getID(), htmlspecialchars($usr->getLogin() . " - ". $usr->getFullName())); } } -?> - -'.getMLText('mandatory_approvers').': '; - echo implode(', ', $tmp); - echo "\n"; + $extraparams['field_wrap'] = ['', '
    '.getMLText('mandatory_approvers').': '.implode(', ', $tmp)."
    \n"]; } } -?> -
    :
    + $this->formField( + getMLText("individuals"), + array( + 'element'=>'select', + 'id'=>'indApprovers', + 'name'=>'indApprovers[]', + 'class'=>'chzn-select', + 'multiple'=>true, + 'attributes'=>array(array('data-allow-clear', 'true'), array('data-placeholder', getMLText('select_ind_approvers')), array('data-no_results_text', getMLText('unknown_user'))), + 'options'=>$options, + ), + $extraparams + ); - "; - + if ($mandatory) { + $options[] = array($group->getID(), htmlspecialchars($group->getName().' ('.count($grpusers).')'), false, array(array('disabled', 'disabled'), array('data-subtitle', getMLText('group_is_mandatory_approver')))); } elseif (isset($approvalIndex["g"][$group->getID()])) { switch ($approvalIndex["g"][$group->getID()]["status"]) { - case 0: - print ""; + case S_LOG_WAITING: + $options[] = array($group->getID(), htmlspecialchars($group->getName().' ('.count($grpusers).')'), true); break; - case -2: - print ""; + case S_LOG_USER_REMOVED: + $options[] = array($group->getID(), htmlspecialchars($group->getName().' ('.count($grpusers).')'), false, array(array('data-subtitle', getMLText('group_previously_removed_from_approvers')))); break; default: - print ""; + $options[] = array($group->getID(), htmlspecialchars($group->getName().' ('.count($grpusers).')'), false, array(array('disabled', 'disabled'))); break; } } else { - print ""; + $options[] = array($group->getID(), htmlspecialchars($group->getName().' ('.count($grpusers).')')); } } -?> - -'.getMLText('mandatory_approvergroups').': '; - echo implode(', ', $tmp); - echo "\n"; + $extraparams['field_wrap'] = ['', '
    '.getMLText('mandatory_reviewergroups').': '.implode(', ', $tmp)."
    \n"]; } } + $this->formField( + getMLText("groups"), + array( + 'element'=>'select', + 'id'=>'grpApprovers', + 'name'=>'grpApprovers[]', + 'class'=>'chzn-select', + 'multiple'=>true, + 'attributes'=>array(array('data-allow-clear', 'true'), array('data-placeholder', getMLText('select_grp_approvers')), array('data-no_results_text', getMLText('unknown_group'))), + 'options'=>$options, + ), + $extraparams + ); $this->contentContainerEnd(); ?>

    diff --git a/views/bootstrap/class.Settings.php b/views/bootstrap/class.Settings.php index e6e1103c5..2bb683f42 100644 --- a/views/bootstrap/class.Settings.php +++ b/views/bootstrap/class.Settings.php @@ -176,9 +176,9 @@ class SeedDMS_View_Settings extends SeedDMS_Theme_Style { - - $value) { $optval = trim($isass ? $i : $value); @@ -555,7 +555,7 @@ if(($kkk = $this->callHook('getFullSearchEngine')) && is_array($kkk)) case 'select': if(!empty($conf['options'])) { $selections = empty($settings->_extensions[$extname][$confkey]) ? array() : explode(",", $settings->_extensions[$extname][$confkey]); - echo ""; foreach($conf['options'] as $key=>$opt) { echo ""; foreach($categories as $category) { @@ -585,7 +585,7 @@ if(($kkk = $this->callHook('getFullSearchEngine')) && is_array($kkk)) case "users": $users = $dms->getAllUsers(); if($users) { - echo ""; if($allowempty) echo ""; foreach($users as $curuser) { @@ -600,7 +600,7 @@ if(($kkk = $this->callHook('getFullSearchEngine')) && is_array($kkk)) case "groups": $recs = $dms->getAllGroups(); if($recs) { - echo ""; if($allowempty) echo ""; foreach($recs as $rec) { @@ -615,9 +615,9 @@ if(($kkk = $this->callHook('getFullSearchEngine')) && is_array($kkk)) case "attributedefinitions": $objtype = empty($conf['objtype']) ? 0 : $conf['objtype']; $attrtype = empty($conf['attrtype']) ? 0 : $conf['attrtype']; - $recs = $dms->getAllAttributeDefinitions(explode(',', $objtype), explode(',', $attrtype)); + $recs = $dms->getAllAttributeDefinitions($objtype, $attrtype); if($recs) { - echo ""; if($allowempty) echo ""; foreach($recs as $rec) { @@ -634,7 +634,7 @@ if(($kkk = $this->callHook('getFullSearchEngine')) && is_array($kkk)) case "workflows": $recs = $dms->getAllWorkflows(); if($recs) { - echo ""; if($allowempty) echo ""; foreach($recs as $rec) { diff --git a/views/bootstrap/class.Timeline.php b/views/bootstrap/class.Timeline.php index 951db6f11..93732e9dc 100644 --- a/views/bootstrap/class.Timeline.php +++ b/views/bootstrap/class.Timeline.php @@ -41,6 +41,8 @@ class SeedDMS_View_Timeline extends SeedDMS_Theme_Style { $document = $this->params['document']; $version = $this->params['version']; $cachedir = $this->params['cachedir']; + $conversionmgr = $this->params['conversionmgr']; + $previewconverters = $this->params['previewConverters']; $previewwidthlist = $this->params['previewWidthList']; $previewwidthdetail = $this->params['previewWidthDetail']; $timeout = $this->params['timeout']; @@ -50,6 +52,10 @@ class SeedDMS_View_Timeline extends SeedDMS_Theme_Style { print $this->folderListHeader(); print "\n"; $previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidthdetail, $timeout, $xsendfile); + if($conversionmgr) + $previewer->setConversionMgr($conversionmgr); + else + $previewer->setConverters($previewconverters); $extracontent = array(); $extracontent['below_title'] = $this->getListRowPath($document); echo $this->documentListRow($document, $previewer, 0, false, $extracontent); @@ -155,10 +161,21 @@ $(document).ready(function () { ); }); }); + function onselect() { + var sel = timeline.getSelection(); + if (sel.length) { + if (sel[0].row != undefined) { + var row = sel[0].row; + console.log(timeline.getItem(sel[0].row)); + item = timeline.getItem(sel[0].row); + $('div.ajax').trigger('update', {documentid: item.docid, version: item.version, statusid: item.statusid, statuslogid: item.statuslogid, fileid: item.fileid}); + } + } + } printDeleteDocumentButtonJs(); $timelineurl = 'out.Timeline.php?action=data&fromdate='.date('Y-m-d', $from).'&todate='.date('Y-m-d', $to).'&skip='.urldecode(http_build_query(array('skip'=>$skip))); - $this->printTimelineJs($timelineurl, 550, ''/*date('Y-m-d', $from)*/, ''/*date('Y-m-d', $to+1)*/, $skip); + $this->printTimelineJs($timelineurl, 550, ''/*date('Y-m-d', $from)*/, ''/*date('Y-m-d', $to+1)*/, $skip, 'onselect'); $this->printClickDocumentJs(); } /* }}} */ diff --git a/views/bootstrap/class.ViewDocument.php b/views/bootstrap/class.ViewDocument.php index 029e013a3..c648be8b6 100644 --- a/views/bootstrap/class.ViewDocument.php +++ b/views/bootstrap/class.ViewDocument.php @@ -130,6 +130,8 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Theme_Style { $cachedir = $this->params['cachedir']; $conversionmgr = $this->params['conversionmgr']; $previewconverters = $this->params['previewConverters']; + $previewwidthlist = $this->params['previewWidthList']; + $previewwidthdetail = $this->params['previewWidthDetail']; $timeout = $this->params['timeout']; $xsendfile = $this->params['xsendfile']; $document = $this->params['document']; @@ -190,6 +192,41 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Theme_Style { echo json_encode($jsondata); } /* }}} */ + protected function iptcdata($arr) { /* {{{ */ + $iptcHeaderArray = array ( + '2#005'=>'DocumentTitle', + '2#010'=>'Urgency', + '2#015'=>'Category', + '2#025'=>'Keywords', + '2#020'=>'Subcategories', + '2#040'=>'SpecialInstructions', + '2#055'=>'CreationDate', + '2#080'=>'AuthorByline', + '2#085'=>'AuthorTitle', + '2#090'=>'City', + '2#095'=>'State', + '2#101'=>'Country', + '2#103'=>'OTR', + '2#105'=>'Headline', + '2#110'=>'Source', + '2#115'=>'PhotoSource', + '2#116'=>'Copyright', + '2#120'=>'Caption', + '2#122'=>'CaptionWriter' + ); + $retStr = ''; + if(is_array($arr)) { + foreach ($arr as $key=>$val) { + if(isset($iptcHeaderArray[$key])) + $retStr .= ''; + else + $retStr .= ''; + } + } + $retStr .= '
    ' . $iptcHeaderArray[$key] . '' . htmlspecialchars(implode('; ', $val)) . '
    ' . $key . '' . htmlspecialchars(implode('; ', $val)) . '
    '; + return $retStr; + } /* }}} */ + function js() { /* {{{ */ $dms = $this->params['dms']; $user = $this->params['user']; @@ -350,7 +387,7 @@ $(document).ready( function() { if(is_string($txt)) echo $txt; else { - $this->contentHeading(getMLText("document_infos")); + $this->contentHeading(htmlspecialchars($document->getName())); $txt = $this->callHook('preDocumentInfos', $document); if(is_string($txt)) echo $txt; @@ -660,9 +697,9 @@ $(document).ready( function() { // print "\n"; // print "\n"; // print ""; - $this->contentHeading(htmlspecialchars($latestContent->getOriginalFileName())); +// $this->contentHeading(htmlspecialchars($latestContent->getOriginalFileName())); $this->rowStart(); - $this->columnStart(4); + $this->columnStart(3); if ($file_exists) { if ($viewonlinefiletypes && (in_array(strtolower($latestContent->getFileType()), $viewonlinefiletypes) || in_array(strtolower($latestContent->getMimeType()), $viewonlinefiletypes))) { if($accessobject->check_controller_access('ViewOnline', array('action'=>'run'))) @@ -685,13 +722,24 @@ $(document).ready( function() { // print ""; $this->columnEnd(); - $this->columnStart(4); + $this->columnStart(5); print "

      \n"; + print "
    • ".htmlspecialchars($latestContent->getOriginalFileName())."
    • \n"; print "
    • ".getMLText('version').": ".$latestContent->getVersion()."
    • \n"; - if ($file_exists) - print "
    • ". SeedDMS_Core_File::format_filesize($latestContent->getFileSize()) .", ".htmlspecialchars($latestContent->getMimeType())."
    • "; - else print "
    • ".getMLText("document_deleted")."
    • "; + if ($file_exists) { + print "
    • ". SeedDMS_Core_File::format_filesize($latestContent->getFileSize()) .", "; + print htmlspecialchars($latestContent->getMimeType()); + if(in_array($latestContent->getMimeType(), ['image/jpeg', 'image/jpg', 'image/png', 'image/bmp'])) { + $imsize = getimagesize($dms->contentDir . $latestContent->getPath(), $moreinfo); + if(!empty($moreinfo['APP13'])) { + echo ', '.$this->printPopupBox(getMLText('iptc_metadata'), $this->iptcdata(iptcparse($moreinfo['APP13'])), true); + } + if($imsize[0] && $imsize[1]) + print ', '.$imsize[0].'×'.$imsize[1].' px'; + } + print "
    • "; + } else print "
    • ".getMLText("document_deleted")."
    • "; $updatingUser = $latestContent->getUser(); print "
    • ".getMLText("uploaded_by")." getEmail())."\">".htmlspecialchars($updatingUser->getFullName())."
    • "; diff --git a/views/bootstrap/class.ViewFolder.php b/views/bootstrap/class.ViewFolder.php index 11be8f321..ba6ca4306 100644 --- a/views/bootstrap/class.ViewFolder.php +++ b/views/bootstrap/class.ViewFolder.php @@ -333,7 +333,8 @@ $('body').on('click', '.order-btn', function(ev) { } echo "\n"; $infos = ob_get_clean(); - $this->printAccordion2(getMLText("folder_infos"), $infos); + echo $infos; +// $this->printAccordion2(getMLText("folder_infos"), $infos); $txt = $this->callHook('postFolderInfos', $folder); if(is_string($txt)) echo $txt; @@ -575,6 +576,7 @@ $('body').on('click', '.order-btn', function(ev) { $previewconverters = $this->params['previewConverters']; $timeout = $this->params['timeout']; $xsendfile = $this->params['xsendfile']; + $currenttab = $this->params['currenttab']; $folderid = $folder->getId(); $previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth, $timeout, $xsendfile); @@ -634,15 +636,36 @@ $('body').on('click', '.order-btn', function(ev) { $this->rowStart(); $this->columnStart(8); } - -// $this->folderInfos(); ?> + +
      +
      getID()."\"" : "") ?>>
      +
      +$tab) { + echo '
      '; + echo $tab['content']; + echo "
      \n"; + } + } +?> +
      getAccessMode($user) >= M_READWRITE*/) { $this->columnEnd(); $this->columnStart(4); -// $this->dropUpload(); ?>
      getID()."\"" : "") ?>>
      ' + files[i].name + ' (' + files[i].size + ' Bytes)', diff --git a/views/bootstrap4/class.Bootstrap4.php b/views/bootstrap4/class.Bootstrap4.php index 8eca84eed..0568bd0f6 100644 --- a/views/bootstrap4/class.Bootstrap4.php +++ b/views/bootstrap4/class.Bootstrap4.php @@ -31,7 +31,7 @@ class SeedDMS_Theme_Style extends SeedDMS_View_Common { function __construct($params, $theme='bootstrap') { parent::__construct($params, $theme); - $this->extraheader = array('js'=>'', 'css'=>'', 'favicon'=>'', 'logo'=>''); + $this->extraheader = array('js'=>'', 'css'=>'', 'favicon'=>'', 'logo'=>'', 'logolink'=>''); $this->footerjs = array(); $this->nonces = array(); } @@ -151,7 +151,7 @@ background-image: linear-gradient(to bottom, #882222, #111111);; } /* }}} */ function htmlAddHeader($head, $type='js') { /* {{{ */ - if($type == 'logo' || $type == 'favicon') + if($type == 'logo' || $type == 'favicon' || $type == 'logolink') $this->extraheader[$type] = $head; else $this->extraheader[$type] .= $head; @@ -306,7 +306,7 @@ background-image: linear-gradient(to bottom, #882222, #111111);; function globalBanner() { /* {{{ */ echo "\n"; } /* }}} */ @@ -314,7 +314,7 @@ background-image: linear-gradient(to bottom, #882222, #111111);; $dms = $this->params['dms']; $accessobject = $this->params['accessobject']; echo "