Merge branch 'seeddms-5.1.x'

This commit is contained in:
Uwe Steinmann 2022-09-22 16:52:06 +02:00
commit 7012580476
115 changed files with 5390 additions and 1008 deletions

View File

@ -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
--------------------------------------------------------------------------------

View File

@ -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;

View File

@ -12,11 +12,11 @@
<email>uwe@steinmann.cx</email>
<active>yes</active>
</lead>
<date>2022-04-25</date>
<date>2022-08-31</date>
<time>13:44:55</time>
<version>
<release>5.1.26</release>
<api>5.1.26</api>
<release>5.1.27</release>
<api>5.1.27</api>
</version>
<stability>
<release>stable</release>
@ -24,12 +24,9 @@
</stability>
<license uri="http://opensource.org/licenses/gpl-license">GPL License</license>
<notes>
- 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
</notes>
<contents>
<dir baseinstalldir="SeedDMS" name="/">
@ -1974,5 +1971,26 @@ add method SeedDMS_Core_DatabaseAccess::setLogFp()
- fix searching for document content with a custom attribute having a value set
</notes>
</release>
<release>
<date>2022-04-25</date>
<time>13:44:55</time>
<version>
<release>5.1.26</release>
<api>5.1.26</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="http://opensource.org/licenses/gpl-license">GPL License</license>
<notes>
- 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
</notes>
</release>
</changelog>
</package>

5
TODO
View File

@ -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:

View File

@ -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"
}
}

View File

@ -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)

View File

@ -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;
}

View File

@ -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;
}
}

View File

@ -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;
}

View File

@ -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;

View File

@ -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;
}
} /* }}} */
}

View File

@ -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;
}
} /* }}} */
}

View File

@ -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();

View File

@ -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;
}

58
doc/README.Ldap Normal file
View File

@ -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=<username>' (ldap) or
'sAMAccountName=<username>' (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=<username>,<basedn>' (ldap) or '<username>@<accountDomainName>' (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,<basedn>' 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.

30
doc/README.Mail Normal file
View File

@ -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

59
doc/README.ocr Normal file
View File

@ -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

View File

@ -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;
}

View File

@ -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() {
}
/**

View File

@ -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");

View File

@ -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;
}
} /* }}} */
}

View File

@ -0,0 +1,75 @@
<?php
/**
* Implementation of conversion service image class
*
* @category DMS
* @package SeedDMS
* @license GPL 2
* @version @version@
* @author Uwe Steinmann <uwe@steinmann.cx>
* @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 <uwe@steinmann.cx>
* @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;
} /* }}} */
}

View File

@ -0,0 +1,230 @@
<?php
/**
* Implementation of a download management.
*
* This class handles downloading of document lists.
*
* @category DMS
* @package SeedDMS
* @license GPL 2
* @version @version@
* @author Uwe Steinmann <uwe@steinmann.cx>
* @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 <uwe@steinmann.cx>
* @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;
} /* }}} */
}

View File

@ -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);
}

View File

@ -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);

View File

@ -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;
}

View File

@ -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);

View File

@ -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();

View File

@ -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';

View File

@ -166,53 +166,6 @@ function getReadableDurationArray($secs) { /* {{{ */
return $units;
} /* }}} */
//
// The original string sanitizer, kept for reference.
//function sanitizeString($string) {
// $string = str_replace("'", "&#0039;", $string);
// $string = str_replace("--", "", $string);
// $string = str_replace("<", "&lt;", $string);
// $string = str_replace(">", "&gt;", $string);
// $string = str_replace("/*", "", $string);
// $string = str_replace("*/", "", $string);
// $string = str_replace("\"", "&quot;", $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("&", "&amp;", $string);
$string = str_replace("%", "&#0037;", $string); // percent
$string = str_replace("\"", "&quot;", $string); // double quote
$string = str_replace("/*", "&#0047;&#0042;", $string); // start of comment
$string = str_replace("*/", "&#0042;&#0047;", $string); // end of comment
$string = str_replace("<", "&lt;", $string);
$string = str_replace(">", "&gt;", $string);
$string = str_replace("=", "&#0061;", $string);
$string = str_replace(")", "&#0041;", $string);
$string = str_replace("(", "&#0040;", $string);
$string = str_replace("'", "&#0039;", $string);
$string = str_replace("+", "&#0043;", $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;

View File

@ -20,7 +20,7 @@
class SeedDMS_Version { /* {{{ */
const _number = "5.1.26";
const _number = "5.1.27";
const _string = "SeedDMS";
function __construct() {

View File

@ -119,6 +119,5 @@ if (!update_db()) {
print "<b>Update done</b><br>";
print "</body></html>";
print "</body></html>";
?>

View File

@ -19,7 +19,7 @@ CREATE TABLE `tblDocumentFiles` (
`fileType` varchar(10) NOT NULL default '',
`mimeType` varchar(70) NOT NULL default '',
PRIMARY KEY (`id`)
) ;
) Engine=MyISAM ;
-- --------------------------------------------------------

View File

@ -68,6 +68,5 @@ if (!update_db()) {
}else print "</pre><b>Update done</b><br>";
print "</body></html>";
print "</body></html>";
?>

View File

@ -24,7 +24,7 @@ CREATE TABLE `tblMandatoryReviewers` (
`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
@ -35,4 +35,4 @@ CREATE TABLE `tblMandatoryApprovers` (
`approverUserID` int(11) NOT NULL default '0',
`approverGroupID` int(11) NOT NULL default '0',
PRIMARY KEY (`userID`,`approverUserID`,`approverGroupID`)
) ;
) Engine=MyISAM ;

View File

@ -68,6 +68,4 @@ if (!update_db()) {
}else print "</pre><b>Update done</b><br>";
print "</body></html>";
?>
print "</body></html>";

View File

@ -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 "<p>Update failed</p>";
}

View File

@ -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' => 'استخدام كلمات بحثية معدة مسبقا',

View File

@ -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' => 'Исползовай предопределенни ключови думи',

View File

@ -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ó',

View File

@ -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',

View File

@ -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]</p>',
'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]</p>',
'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]</p>',
'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]</p>',
'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]</p>',
'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]</p>',
'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]</p>',
'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]</p>',
'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]</p>',
'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]</p>',
'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]</p>',
'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',

View File

@ -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' => 'Χρήση προκαθορισμένων λέξεων κλειδιών',

View File

@ -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]</p>',
'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]</p>',
'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]</p>',
'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]</p>',
'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]</p>',
'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]</p>',
'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]</p>',
'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]</p>',
'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]</p>',
'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]</p>',
'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]</p>',
'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',

View File

@ -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',

View File

@ -261,6 +261,14 @@ URL : [url]</p>',
'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]</p>',
'comment_changed_email' => 'Commentaire lors du changement d\'adresse mail',
'comment_for_current_version' => 'Commentaires pour la version actuelle',
'configure_extension' => 'Configurer lextension',
'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]</p>',
'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]</p>',
'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]</p>',
'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]</p>',
'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]</p>',
'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]</p>',
'no_previous_versions' => 'Aucune autre version trouvée',
'no_receipt_needed' => 'Il ny 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]</p>',
'select_attrdefgrp_show' => 'Sélectionner quand afficher',
'select_attribute_value' => 'Sélectionner la valeur de lattribut',
'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' => 'Lutilisateur na 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 à lutilisateur',
'transfer_to_user' => 'Transférer à lutilisateur',
'transition_triggered_email' => 'Transition de workflow activé',
@ -2443,10 +2466,16 @@ URL : [url]</p>',
'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 daffichage',
'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',

View File

@ -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.',

View File

@ -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',

2226
languages/id_ID/lang.inc Normal file

File diff suppressed because it is too large Load Diff

View File

@ -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',

View File

@ -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' => '사전 정의 된 키워드를 사용하십시오',

View File

@ -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' => 'ໄຊ້ຄຳຫຼັກທີ່ກຳນົດໄວ້ລ່ວງໜ້າ',

View File

@ -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',

View File

@ -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',

View File

@ -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',

View File

@ -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',

View File

@ -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',

View File

@ -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' => 'Не показывать в<br/>списке пользователей',
'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' => 'Использовать предопределённые метки',

View File

@ -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á',

View File

@ -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',

View File

@ -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',

View File

@ -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' => 'Не відображати в<br/>переліку користувачів',
'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' => 'Використовувати наперед визначені ключові слова',

View File

@ -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' => '使用预定义关键字',

View File

@ -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' => '使用預定義關鍵字',

View File

@ -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);

View File

@ -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.

View File

@ -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;

View File

@ -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"));
}

View File

@ -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')));

View File

@ -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"));
}

View File

@ -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"));
}

View File

@ -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);
}

View File

@ -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);

View File

@ -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());
}

View File

@ -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);

View File

@ -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))

View File

@ -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 "<pre>";print_r($newusers);echo "</pre>";
// echo "<pre>";print_r($newusers);echo "</pre>";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;
}

View File

@ -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");

View File

@ -53,7 +53,7 @@ if(isset($_COOKIE['mydms_session'])) {
$controller->setParam('user', $user);
$controller->setParam('session', $session);
$controller->run();
$controller();
}
//Forward to Login-page

View File

@ -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;

View File

@ -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);
*/
?>

View File

@ -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

View File

@ -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"]);

View File

@ -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

View File

@ -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"));
}

View File

@ -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')) {

View File

@ -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

View File

@ -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"));
}
} /* }}} */

View File

@ -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);

View File

@ -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"])) {

View File

@ -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;
}

View File

@ -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);

View File

@ -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;
}

View File

@ -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');

View File

@ -12,7 +12,7 @@ function usage() { /* {{{ */
echo " seeddms-indexer [-h] [-v] [-c] [--config <file>]".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;

View File

@ -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"),

View File

@ -93,13 +93,19 @@ $(document).ready( function() {
$content .= "<th>".getMLText("attribute_value")."</th>\n";
$content .= "<th>".getMLText("attribute_count")."</th>\n";
$content .= "<th></th>\n";
$content .= "<th></th>\n";
$content .= "</tr></thead>\n<tbody>\n";
$separator = $selattrdef->getValueSetSeparator();
foreach($res['frequencies'][$type] as $entry) {
$value = $selattrdef->parseValue($entry['value']);
$content .= "<tr>";
$content .= "<td>".htmlspecialchars(implode('<span style="color: #aaa;">'.($separator ? ' '.$separator.' ' : ' ; ').'</span>', $value))."</td>";
$content .= "<td><a href=\"../out/out.Search.php?resultmode=".($type == 'folder' ? 2 : ($type == 'document' ? 1 : 3))."&attributes[".$selattrdef->getID()."]=".urlencode($entry['value'])."\">".urlencode($entry['c'])."</a></td>";
$content .= "<td><a href=\"../out/out.Search.php?fullsearch=0&resultmode=".($type == 'folder' ? 2 : ($type == 'document' ? 1 : 3))."&";
if($selattrdef->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'])."</a></td>";
$content .= "<td>";
/* various checks, if the value is valid */
if(!$selattrdef->validate($entry['value'])) {

View File

@ -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 "<div class=\"navbar navbar-inverse navbar-fixed-top\">\n";
echo " <div class=\"navbar-inner\">\n";
echo " <div class=\"container-fluid\">\n";
echo " <a href=\"".$this->params['settings']->_httpRoot."out/out.ViewFolder.php?folderid=".(!empty($this->params['dms']) ? $this->params['dms']->getRootFolder()->getId() : '1')."\">".(!empty($this->extraheader['logo']) ? '<img src="'.$this->extraheader['logo'].'"/>' : '<img src="'.$this->params['settings']->_httpRoot.'views/bootstrap/images/seeddms-logo.svg"/>')."</a>";
echo " <a class=\"brand\" href=\"".$this->params['settings']->_httpRoot."out/out.ViewFolder.php\">".(strlen($this->params['sitename'])>0 ? $this->params['sitename'] : "SeedDMS")."</a>\n";
echo " <a href=\"".(!empty($this->extraheader['logolink']) ? $this->extraheader['logolink'] : $this->params['settings']->_httpRoot."out/out.ViewFolder.php")."\">".(!empty($this->extraheader['logo']) ? '<img id="navbar-logo" src="'.$this->extraheader['logo'].'"/>' : '<img id="navbar-logo" src="'.$this->params['settings']->_httpRoot.'views/bootstrap/images/seeddms-logo.svg"/>')."</a>";
echo " <a class=\"brand\" href=\"".(!empty($this->extraheader['logolink']) ? $this->extraheader['logolink'] : $this->params['settings']->_httpRoot."out/out.ViewFolder.php")."\">".(strlen($this->params['sitename'])>0 ? $this->params['sitename'] : "SeedDMS")."</a>\n";
echo " </div>\n";
echo " </div>\n";
echo "</div>\n";
@ -313,8 +313,8 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
echo " <a class=\"btn btn-navbar\" href=\"".$this->params['settings']->_httpRoot."op/op.Logout.php\">\n";
echo " <span class=\"fa fa-sign-out\"></span>\n";
echo " </a>\n";
echo " <a href=\"".$this->params['settings']->_httpRoot."out/out.ViewFolder.php?folderid=".$this->params['dms']->getRootFolder()->getId()."\">".(!empty($this->extraheader['logo']) ? '<img src="'.$this->extraheader['logo'].'">' : '<img src="'.$this->params['settings']->_httpRoot.'views/bootstrap/images/seeddms-logo.svg">')."</a>";
echo " <a class=\"brand\" href=\"".$this->params['settings']->_httpRoot."out/out.ViewFolder.php?folderid=".$this->params['dms']->getRootFolder()->getId()."\"><span class=\"hidden-phone\">".(strlen($this->params['sitename'])>0 ? $this->params['sitename'] : "SeedDMS")."</span></a>\n";
echo " <a href=\"".(!empty($this->extraheader['logolink']) ? $this->extraheader['logolink'] : $this->params['settings']->_httpRoot."out/out.ViewFolder.php")."\">".(!empty($this->extraheader['logo']) ? '<img id="navbar-logo" src="'.$this->extraheader['logo'].'">' : '<img id="navbar-logo" src="'.$this->params['settings']->_httpRoot.'views/bootstrap/images/seeddms-logo.svg">')."</a>";
echo " <a class=\"brand\" href=\"".(!empty($this->extraheader['logolink']) ? $this->extraheader['logolink'] : $this->params['settings']->_httpRoot."out/out.ViewFolder.php")."\"><span class=\"hidden-phone\">".(strlen($this->params['sitename'])>0 ? $this->params['sitename'] : "SeedDMS")."</span></a>\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 "<li><a href=\"".$menuitem['link']."\">".getMLText($menuitem['label'])."</a></li>";
echo "<li><a href=\"".$menuitem['link']."\">".$menuitem['label']."</a></li>";
}
echo " <li class=\"divider\"></li>\n";
}
@ -430,11 +430,11 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
echo " <ul class=\"nav\">\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 " <li class=\"dropdown\">\n";
echo " <a class=\"dropdown-toggle\" data-toggle=\"dropdown\">".getMLText($menuitem['label'])." <i class=\"fa fa-caret-down\"></i></a>\n";
echo " <a class=\"dropdown-toggle\" data-toggle=\"dropdown\">".$menuitem['label']." <i class=\"fa fa-caret-down\"></i></a>\n";
echo " <ul class=\"dropdown-menu\" role=\"menu\">\n";
foreach($menuitem['children'] as $submenuitem) {
echo " <li><a href=\"".$submenuitem['link']."\"".(isset($submenuitem['target']) ? ' target="'.$submenuitem['target'].'"' : '').">".getMLText($submenuitem['label'])."</a></li>\n";
echo " <li><a href=\"".$submenuitem['link']."\"".(isset($submenuitem['target']) ? ' target="'.$submenuitem['target'].'"' : '').">".$submenuitem['label']."</a></li>\n";
}
echo " </ul>\n";
} else {
echo "<li><a href=\"".$menuitem['link']."\"".(isset($menuitem['target']) ? ' target="'.$menuitem['target'].'"' : '').">".getMLText($menuitem['label'])."</a></li>";
echo "<li><a href=\"".$menuitem['link']."\"".(isset($menuitem['target']) ? ' target="'.$menuitem['target'].'"' : '').">".$menuitem['label']."</a></li>";
}
}
echo " </ul>\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 "</div>\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 "<div class=\"pagination pagination-small\">";
echo "<ul>";
if($totalPages <= $maxpages) {
for ($i = 1; $i <= $totalPages; $i++) {
echo "<li ".($i == $pageNumber ? 'class="active"' : "" )."><a href=\"".$resultsURI.($first ? "?" : "&")."pg=".$i."\">".$i."</a></li>";
echo "<li ".($i == $pageNumber ? 'class="active"' : "" )."><a href=\"".$resultsURI.($first ? "?" : "&")."pg=".$i."\" data-page=\"".$i."\"".$datastr.">".$i."</a></li>";
}
} else {
if($pageNumber-$range > 1)
@ -996,21 +1037,21 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
$end -= $diff;
}
if($pageNumber > 1)
echo "<li><a href=\"".$resultsURI.($first ? "?" : "&")."pg=".($pageNumber-1)."\">&laquo;</a></li>";
echo "<li ".(1 == $pageNumber ? 'class="active"' : "" )."><a href=\"".$resultsURI.($first ? "?" : "&")."pg=1\">1</a></li>";
echo "<li><a href=\"".$resultsURI.($first ? "?" : "&")."pg=".($pageNumber-1)."\" data-page=\"".($pageNumber-1)."\"".$datastr.">&laquo;</a></li>";
echo "<li ".(1 == $pageNumber ? 'class="active"' : "" )."><a href=\"".$resultsURI.($first ? "?" : "&")."pg=1\" data-page=\"1\"".$datastr.">1</a></li>";
if($start > 2)
echo "<li><span>...</span></li>";
for($j=$start; $j<=$end; $j++)
echo "<li ".($j == $pageNumber ? 'class="active"' : "" )."><a href=\"".$resultsURI.($first ? "?" : "&")."pg=".$j."\">".$j."</a></li>";
echo "<li ".($j == $pageNumber ? 'class="active"' : "" )."><a href=\"".$resultsURI.($first ? "?" : "&")."pg=".$j."\" data-page=\"".$j."\"".$datastr.">".$j."</a></li>";
if($end < $totalPages-1)
echo "<li><span>...</span></li>";
if($end < $totalPages)
echo "<li ".($totalPages == $pageNumber ? 'class="active"' : "" )."><a href=\"".$resultsURI.($first ? "?" : "&")."pg=".$totalPages."\">".$totalPages."</a></li>";
echo "<li ".($totalPages == $pageNumber ? 'class="active"' : "" )."><a href=\"".$resultsURI.($first ? "?" : "&")."pg=".$totalPages."\" data-page=\"".$totalPages."\"".$datastr.">".$totalPages."</a></li>";
if($pageNumber < $totalPages)
echo "<li><a href=\"".$resultsURI.($first ? "?" : "&")."pg=".($pageNumber+1)."\">&raquo;</a></li>";
echo "<li><a href=\"".$resultsURI.($first ? "?" : "&")."pg=".($pageNumber+1)."\" data-page=\"".($pageNumber+1)."\"".$datastr.">&raquo;</a></li>";
}
if ($totalPages>1) {
echo "<li><a href=\"".$resultsURI.($first ? "?" : "&")."pg=all\">".getMLText("all_pages")."</a></li>";
echo "<li ".(0 == $pageNumber ? 'class="active"' : "" )."><a href=\"".$resultsURI.($first ? "?" : "&")."pg=all\" data-page=\"all\"".$datastr.">".getMLText("all_pages")."</a></li>";
}
echo "</ul>";
echo "</div>";
@ -1303,7 +1344,7 @@ function getOverallStatusIcon($status) { /* {{{ */
$icon = 'fa fa-question';
break;
}
return '<i class="fa '.$icon.'"'.($color ? ' style="color: '.$color.';"' : '').' title="'.getOverallStatusText($status).'"></i>';
return '<div style="display: inline-block; white-space: nowrap;"><i class="fa '.$icon.'"'.($color ? ' style="color: '.$color.';"' : '').' title="'.getOverallStatusText($status).'"></i> <span class="visible-desktop">'.getOverallStatusText($status).'</span></div>';
}
} /* }}} */
@ -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 .= "<select class=\"chzn-select\"".($allowempty ? " data-allow-clear=\"true\"" : "")."\" name=\"".$fieldname."[".$attrdef->getId()."]".($allowmultiple ? '[]' : '')."\"".($allowmultiple ? " multiple" : "")." data-placeholder=\"".getMLText("select_user")."\">";
if($allowempty)
$content .= "<option value=\"\"></option>";
@ -1865,7 +1906,7 @@ $(document).ready(function() {
$groups = $dms->getAllGroups();
if($groups) {
$allowempty = $attrdef->getMinValues() == 0;
$allowmultiple = $attrdef->getMultipleValues();
$allowmultiple = $attrdef->getMultipleValues() || $alwaysmultiple;
$content .= "<select class=\"chzn-select\"".($allowempty ? " data-allow-clear=\"true\"" : "")."\" name=\"".$fieldname."[".$attrdef->getId()."]".($allowmultiple ? '[]' : '')."\"".($allowmultiple ? " multiple" : "")." data-placeholder=\"".getMLText("select_group")."\">";
if($allowempty)
$content .= "<option value=\"\"></option>";
@ -1884,13 +1925,13 @@ $(document).ready(function() {
if($valueset = $attrdef->getValueSetAsArray()) {
$content .= "<input type=\"hidden\" name=\"".$fieldname."[".$attrdef->getId()."]\" value=\"\"/>";
$content .= "<select id=\"".$fieldname."_".$attrdef->getId()."\" name=\"".$fieldname."[".$attrdef->getId()."]";
if($attrdef->getMultipleValues()) {
if($attrdef->getMultipleValues() || $alwaysmultiple) {
$content .= "[]\" multiple";
} else {
$content .= "\" data-allow-clear=\"true\"";
}
$content .= "".((!$norequire && $attrdef->getMinValues() > 0) ? ' required="required"' : '')." class=\"chzn-select\" data-placeholder=\"".getMLText("select_value")."\">";
if(!$attrdef->getMultipleValues()) {
if(!$attrdef->getMultipleValues() && !$alwaysmultiple) {
$content .= "<option value=\"\"></option>";
}
$objvalue = $attribute ? (is_object($attribute) ? $attribute->getValueAsArray() : $attribute) : array();
@ -2381,7 +2422,7 @@ $(function() {
function printDeleteDocumentButton($document, $msg, $return=false){ /* {{{ */
$docid = $document->getID();
$content = '';
$content .= '<a class="delete-document-btn" rel="'.$docid.'" msg="'.getMLText($msg).'" confirmmsg="'.htmlspecialchars(getMLText("confirm_rm_document", array ("documentname" => $document->getName())), ENT_QUOTES).'"><i class="fa fa-remove"></i></a>';
$content .= '<a class="delete-document-btn" rel="'.$docid.'" msg="'.getMLText($msg).'" confirmmsg="'.htmlspecialchars(getMLText("confirm_rm_document", array ("documentname" => $document->getName())), ENT_QUOTES).'" title="'.getMLText("delete").'"><i class="fa fa-remove"></i></a>';
if($return)
return $content;
else
@ -2455,7 +2496,7 @@ $(function() {
function printDeleteFolderButton($folder, $msg, $return=false){ /* {{{ */
$folderid = $folder->getID();
$content = '';
$content .= '<a class="delete-folder-btn" rel="'.$folderid.'" msg="'.getMLText($msg).'" confirmmsg="'.htmlspecialchars(getMLText("confirm_rm_folder", array ("foldername" => $folder->getName())), ENT_QUOTES).'"><i class="fa fa-remove"></i></a>';
$content .= '<a class="delete-folder-btn" rel="'.$folderid.'" msg="'.getMLText($msg).'" confirmmsg="'.htmlspecialchars(getMLText("confirm_rm_folder", array ("foldername" => $folder->getName())), ENT_QUOTES).'" title="'.getMLText("delete").'"><i class="fa fa-remove"></i></a>';
if($return)
return $content;
else
@ -2976,32 +3017,50 @@ $('body').on('click', '[id^=\"table-row-folder\"] td:nth-child(2)', function(ev)
$content = '';
$content .= "<div class=\"list-action\">";
$actions = array();
if(!empty($extracontent['begin_action_list']))
$content .= $extracontent['begin_action_list'];
if($accessop->check_view_access('RemoveDocument')) {
if($document->getAccessMode($user) >= M_ALL) {
$content .= $this->printDeleteDocumentButton($document, 'splash_rm_document', true);
$actions['remove_document'] = $this->printDeleteDocumentButton($document, 'splash_rm_document', true);
} else {
$content .= '<span style="padding: 2px; color: #CCC;"><i class="fa fa-remove"></i></span>';
$actions['remove_document'] = '<span style="padding: 2px; color: #CCC;"><i class="fa fa-remove"></i></span>';
}
}
$docID = $document->getID();
if($document->getAccessMode($user) >= M_READWRITE) {
$content .= '<a href="'.$this->params['settings']->_httpRoot.'out/out.EditDocument.php?documentid='.$docID.'" title="'.getMLText("edit_document_props").'"><i class="fa fa-edit"></i></a>';
$actions['edit_document'] = '<a href="'.$this->params['settings']->_httpRoot.'out/out.EditDocument.php?documentid='.$docID.'" title="'.getMLText("edit_document_props").'"><i class="fa fa-edit"></i></a>';
} else {
$content .= '<span style="padding: 2px; color: #CCC;"><i class="fa fa-edit"></i></span>';
$actions['edit_document'] = '<span style="padding: 2px; color: #CCC;"><i class="fa fa-edit"></i></span>';
}
if($document->getAccessMode($user) >= M_READWRITE) {
$content .= $this->printLockButton($document, 'splash_document_locked', 'splash_document_unlocked', true);
$actions['lock_document'] = $this->printLockButton($document, 'splash_document_locked', 'splash_document_unlocked', true);
}
if($document->getAccessMode($user) >= M_READWRITE) {
$content .= $this->printAccessButton($document, true);
$actions['document_access'] = $this->printAccessButton($document, true);
}
if($enableClipboard) {
$content .= '<a class="addtoclipboard" rel="D'.$docID.'" msg="'.getMLText('splash_added_to_clipboard').'" title="'.getMLText("add_to_clipboard").'"><i class="fa fa-copy"></i></a>';
$actions['add_to_clipboard'] = '<a class="addtoclipboard" rel="D'.$docID.'" msg="'.getMLText('splash_added_to_clipboard').'" title="'.getMLText("add_to_clipboard").'"><i class="fa fa-copy"></i></a>';
}
if($onepage)
$content .= '<a href="'.$this->params['settings']->_httpRoot.'out/out.ViewDocument.php?documentid='.$docID.'" title="'.getMLText("view_document").'"><i class="fa fa-eye"></i></a>';
$actions['view_document'] = '<a href="'.$this->params['settings']->_httpRoot.'out/out.ViewDocument.php?documentid='.$docID.'" title="'.getMLText("view_document").'"><i class="fa fa-eye"></i></a>';
/* 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, 'documentRowAction')) {
$actions = $hookObj->documentRowAction($this, $document, $actions);
}
}
foreach($actions as $action) {
if(is_string($action))
$content .= $action;
}
if(!empty($extracontent['end_action_list']))
$content .= $extracontent['end_action_list'];
$content .= "</div>";
@ -3166,29 +3225,47 @@ $('body').on('click', '[id^=\"table-row-folder\"] td:nth-child(2)', function(ev)
$content = '';
$content .= "<div class=\"list-action\">";
$actions = array();
if(!empty($extracontent['begin_action_list']))
$content .= $extracontent['begin_action_list'];
$subFolderAccessMode = $subFolder->getAccessMode($user);
if ($accessop->check_view_access('RemoveFolder')) {
if($subFolderAccessMode >= M_ALL) {
$content .= $this->printDeleteFolderButton($subFolder, 'splash_rm_folder', true);
$actions['remove_folder'] = $this->printDeleteFolderButton($subFolder, 'splash_rm_folder', true);
} else {
$content .= '<span style="padding: 2px; color: #CCC;"><i class="fa fa-remove"></i></span>';
$actions['remove_folder'] = '<span style="padding: 2px; color: #CCC;"><i class="fa fa-remove"></i></span>';
}
}
if($subFolderAccessMode >= M_READWRITE) {
$content .= '<a class_="btn btn-mini" href="'.$this->params['settings']->_httpRoot.'out/out.EditFolder.php?folderid='.$subFolder->getID().'" title="'.getMLText("edit_folder_props").'"><i class="fa fa-edit"></i></a>';
$actions['edit_folder'] = '<a class_="btn btn-mini" href="'.$this->params['settings']->_httpRoot.'out/out.EditFolder.php?folderid='.$subFolder->getID().'" title="'.getMLText("edit_folder_props").'"><i class="fa fa-edit"></i></a>';
} else {
$content .= '<span style="padding: 2px; color: #CCC;"><i class="fa fa-edit"></i></span>';
$actions['edit_folder'] = '<span style="padding: 2px; color: #CCC;"><i class="fa fa-edit"></i></span>';
}
if($subFolderAccessMode >= M_READWRITE) {
$content .= $this->printAccessButton($subFolder, true);
$actions['folder_access'] = $this->printAccessButton($subFolder, true);
}
if($enableClipboard) {
$content .= '<a class="addtoclipboard" rel="F'.$subFolder->getID().'" msg="'.getMLText('splash_added_to_clipboard').'" title="'.getMLText("add_to_clipboard").'"><i class="fa fa-copy"></i></a>';
$actions['add_to_clipboard'] = '<a class="addtoclipboard" rel="F'.$subFolder->getID().'" msg="'.getMLText('splash_added_to_clipboard').'" title="'.getMLText("add_to_clipboard").'"><i class="fa fa-copy"></i></a>';
}
if($onepage)
$content .= '<a href="'.$this->params['settings']->_httpRoot.'out/out.ViewFolder.php?folderid='.$subFolder->getID().'" title="'.getMLText("view_folder").'"><i class="fa fa-eye"></i></a>';
$actions['view_folder'] = '<a href="'.$this->params['settings']->_httpRoot.'out/out.ViewFolder.php?folderid='.$subFolder->getID().'" title="'.getMLText("view_folder").'"><i class="fa fa-eye"></i></a>';
/* 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, 'folderRowAction')) {
$actions = $hookObj->folderRowAction($this, $folder, $actions);
}
}
foreach($actions as $action) {
if(is_string($action))
$content .= $action;
}
if(!empty($extracontent['end_action_list']))
$content .= $extracontent['end_action_list'];
$content .= "</div>";
@ -3605,7 +3682,7 @@ $(document).ready(function() {
*
* @param object $document document
*/
protected function printTimelineJs($timelineurl, $height=300, $start='', $end='', $skip=array()) { /* {{{ */
protected function printTimelineJs($timelineurl, $height=300, $start='', $end='', $skip=array(), $onselect="") { /* {{{ */
if(!$timelineurl)
return;
?>
@ -3632,21 +3709,16 @@ $(document).ready(function() {
'locale': '<?php echo $this->params['session']->getLanguage() ?>'
};
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});
}
}
}
$(document).ready(function () {
// Instantiate our timeline object.
timeline = new links.Timeline(document.getElementById('timeline'), options);
links.events.addListener(timeline, 'select', onselect);
<?php
if($onselect):
?>
links.events.addListener(timeline, 'select', <?= $onselect ?>);
<?php
endif;
?>
$.getJSON(
'<?php echo $timelineurl ?>',
function(data) {
@ -3695,7 +3767,7 @@ $("body").on("click", "span.openpopupbox", function(e) {
echo $html;
} /* }}} */
public function printAccordion($title, $content) { /* {{{ */
public function printAccordion($title, $content, $open=false) { /* {{{ */
$id = substr(md5(uniqid()), 0, 4);
?>
<div class="accordion" id="accordion<?php echo $id; ?>">
@ -3705,7 +3777,7 @@ $("body").on("click", "span.openpopupbox", function(e) {
<?php echo $title; ?>
</a>
</div>
<div id="collapse<?php echo $id; ?>" class="accordion-body collapse" style="height: 0px;">
<div id="collapse<?php echo $id; ?>" class="accordion-body collapse<?= $open ? " in" : "" ?>">
<div class="accordion-inner">
<?php
echo $content;

View File

@ -43,6 +43,8 @@ class SeedDMS_View_Calendar extends SeedDMS_Theme_Style {
$event = $this->params['event'];
$strictformcheck = $this->params['strictformcheck'];
$cachedir = $this->params['cachedir'];
$conversionmgr = $this->params['conversionmgr'];
$previewconverters = $this->params['previewConverters'];
$previewwidthlist = $this->params['previewWidthList'];
$previewwidthdetail = $this->params['previewWidthDetail'];
$timeout = $this->params['timeout'];
@ -52,6 +54,10 @@ class SeedDMS_View_Calendar extends SeedDMS_Theme_Style {
print $this->folderListHeader();
print "<tbody>\n";
$previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidthdetail, $timeout, $xsendfile);
if($conversionmgr)
$previewer->setConversionMgr($conversionmgr);
else
$previewer->setConverters($previewconverters);
echo $this->documentListRow($document, $previewer);
echo "</tbody>\n</table>\n";
}
@ -125,6 +131,8 @@ class SeedDMS_View_Calendar extends SeedDMS_Theme_Style {
$dms = $this->params['dms'];
$start = explode('-', $this->params['start']);
$cachedir = $this->params['cachedir'];
$conversionmgr = $this->params['conversionmgr'];
$previewconverters = $this->params['previewConverters'];
$previewwidthlist = $this->params['previewWidthList'];
$previewwidthdetail = $this->params['previewWidthDetail'];
$timeout = $this->params['timeout'];
@ -146,6 +154,10 @@ class SeedDMS_View_Calendar extends SeedDMS_Theme_Style {
print "<th>".getMLText("action")."</th>\n";
print "</tr>\n</thead>\n<tbody>\n";
$previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidthdetail, $timeout, $xsendfile);
if($conversionmgr)
$previewer->setConversionMgr($conversionmgr);
else
$previewer->setConverters($previewconverters);
foreach($data as $i=>$item) {
/* Filter out timeline events for the documents not happened on the
* selected day

View File

@ -440,7 +440,7 @@ class SeedDMS_View_DocumentVersionDetail extends SeedDMS_Theme_Style {
case 0: // Approver is an individual.
$required = $dms->getUser($a["required"]);
if (!is_object($required)) {
$reqName = getMLText("unknown_user")." '".$r["required"]."'";
$reqName = getMLText("unknown_user")." '".$a["required"]."'";
}
else {
$reqName = "<i class=\"fa fa-user\"></i> ".htmlspecialchars($required->getFullName()." (".$required->getLogin().")");
@ -449,7 +449,7 @@ class SeedDMS_View_DocumentVersionDetail extends SeedDMS_Theme_Style {
case 1: // Approver is a group.
$required = $dms->getGroup($a["required"]);
if (!is_object($required)) {
$reqName = getMLText("unknown_group")." '".$r["required"]."'";
$reqName = getMLText("unknown_group")." '".$a["required"]."'";
}
else {
$reqName = "<i class=\"fa fa-group\"></i> ".htmlspecialchars($required->getName());

Some files were not shown because too many files have changed in this diff Show More