mirror of
https://git.code.sf.net/p/seeddms/code
synced 2025-07-15 17:08:11 +00:00
Merge branch 'seeddms-5.1.x'
This commit is contained in:
commit
40bd123fe3
|
@ -30,7 +30,7 @@ RewriteRule "^styles/.*$" "-" [L]
|
||||||
# Added for old extensions which do not use routes
|
# Added for old extensions which do not use routes
|
||||||
RewriteRule ^ext/[^/]+/icon.(?:png|svg)$ - [L]
|
RewriteRule ^ext/[^/]+/icon.(?:png|svg)$ - [L]
|
||||||
RewriteCond %{REQUEST_URI} "ext/[^/]+/"
|
RewriteCond %{REQUEST_URI} "ext/[^/]+/"
|
||||||
RewriteRule !^ext/[^/]+/.*(?:op|out|res) - [F]
|
RewriteRule !^ext/[^/]+/.*(?:op|out|res|node_modules) - [F]
|
||||||
RewriteCond %{REQUEST_URI} "ext/[^/]+/res/.*$" [NC]
|
RewriteCond %{REQUEST_URI} "ext/[^/]+/res/.*$" [NC]
|
||||||
RewriteRule !^ext/[^/]+/res/.*\.(?:css|js|png|svg) - [F]
|
RewriteRule !^ext/[^/]+/res/.*\.(?:css|js|png|svg) - [F]
|
||||||
RewriteCond %{REQUEST_FILENAME} -f
|
RewriteCond %{REQUEST_FILENAME} -f
|
||||||
|
|
22
CHANGELOG
22
CHANGELOG
|
@ -1,3 +1,20 @@
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
Changes in version 5.1.26
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
- add hook additionalDocumentContentInfo
|
||||||
|
- add restapi function 'statstotal'
|
||||||
|
- custom attributes of type 'date' regard the date format
|
||||||
|
- check extension dependency on shell commands
|
||||||
|
- log reason for notification
|
||||||
|
- add list of notification services
|
||||||
|
- clicking on the file selection button no longer submits the form in firefox
|
||||||
|
- fix clear clipboard link in menu
|
||||||
|
- add conversion service from tiff, gif to png
|
||||||
|
- do not use logger in notification service if it was not initialized
|
||||||
|
- fix editing of custom date fields
|
||||||
|
- fix listing files/folders with umlauts when using webdav
|
||||||
|
- fix upload with fine-uploader
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
Changes in version 5.1.25
|
Changes in version 5.1.25
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
@ -9,8 +26,8 @@
|
||||||
- various improvements for workflows
|
- various improvements for workflows
|
||||||
- output splash message when removing, editing, adding a category or keyword
|
- output splash message when removing, editing, adding a category or keyword
|
||||||
- extensions cannot be disabled/enabled if configuration file is not writeable
|
- extensions cannot be disabled/enabled if configuration file is not writeable
|
||||||
- prevent cross site scripting in views/bootstrap/class.DefaultKeywords.php
|
- prevent cross site scripting in views/bootstrap/class.DefaultKeywords.php (CVE-2022-28051)
|
||||||
- fix possible DoS in op/op.RemoveLog.php
|
- fix possible DoS in op/op.RemoveLog.php (CVE-2022-28478)
|
||||||
- show only calendar events of logged in user
|
- show only calendar events of logged in user
|
||||||
- show expired documents in calendar
|
- show expired documents in calendar
|
||||||
- call new hook 'cleanUpDocument' after uploading or updating a document
|
- call new hook 'cleanUpDocument' after uploading or updating a document
|
||||||
|
@ -229,6 +246,7 @@
|
||||||
- pass configuration to init() of extension (backport from 6.0.x)
|
- pass configuration to init() of extension (backport from 6.0.x)
|
||||||
- place comment of version below version data (remove extra column, backport from 6.0.x)
|
- place comment of version below version data (remove extra column, backport from 6.0.x)
|
||||||
- fix creating folders via restapi (Closes: #469)
|
- fix creating folders via restapi (Closes: #469)
|
||||||
|
- custom attributes of type date show up in the calendar
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
Changes in version 5.1.15
|
Changes in version 5.1.15
|
||||||
|
|
|
@ -1066,18 +1066,21 @@ class SeedDMS_Core_AttributeDefinition { /* {{{ */
|
||||||
* @param integer $limit limit number of documents/folders
|
* @param integer $limit limit number of documents/folders
|
||||||
* @return array array containing list of documents and folders
|
* @return array array containing list of documents and folders
|
||||||
*/
|
*/
|
||||||
public function getObjects($attrvalue, $limit=0) { /* {{{ */
|
public function getObjects($attrvalue, $limit=0, $op=O_EQ) { /* {{{ */
|
||||||
$db = $this->_dms->getDB();
|
$db = $this->_dms->getDB();
|
||||||
|
|
||||||
$result = array('docs'=>array(), 'folders'=>array(), 'contents'=>array());
|
$result = array('docs'=>array(), 'folders'=>array(), 'contents'=>array());
|
||||||
if($this->_objtype == SeedDMS_Core_AttributeDefinition::objtype_all ||
|
if($this->_objtype == SeedDMS_Core_AttributeDefinition::objtype_all ||
|
||||||
$this->_objtype == SeedDMS_Core_AttributeDefinition::objtype_document) {
|
$this->_objtype == SeedDMS_Core_AttributeDefinition::objtype_document) {
|
||||||
$queryStr = "SELECT * FROM `tblDocumentAttributes` WHERE `attrdef`=".$this->_id." AND ";
|
$queryStr = "SELECT * FROM `tblDocumentAttributes` WHERE `attrdef`=".$this->_id;
|
||||||
if($this->getMultipleValues()) {
|
if($attrvalue != null) {
|
||||||
$sep = $this->getValueSetSeparator();
|
$queryStr .= " AND ";
|
||||||
$queryStr .= "(`value` like ".$db->qstr($sep.$attrvalue.'%')." OR `value` like ".$db->qstr('%'.$sep.$attrvalue.$sep.'%')." OR `value` like ".$db->qstr('%'.$sep.$attrvalue).")";
|
if($this->getMultipleValues()) {
|
||||||
} else {
|
$sep = $this->getValueSetSeparator();
|
||||||
$queryStr .= "`value`=".$db->qstr($attrvalue);
|
$queryStr .= "(`value` like ".$db->qstr($sep.$attrvalue.'%')." OR `value` like ".$db->qstr('%'.$sep.$attrvalue.$sep.'%')." OR `value` like ".$db->qstr('%'.$sep.$attrvalue).")";
|
||||||
|
} else {
|
||||||
|
$queryStr .= "`value`".$op.$db->qstr($attrvalue);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if($limit)
|
if($limit)
|
||||||
$queryStr .= " limit ".(int) $limit;
|
$queryStr .= " limit ".(int) $limit;
|
||||||
|
@ -1227,6 +1230,8 @@ class SeedDMS_Core_AttributeDefinition { /* {{{ */
|
||||||
$values = explode($attrvalue[0], substr($attrvalue, 1));
|
$values = explode($attrvalue[0], substr($attrvalue, 1));
|
||||||
else
|
else
|
||||||
$values = array($attrvalue);
|
$values = array($attrvalue);
|
||||||
|
} elseif(is_array($attrvalue)) {
|
||||||
|
$values = $attrvalue;
|
||||||
} elseif(is_string($attrvalue) && !$attrvalue) {
|
} elseif(is_string($attrvalue) && !$attrvalue) {
|
||||||
$values = array();
|
$values = array();
|
||||||
} else
|
} else
|
||||||
|
|
|
@ -387,7 +387,7 @@ class SeedDMS_Core_DMS {
|
||||||
$this->lasterror = '';
|
$this->lasterror = '';
|
||||||
$this->version = '@package_version@';
|
$this->version = '@package_version@';
|
||||||
if($this->version[0] == '@')
|
if($this->version[0] == '@')
|
||||||
$this->version = '5.1.25';
|
$this->version = '5.1.26';
|
||||||
} /* }}} */
|
} /* }}} */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -2640,17 +2640,30 @@ class SeedDMS_Core_DMS {
|
||||||
/**
|
/**
|
||||||
* Return list of all attributes definitions
|
* Return list of all attributes definitions
|
||||||
*
|
*
|
||||||
* @param integer $objtype select those attributes defined for an object type
|
* @param integer|array $objtype select those attributes defined for an object type
|
||||||
|
* @param integer|array $type select those attributes defined for a type
|
||||||
* @return bool|SeedDMS_Core_AttributeDefinition[] of instances of <a href='psi_element://SeedDMS_Core_AttributeDefinition'>SeedDMS_Core_AttributeDefinition</a> or false
|
* @return bool|SeedDMS_Core_AttributeDefinition[] of instances of <a href='psi_element://SeedDMS_Core_AttributeDefinition'>SeedDMS_Core_AttributeDefinition</a> or false
|
||||||
* or false
|
* or false
|
||||||
*/
|
*/
|
||||||
function getAllAttributeDefinitions($objtype=0) { /* {{{ */
|
function getAllAttributeDefinitions($objtype=0, $type=0) { /* {{{ */
|
||||||
$queryStr = "SELECT * FROM `tblAttributeDefinitions`";
|
$queryStr = "SELECT * FROM `tblAttributeDefinitions`";
|
||||||
if($objtype) {
|
if($objtype || $type) {
|
||||||
if(is_array($objtype))
|
$queryStr .= ' WHERE ';
|
||||||
$queryStr .= ' WHERE `objtype` in (\''.implode("','", $objtype).'\')';
|
if($objtype) {
|
||||||
else
|
if(is_array($objtype))
|
||||||
$queryStr .= ' WHERE `objtype`='.intval($objtype);
|
$queryStr .= '`objtype` in (\''.implode("','", $objtype).'\')';
|
||||||
|
else
|
||||||
|
$queryStr .= '`objtype`='.intval($objtype);
|
||||||
|
}
|
||||||
|
if($objtype && $type) {
|
||||||
|
$queryStr .= ' AND ';
|
||||||
|
}
|
||||||
|
if($type) {
|
||||||
|
if(is_array($type))
|
||||||
|
$queryStr .= '`type` in (\''.implode("','", $type).'\')';
|
||||||
|
else
|
||||||
|
$queryStr .= '`type`='.intval($type);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
$queryStr .= ' ORDER BY `name`';
|
$queryStr .= ' ORDER BY `name`';
|
||||||
$resArr = $this->db->getResultArray($queryStr);
|
$resArr = $this->db->getResultArray($queryStr);
|
||||||
|
@ -3318,6 +3331,24 @@ class SeedDMS_Core_DMS {
|
||||||
$res['total'] = $sum;
|
$res['total'] = $sum;
|
||||||
}
|
}
|
||||||
return $resArr;
|
return $resArr;
|
||||||
|
case 'docstotal':
|
||||||
|
$queryStr = "SELECT count(*) AS total FROM `tblDocuments`";
|
||||||
|
$resArr = $this->db->getResultArray($queryStr);
|
||||||
|
if(is_bool($resArr) && $resArr == false)
|
||||||
|
return false;
|
||||||
|
return (int) $resArr[0]['total'];
|
||||||
|
case 'folderstotal':
|
||||||
|
$queryStr = "SELECT count(*) AS total FROM `tblFolders`";
|
||||||
|
$resArr = $this->db->getResultArray($queryStr);
|
||||||
|
if(is_bool($resArr) && $resArr == false)
|
||||||
|
return false;
|
||||||
|
return (int) $resArr[0]['total'];
|
||||||
|
case 'userstotal':
|
||||||
|
$queryStr = "SELECT count(*) AS total FROM `tblUsers`";
|
||||||
|
$resArr = $this->db->getResultArray($queryStr);
|
||||||
|
if(is_bool($resArr) && $resArr == false)
|
||||||
|
return false;
|
||||||
|
return (int) $resArr[0]['total'];
|
||||||
case 'sizeperuser':
|
case 'sizeperuser':
|
||||||
$queryStr = "SELECT ".$this->db->concat(array('c.`fullName`', "' ('", 'c.`login`', "')'"))." AS `key`, sum(`fileSize`) AS total FROM `tblDocuments` a LEFT JOIN `tblDocumentContent` b ON a.id=b.`document` LEFT JOIN `tblUsers` c ON a.`owner`=c.`id` GROUP BY a.`owner`, c.`fullName`";
|
$queryStr = "SELECT ".$this->db->concat(array('c.`fullName`', "' ('", 'c.`login`', "')'"))." AS `key`, sum(`fileSize`) AS total FROM `tblDocuments` a LEFT JOIN `tblDocumentContent` b ON a.id=b.`document` LEFT JOIN `tblUsers` c ON a.`owner`=c.`id` GROUP BY a.`owner`, c.`fullName`";
|
||||||
$resArr = $this->db->getResultArray($queryStr);
|
$resArr = $this->db->getResultArray($queryStr);
|
||||||
|
|
|
@ -662,44 +662,117 @@ class SeedDMS_Core_User { /* {{{ */
|
||||||
*
|
*
|
||||||
* This method adds another log entry to the reviews and approvals
|
* This method adds another log entry to the reviews and approvals
|
||||||
* which indicates the user has been deleted from the process. By default it will
|
* which indicates the user has been deleted from the process. By default it will
|
||||||
* do so for each review/approval regardless of its current state. So even
|
* do so for each review/approval regardless of its current state unles
|
||||||
|
* the user has been removed already (status=-2). So even
|
||||||
* reviews/approvals already processed by the user will be added the log
|
* reviews/approvals already processed by the user will be added the log
|
||||||
* entry. Only if the last log entry was a removal already, it will not be
|
* entry. Only, if the last log entry was a removal already, it will not be
|
||||||
* added a second time.
|
* added a second time.
|
||||||
*
|
*
|
||||||
|
* This removal from processes will also take place for older versions of a document.
|
||||||
|
*
|
||||||
|
* This methode was initialy added to remove a user (which is going to be deleted
|
||||||
|
* afterwards) from all processes he or she is still involved in.
|
||||||
|
*
|
||||||
|
* If a new user is passed, then this user will be added as a new reviewer, approver, etc.
|
||||||
|
* Hence, this method does not replace the old user but actually deletes the old user and
|
||||||
|
* adds a new one. Adding the new reviewer, approver, etc. will also be done for old versions
|
||||||
|
* of a document. The same operation could be archieved by first calling
|
||||||
|
* SeedDMS_Core_DocumentVersion::delIndReviewer() followed by SeedDMS_Core_DocumentVersion::addIndReviewer()
|
||||||
|
* but this would require to do for each version of a document and the operation would not
|
||||||
|
* be in a single transaction.
|
||||||
|
*
|
||||||
|
* A new user is only added if the process (review, approval, etc.) is still in its initial
|
||||||
|
* state (have not been reviewed/approved or rejected). Unlike the removal of the user (see above).
|
||||||
|
*
|
||||||
|
* If a new user is given but has no read access on the document the transfer for that
|
||||||
|
* particular document will be skipped. Not even the removal of the user will take place.
|
||||||
|
*
|
||||||
* @param object $user the user doing the removal (needed for entry in
|
* @param object $user the user doing the removal (needed for entry in
|
||||||
* review and approve log).
|
* review and approve log).
|
||||||
* @param array $states remove user only from reviews/approvals in one of the states
|
* @param array $states remove user only from reviews/approvals in one of the states
|
||||||
* If passing array(0), the method will operate on reviews/approval which
|
* e.g. if passing array('review'=>array(0)), the method will operate on
|
||||||
* has not been touched.
|
* reviews which has not been touched yet.
|
||||||
|
* @param object $newuser user who takes over the processes
|
||||||
|
* @param array $docs remove only processes from docs with the given document ids
|
||||||
* @return boolean true on success or false in case of an error
|
* @return boolean true on success or false in case of an error
|
||||||
*/
|
*/
|
||||||
private function __removeFromProcesses($user, $states = array()) { /* {{{ */
|
private function __removeFromProcesses($user, $states = array(), $newuser=null, $docs=null) { /* {{{ */
|
||||||
$db = $this->_dms->getDB();
|
$db = $this->_dms->getDB();
|
||||||
|
|
||||||
|
/* Get a list of all reviews, even those of older document versions */
|
||||||
$reviewStatus = $this->getReviewStatus();
|
$reviewStatus = $this->getReviewStatus();
|
||||||
|
$db->startTransaction();
|
||||||
foreach ($reviewStatus["indstatus"] as $ri) {
|
foreach ($reviewStatus["indstatus"] as $ri) {
|
||||||
|
if(!($doc = $this->_dms->getDocument($ri['documentID'])))
|
||||||
|
continue;
|
||||||
|
if($docs) {
|
||||||
|
if(!in_array($doc->getID(), $docs))
|
||||||
|
continue;
|
||||||
|
if(!$doc->isLatestContent($ri['version']))
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if($newuser && $doc->getAccessMode($newuser) < M_READ)
|
||||||
|
continue;
|
||||||
if($ri['status'] != -2 && (!isset($states['review']) || in_array($ri['status'], $states['review']))) {
|
if($ri['status'] != -2 && (!isset($states['review']) || in_array($ri['status'], $states['review']))) {
|
||||||
$queryStr = "INSERT INTO `tblDocumentReviewLog` (`reviewID`, `status`, `comment`, `date`, `userID`) ".
|
$queryStr = "INSERT INTO `tblDocumentReviewLog` (`reviewID`, `status`, `comment`, `date`, `userID`) ".
|
||||||
"VALUES ('". $ri["reviewID"] ."', '-2', 'Reviewer removed from process', ".$db->getCurrentDatetime().", '". $user->getID() ."')";
|
"VALUES ('". $ri["reviewID"] ."', '-2', '".(($newuser && $ri['status'] == 0) ? 'Reviewer replaced by '.$newuser->getLogin() : 'Reviewer removed from process')."', ".$db->getCurrentDatetime().", '". $user->getID() ."')";
|
||||||
$res=$db->getResult($queryStr);
|
$res=$db->getResult($queryStr);
|
||||||
if(!$res) {
|
if(!$res) {
|
||||||
|
$db->rollbackTransaction();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
/* Only reviews not done already can be transferred to a new user */
|
||||||
|
if($newuser && $ri['status'] == 0) {
|
||||||
|
if($version = $doc->getContentByVersion($ri['version'])) {
|
||||||
|
$ret = $version->addIndReviewer($newuser, $user);
|
||||||
|
/* returns -3 if the user is already a reviewer */
|
||||||
|
if($ret === false || ($ret < 0 && $ret != -3)) {
|
||||||
|
$db->rollbackTransaction();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
$db->commitTransaction();
|
||||||
|
|
||||||
|
/* Get a list of all approvals, even those of older document versions */
|
||||||
$approvalStatus = $this->getApprovalStatus();
|
$approvalStatus = $this->getApprovalStatus();
|
||||||
|
$db->startTransaction();
|
||||||
foreach ($approvalStatus["indstatus"] as $ai) {
|
foreach ($approvalStatus["indstatus"] as $ai) {
|
||||||
|
if(!($doc = $this->_dms->getDocument($ai['documentID'])))
|
||||||
|
continue;
|
||||||
|
if($docs) {
|
||||||
|
if(!in_array($doc->getID(), $docs))
|
||||||
|
continue;
|
||||||
|
if(!$doc->isLatestContent($ai['version']))
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if($newuser && $doc->getAccessMode($newuser) < M_READ)
|
||||||
|
continue;
|
||||||
if($ai['status'] != -2 && (!isset($states['approval']) || in_array($ai['status'], $states['approval']))) {
|
if($ai['status'] != -2 && (!isset($states['approval']) || in_array($ai['status'], $states['approval']))) {
|
||||||
$queryStr = "INSERT INTO `tblDocumentApproveLog` (`approveID`, `status`, `comment`, `date`, `userID`) ".
|
$queryStr = "INSERT INTO `tblDocumentApproveLog` (`approveID`, `status`, `comment`, `date`, `userID`) ".
|
||||||
"VALUES ('". $ai["approveID"] ."', '-2', 'Approver removed from process', ".$db->getCurrentDatetime().", '". $user->getID() ."')";
|
"VALUES ('". $ai["approveID"] ."', '-2', '".(($newuser && $ai['status'] == 0)? 'Approver replaced by '.$newuser->getLogin() : 'Approver removed from process')."', ".$db->getCurrentDatetime().", '". $user->getID() ."')";
|
||||||
$res=$db->getResult($queryStr);
|
$res=$db->getResult($queryStr);
|
||||||
if(!$res) {
|
if(!$res) {
|
||||||
|
$db->rollbackTransaction();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
/* Only approvals not done already can be transferred to a new user */
|
||||||
|
if($newuser && $ai['status'] == 0) {
|
||||||
|
if($version = $doc->getContentByVersion($ai['version'])) {
|
||||||
|
$ret = $version->addIndReviewer($newuser, $user);
|
||||||
|
/* returns -3 if the user is already a reviewer */
|
||||||
|
if($ret === false || ($ret < 0 && $ret != -3)) {
|
||||||
|
$db->rollbackTransaction();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
$db->commitTransaction();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
} /* }}} */
|
} /* }}} */
|
||||||
|
|
||||||
|
@ -711,13 +784,14 @@ class SeedDMS_Core_User { /* {{{ */
|
||||||
* @param object $user the user doing the removal (needed for entry in
|
* @param object $user the user doing the removal (needed for entry in
|
||||||
* review and approve log).
|
* review and approve log).
|
||||||
* @param array $states remove user only from reviews/approvals in one of the states
|
* @param array $states remove user only from reviews/approvals in one of the states
|
||||||
|
* @param object $newuser user who takes over the processes
|
||||||
* @return boolean true on success or false in case of an error
|
* @return boolean true on success or false in case of an error
|
||||||
*/
|
*/
|
||||||
public function removeFromProcesses($user, $states=array()) { /* {{{ */
|
public function removeFromProcesses($user, $states=array(), $newuser=null, $docs=null) { /* {{{ */
|
||||||
$db = $this->_dms->getDB();
|
$db = $this->_dms->getDB();
|
||||||
|
|
||||||
$db->startTransaction();
|
$db->startTransaction();
|
||||||
if(!$this->__removeFromProcesses($user, $states)) {
|
if(!$this->__removeFromProcesses($user, $states, $newuser, $docs)) {
|
||||||
$db->rollbackTransaction();
|
$db->rollbackTransaction();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -217,7 +217,7 @@ class SeedDMS_Core_DatabaseAccess {
|
||||||
if($this->_logfile) {
|
if($this->_logfile) {
|
||||||
$this->_logfp = fopen($this->_logfile, 'a+');
|
$this->_logfp = fopen($this->_logfile, 'a+');
|
||||||
if($this->_logfp)
|
if($this->_logfp)
|
||||||
fwrite($this->_logfp, microtime()." BEGIN ------------------------------------------\n");
|
fwrite($this->_logfp, microtime()." BEGIN ".$_SERVER['REQUEST_URI']." ------------------------------------------\n");
|
||||||
} else
|
} else
|
||||||
$this->_logfp = null;
|
$this->_logfp = null;
|
||||||
// $tt*****id is a hack to ensure that we do not try to create the
|
// $tt*****id is a hack to ensure that we do not try to create the
|
||||||
|
|
|
@ -12,11 +12,11 @@
|
||||||
<email>uwe@steinmann.cx</email>
|
<email>uwe@steinmann.cx</email>
|
||||||
<active>yes</active>
|
<active>yes</active>
|
||||||
</lead>
|
</lead>
|
||||||
<date>2022-02-18</date>
|
<date>2022-04-25</date>
|
||||||
<time>13:44:55</time>
|
<time>13:44:55</time>
|
||||||
<version>
|
<version>
|
||||||
<release>5.1.25</release>
|
<release>5.1.26</release>
|
||||||
<api>5.1.25</api>
|
<api>5.1.26</api>
|
||||||
</version>
|
</version>
|
||||||
<stability>
|
<stability>
|
||||||
<release>stable</release>
|
<release>stable</release>
|
||||||
|
@ -24,12 +24,12 @@
|
||||||
</stability>
|
</stability>
|
||||||
<license uri="http://opensource.org/licenses/gpl-license">GPL License</license>
|
<license uri="http://opensource.org/licenses/gpl-license">GPL License</license>
|
||||||
<notes>
|
<notes>
|
||||||
- rename getLastWorkflowTransition() to getLastWorkflowLog()
|
- fix validating multi value attributes
|
||||||
- getLastWorkflowLog() returns a workflow entry even if the workflow has ended
|
- SeedDMS_Core_User::removeFromProcesses() can be limited to a list of documents. In that case only the last version will be modified.
|
||||||
- backport setFileType() from 6.0.x
|
- add more types to getStatisticalData()
|
||||||
- add SeedDMS_Core_File::fileExtension()
|
- add optional parameter $op to SeedDMS_Core_AttributeDefinition::getObjects()
|
||||||
- add callbacks on onPostUpdateAttribute, onPostRemoveAttribute, onPostAddAttribute
|
- SeedDMS_Core_AttributeDefinition::getObjects() will not filter by value if null is passed
|
||||||
- fix searching for document content with a custom attribute having a value set
|
- SeedDMS_Core_DMS::getAllAttributeDefinitions() has second parameter to filter attributes by type
|
||||||
</notes>
|
</notes>
|
||||||
<contents>
|
<contents>
|
||||||
<dir baseinstalldir="SeedDMS" name="/">
|
<dir baseinstalldir="SeedDMS" name="/">
|
||||||
|
@ -1953,5 +1953,26 @@ add method SeedDMS_Core_DatabaseAccess::setLogFp()
|
||||||
- more checks whether an id > 0 when getting a database record
|
- more checks whether an id > 0 when getting a database record
|
||||||
</notes>
|
</notes>
|
||||||
</release>
|
</release>
|
||||||
|
<release>
|
||||||
|
<date>2022-04-22</date>
|
||||||
|
<time>13:44:55</time>
|
||||||
|
<version>
|
||||||
|
<release>5.1.25</release>
|
||||||
|
<api>5.1.25</api>
|
||||||
|
</version>
|
||||||
|
<stability>
|
||||||
|
<release>stable</release>
|
||||||
|
<api>stable</api>
|
||||||
|
</stability>
|
||||||
|
<license uri="http://opensource.org/licenses/gpl-license">GPL License</license>
|
||||||
|
<notes>
|
||||||
|
- rename getLastWorkflowTransition() to getLastWorkflowLog()
|
||||||
|
- getLastWorkflowLog() returns a workflow entry even if the workflow has ended
|
||||||
|
- backport setFileType() from 6.0.x
|
||||||
|
- add SeedDMS_Core_File::fileExtension()
|
||||||
|
- add callbacks on onPostUpdateAttribute, onPostRemoveAttribute, onPostAddAttribute
|
||||||
|
- fix searching for document content with a custom attribute having a value set
|
||||||
|
</notes>
|
||||||
|
</release>
|
||||||
</changelog>
|
</changelog>
|
||||||
</package>
|
</package>
|
||||||
|
|
|
@ -130,14 +130,14 @@ class SeedDMS_SQliteFTS_Search {
|
||||||
$querystr .= ' AND ';
|
$querystr .= ' AND ';
|
||||||
$querystr .= '(path:';
|
$querystr .= '(path:';
|
||||||
$querystr .= str_replace(':', 'x', $fields['rootFolder']->getFolderList().$fields['rootFolder']->getID().':');
|
$querystr .= str_replace(':', 'x', $fields['rootFolder']->getFolderList().$fields['rootFolder']->getID().':');
|
||||||
$querystr .= ')';
|
$querystr .= '*)';
|
||||||
}
|
}
|
||||||
if(!empty($fields['startFolder']) && $fields['startFolder']->getFolderList()) {
|
if(!empty($fields['startFolder']) && $fields['startFolder']->getFolderList()) {
|
||||||
if($querystr)
|
if($querystr)
|
||||||
$querystr .= ' AND ';
|
$querystr .= ' AND ';
|
||||||
$querystr .= '(path:';
|
$querystr .= '(path:';
|
||||||
$querystr .= str_replace(':', 'x', $fields['startFolder']->getFolderList().$fields['startFolder']->getID().':');
|
$querystr .= str_replace(':', 'x', $fields['startFolder']->getFolderList().$fields['startFolder']->getID().':');
|
||||||
$querystr .= ')';
|
$querystr .= '*)';
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
$result = $this->index->find($querystr, $limit);
|
$result = $this->index->find($querystr, $limit);
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
<license uri="http://opensource.org/licenses/gpl-license">GPL License</license>
|
<license uri="http://opensource.org/licenses/gpl-license">GPL License</license>
|
||||||
<notes>
|
<notes>
|
||||||
- throw exeption in find() instead of returning false
|
- throw exeption in find() instead of returning false
|
||||||
|
- fix query if rootFolder or startFolder is set
|
||||||
</notes>
|
</notes>
|
||||||
<contents>
|
<contents>
|
||||||
<dir baseinstalldir="SeedDMS" name="/">
|
<dir baseinstalldir="SeedDMS" name="/">
|
||||||
|
|
|
@ -54,6 +54,11 @@ class SeedDMS_Controller_EditFolder extends SeedDMS_Controller_Common {
|
||||||
$attrdef = $dms->getAttributeDefinition($attrdefid);
|
$attrdef = $dms->getAttributeDefinition($attrdefid);
|
||||||
if(null === ($ret = $this->callHook('validateAttribute', $attrdef, $attribute))) {
|
if(null === ($ret = $this->callHook('validateAttribute', $attrdef, $attribute))) {
|
||||||
if($attribute) {
|
if($attribute) {
|
||||||
|
switch($attrdef->getType()) {
|
||||||
|
case SeedDMS_Core_AttributeDefinition::type_date:
|
||||||
|
$attribute = date('Y-m-d', makeTsFromDate($attribute));
|
||||||
|
break;
|
||||||
|
}
|
||||||
if(!$attrdef->validate($attribute, $folder, true)) {
|
if(!$attrdef->validate($attribute, $folder, true)) {
|
||||||
$this->errormsg = getAttributeValidationText($attrdef->getValidationError(), $attrdef->getName(), $attribute);
|
$this->errormsg = getAttributeValidationText($attrdef->getValidationError(), $attrdef->getName(), $attribute);
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -441,6 +441,14 @@ class SeedDMS_Extension_Mgr {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case 'cmd':
|
||||||
|
if(is_array($dval) && $dval) {
|
||||||
|
foreach($dval as $d) {
|
||||||
|
if(!commandExists($d))
|
||||||
|
$this->errmsgs[] = sprintf("Missing command '%s'", $d);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
$tmp = explode('-', $dval, 2);
|
$tmp = explode('-', $dval, 2);
|
||||||
if(isset($this->extconf[$dkey]['version'])) {
|
if(isset($this->extconf[$dkey]['version'])) {
|
||||||
|
|
|
@ -36,6 +36,11 @@ class SeedDMS_FulltextService {
|
||||||
*/
|
*/
|
||||||
protected $conversionmgr;
|
protected $conversionmgr;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var logger
|
||||||
|
*/
|
||||||
|
protected $logger;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Max file size for imediate indexing
|
* Max file size for imediate indexing
|
||||||
*/
|
*/
|
||||||
|
@ -49,6 +54,7 @@ class SeedDMS_FulltextService {
|
||||||
$this->services = array();
|
$this->services = array();
|
||||||
$this->converters = array();
|
$this->converters = array();
|
||||||
$this->conversionmgr = null;
|
$this->conversionmgr = null;
|
||||||
|
$this->logger = null;
|
||||||
$this->maxsize = 0;
|
$this->maxsize = 0;
|
||||||
$this->index = null;
|
$this->index = null;
|
||||||
$this->search = null;
|
$this->search = null;
|
||||||
|
@ -63,6 +69,10 @@ class SeedDMS_FulltextService {
|
||||||
$this->converters = $converters;
|
$this->converters = $converters;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function setLogger($logger) {
|
||||||
|
$this->logger = $logger;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set conversion service manager
|
* Set conversion service manager
|
||||||
*
|
*
|
||||||
|
|
|
@ -93,13 +93,16 @@ class SeedDMS_NotificationService {
|
||||||
if(!$service->toIndividual($sender, $recipient, $subject, $message, $params)) {
|
if(!$service->toIndividual($sender, $recipient, $subject, $message, $params)) {
|
||||||
$error = false;
|
$error = false;
|
||||||
$this->errors[$name] = false;
|
$this->errors[$name] = false;
|
||||||
$this->logger->log('Notification service \''.$name.'\': Sending notification \''.$subject.'\' to user \''.$to.'\' ('.$recvtype.') failed.', PEAR_LOG_ERR);
|
if($this->logger)
|
||||||
|
$this->logger->log('Notification service \''.$name.'\': Sending notification \''.$subject.'\' to user \''.$to.'\' ('.$recvtype.') failed.', PEAR_LOG_ERR);
|
||||||
} else {
|
} else {
|
||||||
$this->logger->log('Notification service \''.$name.'\': Sending notification \''.$subject.'\' to user \''.$to.'\' ('.$recvtype.') successful.', PEAR_LOG_INFO);
|
if($this->logger)
|
||||||
|
$this->logger->log('Notification service \''.$name.'\': Sending notification \''.$subject.'\' to user \''.$to.'\' ('.$recvtype.') successful (reason for notification: '.$recvtype.').', PEAR_LOG_INFO);
|
||||||
$this->errors[$name] = true;
|
$this->errors[$name] = true;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$this->logger->log('Notification service \''.$name.'\': Notification \''.$subject.'\' to user \''.$to.'\' ('.$recvtype.') filtered out.', PEAR_LOG_INFO);
|
if($this->logger)
|
||||||
|
$this->logger->log('Notification service \''.$name.'\': Notification \''.$subject.'\' to user \''.$to.'\' ('.$recvtype.') filtered out (reason for notification: '.$recvtype.').', PEAR_LOG_INFO);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return $error;
|
return $error;
|
||||||
|
|
|
@ -376,7 +376,7 @@ class Settings { /* {{{ */
|
||||||
* @param string $var value
|
* @param string $var value
|
||||||
* @return true/false
|
* @return true/false
|
||||||
*/
|
*/
|
||||||
function boolVal($var) { /* {{{ */
|
protected static function boolVal($var) { /* {{{ */
|
||||||
$var = strtolower(strval($var));
|
$var = strtolower(strval($var));
|
||||||
switch ($var) {
|
switch ($var) {
|
||||||
case 'true':
|
case 'true':
|
||||||
|
@ -417,7 +417,7 @@ class Settings { /* {{{ */
|
||||||
* @param string $stringValue string value
|
* @param string $stringValue string value
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
function setViewOnlineFileTypesFromString($stringValue) { /* {{{ */
|
public function setViewOnlineFileTypesFromString($stringValue) { /* {{{ */
|
||||||
$this->_viewOnlineFileTypes = explode(";", $stringValue);
|
$this->_viewOnlineFileTypes = explode(";", $stringValue);
|
||||||
} /* }}} */
|
} /* }}} */
|
||||||
|
|
||||||
|
@ -427,7 +427,7 @@ class Settings { /* {{{ */
|
||||||
* @return string value
|
* @return string value
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
function getViewOnlineFileTypesToString() { /* {{{ */
|
protected function getViewOnlineFileTypesToString() { /* {{{ */
|
||||||
return implode(";", $this->_viewOnlineFileTypes);
|
return implode(";", $this->_viewOnlineFileTypes);
|
||||||
} /* }}} */
|
} /* }}} */
|
||||||
|
|
||||||
|
@ -437,7 +437,7 @@ class Settings { /* {{{ */
|
||||||
* @param string $stringValue string value
|
* @param string $stringValue string value
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
function setEditOnlineFileTypesFromString($stringValue) { /* {{{ */
|
public function setEditOnlineFileTypesFromString($stringValue) { /* {{{ */
|
||||||
$this->_editOnlineFileTypes = explode(";", $stringValue);
|
$this->_editOnlineFileTypes = explode(";", $stringValue);
|
||||||
} /* }}} */
|
} /* }}} */
|
||||||
|
|
||||||
|
@ -447,7 +447,7 @@ class Settings { /* {{{ */
|
||||||
* @return string value
|
* @return string value
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
function getEditOnlineFileTypesToString() { /* {{{ */
|
protected function getEditOnlineFileTypesToString() { /* {{{ */
|
||||||
return implode(";", $this->_editOnlineFileTypes);
|
return implode(";", $this->_editOnlineFileTypes);
|
||||||
} /* }}} */
|
} /* }}} */
|
||||||
|
|
||||||
|
@ -1196,7 +1196,7 @@ class Settings { /* {{{ */
|
||||||
* If none was found a final try will be made checking /etc/seeddms
|
* If none was found a final try will be made checking /etc/seeddms
|
||||||
* @return NULL|string config directory
|
* @return NULL|string config directory
|
||||||
*/
|
*/
|
||||||
static function getConfigDir() { /* {{{ */
|
public static function getConfigDir() { /* {{{ */
|
||||||
if(defined("SEEDDMS_CONFIG_FILE"))
|
if(defined("SEEDDMS_CONFIG_FILE"))
|
||||||
return dirname(SEEDDMS_CONFIG_FILE);
|
return dirname(SEEDDMS_CONFIG_FILE);
|
||||||
elseif(getenv("SEEDDMS_CONFIG_FILE"))
|
elseif(getenv("SEEDDMS_CONFIG_FILE"))
|
||||||
|
@ -1698,5 +1698,22 @@ class Settings { /* {{{ */
|
||||||
$this->_extensions[$extname]['__disable__'] = true;
|
$this->_extensions[$extname]['__disable__'] = true;
|
||||||
} /* }}} */
|
} /* }}} */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get maximum upload size
|
||||||
|
*
|
||||||
|
* Determine the maximum upload size by checking the php config
|
||||||
|
* variables upload_max_filesize, post_max_size and the seeddms
|
||||||
|
* setting maxUploadSize
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
|
public function getMaximumUploadSize() { /* {{{ */
|
||||||
|
$mus = [];
|
||||||
|
$mus[] = SeedDMS_Core_File::parse_filesize(ini_get("upload_max_filesize"));
|
||||||
|
$mus[] = SeedDMS_Core_File::parse_filesize(ini_get("post_max_size"));
|
||||||
|
if(is_numeric($this->_maxUploadSize) && $this->_maxUploadSize > 0)
|
||||||
|
$mus[] = SeedDMS_Core_File::parse_filesize($this->_maxUploadSize);
|
||||||
|
return min($mus);
|
||||||
|
} /* }}} */
|
||||||
|
|
||||||
} /* }}} */
|
} /* }}} */
|
||||||
|
|
||||||
|
|
|
@ -48,6 +48,7 @@ class UI extends UI_Default {
|
||||||
global $settings, $session, $extMgr;
|
global $settings, $session, $extMgr;
|
||||||
if(!$class) {
|
if(!$class) {
|
||||||
$class = 'Bootstrap';
|
$class = 'Bootstrap';
|
||||||
|
$class = 'Style';
|
||||||
$classname = "SeedDMS_Bootstrap_Style";
|
$classname = "SeedDMS_Bootstrap_Style";
|
||||||
} else {
|
} else {
|
||||||
$classname = "SeedDMS_View_".$class;
|
$classname = "SeedDMS_View_".$class;
|
||||||
|
@ -148,7 +149,7 @@ class UI extends UI_Default {
|
||||||
$view->setParam('enablesessionlist', $settings->_enableSessionList);
|
$view->setParam('enablesessionlist', $settings->_enableSessionList);
|
||||||
$view->setParam('workflowmode', $settings->_workflowMode);
|
$view->setParam('workflowmode', $settings->_workflowMode);
|
||||||
$view->setParam('partitionsize', SeedDMS_Core_File::parse_filesize( $settings->_partitionSize));
|
$view->setParam('partitionsize', SeedDMS_Core_File::parse_filesize( $settings->_partitionSize));
|
||||||
$view->setParam('maxuploadsize', SeedDMS_Core_File::parse_filesize($settings->_maxUploadSize));
|
$view->setParam('maxuploadsize', $settings->getMaximumUploadSize());
|
||||||
$view->setParam('showmissingtranslations', $settings->_showMissingTranslations);
|
$view->setParam('showmissingtranslations', $settings->_showMissingTranslations);
|
||||||
$view->setParam('defaultsearchmethod', $settings->_defaultSearchMethod);
|
$view->setParam('defaultsearchmethod', $settings->_defaultSearchMethod);
|
||||||
$view->setParam('cachedir', $settings->_cacheDir);
|
$view->setParam('cachedir', $settings->_cacheDir);
|
||||||
|
|
|
@ -217,13 +217,16 @@ class SeedDMS_View_Common {
|
||||||
*/
|
*/
|
||||||
public function getHookObjects($classname='') { /* {{{ */
|
public function getHookObjects($classname='') { /* {{{ */
|
||||||
if($classname)
|
if($classname)
|
||||||
$tmp = explode('_', $classname);
|
$tmps = array(explode('_', $classname)[2]);
|
||||||
else
|
else
|
||||||
$tmp = explode('_', get_class($this));
|
$tmps = $this->getHookClassNames();
|
||||||
if(isset($GLOBALS['SEEDDMS_HOOKS']['view'][lcfirst($tmp[2])])) {
|
$hooks = [];
|
||||||
return $GLOBALS['SEEDDMS_HOOKS']['view'][lcfirst($tmp[2])];
|
foreach($tmps as $tmp) {
|
||||||
|
if(isset($GLOBALS['SEEDDMS_HOOKS']['view'][lcfirst($tmp)])) {
|
||||||
|
$hooks = array_merge($hooks, $GLOBALS['SEEDDMS_HOOKS']['view'][lcfirst($tmp)]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return array();
|
return $hooks;
|
||||||
} /* }}} */
|
} /* }}} */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -26,6 +26,8 @@ $conversionmgr->addService(new SeedDMS_ConversionServicePdfToImage('application/
|
||||||
$conversionmgr->addService(new SeedDMS_ConversionServiceImageToImage('image/jpeg', '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/png', 'image/png'))->setLogger($logger);
|
||||||
$conversionmgr->addService(new SeedDMS_ConversionServiceImageToImage('image/jpg', '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);
|
$conversionmgr->addService(new SeedDMS_ConversionServiceImageToImage('image/svg+xml', 'image/png'))->setLogger($logger);
|
||||||
|
|
||||||
$conversionmgr->addService(new SeedDMS_ConversionServiceTextToText('text/plain', 'text/plain'))->setLogger($logger);
|
$conversionmgr->addService(new SeedDMS_ConversionServiceTextToText('text/plain', 'text/plain'))->setLogger($logger);
|
||||||
|
|
|
@ -41,22 +41,46 @@ function getConvertDateFormat() { /* {{{ */
|
||||||
return 'yyyy-mm-dd';
|
return 'yyyy-mm-dd';
|
||||||
} /* }}} */
|
} /* }}} */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return a human readable date string
|
||||||
|
*
|
||||||
|
* This function formats a timestamp according to the date format
|
||||||
|
* settings. If no timestamp is passed the current date is used.
|
||||||
|
* If null or an empty string is passed, then an empty string
|
||||||
|
* is returned. If $timestamp is numeric it will be taken as a unix
|
||||||
|
* timestamp. If $timestamp is a string it will be parѕed with strtotime().
|
||||||
|
*/
|
||||||
function getReadableDate($timestamp=0) { /* {{{ */
|
function getReadableDate($timestamp=0) { /* {{{ */
|
||||||
global $settings;
|
global $settings;
|
||||||
if(!$timestamp)
|
if($timestamp === 0)
|
||||||
$timestamp = time();
|
$timestamp = time();
|
||||||
elseif(!is_numeric($timestamp))
|
elseif($timestamp && is_numeric($timestamp))
|
||||||
|
;
|
||||||
|
elseif($timestamp && is_string($timestamp))
|
||||||
$timestamp = strtotime($timestamp);
|
$timestamp = strtotime($timestamp);
|
||||||
|
elseif(!is_numeric($timestamp))
|
||||||
|
return '';
|
||||||
if($settings->_dateformat)
|
if($settings->_dateformat)
|
||||||
return date($settings->_dateformat, $timestamp);
|
return date($settings->_dateformat, $timestamp);
|
||||||
else
|
else
|
||||||
return date("Y-m-d", $timestamp);
|
return date("Y-m-d", $timestamp);
|
||||||
} /* }}} */
|
} /* }}} */
|
||||||
|
|
||||||
function getLongReadableDate($timestamp) { /* {{{ */
|
/**
|
||||||
|
* Return a human readable date and time string
|
||||||
|
*
|
||||||
|
* See note for getReadableDate()
|
||||||
|
*/
|
||||||
|
function getLongReadableDate($timestamp=0) { /* {{{ */
|
||||||
global $settings;
|
global $settings;
|
||||||
if(!is_numeric($timestamp))
|
if($timestamp === 0)
|
||||||
|
$timestamp = time();
|
||||||
|
elseif($timestamp && is_numeric($timestamp))
|
||||||
|
;
|
||||||
|
elseif($timestamp && is_string($timestamp))
|
||||||
$timestamp = strtotime($timestamp);
|
$timestamp = strtotime($timestamp);
|
||||||
|
elseif(!is_numeric($timestamp))
|
||||||
|
return '';
|
||||||
if($settings->_datetimeformat)
|
if($settings->_datetimeformat)
|
||||||
return date($settings->_datetimeformat, $timestamp);
|
return date($settings->_datetimeformat, $timestamp);
|
||||||
else
|
else
|
||||||
|
@ -672,6 +696,37 @@ function addDirSep($str) { /* {{{ */
|
||||||
return trim($str);
|
return trim($str);
|
||||||
} /* }}} */
|
} /* }}} */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determines if a command exists on the current environment
|
||||||
|
*
|
||||||
|
* @param string $command The command to check
|
||||||
|
* @return bool True if the command has been found ; otherwise, false.
|
||||||
|
*/
|
||||||
|
function commandExists ($command) {
|
||||||
|
$whereIsCommand = (PHP_OS == 'WINNT') ? 'where' : 'command -v';
|
||||||
|
|
||||||
|
$process = proc_open(
|
||||||
|
"$whereIsCommand $command",
|
||||||
|
array(
|
||||||
|
0 => array("pipe", "r"), //STDIN
|
||||||
|
1 => array("pipe", "w"), //STDOUT
|
||||||
|
2 => array("pipe", "w"), //STDERR
|
||||||
|
),
|
||||||
|
$pipes
|
||||||
|
);
|
||||||
|
if ($process !== false) {
|
||||||
|
$stdout = stream_get_contents($pipes[1]);
|
||||||
|
$stderr = stream_get_contents($pipes[2]);
|
||||||
|
fclose($pipes[1]);
|
||||||
|
fclose($pipes[2]);
|
||||||
|
proc_close($process);
|
||||||
|
|
||||||
|
return $stdout != '';
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Send a file from disk to the browser
|
* Send a file from disk to the browser
|
||||||
*
|
*
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
|
|
||||||
class SeedDMS_Version { /* {{{ */
|
class SeedDMS_Version { /* {{{ */
|
||||||
|
|
||||||
const _number = "5.1.25";
|
const _number = "5.1.26";
|
||||||
const _string = "SeedDMS";
|
const _string = "SeedDMS";
|
||||||
|
|
||||||
function __construct() {
|
function __construct() {
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
// along with this program; if not, write to the Free Software
|
// along with this program; if not, write to the Free Software
|
||||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
//
|
//
|
||||||
// Translators: Admin (2273)
|
// Translators: Admin (2274)
|
||||||
|
|
||||||
$text = array(
|
$text = array(
|
||||||
'2_factor_auth' => 'توثيق ذو عاملين',
|
'2_factor_auth' => 'توثيق ذو عاملين',
|
||||||
|
@ -557,6 +557,8 @@ URL: [url]',
|
||||||
'error_remove_document' => 'خطأ في ازالة المستند',
|
'error_remove_document' => 'خطأ في ازالة المستند',
|
||||||
'error_remove_folder' => 'حدث خطأ في ازالة ملف',
|
'error_remove_folder' => 'حدث خطأ في ازالة ملف',
|
||||||
'error_remove_permission' => 'حدث خطأ في ازالة طلب السماح',
|
'error_remove_permission' => 'حدث خطأ في ازالة طلب السماح',
|
||||||
|
'error_rm_user_processes' => '',
|
||||||
|
'error_rm_user_processes_no_docs' => '',
|
||||||
'error_rm_workflow' => 'خطأ في ازالة سير العمل',
|
'error_rm_workflow' => 'خطأ في ازالة سير العمل',
|
||||||
'error_rm_workflow_action' => 'خطأ في ازالة دور سير العمل',
|
'error_rm_workflow_action' => 'خطأ في ازالة دور سير العمل',
|
||||||
'error_rm_workflow_state' => 'خطأ في ازالة حالة سير العمل',
|
'error_rm_workflow_state' => 'خطأ في ازالة حالة سير العمل',
|
||||||
|
@ -666,7 +668,7 @@ URL: [url]',
|
||||||
'folder_renamed_email_body_html' => '',
|
'folder_renamed_email_body_html' => '',
|
||||||
'folder_renamed_email_subject' => '[sitename]: [name] - تم اعادة تسمية المجلد',
|
'folder_renamed_email_subject' => '[sitename]: [name] - تم اعادة تسمية المجلد',
|
||||||
'folder_title' => 'مجلد \'[foldername]\'عنوان المجلد',
|
'folder_title' => 'مجلد \'[foldername]\'عنوان المجلد',
|
||||||
'foot_note' => '<a href=\'http://www.lp.gov.lb\'>مجلس النواب اللبناني</a>',
|
'foot_note' => '',
|
||||||
'force_update' => 'ﺖﺣﺪﻴﺛ',
|
'force_update' => 'ﺖﺣﺪﻴﺛ',
|
||||||
'friday' => 'الجمعة',
|
'friday' => 'الجمعة',
|
||||||
'friday_abbr' => 'ج',
|
'friday_abbr' => 'ج',
|
||||||
|
@ -823,6 +825,7 @@ URL: [url]',
|
||||||
'list_access_rights' => 'لائحة حقوق الدخول',
|
'list_access_rights' => 'لائحة حقوق الدخول',
|
||||||
'list_contains_no_access_docs' => 'هذه الائحة لا تحتوي على مستندات للدخول',
|
'list_contains_no_access_docs' => 'هذه الائحة لا تحتوي على مستندات للدخول',
|
||||||
'list_hooks' => 'لائحة الدمج',
|
'list_hooks' => 'لائحة الدمج',
|
||||||
|
'list_notification_services' => '',
|
||||||
'list_tasks' => 'لائحة المهمات',
|
'list_tasks' => 'لائحة المهمات',
|
||||||
'local_file' => 'ملف محلي',
|
'local_file' => 'ملف محلي',
|
||||||
'locked_by' => 'محمي بواسطة',
|
'locked_by' => 'محمي بواسطة',
|
||||||
|
@ -1127,6 +1130,7 @@ URL: [url]',
|
||||||
'remove_approval_log' => '',
|
'remove_approval_log' => '',
|
||||||
'remove_marked_files' => 'ازالة الملفات المختارة',
|
'remove_marked_files' => 'ازالة الملفات المختارة',
|
||||||
'remove_review_log' => '',
|
'remove_review_log' => '',
|
||||||
|
'remove_task' => '',
|
||||||
'repaired' => 'تم اصلاحه',
|
'repaired' => 'تم اصلاحه',
|
||||||
'repairing_objects' => 'تحضير المستندات والمجلدات.',
|
'repairing_objects' => 'تحضير المستندات والمجلدات.',
|
||||||
'replace_content_email_body' => '',
|
'replace_content_email_body' => '',
|
||||||
|
@ -1336,6 +1340,8 @@ URL: [url]',
|
||||||
'seq_end' => 'في الاخر',
|
'seq_end' => 'في الاخر',
|
||||||
'seq_keep' => 'حافظ على المرتبة',
|
'seq_keep' => 'حافظ على المرتبة',
|
||||||
'seq_start' => 'اول مرتبة',
|
'seq_start' => 'اول مرتبة',
|
||||||
|
'service_has_filter' => '',
|
||||||
|
'service_name' => '',
|
||||||
'sessions' => 'صفوف',
|
'sessions' => 'صفوف',
|
||||||
'setDateFromFile' => 'وضع تاريخ من الملف',
|
'setDateFromFile' => 'وضع تاريخ من الملف',
|
||||||
'setDateFromFolder' => 'تحديد التاريخ من المجلد',
|
'setDateFromFolder' => 'تحديد التاريخ من المجلد',
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
// along with this program; if not, write to the Free Software
|
// along with this program; if not, write to the Free Software
|
||||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
//
|
//
|
||||||
// Translators: Admin (872)
|
// Translators: Admin (877)
|
||||||
|
|
||||||
$text = array(
|
$text = array(
|
||||||
'2_factor_auth' => '',
|
'2_factor_auth' => '',
|
||||||
|
@ -322,7 +322,7 @@ $text = array(
|
||||||
'daily' => 'Ежедневно',
|
'daily' => 'Ежедневно',
|
||||||
'databasesearch' => 'Търсене по БД',
|
'databasesearch' => 'Търсене по БД',
|
||||||
'database_schema_version' => '',
|
'database_schema_version' => '',
|
||||||
'data_loading' => '',
|
'data_loading' => 'Моля, изчакайте докато документа се зареди ...',
|
||||||
'date' => 'Дата',
|
'date' => 'Дата',
|
||||||
'days' => 'дни',
|
'days' => 'дни',
|
||||||
'debug' => '',
|
'debug' => '',
|
||||||
|
@ -450,7 +450,7 @@ $text = array(
|
||||||
'dropfolder_metadata' => '',
|
'dropfolder_metadata' => '',
|
||||||
'dropupload' => 'Бърз ъплоуд',
|
'dropupload' => 'Бърз ъплоуд',
|
||||||
'drop_files_here' => 'Пусни файла тук!',
|
'drop_files_here' => 'Пусни файла тук!',
|
||||||
'drop_files_here_or_click' => '',
|
'drop_files_here_or_click' => 'Пуснете файловете тук или кликнете',
|
||||||
'dump_creation' => 'Създаване дъмп на БД',
|
'dump_creation' => 'Създаване дъмп на БД',
|
||||||
'dump_creation_warning' => 'Тази операция шъ създаде дамп на базата данни. След създаването, файлът ще бъде съхранен в папката с данни на сървъра.',
|
'dump_creation_warning' => 'Тази операция шъ създаде дамп на базата данни. След създаването, файлът ще бъде съхранен в папката с данни на сървъра.',
|
||||||
'dump_list' => 'Съществуващи дъмпове',
|
'dump_list' => 'Съществуващи дъмпове',
|
||||||
|
@ -510,6 +510,8 @@ $text = array(
|
||||||
'error_remove_document' => '',
|
'error_remove_document' => '',
|
||||||
'error_remove_folder' => '',
|
'error_remove_folder' => '',
|
||||||
'error_remove_permission' => '',
|
'error_remove_permission' => '',
|
||||||
|
'error_rm_user_processes' => '',
|
||||||
|
'error_rm_user_processes_no_docs' => '',
|
||||||
'error_rm_workflow' => '',
|
'error_rm_workflow' => '',
|
||||||
'error_rm_workflow_action' => '',
|
'error_rm_workflow_action' => '',
|
||||||
'error_rm_workflow_state' => '',
|
'error_rm_workflow_state' => '',
|
||||||
|
@ -638,7 +640,7 @@ $text = array(
|
||||||
'hu_HU' => 'Унгарски',
|
'hu_HU' => 'Унгарски',
|
||||||
'id' => 'ID',
|
'id' => 'ID',
|
||||||
'identical_version' => 'Новата версия е идентична с текущата.',
|
'identical_version' => 'Новата версия е идентична с текущата.',
|
||||||
'id_ID' => '',
|
'id_ID' => 'Индонезийски',
|
||||||
'import' => '',
|
'import' => '',
|
||||||
'importfs' => '',
|
'importfs' => '',
|
||||||
'import_extension' => '',
|
'import_extension' => '',
|
||||||
|
@ -752,6 +754,7 @@ $text = array(
|
||||||
'list_access_rights' => 'Списък на права',
|
'list_access_rights' => 'Списък на права',
|
||||||
'list_contains_no_access_docs' => '',
|
'list_contains_no_access_docs' => '',
|
||||||
'list_hooks' => '',
|
'list_hooks' => '',
|
||||||
|
'list_notification_services' => '',
|
||||||
'list_tasks' => '',
|
'list_tasks' => '',
|
||||||
'local_file' => 'Локален файл',
|
'local_file' => 'Локален файл',
|
||||||
'locked_by' => 'Блокиран',
|
'locked_by' => 'Блокиран',
|
||||||
|
@ -1017,6 +1020,7 @@ $text = array(
|
||||||
'remove_approval_log' => '',
|
'remove_approval_log' => '',
|
||||||
'remove_marked_files' => '',
|
'remove_marked_files' => '',
|
||||||
'remove_review_log' => '',
|
'remove_review_log' => '',
|
||||||
|
'remove_task' => '',
|
||||||
'repaired' => '',
|
'repaired' => '',
|
||||||
'repairing_objects' => 'Поправка на папки и документи',
|
'repairing_objects' => 'Поправка на папки и документи',
|
||||||
'replace_content_email_body' => '',
|
'replace_content_email_body' => '',
|
||||||
|
@ -1032,7 +1036,7 @@ $text = array(
|
||||||
'return_from_subworkflow_email_body' => '',
|
'return_from_subworkflow_email_body' => '',
|
||||||
'return_from_subworkflow_email_body_html' => '',
|
'return_from_subworkflow_email_body_html' => '',
|
||||||
'return_from_subworkflow_email_subject' => '',
|
'return_from_subworkflow_email_subject' => '',
|
||||||
'reverse_links' => '',
|
'reverse_links' => 'Документи които имат връзка с този документ',
|
||||||
'reviewers' => 'Рецензиращи',
|
'reviewers' => 'Рецензиращи',
|
||||||
'reviewer_already_assigned' => 'вече назначено за рецензиране',
|
'reviewer_already_assigned' => 'вече назначено за рецензиране',
|
||||||
'reviewer_already_removed' => 'вече премахнат от списъка с рецензиращи или вече е оставил рецензия',
|
'reviewer_already_removed' => 'вече премахнат от списъка с рецензиращи или вече е оставил рецензия',
|
||||||
|
@ -1199,6 +1203,8 @@ $text = array(
|
||||||
'seq_end' => 'В края',
|
'seq_end' => 'В края',
|
||||||
'seq_keep' => 'Съхрани позицията',
|
'seq_keep' => 'Съхрани позицията',
|
||||||
'seq_start' => 'Първа позиция',
|
'seq_start' => 'Първа позиция',
|
||||||
|
'service_has_filter' => '',
|
||||||
|
'service_name' => '',
|
||||||
'sessions' => '',
|
'sessions' => '',
|
||||||
'setDateFromFile' => '',
|
'setDateFromFile' => '',
|
||||||
'setDateFromFolder' => '',
|
'setDateFromFolder' => '',
|
||||||
|
@ -1913,7 +1919,7 @@ $text = array(
|
||||||
'version_deleted_email_subject' => '',
|
'version_deleted_email_subject' => '',
|
||||||
'version_info' => 'Информация за версията',
|
'version_info' => 'Информация за версията',
|
||||||
'view' => 'Преглед',
|
'view' => 'Преглед',
|
||||||
'view_document' => '',
|
'view_document' => 'Подробна информация за документа',
|
||||||
'view_folder' => '',
|
'view_folder' => '',
|
||||||
'view_online' => 'Преглед онлайн',
|
'view_online' => 'Преглед онлайн',
|
||||||
'warning' => 'Внимание',
|
'warning' => 'Внимание',
|
||||||
|
|
|
@ -515,6 +515,8 @@ URL: [url]',
|
||||||
'error_remove_document' => '',
|
'error_remove_document' => '',
|
||||||
'error_remove_folder' => '',
|
'error_remove_folder' => '',
|
||||||
'error_remove_permission' => '',
|
'error_remove_permission' => '',
|
||||||
|
'error_rm_user_processes' => '',
|
||||||
|
'error_rm_user_processes_no_docs' => '',
|
||||||
'error_rm_workflow' => '',
|
'error_rm_workflow' => '',
|
||||||
'error_rm_workflow_action' => '',
|
'error_rm_workflow_action' => '',
|
||||||
'error_rm_workflow_state' => '',
|
'error_rm_workflow_state' => '',
|
||||||
|
@ -757,6 +759,7 @@ URL: [url]',
|
||||||
'list_access_rights' => 'Llista tots els tipus d\'accés...',
|
'list_access_rights' => 'Llista tots els tipus d\'accés...',
|
||||||
'list_contains_no_access_docs' => '',
|
'list_contains_no_access_docs' => '',
|
||||||
'list_hooks' => '',
|
'list_hooks' => '',
|
||||||
|
'list_notification_services' => '',
|
||||||
'list_tasks' => '',
|
'list_tasks' => '',
|
||||||
'local_file' => 'Arxiu local',
|
'local_file' => 'Arxiu local',
|
||||||
'locked_by' => 'Locked by',
|
'locked_by' => 'Locked by',
|
||||||
|
@ -1022,6 +1025,7 @@ URL: [url]',
|
||||||
'remove_approval_log' => '',
|
'remove_approval_log' => '',
|
||||||
'remove_marked_files' => '',
|
'remove_marked_files' => '',
|
||||||
'remove_review_log' => '',
|
'remove_review_log' => '',
|
||||||
|
'remove_task' => '',
|
||||||
'repaired' => '',
|
'repaired' => '',
|
||||||
'repairing_objects' => '',
|
'repairing_objects' => '',
|
||||||
'replace_content_email_body' => '',
|
'replace_content_email_body' => '',
|
||||||
|
@ -1204,6 +1208,8 @@ URL: [url]',
|
||||||
'seq_end' => 'Al final',
|
'seq_end' => 'Al final',
|
||||||
'seq_keep' => 'Mantenir posició',
|
'seq_keep' => 'Mantenir posició',
|
||||||
'seq_start' => 'Primera posició',
|
'seq_start' => 'Primera posició',
|
||||||
|
'service_has_filter' => '',
|
||||||
|
'service_name' => '',
|
||||||
'sessions' => '',
|
'sessions' => '',
|
||||||
'setDateFromFile' => '',
|
'setDateFromFile' => '',
|
||||||
'setDateFromFolder' => '',
|
'setDateFromFolder' => '',
|
||||||
|
|
|
@ -581,6 +581,8 @@ URL: [url]',
|
||||||
'error_remove_document' => 'Při mazání dokumentu došlo k chybě',
|
'error_remove_document' => 'Při mazání dokumentu došlo k chybě',
|
||||||
'error_remove_folder' => 'Při mazání složky došlo k chybě',
|
'error_remove_folder' => 'Při mazání složky došlo k chybě',
|
||||||
'error_remove_permission' => 'Chyba při odebrání oprávnění',
|
'error_remove_permission' => 'Chyba při odebrání oprávnění',
|
||||||
|
'error_rm_user_processes' => '',
|
||||||
|
'error_rm_user_processes_no_docs' => '',
|
||||||
'error_rm_workflow' => 'Chyba při odstraňování workflow',
|
'error_rm_workflow' => 'Chyba při odstraňování workflow',
|
||||||
'error_rm_workflow_action' => 'Chyba pří odstraňování akce workflow',
|
'error_rm_workflow_action' => 'Chyba pří odstraňování akce workflow',
|
||||||
'error_rm_workflow_state' => 'Chyba pří odstraňování stavu workflow',
|
'error_rm_workflow_state' => 'Chyba pří odstraňování stavu workflow',
|
||||||
|
@ -854,6 +856,7 @@ URL: [url]',
|
||||||
'list_access_rights' => 'Seznam všech přístupových práv ...',
|
'list_access_rights' => 'Seznam všech přístupových práv ...',
|
||||||
'list_contains_no_access_docs' => 'Seznam obsahuje více dokumentů, ke kterým nemáte přístup a které se nezobrazují.',
|
'list_contains_no_access_docs' => 'Seznam obsahuje více dokumentů, ke kterým nemáte přístup a které se nezobrazují.',
|
||||||
'list_hooks' => 'Seznam hooks',
|
'list_hooks' => 'Seznam hooks',
|
||||||
|
'list_notification_services' => '',
|
||||||
'list_tasks' => 'Seznam úkolů',
|
'list_tasks' => 'Seznam úkolů',
|
||||||
'local_file' => 'Lokální soubor',
|
'local_file' => 'Lokální soubor',
|
||||||
'locked_by' => 'Zamčeno kým',
|
'locked_by' => 'Zamčeno kým',
|
||||||
|
@ -1173,6 +1176,7 @@ URL: [url]',
|
||||||
'remove_approval_log' => '',
|
'remove_approval_log' => '',
|
||||||
'remove_marked_files' => 'Odstranit označené soubory',
|
'remove_marked_files' => 'Odstranit označené soubory',
|
||||||
'remove_review_log' => '',
|
'remove_review_log' => '',
|
||||||
|
'remove_task' => '',
|
||||||
'repaired' => 'opraveno',
|
'repaired' => 'opraveno',
|
||||||
'repairing_objects' => 'Opravuji dokumenty a složky.',
|
'repairing_objects' => 'Opravuji dokumenty a složky.',
|
||||||
'replace_content_email_body' => '',
|
'replace_content_email_body' => '',
|
||||||
|
@ -1408,6 +1412,8 @@ Jméno: [username]
|
||||||
'seq_end' => 'Na konec',
|
'seq_end' => 'Na konec',
|
||||||
'seq_keep' => 'Ponechat pozici',
|
'seq_keep' => 'Ponechat pozici',
|
||||||
'seq_start' => 'První pozice',
|
'seq_start' => 'První pozice',
|
||||||
|
'service_has_filter' => '',
|
||||||
|
'service_name' => '',
|
||||||
'sessions' => 'seance',
|
'sessions' => 'seance',
|
||||||
'setDateFromFile' => '',
|
'setDateFromFile' => '',
|
||||||
'setDateFromFolder' => '',
|
'setDateFromFolder' => '',
|
||||||
|
|
|
@ -19,11 +19,11 @@
|
||||||
// along with this program; if not, write to the Free Software
|
// along with this program; if not, write to the Free Software
|
||||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
//
|
//
|
||||||
// Translators: Admin (3102), dgrutsch (22)
|
// Translators: Admin (3113), dgrutsch (22)
|
||||||
|
|
||||||
$text = array(
|
$text = array(
|
||||||
'2_factor_auth' => '2-Faktor Authentifizierung',
|
'2_factor_auth' => '2-Faktor Authentifizierung',
|
||||||
'2_factor_auth_info' => 'Dieses System erfordert 2-Faktor-Authentifikation. Dazu brauchen Sie den Google Authenticator auf Ihrem Mobiltelefon. Unten sehen Sie zwei QR-Codes. Der rechte Code beinhaltet Ihren aktuellen geheimen Schlüssel. Auf der linken Seite wird ein neuer Schlüssel angezeigt. Wenn Sie den neuen Schlüssel speichern, dann stellen Sie zuvor sicher, dass sie ihn mit dem Google Authenticator zuvor eingescant haben.',
|
'2_factor_auth_info' => 'Dieses System erfordert 2-Faktor-Authentifikation. Dazu brauchen Sie den Google Authenticator auf Ihrem Mobiltelefon. Unten sehen Sie zwei QR-Codes. Der rechte Code beinhaltet Ihren aktuellen geheimen Schlüssel. Auf der linken Seite wird ein neuer Schlüssel angezeigt. Wenn Sie den neuen Schlüssel speichern, dann stellen Sie zuvor sicher, dass sie ihn mit Ihrem bevorzugten Authenticator (z.B. andOTP) zuvor eingescant haben.',
|
||||||
'2_fact_auth_current_secret' => 'Aktuelles Geheimnis',
|
'2_fact_auth_current_secret' => 'Aktuelles Geheimnis',
|
||||||
'2_fact_auth_new_secret' => 'Neues Geheimnis',
|
'2_fact_auth_new_secret' => 'Neues Geheimnis',
|
||||||
'2_fact_auth_secret' => 'Schlüssel',
|
'2_fact_auth_secret' => 'Schlüssel',
|
||||||
|
@ -349,7 +349,7 @@ URL: [url]</p>',
|
||||||
'comment_changed_email' => '',
|
'comment_changed_email' => '',
|
||||||
'comment_for_current_version' => 'Kommentar zur aktuellen Version',
|
'comment_for_current_version' => 'Kommentar zur aktuellen Version',
|
||||||
'configure_extension' => 'Erweiterung konfigurieren',
|
'configure_extension' => 'Erweiterung konfigurieren',
|
||||||
'confirm_clear_cache' => 'Wollen Sie wirklich den Cache löschen? Dies entfernt alle vorberechneten Vorschaubilder.',
|
'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_create_fulltext_index' => 'Ja, Ich möchte den Volltext-Index neu erzeugen!.',
|
||||||
'confirm_move_document' => 'Dokument wirklich verschieben?',
|
'confirm_move_document' => 'Dokument wirklich verschieben?',
|
||||||
'confirm_move_folder' => 'Ordner wirklich verschieben?',
|
'confirm_move_folder' => 'Ordner wirklich verschieben?',
|
||||||
|
@ -682,6 +682,8 @@ URL: [url]</p>',
|
||||||
'error_remove_document' => 'Fehler beim Löschen des Dokuments',
|
'error_remove_document' => 'Fehler beim Löschen des Dokuments',
|
||||||
'error_remove_folder' => 'Fehler beim Löschen des Ordners',
|
'error_remove_folder' => 'Fehler beim Löschen des Ordners',
|
||||||
'error_remove_permission' => 'Fehler beim Entfernen der Berechtigung',
|
'error_remove_permission' => 'Fehler beim Entfernen der Berechtigung',
|
||||||
|
'error_rm_user_processes' => 'Fehler beim Löschen des Benutzers aus allen Prozessen',
|
||||||
|
'error_rm_user_processes_no_docs' => 'Keine Dokumente ausgewählt',
|
||||||
'error_rm_workflow' => 'Fehler beim Löschen des Workflows',
|
'error_rm_workflow' => 'Fehler beim Löschen des Workflows',
|
||||||
'error_rm_workflow_action' => 'Fehler beim Löschen der Workflow-Aktion',
|
'error_rm_workflow_action' => 'Fehler beim Löschen der Workflow-Aktion',
|
||||||
'error_rm_workflow_state' => 'Fehler beim Löschen des Workflows-Status',
|
'error_rm_workflow_state' => 'Fehler beim Löschen des Workflows-Status',
|
||||||
|
@ -846,7 +848,7 @@ URL: [url]</p>',
|
||||||
'friday_abbr' => 'Fr',
|
'friday_abbr' => 'Fr',
|
||||||
'from' => 'von',
|
'from' => 'von',
|
||||||
'fr_FR' => 'Französisch',
|
'fr_FR' => 'Französisch',
|
||||||
'fullsearch' => 'Volltext',
|
'fullsearch' => 'Volltextsuche',
|
||||||
'fullsearch_hint' => 'Volltext-Index benutzen',
|
'fullsearch_hint' => 'Volltext-Index benutzen',
|
||||||
'fulltextsearch_disabled' => 'Volltext-Index ist ausgeschaltet',
|
'fulltextsearch_disabled' => 'Volltext-Index ist ausgeschaltet',
|
||||||
'fulltext_converters' => 'Index Dokumentenumwandlung',
|
'fulltext_converters' => 'Index Dokumentenumwandlung',
|
||||||
|
@ -996,7 +998,8 @@ URL: [url]</p>',
|
||||||
'link_to_version' => 'An Version hängen',
|
'link_to_version' => 'An Version hängen',
|
||||||
'list_access_rights' => 'Alle Zugriffsrechte auflisten ...',
|
'list_access_rights' => 'Alle Zugriffsrechte auflisten ...',
|
||||||
'list_contains_no_access_docs' => 'Die Liste enthält weitere Dokumente auf die Sie keinen Zugriff haben und deshalb nicht angezeigt werden.',
|
'list_contains_no_access_docs' => 'Die Liste enthält weitere Dokumente auf die Sie keinen Zugriff haben und deshalb nicht angezeigt werden.',
|
||||||
'list_hooks' => 'Liste interne Aufrufe',
|
'list_hooks' => 'Liste der interne Aufrufe',
|
||||||
|
'list_notification_services' => 'Liste der Benachrichtigungsdienste',
|
||||||
'list_tasks' => 'Tasks auflisten',
|
'list_tasks' => 'Tasks auflisten',
|
||||||
'local_file' => 'Lokale Datei',
|
'local_file' => 'Lokale Datei',
|
||||||
'locked_by' => 'Gesperrt von',
|
'locked_by' => 'Gesperrt von',
|
||||||
|
@ -1409,6 +1412,7 @@ URL: [url]</p>',
|
||||||
'remove_approval_log' => 'Einzelne Freigabe entfernen',
|
'remove_approval_log' => 'Einzelne Freigabe entfernen',
|
||||||
'remove_marked_files' => 'Markierte Dateien löschen',
|
'remove_marked_files' => 'Markierte Dateien löschen',
|
||||||
'remove_review_log' => 'Einzelne Prüfung entfernen',
|
'remove_review_log' => 'Einzelne Prüfung entfernen',
|
||||||
|
'remove_task' => 'Task entfernen',
|
||||||
'repaired' => 'repariert',
|
'repaired' => 'repariert',
|
||||||
'repairing_objects' => 'Repariere Dokumente und Ordner.',
|
'repairing_objects' => 'Repariere Dokumente und Ordner.',
|
||||||
'replace_content_email_body' => 'Die letzte Version des Dokuments wurde ersetzt.
|
'replace_content_email_body' => 'Die letzte Version des Dokuments wurde ersetzt.
|
||||||
|
@ -1740,6 +1744,8 @@ Sollten Sie kein Passwort bekommen haben, dann nutzen Sie bitte die Passwort-Ver
|
||||||
'seq_end' => 'Ans Ende',
|
'seq_end' => 'Ans Ende',
|
||||||
'seq_keep' => 'Beibehalten',
|
'seq_keep' => 'Beibehalten',
|
||||||
'seq_start' => 'An den Anfang',
|
'seq_start' => 'An den Anfang',
|
||||||
|
'service_has_filter' => 'Service hat Filter',
|
||||||
|
'service_name' => 'Service-Name',
|
||||||
'sessions' => 'Benutzer Online',
|
'sessions' => 'Benutzer Online',
|
||||||
'setDateFromFile' => 'Datum von importierter Datei übernehmen',
|
'setDateFromFile' => 'Datum von importierter Datei übernehmen',
|
||||||
'setDateFromFolder' => 'Datum von importierten Verzeichnis übernehmen',
|
'setDateFromFolder' => 'Datum von importierten Verzeichnis übernehmen',
|
||||||
|
@ -2002,7 +2008,7 @@ Sollten Sie kein Passwort bekommen haben, dann nutzen Sie bitte die Passwort-Ver
|
||||||
'settings_maxItemsPerPage_desc' => 'Begrenzt die Anzahl der Ordner und Dokumente auf der View-Folder Seite. Weitere Objekte werden geladen, wenn man an das Ende der Seite rollt. Setze diesen Wert auf 0, um immer alle Objekte anzuzeigen.',
|
'settings_maxItemsPerPage_desc' => 'Begrenzt die Anzahl der Ordner und Dokumente auf der View-Folder Seite. Weitere Objekte werden geladen, wenn man an das Ende der Seite rollt. Setze diesen Wert auf 0, um immer alle Objekte anzuzeigen.',
|
||||||
'settings_maxRecursiveCount' => 'Max. Anzahl Anzahl rekursiver Dokumente/Ordner.',
|
'settings_maxRecursiveCount' => 'Max. Anzahl Anzahl rekursiver Dokumente/Ordner.',
|
||||||
'settings_maxRecursiveCount_desc' => 'Dies ist die maximale Anzahl der Dokumente und Ordner die auf Zugriffsrechte geprüft werden, wenn rekursiv gezählt wird. Wenn diese Anzahl überschritten wird, wird die Anzahl der Dokumente und Unterordner in der Ordner Ansicht geschätzt.',
|
'settings_maxRecursiveCount_desc' => 'Dies ist die maximale Anzahl der Dokumente und Ordner die auf Zugriffsrechte geprüft werden, wenn rekursiv gezählt wird. Wenn diese Anzahl überschritten wird, wird die Anzahl der Dokumente und Unterordner in der Ordner Ansicht geschätzt.',
|
||||||
'settings_maxSizeForFullText' => 'Maximale Dateigröße für sofortige Indezierung',
|
'settings_maxSizeForFullText' => 'Maximale Dateigröße für sofortige Indizierung',
|
||||||
'settings_maxSizeForFullText_desc' => 'Alle neuen Versionen eines Dokuments, die kleiner als die konfigurierte Dateigröße in Bytes sind, werden sofort indiziert. In allen anderen Fällen werden nur die Metadaten erfasst.',
|
'settings_maxSizeForFullText_desc' => 'Alle neuen Versionen eines Dokuments, die kleiner als die konfigurierte Dateigröße in Bytes sind, werden sofort indiziert. In allen anderen Fällen werden nur die Metadaten erfasst.',
|
||||||
'settings_maxUploadSize' => 'Maximale Größe hochzuladener Dateien',
|
'settings_maxUploadSize' => 'Maximale Größe hochzuladener Dateien',
|
||||||
'settings_maxUploadSize_desc' => 'Dies ist die maximale Größe einer hochzuladenen Datei. Es begrenzt sowohl Dokumentenversionen als auch Anhänge.',
|
'settings_maxUploadSize_desc' => 'Dies ist die maximale Größe einer hochzuladenen Datei. Es begrenzt sowohl Dokumentenversionen als auch Anhänge.',
|
||||||
|
|
|
@ -510,6 +510,8 @@ $text = array(
|
||||||
'error_remove_document' => '',
|
'error_remove_document' => '',
|
||||||
'error_remove_folder' => '',
|
'error_remove_folder' => '',
|
||||||
'error_remove_permission' => '',
|
'error_remove_permission' => '',
|
||||||
|
'error_rm_user_processes' => '',
|
||||||
|
'error_rm_user_processes_no_docs' => '',
|
||||||
'error_rm_workflow' => '',
|
'error_rm_workflow' => '',
|
||||||
'error_rm_workflow_action' => '',
|
'error_rm_workflow_action' => '',
|
||||||
'error_rm_workflow_state' => '',
|
'error_rm_workflow_state' => '',
|
||||||
|
@ -752,6 +754,7 @@ $text = array(
|
||||||
'list_access_rights' => 'Εμφάνισε όλα τα δικαιώματα πρόσβασης',
|
'list_access_rights' => 'Εμφάνισε όλα τα δικαιώματα πρόσβασης',
|
||||||
'list_contains_no_access_docs' => '',
|
'list_contains_no_access_docs' => '',
|
||||||
'list_hooks' => '',
|
'list_hooks' => '',
|
||||||
|
'list_notification_services' => '',
|
||||||
'list_tasks' => '',
|
'list_tasks' => '',
|
||||||
'local_file' => 'Τοπικό αρχείο',
|
'local_file' => 'Τοπικό αρχείο',
|
||||||
'locked_by' => '',
|
'locked_by' => '',
|
||||||
|
@ -1028,6 +1031,7 @@ URL: [url]',
|
||||||
'remove_approval_log' => '',
|
'remove_approval_log' => '',
|
||||||
'remove_marked_files' => '',
|
'remove_marked_files' => '',
|
||||||
'remove_review_log' => '',
|
'remove_review_log' => '',
|
||||||
|
'remove_task' => '',
|
||||||
'repaired' => '',
|
'repaired' => '',
|
||||||
'repairing_objects' => '',
|
'repairing_objects' => '',
|
||||||
'replace_content_email_body' => '',
|
'replace_content_email_body' => '',
|
||||||
|
@ -1210,6 +1214,8 @@ URL: [url]',
|
||||||
'seq_end' => 'Στο τέλος',
|
'seq_end' => 'Στο τέλος',
|
||||||
'seq_keep' => 'Διατήρηση θέσης',
|
'seq_keep' => 'Διατήρηση θέσης',
|
||||||
'seq_start' => 'Τοποθέτηση στην αρχή',
|
'seq_start' => 'Τοποθέτηση στην αρχή',
|
||||||
|
'service_has_filter' => '',
|
||||||
|
'service_name' => '',
|
||||||
'sessions' => '',
|
'sessions' => '',
|
||||||
'setDateFromFile' => '',
|
'setDateFromFile' => '',
|
||||||
'setDateFromFolder' => '',
|
'setDateFromFolder' => '',
|
||||||
|
|
|
@ -19,11 +19,11 @@
|
||||||
// along with this program; if not, write to the Free Software
|
// along with this program; if not, write to the Free Software
|
||||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
//
|
//
|
||||||
// Translators: Admin (2197), archonwang (3), dgrutsch (9), netixw (14)
|
// Translators: Admin (2207), archonwang (3), dgrutsch (9), netixw (14)
|
||||||
|
|
||||||
$text = array(
|
$text = array(
|
||||||
'2_factor_auth' => '2-factor authentication',
|
'2_factor_auth' => '2-factor authentication',
|
||||||
'2_factor_auth_info' => 'This system enforces 2 factor authentication. You will need the Google Authenticator on your mobile phone. Below you see two QR codes. The right one is your current secret. On the left you can set a new secret. If you set a new secret make sure to rescan it with Google Authenticator.',
|
'2_factor_auth_info' => 'This system enforces 2 factor authentication. You will need the Google Authenticator on your mobile phone. Below you see two QR codes. The right one is your current secret. On the left you can set a new secret. If you set a new secret make sure to rescan it with your preffered authenticator, e.g. andOTP.',
|
||||||
'2_fact_auth_current_secret' => 'Current secret',
|
'2_fact_auth_current_secret' => 'Current secret',
|
||||||
'2_fact_auth_new_secret' => 'New secret',
|
'2_fact_auth_new_secret' => 'New secret',
|
||||||
'2_fact_auth_secret' => 'Secret',
|
'2_fact_auth_secret' => 'Secret',
|
||||||
|
@ -349,7 +349,7 @@ URL: [url]</p>',
|
||||||
'comment_changed_email' => '',
|
'comment_changed_email' => '',
|
||||||
'comment_for_current_version' => 'Version comment',
|
'comment_for_current_version' => 'Version comment',
|
||||||
'configure_extension' => 'Configure extension',
|
'configure_extension' => 'Configure extension',
|
||||||
'confirm_clear_cache' => 'Would you really like to clear the cache? This will remove all precalculated preview images.',
|
'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_create_fulltext_index' => 'Yes, I would like to recreate the fulltext index!',
|
||||||
'confirm_move_document' => 'Please confirm moving the document.',
|
'confirm_move_document' => 'Please confirm moving the document.',
|
||||||
'confirm_move_folder' => 'Please confirm moving the folder.',
|
'confirm_move_folder' => 'Please confirm moving the folder.',
|
||||||
|
@ -682,6 +682,8 @@ URL: [url]</p>',
|
||||||
'error_remove_document' => 'Error while deleting document',
|
'error_remove_document' => 'Error while deleting document',
|
||||||
'error_remove_folder' => 'Error while deleting folder',
|
'error_remove_folder' => 'Error while deleting folder',
|
||||||
'error_remove_permission' => 'Error while remove permission',
|
'error_remove_permission' => 'Error while remove permission',
|
||||||
|
'error_rm_user_processes' => 'Error when removing user from all processes',
|
||||||
|
'error_rm_user_processes_no_docs' => 'No documents selected',
|
||||||
'error_rm_workflow' => 'Error when removing workflow',
|
'error_rm_workflow' => 'Error when removing workflow',
|
||||||
'error_rm_workflow_action' => 'Error when removing workflow action',
|
'error_rm_workflow_action' => 'Error when removing workflow action',
|
||||||
'error_rm_workflow_state' => 'Error when removing workflow state',
|
'error_rm_workflow_state' => 'Error when removing workflow state',
|
||||||
|
@ -997,7 +999,8 @@ URL: [url]</p>',
|
||||||
'link_to_version' => 'Attach to version',
|
'link_to_version' => 'Attach to version',
|
||||||
'list_access_rights' => 'List all access rights ...',
|
'list_access_rights' => 'List all access rights ...',
|
||||||
'list_contains_no_access_docs' => 'The list contains more documents you have no access to and are not displayed.',
|
'list_contains_no_access_docs' => 'The list contains more documents you have no access to and are not displayed.',
|
||||||
'list_hooks' => 'List hooks',
|
'list_hooks' => 'List of hooks',
|
||||||
|
'list_notification_services' => 'List of notification services',
|
||||||
'list_tasks' => 'List tasks',
|
'list_tasks' => 'List tasks',
|
||||||
'local_file' => 'Local file',
|
'local_file' => 'Local file',
|
||||||
'locked_by' => 'Locked by',
|
'locked_by' => 'Locked by',
|
||||||
|
@ -1412,6 +1415,7 @@ URL: [url]</p>',
|
||||||
'remove_approval_log' => 'Remove approval',
|
'remove_approval_log' => 'Remove approval',
|
||||||
'remove_marked_files' => 'Remove marked files',
|
'remove_marked_files' => 'Remove marked files',
|
||||||
'remove_review_log' => 'Remove review',
|
'remove_review_log' => 'Remove review',
|
||||||
|
'remove_task' => 'Remove task',
|
||||||
'repaired' => 'repaired',
|
'repaired' => 'repaired',
|
||||||
'repairing_objects' => 'Repairing documents and folders.',
|
'repairing_objects' => 'Repairing documents and folders.',
|
||||||
'replace_content_email_body' => 'The last version of the document has been replaced.
|
'replace_content_email_body' => 'The last version of the document has been replaced.
|
||||||
|
@ -1743,6 +1747,8 @@ If you did not receive a password, please use the password forgotten function on
|
||||||
'seq_end' => 'At the end',
|
'seq_end' => 'At the end',
|
||||||
'seq_keep' => 'Keep Position',
|
'seq_keep' => 'Keep Position',
|
||||||
'seq_start' => 'First position',
|
'seq_start' => 'First position',
|
||||||
|
'service_has_filter' => 'Service has filter',
|
||||||
|
'service_name' => 'Name of service',
|
||||||
'sessions' => 'Users online',
|
'sessions' => 'Users online',
|
||||||
'setDateFromFile' => 'Take over date from imported file',
|
'setDateFromFile' => 'Take over date from imported file',
|
||||||
'setDateFromFolder' => 'Take over date from imported folder',
|
'setDateFromFolder' => 'Take over date from imported folder',
|
||||||
|
@ -1860,7 +1866,7 @@ If you did not receive a password, please use the password forgotten function on
|
||||||
'settings_enableDropUpload_desc' => 'Enable/Disable the drop area on the \'View Folder\' page for uploading files by Drag&Drop.',
|
'settings_enableDropUpload_desc' => 'Enable/Disable the drop area on the \'View Folder\' page for uploading files by Drag&Drop.',
|
||||||
'settings_enableDuplicateDocNames' => 'Allow duplicate document names',
|
'settings_enableDuplicateDocNames' => 'Allow duplicate document names',
|
||||||
'settings_enableDuplicateDocNames_desc' => 'Allows to have duplicate document names in a folder.',
|
'settings_enableDuplicateDocNames_desc' => 'Allows to have duplicate document names in a folder.',
|
||||||
'settings_enableDuplicateSubFolderNames' => 'Allow duplicat subfolder names',
|
'settings_enableDuplicateSubFolderNames' => 'Allow duplicate subfolder names',
|
||||||
'settings_enableDuplicateSubFolderNames_desc' => 'Allows to have duplicate subfolder names in a folder.',
|
'settings_enableDuplicateSubFolderNames_desc' => 'Allows to have duplicate subfolder names in a folder.',
|
||||||
'settings_enableEmail' => 'Enable E-mail Notification',
|
'settings_enableEmail' => 'Enable E-mail Notification',
|
||||||
'settings_enableEmail_desc' => 'Enable/disable automatic email notification',
|
'settings_enableEmail_desc' => 'Enable/disable automatic email notification',
|
||||||
|
|
|
@ -570,6 +570,8 @@ URL: [url]',
|
||||||
'error_remove_document' => '',
|
'error_remove_document' => '',
|
||||||
'error_remove_folder' => 'Error al eliminar la carpeta',
|
'error_remove_folder' => 'Error al eliminar la carpeta',
|
||||||
'error_remove_permission' => '',
|
'error_remove_permission' => '',
|
||||||
|
'error_rm_user_processes' => '',
|
||||||
|
'error_rm_user_processes_no_docs' => '',
|
||||||
'error_rm_workflow' => '',
|
'error_rm_workflow' => '',
|
||||||
'error_rm_workflow_action' => '',
|
'error_rm_workflow_action' => '',
|
||||||
'error_rm_workflow_state' => '',
|
'error_rm_workflow_state' => '',
|
||||||
|
@ -842,6 +844,7 @@ URL: [url]',
|
||||||
'list_access_rights' => 'Listar los derechos de acceso',
|
'list_access_rights' => 'Listar los derechos de acceso',
|
||||||
'list_contains_no_access_docs' => '',
|
'list_contains_no_access_docs' => '',
|
||||||
'list_hooks' => 'Mis bloques',
|
'list_hooks' => 'Mis bloques',
|
||||||
|
'list_notification_services' => '',
|
||||||
'list_tasks' => '',
|
'list_tasks' => '',
|
||||||
'local_file' => 'Fichero local',
|
'local_file' => 'Fichero local',
|
||||||
'locked_by' => 'Bloqueado por',
|
'locked_by' => 'Bloqueado por',
|
||||||
|
@ -1154,6 +1157,7 @@ nURL: [url]',
|
||||||
'remove_approval_log' => '',
|
'remove_approval_log' => '',
|
||||||
'remove_marked_files' => 'Eliminar ficheros marcados',
|
'remove_marked_files' => 'Eliminar ficheros marcados',
|
||||||
'remove_review_log' => '',
|
'remove_review_log' => '',
|
||||||
|
'remove_task' => '',
|
||||||
'repaired' => 'Reparado',
|
'repaired' => 'Reparado',
|
||||||
'repairing_objects' => 'Reparando documentos y carpetas.',
|
'repairing_objects' => 'Reparando documentos y carpetas.',
|
||||||
'replace_content_email_body' => '',
|
'replace_content_email_body' => '',
|
||||||
|
@ -1363,6 +1367,8 @@ URL: [url]',
|
||||||
'seq_end' => 'Al final',
|
'seq_end' => 'Al final',
|
||||||
'seq_keep' => 'Mantener posición',
|
'seq_keep' => 'Mantener posición',
|
||||||
'seq_start' => 'Primera posición',
|
'seq_start' => 'Primera posición',
|
||||||
|
'service_has_filter' => '',
|
||||||
|
'service_name' => '',
|
||||||
'sessions' => '',
|
'sessions' => '',
|
||||||
'setDateFromFile' => 'Obtiene la fecha del archivo importado',
|
'setDateFromFile' => 'Obtiene la fecha del archivo importado',
|
||||||
'setDateFromFolder' => 'Obtiene la fecha de la carpeta importada',
|
'setDateFromFolder' => 'Obtiene la fecha de la carpeta importada',
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
// along with this program; if not, write to the Free Software
|
// along with this program; if not, write to the Free Software
|
||||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
//
|
//
|
||||||
// Translators: Admin (1126), jeromerobert (50), lonnnew (9), Oudiceval (1171)
|
// Translators: Admin (1155), jeromerobert (50), lonnnew (9), Oudiceval (1171)
|
||||||
|
|
||||||
$text = array(
|
$text = array(
|
||||||
'2_factor_auth' => 'Authentification forte',
|
'2_factor_auth' => 'Authentification forte',
|
||||||
|
@ -185,7 +185,7 @@ URL : [url]</p>',
|
||||||
'attrdefgrp_show_searchlist' => 'Résultats de recherche',
|
'attrdefgrp_show_searchlist' => 'Résultats de recherche',
|
||||||
'attrdef_exists' => 'La définition d\'attribut existe déjà',
|
'attrdef_exists' => 'La définition d\'attribut existe déjà',
|
||||||
'attrdef_info' => 'Information',
|
'attrdef_info' => 'Information',
|
||||||
'attrdef_invalid_regex' => '',
|
'attrdef_invalid_regex' => 'L\'expression régulière n\'est pas valide',
|
||||||
'attrdef_in_use' => 'La définition d\'attribut est en cours d\'utilisation',
|
'attrdef_in_use' => 'La définition d\'attribut est en cours d\'utilisation',
|
||||||
'attrdef_management' => 'Gestion des définitions d\'attributs',
|
'attrdef_management' => 'Gestion des définitions d\'attributs',
|
||||||
'attrdef_maxvalues' => 'Nombre maximum de valeurs',
|
'attrdef_maxvalues' => 'Nombre maximum de valeurs',
|
||||||
|
@ -336,7 +336,7 @@ URL : [url]</p>',
|
||||||
'color' => 'Couleur',
|
'color' => 'Couleur',
|
||||||
'command' => 'Commande',
|
'command' => 'Commande',
|
||||||
'comment' => 'Commentaire',
|
'comment' => 'Commentaire',
|
||||||
'comment_changed_email' => '',
|
'comment_changed_email' => 'Commentaire lors du changement d\'adresse mail',
|
||||||
'comment_for_current_version' => 'Commentaires pour la version actuelle',
|
'comment_for_current_version' => 'Commentaires pour la version actuelle',
|
||||||
'configure_extension' => 'Configurer l’extension',
|
'configure_extension' => 'Configurer l’extension',
|
||||||
'confirm_clear_cache' => 'Voulez-vous vraiment vider le cache ? Cela va effacer toutes les miniatures.',
|
'confirm_clear_cache' => 'Voulez-vous vraiment vider le cache ? Cela va effacer toutes les miniatures.',
|
||||||
|
@ -480,7 +480,7 @@ Utilisateur : [username]</p>',
|
||||||
'document_files' => 'Fichiers attachés',
|
'document_files' => 'Fichiers attachés',
|
||||||
'document_has_no_workflow' => 'Le document n\'a pas de workflow',
|
'document_has_no_workflow' => 'Le document n\'a pas de workflow',
|
||||||
'document_infos' => 'Informations sur le document',
|
'document_infos' => 'Informations sur le document',
|
||||||
'document_is_checked_out' => '',
|
'document_is_checked_out' => 'Ce document est vérifié',
|
||||||
'document_is_checked_out_remove' => 'Le document est actuellement vérifié. Si vous supprimez le document, la version vérifiée ne pourra plus être ajoutée et restera dans la zone de vérification.',
|
'document_is_checked_out_remove' => 'Le document est actuellement vérifié. Si vous supprimez le document, la version vérifiée ne pourra plus être ajoutée et restera dans la zone de vérification.',
|
||||||
'document_is_checked_out_update' => 'Le document est actuellement vérifié. Si vous ajoutez une nouvelle version, la version vérifiée ne pourra plus être vérifiée à nouveau.',
|
'document_is_checked_out_update' => 'Le document est actuellement vérifié. Si vous ajoutez une nouvelle version, la version vérifiée ne pourra plus être vérifiée à nouveau.',
|
||||||
'document_is_not_locked' => 'Ce document n\'est pas verrouillé',
|
'document_is_not_locked' => 'Ce document n\'est pas verrouillé',
|
||||||
|
@ -668,6 +668,8 @@ URL : [url]</p>',
|
||||||
'error_remove_document' => 'Erreur lors de la suppression du document',
|
'error_remove_document' => 'Erreur lors de la suppression du document',
|
||||||
'error_remove_folder' => 'Erreur lors de la suppression du dossier',
|
'error_remove_folder' => 'Erreur lors de la suppression du dossier',
|
||||||
'error_remove_permission' => 'Erreur lors de la suppression de permission',
|
'error_remove_permission' => 'Erreur lors de la suppression de permission',
|
||||||
|
'error_rm_user_processes' => '',
|
||||||
|
'error_rm_user_processes_no_docs' => '',
|
||||||
'error_rm_workflow' => 'Erreur lors de la suppression du workflow',
|
'error_rm_workflow' => 'Erreur lors de la suppression du workflow',
|
||||||
'error_rm_workflow_action' => 'Erreur lors de la suppression de l’action de workflow',
|
'error_rm_workflow_action' => 'Erreur lors de la suppression de l’action de workflow',
|
||||||
'error_rm_workflow_state' => 'Erreur lors de la suppression de l’état de workflow',
|
'error_rm_workflow_state' => 'Erreur lors de la suppression de l’état de workflow',
|
||||||
|
@ -719,11 +721,11 @@ URL : [url]</p>',
|
||||||
'extension_manager' => 'Gestionnaire d\'extensions',
|
'extension_manager' => 'Gestionnaire d\'extensions',
|
||||||
'extension_mgr_error_upload' => 'Erreur lors du chargement de l’extension',
|
'extension_mgr_error_upload' => 'Erreur lors du chargement de l’extension',
|
||||||
'extension_mgr_installed' => 'Installées',
|
'extension_mgr_installed' => 'Installées',
|
||||||
'extension_mgr_no_toggle' => '',
|
'extension_mgr_no_toggle' => 'Les extensions ne peuvent pas être activées/désactivées car le fichier de configuration n\'est pas accessible en écriture.',
|
||||||
'extension_mgr_no_upload' => 'L’ajout de nouvelles extensions n’est pas possible car le répertoire des extensions n’est pas accessible en écriture.',
|
'extension_mgr_no_upload' => 'L’ajout de nouvelles extensions n’est pas possible car le répertoire des extensions n’est pas accessible en écriture.',
|
||||||
'extension_mgr_no_zipfile' => 'L’extension chargée n’est pas un dossier zip',
|
'extension_mgr_no_zipfile' => 'L’extension chargée n’est pas un dossier zip',
|
||||||
'extension_mgr_repository' => 'Disponibles',
|
'extension_mgr_repository' => 'Disponibles',
|
||||||
'extension_mgr_upload_disabled' => '',
|
'extension_mgr_upload_disabled' => 'Le chargement d\'extension n\'est pas activé',
|
||||||
'extension_missing_name' => 'Nom d’extension manquant',
|
'extension_missing_name' => 'Nom d’extension manquant',
|
||||||
'extension_toggle_error' => 'Impossible d’activer/désactiver l’extension',
|
'extension_toggle_error' => 'Impossible d’activer/désactiver l’extension',
|
||||||
'extension_version_list' => 'Versions',
|
'extension_version_list' => 'Versions',
|
||||||
|
@ -827,7 +829,7 @@ Utilisateur : [username]<br />
|
||||||
URL : [url]</p>',
|
URL : [url]</p>',
|
||||||
'folder_renamed_email_subject' => '[sitename] : [name] - Dossier renommé',
|
'folder_renamed_email_subject' => '[sitename] : [name] - Dossier renommé',
|
||||||
'folder_title' => 'Dossier \'[foldername]\'',
|
'folder_title' => 'Dossier \'[foldername]\'',
|
||||||
'foot_note' => '',
|
'foot_note' => 'Note de pied de page',
|
||||||
'force_update' => 'Mettre à jour',
|
'force_update' => 'Mettre à jour',
|
||||||
'friday' => 'Vendredi',
|
'friday' => 'Vendredi',
|
||||||
'friday_abbr' => 'Ven.',
|
'friday_abbr' => 'Ven.',
|
||||||
|
@ -984,6 +986,7 @@ URL : [url]</p>',
|
||||||
'list_access_rights' => 'Liste des droits d’accès…',
|
'list_access_rights' => 'Liste des droits d’accès…',
|
||||||
'list_contains_no_access_docs' => 'La liste contient des documents auxquels vous n’avez pas accès et qui ne sont donc pas affichés.',
|
'list_contains_no_access_docs' => 'La liste contient des documents auxquels vous n’avez pas accès et qui ne sont donc pas affichés.',
|
||||||
'list_hooks' => 'Liste des appels internes',
|
'list_hooks' => 'Liste des appels internes',
|
||||||
|
'list_notification_services' => '',
|
||||||
'list_tasks' => 'Liste des tâches',
|
'list_tasks' => 'Liste des tâches',
|
||||||
'local_file' => 'Fichier local',
|
'local_file' => 'Fichier local',
|
||||||
'locked_by' => 'Verrouillé par',
|
'locked_by' => 'Verrouillé par',
|
||||||
|
@ -1192,14 +1195,14 @@ URL : [url]</p>',
|
||||||
'old' => 'Ancien',
|
'old' => 'Ancien',
|
||||||
'only_jpg_user_images' => 'Images d\'utilisateur au format .jpg seulement',
|
'only_jpg_user_images' => 'Images d\'utilisateur au format .jpg seulement',
|
||||||
'operation_disallowed' => 'Opération non autorisée',
|
'operation_disallowed' => 'Opération non autorisée',
|
||||||
'orderby' => '',
|
'orderby' => 'Trier par',
|
||||||
'orderby_date_asc' => '',
|
'orderby_date_asc' => 'Trier par date croissante',
|
||||||
'orderby_date_desc' => '',
|
'orderby_date_desc' => 'Trier par date décroissante',
|
||||||
'orderby_id_asc' => '',
|
'orderby_id_asc' => 'Trier par ID croissant',
|
||||||
'orderby_id_desc' => '',
|
'orderby_id_desc' => 'Trier par ID décroissant',
|
||||||
'orderby_name_asc' => '',
|
'orderby_name_asc' => 'Trier par nom croissant',
|
||||||
'orderby_name_desc' => '',
|
'orderby_name_desc' => 'Trier par nom décroissant',
|
||||||
'orderby_unsorted' => '',
|
'orderby_unsorted' => 'Non trié',
|
||||||
'order_by_sequence_off' => 'Le tri par position est désactivé dans les préférences. Si vous souhaitez que ce paramètre prenne effet, vous devez l’activer.',
|
'order_by_sequence_off' => 'Le tri par position est désactivé dans les préférences. Si vous souhaitez que ce paramètre prenne effet, vous devez l’activer.',
|
||||||
'original_filename' => 'Nom de fichier original',
|
'original_filename' => 'Nom de fichier original',
|
||||||
'overall_indexing_progress' => 'Progression globale de l’indexation',
|
'overall_indexing_progress' => 'Progression globale de l’indexation',
|
||||||
|
@ -1397,6 +1400,7 @@ URL : [url]</p>',
|
||||||
'remove_approval_log' => 'Approbation retirée',
|
'remove_approval_log' => 'Approbation retirée',
|
||||||
'remove_marked_files' => 'Supprimer les fichiers sélectionnés',
|
'remove_marked_files' => 'Supprimer les fichiers sélectionnés',
|
||||||
'remove_review_log' => 'Vérification retirée',
|
'remove_review_log' => 'Vérification retirée',
|
||||||
|
'remove_task' => '',
|
||||||
'repaired' => 'réparé',
|
'repaired' => 'réparé',
|
||||||
'repairing_objects' => 'Réparation des documents et des dossiers.',
|
'repairing_objects' => 'Réparation des documents et des dossiers.',
|
||||||
'replace_content_email_body' => 'La dernière version du document a été remplacée.
|
'replace_content_email_body' => 'La dernière version du document a été remplacée.
|
||||||
|
@ -1726,6 +1730,8 @@ Nom : [username]
|
||||||
'seq_end' => 'À la fin',
|
'seq_end' => 'À la fin',
|
||||||
'seq_keep' => 'Conserver la position',
|
'seq_keep' => 'Conserver la position',
|
||||||
'seq_start' => 'Première position',
|
'seq_start' => 'Première position',
|
||||||
|
'service_has_filter' => '',
|
||||||
|
'service_name' => '',
|
||||||
'sessions' => 'Utilisateurs en ligne',
|
'sessions' => 'Utilisateurs en ligne',
|
||||||
'setDateFromFile' => 'Reprendre la date du fichier importé',
|
'setDateFromFile' => 'Reprendre la date du fichier importé',
|
||||||
'setDateFromFolder' => 'Reprendre la date du dossier importé',
|
'setDateFromFolder' => 'Reprendre la date du dossier importé',
|
||||||
|
@ -1799,12 +1805,12 @@ Nom : [username]
|
||||||
'settings_dbVersion' => 'Schéma de base de données trop ancien',
|
'settings_dbVersion' => 'Schéma de base de données trop ancien',
|
||||||
'settings_defaultAccessDocs' => 'Accès par défaut des nouveaux documents',
|
'settings_defaultAccessDocs' => 'Accès par défaut des nouveaux documents',
|
||||||
'settings_defaultAccessDocs_desc' => 'Lors de la création d’un nouveau document, ce droit d’accès sera appliqué par défaut.',
|
'settings_defaultAccessDocs_desc' => 'Lors de la création d’un nouveau document, ce droit d’accès sera appliqué par défaut.',
|
||||||
'settings_defaultDocPosition' => 'Position du document à la création',
|
'settings_defaultDocPosition' => 'Position du document à sa création',
|
||||||
'settings_defaultDocPosition_desc' => 'C\'est la position par défaut dans un dossier lors de la création d\'un document.',
|
'settings_defaultDocPosition_desc' => 'Position par défaut lors de la création d\'un document dans un dossier.',
|
||||||
'settings_defaultDocPosition_val_end' => 'fin',
|
'settings_defaultDocPosition_val_end' => 'fin',
|
||||||
'settings_defaultDocPosition_val_start' => 'début',
|
'settings_defaultDocPosition_val_start' => 'début',
|
||||||
'settings_defaultFolderPosition' => 'Position du dossier à sa création',
|
'settings_defaultFolderPosition' => 'Position du dossier à sa création',
|
||||||
'settings_defaultFolderPosition_desc' => 'Position par défaut dans un dossier lorsqu\'un nouveau dossier est créé.',
|
'settings_defaultFolderPosition_desc' => 'Position par défaut lors de la création d\'un dossier.',
|
||||||
'settings_defaultSearchMethod' => 'Méthode de recherche par défaut',
|
'settings_defaultSearchMethod' => 'Méthode de recherche par défaut',
|
||||||
'settings_defaultSearchMethod_desc' => 'Méthode de recherche par défaut, lorsque la recherche est exécutée depuis le moteur de recherche du menu principal',
|
'settings_defaultSearchMethod_desc' => 'Méthode de recherche par défaut, lorsque la recherche est exécutée depuis le moteur de recherche du menu principal',
|
||||||
'settings_defaultSearchMethod_valdatabase' => 'base de données',
|
'settings_defaultSearchMethod_valdatabase' => 'base de données',
|
||||||
|
@ -1827,8 +1833,8 @@ Nom : [username]
|
||||||
'settings_enableAdminReceipt_desc' => 'Activer cette option pour permettre aux administrateurs d’être listés en tant que destinataires.',
|
'settings_enableAdminReceipt_desc' => 'Activer cette option pour permettre aux administrateurs d’être listés en tant que destinataires.',
|
||||||
'settings_enableAdminRevApp' => 'Autoriser vérification/approbation par les administrateurs',
|
'settings_enableAdminRevApp' => 'Autoriser vérification/approbation par les administrateurs',
|
||||||
'settings_enableAdminRevApp_desc' => 'Activer cette option pour ajouter les administrateurs à la liste des examinateurs/approbateurs et pour les transitions de workflow.',
|
'settings_enableAdminRevApp_desc' => 'Activer cette option pour ajouter les administrateurs à la liste des examinateurs/approbateurs et pour les transitions de workflow.',
|
||||||
'settings_enableCalendar' => 'Activer agenda',
|
'settings_enableCalendar' => 'Activer l\'agenda',
|
||||||
'settings_enableCalendar_desc' => 'Active/désactive l’agenda',
|
'settings_enableCalendar_desc' => 'Active/désactive l\'agenda',
|
||||||
'settings_enableCancelCheckout' => 'Autoriser l’annulation des vérifications',
|
'settings_enableCancelCheckout' => 'Autoriser l’annulation des vérifications',
|
||||||
'settings_enableCancelCheckout_desc' => 'Si coché, un document vérifié qui a déjà été modifié pourra être abandonné.',
|
'settings_enableCancelCheckout_desc' => 'Si coché, un document vérifié qui a déjà été modifié pourra être abandonné.',
|
||||||
'settings_enableClipboard' => 'Activer le presse-papier',
|
'settings_enableClipboard' => 'Activer le presse-papier',
|
||||||
|
@ -1847,12 +1853,12 @@ Nom : [username]
|
||||||
'settings_enableDuplicateSubFolderNames_desc' => 'Autorise plusieurs sous-dossiers de même nom dans un dossier.',
|
'settings_enableDuplicateSubFolderNames_desc' => 'Autorise plusieurs sous-dossiers de même nom dans un dossier.',
|
||||||
'settings_enableEmail' => 'E-mails',
|
'settings_enableEmail' => 'E-mails',
|
||||||
'settings_enableEmail_desc' => 'Active/désactive la notification automatique par e-mail',
|
'settings_enableEmail_desc' => 'Active/désactive la notification automatique par e-mail',
|
||||||
'settings_enableExtensionDownload' => 'Autoriser le téléchargement des extensions',
|
'settings_enableExtensionDownload' => 'Autoriser le téléchargement d\'extensions',
|
||||||
'settings_enableExtensionDownload_desc' => 'Dans le gestionnaire d\'extensions, activez cette option pour autoriser le téléchargement d\'extensions.',
|
'settings_enableExtensionDownload_desc' => 'Activez cette option pour autoriser le téléchargement des extensions.',
|
||||||
'settings_enableExtensionImport' => 'Autoriser l\'import d\'exensions',
|
'settings_enableExtensionImport' => 'Autoriser l\'import d\'extensions',
|
||||||
'settings_enableExtensionImportFromRepository' => 'Autoriser l\'import d\'extension depuis le dossier de dépôt',
|
'settings_enableExtensionImportFromRepository' => 'Autoriser l\'import d\'extensions depuis le dépôt',
|
||||||
'settings_enableExtensionImportFromRepository_desc' => 'Activer si cette extension peut être importée depuis le dossier de dépôt',
|
'settings_enableExtensionImportFromRepository_desc' => 'Activez cette option pour autoriser l\'importation des extensions depuis le dépôt.',
|
||||||
'settings_enableExtensionImport_desc' => 'Si activé, l\'extension sera uploadée dans le gestionnaire d\'extensions',
|
'settings_enableExtensionImport_desc' => 'Activez cette option pour autoriser l\'importation des extensions.',
|
||||||
'settings_enableFilterReceipt' => 'Éliminer des propriétaires, examinateurs… d’une liste de destinataires',
|
'settings_enableFilterReceipt' => 'Éliminer des propriétaires, examinateurs… d’une liste de destinataires',
|
||||||
'settings_enableFilterReceipt_desc' => 'Activez cette option pour éliminer certains destinataires d’une liste s’ils sont entrés en tant que membres d’un groupe.',
|
'settings_enableFilterReceipt_desc' => 'Activez cette option pour éliminer certains destinataires d’une liste s’ils sont entrés en tant que membres d’un groupe.',
|
||||||
'settings_enableFolderTree' => 'Activer l\'arborescence des dossiers',
|
'settings_enableFolderTree' => 'Activer l\'arborescence des dossiers',
|
||||||
|
@ -1931,7 +1937,7 @@ Nom : [username]
|
||||||
'settings_expandFolderTree_val0' => 'Démarrer avec l\'arborescence cachée',
|
'settings_expandFolderTree_val0' => 'Démarrer avec l\'arborescence cachée',
|
||||||
'settings_expandFolderTree_val1' => 'Démarrer avec le premier niveau déroulé',
|
'settings_expandFolderTree_val1' => 'Démarrer avec le premier niveau déroulé',
|
||||||
'settings_expandFolderTree_val2' => 'Démarrer avec l\'arborescence déroulée',
|
'settings_expandFolderTree_val2' => 'Démarrer avec l\'arborescence déroulée',
|
||||||
'settings_ExtensionMgr' => 'Paramètres du gestionnaire d\'extensions',
|
'settings_ExtensionMgr' => 'Paramètres des extensions',
|
||||||
'settings_Extensions' => 'Extensions',
|
'settings_Extensions' => 'Extensions',
|
||||||
'settings_extraPath' => 'Chemin d’inclusion supplémentaire PHP',
|
'settings_extraPath' => 'Chemin d’inclusion supplémentaire PHP',
|
||||||
'settings_extraPath_desc' => 'Chemin vers des logiciels supplémentaires. Il s’agit du répertoire contenant par exemple le répertoire ADOdb ou des paquets PEAR supplémentaires.',
|
'settings_extraPath_desc' => 'Chemin vers des logiciels supplémentaires. Il s’agit du répertoire contenant par exemple le répertoire ADOdb ou des paquets PEAR supplémentaires.',
|
||||||
|
@ -1993,10 +1999,10 @@ Nom : [username]
|
||||||
'settings_maxUploadSize' => 'Taille max. des fichiers',
|
'settings_maxUploadSize' => 'Taille max. des fichiers',
|
||||||
'settings_maxUploadSize_desc' => 'Taille maximale (en octets) pour les fichiers téléversés. Concerne les versions d’un document et les fichiers attachés.',
|
'settings_maxUploadSize_desc' => 'Taille maximale (en octets) pour les fichiers téléversés. Concerne les versions d’un document et les fichiers attachés.',
|
||||||
'settings_more_settings' => 'Configurer d\'autres paramètres. Connexion par défaut: admin/admin',
|
'settings_more_settings' => 'Configurer d\'autres paramètres. Connexion par défaut: admin/admin',
|
||||||
'settings_noDocumentFormFields' => 'Ne pas afficher ces champs',
|
'settings_noDocumentFormFields' => 'Ne pas afficher ces champs (documents)',
|
||||||
'settings_noDocumentFormFields_desc' => 'Ces champs ne seront pas visibles à l’ajout et à la modification d’un document. Les valeurs existantes seront conservées.',
|
'settings_noDocumentFormFields_desc' => 'Ces champs ne seront pas visibles à l’ajout et à la modification d’un document. Les valeurs existantes seront conservées.',
|
||||||
'settings_noFolderFormFields' => 'Ne pas montrer les champs (dossier)',
|
'settings_noFolderFormFields' => 'Ne pas afficher ces champs (dossiers)',
|
||||||
'settings_noFolderFormFields_desc' => 'Ces champs ne s\'afficheront pas lors de l\'addition ou la modification d\'un dossier. Les valeurs déjà existantes seront conservées.',
|
'settings_noFolderFormFields_desc' => 'Ces champs ne seront pas visibles à l\'ajout et à la modification d\'un dossier. Les valeurs existantes seront conservées.',
|
||||||
'settings_notfound' => 'Introuvable',
|
'settings_notfound' => 'Introuvable',
|
||||||
'settings_Notification' => 'Notifications',
|
'settings_Notification' => 'Notifications',
|
||||||
'settings_notwritable' => 'La configuration ne peut pas être enregistrée car le fichier de configuration n’est pas accessible en écriture.',
|
'settings_notwritable' => 'La configuration ne peut pas être enregistrée car le fichier de configuration n’est pas accessible en écriture.',
|
||||||
|
|
|
@ -569,6 +569,8 @@ Internet poveznica: [url]',
|
||||||
'error_remove_document' => '',
|
'error_remove_document' => '',
|
||||||
'error_remove_folder' => '',
|
'error_remove_folder' => '',
|
||||||
'error_remove_permission' => '',
|
'error_remove_permission' => '',
|
||||||
|
'error_rm_user_processes' => '',
|
||||||
|
'error_rm_user_processes_no_docs' => '',
|
||||||
'error_rm_workflow' => '',
|
'error_rm_workflow' => '',
|
||||||
'error_rm_workflow_action' => '',
|
'error_rm_workflow_action' => '',
|
||||||
'error_rm_workflow_state' => '',
|
'error_rm_workflow_state' => '',
|
||||||
|
@ -835,6 +837,7 @@ Internet poveznica: [url]',
|
||||||
'list_access_rights' => 'Izlistaj sve dozvole pristupa',
|
'list_access_rights' => 'Izlistaj sve dozvole pristupa',
|
||||||
'list_contains_no_access_docs' => '',
|
'list_contains_no_access_docs' => '',
|
||||||
'list_hooks' => 'Kuke za popise',
|
'list_hooks' => 'Kuke za popise',
|
||||||
|
'list_notification_services' => '',
|
||||||
'list_tasks' => '',
|
'list_tasks' => '',
|
||||||
'local_file' => 'Lokalna datoteka',
|
'local_file' => 'Lokalna datoteka',
|
||||||
'locked_by' => 'Zaključao',
|
'locked_by' => 'Zaključao',
|
||||||
|
@ -1146,6 +1149,7 @@ Internet poveznica: [url]',
|
||||||
'remove_approval_log' => '',
|
'remove_approval_log' => '',
|
||||||
'remove_marked_files' => 'Ukloni označene datoteke',
|
'remove_marked_files' => 'Ukloni označene datoteke',
|
||||||
'remove_review_log' => '',
|
'remove_review_log' => '',
|
||||||
|
'remove_task' => '',
|
||||||
'repaired' => 'popravljeno',
|
'repaired' => 'popravljeno',
|
||||||
'repairing_objects' => 'Popravljanje dokumenata ili mapa.',
|
'repairing_objects' => 'Popravljanje dokumenata ili mapa.',
|
||||||
'replace_content_email_body' => '',
|
'replace_content_email_body' => '',
|
||||||
|
@ -1372,6 +1376,8 @@ Internet poveznica: [url]',
|
||||||
'seq_end' => 'Na kraju',
|
'seq_end' => 'Na kraju',
|
||||||
'seq_keep' => 'Zadrži poziciju',
|
'seq_keep' => 'Zadrži poziciju',
|
||||||
'seq_start' => 'Na početak',
|
'seq_start' => 'Na početak',
|
||||||
|
'service_has_filter' => '',
|
||||||
|
'service_name' => '',
|
||||||
'sessions' => '',
|
'sessions' => '',
|
||||||
'setDateFromFile' => '',
|
'setDateFromFile' => '',
|
||||||
'setDateFromFolder' => '',
|
'setDateFromFolder' => '',
|
||||||
|
|
|
@ -564,6 +564,8 @@ URL: [url]',
|
||||||
'error_remove_document' => '',
|
'error_remove_document' => '',
|
||||||
'error_remove_folder' => '',
|
'error_remove_folder' => '',
|
||||||
'error_remove_permission' => '',
|
'error_remove_permission' => '',
|
||||||
|
'error_rm_user_processes' => '',
|
||||||
|
'error_rm_user_processes_no_docs' => '',
|
||||||
'error_rm_workflow' => '',
|
'error_rm_workflow' => '',
|
||||||
'error_rm_workflow_action' => '',
|
'error_rm_workflow_action' => '',
|
||||||
'error_rm_workflow_state' => '',
|
'error_rm_workflow_state' => '',
|
||||||
|
@ -830,6 +832,7 @@ URL: [url]',
|
||||||
'list_access_rights' => 'Összes jogosultság felsorolása...',
|
'list_access_rights' => 'Összes jogosultság felsorolása...',
|
||||||
'list_contains_no_access_docs' => '',
|
'list_contains_no_access_docs' => '',
|
||||||
'list_hooks' => 'Hook lista',
|
'list_hooks' => 'Hook lista',
|
||||||
|
'list_notification_services' => '',
|
||||||
'list_tasks' => '',
|
'list_tasks' => '',
|
||||||
'local_file' => 'Helyi állomány',
|
'local_file' => 'Helyi állomány',
|
||||||
'locked_by' => 'Zárolta',
|
'locked_by' => 'Zárolta',
|
||||||
|
@ -1142,6 +1145,7 @@ URL: [url]',
|
||||||
'remove_approval_log' => '',
|
'remove_approval_log' => '',
|
||||||
'remove_marked_files' => 'Megjelölt állományok eltávolítása',
|
'remove_marked_files' => 'Megjelölt állományok eltávolítása',
|
||||||
'remove_review_log' => '',
|
'remove_review_log' => '',
|
||||||
|
'remove_task' => '',
|
||||||
'repaired' => 'javított',
|
'repaired' => 'javított',
|
||||||
'repairing_objects' => 'Dokumentumok és mappák helyreállítása',
|
'repairing_objects' => 'Dokumentumok és mappák helyreállítása',
|
||||||
'replace_content_email_body' => '',
|
'replace_content_email_body' => '',
|
||||||
|
@ -1350,6 +1354,8 @@ URL: [url]',
|
||||||
'seq_end' => 'Vgre',
|
'seq_end' => 'Vgre',
|
||||||
'seq_keep' => 'Pozci megtartßsa',
|
'seq_keep' => 'Pozci megtartßsa',
|
||||||
'seq_start' => 'Elejére',
|
'seq_start' => 'Elejére',
|
||||||
|
'service_has_filter' => '',
|
||||||
|
'service_name' => '',
|
||||||
'sessions' => '',
|
'sessions' => '',
|
||||||
'setDateFromFile' => '',
|
'setDateFromFile' => '',
|
||||||
'setDateFromFolder' => '',
|
'setDateFromFolder' => '',
|
||||||
|
|
|
@ -574,6 +574,8 @@ URL: [url]',
|
||||||
'error_remove_document' => 'Errore durante la rimozione del documento',
|
'error_remove_document' => 'Errore durante la rimozione del documento',
|
||||||
'error_remove_folder' => 'Errore durante la rimozione della cartella',
|
'error_remove_folder' => 'Errore durante la rimozione della cartella',
|
||||||
'error_remove_permission' => 'Errore durante la rimozione delle autorizzazioni',
|
'error_remove_permission' => 'Errore durante la rimozione delle autorizzazioni',
|
||||||
|
'error_rm_user_processes' => '',
|
||||||
|
'error_rm_user_processes_no_docs' => '',
|
||||||
'error_rm_workflow' => 'Errore durante la rimozione del flusso di lavoro',
|
'error_rm_workflow' => 'Errore durante la rimozione del flusso di lavoro',
|
||||||
'error_rm_workflow_action' => 'Errore durante la rimozione dell\'azione del flusso di lavoro',
|
'error_rm_workflow_action' => 'Errore durante la rimozione dell\'azione del flusso di lavoro',
|
||||||
'error_rm_workflow_state' => 'Errore durante la rimozione dello stato del flusso di lavoro',
|
'error_rm_workflow_state' => 'Errore durante la rimozione dello stato del flusso di lavoro',
|
||||||
|
@ -840,6 +842,7 @@ URL: [url]',
|
||||||
'list_access_rights' => 'Elenca tutti i diritti di accesso...',
|
'list_access_rights' => 'Elenca tutti i diritti di accesso...',
|
||||||
'list_contains_no_access_docs' => 'L\'elenco contiene più documenti ai quali non si ha accesso e non vengono visualizzati.',
|
'list_contains_no_access_docs' => 'L\'elenco contiene più documenti ai quali non si ha accesso e non vengono visualizzati.',
|
||||||
'list_hooks' => 'Elenco hooks',
|
'list_hooks' => 'Elenco hooks',
|
||||||
|
'list_notification_services' => '',
|
||||||
'list_tasks' => 'Elenco attività',
|
'list_tasks' => 'Elenco attività',
|
||||||
'local_file' => 'File locale',
|
'local_file' => 'File locale',
|
||||||
'locked_by' => 'Bloccato da',
|
'locked_by' => 'Bloccato da',
|
||||||
|
@ -1163,6 +1166,7 @@ URL: [url]',
|
||||||
'remove_approval_log' => '',
|
'remove_approval_log' => '',
|
||||||
'remove_marked_files' => 'Rimuovi i files contrassegnati',
|
'remove_marked_files' => 'Rimuovi i files contrassegnati',
|
||||||
'remove_review_log' => '',
|
'remove_review_log' => '',
|
||||||
|
'remove_task' => '',
|
||||||
'repaired' => 'riparato',
|
'repaired' => 'riparato',
|
||||||
'repairing_objects' => 'Riparazione documenti e cartelle in corso...',
|
'repairing_objects' => 'Riparazione documenti e cartelle in corso...',
|
||||||
'replace_content_email_body' => '',
|
'replace_content_email_body' => '',
|
||||||
|
@ -1399,6 +1403,8 @@ Name: [username]
|
||||||
'seq_end' => 'Alla fine',
|
'seq_end' => 'Alla fine',
|
||||||
'seq_keep' => 'Mantieni la posizione',
|
'seq_keep' => 'Mantieni la posizione',
|
||||||
'seq_start' => 'Prima posizione',
|
'seq_start' => 'Prima posizione',
|
||||||
|
'service_has_filter' => '',
|
||||||
|
'service_name' => '',
|
||||||
'sessions' => 'Utenti online',
|
'sessions' => 'Utenti online',
|
||||||
'setDateFromFile' => 'Prende la data dal file importato',
|
'setDateFromFile' => 'Prende la data dal file importato',
|
||||||
'setDateFromFolder' => 'Prende la data dalla cartella importata',
|
'setDateFromFolder' => 'Prende la data dalla cartella importata',
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
// along with this program; if not, write to the Free Software
|
// along with this program; if not, write to the Free Software
|
||||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
//
|
//
|
||||||
// Translators: Admin (945), daivoc (421), fofwisdom (166)
|
// Translators: Admin (951), daivoc (421), fofwisdom (166)
|
||||||
|
|
||||||
$text = array(
|
$text = array(
|
||||||
'2_factor_auth' => '이중 인증',
|
'2_factor_auth' => '이중 인증',
|
||||||
|
@ -375,7 +375,7 @@ URL: [url]',
|
||||||
'documentcontent' => '',
|
'documentcontent' => '',
|
||||||
'documents' => '문서',
|
'documents' => '문서',
|
||||||
'documents_checked_out_by_you' => '당신으로 부터 문서가 체크아웃 되었습니다.',
|
'documents_checked_out_by_you' => '당신으로 부터 문서가 체크아웃 되었습니다.',
|
||||||
'documents_expired' => '',
|
'documents_expired' => '만료된 문서들',
|
||||||
'documents_in_process' => '진행중인 문서',
|
'documents_in_process' => '진행중인 문서',
|
||||||
'documents_locked' => '잠긴 문서',
|
'documents_locked' => '잠긴 문서',
|
||||||
'documents_locked_by_you' => '당신에 의해 잠긴 문서',
|
'documents_locked_by_you' => '당신에 의해 잠긴 문서',
|
||||||
|
@ -570,6 +570,8 @@ URL: [url]',
|
||||||
'error_remove_document' => '',
|
'error_remove_document' => '',
|
||||||
'error_remove_folder' => '',
|
'error_remove_folder' => '',
|
||||||
'error_remove_permission' => '',
|
'error_remove_permission' => '',
|
||||||
|
'error_rm_user_processes' => '',
|
||||||
|
'error_rm_user_processes_no_docs' => '',
|
||||||
'error_rm_workflow' => '',
|
'error_rm_workflow' => '',
|
||||||
'error_rm_workflow_action' => '',
|
'error_rm_workflow_action' => '',
|
||||||
'error_rm_workflow_state' => '',
|
'error_rm_workflow_state' => '',
|
||||||
|
@ -722,7 +724,7 @@ URL: [url]',
|
||||||
'hu_HU' => '헝가리어',
|
'hu_HU' => '헝가리어',
|
||||||
'id' => 'ID',
|
'id' => 'ID',
|
||||||
'identical_version' => '새 버전은 최신 버전으로 동일하다.',
|
'identical_version' => '새 버전은 최신 버전으로 동일하다.',
|
||||||
'id_ID' => '',
|
'id_ID' => '인도네시아어',
|
||||||
'import' => '가져오기',
|
'import' => '가져오기',
|
||||||
'importfs' => '파일시스템으로부터 가져오기',
|
'importfs' => '파일시스템으로부터 가져오기',
|
||||||
'import_extension' => '',
|
'import_extension' => '',
|
||||||
|
@ -836,6 +838,7 @@ URL: [url]',
|
||||||
'list_access_rights' => '모든 접근 권한 나열',
|
'list_access_rights' => '모든 접근 권한 나열',
|
||||||
'list_contains_no_access_docs' => '',
|
'list_contains_no_access_docs' => '',
|
||||||
'list_hooks' => '',
|
'list_hooks' => '',
|
||||||
|
'list_notification_services' => '',
|
||||||
'list_tasks' => '',
|
'list_tasks' => '',
|
||||||
'local_file' => '로컬 파일',
|
'local_file' => '로컬 파일',
|
||||||
'locked_by' => '잠근이',
|
'locked_by' => '잠근이',
|
||||||
|
@ -854,7 +857,7 @@ URL: [url]',
|
||||||
'login_restrictions_apply' => '',
|
'login_restrictions_apply' => '',
|
||||||
'logout' => '로그 아웃',
|
'logout' => '로그 아웃',
|
||||||
'log_management' => '파일 관리 로그',
|
'log_management' => '파일 관리 로그',
|
||||||
'lo_LA' => '',
|
'lo_LA' => '라오스어',
|
||||||
'malformed_expiration_date' => '',
|
'malformed_expiration_date' => '',
|
||||||
'manager' => '관리자',
|
'manager' => '관리자',
|
||||||
'manager_of_group' => '당신은 이 그룹의 관리자 입니다.',
|
'manager_of_group' => '당신은 이 그룹의 관리자 입니다.',
|
||||||
|
@ -903,7 +906,7 @@ URL: [url]',
|
||||||
'nav_brand_my_documents' => '',
|
'nav_brand_my_documents' => '',
|
||||||
'nav_brand_view_document' => '',
|
'nav_brand_view_document' => '',
|
||||||
'nav_brand_view_folder' => '',
|
'nav_brand_view_folder' => '',
|
||||||
'nb_NO' => '',
|
'nb_NO' => '노르웨이어',
|
||||||
'needs_correction' => '',
|
'needs_correction' => '',
|
||||||
'needs_workflow_action' => '이 문서는 당신의주의가 필요합니다. 워크플로우 탭을 확인하시기 바랍니다.',
|
'needs_workflow_action' => '이 문서는 당신의주의가 필요합니다. 워크플로우 탭을 확인하시기 바랍니다.',
|
||||||
'network_drive' => '네트워크 드라이브',
|
'network_drive' => '네트워크 드라이브',
|
||||||
|
@ -1104,7 +1107,7 @@ URL : [url]',
|
||||||
'receipt_submit_email_subject' => '',
|
'receipt_submit_email_subject' => '',
|
||||||
'receipt_summary' => '접수증 요약',
|
'receipt_summary' => '접수증 요약',
|
||||||
'receipt_update_failed' => '',
|
'receipt_update_failed' => '',
|
||||||
'recent_uploads' => '',
|
'recent_uploads' => '최근 업로드들',
|
||||||
'reception' => '',
|
'reception' => '',
|
||||||
'reception_acknowleged' => '',
|
'reception_acknowleged' => '',
|
||||||
'reception_noaction' => '',
|
'reception_noaction' => '',
|
||||||
|
@ -1140,6 +1143,7 @@ URL: [url]',
|
||||||
'remove_approval_log' => '',
|
'remove_approval_log' => '',
|
||||||
'remove_marked_files' => '마크 파일을 제거',
|
'remove_marked_files' => '마크 파일을 제거',
|
||||||
'remove_review_log' => '',
|
'remove_review_log' => '',
|
||||||
|
'remove_task' => '',
|
||||||
'repaired' => '복구',
|
'repaired' => '복구',
|
||||||
'repairing_objects' => '문서 및 폴더 복구',
|
'repairing_objects' => '문서 및 폴더 복구',
|
||||||
'replace_content_email_body' => '',
|
'replace_content_email_body' => '',
|
||||||
|
@ -1366,6 +1370,8 @@ URL : [url]',
|
||||||
'seq_end' => '마지막 위치',
|
'seq_end' => '마지막 위치',
|
||||||
'seq_keep' => '위치 유지',
|
'seq_keep' => '위치 유지',
|
||||||
'seq_start' => '첫 번째 위치',
|
'seq_start' => '첫 번째 위치',
|
||||||
|
'service_has_filter' => '',
|
||||||
|
'service_name' => '',
|
||||||
'sessions' => '',
|
'sessions' => '',
|
||||||
'setDateFromFile' => '',
|
'setDateFromFile' => '',
|
||||||
'setDateFromFolder' => '',
|
'setDateFromFolder' => '',
|
||||||
|
@ -2094,7 +2100,7 @@ URL : [url]',
|
||||||
'version_deleted_email_subject' => '[sitename] : [name] - 버전 삭제',
|
'version_deleted_email_subject' => '[sitename] : [name] - 버전 삭제',
|
||||||
'version_info' => '버전 정보',
|
'version_info' => '버전 정보',
|
||||||
'view' => '보기',
|
'view' => '보기',
|
||||||
'view_document' => '',
|
'view_document' => '문서 자세히 보기',
|
||||||
'view_folder' => '',
|
'view_folder' => '',
|
||||||
'view_online' => '온라인으로 보기',
|
'view_online' => '온라인으로 보기',
|
||||||
'warning' => '경고',
|
'warning' => '경고',
|
||||||
|
|
|
@ -567,6 +567,8 @@ URL: [url]',
|
||||||
'error_remove_document' => 'ເກີດຂໍ້ຜິດພາດຂະນະລົບເອກະສານ',
|
'error_remove_document' => 'ເກີດຂໍ້ຜິດພາດຂະນະລົບເອກະສານ',
|
||||||
'error_remove_folder' => 'ເກີດຂໍ້ຜິດພາດຂະນະລົບໂຟລເດີ',
|
'error_remove_folder' => 'ເກີດຂໍ້ຜິດພາດຂະນະລົບໂຟລເດີ',
|
||||||
'error_remove_permission' => 'ເກີດຂໍ້ຜິດພາດໃນຂະນະລົບສິດ',
|
'error_remove_permission' => 'ເກີດຂໍ້ຜິດພາດໃນຂະນະລົບສິດ',
|
||||||
|
'error_rm_user_processes' => '',
|
||||||
|
'error_rm_user_processes_no_docs' => '',
|
||||||
'error_rm_workflow' => '',
|
'error_rm_workflow' => '',
|
||||||
'error_rm_workflow_action' => '',
|
'error_rm_workflow_action' => '',
|
||||||
'error_rm_workflow_state' => '',
|
'error_rm_workflow_state' => '',
|
||||||
|
@ -833,6 +835,7 @@ URL: [url]',
|
||||||
'list_access_rights' => 'ສະແດງສິດທິການເຂົ້າເຖິງທັງໝົດ ...',
|
'list_access_rights' => 'ສະແດງສິດທິການເຂົ້າເຖິງທັງໝົດ ...',
|
||||||
'list_contains_no_access_docs' => 'ລິດລາຍການປະກອບດ້ວຍເອກະສານເພີ່ມເຕີມທີ່ເຈົ້າບໍ່ສາມາດເຂົ້າເຖິງໄດ້ ແລະບໍ່ສະແດງ',
|
'list_contains_no_access_docs' => 'ລິດລາຍການປະກອບດ້ວຍເອກະສານເພີ່ມເຕີມທີ່ເຈົ້າບໍ່ສາມາດເຂົ້າເຖິງໄດ້ ແລະບໍ່ສະແດງ',
|
||||||
'list_hooks' => 'ລາບການ hooks',
|
'list_hooks' => 'ລາບການ hooks',
|
||||||
|
'list_notification_services' => '',
|
||||||
'list_tasks' => '',
|
'list_tasks' => '',
|
||||||
'local_file' => 'ໄຟລທ້ອງຖິນ',
|
'local_file' => 'ໄຟລທ້ອງຖິນ',
|
||||||
'locked_by' => 'ຖູກລັອກໂດຍ',
|
'locked_by' => 'ຖູກລັອກໂດຍ',
|
||||||
|
@ -1156,6 +1159,7 @@ URL: [url]',
|
||||||
'remove_approval_log' => '',
|
'remove_approval_log' => '',
|
||||||
'remove_marked_files' => 'ລົບໄຟລທີມີເຄື່ອງໝາຍໄວ້',
|
'remove_marked_files' => 'ລົບໄຟລທີມີເຄື່ອງໝາຍໄວ້',
|
||||||
'remove_review_log' => '',
|
'remove_review_log' => '',
|
||||||
|
'remove_task' => '',
|
||||||
'repaired' => 'ການສ້ອມແປງ',
|
'repaired' => 'ການສ້ອມແປງ',
|
||||||
'repairing_objects' => 'ການສ້ອມແປງເອກະສານແລະໂຟລເດີ',
|
'repairing_objects' => 'ການສ້ອມແປງເອກະສານແລະໂຟລເດີ',
|
||||||
'replace_content_email_body' => '',
|
'replace_content_email_body' => '',
|
||||||
|
@ -1392,6 +1396,8 @@ URL: [url]',
|
||||||
'seq_end' => 'ໃນຕອນທ້າຍ',
|
'seq_end' => 'ໃນຕອນທ້າຍ',
|
||||||
'seq_keep' => 'ເກັບຕຳແໜ່ງໄວ້',
|
'seq_keep' => 'ເກັບຕຳແໜ່ງໄວ້',
|
||||||
'seq_start' => 'ອັນດັບທຳອິດ',
|
'seq_start' => 'ອັນດັບທຳອິດ',
|
||||||
|
'service_has_filter' => '',
|
||||||
|
'service_name' => '',
|
||||||
'sessions' => 'ຜູ້ໄຊ້ອອນລາຍ',
|
'sessions' => 'ຜູ້ໄຊ້ອອນລາຍ',
|
||||||
'setDateFromFile' => '',
|
'setDateFromFile' => '',
|
||||||
'setDateFromFolder' => '',
|
'setDateFromFolder' => '',
|
||||||
|
|
|
@ -581,6 +581,8 @@ URL: [url]',
|
||||||
'error_remove_document' => 'Feil ved sletting av dokument',
|
'error_remove_document' => 'Feil ved sletting av dokument',
|
||||||
'error_remove_folder' => 'Feil ved sletting av katalog',
|
'error_remove_folder' => 'Feil ved sletting av katalog',
|
||||||
'error_remove_permission' => 'Feil ved sletting av tillatelse',
|
'error_remove_permission' => 'Feil ved sletting av tillatelse',
|
||||||
|
'error_rm_user_processes' => '',
|
||||||
|
'error_rm_user_processes_no_docs' => '',
|
||||||
'error_rm_workflow' => 'Feil ved fjerning av arbeidsflyt',
|
'error_rm_workflow' => 'Feil ved fjerning av arbeidsflyt',
|
||||||
'error_rm_workflow_action' => 'Feil ved fjerning av arbeidsflythandling',
|
'error_rm_workflow_action' => 'Feil ved fjerning av arbeidsflythandling',
|
||||||
'error_rm_workflow_state' => 'Feil ved fjerning av arbeidsflyttilstand',
|
'error_rm_workflow_state' => 'Feil ved fjerning av arbeidsflyttilstand',
|
||||||
|
@ -854,6 +856,7 @@ URL: [url]',
|
||||||
'list_access_rights' => 'Liste over alle rettigheter...',
|
'list_access_rights' => 'Liste over alle rettigheter...',
|
||||||
'list_contains_no_access_docs' => 'Listen inneholder flere dokumenter du ikke har tilgang til og ikke vises.',
|
'list_contains_no_access_docs' => 'Listen inneholder flere dokumenter du ikke har tilgang til og ikke vises.',
|
||||||
'list_hooks' => 'Liste hooks',
|
'list_hooks' => 'Liste hooks',
|
||||||
|
'list_notification_services' => '',
|
||||||
'list_tasks' => 'Liste oppgaver',
|
'list_tasks' => 'Liste oppgaver',
|
||||||
'local_file' => 'Lokal fil',
|
'local_file' => 'Lokal fil',
|
||||||
'locked_by' => 'Låst av',
|
'locked_by' => 'Låst av',
|
||||||
|
@ -1171,6 +1174,7 @@ URL: [url]',
|
||||||
'remove_approval_log' => '',
|
'remove_approval_log' => '',
|
||||||
'remove_marked_files' => 'Fjern markerte filer',
|
'remove_marked_files' => 'Fjern markerte filer',
|
||||||
'remove_review_log' => '',
|
'remove_review_log' => '',
|
||||||
|
'remove_task' => '',
|
||||||
'repaired' => 'reparert',
|
'repaired' => 'reparert',
|
||||||
'repairing_objects' => 'Reparere dokumenter og mapper.',
|
'repairing_objects' => 'Reparere dokumenter og mapper.',
|
||||||
'replace_content_email_body' => '',
|
'replace_content_email_body' => '',
|
||||||
|
@ -1405,6 +1409,8 @@ Bruker: [username]
|
||||||
'seq_end' => 'På slutten',
|
'seq_end' => 'På slutten',
|
||||||
'seq_keep' => 'Hold posisjon',
|
'seq_keep' => 'Hold posisjon',
|
||||||
'seq_start' => 'Første possisjon',
|
'seq_start' => 'Første possisjon',
|
||||||
|
'service_has_filter' => '',
|
||||||
|
'service_name' => '',
|
||||||
'sessions' => 'Brukere innlogget',
|
'sessions' => 'Brukere innlogget',
|
||||||
'setDateFromFile' => 'Overta dato fra importert fil',
|
'setDateFromFile' => 'Overta dato fra importert fil',
|
||||||
'setDateFromFolder' => 'Overta dato fra importert mappe',
|
'setDateFromFolder' => 'Overta dato fra importert mappe',
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
// along with this program; if not, write to the Free Software
|
// along with this program; if not, write to the Free Software
|
||||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
//
|
//
|
||||||
// Translators: Admin (1169), gijsbertush (673), pepijn (45), reinoutdijkstra@hotmail.com (270)
|
// Translators: Admin (1176), gijsbertush (673), pepijn (45), reinoutdijkstra@hotmail.com (270)
|
||||||
|
|
||||||
$text = array(
|
$text = array(
|
||||||
'2_factor_auth' => '2-factor-authenticatie',
|
'2_factor_auth' => '2-factor-authenticatie',
|
||||||
|
@ -574,6 +574,8 @@ URL: [url]',
|
||||||
'error_remove_document' => 'Fout bij het verwijderen van document',
|
'error_remove_document' => 'Fout bij het verwijderen van document',
|
||||||
'error_remove_folder' => 'Fout bij het verwijderen van map',
|
'error_remove_folder' => 'Fout bij het verwijderen van map',
|
||||||
'error_remove_permission' => 'Verwijder permissie',
|
'error_remove_permission' => 'Verwijder permissie',
|
||||||
|
'error_rm_user_processes' => '',
|
||||||
|
'error_rm_user_processes_no_docs' => '',
|
||||||
'error_rm_workflow' => 'Fout bij het verwijderen van de workflow',
|
'error_rm_workflow' => 'Fout bij het verwijderen van de workflow',
|
||||||
'error_rm_workflow_action' => 'Fout bij het verwijderen van een handeling uit de workflow',
|
'error_rm_workflow_action' => 'Fout bij het verwijderen van een handeling uit de workflow',
|
||||||
'error_rm_workflow_state' => 'Fout bij het verwijderen van de workflow-status',
|
'error_rm_workflow_state' => 'Fout bij het verwijderen van de workflow-status',
|
||||||
|
@ -847,6 +849,7 @@ URL: [url]',
|
||||||
'list_access_rights' => 'Toegangsrechten',
|
'list_access_rights' => 'Toegangsrechten',
|
||||||
'list_contains_no_access_docs' => 'Geen toegankelijke documenten',
|
'list_contains_no_access_docs' => 'Geen toegankelijke documenten',
|
||||||
'list_hooks' => 'Hooks',
|
'list_hooks' => 'Hooks',
|
||||||
|
'list_notification_services' => '',
|
||||||
'list_tasks' => 'Taken',
|
'list_tasks' => 'Taken',
|
||||||
'local_file' => 'Lokaal bestand',
|
'local_file' => 'Lokaal bestand',
|
||||||
'locked_by' => 'In gebruik door',
|
'locked_by' => 'In gebruik door',
|
||||||
|
@ -1169,6 +1172,7 @@ URL: [url]',
|
||||||
'remove_approval_log' => '',
|
'remove_approval_log' => '',
|
||||||
'remove_marked_files' => 'Geselecteerde bestanden worden verwijderd',
|
'remove_marked_files' => 'Geselecteerde bestanden worden verwijderd',
|
||||||
'remove_review_log' => '',
|
'remove_review_log' => '',
|
||||||
|
'remove_task' => '',
|
||||||
'repaired' => 'Gerepareerd',
|
'repaired' => 'Gerepareerd',
|
||||||
'repairing_objects' => 'Documenten en mappen repareren.',
|
'repairing_objects' => 'Documenten en mappen repareren.',
|
||||||
'replace_content_email_body' => '',
|
'replace_content_email_body' => '',
|
||||||
|
@ -1404,6 +1408,8 @@ Name: [username]
|
||||||
'seq_end' => 'Op het einde',
|
'seq_end' => 'Op het einde',
|
||||||
'seq_keep' => 'Behoud Positie',
|
'seq_keep' => 'Behoud Positie',
|
||||||
'seq_start' => 'Eerste positie',
|
'seq_start' => 'Eerste positie',
|
||||||
|
'service_has_filter' => '',
|
||||||
|
'service_name' => '',
|
||||||
'sessions' => 'sessies',
|
'sessions' => 'sessies',
|
||||||
'setDateFromFile' => 'Gebruik de datum van de geïmporteerde file',
|
'setDateFromFile' => 'Gebruik de datum van de geïmporteerde file',
|
||||||
'setDateFromFolder' => 'Gebruik de datum van de geïmporteerde map',
|
'setDateFromFolder' => 'Gebruik de datum van de geïmporteerde map',
|
||||||
|
@ -1462,8 +1468,8 @@ Name: [username]
|
||||||
'settings_Database' => 'Database instellingen',
|
'settings_Database' => 'Database instellingen',
|
||||||
'settings_dateformat' => 'Datum formaat',
|
'settings_dateformat' => 'Datum formaat',
|
||||||
'settings_dateformat_desc' => '',
|
'settings_dateformat_desc' => '',
|
||||||
'settings_datetimeformat' => '',
|
'settings_datetimeformat' => 'Datum/Tijd formaat',
|
||||||
'settings_datetimeformat_desc' => '',
|
'settings_datetimeformat_desc' => 'Dit datum formaat gebruikt de syntax van de php\'s date() functie',
|
||||||
'settings_dbDatabase' => 'Database',
|
'settings_dbDatabase' => 'Database',
|
||||||
'settings_dbDatabase_desc' => 'De naam van de database ingevoerd tijdens het installatie proces. Verander de waarde niet tenzij noodzakelijk, als bijvoorbeeld de database is verplaatst.',
|
'settings_dbDatabase_desc' => 'De naam van de database ingevoerd tijdens het installatie proces. Verander de waarde niet tenzij noodzakelijk, als bijvoorbeeld de database is verplaatst.',
|
||||||
'settings_dbDriver' => 'Database Type',
|
'settings_dbDriver' => 'Database Type',
|
||||||
|
@ -1481,7 +1487,7 @@ Name: [username]
|
||||||
'settings_defaultDocPosition_desc' => 'Dit is de standaardplaats binnen een map waar een document wordt gecreëerd.',
|
'settings_defaultDocPosition_desc' => 'Dit is de standaardplaats binnen een map waar een document wordt gecreëerd.',
|
||||||
'settings_defaultDocPosition_val_end' => 'aan het einde',
|
'settings_defaultDocPosition_val_end' => 'aan het einde',
|
||||||
'settings_defaultDocPosition_val_start' => 'aan het begin',
|
'settings_defaultDocPosition_val_start' => 'aan het begin',
|
||||||
'settings_defaultFolderPosition' => '',
|
'settings_defaultFolderPosition' => 'Positie van de map als deze aangemaakt wordt',
|
||||||
'settings_defaultFolderPosition_desc' => '',
|
'settings_defaultFolderPosition_desc' => '',
|
||||||
'settings_defaultSearchMethod' => 'Standaard zoekmethode',
|
'settings_defaultSearchMethod' => 'Standaard zoekmethode',
|
||||||
'settings_defaultSearchMethod_desc' => 'Default zoekmethode = op documentnaam / fulltext-search',
|
'settings_defaultSearchMethod_desc' => 'Default zoekmethode = op documentnaam / fulltext-search',
|
||||||
|
@ -1525,7 +1531,7 @@ Name: [username]
|
||||||
'settings_enableDuplicateSubFolderNames_desc' => 'Staat het toe om mapnamen te dupliceren in een map.',
|
'settings_enableDuplicateSubFolderNames_desc' => 'Staat het toe om mapnamen te dupliceren in een map.',
|
||||||
'settings_enableEmail' => 'E-mail inschakelen',
|
'settings_enableEmail' => 'E-mail inschakelen',
|
||||||
'settings_enableEmail_desc' => 'Inschakelen/uitschakelen automatische email notificatie',
|
'settings_enableEmail_desc' => 'Inschakelen/uitschakelen automatische email notificatie',
|
||||||
'settings_enableExtensionDownload' => '',
|
'settings_enableExtensionDownload' => 'Toestaan van het downloaden van extensies',
|
||||||
'settings_enableExtensionDownload_desc' => '',
|
'settings_enableExtensionDownload_desc' => '',
|
||||||
'settings_enableExtensionImport' => '',
|
'settings_enableExtensionImport' => '',
|
||||||
'settings_enableExtensionImportFromRepository' => '',
|
'settings_enableExtensionImportFromRepository' => '',
|
||||||
|
@ -1609,7 +1615,7 @@ Name: [username]
|
||||||
'settings_expandFolderTree_val0' => 'begin met verborgen structuur',
|
'settings_expandFolderTree_val0' => 'begin met verborgen structuur',
|
||||||
'settings_expandFolderTree_val1' => 'begin met structuur eerste niveau uitgevouwen',
|
'settings_expandFolderTree_val1' => 'begin met structuur eerste niveau uitgevouwen',
|
||||||
'settings_expandFolderTree_val2' => 'begin met structuur volledig uitgevouwen',
|
'settings_expandFolderTree_val2' => 'begin met structuur volledig uitgevouwen',
|
||||||
'settings_ExtensionMgr' => '',
|
'settings_ExtensionMgr' => 'Extensie manager instellingen',
|
||||||
'settings_Extensions' => 'Uitbreidingen',
|
'settings_Extensions' => 'Uitbreidingen',
|
||||||
'settings_extraPath' => 'Extra PHP include Path',
|
'settings_extraPath' => 'Extra PHP include Path',
|
||||||
'settings_extraPath_desc' => 'Pad naar extra software. Dit pad bevat bv. het adodb pad of de extra pear packages.',
|
'settings_extraPath_desc' => 'Pad naar extra software. Dit pad bevat bv. het adodb pad of de extra pear packages.',
|
||||||
|
@ -1673,7 +1679,7 @@ Name: [username]
|
||||||
'settings_more_settings' => 'Meer instellingen. Standaardlogin: admin/admin',
|
'settings_more_settings' => 'Meer instellingen. Standaardlogin: admin/admin',
|
||||||
'settings_noDocumentFormFields' => 'Deze velden niet tonen',
|
'settings_noDocumentFormFields' => 'Deze velden niet tonen',
|
||||||
'settings_noDocumentFormFields_desc' => 'Deze velden niet laten zien bij toevoegen of bewerken van een document. Bestaande waardes worden bewaard.',
|
'settings_noDocumentFormFields_desc' => 'Deze velden niet laten zien bij toevoegen of bewerken van een document. Bestaande waardes worden bewaard.',
|
||||||
'settings_noFolderFormFields' => '',
|
'settings_noFolderFormFields' => 'Deze velden niet tonen (map)',
|
||||||
'settings_noFolderFormFields_desc' => '',
|
'settings_noFolderFormFields_desc' => '',
|
||||||
'settings_notfound' => 'nietgevonden',
|
'settings_notfound' => 'nietgevonden',
|
||||||
'settings_Notification' => 'Notificatie-instellingen',
|
'settings_Notification' => 'Notificatie-instellingen',
|
||||||
|
|
|
@ -557,6 +557,8 @@ URL: [url]',
|
||||||
'error_remove_document' => 'Błąd podczas usuwania dokumentu',
|
'error_remove_document' => 'Błąd podczas usuwania dokumentu',
|
||||||
'error_remove_folder' => 'Błąd podczas usuwania folderu',
|
'error_remove_folder' => 'Błąd podczas usuwania folderu',
|
||||||
'error_remove_permission' => 'Błąd podczas usuwania uprawnienia',
|
'error_remove_permission' => 'Błąd podczas usuwania uprawnienia',
|
||||||
|
'error_rm_user_processes' => '',
|
||||||
|
'error_rm_user_processes_no_docs' => '',
|
||||||
'error_rm_workflow' => 'Błąd podczas usuwania przepływu pracy',
|
'error_rm_workflow' => 'Błąd podczas usuwania przepływu pracy',
|
||||||
'error_rm_workflow_action' => 'Błąd podczas usuwania akcji przepływu pracy',
|
'error_rm_workflow_action' => 'Błąd podczas usuwania akcji przepływu pracy',
|
||||||
'error_rm_workflow_state' => 'Błąd podczas usuwania stanu przepływu pracy',
|
'error_rm_workflow_state' => 'Błąd podczas usuwania stanu przepływu pracy',
|
||||||
|
@ -823,6 +825,7 @@ URL: [url]',
|
||||||
'list_access_rights' => 'Pokaż uprawnienia dostępu',
|
'list_access_rights' => 'Pokaż uprawnienia dostępu',
|
||||||
'list_contains_no_access_docs' => 'Lista zawiera więcej dokumentów, do których nie masz dostępu i nie są wyświetlane.',
|
'list_contains_no_access_docs' => 'Lista zawiera więcej dokumentów, do których nie masz dostępu i nie są wyświetlane.',
|
||||||
'list_hooks' => 'Lista błędów',
|
'list_hooks' => 'Lista błędów',
|
||||||
|
'list_notification_services' => '',
|
||||||
'list_tasks' => 'Lista zadań',
|
'list_tasks' => 'Lista zadań',
|
||||||
'local_file' => 'Lokalny plik',
|
'local_file' => 'Lokalny plik',
|
||||||
'locked_by' => 'Zablokowane przez',
|
'locked_by' => 'Zablokowane przez',
|
||||||
|
@ -1135,6 +1138,7 @@ URL: [url]',
|
||||||
'remove_approval_log' => '',
|
'remove_approval_log' => '',
|
||||||
'remove_marked_files' => 'Usuń zaznaczone pliki',
|
'remove_marked_files' => 'Usuń zaznaczone pliki',
|
||||||
'remove_review_log' => '',
|
'remove_review_log' => '',
|
||||||
|
'remove_task' => '',
|
||||||
'repaired' => 'naprawiony',
|
'repaired' => 'naprawiony',
|
||||||
'repairing_objects' => 'Naprawa dokumentów i katalogów.',
|
'repairing_objects' => 'Naprawa dokumentów i katalogów.',
|
||||||
'replace_content_email_body' => '',
|
'replace_content_email_body' => '',
|
||||||
|
@ -1335,6 +1339,8 @@ Name: [username]
|
||||||
'seq_end' => 'Na końcu',
|
'seq_end' => 'Na końcu',
|
||||||
'seq_keep' => 'Na tej samej pozycji',
|
'seq_keep' => 'Na tej samej pozycji',
|
||||||
'seq_start' => 'Na początku',
|
'seq_start' => 'Na początku',
|
||||||
|
'service_has_filter' => '',
|
||||||
|
'service_name' => '',
|
||||||
'sessions' => 'Sesja',
|
'sessions' => 'Sesja',
|
||||||
'setDateFromFile' => 'Przejmij datę z importowanego pliku',
|
'setDateFromFile' => 'Przejmij datę z importowanego pliku',
|
||||||
'setDateFromFolder' => 'Przejmij datę z importowanego folderu',
|
'setDateFromFolder' => 'Przejmij datę z importowanego folderu',
|
||||||
|
|
|
@ -581,6 +581,8 @@ URL: [url]',
|
||||||
'error_remove_document' => 'Erro ao excluir o documento',
|
'error_remove_document' => 'Erro ao excluir o documento',
|
||||||
'error_remove_folder' => 'Erro na exclusão da pasta',
|
'error_remove_folder' => 'Erro na exclusão da pasta',
|
||||||
'error_remove_permission' => 'Erro ao remover permissão',
|
'error_remove_permission' => 'Erro ao remover permissão',
|
||||||
|
'error_rm_user_processes' => '',
|
||||||
|
'error_rm_user_processes_no_docs' => '',
|
||||||
'error_rm_workflow' => 'Erro ao remover o fluxo de trabalho',
|
'error_rm_workflow' => 'Erro ao remover o fluxo de trabalho',
|
||||||
'error_rm_workflow_action' => 'Erro ao remover a ação do fluxo de trabalho',
|
'error_rm_workflow_action' => 'Erro ao remover a ação do fluxo de trabalho',
|
||||||
'error_rm_workflow_state' => 'Erro ao remover o estado do fluxo de trabalho',
|
'error_rm_workflow_state' => 'Erro ao remover o estado do fluxo de trabalho',
|
||||||
|
@ -854,6 +856,7 @@ URL: [url]',
|
||||||
'list_access_rights' => 'Listar todos os direitos de acesso...',
|
'list_access_rights' => 'Listar todos os direitos de acesso...',
|
||||||
'list_contains_no_access_docs' => 'A lista contém mais documentos aos quais você não tem acesso e não são exibidos.',
|
'list_contains_no_access_docs' => 'A lista contém mais documentos aos quais você não tem acesso e não são exibidos.',
|
||||||
'list_hooks' => 'Listar ganchos',
|
'list_hooks' => 'Listar ganchos',
|
||||||
|
'list_notification_services' => '',
|
||||||
'list_tasks' => 'Listar tarefas',
|
'list_tasks' => 'Listar tarefas',
|
||||||
'local_file' => 'Arquivo local',
|
'local_file' => 'Arquivo local',
|
||||||
'locked_by' => 'Bloqueado por',
|
'locked_by' => 'Bloqueado por',
|
||||||
|
@ -1176,6 +1179,7 @@ URL: [url]',
|
||||||
'remove_approval_log' => '',
|
'remove_approval_log' => '',
|
||||||
'remove_marked_files' => 'Remover arquivos marcados',
|
'remove_marked_files' => 'Remover arquivos marcados',
|
||||||
'remove_review_log' => '',
|
'remove_review_log' => '',
|
||||||
|
'remove_task' => '',
|
||||||
'repaired' => 'reparado',
|
'repaired' => 'reparado',
|
||||||
'repairing_objects' => 'Reparando documentos e pastas',
|
'repairing_objects' => 'Reparando documentos e pastas',
|
||||||
'replace_content_email_body' => '',
|
'replace_content_email_body' => '',
|
||||||
|
@ -1411,6 +1415,8 @@ Nome: [username]
|
||||||
'seq_end' => 'No final',
|
'seq_end' => 'No final',
|
||||||
'seq_keep' => 'Manter posição',
|
'seq_keep' => 'Manter posição',
|
||||||
'seq_start' => 'Primeira posição',
|
'seq_start' => 'Primeira posição',
|
||||||
|
'service_has_filter' => '',
|
||||||
|
'service_name' => '',
|
||||||
'sessions' => 'Online',
|
'sessions' => 'Online',
|
||||||
'setDateFromFile' => 'Assumir a data do arquivo importado',
|
'setDateFromFile' => 'Assumir a data do arquivo importado',
|
||||||
'setDateFromFolder' => 'Assumir a data da pasta importada',
|
'setDateFromFolder' => 'Assumir a data da pasta importada',
|
||||||
|
|
|
@ -569,6 +569,8 @@ URL: [url]',
|
||||||
'error_remove_document' => '',
|
'error_remove_document' => '',
|
||||||
'error_remove_folder' => '',
|
'error_remove_folder' => '',
|
||||||
'error_remove_permission' => '',
|
'error_remove_permission' => '',
|
||||||
|
'error_rm_user_processes' => '',
|
||||||
|
'error_rm_user_processes_no_docs' => '',
|
||||||
'error_rm_workflow' => '',
|
'error_rm_workflow' => '',
|
||||||
'error_rm_workflow_action' => '',
|
'error_rm_workflow_action' => '',
|
||||||
'error_rm_workflow_state' => '',
|
'error_rm_workflow_state' => '',
|
||||||
|
@ -835,6 +837,7 @@ URL: [url]',
|
||||||
'list_access_rights' => 'Listeaza toate drepturile de acces',
|
'list_access_rights' => 'Listeaza toate drepturile de acces',
|
||||||
'list_contains_no_access_docs' => '',
|
'list_contains_no_access_docs' => '',
|
||||||
'list_hooks' => '',
|
'list_hooks' => '',
|
||||||
|
'list_notification_services' => '',
|
||||||
'list_tasks' => '',
|
'list_tasks' => '',
|
||||||
'local_file' => 'Fișier local',
|
'local_file' => 'Fișier local',
|
||||||
'locked_by' => 'Blocat de',
|
'locked_by' => 'Blocat de',
|
||||||
|
@ -1147,6 +1150,7 @@ URL: [url]',
|
||||||
'remove_approval_log' => '',
|
'remove_approval_log' => '',
|
||||||
'remove_marked_files' => 'Eliminați fișierele marcate',
|
'remove_marked_files' => 'Eliminați fișierele marcate',
|
||||||
'remove_review_log' => '',
|
'remove_review_log' => '',
|
||||||
|
'remove_task' => '',
|
||||||
'repaired' => 'reparat',
|
'repaired' => 'reparat',
|
||||||
'repairing_objects' => 'Reparare documente și foldere.',
|
'repairing_objects' => 'Reparare documente și foldere.',
|
||||||
'replace_content_email_body' => '',
|
'replace_content_email_body' => '',
|
||||||
|
@ -1373,6 +1377,8 @@ URL: [url]',
|
||||||
'seq_end' => 'La sfârșit',
|
'seq_end' => 'La sfârșit',
|
||||||
'seq_keep' => 'Păstrați poziția',
|
'seq_keep' => 'Păstrați poziția',
|
||||||
'seq_start' => 'Prima poziție',
|
'seq_start' => 'Prima poziție',
|
||||||
|
'service_has_filter' => '',
|
||||||
|
'service_name' => '',
|
||||||
'sessions' => '',
|
'sessions' => '',
|
||||||
'setDateFromFile' => '',
|
'setDateFromFile' => '',
|
||||||
'setDateFromFolder' => '',
|
'setDateFromFolder' => '',
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
// along with this program; if not, write to the Free Software
|
// along with this program; if not, write to the Free Software
|
||||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
//
|
//
|
||||||
// Translators: Admin (1718)
|
// Translators: Admin (1721)
|
||||||
|
|
||||||
$text = array(
|
$text = array(
|
||||||
'2_factor_auth' => 'Двухфакторная аутентификация',
|
'2_factor_auth' => 'Двухфакторная аутентификация',
|
||||||
|
@ -273,7 +273,7 @@ URL: [url]',
|
||||||
'chart_docspermonth_title' => 'Новые документы за месяц',
|
'chart_docspermonth_title' => 'Новые документы за месяц',
|
||||||
'chart_docsperstatus_title' => 'Документы по статусу',
|
'chart_docsperstatus_title' => 'Документы по статусу',
|
||||||
'chart_docsperuser_title' => 'Документы на пользователя',
|
'chart_docsperuser_title' => 'Документы на пользователя',
|
||||||
'chart_foldersperuser_title' => '',
|
'chart_foldersperuser_title' => 'Каталоги по пользователям',
|
||||||
'chart_selection' => 'Выбор графика',
|
'chart_selection' => 'Выбор графика',
|
||||||
'chart_sizeperuser_title' => 'Занятое дисковое пространство по пользователям',
|
'chart_sizeperuser_title' => 'Занятое дисковое пространство по пользователям',
|
||||||
'checkedout_file_has_different_version' => 'Полученная версия не совпадает с текущей версией. Загрузка не обновит документ',
|
'checkedout_file_has_different_version' => 'Полученная версия не совпадает с текущей версией. Загрузка не обновит документ',
|
||||||
|
@ -569,6 +569,8 @@ URL: [url]',
|
||||||
'error_remove_document' => '',
|
'error_remove_document' => '',
|
||||||
'error_remove_folder' => '',
|
'error_remove_folder' => '',
|
||||||
'error_remove_permission' => 'Ошибка снятия разрешения',
|
'error_remove_permission' => 'Ошибка снятия разрешения',
|
||||||
|
'error_rm_user_processes' => '',
|
||||||
|
'error_rm_user_processes_no_docs' => '',
|
||||||
'error_rm_workflow' => '',
|
'error_rm_workflow' => '',
|
||||||
'error_rm_workflow_action' => '',
|
'error_rm_workflow_action' => '',
|
||||||
'error_rm_workflow_state' => '',
|
'error_rm_workflow_state' => '',
|
||||||
|
@ -721,7 +723,7 @@ URL: [url]',
|
||||||
'hu_HU' => 'Hungarian',
|
'hu_HU' => 'Hungarian',
|
||||||
'id' => 'Идентификатор',
|
'id' => 'Идентификатор',
|
||||||
'identical_version' => 'Новая версия идентична текущей.',
|
'identical_version' => 'Новая версия идентична текущей.',
|
||||||
'id_ID' => '',
|
'id_ID' => 'Индонезийский',
|
||||||
'import' => 'Импорт',
|
'import' => 'Импорт',
|
||||||
'importfs' => 'Импорт из файлов',
|
'importfs' => 'Импорт из файлов',
|
||||||
'import_extension' => '',
|
'import_extension' => '',
|
||||||
|
@ -835,6 +837,7 @@ URL: [url]',
|
||||||
'list_access_rights' => 'Показать все права доступа',
|
'list_access_rights' => 'Показать все права доступа',
|
||||||
'list_contains_no_access_docs' => '',
|
'list_contains_no_access_docs' => '',
|
||||||
'list_hooks' => 'Список хуков',
|
'list_hooks' => 'Список хуков',
|
||||||
|
'list_notification_services' => '',
|
||||||
'list_tasks' => '',
|
'list_tasks' => '',
|
||||||
'local_file' => 'Локальный файл',
|
'local_file' => 'Локальный файл',
|
||||||
'locked_by' => 'Заблокирован',
|
'locked_by' => 'Заблокирован',
|
||||||
|
@ -1149,6 +1152,7 @@ URL: [url]',
|
||||||
'remove_approval_log' => '',
|
'remove_approval_log' => '',
|
||||||
'remove_marked_files' => 'Удалить выбранные файлы',
|
'remove_marked_files' => 'Удалить выбранные файлы',
|
||||||
'remove_review_log' => '',
|
'remove_review_log' => '',
|
||||||
|
'remove_task' => '',
|
||||||
'repaired' => 'исправлено',
|
'repaired' => 'исправлено',
|
||||||
'repairing_objects' => 'Восстановление каталогов и документов',
|
'repairing_objects' => 'Восстановление каталогов и документов',
|
||||||
'replace_content_email_body' => '',
|
'replace_content_email_body' => '',
|
||||||
|
@ -1380,6 +1384,8 @@ URL: [url]',
|
||||||
'seq_end' => 'В конце',
|
'seq_end' => 'В конце',
|
||||||
'seq_keep' => 'Не изменять',
|
'seq_keep' => 'Не изменять',
|
||||||
'seq_start' => 'В начале',
|
'seq_start' => 'В начале',
|
||||||
|
'service_has_filter' => '',
|
||||||
|
'service_name' => '',
|
||||||
'sessions' => '',
|
'sessions' => '',
|
||||||
'setDateFromFile' => '',
|
'setDateFromFile' => '',
|
||||||
'setDateFromFolder' => '',
|
'setDateFromFolder' => '',
|
||||||
|
@ -1996,7 +2002,7 @@ URL: [url]',
|
||||||
'to' => 'До',
|
'to' => 'До',
|
||||||
'toggle_manager' => 'Изменить как менеджера',
|
'toggle_manager' => 'Изменить как менеджера',
|
||||||
'toggle_qrcode' => '',
|
'toggle_qrcode' => '',
|
||||||
'total' => '',
|
'total' => 'Всего',
|
||||||
'to_before_from' => 'Конечная дата не может быть меньше начальной даты',
|
'to_before_from' => 'Конечная дата не может быть меньше начальной даты',
|
||||||
'transfer_content' => '',
|
'transfer_content' => '',
|
||||||
'transfer_document' => 'Передать документ',
|
'transfer_document' => 'Передать документ',
|
||||||
|
|
|
@ -581,6 +581,8 @@ URL: [url]',
|
||||||
'error_remove_document' => 'Pri odstraňovaní dokumentu sa vyskytla chyba',
|
'error_remove_document' => 'Pri odstraňovaní dokumentu sa vyskytla chyba',
|
||||||
'error_remove_folder' => 'Pri odstraňovaní zložky sa vyskytla chyba',
|
'error_remove_folder' => 'Pri odstraňovaní zložky sa vyskytla chyba',
|
||||||
'error_remove_permission' => 'Chyba pri odstránení povolenia',
|
'error_remove_permission' => 'Chyba pri odstránení povolenia',
|
||||||
|
'error_rm_user_processes' => '',
|
||||||
|
'error_rm_user_processes_no_docs' => '',
|
||||||
'error_rm_workflow' => 'Nastala chyba pri odstránovaní workflow',
|
'error_rm_workflow' => 'Nastala chyba pri odstránovaní workflow',
|
||||||
'error_rm_workflow_action' => '',
|
'error_rm_workflow_action' => '',
|
||||||
'error_rm_workflow_state' => '',
|
'error_rm_workflow_state' => '',
|
||||||
|
@ -854,6 +856,7 @@ URL: [url]',
|
||||||
'list_access_rights' => 'Zobraziť všetky prístupové práva',
|
'list_access_rights' => 'Zobraziť všetky prístupové práva',
|
||||||
'list_contains_no_access_docs' => 'Zoznam obsahuje viac dokumentov, ku ktorým nemáte prístup a nie sú zobrazené.',
|
'list_contains_no_access_docs' => 'Zoznam obsahuje viac dokumentov, ku ktorým nemáte prístup a nie sú zobrazené.',
|
||||||
'list_hooks' => 'List hooks',
|
'list_hooks' => 'List hooks',
|
||||||
|
'list_notification_services' => '',
|
||||||
'list_tasks' => 'List tasks',
|
'list_tasks' => 'List tasks',
|
||||||
'local_file' => 'Lokálny súbor',
|
'local_file' => 'Lokálny súbor',
|
||||||
'locked_by' => 'Uzamkol',
|
'locked_by' => 'Uzamkol',
|
||||||
|
@ -1177,6 +1180,7 @@ URL: [url]',
|
||||||
'remove_approval_log' => '',
|
'remove_approval_log' => '',
|
||||||
'remove_marked_files' => 'Odstrániť označené súbory',
|
'remove_marked_files' => 'Odstrániť označené súbory',
|
||||||
'remove_review_log' => '',
|
'remove_review_log' => '',
|
||||||
|
'remove_task' => '',
|
||||||
'repaired' => 'opravené',
|
'repaired' => 'opravené',
|
||||||
'repairing_objects' => 'Oprava dokumentov a zložiek.',
|
'repairing_objects' => 'Oprava dokumentov a zložiek.',
|
||||||
'replace_content_email_body' => '',
|
'replace_content_email_body' => '',
|
||||||
|
@ -1413,6 +1417,8 @@ Meno: [username]
|
||||||
'seq_end' => 'Nakoniec',
|
'seq_end' => 'Nakoniec',
|
||||||
'seq_keep' => 'Ponechať pozíciu',
|
'seq_keep' => 'Ponechať pozíciu',
|
||||||
'seq_start' => 'Prvá pozícia',
|
'seq_start' => 'Prvá pozícia',
|
||||||
|
'service_has_filter' => '',
|
||||||
|
'service_name' => '',
|
||||||
'sessions' => 'Používatelia online',
|
'sessions' => 'Používatelia online',
|
||||||
'setDateFromFile' => 'Prebrať dátumy z importovaných súborov',
|
'setDateFromFile' => 'Prebrať dátumy z importovaných súborov',
|
||||||
'setDateFromFolder' => 'Prebrať dátumy z importovaných zložiek',
|
'setDateFromFolder' => 'Prebrať dátumy z importovaných zložiek',
|
||||||
|
|
|
@ -575,6 +575,8 @@ URL: [url]',
|
||||||
'error_remove_document' => 'Fel vid radering av dokument',
|
'error_remove_document' => 'Fel vid radering av dokument',
|
||||||
'error_remove_folder' => 'Fel vid radering av katalog',
|
'error_remove_folder' => 'Fel vid radering av katalog',
|
||||||
'error_remove_permission' => 'Fel vid borttagen behörighet',
|
'error_remove_permission' => 'Fel vid borttagen behörighet',
|
||||||
|
'error_rm_user_processes' => '',
|
||||||
|
'error_rm_user_processes_no_docs' => '',
|
||||||
'error_rm_workflow' => '',
|
'error_rm_workflow' => '',
|
||||||
'error_rm_workflow_action' => '',
|
'error_rm_workflow_action' => '',
|
||||||
'error_rm_workflow_state' => '',
|
'error_rm_workflow_state' => '',
|
||||||
|
@ -841,6 +843,7 @@ URL: [url]',
|
||||||
'list_access_rights' => 'Lista alla rättigheter...',
|
'list_access_rights' => 'Lista alla rättigheter...',
|
||||||
'list_contains_no_access_docs' => 'Listan innehåller fler dokument som inte visas då du saknar rättigheter till dessa.',
|
'list_contains_no_access_docs' => 'Listan innehåller fler dokument som inte visas då du saknar rättigheter till dessa.',
|
||||||
'list_hooks' => 'Lista hooks',
|
'list_hooks' => 'Lista hooks',
|
||||||
|
'list_notification_services' => '',
|
||||||
'list_tasks' => '',
|
'list_tasks' => '',
|
||||||
'local_file' => 'Lokal fil',
|
'local_file' => 'Lokal fil',
|
||||||
'locked_by' => 'Låst av',
|
'locked_by' => 'Låst av',
|
||||||
|
@ -1150,6 +1153,7 @@ URL: [url]',
|
||||||
'remove_approval_log' => '',
|
'remove_approval_log' => '',
|
||||||
'remove_marked_files' => 'Ta bort markerade filer',
|
'remove_marked_files' => 'Ta bort markerade filer',
|
||||||
'remove_review_log' => '',
|
'remove_review_log' => '',
|
||||||
|
'remove_task' => '',
|
||||||
'repaired' => 'reparerat',
|
'repaired' => 'reparerat',
|
||||||
'repairing_objects' => 'Reparerar dokument och kataloger.',
|
'repairing_objects' => 'Reparerar dokument och kataloger.',
|
||||||
'replace_content_email_body' => '',
|
'replace_content_email_body' => '',
|
||||||
|
@ -1386,6 +1390,8 @@ Kommentar: [comment]',
|
||||||
'seq_end' => 'På slutet',
|
'seq_end' => 'På slutet',
|
||||||
'seq_keep' => 'Behåll positionen',
|
'seq_keep' => 'Behåll positionen',
|
||||||
'seq_start' => 'Första positionen',
|
'seq_start' => 'Första positionen',
|
||||||
|
'service_has_filter' => '',
|
||||||
|
'service_name' => '',
|
||||||
'sessions' => 'Användare online',
|
'sessions' => 'Användare online',
|
||||||
'setDateFromFile' => '',
|
'setDateFromFile' => '',
|
||||||
'setDateFromFolder' => '',
|
'setDateFromFolder' => '',
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
// along with this program; if not, write to the Free Software
|
// along with this program; if not, write to the Free Software
|
||||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
//
|
//
|
||||||
// Translators: Admin (1129), aydin (83)
|
// Translators: Admin (1131), aydin (83)
|
||||||
|
|
||||||
$text = array(
|
$text = array(
|
||||||
'2_factor_auth' => 'İki faktörlü yetkilendirme',
|
'2_factor_auth' => 'İki faktörlü yetkilendirme',
|
||||||
|
@ -149,7 +149,7 @@ URL: [url]',
|
||||||
'archive_creation_warning' => 'Bu işlemle tüm DYS içeriğindeki dosyaların arşivini oluşturabilirsiniz. Arşiv oluşturulduktan sonra sunucudaki data klasörüne kaydedilecektir.<br>DİKKAT: Okunabilir olarak oluşturulan arşiv, sunucu yedeği olarak kullanılamaz.',
|
'archive_creation_warning' => 'Bu işlemle tüm DYS içeriğindeki dosyaların arşivini oluşturabilirsiniz. Arşiv oluşturulduktan sonra sunucudaki data klasörüne kaydedilecektir.<br>DİKKAT: Okunabilir olarak oluşturulan arşiv, sunucu yedeği olarak kullanılamaz.',
|
||||||
'ar_EG' => 'Arapça',
|
'ar_EG' => 'Arapça',
|
||||||
'assign_approvers' => 'Onaylayıcı Tanımla',
|
'assign_approvers' => 'Onaylayıcı Tanımla',
|
||||||
'assign_recipients' => '',
|
'assign_recipients' => 'Alıcı ata',
|
||||||
'assign_reviewers' => 'Kontrol Eden Tanımla',
|
'assign_reviewers' => 'Kontrol Eden Tanımla',
|
||||||
'assign_user_property_to' => 'Kullanıcının özelliklerini ata',
|
'assign_user_property_to' => 'Kullanıcının özelliklerini ata',
|
||||||
'assumed_released' => 'Yayınlandı kabul edilmekte',
|
'assumed_released' => 'Yayınlandı kabul edilmekte',
|
||||||
|
@ -563,6 +563,8 @@ URL: [url]',
|
||||||
'error_remove_document' => '',
|
'error_remove_document' => '',
|
||||||
'error_remove_folder' => 'Klasörü Silerken Hata!',
|
'error_remove_folder' => 'Klasörü Silerken Hata!',
|
||||||
'error_remove_permission' => '',
|
'error_remove_permission' => '',
|
||||||
|
'error_rm_user_processes' => '',
|
||||||
|
'error_rm_user_processes_no_docs' => '',
|
||||||
'error_rm_workflow' => '',
|
'error_rm_workflow' => '',
|
||||||
'error_rm_workflow_action' => '',
|
'error_rm_workflow_action' => '',
|
||||||
'error_rm_workflow_state' => '',
|
'error_rm_workflow_state' => '',
|
||||||
|
@ -742,7 +744,7 @@ URL: [url]',
|
||||||
'index_pending' => '',
|
'index_pending' => '',
|
||||||
'index_waiting' => 'Bekliyor',
|
'index_waiting' => 'Bekliyor',
|
||||||
'individuals' => 'Bireysel',
|
'individuals' => 'Bireysel',
|
||||||
'individuals_in_groups' => '',
|
'individuals_in_groups' => 'Ekip Üyeleri',
|
||||||
'ind_review_removed' => '',
|
'ind_review_removed' => '',
|
||||||
'info_recipients_tab_not_released' => '',
|
'info_recipients_tab_not_released' => '',
|
||||||
'info_rm_user_from_processes_user' => '',
|
'info_rm_user_from_processes_user' => '',
|
||||||
|
@ -829,6 +831,7 @@ URL: [url]',
|
||||||
'list_access_rights' => 'Tüm erişim haklarini listele',
|
'list_access_rights' => 'Tüm erişim haklarini listele',
|
||||||
'list_contains_no_access_docs' => '',
|
'list_contains_no_access_docs' => '',
|
||||||
'list_hooks' => '',
|
'list_hooks' => '',
|
||||||
|
'list_notification_services' => '',
|
||||||
'list_tasks' => '',
|
'list_tasks' => '',
|
||||||
'local_file' => 'Yerel dosya',
|
'local_file' => 'Yerel dosya',
|
||||||
'locked_by' => 'Kilitleyen',
|
'locked_by' => 'Kilitleyen',
|
||||||
|
@ -1143,6 +1146,7 @@ URL: [url]',
|
||||||
'remove_approval_log' => '',
|
'remove_approval_log' => '',
|
||||||
'remove_marked_files' => 'İşaretli dosyaları sil',
|
'remove_marked_files' => 'İşaretli dosyaları sil',
|
||||||
'remove_review_log' => '',
|
'remove_review_log' => '',
|
||||||
|
'remove_task' => '',
|
||||||
'repaired' => 'onarıldı',
|
'repaired' => 'onarıldı',
|
||||||
'repairing_objects' => 'Doküman ve klasörler onarılıyor.',
|
'repairing_objects' => 'Doküman ve klasörler onarılıyor.',
|
||||||
'replace_content_email_body' => '',
|
'replace_content_email_body' => '',
|
||||||
|
@ -1352,6 +1356,8 @@ URL: [url]',
|
||||||
'seq_end' => 'En sona',
|
'seq_end' => 'En sona',
|
||||||
'seq_keep' => 'Sırayı Koru',
|
'seq_keep' => 'Sırayı Koru',
|
||||||
'seq_start' => 'İlk sıra',
|
'seq_start' => 'İlk sıra',
|
||||||
|
'service_has_filter' => '',
|
||||||
|
'service_name' => '',
|
||||||
'sessions' => '',
|
'sessions' => '',
|
||||||
'setDateFromFile' => '',
|
'setDateFromFile' => '',
|
||||||
'setDateFromFolder' => '',
|
'setDateFromFolder' => '',
|
||||||
|
|
|
@ -569,6 +569,8 @@ URL: [url]',
|
||||||
'error_remove_document' => '',
|
'error_remove_document' => '',
|
||||||
'error_remove_folder' => '',
|
'error_remove_folder' => '',
|
||||||
'error_remove_permission' => '',
|
'error_remove_permission' => '',
|
||||||
|
'error_rm_user_processes' => '',
|
||||||
|
'error_rm_user_processes_no_docs' => '',
|
||||||
'error_rm_workflow' => '',
|
'error_rm_workflow' => '',
|
||||||
'error_rm_workflow_action' => '',
|
'error_rm_workflow_action' => '',
|
||||||
'error_rm_workflow_state' => '',
|
'error_rm_workflow_state' => '',
|
||||||
|
@ -835,6 +837,7 @@ URL: [url]',
|
||||||
'list_access_rights' => 'Повний список прав...',
|
'list_access_rights' => 'Повний список прав...',
|
||||||
'list_contains_no_access_docs' => '',
|
'list_contains_no_access_docs' => '',
|
||||||
'list_hooks' => '',
|
'list_hooks' => '',
|
||||||
|
'list_notification_services' => '',
|
||||||
'list_tasks' => '',
|
'list_tasks' => '',
|
||||||
'local_file' => 'Локальний файл',
|
'local_file' => 'Локальний файл',
|
||||||
'locked_by' => 'Заблоковано',
|
'locked_by' => 'Заблоковано',
|
||||||
|
@ -1149,6 +1152,7 @@ URL: [url]',
|
||||||
'remove_approval_log' => '',
|
'remove_approval_log' => '',
|
||||||
'remove_marked_files' => 'Видалити обрані файли',
|
'remove_marked_files' => 'Видалити обрані файли',
|
||||||
'remove_review_log' => '',
|
'remove_review_log' => '',
|
||||||
|
'remove_task' => '',
|
||||||
'repaired' => 'виправлено',
|
'repaired' => 'виправлено',
|
||||||
'repairing_objects' => 'Відновлення каталогів і документів',
|
'repairing_objects' => 'Відновлення каталогів і документів',
|
||||||
'replace_content_email_body' => '',
|
'replace_content_email_body' => '',
|
||||||
|
@ -1373,6 +1377,8 @@ URL: [url]',
|
||||||
'seq_end' => 'В кінці',
|
'seq_end' => 'В кінці',
|
||||||
'seq_keep' => 'Не змінювати',
|
'seq_keep' => 'Не змінювати',
|
||||||
'seq_start' => 'На початку',
|
'seq_start' => 'На початку',
|
||||||
|
'service_has_filter' => '',
|
||||||
|
'service_name' => '',
|
||||||
'sessions' => '',
|
'sessions' => '',
|
||||||
'setDateFromFile' => '',
|
'setDateFromFile' => '',
|
||||||
'setDateFromFolder' => '',
|
'setDateFromFolder' => '',
|
||||||
|
|
|
@ -569,6 +569,8 @@ URL: [url]',
|
||||||
'error_remove_document' => '删除文档时出错',
|
'error_remove_document' => '删除文档时出错',
|
||||||
'error_remove_folder' => '删除文件夹时出错',
|
'error_remove_folder' => '删除文件夹时出错',
|
||||||
'error_remove_permission' => '移除权限时报错',
|
'error_remove_permission' => '移除权限时报错',
|
||||||
|
'error_rm_user_processes' => '',
|
||||||
|
'error_rm_user_processes_no_docs' => '',
|
||||||
'error_rm_workflow' => '删除工作流时报错',
|
'error_rm_workflow' => '删除工作流时报错',
|
||||||
'error_rm_workflow_action' => '删除工作流报错',
|
'error_rm_workflow_action' => '删除工作流报错',
|
||||||
'error_rm_workflow_state' => '删除工作流状态时报错',
|
'error_rm_workflow_state' => '删除工作流状态时报错',
|
||||||
|
@ -837,6 +839,7 @@ URL: [url]',
|
||||||
'list_access_rights' => '列出所有的访问权限',
|
'list_access_rights' => '列出所有的访问权限',
|
||||||
'list_contains_no_access_docs' => '这个列表包含了更多你无法访问的文件也没有显示出来。',
|
'list_contains_no_access_docs' => '这个列表包含了更多你无法访问的文件也没有显示出来。',
|
||||||
'list_hooks' => '钩子列表',
|
'list_hooks' => '钩子列表',
|
||||||
|
'list_notification_services' => '',
|
||||||
'list_tasks' => '任务列表',
|
'list_tasks' => '任务列表',
|
||||||
'local_file' => '本地文件',
|
'local_file' => '本地文件',
|
||||||
'locked_by' => '锁定人',
|
'locked_by' => '锁定人',
|
||||||
|
@ -1154,6 +1157,7 @@ URL: [url]',
|
||||||
'remove_approval_log' => '',
|
'remove_approval_log' => '',
|
||||||
'remove_marked_files' => '删除选中的文件',
|
'remove_marked_files' => '删除选中的文件',
|
||||||
'remove_review_log' => '',
|
'remove_review_log' => '',
|
||||||
|
'remove_task' => '',
|
||||||
'repaired' => '已修复',
|
'repaired' => '已修复',
|
||||||
'repairing_objects' => '修复文件和文件夹',
|
'repairing_objects' => '修复文件和文件夹',
|
||||||
'replace_content_email_body' => '',
|
'replace_content_email_body' => '',
|
||||||
|
@ -1360,6 +1364,8 @@ URL: [url]',
|
||||||
'seq_end' => '末尾',
|
'seq_end' => '末尾',
|
||||||
'seq_keep' => '当前',
|
'seq_keep' => '当前',
|
||||||
'seq_start' => '首位',
|
'seq_start' => '首位',
|
||||||
|
'service_has_filter' => '',
|
||||||
|
'service_name' => '',
|
||||||
'sessions' => '在线用户',
|
'sessions' => '在线用户',
|
||||||
'setDateFromFile' => '导入文件接收日期',
|
'setDateFromFile' => '导入文件接收日期',
|
||||||
'setDateFromFolder' => '导入文件夹接收日期',
|
'setDateFromFolder' => '导入文件夹接收日期',
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
// along with this program; if not, write to the Free Software
|
// along with this program; if not, write to the Free Software
|
||||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
//
|
//
|
||||||
// Translators: Admin (2429)
|
// Translators: Admin (2431)
|
||||||
|
|
||||||
$text = array(
|
$text = array(
|
||||||
'2_factor_auth' => '2階段認證',
|
'2_factor_auth' => '2階段認證',
|
||||||
|
@ -581,6 +581,8 @@ URL: [url]',
|
||||||
'error_remove_document' => '刪除文件時出錯',
|
'error_remove_document' => '刪除文件時出錯',
|
||||||
'error_remove_folder' => '刪除文件夾時出錯',
|
'error_remove_folder' => '刪除文件夾時出錯',
|
||||||
'error_remove_permission' => '刪除權限時出錯',
|
'error_remove_permission' => '刪除權限時出錯',
|
||||||
|
'error_rm_user_processes' => '',
|
||||||
|
'error_rm_user_processes_no_docs' => '',
|
||||||
'error_rm_workflow' => '刪除工作流程時出錯',
|
'error_rm_workflow' => '刪除工作流程時出錯',
|
||||||
'error_rm_workflow_action' => '刪除工作流程操作時出錯',
|
'error_rm_workflow_action' => '刪除工作流程操作時出錯',
|
||||||
'error_rm_workflow_state' => '刪除工作流程狀態時出錯',
|
'error_rm_workflow_state' => '刪除工作流程狀態時出錯',
|
||||||
|
@ -740,7 +742,7 @@ URL: [url]',
|
||||||
'hu_HU' => '匈牙利語',
|
'hu_HU' => '匈牙利語',
|
||||||
'id' => '序號',
|
'id' => '序號',
|
||||||
'identical_version' => '新版本的內容與舊版本完全相同',
|
'identical_version' => '新版本的內容與舊版本完全相同',
|
||||||
'id_ID' => '',
|
'id_ID' => '印度',
|
||||||
'import' => '匯入',
|
'import' => '匯入',
|
||||||
'importfs' => '從檔案系統匯入',
|
'importfs' => '從檔案系統匯入',
|
||||||
'import_extension' => '匯入擴充',
|
'import_extension' => '匯入擴充',
|
||||||
|
@ -854,6 +856,7 @@ URL: [url]',
|
||||||
'list_access_rights' => '列出權限',
|
'list_access_rights' => '列出權限',
|
||||||
'list_contains_no_access_docs' => '該列表包含更多您無法訪問且不會顯示的文檔。',
|
'list_contains_no_access_docs' => '該列表包含更多您無法訪問且不會顯示的文檔。',
|
||||||
'list_hooks' => '掛勾列表',
|
'list_hooks' => '掛勾列表',
|
||||||
|
'list_notification_services' => '',
|
||||||
'list_tasks' => '工作列表',
|
'list_tasks' => '工作列表',
|
||||||
'local_file' => '選擇檔案',
|
'local_file' => '選擇檔案',
|
||||||
'locked_by' => '鎖定人',
|
'locked_by' => '鎖定人',
|
||||||
|
@ -921,7 +924,7 @@ URL: [url]',
|
||||||
'nav_brand_my_documents' => '',
|
'nav_brand_my_documents' => '',
|
||||||
'nav_brand_view_document' => '',
|
'nav_brand_view_document' => '',
|
||||||
'nav_brand_view_folder' => '',
|
'nav_brand_view_folder' => '',
|
||||||
'nb_NO' => '',
|
'nb_NO' => '嚕知',
|
||||||
'needs_correction' => '需要糾正',
|
'needs_correction' => '需要糾正',
|
||||||
'needs_workflow_action' => '本文檔需要您注意。請檢查工作流程標籤。',
|
'needs_workflow_action' => '本文檔需要您注意。請檢查工作流程標籤。',
|
||||||
'network_drive' => '網路磁碟機',
|
'network_drive' => '網路磁碟機',
|
||||||
|
@ -1175,6 +1178,7 @@ URL: [url]',
|
||||||
'remove_approval_log' => '',
|
'remove_approval_log' => '',
|
||||||
'remove_marked_files' => '刪除勾選的檔案',
|
'remove_marked_files' => '刪除勾選的檔案',
|
||||||
'remove_review_log' => '',
|
'remove_review_log' => '',
|
||||||
|
'remove_task' => '',
|
||||||
'repaired' => '修復',
|
'repaired' => '修復',
|
||||||
'repairing_objects' => '修復文檔和文件夾。',
|
'repairing_objects' => '修復文檔和文件夾。',
|
||||||
'replace_content_email_body' => '',
|
'replace_content_email_body' => '',
|
||||||
|
@ -1411,6 +1415,8 @@ URL: [url]',
|
||||||
'seq_end' => '末尾',
|
'seq_end' => '末尾',
|
||||||
'seq_keep' => '當前',
|
'seq_keep' => '當前',
|
||||||
'seq_start' => '首位',
|
'seq_start' => '首位',
|
||||||
|
'service_has_filter' => '',
|
||||||
|
'service_name' => '',
|
||||||
'sessions' => '在線用戶',
|
'sessions' => '在線用戶',
|
||||||
'setDateFromFile' => '從導入的文件接管日期',
|
'setDateFromFile' => '從導入的文件接管日期',
|
||||||
'setDateFromFolder' => '從導入的文件夾接管日期',
|
'setDateFromFolder' => '從導入的文件夾接管日期',
|
||||||
|
|
|
@ -958,7 +958,7 @@ switch($command) {
|
||||||
$ires = $index->addDocument($idoc);
|
$ires = $index->addDocument($idoc);
|
||||||
header('Content-Type: application/json');
|
header('Content-Type: application/json');
|
||||||
if(false === $ires) {
|
if(false === $ires) {
|
||||||
echo json_encode(array('success'=>false, 'message'=>getMLText('error_document_indexed'), 'data'=>$prefix.$object->getID()));
|
echo json_encode(array('success'=>false, 'message'=>getMLText('error_document_indexed'), 'data'=>$prefix.$object->getID(), 'mimetype'=>$idoc->getMimeType(), 'cmd'=>$idoc->getCmd()));
|
||||||
} else {
|
} else {
|
||||||
echo json_encode(array('success'=>true, 'message'=>getMLText('splash_document_indexed'), 'data'=>$prefix.$object->getID(), 'cmd'=>$idoc->getCmd()));
|
echo json_encode(array('success'=>true, 'message'=>getMLText('splash_document_indexed'), 'data'=>$prefix.$object->getID(), 'cmd'=>$idoc->getCmd()));
|
||||||
}
|
}
|
||||||
|
|
|
@ -209,6 +209,15 @@ else if ($action == "removefromprocesses") {
|
||||||
UI::exitError(getMLText("admin_tools"),getMLText("cannot_delete_yourself"));
|
UI::exitError(getMLText("admin_tools"),getMLText("cannot_delete_yourself"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!empty($_POST["assignTo"])) {
|
||||||
|
$userToAssign = $dms->getUser($_POST["assignTo"]);
|
||||||
|
if (!is_object($userToAssign)) {
|
||||||
|
UI::exitError(getMLText("admin_tools"),getMLText("invalid_user_id"));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$userToAssign = null;
|
||||||
|
}
|
||||||
|
|
||||||
$userToRemove = $dms->getUser($userid);
|
$userToRemove = $dms->getUser($userid);
|
||||||
if (!is_object($userToRemove)) {
|
if (!is_object($userToRemove)) {
|
||||||
UI::exitError(getMLText("admin_tools"),getMLText("invalid_user_id"));
|
UI::exitError(getMLText("admin_tools"),getMLText("invalid_user_id"));
|
||||||
|
@ -219,13 +228,15 @@ else if ($action == "removefromprocesses") {
|
||||||
$_POST["status"]["review"] = array();
|
$_POST["status"]["review"] = array();
|
||||||
if(!isset($_POST["status"]["approval"]))
|
if(!isset($_POST["status"]["approval"]))
|
||||||
$_POST["status"]["approval"] = array();
|
$_POST["status"]["approval"] = array();
|
||||||
if (!$userToRemove->removeFromProcesses($user, $_POST['status'])) {
|
if(!empty($_POST['needsdocs']) && empty($_POST['docs'])) {
|
||||||
UI::exitError(getMLText("admin_tools"),getMLText("error_occured"));
|
$session->setSplashMsg(array('type'=>'error', 'msg'=>getMLText('error_rm_user_processes_no_docs')));
|
||||||
|
} else {
|
||||||
|
if (!$userToRemove->removeFromProcesses($user, $_POST['status'], $userToAssign, $_POST['docs'])) {
|
||||||
|
UI::exitError(getMLText("admin_tools"),getMLText("error_rm_user_processes"));
|
||||||
|
}
|
||||||
|
add_log_line(".php&action=removefromprocesses&userid=".$userid);
|
||||||
|
$session->setSplashMsg(array('type'=>'success', 'msg'=>getMLText('splash_rm_user_processes')));
|
||||||
}
|
}
|
||||||
|
|
||||||
add_log_line(".php&action=removefromprocesses&userid=".$userid);
|
|
||||||
|
|
||||||
$session->setSplashMsg(array('type'=>'success', 'msg'=>getMLText('splash_rm_user_processes')));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -55,7 +55,9 @@ if($view) {
|
||||||
$view->setParam('showinprocess', $showInProcess);
|
$view->setParam('showinprocess', $showInProcess);
|
||||||
$view->setParam('workflowmode', $settings->_workflowMode);
|
$view->setParam('workflowmode', $settings->_workflowMode);
|
||||||
$view->setParam('cachedir', $settings->_cacheDir);
|
$view->setParam('cachedir', $settings->_cacheDir);
|
||||||
|
$view->setParam('conversionmgr', $conversionmgr);
|
||||||
$view->setParam('previewWidthList', $settings->_previewWidthList);
|
$view->setParam('previewWidthList', $settings->_previewWidthList);
|
||||||
|
$view->setParam('previewConverters', isset($settings->_converters['preview']) ? $settings->_converters['preview'] : array());
|
||||||
$view->setParam('timeout', $settings->_cmdTimeout);
|
$view->setParam('timeout', $settings->_cmdTimeout);
|
||||||
$view->setParam('accessobject', $accessop);
|
$view->setParam('accessobject', $accessop);
|
||||||
$view->setParam('xsendfile', $settings->_enableXsendfile);
|
$view->setParam('xsendfile', $settings->_enableXsendfile);
|
||||||
|
|
46
out/out.NotificationServices.php
Normal file
46
out/out.NotificationServices.php
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
<?php
|
||||||
|
// MyDMS. Document Management System
|
||||||
|
// Copyright (C) 2010 Matteo Lucarelli
|
||||||
|
//
|
||||||
|
// This program is free software; you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
// the Free Software Foundation; either version 2 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU General Public License
|
||||||
|
// along with this program; if not, write to the Free Software
|
||||||
|
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
|
if(!isset($settings))
|
||||||
|
require_once("../inc/inc.Settings.php");
|
||||||
|
require_once("inc/inc.LogInit.php");
|
||||||
|
require_once("inc/inc.Language.php");
|
||||||
|
require_once("inc/inc.Init.php");
|
||||||
|
require_once("inc/inc.Extension.php");
|
||||||
|
require_once("inc/inc.DBInit.php");
|
||||||
|
require_once("inc/inc.ClassUI.php");
|
||||||
|
require_once("inc/inc.Authentication.php");
|
||||||
|
|
||||||
|
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
|
||||||
|
$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user));
|
||||||
|
$accessop = new SeedDMS_AccessOperation($dms, $user, $settings);
|
||||||
|
if (!$settings->_enableDebugMode) {
|
||||||
|
UI::exitError(getMLText("admin_tools"),getMLText("access_denied"));
|
||||||
|
}
|
||||||
|
if (!$accessop->check_view_access($view, $_GET)) {
|
||||||
|
UI::exitError(getMLText("admin_tools"),getMLText("access_denied"));
|
||||||
|
}
|
||||||
|
|
||||||
|
if($view) {
|
||||||
|
$view->setParam('settings', $settings);
|
||||||
|
$view->setParam('accessobject', $accessop);
|
||||||
|
$view->setParam('notifier', $notifier);
|
||||||
|
$view($_GET);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
|
@ -93,6 +93,7 @@ if($view) {
|
||||||
$view->setParam('enableRecursiveCount', $settings->_enableRecursiveCount);
|
$view->setParam('enableRecursiveCount', $settings->_enableRecursiveCount);
|
||||||
$view->setParam('maxRecursiveCount', $settings->_maxRecursiveCount);
|
$view->setParam('maxRecursiveCount', $settings->_maxRecursiveCount);
|
||||||
$view->setParam('accessobject', $accessop);
|
$view->setParam('accessobject', $accessop);
|
||||||
|
$view->setParam('conversionmgr', $conversionmgr);
|
||||||
$view->setParam('previewWidthList', $settings->_previewWidthList);
|
$view->setParam('previewWidthList', $settings->_previewWidthList);
|
||||||
$view->setParam('previewConverters', isset($settings->_converters['preview']) ? $settings->_converters['preview'] : array());
|
$view->setParam('previewConverters', isset($settings->_converters['preview']) ? $settings->_converters['preview'] : array());
|
||||||
$view->setParam('timeout', $settings->_cmdTimeout);
|
$view->setParam('timeout', $settings->_cmdTimeout);
|
||||||
|
|
|
@ -53,6 +53,11 @@ if (isset($_GET["task"])) {
|
||||||
$task = $_GET['task'];
|
$task = $_GET['task'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$type = null;
|
||||||
|
if (isset($_GET["type"])) {
|
||||||
|
$type = $_GET['type'];
|
||||||
|
}
|
||||||
|
|
||||||
$allusers = $dms->getAllUsers($settings->_sortUsersInList);
|
$allusers = $dms->getAllUsers($settings->_sortUsersInList);
|
||||||
|
|
||||||
if($view) {
|
if($view) {
|
||||||
|
@ -60,8 +65,10 @@ if($view) {
|
||||||
$view->setParam('rmuser', $rmuser);
|
$view->setParam('rmuser', $rmuser);
|
||||||
$view->setParam('allusers', $allusers);
|
$view->setParam('allusers', $allusers);
|
||||||
$view->setParam('task', $task);
|
$view->setParam('task', $task);
|
||||||
|
$view->setParam('type', $type);
|
||||||
$view->setParam('cachedir', $settings->_cacheDir);
|
$view->setParam('cachedir', $settings->_cacheDir);
|
||||||
$view->setParam('rootfolder', $dms->getFolder($settings->_rootFolderID));
|
$view->setParam('rootfolder', $dms->getFolder($settings->_rootFolderID));
|
||||||
|
$view->setParam('conversionmgr', $conversionmgr);
|
||||||
$view->setParam('previewWidthList', $settings->_previewWidthList);
|
$view->setParam('previewWidthList', $settings->_previewWidthList);
|
||||||
$view->setParam('previewconverters', $settings->_converters['preview']);
|
$view->setParam('previewconverters', $settings->_converters['preview']);
|
||||||
$view->setParam('timeout', $settings->_cmdTimeout);
|
$view->setParam('timeout', $settings->_cmdTimeout);
|
||||||
|
|
|
@ -596,12 +596,12 @@ class RestapiController { /* {{{ */
|
||||||
return $response->withJson(array('success'=>false, 'message'=>'No parent folder id given', 'data'=>''), 400);
|
return $response->withJson(array('success'=>false, 'message'=>'No parent folder id given', 'data'=>''), 400);
|
||||||
}
|
}
|
||||||
|
|
||||||
if($settings->_quota > 0) {
|
if($settings->_quota > 0) {
|
||||||
$remain = checkQuota($userobj);
|
$remain = checkQuota($userobj);
|
||||||
if ($remain < 0) {
|
if ($remain < 0) {
|
||||||
return $response->withJson(array('success'=>false, 'message'=>'Quota exceeded', 'data'=>''), 400);
|
return $response->withJson(array('success'=>false, 'message'=>'Quota exceeded', 'data'=>''), 400);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$mfolder = $dms->getFolder($args['id']);
|
$mfolder = $dms->getFolder($args['id']);
|
||||||
if($mfolder) {
|
if($mfolder) {
|
||||||
|
@ -637,11 +637,11 @@ class RestapiController { /* {{{ */
|
||||||
foreach($categories as $catid) {
|
foreach($categories as $catid) {
|
||||||
if($cat = $dms->getDocumentCategory($catid))
|
if($cat = $dms->getDocumentCategory($catid))
|
||||||
$cats[] = $cat;
|
$cats[] = $cat;
|
||||||
}
|
}
|
||||||
$owner = null;
|
$owner = null;
|
||||||
if($userobj->isAdmin() && isset($params["owner"]) && ctype_digit($params['owner'])) {
|
if($userobj->isAdmin() && isset($params["owner"]) && ctype_digit($params['owner'])) {
|
||||||
$owner = $dms->getUser($params["owner"]);
|
$owner = $dms->getUser($params["owner"]);
|
||||||
}
|
}
|
||||||
$attributes = isset($params["attributes"]) ? $params["attributes"] : array();
|
$attributes = isset($params["attributes"]) ? $params["attributes"] : array();
|
||||||
foreach($attributes as $attrdefid=>$attribute) {
|
foreach($attributes as $attrdefid=>$attribute) {
|
||||||
if($attrdef = $dms->getAttributeDefinition($attrdefid)) {
|
if($attrdef = $dms->getAttributeDefinition($attrdefid)) {
|
||||||
|
@ -710,12 +710,12 @@ class RestapiController { /* {{{ */
|
||||||
return $response->withJson(array('success'=>false, 'message'=>'No document id given', 'data'=>''), 400);
|
return $response->withJson(array('success'=>false, 'message'=>'No document id given', 'data'=>''), 400);
|
||||||
}
|
}
|
||||||
|
|
||||||
if($settings->_quota > 0) {
|
if($settings->_quota > 0) {
|
||||||
$remain = checkQuota($userobj);
|
$remain = checkQuota($userobj);
|
||||||
if ($remain < 0) {
|
if ($remain < 0) {
|
||||||
return $response->withJson(array('success'=>false, 'message'=>'Quota exceeded', 'data'=>''), 400);
|
return $response->withJson(array('success'=>false, 'message'=>'Quota exceeded', 'data'=>''), 400);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$document = $dms->getDocument($args['id']);
|
$document = $dms->getDocument($args['id']);
|
||||||
if($document) {
|
if($document) {
|
||||||
|
@ -742,13 +742,13 @@ class RestapiController { /* {{{ */
|
||||||
$file_info = array_pop($uploadedFiles);
|
$file_info = array_pop($uploadedFiles);
|
||||||
if ($origfilename == null)
|
if ($origfilename == null)
|
||||||
$origfilename = $file_info->getClientFilename();
|
$origfilename = $file_info->getClientFilename();
|
||||||
$temp = $file_info->file;
|
$temp = $file_info->file;
|
||||||
|
|
||||||
/* Check if the uploaded file is identical to last version */
|
/* Check if the uploaded file is identical to last version */
|
||||||
$lc = $document->getLatestContent();
|
$lc = $document->getLatestContent();
|
||||||
if($lc->getChecksum() == SeedDMS_Core_File::checksum($temp)) {
|
if($lc->getChecksum() == SeedDMS_Core_File::checksum($temp)) {
|
||||||
return $response->withJson(array('success'=>false, 'message'=>'Uploaded file identical to last version', 'data'=>''), 400);
|
return $response->withJson(array('success'=>false, 'message'=>'Uploaded file identical to last version', 'data'=>''), 400);
|
||||||
}
|
}
|
||||||
$finfo = finfo_open(FILEINFO_MIME_TYPE);
|
$finfo = finfo_open(FILEINFO_MIME_TYPE);
|
||||||
$userfiletype = finfo_file($finfo, $temp);
|
$userfiletype = finfo_file($finfo, $temp);
|
||||||
$fileType = ".".pathinfo($origfilename, PATHINFO_EXTENSION);
|
$fileType = ".".pathinfo($origfilename, PATHINFO_EXTENSION);
|
||||||
|
@ -784,14 +784,14 @@ class RestapiController { /* {{{ */
|
||||||
|
|
||||||
if(!ctype_digit($args['id']) || $args['id'] == 0) {
|
if(!ctype_digit($args['id']) || $args['id'] == 0) {
|
||||||
return $response->withJson(array('success'=>false, 'message'=>'No document id given', 'data'=>''), 400);
|
return $response->withJson(array('success'=>false, 'message'=>'No document id given', 'data'=>''), 400);
|
||||||
}
|
}
|
||||||
|
|
||||||
if($settings->_quota > 0) {
|
if($settings->_quota > 0) {
|
||||||
$remain = checkQuota($userobj);
|
$remain = checkQuota($userobj);
|
||||||
if ($remain < 0) {
|
if ($remain < 0) {
|
||||||
return $response->withJson(array('success'=>false, 'message'=>'Quota exceeded', 'data'=>''), 400);
|
return $response->withJson(array('success'=>false, 'message'=>'Quota exceeded', 'data'=>''), 400);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$mfolder = $dms->getFolder($args['id']);
|
$mfolder = $dms->getFolder($args['id']);
|
||||||
if($mfolder) {
|
if($mfolder) {
|
||||||
|
@ -1462,10 +1462,10 @@ class RestapiController { /* {{{ */
|
||||||
|
|
||||||
if(!$userobj) {
|
if(!$userobj) {
|
||||||
return $response->withJson(array('success'=>false, 'message'=>'Not logged in', 'data'=>''), 403);
|
return $response->withJson(array('success'=>false, 'message'=>'Not logged in', 'data'=>''), 403);
|
||||||
}
|
}
|
||||||
if(!$userobj->isAdmin()) {
|
if(!$userobj->isAdmin()) {
|
||||||
return $response->withJson(array('success'=>false, 'message'=>'No access on document', 'data'=>''), 403);
|
return $response->withJson(array('success'=>false, 'message'=>'No access on document', 'data'=>''), 403);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!ctype_digit($args['id']) || $args['id'] == 0) {
|
if(!ctype_digit($args['id']) || $args['id'] == 0) {
|
||||||
return $response->withJson(array('success'=>false, 'message'=>'No document given', 'data'=>''), 400);
|
return $response->withJson(array('success'=>false, 'message'=>'No document given', 'data'=>''), 400);
|
||||||
|
@ -1527,16 +1527,16 @@ class RestapiController { /* {{{ */
|
||||||
if(!isset($params['searchin']) || !$searchin = explode(",",$params['searchin']))
|
if(!isset($params['searchin']) || !$searchin = explode(",",$params['searchin']))
|
||||||
$searchin = array();
|
$searchin = array();
|
||||||
if(!isset($params['objects']) || !$objects = $params['objects'])
|
if(!isset($params['objects']) || !$objects = $params['objects'])
|
||||||
$objects = 0x3;
|
$objects = 0x3;
|
||||||
$sparams = array(
|
$sparams = array(
|
||||||
'query'=>$querystr,
|
'query'=>$querystr,
|
||||||
'limit'=>$limit,
|
'limit'=>$limit,
|
||||||
'offset'=>$offset,
|
'offset'=>$offset,
|
||||||
'logicalmode'=>'AND',
|
'logicalmode'=>'AND',
|
||||||
'searchin'=>$searchin,
|
'searchin'=>$searchin,
|
||||||
'mode'=>$objects,
|
'mode'=>$objects,
|
||||||
// 'creationstartdate'=>array('hour'=>1, 'minute'=>0, 'second'=>0, 'year'=>date('Y')-1, 'month'=>date('m'), 'day'=>date('d')),
|
// 'creationstartdate'=>array('hour'=>1, 'minute'=>0, 'second'=>0, 'year'=>date('Y')-1, 'month'=>date('m'), 'day'=>date('d')),
|
||||||
);
|
);
|
||||||
$resArr = $dms->search($sparams);
|
$resArr = $dms->search($sparams);
|
||||||
// $resArr = $dms->search($querystr, $limit, $offset, 'AND', $searchin, null, null, array(), array('hour'=>1, 'minute'=>0, 'second'=>0, 'year'=>date('Y')-1, 'month'=>date('m'), 'day'=>date('d')), array(), array(), array(), array(), array(), $objects);
|
// $resArr = $dms->search($querystr, $limit, $offset, 'AND', $searchin, null, null, array(), array('hour'=>1, 'minute'=>0, 'second'=>0, 'year'=>date('Y')-1, 'month'=>date('m'), 'day'=>date('d')), array(), array(), array(), array(), array(), $objects);
|
||||||
if($resArr === false) {
|
if($resArr === false) {
|
||||||
|
@ -2324,6 +2324,22 @@ class RestapiController { /* {{{ */
|
||||||
return $response->withJson(array('success'=>true, 'message'=>'', 'data'=>''), 200);
|
return $response->withJson(array('success'=>true, 'message'=>'', 'data'=>''), 200);
|
||||||
} /* }}} */
|
} /* }}} */
|
||||||
|
|
||||||
|
function getStatsTotal($request, $response) { /* {{{ */
|
||||||
|
$dms = $this->container->dms;
|
||||||
|
$userobj = $this->container->userobj;
|
||||||
|
$check = $this->checkIfAdmin($request, $response);
|
||||||
|
if($check !== true)
|
||||||
|
return $check;
|
||||||
|
|
||||||
|
$data = [];
|
||||||
|
foreach(array('docstotal', 'folderstotal', 'userstotal') as $type) {
|
||||||
|
$total = $dms->getStatisticalData($type);
|
||||||
|
$data[$type] = $total;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $response->withJson(array('success'=>true, 'message'=>'', 'data'=>$data), 200);
|
||||||
|
} /* }}} */
|
||||||
|
|
||||||
} /* }}} */
|
} /* }}} */
|
||||||
|
|
||||||
class TestController { /* {{{ */
|
class TestController { /* {{{ */
|
||||||
|
@ -2373,9 +2389,9 @@ class Auth { /* {{{ */
|
||||||
}
|
}
|
||||||
/* The preflight options request doesn't have authorization in the header. So
|
/* The preflight options request doesn't have authorization in the header. So
|
||||||
* don't even try to authorize.
|
* don't even try to authorize.
|
||||||
*/
|
*/
|
||||||
if($request->getMethod() == 'OPTIONS') {
|
if($request->getMethod() == 'OPTIONS') {
|
||||||
} elseif(!in_array($request->getUri()->getPath(), array('login')) && substr($request->getUri()->getPath(), 0, 5) != 'echo/') {
|
} elseif(!in_array($request->getUri()->getPath(), array('login')) && substr($request->getUri()->getPath(), 0, 5) != 'echo/') {
|
||||||
$userobj = null;
|
$userobj = null;
|
||||||
if(!empty($this->container->environment['HTTP_AUTHORIZATION']) && !empty($settings->_apiKey) && !empty($settings->_apiUserId)) {
|
if(!empty($this->container->environment['HTTP_AUTHORIZATION']) && !empty($settings->_apiKey) && !empty($settings->_apiUserId)) {
|
||||||
if($settings->_apiKey == $this->container->environment['HTTP_AUTHORIZATION']) {
|
if($settings->_apiKey == $this->container->environment['HTTP_AUTHORIZATION']) {
|
||||||
|
@ -2512,6 +2528,7 @@ $app->put('/categories/{id}/name', \RestapiController::class.':changeCategoryNam
|
||||||
$app->get('/attributedefinitions', \RestapiController::class.':getAttributeDefinitions');
|
$app->get('/attributedefinitions', \RestapiController::class.':getAttributeDefinitions');
|
||||||
$app->put('/attributedefinitions/{id}/name', \RestapiController::class.':changeAttributeDefinitionName');
|
$app->put('/attributedefinitions/{id}/name', \RestapiController::class.':changeAttributeDefinitionName');
|
||||||
$app->get('/echo/{data}', \TestController::class.':echoData');
|
$app->get('/echo/{data}', \TestController::class.':echoData');
|
||||||
|
$app->get('/statstotal', \RestapiController::class.':getStatsTotal');
|
||||||
$app->run();
|
$app->run();
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -18,12 +18,13 @@ function usage() { /* {{{ */
|
||||||
echo " -h, --help: print usage information and exit.".PHP_EOL;
|
echo " -h, --help: print usage information and exit.".PHP_EOL;
|
||||||
echo " -v, --version: print version and exit.".PHP_EOL;
|
echo " -v, --version: print version and exit.".PHP_EOL;
|
||||||
echo " -c: recreate index.".PHP_EOL;
|
echo " -c: recreate index.".PHP_EOL;
|
||||||
|
echo " --no-log: do not log.".PHP_EOL;
|
||||||
echo " --config: set alternative config file.".PHP_EOL;
|
echo " --config: set alternative config file.".PHP_EOL;
|
||||||
} /* }}} */
|
} /* }}} */
|
||||||
|
|
||||||
$version = "0.0.2";
|
$version = "0.0.3";
|
||||||
$shortoptions = "hvc";
|
$shortoptions = "hvc";
|
||||||
$longoptions = array('help', 'version', 'config:');
|
$longoptions = array('help', 'version', 'config:', 'no-log');
|
||||||
if(false === ($options = getopt($shortoptions, $longoptions))) {
|
if(false === ($options = getopt($shortoptions, $longoptions))) {
|
||||||
usage();
|
usage();
|
||||||
exit(0);
|
exit(0);
|
||||||
|
@ -55,6 +56,8 @@ if(isset($options['c'])) {
|
||||||
}
|
}
|
||||||
|
|
||||||
include($myincpath."/inc/inc.Settings.php");
|
include($myincpath."/inc/inc.Settings.php");
|
||||||
|
if(empty($options['no-log']))
|
||||||
|
include($myincpath."/inc/inc.LogInit.php");
|
||||||
include($myincpath."/inc/inc.Init.php");
|
include($myincpath."/inc/inc.Init.php");
|
||||||
include($myincpath."/inc/inc.Extension.php");
|
include($myincpath."/inc/inc.Extension.php");
|
||||||
include($myincpath."/inc/inc.DBInit.php");
|
include($myincpath."/inc/inc.DBInit.php");
|
||||||
|
|
|
@ -41,7 +41,7 @@ class SeedDMS_View_AddDocument extends SeedDMS_Theme_Style {
|
||||||
|
|
||||||
parent::jsTranslations(array('js_form_error', 'js_form_errors'));
|
parent::jsTranslations(array('js_form_error', 'js_form_errors'));
|
||||||
if($enablelargefileupload) {
|
if($enablelargefileupload) {
|
||||||
$this->printFineUploaderJs('../op/op.UploadChunks.php', $partitionsize, $maxuploadsize, $enablemultiupload);
|
$this->printFineUploaderJs('../op/op.UploadChunks.php', $partitionsize, $maxuploadsize, $enablemultiupload, 'userfile', 'adddocform');
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
|
@ -172,11 +172,7 @@ console.log(params);
|
||||||
$this->contentStart();
|
$this->contentStart();
|
||||||
$this->pageNavigation($this->getFolderPathHTML($folder, true), "view_folder", $folder);
|
$this->pageNavigation($this->getFolderPathHTML($folder, true), "view_folder", $folder);
|
||||||
|
|
||||||
$mus2 = SeedDMS_Core_File::parse_filesize(ini_get("upload_max_filesize"));
|
$msg = getMLText("max_upload_size").": ".SeedDMS_Core_File::format_filesize($maxuploadsize);
|
||||||
if($maxuploadsize && $maxuploadsize < $mus2)
|
|
||||||
$msg = getMLText("max_upload_size").": ".SeedDMS_Core_File::format_filesize($maxuploadsize);
|
|
||||||
else
|
|
||||||
$msg = getMLText("max_upload_size").": ".SeedDMS_Core_File::format_filesize($mus2);
|
|
||||||
$this->warningMsg($msg);
|
$this->warningMsg($msg);
|
||||||
$this->contentHeading(getMLText("add_document"));
|
$this->contentHeading(getMLText("add_document"));
|
||||||
|
|
||||||
|
|
|
@ -126,11 +126,7 @@ $(document).ready( function() {
|
||||||
$this->pageNavigation($this->getFolderPathHTML($folder, true, $document), "view_document", $document);
|
$this->pageNavigation($this->getFolderPathHTML($folder, true, $document), "view_document", $document);
|
||||||
|
|
||||||
$this->contentHeading(getMLText("linked_files"));
|
$this->contentHeading(getMLText("linked_files"));
|
||||||
$mus2 = SeedDMS_Core_File::parse_filesize(ini_get("upload_max_filesize"));
|
$msg = getMLText("max_upload_size").": ".SeedDMS_Core_File::format_filesize($maxuploadsize);
|
||||||
if($maxuploadsize && $maxuploadsize < $mus2)
|
|
||||||
$msg = getMLText("max_upload_size").": ".SeedDMS_Core_File::format_filesize($maxuploadsize);
|
|
||||||
else
|
|
||||||
$msg = getMLText("max_upload_size").": ".SeedDMS_Core_File::format_filesize($mus2);
|
|
||||||
$this->warningMsg($msg);
|
$this->warningMsg($msg);
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -473,8 +473,7 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
|
||||||
htmlspecialchars($path[$i]->getName())."</a>";
|
htmlspecialchars($path[$i]->getName())."</a>";
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$txtpath .= ($tagAll ? "<a href=\"".$this->params['settings']->_httpRoot."out/out.ViewFolder.php?folderid=".$path[$i]->getID()."&showtree=".showtree()."\">".
|
$txtpath .= ($tagAll ? "<a href=\"".$this->params['settings']->_httpRoot."out/out.ViewFolder.php?folderid=".$path[$i]->getID()."&showtree=".showtree()."\">".htmlspecialchars($path[$i]->getName())."</a>" : htmlspecialchars($path[$i]->getName()));
|
||||||
htmlspecialchars($path[$i]->getName())."</a>" : htmlspecialchars($path[$i]->getName()));
|
|
||||||
}
|
}
|
||||||
$txtpath .= " <span class=\"divider\">/</span></li>";
|
$txtpath .= " <span class=\"divider\">/</span></li>";
|
||||||
}
|
}
|
||||||
|
@ -483,7 +482,7 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
|
||||||
|
|
||||||
return '<ul class="breadcrumb">'.$txtpath.'</ul>';
|
return '<ul class="breadcrumb">'.$txtpath.'</ul>';
|
||||||
} /* }}} */
|
} /* }}} */
|
||||||
|
|
||||||
function pageNavigation($pageTitle, $pageType=null, $extra=null) { /* {{{ */
|
function pageNavigation($pageTitle, $pageType=null, $extra=null) { /* {{{ */
|
||||||
|
|
||||||
if ($pageType!=null && strcasecmp($pageType, "noNav")) {
|
if ($pageType!=null && strcasecmp($pageType, "noNav")) {
|
||||||
|
@ -639,7 +638,7 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
|
||||||
} /* }}} */
|
} /* }}} */
|
||||||
|
|
||||||
protected function showPaneHeader($name, $title, $isactive) { /* {{{ */
|
protected function showPaneHeader($name, $title, $isactive) { /* {{{ */
|
||||||
echo '<li class="nav-item '.($isactive ? 'active' : '').'"><a class="nav-link '.($isactive ? 'active' : '').'" data-target="#'.$name.'" data-toggle="tab" role="tab">'.$title.'</a></li>'."\n";
|
echo '<li class="nav-item '.($isactive ? 'active' : '').'"><a class="nav-link '.($isactive ? 'active' : '').'" data-target="#'.$name.'" data-toggle="tab" role="button">'.$title.'</a></li>'."\n";
|
||||||
} /* }}} */
|
} /* }}} */
|
||||||
|
|
||||||
protected function showStartPaneContent($name, $isactive) { /* {{{ */
|
protected function showStartPaneContent($name, $isactive) { /* {{{ */
|
||||||
|
@ -752,21 +751,16 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
|
||||||
$menuitems['transfer_document'] = array('link'=>$this->params['settings']->_httpRoot."out/out.TransferDocument". $docid, 'label'=>getMLText('transfer_document'));
|
$menuitems['transfer_document'] = array('link'=>$this->params['settings']->_httpRoot."out/out.TransferDocument". $docid, 'label'=>getMLText('transfer_document'));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check if hook exists because otherwise callHook() will override $menuitems */
|
/* Do not use $this->callHook() because $menuitems must be returned by the the
|
||||||
if($this->hasHook('documentNavigationBar'))
|
* first hook and passed to next hook. $this->callHook() will just pass
|
||||||
$menuitems = $this->callHook('documentNavigationBar', $document, $menuitems);
|
* the menuitems to each single hook. Hence, the last hook will win.
|
||||||
|
|
||||||
/* Do not use $this->callHook() because $menuitems must be returned by the hook
|
|
||||||
* or left unchanged
|
|
||||||
*/
|
*/
|
||||||
/*
|
|
||||||
$hookObjs = $this->getHookObjects();
|
$hookObjs = $this->getHookObjects();
|
||||||
foreach($hookObjs as $hookObj) {
|
foreach($hookObjs as $hookObj) {
|
||||||
if (method_exists($hookObj, 'documentNavigationBar')) {
|
if (method_exists($hookObj, 'documentNavigationBar')) {
|
||||||
$menuitems = $hookObj->documentNavigationBar($this, $document, $menuitems);
|
$menuitems = $hookObj->documentNavigationBar($this, $document, $menuitems);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
||||||
self::showNavigationBar($menuitems);
|
self::showNavigationBar($menuitems);
|
||||||
|
|
||||||
|
@ -1277,6 +1271,42 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
|
||||||
}
|
}
|
||||||
} /* }}} */
|
} /* }}} */
|
||||||
|
|
||||||
|
function getOverallStatusIcon($status) { /* {{{ */
|
||||||
|
if (is_null($status)) {
|
||||||
|
return '';
|
||||||
|
} else {
|
||||||
|
$icon = '';
|
||||||
|
$color = '';
|
||||||
|
switch($status) {
|
||||||
|
case S_IN_WORKFLOW:
|
||||||
|
$icon = 'fa fa-circle in-workflow';
|
||||||
|
break;
|
||||||
|
case S_DRAFT_REV:
|
||||||
|
$icon = 'fa fa-circle in-workflow';
|
||||||
|
break;
|
||||||
|
case S_DRAFT_APP:
|
||||||
|
$icon = 'fa fa-circle in-workflow';
|
||||||
|
break;
|
||||||
|
case S_RELEASED:
|
||||||
|
$icon = 'fa-circle released';
|
||||||
|
break;
|
||||||
|
case S_REJECTED:
|
||||||
|
$icon = 'fa-circle rejected';
|
||||||
|
break;
|
||||||
|
case S_OBSOLETE:
|
||||||
|
$icon = 'fa-circle obsolete';
|
||||||
|
break;
|
||||||
|
case S_EXPIRED:
|
||||||
|
$icon = 'fa-circle expired';
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
$icon = 'fa fa-question';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return '<i class="fa '.$icon.'"'.($color ? ' style="color: '.$color.';"' : '').' title="'.getOverallStatusText($status).'"></i>';
|
||||||
|
}
|
||||||
|
} /* }}} */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get attributes for a button opening a modal box
|
* Get attributes for a button opening a modal box
|
||||||
*
|
*
|
||||||
|
@ -1779,10 +1809,10 @@ $(document).ready(function() {
|
||||||
$content .= "<input type=\"checkbox\" id=\"".$fieldname."_".$attrdef->getId()."\" name=\"".$fieldname."[".$attrdef->getId()."]\" value=\"1\" ".($objvalue ? 'checked' : '')." />";
|
$content .= "<input type=\"checkbox\" id=\"".$fieldname."_".$attrdef->getId()."\" name=\"".$fieldname."[".$attrdef->getId()."]\" value=\"1\" ".($objvalue ? 'checked' : '')." />";
|
||||||
break;
|
break;
|
||||||
case SeedDMS_Core_AttributeDefinition::type_date:
|
case SeedDMS_Core_AttributeDefinition::type_date:
|
||||||
$objvalue = $attribute ? (is_object($attribute) ? $attribute->getValue() : $attribute) : '';
|
$objvalue = $attribute ? getReadableDate((is_object($attribute) ? $attribute->getValue() : $attribute)) : '';
|
||||||
$dateformat = getConvertDateFormat($this->params['settings']->_dateformat);
|
$dateformat = getConvertDateFormat($this->params['settings']->_dateformat);
|
||||||
$content .= '<span class="input-append date span12 datepicker" data-date="'.getReadableDate().'" data-date-format="'.$dateformat.'" data-date-language="'.str_replace('_', '-', $this->params['session']->getLanguage()).'">
|
$content .= '<span class="input-append date span12 datepicker" data-date="'.getReadableDate().'" data-date-format="'.$dateformat.'" data-date-language="'.str_replace('_', '-', $this->params['session']->getLanguage()).'">
|
||||||
<input id="'.$fieldname.'_'.$attrdef->getId().($namepostfix ? '_'.$namepostfix : '').'" class="span6" size="16" name="'.$fieldname.'['.$attrdef->getId().']'.($namepostfix ? '['.$namepostfix.']' : '').'" type="text" value="'.($objvalue ? $objvalue : '').'">
|
<input id="'.$fieldname.'_'.$attrdef->getId().($namepostfix ? '_'.$namepostfix : '').'" class="span6" size="16" name="'.$fieldname.'['.$attrdef->getId().']'.($namepostfix ? '['.$namepostfix.']' : '').'" type="text" value="'.($objvalue ? getReadableDate($objvalue) : '').'">
|
||||||
<span class="add-on"><i class="fa fa-calendar"></i></span>
|
<span class="add-on"><i class="fa fa-calendar"></i></span>
|
||||||
</span>';
|
</span>';
|
||||||
break;
|
break;
|
||||||
|
@ -2899,22 +2929,18 @@ $('body').on('click', '[id^=\"table-row-folder\"] td:nth-child(2)', function(ev)
|
||||||
$status = $latestContent->getStatus();
|
$status = $latestContent->getStatus();
|
||||||
$attentionstr = '';
|
$attentionstr = '';
|
||||||
if ( $document->isLocked() ) {
|
if ( $document->isLocked() ) {
|
||||||
$attentionstr .= "<img src=\"".$this->getImgPath("lock.png")."\" title=\"". getMLText("locked_by").": ".htmlspecialchars($document->getLockingUser()->getFullName())."\"> ";
|
$attentionstr .= "<i class=\"fa fa-lock\" title=\"". getMLText("locked_by").": ".htmlspecialchars($document->getLockingUser()->getFullName())."\"></i> ";
|
||||||
}
|
}
|
||||||
$needwkflaction = false;
|
|
||||||
if($workflowmode == 'advanced') {
|
if($workflowmode == 'advanced') {
|
||||||
$workflow = $latestContent->getWorkflow();
|
$workflow = $latestContent->getWorkflow();
|
||||||
if($workflow) {
|
if($workflow && $latestContent->needsWorkflowAction($user)) {
|
||||||
$needwkflaction = $latestContent->needsWorkflowAction($user);
|
$attentionstr .= "<i class=\"fa fa-exclamation-triangle\" title=\"". getMLText("workflow").": ".htmlspecialchars($workflow->getName())."\"></i> ";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ( $needwkflaction ) {
|
|
||||||
$attentionstr .= "<img src=\"".$this->getImgPath("attention.gif")."\" title=\"". getMLText("workflow").": ".htmlspecialchars($workflow->getName())."\"> ";
|
|
||||||
}
|
|
||||||
$content = '';
|
$content = '';
|
||||||
if($attentionstr)
|
if($attentionstr)
|
||||||
$content .= $attentionstr."<br />";
|
$content .= $attentionstr."<br />";
|
||||||
$content .= "<small>";
|
|
||||||
/* Retrieve attacheѕ files */
|
/* Retrieve attacheѕ files */
|
||||||
$files = $document->getDocumentFiles($latestContent->getVersion());
|
$files = $document->getDocumentFiles($latestContent->getVersion());
|
||||||
$files = SeedDMS_Core_DMS::filterDocumentFiles($user, $files);
|
$files = SeedDMS_Core_DMS::filterDocumentFiles($user, $files);
|
||||||
|
@ -2927,17 +2953,18 @@ $('body').on('click', '[id^=\"table-row-folder\"] td:nth-child(2)', function(ev)
|
||||||
$revlinks = $document->getReverseDocumentLinks();
|
$revlinks = $document->getReverseDocumentLinks();
|
||||||
$revlinks = SeedDMS_Core_DMS::filterDocumentLinks($user, $revlinks);
|
$revlinks = SeedDMS_Core_DMS::filterDocumentLinks($user, $revlinks);
|
||||||
|
|
||||||
|
$content .= "<div style=\"font-size: 85%;\">";
|
||||||
if(count($files))
|
if(count($files))
|
||||||
$content .= count($files)." ".getMLText("linked_files")."<br />";
|
$content .= '<i class="fa fa-paperclip" title="'.getMLText("linked_files").'"></i> '.count($files)."<br />";
|
||||||
if(count($links) || count($revlinks))
|
if(count($links) || count($revlinks))
|
||||||
$content .= count($links)."/".count($revlinks)." ".getMLText("linked_documents")."<br />";
|
$content .= '<i class="fa fa-link" title="'.getMLText("linked_documents").'"></i> '.count($links)."/".count($revlinks)."<br />";
|
||||||
if($status["status"] == S_IN_WORKFLOW && $workflowmode == 'advanced') {
|
if($status["status"] == S_IN_WORKFLOW && $workflowmode == 'advanced') {
|
||||||
if($workflowstate = $latestContent->getWorkflowState())
|
if($workflowstate = $latestContent->getWorkflowState())
|
||||||
$content .= '<span title="'.getOverallStatusText($status["status"]).': '.($workflow ? htmlspecialchars($workflow->getName()) : '').'">'.($workflowstate ? htmlspecialchars($workflowstate->getName()) : '').'</span>';
|
$content .= '<span title="'.getOverallStatusText($status["status"]).': '.($workflow ? htmlspecialchars($workflow->getName()) : '').'">'.($workflowstate ? htmlspecialchars($workflowstate->getName()) : '').'</span>';
|
||||||
} else {
|
} else {
|
||||||
$content .= getOverallStatusText($status["status"]);
|
$content .= $this->getOverallStatusIcon($status['status']);
|
||||||
}
|
}
|
||||||
$content .= "</small>";
|
$content .= "</div>";
|
||||||
return $content;
|
return $content;
|
||||||
} /* }}} */
|
} /* }}} */
|
||||||
|
|
||||||
|
@ -3168,6 +3195,53 @@ $('body').on('click', '[id^=\"table-row-folder\"] td:nth-child(2)', function(ev)
|
||||||
return $content;
|
return $content;
|
||||||
} /* }}} */
|
} /* }}} */
|
||||||
|
|
||||||
|
function folderListRowStatus($subFolder) { /* {{{ */
|
||||||
|
$dms = $this->params['dms'];
|
||||||
|
$user = $this->params['user'];
|
||||||
|
$showtree = $this->params['showtree'];
|
||||||
|
$enableRecursiveCount = $this->params['enableRecursiveCount'];
|
||||||
|
$maxRecursiveCount = $this->params['maxRecursiveCount'];
|
||||||
|
|
||||||
|
$content = "<div style=\"font-size: 85%;\">";
|
||||||
|
if($enableRecursiveCount) {
|
||||||
|
if($user->isAdmin()) {
|
||||||
|
/* No need to check for access rights in countChildren() for
|
||||||
|
* admin. So pass 0 as the limit.
|
||||||
|
*/
|
||||||
|
$cc = $subFolder->countChildren($user, 0);
|
||||||
|
if($cc['folder_count'])
|
||||||
|
$content .= '<i class="fa fa-folder" title="'.getMLText("folders").'"></i> '.$cc['folder_count']."<br />";
|
||||||
|
if($cc['document_count'])
|
||||||
|
$content .= '<i class="fa fa-file" title="'.getMLText("documents").'"></i> '.$cc['document_count'];
|
||||||
|
} else {
|
||||||
|
$cc = $subFolder->countChildren($user, $maxRecursiveCount);
|
||||||
|
if($maxRecursiveCount > 5000)
|
||||||
|
$rr = 100.0;
|
||||||
|
else
|
||||||
|
$rr = 10.0;
|
||||||
|
if($cc['folder_count'])
|
||||||
|
$content .= '<i class="fa fa-folder" title="'.getMLText("folders").'"></i> '.(!$cc['folder_precise'] ? '~'.(round($cc['folder_count']/$rr)*$rr) : $cc['folder_count'])."<br />";
|
||||||
|
if($cc['document_count'])
|
||||||
|
$content .= '<i class="fa fa-file" title="'.getMLText("documents").'"></i> '.(!$cc['document_precise'] ? '~'.(round($cc['document_count']/$rr)*$rr) : $cc['document_count']);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
/* FIXME: the following is very inefficient for just getting the number of
|
||||||
|
* subfolders and documents. Making it more efficient is difficult, because
|
||||||
|
* the access rights need to be checked.
|
||||||
|
*/
|
||||||
|
$subsub = $subFolder->getSubFolders();
|
||||||
|
$subsub = SeedDMS_Core_DMS::filterAccess($subsub, $user, M_READ);
|
||||||
|
$subdoc = $subFolder->getDocuments();
|
||||||
|
$subdoc = SeedDMS_Core_DMS::filterAccess($subdoc, $user, M_READ);
|
||||||
|
if(count($subsub))
|
||||||
|
$content .= '<i class="fa fa-folder" title="'.getMLText("folders").'"></i> '.count($subsub)."<br />";
|
||||||
|
if(count($subdoc))
|
||||||
|
$content .= '<i class="fa fa-file" title="'.getMLText("documents").'"></i> '.count($subdoc);
|
||||||
|
}
|
||||||
|
$content .= "</div>";
|
||||||
|
return $content;
|
||||||
|
} /* }}} */
|
||||||
|
|
||||||
function folderListRow($subFolder, $skipcont=false, $extracontent=array()) { /* {{{ */
|
function folderListRow($subFolder, $skipcont=false, $extracontent=array()) { /* {{{ */
|
||||||
$dms = $this->params['dms'];
|
$dms = $this->params['dms'];
|
||||||
$user = $this->params['user'];
|
$user = $this->params['user'];
|
||||||
|
@ -3207,34 +3281,9 @@ $('body').on('click', '[id^=\"table-row-folder\"] td:nth-child(2)', function(ev)
|
||||||
$content .= $extracontent['bottom_title'];
|
$content .= $extracontent['bottom_title'];
|
||||||
$content .= "</td>\n";
|
$content .= "</td>\n";
|
||||||
// $content .= "<td>".htmlspecialchars($owner->getFullName())."</td>";
|
// $content .= "<td>".htmlspecialchars($owner->getFullName())."</td>";
|
||||||
$content .= "<td colspan=\"1\" nowrap><small>";
|
$content .= "<td colspan=\"1\" nowrap>";
|
||||||
if($enableRecursiveCount) {
|
$content .= $this->folderListRowStatus($subFolder);
|
||||||
if($user->isAdmin()) {
|
$content .= "</td>";
|
||||||
/* No need to check for access rights in countChildren() for
|
|
||||||
* admin. So pass 0 as the limit.
|
|
||||||
*/
|
|
||||||
$cc = $subFolder->countChildren($user, 0);
|
|
||||||
$content .= $cc['folder_count']." ".getMLText("folders")."<br />".$cc['document_count']." ".getMLText("documents");
|
|
||||||
} else {
|
|
||||||
$cc = $subFolder->countChildren($user, $maxRecursiveCount);
|
|
||||||
if($maxRecursiveCount > 5000)
|
|
||||||
$rr = 100.0;
|
|
||||||
else
|
|
||||||
$rr = 10.0;
|
|
||||||
$content .= (!$cc['folder_precise'] ? '~'.(round($cc['folder_count']/$rr)*$rr) : $cc['folder_count'])." ".getMLText("folders")."<br />".(!$cc['document_precise'] ? '~'.(round($cc['document_count']/$rr)*$rr) : $cc['document_count'])." ".getMLText("documents");
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
/* FIXME: the following is very inefficient for just getting the number of
|
|
||||||
* subfolders and documents. Making it more efficient is difficult, because
|
|
||||||
* the access rights need to be checked.
|
|
||||||
*/
|
|
||||||
$subsub = $subFolder->getSubFolders();
|
|
||||||
$subsub = SeedDMS_Core_DMS::filterAccess($subsub, $user, M_READ);
|
|
||||||
$subdoc = $subFolder->getDocuments();
|
|
||||||
$subdoc = SeedDMS_Core_DMS::filterAccess($subdoc, $user, M_READ);
|
|
||||||
$content .= count($subsub)." ".getMLText("folders")."<br />".count($subdoc)." ".getMLText("documents");
|
|
||||||
}
|
|
||||||
$content .= "</small></td>";
|
|
||||||
$content .= "<td>";
|
$content .= "<td>";
|
||||||
$content .= $this->folderListRowAction($subFolder, $skipcont, $extracontent);
|
$content .= $this->folderListRowAction($subFolder, $skipcont, $extracontent);
|
||||||
$content .= "</td>";
|
$content .= "</td>";
|
||||||
|
@ -3665,6 +3714,24 @@ $("body").on("click", "span.openpopupbox", function(e) {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<?php
|
||||||
|
} /* }}} */
|
||||||
|
|
||||||
|
public function printAccordion2($title, $content) { /* {{{ */
|
||||||
|
$id = substr(md5(uniqid()), 0, 4);
|
||||||
|
?>
|
||||||
|
<div class="accordion2" id="accordion<?php echo $id; ?>">
|
||||||
|
<a class="accordion2-toggle" data-toggle="collapse" data-parent="#accordion<?php echo $id; ?>" href="#collapse<?php echo $id; ?>">
|
||||||
|
<?php
|
||||||
|
$this->contentHeading($title);
|
||||||
|
?>
|
||||||
|
</a>
|
||||||
|
<div id="collapse<?php echo $id; ?>" class="collapse" style="height: 0px;">
|
||||||
|
<?php
|
||||||
|
echo $content;
|
||||||
|
?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<?php
|
<?php
|
||||||
} /* }}} */
|
} /* }}} */
|
||||||
}
|
}
|
||||||
|
|
|
@ -196,7 +196,30 @@ class SeedDMS_View_Calendar extends SeedDMS_Theme_Style {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case 'attrdate':
|
||||||
|
if(mktime(23,59,59, $end[1], $end[2], $end[0]) > time()) {
|
||||||
|
$attrdefs = $dms->getAllAttributeDefinitions(\SeedDMS_Core_AttributeDefinition::objtype_document);
|
||||||
|
foreach($attrdefs as $attrdef) {
|
||||||
|
if($attrdef->getType() == \SeedDMS_Core_AttributeDefinition::type_date) {
|
||||||
|
$documents = $attrdef->getObjects($this->params['start'], 0, O_GTEQ);
|
||||||
|
foreach ($documents['docs'] as $document){
|
||||||
|
$arr[] = array(
|
||||||
|
'start'=>$document->getAttribute($attrdef)->getValue(),
|
||||||
|
'allDay'=>true,
|
||||||
|
'color'=>'#4455ff',
|
||||||
|
'title'=>$document->getName()."\n".$attrdef->getName(),
|
||||||
|
'documentid'=> $document->getID(),
|
||||||
|
'eventtype'=> $eventtype,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
case 'action':
|
case 'action':
|
||||||
|
/* These are all operations which added a new version, an attachment
|
||||||
|
* or any kind of status change
|
||||||
|
*/
|
||||||
if($this->params['start']) {
|
if($this->params['start']) {
|
||||||
$from = makeTsFromLongDate($this->params['start'].' 00:00:00');
|
$from = makeTsFromLongDate($this->params['start'].' 00:00:00');
|
||||||
} else {
|
} else {
|
||||||
|
@ -325,6 +348,10 @@ class SeedDMS_View_Calendar extends SeedDMS_Theme_Style {
|
||||||
url: 'out.Calendar.php?action=events&eventtype=action',
|
url: 'out.Calendar.php?action=events&eventtype=action',
|
||||||
editable: false
|
editable: false
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
url: 'out.Calendar.php?action=events&eventtype=attrdate',
|
||||||
|
editable: false
|
||||||
|
},
|
||||||
{
|
{
|
||||||
url: 'out.Calendar.php?action=events&eventtype=expires',
|
url: 'out.Calendar.php?action=events&eventtype=expires',
|
||||||
editable: true
|
editable: true
|
||||||
|
|
|
@ -41,15 +41,13 @@ class SeedDMS_View_ClearCache extends SeedDMS_Theme_Style {
|
||||||
$this->contentStart();
|
$this->contentStart();
|
||||||
$this->pageNavigation(getMLText("admin_tools"), "admin_tools");
|
$this->pageNavigation(getMLText("admin_tools"), "admin_tools");
|
||||||
$this->contentHeading(getMLText("clear_cache"));
|
$this->contentHeading(getMLText("clear_cache"));
|
||||||
$this->contentContainerStart('warning');
|
$this->warningMsg(getMLText("confirm_clear_cache", array('cache_dir'=>$cachedir)));
|
||||||
|
|
||||||
?>
|
?>
|
||||||
<form action="../op/op.ClearCache.php" name="form1" method="post">
|
<form action="../op/op.ClearCache.php" name="form1" method="post">
|
||||||
<?php echo createHiddenFieldWithKey('clearcache'); ?>
|
<?php echo createHiddenFieldWithKey('clearcache'); ?>
|
||||||
<p>
|
<?php
|
||||||
<?php printMLText("confirm_clear_cache", array('cache_dir'=>$cachedir));?>
|
$this->contentContainerStart('warning');
|
||||||
</p>
|
?>
|
||||||
<p>
|
|
||||||
<input type="checkbox" name="preview" value="1" checked> <?php printMLText('preview_images'); ?>
|
<input type="checkbox" name="preview" value="1" checked> <?php printMLText('preview_images'); ?>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
|
@ -60,11 +58,11 @@ class SeedDMS_View_ClearCache extends SeedDMS_Theme_Style {
|
||||||
foreach($addcache as $c)
|
foreach($addcache as $c)
|
||||||
echo "<p><input type=\"checkbox\" name=\"".$c[0]."\" value=\"1\" checked> ".$c[1]."</p>";
|
echo "<p><input type=\"checkbox\" name=\"".$c[0]."\" value=\"1\" checked> ".$c[1]."</p>";
|
||||||
}
|
}
|
||||||
|
$this->contentContainerEnd();
|
||||||
|
$this->formSubmit("<i class=\"fa fa-remove\"></i> ".getMLText('clear_cache'), '', '', 'danger');
|
||||||
?>
|
?>
|
||||||
<p><button type="submit" class="btn btn-danger"><i class="fa fa-remove"></i> <?php printMLText("clear_cache");?></button></p>
|
|
||||||
</form>
|
</form>
|
||||||
<?php
|
<?php
|
||||||
$this->contentContainerEnd();
|
|
||||||
$this->contentEnd();
|
$this->contentEnd();
|
||||||
$this->htmlEndPage();
|
$this->htmlEndPage();
|
||||||
} /* }}} */
|
} /* }}} */
|
||||||
|
|
|
@ -78,7 +78,7 @@ class SeedDMS_View_Clipboard extends SeedDMS_Theme_Style {
|
||||||
}
|
}
|
||||||
// $content .= " <li><a href=\"../op/op.ClearClipboard.php?refferer=".urlencode($this->params['refferer'])."\">".getMLText("clear_clipboard")."</a><a class=\"ajax-click\" data-href=\"../op/op.Ajax.php\" data-param1=\"command=clearclipboard\">kkk</a> </li>\n";
|
// $content .= " <li><a href=\"../op/op.ClearClipboard.php?refferer=".urlencode($this->params['refferer'])."\">".getMLText("clear_clipboard")."</a><a class=\"ajax-click\" data-href=\"../op/op.Ajax.php\" data-param1=\"command=clearclipboard\">kkk</a> </li>\n";
|
||||||
// $content .= " <li><a class=\"ajax-click\" data-href=\"../op/op.Ajax.php\" data-param1=\"command=clearclipboard\">".getMLText("clear_clipboard")."</a></li>\n";
|
// $content .= " <li><a class=\"ajax-click\" data-href=\"../op/op.Ajax.php\" data-param1=\"command=clearclipboard\">".getMLText("clear_clipboard")."</a></li>\n";
|
||||||
$subitems[] = array('label'=>getMLText('clear_clipboard'), 'attributes'=>array(array('class', 'ajax-click'), array('data-href', $this->params['settings']->_httpRoot.'op/op.Ajax.php'), array('data-param1', 'command=clearclipboard')));
|
$subitems[] = array('label'=>getMLText('clear_clipboard'), 'class'=>'ajax-click', 'attributes'=>array(array('data-href', $this->params['settings']->_httpRoot.'op/op.Ajax.php'), array('data-param1', 'command=clearclipboard')));
|
||||||
if($this->hasHook('clipboardMenuItems'))
|
if($this->hasHook('clipboardMenuItems'))
|
||||||
$subitems = $this->callHook('clipboardMenuItems', $clipboard, $subitems);
|
$subitems = $this->callHook('clipboardMenuItems', $clipboard, $subitems);
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -97,8 +97,8 @@ $(document).ready(function() {
|
||||||
$version = $this->params['version'];
|
$version = $this->params['version'];
|
||||||
?>
|
?>
|
||||||
<ul class="nav nav-pills" id="preview-tab" role="tablist">
|
<ul class="nav nav-pills" id="preview-tab" role="tablist">
|
||||||
<li class="active"><a data-target="#preview_markdown" data-toggle="tab" role="tab"><?php printMLText('preview_markdown'); ?></a></li>
|
<li class="nav-item active"><a class="nav-link active" data-target="#preview_markdown" data-toggle="tab" role="button"><?php printMLText('preview_markdown'); ?></a></li>
|
||||||
<li><a data-target="#preview_plain" data-toggle="tab" role="tab"><?php printMLText('preview_plain'); ?></a></li>
|
<li class="nav-item"><a class="nav-link" data-target="#preview_plain" data-toggle="tab" role="button"><?php printMLText('preview_plain'); ?></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="tab-content">
|
<div class="tab-content">
|
||||||
<div class="tab-pane active" id="preview_markdown" role="tabpanel">
|
<div class="tab-pane active" id="preview_markdown" role="tabpanel">
|
||||||
|
|
|
@ -286,8 +286,8 @@ class SeedDMS_View_ExtensionMgr extends SeedDMS_Theme_Style {
|
||||||
$this->columnStart(8);
|
$this->columnStart(8);
|
||||||
?>
|
?>
|
||||||
<ul class="nav nav-pills" id="extensionstab" role="tablist">
|
<ul class="nav nav-pills" id="extensionstab" role="tablist">
|
||||||
<li class="nav-item <?php if(!$currenttab || $currenttab == 'installed') echo 'active'; ?>"><a class="nav-link <?php if(!$currenttab || $currenttab == 'installed') echo 'active'; ?>" data-target="#installed" data-toggle="tab" role="tab"><?= getMLText('extension_mgr_installed'); ?></a></li>
|
<li class="nav-item <?php if(!$currenttab || $currenttab == 'installed') echo 'active'; ?>"><a class="nav-link <?php if(!$currenttab || $currenttab == 'installed') echo 'active'; ?>" data-target="#installed" data-toggle="tab" role="button"><?= getMLText('extension_mgr_installed'); ?></a></li>
|
||||||
<li class="nav-item <?php if($currenttab == 'repository') echo 'active'; ?>"><a class="nav-link <?php if($currenttab == 'repository') echo 'active'; ?>" data-target="#repository" data-toggle="tab" role="tab"><?= getMLText('extension_mgr_repository'); ?></a></li>
|
<li class="nav-item <?php if($currenttab == 'repository') echo 'active'; ?>"><a class="nav-link <?php if($currenttab == 'repository') echo 'active'; ?>" data-target="#repository" data-toggle="tab" role="button"><?= getMLText('extension_mgr_repository'); ?></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="tab-content">
|
<div class="tab-content">
|
||||||
<div class="tab-pane <?php if(!$currenttab || $currenttab == 'installed') echo 'active'; ?>" id="installed" role="tabpanel">
|
<div class="tab-pane <?php if(!$currenttab || $currenttab == 'installed') echo 'active'; ?>" id="installed" role="tabpanel">
|
||||||
|
|
|
@ -85,8 +85,8 @@ $(document).ready( function() {
|
||||||
foreach($managers as $manager)
|
foreach($managers as $manager)
|
||||||
if($manager->getId() == $member->getId())
|
if($manager->getId() == $member->getId())
|
||||||
echo ", ".getMLText("manager");
|
echo ", ".getMLText("manager");
|
||||||
if($ismanager) {
|
if($ismanager && $member->getId() != $user->getId()) {
|
||||||
echo ' <a href="../op/op.GroupView.php?action=del&groupid='.$group->getId().'&userid='.$member->getId().'" class="btn btn-mini"><i class="fa fa-remove"></i> '.getMLText("rm_user").'</a>';
|
echo ' <a href="../op/op.GroupView.php?action=del&groupid='.$group->getId().'&userid='.$member->getId().'" class="btn btn-mini btn-sm"><i class="fa fa-remove"></i> '.getMLText("rm_user").'</a>';
|
||||||
}
|
}
|
||||||
echo "</li>";
|
echo "</li>";
|
||||||
}
|
}
|
||||||
|
@ -94,7 +94,7 @@ $(document).ready( function() {
|
||||||
echo "<li>".getMLText("add_user_to_group").":";
|
echo "<li>".getMLText("add_user_to_group").":";
|
||||||
echo "<form id=\"form\" action=\"../op/op.GroupView.php\">";
|
echo "<form id=\"form\" action=\"../op/op.GroupView.php\">";
|
||||||
echo "<input type=\"hidden\" name=\"action\" value=\"add\" /><input type=\"hidden\" name=\"groupid\" value=\"".$group->getId()."\" />";
|
echo "<input type=\"hidden\" name=\"action\" value=\"add\" /><input type=\"hidden\" name=\"groupid\" value=\"".$group->getId()."\" />";
|
||||||
echo "<select id=\"selector\" name=\"userid\" _onChange=\"javascript: submit();\">";
|
echo "<select id=\"selector\" name=\"userid\" class=\"chzn-select\">";
|
||||||
echo "<option value=\"\"></option>";
|
echo "<option value=\"\"></option>";
|
||||||
foreach($allUsers as $u) {
|
foreach($allUsers as $u) {
|
||||||
if(!$u->isAdmin() && !$u->isGuest() && !in_array($u->getId(), $memberids))
|
if(!$u->isAdmin() && !$u->isGuest() && !in_array($u->getId(), $memberids))
|
||||||
|
|
|
@ -52,8 +52,8 @@ class SeedDMS_View_ImportFS extends SeedDMS_Theme_Style {
|
||||||
|
|
||||||
if($dropfolderdir && file_exists($dropfolderdir.'/'.$user->getLogin())) {
|
if($dropfolderdir && file_exists($dropfolderdir.'/'.$user->getLogin())) {
|
||||||
$this->warningMsg(getMLText("import_fs_warning"));
|
$this->warningMsg(getMLText("import_fs_warning"));
|
||||||
$this->contentContainerStart();
|
|
||||||
print "<form class=\"form-horizontal\" action=\"../op/op.ImportFS.php\" name=\"form1\">";
|
print "<form class=\"form-horizontal\" action=\"../op/op.ImportFS.php\" name=\"form1\">";
|
||||||
|
$this->contentContainerStart();
|
||||||
$this->formField(getMLText("choose_target_folder"), $this->getFolderChooserHtml("form1", M_READWRITE));
|
$this->formField(getMLText("choose_target_folder"), $this->getFolderChooserHtml("form1", M_READWRITE));
|
||||||
$this->formField(
|
$this->formField(
|
||||||
getMLText("dropfolder_folder"),
|
getMLText("dropfolder_folder"),
|
||||||
|
@ -90,9 +90,9 @@ class SeedDMS_View_ImportFS extends SeedDMS_Theme_Style {
|
||||||
'value'=>'1'
|
'value'=>'1'
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
$this->contentContainerEnd();
|
||||||
$this->formSubmit("<i class=\"fa fa-save\"></i> ".getMLText('import'));
|
$this->formSubmit("<i class=\"fa fa-save\"></i> ".getMLText('import'));
|
||||||
print "</form>\n";
|
print "</form>\n";
|
||||||
$this->contentContainerEnd();
|
|
||||||
} else {
|
} else {
|
||||||
$this->warningMsg(getMLText("dropfolderdir_missing"));
|
$this->warningMsg(getMLText("dropfolderdir_missing"));
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,8 +53,8 @@ class SeedDMS_View_ImportUsers extends SeedDMS_Theme_Style {
|
||||||
|
|
||||||
$this->rowStart();
|
$this->rowStart();
|
||||||
$this->columnStart(4);
|
$this->columnStart(4);
|
||||||
$this->contentContainerStart();
|
|
||||||
print "<form class=\"form-horizontal\" action=\"../op/op.ImportUsers.php\" name=\"form1\" enctype=\"multipart/form-data\" method=\"post\">";
|
print "<form class=\"form-horizontal\" action=\"../op/op.ImportUsers.php\" name=\"form1\" enctype=\"multipart/form-data\" method=\"post\">";
|
||||||
|
$this->contentContainerStart();
|
||||||
$this->formField(
|
$this->formField(
|
||||||
getMLText("userdata_file"),
|
getMLText("userdata_file"),
|
||||||
$this->getFileChooserHtml('userdata', false)
|
$this->getFileChooserHtml('userdata', false)
|
||||||
|
@ -77,9 +77,9 @@ class SeedDMS_View_ImportUsers extends SeedDMS_Theme_Style {
|
||||||
'value'=>'1'
|
'value'=>'1'
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
$this->contentContainerEnd();
|
||||||
$this->formSubmit("<i class=\"fa fa-save\"></i> ".getMLText('import'));
|
$this->formSubmit("<i class=\"fa fa-save\"></i> ".getMLText('import'));
|
||||||
print "</form>\n";
|
print "</form>\n";
|
||||||
$this->contentContainerEnd();
|
|
||||||
|
|
||||||
$this->columnEnd();
|
$this->columnEnd();
|
||||||
$this->columnStart(8);
|
$this->columnStart(8);
|
||||||
|
|
|
@ -111,7 +111,7 @@ class SeedDMS_View_Info extends SeedDMS_Theme_Style {
|
||||||
echo "<th>".getMLText("name");
|
echo "<th>".getMLText("name");
|
||||||
echo "</th>\n";
|
echo "</th>\n";
|
||||||
echo "</tr>\n</thead>\n<tbody>\n";
|
echo "</tr>\n</thead>\n<tbody>\n";
|
||||||
$requiredext = array('zip', 'xml', 'xsl', 'json', 'intl', 'fileinfo', 'mbstring', 'curl');
|
$requiredext = array('zip', 'xml', 'xsl', 'json', 'intl', 'fileinfo', 'mbstring', 'curl', 'sqlite3', 'imagick');
|
||||||
foreach(array_diff($requiredext, $phpextensions) as $extname)
|
foreach(array_diff($requiredext, $phpextensions) as $extname)
|
||||||
echo "<tr><td>".$extname."</td><td>"."</td></tr>\n";
|
echo "<tr><td>".$extname."</td><td>"."</td></tr>\n";
|
||||||
echo "</tbody>\n</table>\n";
|
echo "</tbody>\n</table>\n";
|
||||||
|
|
|
@ -53,13 +53,19 @@ class SeedDMS_View_MyDocuments extends SeedDMS_Theme_Style {
|
||||||
$orderby = $this->params['orderby'];
|
$orderby = $this->params['orderby'];
|
||||||
$showInProcess = $this->params['showinprocess'];
|
$showInProcess = $this->params['showinprocess'];
|
||||||
$cachedir = $this->params['cachedir'];
|
$cachedir = $this->params['cachedir'];
|
||||||
|
$conversionmgr = $this->params['conversionmgr'];
|
||||||
$workflowmode = $this->params['workflowmode'];
|
$workflowmode = $this->params['workflowmode'];
|
||||||
$previewwidth = $this->params['previewWidthList'];
|
$previewwidth = $this->params['previewWidthList'];
|
||||||
|
$previewconverters = $this->params['previewConverters'];
|
||||||
$timeout = $this->params['timeout'];
|
$timeout = $this->params['timeout'];
|
||||||
$xsendfile = $this->params['xsendfile'];
|
$xsendfile = $this->params['xsendfile'];
|
||||||
|
|
||||||
$db = $dms->getDB();
|
$db = $dms->getDB();
|
||||||
$previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth, $timeout, $xsendfile);
|
$previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth, $timeout, $xsendfile);
|
||||||
|
if($conversionmgr)
|
||||||
|
$previewer->setConversionMgr($conversionmgr);
|
||||||
|
else
|
||||||
|
$previewer->setConverters($previewconverters);
|
||||||
|
|
||||||
$this->htmlStartPage(getMLText("my_documents"));
|
$this->htmlStartPage(getMLText("my_documents"));
|
||||||
$this->globalNavigation();
|
$this->globalNavigation();
|
||||||
|
@ -951,7 +957,6 @@ class SeedDMS_View_MyDocuments extends SeedDMS_Theme_Style {
|
||||||
print "<th>".getMLText("action")."</th>\n";
|
print "<th>".getMLText("action")."</th>\n";
|
||||||
print "</tr>\n</thead>\n<tbody>\n";
|
print "</tr>\n</thead>\n<tbody>\n";
|
||||||
|
|
||||||
$previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth, $timeout, $xsendfile);
|
|
||||||
foreach ($resArr as $res) {
|
foreach ($resArr as $res) {
|
||||||
$document = $dms->getDocument($res["documentID"]);
|
$document = $dms->getDocument($res["documentID"]);
|
||||||
$document->verifyLastestContentExpriry();
|
$document->verifyLastestContentExpriry();
|
||||||
|
|
71
views/bootstrap/class.NotificationServices.php
Normal file
71
views/bootstrap/class.NotificationServices.php
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Implementation of Notification Services view
|
||||||
|
*
|
||||||
|
* @category DMS
|
||||||
|
* @package SeedDMS
|
||||||
|
* @license GPL 2
|
||||||
|
* @version @version@
|
||||||
|
* @author Uwe Steinmann <uwe@steinmann.cx>
|
||||||
|
* @copyright Copyright (C) 2002-2005 Markus Westphal,
|
||||||
|
* 2006-2008 Malcolm Cowe, 2010 Matteo Lucarelli,
|
||||||
|
* 2010-2012 Uwe Steinmann
|
||||||
|
* @version Release: @package_version@
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Include parent class
|
||||||
|
*/
|
||||||
|
//require_once("class.Bootstrap.php");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class which outputs the html page for Notification Services view
|
||||||
|
*
|
||||||
|
* @category DMS
|
||||||
|
* @package SeedDMS
|
||||||
|
* @author Uwe Steinmann <uwe@steinmann.cx>
|
||||||
|
* @copyright Copyright (C) 2016 Uwe Steinmann
|
||||||
|
* @version Release: @package_version@
|
||||||
|
*/
|
||||||
|
class SeedDMS_View_NotificationServices extends SeedDMS_Theme_Style {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* List all registered hooks
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
function list_notification_services($notifier) { /* {{{ */
|
||||||
|
if(!$notifier)
|
||||||
|
return;
|
||||||
|
|
||||||
|
$services = $notifier->getServices();
|
||||||
|
|
||||||
|
echo "<table class=\"table table-condensed table-sm\">\n";
|
||||||
|
echo "<thead>";
|
||||||
|
echo "<tr><th>".getMLText('service_name')."</th><th>".getMLText('class_name')."</th><th>".getMLText('service_has_filter')."</th></tr>\n";
|
||||||
|
echo "</thead>";
|
||||||
|
echo "<tbody>";
|
||||||
|
foreach($services as $name=>$service) {
|
||||||
|
echo "<tr><td>".$name."</td><td>".get_class($service)."</td><td>".(is_callable([$service, 'filter']) ? '<i class="fa fa-check"></i>' : '')."</td></tr>";
|
||||||
|
}
|
||||||
|
echo "</tbody>";
|
||||||
|
echo "</table>\n";
|
||||||
|
} /* }}} */
|
||||||
|
|
||||||
|
function show() { /* {{{ */
|
||||||
|
$dms = $this->params['dms'];
|
||||||
|
$user = $this->params['user'];
|
||||||
|
$notifier = $this->params['notifier'];
|
||||||
|
|
||||||
|
$this->htmlStartPage(getMLText("admin_tools"));
|
||||||
|
$this->globalNavigation();
|
||||||
|
$this->contentStart();
|
||||||
|
$this->pageNavigation(getMLText("admin_tools"), "admin_tools");
|
||||||
|
$this->contentHeading(getMLText("list_notification_services"));
|
||||||
|
|
||||||
|
self::list_notification_services($notifier);
|
||||||
|
|
||||||
|
$this->contentEnd();
|
||||||
|
$this->htmlEndPage();
|
||||||
|
} /* }}} */
|
||||||
|
}
|
||||||
|
|
|
@ -188,6 +188,7 @@ class SeedDMS_View_ObjectCheck extends SeedDMS_Theme_Style {
|
||||||
$setchecksum = $this->params['setchecksum'];
|
$setchecksum = $this->params['setchecksum'];
|
||||||
$rootfolder = $this->params['rootfolder'];
|
$rootfolder = $this->params['rootfolder'];
|
||||||
$this->enableClipboard = $this->params['enableclipboard'];
|
$this->enableClipboard = $this->params['enableclipboard'];
|
||||||
|
$conversionmgr = $this->params['conversionmgr'];
|
||||||
$cachedir = $this->params['cachedir'];
|
$cachedir = $this->params['cachedir'];
|
||||||
$previewwidth = $this->params['previewWidthList'];
|
$previewwidth = $this->params['previewWidthList'];
|
||||||
$previewconverters = $this->params['previewConverters'];
|
$previewconverters = $this->params['previewConverters'];
|
||||||
|
@ -195,7 +196,10 @@ class SeedDMS_View_ObjectCheck extends SeedDMS_Theme_Style {
|
||||||
$xsendfile = $this->params['xsendfile'];
|
$xsendfile = $this->params['xsendfile'];
|
||||||
|
|
||||||
$previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth, $timeout, $xsendfile);
|
$previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth, $timeout, $xsendfile);
|
||||||
$previewer->setConverters($previewconverters);
|
if($conversionmgr)
|
||||||
|
$previewer->setConversionMgr($conversionmgr);
|
||||||
|
else
|
||||||
|
$previewer->setConverters($previewconverters);
|
||||||
|
|
||||||
$this->htmlStartPage(getMLText("admin_tools"));
|
$this->htmlStartPage(getMLText("admin_tools"));
|
||||||
$this->globalNavigation();
|
$this->globalNavigation();
|
||||||
|
|
|
@ -43,8 +43,12 @@ $(document).ready( function() {
|
||||||
$('body').on('click', 'label.checkbox, td span', function(ev){
|
$('body').on('click', 'label.checkbox, td span', function(ev){
|
||||||
ev.preventDefault();
|
ev.preventDefault();
|
||||||
$('#kkkk.ajax').data('action', $(this).data('action'));
|
$('#kkkk.ajax').data('action', $(this).data('action'));
|
||||||
$('#kkkk.ajax').trigger('update', {userid: $(this).data('userid'), task: $(this).data('task')});
|
$('#kkkk.ajax').trigger('update', {userid: $(this).data('userid'), task: $(this).data('task'), type: $(this).data('type')});
|
||||||
});
|
});
|
||||||
|
$('body').on('click', '#selectall', function(ev){
|
||||||
|
$("input.markforprocess").each(function () { this.checked = !this.checked; });
|
||||||
|
ev.preventDefault();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
<?php
|
<?php
|
||||||
} /* }}} */
|
} /* }}} */
|
||||||
|
@ -52,20 +56,26 @@ $(document).ready( function() {
|
||||||
function printList() { /* {{{ */
|
function printList() { /* {{{ */
|
||||||
$dms = $this->params['dms'];
|
$dms = $this->params['dms'];
|
||||||
$user = $this->params['user'];
|
$user = $this->params['user'];
|
||||||
$settings = $this->params['settings'];
|
$settings = $this->params['settings'];
|
||||||
$cachedir = $this->params['cachedir'];
|
$cachedir = $this->params['cachedir'];
|
||||||
$rootfolder = $this->params['rootfolder'];
|
$rootfolder = $this->params['rootfolder'];
|
||||||
$previewwidth = $this->params['previewWidthList'];
|
$conversionmgr = $this->params['conversionmgr'];
|
||||||
$previewconverters = $this->params['previewconverters'];
|
$previewwidth = $this->params['previewWidthList'];
|
||||||
$timeout = $this->params['timeout'];
|
$previewconverters = $this->params['previewconverters'];
|
||||||
|
$timeout = $this->params['timeout'];
|
||||||
$rmuser = $this->params['rmuser'];
|
$rmuser = $this->params['rmuser'];
|
||||||
|
$allusers = $this->params['allusers'];
|
||||||
$task = $this->params['task'];
|
$task = $this->params['task'];
|
||||||
|
$type = $this->params['type'];
|
||||||
|
|
||||||
if(!$task)
|
if(!$task)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
$previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth, $timeout);
|
$previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth, $timeout);
|
||||||
$previewer->setConverters($previewconverters);
|
if($conversionmgr)
|
||||||
|
$previewer->setConversionMgr($conversionmgr);
|
||||||
|
else
|
||||||
|
$previewer->setConverters($previewconverters);
|
||||||
|
|
||||||
$docs = array();
|
$docs = array();
|
||||||
switch($task) {
|
switch($task) {
|
||||||
|
@ -151,12 +161,23 @@ $(document).ready( function() {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if($docs) {
|
if($docs) {
|
||||||
|
echo '<form id="processform" action="../op/op.UsrMgr.php" method="post">';
|
||||||
|
echo '<input type="hidden" name="userid" value="'.$rmuser->getID().'">';
|
||||||
|
if($type) {
|
||||||
|
$kk = explode('_', $type, 2);
|
||||||
|
echo '<input type="hidden" name="status['.$kk[0].'][]" value="'.$kk[1].'">';
|
||||||
|
}
|
||||||
|
echo '<input type="hidden" name="task" value="'.$task.'">';
|
||||||
|
echo '<input type="hidden" name="action" value="removefromprocesses">';
|
||||||
|
echo '<input type="hidden" name="needsdocs" value="1">';
|
||||||
|
echo createHiddenFieldWithKey('removefromprocesses');
|
||||||
print "<table class=\"table table-condensed table-sm\">";
|
print "<table class=\"table table-condensed table-sm\">";
|
||||||
print "<thead>\n<tr>\n";
|
print "<thead>\n<tr>\n";
|
||||||
print "<th></th>\n";
|
print "<th></th>\n";
|
||||||
print "<th>".getMLText("name")."</th>\n";
|
print "<th>".getMLText("name")."</th>\n";
|
||||||
print "<th>".getMLText("status")."</th>\n";
|
print "<th>".getMLText("status")."</th>\n";
|
||||||
print "<th>".getMLText("action")."</th>\n";
|
print "<th>".getMLText("action")."</th>\n";
|
||||||
|
print "<th><span id=\"selectall\"><i class=\"fa fa-arrows-h\" title=\"".getMLText('object_cleaner_toggle_checkboxes')."\"></i></span></th>\n";
|
||||||
print "</tr>\n</thead>\n<tbody>\n";
|
print "</tr>\n</thead>\n<tbody>\n";
|
||||||
foreach($docs as $document) {
|
foreach($docs as $document) {
|
||||||
$document->verifyLastestContentExpriry();
|
$document->verifyLastestContentExpriry();
|
||||||
|
@ -170,11 +191,33 @@ $(document).ready( function() {
|
||||||
$extracontent['below_title'] = $this->getListRowPath($document);
|
$extracontent['below_title'] = $this->getListRowPath($document);
|
||||||
echo $this->documentListRowStart($document);
|
echo $this->documentListRowStart($document);
|
||||||
echo $this->documentListRow($document, $previewer, true, 0, $extracontent);
|
echo $this->documentListRow($document, $previewer, true, 0, $extracontent);
|
||||||
|
echo '<td>';
|
||||||
|
echo '<input type="checkbox" class="markforprocess" value="'.$document->getId().'" name="docs['.$document->getId().']">';
|
||||||
|
echo '</td>';
|
||||||
echo $this->documentListRowEnd($document);
|
echo $this->documentListRowEnd($document);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
echo "</tbody>\n</table>";
|
echo "</tbody>\n</table>";
|
||||||
|
$options = array(array(0, getMLText('do_no_transfer_to_user')));
|
||||||
|
foreach ($allusers as $currUser) {
|
||||||
|
if ($currUser->isGuest() || ($currUser->getID() == $rmuser->getID()) )
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if ($rmuser && $currUser->getID()==$rmuser->getID()) $selected=$count;
|
||||||
|
$options[] = array($currUser->getID(), htmlspecialchars($currUser->getLogin()." - ".$currUser->getFullName()));
|
||||||
|
}
|
||||||
|
$this->formField(
|
||||||
|
getMLText("transfer_process_to_user"),
|
||||||
|
array(
|
||||||
|
'element'=>'select',
|
||||||
|
'name'=>'assignTo',
|
||||||
|
'class'=>'chzn-select',
|
||||||
|
'options'=>$options
|
||||||
|
)
|
||||||
|
);
|
||||||
|
echo '<p><button type="submit" class="btn btn-primary"><i class="fa fa-remove"></i> '.getMLText('transfer').'</button>';
|
||||||
|
echo '</form>';
|
||||||
}
|
}
|
||||||
} /* }}} */
|
} /* }}} */
|
||||||
|
|
||||||
|
@ -182,6 +225,7 @@ $(document).ready( function() {
|
||||||
$dms = $this->params['dms'];
|
$dms = $this->params['dms'];
|
||||||
$user = $this->params['user'];
|
$user = $this->params['user'];
|
||||||
$rmuser = $this->params['rmuser'];
|
$rmuser = $this->params['rmuser'];
|
||||||
|
$allusers = $this->params['allusers'];
|
||||||
|
|
||||||
$this->htmlStartPage(getMLText("admin_tools"));
|
$this->htmlStartPage(getMLText("admin_tools"));
|
||||||
$this->globalNavigation();
|
$this->globalNavigation();
|
||||||
|
@ -189,9 +233,9 @@ $(document).ready( function() {
|
||||||
$this->pageNavigation(getMLText("admin_tools"), "admin_tools");
|
$this->pageNavigation(getMLText("admin_tools"), "admin_tools");
|
||||||
$this->contentHeading(getMLText("rm_user_from_processes"));
|
$this->contentHeading(getMLText("rm_user_from_processes"));
|
||||||
|
|
||||||
$this->warningMsg(getMLText("confirm_rm_user_from_processes", array ("username" => htmlspecialchars($rmuser->getFullName()))));
|
|
||||||
$this->rowStart();
|
$this->rowStart();
|
||||||
$this->columnStart(4);
|
$this->columnStart(4);
|
||||||
|
$this->warningMsg(getMLText("confirm_rm_user_from_processes", array ("username" => htmlspecialchars($rmuser->getFullName()))));
|
||||||
|
|
||||||
$reviewStatus = $rmuser->getReviewStatus();
|
$reviewStatus = $rmuser->getReviewStatus();
|
||||||
$tmpr = array();
|
$tmpr = array();
|
||||||
|
@ -287,28 +331,30 @@ $(document).ready( function() {
|
||||||
<?php
|
<?php
|
||||||
echo "<table class=\"table table-condensed table-sm\">";
|
echo "<table class=\"table table-condensed table-sm\">";
|
||||||
foreach($out as $o) {
|
foreach($out as $o) {
|
||||||
echo "<tr><td>".$o[3]."</td><td>".$o[4]."</td><td><input style=\"margin-top: 0px;\" type=\"checkbox\" name=\"status[".$o[1]."][]\" value=\"".$o[0]."\"></td><td><span data-action=\"printList\" data-userid=\"".$rmuser->getId()."\" data-task=\"".$o[1]."s_".$o[2]."\"><i class=\"fa fa-list\"></i></span></td></tr>";
|
echo "<tr><td>".$o[3]."</td><td>".$o[4]."</td><td><input style=\"margin-top: 0px;\" type=\"checkbox\" name=\"status[".$o[1]."][]\" value=\"".$o[0]."\"></td><td><span data-action=\"printList\" data-userid=\"".$rmuser->getId()."\" data-task=\"".$o[1]."s_".$o[2]."\" data-type=\"".$o[1]."_".$o[0]."\"><i class=\"fa fa-list\"></i></span></td></tr>";
|
||||||
}
|
}
|
||||||
echo "</table>";
|
echo "</table>";
|
||||||
|
|
||||||
/*
|
$this->infoMsg(getMLText("info_rm_user_from_processes_user"));
|
||||||
$options = array();
|
|
||||||
$allUsers = $dms->getAllUsers($sortusersinlist);
|
$options = array(array(0, getMLText('do_no_transfer_to_user')));
|
||||||
foreach ($allUsers as $currUser) {
|
foreach ($allusers as $currUser) {
|
||||||
if (!$currUser->isGuest())
|
if ($currUser->isGuest() || ($currUser->getID() == $rmuser->getID()) )
|
||||||
$options[] = array($currUser->getID(), htmlspecialchars($currUser->getLogin()), ($currUser->getID()==$user->getID()), array(array('data-subtitle', htmlspecialchars($currUser->getFullName()))));
|
continue;
|
||||||
|
|
||||||
|
if ($rmuser && $currUser->getID()==$rmuser->getID()) $selected=$count;
|
||||||
|
$options[] = array($currUser->getID(), htmlspecialchars($currUser->getLogin()." - ".$currUser->getFullName()));
|
||||||
}
|
}
|
||||||
$this->formField(
|
$this->formField(
|
||||||
getMLText("user"),
|
getMLText("transfer_process_to_user"),
|
||||||
array(
|
array(
|
||||||
'element'=>'select',
|
'element'=>'select',
|
||||||
'id'=>'newuser',
|
'name'=>'assignTo',
|
||||||
'name'=>'newuserid',
|
|
||||||
'class'=>'chzn-select',
|
'class'=>'chzn-select',
|
||||||
'options'=>$options
|
'options'=>$options
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
*/
|
|
||||||
$this->formSubmit("<i class=\"fa fa-remove\"></i> ".getMLText('rm_user_from_processes'));
|
$this->formSubmit("<i class=\"fa fa-remove\"></i> ".getMLText('rm_user_from_processes'));
|
||||||
?>
|
?>
|
||||||
|
|
||||||
|
|
|
@ -197,11 +197,11 @@ function typeahead() { /* {{{ */
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
<ul class="nav nav-pills" id="searchtab">
|
<ul class="nav nav-pills" id="searchtab">
|
||||||
<li class="nav-item <?php echo ($fullsearch == false) ? 'active' : ''; ?>"><a class="nav-link <?php echo ($fullsearch == false) ? 'active' : ''; ?>" data-target="#database" data-toggle="tab"><?php printMLText('databasesearch'); ?></a></li>
|
<li class="nav-item <?php echo ($fullsearch == false) ? 'active' : ''; ?>"><a class="nav-link <?php echo ($fullsearch == false) ? 'active' : ''; ?>" data-target="#database" data-toggle="tab" role="button"><?php printMLText('databasesearch'); ?></a></li>
|
||||||
<?php
|
<?php
|
||||||
if($enablefullsearch) {
|
if($enablefullsearch) {
|
||||||
?>
|
?>
|
||||||
<li class="nav-item <?php echo ($fullsearch == true) ? 'active' : ''; ?>"><a class="nav-link <?php echo ($fullsearch == true) ? 'active' : ''; ?>" data-target="#fulltext" data-toggle="tab"><?php printMLText('fullsearch'); ?></a></li>
|
<li class="nav-item <?php echo ($fullsearch == true) ? 'active' : ''; ?>"><a class="nav-link <?php echo ($fullsearch == true) ? 'active' : ''; ?>" data-target="#fulltext" data-toggle="tab" role="button"><?php printMLText('fullsearch'); ?></a></li>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -117,7 +117,7 @@ class SeedDMS_View_Settings extends SeedDMS_Theme_Style {
|
||||||
$settings = $this->params['settings'];
|
$settings = $this->params['settings'];
|
||||||
?>
|
?>
|
||||||
<tr title="<?= getMLText($title."_desc") ?>">
|
<tr title="<?= getMLText($title."_desc") ?>">
|
||||||
<td><?= getMLText($title) ?>:</td>
|
<td><?= getMLText($title) ?></td>
|
||||||
<?php
|
<?php
|
||||||
if($type === 'array')
|
if($type === 'array')
|
||||||
$value = $settings->arrayToString($settings->{"_".$name});
|
$value = $settings->arrayToString($settings->{"_".$name});
|
||||||
|
@ -144,7 +144,7 @@ class SeedDMS_View_Settings extends SeedDMS_Theme_Style {
|
||||||
$settings = $this->params['settings'];
|
$settings = $this->params['settings'];
|
||||||
?>
|
?>
|
||||||
<tr title="<?= htmlspecialchars($title_desc) ?>">
|
<tr title="<?= htmlspecialchars($title_desc) ?>">
|
||||||
<td><?= $title ?>:</td>
|
<td><?= $title ?></td>
|
||||||
<td><?= $rawdata ?></td>
|
<td><?= $rawdata ?></td>
|
||||||
</tr>
|
</tr>
|
||||||
<?php
|
<?php
|
||||||
|
@ -160,7 +160,7 @@ class SeedDMS_View_Settings extends SeedDMS_Theme_Style {
|
||||||
$settings = $this->params['settings'];
|
$settings = $this->params['settings'];
|
||||||
?>
|
?>
|
||||||
<tr title="<?= getMLText($title."_desc") ?>">
|
<tr title="<?= getMLText($title."_desc") ?>">
|
||||||
<td><?= getMLText($title) ?>:</td>
|
<td><?= getMLText($title) ?></td>
|
||||||
<td><input name="<?= $name ?>" type="checkbox" <?php if ($settings->{"_".$name}) echo "checked" ?> /></td>
|
<td><input name="<?= $name ?>" type="checkbox" <?php if ($settings->{"_".$name}) echo "checked" ?> /></td>
|
||||||
</tr>
|
</tr>
|
||||||
<?php
|
<?php
|
||||||
|
@ -173,7 +173,7 @@ class SeedDMS_View_Settings extends SeedDMS_Theme_Style {
|
||||||
// echo $isass ? 'asso' : 'indexed';
|
// echo $isass ? 'asso' : 'indexed';
|
||||||
?>
|
?>
|
||||||
<tr title="<?= getMLText($title."_desc") ?>">
|
<tr title="<?= getMLText($title."_desc") ?>">
|
||||||
<td><?= getMLText($title) ?>:</td>
|
<td><?= getMLText($title) ?></td>
|
||||||
<td>
|
<td>
|
||||||
<?php if($multiple) { ?>
|
<?php if($multiple) { ?>
|
||||||
<select class="form-control" name="<?= $name ?>[]" multiple>
|
<select class="form-control" name="<?= $name ?>[]" multiple>
|
||||||
|
@ -199,7 +199,7 @@ class SeedDMS_View_Settings extends SeedDMS_Theme_Style {
|
||||||
$dms = $this->params['dms'];
|
$dms = $this->params['dms'];
|
||||||
?>
|
?>
|
||||||
<tr title="<?= getMLText($title."_desc") ?>">
|
<tr title="<?= getMLText($title."_desc") ?>">
|
||||||
<td><?= getMLText($title) ?>:</td>
|
<td><?= getMLText($title) ?></td>
|
||||||
<td>
|
<td>
|
||||||
<?php
|
<?php
|
||||||
$users = $dms->getAllUsers();
|
$users = $dms->getAllUsers();
|
||||||
|
@ -613,10 +613,9 @@ if(($kkk = $this->callHook('getFullSearchEngine')) && is_array($kkk))
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "attributedefinitions":
|
case "attributedefinitions":
|
||||||
if(empty($conf['objtype']))
|
$objtype = empty($conf['objtype']) ? 0 : $conf['objtype'];
|
||||||
$recs = $dms->getAllAttributeDefinitions();
|
$attrtype = empty($conf['attrtype']) ? 0 : $conf['attrtype'];
|
||||||
else
|
$recs = $dms->getAllAttributeDefinitions(explode(',', $objtype), explode(',', $attrtype));
|
||||||
$recs = $dms->getAllAttributeDefinitions(explode(',', $conf['objtype']));
|
|
||||||
if($recs) {
|
if($recs) {
|
||||||
echo "<select class=\"chzn-select\"".($allowempty ? " data-allow-clear=\"true\"" : "")."\" name=\"extensions[".$extname."][".$confkey."][]\"".(!empty($conf['multiple']) ? " multiple" : "").(!empty($conf['size']) ? " size=\"".$conf['size']."\"" : "")." data-placeholder=\"".getMLText("select_attribute_value")."\">";
|
echo "<select class=\"chzn-select\"".($allowempty ? " data-allow-clear=\"true\"" : "")."\" name=\"extensions[".$extname."][".$confkey."][]\"".(!empty($conf['multiple']) ? " multiple" : "").(!empty($conf['size']) ? " size=\"".$conf['size']."\"" : "")." data-placeholder=\"".getMLText("select_attribute_value")."\">";
|
||||||
if($allowempty)
|
if($allowempty)
|
||||||
|
|
|
@ -194,26 +194,8 @@ console.log(element);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if($enablelargefileupload) {
|
$msg = getMLText("max_upload_size").": ".SeedDMS_Core_File::format_filesize($maxuploadsize);
|
||||||
if($maxuploadsize) {
|
$this->warningMsg($msg);
|
||||||
$msg = getMLText("max_upload_size").": ".SeedDMS_Core_File::format_filesize($maxuploadsize);
|
|
||||||
} else {
|
|
||||||
$msg = '';
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$msg = getMLText("max_upload_size").": ".ini_get( "upload_max_filesize");
|
|
||||||
}
|
|
||||||
$mus2 = SeedDMS_Core_File::parse_filesize(ini_get("upload_max_filesize"));
|
|
||||||
if($maxuploadsize && $maxuploadsize < $mus2)
|
|
||||||
$msg = getMLText("max_upload_size").": ".SeedDMS_Core_File::format_filesize($maxuploadsize);
|
|
||||||
else
|
|
||||||
$msg = getMLText("max_upload_size").": ".SeedDMS_Core_File::format_filesize($mus2);
|
|
||||||
|
|
||||||
if(0 && $enablelargefileupload) {
|
|
||||||
$msg .= "<p>".sprintf(getMLText('link_alt_updatedocument'), "out.AddMultiDocument.php?folderid=".$folder->getID()."&showtree=".showtree())."</p>";
|
|
||||||
}
|
|
||||||
if($msg)
|
|
||||||
$this->warningMsg($msg);
|
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<form class="form-horizontal" action="../op/op.UpdateDocument.php" enctype="multipart/form-data" method="post" name="form1" id="form1">
|
<form class="form-horizontal" action="../op/op.UpdateDocument.php" enctype="multipart/form-data" method="post" name="form1" id="form1">
|
||||||
|
|
|
@ -209,6 +209,8 @@ $(document).ready( function() {
|
||||||
if($accessobject->check_controller_access('UsrMgr', ['action'=>'sendlogindata']))
|
if($accessobject->check_controller_access('UsrMgr', ['action'=>'sendlogindata']))
|
||||||
if($enableemail)
|
if($enableemail)
|
||||||
$button['menuitems'][] = array('label'=>'<i class="fa fa-envelope-o"></i> '.getMLText("send_login_data"), 'link'=>'../out/out.SendLoginData.php?userid='.$seluser->getID());
|
$button['menuitems'][] = array('label'=>'<i class="fa fa-envelope-o"></i> '.getMLText("send_login_data"), 'link'=>'../out/out.SendLoginData.php?userid='.$seluser->getID());
|
||||||
|
if($this->hasHook('actionMenu'))
|
||||||
|
$button['menuitems'] = $this->callHook('actionMenu', $seluser, $button['menuitems']);
|
||||||
self::showButtonwithMenu($button);
|
self::showButtonwithMenu($button);
|
||||||
}
|
}
|
||||||
} /* }}} */
|
} /* }}} */
|
||||||
|
|
|
@ -113,6 +113,14 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Theme_Style {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
$arrarr = $this->callHook('additionalDocumentContentInfo', $version);
|
||||||
|
if(is_array($arrarr)) {
|
||||||
|
foreach($arrarr as $arr) {
|
||||||
|
print "<li>".$arr[0].": ".$arr[1]."</li>\n";
|
||||||
|
}
|
||||||
|
} elseif(is_string($arrarr)) {
|
||||||
|
echo $arrarr;
|
||||||
|
}
|
||||||
} /* }}} */
|
} /* }}} */
|
||||||
|
|
||||||
function documentListItem() { /* {{{ */
|
function documentListItem() { /* {{{ */
|
||||||
|
@ -204,11 +212,7 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Theme_Style {
|
||||||
echo "SeedDMSUpload.setUrl('".$this->params['settings']->_httpRoot."op/op.Ajax.php');";
|
echo "SeedDMSUpload.setUrl('".$this->params['settings']->_httpRoot."op/op.Ajax.php');";
|
||||||
echo "SeedDMSUpload.setAbortBtnLabel('".getMLText("cancel")."');";
|
echo "SeedDMSUpload.setAbortBtnLabel('".getMLText("cancel")."');";
|
||||||
echo "SeedDMSUpload.setEditBtnLabel('');";
|
echo "SeedDMSUpload.setEditBtnLabel('');";
|
||||||
$mus2 = SeedDMS_Core_File::parse_filesize(ini_get("upload_max_filesize"));
|
echo "SeedDMSUpload.setMaxFileSize($maxuploadsize);\n";
|
||||||
if($maxuploadsize && $maxuploadsize < $mus2)
|
|
||||||
echo "SeedDMSUpload.setMaxFileSize($maxuploadsize);\n";
|
|
||||||
else
|
|
||||||
echo "SeedDMSUpload.setMaxFileSize($mus2);\n";
|
|
||||||
echo "SeedDMSUpload.setMaxFileSizeMsg('".getMLText("uploading_maxsize")."');";
|
echo "SeedDMSUpload.setMaxFileSizeMsg('".getMLText("uploading_maxsize")."');";
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
@ -555,7 +559,9 @@ $(document).ready( function() {
|
||||||
case 'application/pdf':
|
case 'application/pdf':
|
||||||
$this->contentHeading(getMLText("preview"));
|
$this->contentHeading(getMLText("preview"));
|
||||||
?>
|
?>
|
||||||
<iframe src="<?= $settings->_httpRoot ?>pdfviewer/web/viewer.html?file=<?php echo urlencode($settings->_httpRoot.'op/op.ViewOnline.php?documentid='.$latestContent->getDocument()->getID().'&version='.$latestContent->getVersion()); ?>" width="100%" height="700px"></iframe>
|
<div style="width:100%; height: 0; position:relative; padding-top: 141%;">
|
||||||
|
<iframe src="<?= $settings->_httpRoot ?>pdfviewer/web/viewer.html?file=<?php echo urlencode($settings->_httpRoot.'op/op.ViewOnline.php?documentid='.$latestContent->getDocument()->getID().'&version='.$latestContent->getVersion()); ?>" _width="100%" _height="100%" style="position: absolute; top: 0; left: 0; bottom: 0; right: 0; width: 100%; height: 100%"></iframe>
|
||||||
|
</div>
|
||||||
<?php
|
<?php
|
||||||
break;
|
break;
|
||||||
case 'image/svg+xml':
|
case 'image/svg+xml':
|
||||||
|
@ -590,7 +596,9 @@ $(document).ready( function() {
|
||||||
if($pdfpreviewer->hasConverter($latestContent->getMimeType())) {
|
if($pdfpreviewer->hasConverter($latestContent->getMimeType())) {
|
||||||
$this->contentHeading(getMLText("preview_pdf"));
|
$this->contentHeading(getMLText("preview_pdf"));
|
||||||
?>
|
?>
|
||||||
<iframe src="<?= $settings->_httpRoot ?>pdfviewer/web/viewer.html?file=<?php echo urlencode($settings->_httpRoot.'op/op.PdfPreview.php?documentid='.$latestContent->getDocument()->getID().'&version='.$latestContent->getVersion()); ?>" width="100%" height="700px"></iframe>
|
<div style="width:100%; height: 0; position:relative; padding-top: 141%;">
|
||||||
|
<iframe src="<?= $settings->_httpRoot ?>pdfviewer/web/viewer.html?file=<?php echo urlencode($settings->_httpRoot.'op/op.PdfPreview.php?documentid='.$latestContent->getDocument()->getID().'&version='.$latestContent->getVersion()); ?>" _width="100%" _height="700px" style="position: absolute; top: 0; left: 0; bottom: 0; right: 0; width: 100%; height: 100%"></iframe>
|
||||||
|
</div>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -883,33 +891,33 @@ $(document).ready( function() {
|
||||||
echo $txt;
|
echo $txt;
|
||||||
?>
|
?>
|
||||||
<ul class="nav nav-pills" id="docinfotab" role="tablist">
|
<ul class="nav nav-pills" id="docinfotab" role="tablist">
|
||||||
<li class="nav-item <?php if(!$currenttab || $currenttab == 'docinfo') echo 'active'; ?>"><a class="nav-link <?php if(!$currenttab || $currenttab == 'docinfo') echo 'active'; ?>" data-target="#docinfo" data-toggle="tab" role="tab"><?php printMLText('current_version'); ?></a></li>
|
<li class="nav-item <?php if(!$currenttab || $currenttab == 'docinfo') echo 'active'; ?>"><a class="nav-link <?php if(!$currenttab || $currenttab == 'docinfo') echo 'active'; ?>" data-target="#docinfo" data-toggle="tab" role="button"><?php printMLText('current_version'); ?></a></li>
|
||||||
<?php if (count($versions)>1) { ?>
|
<?php if (count($versions)>1) { ?>
|
||||||
<li class="nav-item <?php if($currenttab == 'previous') echo 'active'; ?>"><a class="nav-link <?php if($currenttab == 'previous') echo 'active'; ?>" data-target="#previous" data-toggle="tab" role="tab"><?php printMLText('previous_versions'); ?></a></li>
|
<li class="nav-item <?php if($currenttab == 'previous') echo 'active'; ?>"><a class="nav-link <?php if($currenttab == 'previous') echo 'active'; ?>" data-target="#previous" data-toggle="tab" role="button"><?php printMLText('previous_versions'); ?></a></li>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
if($workflowmode == 'traditional' || $workflowmode == 'traditional_only_approval') {
|
if($workflowmode == 'traditional' || $workflowmode == 'traditional_only_approval') {
|
||||||
if((is_array($reviewStatus) && count($reviewStatus)>0) ||
|
if((is_array($reviewStatus) && count($reviewStatus)>0) ||
|
||||||
(is_array($approvalStatus) && count($approvalStatus)>0)) {
|
(is_array($approvalStatus) && count($approvalStatus)>0)) {
|
||||||
?>
|
?>
|
||||||
<li class="nav-item <?php if($currenttab == 'revapp') echo 'active'; ?>"><a class="nav-link <?php if($currenttab == 'revapp') echo 'active'; ?>" data-target="#revapp" data-toggle="tab" role="tab"><?php if($workflowmode == 'traditional') echo getMLText('reviewers')."/"; echo getMLText('approvers'); ?></a></li>
|
<li class="nav-item <?php if($currenttab == 'revapp') echo 'active'; ?>"><a class="nav-link <?php if($currenttab == 'revapp') echo 'active'; ?>" data-target="#revapp" data-toggle="tab" role="button"><?php if($workflowmode == 'traditional') echo getMLText('reviewers')."/"; echo getMLText('approvers'); ?></a></li>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
} elseif($workflowmode == 'advanced') {
|
} elseif($workflowmode == 'advanced') {
|
||||||
if($workflow) {
|
if($workflow) {
|
||||||
?>
|
?>
|
||||||
<li class="nav-item <?php if($currenttab == 'workflow') echo 'active'; ?>"><a class="nav-link <?php if($currenttab == 'workflow') echo 'active'; ?>" data-target="#workflow" data-toggle="tab" role="tab"><?php echo getMLText('workflow'); ?></a></li>
|
<li class="nav-item <?php if($currenttab == 'workflow') echo 'active'; ?>"><a class="nav-link <?php if($currenttab == 'workflow') echo 'active'; ?>" data-target="#workflow" data-toggle="tab" role="button"><?php echo getMLText('workflow'); ?></a></li>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
<li class="nav-item <?php if($currenttab == 'attachments') echo 'active'; ?>"><a class="nav-link <?php if($currenttab == 'attachments') echo 'active'; ?>" data-target="#attachments" data-toggle="tab" role="tab"><?php printMLText('linked_files'); echo (count($files)) ? " (".count($files).")" : ""; ?></a></li>
|
<li class="nav-item <?php if($currenttab == 'attachments') echo 'active'; ?>"><a class="nav-link <?php if($currenttab == 'attachments') echo 'active'; ?>" data-target="#attachments" data-toggle="tab" role="button"><?php printMLText('linked_files'); echo (count($files)) ? " (".count($files).")" : ""; ?></a></li>
|
||||||
<li class="nav-item <?php if($currenttab == 'links') echo 'active'; ?>"><a class="nav-link <?php if($currenttab == 'links') echo 'active'; ?>" data-target="#links" data-toggle="tab" role="tab"><?php printMLText('linked_documents'); echo (count($links) || count($reverselinks)) ? " (".count($links)."/".count($reverselinks).")" : ""; ?></a></li>
|
<li class="nav-item <?php if($currenttab == 'links') echo 'active'; ?>"><a class="nav-link <?php if($currenttab == 'links') echo 'active'; ?>" data-target="#links" data-toggle="tab" role="button"><?php printMLText('linked_documents'); echo (count($links) || count($reverselinks)) ? " (".count($links)."/".count($reverselinks).")" : ""; ?></a></li>
|
||||||
<?php
|
<?php
|
||||||
$tabs = $this->callHook('extraTabs', $document);
|
$tabs = $this->callHook('extraTabs', $document);
|
||||||
if($tabs) {
|
if($tabs) {
|
||||||
foreach($tabs as $tabid=>$tab) {
|
foreach($tabs as $tabid=>$tab) {
|
||||||
echo '<li class="nav-item '.($currenttab == $tabid ? 'active' : '').'"><a class="nav-link '.($currenttab == $tabid ? 'active' : '').'" data-target="#'.$tabid.'" data-toggle="tab" role="tab">'.$tab['title'].'</a></li>';
|
echo '<li class="nav-item '.($currenttab == $tabid ? 'active' : '').'"><a class="nav-link '.($currenttab == $tabid ? 'active' : '').'" data-target="#'.$tabid.'" data-toggle="tab" role="button">'.$tab['title'].'</a></li>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
@ -1592,7 +1600,7 @@ $(document).ready( function() {
|
||||||
print getMLText("document_link_by")." ".htmlspecialchars($responsibleUser->getFullName());
|
print getMLText("document_link_by")." ".htmlspecialchars($responsibleUser->getFullName());
|
||||||
if (($user->getID() == $responsibleUser->getID()) || ($document->getAccessMode($user) == M_ALL )) {
|
if (($user->getID() == $responsibleUser->getID()) || ($document->getAccessMode($user) == M_ALL )) {
|
||||||
print "<br />".getMLText("document_link_public").": ".(($link->isPublic()) ? getMLText("yes") : getMLText("no"));
|
print "<br />".getMLText("document_link_public").": ".(($link->isPublic()) ? getMLText("yes") : getMLText("no"));
|
||||||
print "<form action=\"".$this->params['settings']->_httpRoot."op/op.RemoveDocumentLink.php\" method=\"post\">".createHiddenFieldWithKey('removedocumentlink')."<input type=\"hidden\" name=\"documentid\" value=\"".$sourceDoc->getId()."\" /><input type=\"hidden\" name=\"linkid\" value=\"".$link->getID()."\" /><button type=\"submit\" class=\"btn btn-danger btn-mini\"><i class=\"fa fa-remove\"></i> ".getMLText("delete")."</button></form>";
|
print "<form action=\"".$this->params['settings']->_httpRoot."op/op.RemoveDocumentLink.php\" method=\"post\">".createHiddenFieldWithKey('removedocumentlink')."<input type=\"hidden\" name=\"documentid\" value=\"".$sourceDoc->getId()."\" /><input type=\"hidden\" name=\"linkid\" value=\"".$link->getID()."\" /><button type=\"submit\" class=\"btn btn-danger btn-mini btn-sm\"><i class=\"fa fa-remove\"></i> ".getMLText("delete")."</button></form>";
|
||||||
}
|
}
|
||||||
print "</span></td>";
|
print "</span></td>";
|
||||||
echo $this->documentListRowEnd($sourceDoc);
|
echo $this->documentListRowEnd($sourceDoc);
|
||||||
|
|
|
@ -239,11 +239,7 @@ $('body').on('click', '.order-btn', function(ev) {
|
||||||
echo "SeedDMSUpload.setUrl('".$this->params['settings']->_httpRoot."op/op.Ajax.php');";
|
echo "SeedDMSUpload.setUrl('".$this->params['settings']->_httpRoot."op/op.Ajax.php');";
|
||||||
echo "SeedDMSUpload.setAbortBtnLabel('".getMLText("cancel")."');";
|
echo "SeedDMSUpload.setAbortBtnLabel('".getMLText("cancel")."');";
|
||||||
echo "SeedDMSUpload.setEditBtnLabel('".getMLText("edit_document_props")."');";
|
echo "SeedDMSUpload.setEditBtnLabel('".getMLText("edit_document_props")."');";
|
||||||
$mus2 = SeedDMS_Core_File::parse_filesize(ini_get("upload_max_filesize"));
|
echo "SeedDMSUpload.setMaxFileSize($maxuploadsize);\n";
|
||||||
if($maxuploadsize && $maxuploadsize < $mus2)
|
|
||||||
echo "SeedDMSUpload.setMaxFileSize($maxuploadsize);\n";
|
|
||||||
else
|
|
||||||
echo "SeedDMSUpload.setMaxFileSize($mus2);\n";
|
|
||||||
echo "SeedDMSUpload.setMaxFileSizeMsg('".getMLText("uploading_maxsize")."');";
|
echo "SeedDMSUpload.setMaxFileSizeMsg('".getMLText("uploading_maxsize")."');";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -260,13 +256,11 @@ $('body').on('click', '.order-btn', function(ev) {
|
||||||
if(is_string($txt))
|
if(is_string($txt))
|
||||||
echo $txt;
|
echo $txt;
|
||||||
else {
|
else {
|
||||||
|
|
||||||
$owner = $folder->getOwner();
|
$owner = $folder->getOwner();
|
||||||
$this->contentHeading(getMLText("folder_infos"));
|
|
||||||
// $this->contentContainerStart();
|
|
||||||
$txt = $this->callHook('preFolderInfos', $folder);
|
$txt = $this->callHook('preFolderInfos', $folder);
|
||||||
if(is_string($txt))
|
if(is_string($txt))
|
||||||
echo $txt;
|
echo $txt;
|
||||||
|
ob_start();
|
||||||
echo "<table class=\"table table-condensed table-sm\">\n";
|
echo "<table class=\"table table-condensed table-sm\">\n";
|
||||||
if($user->isAdmin()) {
|
if($user->isAdmin()) {
|
||||||
echo "<tr>";
|
echo "<tr>";
|
||||||
|
@ -338,10 +332,11 @@ $('body').on('click', '.order-btn', function(ev) {
|
||||||
echo $arrarr;
|
echo $arrarr;
|
||||||
}
|
}
|
||||||
echo "</table>\n";
|
echo "</table>\n";
|
||||||
|
$infos = ob_get_clean();
|
||||||
|
$this->printAccordion2(getMLText("folder_infos"), $infos);
|
||||||
$txt = $this->callHook('postFolderInfos', $folder);
|
$txt = $this->callHook('postFolderInfos', $folder);
|
||||||
if(is_string($txt))
|
if(is_string($txt))
|
||||||
echo $txt;
|
echo $txt;
|
||||||
// $this->contentContainerEnd();
|
|
||||||
}
|
}
|
||||||
} /* }}} */
|
} /* }}} */
|
||||||
|
|
||||||
|
@ -471,11 +466,12 @@ $('body').on('click', '.order-btn', function(ev) {
|
||||||
$dms = $this->params['dms'];
|
$dms = $this->params['dms'];
|
||||||
$user = $this->params['user'];
|
$user = $this->params['user'];
|
||||||
$folder = $this->params['folder'];
|
$folder = $this->params['folder'];
|
||||||
|
$maxuploadsize = $this->params['maxuploadsize'];
|
||||||
|
|
||||||
$this->contentHeading(getMLText("dropupload"), true);
|
$this->contentHeading(getMLText("dropupload"), true);
|
||||||
if ($folder->getAccessMode($user) >= M_READWRITE) {
|
if ($folder->getAccessMode($user) >= M_READWRITE) {
|
||||||
?>
|
?>
|
||||||
<div id="draganddrophandler" class="well alert alert-warning" data-droptarget="folder_<?php echo $folder->getID(); ?>" data-target="<?php echo $folder->getID(); ?>" data-uploadformtoken="<?php echo createFormKey(''); ?>"><?php printMLText('drop_files_here'); ?></div>
|
<div id="draganddrophandler" class="well alert alert-warning" data-droptarget="folder_<?php echo $folder->getID(); ?>" data-target="<?php echo $folder->getID(); ?>" data-uploadformtoken="<?php echo createFormKey(''); ?>"><?php printMLText('drop_files_here', ['maxuploadsize'=>SeedDMS_Core_File::format_filesize($maxuploadsize)]); ?></div>
|
||||||
<?php
|
<?php
|
||||||
} else {
|
} else {
|
||||||
$this->errorMsg(getMLText('access_denied'));
|
$this->errorMsg(getMLText('access_denied'));
|
||||||
|
@ -591,12 +587,9 @@ $('body').on('click', '.order-btn', function(ev) {
|
||||||
$this->htmlStartPage(getMLText("folder_title", array("foldername" => htmlspecialchars($folder->getName()))));
|
$this->htmlStartPage(getMLText("folder_title", array("foldername" => htmlspecialchars($folder->getName()))));
|
||||||
$this->globalNavigation($folder);
|
$this->globalNavigation($folder);
|
||||||
$this->contentStart();
|
$this->contentStart();
|
||||||
|
|
||||||
// $this->navigation();
|
|
||||||
?>
|
?>
|
||||||
<div class="ajax" data-view="ViewFolder" data-action="navigation" data-no-spinner="true" <?php echo ($folder ? "data-query=\"folderid=".$folder->getID()."\"" : "") ?>></div>
|
<div class="ajax" data-view="ViewFolder" data-action="navigation" data-no-spinner="true" <?php echo ($folder ? "data-query=\"folderid=".$folder->getID()."\"" : "") ?>></div>
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
$this->rowStart();
|
$this->rowStart();
|
||||||
|
|
||||||
// dynamic columns - left column removed if no content and right column then fills span12.
|
// dynamic columns - left column removed if no content and right column then fills span12.
|
||||||
|
|
|
@ -20,6 +20,9 @@
|
||||||
#login_wrapper {
|
#login_wrapper {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
legend { /* to prevent overlong filenames from cause horiz. scroll */
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
img.mimeicon {
|
img.mimeicon {
|
||||||
-moz-border-bottom-colors: none;
|
-moz-border-bottom-colors: none;
|
||||||
|
@ -252,6 +255,10 @@ div.statusbar-container h1 {
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
a.accordion2-toggle:focus, a.accordion2-toggle:hover {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
span.datepicker {
|
span.datepicker {
|
||||||
padding: 0px;
|
padding: 0px;
|
||||||
}
|
}
|
||||||
|
@ -334,6 +341,8 @@ i.warning {color: #ff9900;}
|
||||||
i.initstate {color: #ff9900;}
|
i.initstate {color: #ff9900;}
|
||||||
i.released {color: #00b000;}
|
i.released {color: #00b000;}
|
||||||
i.rejected {color: #b00000;}
|
i.rejected {color: #b00000;}
|
||||||
|
i.expired {color: #b0b0b0;}
|
||||||
|
i.obsolete {color: #9e5d42;}
|
||||||
i.in-workflow {color: #11479e;}
|
i.in-workflow {color: #11479e;}
|
||||||
i.workflow-action {color: #91479e;}
|
i.workflow-action {color: #91479e;}
|
||||||
i.selected {border: 1px solid #d4d4d4;padding:3px;border-radius:3px;background-color:#fafafa;background-image: linear-gradient(to bottom, #ffffff, #f2f2f2);}
|
i.selected {border: 1px solid #d4d4d4;padding:3px;border-radius:3px;background-color:#fafafa;background-image: linear-gradient(to bottom, #ffffff, #f2f2f2);}
|
||||||
|
|
|
@ -673,11 +673,20 @@ function onAddClipboard(ev) { /* {{{ */
|
||||||
maxFileSize = size;
|
maxFileSize = size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SeedDMSUpload.getMaxFileSize = function() {
|
||||||
|
return maxFileSize;
|
||||||
|
}
|
||||||
|
|
||||||
SeedDMSUpload.setMaxFileSizeMsg = function(msg) {
|
SeedDMSUpload.setMaxFileSizeMsg = function(msg) {
|
||||||
maxFileSizeMsg = msg;
|
maxFileSizeMsg = msg;
|
||||||
}
|
}
|
||||||
|
|
||||||
function sendFileToServer(formData,status,callback) {
|
SeedDMSUpload.getMaxFileSizeMsg = function() {
|
||||||
|
return maxFileSizeMsg;
|
||||||
|
}
|
||||||
|
|
||||||
|
// function sendFileToServer(formData,status,callback) {
|
||||||
|
SeedDMSUpload.sendFileToServer = function(formData,status,callback) {
|
||||||
var uploadURL = ajaxurl; //Upload URL
|
var uploadURL = ajaxurl; //Upload URL
|
||||||
var extraData ={}; //Extra Data.
|
var extraData ={}; //Extra Data.
|
||||||
var jqXHR=$.ajax({
|
var jqXHR=$.ajax({
|
||||||
|
@ -736,7 +745,8 @@ function onAddClipboard(ev) { /* {{{ */
|
||||||
status.setAbort(jqXHR);
|
status.setAbort(jqXHR);
|
||||||
}
|
}
|
||||||
|
|
||||||
function createStatusbar(obj) {
|
//function createStatusbar(obj) {
|
||||||
|
SeedDMSUpload.createStatusbar = function(obj) {
|
||||||
rowCount++;
|
rowCount++;
|
||||||
var row="odd";
|
var row="odd";
|
||||||
this.obj = obj;
|
this.obj = obj;
|
||||||
|
@ -762,8 +772,8 @@ function onAddClipboard(ev) { /* {{{ */
|
||||||
this.size.html(sizeStr);
|
this.size.html(sizeStr);
|
||||||
}
|
}
|
||||||
this.setProgress = function(progress) {
|
this.setProgress = function(progress) {
|
||||||
var progressBarWidth =progress*this.progressBar.width()/ 100;
|
// var progressBarWidth =progress*this.progressBar.width()/ 100;
|
||||||
this.progressBar.find('div').animate({ width: progressBarWidth }, 10).html(progress + "% ");
|
this.progressBar.find('div').animate({ width: progress+"%" }, 10).html(progress + "% ");
|
||||||
if(parseInt(progress) >= 100) {
|
if(parseInt(progress) >= 100) {
|
||||||
this.abort.hide();
|
this.abort.hide();
|
||||||
}
|
}
|
||||||
|
@ -797,7 +807,7 @@ function onAddClipboard(ev) { /* {{{ */
|
||||||
formData.append(key, value);
|
formData.append(key, value);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else if(typeof data !== 'undefined') {
|
||||||
formData.append(previousKey, data);
|
formData.append(previousKey, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -832,9 +842,9 @@ function onAddClipboard(ev) { /* {{{ */
|
||||||
// fd.append('path', files[i].webkitRelativePath);
|
// fd.append('path', files[i].webkitRelativePath);
|
||||||
|
|
||||||
statusbar.parent().show();
|
statusbar.parent().show();
|
||||||
var status = new createStatusbar(statusbar);
|
var status = new SeedDMSUpload.createStatusbar(statusbar);
|
||||||
status.setFileNameSize(files[i].name,files[i].size);
|
status.setFileNameSize(files[i].name,files[i].size);
|
||||||
sendFileToServer(fd,status,function(){
|
SeedDMSUpload.sendFileToServer(fd,status,function(){
|
||||||
if(target_id == seeddms_folder)
|
if(target_id == seeddms_folder)
|
||||||
$("div.ajax[data-action='folderList']").trigger('update', {folderid: seeddms_folder});
|
$("div.ajax[data-action='folderList']").trigger('update', {folderid: seeddms_folder});
|
||||||
});
|
});
|
||||||
|
@ -860,9 +870,9 @@ function onAddClipboard(ev) { /* {{{ */
|
||||||
fd.append('userfile', files[i]);
|
fd.append('userfile', files[i]);
|
||||||
fd.append('command', 'uploaddocument');
|
fd.append('command', 'uploaddocument');
|
||||||
|
|
||||||
var status = new createStatusbar(statusbar);
|
var status = new SeedDMSUpload.createStatusbar(statusbar);
|
||||||
status.setFileNameSize(files[i].name,files[i].size);
|
status.setFileNameSize(files[i].name,files[i].size);
|
||||||
sendFileToServer(fd,status);
|
SeedDMSUpload.sendFileToServer(fd,status);
|
||||||
} else {
|
} else {
|
||||||
noty({
|
noty({
|
||||||
text: maxFileSizeMsg + '<br /><em>' + files[i].name + ' (' + files[i].size + ' Bytes)</em>',
|
text: maxFileSizeMsg + '<br /><em>' + files[i].name + ' (' + files[i].size + ' Bytes)</em>',
|
||||||
|
@ -885,9 +895,9 @@ function onAddClipboard(ev) { /* {{{ */
|
||||||
fd.append('userfile', files[i]);
|
fd.append('userfile', files[i]);
|
||||||
fd.append('command', 'addfile');
|
fd.append('command', 'addfile');
|
||||||
|
|
||||||
var status = new createStatusbar(statusbar);
|
var status = new SeedDMSUpload.createStatusbar(statusbar);
|
||||||
status.setFileNameSize(files[i].name,files[i].size);
|
status.setFileNameSize(files[i].name,files[i].size);
|
||||||
sendFileToServer(fd,status, function(){
|
SeedDMSUpload.sendFileToServer(fd,status, function(){
|
||||||
$("div.ajax[data-action='documentFiles']").trigger('update', {documentid: target_id});
|
$("div.ajax[data-action='documentFiles']").trigger('update', {documentid: target_id});
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -474,8 +474,7 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
|
||||||
htmlspecialchars($path[$i]->getName())."</a>";
|
htmlspecialchars($path[$i]->getName())."</a>";
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$txtpath .= ($tagAll ? "<a href=\"".$this->params['settings']->_httpRoot."out/out.ViewFolder.php?folderid=".$path[$i]->getID()."&showtree=".showtree()."\">".
|
$txtpath .= ($tagAll ? "<a href=\"".$this->params['settings']->_httpRoot."out/out.ViewFolder.php?folderid=".$path[$i]->getID()."&showtree=".showtree()."\">".htmlspecialchars($path[$i]->getName())."</a>" : htmlspecialchars($path[$i]->getName()));
|
||||||
htmlspecialchars($path[$i]->getName())."</a>" : htmlspecialchars($path[$i]->getName()));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if($document)
|
if($document)
|
||||||
|
@ -483,10 +482,11 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
|
||||||
|
|
||||||
return '<nav aria-label="breadcrumb"><ol class="breadcrumb">'.$txtpath.'</ol></nav>';
|
return '<nav aria-label="breadcrumb"><ol class="breadcrumb">'.$txtpath.'</ol></nav>';
|
||||||
} /* }}} */
|
} /* }}} */
|
||||||
|
|
||||||
function pageNavigation($pageTitle, $pageType=null, $extra=null) { /* {{{ */
|
function pageNavigation($pageTitle, $pageType=null, $extra=null) { /* {{{ */
|
||||||
|
|
||||||
if ($pageType!=null && strcasecmp($pageType, "noNav")) {
|
if ($pageType!=null && strcasecmp($pageType, "noNav")) {
|
||||||
|
// echo "<div class=\"fixed-top\" style=\"z-index: 1029; margin-top: 51px;\">";
|
||||||
echo "<nav class=\"navbar navbar-expand-lg mb-4 bg-light navbar-light\">\n";
|
echo "<nav class=\"navbar navbar-expand-lg mb-4 bg-light navbar-light\">\n";
|
||||||
echo '<a class="navbar-brand">'.getMLText('nav_brand_'.$pageType).'</a>';
|
echo '<a class="navbar-brand">'.getMLText('nav_brand_'.$pageType).'</a>';
|
||||||
echo "<button class=\"navbar-toggler\" type=\"button\" data-toggle=\"collapse\" data-target=\"#navbarPageContent\" aria-controls=\"navbarMain\" aria-expanded=\"false\" aria-label=\"Toggle navigation\">\n";
|
echo "<button class=\"navbar-toggler\" type=\"button\" data-toggle=\"collapse\" data-target=\"#navbarPageContent\" aria-controls=\"navbarMain\" aria-expanded=\"false\" aria-label=\"Toggle navigation\">\n";
|
||||||
|
@ -526,6 +526,7 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
|
||||||
echo "</nav>\n";
|
echo "</nav>\n";
|
||||||
if($pageType == "view_folder" || $pageType == "view_document")
|
if($pageType == "view_folder" || $pageType == "view_document")
|
||||||
echo $pageTitle."\n";
|
echo $pageTitle."\n";
|
||||||
|
// echo "</div>";
|
||||||
} else {
|
} else {
|
||||||
echo "<legend>".$pageTitle."</legend>\n";
|
echo "<legend>".$pageTitle."</legend>\n";
|
||||||
}
|
}
|
||||||
|
@ -640,7 +641,7 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
|
||||||
} /* }}} */
|
} /* }}} */
|
||||||
|
|
||||||
protected function showPaneHeader($name, $title, $isactive) { /* {{{ */
|
protected function showPaneHeader($name, $title, $isactive) { /* {{{ */
|
||||||
echo '<li class="nav-item '.($isactive ? 'active' : '').'"><a class="nav-link '.($isactive ? 'active' : '').'" data-target="#'.$name.'" data-toggle="tab" role="tab">'.$title.'</a></li>'."\n";
|
echo '<li class="nav-item '.($isactive ? 'active' : '').'"><a class="nav-link '.($isactive ? 'active' : '').'" data-target="#'.$name.'" data-toggle="tab" role="button">'.$title.'</a></li>'."\n";
|
||||||
} /* }}} */
|
} /* }}} */
|
||||||
|
|
||||||
protected function showStartPaneContent($name, $isactive) { /* {{{ */
|
protected function showStartPaneContent($name, $isactive) { /* {{{ */
|
||||||
|
@ -747,21 +748,16 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
|
||||||
$menuitems['transfer_document'] = array('link'=>$this->params['settings']->_httpRoot."out/out.TransferDocument". $docid, 'label'=>getMLText('transfer_document'));
|
$menuitems['transfer_document'] = array('link'=>$this->params['settings']->_httpRoot."out/out.TransferDocument". $docid, 'label'=>getMLText('transfer_document'));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check if hook exists because otherwise callHook() will override $menuitems */
|
/* Do not use $this->callHook() because $menuitems must be returned by the the
|
||||||
if($this->hasHook('documentNavigationBar'))
|
* first hook and passed to next hook. $this->callHook() will just pass
|
||||||
$menuitems = $this->callHook('documentNavigationBar', $document, $menuitems);
|
* the menuitems to each single hook. Hence, the last hook will win.
|
||||||
|
|
||||||
/* Do not use $this->callHook() because $menuitems must be returned by the hook
|
|
||||||
* or left unchanged
|
|
||||||
*/
|
*/
|
||||||
/*
|
|
||||||
$hookObjs = $this->getHookObjects();
|
$hookObjs = $this->getHookObjects();
|
||||||
foreach($hookObjs as $hookObj) {
|
foreach($hookObjs as $hookObj) {
|
||||||
if (method_exists($hookObj, 'documentNavigationBar')) {
|
if (method_exists($hookObj, 'documentNavigationBar')) {
|
||||||
$menuitems = $hookObj->documentNavigationBar($this, $document, $menuitems);
|
$menuitems = $hookObj->documentNavigationBar($this, $document, $menuitems);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
||||||
self::showNavigationBar($menuitems);
|
self::showNavigationBar($menuitems);
|
||||||
} /* }}} */
|
} /* }}} */
|
||||||
|
@ -1277,6 +1273,42 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
|
||||||
}
|
}
|
||||||
} /* }}} */
|
} /* }}} */
|
||||||
|
|
||||||
|
function getOverallStatusIcon($status) { /* {{{ */
|
||||||
|
if (is_null($status)) {
|
||||||
|
return '';
|
||||||
|
} else {
|
||||||
|
$icon = '';
|
||||||
|
$color = '';
|
||||||
|
switch($status) {
|
||||||
|
case S_IN_WORKFLOW:
|
||||||
|
$icon = 'fa fa-circle in-workflow';
|
||||||
|
break;
|
||||||
|
case S_DRAFT_REV:
|
||||||
|
$icon = 'fa fa-circle in-workflow';
|
||||||
|
break;
|
||||||
|
case S_DRAFT_APP:
|
||||||
|
$icon = 'fa fa-circle in-workflow';
|
||||||
|
break;
|
||||||
|
case S_RELEASED:
|
||||||
|
$icon = 'fa-circle released';
|
||||||
|
break;
|
||||||
|
case S_REJECTED:
|
||||||
|
$icon = 'fa-circle rejected';
|
||||||
|
break;
|
||||||
|
case S_OBSOLETE:
|
||||||
|
$icon = 'fa-circle obsolete';
|
||||||
|
break;
|
||||||
|
case S_EXPIRED:
|
||||||
|
$icon = 'fa-circle expired';
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
$icon = 'fa fa-question';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return '<i class="fa '.$icon.'"'.($color ? ' style="color: '.$color.';"' : '').' title="'.getOverallStatusText($status).'"></i>';
|
||||||
|
}
|
||||||
|
} /* }}} */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get attributes for a button opening a modal box
|
* Get attributes for a button opening a modal box
|
||||||
*
|
*
|
||||||
|
@ -1421,9 +1453,9 @@ $(document).ready(function() {
|
||||||
<div class="input-group">
|
<div class="input-group">
|
||||||
<input type="text" class="form-control fileupload-group" id="kkll'.$id.'" readonly>
|
<input type="text" class="form-control fileupload-group" id="kkll'.$id.'" readonly>
|
||||||
<div class="input-group-append">
|
<div class="input-group-append">
|
||||||
<button class="btn btn-secondary btn-file">
|
<a class="btn btn-secondary btn-file">
|
||||||
'.getMLText("browse").'… <input id="'.$id.'" type="file" name="'.$varname.'"'.($multiple ? " multiple" : "").($accept ? ' accept="'.$accept.'"' : "").' data-target-highlight="kkll'.$id.'">
|
'.getMLText("browse").'… <input id="'.$id.'" type="file" name="'.$varname.'"'.($multiple ? " multiple" : "").($accept ? ' accept="'.$accept.'"' : "").' data-target-highlight="kkll'.$id.'">
|
||||||
</button>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1825,7 +1857,7 @@ $(document).ready(function() {
|
||||||
*/
|
*/
|
||||||
$content = '
|
$content = '
|
||||||
<div class="input-group date">
|
<div class="input-group date">
|
||||||
<input type="text" class="form-control" id="'.$fieldname.'_'.$attrdef->getId().($namepostfix ? '_'.$namepostfix : '').'" name="'.$fieldname.'['.$attrdef->getId().']'.($namepostfix ? '['.$namepostfix.']' : '').'" value="'.($objvalue ? $objvalue : '').'" data-date="'.getReadableDate().'" data-date-format="'.$dateformat.'" data-date-language="'.str_replace('_', '-', $this->params['session']->getLanguage()).'" data-date-autoclose="true" data-provide="datepicker">
|
<input type="text" class="form-control" id="'.$fieldname.'_'.$attrdef->getId().($namepostfix ? '_'.$namepostfix : '').'" name="'.$fieldname.'['.$attrdef->getId().']'.($namepostfix ? '['.$namepostfix.']' : '').'" value="'.($objvalue ? getReadableDate($objvalue) : '').'" data-date="'.getReadableDate().'" data-date-format="'.$dateformat.'" data-date-language="'.str_replace('_', '-', $this->params['session']->getLanguage()).'" data-date-autoclose="true" data-provide="datepicker">
|
||||||
<div class="input-group-append">
|
<div class="input-group-append">
|
||||||
<span class="input-group-text"><i class="fa fa-calendar"></i></span>
|
<span class="input-group-text"><i class="fa fa-calendar"></i></span>
|
||||||
</div>
|
</div>
|
||||||
|
@ -2972,22 +3004,18 @@ $('body').on('click', '[id^=\"table-row-folder\"] td:nth-child(2)', function(ev)
|
||||||
$status = $latestContent->getStatus();
|
$status = $latestContent->getStatus();
|
||||||
$attentionstr = '';
|
$attentionstr = '';
|
||||||
if ( $document->isLocked() ) {
|
if ( $document->isLocked() ) {
|
||||||
$attentionstr .= "<img src=\"".$this->getImgPath("lock.png")."\" title=\"". getMLText("locked_by").": ".htmlspecialchars($document->getLockingUser()->getFullName())."\"> ";
|
$attentionstr .= "<i class=\"fa fa-lock\" title=\"". getMLText("locked_by").": ".htmlspecialchars($document->getLockingUser()->getFullName())."\"></i> ";
|
||||||
}
|
}
|
||||||
$needwkflaction = false;
|
|
||||||
if($workflowmode == 'advanced') {
|
if($workflowmode == 'advanced') {
|
||||||
$workflow = $latestContent->getWorkflow();
|
$workflow = $latestContent->getWorkflow();
|
||||||
if($workflow) {
|
if($workflow && $latestContent->needsWorkflowAction($user)) {
|
||||||
$needwkflaction = $latestContent->needsWorkflowAction($user);
|
$attentionstr .= "<i class=\"fa fa-exclamation-triangle\" title=\"". getMLText("workflow").": ".htmlspecialchars($workflow->getName())."\"></i> ";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ( $needwkflaction ) {
|
|
||||||
$attentionstr .= "<img src=\"".$this->getImgPath("attention.gif")."\" title=\"". getMLText("workflow").": ".htmlspecialchars($workflow->getName())."\"> ";
|
|
||||||
}
|
|
||||||
$content = '';
|
$content = '';
|
||||||
if($attentionstr)
|
if($attentionstr)
|
||||||
$content .= $attentionstr."<br />";
|
$content .= $attentionstr."<br />";
|
||||||
$content .= "<small>";
|
|
||||||
/* Retrieve attacheѕ files */
|
/* Retrieve attacheѕ files */
|
||||||
$files = $document->getDocumentFiles($latestContent->getVersion());
|
$files = $document->getDocumentFiles($latestContent->getVersion());
|
||||||
$files = SeedDMS_Core_DMS::filterDocumentFiles($user, $files);
|
$files = SeedDMS_Core_DMS::filterDocumentFiles($user, $files);
|
||||||
|
@ -3000,17 +3028,18 @@ $('body').on('click', '[id^=\"table-row-folder\"] td:nth-child(2)', function(ev)
|
||||||
$revlinks = $document->getReverseDocumentLinks();
|
$revlinks = $document->getReverseDocumentLinks();
|
||||||
$revlinks = SeedDMS_Core_DMS::filterDocumentLinks($user, $revlinks);
|
$revlinks = SeedDMS_Core_DMS::filterDocumentLinks($user, $revlinks);
|
||||||
|
|
||||||
|
$content .= "<div style=\"font-size: 85%;\">";
|
||||||
if(count($files))
|
if(count($files))
|
||||||
$content .= count($files)." ".getMLText("linked_files")."<br />";
|
$content .= '<i class="fa fa-paperclip" title="'.getMLText("linked_files").'"></i> '.count($files)."<br />";
|
||||||
if(count($links) || count($revlinks))
|
if(count($links) || count($revlinks))
|
||||||
$content .= count($links)."/".count($revlinks)." ".getMLText("linked_documents")."<br />";
|
$content .= '<i class="fa fa-link" title="'.getMLText("linked_documents").'"></i> '.count($links)."/".count($revlinks)."<br />";
|
||||||
if($status["status"] == S_IN_WORKFLOW && $workflowmode == 'advanced') {
|
if($status["status"] == S_IN_WORKFLOW && $workflowmode == 'advanced') {
|
||||||
if($workflowstate = $latestContent->getWorkflowState())
|
if($workflowstate = $latestContent->getWorkflowState())
|
||||||
$content .= '<span title="'.getOverallStatusText($status["status"]).': '.($workflow ? htmlspecialchars($workflow->getName()) : '').'">'.($workflowstate ? htmlspecialchars($workflowstate->getName()) : '').'</span>';
|
$content .= '<span title="'.getOverallStatusText($status["status"]).': '.($workflow ? htmlspecialchars($workflow->getName()) : '').'">'.($workflowstate ? htmlspecialchars($workflowstate->getName()) : '').'</span>';
|
||||||
} else {
|
} else {
|
||||||
$content .= getOverallStatusText($status["status"]);
|
$content .= $this->getOverallStatusIcon($status['status']);
|
||||||
}
|
}
|
||||||
$content .= "</small>";
|
$content .= "</div>";
|
||||||
return $content;
|
return $content;
|
||||||
} /* }}} */
|
} /* }}} */
|
||||||
|
|
||||||
|
@ -3199,6 +3228,53 @@ $('body').on('click', '[id^=\"table-row-folder\"] td:nth-child(2)', function(ev)
|
||||||
return "</tr>\n";
|
return "</tr>\n";
|
||||||
} /* }}} */
|
} /* }}} */
|
||||||
|
|
||||||
|
function folderListRowStatus($subFolder) { /* {{{ */
|
||||||
|
$dms = $this->params['dms'];
|
||||||
|
$user = $this->params['user'];
|
||||||
|
$showtree = $this->params['showtree'];
|
||||||
|
$enableRecursiveCount = $this->params['enableRecursiveCount'];
|
||||||
|
$maxRecursiveCount = $this->params['maxRecursiveCount'];
|
||||||
|
|
||||||
|
$content = "<div style=\"font-size: 85%;\">";
|
||||||
|
if($enableRecursiveCount) {
|
||||||
|
if($user->isAdmin()) {
|
||||||
|
/* No need to check for access rights in countChildren() for
|
||||||
|
* admin. So pass 0 as the limit.
|
||||||
|
*/
|
||||||
|
$cc = $subFolder->countChildren($user, 0);
|
||||||
|
if($cc['folder_count'])
|
||||||
|
$content .= '<i class="fa fa-folder" title="'.getMLText("folders").'"></i> '.$cc['folder_count']."<br />";
|
||||||
|
if($cc['document_count'])
|
||||||
|
$content .= '<i class="fa fa-file" title="'.getMLText("documents").'"></i> '.$cc['document_count'];
|
||||||
|
} else {
|
||||||
|
$cc = $subFolder->countChildren($user, $maxRecursiveCount);
|
||||||
|
if($maxRecursiveCount > 5000)
|
||||||
|
$rr = 100.0;
|
||||||
|
else
|
||||||
|
$rr = 10.0;
|
||||||
|
if($cc['folder_count'])
|
||||||
|
$content .= '<i class="fa fa-folder" title="'.getMLText("folders").'"></i> '.(!$cc['folder_precise'] ? '~'.(round($cc['folder_count']/$rr)*$rr) : $cc['folder_count'])."<br />";
|
||||||
|
if($cc['document_count'])
|
||||||
|
$content .= '<i class="fa fa-file" title="'.getMLText("documents").'"></i> '.(!$cc['document_precise'] ? '~'.(round($cc['document_count']/$rr)*$rr) : $cc['document_count']);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
/* FIXME: the following is very inefficient for just getting the number of
|
||||||
|
* subfolders and documents. Making it more efficient is difficult, because
|
||||||
|
* the access rights need to be checked.
|
||||||
|
*/
|
||||||
|
$subsub = $subFolder->getSubFolders();
|
||||||
|
$subsub = SeedDMS_Core_DMS::filterAccess($subsub, $user, M_READ);
|
||||||
|
$subdoc = $subFolder->getDocuments();
|
||||||
|
$subdoc = SeedDMS_Core_DMS::filterAccess($subdoc, $user, M_READ);
|
||||||
|
if(count($subsub))
|
||||||
|
$content .= '<i class="fa fa-folder" title="'.getMLText("folders").'"></i> '.count($subsub)."<br />";
|
||||||
|
if(count($subdoc))
|
||||||
|
$content .= '<i class="fa fa-file" title="'.getMLText("documents").'"></i> '.count($subdoc);
|
||||||
|
}
|
||||||
|
$content .= "</div>";
|
||||||
|
return $content;
|
||||||
|
} /* }}} */
|
||||||
|
|
||||||
function folderListRowAction($subFolder, $skipcont=false, $extracontent=array()) { /* {{{ */
|
function folderListRowAction($subFolder, $skipcont=false, $extracontent=array()) { /* {{{ */
|
||||||
$dms = $this->params['dms'];
|
$dms = $this->params['dms'];
|
||||||
$user = $this->params['user'];
|
$user = $this->params['user'];
|
||||||
|
@ -3280,34 +3356,9 @@ $('body').on('click', '[id^=\"table-row-folder\"] td:nth-child(2)', function(ev)
|
||||||
$content .= $extracontent['bottom_title'];
|
$content .= $extracontent['bottom_title'];
|
||||||
$content .= "</td>\n";
|
$content .= "</td>\n";
|
||||||
// $content .= "<td>".htmlspecialchars($owner->getFullName())."</td>";
|
// $content .= "<td>".htmlspecialchars($owner->getFullName())."</td>";
|
||||||
$content .= "<td colspan=\"1\" nowrap><small>";
|
$content .= "<td colspan=\"1\" nowrap>";
|
||||||
if($enableRecursiveCount) {
|
$content .= $this->folderListRowStatus($subFolder);
|
||||||
if($user->isAdmin()) {
|
$content .= "</td>";
|
||||||
/* No need to check for access rights in countChildren() for
|
|
||||||
* admin. So pass 0 as the limit.
|
|
||||||
*/
|
|
||||||
$cc = $subFolder->countChildren($user, 0);
|
|
||||||
$content .= $cc['folder_count']." ".getMLText("folders")."<br />".$cc['document_count']." ".getMLText("documents");
|
|
||||||
} else {
|
|
||||||
$cc = $subFolder->countChildren($user, $maxRecursiveCount);
|
|
||||||
if($maxRecursiveCount > 5000)
|
|
||||||
$rr = 100.0;
|
|
||||||
else
|
|
||||||
$rr = 10.0;
|
|
||||||
$content .= (!$cc['folder_precise'] ? '~'.(round($cc['folder_count']/$rr)*$rr) : $cc['folder_count'])." ".getMLText("folders")."<br />".(!$cc['document_precise'] ? '~'.(round($cc['document_count']/$rr)*$rr) : $cc['document_count'])." ".getMLText("documents");
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
/* FIXME: the following is very inefficient for just getting the number of
|
|
||||||
* subfolders and documents. Making it more efficient is difficult, because
|
|
||||||
* the access rights need to be checked.
|
|
||||||
*/
|
|
||||||
$subsub = $subFolder->getSubFolders();
|
|
||||||
$subsub = SeedDMS_Core_DMS::filterAccess($subsub, $user, M_READ);
|
|
||||||
$subdoc = $subFolder->getDocuments();
|
|
||||||
$subdoc = SeedDMS_Core_DMS::filterAccess($subdoc, $user, M_READ);
|
|
||||||
$content .= count($subsub)." ".getMLText("folders")."<br />".count($subdoc)." ".getMLText("documents");
|
|
||||||
}
|
|
||||||
$content .= "</small></td>";
|
|
||||||
$content .= "<td>";
|
$content .= "<td>";
|
||||||
$content .= $this->folderListRowAction($subFolder, $skipcont, $extracontent);
|
$content .= $this->folderListRowAction($subFolder, $skipcont, $extracontent);
|
||||||
$content .= "</td>";
|
$content .= "</td>";
|
||||||
|
@ -3367,11 +3418,13 @@ $('body').on('click', '[id^=\"table-row-folder\"] td:nth-child(2)', function(ev)
|
||||||
<div class="qq-total-progress-bar-container-selector qq-total-progress-bar-container">
|
<div class="qq-total-progress-bar-container-selector qq-total-progress-bar-container">
|
||||||
<div role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" class="qq-total-progress-bar-selector qq-progress-bar qq-total-progress-bar"></div>
|
<div role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" class="qq-total-progress-bar-selector qq-progress-bar qq-total-progress-bar"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="input-append">
|
<div class="input-group">
|
||||||
<div class="qq-upload-drop-area-selector qq-upload-drop-area" _qq-hide-dropzone>
|
<div class="form-control qq-upload-drop-area-selector qq-upload-drop-area" _qq-hide-dropzone>
|
||||||
<span class="qq-upload-drop-area-text-selector"></span>
|
<span class="qq-upload-drop-area-text-selector"></span>
|
||||||
</div>
|
</div>
|
||||||
<span class="btn qq-upload-button-selector qq-upload-button">'.getMLText('browse').'…</span>
|
<div class="input-group-append">
|
||||||
|
<span class="btn btn-secondary qq-upload-button-selector qq-upload-button">'.getMLText('choose_target_file').'…</span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<span class="qq-drop-processing-selector qq-drop-processing">
|
<span class="qq-drop-processing-selector qq-drop-processing">
|
||||||
<span class="qq-drop-processing-spinner-selector qq-drop-processing-spinner"></span>
|
<span class="qq-drop-processing-spinner-selector qq-drop-processing-spinner"></span>
|
||||||
|
@ -3385,22 +3438,22 @@ $('body').on('click', '[id^=\"table-row-folder\"] td:nth-child(2)', function(ev)
|
||||||
<img class="qq-thumbnail-selector" qq-max-size="100" qq-server-scale>
|
<img class="qq-thumbnail-selector" qq-max-size="100" qq-server-scale>
|
||||||
<span class="qq-upload-file-selector qq-upload-file"></span>
|
<span class="qq-upload-file-selector qq-upload-file"></span>
|
||||||
<span class="qq-upload-size-selector qq-upload-size"></span>
|
<span class="qq-upload-size-selector qq-upload-size"></span>
|
||||||
<button class="btn btn-mini qq-btn qq-upload-cancel-selector qq-upload-cancel">Cancel</button>
|
<button class="btn btn-sm btn-danger qq-btn qq-upload-cancel-selector qq-upload-cancel">Cancel</button>
|
||||||
<span role="status" class="qq-upload-status-text-selector qq-upload-status-text"></span>
|
<span role="status" class="qq-upload-status-text-selector qq-upload-status-text"></span>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<dialog class="qq-alert-dialog-selector">
|
<dialog class="qq-alert-dialog-selector">
|
||||||
<div class="qq-dialog-message-selector"></div>
|
<div class="qq-dialog-message-selector"></div>
|
||||||
<div class="qq-dialog-buttons">
|
<div class="qq-dialog-buttons">
|
||||||
<button class="btn qq-cancel-button-selector">Cancel</button>
|
<button class="btn btn-sm btn-secondary qq-cancel-button-selector">Cancel</button>
|
||||||
</div>
|
</div>
|
||||||
</dialog>
|
</dialog>
|
||||||
|
|
||||||
<dialog class="qq-confirm-dialog-selector">
|
<dialog class="qq-confirm-dialog-selector">
|
||||||
<div class="qq-dialog-message-selector"></div>
|
<div class="qq-dialog-message-selector"></div>
|
||||||
<div class="qq-dialog-buttons">
|
<div class="qq-dialog-buttons">
|
||||||
<button class="btn qq-cancel-button-selector">Cancel</button>
|
<button class="btn btn-sm btn-secondary qq-cancel-button-selector">Cancel</button>
|
||||||
<button class="btn qq-ok-button-selector">Ok</button>
|
<button class="btn btn-sm btn-primary qq-ok-button-selector">Ok</button>
|
||||||
</div>
|
</div>
|
||||||
</dialog>
|
</dialog>
|
||||||
|
|
||||||
|
@ -3709,9 +3762,7 @@ $("body").on("click", "span.openpopupbox", function(e) {
|
||||||
*/
|
*/
|
||||||
$html = '
|
$html = '
|
||||||
<span class="openpopupbox" data-href="#'.$id.'">'.$title.'</span>
|
<span class="openpopupbox" data-href="#'.$id.'">'.$title.'</span>
|
||||||
<div id="'.$id.'" class="popupbox" style="display: none;">
|
<div id="'.$id.'" class="popupbox" style="display: none;">'.$content.'<span class="closepopupbox"><i class="fa fa-remove"></i></span>
|
||||||
'.$content.'
|
|
||||||
<span class="closepopupbox"><i class="fa fa-remove"></i></span>
|
|
||||||
</div>';
|
</div>';
|
||||||
if($ret)
|
if($ret)
|
||||||
return $html;
|
return $html;
|
||||||
|
@ -3738,6 +3789,24 @@ $("body").on("click", "span.openpopupbox", function(e) {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<?php
|
||||||
|
} /* }}} */
|
||||||
|
|
||||||
|
public function printAccordion2($title, $content) { /* {{{ */
|
||||||
|
$id = substr(md5(uniqid()), 0, 4);
|
||||||
|
?>
|
||||||
|
<div class="accordion2" id="accordion<?php echo $id; ?>">
|
||||||
|
<a class="accordion2-toggle" data-toggle="collapse" data-parent="#accordion<?php echo $id; ?>" data-target="#collapse<?php echo $id; ?>">
|
||||||
|
<?php
|
||||||
|
$this->contentHeading($title);
|
||||||
|
?>
|
||||||
|
</a>
|
||||||
|
<div id="collapse<?php echo $id; ?>" class="collapse" data-parent="accordion<?php echo $id; ?>">
|
||||||
|
<?php
|
||||||
|
echo $content;
|
||||||
|
?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<?php
|
<?php
|
||||||
} /* }}} */
|
} /* }}} */
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,6 +9,9 @@ body { /* Add top padding for full-width layout */
|
||||||
#login_wrapper {
|
#login_wrapper {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
legend { /* to prevent overlong filenames from cause horiz. scroll */
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
a.navbar-brand img {
|
a.navbar-brand img {
|
||||||
|
@ -171,6 +174,7 @@ div.statusbar div.filesize {
|
||||||
}
|
}
|
||||||
div.statusbar div.progress {
|
div.statusbar div.progress {
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
|
line-height: 1rem;
|
||||||
}
|
}
|
||||||
div.statusbar a.btn {
|
div.statusbar a.btn {
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
|
@ -260,6 +264,10 @@ div.statusbar-container h1 {
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
a.accordion2-toggle:focus, a.accordion2-toggle:hover {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
span.datepicker {
|
span.datepicker {
|
||||||
padding: 0px;
|
padding: 0px;
|
||||||
}
|
}
|
||||||
|
@ -339,6 +347,8 @@ i.warning {color: #ff9900;}
|
||||||
i.initstate {color: #ff9900;}
|
i.initstate {color: #ff9900;}
|
||||||
i.released {color: #00b000;}
|
i.released {color: #00b000;}
|
||||||
i.rejected {color: #b00000;}
|
i.rejected {color: #b00000;}
|
||||||
|
i.expired {color: #b0b0b0;}
|
||||||
|
i.obsolete {color: #9e5d42;}
|
||||||
i.in-workflow {color: #11479e;}
|
i.in-workflow {color: #11479e;}
|
||||||
i.workflow-action {color: #91479e;}
|
i.workflow-action {color: #91479e;}
|
||||||
i.selected {border: 1px solid #d4d4d4;padding:3px;border-radius:3px;background-color:#fafafa;background-image: linear-gradient(to bottom, #ffffff, #f2f2f2);}
|
i.selected {border: 1px solid #d4d4d4;padding:3px;border-radius:3px;background-color:#fafafa;background-image: linear-gradient(to bottom, #ffffff, #f2f2f2);}
|
||||||
|
@ -359,11 +369,14 @@ div.popupbox {
|
||||||
color: black;
|
color: black;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
text-shadow: none;
|
text-shadow: none;
|
||||||
|
line-height: 1.4em;
|
||||||
border: 1px solid #ccc;
|
border: 1px solid #ccc;
|
||||||
padding: 25px 15px 15px 15px;
|
padding: 25px 15px 15px 15px;
|
||||||
display: none;
|
display: none;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
min-width: 230px;
|
min-width: 230px;
|
||||||
|
max-width: 280px;
|
||||||
|
white-space: break-spaces;
|
||||||
z-index: 10;
|
z-index: 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -412,15 +425,6 @@ ul.qq-upload-list li span {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
}
|
||||||
|
|
||||||
.qq-upload-drop-area {
|
|
||||||
display: inline-block;
|
|
||||||
width: 200px;
|
|
||||||
height: 22px;
|
|
||||||
padding: 3px;
|
|
||||||
background-color: #fff;
|
|
||||||
border: 1px solid #cccccc;
|
|
||||||
border-radius: 4px;
|
|
||||||
}
|
|
||||||
.qq-hide, .qq-uploader dialog {
|
.qq-hide, .qq-uploader dialog {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
|
@ -704,11 +704,20 @@ function onAddClipboard(ev) { /* {{{ */
|
||||||
maxFileSize = size;
|
maxFileSize = size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SeedDMSUpload.getMaxFileSize = function() {
|
||||||
|
return maxFileSize;
|
||||||
|
}
|
||||||
|
|
||||||
SeedDMSUpload.setMaxFileSizeMsg = function(msg) {
|
SeedDMSUpload.setMaxFileSizeMsg = function(msg) {
|
||||||
maxFileSizeMsg = msg;
|
maxFileSizeMsg = msg;
|
||||||
}
|
}
|
||||||
|
|
||||||
function sendFileToServer(formData,status,callback) {
|
SeedDMSUpload.getMaxFileSizeMsg = function() {
|
||||||
|
return maxFileSizeMsg;
|
||||||
|
}
|
||||||
|
|
||||||
|
// function sendFileToServer(formData,status,callback) {
|
||||||
|
SeedDMSUpload.sendFileToServer = function(formData,status,callback) {
|
||||||
var uploadURL = ajaxurl; //Upload URL
|
var uploadURL = ajaxurl; //Upload URL
|
||||||
var extraData ={}; //Extra Data.
|
var extraData ={}; //Extra Data.
|
||||||
var jqXHR=$.ajax({
|
var jqXHR=$.ajax({
|
||||||
|
@ -767,7 +776,8 @@ function onAddClipboard(ev) { /* {{{ */
|
||||||
status.setAbort(jqXHR);
|
status.setAbort(jqXHR);
|
||||||
}
|
}
|
||||||
|
|
||||||
function createStatusbar(obj) {
|
//function createStatusbar(obj) {
|
||||||
|
SeedDMSUpload.createStatusbar = function(obj) {
|
||||||
rowCount++;
|
rowCount++;
|
||||||
var row="odd";
|
var row="odd";
|
||||||
this.obj = obj;
|
this.obj = obj;
|
||||||
|
@ -793,8 +803,8 @@ function onAddClipboard(ev) { /* {{{ */
|
||||||
this.size.html(sizeStr);
|
this.size.html(sizeStr);
|
||||||
}
|
}
|
||||||
this.setProgress = function(progress) {
|
this.setProgress = function(progress) {
|
||||||
var progressBarWidth =progress*this.progressBar.width()/ 100;
|
// var progressBarWidth =progress*this.progressBar.width()/ 100;
|
||||||
this.progressBar.find('div').animate({ width: progressBarWidth }, 10).html(progress + "% ");
|
this.progressBar.find('div').animate({ width: progress+"%" }, 10).html(progress + "% ");
|
||||||
if(parseInt(progress) >= 100) {
|
if(parseInt(progress) >= 100) {
|
||||||
this.abort.hide();
|
this.abort.hide();
|
||||||
}
|
}
|
||||||
|
@ -828,7 +838,7 @@ function onAddClipboard(ev) { /* {{{ */
|
||||||
formData.append(key, value);
|
formData.append(key, value);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else if(typeof data !== 'undefined') {
|
||||||
formData.append(previousKey, data);
|
formData.append(previousKey, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -863,9 +873,9 @@ function onAddClipboard(ev) { /* {{{ */
|
||||||
// fd.append('path', files[i].webkitRelativePath);
|
// fd.append('path', files[i].webkitRelativePath);
|
||||||
|
|
||||||
statusbar.parent().show();
|
statusbar.parent().show();
|
||||||
var status = new createStatusbar(statusbar);
|
var status = new SeedDMSUpload.createStatusbar(statusbar);
|
||||||
status.setFileNameSize(files[i].name,files[i].size);
|
status.setFileNameSize(files[i].name,files[i].size);
|
||||||
sendFileToServer(fd,status,function(){
|
SeedDMSUpload.sendFileToServer(fd,status,function(){
|
||||||
if(target_id == seeddms_folder)
|
if(target_id == seeddms_folder)
|
||||||
$("div.ajax[data-action='folderList']").trigger('update', {folderid: seeddms_folder});
|
$("div.ajax[data-action='folderList']").trigger('update', {folderid: seeddms_folder});
|
||||||
});
|
});
|
||||||
|
@ -891,9 +901,9 @@ function onAddClipboard(ev) { /* {{{ */
|
||||||
fd.append('userfile', files[i]);
|
fd.append('userfile', files[i]);
|
||||||
fd.append('command', 'uploaddocument');
|
fd.append('command', 'uploaddocument');
|
||||||
|
|
||||||
var status = new createStatusbar(statusbar);
|
var status = new SeedDMSUpload.createStatusbar(statusbar);
|
||||||
status.setFileNameSize(files[i].name,files[i].size);
|
status.setFileNameSize(files[i].name,files[i].size);
|
||||||
sendFileToServer(fd,status);
|
SeedDMSUpload.sendFileToServer(fd,status);
|
||||||
} else {
|
} else {
|
||||||
noty({
|
noty({
|
||||||
text: maxFileSizeMsg + '<br /><em>' + files[i].name + ' (' + files[i].size + ' Bytes)</em>',
|
text: maxFileSizeMsg + '<br /><em>' + files[i].name + ' (' + files[i].size + ' Bytes)</em>',
|
||||||
|
@ -916,9 +926,9 @@ function onAddClipboard(ev) { /* {{{ */
|
||||||
fd.append('userfile', files[i]);
|
fd.append('userfile', files[i]);
|
||||||
fd.append('command', 'addfile');
|
fd.append('command', 'addfile');
|
||||||
|
|
||||||
var status = new createStatusbar(statusbar);
|
var status = new SeedDMSUpload.createStatusbar(statusbar);
|
||||||
status.setFileNameSize(files[i].name,files[i].size);
|
status.setFileNameSize(files[i].name,files[i].size);
|
||||||
sendFileToServer(fd,status, function(){
|
SeedDMSUpload.sendFileToServer(fd,status, function(){
|
||||||
$("div.ajax[data-action='documentFiles']").trigger('update', {documentid: target_id});
|
$("div.ajax[data-action='documentFiles']").trigger('update', {documentid: target_id});
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -25,9 +25,6 @@ body {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
/* Set the fixed height of the footer here */
|
|
||||||
height: 68px;
|
|
||||||
_line-height: 17px; /* Vertically center the text there */
|
|
||||||
background-color: #f5f5f5;
|
background-color: #f5f5f5;
|
||||||
}
|
}
|
||||||
@media (max-width: 991px) {
|
@media (max-width: 991px) {
|
||||||
|
@ -45,9 +42,9 @@ body {
|
||||||
}
|
}
|
||||||
.footer .disclaimer {
|
.footer .disclaimer {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
padding: 15px 0px 0px 0px;
|
padding: 7px 0px 7px 0px;
|
||||||
}
|
}
|
||||||
.footer .footNote {
|
.footer .footNote {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
padding: 0px 0px 15px 0px;
|
padding: 7px 0px 7px 0px;
|
||||||
}
|
}
|
||||||
|
|
|
@ -384,8 +384,8 @@ class HTTP_WebDAV_Server_SeedDMS extends HTTP_WebDAV_Server
|
||||||
array_shift($patharr);
|
array_shift($patharr);
|
||||||
$path = '';
|
$path = '';
|
||||||
foreach($patharr as $pathseg)
|
foreach($patharr as $pathseg)
|
||||||
// $path .= '/'.rawurlencode($pathseg->getName());
|
$path .= '/'.rawurlencode($pathseg->getName());
|
||||||
$path .= '/'.$pathseg->getName();
|
// $path .= '/'.$pathseg->getName();
|
||||||
if(!$path) {
|
if(!$path) {
|
||||||
$path = '/';
|
$path = '/';
|
||||||
$info["props"][] = $this->mkprop("isroot", "true");
|
$info["props"][] = $this->mkprop("isroot", "true");
|
||||||
|
@ -407,8 +407,8 @@ class HTTP_WebDAV_Server_SeedDMS extends HTTP_WebDAV_Server
|
||||||
array_shift($patharr);
|
array_shift($patharr);
|
||||||
$path = '/';
|
$path = '/';
|
||||||
foreach($patharr as $pathseg)
|
foreach($patharr as $pathseg)
|
||||||
// $path .= rawurlencode($pathseg->getName()).'/';
|
$path .= rawurlencode($pathseg->getName()).'/';
|
||||||
$path .= $pathseg->getName().'/';
|
// $path .= $pathseg->getName().'/';
|
||||||
// $info["path"] = htmlspecialchars($path.rawurlencode($obj->getName()));
|
// $info["path"] = htmlspecialchars($path.rawurlencode($obj->getName()));
|
||||||
if($this->useorgfilename) {
|
if($this->useorgfilename) {
|
||||||
/* Add the document id and version to the display name.
|
/* Add the document id and version to the display name.
|
||||||
|
@ -572,6 +572,7 @@ class HTTP_WebDAV_Server_SeedDMS extends HTTP_WebDAV_Server
|
||||||
$displayname = $obj->getName().'/';
|
$displayname = $obj->getName().'/';
|
||||||
$filesize = 0;
|
$filesize = 0;
|
||||||
$mtime = $obj->getDate();
|
$mtime = $obj->getDate();
|
||||||
|
$mimetype = '';
|
||||||
} else {
|
} else {
|
||||||
$content = $obj->getLatestContent();
|
$content = $obj->getLatestContent();
|
||||||
|
|
||||||
|
@ -604,7 +605,7 @@ class HTTP_WebDAV_Server_SeedDMS extends HTTP_WebDAV_Server
|
||||||
printf($format,
|
printf($format,
|
||||||
number_format($filesize),
|
number_format($filesize),
|
||||||
strftime("%Y-%m-%d %H:%M:%S", $mtime),
|
strftime("%Y-%m-%d %H:%M:%S", $mtime),
|
||||||
"<a href=\"".$_SERVER['SCRIPT_NAME'].htmlspecialchars($fullpath)."\">".htmlspecialchars($displayname, ENT_QUOTES)."</a>");
|
"<a href=\"".$_SERVER['SCRIPT_NAME'].htmlspecialchars($fullpath)."\"".($mimetype ? " title=\"".$mimetype."\"" : "").">".htmlspecialchars($displayname, ENT_QUOTES)."</a>");
|
||||||
}
|
}
|
||||||
|
|
||||||
echo "</pre>";
|
echo "</pre>";
|
||||||
|
|
Loading…
Reference in New Issue
Block a user