diff --git a/CHANGELOG b/CHANGELOG index 0b92ea08c..e7feb4069 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -8,11 +8,19 @@ -------------------------------------------------------------------------------- Changes in version 6.0.1 -------------------------------------------------------------------------------- +- check if user has access on document and is not disabled if set as + receiver, revisor +- check if group has members if set as reviewer, approver, receiver, revisor +- fix bug in notification of approver after successful review - call hook 'rawcontent' when downloading transmittal list or search content - speed up list of locked documents on MyDocuments page - sql queries and execution times can be written to file in database layer - add document check for docs in revision and missing access rights of revisor - add document check for docs requiring receptions but user lacks access right +- fix Acl manager when using pgsql +- list all open tasks of user in user info of user manager +- owner of document may see review/approval/receipt/revision log +- fix sending mails to reviewer/approvers after check in -------------------------------------------------------------------------------- Changes in version 6.0.0 @@ -38,6 +46,22 @@ - add document list which can be exported as an archive - search results can be exported +-------------------------------------------------------------------------------- + Changes in version 5.1.3 +-------------------------------------------------------------------------------- +- add link to search for attribute value in attribute mgr +- fix output of validation errors in attribute mgr +- check if user has access on document and is not disabled if set as + reviewer, approver +- notifications are only send to none disabled users +- nicer layout in user manager, group buttons, more information +- merged changes from 5.0.13 +- show number of users where the select user is a mandatory reviewer/approver of +- fix upload of attachments +- documents, folders, files, events can be moved to a new user +- do not show quota information in user manager if quotas are turn off +- files in drop folder can be listed in main menu + -------------------------------------------------------------------------------- Changes in version 5.1.2 -------------------------------------------------------------------------------- @@ -63,6 +87,11 @@ - added support for postgresql - document attachments can linked to a version and be public or hidden +-------------------------------------------------------------------------------- + Changes in version 5.0.13 +-------------------------------------------------------------------------------- +- merged changes from 4.3.36 + -------------------------------------------------------------------------------- Changes in version 5.0.12 -------------------------------------------------------------------------------- @@ -156,6 +185,23 @@ - add .xml to online file types by default - add home folder for users +-------------------------------------------------------------------------------- + Changes in version 4.3.36 +-------------------------------------------------------------------------------- +- mark disabled users in user list and substitute user list +- if expandFolderTree is set to hidden the tree actually is hidden (partially + closes #312) +- fix sql statement for creating temp. tables (sqlite) +- remove empty lines at end of view/bootstrap/class.*.php files (Closes #329) +- make sure contentDir ends with DIRECTORY_SEPARATOR (Closes #323) +- minor improvements of installation +- better checking in out/*.php for allowed operation (e.g. EditOnline, + RemoveVersion, SetReviewersApprovers, ...) +- SetReviewersApprovers checks for mandatory reviewers/approvers +- reviewers/approvers can only be modified by users with unrestricted access + and as long as no reviewer/approver has reviewed/approved the document +- use only svg icons for mimetypes + -------------------------------------------------------------------------------- Changes in version 4.3.35 -------------------------------------------------------------------------------- diff --git a/SeedDMS_Core/Core/inc.ClassDMS.php b/SeedDMS_Core/Core/inc.ClassDMS.php index ca23544ad..c705dad62 100644 --- a/SeedDMS_Core/Core/inc.ClassDMS.php +++ b/SeedDMS_Core/Core/inc.ClassDMS.php @@ -786,6 +786,7 @@ class SeedDMS_Core_DMS { /* The following statement retrieves the status of the last version of all * documents. It must be restricted by further where clauses. */ +/* $queryStr = "SELECT `tblDocuments`.*, `tblDocumentLocks`.`userID` as `lockUser`, ". "`tblDocumentContent`.`version`, `tblDocumentStatus`.*, `tblDocumentStatusLog`.`status`, ". "`tblDocumentStatusLog`.`comment` AS `statusComment`, `tblDocumentStatusLog`.`date` as `statusDate`, ". @@ -801,9 +802,33 @@ class SeedDMS_Core_DMS { "LEFT JOIN `tblUsers` AS `sTbl` on `sTbl`.`id` = `tblDocumentStatusLog`.`userID` ". "WHERE `ttstatid`.`maxLogID`=`tblDocumentStatusLog`.`statusLogID` ". "AND `ttcontentid`.`maxVersion` = `tblDocumentContent`.`version` "; + */ + /* New sql statement which retrieves all documents, its latest version and + * status, the owner and user initiating the latest status. + * It doesn't need the where clause anymore. Hence the statement could be + * extended with further left joins. + */ + $selectStr = "SELECT `tblDocuments`.*, `tblDocumentLocks`.`userID` as `lockUser`, ". + "`tblDocumentContent`.`version`, `tblDocumentStatus`.*, `tblDocumentStatusLog`.`status`, ". + "`tblDocumentStatusLog`.`comment` AS `statusComment`, `tblDocumentStatusLog`.`date` as `statusDate`, ". + "`tblDocumentStatusLog`.`userID`, `oTbl`.`fullName` AS `ownerName`, `sTbl`.`fullName` AS `statusName` "; + $queryStr = + "FROM `ttcontentid` ". + "LEFT JOIN `tblDocuments` ON `tblDocuments`.`id` = `ttcontentid`.`document` ". + "LEFT JOIN `tblDocumentContent` ON `tblDocumentContent`.`document` = `ttcontentid`.`document` AND `tblDocumentContent`.`version` = `ttcontentid`.`maxVersion` ". + "LEFT JOIN `tblDocumentStatus` ON `tblDocumentStatus`.`documentID`=`ttcontentid`.`document` AND `tblDocumentStatus`.`version`=`ttcontentid`.`maxVersion` ". + "LEFT JOIN `ttstatid` ON `ttstatid`.`statusID` = `tblDocumentStatus`.`statusID` ". + "LEFT JOIN `tblDocumentStatusLog` ON `ttstatid`.`statusID` = `tblDocumentStatusLog`.`statusID` AND `ttstatid`.`maxLogID` = `tblDocumentStatusLog`.`statusLogID` ". + "LEFT JOIN `tblDocumentLocks` ON `ttcontentid`.`document`=`tblDocumentLocks`.`document` ". + "LEFT JOIN `tblUsers` `oTbl` ON `oTbl`.`id` = `tblDocuments`.`owner` ". + "LEFT JOIN `tblUsers` `sTbl` ON `sTbl`.`id` = `tblDocumentStatusLog`.`userID` "; + +// echo $queryStr; switch($listtype) { case 'AppRevByMe': // Documents I have to review/approve {{{ + $queryStr .= "WHERE 1=1 "; + $user = $param1; // Get document list for the current user. $reviewStatus = $user->getReviewStatus(); @@ -847,6 +872,9 @@ class SeedDMS_Core_DMS { } break; // }}} case 'ReviewByMe': // Documents I have to review {{{ + if (!$this->db->createTemporaryTable("ttreviewid")) { + return false; + } $user = $param1; $orderby = $param3; if($param4 == 'desc') @@ -854,6 +882,33 @@ class SeedDMS_Core_DMS { else $orderdir = 'ASC'; + $groups = array(); + $tmp = $user->getGroups(); + foreach($tmp as $group) + $groups[] = $group->getID(); + + $selectStr .= ", `tblDocumentReviewLog`.`date` as `duedate` "; + $queryStr .= + "LEFT JOIN `tblDocumentReviewers` on `ttcontentid`.`document`=`tblDocumentReviewers`.`documentID` AND `ttcontentid`.`maxVersion`=`tblDocumentReviewers`.`version` ". + "LEFT JOIN `ttreviewid` ON `ttreviewid`.`reviewID` = `tblDocumentReviewers`.`reviewID` ". + "LEFT JOIN `tblDocumentReviewLog` ON `tblDocumentReviewLog`.`reviewLogID`=`ttreviewid`.`maxLogID` "; + + if(1) { + $queryStr .= "WHERE (`tblDocumentReviewers`.`type` = 0 AND `tblDocumentReviewers`.`required` = ".$user->getID()." "; + if($groups) + $queryStr .= "OR `tblDocumentReviewers`.`type` = 1 AND `tblDocumentReviewers`.`required` IN (".implode(',', $groups).") "; + $queryStr .= ") "; + $queryStr .= "AND `tblDocumentStatusLog`.`status` IN (".S_DRAFT_REV.", ".S_EXPIRED.") "; + if(!$param2) + $queryStr .= " AND `tblDocumentReviewLog`.`status` = 0 "; + if ($orderby=='e') $queryStr .= "ORDER BY `expires`"; + else if ($orderby=='u') $queryStr .= "ORDER BY `statusDate`"; + else if ($orderby=='s') $queryStr .= "ORDER BY `status`"; + else $queryStr .= "ORDER BY `name`"; + $queryStr .= " ".$orderdir; + } else { + $queryStr .= "WHERE 1=1 "; + // Get document list for the current user. $reviewStatus = $user->getReviewStatus(); @@ -889,8 +944,12 @@ class SeedDMS_Core_DMS { } else { $queryStr = ''; } + } break; // }}} case 'ApproveByMe': // Documents I have to approve {{{ + if (!$this->db->createTemporaryTable("ttapproveid")) { + return false; + } $user = $param1; $orderby = $param3; if($param4 == 'desc') @@ -898,6 +957,33 @@ class SeedDMS_Core_DMS { else $orderdir = 'ASC'; + $groups = array(); + $tmp = $user->getGroups(); + foreach($tmp as $group) + $groups[] = $group->getID(); + + $selectStr .= ", `tblDocumentApproveLog`.`date` as `duedate` "; + $queryStr .= + "LEFT JOIN `tblDocumentApprovers` on `ttcontentid`.`document`=`tblDocumentApprovers`.`documentID` AND `ttcontentid`.`maxVersion`=`tblDocumentApprovers`.`version` ". + "LEFT JOIN `ttapproveid` ON `ttapproveid`.`approveID` = `tblDocumentApprovers`.`approveID` ". + "LEFT JOIN `tblDocumentApproveLog` ON `tblDocumentApproveLog`.`approveLogID`=`ttapproveid`.`maxLogID` "; + + if(1) { + $queryStr .= "WHERE (`tblDocumentApprovers`.`type` = 0 AND `tblDocumentApprovers`.`required` = ".$user->getID()." "; + if($groups) + $queryStr .= "OR `tblDocumentApprovers`.`type` = 1 AND `tblDocumentApprovers`.`required` IN (".implode(',', $groups).")"; + $queryStr .= ") "; + $queryStr .= "AND `tblDocumentStatusLog`.`status` IN (".S_DRAFT_APP.", ".S_EXPIRED.") "; + if(!$param2) + $queryStr .= " AND `tblDocumentApproveLog`.`status` = 0 "; + if ($orderby=='e') $queryStr .= "ORDER BY `expires`"; + else if ($orderby=='u') $queryStr .= "ORDER BY `statusDate`"; + else if ($orderby=='s') $queryStr .= "ORDER BY `status`"; + else $queryStr .= "ORDER BY `name`"; + $queryStr .= " ".$orderdir; + } else { + $queryStr .= "WHERE 1=1 "; + // Get document list for the current user. $approvalStatus = $user->getApprovalStatus(); @@ -933,9 +1019,46 @@ class SeedDMS_Core_DMS { } else { $queryStr = ''; } + } break; // }}} case 'ReceiptByMe': // Documents I have to receipt {{{ + if (!$this->db->createTemporaryTable("ttreceiptid")) { + return false; + } $user = $param1; + $orderby = $param3; + if($param4 == 'desc') + $orderdir = 'DESC'; + else + $orderdir = 'ASC'; + + $groups = array(); + $tmp = $user->getGroups(); + foreach($tmp as $group) + $groups[] = $group->getID(); + + $selectStr .= ", `tblDocumentReceiptLog`.`date` as `duedate` "; + $queryStr .= + "LEFT JOIN `tblDocumentRecipients` on `ttcontentid`.`document`=`tblDocumentRecipients`.`documentID` AND `ttcontentid`.`maxVersion`=`tblDocumentRecipients`.`version` ". + "LEFT JOIN `ttreceiptid` ON `ttreceiptid`.`receiptID` = `tblDocumentRecipients`.`receiptID` ". + "LEFT JOIN `tblDocumentReceiptLog` ON `tblDocumentReceiptLog`.`receiptLogID`=`ttreceiptid`.`maxLogID` "; + + if(1) { + $queryStr .= "WHERE (`tblDocumentRecipients`.`type` = 0 AND `tblDocumentRecipients`.`required` = ".$user->getID()." "; + /* Checking for groups slows down the statement extremly on sqlite */ + if($groups) + $queryStr .= "OR `tblDocumentRecipients`.`type` = 1 AND `tblDocumentRecipients`.`required` IN (".implode(',', $groups).")"; + $queryStr .= ") "; + if(!$param2) + $queryStr .= " AND `tblDocumentReceiptLog`.`status` = 0 "; + if ($orderby=='e') $queryStr .= "ORDER BY `expires`"; + else if ($orderby=='u') $queryStr .= "ORDER BY `statusDate`"; + else if ($orderby=='s') $queryStr .= "ORDER BY `status`"; + else $queryStr .= "ORDER BY `name`"; + $queryStr .= " ".$orderdir; + } else { + $queryStr .= "WHERE 1=1 "; + // Get document list for the current user. $receiptStatus = $user->getReceiptStatus(); @@ -960,13 +1083,22 @@ class SeedDMS_Core_DMS { } if (strlen($docCSV)>0) { - $queryStr .= "AND `tblDocuments`.`id` IN (" . $docCSV . ") ". - "ORDER BY `statusDate` DESC"; + $queryStr .= "AND `tblDocuments`.`id` IN (" . $docCSV . ") "; +// $queryStr .= "ORDER BY `statusDate` DESC"; + if ($orderby=='e') $queryStr .= "ORDER BY `expires`"; + else if ($orderby=='u') $queryStr .= "ORDER BY `statusDate`"; + else if ($orderby=='s') $queryStr .= "ORDER BY `status`"; + else $queryStr .= "ORDER BY `name`"; + $queryStr .= " ".$orderdir; } else { $queryStr = ''; } + } break; // }}} case 'ReviseByMe': // Documents I have to receipt {{{ + if (!$this->db->createTemporaryTable("ttrevisionid")) { + return false; + } $user = $param1; $orderby = $param3; if($param4 == 'desc') @@ -974,6 +1106,32 @@ class SeedDMS_Core_DMS { else $orderdir = 'ASC'; + $groups = array(); + $tmp = $user->getGroups(); + foreach($tmp as $group) + $groups[] = $group->getID(); + + $selectStr .= ", `tblDocumentRevisionLog`.`date` as `duedate` "; + $queryStr .= + "LEFT JOIN `tblDocumentRevisors` on `ttcontentid`.`document`=`tblDocumentRevisors`.`documentID` AND `ttcontentid`.`maxVersion`=`tblDocumentRevisors`.`version` ". + "LEFT JOIN `ttrevisionid` ON `ttrevisionid`.`revisionID` = `tblDocumentRevisors`.`revisionID` ". + "LEFT JOIN `tblDocumentRevisionLog` ON `tblDocumentRevisionLog`.`revisionLogID`=`ttrevisionid`.`maxLogID` "; + + if(1) { + $queryStr .= "WHERE (`tblDocumentRevisors`.`type` = 0 AND `tblDocumentRevisors`.`required` = ".$user->getID()." "; + if($groups) + $queryStr .= "OR `tblDocumentRevisors`.`type` = 1 AND `tblDocumentRevisors`.`required` IN (".implode(',', $groups).")"; + $queryStr .= ") "; + if(!$param2) + $queryStr .= " AND `tblDocumentRevisionLog`.`status` = 0 "; + if ($orderby=='e') $queryStr .= "ORDER BY `expires`"; + else if ($orderby=='u') $queryStr .= "ORDER BY `statusDate`"; + else if ($orderby=='s') $queryStr .= "ORDER BY `status`"; + else $queryStr .= "ORDER BY `name`"; + $queryStr .= " ".$orderdir; + } else { + $queryStr .= "WHERE 1=1 "; + // Get document list for the current user. $revisionStatus = $user->getRevisionStatus(); @@ -1006,8 +1164,11 @@ class SeedDMS_Core_DMS { } else { $queryStr = ''; } + } break; // }}} case 'WorkflowByMe': // Documents I to trigger in Worklflow {{{ + $queryStr .= "WHERE 1=1 "; + $user = $param1; // Get document list for the current user. $workflowStatus = $user->getWorkflowStatus(); @@ -1040,6 +1201,8 @@ class SeedDMS_Core_DMS { } break; // }}} case 'AppRevOwner': // Documents waiting for review/approval/revision I'm owning {{{ + $queryStr .= "WHERE 1=1 "; + $user = $param1; $orderby = $param3; if($param4 == 'desc') @@ -1057,7 +1220,9 @@ class SeedDMS_Core_DMS { // "AND `tblDocumentStatusLog`.`status` IN (".S_DRAFT_REV.", ".S_DRAFT_APP.") ". // "ORDER BY `statusDate` DESC"; break; // }}} - case 'ReceiveOwner': // Documents waiting for reception I'm owning {{{ + case 'ReceiveOwner': // Documents having a reception I'm owning {{{ + $queryStr .= "WHERE 1=1 "; + $user = $param1; $orderby = $param3; if($param4 == 'desc') @@ -1065,7 +1230,9 @@ class SeedDMS_Core_DMS { else $orderdir = 'ASC'; - $qs = 'SELECT DISTINCT `documentID` FROM `tblDocumentRecipients` LEFT JOIN `ttcontentid` ON `ttcontentid`.`maxVersion` = `tblDocumentRecipients`.`version` AND `ttcontentid`.`document` = `tblDocumentRecipients`.`documentID`'; + // $qs = 'SELECT DISTINCT `documentID` FROM `tblDocumentRecipients` LEFT JOIN `ttcontentid` ON `ttcontentid`.`maxVersion` = `tblDocumentRecipients`.`version` AND `ttcontentid`.`document` = `tblDocumentRecipients`.`documentID`'; + // sql statement without older versions of a document + $qs = 'SELECT DISTINCT `document` as `documentID` FROM `ttcontentid` a LEFT JOIN `tblDocumentRecipients` b on a.`document`=b.`documentID` AND a.`maxVersion`=b.`version` WHERE b.`receiptID` IS NOT NULL'; $ra = $this->db->getResultArray($qs); if (is_bool($ra) && !$ra) { return false; @@ -1088,6 +1255,8 @@ class SeedDMS_Core_DMS { } break; // }}} case 'RejectOwner': // Documents that has been rejected and I'm owning {{{ + $queryStr .= "WHERE 1=1 "; + $user = $param1; $orderby = $param3; if($param4 == 'desc') @@ -1104,6 +1273,8 @@ class SeedDMS_Core_DMS { $queryStr .= " ".$orderdir; break; // }}} case 'LockedByMe': // Documents locked by me {{{ + $queryStr .= "WHERE 1=1 "; + $user = $param1; $orderby = $param3; if($param4 == 'desc') @@ -1133,12 +1304,16 @@ class SeedDMS_Core_DMS { } break; // }}} case 'WorkflowOwner': // Documents waiting for workflow trigger I'm owning {{{ + $queryStr .= "WHERE 1=1 "; + $user = $param1; $queryStr .= "AND `tblDocuments`.`owner` = '".$user->getID()."' ". "AND `tblDocumentStatusLog`.`status` IN (".S_IN_WORKFLOW.") ". "ORDER BY `statusDate` DESC"; break; // }}} case 'MyDocs': // Documents owned by me {{{ + $queryStr .= "WHERE 1=1 "; + $user = $param1; $orderby = $param3; if($param4 == 'desc') @@ -1153,6 +1328,8 @@ class SeedDMS_Core_DMS { $queryStr .= " ".$orderdir; break; // }}} case 'CheckedOutByMe': // Documents I have checked out {{{ + $queryStr .= "WHERE 1=1 "; + $user = $param1; $orderby = $param3; if($param4 == 'desc') @@ -1184,7 +1361,7 @@ class SeedDMS_Core_DMS { } if($queryStr) { - $resArr = $this->db->getResultArray($queryStr); + $resArr = $this->db->getResultArray($selectStr.$queryStr); if (is_bool($resArr) && !$resArr) { return false; } @@ -2952,6 +3129,40 @@ class SeedDMS_Core_DMS { } /* }}} */ + /** + * Returns a list of reviews, approvals which are not linked + * to a user, group anymore + * + * This method is for finding reviews or approvals whose user + * or group was deleted and not just removed from the process. + */ + function getProcessWithoutUserGroup($process, $usergroup) { /* {{{ */ + switch($process) { + case 'review': + $queryStr = "SELECT a.*, b.`name` FROM `tblDocumentReviewers`"; + break; + case 'approval': + $queryStr = "SELECT a.*, b.`name` FROM `tblDocumentApprovers`"; + break; + case 'receipt': + $queryStr = "SELECT a.*, b.`name` FROM `tblDocumentRecipients`"; + break; + case 'revision': + $queryStr = "SELECT a.*, b.`name` FROM `tblDocumentRevisors`"; + break; + } + $queryStr .= " a LEFT JOIN `tblDocuments` b ON a.`documentID`=b.`id` where"; + switch($usergroup) { + case 'user': + $queryStr .= " a.`type`=0 and a.`required` not in (select `id` from `tblUsers`) ORDER by b.`id`"; + break; + case 'group': + $queryStr .= " a.`type`=1 and a.`required` not in (select `id` from `tblGroups`) ORDER by b.`id`"; + break; + } + return $this->db->getResultArray($queryStr); + } /* }}} */ + /** * Returns statitical information * diff --git a/SeedDMS_Core/Core/inc.ClassDocument.php b/SeedDMS_Core/Core/inc.ClassDocument.php index 083c79849..1c6a8b188 100644 --- a/SeedDMS_Core/Core/inc.ClassDocument.php +++ b/SeedDMS_Core/Core/inc.ClassDocument.php @@ -706,6 +706,9 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ * The method will update the document status log database table * if needed. * + * FIXME: This method does not check if there are any revisors left. Even + * if all revisors have been removed, it will still start the revision workflow! + * * @param object $user user requesting the possible automatic change * @param string $next next date for review * @return boolean true if status has changed @@ -716,6 +719,22 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ $st=$lc->getStatus(); if($st["status"] == S_RELEASED) { + /* First check if there are any revisors left who need to revise */ + $pendingRevision=false; + unset($this->_revisionStatus); // force to be reloaded from DB + $revisionStatus=$lc->getRevisionStatus(); + if (is_array($revisionStatus) && count($revisionStatus)>0) { + foreach ($revisionStatus as $a){ + if ($a["status"]==S_LOG_SLEEPING || $a["status"]==S_LOG_SLEEPING){ + $pendingRevision=true; + break; + } + } + } + if(!$pendingRevision) + return false; + + /* Second check if revision is already due */ if($lc->getRevisionDate() && $lc->getRevisionDate() <= date('Y-m-d 00:00:00')) { if($lc->startRevision($user, 'Automatic start of revision workflow')) { if($next) { @@ -1310,10 +1329,15 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ $this->_notifyList = array("groups" => array(), "users" => array()); foreach ($resArr as $row) { - if ($row["userID"] != -1) - array_push($this->_notifyList["users"], $this->_dms->getUser($row["userID"]) ); - else //if ($row["groupID"] != -1) - array_push($this->_notifyList["groups"], $this->_dms->getGroup($row["groupID"]) ); + if ($row["userID"] != -1) { + $u = $this->_dms->getUser($row["userID"]); + if($u && !$u->isDisabled()) + array_push($this->_notifyList["users"], $u); + } else { //if ($row["groupID"] != -1) + $g = $this->_dms->getGroup($row["groupID"]); + if($g) + array_push($this->_notifyList["groups"], $g); + } } } return $this->_notifyList; @@ -3780,7 +3804,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ * Rewrites the complete revision log * * Attention: this function is highly dangerous. - * It removes an existing receipt log and rewrites it. + * It removes an existing revision log and rewrites it. * This method was added for importing an xml dump. * * @param array $revisionlog new status log with the newest log entry first. @@ -4395,10 +4419,10 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ * * This function adds a user as a revisor but doesn't start the * revision workflow by default. This behaviour is different from all - * other workflows (approval, review, receipt), because it doesn't add - * the initial entry in the revision log, which starts the workflow. - * It just adds the revisors to the content. The workflow is started - * at a later point in time by adding the first entry in the revision log. + * other workflows (approval, review, receipt), because it adds + * an initial entry in the revision log, which marks the revision as + * 'sleeping'. The workflow is started at a later point in time by adding + * the second entry in the revision log which puts it into 'waiting'. * * @param object $user user to be added as a revisor * @param object $requestUser user requesting the addition @@ -4705,7 +4729,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ } $queryStr = "INSERT INTO `tblDocumentReviewLog` (`reviewID`, `status`, `comment`, `date`, `userID`) ". - "VALUES ('". $indstatus["reviewID"] ."', '-2', ".$db->qstr($msg).", ".$db->getCurrentDatetime().", '". $requestUser->getID() ."')"; + "VALUES ('". $indstatus["reviewID"] ."', '".S_LOG_USER_REMOVED."', ".$db->qstr($msg).", ".$db->getCurrentDatetime().", '". $requestUser->getID() ."')"; $res = $db->getResult($queryStr); if (is_bool($res) && !$res) { return -1; @@ -4736,7 +4760,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ } $queryStr = "INSERT INTO `tblDocumentReviewLog` (`reviewID`, `status`, `comment`, `date`, `userID`) ". - "VALUES ('". $reviewStatus[0]["reviewID"] ."', '-2', ".$db->qstr($msg).", ".$db->getCurrentDatetime().", '". $requestUser->getID() ."')"; + "VALUES ('". $reviewStatus[0]["reviewID"] ."', '".S_LOG_USER_REMOVED."', ".$db->qstr($msg).", ".$db->getCurrentDatetime().", '". $requestUser->getID() ."')"; $res = $db->getResult($queryStr); if (is_bool($res) && !$res) { return -1; @@ -4768,7 +4792,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ } $queryStr = "INSERT INTO `tblDocumentApproveLog` (`approveID`, `status`, `comment`, `date`, `userID`) ". - "VALUES ('". $indstatus["approveID"] ."', '-2', ".$db->qstr($msg).", ".$db->getCurrentDatetime().", '". $requestUser->getID() ."')"; + "VALUES ('". $indstatus["approveID"] ."', '".S_LOG_USER_REMOVED."', ".$db->qstr($msg).", ".$db->getCurrentDatetime().", '". $requestUser->getID() ."')"; $res = $db->getResult($queryStr); if (is_bool($res) && !$res) { return -1; @@ -4799,7 +4823,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ } $queryStr = "INSERT INTO `tblDocumentApproveLog` (`approveID`, `status`, `comment`, `date`, `userID`) ". - "VALUES ('". $approvalStatus[0]["approveID"] ."', '-2', ".$db->qstr($msg).", ".$db->getCurrentDatetime().", '". $requestUser->getID() ."')"; + "VALUES ('". $approvalStatus[0]["approveID"] ."', '".S_LOG_USER_REMOVED."', ".$db->qstr($msg).", ".$db->getCurrentDatetime().", '". $requestUser->getID() ."')"; $res = $db->getResult($queryStr); if (is_bool($res) && !$res) { return -1; @@ -4808,7 +4832,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ return 0; } /* }}} */ - function delIndRecipient($user, $requestUser) { /* {{{ */ + function delIndRecipient($user, $requestUser, $msg='') { /* {{{ */ $db = $this->_document->_dms->getDB(); $userID = $user->getID(); @@ -4831,7 +4855,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ } $queryStr = "INSERT INTO `tblDocumentReceiptLog` (`receiptID`, `status`, `comment`, `date`, `userID`) ". - "VALUES ('". $indstatus["receiptID"] ."', '-2', '', ".$db->getCurrentDatetime().", '". $requestUser->getID() ."')"; + "VALUES ('". $indstatus["receiptID"] ."', '".S_LOG_USER_REMOVED."', ".$db->qstr($msg).", ".$db->getCurrentDatetime().", '". $requestUser->getID() ."')"; $res = $db->getResult($queryStr); if (is_bool($res) && !$res) { return -1; @@ -4840,7 +4864,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ return 0; } /* }}} */ - function delGrpRecipient($group, $requestUser) { /* {{{ */ + function delGrpRecipient($group, $requestUser, $msg='') { /* {{{ */ $db = $this->_document->_dms->getDB(); $groupID = $group->getID(); @@ -4863,7 +4887,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ } $queryStr = "INSERT INTO `tblDocumentReceiptLog` (`receiptID`, `status`, `comment`, `date`, `userID`) ". - "VALUES ('". $status["receiptID"] ."', '-2', '', ".$db->getCurrentDatetime().", '". $requestUser->getID() ."')"; + "VALUES ('". $status["receiptID"] ."', '".S_LOG_USER_REMOVED."', ".$db->qstr($msg).", ".$db->getCurrentDatetime().", '". $requestUser->getID() ."')"; $res = $db->getResult($queryStr); if (is_bool($res) && !$res) { return -1; diff --git a/SeedDMS_Core/Core/inc.ClassFolder.php b/SeedDMS_Core/Core/inc.ClassFolder.php index 76ad36211..4b3efb67e 100644 --- a/SeedDMS_Core/Core/inc.ClassFolder.php +++ b/SeedDMS_Core/Core/inc.ClassFolder.php @@ -1251,10 +1251,15 @@ class SeedDMS_Core_Folder extends SeedDMS_Core_Object { $this->_notifyList = array("groups" => array(), "users" => array()); foreach ($resArr as $row) { - if ($row["userID"] != -1) - array_push($this->_notifyList["users"], $this->_dms->getUser($row["userID"]) ); - else //if ($row["groupID"] != -1) - array_push($this->_notifyList["groups"], $this->_dms->getGroup($row["groupID"]) ); + if ($row["userID"] != -1) { + $u = $this->_dms->getUser($row["userID"]); + if($u && !$u->isDisabled()) + array_push($this->_notifyList["users"], $u); + } else {//if ($row["groupID"] != -1) + $g = $this->_dms->getGroup($row["groupID"]); + if($g) + array_push($this->_notifyList["groups"], $g); + } } } return $this->_notifyList; diff --git a/SeedDMS_Core/Core/inc.ClassUser.php b/SeedDMS_Core/Core/inc.ClassUser.php index 743a3d4cd..5ee1bc840 100644 --- a/SeedDMS_Core/Core/inc.ClassUser.php +++ b/SeedDMS_Core/Core/inc.ClassUser.php @@ -743,7 +743,208 @@ class SeedDMS_Core_User { /* {{{ */ } /* }}} */ /** - * Remove the user and also remove all its keywords, notifies, etc. + * Remove user from all processes + * + * 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 + * do so for each review/approval regardless of its current state. So even + * 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 + * added a second time. + * + * @param object $user the user doing the removal (needed for entry in + * review and approve log). + * @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 + * has not been touched. + * @return boolean true on success or false in case of an error + */ + private function __removeFromProcesses($user, $states = array()) { /* {{{ */ + $db = $this->_dms->getDB(); + + $reviewStatus = $this->getReviewStatus(); + foreach ($reviewStatus["indstatus"] as $ri) { + if($ri['status'] != -2 && (!isset($states['review']) || in_array($ri['status'], $states['review']))) { + $queryStr = "INSERT INTO `tblDocumentReviewLog` (`reviewID`, `status`, `comment`, `date`, `userID`) ". + "VALUES ('". $ri["reviewID"] ."', '-2', 'Reviewer removed from process', ".$db->getCurrentDatetime().", '". $user->getID() ."')"; + $res=$db->getResult($queryStr); + if(!$res) { + return false; + } + } + } + + $approvalStatus = $this->getApprovalStatus(); + foreach ($approvalStatus["indstatus"] as $ai) { + if($ai['status'] != -2 && (!isset($states['approval']) || in_array($ai['status'], $states['approval']))) { + $queryStr = "INSERT INTO `tblDocumentApproveLog` (`approveID`, `status`, `comment`, `date`, `userID`) ". + "VALUES ('". $ai["approveID"] ."', '-2', 'Approver removed from process', ".$db->getCurrentDatetime().", '". $user->getID() ."')"; + $res=$db->getResult($queryStr); + if(!$res) { + return false; + } + } + } + + $receiptStatus = $this->getReceiptStatus(); + foreach ($receiptStatus["indstatus"] as $ri) { + if($ri['status'] != -2 && (!isset($states['receipt']) || in_array($ri['status'], $states['receipt']))) { + $queryStr = "INSERT INTO `tblDocumentReceiptLog` (`receiptID`, `status`, `comment`, `date`, `userID`) ". + "VALUES ('". $ri["receiptID"] ."', '-2', 'Recipient removed from process', ".$db->getCurrentDatetime().", '". $user->getID() ."')"; + $res=$db->getResult($queryStr); + if(!$res) { + return false; + } + } + } + + $revisionStatus = $this->getRevisionStatus(); + foreach ($revisionStatus["indstatus"] as $ri) { + if($ri['status'] != -2 && (!isset($states['revision']) || in_array($ri['status'], $states['revision']))) { + $queryStr = "INSERT INTO `tblDocumentRevisionLog` (`revisionID`, `status`, `comment`, `date`, `userID`) ". + "VALUES ('". $ri["revisionID"] ."', '-2', 'Revisor removed from process', ".$db->getCurrentDatetime().", '". $user->getID() ."')"; + $res=$db->getResult($queryStr); + if(!$res) { + return false; + } + } + } + + return true; + } /* }}} */ + + /** + * Remove user from all processes + * + * This includes review, approval and workflow + * + * @param object $user the user doing the removal (needed for entry in + * review and approve log). + * @param array $states remove user only from reviews/approvals in one of the states + * @return boolean true on success or false in case of an error + */ + public function removeFromProcesses($user, $states=array()) { /* {{{ */ + $db = $this->_dms->getDB(); + + $db->startTransaction(); + if(!$this->__removeFromProcesses($user, $states)) { + $db->rollbackTransaction(); + return false; + } + $db->commitTransaction(); + return true; + } /* }}} */ + + /** + * Transfer documents and folders to another user + * + * @param object $assignToUser the user who is new owner of folders and + * documents which previously were owned by the delete user. + * @return boolean true on success or false in case of an error + */ + private function __transferDocumentsFolders($assignToUser) { /* {{{ */ + $db = $this->_dms->getDB(); + + if(!$assignToUser) + return false; + + /* Assign documents of the removed user to the given user */ + $queryStr = "UPDATE `tblFolders` SET `owner` = " . $assignToUser->getID() . " WHERE `owner` = " . $this->_id; + if (!$db->getResult($queryStr)) { + return false; + } + + $queryStr = "UPDATE `tblDocuments` SET `owner` = " . $assignToUser->getID() . " WHERE `owner` = " . $this->_id; + if (!$db->getResult($queryStr)) { + return false; + } + + $queryStr = "UPDATE `tblDocumentContent` SET `createdBy` = " . $assignToUser->getID() . " WHERE `createdBy` = " . $this->_id; + if (!$db->getResult($queryStr)) { + return false; + } + + // ... but keep public links + $queryStr = "UPDATE `tblDocumentLinks` SET `userID` = " . $assignToUser->getID() . " WHERE `userID` = " . $this->_id; + if (!$db->getResult($queryStr)) { + return false; + } + + // set administrator for deleted user's attachments + $queryStr = "UPDATE `tblDocumentFiles` SET `userID` = " . $assignToUser->getID() . " WHERE `userID` = " . $this->_id; + if (!$db->getResult($queryStr)) { + return false; + } + + return true; + } /* }}} */ + + /** + * Transfer documents and folders to another user + * + * @param object $assignToUser the user who is new owner of folders and + * documents which previously were owned by the delete user. + * @return boolean true on success or false in case of an error + */ + public function transferDocumentsFolders($assignToUser) { /* {{{ */ + $db = $this->_dms->getDB(); + + if($assignToUser->getID() == $this->_id) + return true; + + $db->startTransaction(); + if(!$this->__transferDocumentsFolders($assignToUser)) { + $db->rollbackTransaction(); + return false; + } + $db->commitTransaction(); + return true; + } /* }}} */ + + /** + * Transfer events to another user + * + * @param object $assignToUser the user who is new owner of events + * @return boolean true on success or false in case of an error + */ + private function __transferEvents($assignToUser) { /* {{{ */ + $db = $this->_dms->getDB(); + + if(!$assignToUser) + return false; + + // set new owner of events + $queryStr = "UPDATE `tblEvents` SET `userID` = " . $assignToUser->getID() . " WHERE `userID` = " . $this->_id; + if (!$db->getResult($queryStr)) { + return false; + } + + return true; + } /* }}} */ + + /** + * Transfer events to another user + * + * @param object $assignToUser the user who is new owner of events + * @return boolean true on success or false in case of an error + */ + public function transferEvents($assignToUser) { /* {{{ */ + $db = $this->_dms->getDB(); + + if($assignToUser->getID() == $this->_id) + return true; + + $db->startTransaction(); + if(!$this->__transferEvents($assignToUser)) { + $db->rollbackTransaction(); + return false; + } + $db->commitTransaction(); + return true; + } /* }}} */ + + /** + * Remove the user and also remove all its keywords, notifications, etc. * Do not remove folders and documents of the user, but assign them * to a different user. * @@ -796,25 +997,6 @@ class SeedDMS_Core_User { /* {{{ */ return false; } - /* Assign documents of the removed user to the given user */ - $queryStr = "UPDATE `tblFolders` SET `owner` = " . $assignTo . " WHERE `owner` = " . $this->_id; - if (!$db->getResult($queryStr)) { - $db->rollbackTransaction(); - return false; - } - - $queryStr = "UPDATE `tblDocuments` SET `owner` = " . $assignTo . " WHERE `owner` = " . $this->_id; - if (!$db->getResult($queryStr)) { - $db->rollbackTransaction(); - return false; - } - - $queryStr = "UPDATE `tblDocumentContent` SET `createdBy` = " . $assignTo . " WHERE `createdBy` = " . $this->_id; - if (!$db->getResult($queryStr)) { - $db->rollbackTransaction(); - return false; - } - // Remove private links on documents ... $queryStr = "DELETE FROM `tblDocumentLinks` WHERE `userID` = " . $this->_id . " AND `public` = 0"; if (!$db->getResult($queryStr)) { @@ -822,18 +1004,10 @@ class SeedDMS_Core_User { /* {{{ */ return false; } - // ... but keep public links - $queryStr = "UPDATE `tblDocumentLinks` SET `userID` = " . $assignTo . " WHERE `userID` = " . $this->_id; - if (!$db->getResult($queryStr)) { - $db->rollbackTransaction(); - return false; - } - - // set administrator for deleted user's attachments - $queryStr = "UPDATE `tblDocumentFiles` SET `userID` = " . $assignTo . " WHERE `userID` = " . $this->_id; - if (!$db->getResult($queryStr)) { - $db->rollbackTransaction(); - return false; + /* Assign documents, folders, files, public document links of the removed user to the given user */ + if(!$this->__transferDocumentsFolders($assignToUser)) { + $db->rollbackTransaction(); + return false; } // unlock documents locked by the user @@ -915,11 +1089,10 @@ class SeedDMS_Core_User { /* {{{ */ return false; } - // set administrator for deleted user's events - $queryStr = "UPDATE `tblEvents` SET `userID` = " . $assignTo . " WHERE `userID` = " . $this->_id; - if (!$db->getResult($queryStr)) { - $db->rollbackTransaction(); - return false; + /* Assign events of the removed user to the given user */ + if(!$this->__transferEvents($assignToUser)) { + $db->rollbackTransaction(); + return false; } // Delete user itself @@ -933,49 +1106,9 @@ class SeedDMS_Core_User { /* {{{ */ // "DELETE FROM `tblDocumentApproveLog` WHERE `userID` = " . $this->_id; // "DELETE FROM `tblDocumentReviewLog` WHERE `userID` = " . $this->_id; - - $reviewStatus = $this->getReviewStatus(); - foreach ($reviewStatus["indstatus"] as $ri) { - $queryStr = "INSERT INTO `tblDocumentReviewLog` (`reviewID`, `status`, `comment`, `date`, `userID`) ". - "VALUES ('". $ri["reviewID"] ."', '-2', 'Reviewer removed from process', ".$db->getCurrentDatetime().", '". $user->getID() ."')"; - $res=$db->getResult($queryStr); - if(!$res) { + if(!$this->__removeFromProcesses($user)) { $db->rollbackTransaction(); return false; - } - } - - $approvalStatus = $this->getApprovalStatus(); - foreach ($approvalStatus["indstatus"] as $ai) { - $queryStr = "INSERT INTO `tblDocumentApproveLog` (`approveID`, `status`, `comment`, `date`, `userID`) ". - "VALUES ('". $ai["approveID"] ."', '-2', 'Approver removed from process', ".$db->getCurrentDatetime().", '". $user->getID() ."')"; - $res=$db->getResult($queryStr); - if(!$res) { - $db->rollbackTransaction(); - return false; - } - } - - $receiptStatus = $this->getReceiptStatus(); - foreach ($receiptStatus["indstatus"] as $ri) { - $queryStr = "INSERT INTO `tblDocumentReceiptLog` (`receiptID`, `status`, `comment`, `date`, `userID`) ". - "VALUES ('". $ri["receiptID"] ."', '-2', 'Recipient removed from process', ".$db->getCurrentDatetime().", '". $user->getID() ."')"; - $res=$db->getResult($queryStr); - if(!$res) { - $db->rollbackTransaction(); - return false; - } - } - - $revisionStatus = $this->getRevisionStatus(); - foreach ($revisionStatus["indstatus"] as $ri) { - $queryStr = "INSERT INTO `tblDocumentRevisionLog` (`revisionID`, `status`, `comment`, `date`, `userID`) ". - "VALUES ('". $ri["revisionID"] ."', '-2', 'Revisor removed from process', ".$db->getCurrentDatetime().", '". $user->getID() ."')"; - $res=$db->getResult($queryStr); - if(!$res) { - $db->rollbackTransaction(); - return false; - } } $db->commitTransaction(); @@ -1204,11 +1337,14 @@ class SeedDMS_Core_User { /* {{{ */ /** * Get a list of reviews - * This function returns a list of all reviews seperated by individual - * and group reviews. If the document id + * + * This function returns a list of all reviews and their latest log entry + * seperated by individuals and groups. If the document id * is passed, then only this document will be checked for reviews. The * same is true for the version of a document which limits the list - * further. + * further. If you do not limit on a version it will retrieve the status + * for each version, that includes even older versions which has been superseded + * by a new version. * * For a detailed description of the result array see * {link SeedDMS_Core_User::getApprovalStatus} which does the same for @@ -1285,17 +1421,21 @@ class SeedDMS_Core_User { /* {{{ */ /** * Get a list of approvals - * This function returns a list of all approvals seperated by individual - * and group approvals. If the document id + * + * This function returns a list of all approvals and their latest log entry + * seperated by individuals and groups. If the document id * is passed, then only this document will be checked for approvals. The * same is true for the version of a document which limits the list - * further. + * further. If you do not limit on a version it will retrieve the status + * for each version, that includes even older versions which has been superseded + * by a new version. * * The result array has two elements: * - indstatus: which contains the approvals by individuals (users) * - grpstatus: which contains the approvals by groups * - * Each element is itself an array of approvals with the following elements: + * Each element is itself an array of approvals with the following elements + * (it is a combination of fields from tblDocumentApprovers and tblDocumentApproveLog): * - approveID: unique id of approval * - documentID: id of document, that needs to be approved * - version: version of document, that needs to be approved @@ -1600,6 +1740,28 @@ class SeedDMS_Core_User { /* {{{ */ return $result; } /* }}} */ + /** + * Get a list of workflows this user is involved as in individual + * + * @return array list of all workflows + */ + function getWorkflowsInvolved() { /* {{{ */ + $db = $this->_dms->getDB(); + + $queryStr = 'SELECT DISTINCT b.*, c.`userid` FROM `tblWorkflowTransitions` a LEFT JOIN `tblWorkflows` b ON a.`workflow`=b.`id` LEFT JOIN `tblWorkflowTransitionUsers` c ON a.`id`=c.`transition` WHERE c.`userid`='.$this->_id; + $resArr = $db->getResultArray($queryStr); + if (is_bool($resArr) && $resArr == false) + return false; + $result = array(); + if (count($resArr)>0) { + foreach ($resArr as $res) { + $result[] = $this->_dms->getWorkflow($res['id']); + } + } + + return $result; + } /* }}} */ + /** * Get a list of mandatory reviewers * A user which isn't trusted completely may have assigned mandatory @@ -1635,6 +1797,52 @@ class SeedDMS_Core_User { /* {{{ */ return $resArr; } /* }}} */ + /** + * Get a list of users this user is a mandatory reviewer of + * + * This method is the reverse function of getMandatoryReviewers(). It returns + * those user where the current user is a mandatory reviewer. + * + * @return array list of users where this user is a mandatory reviewer. + */ + function isMandatoryReviewerOf() { /* {{{ */ + $db = $this->_dms->getDB(); + + $queryStr = "SELECT * FROM `tblMandatoryReviewers` WHERE `reviewerUserID` = " . $this->_id; + $resArr = $db->getResultArray($queryStr); + if (is_bool($resArr) && !$resArr) return false; + + $users = array(); + foreach($resArr as $res) { + $users[] = self::getInstance($res['userID'], $this->_dms); + } + + return $users; + } /* }}} */ + + /** + * Get a list of users this user is a mandatory approver of + * + * This method is the reverse function of getMandatoryApprovers(). It returns + * those user where the current user is a mandatory approver. + * + * @return array list of users where this user is a mandatory approver. + */ + function isMandatoryApproverOf() { /* {{{ */ + $db = $this->_dms->getDB(); + + $queryStr = "SELECT * FROM `tblMandatoryApprovers` WHERE `approverUserID` = " . $this->_id; + $resArr = $db->getResultArray($queryStr); + if (is_bool($resArr) && !$resArr) return false; + + $users = array(); + foreach($resArr as $res) { + $users[] = self::getInstance($res['userID'], $this->_dms); + } + + return $users; + } /* }}} */ + /** * Get the mandatory workflow * A user which isn't trusted completely may have assigned mandatory @@ -1877,20 +2085,23 @@ class SeedDMS_Core_User { /* {{{ */ if (!isset($this->_rev_substitutes)) { $queryStr = "SELECT `tblUsers`.* FROM `tblUserSubstitutes` ". "LEFT JOIN `tblUsers` ON `tblUserSubstitutes`.`user` = `tblUsers`.`id` ". + "LEFT JOIN `tblRoles` ON `tblRoles`.`id`=`tblUsers`.`role` ". "WHERE `tblUserSubstitutes`.`substitute`='". $this->_id ."'"; /* None admins can only be substitutes for regular users, otherwise * regular users can become admin */ if(!$this->isAdmin()) - $queryStr .= " AND `tblUsers`.`role` = ".SeedDMS_Core_User::role_user; + $queryStr .= " AND `tblRoles`.`role` = ".SeedDMS_Core_User::role_user; $resArr = $db->getResultArray($queryStr); if (is_bool($resArr) && $resArr == false) return false; $this->_rev_substitutes = array(); + $classnamerole = $this->_dms->getClassname('role'); $classname = $this->_dms->getClassname('user'); foreach ($resArr as $row) { - $user = new $classname($row["id"], $row["login"], $row["pwd"], $row["fullName"], $row["email"], $row["language"], $row["theme"], $row["comment"], $row["role"], $row["hidden"], $row["disabled"], $row["pwdExpiration"], $row["loginfailures"], $row["quota"], $row["homefolder"]); + $role = $classnamerole::getInstance($row['role'], $this->_dms); + $user = new $classname($row["id"], $row["login"], $row["pwd"], $row["fullName"], $row["email"], $row["language"], $row["theme"], $row["comment"], $role, $row["hidden"], $row["disabled"], $row["pwdExpiration"], $row["loginfailures"], $row["quota"], $row["homefolder"]); $user->setDMS($this->_dms); array_push($this->_rev_substitutes, $user); } @@ -2021,5 +2232,29 @@ class SeedDMS_Core_User { /* {{{ */ return $notifications; } /* }}} */ + /** + * Return list of personal keyword categories + * + * @return array/boolean list of categories or false in case of an error + */ + function getKeywordCategories() { /* {{{ */ + $db = $this->_dms->getDB(); + + $queryStr = "SELECT * FROM `tblKeywordCategories` WHERE `owner` = ".$this->_id; + + $resArr = $db->getResultArray($queryStr); + if (is_bool($resArr) && !$resArr) + return false; + + $categories = array(); + foreach ($resArr as $row) { + $cat = new SeedDMS_Core_KeywordCategory($row["id"], $row["owner"], $row["name"]); + $cat->setDMS($this->_dms); + array_push($categories, $cat); + } + + return $categories; + } /* }}} */ + } /* }}} */ ?> diff --git a/SeedDMS_Core/Core/inc.DBAccessPDO.php b/SeedDMS_Core/Core/inc.DBAccessPDO.php index 5c10fece5..16d031a74 100644 --- a/SeedDMS_Core/Core/inc.DBAccessPDO.php +++ b/SeedDMS_Core/Core/inc.DBAccessPDO.php @@ -112,6 +112,11 @@ class SeedDMS_Core_DatabaseAccess { */ private $_logfp; + /** + * @var boolean set to true if views instead of temp. tables shall be used + */ + private $_useviews; + /** * Return list of all database tables * @@ -140,6 +145,34 @@ class SeedDMS_Core_DatabaseAccess { return $res; } /* }}} */ + /** + * Return list of all database views + * + * This function is used to retrieve a list of database views + * + * @return array list of view names + */ + public function ViewList() { /* {{{ */ + switch($this->_driver) { + case 'mysql': + $sql = "select TABLE_NAME as name from information_schema.views where TABLE_SCHEMA='".$this->_database."'"; + break; + case 'sqlite': + $sql = "select tbl_name as name from sqlite_master where type='view'"; + break; + case 'pgsql': + $sql = "select viewname as name from pg_catalog.pg_views where schemaname='public'"; + break; + default: + return false; + } + $arr = $this->getResultArray($sql); + $res = array(); + foreach($arr as $tmp) + $res[] = $tmp['name']; + return $res; + } /* }}} */ + /** * Constructor of SeedDMS_Core_DatabaseAccess * @@ -183,6 +216,7 @@ class SeedDMS_Core_DatabaseAccess { $this->_ttcontentid = false; $this->_ttreceiptid = false; $this->_ttrevisionid = false; + $this->_useviews = true; $this->_debug = false; } /* }}} */ @@ -240,6 +274,15 @@ class SeedDMS_Core_DatabaseAccess { $this->_conn->exec('PRAGMA foreign_keys = ON'); break; } + if($this->_useviews) { + $tmp = $this->ViewList(); + foreach(array('ttreviewid', 'ttapproveid', 'ttstatid', 'ttcontentid', 'ttreceiptid', 'ttrevisionid') as $viewname) { + if(in_array($viewname, $tmp)) { + $this->{"_".$viewname} = true; + } + } + } + $this->_connected = true; return true; } /* }}} */ @@ -383,12 +426,12 @@ class SeedDMS_Core_DatabaseAccess { /** * Create various temporary tables to speed up and simplify sql queries */ - function createTemporaryTable($tableName, $override=false) { /* {{{ */ + private function __createTemporaryTable($tableName, $override=false) { /* {{{ */ if (!strcasecmp($tableName, "ttreviewid")) { switch($this->_driver) { case 'sqlite': $queryStr = "CREATE TEMPORARY TABLE IF NOT EXISTS `ttreviewid` AS ". - "SELECT `tblDocumentReviewLog`.`reviewID`, ". + "SELECT `tblDocumentReviewLog`.`reviewID` AS `reviewID`, ". "MAX(`tblDocumentReviewLog`.`reviewLogID`) AS `maxLogID` ". "FROM `tblDocumentReviewLog` ". "GROUP BY `tblDocumentReviewLog`.`reviewID` "; //. @@ -429,7 +472,7 @@ class SeedDMS_Core_DatabaseAccess { switch($this->_driver) { case 'sqlite': $queryStr = "CREATE TEMPORARY TABLE IF NOT EXISTS `ttapproveid` AS ". - "SELECT `tblDocumentApproveLog`.`approveID`, ". + "SELECT `tblDocumentApproveLog`.`approveID` AS `approveID`, ". "MAX(`tblDocumentApproveLog`.`approveLogID`) AS `maxLogID` ". "FROM `tblDocumentApproveLog` ". "GROUP BY `tblDocumentApproveLog`.`approveID` "; //. @@ -555,24 +598,24 @@ class SeedDMS_Core_DatabaseAccess { "SELECT `tblDocumentReceiptLog`.`receiptID` AS `receiptID`, ". "MAX(`tblDocumentReceiptLog`.`receiptLogID`) AS `maxLogID` ". "FROM `tblDocumentReceiptLog` ". - "GROUP BY `tblDocumentReceiptLog`.`receiptID` ". - "ORDER BY `maxLogID`"; + "GROUP BY `tblDocumentReceiptLog`.`receiptID` "; +// "ORDER BY `maxLogID`"; break; case 'pgsql': - $queryStr = "CREATE TEMPORARY TABLE IF NOT EXISTS `ttreceiptid` (`receiptID` INTEGER, `maxLogID` INTEGER, PRIMARY KEY (`receiptID`);". + $queryStr = "CREATE TEMPORARY TABLE IF NOT EXISTS `ttreceiptid` (`receiptID` INTEGER, `maxLogID` INTEGER, PRIMARY KEY (`receiptID`));". "INSERT INTO `ttreceiptid` SELECT `tblDocumentReceiptLog`.`receiptID`, ". "MAX(`tblDocumentReceiptLog`.`receiptLogID`) AS `maxLogID` ". "FROM `tblDocumentReceiptLog` ". - "GROUP BY `tblDocumentReceiptLog`.`receiptID` ". - "ORDER BY `maxLogID`"; + "GROUP BY `tblDocumentReceiptLog`.`receiptID` "; +// "ORDER BY `maxLogID`"; break; default: $queryStr = "CREATE TEMPORARY TABLE IF NOT EXISTS `ttreceiptid` (PRIMARY KEY (`receiptID`), INDEX (`maxLogID`)) ". "SELECT `tblDocumentReceiptLog`.`receiptID`, ". "MAX(`tblDocumentReceiptLog`.`receiptLogID`) AS `maxLogID` ". "FROM `tblDocumentReceiptLog` ". - "GROUP BY `tblDocumentReceiptLog`.`receiptID` ". - "ORDER BY `maxLogID`"; + "GROUP BY `tblDocumentReceiptLog`.`receiptID` "; +// "ORDER BY `maxLogID`"; } if (!$this->_ttreceiptid) { if (!$this->getResult($queryStr)) @@ -596,24 +639,24 @@ class SeedDMS_Core_DatabaseAccess { "SELECT `tblDocumentRevisionLog`.`revisionID` AS `revisionID`, ". "MAX(`tblDocumentRevisionLog`.`revisionLogID`) AS `maxLogID` ". "FROM `tblDocumentRevisionLog` ". - "GROUP BY `tblDocumentRevisionLog`.`revisionID` ". - "ORDER BY `maxLogID`"; + "GROUP BY `tblDocumentRevisionLog`.`revisionID` "; +// "ORDER BY `maxLogID`"; break; case 'pgsql': $queryStr = "CREATE TEMPORARY TABLE IF NOT EXISTS `ttrevisionid` (`revisionID` INTEGER, `maxLogID` INTEGER, PRIMARY KEY (`revisionID`));". "INSERT INTO `ttrevisionid` SELECT `tblDocumentRevisionLog`.`revisionID`, ". "MAX(`tblDocumentRevisionLog`.`revisionLogID`) AS `maxLogID` ". "FROM `tblDocumentRevisionLog` ". - "GROUP BY `tblDocumentRevisionLog`.`revisionID` ". - "ORDER BY `maxLogID`"; + "GROUP BY `tblDocumentRevisionLog`.`revisionID` "; +// "ORDER BY `maxLogID`"; break; default: $queryStr = "CREATE TEMPORARY TABLE IF NOT EXISTS `ttrevisionid` (PRIMARY KEY (`revisionID`), INDEX (`maxLogID`)) ". "SELECT `tblDocumentRevisionLog`.`revisionID`, ". "MAX(`tblDocumentRevisionLog`.`revisionLogID`) AS `maxLogID` ". "FROM `tblDocumentRevisionLog` ". - "GROUP BY `tblDocumentRevisionLog`.`revisionID` ". - "ORDER BY `maxLogID`"; + "GROUP BY `tblDocumentRevisionLog`.`revisionID` "; +// "ORDER BY `maxLogID`"; } if (!$this->_ttrevisionid) { if (!$this->getResult($queryStr)) @@ -633,6 +676,254 @@ class SeedDMS_Core_DatabaseAccess { return false; } /* }}} */ + /** + * Create various temporary tables to speed up and simplify sql queries + */ + private function __createView($tableName, $override=false) { /* {{{ */ + if (!strcasecmp($tableName, "ttreviewid")) { + switch($this->_driver) { + case 'sqlite': + $queryStr = "CREATE VIEW `ttreviewid` AS ". + "SELECT `tblDocumentReviewLog`.`reviewID` AS `reviewID`, ". + "MAX(`tblDocumentReviewLog`.`reviewLogID`) AS `maxLogID` ". + "FROM `tblDocumentReviewLog` ". + "GROUP BY `tblDocumentReviewLog`.`reviewID` "; //. + break; + case 'pgsql': + $queryStr = "CREATE VIEW `ttreviewid` AS ". + "SELECT `tblDocumentReviewLog`.`reviewID` AS `reviewID`, ". + "MAX(`tblDocumentReviewLog`.`reviewLogID`) AS `maxLogID` ". + "FROM `tblDocumentReviewLog` ". + "GROUP BY `tblDocumentReviewLog`.`reviewID` "; + break; + default: + $queryStr = "CREATE".($override ? " OR REPLACE" : "")." VIEW `ttreviewid` AS ". + "SELECT `tblDocumentReviewLog`.`reviewID` AS `reviewID`, ". + "MAX(`tblDocumentReviewLog`.`reviewLogID`) AS `maxLogID` ". + "FROM `tblDocumentReviewLog` ". + "GROUP BY `tblDocumentReviewLog`.`reviewID` "; + } + if (!$this->_ttreviewid) { + if (!$this->getResult($queryStr)) + return false; + $this->_ttreviewid=true; + } + else { + if (is_bool($override) && $override) { + if (!$this->getResult("DROP VIEW `ttreviewid`")) + return false; + if (!$this->getResult($queryStr)) + return false; + } + } + return $this->_ttreviewid; + } + elseif (!strcasecmp($tableName, "ttapproveid")) { + switch($this->_driver) { + case 'sqlite': + $queryStr = "CREATE VIEW `ttapproveid` AS ". + "SELECT `tblDocumentApproveLog`.`approveID` AS `approveID`, ". + "MAX(`tblDocumentApproveLog`.`approveLogID`) AS `maxLogID` ". + "FROM `tblDocumentApproveLog` ". + "GROUP BY `tblDocumentApproveLog`.`approveID` "; //. + break; + case 'pgsql': + $queryStr = "CREATE VIEW `ttapproveid` AS ". + "SELECT `tblDocumentApproveLog`.`approveID` AS `approveID`, ". + "MAX(`tblDocumentApproveLog`.`approveLogID`) AS `maxLogID` ". + "FROM `tblDocumentApproveLog` ". + "GROUP BY `tblDocumentApproveLog`.`approveID` "; + break; + default: + $queryStr = "CREATE".($override ? " OR REPLACE" : "")." VIEW `ttapproveid` AS ". + "SELECT `tblDocumentApproveLog`.`approveID`, ". + "MAX(`tblDocumentApproveLog`.`approveLogID`) AS `maxLogID` ". + "FROM `tblDocumentApproveLog` ". + "GROUP BY `tblDocumentApproveLog`.`approveID` "; + } + if (!$this->_ttapproveid) { + if (!$this->getResult($queryStr)) + return false; + $this->_ttapproveid=true; + } + else { + if (is_bool($override) && $override) { + if (!$this->getResult("DROP VIEW `ttapproveid`")) + return false; + if (!$this->getResult($queryStr)) + return false; + } + } + return $this->_ttapproveid; + } + elseif (!strcasecmp($tableName, "ttstatid")) { + switch($this->_driver) { + case 'sqlite': + $queryStr = "CREATE VIEW `ttstatid` AS ". + "SELECT `tblDocumentStatusLog`.`statusID` AS `statusID`, ". + "MAX(`tblDocumentStatusLog`.`statusLogID`) AS `maxLogID` ". + "FROM `tblDocumentStatusLog` ". + "GROUP BY `tblDocumentStatusLog`.`statusID` "; + break; + case 'pgsql': + $queryStr = "CREATE VIEW `ttstatid` AS ". + "SELECT `tblDocumentStatusLog`.`statusID` AS `statusID`, ". + "MAX(`tblDocumentStatusLog`.`statusLogID`) AS `maxLogID` ". + "FROM `tblDocumentStatusLog` ". + "GROUP BY `tblDocumentStatusLog`.`statusID` "; + break; + default: + $queryStr = "CREATE".($override ? " OR REPLACE" : "")." VIEW `ttstatid` AS ". + "SELECT `tblDocumentStatusLog`.`statusID`, ". + "MAX(`tblDocumentStatusLog`.`statusLogID`) AS `maxLogID` ". + "FROM `tblDocumentStatusLog` ". + "GROUP BY `tblDocumentStatusLog`.`statusID` "; + } + if (!$this->_ttstatid) { + if (!$this->getResult($queryStr)) + return false; + $this->_ttstatid=true; + } + else { + if (is_bool($override) && $override) { + if (!$this->getResult("DROP VIEW `ttstatid`")) + return false; + if (!$this->getResult($queryStr)) + return false; + } + } + return $this->_ttstatid; + } + elseif (!strcasecmp($tableName, "ttcontentid")) { + switch($this->_driver) { + case 'sqlite': + $queryStr = "CREATE VIEW `ttcontentid` AS ". + "SELECT `tblDocumentContent`.`document` AS `document`, ". + "MAX(`tblDocumentContent`.`version`) AS `maxVersion` ". + "FROM `tblDocumentContent` ". + "GROUP BY `tblDocumentContent`.`document` ". + "ORDER BY `tblDocumentContent`.`document`"; + break; + case 'pgsql': + $queryStr = "CREATE VIEW `ttcontentid` AS ". + "SELECT `tblDocumentContent`.`document` AS `document`, ". + "MAX(`tblDocumentContent`.`version`) AS `maxVersion` ". + "FROM `tblDocumentContent` ". + "GROUP BY `tblDocumentContent`.`document` ". + "ORDER BY `tblDocumentContent`.`document`"; + break; + default: + $queryStr = "CREATE".($override ? " OR REPLACE" : "")." VIEW `ttcontentid` AS ". + "SELECT `tblDocumentContent`.`document`, ". + "MAX(`tblDocumentContent`.`version`) AS `maxVersion` ". + "FROM `tblDocumentContent` ". + "GROUP BY `tblDocumentContent`.`document` ". + "ORDER BY `tblDocumentContent`.`document`"; + } + if (!$this->_ttcontentid) { + if (!$this->getResult($queryStr)) + return false; + $this->_ttcontentid=true; + } + else { + if (is_bool($override) && $override) { + if (!$this->getResult("DROP VIEW `ttcontentid`")) + return false; + if (!$this->getResult($queryStr)) + return false; + } + } + return $this->_ttcontentid; + } + elseif (!strcasecmp($tableName, "ttreceiptid")) { + switch($this->_driver) { + case 'sqlite': + $queryStr = "CREATE VIEW `ttreceiptid` AS ". + "SELECT `tblDocumentReceiptLog`.`receiptID` AS `receiptID`, ". + "MAX(`tblDocumentReceiptLog`.`receiptLogID`) AS `maxLogID` ". + "FROM `tblDocumentReceiptLog` ". + "GROUP BY `tblDocumentReceiptLog`.`receiptID` "; + break; + case 'pgsql': + $queryStr = "CREATE VIEW `ttreceiptid` AS ". + "SELECT `tblDocumentReceiptLog`.`receiptID` AS `receiptID`, ". + "MAX(`tblDocumentReceiptLog`.`receiptLogID`) AS `maxLogID` ". + "FROM `tblDocumentReceiptLog` ". + "GROUP BY `tblDocumentReceiptLog`.`receiptID` "; + break; + default: + $queryStr = "CREATE".($override ? " OR REPLACE" : "")." VIEW `ttreceiptid` AS ". + "SELECT `tblDocumentReceiptLog`.`receiptID`, ". + "MAX(`tblDocumentReceiptLog`.`receiptLogID`) AS `maxLogID` ". + "FROM `tblDocumentReceiptLog` ". + "GROUP BY `tblDocumentReceiptLog`.`receiptID` "; + } + if (!$this->_ttreceiptid) { + if (!$this->getResult($queryStr)) + return false; + $this->_ttreceiptid=true; + } + else { + if (is_bool($override) && $override) { + if (!$this->getResult("DROP VIEW `ttreceiptid`")) + return false; + if (!$this->getResult($queryStr)) + return false; + } + } + return $this->_ttreceiptid; + } + elseif (!strcasecmp($tableName, "ttrevisionid")) { + switch($this->_driver) { + case 'sqlite': + $queryStr = "CREATE VIEW `ttrevisionid` AS ". + "SELECT `tblDocumentRevisionLog`.`revisionID` AS `revisionID`, ". + "MAX(`tblDocumentRevisionLog`.`revisionLogID`) AS `maxLogID` ". + "FROM `tblDocumentRevisionLog` ". + "GROUP BY `tblDocumentRevisionLog`.`revisionID` "; + break; + case 'pgsql': + $queryStr = "CREATE VIEW `ttrevisionid` AS ". + "SELECT `tblDocumentRevisionLog`.`revisionID` AS `revisionID`, ". + "MAX(`tblDocumentRevisionLog`.`revisionLogID`) AS `maxLogID` ". + "FROM `tblDocumentRevisionLog` ". + "GROUP BY `tblDocumentRevisionLog`.`revisionID` "; + break; + default: + $queryStr = "CREATE".($override ? " OR REPLACE" : "")." VIEW `ttrevisionid` AS ". + "SELECT `tblDocumentRevisionLog`.`revisionID`, ". + "MAX(`tblDocumentRevisionLog`.`revisionLogID`) AS `maxLogID` ". + "FROM `tblDocumentRevisionLog` ". + "GROUP BY `tblDocumentRevisionLog`.`revisionID` "; + } + if (!$this->_ttrevisionid) { + if (!$this->getResult($queryStr)) + return false; + $this->_ttrevisionid=true; + } + else { + if (is_bool($override) && $override) { + if (!$this->getResult("DROP VIEW `ttrevisionid`")) + return false; + if (!$this->getResult($queryStr)) + return false; + } + } + return $this->_ttrevisionid; + } + return false; + } /* }}} */ + + /** + * Create various temporary tables to speed up and simplify sql queries + */ + public function createTemporaryTable($tableName, $override=false) { /* {{{ */ + if($this->_useviews) + return $this->__createView($tableName, $override); + else + return $this->__createTemporaryTable($tableName, $override); + } /* }}} */ + /** * Return sql statement for extracting the date part from a field * containing a unix timestamp diff --git a/SeedDMS_Core/package.xml b/SeedDMS_Core/package.xml index b93968967..aeef7b744 100644 --- a/SeedDMS_Core/package.xml +++ b/SeedDMS_Core/package.xml @@ -12,7 +12,7 @@ uwe@steinmann.cx yes - 2017-03-23 + 2017-07-13 6.0.1 @@ -28,6 +28,12 @@ - setting _logfile in inc.DBAccessPDO.php will log execution times in file - fix sql statement to create temp table ttrevisionid and ttreceiptid - SeedDMS_Core_DMS::noReadForStatus no longer needed +- SeedDMS_Core_Document::checkForDueRevisionWorkflow() also checks if there +are any waiting or pending revisions at all +- SeedDMS_Core_User::getReverseSubstitutes() works with new roles +- fix field name in getDocumentList() to make it work for pgsql +- views instead of temp. tables can be used +- ReceiveOwner list does not contain old versions anymore @@ -1189,7 +1195,7 @@ SeedDMS_Core_DMS::getDuplicateDocumentContent() returns complete document - 2017-03-23 + 2017-07-11 4.3.35 @@ -1204,6 +1210,22 @@ SeedDMS_Core_DMS::getDuplicateDocumentContent() returns complete document do not sort some temporary tables anymore, because it causes an error in mysql if sql_mode=only_full_group_by is set + + 2017-03-22 + + + 4.3.36 + 4.3.36 + + + stable + stable + + GPL License + +- fix sql statement for creating temp. tables (sqlite) + + 2016-01-22 @@ -1398,6 +1420,21 @@ all sql statements can be logged to a file do not sort some temporary tables anymore, because it causes an error in mysql if sql_mode=only_full_group_by is set + + 2017-07-13 + + + 5.0.13 + 5.0.13 + + + stable + stable + + GPL License + + + 2017-02-20 @@ -1453,6 +1490,26 @@ if the owner tries to access them - Add hook onAttributeValidate + + 2017-07-13 + + + 5.1.3 + 5.1.3 + + + stable + stable + + GPL License + +- SeedDMS_Core_Document::getNotifyList() and SeedDMS_Core_Folder::getNotifyList() +returns just users which are not disabled +- add new methods removeFromProcesses(), getWorkflowsInvolved(), getKeywordCategories() to SeedDMS_Core_User +- add methods isMandatoryReviewerOf() and isMandatoryApproverOf() +- add methods transferDocumentsFolders() and transferEvents() + + 2017-02-28 diff --git a/inc/inc.ClassAccessOperation.php b/inc/inc.ClassAccessOperation.php index c4caf2ce3..e9649bdc8 100644 --- a/inc/inc.ClassAccessOperation.php +++ b/inc/inc.ClassAccessOperation.php @@ -62,14 +62,16 @@ class SeedDMS_AccessOperation { * document may delete versions. The admin may even delete a version * even if is disallowed in the settings. */ - function mayEditVersion($document) { /* {{{ */ + function mayEditVersion($document, $vno=0) { /* {{{ */ if(get_class($document) == $this->dms->getClassname('document')) { - if($latestContent = $document->getLatestContent()) { - if (!isset($this->settings->_editOnlineFileTypes) || !is_array($this->settings->_editOnlineFileTypes) || !in_array(strtolower($latestContent->getFileType()), $this->settings->_editOnlineFileTypes)) - return false; - if ($document->getAccessMode($this->user) == M_ALL || $this->user->isAdmin()) { - return true; - } + if($vno) + $version = $document->getContentByVersion($vno); + else + $version = $document->getLatestContent(); + if (!isset($this->settings->_editOnlineFileTypes) || !is_array($this->settings->_editOnlineFileTypes) || !in_array(strtolower($version->getFileType()), $this->settings->_editOnlineFileTypes)) + return false; + if ($document->getAccessMode($this->user) == M_ALL || $this->user->isAdmin()) { + return true; } } return false; @@ -121,15 +123,28 @@ class SeedDMS_AccessOperation { * * This check can only be done for documents. Overwriting the document * reviewers/approvers is only allowed if version modification is turned on - * in the settings and the document is in 'draft review' status. The - * admin may even set reviewers/approvers if is disallowed in the + * in the settings and the document has not been reviewed/approved by any + * user/group already. + * The admin may even set reviewers/approvers if is disallowed in the * settings. */ function maySetReviewersApprovers($document) { /* {{{ */ if(get_class($document) == $this->dms->getClassname('document')) { if($latestContent = $document->getLatestContent()) { $status = $latestContent->getStatus(); - if ((($this->settings->_enableVersionModification && ($document->getAccessMode($this->user) == M_ALL)) || $this->user->isAdmin()) && ($status['status']==S_DRAFT || $status["status"]==S_DRAFT_REV || $status["status"]==S_DRAFT_APP && $this->settings->_workflowMode == 'traditional_only_approval')) { + $reviewstatus = $latestContent->getReviewStatus(); + $hasreview = false; + foreach($reviewstatus as $r) { + if($r['status'] == 1 || $r['status'] == -1) + $hasreview = true; + } + $approvalstatus = $latestContent->getApprovalStatus(); + $hasapproval = false; + foreach($approvalstatus as $r) { + if($r['status'] == 1 || $r['status'] == -1) + $hasapproval = true; + } + if ((($this->settings->_enableVersionModification && ($document->getAccessMode($this->user) == M_ALL)) || $this->user->isAdmin()) && (($status["status"]==S_DRAFT_REV && !$hasreview) || ($status["status"]==S_DRAFT_APP && !$hasreview && !$hasapproval))) { return true; } } diff --git a/inc/inc.ClassAcl.php b/inc/inc.ClassAcl.php index f96f09ed8..04e9a3bac 100644 --- a/inc/inc.ClassAcl.php +++ b/inc/inc.ClassAcl.php @@ -353,7 +353,7 @@ class SeedDMS_Aco extends SeedDMS_AroAco{ /* {{{ */ return false; if (count($resArr) != 1) return 0; - return $resArr[0]['read']; + return (int) $resArr[0]['read']; } /* }}} */ public static function getRoot($dms) { /* {{{ */ diff --git a/inc/inc.ClassSession.php b/inc/inc.ClassSession.php index e84fcc00a..a57b94dba 100644 --- a/inc/inc.ClassSession.php +++ b/inc/inc.ClassSession.php @@ -497,6 +497,7 @@ class SeedDMS_SessionMgr { if(!$ts = makeTsFromLongDate($datetime)) return false; $queryStr = "SELECT * FROM `tblSessions` WHERE `lastAccess`>=".$ts; + $queryStr .= " GROUP BY `userID` "; $queryStr .= " ORDER BY `lastAccess` DESC"; $resArr = $this->db->getResultArray($queryStr); if (is_bool($resArr) && $resArr == false) diff --git a/inc/inc.ClassSettings.php b/inc/inc.ClassSettings.php index 4745459be..097d247fd 100644 --- a/inc/inc.ClassSettings.php +++ b/inc/inc.ClassSettings.php @@ -204,6 +204,8 @@ class Settings { /* {{{ */ var $_enableClipboard = true; // enable/disable list of tasks in main menu var $_enableMenuTasks = true; + // enable/disable list of files in drop folder + var $_enableDropFolderList = false; // enable/disable display of the session list var $_enableSessionList = false; // enable/disable display of the drop zone for file upload @@ -443,6 +445,7 @@ class Settings { /* {{{ */ $this->_enableSessionList = Settings::boolVal($tab["enableSessionList"]); $this->_enableClipboard = Settings::boolVal($tab["enableClipboard"]); $this->_enableMenuTasks = Settings::boolVal($tab["enableMenuTasks"]); + $this->_enableDropFolderList = Settings::boolVal($tab["enableDropFolderList"]); $this->_enableDropUpload = Settings::boolVal($tab["enableDropUpload"]); $this->_enableMultiUpload = Settings::boolVal($tab["enableMultiUpload"]); $this->_enableFolderTree = Settings::boolVal($tab["enableFolderTree"]); @@ -475,6 +478,8 @@ class Settings { /* {{{ */ $this->_rootDir = strval($tab["rootDir"]); $this->_httpRoot = strval($tab["httpRoot"]); $this->_contentDir = strval($tab["contentDir"]); + if($this->_contentDir && substr($this->_contentDir, -1, 1) != DIRECTORY_SEPARATOR) + $this->_contentDir .= DIRECTORY_SEPARATOR; $this->_cacheDir = strval($tab["cacheDir"]); $this->_stagingDir = strval($tab["stagingDir"]); $this->_luceneDir = strval($tab["luceneDir"]); @@ -765,6 +770,7 @@ class Settings { /* {{{ */ $this->setXMLAttributValue($node, "enableSessionList", $this->_enableSessionList); $this->setXMLAttributValue($node, "enableClipboard", $this->_enableClipboard); $this->setXMLAttributValue($node, "enableMenuTasks", $this->_enableMenuTasks); + $this->setXMLAttributValue($node, "enableDropFolderList", $this->_enableDropFolderList); $this->setXMLAttributValue($node, "enableDropUpload", $this->_enableDropUpload); $this->setXMLAttributValue($node, "enableMultiUpload", $this->_enableMultiUpload); $this->setXMLAttributValue($node, "enableFolderTree", $this->_enableFolderTree); diff --git a/inc/inc.ClassUI.php b/inc/inc.ClassUI.php index 8850b5b67..6a4031449 100644 --- a/inc/inc.ClassUI.php +++ b/inc/inc.ClassUI.php @@ -105,6 +105,8 @@ class UI extends UI_Default { $view->setParam('enablelanguageselector', $settings->_enableLanguageSelector); $view->setParam('enableclipboard', $settings->_enableClipboard); $view->setParam('enablemenutasks', $settings->_enableMenuTasks); + $view->setParam('enabledropfolderlist', $settings->_enableDropFolderList); + $view->setParam('dropfolderdir', $settings->_dropFolderDir); $view->setParam('enablesessionlist', $settings->_enableSessionList); $view->setParam('workflowmode', $settings->_workflowMode); $view->setParam('checkoutdir', $settings->_checkOutDir); diff --git a/inc/inc.Language.php b/inc/inc.Language.php index 9144a3fa4..d2383e300 100644 --- a/inc/inc.Language.php +++ b/inc/inc.Language.php @@ -329,7 +329,7 @@ function getOverallStatusText($status) { /* {{{ */ } } /* }}} */ -function getAttributeValidationText($error, $attrname='', $attrvalue='') { /* {{{ */ +function getAttributeValidationText($error, $attrname='', $attrvalue='', $regex='') { /* {{{ */ switch($error) { case 10: return getMLText("attr_not_in_valueset", array('attrname'=>$attrname, 'value'=>$attrvalue)); @@ -353,7 +353,7 @@ function getAttributeValidationText($error, $attrname='', $attrvalue='') { /* {{ return getMLText("attr_malformed_url", array('attrname'=>$attrname, 'value'=>$attrvalue)); break; case 3: - return getMLText("attr_no_regex_match", array('attrname'=>$attrname, 'value'=>$attrvalue)); + return getMLText("attr_no_regex_match", array('attrname'=>$attrname, 'value'=>$attrvalue, 'regex'=>$regex)); break; case 2: return getMLText("attr_max_values", array('attrname'=>$attrname, 'value'=>$attrvalue)); diff --git a/inc/inc.Utils.php b/inc/inc.Utils.php index 922610e22..10c4bbc11 100644 --- a/inc/inc.Utils.php +++ b/inc/inc.Utils.php @@ -122,7 +122,7 @@ function cmpVersion($ver1, $ver2) { // $string = str_replace("/*", "", $string); // $string = str_replace("*/", "", $string); // $string = str_replace("\"", """, $string); -// +// // return $string; //} @@ -184,48 +184,48 @@ function mydmsDecodeString($string) { /* {{{ */ function createVersionigFile($document) { /* {{{ */ global $settings, $dms; - + // if directory has been removed recreate it if (!file_exists($dms->contentDir . $document->getDir())) if (!SeedDMS_Core_File::makeDir($dms->contentDir . $document->getDir())) return false; - + $handle = fopen($dms->contentDir . $document->getDir() .$settings-> _versioningFileName , "wb"); - + if (is_bool($handle)&&!$handle) return false; - + $tmp = $document->getName()." (ID ".$document->getID().")\n\n"; fwrite($handle, $tmp); $owner = $document->getOwner(); $tmp = getMLText("owner")." = ".$owner->getFullName()." <".$owner->getEmail().">\n"; fwrite($handle, $tmp); - + $tmp = getMLText("creation_date")." = ".getLongReadableDate($document->getDate())."\n"; fwrite($handle, $tmp); - + $latestContent = $document->getLatestContent(); $tmp = "\n### ".getMLText("current_version")." ###\n\n"; fwrite($handle, $tmp); - + $tmp = getMLText("version")." = ".$latestContent->getVersion()."\n"; - fwrite($handle, $tmp); - + fwrite($handle, $tmp); + $tmp = getMLText("file")." = ".$latestContent->getOriginalFileName()." (".$latestContent->getMimeType().")\n"; fwrite($handle, $tmp); - + $tmp = getMLText("comment")." = ". $latestContent->getComment()."\n"; fwrite($handle, $tmp); - + $status = $latestContent->getStatus(); $tmp = getMLText("status")." = ".getOverallStatusText($status["status"])."\n"; fwrite($handle, $tmp); - + $reviewStatus = $latestContent->getReviewStatus(); $tmp = "\n### ".getMLText("reviewers")." ###\n"; fwrite($handle, $tmp); - + foreach ($reviewStatus as $r) { - + switch ($r["type"]) { case 0: // Reviewer is an individual. $required = $dms->getUser($r["required"]); @@ -241,25 +241,25 @@ function createVersionigFile($document) { /* {{{ */ $tmp = "\n".$reqName."\n"; fwrite($handle, $tmp); - + $tmp = getMLText("status")." = ".getReviewStatusText($r["status"])."\n"; fwrite($handle, $tmp); - + $tmp = getMLText("comment")." = ". $r["comment"]."\n"; fwrite($handle, $tmp); - + $tmp = getMLText("last_update")." = ".$r["date"]."\n"; fwrite($handle, $tmp); } - - + + $approvalStatus = $latestContent->getApprovalStatus(); $tmp = "\n### ".getMLText("approvers")." ###\n"; fwrite($handle, $tmp); foreach ($approvalStatus as $r) { - + switch ($r["type"]) { case 0: // Reviewer is an individual. $required = $dms->getUser($r["required"]); @@ -275,42 +275,42 @@ function createVersionigFile($document) { /* {{{ */ $tmp = "\n".$reqName."\n"; fwrite($handle, $tmp); - + $tmp = getMLText("status")." = ".getApprovalStatusText($r["status"])."\n"; fwrite($handle, $tmp); - + $tmp = getMLText("comment")." = ". $r["comment"]."\n"; fwrite($handle, $tmp); - + $tmp = getMLText("last_update")." = ".$r["date"]."\n"; fwrite($handle, $tmp); - + } - $versions = $document->getContent(); + $versions = $document->getContent(); $tmp = "\n### ".getMLText("previous_versions")." ###\n"; fwrite($handle, $tmp); for ($i = count($versions)-2; $i >= 0; $i--){ - + $version = $versions[$i]; - $status = $version->getStatus(); - + $status = $version->getStatus(); + $tmp = "\n".getMLText("version")." = ".$version->getVersion()."\n"; - fwrite($handle, $tmp); - + fwrite($handle, $tmp); + $tmp = getMLText("file")." = ".$version->getOriginalFileName()." (".$version->getMimeType().")\n"; fwrite($handle, $tmp); - + $tmp = getMLText("comment")." = ". $version->getComment()."\n"; fwrite($handle, $tmp); - + $status = $latestContent->getStatus(); $tmp = getMLText("status")." = ".getOverallStatusText($status["status"])."\n"; fwrite($handle, $tmp); - + } - + fclose($handle); return true; } /* }}} */ @@ -388,13 +388,13 @@ function add_log_line($msg="", $priority=null) { /* {{{ */ function _add_log_line($msg="") { /* {{{ */ global $settings,$user; - + if ($settings->_logFileEnable!=TRUE) return; if ($settings->_logFileRotation=="h") $logname=date("YmdH", time()); else if ($settings->_logFileRotation=="d") $logname=date("Ymd", time()); else $logname=date("Ym", time()); - + if($h = fopen($settings->_contentDir.$logname.".log", "a")) { fwrite($h,date("Y/m/d H:i", time())." ".$user->getLogin()." (".$_SERVER['REMOTE_ADDR'].") ".basename($_SERVER["REQUEST_URI"], ".php").$msg."\n"); fclose($h); @@ -419,13 +419,13 @@ function _add_log_line($msg="") { /* {{{ */ return $txtpath; } /* }}} */ - + function showtree() { /* {{{ */ global $settings; - + if (isset($_GET["showtree"])) return intval($_GET["showtree"]); - else if ($settings->_enableFolderTree==0) return 0; - + else if ($settings->_expandFolderTree==0) return 0; + return 1; } /* }}} */ @@ -458,7 +458,7 @@ function createFormKey($formid='') { /* {{{ */ * @return string input field for html formular */ function createHiddenFieldWithKey($formid='') { /* {{{ */ - return ''; + return ''; } /* }}} */ /** @@ -482,7 +482,7 @@ function checkFormKey($formid='', $method='POST') { /* {{{ */ if(isset($_POST['formtoken']) && $_POST['formtoken'] == createFormKey($formid)) return true; } - + return false; } /* }}} */ @@ -586,4 +586,16 @@ function addDirSep($str) { /* {{{ */ else return trim($str); } /* }}} */ + +/** + * Formats comments for aknowledge of reception. + * + * Only use in documentListRow() + */ +function formatComment($an) { /* {{{ */ + $t = array(); + foreach($an as $a) + $t[] = $a['n']." × ".$a['c']; + return $t; +} /* }}} */ ?> diff --git a/install/install.php b/install/install.php index 80d4ce39e..7c64f1456 100644 --- a/install/install.php +++ b/install/install.php @@ -165,13 +165,16 @@ do { if(!$settings->_rootDir) $settings->_rootDir = $rootDir; -//$settings->_coreDir = $settings->_rootDir; -//$settings->_luceneClassDir = $settings->_rootDir; +elseif(realpath ("..") != realpath($settings->_rootDir)) { // Fix rootDir if required + $msg = "Your Root directory has been modified to fit your installation path!"; + $settings->_rootDir = realpath ("..")."/"; +} + if(!$settings->_contentDir) { - $settings->_contentDir = $settings->_rootDir . 'data/'; - $settings->_luceneDir = $settings->_rootDir . 'data/lucene/'; - $settings->_stagingDir = $settings->_rootDir . 'data/staging/'; - $settings->_cacheDir = $settings->_rootDir . 'data/cache/'; + $settings->_contentDir = realpath($settings->_rootDir."..") . '/data/'; + $settings->_luceneDir = $settings->_contentDir . 'lucene/'; + $settings->_stagingDir = $settings->_contentDir . 'staging/'; + $settings->_cacheDir = $settings->_contentDir . 'cache/'; } else { if(!$settings->_cacheDir) { $settings->_cacheDir = $settings->_contentDir . 'cache/'; @@ -195,6 +198,8 @@ UI::htmlStartPage("INSTALL"); UI::globalBanner(); UI::contentStart(); UI::contentHeading("SeedDMS Installation for version ".SEEDDMS_VERSION); +if(isset($msg)) + echo "
".$msg."
"; UI::contentContainerStart(); diff --git a/languages/ar_EG/lang.inc b/languages/ar_EG/lang.inc index 8dc9b55b1..0bc64aaa8 100644 --- a/languages/ar_EG/lang.inc +++ b/languages/ar_EG/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (1274) +// Translators: Admin (1275) $text = array( '2_factor_auth' => '', @@ -88,6 +88,14 @@ URL: [url]', 'already_subscribed' => 'بالفعل مشترك', 'and' => 'و', 'apply' => 'تطبيق', +'approvals_accepted' => '', +'approvals_and_reviews_accepted' => '', +'approvals_and_reviews_not_touched' => '', +'approvals_and_reviews_rejected' => '', +'approvals_not_touched' => '', +'approvals_rejected' => '', +'approvals_without_group' => '', +'approvals_without_user' => '', 'approval_deletion_email' => 'طلب الموافقة تم الغاؤه', 'approval_deletion_email_body' => '', 'approval_deletion_email_subject' => '', @@ -265,7 +273,9 @@ URL: [url]', 'confirm_rm_transmittal' => '', 'confirm_rm_transmittalitem' => '', 'confirm_rm_user' => 'هل تود حقا ازالة المستخدم "[username]"?
كن حذرا: هذا الاجراء لايمكن التراجع فيه', +'confirm_rm_user_from_processes' => '', 'confirm_rm_version' => 'هل تود حقا ازالة الاصدار [version] الخاص بالمستند "[documentname]"?
كن حذرا: هذا الاجراء لايمكن التراجع فيه', +'confirm_transfer_objects' => '', 'confirm_update_transmittalitem' => '', 'content' => 'المحتوى', 'continue' => 'استمرار', @@ -314,6 +324,7 @@ URL: [url]', 'documents_user_reception' => '', 'documents_user_rejected' => '', 'documents_user_requiring_attention' => 'مستندات ملكك تستلزم انتباهك', +'documents_with_notification' => '', 'document_already_checkedout' => '', 'document_already_locked' => 'هذا المستند محمي ضد التعديل', 'document_comment_changed_email' => 'تم تعديل التعليق', @@ -481,6 +492,7 @@ URL: [url]', 'folder' => 'مجلد', 'folders' => 'مجلدات', 'folders_and_documents_statistic' => 'رؤية عامة للمحتوى', +'folders_with_notification' => '', 'folder_comment_changed_email' => 'تم تعديل التعليق', 'folder_comment_changed_email_body' => 'تم تعديل التعليق الملجلد: [name] @@ -609,6 +621,7 @@ URL: [url]', 'js_no_approval_group' => 'من فضلك اختر مجموعة الموافقة', 'js_no_approval_status' => 'من فضلك اختر حالة الموافقة', 'js_no_comment' => 'لايوجد تعليق', +'js_no_currentpwd' => '', 'js_no_email' => 'اكتب بريدك الالكتروني', 'js_no_file' => 'من فضلك اختر ملف', 'js_no_keywords' => 'من فضلك اختر بعض الكلمات البحثية', @@ -643,7 +656,7 @@ URL: [url]', 'linked_to_this_version' => '', 'link_alt_updatedocument' => 'اذا كنت تود تحميل ملفات اكبر من حجم الملفات المتاحة حاليا, من فضلك استخدم البديل صفحة التحميل.', 'link_to_version' => '', -'list_access_rights' => '', +'list_access_rights' => 'ﻉﺮﺿ ﻚﻟ ﺎﻠﺻﻼﺤﻳﺎﺗ', 'list_contains_no_access_docs' => '', 'list_hooks' => '', 'local_file' => 'ملف محلي', @@ -673,6 +686,7 @@ URL: [url]', 'march' => 'مارس', 'max_upload_size' => 'الحجم الاقصى للملف', 'may' => 'مايو', +'menu_dropfolder' => '', 'mimetype' => 'Mime type', 'minutes' => 'دقائق', 'misc' => 'متنوعات', @@ -816,7 +830,9 @@ URL: [url]', 'password_strength_insuffient' => 'قوة كلمة السر غير كافية', 'password_wrong' => 'كلمة سر خاطئة', 'pending_approvals' => '', +'pending_receipt' => '', 'pending_reviews' => '', +'pending_revision' => '', 'pending_workflows' => '', 'personal_default_keywords' => 'قوائم الكلمات البحثية الشخصية', 'pl_PL' => 'ﺎﻠﺑﻮﻠﻧﺪﻳﺓ', @@ -829,11 +845,18 @@ URL: [url]', 'preview_plain' => '', 'previous_state' => 'حالة سابقة', 'previous_versions' => 'اصدارات سابقة', +'process' => '', +'process_without_user_group' => '', 'pt_BR' => 'البرتغالية (BR)', 'quota' => 'المساحة المخصصة', 'quota_exceeded' => 'لقد قمت بتعدي المساحة المخصصة لك بمقدار [bytes].', 'quota_is_disabled' => '', 'quota_warning' => 'اقصى مساحة للقرص الصلب تم تعديها بمقدار [bytes]. من فضلك قم بمسح بعض المستندات او اصدارات سابقة منها', +'receipts_accepted' => '', +'receipts_not_touched' => '', +'receipts_rejected' => '', +'receipts_without_group' => '', +'receipts_without_user' => '', 'receipt_deletion_email_body' => '', 'receipt_deletion_email_subject' => '', 'receipt_log' => '', @@ -860,7 +883,7 @@ URL: [url]', 'removed_file_email_subject' => '[sitename]: [document] - تم ازالة المرفقات', 'removed_recipient' => '', 'removed_reviewer' => 'تم ازالته من قائمة المراجعة', -'removed_revispr' => '', +'removed_revisor' => '', 'removed_workflow_email_body' => 'تم ازالة مسار العمل من اصدار المستند مستند: [name] اصدار: [version] @@ -892,6 +915,11 @@ URL: [url]', 'reviewers' => 'المراجعون', 'reviewer_already_assigned' => 'بالفعل تم تخصيصة كمراجع', 'reviewer_already_removed' => 'بالفعل تم ازالته من عملية المراجعة او تم تقديمه للمراجعة', +'reviews_accepted' => '', +'reviews_not_touched' => '', +'reviews_rejected' => '', +'reviews_without_group' => '', +'reviews_without_user' => '', 'review_deletion_email' => 'طلب المراجعة تم مسحه', 'review_deletion_email_body' => '', 'review_deletion_email_subject' => '', @@ -916,6 +944,12 @@ URL: [url]', 'review_update_failed' => 'خطأ في تحديث حالة المراجعة. التحديث فشل.', 'revise_document' => '', 'revise_document_on' => '', +'revisions_accepted' => '', +'revisions_not_touched' => '', +'revisions_pending' => '', +'revisions_rejected' => '', +'revisions_without_group' => '', +'revisions_without_user' => '', 'revision_date' => '', 'revision_log' => '', 'revision_request_email_body' => '', @@ -950,6 +984,7 @@ URL: [url]', 'rm_transmittal' => '', 'rm_transmittalitem' => '', 'rm_user' => 'ازالة هذا المستخدم', +'rm_user_from_processes' => '', 'rm_version' => 'ازالة اصدار', 'rm_workflow' => 'ازالة مسار عمل', 'rm_workflow_action' => 'ازالة اجراء مسار عمل', @@ -1108,6 +1143,8 @@ URL: [url]', 'settings_enableClipboard_desc' => '', 'settings_enableConverting' => '', 'settings_enableConverting_desc' => '', +'settings_enableDropFolderList' => '', +'settings_enableDropFolderList_desc' => '', 'settings_enableDropUpload' => '', 'settings_enableDropUpload_desc' => '', 'settings_enableDuplicateDocNames' => '', @@ -1385,12 +1422,15 @@ URL: [url]', 'splash_rm_role' => '', 'splash_rm_transmittal' => '', 'splash_rm_user' => '', +'splash_rm_user_processes' => '', 'splash_saved_file' => '', +'splash_save_user_data' => '', 'splash_send_download_link' => '', 'splash_settings_saved' => '', 'splash_substituted_user' => '', 'splash_switched_back_user' => '', 'splash_toogle_group_manager' => '', +'splash_transfer_objects' => '', 'state_and_next_state' => '', 'statistic' => '', 'status' => 'الحالة', @@ -1459,11 +1499,15 @@ URL: [url]', 'timeline_skip_status_change_1' => '', 'timeline_skip_status_change_2' => '', 'timeline_skip_status_change_3' => '', +'timeline_skip_status_change_4' => '', +'timeline_skip_status_change_5' => '', 'timeline_status_change' => 'ﺖﻐﻳﺭ ﺎﻠﺣﺎﻟﺓ ﻢﻋ ﺎﻟﺰﻤﻧ', 'to' => 'الى', 'toggle_manager' => 'رجح مدير', 'toggle_qrcode' => '', 'to_before_from' => '', +'transfer_objects' => '', +'transfer_objects_to_user' => '', 'transition_triggered_email' => 'تم تحريك انتقال مسار العمل', 'transition_triggered_email_body' => 'تم تحريك انتقال مسار العمل المستند: [name] @@ -1522,10 +1566,12 @@ URL: [url]', 'uploading_zerosize' => 'تحميل ملف فارغ. عملية التحميل الغيت', 'used_discspace' => 'المساحة المستخدمة', 'user' => 'مستخدم', +'userid_groupid' => '', 'users' => 'مستخدمين', 'users_and_groups' => '', 'users_done_work' => '', 'user_exists' => 'المستخدم موجود بالفعل.', +'user_group' => '', 'user_group_management' => 'إدارة المستخدمين/المجموعات', 'user_image' => 'صورة', 'user_info' => 'بيانات المستخدمين', @@ -1559,6 +1605,7 @@ URL: [url]', 'weeks' => 'اسابيع', 'week_view' => 'عرض الاسبوع', 'workflow' => 'مسار عمل', +'workflows_involded' => '', 'workflow_actions_management' => 'ادارة اجراءات مسار العمل', 'workflow_action_in_use' => 'هذا الاجراء مستخدم حاليا في مسار عمل', 'workflow_action_name' => 'اسم', diff --git a/languages/bg_BG/lang.inc b/languages/bg_BG/lang.inc index ab60f7778..e7ecd68c6 100644 --- a/languages/bg_BG/lang.inc +++ b/languages/bg_BG/lang.inc @@ -84,6 +84,14 @@ $text = array( 'already_subscribed' => 'Вече е подписан', 'and' => 'и', 'apply' => 'Приложи', +'approvals_accepted' => '', +'approvals_and_reviews_accepted' => '', +'approvals_and_reviews_not_touched' => '', +'approvals_and_reviews_rejected' => '', +'approvals_not_touched' => '', +'approvals_rejected' => '', +'approvals_without_group' => '', +'approvals_without_user' => '', 'approval_deletion_email' => 'Запитване за утвърждаване за изтрит', 'approval_deletion_email_body' => '', 'approval_deletion_email_subject' => '', @@ -250,7 +258,9 @@ $text = array( 'confirm_rm_transmittal' => '', 'confirm_rm_transmittalitem' => '', 'confirm_rm_user' => 'Изтрий потребител "[username]"?
Действието е перманентно', +'confirm_rm_user_from_processes' => '', 'confirm_rm_version' => 'Изтрий версия на [version] документ "[documentname]"?
Действието е перманентно', +'confirm_transfer_objects' => '', 'confirm_update_transmittalitem' => '', 'content' => 'Съдържание', 'continue' => 'Продължи', @@ -299,6 +309,7 @@ $text = array( 'documents_user_reception' => '', 'documents_user_rejected' => '', 'documents_user_requiring_attention' => 'Ваши документи, изискващи внимание', +'documents_with_notification' => '', 'document_already_checkedout' => '', 'document_already_locked' => 'Документът е вече блокиран', 'document_comment_changed_email' => '', @@ -432,6 +443,7 @@ $text = array( 'folder' => 'Папка', 'folders' => 'Папки', 'folders_and_documents_statistic' => 'Обзор на съдържанието', +'folders_with_notification' => '', 'folder_comment_changed_email' => '', 'folder_comment_changed_email_body' => '', 'folder_comment_changed_email_subject' => '', @@ -540,6 +552,7 @@ $text = array( 'js_no_approval_group' => 'Изберете утвърждаваща група', 'js_no_approval_status' => 'Изберете статусът на утвърждаване', 'js_no_comment' => 'Няма коментар', +'js_no_currentpwd' => '', 'js_no_email' => 'Въведете своя Email', 'js_no_file' => 'Изберете файл', 'js_no_keywords' => 'Укажете ключови думи', @@ -604,6 +617,7 @@ $text = array( 'march' => 'март', 'max_upload_size' => 'Лимит за размер на файла', 'may' => 'май', +'menu_dropfolder' => '', 'mimetype' => 'Mime тип', 'minutes' => 'минути', 'misc' => 'Разни', @@ -717,7 +731,9 @@ $text = array( 'password_strength_insuffient' => 'Недостатъчна устойчивост на паролата', 'password_wrong' => 'Грешна парола', 'pending_approvals' => '', +'pending_receipt' => '', 'pending_reviews' => '', +'pending_revision' => '', 'pending_workflows' => '', 'personal_default_keywords' => 'Личен списък с ключови думи', 'pl_PL' => 'Полски', @@ -730,11 +746,18 @@ $text = array( 'preview_plain' => '', 'previous_state' => 'Предишно състояние', 'previous_versions' => 'Предишни версии', +'process' => '', +'process_without_user_group' => '', 'pt_BR' => 'Португалски (Бразилия)', 'quota' => 'Квота', 'quota_exceeded' => 'Вашата дискова квота е превишена с [bytes].', 'quota_is_disabled' => '', 'quota_warning' => 'Вашето max. използуване на диска е превишена с [bytes]. Please remove documents or previous versions.', +'receipts_accepted' => '', +'receipts_not_touched' => '', +'receipts_rejected' => '', +'receipts_without_group' => '', +'receipts_without_user' => '', 'receipt_deletion_email_body' => '', 'receipt_deletion_email_subject' => '', 'receipt_log' => '', @@ -758,7 +781,7 @@ $text = array( 'removed_file_email_subject' => '', 'removed_recipient' => '', 'removed_reviewer' => 'изтрит от списъка с рецензиращи', -'removed_revispr' => '', +'removed_revisor' => '', 'removed_workflow_email_body' => '', 'removed_workflow_email_subject' => '', 'removeFolderFromDropFolder' => '', @@ -777,6 +800,11 @@ $text = array( 'reviewers' => 'Рецензиращи', 'reviewer_already_assigned' => 'вече назначено за рецензиране', 'reviewer_already_removed' => 'вече премахнат от списъка с рецензиращи или вече е оставил рецензия', +'reviews_accepted' => '', +'reviews_not_touched' => '', +'reviews_rejected' => '', +'reviews_without_group' => '', +'reviews_without_user' => '', 'review_deletion_email' => 'Запитване за рецензия премахнато', 'review_deletion_email_body' => '', 'review_deletion_email_subject' => '', @@ -794,6 +822,12 @@ $text = array( 'review_update_failed' => 'грешка при обновяване статуса на рецензията', 'revise_document' => '', 'revise_document_on' => '', +'revisions_accepted' => '', +'revisions_not_touched' => '', +'revisions_pending' => '', +'revisions_rejected' => '', +'revisions_without_group' => '', +'revisions_without_user' => '', 'revision_date' => '', 'revision_log' => '', 'revision_request_email_body' => '', @@ -822,6 +856,7 @@ $text = array( 'rm_transmittal' => '', 'rm_transmittalitem' => '', 'rm_user' => 'Премахни тоз потребител', +'rm_user_from_processes' => '', 'rm_version' => 'Премахни версия', 'rm_workflow' => 'Премахни процес', 'rm_workflow_action' => 'Премахни действие по процес', @@ -973,6 +1008,8 @@ $text = array( 'settings_enableClipboard_desc' => '', 'settings_enableConverting' => 'Включи конвертирането', 'settings_enableConverting_desc' => 'Включване/изключване конвертирането на файлове', +'settings_enableDropFolderList' => '', +'settings_enableDropFolderList_desc' => '', 'settings_enableDropUpload' => '', 'settings_enableDropUpload_desc' => '', 'settings_enableDuplicateDocNames' => 'Разреши еднакви имена на документи', @@ -1250,12 +1287,15 @@ $text = array( 'splash_rm_role' => '', 'splash_rm_transmittal' => '', 'splash_rm_user' => '', +'splash_rm_user_processes' => '', 'splash_saved_file' => '', +'splash_save_user_data' => '', 'splash_send_download_link' => '', 'splash_settings_saved' => '', 'splash_substituted_user' => '', 'splash_switched_back_user' => '', 'splash_toogle_group_manager' => '', +'splash_transfer_objects' => '', 'state_and_next_state' => '', 'statistic' => '', 'status' => 'Статус', @@ -1324,11 +1364,15 @@ $text = array( 'timeline_skip_status_change_1' => '', 'timeline_skip_status_change_2' => '', 'timeline_skip_status_change_3' => '', +'timeline_skip_status_change_4' => '', +'timeline_skip_status_change_5' => '', 'timeline_status_change' => '', 'to' => 'към', 'toggle_manager' => 'Превключи мениджър', 'toggle_qrcode' => '', 'to_before_from' => '', +'transfer_objects' => '', +'transfer_objects_to_user' => '', 'transition_triggered_email' => 'Забелязана промяна на процес', 'transition_triggered_email_body' => '', 'transition_triggered_email_subject' => '', @@ -1378,10 +1422,12 @@ $text = array( 'uploading_zerosize' => 'Качване на празен файл/размер=0. Качването прекратено.', 'used_discspace' => 'Използвано дисково пространство', 'user' => 'Потребител', +'userid_groupid' => '', 'users' => 'Потребители', 'users_and_groups' => '', 'users_done_work' => '', 'user_exists' => 'Потребителя вече съществува.', +'user_group' => '', 'user_group_management' => 'Управление на потребители/групи', 'user_image' => 'Изображение', 'user_info' => 'Информация за потребител', @@ -1410,6 +1456,7 @@ $text = array( 'weeks' => 'седмици', 'week_view' => 'седмичен изглед', 'workflow' => 'процес', +'workflows_involded' => '', 'workflow_actions_management' => 'Управление на действията по процеси', 'workflow_action_in_use' => 'Това действие се използва от даден процес.', 'workflow_action_name' => 'Име', diff --git a/languages/ca_ES/lang.inc b/languages/ca_ES/lang.inc index 73404594d..3082dc6a0 100644 --- a/languages/ca_ES/lang.inc +++ b/languages/ca_ES/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (722) +// Translators: Admin (725) $text = array( '2_factor_auth' => '', @@ -84,6 +84,14 @@ $text = array( 'already_subscribed' => 'Ja està subscrit', 'and' => 'i', 'apply' => 'Apply', +'approvals_accepted' => '', +'approvals_and_reviews_accepted' => '', +'approvals_and_reviews_not_touched' => '', +'approvals_and_reviews_rejected' => '', +'approvals_not_touched' => '', +'approvals_rejected' => '', +'approvals_without_group' => '', +'approvals_without_user' => '', 'approval_deletion_email' => 'Demanda d\'aprovació esborrada', 'approval_deletion_email_body' => '', 'approval_deletion_email_subject' => '', @@ -217,14 +225,14 @@ URL: [url]', 'checkout_is_disabled' => '', 'choose_attrdef' => '', 'choose_attrdefgroup' => '', -'choose_category' => '--Elegir categoria--', -'choose_group' => '--Seleccionar grup--', +'choose_category' => 'Elegir categoria', +'choose_group' => 'Seleccionar grup', 'choose_role' => '', 'choose_target_category' => '', 'choose_target_document' => 'Escollir document', 'choose_target_file' => '', 'choose_target_folder' => 'Escollir directori de destinació', -'choose_user' => '--Seleccionar usuari--', +'choose_user' => 'Seleccionar usuari', 'choose_workflow' => '', 'choose_workflow_action' => '', 'choose_workflow_state' => '', @@ -255,7 +263,9 @@ URL: [url]', 'confirm_rm_transmittal' => '', 'confirm_rm_transmittalitem' => '', 'confirm_rm_user' => '¿Vol realment eliminar l\'usuari "[username]"?
Atenció: aquesta acció no es pot desfer.', +'confirm_rm_user_from_processes' => '', 'confirm_rm_version' => '¿Vol realment eliminar la versió [version] del document "[documentname]"?
Atenció: aquesta acció no es pot desfer.', +'confirm_transfer_objects' => '', 'confirm_update_transmittalitem' => '', 'content' => 'Contingut', 'continue' => 'Continuar', @@ -304,6 +314,7 @@ URL: [url]', 'documents_user_reception' => '', 'documents_user_rejected' => '', 'documents_user_requiring_attention' => 'Documents de la seva propietat que requereixen atenció', +'documents_with_notification' => '', 'document_already_checkedout' => '', 'document_already_locked' => 'Aquest document ja està bloquejat', 'document_comment_changed_email' => '', @@ -437,6 +448,7 @@ URL: [url]', 'folder' => 'Carpeta', 'folders' => 'Carpetes', 'folders_and_documents_statistic' => 'Vista general de continguts', +'folders_with_notification' => '', 'folder_comment_changed_email' => '', 'folder_comment_changed_email_body' => '', 'folder_comment_changed_email_subject' => '', @@ -545,6 +557,7 @@ URL: [url]', 'js_no_approval_group' => 'Si us plau, seleccioneu grup d\'aprovació', 'js_no_approval_status' => 'Si us plau, seleccioneu l\'estat d\'aprovació', 'js_no_comment' => 'No hi ha comentaris', +'js_no_currentpwd' => '', 'js_no_email' => 'Si us plau, escriviu la vostra adreça de correu electrònic', 'js_no_file' => 'Si us plau, seleccioneu un arxiu', 'js_no_keywords' => 'Si us plau, especifiqueu mots clau', @@ -609,6 +622,7 @@ URL: [url]', 'march' => 'Març', 'max_upload_size' => 'Mida màxima de pujada de cada fitxer', 'may' => 'Maig', +'menu_dropfolder' => '', 'mimetype' => '', 'minutes' => '', 'misc' => 'Miscelànea', @@ -722,7 +736,9 @@ URL: [url]', 'password_strength_insuffient' => '', 'password_wrong' => '', 'pending_approvals' => '', +'pending_receipt' => '', 'pending_reviews' => '', +'pending_revision' => '', 'pending_workflows' => '', 'personal_default_keywords' => 'Mots clau personals', 'pl_PL' => 'Polonès', @@ -735,11 +751,18 @@ URL: [url]', 'preview_plain' => '', 'previous_state' => '', 'previous_versions' => 'Versions anteriors', +'process' => '', +'process_without_user_group' => '', 'pt_BR' => 'Portuguès', 'quota' => '', 'quota_exceeded' => '', 'quota_is_disabled' => '', 'quota_warning' => '', +'receipts_accepted' => '', +'receipts_not_touched' => '', +'receipts_rejected' => '', +'receipts_without_group' => '', +'receipts_without_user' => '', 'receipt_deletion_email_body' => '', 'receipt_deletion_email_subject' => '', 'receipt_log' => '', @@ -763,7 +786,7 @@ URL: [url]', 'removed_file_email_subject' => '', 'removed_recipient' => '', 'removed_reviewer' => 'Ha estat eliminat de la llista de revisors', -'removed_revispr' => '', +'removed_revisor' => '', 'removed_workflow_email_body' => '', 'removed_workflow_email_subject' => '', 'removeFolderFromDropFolder' => '', @@ -782,6 +805,11 @@ URL: [url]', 'reviewers' => 'Revisors', 'reviewer_already_assigned' => 'Ja està asignat com revisor', 'reviewer_already_removed' => 'Ja ha estat eliminat del procés de revisió o ja ha enviat una revisió', +'reviews_accepted' => '', +'reviews_not_touched' => '', +'reviews_rejected' => '', +'reviews_without_group' => '', +'reviews_without_user' => '', 'review_deletion_email' => 'Petició de revisió eliminada', 'review_deletion_email_body' => '', 'review_deletion_email_subject' => '', @@ -799,6 +827,12 @@ URL: [url]', 'review_update_failed' => 'Error actualitzant l\'estat de la revisió. L\'actualizació ha fallat.', 'revise_document' => '', 'revise_document_on' => '', +'revisions_accepted' => '', +'revisions_not_touched' => '', +'revisions_pending' => '', +'revisions_rejected' => '', +'revisions_without_group' => '', +'revisions_without_user' => '', 'revision_date' => '', 'revision_log' => '', 'revision_request_email_body' => '', @@ -827,6 +861,7 @@ URL: [url]', 'rm_transmittal' => '', 'rm_transmittalitem' => '', 'rm_user' => 'Eliminar aquest usuari', +'rm_user_from_processes' => '', 'rm_version' => 'Eliminar versió', 'rm_workflow' => '', 'rm_workflow_action' => '', @@ -978,6 +1013,8 @@ URL: [url]', 'settings_enableClipboard_desc' => '', 'settings_enableConverting' => '', 'settings_enableConverting_desc' => '', +'settings_enableDropFolderList' => '', +'settings_enableDropFolderList_desc' => '', 'settings_enableDropUpload' => '', 'settings_enableDropUpload_desc' => '', 'settings_enableDuplicateDocNames' => '', @@ -1255,12 +1292,15 @@ URL: [url]', 'splash_rm_role' => '', 'splash_rm_transmittal' => '', 'splash_rm_user' => '', +'splash_rm_user_processes' => '', 'splash_saved_file' => '', +'splash_save_user_data' => '', 'splash_send_download_link' => '', 'splash_settings_saved' => '', 'splash_substituted_user' => '', 'splash_switched_back_user' => '', 'splash_toogle_group_manager' => '', +'splash_transfer_objects' => '', 'state_and_next_state' => '', 'statistic' => '', 'status' => 'Estat', @@ -1329,11 +1369,15 @@ URL: [url]', 'timeline_skip_status_change_1' => '', 'timeline_skip_status_change_2' => '', 'timeline_skip_status_change_3' => '', +'timeline_skip_status_change_4' => '', +'timeline_skip_status_change_5' => '', 'timeline_status_change' => 'Versió [version]:[status]', 'to' => 'Fins', 'toggle_manager' => 'Intercanviar manager', 'toggle_qrcode' => '', 'to_before_from' => '', +'transfer_objects' => '', +'transfer_objects_to_user' => '', 'transition_triggered_email' => '', 'transition_triggered_email_body' => '', 'transition_triggered_email_subject' => '', @@ -1383,10 +1427,12 @@ URL: [url]', 'uploading_zerosize' => '', 'used_discspace' => 'Espai utilitzat', 'user' => 'Usuari', +'userid_groupid' => '', 'users' => 'Usuaris', 'users_and_groups' => '', 'users_done_work' => '', 'user_exists' => 'L\'usuari ja existeix.', +'user_group' => '', 'user_group_management' => '', 'user_image' => 'Imatge', 'user_info' => 'Informació d\'usuari', @@ -1415,6 +1461,7 @@ URL: [url]', 'weeks' => '', 'week_view' => 'Vista de setmana', 'workflow' => '', +'workflows_involded' => '', 'workflow_actions_management' => '', 'workflow_action_in_use' => '', 'workflow_action_name' => '', diff --git a/languages/cs_CZ/lang.inc b/languages/cs_CZ/lang.inc index 857e35b12..34ee1ef78 100644 --- a/languages/cs_CZ/lang.inc +++ b/languages/cs_CZ/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (722), kreml (455) +// Translators: Admin (725), kreml (455) $text = array( '2_factor_auth' => '', @@ -88,6 +88,14 @@ URL: [url]', 'already_subscribed' => 'Již odebráno', 'and' => 'a', 'apply' => 'Použít', +'approvals_accepted' => '', +'approvals_and_reviews_accepted' => '', +'approvals_and_reviews_not_touched' => '', +'approvals_and_reviews_rejected' => '', +'approvals_not_touched' => '', +'approvals_rejected' => '', +'approvals_without_group' => '', +'approvals_without_user' => '', 'approval_deletion_email' => 'Zrušení schválení požadavku', 'approval_deletion_email_body' => '', 'approval_deletion_email_subject' => '', @@ -234,14 +242,14 @@ URL: [url]', 'checkout_is_disabled' => '', 'choose_attrdef' => 'Zvolte definici atributů', 'choose_attrdefgroup' => '', -'choose_category' => '--Vyberte prosím--', -'choose_group' => '--Vyberte skupinu--', +'choose_category' => 'Vyberte prosím', +'choose_group' => 'Vyberte skupinu', 'choose_role' => '', 'choose_target_category' => 'Vyberte kategorii', 'choose_target_document' => 'Vyberte dokument', 'choose_target_file' => 'Zvolte soubor', 'choose_target_folder' => 'Vyberte cílovou složku', -'choose_user' => '--Vyberte uživatele--', +'choose_user' => 'Vyberte uživatele', 'choose_workflow' => 'Zvolte pracovní postup', 'choose_workflow_action' => 'Zvolte akci pracovního postupu', 'choose_workflow_state' => 'Zvolit akci pracovního postupu', @@ -272,7 +280,9 @@ URL: [url]', 'confirm_rm_transmittal' => '', 'confirm_rm_transmittalitem' => '', 'confirm_rm_user' => 'Skutečně chcete odstranit uživatele "[username]"?
Pozor: Akce je nevratná.', +'confirm_rm_user_from_processes' => '', 'confirm_rm_version' => 'Skutečně chcete odstranit verzi [version] dokumentu "[documentname]"?
Buďte opatrní: Tuto činnost není možné vrátit zpět.', +'confirm_transfer_objects' => '', 'confirm_update_transmittalitem' => '', 'content' => 'Domů', 'continue' => 'Pokračovat', @@ -321,6 +331,7 @@ URL: [url]', 'documents_user_reception' => '', 'documents_user_rejected' => '', 'documents_user_requiring_attention' => 'Dokumenty, které uživatel vlastní a vyžadují pozornost', +'documents_with_notification' => '', 'document_already_checkedout' => '', 'document_already_locked' => 'Tento dokument je už zamčený', 'document_comment_changed_email' => 'Změna komentáře', @@ -488,6 +499,7 @@ URL: [url]', 'folder' => 'Složka', 'folders' => 'Složky', 'folders_and_documents_statistic' => 'Přehled složek a dokumentů', +'folders_with_notification' => '', 'folder_comment_changed_email' => 'Změna komentáře', 'folder_comment_changed_email_body' => 'Změna komentáře Složka: [name] @@ -616,6 +628,7 @@ URL: [url]', 'js_no_approval_group' => 'Prosím, vyberte skupinu pro schválení', 'js_no_approval_status' => 'Prosím, vyberte stav schválení', 'js_no_comment' => 'Žádný komentář', +'js_no_currentpwd' => '', 'js_no_email' => 'Napište svou emailovou adresu', 'js_no_file' => 'Prosím, vyberte soubor', 'js_no_keywords' => 'Zadejte nějaká klíčová slova', @@ -680,6 +693,7 @@ URL: [url]', 'march' => 'Březen', 'max_upload_size' => 'Max. délka pro nahrání jednoho souboru', 'may' => 'Květen', +'menu_dropfolder' => '', 'mimetype' => 'Typ "MIME"', 'minutes' => 'minuty', 'misc' => 'Různé', @@ -827,7 +841,9 @@ Pokud budete mít problém s přihlášením i po změně hesla, kontaktujte Adm 'password_strength_insuffient' => 'Nedostatečná síla hesla', 'password_wrong' => 'Špatné heslo', 'pending_approvals' => '', +'pending_receipt' => '', 'pending_reviews' => '', +'pending_revision' => '', 'pending_workflows' => '', 'personal_default_keywords' => 'Osobní klíčová slova', 'pl_PL' => 'Polština', @@ -840,11 +856,18 @@ Pokud budete mít problém s přihlášením i po změně hesla, kontaktujte Adm 'preview_plain' => '', 'previous_state' => 'Předchozí stav', 'previous_versions' => 'Předešlé verze', +'process' => '', +'process_without_user_group' => '', 'pt_BR' => 'Portugalština (BR)', 'quota' => 'Kvóta', 'quota_exceeded' => 'Vaše kvóta disku je překročena o [bytes].', 'quota_is_disabled' => 'Podpora kvót je v současné době zakázána v nastavení. Nastavení uživatelských kvót nebude mít žádný vliv, dokud se znovu neaktivuje.', 'quota_warning' => 'Vaše maximální využití disku je překročeno o [bajtů]. Prosím, odstraňte dokumenty nebo předchozí verze.', +'receipts_accepted' => '', +'receipts_not_touched' => '', +'receipts_rejected' => '', +'receipts_without_group' => '', +'receipts_without_user' => '', 'receipt_deletion_email_body' => '', 'receipt_deletion_email_subject' => '', 'receipt_log' => '', @@ -871,7 +894,7 @@ URL: [url]', 'removed_file_email_subject' => '[sitename]: [document] - Odstraněná příloha', 'removed_recipient' => '', 'removed_reviewer' => 'byl odstraněn ze seznamu kontrolorů.', -'removed_revispr' => '', +'removed_revisor' => '', 'removed_workflow_email_body' => 'Odstraněn pracovní postup z verze dokumentu: [name] Verze: [version] Praconí postup: [workflow] @@ -902,6 +925,11 @@ URL: [url]', 'reviewers' => 'Kontroloři', 'reviewer_already_assigned' => 'je už pověřen jako kontrolor', 'reviewer_already_removed' => 'už byl odstraněn z procesu kontroly nebo poslal kontrolu', +'reviews_accepted' => '', +'reviews_not_touched' => '', +'reviews_rejected' => '', +'reviews_without_group' => '', +'reviews_without_user' => '', 'review_deletion_email' => 'Žádost na revizi odstraněn', 'review_deletion_email_body' => '', 'review_deletion_email_subject' => '', @@ -925,6 +953,12 @@ URL: [url]', 'review_update_failed' => 'Chyba při aktualizaci stavu kontroly. Aktualizace selhala.', 'revise_document' => '', 'revise_document_on' => '', +'revisions_accepted' => '', +'revisions_not_touched' => '', +'revisions_pending' => '', +'revisions_rejected' => '', +'revisions_without_group' => '', +'revisions_without_user' => '', 'revision_date' => '', 'revision_log' => '', 'revision_request_email_body' => '', @@ -959,6 +993,7 @@ URL: [url]', 'rm_transmittal' => '', 'rm_transmittalitem' => '', 'rm_user' => 'Odstranit tohoto uživatele', +'rm_user_from_processes' => '', 'rm_version' => 'Odstranit verzi', 'rm_workflow' => 'Odstranit pracovní postup', 'rm_workflow_action' => 'Odstranit akci pracovního postupu', @@ -1117,6 +1152,8 @@ URL: [url]', 'settings_enableClipboard_desc' => 'Povolit/zakázat schránku', 'settings_enableConverting' => 'Povolit konverzi', 'settings_enableConverting_desc' => '', +'settings_enableDropFolderList' => '', +'settings_enableDropFolderList_desc' => '', 'settings_enableDropUpload' => 'Povolit rychlý upload', 'settings_enableDropUpload_desc' => 'Povolit/zakázat pokládácí prostor na stránce \'Zobrazení složek\' pro upload souborů pomocí Drag&Drop.', 'settings_enableDuplicateDocNames' => 'Povolit duplicitu názvů dokumentů', @@ -1394,12 +1431,15 @@ URL: [url]', 'splash_rm_role' => '', 'splash_rm_transmittal' => '', 'splash_rm_user' => 'Uživatel odstraněn', +'splash_rm_user_processes' => '', 'splash_saved_file' => '', +'splash_save_user_data' => '', 'splash_send_download_link' => '', 'splash_settings_saved' => 'Nastavení uloženo', 'splash_substituted_user' => 'Zaměněný uživatel', 'splash_switched_back_user' => 'Přepnuto zpět na původního uživatele', 'splash_toogle_group_manager' => 'Manažer skupiny přepnut', +'splash_transfer_objects' => '', 'state_and_next_state' => 'Stav/Další stav', 'statistic' => 'Statistika', 'status' => 'Stav', @@ -1468,11 +1508,15 @@ URL: [url]', 'timeline_skip_status_change_1' => '', 'timeline_skip_status_change_2' => '', 'timeline_skip_status_change_3' => '', +'timeline_skip_status_change_4' => '', +'timeline_skip_status_change_5' => '', 'timeline_status_change' => 'Verze [version]: [status]', 'to' => 'Do', 'toggle_manager' => 'Přepnout správce', 'toggle_qrcode' => '', 'to_before_from' => 'Datum ukončení nesmí být před datem zahájení', +'transfer_objects' => '', +'transfer_objects_to_user' => '', 'transition_triggered_email' => 'Transformace pracovního postupu spuštěna', 'transition_triggered_email_body' => 'Transformace pracovního postupu spuštěna Dokument: [jméno] @@ -1531,10 +1575,12 @@ URL: [url]', 'uploading_zerosize' => 'Nahrávání prázdného souboru. Nahrání zrušeno.', 'used_discspace' => 'Použité místo na disku', 'user' => 'Uživatel', +'userid_groupid' => '', 'users' => 'Uživatel', 'users_and_groups' => 'Uživatelé/Skupiny', 'users_done_work' => 'Uživatel ukončil práci', 'user_exists' => 'Uživatel už existuje.', +'user_group' => '', 'user_group_management' => 'Správa uživatelů/skupin', 'user_image' => 'Obrázek', 'user_info' => 'Informace o uživateli', @@ -1568,6 +1614,7 @@ URL: [url]', 'weeks' => 'týdny', 'week_view' => 'Zobrazení týdne', 'workflow' => 'Pracovní postup', +'workflows_involded' => '', 'workflow_actions_management' => 'Správa akcí pracovního postupu', 'workflow_action_in_use' => 'Tato akce je v současnosti používana pracovním postupem.', 'workflow_action_name' => 'Název', diff --git a/languages/de_DE/lang.inc b/languages/de_DE/lang.inc index e20ccd608..9dbf98ea8 100644 --- a/languages/de_DE/lang.inc +++ b/languages/de_DE/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (2420), dgrutsch (22) +// Translators: Admin (2476), dgrutsch (22) $text = array( '2_factor_auth' => '2-Faktor Authentifizierung', @@ -88,6 +88,14 @@ URL: [url]', 'already_subscribed' => 'Bereits aboniert', 'and' => 'und', 'apply' => 'Anwenden', +'approvals_accepted' => '[no_approvals] Freigaben', +'approvals_and_reviews_accepted' => '[no_approvals] Freigaben und [no_reviews] Prüfungen', +'approvals_and_reviews_not_touched' => '[no_approvals] offene Freigaben und [no_reviews] offenen Prüfungen', +'approvals_and_reviews_rejected' => '[no_approvals] abgelehnte Freigaben und [no_reviews] abgelehnte Prüfungen', +'approvals_not_touched' => '[no_approvals] offene Freigaben', +'approvals_rejected' => '[no_approvals] abgelehnte Freigaben', +'approvals_without_group' => 'Freigaben ohne Gruppe', +'approvals_without_user' => 'Freigaben ohne Benutzer', 'approval_deletion_email' => 'Freigabeaufforderung gelöscht', 'approval_deletion_email_body' => 'Freigabeaufforderung gelöscht Dokument: [name] @@ -109,7 +117,7 @@ URL: [url]', 'approval_request_email_subject' => '[sitename]: [name] - Aufforderung zur Freigabe', 'approval_status' => 'Freigabestatus', 'approval_submit_email' => '', -'approval_submit_email_body' => 'Freigabe erteilen +'approval_submit_email_body' => 'Freigabe erteilt Dokument: [name] Version: [version] Elternordner: [folder_path] @@ -277,7 +285,9 @@ URL: [url]', 'confirm_rm_transmittal' => 'Bitte bestätigen Sie as Löschen der Dokumentenliste.', 'confirm_rm_transmittalitem' => 'Löschen bestätigen', 'confirm_rm_user' => 'Möchten Sie wirklich den Benutzer "[username]" löschen?
Beachten Sie, dass diese Operation nicht rückgängig gemacht werden kann.', +'confirm_rm_user_from_processes' => 'Möchten Sie wirklich den Benutzer "[username]" aus allen Prozessen löschen?
Beachten Sie, dass dies möglicherweise in der Freigabe von Dokumenten resultiert, wenn der Benutzer der einzige oder letzte Prüfer ist.', 'confirm_rm_version' => 'Wollen Sie die Version [version] des Dokumentes "[documentname]" wirklich löschen?
Achtung: Dieser Vorgang kann nicht rückgängig gemacht werden.', +'confirm_transfer_objects' => 'Möchten Sie wirklich die Dokumente, Ordner, etc. des Benutzer "[username]" übertragen?
Beachten Sie, dass diese Operation nicht rückgängig gemacht werden kann.', 'confirm_update_transmittalitem' => 'Aktualisierung bestätigen', 'content' => 'Inhalt', 'continue' => 'fortführen', @@ -326,6 +336,7 @@ URL: [url]', 'documents_user_reception' => 'Dokumente mit Empfangsbestätigung', 'documents_user_rejected' => 'Abgelehnte Dokumente', 'documents_user_requiring_attention' => 'Diese Dokumente sollte ich mal nachsehen', +'documents_with_notification' => 'Dokumente unter Beobachtung', 'document_already_checkedout' => 'Dieses Dokument ist bereits ausgecheckt', 'document_already_locked' => 'Dieses Dokument ist bereits gesperrt', 'document_comment_changed_email' => 'Kommentar geändert', @@ -499,6 +510,7 @@ URL: [url]', 'folder' => 'Ordner', 'folders' => 'Verzeichnisse', 'folders_and_documents_statistic' => 'Ordner- und Dokumentenübersicht', +'folders_with_notification' => 'Ordner unter Beobachtung', 'folder_comment_changed_email' => 'Kommentar geändert', 'folder_comment_changed_email_body' => 'Kommentar geändert Ordner: [name] @@ -627,6 +639,7 @@ URL: [url]', 'js_no_approval_group' => 'Wählen Sie bitte eine Freigabe-Gruppe aus', 'js_no_approval_status' => 'Wählen Sie bitte einen Freigabe-Status aus', 'js_no_comment' => 'Geben Sie einen Kommentar an', +'js_no_currentpwd' => 'Bitte das aktuelle Passwort eintragen', 'js_no_email' => 'Geben Sie eine Email-Adresse an', 'js_no_file' => 'Bitte wählen Sie eine Datei', 'js_no_keywords' => 'Geben Sie einige Stichwörter an', @@ -691,6 +704,7 @@ URL: [url]', 'march' => 'März', 'max_upload_size' => 'Maximale Dateigröße', 'may' => 'Mai', +'menu_dropfolder' => 'Ablageordner', 'mimetype' => 'Mime-Type', 'minutes' => 'Minuten', 'misc' => 'Sonstiges', @@ -841,7 +855,9 @@ Sollen Sie danach immer noch Problem bei der Anmeldung haben, dann kontaktieren 'password_strength_insuffient' => 'Ungenügend starkes Passwort', 'password_wrong' => 'Falsches Passwort', 'pending_approvals' => 'Ausstehende Freigaben', +'pending_receipt' => 'Ausstehende Empfangsbestätigungen', 'pending_reviews' => 'Ausstehende Prüfungen', +'pending_revision' => 'Ausstehende Wiederholungsprüfungen', 'pending_workflows' => 'Ausstehende Workflows', 'personal_default_keywords' => 'Persönliche Stichwortlisten', 'pl_PL' => 'Polnisch', @@ -854,11 +870,18 @@ Sollen Sie danach immer noch Problem bei der Anmeldung haben, dann kontaktieren 'preview_plain' => 'Text', 'previous_state' => 'Voriger Status', 'previous_versions' => 'Vorhergehende Versionen', +'process' => 'Prozess', +'process_without_user_group' => 'Prozesse ohne Benutzer/Gruppe', 'pt_BR' => 'Portugiesisch (BR)', 'quota' => 'Quota', 'quota_exceeded' => 'Ihr maximal verfügbarer Plattenplatz wurde um [bytes] überschritten.', 'quota_is_disabled' => 'Quota-Unterstützung ist zur Zeit ausgeschaltet. Benutzer-Quota werden ignoriert bis Quota-Unterstützung in den Einstellungen eingeschaltet wird.', 'quota_warning' => 'Ihr maximal verfügbarer Plattenplatz wurde um [bytes] überschritten. Bitte löschen Sie Dokumente oder ältere Versionen.', +'receipts_accepted' => '[no_receipts] Empfangsbestätigungen', +'receipts_not_touched' => '[no_receipts] offene Empfangsbestätigungen', +'receipts_rejected' => '[no_receipts] abgelehnte Empfangsbestätigungen', +'receipts_without_group' => 'Empfangsbestätigungen ohne Gruppe', +'receipts_without_user' => 'Empfangsbestätigungen ohne Benutzer', 'receipt_deletion_email_body' => 'Benutzer von Liste der Empfänger gelöscht Dokument: [name] Version: [version] @@ -896,7 +919,7 @@ URL: [url]', 'removed_file_email_subject' => '[sitename]: [document] - Anhang gelöscht', 'removed_recipient' => 'ist von der Empfängerliste entfernt worden', 'removed_reviewer' => 'ist von der Prüfer-Liste entfernt worden.', -'removed_revispr' => 'ist von der Liste der Wiederholungsprüfer entfernt worden.', +'removed_revisor' => 'ist von der Liste der Wiederholungsprüfer entfernt worden.', 'removed_workflow_email_body' => 'Workflow von Dokumentenversion entfernt Dokument: [name] Version: [version] @@ -935,6 +958,11 @@ URL: [url]', 'reviewers' => 'Prüfer', 'reviewer_already_assigned' => 'Prüfer bereits zugewiesen', 'reviewer_already_removed' => 'Prüfer wurde bereits aus dem Prüfvorgang entfernt oder hat die Prüfung bereits abgeschlossen', +'reviews_accepted' => '[no_reviews] Prüfungen', +'reviews_not_touched' => '[no_reviews] offene Prüfungen', +'reviews_rejected' => '[no_reviews] abgelehnte Prüfungen', +'reviews_without_group' => 'Prüfungen ohne Gruppe', +'reviews_without_user' => 'Prüfungen ohne Benutzer', 'review_deletion_email' => 'Prüfungsaufforderung gelöscht', 'review_deletion_email_body' => 'Prüfungsaufforderung gelöscht Dokument: [name] @@ -969,6 +997,12 @@ URL: [url]', 'review_update_failed' => 'Störung bei Aktualisierung des Prüfstatus. Aktualisierung gescheitert.', 'revise_document' => 'Dokument überprüfen', 'revise_document_on' => 'Nächste Überprüfung des Dokuments am [date]', +'revisions_accepted' => '[no_revisions] Wiederholungsprüfungen', +'revisions_not_touched' => '[no_revisions] offene Wiederholungspüfungen', +'revisions_pending' => '[no_revisions] zukünftige Wiederholungsprüfungen', +'revisions_rejected' => '[no_revisions] abgelehnte Wiederholungsprüfungen', +'revisions_without_group' => 'Wiederholungsprüfungen ohne Gruppe', +'revisions_without_user' => 'Wiederholungsprüfungen ohne Benutzer', 'revision_date' => 'Datum der Wiederholungsprüfung', 'revision_log' => 'Protokoll der erneuten Prüfung', 'revision_request_email_body' => 'Aufforderung zur Wiederholungsprüfung @@ -979,7 +1013,7 @@ Benutzer: [username] URL: [url]', 'revision_request_email_subject' => '[sitename]: [name] - Aufforderung zur Wiederholungsprüfung', 'revision_status' => 'Status', -'revision_submit_email_body' => 'Erneute Freigabe erteilen +'revision_submit_email_body' => 'Erneute Freigabe erteilt Dokument: [name] Version: [version] Elternordner: [folder_path] @@ -1014,7 +1048,8 @@ URL: [url]', 'rm_role' => 'Diese Rolle löschen', 'rm_transmittal' => 'Dokumentenliste entfernen', 'rm_transmittalitem' => 'Eintrag löschen', -'rm_user' => 'Diesen Benutzer löschen', +'rm_user' => 'Benutzer löschen', +'rm_user_from_processes' => 'Benutzer aus Prozessen löschen', 'rm_version' => 'Version löschen', 'rm_workflow' => 'Lösche Workflow', 'rm_workflow_action' => 'Lösche Workflow-Aktion', @@ -1157,7 +1192,7 @@ URL: [url]', 'settings_dropFolderDir' => 'Verzeichnis für Ablageordner', 'settings_dropFolderDir_desc' => 'Dieses Verzeichnis kann dazu benutzt werden Dokumente auf dem Server abzulegen und von dort zu importieren anstatt sie über den Browser hochzuladen. Das Verzeichnis muss ein Unterverzeichnis mit dem Login-Namen des angemeldeten Benutzers beinhalten.', 'settings_Edition' => 'Funktions-Einstellungen', -'settings_editOnlineFileTypes' => 'Dateitypen für Online-Editieren:', +'settings_editOnlineFileTypes' => 'Dateitypen für Online-Editieren', 'settings_editOnlineFileTypes_desc' => 'Dateien mit den angegebenen Endungen können Online editiert werden (benutzen Sie ausschließlich Kleinbuchstaben).', 'settings_enable2FactorAuthentication' => '2-Faktor Authentifizierung einschalten', 'settings_enable2FactorAuthentication_desc' => 'Schaltet die 2-Faktor Authentifizierung ein, welche den Google Authenticator auf dem Mobiltelefon erfordert.', @@ -1173,6 +1208,8 @@ URL: [url]', 'settings_enableClipboard_desc' => 'Schaltet die Zwischenablage auf der \'View Folder\' Seite ein/aus', 'settings_enableConverting' => 'Dokumentenkonvertierung einschalten', 'settings_enableConverting_desc' => 'Ein/Auschalten der automatischen Konvertierung von Dokumenten', +'settings_enableDropFolderList' => 'Liste der Dateien im Ablageordner im Menü', +'settings_enableDropFolderList_desc' => '', 'settings_enableDropUpload' => 'Schnelles Hochladen einschalten', 'settings_enableDropUpload_desc' => 'Ein/Ausschalten des Bereichs auf der \'View Folder\' Seite zum Hochladen von Dateien per Drag&Drop.', 'settings_enableDuplicateDocNames' => 'Erlaube doppelte Dokumentennamen', @@ -1215,7 +1252,7 @@ URL: [url]', 'settings_enableRevisionWorkflow_desc' => 'Anwählen, um den Workflow der Wiederholungsprüfung von Dokumenten nach einer einstellbaren Zeit zu ermöglichen.', 'settings_enableSelfRevApp' => 'Erlaube Prüfung/Freigabe durch angemeldeten Benutzer', 'settings_enableSelfRevApp_desc' => 'Anwählen, um den aktuell angemeldeten Benutzer in der Liste der Prüfer/Freigeber und für Workflow-Aktionen auswählbar zu machen.', -'settings_enableSessionList' => 'Liste angemeldeter Benutzer einschalten', +'settings_enableSessionList' => 'Liste angemeldeter Benutzer im Menü', 'settings_enableSessionList_desc' => 'Schaltet die Liste der zur Zeit angemeldeten Benutzer im Menu ein/aus.', 'settings_enableThemeSelector' => 'Auswahl des Themas', 'settings_enableThemeSelector_desc' => 'Schaltet das Auswahlmenü für die Themenauswahl in der Anmeldemaske ein oder aus.', @@ -1450,12 +1487,15 @@ URL: [url]', 'splash_rm_role' => 'Rolle gelöscht', 'splash_rm_transmittal' => 'Dokumentenliste gelöscht', 'splash_rm_user' => 'Benutzer gelöscht', +'splash_rm_user_processes' => 'Benutzer aus allen Prozessen gelöscht', 'splash_saved_file' => 'Version gespeichert', +'splash_save_user_data' => 'Benutzerdaten gespeichert', 'splash_send_download_link' => 'Download-Link per E-Mail verschickt.', 'splash_settings_saved' => 'Einstellungen gesichert', 'splash_substituted_user' => 'Benutzer gewechselt', 'splash_switched_back_user' => 'Zum ursprünglichen Benutzer zurückgekehrt', 'splash_toogle_group_manager' => 'Gruppenverwalter gewechselt', +'splash_transfer_objects' => 'Objekte übertragen', 'state_and_next_state' => 'Status/Nächster Status', 'statistic' => 'Statistik', 'status' => 'Status', @@ -1524,11 +1564,15 @@ URL: [url]', 'timeline_skip_status_change_1' => 'bevorstehende Freigabe', 'timeline_skip_status_change_2' => 'freigegeben', 'timeline_skip_status_change_3' => 'im Workflow', +'timeline_skip_status_change_4' => 'In Revision', +'timeline_skip_status_change_5' => 'Entwurf', 'timeline_status_change' => 'Version [version]: [status]', 'to' => 'bis', 'toggle_manager' => 'Managerstatus wechseln', 'toggle_qrcode' => 'Zeige/verberge QR-Code', 'to_before_from' => 'Endedatum darf nicht vor dem Startdatum liegen', +'transfer_objects' => 'Objekte übertragen', +'transfer_objects_to_user' => 'Neuer Eigentümer', 'transition_triggered_email' => 'Workflow transition triggered', 'transition_triggered_email_body' => 'Workflow transition triggered Document: [name] @@ -1587,10 +1631,12 @@ URL: [url]', 'uploading_zerosize' => 'Versuch eine leere Datei hochzuladen. Vorgang wird abgebrochen.', 'used_discspace' => 'Verbrauchter Speicherplatz', 'user' => 'Benutzer', +'userid_groupid' => 'Benutzer-ID/Gruppen-ID', 'users' => 'Benutzer', 'users_and_groups' => 'Benutzer/Gruppen', 'users_done_work' => 'Bereits aktive Benutzer', 'user_exists' => 'Benutzer besteht bereits.', +'user_group' => 'Benutzer/Gruppe', 'user_group_management' => 'Benutzer-/Gruppenmanagement', 'user_image' => 'Bild', 'user_info' => 'Benutzerinformation', @@ -1624,6 +1670,7 @@ URL: [url]', 'weeks' => 'Wochen', 'week_view' => 'Wochenansicht', 'workflow' => 'Workflow', +'workflows_involded' => 'Beteiligt an Workflow', 'workflow_actions_management' => 'Workflow-Aktions-Management', 'workflow_action_in_use' => 'Diese Aktion wird zur Zeit von Workflows benutzt', 'workflow_action_name' => 'Name', diff --git a/languages/el_GR/lang.inc b/languages/el_GR/lang.inc index 12382af23..6977be8ae 100644 --- a/languages/el_GR/lang.inc +++ b/languages/el_GR/lang.inc @@ -84,6 +84,14 @@ $text = array( 'already_subscribed' => '', 'and' => 'και', 'apply' => 'Apply', +'approvals_accepted' => '', +'approvals_and_reviews_accepted' => '', +'approvals_and_reviews_not_touched' => '', +'approvals_and_reviews_rejected' => '', +'approvals_not_touched' => '', +'approvals_rejected' => '', +'approvals_without_group' => '', +'approvals_without_user' => '', 'approval_deletion_email' => '', 'approval_deletion_email_body' => '', 'approval_deletion_email_subject' => '', @@ -250,7 +258,9 @@ $text = array( 'confirm_rm_transmittal' => '', 'confirm_rm_transmittalitem' => '', 'confirm_rm_user' => '', +'confirm_rm_user_from_processes' => '', 'confirm_rm_version' => '', +'confirm_transfer_objects' => '', 'confirm_update_transmittalitem' => '', 'content' => 'Περιεχόμενο', 'continue' => '', @@ -299,6 +309,7 @@ $text = array( 'documents_user_reception' => '', 'documents_user_rejected' => '', 'documents_user_requiring_attention' => '', +'documents_with_notification' => '', 'document_already_checkedout' => '', 'document_already_locked' => '', 'document_comment_changed_email' => '', @@ -432,6 +443,7 @@ $text = array( 'folder' => 'Φάκελος', 'folders' => 'Φάκελοι', 'folders_and_documents_statistic' => '', +'folders_with_notification' => '', 'folder_comment_changed_email' => '', 'folder_comment_changed_email_body' => '', 'folder_comment_changed_email_subject' => '', @@ -540,6 +552,7 @@ $text = array( 'js_no_approval_group' => '', 'js_no_approval_status' => '', 'js_no_comment' => '', +'js_no_currentpwd' => '', 'js_no_email' => '', 'js_no_file' => '', 'js_no_keywords' => '', @@ -604,6 +617,7 @@ $text = array( 'march' => 'Μάρτιος', 'max_upload_size' => '', 'may' => 'Μάϊος', +'menu_dropfolder' => '', 'mimetype' => '', 'minutes' => 'λεπτά', 'misc' => 'Διάφορα', @@ -728,7 +742,9 @@ URL: [url]', 'password_strength_insuffient' => '', 'password_wrong' => '', 'pending_approvals' => '', +'pending_receipt' => '', 'pending_reviews' => '', +'pending_revision' => '', 'pending_workflows' => '', 'personal_default_keywords' => '', 'pl_PL' => '', @@ -741,11 +757,18 @@ URL: [url]', 'preview_plain' => '', 'previous_state' => '', 'previous_versions' => '', +'process' => '', +'process_without_user_group' => '', 'pt_BR' => '', 'quota' => '', 'quota_exceeded' => '', 'quota_is_disabled' => '', 'quota_warning' => '', +'receipts_accepted' => '', +'receipts_not_touched' => '', +'receipts_rejected' => '', +'receipts_without_group' => '', +'receipts_without_user' => '', 'receipt_deletion_email_body' => '', 'receipt_deletion_email_subject' => '', 'receipt_log' => '', @@ -769,7 +792,7 @@ URL: [url]', 'removed_file_email_subject' => '', 'removed_recipient' => '', 'removed_reviewer' => '', -'removed_revispr' => '', +'removed_revisor' => '', 'removed_workflow_email_body' => '', 'removed_workflow_email_subject' => '', 'removeFolderFromDropFolder' => '', @@ -788,6 +811,11 @@ URL: [url]', 'reviewers' => '', 'reviewer_already_assigned' => '', 'reviewer_already_removed' => '', +'reviews_accepted' => '', +'reviews_not_touched' => '', +'reviews_rejected' => '', +'reviews_without_group' => '', +'reviews_without_user' => '', 'review_deletion_email' => '', 'review_deletion_email_body' => '', 'review_deletion_email_subject' => '', @@ -805,6 +833,12 @@ URL: [url]', 'review_update_failed' => '', 'revise_document' => '', 'revise_document_on' => '', +'revisions_accepted' => '', +'revisions_not_touched' => '', +'revisions_pending' => '', +'revisions_rejected' => '', +'revisions_without_group' => '', +'revisions_without_user' => '', 'revision_date' => '', 'revision_log' => '', 'revision_request_email_body' => '', @@ -833,6 +867,7 @@ URL: [url]', 'rm_transmittal' => '', 'rm_transmittalitem' => '', 'rm_user' => 'Διαγραφή Χρήστη', +'rm_user_from_processes' => '', 'rm_version' => '', 'rm_workflow' => '', 'rm_workflow_action' => '', @@ -984,6 +1019,8 @@ URL: [url]', 'settings_enableClipboard_desc' => '', 'settings_enableConverting' => '', 'settings_enableConverting_desc' => '', +'settings_enableDropFolderList' => '', +'settings_enableDropFolderList_desc' => '', 'settings_enableDropUpload' => '', 'settings_enableDropUpload_desc' => '', 'settings_enableDuplicateDocNames' => '', @@ -1261,12 +1298,15 @@ URL: [url]', 'splash_rm_role' => '', 'splash_rm_transmittal' => '', 'splash_rm_user' => '', +'splash_rm_user_processes' => '', 'splash_saved_file' => '', +'splash_save_user_data' => '', 'splash_send_download_link' => '', 'splash_settings_saved' => '', 'splash_substituted_user' => '', 'splash_switched_back_user' => '', 'splash_toogle_group_manager' => '', +'splash_transfer_objects' => '', 'state_and_next_state' => '', 'statistic' => '', 'status' => '', @@ -1335,11 +1375,15 @@ URL: [url]', 'timeline_skip_status_change_1' => '', 'timeline_skip_status_change_2' => '', 'timeline_skip_status_change_3' => '', +'timeline_skip_status_change_4' => '', +'timeline_skip_status_change_5' => '', 'timeline_status_change' => '', 'to' => 'Προς', 'toggle_manager' => '', 'toggle_qrcode' => '', 'to_before_from' => '', +'transfer_objects' => '', +'transfer_objects_to_user' => '', 'transition_triggered_email' => '', 'transition_triggered_email_body' => '', 'transition_triggered_email_subject' => '', @@ -1389,10 +1433,12 @@ URL: [url]', 'uploading_zerosize' => '', 'used_discspace' => 'Χώρος', 'user' => 'Χρήστης', +'userid_groupid' => '', 'users' => 'Χρήστες', 'users_and_groups' => 'Χρήστες/Ομάδες', 'users_done_work' => '', 'user_exists' => 'Ο Χρήστης υπάρχει.', +'user_group' => '', 'user_group_management' => 'Διαχείριση Χρηστών/Ομάδων', 'user_image' => 'Εικόνα', 'user_info' => 'Πληροφορίες Χρήστη', @@ -1421,6 +1467,7 @@ URL: [url]', 'weeks' => 'εβδομάδες', 'week_view' => '', 'workflow' => 'Ροή Εργασίας', +'workflows_involded' => '', 'workflow_actions_management' => '', 'workflow_action_in_use' => '', 'workflow_action_name' => 'Όνομα', diff --git a/languages/en_GB/lang.inc b/languages/en_GB/lang.inc index 659aca8f6..474d10424 100644 --- a/languages/en_GB/lang.inc +++ b/languages/en_GB/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (1545), dgrutsch (9), netixw (14) +// Translators: Admin (1603), dgrutsch (9), netixw (14) $text = array( '2_factor_auth' => '2-factor authentication', @@ -88,6 +88,14 @@ URL: [url]', 'already_subscribed' => 'Already subscribed', 'and' => 'and', 'apply' => 'Apply', +'approvals_accepted' => '[no_approvals] approvals already accepted', +'approvals_and_reviews_accepted' => '[no_approvals] approvals and [no_reviews] reviews already accepted', +'approvals_and_reviews_not_touched' => '[no_approvals] approvals and [no_reviews] reviews not being touched', +'approvals_and_reviews_rejected' => '[no_approvals] approvals and [no_reviews] reviews already rejected', +'approvals_not_touched' => '[no_approvals] approvals not being touched', +'approvals_rejected' => '[no_approvals] approvals already rejected', +'approvals_without_group' => 'Approvals without group', +'approvals_without_user' => 'Approvals without user', 'approval_deletion_email' => 'Approval request deleted', 'approval_deletion_email_body' => 'Approval request deleted Document: [name] @@ -241,7 +249,7 @@ URL: [url]', 'choose_attrdefgroup' => 'Choose attribute group', 'choose_category' => 'Please choose', 'choose_group' => 'Choose group', -'choose_role' => '--Choose role--', +'choose_role' => 'Choose role', 'choose_target_category' => 'Choose category', 'choose_target_document' => 'Choose document', 'choose_target_file' => 'Choose file', @@ -277,7 +285,9 @@ URL: [url]', 'confirm_rm_transmittal' => 'Please confirm the deletion of the transmittal.', 'confirm_rm_transmittalitem' => 'Confirm removal', 'confirm_rm_user' => 'Do you really want to remove the user "[username]"?
Be careful: This action cannot be undone.', +'confirm_rm_user_from_processes' => 'Do you really want to remove the user "[username]" from all processes?
Be careful: This action can lead to the release of documents if the user was the only or last approver.', 'confirm_rm_version' => 'Do you really want to remove version [version] of document "[documentname]"?
Be careful: This action cannot be undone.', +'confirm_transfer_objects' => 'Do you really want to transfer the documents, folders, etc. of the user "[username]"?
Be careful: This action cannot be undone.', 'confirm_update_transmittalitem' => 'Confirm update', 'content' => 'Content', 'continue' => 'Continue', @@ -326,6 +336,7 @@ URL: [url]', 'documents_user_reception' => 'Documents awaiting reception', 'documents_user_rejected' => 'Rejected documents', 'documents_user_requiring_attention' => 'Documents owned by you that require attention', +'documents_with_notification' => 'Documents with notification', 'document_already_checkedout' => 'This document is already checked out', 'document_already_locked' => 'This document is already locked', 'document_comment_changed_email' => 'Comment changed', @@ -500,6 +511,7 @@ URL: [url]', 'folder' => 'Folder', 'folders' => 'Folders', 'folders_and_documents_statistic' => 'Contents overview', +'folders_with_notification' => 'Folders with notification', 'folder_comment_changed_email' => 'Comment changed', 'folder_comment_changed_email_body' => 'Comment changed Folder: [name] @@ -628,6 +640,7 @@ URL: [url]', 'js_no_approval_group' => 'Please select a approval group', 'js_no_approval_status' => 'Please select the approval status', 'js_no_comment' => 'There is no comment', +'js_no_currentpwd' => 'Please enter your current password', 'js_no_email' => 'Type in your Email-address', 'js_no_file' => 'Please select a file', 'js_no_keywords' => 'Specify some keywords', @@ -692,6 +705,7 @@ URL: [url]', 'march' => 'March', 'max_upload_size' => 'Maximum upload size', 'may' => 'May', +'menu_dropfolder' => 'Drop folder', 'mimetype' => 'Mime type', 'minutes' => 'minutes', 'misc' => 'Misc', @@ -843,7 +857,9 @@ If you have still problems to login, then please contact your administrator.', 'password_strength_insuffient' => 'Insufficient password strength', 'password_wrong' => 'Wrong password', 'pending_approvals' => 'Pending approvals', +'pending_receipt' => 'Pending receipts', 'pending_reviews' => 'Pending reviews', +'pending_revision' => 'Pending revisions', 'pending_workflows' => 'Pending workflows', 'personal_default_keywords' => 'Personal keywordlists', 'pl_PL' => 'Polish', @@ -856,11 +872,18 @@ If you have still problems to login, then please contact your administrator.', 'preview_plain' => 'Text', 'previous_state' => 'Previous state', 'previous_versions' => 'Previous versions', +'process' => 'Process', +'process_without_user_group' => 'Processes without user/group', 'pt_BR' => 'Portugese (BR)', 'quota' => 'Quota', 'quota_exceeded' => 'Your disk quota is exceeded by [bytes].', 'quota_is_disabled' => 'Quota support is currently disabled in the settings. Setting a user quota will have no effect until it is enabled again.', 'quota_warning' => 'Your maximum disc usage is exceeded by [bytes]. Please remove documents or previous versions.', +'receipts_accepted' => '[no_receipts] receipts already accepted', +'receipts_not_touched' => '[no_receipts] receipts not being touched', +'receipts_rejected' => '[no_receipts] receipts already rejected', +'receipts_without_group' => 'Receipts without group', +'receipts_without_user' => 'Receipts without user', 'receipt_deletion_email_body' => 'User has been removed from the list of recipients Document: [name] Version: [version] @@ -898,7 +921,7 @@ URL: [url]', 'removed_file_email_subject' => '[sitename]: [document] - Removed attachment', 'removed_recipient' => 'has been removed from the list of recipients.', 'removed_reviewer' => 'has been removed from the list of reviewers.', -'removed_revispr' => 'has been removed from the list of revisors.', +'removed_revisor' => 'has been removed from the list of revisors.', 'removed_workflow_email_body' => 'Removed workflow from document version Document: [name] Version: [version] @@ -937,6 +960,11 @@ URL: [url]', 'reviewers' => 'Reviewers', 'reviewer_already_assigned' => 'User is already assigned as a reviewer', 'reviewer_already_removed' => 'Reviewer has already been removed from review process or has already submitted a review', +'reviews_accepted' => '[no_reviews] reviews already accepted', +'reviews_not_touched' => '[no_reviews] reviews not being touched', +'reviews_rejected' => '[no_reviews] reviews already rejected', +'reviews_without_group' => 'Reviews without group', +'reviews_without_user' => 'Reviews without user', 'review_deletion_email' => 'Review request deleted', 'review_deletion_email_body' => 'Review request deleted Document: [name] @@ -971,6 +999,12 @@ URL: [url]', 'review_update_failed' => 'Error updating review status. Update failed.', 'revise_document' => 'Revise document', 'revise_document_on' => 'Next revision of document version on [date]', +'revisions_accepted' => '[no_revisions] revisions already accepted', +'revisions_not_touched' => '[no_revisions] revisions not being touched', +'revisions_pending' => '[no_revisions] revisions due in future', +'revisions_rejected' => '[no_revisions] revisions already rejected', +'revisions_without_group' => 'Revisions without group', +'revisions_without_user' => 'Revisions without user', 'revision_date' => 'Date of revision', 'revision_log' => 'Revision log', 'revision_request_email_body' => 'Revision request @@ -1009,7 +1043,8 @@ URL: [url]', 'rm_role' => 'Delete this role', 'rm_transmittal' => 'Remove transmittal', 'rm_transmittalitem' => 'Remove item', -'rm_user' => 'Remove this user', +'rm_user' => 'Remove user', +'rm_user_from_processes' => 'Remove user from processes', 'rm_version' => 'Remove version', 'rm_workflow' => 'Remove Workflow', 'rm_workflow_action' => 'Remove Workflow Action', @@ -1152,7 +1187,7 @@ URL: [url]', 'settings_dropFolderDir' => 'Directory for drop folder', 'settings_dropFolderDir_desc' => 'This directory can be used for dropping files on the server\'s file system and importing them from there instead of uploading via the browser. The directory must contain a sub directory for each user who is allowed to import files this way.', 'settings_Edition' => 'Edition settings', -'settings_editOnlineFileTypes' => 'Edit Online File Types:', +'settings_editOnlineFileTypes' => 'Edit Online File Types', 'settings_editOnlineFileTypes_desc' => 'Files with one of the following endings can be edited online (USE ONLY LOWER CASE CHARACTERS)', 'settings_enable2FactorAuthentication' => 'Enable 2-factor authentication', 'settings_enable2FactorAuthentication_desc' => 'Enable/disable 2 factor authentication. The users will need the Google Authenticator on its mobile phone.', @@ -1168,6 +1203,8 @@ URL: [url]', 'settings_enableClipboard_desc' => 'Enable/disable the clipboard on the \'View Folder\' page', 'settings_enableConverting' => 'Enable Converting', 'settings_enableConverting_desc' => 'Enable/disable converting of files', +'settings_enableDropFolderList' => 'Enable list of files in drop folder in menu', +'settings_enableDropFolderList_desc' => '', 'settings_enableDropUpload' => 'Enable Fast Upload', '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', @@ -1210,7 +1247,7 @@ URL: [url]', 'settings_enableRevisionWorkflow_desc' => 'Enable, to be able to run the workflow for revising a document after a given period of time.', 'settings_enableSelfRevApp' => 'Allow review/approval for logged in user', 'settings_enableSelfRevApp_desc' => 'Enable this if you want the currently logged in user to be listed as reviewers/approvers and for workflow transitions.', -'settings_enableSessionList' => 'Enable list of users online', +'settings_enableSessionList' => 'Enable list of users online in menu', 'settings_enableSessionList_desc' => 'Enable list of currently logged in users in menu.', 'settings_enableThemeSelector' => 'Theme selection', 'settings_enableThemeSelector_desc' => 'Turns on/off the theme selector on the login page.', @@ -1445,12 +1482,15 @@ URL: [url]', 'splash_rm_role' => 'Role deleted', 'splash_rm_transmittal' => 'Transmittal deleted', 'splash_rm_user' => 'User removed', +'splash_rm_user_processes' => 'User removed from all processes', 'splash_saved_file' => 'Version saved', +'splash_save_user_data' => 'User data saved', 'splash_send_download_link' => 'Download link sent by email.', 'splash_settings_saved' => 'Settings saved', 'splash_substituted_user' => 'Substituted user', 'splash_switched_back_user' => 'Switched back to original user', 'splash_toogle_group_manager' => 'Group manager toogled', +'splash_transfer_objects' => 'Objects transfered', 'state_and_next_state' => 'State/Next state', 'statistic' => 'Statistic', 'status' => 'Status', @@ -1468,7 +1508,7 @@ URL: [url]', 'status_reviewer_rejected' => 'Draft rejected', 'status_reviewer_removed' => 'Reviewer removed from process', 'status_revised' => 'revised', -'status_revision_rejected' => 'rejected', +'status_revision_rejected' => 'Rejected', 'status_revision_sleeping' => 'pending', 'status_revisor_removed' => 'Revisor removed from list', 'status_unknown' => 'Unknown', @@ -1518,12 +1558,16 @@ URL: [url]', 'timeline_skip_status_change_0' => 'pending review', 'timeline_skip_status_change_1' => 'pending approval', 'timeline_skip_status_change_2' => 'released', -'timeline_skip_status_change_3' => 'within workflow', +'timeline_skip_status_change_3' => 'in workflow', +'timeline_skip_status_change_4' => 'in revision', +'timeline_skip_status_change_5' => 'draft', 'timeline_status_change' => 'Version [version]: [status]', 'to' => 'To', 'toggle_manager' => 'Toggle manager', 'toggle_qrcode' => 'Show/hide QR code', 'to_before_from' => 'End date may not be before start date', +'transfer_objects' => 'Transfer objects', +'transfer_objects_to_user' => 'New owner', 'transition_triggered_email' => 'Workflow transition triggered', 'transition_triggered_email_body' => 'Workflow transition triggered Document: [name] @@ -1582,10 +1626,12 @@ URL: [url]', 'uploading_zerosize' => 'Uploading an empty file. Upload is canceled.', 'used_discspace' => 'Used disk space', 'user' => 'User', +'userid_groupid' => 'User id/Group id', 'users' => 'Users', 'users_and_groups' => 'Users/Groups', 'users_done_work' => 'Users done work', 'user_exists' => 'User already exists.', +'user_group' => 'User/Group', 'user_group_management' => 'Users/Groups management', 'user_image' => 'Image', 'user_info' => 'User Information', @@ -1619,6 +1665,7 @@ URL: [url]', 'weeks' => 'weeks', 'week_view' => 'Week view', 'workflow' => 'Workflow', +'workflows_involded' => 'Involved in workflow', 'workflow_actions_management' => 'Workflow actions management', 'workflow_action_in_use' => 'This action is currently used by workflows.', 'workflow_action_name' => 'Name', diff --git a/languages/es_ES/lang.inc b/languages/es_ES/lang.inc index a10de4468..638044011 100644 --- a/languages/es_ES/lang.inc +++ b/languages/es_ES/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: acabello (20), Admin (1021), angel (123), francisco (2), jaimem (14) +// Translators: acabello (20), Admin (1022), angel (123), francisco (2), jaimem (14) $text = array( '2_factor_auth' => '', @@ -88,6 +88,14 @@ URL: [url]', 'already_subscribed' => 'Ya está suscrito', 'and' => 'y', 'apply' => 'Aplicar', +'approvals_accepted' => '', +'approvals_and_reviews_accepted' => '', +'approvals_and_reviews_not_touched' => '', +'approvals_and_reviews_rejected' => '', +'approvals_not_touched' => '', +'approvals_rejected' => '', +'approvals_without_group' => '', +'approvals_without_user' => '', 'approval_deletion_email' => 'Petición de aprobación eliminada', 'approval_deletion_email_body' => '', 'approval_deletion_email_subject' => '', @@ -272,7 +280,9 @@ URL: [url]', 'confirm_rm_transmittal' => '', 'confirm_rm_transmittalitem' => '', 'confirm_rm_user' => '¿Desea realmente eliminar el usuario "[username]"?
Atención: Esta acción no se puede deshacer.', +'confirm_rm_user_from_processes' => '', 'confirm_rm_version' => '¿Desea realmente eliminar la versión [version] del documento "[documentname]"?
Atención: esta acción no se puede deshacer.', +'confirm_transfer_objects' => '', 'confirm_update_transmittalitem' => '', 'content' => 'Contenido', 'continue' => 'Continuar', @@ -321,6 +331,7 @@ URL: [url]', 'documents_user_reception' => '', 'documents_user_rejected' => '', 'documents_user_requiring_attention' => 'Documentos de su propiedad que requieren atención', +'documents_with_notification' => '', 'document_already_checkedout' => '', 'document_already_locked' => 'Este documento ya está bloqueado', 'document_comment_changed_email' => 'Comentario modificado', @@ -405,7 +416,7 @@ URL: [url]', 'dump_creation_warning' => 'Con esta operación se creará un volcado a fichero del contenido de la base de datos. Después de la creación del volcado el fichero se guardará en la carpeta de datos de su servidor.', 'dump_list' => 'Ficheros de volcado existentes', 'dump_remove' => 'Eliminar fichero de volcado', -'duplicates' => '', +'duplicates' => 'Duplicados', 'duplicate_content' => 'Contenido duplicado', 'edit' => 'editar', 'edit_attributes' => 'Editar atributos', @@ -488,6 +499,7 @@ URL: [url]', 'folder' => 'Carpeta', 'folders' => 'Carpetas', 'folders_and_documents_statistic' => 'Vista general de contenidos', +'folders_with_notification' => '', 'folder_comment_changed_email' => 'Comentario modificado', 'folder_comment_changed_email_body' => 'Comentario modificado Carpeta: [name] @@ -616,6 +628,7 @@ URL: [url]', 'js_no_approval_group' => 'Por favor, seleccione grupo de aprobación', 'js_no_approval_status' => 'Por favor, seleccione el estado de aprobación', 'js_no_comment' => 'No hay comentarios', +'js_no_currentpwd' => '', 'js_no_email' => 'Escriba su dirección de correo electrónico', 'js_no_file' => 'Por favor, seleccione un archivo', 'js_no_keywords' => 'Especifique palabras clave', @@ -680,6 +693,7 @@ URL: [url]', 'march' => 'Marzo', 'max_upload_size' => 'Tamaño máximo de subida para cada fichero', 'may' => 'Mayo', +'menu_dropfolder' => '', 'mimetype' => 'Tipo Mime', 'minutes' => 'minutos', 'misc' => 'Misc', @@ -831,7 +845,9 @@ Si continua teniendo problemas de acceso, por favor contacte con el administrado 'password_strength_insuffient' => 'Insuficiente Seguridad de la contraseña', 'password_wrong' => 'Contraseña incorrecta', 'pending_approvals' => '', +'pending_receipt' => '', 'pending_reviews' => '', +'pending_revision' => '', 'pending_workflows' => '', 'personal_default_keywords' => 'Listas de palabras clave personales', 'pl_PL' => 'Polaco', @@ -844,11 +860,18 @@ Si continua teniendo problemas de acceso, por favor contacte con el administrado 'preview_plain' => '', 'previous_state' => 'Estado anterior', 'previous_versions' => 'Versiones anteriores', +'process' => '', +'process_without_user_group' => '', 'pt_BR' => 'Portuges (BR)', 'quota' => 'Cuota', 'quota_exceeded' => 'Su cuota de disco se ha excedido en [bytes].', 'quota_is_disabled' => 'La cuota está actualmente deshabilitada en las opciones. Establecer una cuota de usuario no tendrá efecto hasta que sea habilitada de nuevo.', 'quota_warning' => 'El máximo de uso de disco se ha excedido en [bytes]. Por favor eliminar documentos o versiones anteriores.', +'receipts_accepted' => '', +'receipts_not_touched' => '', +'receipts_rejected' => '', +'receipts_without_group' => '', +'receipts_without_user' => '', 'receipt_deletion_email_body' => '', 'receipt_deletion_email_subject' => '', 'receipt_log' => '', @@ -875,7 +898,7 @@ URL: [url]', 'removed_file_email_subject' => '[sitename]: [document] - Eliminar adjunto', 'removed_recipient' => '', 'removed_reviewer' => 'Ha sido eliminado de la lista de revisores.', -'removed_revispr' => '', +'removed_revisor' => '', 'removed_workflow_email_body' => 'Eliminar flujo de trabajo de la versión del documento Documento: [name] Versión: [version] @@ -907,6 +930,11 @@ nURL: [url]', 'reviewers' => 'Revisores', 'reviewer_already_assigned' => 'Ya está asignado como revisor', 'reviewer_already_removed' => 'Ya ha sido eliminado del proceso de revisión o ya ha enviado una revisión', +'reviews_accepted' => '', +'reviews_not_touched' => '', +'reviews_rejected' => '', +'reviews_without_group' => '', +'reviews_without_user' => '', 'review_deletion_email' => 'Petición de revisión eliminada', 'review_deletion_email_body' => '', 'review_deletion_email_subject' => '', @@ -931,6 +959,12 @@ URL: [url]', 'review_update_failed' => 'Error actualizando el estado de la revisión. La actualización ha fallado.', 'revise_document' => '', 'revise_document_on' => '', +'revisions_accepted' => '', +'revisions_not_touched' => '', +'revisions_pending' => '', +'revisions_rejected' => '', +'revisions_without_group' => '', +'revisions_without_user' => '', 'revision_date' => '', 'revision_log' => '', 'revision_request_email_body' => '', @@ -965,6 +999,7 @@ URL: [url]', 'rm_transmittal' => '', 'rm_transmittalitem' => 'Eliminar elemento', 'rm_user' => 'Eliminar este usuario', +'rm_user_from_processes' => '', 'rm_version' => 'Eliminar versión', 'rm_workflow' => 'Eliminar Flujo de Trabajo', 'rm_workflow_action' => 'Eliminar Accion del Flujo de Trabajo', @@ -1123,6 +1158,8 @@ URL: [url]', 'settings_enableClipboard_desc' => 'Habilitar/deshabilitar el portapapeles', 'settings_enableConverting' => 'Habilitar conversión', 'settings_enableConverting_desc' => 'Habilitar/Deshabilitar conversión de ficheros', +'settings_enableDropFolderList' => '', +'settings_enableDropFolderList_desc' => '', 'settings_enableDropUpload' => 'Habilitar Subida Rapida', 'settings_enableDropUpload_desc' => 'Habilite/Deshabilite el área de drop en la pagina \'\'Ver folder\' para subir archivos por Drag&Drop', 'settings_enableDuplicateDocNames' => 'Permite tener nombres de documento duplicados', @@ -1400,12 +1437,15 @@ URL: [url]', 'splash_rm_role' => '', 'splash_rm_transmittal' => '', 'splash_rm_user' => 'Usuario eliminado', +'splash_rm_user_processes' => '', 'splash_saved_file' => '', +'splash_save_user_data' => '', 'splash_send_download_link' => '', 'splash_settings_saved' => 'Configuración guardada', 'splash_substituted_user' => 'Usuario sustituido', 'splash_switched_back_user' => 'Cambió de nuevo al usuario original', 'splash_toogle_group_manager' => 'Administrador de grupo activado', +'splash_transfer_objects' => '', 'state_and_next_state' => 'Estado/Estado siguiente', 'statistic' => 'Estadística', 'status' => 'Estado', @@ -1474,11 +1514,15 @@ URL: [url]', 'timeline_skip_status_change_1' => 'aprovaciones pendientes', 'timeline_skip_status_change_2' => 'versiones', 'timeline_skip_status_change_3' => 'con flujo de trabajo', +'timeline_skip_status_change_4' => '', +'timeline_skip_status_change_5' => '', 'timeline_status_change' => 'Versión [version]: [estado]', 'to' => 'Hasta', 'toggle_manager' => 'Intercambiar mánager', 'toggle_qrcode' => '', 'to_before_from' => 'La fecha de finalización no debe ser anterior a la de inicio', +'transfer_objects' => '', +'transfer_objects_to_user' => '', 'transition_triggered_email' => 'Workflow transition triggered', 'transition_triggered_email_body' => 'Workflow transition triggered Documento: [name] @@ -1537,10 +1581,12 @@ URL: [url]', 'uploading_zerosize' => 'Subiendo un fichero vacío. -Subida cancelada.', 'used_discspace' => 'Espacio de disco utilizado', 'user' => 'Usuario', +'userid_groupid' => '', 'users' => 'Usuarios', 'users_and_groups' => 'Usuarios/Grupos', 'users_done_work' => 'Trabajos realizados por los usuarios', 'user_exists' => 'El usuario ya existe.', +'user_group' => '', 'user_group_management' => 'Gestión de Usuarios/Grupos', 'user_image' => 'Imagen', 'user_info' => 'Información de usuario', @@ -1574,6 +1620,7 @@ URL: [url]', 'weeks' => 'semanas', 'week_view' => 'Vista de la semana', 'workflow' => 'Flujo de Trabajo', +'workflows_involded' => '', 'workflow_actions_management' => 'Gestión de acciones de flujo de trabajo', 'workflow_action_in_use' => 'Esta acción está siendo usada por el flujo de trabajo.', 'workflow_action_name' => 'Nombre', diff --git a/languages/fr_FR/lang.inc b/languages/fr_FR/lang.inc index 7d27f988d..9e3cf67d0 100644 --- a/languages/fr_FR/lang.inc +++ b/languages/fr_FR/lang.inc @@ -88,6 +88,14 @@ URL: [url]', 'already_subscribed' => 'Déjà abonné', 'and' => 'et', 'apply' => 'Appliquer', +'approvals_accepted' => '', +'approvals_and_reviews_accepted' => '', +'approvals_and_reviews_not_touched' => '', +'approvals_and_reviews_rejected' => '', +'approvals_not_touched' => '', +'approvals_rejected' => '', +'approvals_without_group' => '', +'approvals_without_user' => '', 'approval_deletion_email' => 'Demande d\'approbation supprimée', 'approval_deletion_email_body' => 'Demande d\'approbation supprimée Document : [name] @@ -277,7 +285,9 @@ URL: [url]', 'confirm_rm_transmittal' => '', 'confirm_rm_transmittalitem' => '', 'confirm_rm_user' => 'Voulez-vous vraiment supprimer l\'utilisateur "[username]"?
Attention: Cette action ne peut pas être annulée.', +'confirm_rm_user_from_processes' => '', 'confirm_rm_version' => 'Voulez-vous réellement supprimer la [version] du document "[documentname]"?
Attention: Cette action ne peut pas être annulée.', +'confirm_transfer_objects' => '', 'confirm_update_transmittalitem' => '', 'content' => 'Contenu', 'continue' => 'Continuer', @@ -326,6 +336,7 @@ URL: [url]', 'documents_user_reception' => '', 'documents_user_rejected' => 'Documents rejetés', 'documents_user_requiring_attention' => 'Documents à surveiller', +'documents_with_notification' => '', 'document_already_checkedout' => 'Ce document est déjà débloqué', 'document_already_locked' => 'Ce document est déjà verrouillé', 'document_comment_changed_email' => 'Commentaire modifié', @@ -500,6 +511,7 @@ URL : [url]', 'folder' => 'Dossier', 'folders' => 'Dossiers', 'folders_and_documents_statistic' => 'Aperçu du contenu', +'folders_with_notification' => '', 'folder_comment_changed_email' => 'Commentaire changé', 'folder_comment_changed_email_body' => 'Commentaire changé Dossier: [name] @@ -628,6 +640,7 @@ URL: [url]', 'js_no_approval_group' => 'Veuillez sélectionner un groupe d’approbation', 'js_no_approval_status' => 'Veuillez sélectionner le statut d’approbation', 'js_no_comment' => 'Il n\'y a pas de commentaires', +'js_no_currentpwd' => '', 'js_no_email' => 'Saisissez votre adresse e-mail', 'js_no_file' => 'Veuillez sélectionner un fichier', 'js_no_keywords' => 'Spécifiez quelques mots-clés', @@ -692,6 +705,7 @@ URL: [url]', 'march' => 'Mars', 'max_upload_size' => 'Taille maximum de fichier déposé', 'may' => 'Mai', +'menu_dropfolder' => '', 'mimetype' => 'Type MIME', 'minutes' => 'minutes', 'misc' => 'Divers', @@ -841,7 +855,9 @@ En cas de problème persistant, veuillez contacter votre administrateur.', 'password_strength_insuffient' => 'Mot de passe trop faible', 'password_wrong' => 'Mauvais mot de passe', 'pending_approvals' => '', +'pending_receipt' => '', 'pending_reviews' => '', +'pending_revision' => '', 'pending_workflows' => 'Workflows en attente', 'personal_default_keywords' => 'Mots-clés personnels', 'pl_PL' => 'Polonais', @@ -854,11 +870,18 @@ En cas de problème persistant, veuillez contacter votre administrateur.', 'preview_plain' => 'Texte', 'previous_state' => 'État précédent', 'previous_versions' => 'Versions précédentes', +'process' => '', +'process_without_user_group' => '', 'pt_BR' => 'Portuguais (BR)', 'quota' => 'Quota', 'quota_exceeded' => 'Votre quota de disque est dépassé de [bytes].', 'quota_is_disabled' => 'Le support des quotas est actuellement désactivé dans les réglages. Affecter un quota utilisateur n’aura pas d’effet jusqu’à ce qu’il soit de nouveau activé.', 'quota_warning' => 'Votre quota d’espace disque est dépassé de [bytes]. Veuillez supprimer des documents ou d\'anciennes versions.', +'receipts_accepted' => '', +'receipts_not_touched' => '', +'receipts_rejected' => '', +'receipts_without_group' => '', +'receipts_without_user' => '', 'receipt_deletion_email_body' => 'L’utilisateur a été retiré de la liste des destinataires Document : [name] Version : [version] @@ -891,7 +914,7 @@ URL: [url]', 'removed_file_email_subject' => '[sitename]: [document] - Attachement supprimé', 'removed_recipient' => 'a été supprimé de la liste des destinataires.', 'removed_reviewer' => 'a été retiré de la liste des correcteurs.', -'removed_revispr' => '', +'removed_revisor' => '', 'removed_workflow_email_body' => 'Workflow du document supprimé: [name] Version: [version] Workflow: [workflow] @@ -915,6 +938,11 @@ URL: [url]', 'reviewers' => 'Correcteurs', 'reviewer_already_assigned' => 'est déjà déclaré en tant que correcteur', 'reviewer_already_removed' => 'a déjà été retiré du processus de correction ou a déjà soumis une correction', +'reviews_accepted' => '', +'reviews_not_touched' => '', +'reviews_rejected' => '', +'reviews_without_group' => '', +'reviews_without_user' => '', 'review_deletion_email' => 'Demande de correction supprimée', 'review_deletion_email_body' => '', 'review_deletion_email_subject' => '', @@ -939,6 +967,12 @@ URL: [url]', 'review_update_failed' => 'Erreur lors de la mise à jour de la correction. Echec de la mise à jour.', 'revise_document' => '', 'revise_document_on' => '', +'revisions_accepted' => '', +'revisions_not_touched' => '', +'revisions_pending' => '', +'revisions_rejected' => '', +'revisions_without_group' => '', +'revisions_without_user' => '', 'revision_date' => '', 'revision_log' => '', 'revision_request_email_body' => '', @@ -967,6 +1001,7 @@ URL: [url]', 'rm_transmittal' => '', 'rm_transmittalitem' => '', 'rm_user' => 'Supprimer cet utilisateur', +'rm_user_from_processes' => '', 'rm_version' => 'Retirer la version', 'rm_workflow' => 'Supprimer le Workflow', 'rm_workflow_action' => 'Supprimer l\'action du Workflow', @@ -1118,6 +1153,8 @@ URL: [url]', 'settings_enableClipboard_desc' => 'Activer/désactiver le presse-papier', 'settings_enableConverting' => 'Activer conversion des fichiers', 'settings_enableConverting_desc' => 'Activer/Désactiver la conversion des fichiers', +'settings_enableDropFolderList' => '', +'settings_enableDropFolderList_desc' => '', 'settings_enableDropUpload' => 'Activer la publication rapide de documents', 'settings_enableDropUpload_desc' => 'Activer/Désactiver la zone de glisser/ déposer sur la page d\'un dossier.', 'settings_enableDuplicateDocNames' => 'Autoriser plusieurs documents de même nom', @@ -1395,12 +1432,15 @@ URL: [url]', 'splash_rm_role' => '', 'splash_rm_transmittal' => '', 'splash_rm_user' => 'Utilisateur supprimé', +'splash_rm_user_processes' => '', 'splash_saved_file' => '', +'splash_save_user_data' => '', 'splash_send_download_link' => 'Lien de téléchargement envoyé par e-mail', 'splash_settings_saved' => 'Configuration sauvegardée', 'splash_substituted_user' => 'Utilisateur de substitution', 'splash_switched_back_user' => 'Revenu à l\'utilisateur initial', 'splash_toogle_group_manager' => 'Responsable de groupe changé', +'splash_transfer_objects' => '', 'state_and_next_state' => 'État initial/suivant', 'statistic' => 'Statistiques', 'status' => 'Statut', @@ -1469,11 +1509,15 @@ URL: [url]', 'timeline_skip_status_change_1' => 'en attente d\'approbation', 'timeline_skip_status_change_2' => 'publié', 'timeline_skip_status_change_3' => 'encore dans un workflow', +'timeline_skip_status_change_4' => '', +'timeline_skip_status_change_5' => '', 'timeline_status_change' => 'Version [version] : [status]', 'to' => 'Au', 'toggle_manager' => 'Basculer \'Responsable\'', 'toggle_qrcode' => 'Afficher/masquer le QR code', 'to_before_from' => '', +'transfer_objects' => '', +'transfer_objects_to_user' => '', 'transition_triggered_email' => 'Transition de workflow activé', 'transition_triggered_email_body' => 'Transition de workflow déclenchée Document : [name] @@ -1532,10 +1576,12 @@ URL : [url]', 'uploading_zerosize' => 'Chargement d\'un fichier vide. Chargement annulé.', 'used_discspace' => 'Espace disque utilisé', 'user' => 'Utilisateur', +'userid_groupid' => '', 'users' => 'Utilisateurs', 'users_and_groups' => 'Utilisateurs/groupes', 'users_done_work' => 'Actions des utilisateurs', 'user_exists' => 'Cet utilisateur existe déjà', +'user_group' => '', 'user_group_management' => 'Gestion d\'Utilisateurs/de Groupes', 'user_image' => 'Image', 'user_info' => 'Informations utilisateur', @@ -1569,6 +1615,7 @@ URL: [url]', 'weeks' => 'semaines', 'week_view' => 'Vue par semaine', 'workflow' => 'Workflow', +'workflows_involded' => '', 'workflow_actions_management' => 'Gestion d\'actions de workflow', 'workflow_action_in_use' => 'Cette action est actuellement utilisée par des workflows.', 'workflow_action_name' => 'Nom', diff --git a/languages/hr_HR/lang.inc b/languages/hr_HR/lang.inc index 3838afa8d..95613ede8 100644 --- a/languages/hr_HR/lang.inc +++ b/languages/hr_HR/lang.inc @@ -88,6 +88,14 @@ Internet poveznica: [url]', 'already_subscribed' => 'Već prijavljeno', 'and' => 'i', 'apply' => 'Primjeni', +'approvals_accepted' => '', +'approvals_and_reviews_accepted' => '', +'approvals_and_reviews_not_touched' => '', +'approvals_and_reviews_rejected' => '', +'approvals_not_touched' => '', +'approvals_rejected' => '', +'approvals_without_group' => '', +'approvals_without_user' => '', 'approval_deletion_email' => 'Izbrisan zahtjev za odobrenje', 'approval_deletion_email_body' => 'Zahtjev za odobrenjem izbrisan Dokument: [name] @@ -277,7 +285,9 @@ Internet poveznica: [url]', 'confirm_rm_transmittal' => '', 'confirm_rm_transmittalitem' => 'Potvrdi uklanjanje', 'confirm_rm_user' => 'Da li zaista želite ukloniti korisnika "[username]"?
Oprez: ova radnja nije povratna.', +'confirm_rm_user_from_processes' => '', 'confirm_rm_version' => 'Da li zaista želite ukloniti verziju [version] dokumenta "[documentname]"?
Oprez: ova radnja nije povratna.', +'confirm_transfer_objects' => '', 'confirm_update_transmittalitem' => 'Potvrdi izmjenu', 'content' => 'Sadržaj', 'continue' => 'Nastavi', @@ -326,6 +336,7 @@ Internet poveznica: [url]', 'documents_user_reception' => '', 'documents_user_rejected' => 'Odbijeni dokumenti', 'documents_user_requiring_attention' => 'Dokumenti u vašem vlasništvu koji zahtjevaju pažnju', +'documents_with_notification' => '', 'document_already_checkedout' => 'Ovaj dokument je već odjavljen', 'document_already_locked' => 'Ovaj dokument je već zaključan', 'document_comment_changed_email' => 'Promijenjen komentar', @@ -493,6 +504,7 @@ Internet poveznica: [url]', 'folder' => 'Mapa', 'folders' => 'Mape', 'folders_and_documents_statistic' => 'Pregled sadržaja', +'folders_with_notification' => '', 'folder_comment_changed_email' => 'Promijenjen komentar', 'folder_comment_changed_email_body' => 'Promijenjen komentar Mapa: [name] @@ -621,6 +633,7 @@ Internet poveznica: [url]', 'js_no_approval_group' => 'Molim odaberite grupu odobrenja', 'js_no_approval_status' => 'Molim odaberite status odobrenja', 'js_no_comment' => 'Nema komentara', +'js_no_currentpwd' => '', 'js_no_email' => 'Upišite vašu e-mail adresu', 'js_no_file' => 'Molim odaberite datoteku', 'js_no_keywords' => 'Odredite neke ključne riječi', @@ -685,6 +698,7 @@ Internet poveznica: [url]', 'march' => 'Ožujak', 'max_upload_size' => 'Max. veličina za prijenos', 'may' => 'Svibanj', +'menu_dropfolder' => '', 'mimetype' => 'Mime type', 'minutes' => 'minute', 'misc' => 'Razno', @@ -835,7 +849,9 @@ Ako i dalje imate problema s prijavom, molimo kontaktirajte Vašeg administrator 'password_strength_insuffient' => 'Nedovoljna jačina lozinke', 'password_wrong' => 'Pogrešna lozinka', 'pending_approvals' => '', +'pending_receipt' => '', 'pending_reviews' => '', +'pending_revision' => '', 'pending_workflows' => '', 'personal_default_keywords' => 'Osobni popis ključnih riječi', 'pl_PL' => 'Poljski', @@ -848,11 +864,18 @@ Ako i dalje imate problema s prijavom, molimo kontaktirajte Vašeg administrator 'preview_plain' => 'Obični tekst', 'previous_state' => 'Prethodni status', 'previous_versions' => 'Prethodne verzije', +'process' => '', +'process_without_user_group' => '', 'pt_BR' => 'Portugalski (BR)', 'quota' => 'Kvota', 'quota_exceeded' => 'Vaša kvota na disku je premašena za [bytes].', 'quota_is_disabled' => 'Podrška kvoti je trenutno onemogućena u postavkama. Postavka korisničke kvote neće imati utjecaja dok se ponovno ne omogući.', 'quota_warning' => 'Vaš maksimalni prostor na disku je premašen za [bytes]. Molimo uklonite dokumente ili prethodne verzije.', +'receipts_accepted' => '', +'receipts_not_touched' => '', +'receipts_rejected' => '', +'receipts_without_group' => '', +'receipts_without_user' => '', 'receipt_deletion_email_body' => '', 'receipt_deletion_email_subject' => '', 'receipt_log' => 'Zapisi prijema', @@ -879,7 +902,7 @@ Internet poveznica: [url]', 'removed_file_email_subject' => '[sitename]: [document] - Uklonjeni privitak', 'removed_recipient' => 'je uklonjen s liste primatelja.', 'removed_reviewer' => 'je uklonjen iz popisa recezenata.', -'removed_revispr' => 'je uklonjen s liste revizora.', +'removed_revisor' => 'je uklonjen s liste revizora.', 'removed_workflow_email_body' => 'Uklonjeni tok rada iz ove verzije dokumenta Dokument: [name] Verzija: [version] @@ -918,6 +941,11 @@ Internet poveznica: [url]', 'reviewers' => 'Recezenti', 'reviewer_already_assigned' => 'je već dodijeljen kao recezent', 'reviewer_already_removed' => 'je već uklonjen iz postupka pregleda ili je već podnijet pregled.', +'reviews_accepted' => '', +'reviews_not_touched' => '', +'reviews_rejected' => '', +'reviews_without_group' => '', +'reviews_without_user' => '', 'review_deletion_email' => 'Izbrisan zahtjev za pregled', 'review_deletion_email_body' => 'Zahtjev za pregled izbrisan Dokument: [name] @@ -952,6 +980,12 @@ Internet poveznica: [url]', 'review_update_failed' => 'Greška kod izmjene statusa pregleda. Izmjena nije uspjela.', 'revise_document' => 'Revidiraj dokument', 'revise_document_on' => 'Slijedeća revizija verzije dokumenta na dan [date]', +'revisions_accepted' => '', +'revisions_not_touched' => '', +'revisions_pending' => '', +'revisions_rejected' => '', +'revisions_without_group' => '', +'revisions_without_user' => '', 'revision_date' => 'Datum revizije', 'revision_log' => 'Zapisi revizije', 'revision_request_email_body' => '', @@ -986,6 +1020,7 @@ Internet poveznica: [url]', 'rm_transmittal' => 'Uklanjanje preusmjerenja', 'rm_transmittalitem' => 'Uklanjanje stavke', 'rm_user' => 'Uklonite ovog korisnika', +'rm_user_from_processes' => '', 'rm_version' => 'Uklonite verziju', 'rm_workflow' => 'Uklonite tok rada', 'rm_workflow_action' => 'Uklonite radnju toka rada', @@ -1144,6 +1179,8 @@ Internet poveznica: [url]', 'settings_enableClipboard_desc' => 'Omogući/onemogući međuspremnik na \'Vidi mapu\' stranici', 'settings_enableConverting' => 'Omogući pretvaranje', 'settings_enableConverting_desc' => 'Omogući/onemogući pretvaranje datoteka', +'settings_enableDropFolderList' => '', +'settings_enableDropFolderList_desc' => '', 'settings_enableDropUpload' => 'Omogući brzo učitavanje', 'settings_enableDropUpload_desc' => 'Omogući/onemogući prostor za ubacivanje na \'Vidi mapu\' stranici za učitavanje datoteka "Povuci i ispusti" postupkom.', 'settings_enableDuplicateDocNames' => 'Omogući dvostruke nazive dokumenata', @@ -1421,12 +1458,15 @@ Internet poveznica: [url]', 'splash_rm_role' => '', 'splash_rm_transmittal' => '', 'splash_rm_user' => 'Korisnik uklonjen', +'splash_rm_user_processes' => '', 'splash_saved_file' => '', +'splash_save_user_data' => '', 'splash_send_download_link' => '', 'splash_settings_saved' => 'Postavke pohranjene', 'splash_substituted_user' => 'Zamjenski korisnik', 'splash_switched_back_user' => 'Prebačeno nazad na izvornog korisnika', 'splash_toogle_group_manager' => 'Zamjenjen upravitelj grupe', +'splash_transfer_objects' => '', 'state_and_next_state' => 'Status/Slijedeći status', 'statistic' => 'Statistika', 'status' => 'Status', @@ -1495,11 +1535,15 @@ Internet poveznica: [url]', 'timeline_skip_status_change_1' => 'na čekanju za odobrenje', 'timeline_skip_status_change_2' => 'oslobođeno', 'timeline_skip_status_change_3' => 's tokom rada', +'timeline_skip_status_change_4' => '', +'timeline_skip_status_change_5' => '', 'timeline_status_change' => 'Verzija [version]: [status]', 'to' => 'Do', 'toggle_manager' => 'Zamjeni upravitelja', 'toggle_qrcode' => '', 'to_before_from' => 'Datum završetka ne može biti prije datuma početka', +'transfer_objects' => '', +'transfer_objects_to_user' => '', 'transition_triggered_email' => 'Zatražena promjena toka rada', 'transition_triggered_email_body' => 'Zatražena promjena toka rada Dokument: [name] @@ -1558,10 +1602,12 @@ Internet poveznica: [url]', 'uploading_zerosize' => 'Datoteka koja se učitava je prazna. Učitavanje je otkazano.', 'used_discspace' => 'Iskorišteni prostor na disku', 'user' => 'Korisnik', +'userid_groupid' => '', 'users' => 'Korisnici', 'users_and_groups' => 'Korisnici/Grupe', 'users_done_work' => 'Izvršeni poslovi korisnika', 'user_exists' => 'Korisnik već postoji.', +'user_group' => '', 'user_group_management' => 'Upravljanje korisnicima/grupama', 'user_image' => 'Slika', 'user_info' => 'Korisničke informacije', @@ -1595,6 +1641,7 @@ Internet poveznica: [url]', 'weeks' => 'tjedni', 'week_view' => 'Pregled po tjednima', 'workflow' => 'Tok rada', +'workflows_involded' => '', 'workflow_actions_management' => 'Upravljanje radnjama toka rada', 'workflow_action_in_use' => 'Ova radnju trenutno koriste tokovi rada.', 'workflow_action_name' => 'Naziv', diff --git a/languages/hu_HU/lang.inc b/languages/hu_HU/lang.inc index 15363c39c..0c363132a 100644 --- a/languages/hu_HU/lang.inc +++ b/languages/hu_HU/lang.inc @@ -88,6 +88,14 @@ URL: [url]', 'already_subscribed' => 'Már feliratkozott', 'and' => '-', 'apply' => 'Elfogad', +'approvals_accepted' => '', +'approvals_and_reviews_accepted' => '', +'approvals_and_reviews_not_touched' => '', +'approvals_and_reviews_rejected' => '', +'approvals_not_touched' => '', +'approvals_rejected' => '', +'approvals_without_group' => '', +'approvals_without_user' => '', 'approval_deletion_email' => 'Jóváhagyási kérelem törölve', 'approval_deletion_email_body' => '', 'approval_deletion_email_subject' => '', @@ -272,7 +280,9 @@ URL: [url]', 'confirm_rm_transmittal' => '', 'confirm_rm_transmittalitem' => '', 'confirm_rm_user' => 'Biztosan el kívánja távolítani ezt a felhasználót "[username]"?
Legyen óvatos: Ez a művelet nem vonható vissza.', +'confirm_rm_user_from_processes' => '', 'confirm_rm_version' => 'Biztosan el kívánaj távolítani a dokumentum "[documentname]" [version] verzióját?
Legyen óvatos: Ez a művelet nem vonható vissza.', +'confirm_transfer_objects' => '', 'confirm_update_transmittalitem' => '', 'content' => 'Tartalom', 'continue' => 'Folytatás', @@ -321,6 +331,7 @@ URL: [url]', 'documents_user_reception' => '', 'documents_user_rejected' => '', 'documents_user_requiring_attention' => 'Az Ön tulajdonában álló dokumentumok, amelyekre figyelmet kell fordítani', +'documents_with_notification' => '', 'document_already_checkedout' => '', 'document_already_locked' => 'Ez a dokumentum már zárolt', 'document_comment_changed_email' => 'Megjegyzés módosult', @@ -488,6 +499,7 @@ URL: [url]', 'folder' => 'Mappa', 'folders' => 'Mappák', 'folders_and_documents_statistic' => 'Tartalmak áttekintése', +'folders_with_notification' => '', 'folder_comment_changed_email' => 'Megjegyzés módosult', 'folder_comment_changed_email_body' => 'Megjegyzés módosult Mappa: [name] @@ -616,6 +628,7 @@ URL: [url]', 'js_no_approval_group' => 'Kérjük válasszon egy jóváhagyó csoportot', 'js_no_approval_status' => 'Kérjük válasszon jóváhagyási állapotot', 'js_no_comment' => 'Nincs megjegyzés', +'js_no_currentpwd' => '', 'js_no_email' => 'Adja meg email címét', 'js_no_file' => 'Kérjük válasszon egy állományt', 'js_no_keywords' => 'Adjon meg kulcsszavakat', @@ -680,6 +693,7 @@ URL: [url]', 'march' => 'Március', 'max_upload_size' => 'Legnagyobb feltölthető méret', 'may' => 'Május', +'menu_dropfolder' => '', 'mimetype' => 'Mime típus', 'minutes' => 'perc', 'misc' => 'Vegyes', @@ -831,7 +845,9 @@ Amennyiben problémákba ütközik a bejelentkezés során, kérjük vegye fel a 'password_strength_insuffient' => 'Jelszó erőssége elégtelen', 'password_wrong' => 'Hibás jelszó', 'pending_approvals' => '', +'pending_receipt' => '', 'pending_reviews' => '', +'pending_revision' => '', 'pending_workflows' => '', 'personal_default_keywords' => 'Személyes kulcsszó lista', 'pl_PL' => 'Lengyel', @@ -844,11 +860,18 @@ Amennyiben problémákba ütközik a bejelentkezés során, kérjük vegye fel a 'preview_plain' => '', 'previous_state' => 'Előző állapot', 'previous_versions' => 'Előző változatok', +'process' => '', +'process_without_user_group' => '', 'pt_BR' => 'Portugál (BR)', 'quota' => 'Kvóta', 'quota_exceeded' => 'Túllépte a lemezterület korlátot [bytes].', 'quota_is_disabled' => 'Kvóta támogatás jelenleg le van tiltva a beállításoknál. Felhasználói korlát beállítások nem kerülnek érvényesítésre amíg nincs újra engedélyezve.', 'quota_warning' => 'Túllépte lemez korlátot [bytes] bájttal. Kérjük távolítson el dokumentumokat vagy korábbi változatokat.', +'receipts_accepted' => '', +'receipts_not_touched' => '', +'receipts_rejected' => '', +'receipts_without_group' => '', +'receipts_without_user' => '', 'receipt_deletion_email_body' => '', 'receipt_deletion_email_subject' => '', 'receipt_log' => '', @@ -875,7 +898,7 @@ URL: [url]', 'removed_file_email_subject' => '[sitename]: [document] - Eltávolított melléklet', 'removed_recipient' => '', 'removed_reviewer' => 'eltávolításra került a felülvizsgálók listájáról.', -'removed_revispr' => '', +'removed_revisor' => '', 'removed_workflow_email_body' => 'Dokumentum változatból eltávolított munkafolyamat Dokumentum: [name] Verzió: [version] @@ -907,6 +930,11 @@ URL: [url]', 'reviewers' => 'Felülvizsgálók', 'reviewer_already_assigned' => 'már hozzá lett rendelve felülvizsgálóként', 'reviewer_already_removed' => 'már el lett távolítva a felülvizsgálati folyamatból vagy már el lett küldve egy felülvizsgálat', +'reviews_accepted' => '', +'reviews_not_touched' => '', +'reviews_rejected' => '', +'reviews_without_group' => '', +'reviews_without_user' => '', 'review_deletion_email' => 'Felülvizsgálat kérés törölve', 'review_deletion_email_body' => '', 'review_deletion_email_subject' => '', @@ -931,6 +959,12 @@ URL: [url]', 'review_update_failed' => 'Hiba a felülvizsgálat állapot frissítése során. Frissítés sikertelen.', 'revise_document' => '', 'revise_document_on' => '', +'revisions_accepted' => '', +'revisions_not_touched' => '', +'revisions_pending' => '', +'revisions_rejected' => '', +'revisions_without_group' => '', +'revisions_without_user' => '', 'revision_date' => '', 'revision_log' => '', 'revision_request_email_body' => '', @@ -965,6 +999,7 @@ URL: [url]', 'rm_transmittal' => '', 'rm_transmittalitem' => '', 'rm_user' => 'Felhasználó eltávolítása', +'rm_user_from_processes' => '', 'rm_version' => 'Változat eltávolítása', 'rm_workflow' => 'Munkafolyamat eltávolítása', 'rm_workflow_action' => 'Munkafolyamat művelet eltávolítása', @@ -1122,6 +1157,8 @@ URL: [url]', 'settings_enableClipboard_desc' => 'Vágólap engedélyezés/tiltás', 'settings_enableConverting' => 'Konvertálás engedélyezése', 'settings_enableConverting_desc' => 'Engedélyezi/tiltja az állományok konverzióját', +'settings_enableDropFolderList' => '', +'settings_enableDropFolderList_desc' => '', 'settings_enableDropUpload' => 'Gyorsfeltöltés engedélyezése', 'settings_enableDropUpload_desc' => 'Be/Ki kapcsolja a \'Mappa nézet\' oldalon a fogd és vidd feltöltéshez tartozó területetet', 'settings_enableDuplicateDocNames' => 'Azonos dokumentum név engedélyezése', @@ -1399,12 +1436,15 @@ URL: [url]', 'splash_rm_role' => '', 'splash_rm_transmittal' => '', 'splash_rm_user' => 'Felhasználó eltávolítva', +'splash_rm_user_processes' => '', 'splash_saved_file' => '', +'splash_save_user_data' => '', 'splash_send_download_link' => '', 'splash_settings_saved' => 'Beállítások elmentve', 'splash_substituted_user' => 'Helyettesített felhasználó', 'splash_switched_back_user' => 'Visszaváltva az eredeti felhasználóra', 'splash_toogle_group_manager' => 'Csoport kezelő kiválasztva', +'splash_transfer_objects' => '', 'state_and_next_state' => 'Állapot/Következő állapot', 'statistic' => 'Statisztika', 'status' => 'Állapot', @@ -1473,11 +1513,15 @@ URL: [url]', 'timeline_skip_status_change_1' => 'jóváhagyásra vár', 'timeline_skip_status_change_2' => 'kiadva', 'timeline_skip_status_change_3' => 'munkafolyamat alatt', +'timeline_skip_status_change_4' => '', +'timeline_skip_status_change_5' => '', 'timeline_status_change' => '[version]: [status] Verzio', 'to' => 'ig', 'toggle_manager' => 'Kulcs kezelő', 'toggle_qrcode' => '', 'to_before_from' => 'A lejárati dátum nem előzheti meg a kezdési dátumot', +'transfer_objects' => '', +'transfer_objects_to_user' => '', 'transition_triggered_email' => 'Munkamenet átmenet kiváltva', 'transition_triggered_email_body' => 'Munkafolyamat átmenet kiváltva Dokumentum: [name] @@ -1536,10 +1580,12 @@ URL: [url]', 'uploading_zerosize' => 'Üres állomány feltöltése. Feltöltés megszakítva.', 'used_discspace' => 'Felhasznált lemezterület', 'user' => 'Felhasználó', +'userid_groupid' => '', 'users' => 'Felhasználók', 'users_and_groups' => 'Felhasználók/Csoportok', 'users_done_work' => 'Felhasználók elvégzett munka', 'user_exists' => 'Felhasználó már létezik.', +'user_group' => '', 'user_group_management' => 'Felhasználók/Csoportok kezelése', 'user_image' => 'Kép', 'user_info' => 'Felhasználói információ', @@ -1573,6 +1619,7 @@ URL: [url]', 'weeks' => 'hét', 'week_view' => 'Heti nézet', 'workflow' => 'Munkafolyamat', +'workflows_involded' => '', 'workflow_actions_management' => 'Munkafolyamat műveletek kezelése', 'workflow_action_in_use' => 'Ezt a műveletet munkafolyamatok használják.', 'workflow_action_name' => 'Név', diff --git a/languages/it_IT/lang.inc b/languages/it_IT/lang.inc index 1cde84acd..400b5512a 100644 --- a/languages/it_IT/lang.inc +++ b/languages/it_IT/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (1554), rickr (144), s.pnt (26) +// Translators: Admin (1557), rickr (144), s.pnt (26) $text = array( '2_factor_auth' => 'Autorizzazione a due fattori', @@ -88,6 +88,14 @@ URL: [url]', 'already_subscribed' => 'L\'oggetto è già stato sottoscritto', 'and' => 'e', 'apply' => 'Applica', +'approvals_accepted' => '', +'approvals_and_reviews_accepted' => '', +'approvals_and_reviews_not_touched' => '', +'approvals_and_reviews_rejected' => '', +'approvals_not_touched' => '', +'approvals_rejected' => '', +'approvals_without_group' => '', +'approvals_without_user' => '', 'approval_deletion_email' => 'Richiesta di approvazione cancellata', 'approval_deletion_email_body' => 'Richiesta di approvazione cancellata. Documento: [name] @@ -242,7 +250,7 @@ URL: [url]', 'choose_attrdefgroup' => 'Scegli gruppo di attributi', 'choose_category' => 'Seleziona', 'choose_group' => 'Seleziona il gruppo', -'choose_role' => '--Scegli ruolo--', +'choose_role' => 'Scegli ruolo', 'choose_target_category' => 'Seleziona la categoria', 'choose_target_document' => 'Seleziona il documento', 'choose_target_file' => 'Scegli il file', @@ -278,7 +286,9 @@ URL: [url]', 'confirm_rm_transmittal' => 'Si prega di confermare l\'eliminazione della trasmissione.', 'confirm_rm_transmittalitem' => 'Conferma rimozione', 'confirm_rm_user' => 'Vuoi davvero rimuovere l\'utente "[username]"? Attenzione: questa operazione non può essere annullata.', +'confirm_rm_user_from_processes' => '', 'confirm_rm_version' => 'Vuoi veramente eliminare la versione [version] del documento "[documentname]"? Attenzione: questa operazione non può essere annullata.', +'confirm_transfer_objects' => '', 'confirm_update_transmittalitem' => 'Conferma aggiornamento', 'content' => 'Contenuto', 'continue' => 'Continua', @@ -327,6 +337,7 @@ URL: [url]', 'documents_user_reception' => '', 'documents_user_rejected' => 'Documenti rifiutati', 'documents_user_requiring_attention' => 'Tuoi documenti in attesa di revisione o approvazione', +'documents_with_notification' => '', 'document_already_checkedout' => 'Questo documento è già approvato', 'document_already_locked' => 'Questo documento è già bloccato', 'document_comment_changed_email' => 'Commento modificato', @@ -494,6 +505,7 @@ URL: [url]', 'folder' => 'Cartella', 'folders' => 'Cartelle', 'folders_and_documents_statistic' => 'Visualizzazione generale', +'folders_with_notification' => '', 'folder_comment_changed_email' => 'Commento modificato per la Cartella', 'folder_comment_changed_email_body' => 'Commento modificato per la Cartella Cartella: [name] @@ -622,6 +634,7 @@ URL: [url]', 'js_no_approval_group' => 'Si prega di selezionare un gruppo di approvazione', 'js_no_approval_status' => 'Si prega di selezionare lo stato di approvazione', 'js_no_comment' => 'Non ci sono commenti', +'js_no_currentpwd' => '', 'js_no_email' => 'Scrivi il tuo indirizzo di Email', 'js_no_file' => 'Per favore seleziona un file', 'js_no_keywords' => 'Specifica alcune parole-chiave', @@ -686,6 +699,7 @@ URL: [url]', 'march' => 'Marzo', 'max_upload_size' => 'Dimensione massima caricabile per ogni file', 'may' => 'Maggio', +'menu_dropfolder' => '', 'mimetype' => 'Tipo (MIME)', 'minutes' => 'minuti', 'misc' => 'Varie', @@ -837,7 +851,9 @@ Dovessero esserci ancora problemi al login, prego contatta l\'Amministratore di 'password_strength_insuffient' => 'Efficacia della password insufficiente', 'password_wrong' => 'Password errata', 'pending_approvals' => 'Approvazioni in sospeso', +'pending_receipt' => '', 'pending_reviews' => 'In attesa di recensioni', +'pending_revision' => '', 'pending_workflows' => 'I flussi di lavoro in sospeso', 'personal_default_keywords' => 'Parole-chiave personali', 'pl_PL' => 'Polacco', @@ -850,11 +866,18 @@ Dovessero esserci ancora problemi al login, prego contatta l\'Amministratore di 'preview_plain' => 'Testo', 'previous_state' => 'Stato precedente', 'previous_versions' => 'Versioni precedenti', +'process' => '', +'process_without_user_group' => '', 'pt_BR' => 'Portoghese (BR)', 'quota' => 'Quota', 'quota_exceeded' => 'La quota-disco è stata superata di [bytes].', 'quota_is_disabled' => 'Il supporto per le quote è attualmente disattivato nelle impostazioni. L\'impostazione di una quota-utente non avrà alcun effetto finché tale funzionalità non verrà nuovamente attivata.', 'quota_warning' => 'Il vostro utilizzo massimo di spazio è stato superato di [bytes]. Si prega di rimuovere documenti o versioni obsolete.', +'receipts_accepted' => '', +'receipts_not_touched' => '', +'receipts_rejected' => '', +'receipts_without_group' => '', +'receipts_without_user' => '', 'receipt_deletion_email_body' => '', 'receipt_deletion_email_subject' => '', 'receipt_log' => 'Ricezione Log', @@ -886,7 +909,7 @@ URL: [url]', 'removed_file_email_subject' => '[sitename]: [document] - Allegato rimosso', 'removed_recipient' => 'è stato rimosso dalla lista delle cartelle.', 'removed_reviewer' => 'è stato rimosso dalla lista dei revisori.', -'removed_revispr' => 'è stato rimosso dalla lista degli approvatori.', +'removed_revisor' => 'è stato rimosso dalla lista degli approvatori.', 'removed_workflow_email_body' => 'Flusso di lavoro rimosso dalla versione del documento Documento: [name] Versione: [version] @@ -925,6 +948,11 @@ URL: [url]', 'reviewers' => 'Revisori', 'reviewer_already_assigned' => 'è già assegnato come revisore', 'reviewer_already_removed' => 'è già stato rimosso dal processo di revisione oppure ha già inserito una revisione.', +'reviews_accepted' => '', +'reviews_not_touched' => '', +'reviews_rejected' => '', +'reviews_without_group' => '', +'reviews_without_user' => '', 'review_deletion_email' => 'Richiesta di revisione cancellata', 'review_deletion_email_body' => 'Richiesta di revisione cancellata. Documento: [name] @@ -959,6 +987,12 @@ URL: [url]', 'review_update_failed' => 'Errore nella variazione dello stato di revisione. Aggiornamento fallito.', 'revise_document' => 'Rivedi documento', 'revise_document_on' => 'Prossima revisione del documento il [date]', +'revisions_accepted' => '', +'revisions_not_touched' => '', +'revisions_pending' => '', +'revisions_rejected' => '', +'revisions_without_group' => '', +'revisions_without_user' => '', 'revision_date' => 'data revisione', 'revision_log' => 'Log revisione', 'revision_request_email_body' => 'Richiesta di ricezione @@ -998,6 +1032,7 @@ URL: [url]', 'rm_transmittal' => 'Rimuovi trasmissione', 'rm_transmittalitem' => 'Rimuovi oggetto', 'rm_user' => 'Rimuovi questo utente', +'rm_user_from_processes' => '', 'rm_version' => 'Rimuovi versione', 'rm_workflow' => 'Rimuovi flusso di lavoro', 'rm_workflow_action' => 'Rimuovi azione del flusso di lavoro', @@ -1156,6 +1191,8 @@ URL: [url]', 'settings_enableClipboard_desc' => 'Abilita/disabilita la clipboard sulla pagina \'Vista cartella\'', 'settings_enableConverting' => 'Abilita conversione', 'settings_enableConverting_desc' => 'Abilita/disabilita la conversione dei files', +'settings_enableDropFolderList' => '', +'settings_enableDropFolderList_desc' => '', 'settings_enableDropUpload' => 'Abilita upload veloce', 'settings_enableDropUpload_desc' => 'Abilita/disabilita l\'area di rilascio nella pagina \'Vista cartella\' per caricare i files con drag&drop (trascina e rilascia).', 'settings_enableDuplicateDocNames' => 'Permetti documenti con lo stesso nome', @@ -1204,8 +1241,8 @@ URL: [url]', 'settings_enableThemeSelector_desc' => 'Abilita/disabilita il selettore di tema grafico nella finestra di login', 'settings_enableUpdateReceipt' => '', 'settings_enableUpdateReceipt_desc' => '', -'settings_enableUpdateRevApp' => '', -'settings_enableUpdateRevApp_desc' => '', +'settings_enableUpdateRevApp' => 'Consenti la modifica della revisione / approvazione estesa', +'settings_enableUpdateRevApp_desc' => 'Abilita questo, se l\'utente che ha effettuato una revisione / approvazione può modificare la decisione finché il passaggio di flusso di lavoro corrente non è stato completato.', 'settings_enableUserImage' => 'Abilita immagine utente', 'settings_enableUserImage_desc' => 'L\'opzione permette di attribuire un\'immagine a ciascun utente', 'settings_enableUsersView' => 'Abilita visualizzazione utenti', @@ -1433,12 +1470,15 @@ URL: [url]', 'splash_rm_role' => 'Ruolo cancellato', 'splash_rm_transmittal' => 'Trasmissione cancellato', 'splash_rm_user' => 'Utente eliminato', +'splash_rm_user_processes' => '', 'splash_saved_file' => '', +'splash_save_user_data' => '', 'splash_send_download_link' => '', 'splash_settings_saved' => 'Impostazioni salvate', 'splash_substituted_user' => 'Utente sostituito', 'splash_switched_back_user' => 'Ritorno all\'utente originale', 'splash_toogle_group_manager' => 'Amministratore di gruppo invertito', +'splash_transfer_objects' => '', 'state_and_next_state' => 'Stato/Prossimo stato', 'statistic' => 'Statistiche', 'status' => 'Stato', @@ -1507,11 +1547,15 @@ URL: [url]', 'timeline_skip_status_change_1' => 'in attesa di approvazione', 'timeline_skip_status_change_2' => 'rilasciato', 'timeline_skip_status_change_3' => 'nel workflow', +'timeline_skip_status_change_4' => '', +'timeline_skip_status_change_5' => '', 'timeline_status_change' => 'Versione [version]: Stato', 'to' => 'A', 'toggle_manager' => 'Gestore', 'toggle_qrcode' => 'Mostri / nascondi codice QR', 'to_before_from' => 'La data di fine non può essere antecedente a quella di inizio', +'transfer_objects' => '', +'transfer_objects_to_user' => '', 'transition_triggered_email' => 'Inizio transizione del flusso di lavoro', 'transition_triggered_email_body' => 'Transizione del flusso di lavoro iniziata Documento: [name] @@ -1570,10 +1614,12 @@ URL: [url]', 'uploading_zerosize' => 'Si sta caricando un file vuoto. Operazione abortita.', 'used_discspace' => 'Spazio su disco occupato', 'user' => 'Utente', +'userid_groupid' => '', 'users' => 'Utenti', 'users_and_groups' => 'Utenti/Gruppi', 'users_done_work' => 'Lavoro eseguito dagli Utenti', 'user_exists' => 'Utente già esistente', +'user_group' => '', 'user_group_management' => 'Gestione Utenti/Gruppi', 'user_image' => 'Immagine', 'user_info' => 'Informazioni utente', @@ -1607,6 +1653,7 @@ URL: [url]', 'weeks' => 'settimane', 'week_view' => 'Vista settimana', 'workflow' => 'Flusso di lavoro', +'workflows_involded' => '', 'workflow_actions_management' => 'Gestione azioni del flusso di lavoro', 'workflow_action_in_use' => 'Questa azione è attualmente usata da alcuni flussi di lavoro', 'workflow_action_name' => 'Nome', diff --git a/languages/ko_KR/lang.inc b/languages/ko_KR/lang.inc index 9e4d59982..1039bed1c 100644 --- a/languages/ko_KR/lang.inc +++ b/languages/ko_KR/lang.inc @@ -88,6 +88,14 @@ URL: [url]', 'already_subscribed' => '가입된', 'and' => '와', 'apply' => '적용', +'approvals_accepted' => '', +'approvals_and_reviews_accepted' => '', +'approvals_and_reviews_not_touched' => '', +'approvals_and_reviews_rejected' => '', +'approvals_not_touched' => '', +'approvals_rejected' => '', +'approvals_without_group' => '', +'approvals_without_user' => '', 'approval_deletion_email' => '승인 요청 삭제', 'approval_deletion_email_body' => '승인 요청 삭제 문서: [name] @@ -279,7 +287,9 @@ URL: [url]', 'confirm_rm_transmittal' => '', 'confirm_rm_transmittalitem' => '제거 확인', 'confirm_rm_user' => '사용자 "[username]"을 정말 삭제 하시겠습니까?
주의: 취소가 불가능 합니다.', +'confirm_rm_user_from_processes' => '', 'confirm_rm_version' => '문서 "[documentname]"의 버젼 [version]을 정말 삭제 하시겠습니까?
주의: 취소가 불가능 합니다.', +'confirm_transfer_objects' => '', 'confirm_update_transmittalitem' => '업데이트 확인', 'content' => '콘텐츠', 'continue' => '계속', @@ -328,6 +338,7 @@ URL: [url]', 'documents_user_reception' => '', 'documents_user_rejected' => '거부된 문서', 'documents_user_requiring_attention' => '주의가 필요한 당신 소유의 문서', +'documents_with_notification' => '', 'document_already_checkedout' => '이문서는 이미 체크아웃 되었습니다', 'document_already_locked' => '이미 잠겨진 문서', 'document_comment_changed_email' => '코멘트가 변경됨', @@ -493,6 +504,7 @@ URL: [url]', 'folder' => '폴더', 'folders' => '폴더', 'folders_and_documents_statistic' => '개요 내용', +'folders_with_notification' => '', 'folder_comment_changed_email' => '코멘트가 변경', 'folder_comment_changed_email_body' => '코멘트 변경 폴더: [name] @@ -621,6 +633,7 @@ URL: [url]', 'js_no_approval_group' => '승인 그룹을 선택하세요', 'js_no_approval_status' => '승인 상태를 선택하세요', 'js_no_comment' => '코멘트가 없습니다', +'js_no_currentpwd' => '', 'js_no_email' => '당신의 이메일 주소를 입력', 'js_no_file' => '파일을 선택하세요', 'js_no_keywords' => '몇 가지 키워드를 지정', @@ -685,6 +698,7 @@ URL: [url]', 'march' => '3월', 'max_upload_size' => '최대 업로드 크기', 'may' => '월', +'menu_dropfolder' => '', 'mimetype' => '마임 유형', 'minutes' => '분', 'misc' => '기타', @@ -828,7 +842,9 @@ URL : [url]', 'password_strength_insuffient' => '부족한 비밀번호 강도', 'password_wrong' => '잘못된 비밀번호', 'pending_approvals' => '승인 보류', +'pending_receipt' => '', 'pending_reviews' => '미리보기 보류', +'pending_revision' => '', 'pending_workflows' => '대기중인 워크플로', 'personal_default_keywords' => '개인 키워드 목록', 'pl_PL' => '폴란드어', @@ -841,11 +857,18 @@ URL : [url]', 'preview_plain' => '미리보기', 'previous_state' => '이전 상태', 'previous_versions' => '이전 버전', +'process' => '', +'process_without_user_group' => '', 'pt_BR' => '포르투갈어 (BR)', 'quota' => '할당량', 'quota_exceeded' => '당신은 디스크 할당량 [bytes]을 초과한다.', 'quota_is_disabled' => '할당량 지원이 설정에서 비활성화되어 있습니다. 다시 활성화 될 때까지 사용자의 할당량 설정은 적용되지 않습니다.', 'quota_warning' => '당신의 최대 디스크 사용량 [bytes] 초과됩니다. 문서 또는 이전 버전을 제거하십시오.', +'receipts_accepted' => '', +'receipts_not_touched' => '', +'receipts_rejected' => '', +'receipts_without_group' => '', +'receipts_without_user' => '', 'receipt_deletion_email_body' => '', 'receipt_deletion_email_subject' => '', 'receipt_log' => '로그 수신', @@ -872,7 +895,7 @@ URL : [url]', 'removed_file_email_subject' => '[sitename] : [document] - 제거 된 첨부 파일', 'removed_recipient' => '수신자 목록에서 제거되었습니다.', 'removed_reviewer' => '검토 자 목록에서 제거 되었습니다', -'removed_revispr' => '수정 목록에서 제거되었습니다.', +'removed_revisor' => '수정 목록에서 제거되었습니다.', 'removed_workflow_email_body' => '문서 버전에서 워크플로우 삭제 문서: [name] 버전: [version] @@ -911,6 +934,11 @@ URL: [url]', 'reviewers' => '검토', 'reviewer_already_assigned' => '이미 검토 지정됩', 'reviewer_already_removed' => '이미 검토 과정에서 제거되었거나 리뷰로 제출', +'reviews_accepted' => '', +'reviews_not_touched' => '', +'reviews_rejected' => '', +'reviews_without_group' => '', +'reviews_without_user' => '', 'review_deletion_email' => '검토 요청 삭제', 'review_deletion_email_body' => '검토 요청 삭제 문서: [name] @@ -945,6 +973,12 @@ URL: [url]', 'review_update_failed' => '오류 업데이트 검토 상태. 업데이트에 실패했습니다 rewind_workflow워크플로우 되돌리기', 'revise_document' => '개정 문서', 'revise_document_on' => '문서 버전의 다음 개정 [날짜]', +'revisions_accepted' => '', +'revisions_not_touched' => '', +'revisions_pending' => '', +'revisions_rejected' => '', +'revisions_without_group' => '', +'revisions_without_user' => '', 'revision_date' => '개정 일자', 'revision_log' => '개정 로그', 'revision_request_email_body' => '수정 요청 메일 내용', @@ -979,6 +1013,7 @@ URL: [url]', 'rm_transmittal' => '송부 삭제', 'rm_transmittalitem' => '아이템 삭제', 'rm_user' => '이 사용자 제거', +'rm_user_from_processes' => '', 'rm_version' => '버전 제거', 'rm_workflow' => '워크플로우 제거', 'rm_workflow_action' => '워크플로우 작업 제거', @@ -1137,6 +1172,8 @@ URL : [url]', 'settings_enableClipboard_desc' => '\'View Folder\'의 클립 보드 활성화/비활성화', 'settings_enableConverting' => '변환 사용', 'settings_enableConverting_desc' => '활성화 / 비활성화 파일로 변환', +'settings_enableDropFolderList' => '', +'settings_enableDropFolderList_desc' => '', 'settings_enableDropUpload' => '빠른 업로드 허용', 'settings_enableDropUpload_desc' => 'Drag&Drop하여 파일을 업로드할 \'View_Folder\' 페이지의 드롭 영역을 활성/비활설 한다.', 'settings_enableDuplicateDocNames' => '중복 된 문서명 허용', @@ -1414,12 +1451,15 @@ URL : [url]', 'splash_rm_role' => '', 'splash_rm_transmittal' => '', 'splash_rm_user' => '사용자 제거', +'splash_rm_user_processes' => '', 'splash_saved_file' => '', +'splash_save_user_data' => '', 'splash_send_download_link' => '', 'splash_settings_saved' => '설정 저장', 'splash_substituted_user' => '전환된 사용자', 'splash_switched_back_user' => '원래 사용자로 전환', 'splash_toogle_group_manager' => '그룹 관리자 전환', +'splash_transfer_objects' => '', 'state_and_next_state' => '상태 / 다음 상태', 'statistic' => '통계', 'status' => '상태', @@ -1488,11 +1528,15 @@ URL : [url]', 'timeline_skip_status_change_1' => '승인 대기', 'timeline_skip_status_change_2' => '발표', 'timeline_skip_status_change_3' => '워크 플로우', +'timeline_skip_status_change_4' => '', +'timeline_skip_status_change_5' => '', 'timeline_status_change' => '버전 [version]: [status]', 'to' => '마감일', 'toggle_manager' => '전환 매니저', 'toggle_qrcode' => '', 'to_before_from' => '종료일은 시작일 전이 될수 없습니다', +'transfer_objects' => '', +'transfer_objects_to_user' => '', 'transition_triggered_email' => '워크플로우 전환 트리거', 'transition_triggered_email_body' => '워크플로우 전환 트리거 문서: [name] @@ -1551,10 +1595,12 @@ URL : [url]', 'uploading_zerosize' => '빈 파일을 업로드 합니다. 업로드가 취소 됩니다.', 'used_discspace' => '사용되는 디스크 공간', 'user' => '사용자', +'userid_groupid' => '', 'users' => '사용자', 'users_and_groups' => '사용자 / 그룹', 'users_done_work' => '사용자 수행 할 작업', 'user_exists' => '사용자가 이미 존재합니다.', +'user_group' => '', 'user_group_management' => '사용자 / 그룹 관리', 'user_image' => '이미지', 'user_info' => '사용자 정보', @@ -1588,6 +1634,7 @@ URL : [url]', 'weeks' => '주', 'week_view' => '주간 단위로 보기', 'workflow' => '워크플로우', +'workflows_involded' => '', 'workflow_actions_management' => '워크플로우 작업 관리', 'workflow_action_in_use' => '이 작업은 현재 워크플로우에 의해 사용된다.', 'workflow_action_name' => '이름', diff --git a/languages/nl_NL/lang.inc b/languages/nl_NL/lang.inc index f4faeba02..18e7e53a8 100644 --- a/languages/nl_NL/lang.inc +++ b/languages/nl_NL/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (726), gijsbertush (329), pepijn (45), reinoutdijkstra@hotmail.com (270) +// Translators: Admin (733), gijsbertush (329), pepijn (45), reinoutdijkstra@hotmail.com (270) $text = array( '2_factor_auth' => '', @@ -88,6 +88,14 @@ URL: [url]', 'already_subscribed' => 'Al ingetekend', 'and' => 'en', 'apply' => 'Toepassen', +'approvals_accepted' => '', +'approvals_and_reviews_accepted' => '', +'approvals_and_reviews_not_touched' => '', +'approvals_and_reviews_rejected' => '', +'approvals_not_touched' => '', +'approvals_rejected' => '', +'approvals_without_group' => '', +'approvals_without_user' => '', 'approval_deletion_email' => 'Goedkeuring verzoek verwijderd', 'approval_deletion_email_body' => 'Vraag om goedkeuring verwijderd Document: [name] @@ -270,7 +278,9 @@ URL: [url]', 'confirm_rm_transmittal' => 'Bestig de verwijdering van de verzending', 'confirm_rm_transmittalitem' => 'Bevestig te verzenden item', 'confirm_rm_user' => 'Weet U zeker dat U de Gebruiker "[username]" wilt verwijderen?
Let op: deze handeling kan niet ongedaan worden gemaakt.', +'confirm_rm_user_from_processes' => '', 'confirm_rm_version' => 'Weet U zeker dat U deze versie van het document "[documentname]" wilt verwijderen?
Pas op: deze handeling kan niet ongedaan worden gemaakt.', +'confirm_transfer_objects' => '', 'confirm_update_transmittalitem' => 'Bevestig verandering van te verzenden item', 'content' => 'Welkomstpagina', 'continue' => 'Doorgaan', @@ -319,6 +329,7 @@ URL: [url]', 'documents_user_reception' => '', 'documents_user_rejected' => 'documenten niet geaccepteerd door gebruiker', 'documents_user_requiring_attention' => 'Eigen documenten die (nog) aandacht behoeven', +'documents_with_notification' => '', 'document_already_checkedout' => 'Al in behandeling genomen documenten', 'document_already_locked' => 'Dit document is al geblokkeerd', 'document_comment_changed_email' => 'Commentaar gewijzigd', @@ -455,14 +466,14 @@ URL: [url]', 'expired' => 'Verlopen', 'expired_at_date' => '', 'expires' => 'Verloopt', -'expire_by_date' => '', +'expire_by_date' => 'Vervaldatum', 'expire_in_1d' => '', 'expire_in_1h' => '', -'expire_in_1m' => '', -'expire_in_1w' => '', -'expire_in_1y' => '', +'expire_in_1m' => 'Vervalt binnen 1 maand', +'expire_in_1w' => 'Vervalt binnen 1 week', +'expire_in_1y' => 'Vervalt binnen 1 jaar', 'expire_in_2h' => '', -'expire_in_2y' => '', +'expire_in_2y' => 'Vervalt binnen 2 jaar', 'expire_today' => '', 'expire_tomorrow' => '', 'expiry_changed_email' => 'Verloopdatum gewijzigd', @@ -486,6 +497,7 @@ URL: [url]', 'folder' => 'Map', 'folders' => 'Mappen', 'folders_and_documents_statistic' => 'Inhoudsopgave', +'folders_with_notification' => '', 'folder_comment_changed_email' => 'Commentaar gewijzigd', 'folder_comment_changed_email_body' => 'Commentaar gewijzigd Map: [name] @@ -565,7 +577,7 @@ URL: [url]', 'include_content' => 'inclusief inhoud', 'include_documents' => 'Inclusief documenten', 'include_subdirectories' => 'Inclusief submappen', -'indexing_tasks_in_queue' => '', +'indexing_tasks_in_queue' => 'Indexerings taken in wachtrij', 'index_converters' => 'Index document conversie', 'index_done' => '', 'index_error' => '', @@ -614,6 +626,7 @@ URL: [url]', 'js_no_approval_group' => 'Selecteer a.u.b. een Goedkeuring Groep', 'js_no_approval_status' => 'Selecteer a.u.b. een Goedkeuring Status', 'js_no_comment' => 'Er zijn geen commentaren', +'js_no_currentpwd' => '', 'js_no_email' => 'Voer uw e-mail adres in', 'js_no_file' => 'Selecteer een bestand', 'js_no_keywords' => 'Specificeer een aantal sleutelwoorden', @@ -678,6 +691,7 @@ URL: [url]', 'march' => 'maart', 'max_upload_size' => 'Maximale upload omvang voor ieder bestand', 'may' => 'mei', +'menu_dropfolder' => '', 'mimetype' => 'MIME Type', 'minutes' => 'Minuten', 'misc' => 'Diversen', @@ -790,7 +804,7 @@ URL: [url]', 'only_jpg_user_images' => 'U mag alleen .jpg afbeeldingen gebruiken als gebruikersafbeeldingen.', 'order_by_sequence_off' => 'Volgorde uit', 'original_filename' => 'Originele bestandsnaam', -'overall_indexing_progress' => '', +'overall_indexing_progress' => 'Indexerings voortgang totaal', 'owner' => 'Eigenaar', 'ownership_changed_email' => 'Eigenaar gewijzigd', 'ownership_changed_email_body' => 'Eigenaar gewijzigd @@ -829,7 +843,9 @@ Mocht u de komende minuten geen email ontvangen, probeer het dan nogmaals en con 'password_strength_insuffient' => 'Onvoldoende sterk wachtwoord', 'password_wrong' => 'Verkeerd wachtwoord', 'pending_approvals' => 'Wachten op goedkeuring', +'pending_receipt' => '', 'pending_reviews' => 'Wachten op beoordeling', +'pending_revision' => '', 'pending_workflows' => 'Wachten op workflow', 'personal_default_keywords' => 'Persoonlijke sleutelwoorden', 'pl_PL' => 'Polen', @@ -842,11 +858,18 @@ Mocht u de komende minuten geen email ontvangen, probeer het dan nogmaals en con 'preview_plain' => 'Voorbeeld in platte tekst', 'previous_state' => 'Vorige staat', 'previous_versions' => 'Vorige versies', +'process' => '', +'process_without_user_group' => '', 'pt_BR' => 'Portugees (BR)', 'quota' => 'Quotum', 'quota_exceeded' => 'Uw data quotum is overschreden met [bytes].', 'quota_is_disabled' => 'Quota support is momenteel niet actief in de eigenschappen. Een user-quotum instellen zal geen effect hebben tot quota actief zijn', 'quota_warning' => 'Uw maximale datagebruik is overschreden met [bytes]. Gelieve documenten of eerdere versies te verwijderen.', +'receipts_accepted' => '', +'receipts_not_touched' => '', +'receipts_rejected' => '', +'receipts_without_group' => '', +'receipts_without_user' => '', 'receipt_deletion_email_body' => '', 'receipt_deletion_email_subject' => '', 'receipt_log' => 'Log ontvangst', @@ -878,7 +901,7 @@ URL: [url]', 'removed_file_email_subject' => '[sitename]: [document] - Bijlage verwijderd', 'removed_recipient' => 'is verwijderd uit de lijst van ontvangers', 'removed_reviewer' => 'is verwijderd uit de lijst van beoordelaars', -'removed_revispr' => 'is verwijderd uit de lijst van herzieners', +'removed_revisor' => 'is verwijderd uit de lijst van herzieners', 'removed_workflow_email_body' => 'Workflow verwijderd van document versie document: [name] Versie: [version] Workflow: [workflow] @@ -916,6 +939,11 @@ URL: [url]', 'reviewers' => 'Beoordelaars', 'reviewer_already_assigned' => 'is reeds aangewezen als beoordelaar', 'reviewer_already_removed' => 'is reeds verwijderd uit het beoordelingsproces of heeft reeds een beoordeling uitgevoerd', +'reviews_accepted' => '', +'reviews_not_touched' => '', +'reviews_rejected' => '', +'reviews_without_group' => '', +'reviews_without_user' => '', 'review_deletion_email' => 'Beoordelingsverzoek verwijderd', 'review_deletion_email_body' => 'Beoordelingsverzoek verwijderd Document: [name] @@ -949,6 +977,12 @@ URL: [url]', 'review_update_failed' => 'Fout: bijwerken status beoordeling mislukt.', 'revise_document' => 'Document herzien', 'revise_document_on' => 'Volgende herziening van document op [date]', +'revisions_accepted' => '', +'revisions_not_touched' => '', +'revisions_pending' => '', +'revisions_rejected' => '', +'revisions_without_group' => '', +'revisions_without_user' => '', 'revision_date' => 'Datum revisie', 'revision_log' => 'Log herziening', 'revision_request_email_body' => 'Verzoek tot herziening @@ -988,6 +1022,7 @@ URL: [url]', 'rm_transmittal' => 'Verwijder de verzending', 'rm_transmittalitem' => 'Verwijder verzonden item', 'rm_user' => 'Verwijder deze Gebruiker', +'rm_user_from_processes' => '', 'rm_version' => 'Verwijder versie', 'rm_workflow' => 'Verwijder workflwo', 'rm_workflow_action' => 'Verwijder workflow actie', @@ -1150,6 +1185,8 @@ URL: [url]', 'settings_enableClipboard_desc' => 'Activeer/ blokkeer het klembord', 'settings_enableConverting' => 'Inschakelen Conversie', 'settings_enableConverting_desc' => 'Inschakelen/uitschakelen conversie van bestanden', +'settings_enableDropFolderList' => '', +'settings_enableDropFolderList_desc' => '', 'settings_enableDropUpload' => 'Inschakelen Snelle Upload', 'settings_enableDropUpload_desc' => 'Aanzetten DropUpload', 'settings_enableDuplicateDocNames' => 'Sta duplicaten van documentnamen toe', @@ -1427,12 +1464,15 @@ URL: [url]', 'splash_rm_role' => 'Rol verwijderd', 'splash_rm_transmittal' => 'Verzending verwijderd', 'splash_rm_user' => 'Gebruiker verwijderd', +'splash_rm_user_processes' => '', 'splash_saved_file' => '', +'splash_save_user_data' => '', 'splash_send_download_link' => '', 'splash_settings_saved' => 'Instellingen opgeslagen', 'splash_substituted_user' => 'Invallers gebruiker', 'splash_switched_back_user' => 'Teruggeschakeld naar de oorspronkelijke gebruiker', 'splash_toogle_group_manager' => 'Group manager toogled', +'splash_transfer_objects' => '', 'state_and_next_state' => 'staat/ volgende staat', 'statistic' => 'Statistieken', 'status' => 'Status', @@ -1501,11 +1541,15 @@ URL: [url]', 'timeline_skip_status_change_1' => 'wacht op goedkeuring', 'timeline_skip_status_change_2' => 'gepubliceerd', 'timeline_skip_status_change_3' => 'binnen de workflow', +'timeline_skip_status_change_4' => '', +'timeline_skip_status_change_5' => '', 'timeline_status_change' => 'Versie [version]: [status]', 'to' => 'aan', 'toggle_manager' => 'Wijzig Beheerder', 'toggle_qrcode' => '', 'to_before_from' => 'De einddatum mag niet voor de startdatum liggen', +'transfer_objects' => '', +'transfer_objects_to_user' => '', 'transition_triggered_email' => 'Workflow-overgang geactiveerd', 'transition_triggered_email_body' => 'Workflow Overgang Document: [name] @@ -1564,10 +1608,12 @@ URL: [url]', 'uploading_zerosize' => 'Uploaden van een leeg bestand. Upload wordt geannuleerd.', 'used_discspace' => 'Gebruike schijf ruimte', 'user' => 'Gebruiker', +'userid_groupid' => '', 'users' => 'Gebruikers', 'users_and_groups' => 'Gebruikers / Groepen', 'users_done_work' => 'Uitgevoerd werk gebruikers', 'user_exists' => 'Gebruiker bestaat reeds.', +'user_group' => '', 'user_group_management' => 'Gebruikers / Groepen beheer', 'user_image' => 'Afbeelding', 'user_info' => 'Gebruikers informatie', @@ -1601,6 +1647,7 @@ URL: [url]', 'weeks' => 'Weken', 'week_view' => 'Week Overzicht', 'workflow' => 'Workflow', +'workflows_involded' => '', 'workflow_actions_management' => 'Workflow actiebeheer', 'workflow_action_in_use' => 'Deze actie wordt momenteel gebruikt door een workflow', 'workflow_action_name' => 'Naam', diff --git a/languages/pl_PL/lang.inc b/languages/pl_PL/lang.inc index 69c5f1c24..3620d8954 100644 --- a/languages/pl_PL/lang.inc +++ b/languages/pl_PL/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (770), netixw (84), romi (93), uGn (112) +// Translators: Admin (771), netixw (84), romi (93), uGn (112) $text = array( '2_factor_auth' => '', @@ -88,6 +88,14 @@ URL: [url]', 'already_subscribed' => 'Aktualnie subskrybowane', 'and' => 'i', 'apply' => 'Zastosuj', +'approvals_accepted' => '', +'approvals_and_reviews_accepted' => '', +'approvals_and_reviews_not_touched' => '', +'approvals_and_reviews_rejected' => '', +'approvals_not_touched' => '', +'approvals_rejected' => '', +'approvals_without_group' => '', +'approvals_without_user' => '', 'approval_deletion_email' => 'Prośba o akceptację została usunięta', 'approval_deletion_email_body' => '', 'approval_deletion_email_subject' => '', @@ -173,7 +181,7 @@ URL: [url]', 'at_least_n_users_of_group' => 'Przynajmniej [number_of_users] użytkowników grupy [group]', 'august' => 'Sierpień', 'authentication' => 'Autoryzacja', -'author' => '', +'author' => 'Autor', 'automatic_status_update' => 'Automatyczna zmiana statusu', 'back' => 'Powrót', 'backup_list' => 'Lista istniejących kopii zapasowych', @@ -265,7 +273,9 @@ URL: [url]', 'confirm_rm_transmittal' => '', 'confirm_rm_transmittalitem' => '', 'confirm_rm_user' => 'Czy rzeczywiście chcesz usunąć użytkownika "[username]"?
Ostrożnie: Ta operacja nie może być cofnięta.', +'confirm_rm_user_from_processes' => '', 'confirm_rm_version' => 'Czy rzeczywiście chcesz usunąć wersję [version] dokumentu "[documentname]"?
Ostrożnie: Ta operacja nie może być cofnięta.', +'confirm_transfer_objects' => '', 'confirm_update_transmittalitem' => '', 'content' => 'Zawartość', 'continue' => 'Kontynuuj', @@ -314,6 +324,7 @@ URL: [url]', 'documents_user_reception' => '', 'documents_user_rejected' => '', 'documents_user_requiring_attention' => 'Dokumenty należące do Ciebie, które wymagają uwagi', +'documents_with_notification' => '', 'document_already_checkedout' => '', 'document_already_locked' => 'Ten dokument jest już zablokowany', 'document_comment_changed_email' => 'Zmiana komentarza', @@ -481,6 +492,7 @@ URL: [url]', 'folder' => 'Folder', 'folders' => 'Foldery', 'folders_and_documents_statistic' => 'Podsumowanie zawartości', +'folders_with_notification' => '', 'folder_comment_changed_email' => 'Zmiana komentarza', 'folder_comment_changed_email_body' => 'Komentarz uległ zmianie Folder: [name] @@ -609,6 +621,7 @@ URL: [url]', 'js_no_approval_group' => 'Proszę wybrać grupę odpowiedzalną za akceptację', 'js_no_approval_status' => 'Proszę wybrać status akceptacji', 'js_no_comment' => 'Proszę dodać komentarz', +'js_no_currentpwd' => '', 'js_no_email' => 'Wprowadź swój adres email', 'js_no_file' => 'Proszę wybrać plik', 'js_no_keywords' => 'Wybierz jakieś słowa kluczowe', @@ -673,6 +686,7 @@ URL: [url]', 'march' => 'Marzec', 'max_upload_size' => 'Maksymalny rozmiar pliku', 'may' => 'Maj', +'menu_dropfolder' => '', 'mimetype' => 'Typ mime', 'minutes' => 'minut', 'misc' => 'Różne', @@ -824,7 +838,9 @@ Jeśli nadal będą problemy z zalogowaniem, prosimy o kontakt z administratorem 'password_strength_insuffient' => 'Niewystarczająca siła hasła', 'password_wrong' => 'Złe hasło', 'pending_approvals' => '', +'pending_receipt' => '', 'pending_reviews' => '', +'pending_revision' => '', 'pending_workflows' => '', 'personal_default_keywords' => 'Osobiste sława kluczowe', 'pl_PL' => 'Polski', @@ -837,11 +853,18 @@ Jeśli nadal będą problemy z zalogowaniem, prosimy o kontakt z administratorem 'preview_plain' => '', 'previous_state' => 'Poprzedni stan', 'previous_versions' => 'Poprzednie wersje', +'process' => '', +'process_without_user_group' => '', 'pt_BR' => 'Portugalski(BR)', 'quota' => 'Przydział', 'quota_exceeded' => 'Twój limit przydzielonej przestrzeni dyskowej został przekroczony o [bytes].', 'quota_is_disabled' => 'Wsparcie limitów dyskowych jest obecnie wyłączone w ustawieniach. Ustawiony limit dyskowy użytkownika nie będzie działał dopóki wparcie nie zostanie ponownie włączone.', 'quota_warning' => 'Przekroczono użycie dysku o [bytes]. Usuń dokumenty lub poprzednie wersje.', +'receipts_accepted' => '', +'receipts_not_touched' => '', +'receipts_rejected' => '', +'receipts_without_group' => '', +'receipts_without_user' => '', 'receipt_deletion_email_body' => '', 'receipt_deletion_email_subject' => '', 'receipt_log' => '', @@ -868,7 +891,7 @@ URL: [url]', 'removed_file_email_subject' => '[sitename]: [document] - Usunięty załącznik', 'removed_recipient' => '', 'removed_reviewer' => 'został usunięty z listy recenzentów.', -'removed_revispr' => '', +'removed_revisor' => '', 'removed_workflow_email_body' => 'Usunięcie procesu z wersji dokumentu Dokument: [name] Wersja: [version] @@ -893,6 +916,11 @@ URL: [url]', 'reviewers' => 'Recenzenci', 'reviewer_already_assigned' => 'jest już przypisany jako recenzent', 'reviewer_already_removed' => 'został już usunięty z procesu opiniowania lub już wydał swoją opinię', +'reviews_accepted' => '', +'reviews_not_touched' => '', +'reviews_rejected' => '', +'reviews_without_group' => '', +'reviews_without_user' => '', 'review_deletion_email' => 'Prośba o recenzję usunięta', 'review_deletion_email_body' => '', 'review_deletion_email_subject' => '', @@ -910,6 +938,12 @@ URL: [url]', 'review_update_failed' => 'Błąd podczas aktualizowania statusu recenzji. Aktualizacja nie powiodła się.', 'revise_document' => '', 'revise_document_on' => '', +'revisions_accepted' => '', +'revisions_not_touched' => '', +'revisions_pending' => '', +'revisions_rejected' => '', +'revisions_without_group' => '', +'revisions_without_user' => '', 'revision_date' => '', 'revision_log' => '', 'revision_request_email_body' => '', @@ -944,6 +978,7 @@ URL: [url]', 'rm_transmittal' => '', 'rm_transmittalitem' => '', 'rm_user' => 'Usuń tego użytkownika', +'rm_user_from_processes' => '', 'rm_version' => 'Usuń wersję', 'rm_workflow' => 'Usuń proces', 'rm_workflow_action' => 'Usunięcie działania procesu', @@ -1102,6 +1137,8 @@ URL: [url]', 'settings_enableClipboard_desc' => 'Włącz/wyłącz schowek', 'settings_enableConverting' => 'Włącz konwertowanie', 'settings_enableConverting_desc' => 'Włącz/Wyłącz konwertowanie plików', +'settings_enableDropFolderList' => '', +'settings_enableDropFolderList_desc' => '', 'settings_enableDropUpload' => '', 'settings_enableDropUpload_desc' => '', 'settings_enableDuplicateDocNames' => 'Zezwalaj na zduplikowane nazwy dokumentów', @@ -1379,12 +1416,15 @@ URL: [url]', 'splash_rm_role' => '', 'splash_rm_transmittal' => '', 'splash_rm_user' => 'Użytkownika usunięto', +'splash_rm_user_processes' => '', 'splash_saved_file' => '', +'splash_save_user_data' => '', 'splash_send_download_link' => '', 'splash_settings_saved' => 'Zmiany zapisano', 'splash_substituted_user' => 'Zmieniono użytkownika', 'splash_switched_back_user' => 'Przełączono z powrotem do oryginalnego użytkownika', 'splash_toogle_group_manager' => 'Przełączono grupę menadżerów', +'splash_transfer_objects' => '', 'state_and_next_state' => 'Status/Następny status', 'statistic' => 'Statystyka', 'status' => 'Status', @@ -1453,11 +1493,15 @@ URL: [url]', 'timeline_skip_status_change_1' => 'oczekuje na zatwierdzenie', 'timeline_skip_status_change_2' => '', 'timeline_skip_status_change_3' => 'w obiegu', +'timeline_skip_status_change_4' => '', +'timeline_skip_status_change_5' => '', 'timeline_status_change' => 'Wersja [wersja]: [status]', 'to' => 'Do', 'toggle_manager' => 'Przełączanie zarządcy', 'toggle_qrcode' => '', 'to_before_from' => '', +'transfer_objects' => '', +'transfer_objects_to_user' => '', 'transition_triggered_email' => 'Uruchomiono proces przepływu', 'transition_triggered_email_body' => 'Uruchomiono proces przepływu Dokument: [name] @@ -1516,10 +1560,12 @@ URL: [url]', 'uploading_zerosize' => 'Próba przesłania pustego pliku. Przesłanie zostało przerwane.', 'used_discspace' => 'Użyta przestrzeń dyskowa', 'user' => 'Użytkownik', +'userid_groupid' => '', 'users' => 'Użytkownicy', 'users_and_groups' => 'Użytkownicy/Grupy', 'users_done_work' => 'Użytkownicy', 'user_exists' => 'Użytkownik już istnieje.', +'user_group' => '', 'user_group_management' => 'Zarządzanie Użytkownikami/Grupami', 'user_image' => 'Zdjęcie', 'user_info' => 'Informacje o użytkowniku', @@ -1553,6 +1599,7 @@ URL: [url]', 'weeks' => 'tygodni', 'week_view' => 'Widok tygodniowy', 'workflow' => 'Proces', +'workflows_involded' => '', 'workflow_actions_management' => 'Zarządzanie akcjami procesu', 'workflow_action_in_use' => 'Akcja ta jest obecnie zastosowana w procesie', 'workflow_action_name' => 'Nazwa', diff --git a/languages/pt_BR/lang.inc b/languages/pt_BR/lang.inc index cb404d60e..99bbbc66b 100644 --- a/languages/pt_BR/lang.inc +++ b/languages/pt_BR/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (945), flaviove (627), lfcristofoli (352) +// Translators: Admin (949), flaviove (627), lfcristofoli (352) $text = array( '2_factor_auth' => '', @@ -88,6 +88,14 @@ URL: [url]', 'already_subscribed' => 'Já subscrito', 'and' => 'e', 'apply' => 'Aplicar', +'approvals_accepted' => '', +'approvals_and_reviews_accepted' => '', +'approvals_and_reviews_not_touched' => '', +'approvals_and_reviews_rejected' => '', +'approvals_not_touched' => '', +'approvals_rejected' => '', +'approvals_without_group' => '', +'approvals_without_user' => '', 'approval_deletion_email' => 'Solicitação de Aprovação eliminada', 'approval_deletion_email_body' => '', 'approval_deletion_email_subject' => '', @@ -234,14 +242,14 @@ URL: [url]', 'checkout_is_disabled' => '', 'choose_attrdef' => 'Por favor escolha a definição de atributo', 'choose_attrdefgroup' => '', -'choose_category' => '--Por favor escolha--', -'choose_group' => '--Escolher grupo--', +'choose_category' => 'Por favor escolha', +'choose_group' => 'Escolher grupo', 'choose_role' => '', 'choose_target_category' => 'Escolha a categoria', 'choose_target_document' => 'Escolha documento', 'choose_target_file' => 'Escolha o arquivo', 'choose_target_folder' => 'Escolha pasta-alvo', -'choose_user' => '--Escolher usuário--', +'choose_user' => 'Escolher usuário', 'choose_workflow' => 'Escolha de fluxo de trabalho', 'choose_workflow_action' => 'Escolha a ação de fluxo de trabalho', 'choose_workflow_state' => 'Escolha um estado de fluxo de trabalho', @@ -272,7 +280,9 @@ URL: [url]', 'confirm_rm_transmittal' => '', 'confirm_rm_transmittalitem' => '', 'confirm_rm_user' => 'Do you really want to remove the user "[username]"?
Be careful: This action cannot be undone.', +'confirm_rm_user_from_processes' => '', 'confirm_rm_version' => 'Deseja realmente remover versão [version] do documento "[documentname]"?
Por favor, tenha cuidado porque esta ação não poderá ser desfeita.', +'confirm_transfer_objects' => '', 'confirm_update_transmittalitem' => '', 'content' => 'Conteúdo', 'continue' => 'Continue', @@ -306,7 +316,7 @@ URL: [url]', 'docs_in_reception_no_access' => '', 'docs_in_revision_no_access' => '', 'document' => 'Documento', -'documentcontent' => '', +'documentcontent' => 'Conteúdo do Documento', 'documents' => 'Documentos', 'documents_checked_out_by_you' => '', 'documents_in_process' => 'Documentos em Processo', @@ -321,6 +331,7 @@ URL: [url]', 'documents_user_reception' => '', 'documents_user_rejected' => '', 'documents_user_requiring_attention' => 'Documents Owned by User That Require Attention', +'documents_with_notification' => '', 'document_already_checkedout' => '', 'document_already_locked' => 'Este documento já está travado', 'document_comment_changed_email' => 'Comentário modificado', @@ -487,6 +498,7 @@ URL: [url]', 'folder' => 'Pasta', 'folders' => 'Pastas', 'folders_and_documents_statistic' => 'Relatórios de pastas e documentos', +'folders_with_notification' => '', 'folder_comment_changed_email' => 'Comentário mudou', 'folder_comment_changed_email_body' => 'Comentário mudou Pasta: [name] @@ -615,6 +627,7 @@ URL: [url]', 'js_no_approval_group' => '', 'js_no_approval_status' => '', 'js_no_comment' => 'não há comentário', +'js_no_currentpwd' => '', 'js_no_email' => 'Digite seu endereço de e-mail', 'js_no_file' => 'Por favor selecione um arquivo', 'js_no_keywords' => 'Especifique algumas palavras-chave', @@ -679,6 +692,7 @@ URL: [url]', 'march' => 'March', 'max_upload_size' => 'Tamanho máximo de arquivo para upload', 'may' => 'May', +'menu_dropfolder' => '', 'mimetype' => 'Tipo mime', 'minutes' => 'minutos', 'misc' => 'Miscelânia', @@ -829,7 +843,9 @@ Se você ainda tiver problemas para fazer o login, por favor, contate o administ 'password_strength_insuffient' => 'A força da senha é insuficiente', 'password_wrong' => 'Senha errada', 'pending_approvals' => '', +'pending_receipt' => '', 'pending_reviews' => '', +'pending_revision' => '', 'pending_workflows' => '', 'personal_default_keywords' => 'palavras-chave pessoais', 'pl_PL' => 'Polonês', @@ -842,11 +858,18 @@ Se você ainda tiver problemas para fazer o login, por favor, contate o administ 'preview_plain' => '', 'previous_state' => 'Estado anterior', 'previous_versions' => 'Previous Versions', +'process' => '', +'process_without_user_group' => '', 'pt_BR' => 'Português (BR)', 'quota' => 'Quota', 'quota_exceeded' => 'Sua cota de disco foi ultrapassada em [bytes].', 'quota_is_disabled' => 'Suporte a cota está desativado nas configurações. A definição de cota do usuário não terá efeito até que seja habilitada novamente.', 'quota_warning' => 'Seu uso máximo do disco foi ultrapassado em [bytes]. Por favor, remova documentos ou versões anteriores.', +'receipts_accepted' => '', +'receipts_not_touched' => '', +'receipts_rejected' => '', +'receipts_without_group' => '', +'receipts_without_user' => '', 'receipt_deletion_email_body' => '', 'receipt_deletion_email_subject' => '', 'receipt_log' => '', @@ -873,7 +896,7 @@ URL: [url]', 'removed_file_email_subject' => '[sitename]: [document] - Anexo removido', 'removed_recipient' => '', 'removed_reviewer' => 'has been removed from the list of reviewers.', -'removed_revispr' => '', +'removed_revisor' => '', 'removed_workflow_email_body' => 'Removido do fluxo de trabalho de documentos version Document: [name] Versão: [version] @@ -905,6 +928,11 @@ URL: [url]', 'reviewers' => 'Reviewers', 'reviewer_already_assigned' => 'is already assigned as a reviewer', 'reviewer_already_removed' => 'has already been removed from review proceá or has already submitted a review', +'reviews_accepted' => '', +'reviews_not_touched' => '', +'reviews_rejected' => '', +'reviews_without_group' => '', +'reviews_without_user' => '', 'review_deletion_email' => 'Pedido de revisão eliminado', 'review_deletion_email_body' => '', 'review_deletion_email_subject' => '', @@ -928,6 +956,12 @@ URL: [url]', 'review_update_failed' => 'Error updating review status. Update failed.', 'revise_document' => '', 'revise_document_on' => '', +'revisions_accepted' => '', +'revisions_not_touched' => '', +'revisions_pending' => '', +'revisions_rejected' => '', +'revisions_without_group' => '', +'revisions_without_user' => '', 'revision_date' => '', 'revision_log' => '', 'revision_request_email_body' => '', @@ -962,6 +996,7 @@ URL: [url]', 'rm_transmittal' => '', 'rm_transmittalitem' => '', 'rm_user' => 'Remove este usuário', +'rm_user_from_processes' => '', 'rm_version' => 'Remove versão', 'rm_workflow' => 'Retire do fluxo de trabalho', 'rm_workflow_action' => 'Remover Ação de Fluxo de Trabalho', @@ -1120,6 +1155,8 @@ URL: [url]', 'settings_enableClipboard_desc' => 'Habilitar/desabilitar a área de transferência', 'settings_enableConverting' => 'Ativar Convertendo', 'settings_enableConverting_desc' => 'Ativar/dasativar conversão de arquivos', +'settings_enableDropFolderList' => '', +'settings_enableDropFolderList_desc' => '', 'settings_enableDropUpload' => 'Habilitar Upload Rápido', 'settings_enableDropUpload_desc' => 'Habilitar / Desabilitar a área na página \'Vista de Pastas\' para upload de arquivos por Arrastar e Soltar.', 'settings_enableDuplicateDocNames' => 'Permitir nomes duplicados de documento', @@ -1397,12 +1434,15 @@ URL: [url]', 'splash_rm_role' => '', 'splash_rm_transmittal' => '', 'splash_rm_user' => 'Usuário removido', +'splash_rm_user_processes' => '', 'splash_saved_file' => '', +'splash_save_user_data' => '', 'splash_send_download_link' => '', 'splash_settings_saved' => 'Configurações salvas', 'splash_substituted_user' => 'Usuário substituido', 'splash_switched_back_user' => 'Comutada de volta ao usuário original', 'splash_toogle_group_manager' => 'Gerente Grupo alternado', +'splash_transfer_objects' => '', 'state_and_next_state' => 'Estado/Próximo estado', 'statistic' => 'Estatística', 'status' => 'Status', @@ -1471,11 +1511,15 @@ URL: [url]', 'timeline_skip_status_change_1' => 'aprovação pendente', 'timeline_skip_status_change_2' => 'liberado', 'timeline_skip_status_change_3' => 'dentro do fluxo de trabalho', +'timeline_skip_status_change_4' => '', +'timeline_skip_status_change_5' => '', 'timeline_status_change' => 'Versão [versão]: [estado]', 'to' => 'To', 'toggle_manager' => 'Toggle manager', 'toggle_qrcode' => '', 'to_before_from' => 'A data de término não pode ser anterior a data de início', +'transfer_objects' => '', +'transfer_objects_to_user' => '', 'transition_triggered_email' => 'Transição de fluxo de trabalho desencadeado', 'transition_triggered_email_body' => 'Transição do fluxo de trabalho triggered Document: [name] @@ -1534,10 +1578,12 @@ URL: [url]', 'uploading_zerosize' => 'Upload de um arquivo vazio. Upload é cancelado.', 'used_discspace' => 'Espaço em disco usado', 'user' => 'Usuário', +'userid_groupid' => '', 'users' => 'Usuários', 'users_and_groups' => 'Usuários/Grupos', 'users_done_work' => 'Usuários trabalho concluído', 'user_exists' => 'Usuário já existe.', +'user_group' => '', 'user_group_management' => 'Gerenciamento Usuários/Grupos', 'user_image' => 'Imagem', 'user_info' => 'Perfil do usuário', @@ -1571,6 +1617,7 @@ URL: [url]', 'weeks' => 'semanas', 'week_view' => 'Visualização semanal', 'workflow' => 'Fluxo de trabalho', +'workflows_involded' => '', 'workflow_actions_management' => 'Gestão de fluxo de trabalho ações', 'workflow_action_in_use' => 'Esta ação é usado atualmente por fluxos de trabalho.', 'workflow_action_name' => 'Nome', diff --git a/languages/ro_RO/lang.inc b/languages/ro_RO/lang.inc index 5a65698cd..c4a5292d5 100644 --- a/languages/ro_RO/lang.inc +++ b/languages/ro_RO/lang.inc @@ -88,6 +88,14 @@ URL: [url]', 'already_subscribed' => 'Deja trimis', 'and' => 'si', 'apply' => 'Aplică', +'approvals_accepted' => '', +'approvals_and_reviews_accepted' => '', +'approvals_and_reviews_not_touched' => '', +'approvals_and_reviews_rejected' => '', +'approvals_not_touched' => '', +'approvals_rejected' => '', +'approvals_without_group' => '', +'approvals_without_user' => '', 'approval_deletion_email' => 'Cerere de aprobare stearsă', 'approval_deletion_email_body' => 'Cerere aprobare stearsa Document: [name] @@ -277,7 +285,9 @@ URL: [url]', 'confirm_rm_transmittal' => '', 'confirm_rm_transmittalitem' => '', 'confirm_rm_user' => 'Sigur doriți să eliminați utilizatorul "[username]"?
Fiți atenți: Această acțiune nu poate fi anulată.', +'confirm_rm_user_from_processes' => '', 'confirm_rm_version' => 'Sigur doriți să eliminați versiunea [version] a documentului "[documentname]"?
Fiți atenți: Această acțiune nu poate fi anulată.', +'confirm_transfer_objects' => '', 'confirm_update_transmittalitem' => '', 'content' => 'Conținut', 'continue' => 'Continuă', @@ -326,6 +336,7 @@ URL: [url]', 'documents_user_reception' => '', 'documents_user_rejected' => '', 'documents_user_requiring_attention' => 'Documente deținute de tine care necesită atenție', +'documents_with_notification' => '', 'document_already_checkedout' => 'Acest document este deja verificat', 'document_already_locked' => 'Acest document este deja blocat', 'document_comment_changed_email' => 'Comentariu schimbat', @@ -493,6 +504,7 @@ URL: [url]', 'folder' => 'Folder', 'folders' => 'Foldere', 'folders_and_documents_statistic' => 'Privire de ansamblu asupra continutului', +'folders_with_notification' => '', 'folder_comment_changed_email' => 'Comentariu schimbat', 'folder_comment_changed_email_body' => 'Comentariu schimbat Folder: [name] @@ -621,6 +633,7 @@ URL: [url]', 'js_no_approval_group' => 'Vă rugăm să selectați un grup de aprobare', 'js_no_approval_status' => 'Vă rugăm să selectați statusul de aprobare', 'js_no_comment' => 'Nu există comentarii', +'js_no_currentpwd' => '', 'js_no_email' => 'Introduceti adresa dumneavoastra de email', 'js_no_file' => 'Vă rugăm să selectați un fișier', 'js_no_keywords' => 'Specificați câteva cuvinte cheie', @@ -685,6 +698,7 @@ URL: [url]', 'march' => 'Martie', 'max_upload_size' => 'Dimensiunea maximă de încărcare', 'may' => 'Mai', +'menu_dropfolder' => '', 'mimetype' => 'Mime type', 'minutes' => 'minute', 'misc' => 'Diverse', @@ -836,7 +850,9 @@ Dacă aveți în continuare probleme la autentificare, vă rugăm să contactaț 'password_strength_insuffient' => 'Siguranța parolei este insuficientă', 'password_wrong' => 'Parolă greșită', 'pending_approvals' => '', +'pending_receipt' => '', 'pending_reviews' => '', +'pending_revision' => '', 'pending_workflows' => '', 'personal_default_keywords' => 'Liste de cuvinte cheie personale', 'pl_PL' => 'Poloneză', @@ -849,11 +865,18 @@ Dacă aveți în continuare probleme la autentificare, vă rugăm să contactaț 'preview_plain' => '', 'previous_state' => 'Stare precedentă', 'previous_versions' => 'Versiune precedentă', +'process' => '', +'process_without_user_group' => '', 'pt_BR' => 'Portugheză (BR)', 'quota' => 'Spatiu alocat', 'quota_exceeded' => 'Spatiul tău alocat pe disc este depășit cu [bytes].', 'quota_is_disabled' => 'Spatiu alocat este dezactivată în setări. Stabilirea unui spatiu alocat pentru utilizator nu va avea nici un efect până când setarea este reactivată din nou.', 'quota_warning' => 'Dimensiunea dumneavoastră maximă este depasită cu [bytes]. Vă rugăm să eliminați documente sau versiuni anterioare.', +'receipts_accepted' => '', +'receipts_not_touched' => '', +'receipts_rejected' => '', +'receipts_without_group' => '', +'receipts_without_user' => '', 'receipt_deletion_email_body' => '', 'receipt_deletion_email_subject' => '', 'receipt_log' => '', @@ -880,7 +903,7 @@ URL: [url]', 'removed_file_email_subject' => '[sitename]: [document] - Atașament eliminat', 'removed_recipient' => 'a fost eliminat de pe lista de destinatari.', 'removed_reviewer' => 'a fost eliminat din lista de revizuitori.', -'removed_revispr' => 'a fost eliminat din lista de retrimitori.', +'removed_revisor' => 'a fost eliminat din lista de retrimitori.', 'removed_workflow_email_body' => 'Workflow eliminat din versiunea documentului Document: [name] Versiune: [version] @@ -919,6 +942,11 @@ URL: [url]', 'reviewers' => 'Revizuitori', 'reviewer_already_assigned' => 'este deja alocat ca un revizuitor', 'reviewer_already_removed' => 'a fost deja eliminat din procesul de revizuire sau a postat deja o revizuire', +'reviews_accepted' => '', +'reviews_not_touched' => '', +'reviews_rejected' => '', +'reviews_without_group' => '', +'reviews_without_user' => '', 'review_deletion_email' => 'Cerere de revizuire eliminată', 'review_deletion_email_body' => 'Cerere de revizuire eliminata Document: [name] @@ -953,6 +981,12 @@ URL: [url]', 'review_update_failed' => 'Eroare actualizarea status revizuire. Actualizarea a eșuat.', 'revise_document' => 'Revizuiti documentul', 'revise_document_on' => 'Urmatoarea revizuire a versiunii document pe [data]', +'revisions_accepted' => '', +'revisions_not_touched' => '', +'revisions_pending' => '', +'revisions_rejected' => '', +'revisions_without_group' => '', +'revisions_without_user' => '', 'revision_date' => '', 'revision_log' => 'Log revizuire', 'revision_request_email_body' => '', @@ -987,6 +1021,7 @@ URL: [url]', 'rm_transmittal' => 'Elimina transmiterea', 'rm_transmittalitem' => '', 'rm_user' => 'Eliminați acest utilizator', +'rm_user_from_processes' => '', 'rm_version' => 'Eliminați versiune', 'rm_workflow' => 'Eliminați Workflow', 'rm_workflow_action' => 'Eliminați actiune Workflow', @@ -1145,6 +1180,8 @@ URL: [url]', 'settings_enableClipboard_desc' => 'Activare/dezactivare clipboard în pagina \'Vizualizare Folder\'', 'settings_enableConverting' => 'Activare Conversie', 'settings_enableConverting_desc' => 'Activare/dezactivare conversia fișierelor', +'settings_enableDropFolderList' => '', +'settings_enableDropFolderList_desc' => '', 'settings_enableDropUpload' => 'Activare Încărcare rapidă', 'settings_enableDropUpload_desc' => 'Activare/dezactivare zona de plasare (drop area) în pagina \'Vizualizare Folder\' pentru încarcarea fisierelor folosind Drag&Drop.', 'settings_enableDuplicateDocNames' => 'Permiteți nume de documente duplicate', @@ -1422,12 +1459,15 @@ URL: [url]', 'splash_rm_role' => '', 'splash_rm_transmittal' => '', 'splash_rm_user' => 'Uilizator eliminat', +'splash_rm_user_processes' => '', 'splash_saved_file' => '', +'splash_save_user_data' => '', 'splash_send_download_link' => '', 'splash_settings_saved' => 'Setări salvate', 'splash_substituted_user' => 'Utilizator substituit', 'splash_switched_back_user' => 'Comutat înapoi la utilizatorul original', 'splash_toogle_group_manager' => 'Comută Managerul de grup', +'splash_transfer_objects' => '', 'state_and_next_state' => 'Stare/Stare urmatoare', 'statistic' => 'Statistic', 'status' => 'Status', @@ -1496,11 +1536,15 @@ URL: [url]', 'timeline_skip_status_change_1' => 'așteaptă aprobare', 'timeline_skip_status_change_2' => '', 'timeline_skip_status_change_3' => 'în proces', +'timeline_skip_status_change_4' => '', +'timeline_skip_status_change_5' => '', 'timeline_status_change' => 'Versiune [versiune]: [stare]', 'to' => 'La', 'toggle_manager' => 'Comută Manager', 'toggle_qrcode' => '', 'to_before_from' => 'Data de încheiere nu poate fi înainte de data de începere', +'transfer_objects' => '', +'transfer_objects_to_user' => '', 'transition_triggered_email' => 'Tranziție Workflow declanșată', 'transition_triggered_email_body' => 'Tranziție Workflow declanșată Document: [name] @@ -1559,10 +1603,12 @@ URL: [url]', 'uploading_zerosize' => 'Se încarcă un fișier gol. Încărcarea este anulată.', 'used_discspace' => 'Spatiu pe disc folosit', 'user' => 'Utilizator', +'userid_groupid' => '', 'users' => 'Utilizatori', 'users_and_groups' => 'Utilizatori/Grupuri', 'users_done_work' => 'Utilizatorii au terminat lucrul', 'user_exists' => 'Utilizatorul există deja.', +'user_group' => '', 'user_group_management' => 'Management Utilizatorii/Grupuri', 'user_image' => 'Imagine', 'user_info' => 'Informații utilizator', @@ -1596,6 +1642,7 @@ URL: [url]', 'weeks' => 'săptămâni', 'week_view' => 'Vizualizare săptămână', 'workflow' => 'Workflow', +'workflows_involded' => '', 'workflow_actions_management' => 'Management acțiuni Workflow', 'workflow_action_in_use' => 'Această acțiune este utilizată în prezent de Workflow-uri.', 'workflow_action_name' => 'Nume', diff --git a/languages/ru_RU/lang.inc b/languages/ru_RU/lang.inc index 8d0cc45a8..fe2a4efa2 100644 --- a/languages/ru_RU/lang.inc +++ b/languages/ru_RU/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (1644) +// Translators: Admin (1647) $text = array( '2_factor_auth' => 'Двухфакторная аутентификация', @@ -88,6 +88,14 @@ URL: [url]', 'already_subscribed' => 'Уже подписан', 'and' => 'и', 'apply' => 'Применить', +'approvals_accepted' => '', +'approvals_and_reviews_accepted' => '', +'approvals_and_reviews_not_touched' => '', +'approvals_and_reviews_rejected' => '', +'approvals_not_touched' => '', +'approvals_rejected' => '', +'approvals_without_group' => '', +'approvals_without_user' => '', 'approval_deletion_email' => 'Запрос на утверждение удалён', 'approval_deletion_email_body' => 'Запрос на утверждение удален Имя: [name] @@ -277,7 +285,9 @@ URL: [url]', 'confirm_rm_transmittal' => 'Подтвердить удаление', 'confirm_rm_transmittalitem' => 'Подтвердить удаление', 'confirm_rm_user' => 'Удалить пользователя «[username]»?
Действие необратимо', +'confirm_rm_user_from_processes' => '', 'confirm_rm_version' => 'Удалить версию [version] документа «[documentname]»?
Действие необратимо', +'confirm_transfer_objects' => '', 'confirm_update_transmittalitem' => 'Подтвердите обновление', 'content' => 'Содержимое', 'continue' => 'Продолжить', @@ -326,6 +336,7 @@ URL: [url]', 'documents_user_reception' => '', 'documents_user_rejected' => 'Отклоненные документы', 'documents_user_requiring_attention' => 'Ваши документы, требующие внимания', +'documents_with_notification' => '', 'document_already_checkedout' => 'Этот документ уже проверен', 'document_already_locked' => 'Документ уже заблокирован', 'document_comment_changed_email' => 'Изменён комментарий', @@ -493,6 +504,7 @@ URL: [url]', 'folder' => 'Каталог', 'folders' => 'кат.', 'folders_and_documents_statistic' => 'Обзор содержимого', +'folders_with_notification' => '', 'folder_comment_changed_email' => 'Комментарий изменён', 'folder_comment_changed_email_body' => 'Изменён комментарий каталога Каталог: [name] @@ -572,13 +584,13 @@ URL: [url]', 'include_content' => 'Включая содержимое', 'include_documents' => 'Включая документы', 'include_subdirectories' => 'Включая подкаталоги', -'indexing_tasks_in_queue' => '', +'indexing_tasks_in_queue' => 'Задача индексирования поставлена в очередь', 'index_converters' => 'Индексирование документов', 'index_done' => '', 'index_error' => '', 'index_folder' => 'Полнотекстовый индекс', 'index_pending' => '', -'index_waiting' => '', +'index_waiting' => 'Ожидание', 'individuals' => 'Пользователи', 'indivіduals_in_groups' => 'Пользователи группы', 'inherited' => 'унаследованный', @@ -621,6 +633,7 @@ URL: [url]', 'js_no_approval_group' => 'Выберите утверждающую группу', 'js_no_approval_status' => 'Выберите статус утверждения', 'js_no_comment' => 'Нет комментария', +'js_no_currentpwd' => '', 'js_no_email' => 'Введите свой e-mail', 'js_no_file' => 'Выберите файл', 'js_no_keywords' => 'Укажите метки', @@ -685,6 +698,7 @@ URL: [url]', 'march' => 'Март', 'max_upload_size' => 'Ограничение размера файла', 'may' => 'Май', +'menu_dropfolder' => '', 'mimetype' => 'MIME-тип', 'minutes' => 'минуты', 'misc' => 'Прочее', @@ -797,7 +811,7 @@ URL: [url]', 'only_jpg_user_images' => 'Разрешены только .jpg-изображения', 'order_by_sequence_off' => 'Сортировка последовательности выключена в настройках. Если вы хотите применить этот эффект, вам необходимо его включить', 'original_filename' => 'Исходное имя файла', -'overall_indexing_progress' => '', +'overall_indexing_progress' => 'Общий прогресс индексации', 'owner' => 'Владелец', 'ownership_changed_email' => 'Владелец изменён', 'ownership_changed_email_body' => 'Изменён владелец @@ -833,7 +847,9 @@ URL: [url]', 'password_strength_insuffient' => 'Недостаточная надёжность пароля', 'password_wrong' => 'Неверный пароль', 'pending_approvals' => 'В ожидании утверждения', +'pending_receipt' => '', 'pending_reviews' => 'В ожидании рецензии', +'pending_revision' => '', 'pending_workflows' => 'В ожидании процесса', 'personal_default_keywords' => 'Личный список меток', 'pl_PL' => 'Polish', @@ -846,11 +862,18 @@ URL: [url]', 'preview_plain' => 'Текст', 'previous_state' => 'Предыдущее состояние', 'previous_versions' => 'Предыдущие версии', +'process' => '', +'process_without_user_group' => '', 'pt_BR' => 'Portugese (BR)', 'quota' => 'Квота', 'quota_exceeded' => 'Ваша дисковая квота превышена на [bytes].', 'quota_is_disabled' => 'Поддержка квот в настоящее время отключена в настройках.', 'quota_warning' => 'Ваша дисковая квота превышена на [bytes]. Удалите ненужные документы или их предыдущие версии.', +'receipts_accepted' => '', +'receipts_not_touched' => '', +'receipts_rejected' => '', +'receipts_without_group' => '', +'receipts_without_user' => '', 'receipt_deletion_email_body' => '', 'receipt_deletion_email_subject' => '', 'receipt_log' => 'Лог получения', @@ -882,7 +905,7 @@ URL: [url]', 'removed_file_email_subject' => '[sitename]: удалено вложение к «[document]»', 'removed_recipient' => 'удален из списка получателей', 'removed_reviewer' => 'удалён из списка рецензентов', -'removed_revispr' => 'удалён из списка редакторов', +'removed_revisor' => 'удалён из списка редакторов', 'removed_workflow_email_body' => 'Удалён процесс из версии документа Документ: [name] Версия: [version] @@ -921,6 +944,11 @@ URL: [url]', 'reviewers' => 'Рецензирующие', 'reviewer_already_assigned' => 'уже назначен на рецензирование', 'reviewer_already_removed' => 'уже удалён из списка рецензирующих или уже оставил рецензию', +'reviews_accepted' => '', +'reviews_not_touched' => '', +'reviews_rejected' => '', +'reviews_without_group' => '', +'reviews_without_user' => '', 'review_deletion_email' => 'Запрос на рецензию удалён', 'review_deletion_email_body' => 'Запрос на рецензию удалён Документ: [name] @@ -955,6 +983,12 @@ URL: [url]', 'review_update_failed' => 'Ошибка обновления статуса рецензии', 'revise_document' => 'Ревизировать документ', 'revise_document_on' => 'Следующий ревизия версии документа назначен на [date]', +'revisions_accepted' => '', +'revisions_not_touched' => '', +'revisions_pending' => '', +'revisions_rejected' => '', +'revisions_without_group' => '', +'revisions_without_user' => '', 'revision_date' => 'Дата ревизии', 'revision_log' => 'Лог ревизии', 'revision_request_email_body' => 'Запрос на ревизию @@ -994,6 +1028,7 @@ URL: [url]', 'rm_transmittal' => 'Удалить передачу', 'rm_transmittalitem' => 'Удалить документ', 'rm_user' => 'Удалить пользователя', +'rm_user_from_processes' => '', 'rm_version' => 'Удалить версию', 'rm_workflow' => 'Удалить процесс', 'rm_workflow_action' => 'Удалить действие процесса', @@ -1152,6 +1187,8 @@ URL: [url]', 'settings_enableClipboard_desc' => 'Включить/отключить буфер обмена.', 'settings_enableConverting' => 'Включить преобразование', 'settings_enableConverting_desc' => 'Включить/отключить преобразование файлов.', +'settings_enableDropFolderList' => '', +'settings_enableDropFolderList_desc' => '', 'settings_enableDropUpload' => 'Включить быструю загрузку', 'settings_enableDropUpload_desc' => 'Включить/отключить область в "Просмотр папки" для загрузки при помощи Drag&Drop.', 'settings_enableDuplicateDocNames' => 'Разрешить документы
с одинаковым названием', @@ -1429,12 +1466,15 @@ URL: [url]', 'splash_rm_role' => '', 'splash_rm_transmittal' => '', 'splash_rm_user' => 'Пользователь удалён', +'splash_rm_user_processes' => '', 'splash_saved_file' => '', +'splash_save_user_data' => '', 'splash_send_download_link' => '', 'splash_settings_saved' => 'Настройки сохранены', 'splash_substituted_user' => 'Пользователь переключён', 'splash_switched_back_user' => 'Переключён на исходного пользователя', 'splash_toogle_group_manager' => 'Изменён менеджер группы', +'splash_transfer_objects' => '', 'state_and_next_state' => 'Статус / следующий статус', 'statistic' => 'Статистика', 'status' => 'Статус', @@ -1503,11 +1543,15 @@ URL: [url]', 'timeline_skip_status_change_1' => 'ожидает подтверждения', 'timeline_skip_status_change_2' => 'утверждён', 'timeline_skip_status_change_3' => 'в процессе', +'timeline_skip_status_change_4' => '', +'timeline_skip_status_change_5' => '', 'timeline_status_change' => 'Версия [version]: [status]', 'to' => 'До', 'toggle_manager' => 'Изменить как менеджера', 'toggle_qrcode' => '', 'to_before_from' => 'Конечная дата не может быть меньше начальной даты', +'transfer_objects' => '', +'transfer_objects_to_user' => '', 'transition_triggered_email' => 'Изменено состояние процесса', 'transition_triggered_email_body' => 'Изменено состояние процесса Документ: [name] @@ -1566,10 +1610,12 @@ URL: [url]', 'uploading_zerosize' => 'Отменена загрузка пустого файла.', 'used_discspace' => 'Занятое дисковое пространство', 'user' => 'Пользователь', +'userid_groupid' => '', 'users' => 'Пользователи', 'users_and_groups' => 'Пользователи / группы', 'users_done_work' => 'Пользователи завершившие процесс', 'user_exists' => 'Пользователь существует', +'user_group' => '', 'user_group_management' => 'Пользователи и группы', 'user_image' => 'Изображение', 'user_info' => 'Информация о пользователе', @@ -1603,6 +1649,7 @@ URL: [url]', 'weeks' => 'недели', 'week_view' => 'Неделя', 'workflow' => 'Процесс', +'workflows_involded' => '', 'workflow_actions_management' => 'Управление действиями процессов', 'workflow_action_in_use' => 'Это действие используется в процессах.', 'workflow_action_name' => 'Название', diff --git a/languages/sk_SK/lang.inc b/languages/sk_SK/lang.inc index fee6ee8e1..e26f36b94 100644 --- a/languages/sk_SK/lang.inc +++ b/languages/sk_SK/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (547), destinqo (19) +// Translators: Admin (551), destinqo (19) $text = array( '2_factor_auth' => '', @@ -88,6 +88,14 @@ URL: [url]', 'already_subscribed' => '', 'and' => 'a', 'apply' => 'Použiť', +'approvals_accepted' => '', +'approvals_and_reviews_accepted' => '', +'approvals_and_reviews_not_touched' => '', +'approvals_and_reviews_rejected' => '', +'approvals_not_touched' => '', +'approvals_rejected' => '', +'approvals_without_group' => '', +'approvals_without_user' => '', 'approval_deletion_email' => 'Poziadavka na schvalenie zmazana', 'approval_deletion_email_body' => '', 'approval_deletion_email_subject' => '', @@ -216,14 +224,14 @@ URL: [url]', 'checkout_is_disabled' => '', 'choose_attrdef' => '', 'choose_attrdefgroup' => '', -'choose_category' => '--Vyberte prosím--', -'choose_group' => '--Vyberte skupinu--', +'choose_category' => 'Vyberte prosím', +'choose_group' => 'Vyberte skupinu', 'choose_role' => '', 'choose_target_category' => '', 'choose_target_document' => 'Vyberte dokument', 'choose_target_file' => 'Vyberte súbor', 'choose_target_folder' => 'Vyberte cieľovú zložku', -'choose_user' => '--Vyberte používateľa--', +'choose_user' => 'Vyberte používateľa', 'choose_workflow' => '', 'choose_workflow_action' => '', 'choose_workflow_state' => '', @@ -254,7 +262,9 @@ URL: [url]', 'confirm_rm_transmittal' => '', 'confirm_rm_transmittalitem' => '', 'confirm_rm_user' => 'Skutočne si prajete odstrániť používateľa "[username]"?
Buďte opatrní, táto akcia je nezvratná.', +'confirm_rm_user_from_processes' => '', 'confirm_rm_version' => 'Naozaj chcete odstrániť verziu [version] dokumentu "[documentname]"?
Buďte opatrní: Túto činnosť nemožno vrátiť späť.', +'confirm_transfer_objects' => '', 'confirm_update_transmittalitem' => '', 'content' => 'Obsah', 'continue' => 'Pokračovať', @@ -303,6 +313,7 @@ URL: [url]', 'documents_user_reception' => '', 'documents_user_rejected' => '', 'documents_user_requiring_attention' => 'Dokumenty, ktoré používateľ vlastní a vyžadujú pozornosť', +'documents_with_notification' => '', 'document_already_checkedout' => '', 'document_already_locked' => 'Tento dokument je už zamknutý', 'document_comment_changed_email' => '', @@ -436,6 +447,7 @@ URL: [url]', 'folder' => 'Zlozka', 'folders' => 'Zložky', 'folders_and_documents_statistic' => 'Prehľad zložiek a dokumentov', +'folders_with_notification' => '', 'folder_comment_changed_email' => '', 'folder_comment_changed_email_body' => '', 'folder_comment_changed_email_subject' => '', @@ -544,6 +556,7 @@ URL: [url]', 'js_no_approval_group' => 'Prosím, vyberte skupinu pre schválenie', 'js_no_approval_status' => 'Prosím, vyberte stav schválenia', 'js_no_comment' => 'Žiadny komentár', +'js_no_currentpwd' => '', 'js_no_email' => 'Napíšte svoju emailovú adresu', 'js_no_file' => 'Prosím, vyberte súbor', 'js_no_keywords' => 'Zadajte nejaké kľúčové slová', @@ -578,7 +591,7 @@ URL: [url]', 'linked_to_this_version' => '', 'link_alt_updatedocument' => '', 'link_to_version' => '', -'list_access_rights' => '', +'list_access_rights' => 'Uveďte všetky prístupové práva', 'list_contains_no_access_docs' => '', 'list_hooks' => '', 'local_file' => 'Lokálny súbor', @@ -608,6 +621,7 @@ URL: [url]', 'march' => 'Marec', 'max_upload_size' => 'Maximálna veľkosť každého súboru', 'may' => 'Máj', +'menu_dropfolder' => '', 'mimetype' => '', 'minutes' => '', 'misc' => 'Rôzne', @@ -721,7 +735,9 @@ URL: [url]', 'password_strength_insuffient' => '', 'password_wrong' => '', 'pending_approvals' => '', +'pending_receipt' => '', 'pending_reviews' => '', +'pending_revision' => '', 'pending_workflows' => '', 'personal_default_keywords' => 'Osobné kľúčové slová', 'pl_PL' => 'Polština', @@ -734,11 +750,18 @@ URL: [url]', 'preview_plain' => '', 'previous_state' => '', 'previous_versions' => 'Predošlé verzie', +'process' => '', +'process_without_user_group' => '', 'pt_BR' => 'Portugalčina', 'quota' => '', 'quota_exceeded' => '', 'quota_is_disabled' => '', 'quota_warning' => '', +'receipts_accepted' => '', +'receipts_not_touched' => '', +'receipts_rejected' => '', +'receipts_without_group' => '', +'receipts_without_user' => '', 'receipt_deletion_email_body' => '', 'receipt_deletion_email_subject' => '', 'receipt_log' => '', @@ -762,7 +785,7 @@ URL: [url]', 'removed_file_email_subject' => '', 'removed_recipient' => '', 'removed_reviewer' => 'bol odstránený zo zoznamu kontrolórov.', -'removed_revispr' => '', +'removed_revisor' => '', 'removed_workflow_email_body' => '', 'removed_workflow_email_subject' => '', 'removeFolderFromDropFolder' => '', @@ -781,6 +804,11 @@ URL: [url]', 'reviewers' => 'Kontrolóri', 'reviewer_already_assigned' => 'je už poverený ako kontrolór', 'reviewer_already_removed' => 'už bol odstránený z procesu kontroly alebo poslal kontrolu', +'reviews_accepted' => '', +'reviews_not_touched' => '', +'reviews_rejected' => '', +'reviews_without_group' => '', +'reviews_without_user' => '', 'review_deletion_email' => 'Poziadavka na recenziu zmazana', 'review_deletion_email_body' => '', 'review_deletion_email_subject' => '', @@ -798,6 +826,12 @@ URL: [url]', 'review_update_failed' => 'Chyba pri aktualizácii stavu kontroly. Aktualizácia zlyhala.', 'revise_document' => '', 'revise_document_on' => '', +'revisions_accepted' => '', +'revisions_not_touched' => '', +'revisions_pending' => '', +'revisions_rejected' => '', +'revisions_without_group' => '', +'revisions_without_user' => '', 'revision_date' => '', 'revision_log' => '', 'revision_request_email_body' => '', @@ -826,6 +860,7 @@ URL: [url]', 'rm_transmittal' => '', 'rm_transmittalitem' => '', 'rm_user' => 'Odstrániť tohto používateľa', +'rm_user_from_processes' => '', 'rm_version' => 'Odstrániť verziu', 'rm_workflow' => '', 'rm_workflow_action' => '', @@ -977,6 +1012,8 @@ URL: [url]', 'settings_enableClipboard_desc' => '', 'settings_enableConverting' => '', 'settings_enableConverting_desc' => '', +'settings_enableDropFolderList' => '', +'settings_enableDropFolderList_desc' => '', 'settings_enableDropUpload' => 'Zapnúť rýchle nahratie', 'settings_enableDropUpload_desc' => '', 'settings_enableDuplicateDocNames' => '', @@ -1254,12 +1291,15 @@ URL: [url]', 'splash_rm_role' => '', 'splash_rm_transmittal' => '', 'splash_rm_user' => '', +'splash_rm_user_processes' => '', 'splash_saved_file' => '', +'splash_save_user_data' => '', 'splash_send_download_link' => '', 'splash_settings_saved' => '', 'splash_substituted_user' => '', 'splash_switched_back_user' => '', 'splash_toogle_group_manager' => '', +'splash_transfer_objects' => '', 'state_and_next_state' => '', 'statistic' => '', 'status' => 'Stav', @@ -1328,11 +1368,15 @@ URL: [url]', 'timeline_skip_status_change_1' => '', 'timeline_skip_status_change_2' => '', 'timeline_skip_status_change_3' => '', +'timeline_skip_status_change_4' => '', +'timeline_skip_status_change_5' => '', 'timeline_status_change' => 'Verzia [version]: [status]', 'to' => 'Do', 'toggle_manager' => 'Prepnúť stav manager', 'toggle_qrcode' => '', 'to_before_from' => '', +'transfer_objects' => '', +'transfer_objects_to_user' => '', 'transition_triggered_email' => '', 'transition_triggered_email_body' => '', 'transition_triggered_email_subject' => '', @@ -1382,10 +1426,12 @@ URL: [url]', 'uploading_zerosize' => 'Nahrávate prázdny súbor. Nahrávanie je zrušené.', 'used_discspace' => 'Využitý priestor na disku', 'user' => 'Používateľ', +'userid_groupid' => '', 'users' => 'Používateľ', 'users_and_groups' => '', 'users_done_work' => '', 'user_exists' => 'Používateľ už existuje.', +'user_group' => '', 'user_group_management' => 'Správa užívateľov/skupín', 'user_image' => 'Obrázok', 'user_info' => 'Informácie o používateľovi', @@ -1414,6 +1460,7 @@ URL: [url]', 'weeks' => '', 'week_view' => 'Týždeň', 'workflow' => '', +'workflows_involded' => '', 'workflow_actions_management' => '', 'workflow_action_in_use' => '', 'workflow_action_name' => '', diff --git a/languages/sv_SE/lang.inc b/languages/sv_SE/lang.inc index 04f955c4f..a73cf3f90 100644 --- a/languages/sv_SE/lang.inc +++ b/languages/sv_SE/lang.inc @@ -88,6 +88,14 @@ URL: [url]', 'already_subscribed' => 'Prenumererar redan', 'and' => 'och', 'apply' => 'Använd', +'approvals_accepted' => '', +'approvals_and_reviews_accepted' => '', +'approvals_and_reviews_not_touched' => '', +'approvals_and_reviews_rejected' => '', +'approvals_not_touched' => '', +'approvals_rejected' => '', +'approvals_without_group' => '', +'approvals_without_user' => '', 'approval_deletion_email' => 'Begäran om godkännande har raderats', 'approval_deletion_email_body' => '', 'approval_deletion_email_subject' => '', @@ -265,7 +273,9 @@ URL: [url]', 'confirm_rm_transmittal' => '', 'confirm_rm_transmittalitem' => '', 'confirm_rm_user' => 'Vill du verkligen ta bort användaren "[username]"?
OBS! Användaren kan inte återskapas!', +'confirm_rm_user_from_processes' => '', 'confirm_rm_version' => 'Vill du verkligen ta bort versionen [version] av dokumentet "[documentname]"?
OBS! Versionen kan inte återskapas!', +'confirm_transfer_objects' => '', 'confirm_update_transmittalitem' => '', 'content' => 'Innehåll', 'continue' => 'Fortsätt', @@ -314,6 +324,7 @@ URL: [url]', 'documents_user_reception' => '', 'documents_user_rejected' => '', 'documents_user_requiring_attention' => 'Dokument som du behöver granska/godkänna', +'documents_with_notification' => '', 'document_already_checkedout' => '', 'document_already_locked' => 'Detta dokument är redan låst', 'document_comment_changed_email' => 'Kommentar ändrat', @@ -481,6 +492,7 @@ URL: [url]', 'folder' => 'Katalog', 'folders' => 'Kataloger', 'folders_and_documents_statistic' => 'Innehållsöversikt', +'folders_with_notification' => '', 'folder_comment_changed_email' => 'Kommentar har ändrats', 'folder_comment_changed_email_body' => 'Kommentar har ändrats Katalog: [name] @@ -609,6 +621,7 @@ URL: [url]', 'js_no_approval_group' => 'Välj en grupp som ska godkänna', 'js_no_approval_status' => 'Välj godkännandestatus', 'js_no_comment' => 'Det finns inga kommentarer', +'js_no_currentpwd' => '', 'js_no_email' => 'Ange din e-postadress', 'js_no_file' => 'Välj en fil', 'js_no_keywords' => 'Skriv några nyckelord', @@ -673,6 +686,7 @@ URL: [url]', 'march' => 'mars', 'max_upload_size' => 'Maximal storlek för uppladdning', 'may' => 'maj', +'menu_dropfolder' => '', 'mimetype' => 'Mimetyp', 'minutes' => 'minuter', 'misc' => 'Diverse', @@ -816,7 +830,9 @@ URL: [url]', 'password_strength_insuffient' => 'För låg kvalitet på lösenordet', 'password_wrong' => 'Fel lösenord', 'pending_approvals' => '', +'pending_receipt' => '', 'pending_reviews' => '', +'pending_revision' => '', 'pending_workflows' => '', 'personal_default_keywords' => 'Personlig nyckelordslista', 'pl_PL' => 'polska', @@ -829,11 +845,18 @@ URL: [url]', 'preview_plain' => '', 'previous_state' => 'Föregående status', 'previous_versions' => 'Tidigare versioner', +'process' => '', +'process_without_user_group' => '', 'pt_BR' => 'portugisiska (BR)', 'quota' => 'Kvot', 'quota_exceeded' => 'Din minneskvot har överskridits med [bytes].', 'quota_is_disabled' => 'Kvot stöd är för närvarande inaktiverad i inställningarna. Ställa in en användarkvot kommer att ha någon effekt förrän den är aktiverad igen.', 'quota_warning' => 'Din maximala minneskvot har överskridits med [bytes]. Ta bort dokument eller tidigare versioner.', +'receipts_accepted' => '', +'receipts_not_touched' => '', +'receipts_rejected' => '', +'receipts_without_group' => '', +'receipts_without_user' => '', 'receipt_deletion_email_body' => '', 'receipt_deletion_email_subject' => '', 'receipt_log' => '', @@ -860,7 +883,7 @@ URL: [url]', 'removed_file_email_subject' => '[sitename]: [document] - Borttagen bilaga', 'removed_recipient' => '', 'removed_reviewer' => 'har tagits bort från listan med personer som ska granska dokumentet.', -'removed_revispr' => '', +'removed_revisor' => '', 'removed_workflow_email_body' => 'Arbetsflöde borttagen från dokument version Dokument: [name] Version: [version] @@ -892,6 +915,11 @@ URL: [url]', 'reviewers' => 'Granska', 'reviewer_already_assigned' => 'ska redan granska dokumentet', 'reviewer_already_removed' => 'har redan tagits bort från granskningen eller har redan skickat en granskning', +'reviews_accepted' => '', +'reviews_not_touched' => '', +'reviews_rejected' => '', +'reviews_without_group' => '', +'reviews_without_user' => '', 'review_deletion_email' => 'Förfrågan om granskning borttagen', 'review_deletion_email_body' => '', 'review_deletion_email_subject' => '', @@ -916,6 +944,12 @@ URL: [url]', 'review_update_failed' => 'Fel vid uppdatering av granskningsstatus. Kunde inte uppdatera.', 'revise_document' => '', 'revise_document_on' => '', +'revisions_accepted' => '', +'revisions_not_touched' => '', +'revisions_pending' => '', +'revisions_rejected' => '', +'revisions_without_group' => '', +'revisions_without_user' => '', 'revision_date' => '', 'revision_log' => '', 'revision_request_email_body' => '', @@ -950,6 +984,7 @@ URL: [url]', 'rm_transmittal' => '', 'rm_transmittalitem' => '', 'rm_user' => 'Ta bort denna användare', +'rm_user_from_processes' => '', 'rm_version' => 'Ta bort version', 'rm_workflow' => 'Ta bort arbetsflöde', 'rm_workflow_action' => 'Ta bort åtgärd från arbetsflödet', @@ -1108,6 +1143,8 @@ URL: [url]', 'settings_enableClipboard_desc' => 'Aktivera/Inaktivera urklipp funktionen.', 'settings_enableConverting' => 'Aktivera filkonvertering', 'settings_enableConverting_desc' => 'Aktivera/Inaktivera konvertering av filer', +'settings_enableDropFolderList' => '', +'settings_enableDropFolderList_desc' => '', 'settings_enableDropUpload' => 'Aktivera snabb uppladdning', 'settings_enableDropUpload_desc' => 'Aktivera / avaktivera droppområdet på "Visa mapp" sidan för att ladda upp filer genom att dra och släppa.', 'settings_enableDuplicateDocNames' => 'Tillåter samma dokumentnamn', @@ -1385,12 +1422,15 @@ URL: [url]', 'splash_rm_role' => '', 'splash_rm_transmittal' => '', 'splash_rm_user' => 'Användare har tagits bort', +'splash_rm_user_processes' => '', 'splash_saved_file' => '', +'splash_save_user_data' => '', 'splash_send_download_link' => '', 'splash_settings_saved' => 'Inställningar sparat', 'splash_substituted_user' => 'Bytt användare', 'splash_switched_back_user' => 'Byt tillbaka till original användare', 'splash_toogle_group_manager' => 'Gruppmanager har ändrats', +'splash_transfer_objects' => '', 'state_and_next_state' => 'Status/Nästa status', 'statistic' => 'Statistik', 'status' => 'Status', @@ -1459,11 +1499,15 @@ URL: [url]', 'timeline_skip_status_change_1' => '', 'timeline_skip_status_change_2' => '', 'timeline_skip_status_change_3' => '', +'timeline_skip_status_change_4' => '', +'timeline_skip_status_change_5' => '', 'timeline_status_change' => 'Version [version]: [status]', 'to' => 'till', 'toggle_manager' => 'Byt manager', 'toggle_qrcode' => '', 'to_before_from' => 'Slutdatum får inte vara innan startdatum', +'transfer_objects' => '', +'transfer_objects_to_user' => '', 'transition_triggered_email' => 'Arbetsflödesövergång utlöstes', 'transition_triggered_email_body' => 'Arbetsflödesövergång utlöstes Dokument: [name] @@ -1522,10 +1566,12 @@ URL: [url]', 'uploading_zerosize' => 'Uppladdning av tom fil. Uppladdningen avbryts.', 'used_discspace' => 'Använt minne', 'user' => 'Användare', +'userid_groupid' => '', 'users' => 'Användare', 'users_and_groups' => 'Användare/Grupper', 'users_done_work' => 'Användarens utförda jobb', 'user_exists' => 'Användaren finns redan.', +'user_group' => '', 'user_group_management' => 'Hantering av användare/grupper', 'user_image' => 'Bild', 'user_info' => 'Användarinformation', @@ -1559,6 +1605,7 @@ URL: [url]', 'weeks' => 'veckor', 'week_view' => 'veckovy', 'workflow' => 'Arbetsflöde', +'workflows_involded' => '', 'workflow_actions_management' => 'Åtgärder för arbetsflöde', 'workflow_action_in_use' => 'Denna åtgärd används i ett arbetsflöde.', 'workflow_action_name' => 'Namn', diff --git a/languages/tr_TR/lang.inc b/languages/tr_TR/lang.inc index 3e3cdfe5a..ce08b4e63 100644 --- a/languages/tr_TR/lang.inc +++ b/languages/tr_TR/lang.inc @@ -87,6 +87,14 @@ URL: [url]', 'already_subscribed' => 'Zaten kayıtlı', 'and' => 've', 'apply' => 'Uygula', +'approvals_accepted' => '', +'approvals_and_reviews_accepted' => '', +'approvals_and_reviews_not_touched' => '', +'approvals_and_reviews_rejected' => '', +'approvals_not_touched' => '', +'approvals_rejected' => '', +'approvals_without_group' => '', +'approvals_without_user' => '', 'approval_deletion_email' => 'Onay talebi silindi', 'approval_deletion_email_body' => '', 'approval_deletion_email_subject' => '', @@ -271,7 +279,9 @@ URL: [url]', 'confirm_rm_transmittal' => '', 'confirm_rm_transmittalitem' => '', 'confirm_rm_user' => '"[username]" kullanıcısını silmeyi onaylıyor musunuz?
Dikkatli olun: Bu eylemin geri dönüşü yoktur.', +'confirm_rm_user_from_processes' => '', 'confirm_rm_version' => '"[documentname]" dokümanının [version] versiyonunu silmek istiyor musunuz?
Dikkatli olun: Bu eylemin geri dönüşü yoktur.', +'confirm_transfer_objects' => '', 'confirm_update_transmittalitem' => '', 'content' => 'İçerik', 'continue' => 'Devam', @@ -320,6 +330,7 @@ URL: [url]', 'documents_user_reception' => '', 'documents_user_rejected' => '', 'documents_user_requiring_attention' => 'Dikkatinizi gerektiren size ait dokümanlar', +'documents_with_notification' => '', 'document_already_checkedout' => '', 'document_already_locked' => 'Bu doküman zaten kilitli', 'document_comment_changed_email' => 'Açıklama değişti', @@ -487,6 +498,7 @@ URL: [url]', 'folder' => 'Klasör', 'folders' => 'Klasör', 'folders_and_documents_statistic' => 'İçeriğe Bakış', +'folders_with_notification' => '', 'folder_comment_changed_email' => 'Açıklama değişti', 'folder_comment_changed_email_body' => 'Açıklama değişti Klasör: [name] @@ -615,6 +627,7 @@ URL: [url]', 'js_no_approval_group' => 'Lütfen bir onay grubu seçiniz', 'js_no_approval_status' => 'Lütfen onay durumu seçiniz', 'js_no_comment' => 'Açıklama yok', +'js_no_currentpwd' => '', 'js_no_email' => 'E-posta adresinizi yazınız', 'js_no_file' => 'Lütfen dosya seçiniz', 'js_no_keywords' => 'Anahtar kelime belirleyiniz', @@ -679,6 +692,7 @@ URL: [url]', 'march' => 'Mart', 'max_upload_size' => 'Maksimum yükleme boyutu', 'may' => 'Mayıs', +'menu_dropfolder' => '', 'mimetype' => 'Mime tipi', 'minutes' => 'dakika', 'misc' => 'Diğer', @@ -832,7 +846,9 @@ Giriş yaparken halen sorun yaşıyorsanız lütfen sistem yöneticinizle görü 'password_strength_insuffient' => 'Parola güvenlik düzeyi yetersiz', 'password_wrong' => 'Yanlış parola', 'pending_approvals' => '', +'pending_receipt' => '', 'pending_reviews' => '', +'pending_revision' => '', 'pending_workflows' => '', 'personal_default_keywords' => 'Kişisel anahtar kelimeler', 'pl_PL' => 'Polonyaca', @@ -845,11 +861,18 @@ Giriş yaparken halen sorun yaşıyorsanız lütfen sistem yöneticinizle görü 'preview_plain' => '', 'previous_state' => 'Önceki durum', 'previous_versions' => 'Önceki versiyonlar', +'process' => '', +'process_without_user_group' => '', 'pt_BR' => 'Portekizce', 'quota' => 'Kota', 'quota_exceeded' => 'Size ayrılan disk kotası [bytes] aşıldı.', 'quota_is_disabled' => 'Kota desteği ayarlardan kapatılmış durumda. Açılana kadar kullanıcıya kota tanımlamanın bir etkisi olmaz.', 'quota_warning' => 'Size ayrılan disk kotası [bytes] aşıldı. Lütfen gereksiz olduğunu düşündüğünüz dokümanları veya eski versiyonları silin.', +'receipts_accepted' => '', +'receipts_not_touched' => '', +'receipts_rejected' => '', +'receipts_without_group' => '', +'receipts_without_user' => '', 'receipt_deletion_email_body' => '', 'receipt_deletion_email_subject' => '', 'receipt_log' => '', @@ -876,7 +899,7 @@ URL: [url]', 'removed_file_email_subject' => '[sitename]: [document] - Ek silindi', 'removed_recipient' => '', 'removed_reviewer' => 'kontrol edenler listesinden çıkarıldı', -'removed_revispr' => '', +'removed_revisor' => '', 'removed_workflow_email_body' => 'Doküman versiyonundan iş akışı silindi Doküman: [name] Versiyon: [version] @@ -908,6 +931,11 @@ URL: [url]', 'reviewers' => 'Kontrol edenler', 'reviewer_already_assigned' => 'zaten kontrol eden olarak tanımlı', 'reviewer_already_removed' => 'kontrol sürecinden silindi veya zaten kontrolü gönderdi', +'reviews_accepted' => '', +'reviews_not_touched' => '', +'reviews_rejected' => '', +'reviews_without_group' => '', +'reviews_without_user' => '', 'review_deletion_email' => 'Kontrol talebi silindi', 'review_deletion_email_body' => '', 'review_deletion_email_subject' => '', @@ -932,6 +960,12 @@ URL: [url]', 'review_update_failed' => 'Kontrol güncelleme durumu hatalı. Güncelleme başarısız.', 'revise_document' => '', 'revise_document_on' => '', +'revisions_accepted' => '', +'revisions_not_touched' => '', +'revisions_pending' => '', +'revisions_rejected' => '', +'revisions_without_group' => '', +'revisions_without_user' => '', 'revision_date' => '', 'revision_log' => '', 'revision_request_email_body' => '', @@ -966,6 +1000,7 @@ URL: [url]', 'rm_transmittal' => '', 'rm_transmittalitem' => '', 'rm_user' => 'Bu kullanıcıyı sil', +'rm_user_from_processes' => '', 'rm_version' => 'Versiyonu sil', 'rm_workflow' => 'İş akışını sil', 'rm_workflow_action' => 'İş Akış Eylemini Sil', @@ -1124,6 +1159,8 @@ URL: [url]', 'settings_enableClipboard_desc' => '\'Klasör Görüntüle\' sayfasında panoyu etkinleştir/devredışı bırak', 'settings_enableConverting' => 'Dönüştürmeyi etkinleştir', 'settings_enableConverting_desc' => 'Dosyaları dönüştürmeyi etkinleştir/devredışı bırak', +'settings_enableDropFolderList' => '', +'settings_enableDropFolderList_desc' => '', 'settings_enableDropUpload' => 'Hızlı Yüklemeyi Etkinleştir', 'settings_enableDropUpload_desc' => '\'Klasör Görüntüle\' alanında dosyaları Sürükle&Bırak yöntemiyle yüklemek için sürükleme alanını etkinleştir/devredışı bırak', 'settings_enableDuplicateDocNames' => 'Mükerrer doküman isimlerine izin ver', @@ -1401,12 +1438,15 @@ URL: [url]', 'splash_rm_role' => '', 'splash_rm_transmittal' => '', 'splash_rm_user' => 'Kullanıcı silindi', +'splash_rm_user_processes' => '', 'splash_saved_file' => '', +'splash_save_user_data' => '', 'splash_send_download_link' => '', 'splash_settings_saved' => 'Ayarlar kaydedildi', 'splash_substituted_user' => 'Yerine geçilen kullanıcı', 'splash_switched_back_user' => 'Orijinal kullanıcıya geri dönüldü', 'splash_toogle_group_manager' => 'Grup yöneticisi değişti', +'splash_transfer_objects' => '', 'state_and_next_state' => 'Durum/Sonraki durum', 'statistic' => 'İstatistik', 'status' => 'Durum', @@ -1475,11 +1515,15 @@ URL: [url]', 'timeline_skip_status_change_1' => '', 'timeline_skip_status_change_2' => 'serbest olanlar', 'timeline_skip_status_change_3' => 'iş akışı içinde', +'timeline_skip_status_change_4' => '', +'timeline_skip_status_change_5' => '', 'timeline_status_change' => 'Versiyon [version]: [status]', 'to' => 'Kime', 'toggle_manager' => 'Değişim yönetimi', 'toggle_qrcode' => '', 'to_before_from' => 'Bitiş tarihi başlama tarihinden önce olamaz', +'transfer_objects' => '', +'transfer_objects_to_user' => '', 'transition_triggered_email' => 'İş Akış Geçişi Tetiklendi', 'transition_triggered_email_body' => 'İş Akış Geçişi Tetiklendi Doküman: [name] @@ -1538,10 +1582,12 @@ URL: [url]', 'uploading_zerosize' => 'Boş bir dosya yükleniyor. Yükleme iptal edildi.', 'used_discspace' => 'Kullanılan disk alanı', 'user' => 'Kullanıcı', +'userid_groupid' => '', 'users' => 'Kullanıcı', 'users_and_groups' => 'Kullanıcılar/Gruplar', 'users_done_work' => 'Kullanıcılar işi yaptı', 'user_exists' => 'Kullanıcı zaten mevcut.', +'user_group' => '', 'user_group_management' => 'Kullanıcı/Grup Yönetimi', 'user_image' => 'İmaj', 'user_info' => 'Kullanıcı Bilgisi', @@ -1575,6 +1621,7 @@ URL: [url]', 'weeks' => 'hafta', 'week_view' => 'Hafta görünümü', 'workflow' => 'İş akışı', +'workflows_involded' => '', 'workflow_actions_management' => 'İş akış eylem yönetimi', 'workflow_action_in_use' => 'Bu eylem iş akışları tarafından kullanımda.', 'workflow_action_name' => 'İsim', diff --git a/languages/uk_UA/lang.inc b/languages/uk_UA/lang.inc index abade20aa..9714249e8 100644 --- a/languages/uk_UA/lang.inc +++ b/languages/uk_UA/lang.inc @@ -88,6 +88,14 @@ URL: [url]', 'already_subscribed' => 'Вже підписаний', 'and' => 'і', 'apply' => 'Застосувати', +'approvals_accepted' => '', +'approvals_and_reviews_accepted' => '', +'approvals_and_reviews_not_touched' => '', +'approvals_and_reviews_rejected' => '', +'approvals_not_touched' => '', +'approvals_rejected' => '', +'approvals_without_group' => '', +'approvals_without_user' => '', 'approval_deletion_email' => 'Запит на підтвердження скасовано', 'approval_deletion_email_body' => 'Запит на підтвердження скасовано Назва: [name] @@ -277,7 +285,9 @@ URL: [url]', 'confirm_rm_transmittal' => '', 'confirm_rm_transmittalitem' => 'Підтвердити видалення', 'confirm_rm_user' => 'Видалити користувача «[username]»?
Дія незворотня', +'confirm_rm_user_from_processes' => '', 'confirm_rm_version' => 'Видалити версію [version] документа «[documentname]»?
Дія незворотня', +'confirm_transfer_objects' => '', 'confirm_update_transmittalitem' => 'Підтвердити оновлення', 'content' => 'Вміст', 'continue' => 'Продовжити', @@ -326,6 +336,7 @@ URL: [url]', 'documents_user_reception' => '', 'documents_user_rejected' => 'Документи, які відхилили', 'documents_user_requiring_attention' => 'Ваші документи, які потребують уваги', +'documents_with_notification' => '', 'document_already_checkedout' => 'Цей документ вже на опрацюванні', 'document_already_locked' => 'Цей документ вже заблокований', 'document_comment_changed_email' => 'Змінено коментар', @@ -493,6 +504,7 @@ URL: [url]', 'folder' => 'Каталог', 'folders' => 'кат.', 'folders_and_documents_statistic' => 'Огляд вмісту', +'folders_with_notification' => '', 'folder_comment_changed_email' => 'Коментар змінено', 'folder_comment_changed_email_body' => 'Змінено коментар каталогу Каталог: [name] @@ -621,6 +633,7 @@ URL: [url]', 'js_no_approval_group' => 'Оберіть групу затвердження', 'js_no_approval_status' => 'Оберіть статус затвердження', 'js_no_comment' => 'Немає коментаря', +'js_no_currentpwd' => '', 'js_no_email' => 'Введіть свій e-mail', 'js_no_file' => 'Оберіть файл', 'js_no_keywords' => 'Вкажіть ключові слова', @@ -685,6 +698,7 @@ URL: [url]', 'march' => 'Березень', 'max_upload_size' => 'Обмеження розміру файлу', 'may' => 'Травень', +'menu_dropfolder' => '', 'mimetype' => 'MIME-тип', 'minutes' => 'хвилини', 'misc' => 'Інше', @@ -833,7 +847,9 @@ URL: [url]', 'password_strength_insuffient' => 'Недостатня надійність пароля', 'password_wrong' => 'Невірний пароль', 'pending_approvals' => 'Очікує затвердження', +'pending_receipt' => '', 'pending_reviews' => 'Очікує рецензії', +'pending_revision' => '', 'pending_workflows' => 'Очікує процес', 'personal_default_keywords' => 'Особистий список ключових слів', 'pl_PL' => 'Polish', @@ -846,11 +862,18 @@ URL: [url]', 'preview_plain' => 'Текст', 'previous_state' => 'Попередній стан', 'previous_versions' => 'Попередні версії', +'process' => '', +'process_without_user_group' => '', 'pt_BR' => 'Portugese (BR)', 'quota' => 'Квота', 'quota_exceeded' => 'Ваша дискова квота перевищена на [bytes].', 'quota_is_disabled' => 'Квотування відключено', 'quota_warning' => 'Ваша дискова квота перевищена на [bytes]. Видаліть непотрібні документи або їх попередні версії.', +'receipts_accepted' => '', +'receipts_not_touched' => '', +'receipts_rejected' => '', +'receipts_without_group' => '', +'receipts_without_user' => '', 'receipt_deletion_email_body' => '', 'receipt_deletion_email_subject' => '', 'receipt_log' => 'Лог отримання', @@ -882,7 +905,7 @@ URL: [url]', 'removed_file_email_subject' => '[sitename]: видалено додаток до «[document]»', 'removed_recipient' => 'видалено отримувача', 'removed_reviewer' => 'видалено зі списку рецензентів', -'removed_revispr' => 'видалено зі списку редакторів', +'removed_revisor' => 'видалено зі списку редакторів', 'removed_workflow_email_body' => 'Видалено процес з версії документа Документ: [name] Версія: [version] @@ -914,6 +937,11 @@ URL: [url]', 'reviewers' => 'Рецензенти', 'reviewer_already_assigned' => 'вже призначений для рецензування', 'reviewer_already_removed' => 'вже видалено зі списку рецензентів або вже лишив рецензію', +'reviews_accepted' => '', +'reviews_not_touched' => '', +'reviews_rejected' => '', +'reviews_without_group' => '', +'reviews_without_user' => '', 'review_deletion_email' => 'Запит на редагування видалено', 'review_deletion_email_body' => 'Запит на рецензування видалено Документ: [name] @@ -948,6 +976,12 @@ URL: [url]', 'review_update_failed' => 'Помилка оновлення статусу рецензії', 'revise_document' => 'Ревізувати документ', 'revise_document_on' => 'Наступна ревізія документу [date]', +'revisions_accepted' => '', +'revisions_not_touched' => '', +'revisions_pending' => '', +'revisions_rejected' => '', +'revisions_without_group' => '', +'revisions_without_user' => '', 'revision_date' => 'Дата ревізії', 'revision_log' => 'Лог ревізії', 'revision_request_email_body' => 'Запит на ревізію @@ -987,6 +1021,7 @@ URL: [url]', 'rm_transmittal' => 'Видалити передачу', 'rm_transmittalitem' => 'Видалити елемент передачі', 'rm_user' => 'Видалити користувача', +'rm_user_from_processes' => '', 'rm_version' => 'Видалити версію', 'rm_workflow' => 'Видалити процес', 'rm_workflow_action' => 'Видалити дію процесу', @@ -1145,6 +1180,8 @@ URL: [url]', 'settings_enableClipboard_desc' => 'Увімкнути/вимкнути буфер обміну.', 'settings_enableConverting' => 'Увімкнути перетворення', 'settings_enableConverting_desc' => 'Увімкнути/вимкнути перетворення файлів.', +'settings_enableDropFolderList' => '', +'settings_enableDropFolderList_desc' => '', 'settings_enableDropUpload' => 'Увімкнути швидке завантаження', 'settings_enableDropUpload_desc' => 'Увімкнути/вимкнути область в "Перегляді каталогу" для завантаження за допомогою Drag&Drop.', 'settings_enableDuplicateDocNames' => 'Дозволити документи
з однаковою назвою', @@ -1422,12 +1459,15 @@ URL: [url]', 'splash_rm_role' => '', 'splash_rm_transmittal' => '', 'splash_rm_user' => 'Користувача видалено', +'splash_rm_user_processes' => '', 'splash_saved_file' => '', +'splash_save_user_data' => '', 'splash_send_download_link' => '', 'splash_settings_saved' => 'Налаштування збережено', 'splash_substituted_user' => 'Користувача переключено', 'splash_switched_back_user' => 'Переключено на початкового користувача', 'splash_toogle_group_manager' => 'Змінено менеджера групи', +'splash_transfer_objects' => '', 'state_and_next_state' => 'Статус / наступний статус', 'statistic' => 'Статистика', 'status' => 'Статус', @@ -1496,11 +1536,15 @@ URL: [url]', 'timeline_skip_status_change_1' => 'очікую підтвердження', 'timeline_skip_status_change_2' => 'затверджений', 'timeline_skip_status_change_3' => 'у процесі', +'timeline_skip_status_change_4' => '', +'timeline_skip_status_change_5' => '', 'timeline_status_change' => 'Версія [version]: [status]', 'to' => 'До', 'toggle_manager' => 'Змінити ознаку менеджера', 'toggle_qrcode' => '', 'to_before_from' => 'Кінцева дата не може бути меншою початкової дати', +'transfer_objects' => '', +'transfer_objects_to_user' => '', 'transition_triggered_email' => 'Змінено стан процесу', 'transition_triggered_email_body' => 'Змінено стан процесу Документ: [name] @@ -1559,10 +1603,12 @@ URL: [url]', 'uploading_zerosize' => 'Відміна завантаження порожнього файлу.', 'used_discspace' => 'Зайнятий дисковий простір', 'user' => 'Користувач', +'userid_groupid' => '', 'users' => 'Користувачі', 'users_and_groups' => 'Користувачі / групи', 'users_done_work' => 'Користувачі, які завершили процес', 'user_exists' => 'Користувач існує', +'user_group' => '', 'user_group_management' => 'Користувачі і групи', 'user_image' => 'Зображення', 'user_info' => 'Інформація про користувача', @@ -1596,6 +1642,7 @@ URL: [url]', 'weeks' => 'тижні', 'week_view' => 'Тиждень', 'workflow' => 'Процес', +'workflows_involded' => '', 'workflow_actions_management' => 'Керування діями процесів', 'workflow_action_in_use' => 'Ця дія використовується в процесах.', 'workflow_action_name' => 'Назва', diff --git a/languages/zh_CN/lang.inc b/languages/zh_CN/lang.inc index 149d70e5c..6aebaa3f7 100644 --- a/languages/zh_CN/lang.inc +++ b/languages/zh_CN/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (683), fengjohn (5) +// Translators: Admin (732), fengjohn (5) $text = array( '2_factor_auth' => '', @@ -88,6 +88,14 @@ URL: [url]', 'already_subscribed' => '已经订阅', 'and' => 'and', 'apply' => '应用', +'approvals_accepted' => '', +'approvals_and_reviews_accepted' => '', +'approvals_and_reviews_not_touched' => '', +'approvals_and_reviews_rejected' => '', +'approvals_not_touched' => '', +'approvals_rejected' => '', +'approvals_without_group' => '', +'approvals_without_user' => '', 'approval_deletion_email' => '审核请求已被删除', 'approval_deletion_email_body' => '', 'approval_deletion_email_subject' => '', @@ -233,7 +241,7 @@ URL: [url]', 'clear_password' => '', 'clipboard' => '剪切板', 'close' => '关闭', -'command' => '', +'command' => '命令', 'comment' => '说明', 'comment_changed_email' => '', 'comment_for_current_version' => '版本说明', @@ -254,7 +262,9 @@ URL: [url]', 'confirm_rm_transmittal' => '', 'confirm_rm_transmittalitem' => '', 'confirm_rm_user' => '您确定要删除"[username]"用户?
请注意:此动作执行后不能撤销.', +'confirm_rm_user_from_processes' => '', 'confirm_rm_version' => '您确定要删除"[documentname]文档的[version]版本文件?
请注意:此动作执行后不能撤销.', +'confirm_transfer_objects' => '', 'confirm_update_transmittalitem' => '', 'content' => '内容', 'continue' => '继续', @@ -305,6 +315,7 @@ URL: [url]', 'documents_user_reception' => '', 'documents_user_rejected' => '', 'documents_user_requiring_attention' => '需您关注的文档', +'documents_with_notification' => '', 'document_already_checkedout' => '', 'document_already_locked' => '该文档已被锁定', 'document_comment_changed_email' => '', @@ -407,18 +418,18 @@ URL: [url]', 'error_toogle_permission' => '', 'es_ES' => '西班牙语', 'event_details' => '错误详情', -'exclude_items' => '', +'exclude_items' => '排除项目', 'expired' => '过期', 'expired_at_date' => '', 'expires' => '有效限期', -'expire_by_date' => '', +'expire_by_date' => '指定过期时间', 'expire_in_1d' => '', 'expire_in_1h' => '', -'expire_in_1m' => '', -'expire_in_1w' => '', -'expire_in_1y' => '', +'expire_in_1m' => '1月后过期', +'expire_in_1w' => '1周后过期', +'expire_in_1y' => '1年后过期', 'expire_in_2h' => '', -'expire_in_2y' => '', +'expire_in_2y' => '2年后过期', 'expire_today' => '', 'expire_tomorrow' => '', 'expiry_changed_email' => '到期日子已改变', @@ -438,6 +449,7 @@ URL: [url]', 'folder' => '文件夹', 'folders' => '文件夹', 'folders_and_documents_statistic' => '内容概要', +'folders_with_notification' => '', 'folder_comment_changed_email' => '', 'folder_comment_changed_email_body' => '', 'folder_comment_changed_email_subject' => '', @@ -546,6 +558,7 @@ URL: [url]', 'js_no_approval_group' => '请选择审核组', 'js_no_approval_status' => '请选择审核状态', 'js_no_comment' => '没有添加说明', +'js_no_currentpwd' => '', 'js_no_email' => '输入您的e-mail', 'js_no_file' => '请选择一个文件', 'js_no_keywords' => '指定关键字', @@ -610,6 +623,7 @@ URL: [url]', 'march' => '三 月', 'max_upload_size' => '最大上传文件大小', 'may' => '五 月', +'menu_dropfolder' => '', 'mimetype' => 'MIME类型', 'minutes' => '', 'misc' => '其他', @@ -699,7 +713,7 @@ URL: [url]', 'only_jpg_user_images' => '只用jpg格式的图片才可以作为用户身份图片', 'order_by_sequence_off' => '', 'original_filename' => '原始文件名', -'overall_indexing_progress' => '', +'overall_indexing_progress' => '所有索引进程', 'owner' => '所有者', 'ownership_changed_email' => '所有者已变更', 'ownership_changed_email_body' => '', @@ -723,7 +737,9 @@ URL: [url]', 'password_strength_insuffient' => '密码强度不够', 'password_wrong' => '', 'pending_approvals' => '', +'pending_receipt' => '', 'pending_reviews' => '', +'pending_revision' => '', 'pending_workflows' => '', 'personal_default_keywords' => '用户关键字', 'pl_PL' => '波兰语', @@ -736,11 +752,18 @@ URL: [url]', 'preview_plain' => '', 'previous_state' => '', 'previous_versions' => '先前版本', +'process' => '', +'process_without_user_group' => '', 'pt_BR' => '葡萄牙语', 'quota' => '配额', 'quota_exceeded' => '', 'quota_is_disabled' => '配额的支持', 'quota_warning' => '', +'receipts_accepted' => '', +'receipts_not_touched' => '', +'receipts_rejected' => '', +'receipts_without_group' => '', +'receipts_without_user' => '', 'receipt_deletion_email_body' => '', 'receipt_deletion_email_subject' => '', 'receipt_log' => '', @@ -764,10 +787,10 @@ URL: [url]', 'removed_file_email_subject' => '', 'removed_recipient' => '', 'removed_reviewer' => '已经从校对人名单中删除', -'removed_revispr' => '', +'removed_revisor' => '', 'removed_workflow_email_body' => '', 'removed_workflow_email_subject' => '', -'removeFolderFromDropFolder' => '', +'removeFolderFromDropFolder' => '导入后删除文件夹', 'remove_marked_files' => '删除选中的文件', 'repaired' => '', 'repairing_objects' => '', @@ -783,6 +806,11 @@ URL: [url]', 'reviewers' => '校对人', 'reviewer_already_assigned' => '已经被指派为校对人', 'reviewer_already_removed' => '已经从校对队列中删除或者已经提交校对', +'reviews_accepted' => '', +'reviews_not_touched' => '', +'reviews_rejected' => '', +'reviews_without_group' => '', +'reviews_without_user' => '', 'review_deletion_email' => '校对请求被删除', 'review_deletion_email_body' => '', 'review_deletion_email_subject' => '', @@ -800,6 +828,12 @@ URL: [url]', 'review_update_failed' => '错误 更新校对状态.更新失败', 'revise_document' => '', 'revise_document_on' => '', +'revisions_accepted' => '', +'revisions_not_touched' => '', +'revisions_pending' => '', +'revisions_rejected' => '', +'revisions_without_group' => '', +'revisions_without_user' => '', 'revision_date' => '', 'revision_log' => '', 'revision_request_email_body' => '', @@ -828,6 +862,7 @@ URL: [url]', 'rm_transmittal' => '', 'rm_transmittalitem' => '', 'rm_user' => '删除该用户', +'rm_user_from_processes' => '', 'rm_version' => '删除该版本', 'rm_workflow' => '', 'rm_workflow_action' => '', @@ -888,7 +923,7 @@ URL: [url]', 'select_users' => '点击选择用户', 'select_workflow' => '', 'send_email' => '', -'send_test_mail' => '', +'send_test_mail' => '发送测试邮件', 'september' => '九 月', 'sequence' => '次序', 'seq_after' => '在"[prevname]"之后', @@ -899,7 +934,7 @@ URL: [url]', 'settings' => '设置', 'settings_activate_module' => '', 'settings_activate_php_extension' => '', -'settings_adminIP' => '', +'settings_adminIP' => '管理员IP', 'settings_adminIP_desc' => '', 'settings_Advanced' => '高级设置', 'settings_advancedAcl' => '', @@ -914,7 +949,7 @@ URL: [url]', 'settings_backupDir_desc' => '', 'settings_cacheDir' => '', 'settings_cacheDir_desc' => '', -'settings_Calendar' => '', +'settings_Calendar' => '日历设置', 'settings_calendarDefaultView' => '日历默认试图', 'settings_calendarDefaultView_desc' => '日历默认试图', 'settings_cannot_disable' => '', @@ -940,7 +975,7 @@ URL: [url]', 'settings_Database' => '数据库设置', 'settings_dbDatabase' => '数据库名称', 'settings_dbDatabase_desc' => '设置连接的数据库', -'settings_dbDriver' => '', +'settings_dbDriver' => '数据库类型', 'settings_dbDriver_desc' => '', 'settings_dbHostname' => '数据库地址', 'settings_dbHostname_desc' => '设置数据库的连接地址', @@ -953,8 +988,8 @@ URL: [url]', 'settings_defaultAccessDocs_desc' => '', 'settings_defaultSearchMethod' => '', 'settings_defaultSearchMethod_desc' => '', -'settings_defaultSearchMethod_valdatabase' => '', -'settings_defaultSearchMethod_valfulltext' => '', +'settings_defaultSearchMethod_valdatabase' => '数据库', +'settings_defaultSearchMethod_valfulltext' => '全文', 'settings_delete_install_folder' => '', 'settings_disableSelfEdit' => '', 'settings_disableSelfEdit_desc' => '', @@ -973,12 +1008,14 @@ URL: [url]', 'settings_enableAdminReceipt_desc' => '', 'settings_enableAdminRevApp' => '', 'settings_enableAdminRevApp_desc' => '', -'settings_enableCalendar' => '', +'settings_enableCalendar' => '开启日历', 'settings_enableCalendar_desc' => '', 'settings_enableClipboard' => '允许剪切板', 'settings_enableClipboard_desc' => '', 'settings_enableConverting' => '打开转换', 'settings_enableConverting_desc' => '打开/关闭文件转换', +'settings_enableDropFolderList' => '', +'settings_enableDropFolderList_desc' => '', 'settings_enableDropUpload' => '允许快速上传', 'settings_enableDropUpload_desc' => '', 'settings_enableDuplicateDocNames' => '允许重复的文件名', @@ -993,11 +1030,11 @@ URL: [url]', 'settings_enableGuestAutoLogin_desc' => '', 'settings_enableGuestLogin' => '', 'settings_enableGuestLogin_desc' => '', -'settings_enableHelp' => '', +'settings_enableHelp' => '开启帮助', 'settings_enableHelp_desc' => '', 'settings_enableLanguageSelector' => '', 'settings_enableLanguageSelector_desc' => '', -'settings_enableLargeFileUpload' => '', +'settings_enableLargeFileUpload' => '开启大文件上传', 'settings_enableLargeFileUpload_desc' => '', 'settings_enableMenuTasks' => '', 'settings_enableMenuTasks_desc' => '', @@ -1011,7 +1048,7 @@ URL: [url]', 'settings_enableOwnerNotification_desc' => '', 'settings_enableOwnerReceipt' => '', 'settings_enableOwnerReceipt_desc' => '', -'settings_enableOwnerRevApp' => '', +'settings_enableOwnerRevApp' => '允许所有者进行审查或批准', 'settings_enableOwnerRevApp_desc' => '', 'settings_enablePasswordForgotten' => '', 'settings_enablePasswordForgotten_desc' => '', @@ -1023,7 +1060,7 @@ URL: [url]', 'settings_enableSelfRevApp_desc' => '', 'settings_enableSessionList' => '', 'settings_enableSessionList_desc' => '', -'settings_enableThemeSelector' => '', +'settings_enableThemeSelector' => '主题选择', 'settings_enableThemeSelector_desc' => '', 'settings_enableUpdateReceipt' => '', 'settings_enableUpdateReceipt_desc' => '', @@ -1037,11 +1074,11 @@ URL: [url]', 'settings_enableVersionDeletion_desc' => '', 'settings_enableVersionModification' => '', 'settings_enableVersionModification_desc' => '', -'settings_encryptionKey' => '', +'settings_encryptionKey' => '加密密钥', 'settings_encryptionKey_desc' => '', 'settings_error' => '', -'settings_expandFolderTree' => '', -'settings_expandFolderTree_desc' => '', +'settings_expandFolderTree' => '展开文件夹树', +'settings_expandFolderTree_desc' => '展开文件夹树', 'settings_expandFolderTree_val0' => '', 'settings_expandFolderTree_val1' => '', 'settings_expandFolderTree_val2' => '', @@ -1049,14 +1086,14 @@ URL: [url]', 'settings_extraPath' => '额外的PHP的include路径', 'settings_extraPath_desc' => '附加软件的路径。这是包含目录,例如在ADODB目录或额外的PEAR包', 'settings_firstDayOfWeek' => '每周第一天', -'settings_firstDayOfWeek_desc' => '', +'settings_firstDayOfWeek_desc' => '本周第一天', 'settings_footNote' => '附注', 'settings_footNote_desc' => '显示在每个页面底部的信息', 'settings_fullSearchEngine' => '全文搜索引擎', 'settings_fullSearchEngine_desc' => '', 'settings_fullSearchEngine_vallucene' => 'Zend Lucene', 'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', -'settings_guestID' => '', +'settings_guestID' => '访客名称', 'settings_guestID_desc' => '', 'settings_httpRoot' => '', 'settings_httpRoot_desc' => '', @@ -1076,11 +1113,11 @@ URL: [url]', 'settings_language_desc' => '默认语言(“语言”文件夹的一个子文件夹的名字', 'settings_libraryFolder' => '', 'settings_libraryFolder_desc' => '', -'settings_logFileEnable' => '', +'settings_logFileEnable' => '开启日历文件', 'settings_logFileEnable_desc' => '', 'settings_logFileRotation' => '', 'settings_logFileRotation_desc' => '', -'settings_loginFailure' => '', +'settings_loginFailure' => '登录失败', 'settings_loginFailure_desc' => '', 'settings_luceneClassDir' => 'Lucene的SeedDMS目录', 'settings_luceneClassDir_desc' => '', @@ -1101,7 +1138,7 @@ URL: [url]', 'settings_Notification' => '通知设置', 'settings_notwritable' => '设置_不可写', 'settings_no_content_dir' => '', -'settings_overrideMimeType' => '', +'settings_overrideMimeType' => '覆盖Mime Type', 'settings_overrideMimeType_desc' => '', 'settings_partitionSize' => '', 'settings_partitionSize_desc' => '', @@ -1112,8 +1149,8 @@ URL: [url]', 'settings_passwordStrength' => '', 'settings_passwordStrengthAlgorithm' => '', 'settings_passwordStrengthAlgorithm_desc' => '', -'settings_passwordStrengthAlgorithm_valadvanced' => '', -'settings_passwordStrengthAlgorithm_valsimple' => '', +'settings_passwordStrengthAlgorithm_valadvanced' => '高级', +'settings_passwordStrengthAlgorithm_valsimple' => '简单', 'settings_passwordStrength_desc' => '', 'settings_pear_log' => '', 'settings_pear_webdav' => '', @@ -1138,7 +1175,7 @@ URL: [url]', 'settings_restricted_desc' => '', 'settings_rootDir' => '根目录', 'settings_rootDir_desc' => '', -'settings_rootFolderID' => '', +'settings_rootFolderID' => '根文件夹名称', 'settings_rootFolderID_desc' => '', 'settings_SaveError' => '', 'settings_Server' => '服务设置', @@ -1154,22 +1191,22 @@ URL: [url]', 'settings_siteName' => '站点名称', 'settings_siteName_desc' => '用于页面标题的站点名称,默认为SeedDMS', 'settings_SMTP' => 'SMTP 服务器设定', -'settings_smtpPassword' => '', -'settings_smtpPassword_desc' => '', +'settings_smtpPassword' => 'SMTP服务器密码', +'settings_smtpPassword_desc' => 'SMTP服务器密码', 'settings_smtpPort' => 'SMTP 服务器端口', 'settings_smtpPort_desc' => 'SMTP 服务器端口,默认25', 'settings_smtpSendFrom' => '发送自', 'settings_smtpSendFrom_desc' => '发送自', 'settings_smtpServer' => 'SMTP 服务器名称', 'settings_smtpServer_desc' => 'SMTP 服务器名称', -'settings_smtpUser' => '', -'settings_smtpUser_desc' => '', +'settings_smtpUser' => 'SMTP服务器用户', +'settings_smtpUser_desc' => 'SMTP服务器用户', 'settings_sortFoldersDefault' => '', 'settings_sortFoldersDefault_desc' => '', -'settings_sortFoldersDefault_val_name' => '', +'settings_sortFoldersDefault_val_name' => '通过名字', 'settings_sortFoldersDefault_val_sequence' => '', -'settings_sortFoldersDefault_val_unsorted' => '', -'settings_sortUsersInList' => '', +'settings_sortFoldersDefault_val_unsorted' => '未分类', +'settings_sortUsersInList' => '对列表中的用户排序', 'settings_sortUsersInList_desc' => '', 'settings_sortUsersInList_val_fullname' => '', 'settings_sortUsersInList_val_login' => '', @@ -1178,15 +1215,15 @@ URL: [url]', 'settings_start_install' => '', 'settings_stopWordsFile' => '', 'settings_stopWordsFile_desc' => '', -'settings_strictFormCheck' => '', -'settings_strictFormCheck_desc' => '', +'settings_strictFormCheck' => '严格表格检查', +'settings_strictFormCheck_desc' => '严格表格检查。如果此项为是,将检查所有表格中字段的值。如果设置为否,内容和关键字段检查将成为可选项。同时提交评论或覆盖文件时,始终要求注释', 'settings_suggestionvalue' => '', 'settings_System' => '系统设置', 'settings_theme' => '主题设置', 'settings_theme_desc' => '默认风格(“风格”文件夹的一个子文件夹的名字', 'settings_titleDisplayHack' => '', 'settings_titleDisplayHack_desc' => '', -'settings_undelUserIds' => '', +'settings_undelUserIds' => '不可删除的用户名', 'settings_undelUserIds_desc' => '', 'settings_updateDatabase' => '', 'settings_updateNotifyTime' => '更新时间通知', @@ -1195,9 +1232,9 @@ URL: [url]', 'settings_versioningFileName' => '文件名版本', 'settings_versioningFileName_desc' => '', 'settings_versiontolow' => '', -'settings_viewOnlineFileTypes' => '', +'settings_viewOnlineFileTypes' => '查看在线文件属性', 'settings_viewOnlineFileTypes_desc' => '', -'settings_workflowMode' => '', +'settings_workflowMode' => '工作流模式', 'settings_workflowMode_desc' => '', 'settings_workflowMode_valadvanced' => '先进...', 'settings_workflowMode_valtraditional' => '传统', @@ -1256,12 +1293,15 @@ URL: [url]', 'splash_rm_role' => '', 'splash_rm_transmittal' => '', 'splash_rm_user' => '', +'splash_rm_user_processes' => '', 'splash_saved_file' => '', +'splash_save_user_data' => '', 'splash_send_download_link' => '', 'splash_settings_saved' => '', 'splash_substituted_user' => '', 'splash_switched_back_user' => '', 'splash_toogle_group_manager' => '', +'splash_transfer_objects' => '', 'state_and_next_state' => '', 'statistic' => '统计', 'status' => '状态', @@ -1323,18 +1363,22 @@ URL: [url]', 'timeline_full_add_version' => '', 'timeline_full_status_change' => '', 'timeline_selected_item' => '', -'timeline_skip_add_file' => '', +'timeline_skip_add_file' => '添加附件', 'timeline_skip_status_change_-1' => '拒绝', 'timeline_skip_status_change_-3' => '过期', -'timeline_skip_status_change_0' => '', -'timeline_skip_status_change_1' => '', -'timeline_skip_status_change_2' => '', -'timeline_skip_status_change_3' => '', +'timeline_skip_status_change_0' => '待审核', +'timeline_skip_status_change_1' => '待批准', +'timeline_skip_status_change_2' => '发布', +'timeline_skip_status_change_3' => '在工作咯流中', +'timeline_skip_status_change_4' => '', +'timeline_skip_status_change_5' => '', 'timeline_status_change' => '版本 [版本]: [状态]', 'to' => '到', 'toggle_manager' => '角色切换', 'toggle_qrcode' => '', 'to_before_from' => '', +'transfer_objects' => '', +'transfer_objects_to_user' => '', 'transition_triggered_email' => '', 'transition_triggered_email_body' => '', 'transition_triggered_email_subject' => '', @@ -1384,10 +1428,12 @@ URL: [url]', 'uploading_zerosize' => '上传失败!请检查是否没有选择上传的文件。', 'used_discspace' => '使用磁盘空间', 'user' => '用户', +'userid_groupid' => '', 'users' => '用户', 'users_and_groups' => '', 'users_done_work' => '', 'user_exists' => '用户已存在', +'user_group' => '', 'user_group_management' => '用户/组的管理', 'user_image' => '用户图片', 'user_info' => '用户信息', @@ -1416,6 +1462,7 @@ URL: [url]', 'weeks' => '', 'week_view' => '周视图', 'workflow' => '', +'workflows_involded' => '', 'workflow_actions_management' => '', 'workflow_action_in_use' => '', 'workflow_action_name' => '', diff --git a/languages/zh_TW/lang.inc b/languages/zh_TW/lang.inc index 01b127201..b52818bd1 100644 --- a/languages/zh_TW/lang.inc +++ b/languages/zh_TW/lang.inc @@ -88,6 +88,14 @@ URL: [url]', 'already_subscribed' => '已經訂閱', 'and' => '和', 'apply' => '接受', +'approvals_accepted' => '', +'approvals_and_reviews_accepted' => '', +'approvals_and_reviews_not_touched' => '', +'approvals_and_reviews_rejected' => '', +'approvals_not_touched' => '', +'approvals_rejected' => '', +'approvals_without_group' => '', +'approvals_without_user' => '', 'approval_deletion_email' => '審核請求已被刪除', 'approval_deletion_email_body' => '', 'approval_deletion_email_subject' => '', @@ -254,7 +262,9 @@ URL: [url]', 'confirm_rm_transmittal' => '', 'confirm_rm_transmittalitem' => '', 'confirm_rm_user' => '您確定要刪除"[username]"用戶?
請注意:此動作執行後不能撤銷.', +'confirm_rm_user_from_processes' => '', 'confirm_rm_version' => '您確定要刪除"[documentname]文檔的[version]版本檔?
請注意:此動作執行後不能撤銷.', +'confirm_transfer_objects' => '', 'confirm_update_transmittalitem' => '', 'content' => '內容', 'continue' => '繼續', @@ -303,6 +313,7 @@ URL: [url]', 'documents_user_reception' => '', 'documents_user_rejected' => '', 'documents_user_requiring_attention' => '需您關注的文檔', +'documents_with_notification' => '', 'document_already_checkedout' => '', 'document_already_locked' => '該文檔已被鎖定', 'document_comment_changed_email' => '', @@ -436,6 +447,7 @@ URL: [url]', 'folder' => '資料夾', 'folders' => '資料夾', 'folders_and_documents_statistic' => '內容概要', +'folders_with_notification' => '', 'folder_comment_changed_email' => '', 'folder_comment_changed_email_body' => '', 'folder_comment_changed_email_subject' => '', @@ -544,6 +556,7 @@ URL: [url]', 'js_no_approval_group' => '請選擇審核組', 'js_no_approval_status' => '請選擇審核狀態', 'js_no_comment' => '沒有添加說明', +'js_no_currentpwd' => '', 'js_no_email' => '輸入您的e-mail', 'js_no_file' => '請選擇一個檔', 'js_no_keywords' => '指定關鍵字', @@ -608,6 +621,7 @@ URL: [url]', 'march' => '三 月', 'max_upload_size' => '最大上傳文件大小', 'may' => '五 月', +'menu_dropfolder' => '', 'mimetype' => 'MIME類型', 'minutes' => '', 'misc' => '其他', @@ -721,7 +735,9 @@ URL: [url]', 'password_strength_insuffient' => '', 'password_wrong' => '', 'pending_approvals' => '', +'pending_receipt' => '', 'pending_reviews' => '', +'pending_revision' => '', 'pending_workflows' => '', 'personal_default_keywords' => '用戶關鍵字', 'pl_PL' => '波蘭語', @@ -734,11 +750,18 @@ URL: [url]', 'preview_plain' => '', 'previous_state' => '', 'previous_versions' => '先前版本', +'process' => '', +'process_without_user_group' => '', 'pt_BR' => '葡萄牙語', 'quota' => '配額', 'quota_exceeded' => '', 'quota_is_disabled' => '', 'quota_warning' => '', +'receipts_accepted' => '', +'receipts_not_touched' => '', +'receipts_rejected' => '', +'receipts_without_group' => '', +'receipts_without_user' => '', 'receipt_deletion_email_body' => '', 'receipt_deletion_email_subject' => '', 'receipt_log' => '', @@ -762,7 +785,7 @@ URL: [url]', 'removed_file_email_subject' => '', 'removed_recipient' => '', 'removed_reviewer' => '已經從校對人名單中刪除', -'removed_revispr' => '', +'removed_revisor' => '', 'removed_workflow_email_body' => '', 'removed_workflow_email_subject' => '', 'removeFolderFromDropFolder' => '', @@ -781,6 +804,11 @@ URL: [url]', 'reviewers' => '校對人', 'reviewer_already_assigned' => '已經被指派為校對人', 'reviewer_already_removed' => '已經從校對佇列中刪除或者已經提交校對', +'reviews_accepted' => '', +'reviews_not_touched' => '', +'reviews_rejected' => '', +'reviews_without_group' => '', +'reviews_without_user' => '', 'review_deletion_email' => '校對請求被刪除', 'review_deletion_email_body' => '', 'review_deletion_email_subject' => '', @@ -798,6 +826,12 @@ URL: [url]', 'review_update_failed' => '錯誤 更新校對狀態.更新失敗', 'revise_document' => '', 'revise_document_on' => '', +'revisions_accepted' => '', +'revisions_not_touched' => '', +'revisions_pending' => '', +'revisions_rejected' => '', +'revisions_without_group' => '', +'revisions_without_user' => '', 'revision_date' => '', 'revision_log' => '', 'revision_request_email_body' => '', @@ -826,6 +860,7 @@ URL: [url]', 'rm_transmittal' => '', 'rm_transmittalitem' => '', 'rm_user' => '刪除該用戶', +'rm_user_from_processes' => '', 'rm_version' => '刪除該版本', 'rm_workflow' => '', 'rm_workflow_action' => '', @@ -977,6 +1012,8 @@ URL: [url]', 'settings_enableClipboard_desc' => '', 'settings_enableConverting' => '', 'settings_enableConverting_desc' => '', +'settings_enableDropFolderList' => '', +'settings_enableDropFolderList_desc' => '', 'settings_enableDropUpload' => '', 'settings_enableDropUpload_desc' => '', 'settings_enableDuplicateDocNames' => '允許重複的檔案名', @@ -1254,12 +1291,15 @@ URL: [url]', 'splash_rm_role' => '', 'splash_rm_transmittal' => '', 'splash_rm_user' => '', +'splash_rm_user_processes' => '', 'splash_saved_file' => '', +'splash_save_user_data' => '', 'splash_send_download_link' => '', 'splash_settings_saved' => '', 'splash_substituted_user' => '', 'splash_switched_back_user' => '', 'splash_toogle_group_manager' => '', +'splash_transfer_objects' => '', 'state_and_next_state' => '', 'statistic' => '', 'status' => '狀態', @@ -1328,11 +1368,15 @@ URL: [url]', 'timeline_skip_status_change_1' => '', 'timeline_skip_status_change_2' => '', 'timeline_skip_status_change_3' => '', +'timeline_skip_status_change_4' => '', +'timeline_skip_status_change_5' => '', 'timeline_status_change' => '版本 [版本號]:[狀態]', 'to' => '到', 'toggle_manager' => '角色切換', 'toggle_qrcode' => '', 'to_before_from' => '', +'transfer_objects' => '', +'transfer_objects_to_user' => '', 'transition_triggered_email' => '', 'transition_triggered_email_body' => '', 'transition_triggered_email_subject' => '', @@ -1382,10 +1426,12 @@ URL: [url]', 'uploading_zerosize' => '上傳失敗!請檢查是否沒有選擇上傳的檔。', 'used_discspace' => '使用磁碟空間', 'user' => '用戶', +'userid_groupid' => '', 'users' => '用戶', 'users_and_groups' => '', 'users_done_work' => '', 'user_exists' => '用戶已存在', +'user_group' => '', 'user_group_management' => '用戶/組的管理', 'user_image' => '使用者圖片', 'user_info' => '使用者資訊', @@ -1414,6 +1460,7 @@ URL: [url]', 'weeks' => '', 'week_view' => '周視圖', 'workflow' => '流程', +'workflows_involded' => '', 'workflow_actions_management' => '流程動作管理', 'workflow_action_in_use' => '正在使用之流程動作', 'workflow_action_name' => '流程動作名稱', diff --git a/op/op.AddFile.php b/op/op.AddFile.php index 32d67c93a..80f0e6c31 100644 --- a/op/op.AddFile.php +++ b/op/op.AddFile.php @@ -44,11 +44,12 @@ if ($document->getAccessMode($user) < M_READWRITE) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); } -if(isset($_POST['fineuploaderuuids']) && $_POST['fineuploaderuuids']) { - $uuids = explode(';', $_POST['fineuploaderuuids']); - $names = explode(';', $_POST['fineuploadernames']); +$prefix = 'userfile'; +if(isset($_POST[$prefix.'-fine-uploader-uuids']) && $_POST[$prefix.'-fine-uploader-uuids']) { + $uuids = explode(';', $_POST[$prefix.'-fine-uploader-uuids']); + $names = explode(';', $_POST[$prefix.'-fine-uploader-names']); foreach($uuids as $i=>$uuid) { - $fullfile = $settings->_stagingDir.'/'.basename($uuid); + $fullfile = $settings->_stagingDir.'/'.utf8_basename($uuid); if(file_exists($fullfile)) { $finfo = finfo_open(FILEINFO_MIME_TYPE); $mimetype = finfo_file($finfo, $fullfile); diff --git a/op/op.Ajax.php b/op/op.Ajax.php index b95aac189..3a7154b98 100644 --- a/op/op.Ajax.php +++ b/op/op.Ajax.php @@ -642,6 +642,7 @@ switch($command) { $indexconf['Indexer']::init($settings->_stopWordsFile); } else { $index = null; + $indexconf = null; } $controller = Controller::factory('AddDocument'); diff --git a/op/op.CheckInDocument.php b/op/op.CheckInDocument.php index 78459d678..e3e336741 100644 --- a/op/op.CheckInDocument.php +++ b/op/op.CheckInDocument.php @@ -245,9 +245,6 @@ else foreach ($notifyList["groups"] as $grp) { $notifier->toGroup($user, $grp, $subject, $message, $params); } - // if user is not owner send notification to owner - if ($user->getID() != $document->getOwner()->getID()) - $notifier->toIndividual($user, $document->getOwner(), $subject, $message, $params); if($workflow && $settings->_enableNotificationWorkflow) { $subject = "request_workflow_action_email_subject"; @@ -272,6 +269,51 @@ else } } } + + if($settings->_enableNotificationAppRev) { + /* Reviewers and approvers will be informed about the new document */ + if($reviewers['i'] || $reviewers['g']) { + $subject = "review_request_email_subject"; + $message = "review_request_email_body"; + $params = array(); + $params['name'] = $document->getName(); + $params['folder_path'] = $folder->getFolderPathPlain(); + $params['version'] = $reqversion; + $params['comment'] = $comment; + $params['username'] = $user->getFullName(); + $params['url'] = "http".((isset($_SERVER['HTTPS']) && (strcmp($_SERVER['HTTPS'],'off')!=0)) ? "s" : "")."://".$_SERVER['HTTP_HOST'].$settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID(); + $params['sitename'] = $settings->_siteName; + $params['http_root'] = $settings->_httpRoot; + + foreach($reviewers['i'] as $reviewerid) { + $notifier->toIndividual($user, $dms->getUser($reviewerid), $subject, $message, $params); + } + foreach($reviewers['g'] as $reviewergrpid) { + $notifier->toGroup($user, $dms->getGroup($reviewergrpid), $subject, $message, $params); + } + } + + elseif($approvers['i'] || $approvers['g']) { + $subject = "approval_request_email_subject"; + $message = "approval_request_email_body"; + $params = array(); + $params['name'] = $document->getName(); + $params['folder_path'] = $folder->getFolderPathPlain(); + $params['version'] = $reqversion; + $params['comment'] = $comment; + $params['username'] = $user->getFullName(); + $params['url'] = "http".((isset($_SERVER['HTTPS']) && (strcmp($_SERVER['HTTPS'],'off')!=0)) ? "s" : "")."://".$_SERVER['HTTP_HOST'].$settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID(); + $params['sitename'] = $settings->_siteName; + $params['http_root'] = $settings->_httpRoot; + + foreach($approvers['i'] as $approverid) { + $notifier->toIndividual($user, $dms->getUser($approverid), $subject, $message, $params); + } + foreach($approvers['g'] as $approvergrpid) { + $notifier->toGroup($user, $dms->getGroup($approvergrpid), $subject, $message, $params); + } + } + } } $expires = false; diff --git a/op/op.EditUserData.php b/op/op.EditUserData.php index f390613de..fec4ad607 100644 --- a/op/op.EditUserData.php +++ b/op/op.EditUserData.php @@ -127,6 +127,8 @@ if (isset($_FILES["userfile"]) && is_uploaded_file($_FILES["userfile"]["tmp_name $user->setImage($_FILES["userfile"]["tmp_name"], $_FILES["userfile"]["type"]); } +$session->setSplashMsg(array('type'=>'success', 'msg'=>getMLText('splash_save_user_data'))); + add_log_line("?user=".$user->getLogin()); header("Location:../out/out.MyAccount.php"); diff --git a/op/op.ReviewDocument.php b/op/op.ReviewDocument.php index 3a4c91e76..2e43716bf 100644 --- a/op/op.ReviewDocument.php +++ b/op/op.ReviewDocument.php @@ -94,7 +94,7 @@ if($_FILES["reviewfile"]["tmp_name"]) { } $controller->setParam('document', $document); -$controller->setParam('content', $latestContent); +$controller->setParam('content', $content); $controller->setParam('reviewstatus', $_POST["reviewStatus"]); $controller->setParam('reviewtype', $_POST["reviewType"]); if ($_POST["reviewType"] == "grp") { @@ -161,7 +161,7 @@ if($olddocstatus['status'] != $newdocstatus['status']) { } // Notify approvers, if necessary. -if ($newdocstatus == S_DRAFT_APP) { +if ($newdocstatus['status'] == S_DRAFT_APP) { $requestUser = $document->getOwner(); if($notifier) { diff --git a/op/op.SetRecipients.php b/op/op.SetRecipients.php index 7b8eb9e93..926e010a8 100644 --- a/op/op.SetRecipients.php +++ b/op/op.SetRecipients.php @@ -164,9 +164,7 @@ if (count($receiptIndex["i"]) > 0) { if (!isset($accessIndex["i"][$rx])) { // User does not have any receipt privileges for this document // revision or does not exist. - $queryStr = "INSERT INTO `tblDocumentReceiptLog` (`receiptID`, `status`, `comment`, `date`, `userID`) ". - "VALUES ('". $receiptStatus[$rv["idx"]]["receiptID"] ."', '".S_LOG_USER_REMOVED."', '".getMLText("removed_recipient")."', NOW(), '". $user->getID() ."')"; - $res = $db->getResult($queryStr); + $res = $content->delIndRecipient($dms->getUser($rx), $user, getMLText("removed_recipient")); } else { $res = $content->delIndRecipient($accessIndex["i"][$rx], $user); @@ -270,9 +268,7 @@ if (count($receiptIndex["g"]) > 0) { if (!isset($accessIndex["g"][$rx])) { // Group does not have any receipt privileges for this document // revision or does not exist. - $queryStr = "INSERT INTO `tblDocumentReceiptLog` (`receiptID`, `status`, `comment`, `date`, `userID`) ". - "VALUES ('". $receiptStatus[$rv["idx"]]["receiptID"] ."', '".S_LOG_USER_REMOVED."', '".getMLText("removed_recipient")."', NOW(), '". $user->getID() ."')"; - $res = $db->getResult($queryStr); + $res = $content->delGrpRecipient($dms->getGroup($rx), $user, getMLText("removed_recipient")); } else { $res = $content->delGrpRecipient($accessIndex["g"][$rx], $user); diff --git a/op/op.SetReviewersApprovers.php b/op/op.SetReviewersApprovers.php index cdfb3210a..f895945dd 100644 --- a/op/op.SetReviewersApprovers.php +++ b/op/op.SetReviewersApprovers.php @@ -62,6 +62,7 @@ if ($overallStatus["status"]==S_REJECTED || $overallStatus["status"]==S_OBSOLETE } $folder = $document->getFolder(); +$owner = $document->getOwner(); // Retrieve a list of all users and groups that have review / approve // privileges. @@ -118,6 +119,18 @@ if (isset($_POST["grpIndReviewers"])) { } } $pGrpRev = (isset($_POST["grpReviewers"]) ? array_values(array_unique($_POST["grpReviewers"])) : array()); +if($user->getID() != $owner->getID()) { + $res=$owner->getMandatoryReviewers(); + if($user->isAdmin()) + $res = array(); +} else + $res=$user->getMandatoryReviewers(); +foreach ($res as $r) { + if(!in_array($r['reviewerUserID'], $pIndRev)) + $pIndRev[] = $r['reviewerUserID']; + if(!in_array($r['reviewerGroupID'], $pGrpRev)) + $pGrpRev[] = $r['reviewerGroupID']; +} foreach ($pIndRev as $p) { if (is_numeric($p)) { if (isset($accessIndex["i"][$p])) { @@ -350,6 +363,18 @@ if (isset($_POST["grpIndApprovers"])) { } } $pGrpApp = (isset($_POST["grpApprovers"]) ? array_values(array_unique($_POST["grpApprovers"])) : array()); +if($user->getID() != $owner->getID()) { + $res=$owner->getMandatoryApprovers(); + if($user->isAdmin()) + $res = array(); +} else + $res=$user->getMandatoryApprovers(); +foreach ($res as $r) { + if(!in_array($r['approverUserID'], $pIndApp)) + $pIndApp[] = $r['approverUserID']; + if(!in_array($r['approverGroupID'], $pGrpApp)) + $pGrpApp[] = $r['approverGroupID']; +} foreach ($pIndApp as $p) { if (is_numeric($p)) { if (isset($accessIndex["i"][$p])) { diff --git a/op/op.SetRevisors.php b/op/op.SetRevisors.php index 3026a16ce..f13dbceaa 100644 --- a/op/op.SetRevisors.php +++ b/op/op.SetRevisors.php @@ -161,7 +161,7 @@ if (count($revisionIndex["i"]) > 0) { if (!isset($accessIndex["i"][$rx])) { // User does not have any revision privileges for this document // revision or does not exist. - $res = $content->delIndRevisor($dms->getUser($rx), $user, getMLText("removed_recipient")); + $res = $content->delIndRevisor($dms->getUser($rx), $user, getMLText("removed_revisor")); } else { $res = $content->delIndRevisor($accessIndex["i"][$rx], $user); @@ -263,7 +263,7 @@ if (count($revisionIndex["g"]) > 0) { if (!isset($accessIndex["g"][$rx])) { // Group does not have any revision privileges for this document // revision or does not exist. - $res = $content->delGrpRevisor($dms->getGroup($rx), $user, getMLText("removed_recipient")); + $res = $content->delGrpRevisor($dms->getGroup($rx), $user, getMLText("removed_revisor")); } else { $res = $content->delGrpRevisor($accessIndex["g"][$rx], $user); @@ -307,6 +307,9 @@ if (count($revisionIndex["g"]) > 0) { } } +/* Recheck status, because all revisors could have been removed */ +$content->verifyStatus(false, $user, getMLText('automatic_status_update')); + add_log_line("?documentid=".$documentid); header("Location:../out/out.DocumentVersionDetail.php?documentid=".$documentid."&version=".$version); diff --git a/op/op.Settings.php b/op/op.Settings.php index c7743cd14..98291589e 100644 --- a/op/op.Settings.php +++ b/op/op.Settings.php @@ -84,6 +84,7 @@ if ($action == "saveSettings") $settings->_enableSessionList = getBoolValue("enableSessionList"); $settings->_enableClipboard = getBoolValue("enableClipboard"); $settings->_enableMenuTasks = getBoolValue("enableMenuTasks"); + $settings->_enableDropFolderList = getBoolValue("enableDropFolderList"); $settings->_enableDropUpload = getBoolValue("enableDropUpload"); $settings->_enableMultiUpload = getBoolValue("enableMultiUpload"); $settings->_enableFolderTree = getBoolValue("enableFolderTree"); diff --git a/op/op.UsrMgr.php b/op/op.UsrMgr.php index 6382db471..8c23cc26b 100644 --- a/op/op.UsrMgr.php +++ b/op/op.UsrMgr.php @@ -182,6 +182,100 @@ else if ($action == "removeuser") { $userid=-1; } +// remove user from all processes (approval, review) +else if ($action == "removefromprocesses") { + + /* Check if the form data comes from a trusted request */ + if(!checkFormKey('removefromprocesses')) { + UI::exitError(getMLText("admin_tools"),getMLText("invalid_request_token")); + } + + if (isset($_POST["userid"])) { + $userid = $_POST["userid"]; + } + + if (!isset($userid) || !is_numeric($userid) || intval($userid)<1) { + UI::exitError(getMLText("admin_tools"),getMLText("invalid_user_id")); + } + + /* This used to be a check if an admin is deleted. Now it checks if one + * wants to delete herself. + */ + if ($userid==$user->getID()) { + UI::exitError(getMLText("admin_tools"),getMLText("cannot_delete_yourself")); + } + + $userToRemove = $dms->getUser($userid); + if (!is_object($userToRemove)) { + UI::exitError(getMLText("admin_tools"),getMLText("invalid_user_id")); + } + + if(isset($_POST["status"]) && is_array($_POST["status"]) && $_POST["status"]) { + if(!isset($_POST["status"]["review"])) + $_POST["status"]["review"] = array(); + if(!isset($_POST["status"]["approval"])) + $_POST["status"]["approval"] = array(); + if(!isset($_POST["status"]["receipt"])) + $_POST["status"]["receipt"] = array(); + if(!isset($_POST["status"]["revision"])) + $_POST["status"]["revision"] = array(); + if (!$userToRemove->removeFromProcesses($user, $_POST['status'])) { + UI::exitError(getMLText("admin_tools"),getMLText("error_occured")); + } + + add_log_line(".php&action=removefromprocesses&userid=".$userid); + + $session->setSplashMsg(array('type'=>'success', 'msg'=>getMLText('splash_rm_user_processes'))); + } +} + +// transfer all objects from one user to another one +else if ($action == "transferobjects") { + + /* Check if the form data comes from a trusted request */ + if(!checkFormKey('transferobjects')) { + UI::exitError(getMLText("admin_tools"),getMLText("invalid_request_token")); + } + + if (isset($_POST["userid"])) { + $userid = $_POST["userid"]; + } + + if (!isset($userid) || !is_numeric($userid) || intval($userid)<1) { + UI::exitError(getMLText("admin_tools"),getMLText("invalid_user_id")); + } + + /* Check if one wants to transfer his/her own objects. + */ + if ($userid==$user->getID()) { + UI::exitError(getMLText("admin_tools"),getMLText("cannot_transfer_your_objects")); + } + + $userToRemove = $dms->getUser($userid); + if (!is_object($userToRemove)) { + UI::exitError(getMLText("admin_tools"),getMLText("invalid_user_id")); + } + + $userToAssign = $dms->getUser($_POST["assignTo"]); + if (!$userToRemove->remove($user, $userToAssign)) { + UI::exitError(getMLText("admin_tools"),getMLText("error_occured")); + } + +// if(isset($_POST["status"]) && is_array($_POST["status"]) && $_POST["status"]) { + if (!$userToRemove->transferDocumentsFolders($userToAssign)) { + UI::exitError(getMLText("admin_tools"),getMLText("error_occured")); + } + + if (!$userToRemove->transferEvents($userToAssign)) { + UI::exitError(getMLText("admin_tools"),getMLText("error_occured")); + } + + add_log_line(".php&action=transferobjects&userid=".$userid); + + $session->setSplashMsg(array('type'=>'success', 'msg'=>getMLText('splash_transfer_objects'))); +// } +} + // modify user ------------------------------------------------------------ else if ($action == "edituser") { diff --git a/out/out.AddDocument.php b/out/out.AddDocument.php index 83eb9ae45..a103d5175 100644 --- a/out/out.AddDocument.php +++ b/out/out.AddDocument.php @@ -79,6 +79,7 @@ if($view) { $view->setParam('enableselfrevapp', $settings->_enableSelfRevApp); $view->setParam('libraryfolder', $libfolder); $view->setParam('dropfolderdir', $settings->_dropFolderDir); + $view->setParam('dropfolderfile', isset($_REQUEST["dropfolderfileform1"]) ?$_REQUEST["dropfolderfileform1"] : ''); $view->setParam('workflowmode', $settings->_workflowMode); $view->setParam('presetexpiration', $settings->_presetExpirationDate); $view->setParam('sortusersinlist', $settings->_sortUsersInList); diff --git a/out/out.ApprovalSummary.php b/out/out.ApprovalSummary.php index 97633b842..ed250d1a8 100644 --- a/out/out.ApprovalSummary.php +++ b/out/out.ApprovalSummary.php @@ -36,6 +36,7 @@ if ($user->isGuest()) { } if($view) { + $view->setParam('showtree', showtree()); $view->setParam('cachedir', $settings->_cacheDir); $view->setParam('previewWidthList', $settings->_previewWidthList); $view->setParam('previewconverters', $settings->_converters['preview']); diff --git a/out/out.DropFolderChooser.php b/out/out.DropFolderChooser.php index e95ec0032..54f83be27 100644 --- a/out/out.DropFolderChooser.php +++ b/out/out.DropFolderChooser.php @@ -26,7 +26,10 @@ include("../inc/inc.DBInit.php"); include("../inc/inc.ClassUI.php"); include("../inc/inc.Authentication.php"); -$form = preg_replace('/[^A-Za-z0-9_]+/', '', $_GET["form"]); +if(isset($_GET["form"])) + $form = preg_replace('/[^A-Za-z0-9_]+/', '', $_GET["form"]); +else + $form = ''; if(substr($settings->_dropFolderDir, -1, 1) == DIRECTORY_SEPARATOR) $dropfolderdir = substr($settings->_dropFolderDir, 0, -1); @@ -42,7 +45,7 @@ $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user)); if($view) { $view->setParam('dropfolderdir', $dropfolderdir); - $view->setParam('dropfolderfile', $_GET["dropfolderfile"]); + $view->setParam('dropfolderfile', isset($_GET["dropfolderfile"]) ? $_GET["dropfolderfile"] : ''); $view->setParam('form', $form); $view->setParam('cachedir', $settings->_cacheDir); $view->setParam('previewWidthList', $settings->_previewWidthList); diff --git a/out/out.EditAttributes.php b/out/out.EditAttributes.php index 650fb2ddf..f0aa2533b 100644 --- a/out/out.EditAttributes.php +++ b/out/out.EditAttributes.php @@ -48,6 +48,9 @@ $folder = $document->getFolder(); /* Create object for checking access to certain operations */ $accessop = new SeedDMS_AccessOperation($dms, $user, $settings); +if(!$accessop->mayEditAttributes($document)) { + UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); +} $attrdefs = $dms->getAllAttributeDefinitions(array(SeedDMS_Core_AttributeDefinition::objtype_documentcontent, SeedDMS_Core_AttributeDefinition::objtype_all)); $f = null; diff --git a/out/out.EditComment.php b/out/out.EditComment.php index 557d0f290..de0fe3dce 100644 --- a/out/out.EditComment.php +++ b/out/out.EditComment.php @@ -53,6 +53,9 @@ $folder = $document->getFolder(); /* Create object for checking access to certain operations */ $accessop = new SeedDMS_AccessOperation($dms, $user, $settings); +if(!$accessop->mayEditComment($document)) { + UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); +} $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user)); diff --git a/out/out.EditOnline.php b/out/out.EditOnline.php index f75cfb5cc..6752afae6 100644 --- a/out/out.EditOnline.php +++ b/out/out.EditOnline.php @@ -58,6 +58,7 @@ if(isset($_GET["version"])) { $lc = $document->getLatestContent(); } else { + $version = 0; $content = $document->getLatestContent(); $lc = $document->getLatestContent(); } @@ -77,6 +78,12 @@ if (!isset($settings->_editOnlineFileTypes) || !is_array($settings->_editOnlineF } */ +/* Create object for checking access to certain operations */ +$accessop = new SeedDMS_AccessOperation($dms, $user, $settings); +if(!$accessop->mayEditVersion($document, $version)) { + UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); +} + $folder = $document->getFolder(); if($view) { diff --git a/out/out.ObjectCheck.php b/out/out.ObjectCheck.php index ed91bd287..d2b64783e 100644 --- a/out/out.ObjectCheck.php +++ b/out/out.ObjectCheck.php @@ -66,17 +66,43 @@ if(isset($_GET['setchecksum']) && $_GET['setchecksum'] == 1) { $folder = $dms->getFolder($settings->_rootFolderID); $unlinkedversions = $dms->getUnlinkedDocumentContent(); -$unlinkedfolders = $dms->checkFolders(); -$unlinkeddocuments = $dms->checkDocuments(); -$nofilesizeversions = $dms->getNoFileSizeDocumentContent(); -$nochecksumversions = $dms->getNoChecksumDocumentContent(); -$duplicateversions = $dms->getDuplicateDocumentContent(); -$tmprevs = $dms->getDocumentsInRevision(); +if(!isset($_GET['action']) || $_GET['action'] == 'listUnlinkedFolders') + $unlinkedfolders = $dms->checkFolders(); +else + $unlinkedfolders = null; +if(!isset($_GET['action']) || $_GET['action'] == 'listUnlinkedDocuments') + $unlinkeddocuments = $dms->checkDocuments(); +else + $unlinkeddocuments = null; +if(!isset($_GET['action']) || $_GET['action'] == 'listMissingFileSize') + $nofilesizeversions = $dms->getNoFileSizeDocumentContent(); +else + $nofilesizeversions = null; +if(!isset($_GET['action']) || $_GET['action'] == 'listMissingChecksum') + $nochecksumversions = $dms->getNoChecksumDocumentContent(); +else + $nochecksumversions = null; +if(!isset($_GET['action']) || $_GET['action'] == 'listDuplicateContent') + $duplicateversions = $dms->getDuplicateDocumentContent(); +else + $duplicateversions = null; +$processwithoutusergroup = array(); +foreach(array('review', 'approval', 'receipt', 'revision') as $process) { + foreach(array('user', 'group') as $ug) { + if(!isset($_GET['action']) || $_GET['action'] == 'list'.ucfirst($process).'Without'.ucfirst($ug)) { + $processwithoutusergroup[$process][$ug] = $dms->getProcessWithoutUserGroup($process, $ug); + } + } +} $docsinrevision = array(); +if(!isset($_GET['action']) || $_GET['action'] == 'listDocsInRevisionNoAccess') { +$tmprevs = $dms->getDocumentsInRevision(); foreach($tmprevs as $rev) { if($doc = $dms->getDocument($rev['documentID'])) { + $isdisabled = false; if($rev['type'] == 0) { $ruser = $dms->getUser($rev['required']); + $isdisabled = $ruser->isDisabled(); $mode = $doc->getAccessMode($ruser); $content = $doc->getContentByVersion($rev['version']); $cmode = $content->getAccessMode($ruser); @@ -88,16 +114,21 @@ foreach($tmprevs as $rev) { /* Caution: $content->getAccessMode($ruser) doesn't work as it uses the role * restrictions of the currently logged in user */ - if($mode < M_READ || $cmode < M_READ) + if($mode < M_READ || $cmode < M_READ || $isdisabled) $docsinrevision[] = $doc; } } -$tmprevs = $dms->getDocumentsInReception(); +} + $docsinreception = array(); +if(!isset($_GET['action']) || $_GET['action'] == 'listDocsInReceptionNoAccess') { +$tmprevs = $dms->getDocumentsInReception(); foreach($tmprevs as $rev) { if($doc = $dms->getDocument($rev['documentID'])) { + $isdisabled = false; if($rev['type'] == 0) { $ruser = $dms->getUser($rev['required']); + $isdisabled = $ruser->isDisabled(); $mode = $doc->getAccessMode($ruser); $content = $doc->getContentByVersion($rev['version']); $cmode = $content->getAccessMode($ruser); @@ -109,10 +140,12 @@ foreach($tmprevs as $rev) { /* Caution: $content->getAccessMode($ruser) doesn't work as it uses the role * restrictions of the currently logged in user */ - if($mode < M_READ || $cmode < M_READ) + if($mode < M_READ || $cmode < M_READ || $isdisabled) $docsinreception[] = $doc; } } +} + $rootfolder = $dms->getFolder($settings->_rootFolderID); function repair_tree($dms, $user, $folder, $path=':') { /* {{{ */ @@ -164,7 +197,10 @@ function repair_tree($dms, $user, $folder, $path=':') { /* {{{ */ return $objects; } /* }}} */ -$repairobjects = repair_tree($dms, $user, $folder); +if(!isset($_GET['action']) || $_GET['action'] == 'listRepair') + $repairobjects = repair_tree($dms, $user, $folder); +else + $repairobjects = null; if($view) { $view->setParam('folder', $folder); @@ -178,6 +214,7 @@ if($view) { $view->setParam('duplicateversions', $duplicateversions); $view->setParam('docsinrevision', $docsinrevision); $view->setParam('docsinreception', $docsinreception); + $view->setParam('processwithoutusergroup', $processwithoutusergroup); $view->setParam('unlink', $unlink); $view->setParam('setfilesize', $setfilesize); $view->setParam('setchecksum', $setchecksum); diff --git a/out/out.OverrideContentStatus.php b/out/out.OverrideContentStatus.php index b48f63173..d7db760d8 100644 --- a/out/out.OverrideContentStatus.php +++ b/out/out.OverrideContentStatus.php @@ -52,17 +52,13 @@ if (!is_object($content)) { UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("invalid_version")); } -$overallStatus = $content->getStatus(); - -// status change control -if ($overallStatus["status"] == S_REJECTED || $overallStatus["status"] == S_EXPIRED || $overallStatus["status"] == S_DRAFT_REV || $overallStatus["status"] == S_DRAFT_APP ) { - UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("cannot_change_final_states")); -} - $folder = $document->getFolder(); /* Create object for checking access to certain operations */ $accessop = new SeedDMS_AccessOperation($dms, $user, $settings); +if(!$accessop->mayOverwriteStatus($document)) { + UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("cannot_change_final_states")); +} $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user)); diff --git a/out/out.RemoveUserFromProcesses.php b/out/out.RemoveUserFromProcesses.php new file mode 100644 index 000000000..3948a5d78 --- /dev/null +++ b/out/out.RemoveUserFromProcesses.php @@ -0,0 +1,54 @@ +isAdmin()) { + UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); +} + +if (!isset($_GET["userid"]) || !is_numeric($_GET["userid"]) || intval($_GET["userid"])<1) { + UI::exitError(getMLText("rm_user"),getMLText("invalid_user_id")); +} + +$rmuser = $dms->getUser(intval($_GET["userid"])); +if (!is_object($rmuser)) { + UI::exitError(getMLText("rm_user"),getMLText("invalid_user_id")); +} + +if ($rmuser->getID()==$user->getID()) { + UI::exitError(getMLText("rm_user"),getMLText("cannot_delete_yourself")); +} + +$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); +$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user)); +if($view) { + $view->setParam('rmuser', $rmuser); + $view($_GET); + exit; +} + +?> diff --git a/out/out.RemoveVersion.php b/out/out.RemoveVersion.php index a9c5fdd46..9ba7249e0 100644 --- a/out/out.RemoveVersion.php +++ b/out/out.RemoveVersion.php @@ -62,6 +62,9 @@ $folder = $document->getFolder(); /* Create object for checking access to certain operations */ $accessop = new SeedDMS_AccessOperation($dms, $user, $settings); +if(!$accessop->mayRemoveVersion($document)) { + UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("access_denied")); +} $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user)); diff --git a/out/out.ReviewSummary.php b/out/out.ReviewSummary.php index 97633b842..ed250d1a8 100644 --- a/out/out.ReviewSummary.php +++ b/out/out.ReviewSummary.php @@ -36,6 +36,7 @@ if ($user->isGuest()) { } if($view) { + $view->setParam('showtree', showtree()); $view->setParam('cachedir', $settings->_cacheDir); $view->setParam('previewWidthList', $settings->_previewWidthList); $view->setParam('previewconverters', $settings->_converters['preview']); diff --git a/out/out.SetReviewersApprovers.php b/out/out.SetReviewersApprovers.php index 5a77c85c4..36c8668e5 100644 --- a/out/out.SetReviewersApprovers.php +++ b/out/out.SetReviewersApprovers.php @@ -51,18 +51,14 @@ if (!is_object($content)) { UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("invalid_version")); } -if(!$settings->_enableVersionModification) { - UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("no_version_modification")); -} +$folder = $document->getFolder(); /* Create object for checking access to certain operations */ $accessop = new SeedDMS_AccessOperation($dms, $user, $settings); -if (!$accessop->maySetReviewersApprovers($document)) { - UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("cannot_assign_invalid_state")); +if(!$accessop->maySetReviewersApprovers($document)) { + UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("no_version_modification")); } -$folder = $document->getFolder(); - $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user)); if($view) { diff --git a/out/out.SetWorkflow.php b/out/out.SetWorkflow.php index 0470894b0..94ab41a6b 100644 --- a/out/out.SetWorkflow.php +++ b/out/out.SetWorkflow.php @@ -53,6 +53,9 @@ $folder = $document->getFolder(); /* Create object for checking access to certain operations */ $accessop = new SeedDMS_AccessOperation($dms, $user, $settings); +if(!$accessop->maySetWorkflow($document)) { + UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); +} $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user)); diff --git a/out/out.TransferObjects.php b/out/out.TransferObjects.php new file mode 100644 index 000000000..7b45fe4a9 --- /dev/null +++ b/out/out.TransferObjects.php @@ -0,0 +1,57 @@ +isAdmin()) { + UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); +} + +if (!isset($_GET["userid"]) || !is_numeric($_GET["userid"]) || intval($_GET["userid"])<1) { + UI::exitError(getMLText("rm_user"),getMLText("invalid_user_id")); +} + +$rmuser = $dms->getUser(intval($_GET["userid"])); +if (!is_object($rmuser)) { + UI::exitError(getMLText("rm_user"),getMLText("invalid_user_id")); +} + +if ($rmuser->getID()==$user->getID()) { + UI::exitError(getMLText("rm_user"),getMLText("cannot_delete_yourself")); +} + +$allusers = $dms->getAllUsers($settings->_sortUsersInList); + +$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); +$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user)); +if($view) { + $view->setParam('rmuser', $rmuser); + $view->setParam('allusers', $allusers); + $view($_GET); + exit; +} + +?> diff --git a/utils/open-tasks.php b/utils/open-tasks.php new file mode 100644 index 000000000..480d98ba7 --- /dev/null +++ b/utils/open-tasks.php @@ -0,0 +1,302 @@ +] [-u ] [-r receiver] [-h] [-v] [-t] [-q] -d -D \n"; + echo "\n"; + echo "Description:\n"; + echo " Check for tasks which need to be done by a user.\n"; + echo "\n"; + echo "Options:\n"; + echo " -h, --help: print usage information and exit.\n"; + echo " -v, --version: print version and exit.\n"; + echo " --config=: set alternative config file.\n"; + echo " -u : comma separated list of user names to check. If not set all\n"; + echo " users will be checked.\n"; + echo " -r : email address where all mails are sent to. If not set the\n"; + echo " users themselves are informed.\n"; + echo " -f : set From field in notification mail\n"; + echo " -b : set base for links in html email. The final link will be\n"; + echo " out/out.ViewDocument.php. The default is\n"; + echo " http://localhost\n"; + echo " -d : check for n days in the future (default 14). Days always\n". + " start and end at midnight. A value of '1' means today.\n"; + echo " -t: run in test mode (will not send any mails)\n"; + echo " -q: be quite (just output error messages)\n"; +} /* }}} */ + +$version = "0.0.1"; +$tableformat = "%-65s %-12s"; +$tableformathtml = "%s%s"; +$baseurl = "http://localhost/"; +$mailfrom = "uwe@steinman.cx"; + +$shortoptions = "u:d:D:f:b:a:A:c:C:m:u:r:tqhv"; +$longoptions = array('help', 'version', 'config:'); +if(false === ($options = getopt($shortoptions, $longoptions))) { + usage(); + exit(0); +} + +/* Print help and exit */ +if(isset($options['h']) || isset($options['help'])) { + usage(); + exit(0); +} + +/* Print version and exit */ +if(isset($options['v']) || isset($options['verѕion'])) { + echo $version."\n"; + exit(0); +} + +/* Set alternative config file */ +if(isset($options['config'])) { + $settings = new Settings($options['config']); +} else { + $settings = new Settings(); +} +include("inc/inc.Language.php"); +include("inc/inc.Extension.php"); + +$LANG['de_DE']['daylyDigestMail'] = 'Tägliche Benachrichtigungsmail über ausstehende Aufgaben'; +$LANG['en_GB']['daylyDigestMail'] = 'Dayly digest mail with due tasks'; +$LANG['de_DE']['docsNeedToCareAbout'] = 'Dokumente, die seit mehr als [days] Tagen auf ihre Bearbeitung warten.'; +$LANG['en_GB']['docsNeedToCareAbout'] = 'Documents waiting for your attention for more than [days] days.'; +$LANG['en_GB']['waiting_for_review'] = 'Documents waiting for your review'; +$LANG['de_DE']['waiting_for_review'] = 'Dokumente, die auf ihre Prüfung warten'; +$LANG['en_GB']['waiting_for_approval'] = 'Documents waiting for your approval'; +$LANG['de_DE']['waiting_for_approval'] = 'Dokumente, die auf ihre Freigabe warten'; +$LANG['en_GB']['waiting_for_receipt'] = 'Documents waiting for your reception'; +$LANG['de_DE']['waiting_for_receipt'] = 'Dokumente, die auf ihre Empfangsbestätigung warten'; +$LANG['en_GB']['waiting_for_revision'] = 'Documents waiting for your revision'; +$LANG['de_DE']['waiting_for_revision'] = 'Dokumente, die auf ihre Wiederholungsprüfung warten'; +$LANG['en_GB']['duedate'] = 'Due date'; +$LANG['de_DE']['duedate'] = 'Fälligkeit'; + +if(isset($settings->_extraPath)) + ini_set('include_path', $settings->_extraPath. PATH_SEPARATOR .ini_get('include_path')); + +require_once("SeedDMS/Core.php"); + +$days = 14; +if(isset($options['d'])) { + $days = (int) $options['d']; +} +$enddays = 0; +if(isset($options['D'])) { + $enddays = (int) $options['D']; +} + +if($enddays >= $days) { + echo "Value of -D must be less then value of -d\n"; + exit(1); +} + +if(isset($options['f'])) { + $mailfrom = trim($options['f']); +} + +if(isset($options['b'])) { + $baseurl = trim($options['b']); +} + +$username = ''; +if(isset($options['u'])) { + $username = trim($options['u']); +} + +$receiver = ''; +if(isset($options['r'])) { + $receiver = trim($options['r']); +} + +$dryrun = false; +if(isset($options['t'])) { + $dryrun = true; + echo "Running in test mode will not send any mail.\n"; +} +$quite = false; +if(isset($options['q'])) { + $quite = true; +} + +$showobsolete = false; + +$db = new SeedDMS_Core_DatabaseAccess($settings->_dbDriver, $settings->_dbHostname, $settings->_dbUser, $settings->_dbPass, $settings->_dbDatabase); +$db->connect() or die ("Could not connect to db-server \"" . $settings->_dbHostname . "\""); +$db->_debug = 1; + +$dms = new SeedDMS_Core_DMS($db, $settings->_contentDir.$settings->_contentOffsetDir); +if(!$settings->_doNotCheckDBVersion && !$dms->checkVersion()) { + echo "Database update needed."; + exit; +} +$dms->setRootFolderID($settings->_rootFolderID); +$dms->setMaxDirID($settings->_maxDirID); +$dms->setEnableConverting($settings->_enableConverting); +$dms->setViewOnlineFileTypes($settings->_viewOnlineFileTypes); + +$startts = strtotime("midnight", time()); +if($username) { + $users = array(); + $tmp = explode(',', $username); + foreach($tmp as $t) { + if($u = $dms->getUserByLogin($t)) + $users[] = $u; + } +} else { + $users = $dms->getAllUsers(); +} +if(!$users) { + echo "No users specified or available."; + exit; +} + +foreach($users as $user) { + if($user->isDisabled()) + continue; + if(!$quite) + echo "Checking for tasks of user ".$user->getFullName()." which are due for more than ".$days." days\n\n"; + + $sendmail = false; /* Set to true if there is something to report */ + + $tasks = array('approval'=>array(), 'review'=>array(), 'receipt'=>array(), 'revision'=>array()); + $resArr = $dms->getDocumentList('ApproveByMe', $user); + if($resArr) { + foreach ($resArr as $res) { + $tmp = explode(' ', $res['duedate'], 2); + if($tmp[0] < date('Y-m-d', $startts-$days*86400)) { + $document = $dms->getDocument($res["id"]); + if($document->getAccessMode($user) >= M_READ && $document->getLatestContent()) { + $tasks['approval'][] = array('id'=>$res['id'], 'name'=>$res['name'], 'date'=>$res['duedate']); + } + } + } + } + + $resArr = $dms->getDocumentList('ReviewByMe', $user); + if($resArr) { + foreach ($resArr as $res) { + $tmp = explode(' ', $res['duedate'], 2); + if($tmp[0] < date('Y-m-d', $startts-$days*86400)) { + $document = $dms->getDocument($res["id"]); + if($document->getAccessMode($user) >= M_READ && $document->getLatestContent()) { + $tasks['review'][] = array('id'=>$res['id'], 'name'=>$res['name'], 'date'=>$res['duedate']); + } + } + } + } + + $resArr = $dms->getDocumentList('ReceiptByMe', $user); + if($resArr) { + foreach ($resArr as $res) { + $tmp = explode(' ', $res['duedate'], 2); + if($tmp[0] < date('Y-m-d', $startts-$days*86400)) { + $document = $dms->getDocument($res["id"]); + if($document->getAccessMode($user) >= M_READ && $document->getLatestContent()) { + $tasks['receipt'][] = array('id'=>$res['id'], 'name'=>$res['name'], 'date'=>$res['duedate']); + } + } + } + } + + $resArr = $dms->getDocumentList('ReviseByMe', $user); + if($resArr) { + foreach ($resArr as $res) { + $tmp = explode(' ', $res['duedate'], 2); + if($tmp[0] < date('Y-m-d', $startts-$days*86400)) { + $document = $dms->getDocument($res["id"]); + if($document->getAccessMode($user) >= M_READ && $document->getLatestContent()) { + $tasks['revision'][] = array('id'=>$res['id'], 'name'=>$res['name'], 'date'=>$res['duedate']); + } + } + } + } + +// print_r($tasks); + + if (count($tasks['approval'])>0 || count($tasks['review'])>0 || count($tasks['receipt'])>0 || count($tasks['revision'])>0) { + $bodyhead = ""; + $bodyhead .= getMLText('docsNeedToCareAbout', array('days'=>$days))."\n"; + $bodyhead .= "\n"; + + $bodyhtmlhead = "\n\n\nSeedDMS: ".getMLText('daylyDigestMail')."\n_httpRoot."\" />\n\n\n"; + $bodyhtmlhead .= "

"; + $bodyhtmlhead .= getMLText('docsNeedToCareAbout', array('days'=>$days))."\n"; + $bodyhtmlhead .= "

\n"; + $bodyhtmlhead .= "

"; + $bodyhtmlhead .= "

\n"; + + /* Build an array of mail bodies for receiver in $bodyarr + * $bodyarr['email@domain.de']['plain'] = 'mail body for plain text mail' + * $bodyarr['email@domain.de']['html'] = 'mail body for html mail' + */ + $email = $user->getEmail(); + $bodyarr = array($email=>array('plain'=>'', 'html'=>'')); + + foreach(array('review', 'approval', 'receipt', 'revision') as $typ) { + if(!empty($tasks[$typ])) { + $bodyarr[$email]['plain'] .= sprintf($tableformat."\n", getMLText('waiting_for_'.$typ, array()), getMLText("duedate", array())); + $bodyarr[$email]['plain'] .= "---------------------------------------------------------------------------------------\n"; + $bodyarr[$email]['html'] .= "

".getMLText('waiting_for_'.$typ, array())."

"; + $bodyarr[$email]['html'] .= "\n"; + $bodyarr[$email]['html'] .= sprintf($tableformathtml."\n", getMLText('name', array()), getMLText("duedate", array())); + foreach($tasks[$typ] as $task) { + $bodyarr[$email]['plain'] .= sprintf($tableformat."\n", $task["name"], (!$task["date"] ? "-":$task["date"])); + $bodyarr[$email]['html'] .= sprintf($tableformathtml."\n", ''.htmlspecialchars($task["name"]).'', (!$task["date"] ? "-":$task["date"])); + } + $bodyarr[$email]['plain'] .= "\n"; + $bodyarr[$email]['html'] .= "
\n"; + } + } + $bodyfoot = "\n"; + $bodyhtmlfoot = ""; + +// echo $body; +// echo "----------------------------\n\n\n"; +// echo $bodyhtml; + foreach($bodyarr as $address => $msg) { + if(!$quite) { + echo "\n=== Send mail to ".trim($address)." =====================================================\n"; + echo $bodyhead; + echo $bodyarr[$address]['plain']; + echo $bodyfoot; + } else { + } + + if(!$dryrun) { + $mime = new Mail_mime(array('eol' => "\n")); + + $mime->setTXTBody($bodyhead.$msg['plain'].$bodyfoot); + $mime->setHTMLBody($bodyhtmlhead.$msg['html'].$bodyhtmlfoot); + + $body = $mime->get(array( + 'text_encoding'=>'8bit', + 'html_encoding'=>'8bit', + 'head_charset'=>'utf-8', + 'text_charset'=>'utf-8', + 'html_charset'=>'utf-8' + )); + $hdrs = $mime->headers(array('From' => $mailfrom, 'Subject' => 'SeedDMS: '.getMLText('daylyDigestMail').($receiver ? " (".trim($address).")" : ""), 'Content-Type' => 'text/plain; charset=UTF-8')); + + $mail = Mail::factory('mail'); + if($receiver) + $mail->send($receiver, $hdrs, $body); + else + $mail->send(trim($address), $hdrs, $body); + } + } + } else { + if(!$quite) { + echo "No notification needed\n"; + } + } +} diff --git a/utils/seeddms-open-tasks b/utils/seeddms-open-tasks new file mode 100644 index 000000000..e8363b2de --- /dev/null +++ b/utils/seeddms-open-tasks @@ -0,0 +1,6 @@ +#!/bin/sh +if [ -z ${SEEDDMS_HOME+x} ]; then + echo "Please set SEEDDMS_HOME before running this script"; + exit 1; +fi +php -f ${SEEDDMS_HOME}/utils/open-tasks.php -- $* diff --git a/utils/xmldump.php b/utils/xmldump.php index 5b172c5df..848a321f1 100644 --- a/utils/xmldump.php +++ b/utils/xmldump.php @@ -337,6 +337,7 @@ function tree($folder, $parent=null, $indent='', $skipcurrent=false) { /* {{{ */ echo $indent." ".wrapWithCData($version->getComment())."\n"; echo $indent." ".$owner->getId()."\n"; echo $indent." ".wrapWithCData($version->getOriginalFileName())."\n"; + echo $indent." ".$version->getRevisionDate()."\n"; if($attributes = $version->getAttributes()) { foreach($attributes as $attribute) { $attrdef = $attribute->getAttributeDefinition(); diff --git a/utils/xmlimport.php b/utils/xmlimport.php index cf64ef71c..713b91a74 100644 --- a/utils/xmlimport.php +++ b/utils/xmlimport.php @@ -631,6 +631,7 @@ function insert_document($document) { /* {{{ */ $newVersion = $result[1]->getContent(); $newVersion->setDate(dateToTimestamp($initversion['attributes']['date'])); + $newVersion->setRevisionDate($initversion['attributes']['revisiondate']); if($workflowstate) $newVersion->setWorkflowState($workflowstate); $newlogs = array(); @@ -659,6 +660,10 @@ function insert_document($document) { /* {{{ */ $newreceipts = getRevAppLog($initversion['receipts']); $newVersion->rewriteReceiptLog($newreceipts); } + if($initversion['revisions']) { + $newrevisions = getRevAppLog($initversion['revisions']); + $newVersion->rewriteRevisionLog($newrevisions); + } if($initversion['workflowlogs']) { $newworkflowlogs = getWorkflowLog($initversion['workflowlogs']); @@ -749,6 +754,7 @@ function insert_document($document) { /* {{{ */ if($workflowstate) $newVersion->setWorkflowState($workflowstate); $newVersion->setDate(dateToTimestamp($version['attributes']['date'])); + $newVersion->setRevisionDate($version['attributes']['revisiondate']); $newlogs = array(); foreach($version['statuslogs'] as $i=>$log) { if(!array_key_exists($log['attributes']['user'], $objmap['users'])) { @@ -773,6 +779,10 @@ function insert_document($document) { /* {{{ */ $newreceipts = getRevAppLog($version['receipts']); $newVersion->rewriteReceiptLog($newreceipts); } + if($version['revisions']) { + $newrevisions = getRevAppLog($version['revisions']); + $newVersion->rewriteRevisionLog($newrevisions); + } if($version['workflowlogs']) { $newworkflowlogs = getWorkflowLog($version['workflowlogs']); @@ -1072,7 +1082,7 @@ function set_mandatory() { /* {{{ */ } /* }}} */ function startElement($parser, $name, $attrs) { /* {{{ */ - global $logger, $dms, $noversioncheck, $elementstack, $objmap, $cur_user, $cur_group, $cur_folder, $cur_document, $cur_version, $cur_statuslog, $cur_workflowlog, $cur_approval, $cur_approvallog, $cur_review, $cur_reviewlog, $cur_receipt, $cur_receiptlog, $cur_attrdef, $cur_documentcat, $cur_keyword, $cur_keywordcat, $cur_file, $cur_link, $cur_workflow, $cur_workflowtransition, $cur_workflowaction, $cur_workflowstate, $cur_transition, $cur_transmittal, $cur_transmittalitem, $cur_role, $cur_acopath, $cur_acos; + global $logger, $dms, $noversioncheck, $elementstack, $objmap, $cur_user, $cur_group, $cur_folder, $cur_document, $cur_version, $cur_statuslog, $cur_workflowlog, $cur_approval, $cur_approvallog, $cur_review, $cur_reviewlog, $cur_receipt, $cur_receiptlog, $cur_revision, $cur_revisionlog, $cur_attrdef, $cur_documentcat, $cur_keyword, $cur_keywordcat, $cur_file, $cur_link, $cur_workflow, $cur_workflowtransition, $cur_workflowaction, $cur_workflowstate, $cur_transition, $cur_transmittal, $cur_transmittalitem, $cur_role, $cur_acopath, $cur_acos; $parent = end($elementstack); array_push($elementstack, array('name'=>$name, 'attributes'=>$attrs)); @@ -1195,6 +1205,7 @@ function startElement($parser, $name, $attrs) { /* {{{ */ $cur_version['approvals'] = array(); $cur_version['reviews'] = array(); $cur_version['receipts'] = array(); + $cur_version['revisions'] = array(); $cur_version['statuslogs'] = array(); $cur_version['workflowlogs'] = array(); break; @@ -1236,6 +1247,15 @@ function startElement($parser, $name, $attrs) { /* {{{ */ $cur_receiptlog = array(); $cur_receiptlog['attributes'] = array(); break; + case "REVISION": + $cur_revision = array(); + $cur_revision['attributes'] = array(); + $cur_revision['logs'] = array(); + break; + case "REVISIONLOG": + $cur_revisionlog = array(); + $cur_revisionlog['attributes'] = array(); + break; case 'ATTRIBUTEDEFINITION': $cur_attrdef = array(); $cur_attrdef['id'] = (int) $attrs['ID']; @@ -1271,6 +1291,10 @@ function startElement($parser, $name, $attrs) { /* {{{ */ $cur_receipt['attributes'][$attrs['NAME']] = ''; } elseif($parent['name'] == 'RECEIPTLOG') { $cur_receiptlog['attributes'][$attrs['NAME']] = ''; + } elseif($parent['name'] == 'REVISION') { + $cur_revision['attributes'][$attrs['NAME']] = ''; + } elseif($parent['name'] == 'REVISIONLOG') { + $cur_revisionlog['attributes'][$attrs['NAME']] = ''; } elseif($parent['name'] == 'FOLDER') { if(isset($attrs['TYPE']) && $attrs['TYPE'] == 'user') { $cur_folder['user_attributes'][$attrs['ATTRDEF']] = ''; @@ -1463,7 +1487,7 @@ function startElement($parser, $name, $attrs) { /* {{{ */ } /* }}} */ function endElement($parser, $name) { /* {{{ */ - global $logger, $dms, $sections, $rootfolder, $objmap, $elementstack, $users, $groups, $links,$cur_user, $cur_group, $cur_folder, $cur_document, $cur_version, $cur_statuslog, $cur_approval, $cur_approvallog, $cur_review, $cur_reviewlog, $cur_receipt, $cur_receiptlog, $cur_attrdef, $cur_documentcat, $cur_keyword, $cur_keywordcat, $cur_file, $cur_link, $cur_workflow, $cur_workflowlog, $cur_workflowtransition, $cur_workflowaction, $cur_workflowstate, $cur_transition, $cur_transmittal, $cur_transmittalitem, $cur_role, $cur_acopath, $cur_acos; + global $logger, $dms, $sections, $rootfolder, $objmap, $elementstack, $users, $groups, $links,$cur_user, $cur_group, $cur_folder, $cur_document, $cur_version, $cur_statuslog, $cur_approval, $cur_approvallog, $cur_review, $cur_reviewlog, $cur_receipt, $cur_receiptlog, $cur_revision, $cur_revisionlog, $cur_attrdef, $cur_documentcat, $cur_keyword, $cur_keywordcat, $cur_file, $cur_link, $cur_workflow, $cur_workflowlog, $cur_workflowtransition, $cur_workflowaction, $cur_workflowstate, $cur_transition, $cur_transmittal, $cur_transmittalitem, $cur_role, $cur_acopath, $cur_acos; array_pop($elementstack); $parent = end($elementstack); @@ -1503,6 +1527,12 @@ function endElement($parser, $name) { /* {{{ */ case "RECEIPTLOG": $cur_receipt['logs'][] = $cur_receiptlog; break; + case "REVISION": + $cur_version['revisions'][] = $cur_revision; + break; + case "REVISIONLOG": + $cur_revision['logs'][] = $cur_revisionlog; + break; case "USER": /* users can be the users data or the member of a group */ $first = $elementstack[1]; @@ -1609,7 +1639,7 @@ function endElement($parser, $name) { /* {{{ */ } /* }}} */ function characterData($parser, $data) { /* {{{ */ - global $elementstack, $objmap, $cur_user, $cur_group, $cur_folder, $cur_document, $cur_version, $cur_statuslog, $cur_approval, $cur_approvallog, $cur_review, $cur_reviewlog, $cur_receipt, $cur_receiptlog, $cur_attrdef, $cur_documentcat, $cur_keyword, $cur_keywordcat, $cur_file, $cur_link, $cur_workflow, $cur_workflowlog, $cur_workflowtransition, $cur_workflowaction, $cur_workflowstate, $cur_transition, $cur_transmittal, $cur_transmittalitem, $cur_role, $cur_acopath, $cur_acos; + global $elementstack, $objmap, $cur_user, $cur_group, $cur_folder, $cur_document, $cur_version, $cur_statuslog, $cur_approval, $cur_approvallog, $cur_review, $cur_reviewlog, $cur_receipt, $cur_receiptlog, $cur_revision, $cur_revisionlog, $cur_attrdef, $cur_documentcat, $cur_keyword, $cur_keywordcat, $cur_file, $cur_link, $cur_workflow, $cur_workflowlog, $cur_workflowtransition, $cur_workflowaction, $cur_workflowstate, $cur_transition, $cur_transmittal, $cur_transmittalitem, $cur_role, $cur_acopath, $cur_acos; $current = end($elementstack); $parent = prev($elementstack); @@ -1688,6 +1718,15 @@ function characterData($parser, $data) { /* {{{ */ else $cur_receiptlog['attributes'][$current['attributes']['NAME']] = $data; break; + case 'REVISION': + $cur_revision['attributes'][$current['attributes']['NAME']] = $data; + break; + case 'REVISIONLOG': + if(isset($cur_revisionlog['attributes'][$current['attributes']['NAME']])) + $cur_revisionlog['attributes'][$current['attributes']['NAME']] .= $data; + else + $cur_revisionlog['attributes'][$current['attributes']['NAME']] = $data; + break; case 'WORKFLOWLOG': if(isset($cur_workflowlog['attributes'][$current['attributes']['NAME']])) $cur_workflowlog['attributes'][$current['attributes']['NAME']] .= $data; diff --git a/views/bootstrap/class.Acl.php b/views/bootstrap/class.Acl.php index e616b46f7..2777845f9 100644 --- a/views/bootstrap/class.Acl.php +++ b/views/bootstrap/class.Acl.php @@ -40,11 +40,11 @@ $('#acostree').tree({ closedIcon: '', onCreateLi: function(node, $li) { switch(node.permission) { - case "-1": + case -1: $li.find('.jqtree-element span:last-child').after(' '); $li.attr('style', 'background-color:#FDD'); break; - case "1": + case 1: $li.find('.jqtree-element span:last-child').after(' '); $li.attr('style', 'background-color:#DFD'); break; diff --git a/views/bootstrap/class.AddDocument.php b/views/bootstrap/class.AddDocument.php index f301fab32..ba3c78c09 100644 --- a/views/bootstrap/class.AddDocument.php +++ b/views/bootstrap/class.AddDocument.php @@ -164,6 +164,7 @@ $(document).ready(function() { $strictformcheck = $this->params['strictformcheck']; $dropfolderdir = $this->params['dropfolderdir']; $libraryfolder = $this->params['libraryfolder']; + $dropfolderfile = $this->params['dropfolderfile']; $workflowmode = $this->params['workflowmode']; $presetexpiration = $this->params['presetexpiration']; $sortusersinlist = $this->params['sortusersinlist']; @@ -340,7 +341,7 @@ $(document).ready(function() { : - printDropFolderChooserHtml("form1");?> + printDropFolderChooserHtml("form1", $dropfolderfile);?> diff --git a/views/bootstrap/class.AddFile.php b/views/bootstrap/class.AddFile.php index fc6298f14..e05ec8b10 100644 --- a/views/bootstrap/class.AddFile.php +++ b/views/bootstrap/class.AddFile.php @@ -68,11 +68,17 @@ $(document).ready( function() { timeout: 1500, }); }, + highlight: function(e, errorClass, validClass) { + $(e).parent().parent().removeClass(validClass).addClass(errorClass); + }, + unhighlight: function(e, errorClass, validClass) { + $(e).parent().parent().removeClass(errorClass).addClass(validClass); + }, submitHandler: function(form) { - manualuploader.uploadStoredFiles(); + userfileuploader.uploadStoredFiles(); }, fineuploaderuuids: { - fineuploader: [ manualuploader ] + fineuploader: [ userfileuploader ] } params['strictformcheck']; header('Content-Type: application/javascript'); ?> -function checkForm() -{ - msg = new Array(); - if (document.form1.name.value == "") msg.push(""); - - if (document.form1.comment.value == "") msg.push(""); - - if (msg != "") { - noty({ - text: msg.join('
'), - type: 'error', - dismissQueue: true, - layout: 'topRight', - theme: 'defaultTheme', - _timeout: 1500, - }); - return false; - } - else - return true; -} $(document).ready( function() { -/* $('body').on('submit', '#form1', function(ev){ - if(checkForm()) return; - ev.preventDefault(); - }); -*/ $("#form1").validate({ invalidHandler: function(e, validator) { noty({ @@ -77,6 +47,12 @@ $(document).ready( function() { timeout: 1500, }); }, + highlight: function(e, errorClass, validClass) { + $(e).parent().parent().removeClass(validClass).addClass(errorClass); + }, + unhighlight: function(e, errorClass, validClass) { + $(e).parent().parent().removeClass(errorClass).addClass(validClass); + }, messages: { name: "", comment: "" diff --git a/views/bootstrap/class.AttributeMgr.php b/views/bootstrap/class.AttributeMgr.php index f92641ef9..df4ba44a2 100644 --- a/views/bootstrap/class.AttributeMgr.php +++ b/views/bootstrap/class.AttributeMgr.php @@ -82,19 +82,22 @@ $(document).ready( function() { foreach($res['frequencies'][$type] as $entry) { $value = $selattrdef->parseValue($entry['value']); $content .= ""; - $content .= "".implode(';', $value)."".$entry['c'].""; + $content .= "".implode(';', $value).""; + $content .= "getID()."]=".$entry['value']."\">".urlencode($entry['c']).""; + $content .= ""; /* various checks, if the value is valid */ if(!$selattrdef->validate($entry['value'])) { - $content .= getAttributeValidationText($selattrdef->getValidationError(), $selattrdef->getName(), $entry['value']); + $content .= getAttributeValidationText($selattrdef->getValidationError(), $selattrdef->getName(), $entry['value'], $selattrdef->getRegex()); } - $content .= ""; /* Check if value is in value set */ + /* if($selattrdef->getValueSet()) { foreach($value as $v) { if(!in_array($v, $selattrdef->getValueSetAsArray())) $content .= getMLText("attribute_value_not_in_valueset"); } } + */ $content .= ""; $content .= ""; } diff --git a/views/bootstrap/class.Bootstrap.php b/views/bootstrap/class.Bootstrap.php index 7bbce4dff..f1464da02 100644 --- a/views/bootstrap/class.Bootstrap.php +++ b/views/bootstrap/class.Bootstrap.php @@ -410,6 +410,14 @@ background-image: linear-gradient(to bottom, #882222, #111111);; //$this->addFooterJS('checkTasks();'); } + if($this->params['dropfolderdir'] && $this->params['enabledropfolderlist']) { + echo "
"; + echo "
getClassname('folder'))) + echo " data-query=\"folderid=".$folder->getID()."\""; + echo ">
"; + echo "
"; + } if($this->params['enablesessionlist']) { echo "
"; echo "
"; @@ -965,6 +973,7 @@ background-image: linear-gradient(to bottom, #882222, #111111);; $icons = array(); $icons["txt"] = "text-x-preview.svg"; $icons["text"] = "text-x-preview.svg"; + $icons["tex"] = "text-x-preview.svg"; $icons["doc"] = "office-document.svg"; $icons["dot"] = "office-document.svg"; $icons["docx"] = "office-document.svg"; @@ -988,27 +997,26 @@ background-image: linear-gradient(to bottom, #882222, #111111);; $icons["png"] = "image.svg"; $icons["tif"] = "image.svg"; $icons["tiff"] = "image.svg"; - $icons["log"] = "log.png"; + $icons["log"] = "text-x-preview.svg"; $icons["midi"] = "audio.svg"; - $icons["pdf"] = "pdf.png"; + $icons["pdf"] = "gnome-mime-application-pdf.svg"; $icons["wav"] = "audio.svg"; $icons["mp3"] = "audio.svg"; - $icons["c"] = "source_c.png"; - $icons["cpp"] = "source_cpp.png"; - $icons["h"] = "source_h.png"; - $icons["java"] = "source_java.png"; - $icons["py"] = "source_py.png"; + $icons["c"] = "text-x-preview.svg"; + $icons["cpp"] = "text-x-preview.svg"; + $icons["h"] = "text-x-preview.svg"; + $icons["java"] = "text-x-preview.svg"; + $icons["py"] = "text-x-preview.svg"; $icons["tar"] = "package.svg"; - $icons["gz"] = "gz.png"; - $icons["7z"] = "gz.png"; - $icons["bz"] = "gz.png"; - $icons["bz2"] = "gz.png"; - $icons["tgz"] = "gz.png"; + $icons["gz"] = "package.svg"; + $icons["7z"] = "package.svg"; + $icons["bz"] = "package.svg"; + $icons["bz2"] = "package.svg"; + $icons["tgz"] = "package.svg"; $icons["zip"] = "package.svg"; - $icons["rar"] = "gz.png"; + $icons["rar"] = "package.svg"; $icons["mpg"] = "video.svg"; $icons["avi"] = "video.svg"; - $icons["tex"] = "tex.png"; $icons["ods"] = "office-spreadsheet.svg"; $icons["ots"] = "office-spreadsheet.svg"; $icons["sxc"] = "office-spreadsheet.svg"; @@ -1021,10 +1029,10 @@ background-image: linear-gradient(to bottom, #882222, #111111);; $icons["otp"] = "office-presentation.svg"; $icons["sxi"] = "office-presentation.svg"; $icons["sti"] = "office-presentation.svg"; - $icons["odg"] = "office-drawing.png"; - $icons["otg"] = "office-drawing.png"; - $icons["sxd"] = "office-drawing.png"; - $icons["std"] = "office-drawing.png"; + $icons["odg"] = "office-drawing.svg"; + $icons["otg"] = "office-drawing.svg"; + $icons["sxd"] = "office-drawing.svg"; + $icons["std"] = "office-drawing.svg"; $icons["odf"] = "ooo_formula.png"; $icons["sxm"] = "ooo_formula.png"; $icons["smf"] = "ooo_formula.png"; @@ -2180,15 +2188,21 @@ $(document).ready( function() { $allcomments = array('-1'=>array(), '1'=>array()); foreach ($receiptStatus as $r) { $rstat[''.$r['status']]++; - if($r['comment']) - $allcomments[''.$r['status']][] = htmlspecialchars($r['comment']); + if($r['comment']) { +// $allcomments[''.$r['status']][] = htmlspecialchars($r['comment']); + $m5 = md5(trim($r['comment'])); + if(isset($allcomments[''.$r['status']][$m5])) + $allcomments[''.$r['status']][$m5]['n']++; + else + $allcomments[''.$r['status']][$m5] = array('n'=>1, 'c'=>htmlspecialchars(trim($r['comment']))); + } } $totalreceipts = $rstat['-1'] + $rstat['0'] + $rstat['1']; if($totalreceipts) { $content .= ";
-
".($rstat['1'] ? $rstat['1']."/".$totalreceipts : '').($allcomments['1'] ? " ".$this->printPopupBox('', implode('
', $allcomments['1']), true) : "")."
-
".($rstat['-1'] ? $rstat['-1']."/".$totalreceipts : '').($allcomments['-1'] ? " ".$this->printPopupBox('', implode('
', $allcomments['-1']), true) : "")."
+
".($rstat['1'] ? $rstat['1']."/".$totalreceipts : '').($allcomments['1'] ? " ".$this->printPopupBox('', implode('
', formatComment($allcomments['1'])), true) : "")."
+
".($rstat['-1'] ? $rstat['-1']."/".$totalreceipts : '').($allcomments['-1'] ? " ".$this->printPopupBox('', implode('
', formatComment($allcomments['-1'])), true) : "")."
"; } } diff --git a/views/bootstrap/class.CreateIndex.php b/views/bootstrap/class.CreateIndex.php index 77d6ca302..c4cf75fd6 100644 --- a/views/bootstrap/class.CreateIndex.php +++ b/views/bootstrap/class.CreateIndex.php @@ -52,4 +52,3 @@ class SeedDMS_View_CreateIndex extends SeedDMS_Bootstrap_Style { } /* }}} */ } ?> - diff --git a/views/bootstrap/class.DocumentVersionDetail.php b/views/bootstrap/class.DocumentVersionDetail.php index 177879438..095f1204b 100644 --- a/views/bootstrap/class.DocumentVersionDetail.php +++ b/views/bootstrap/class.DocumentVersionDetail.php @@ -270,6 +270,8 @@ class SeedDMS_View_DocumentVersionDetail extends SeedDMS_Bootstrap_Style { echo ""; print "\n\n"; + $this->contentContainerEnd(); + $this->contentContainerStart(); print "\n"; @@ -456,7 +458,7 @@ class SeedDMS_View_DocumentVersionDetail extends SeedDMS_Bootstrap_Style { $this->contentContainerEnd(); } - if($user->isAdmin()) { + if($user->isAdmin() || $user->getId() == $document->getOwner()->getId()) { $this->contentHeading(getMLText("status")); $this->contentContainerStart(); $statuslog = $version->getStatusLog(); diff --git a/views/bootstrap/class.DropFolderChooser.php b/views/bootstrap/class.DropFolderChooser.php index 78cbec64d..966da8cd3 100644 --- a/views/bootstrap/class.DropFolderChooser.php +++ b/views/bootstrap/class.DropFolderChooser.php @@ -50,6 +50,61 @@ $('.folderselect').click(function(ev) { params['dms']; + $user = $this->params['user']; + $dropfolderdir = $this->params['dropfolderdir']; + $showfolders = $this->params['showfolders']; + $cachedir = $this->params['cachedir']; + $timeout = $this->params['timeout']; + $folderid = isset($_GET['folderid']) ? $_GET['folderid'] : 0; + + $previewwidth = 40; + $previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth, $timeout); + + $c = 0; // count files + $filecontent = ''; + $dir = $dropfolderdir.'/'.$user->getLogin(); + /* Check if we are still looking in the configured directory and + * not somewhere else, e.g. if the login was '../test' + */ + if(dirname($dir) == $dropfolderdir) { + if(is_dir($dir)) { + $d = dir($dir); + + $finfo = finfo_open(FILEINFO_MIME_TYPE); + while (false !== ($entry = $d->read())) { + if($entry != '..' && $entry != '.') { + if($showfolders == 0 && !is_dir($dir.'/'.$entry)) { + $c++; + $mimetype = finfo_file($finfo, $dir.'/'.$entry); + $previewer->createRawPreview($dir.'/'.$entry, 'dropfolder/', $mimetype); + $filecontent .= "
  • "; + if($previewer->hasRawPreview($dir.'/'.$entry, 'dropfolder/')) { + $filecontent .= "
    "; + } + $filecontent .= "
    ".$entry."
    ".SeedDMS_Core_File::format_filesize(filesize($dir.'/'.$entry)).", ".date('Y-m-d H:i:s', filectime($dir.'/'.$entry))."
  • \n"; + } elseif($showfolders && is_dir($dir.'/'.$entry)) { + $filecontent .= "
  • ".$entry."
  • "; + } + } + } + } + } + $content = ''; + if($c) { + $content .= " \n"; + } + echo $content; + } /* }}} */ + function show() { /* {{{ */ $dms = $this->params['dms']; $user = $this->params['user']; diff --git a/views/bootstrap/class.EditDocument.php b/views/bootstrap/class.EditDocument.php index 43b89806c..0117dde89 100644 --- a/views/bootstrap/class.EditDocument.php +++ b/views/bootstrap/class.EditDocument.php @@ -36,41 +36,7 @@ class SeedDMS_View_EditDocument extends SeedDMS_Bootstrap_Style { header('Content-Type: application/javascript'); $this->printKeywordChooserJs('form1'); ?> -function checkForm() -{ - msg = new Array(); - if ($("#name").val() == "") msg.push(""); - - if ($("#comment").val() == "") msg.push(""); - if ($("#keywords").val() == "") msg.push(""); - - if (msg != "") - { - noty({ - text: msg.join('
    '), - type: 'error', - dismissQueue: true, - layout: 'topRight', - theme: 'defaultTheme', - _timeout: 1500, - }); - return false; - } - else - return true; -} - $(document).ready( function() { -/* - $('body').on('submit', '#form1', function(ev){ - if(checkForm()) return; - ev.preventDefault(); - }); -*/ $("#form1").validate({ invalidHandler: function(e, validator) { noty({ diff --git a/views/bootstrap/class.EditFolder.php b/views/bootstrap/class.EditFolder.php index 21770c132..8f70f8132 100644 --- a/views/bootstrap/class.EditFolder.php +++ b/views/bootstrap/class.EditFolder.php @@ -35,37 +35,7 @@ class SeedDMS_View_EditFolder extends SeedDMS_Bootstrap_Style { $strictformcheck = $this->params['strictformcheck']; header('Content-Type: application/javascript; charset=UTF-8'); ?> -function checkForm() -{ - msg = new Array(); - if (document.form1.name.value == "") msg.push(""); - - if (document.form1.comment.value == "") msg.push(""); - - if (msg != "") { - noty({ - text: msg.join('
    '), - type: 'error', - dismissQueue: true, - layout: 'topRight', - theme: 'defaultTheme', - }); - return false; - } - else - return true; -} $(document).ready(function() { -/* - $('body').on('submit', '#form1', function(ev){ - if(checkForm()) return; - ev.preventDefault(); - }); -*/ $("#form1").validate({ invalidHandler: function(e, validator) { noty({ @@ -77,6 +47,12 @@ $(document).ready(function() { timeout: 1500, }); }, + highlight: function(e, errorClass, validClass) { + $(e).parent().parent().removeClass(validClass).addClass(errorClass); + }, + unhighlight: function(e, errorClass, validClass) { + $(e).parent().parent().removeClass(errorClass).addClass(validClass); + }, messages: { name: "", comment: "" diff --git a/views/bootstrap/class.EditUserData.php b/views/bootstrap/class.EditUserData.php index af6ccd32a..aea65afa6 100644 --- a/views/bootstrap/class.EditUserData.php +++ b/views/bootstrap/class.EditUserData.php @@ -34,35 +34,7 @@ class SeedDMS_View_EditUserData extends SeedDMS_Bootstrap_Style { function js() { /* {{{ */ header('Content-Type: application/javascript'); ?> -function checkForm() -{ - msg = new Array(); - if ($("#pwd").val() != $("#pwdconf").val()) msg.push(""); - if ($("#fullname").val() == "") msg.push(""); - if ($("#email").val() == "") msg.push(""); -// if (document.form1.comment.value == "") msg.push(""); - if (msg != "") { - noty({ - text: msg.join('
    '), - type: 'error', - dismissQueue: true, - layout: 'topRight', - theme: 'defaultTheme', - _timeout: 1500, - }); - return false; - } - else - return true; -} - $(document).ready( function() { -/* - $('body').on('submit', '#form', function(ev){ - if(checkForm()) return; - ev.preventDefault(); - }); -*/ $("#form").validate({ invalidHandler: function(e, validator) { noty({ @@ -74,7 +46,16 @@ $(document).ready( function() { timeout: 1500, }); }, + highlight: function(e, errorClass, validClass) { + $(e).parent().parent().removeClass(validClass).addClass(errorClass); + }, + unhighlight: function(e, errorClass, validClass) { + $(e).parent().parent().removeClass(errorClass).addClass(validClass); + }, rules: { + currentpwd: { + required: true + }, fullname: { required: true }, @@ -87,6 +68,7 @@ $(document).ready( function() { } }, messages: { + currentpwd: "", fullname: "", email: { required: "", diff --git a/views/bootstrap/class.Help.php b/views/bootstrap/class.Help.php index 05d529cd9..4df03d260 100644 --- a/views/bootstrap/class.Help.php +++ b/views/bootstrap/class.Help.php @@ -39,17 +39,46 @@ class SeedDMS_View_Help extends SeedDMS_Bootstrap_Style { $this->htmlStartPage(getMLText("help")); $this->globalNavigation(); $this->contentStart(); - $this->pageNavigation(getMLText("help").": ".getMLText('help_'.strtolower($context), array(), $context), ""); - - $this->contentContainerStart('help'); +// $this->pageNavigation(getMLText("help").": ".getMLText('help_'.strtolower($context), array(), $context), ""); +?> +
    +
    + Table of contents +params['session']->getLanguage()."/help"); + echo ""; +?> +
    +
    + +params['session']->getLanguage()."/help/".$context.".html"; if(file_exists($helpfile)) readfile($helpfile); - else + else { + $helpfile = "../languages/".$this->params['session']->getLanguage()."/help/".$context.".md"; + if(file_exists($helpfile)) { + require_once('parsedown/Parsedown.php'); + $Parsedown = new Parsedown(); + echo $Parsedown->text(file_get_contents($helpfile)); + } else readfile("../languages/".$this->params['session']->getLanguage()."/help.htm"); + } - $this->contentContainerEnd(); +?> +
    +
    +contentEnd(); $this->htmlEndPage(); } /* }}} */ diff --git a/views/bootstrap/class.ObjectCheck.php b/views/bootstrap/class.ObjectCheck.php index 419e3ba7f..bd25e5bac 100644 --- a/views/bootstrap/class.ObjectCheck.php +++ b/views/bootstrap/class.ObjectCheck.php @@ -41,8 +41,8 @@ class SeedDMS_View_ObjectCheck extends SeedDMS_Bootstrap_Style { print "\n\n"; print "\n"; if($order) { - $orderby = $this->params['orderby']; - $orderdir = $this->params['orderdir']; + $orderby = ''; //$this->params['orderby']; + $orderdir = ''; //$this->params['orderdir']; print "\n"; } else @@ -215,6 +215,7 @@ class SeedDMS_View_ObjectCheck extends SeedDMS_Bootstrap_Style { $user = $this->params['user']; $folder = $this->params['folder']; $nofilesizeversions = $this->params['nofilesizeversions']; + $setfilesize = $this->params['setfilesize']; $this->contentHeading(getMLText("missing_filesize")); if($nofilesizeversions) { @@ -351,6 +352,74 @@ class SeedDMS_View_ObjectCheck extends SeedDMS_Bootstrap_Style { } } /* }}} */ + function listProcessesWithoutUserGroup($process, $ug) { /* {{{ */ + $dms = $this->params['dms']; + $user = $this->params['user']; + $folder = $this->params['folder']; + $processwithoutusergroup = $this->params['processwithoutusergroup']; + $cachedir = $this->params['cachedir']; + $previewwidth = $this->params['previewWidthList']; + $previewconverters = $this->params['previewconverters']; + $timeout = $this->params['timeout']; + + $previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth, $timeout); + $previewer->setConverters($previewconverters); + + $this->contentHeading(getMLText($process."s_without_".$ug)); + + if($processwithoutusergroup[$process][$ug]) { + print "
    ".getMLText("name")." ".($orderby == 'n' || $orderby == '' ? ($orderdir == 'desc' ? '' : '') : '')." · ".getMLText("last_update")." ".($orderby == 'u' ? ($orderdir == 'desc' ? '' : '') : '')." · ".getMLText("expires")." ".($orderby == 'e' ? ($orderdir == 'desc' ? '' : '') : '')."
    "; + print "\n\n"; + print "\n"; + print "\n"; + print "\n"; + print "\n"; + print "\n"; + print "\n\n\n"; + foreach($processwithoutusergroup[$process][$ug] as $rec) { + print ""; + print ""; + print ""; + print ""; + print ""; + print "\n"; + } + print "
    ".getMLText("process")."".getMLText("user_group")."".getMLText("document")."".getMLText("version")."".getMLText("userid_groupid")."
    ".$process."".$ug."".$rec['name']."".$rec['version']."".$rec['required']."
    \n"; + } + } /* }}} */ + + function listReviewWithoutUser() { /* {{{ */ + $this->listProcessesWithoutUserGroup('review', 'user'); + } /* }}} */ + + function listReviewWithoutGroup() { /* {{{ */ + $this->listProcessesWithoutUserGroup('review', 'group'); + } /* }}} */ + + function listApprovalWithoutUser() { /* {{{ */ + $this->listProcessesWithoutUserGroup('approval', 'user'); + } /* }}} */ + + function listApprovalWithoutGroup() { /* {{{ */ + $this->listProcessesWithoutUserGroup('approval', 'group'); + } /* }}} */ + + function listReceiptWithoutUser() { /* {{{ */ + $this->listProcessesWithoutUserGroup('receipt', 'user'); + } /* }}} */ + + function listReceiptWithoutGroup() { /* {{{ */ + $this->listProcessesWithoutUserGroup('receipt', 'group'); + } /* }}} */ + + function listRevisionWithoutUser() { /* {{{ */ + $this->listProcessesWithoutUserGroup('revision', 'user'); + } /* }}} */ + + function listRevisionWithoutGroup() { /* {{{ */ + $this->listProcessesWithoutUserGroup('revision', 'group'); + } /* }}} */ + function js() { /* {{{ */ $user = $this->params['user']; $folder = $this->params['folder']; @@ -388,6 +457,7 @@ $(document).ready( function() { $duplicateversions = $this->params['duplicateversions']; $docsinrevision = $this->params['docsinrevision']; $docsinreception = $this->params['docsinreception']; + $processwithoutusergroup = $this->params['processwithoutusergroup']; $repair = $this->params['repair']; $unlink = $this->params['unlink']; $setfilesize = $this->params['setfilesize']; @@ -420,6 +490,13 @@ $(document).ready( function() { echo '
  • '.count($docsinrevision).''.getMLText("docs_in_revision_no_access").'
  • '; echo '
  • '.count($docsinreception).''.getMLText("docs_in_reception_no_access").'
  • '; echo ''; + echo ''; echo '
    '; echo '
    '; diff --git a/views/bootstrap/class.RemoveUser.php b/views/bootstrap/class.RemoveUser.php index 12e898098..355788dd7 100644 --- a/views/bootstrap/class.RemoveUser.php +++ b/views/bootstrap/class.RemoveUser.php @@ -42,20 +42,25 @@ class SeedDMS_View_RemoveUser extends SeedDMS_Bootstrap_Style { $this->contentStart(); $this->pageNavigation(getMLText("admin_tools"), "admin_tools"); $this->contentHeading(getMLText("rm_user")); - $this->contentContainerStart(); ?> -
    +
    + htmlspecialchars($rmuser->getFullName())));?> +
    +contentContainerStart(); +?> + -

    - htmlspecialchars($rmuser->getFullName())));?> -

    -

    +

    +
    +
    -

    +
    +
    + +
    +
    + * @copyright Copyright (C) 2017 Uwe Steinmann + * @version Release: @package_version@ + */ + +/** + * Include parent class + */ +require_once("class.Bootstrap.php"); + +/** + * Class which outputs the html page for RemoveUserFromProcesses view + * + * @category DMS + * @package SeedDMS + * @author Uwe Steinmann + * @copyright Copyright (C) 2017 Uwe Steinmann + * @version Release: @package_version@ + */ +class SeedDMS_View_RemoveUserFromProcesses extends SeedDMS_Bootstrap_Style { + + function show() { /* {{{ */ + $dms = $this->params['dms']; + $user = $this->params['user']; + $rmuser = $this->params['rmuser']; + + $this->htmlStartPage(getMLText("admin_tools")); + $this->globalNavigation(); + $this->contentStart(); + $this->pageNavigation(getMLText("admin_tools"), "admin_tools"); + $this->contentHeading(getMLText("rm_user_from_processes")); + +?> +
    + htmlspecialchars($rmuser->getFullName())));?> +
    +contentContainerStart(); +?> +
    + + + + +getReviewStatus(); + $tmpr = array(); + foreach($reviewStatus['indstatus'] as $ri) { + if(isset($tmpr[$ri['status']])) + $tmpr[$ri['status']][] = $ri; + else + $tmpr[$ri['status']] = array($ri); + } + + $approvalStatus = $rmuser->getApprovalStatus(); + $tmpa = array(); + foreach($approvalStatus['indstatus'] as $ai) { + if(isset($tmpa[$ai['status']])) + $tmpa[$ai['status']][] = $ai; + else + $tmpa[$ai['status']] = array($ai); + } + + $receiptStatus = $rmuser->getReceiptStatus(); + $tmpb = array(); + foreach($receiptStatus['indstatus'] as $ai) { + if(isset($tmpb[$ai['status']])) + $tmpb[$ai['status']][] = $ai; + else + $tmpb[$ai['status']] = array($ai); + } + + $revisionStatus = $rmuser->getRevisionStatus(); + $tmpc = array(); + foreach($revisionStatus['indstatus'] as $ai) { + if(isset($tmpc[$ai['status']])) + $tmpc[$ai['status']][] = $ai; + else + $tmpc[$ai['status']] = array($ai); + } +?> + +
    +
    + +
    +
    + + +
    +
    + +
    +
    + + +
    +
    + +
    +
    + + + +
    +
    + +
    +
    + + +
    +
    + +
    +
    + + +
    +
    + +
    +
    + + + +
    +
    + +
    +
    + + +
    +
    + +
    +
    + + +
    +
    + +
    +
    + + + +
    +
    + +
    +
    + + +
    +
    + +
    +
    + + +
    +
    + +
    +
    + + +
    +
    + +
    +
    + + +
    +
    + +
    +
    + +
    +contentContainerEnd(); + $this->contentEnd(); + $this->htmlEndPage(); + } /* }}} */ +} +?> diff --git a/views/bootstrap/class.SearchFulltext.php b/views/bootstrap/class.SearchFulltext.php index 73abe148e..e80145e6e 100644 --- a/views/bootstrap/class.SearchFulltext.php +++ b/views/bootstrap/class.SearchFulltext.php @@ -128,4 +128,3 @@ class SeedDMS_View_SearchFulltext extends SeedDMS_Bootstrap_Style { } /* }}} */ } ?> - diff --git a/views/bootstrap/class.Session.php b/views/bootstrap/class.Session.php index 9146fc901..4d3b5a8a1 100644 --- a/views/bootstrap/class.Session.php +++ b/views/bootstrap/class.Session.php @@ -45,6 +45,7 @@ class SeedDMS_View_Session extends SeedDMS_Bootstrap_Style { $user = $this->params['user']; $sessionmgr = new SeedDMS_SessionMgr($dms->getDB()); + /* Get only sessions which has been active in the last 3600 sec. */ $sessions = $sessionmgr->getLastAccessedSessions(date('Y-m-d H:i:s', time()-3600)); if ($user->isGuest() || count($sessions) == 0) { @@ -58,7 +59,7 @@ class SeedDMS_View_Session extends SeedDMS_Bootstrap_Style { foreach($sessions as $session) { if($sesuser = $dms->getUser($session->getUser())) if(!$sesuser->isHidden()) - $content .= "
  • ".htmlspecialchars($sesuser->getFullName())." ".getReadableDuration(time()-$session->getLastAccess())."
  • \n"; + $content .= "
  • ".htmlspecialchars($sesuser->getFullName()).($user->isAdmin() ? " (".getReadableDuration(time()-$session->getLastAccess()).")" : "")."
  • \n"; } $content .= " \n"; $content .= " \n"; diff --git a/views/bootstrap/class.SetReviewersApprovers.php b/views/bootstrap/class.SetReviewersApprovers.php index 2e3ec63f5..2aee022ce 100644 --- a/views/bootstrap/class.SetReviewersApprovers.php +++ b/views/bootstrap/class.SetReviewersApprovers.php @@ -43,6 +43,7 @@ class SeedDMS_View_SetReviewersApprovers extends SeedDMS_Bootstrap_Style { $enableselfrevapp = $this->params['enableselfrevapp']; $overallStatus = $content->getStatus(); + $owner = $document->getOwner(); $this->htmlStartPage(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName())))); $this->globalNavigation($folder); @@ -92,7 +93,12 @@ class SeedDMS_View_SetReviewersApprovers extends SeedDMS_Bootstrap_Style { "; +// print ""; } elseif (isset($reviewIndex["i"][$usr->getID()])) { @@ -134,6 +140,24 @@ class SeedDMS_View_SetReviewersApprovers extends SeedDMS_Bootstrap_Style { ?> + 0) { + $u = $dms->getUser($r['reviewerUserID']); + $tmp[] = htmlspecialchars($u->getFullName().' ('.$u->getLogin().')'); + } + } + if($tmp) { + echo '
    '.getMLText('mandatory_reviewers').': '; + echo implode(', ', $tmp); + echo "
    \n"; + } + } +?> +
    :
    "; +// print ""; } elseif (isset($reviewIndex["g"][$group->getID()])) { @@ -165,8 +189,25 @@ class SeedDMS_View_SetReviewersApprovers extends SeedDMS_Bootstrap_Style { } } ?> - - + + 0) { + $u = $dms->getGroup($r['reviewerGroupID']); + $tmp[] = htmlspecialchars($u->getName()); + } + } + if($tmp) { + echo '
    '.getMLText('mandatory_reviewergroups').': '; + echo implode(', ', $tmp); + echo "
    \n"; + } + } + } +?> contentSubHeading(getMLText("update_approvers"));?> @@ -174,8 +215,12 @@ class SeedDMS_View_SetReviewersApprovers extends SeedDMS_Bootstrap_Style { "; +// print ""; } elseif (isset($approvalIndex["i"][$usr->getID()])) { @@ -206,7 +251,24 @@ class SeedDMS_View_SetReviewersApprovers extends SeedDMS_Bootstrap_Style { } } ?> - + + 0) { + $u = $dms->getUser($r['approverUserID']); + $tmp[] = htmlspecialchars($u->getFullName().' ('.$u->getLogin().')'); + } + } + if($tmp) { + echo '
    '.getMLText('mandatory_approvers').': '; + echo implode(', ', $tmp); + echo "
    \n"; + } + } +?> +
    :
    :
    "; +// print ""; } elseif (isset($approvalIndex["g"][$group->getID()])) { @@ -251,8 +313,24 @@ class SeedDMS_View_SetReviewersApprovers extends SeedDMS_Bootstrap_Style { } } ?> - - + + 0) { + $u = $dms->getGroup($r['approverGroupID']); + $tmp[] = htmlspecialchars($u->getName()); + } + } + if($tmp) { + echo '
    '.getMLText('mandatory_approvergroups').': '; + echo implode(', ', $tmp); + echo "
    \n"; + } + } +?>

    diff --git a/views/bootstrap/class.Settings.php b/views/bootstrap/class.Settings.php index 439a4dac6..38431358a 100644 --- a/views/bootstrap/class.Settings.php +++ b/views/bootstrap/class.Settings.php @@ -272,6 +272,10 @@ if(!is_writeable($settings->_configFilePath)) { "> : _enableMenuTasks) echo "checked" ?> /> + + "> + : + _enableDropFolderList) echo "checked" ?> /> "> : diff --git a/views/bootstrap/class.SubstituteUser.php b/views/bootstrap/class.SubstituteUser.php index a60194361..584a721f9 100644 --- a/views/bootstrap/class.SubstituteUser.php +++ b/views/bootstrap/class.SubstituteUser.php @@ -45,7 +45,6 @@ class SeedDMS_View_SubstituteUser extends SeedDMS_Bootstrap_Style { $this->pageNavigation(getMLText("admin_tools"), "admin_tools"); $this->contentHeading(getMLText("substitute_user")); - $this->contentContainerStart(); ?> @@ -54,7 +53,7 @@ class SeedDMS_View_SubstituteUser extends SeedDMS_Bootstrap_Style { "; + echo "isDisabled() ? " class=\"error\"" : "").">"; echo ""; echo "
    "; echo htmlspecialchars($currUser->getFullName())." (".htmlspecialchars($currUser->getLogin()).")
    "; echo "".htmlspecialchars($currUser->getComment()).""; @@ -97,11 +96,9 @@ class SeedDMS_View_SubstituteUser extends SeedDMS_Bootstrap_Style { } echo "
    "; - $this->contentContainerEnd(); $this->contentEnd(); $this->htmlEndPage(); } /* }}} */ } ?> - diff --git a/views/bootstrap/class.Timeline.php b/views/bootstrap/class.Timeline.php index 3e7f2cda3..6b1d9fd13 100644 --- a/views/bootstrap/class.Timeline.php +++ b/views/bootstrap/class.Timeline.php @@ -256,6 +256,8 @@ div.timeline-event-selected { >
    >
    >
    + >
    + >
    >
    >
    diff --git a/views/bootstrap/class.TransferObjects.php b/views/bootstrap/class.TransferObjects.php new file mode 100644 index 000000000..70f97ab91 --- /dev/null +++ b/views/bootstrap/class.TransferObjects.php @@ -0,0 +1,90 @@ + + * @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 TransferObjects view + * + * @category DMS + * @package SeedDMS + * @author Markus Westphal, Malcolm Cowe, Uwe Steinmann + * @copyright Copyright (C) 2002-2005 Markus Westphal, + * 2006-2008 Malcolm Cowe, 2010 Matteo Lucarelli, + * 2010-2012 Uwe Steinmann + * @version Release: @package_version@ + */ +class SeedDMS_View_TransferObjects extends SeedDMS_Bootstrap_Style { + + function show() { /* {{{ */ + $dms = $this->params['dms']; + $user = $this->params['user']; + $rmuser = $this->params['rmuser']; + $allusers = $this->params['allusers']; + + $this->htmlStartPage(getMLText("admin_tools")); + $this->globalNavigation(); + $this->contentStart(); + $this->pageNavigation(getMLText("admin_tools"), "admin_tools"); + $this->contentHeading(getMLText("transfer_objects")); + +?> +

    + htmlspecialchars($rmuser->getFullName())));?> +
    +contentContainerStart(); +?> +
    + + + + +
    + +
    + +
    +
    + +
    +
    + +
    +
    + +
    +contentContainerEnd(); + $this->contentEnd(); + $this->htmlEndPage(); + } /* }}} */ +} +?> diff --git a/views/bootstrap/class.UserList.php b/views/bootstrap/class.UserList.php index ab47e1d73..263922b07 100644 --- a/views/bootstrap/class.UserList.php +++ b/views/bootstrap/class.UserList.php @@ -44,7 +44,6 @@ class SeedDMS_View_UserList extends SeedDMS_Bootstrap_Style { $this->contentStart(); $this->pageNavigation("", "admin_tools"); $this->contentHeading(getMLText("user_list")); - $this->contentContainerStart(); $sessionmgr = new SeedDMS_SessionMgr($dms->getDB()); ?> @@ -53,7 +52,7 @@ class SeedDMS_View_UserList extends SeedDMS_Bootstrap_Style { "; + echo "isDisabled() ? " class=\"error\"" : "").">"; echo ""; if ($currUser->hasImage()) print "html_url('UserImage', array('userid'=>$currUser->getId()))."\" >"; @@ -116,7 +115,6 @@ class SeedDMS_View_UserList extends SeedDMS_Bootstrap_Style { } echo ""; - $this->contentContainerEnd(); $this->contentEnd(); $this->htmlEndPage(); } /* }}} */ diff --git a/views/bootstrap/class.UsrMgr.php b/views/bootstrap/class.UsrMgr.php index f043922e3..7288ba361 100644 --- a/views/bootstrap/class.UsrMgr.php +++ b/views/bootstrap/class.UsrMgr.php @@ -96,39 +96,80 @@ $(document).ready( function() { $this->contentHeading(getMLText("user_info")); echo "\n"; echo "\n"; $documents = $seluser->getDocuments(); echo "\n"; $documents = $seluser->getDocumentsLocked(); echo "\n"; + $categories = $seluser->getKeywordCategories(); + echo "\n"; + $dnot = $seluser->getNotifications(T_DOCUMENT); + echo "\n"; + $fnot = $seluser->getNotifications(T_FOLDER); + echo "\n"; + if($workflowmode == "traditional") { - $reviewStatus = $seluser->getReviewStatus(); - if($reviewStatus['indstatus']) { - $i = 0; - foreach($reviewStatus['indstatus'] as $rv) { - if($rv['status'] == 0) { - $i++; + $resArr = $dms->getDocumentList('ReviewByMe', $seluser); + if($resArr) { + foreach ($resArr as $res) { + $document = $dms->getDocument($res["id"]); + if($document->getAccessMode($user) >= M_READ && $document->getLatestContent()) { + $tasks['review'][] = array('id'=>$res['id'], 'name'=>$res['name']); } } - echo "\n"; + echo "\n"; } } if($workflowmode == "traditional" || $workflowmode == 'traditional_only_approval') { - $approvalStatus = $seluser->getApprovalStatus(); - if($approvalStatus['indstatus']) { - $i = 0; - foreach($approvalStatus['indstatus'] as $rv) { - if($rv['status'] == 0) { - $i++; + $resArr = $dms->getDocumentList('ApproveByMe', $seluser); + if($resArr) { + foreach ($resArr as $res) { + $document = $dms->getDocument($res["id"]); + if($document->getAccessMode($user) >= M_READ && $document->getLatestContent()) { + $tasks['approval'][] = array('id'=>$res['id'], 'name'=>$res['name']); } } - echo "\n"; + echo "\n"; + } + $resArr = $seluser->isMandatoryReviewerOf(); + if($resArr) { + echo "\n"; + } + $resArr = $seluser->isMandatoryApproverOf(); + if($resArr) { + echo "\n"; } } + $resArr = $dms->getDocumentList('ReceiptByMe', $seluser); + if($resArr) { + foreach ($resArr as $res) { + $document = $dms->getDocument($res["id"]); + if($document->getAccessMode($user) >= M_READ && $document->getLatestContent()) { + $tasks['receipt'][] = array('id'=>$res['id'], 'name'=>$res['name']); + } + } + echo "\n"; + } + $resArr = $dms->getDocumentList('ReviseByMe', $seluser); + if($resArr) { + foreach ($resArr as $res) { + $document = $dms->getDocument($res["id"]); + if($document->getAccessMode($user) >= M_READ && $document->getLatestContent()) { + $tasks['revision'][] = array('id'=>$res['id'], 'name'=>$res['name']); + } + } + echo "\n"; + } if($workflowmode == 'advanced') { + $workflows = $seluser->getWorkflowsInvolved(); + echo "\n"; $workflowStatus = $seluser->getWorkflowStatus(); if($workflowStatus['u']) echo "\n"; @@ -141,8 +182,37 @@ $(document).ready( function() { // echo "\n"; echo "
    ".getMLText('discspace').""; - $qt = $seluser->getQuota() ? $seluser->getQuota() : $quota; - echo SeedDMS_Core_File::format_filesize($seluser->getUsedDiskSpace())." / ".SeedDMS_Core_File::format_filesize($qt)."
    "; - echo $this->getProgressBar($seluser->getUsedDiskSpace(), $qt); + if($quota) { + $qt = $seluser->getQuota() ? $seluser->getQuota() : $quota; + echo SeedDMS_Core_File::format_filesize($seluser->getUsedDiskSpace())." / ".SeedDMS_Core_File::format_filesize($qt)."
    "; + echo $this->getProgressBar($seluser->getUsedDiskSpace(), $qt); + } else { + echo SeedDMS_Core_File::format_filesize($seluser->getUsedDiskSpace())."
    "; + } echo "
    ".getMLText('documents')."".count($documents)."
    ".getMLText('documents_locked')."".count($documents)."
    ".getMLText('personal_default_keywords')."".count($categories)."
    ".getMLText('documents_with_notification')."".count($dnot)."
    ".getMLText('folders_with_notification')."".count($fnot)."
    ".getMLText('pending_reviews')."".$i."
    ".getMLText('pending_reviews')."".count($tasks['review'])."
    ".getMLText('pending_approvals')."".$i."
    ".getMLText('pending_approvals')."".count($tasks['approval'])."
    ".getMLText('mandatory_reviewers')."".count($resArr)."
    ".getMLText('mandatory_approvers')."".count($resArr)."
    ".getMLText('pending_receipt')."".count($tasks['receipt'])."
    ".getMLText('pending_revision')."".count($tasks['revision'])."
    ".getMLText('workflows_involded')."".count($workflows)."
    ".getMLText('pending_workflows')."".count($workflowStatus['u'])."
    ".getMLText('network_drive')."_httpRoot.'checkout/'.preg_replace('/[^A-Za-z0-9_-]/', '', $seluser->getLogin())."\">".preg_replace('/[^A-Za-z0-9_-]/', '', $seluser->getLogin())."
    "; + } + } /* }}} */ + + function actionmenu() { /* {{{ */ + $dms = $this->params['dms']; + $user = $this->params['user']; + $seluser = $this->params['seluser']; + $quota = $this->params['quota']; + $workflowmode = $this->params['workflowmode']; + $undeluserids = $this->params['undeluserids']; + + if($seluser) { +?> +
    + + + + + +
    + -getID(), $undeluserids) && $this->check_access('RemoveUser')) { -?> - - - - - @@ -508,11 +568,7 @@ $(document).ready( function() { ?>
    -
    -
    - -
    -
    -
    -
    +check_view_access($this, array('action'=>'actionmenu'))) { ?> +
    getID()."\"" : "") ?>>
    + check_view_access($this, array('action'=>'info'))) { ?>
    getID()."\"" : "") ?>>
    diff --git a/views/bootstrap/class.ViewDocument.php b/views/bootstrap/class.ViewDocument.php index c8fcf56be..99b71c71d 100644 --- a/views/bootstrap/class.ViewDocument.php +++ b/views/bootstrap/class.ViewDocument.php @@ -796,6 +796,7 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style { foreach ($reviewStatus as $r) { $required = null; $is_reviewer = false; + $accesserr = ''; switch ($r["type"]) { case 0: // Reviewer is an individual. $required = $dms->getUser($r["required"]); @@ -803,7 +804,13 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style { $reqName = getMLText("unknown_user")." '".$r["required"]."'"; } else { - $reqName = htmlspecialchars($required->getFullName()." (".$required->getLogin().")"); + $reqName = " ".htmlspecialchars($required->getFullName()." (".$required->getLogin().")"); + if($user->isAdmin()) { + if($document->getAccessMode($required) < M_READ || $latestContent->getAccessMode($required) < M_READ) + $accesserr = getMLText("access_denied"); + elseif(is_object($required) && $required->isDisabled()) + $accesserr = getMLText("login_disabled_title"); + } if($required->getId() == $user->getId()/* && ($user->getId() != $owner->getId() || $enableownerrevapp == 1)*/) $is_reviewer = true; } @@ -814,7 +821,12 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style { $reqName = getMLText("unknown_group")." '".$r["required"]."'"; } else { - $reqName = "".htmlspecialchars($required->getName()).""; + $reqName = " ".htmlspecialchars($required->getName()); + if($user->isAdmin()) { + $grpusers = $required->getUsers(); + if(!$grpusers) + $accesserr = getMLText("no_group_members"); + } if($required->isMember($user)/* && ($user->getId() != $owner->getId() || $enableownerrevapp == 1)*/) $is_reviewer = true; } @@ -836,6 +848,8 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style { print "\n"; print "
    \n"; print "\n"; print "\n"; print "
    html_link('RemoveUser', array('userid'=>$currUser->getID()), array('class'=>'btn'), ' '.getMLText("rm_user"), false); ?>
    : ">".getReviewStatusText($r["status"])."
      "; + if($accesserr) + echo "
    • ".$accesserr."
    • "; if($accessop->mayReview($document)) { if ($is_reviewer) { @@ -869,6 +883,7 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style { foreach ($approvalStatus as $a) { $required = null; $is_approver = false; + $accesserr = ''; switch ($a["type"]) { case 0: // Approver is an individual. $required = $dms->getUser($a["required"]); @@ -876,7 +891,13 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style { $reqName = getMLText("unknown_user")." '".$a["required"]."'"; } else { - $reqName = htmlspecialchars($required->getFullName()." (".$required->getLogin().")"); + $reqName = " ".htmlspecialchars($required->getFullName()." (".$required->getLogin().")"); + if($user->isAdmin()) { + if($document->getAccessMode($required) < M_READ || $latestContent->getAccessMode($required) < M_READ) + $accesserr = getMLText("access_denied"); + elseif(is_object($required) && $required->isDisabled()) + $accesserr = getMLText("login_disabled_title"); + } if($required->getId() == $user->getId()) $is_approver = true; } @@ -887,7 +908,12 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style { $reqName = getMLText("unknown_group")." '".$a["required"]."'"; } else { - $reqName = "".htmlspecialchars($required->getName()).""; + $reqName = " ".htmlspecialchars($required->getName()); + if($user->isAdmin()) { + $grpusers = $required->getUsers(); + if(!$grpusers) + $accesserr = getMLText("no_group_members"); + } if($required->isMember($user)/* && ($user->getId() != $owner->getId() || $enableownerrevapp == 1)*/) $is_approver = true; } @@ -909,6 +935,8 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style { echo "
    ".getApprovalStatusText($a["status"])."
      "; + if($accesserr) + echo "
    • ".$accesserr."
    • "; if($accessop->mayApprove($document)) { if ($is_approver) { @@ -929,7 +957,7 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style { print "
    \n"; $this->contentContainerEnd(); - if($user->isAdmin()) { + if($user->isAdmin() || $user->getId() == $document->getOwner()->getId()) { ?>
    getUser($r["required"]); - if($user->isAdmin() && ($document->getAccessMode($required) < M_READ || $latestContent->getAccessMode($required) < M_READ)) - $accesserr = getMLText("access_denied"); if (!is_object($required)) { $reqName = getMLText("unknown_user")." '".$r["required"]."'"; - } - else { - $reqName = htmlspecialchars($required->getFullName()." (".$required->getLogin().")"); + } else { + $reqName = " ".htmlspecialchars($required->getFullName()." (".$required->getLogin().")"); + if($user->isAdmin()) { + if($document->getAccessMode($required) < M_READ || $latestContent->getAccessMode($required) < M_READ) + $accesserr = getMLText("access_denied"); + elseif(is_object($required) && $required->isDisabled()) + $accesserr = getMLText("login_disabled_title"); + } } if($r["required"] == $user->getId()/* && ($user->getId() != $owner->getId() || $enableownerreceipt == 1)*/) $is_recipient = true; @@ -1215,7 +1246,12 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style { $reqName = getMLText("unknown_group")." '".$r["required"]."'"; } else { - $reqName = "".htmlspecialchars($required->getName()).""; + $reqName = " ".htmlspecialchars($required->getName()); + if($user->isAdmin()) { + $grpusers = $required->getUsers(); + if(!$grpusers) + $accesserr = getMLText("no_group_members"); + } if($required->isMember($user)/* && ($user->getId() != $owner->getId() || $enableownerreceipt == 1)*/) $is_recipient = true; } @@ -1254,16 +1290,16 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style { contentContainerEnd(); - if($user->isAdmin()) { + if($user->isAdmin() || $user->getId() == $document->getOwner()->getId()) { /* Do not count entries '-2' as they are removed userѕ */ $totalreceipts = $stat['-1'] + $stat['0'] + $stat['1']; ?>
    -
    +
    -
    +
    @@ -1317,14 +1353,20 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style { foreach ($revisionStatus as $r) { $required = null; $is_recipient = false; + $accesserr = ''; switch ($r["type"]) { case 0: // Reviewer is an individual. $required = $dms->getUser($r["required"]); if (!is_object($required)) { $reqName = getMLText("unknown_user")." '".$r["required"]."'"; - } - else { - $reqName = htmlspecialchars($required->getFullName()." (".$required->getLogin().")"); + } else { + $reqName = " ".htmlspecialchars($required->getFullName()." (".$required->getLogin().")"); + if($user->isAdmin()) { + if($document->getAccessMode($required) < M_READ || $latestContent->getAccessMode($required) < M_READ) + $accesserr = getMLText("access_denied"); + elseif(is_object($required) && $required->isDisabled()) + $accesserr = getMLText("login_disabled_title"); + } } if($r["required"] == $user->getId()/* && ($user->getId() != $owner->getId() || $enableownerrevapp == 1)*/) $is_recipient = true; @@ -1335,7 +1377,7 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style { $reqName = getMLText("unknown_group")." '".$r["required"]."'"; } else { - $reqName = "".htmlspecialchars($required->getName()).""; + $reqName = " ".htmlspecialchars($required->getName()); if($required->isMember($user)/* && ($user->getId() != $owner->getId() || $enableownerrevapp == 1)*/) $is_recipient = true; } @@ -1350,7 +1392,8 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style { print "".htmlspecialchars($r["comment"])."\n"; print "".getRevisionStatusText($r["status"])."\n"; print "
      "; - + if($accesserr) + echo "
    • ".$accesserr."
    • "; if($accessop->mayRevise($document)) { if ($is_recipient && $r["status"]==0) { print "
    • ".$this->html_link('ReviseDocument', array('documentid'=>$documentid, 'version'=>$latestContent->getVersion(), 'revisionid'=>$r['revisionID']), array('class'=>'btn btn-mini'), getMLText("add_revision"), false, true)."
    • "; @@ -1366,7 +1409,7 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style { contentContainerEnd(); - if($user->isAdmin()) { + if($user->isAdmin() || $user->getId() == $document->getOwner()->getId()) { ?>
      diff --git a/views/bootstrap/class.WorkflowActionsMgr.php b/views/bootstrap/class.WorkflowActionsMgr.php index 54c1df736..28d9f2a07 100644 --- a/views/bootstrap/class.WorkflowActionsMgr.php +++ b/views/bootstrap/class.WorkflowActionsMgr.php @@ -204,4 +204,3 @@ $(document).ready( function() { } /* }}} */ } ?> - diff --git a/views/bootstrap/class.WorkflowStatesMgr.php b/views/bootstrap/class.WorkflowStatesMgr.php index 078a71f6d..ffa894f10 100644 --- a/views/bootstrap/class.WorkflowStatesMgr.php +++ b/views/bootstrap/class.WorkflowStatesMgr.php @@ -215,4 +215,3 @@ $(document).ready(function() { } /* }}} */ } ?> - diff --git a/views/bootstrap/class.WorkflowSummary.php b/views/bootstrap/class.WorkflowSummary.php index 64d0a1cf1..24f982efd 100644 --- a/views/bootstrap/class.WorkflowSummary.php +++ b/views/bootstrap/class.WorkflowSummary.php @@ -174,4 +174,3 @@ class SeedDMS_View_WorkflowSummary extends SeedDMS_Bootstrap_Style { } /* }}} */ } ?> - diff --git a/views/bootstrap/images/gnome-mime-application-pdf.svg b/views/bootstrap/images/gnome-mime-application-pdf.svg new file mode 100644 index 000000000..60990a4a5 --- /dev/null +++ b/views/bootstrap/images/gnome-mime-application-pdf.svg @@ -0,0 +1,633 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + rich + text + document + office + word + write + + + + + + Lapo Calamandrei + + + + + + + + + + + + + + + + + + + + + + Jakub Steiner + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +