diff --git a/CHANGELOG b/CHANGELOG index 2376707a7..ed74b39a2 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,11 @@ +-------------------------------------------------------------------------------- + Changes in version 4.3.21 +-------------------------------------------------------------------------------- +- fix sql statement when searching for attributes (SeedDMS_Core, Closes: 227) +- show preview images file list of drop folder +- add timeline +- fix document and page count in fulltext search + -------------------------------------------------------------------------------- Changes in version 4.3.20 -------------------------------------------------------------------------------- diff --git a/Makefile b/Makefile index 646ee0fcd..c32b9fc2a 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -VERSION=4.3.20 +VERSION=4.3.21 SRC=CHANGELOG inc conf utils index.php languages views op out README.md README.Notification README.Ubuntu drop-tables-innodb.sql styles js TODO LICENSE Makefile webdav install restapi # webapp diff --git a/SeedDMS_Core/Core/inc.ClassDMS.php b/SeedDMS_Core/Core/inc.ClassDMS.php index 62db0ebf7..7d4fddf67 100644 --- a/SeedDMS_Core/Core/inc.ClassDMS.php +++ b/SeedDMS_Core/Core/inc.ClassDMS.php @@ -273,7 +273,7 @@ class SeedDMS_Core_DMS { $this->convertFileTypes = array(); $this->version = '@package_version@'; if($this->version[0] == '@') - $this->version = '4.3.20'; + $this->version = '4.3.21'; } /* }}} */ /** @@ -839,16 +839,16 @@ class SeedDMS_Core_DMS { } else $searchAttributes[] = "EXISTS (SELECT NULL FROM `tblDocumentAttributes` WHERE `tblDocumentAttributes`.`attrdef`=".$attrdefid." AND `tblDocumentAttributes`.`value`='".$attribute."' AND `tblDocumentAttributes`.`document` = `tblDocuments`.`id`)"; } else - $searchAttributes[] = "EXISTS (SELECT NULL FROM `tblDocumentAttributes` WHERE `tblDocumentAttributes`.`attrdef`=".$attrdefid." AND `tblDocumentAttributes`.`value` like '%".$attribute."%') AND `tblDocumentAttributes`.`document` = `tblDocuments`.`id`"; + $searchAttributes[] = "EXISTS (SELECT NULL FROM `tblDocumentAttributes` WHERE `tblDocumentAttributes`.`attrdef`=".$attrdefid." AND `tblDocumentAttributes`.`value` like '%".$attribute."%' AND `tblDocumentAttributes`.`document` = `tblDocuments`.`id`)"; } elseif($attrdef->getObjType() == SeedDMS_Core_AttributeDefinition::objtype_documentcontent) { if($attrdef->getValueSet()) { if($attrdef->getMultipleValues()) { $searchAttributes[] = "EXISTS (SELECT NULL FROM `tblDocumentContentAttributes` WHERE `tblDocumentContentAttributes`.`attrdef`=".$attrdefid." AND (`tblDocumentContentAttributes`.`value` like '%".$valueset[0].implode("%' OR `tblDocumentContentAttributes`.`value` like '%".$valueset[0], $attribute)."%') AND `tblDocumentContentAttributes`.`document` = `tblDocumentContent`.`id`)"; } else { - $searchAttributes[] = "EXISTS (SELECT NULL FROM `tblDocumentContentAttributes` WHERE `tblDocumentContentAttributes`.`attrdef`=".$attrdefid." AND `tblDocumentContentAttributes`.`value`='".$attribute."' AND `tblDocumentContentAttributes`.content = `tblDocumentContent`.id"; + $searchAttributes[] = "EXISTS (SELECT NULL FROM `tblDocumentContentAttributes` WHERE `tblDocumentContentAttributes`.`attrdef`=".$attrdefid." AND `tblDocumentContentAttributes`.`value`='".$attribute."' AND `tblDocumentContentAttributes`.content = `tblDocumentContent`.id)"; } } else - $searchAttributes[] = "EXISTS (SELECT NULL FROM `tblDocumentContentAttributes` WHERE `tblDocumentContentAttributes`.`attrdef`=".$attrdefid." AND `tblDocumentContentAttributes`.`value` like '%".$attribute."%' AND `tblDocumentContentAttributes`.content = `tblDocumentContent`.id"; + $searchAttributes[] = "EXISTS (SELECT NULL FROM `tblDocumentContentAttributes` WHERE `tblDocumentContentAttributes`.`attrdef`=".$attrdefid." AND `tblDocumentContentAttributes`.`value` like '%".$attribute."%' AND `tblDocumentContentAttributes`.content = `tblDocumentContent`.id)"; } } } @@ -1591,7 +1591,7 @@ class SeedDMS_Core_DMS { */ function createPasswordRequest($user) { /* {{{ */ $hash = md5(uniqid(time())); - $queryStr = "INSERT INTO tblUserPasswordRequest (userID, hash, `date`) VALUES (" . $user->getId() . ", " . $this->db->qstr($hash) .", CURRENT_TIMESTAMP)"; + $queryStr = "INSERT INTO tblUserPasswordRequest (userID, hash, `date`) VALUES (" . $user->getId() . ", " . $this->db->qstr($hash) .", ".$db->getCurrentDatetime().")"; $resArr = $this->db->getResult($queryStr); if (is_bool($resArr) && !$resArr) return false; return $hash; @@ -2157,7 +2157,7 @@ class SeedDMS_Core_DMS { * documents or used space per user, recent activity, etc. * * @param string $type type of statistic - * @param array statistical data + * @return array statistical data */ function getStatisticalData($type='') { /* {{{ */ switch($type) { @@ -2225,6 +2225,38 @@ class SeedDMS_Core_DMS { } } /* }}} */ + /** + * Returns changes with a period of time + * + * This method returns a list of all changes happened in the database + * within a given period of time. It currently just checks for + * entries in the database tables tblDocumentContent, tblDocumentFiles, + * and tblDocumentStatusLog + * + * @param string $start start date + * @param string $end end date + * @return array list of changes + */ + function getTimeline($startts='', $endts='') { /* {{{ */ + if(!$startts) + $startts = mktime(0, 0, 0); + if(!$endts) + $startts = mktime(24, 0, 0); + $timeline = array(); + + $queryStr = "SELECT document FROM tblDocumentContent WHERE date > ".$startts." AND date < ".$endts; + $resArr = $this->db->getResultArray($queryStr); + if (!$resArr) + return false; + $resArr = $this->db->getResultArray($queryStr); + foreach($resArr as $rec) { + $document = $this->getDocument($rec['document']); + $timeline = array_merge($timeline, $document->getTimeline()); + } + return $timeline; + + } /* }}} */ + /** * Set a callback function * diff --git a/SeedDMS_Core/Core/inc.ClassDocument.php b/SeedDMS_Core/Core/inc.ClassDocument.php index 78b6ef517..993f22b8c 100644 --- a/SeedDMS_Core/Core/inc.ClassDocument.php +++ b/SeedDMS_Core/Core/inc.ClassDocument.php @@ -1158,8 +1158,6 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ // the doc path is id/version.filetype $dir = $this->getDir(); - $date = time(); - /* The version field in table tblDocumentContent used to be auto * increment but that requires the field to be primary as well if * innodb is used. That's why the version is now determined here. @@ -1178,7 +1176,7 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ $db->startTransaction(); $queryStr = "INSERT INTO tblDocumentContent (document, version, comment, date, createdBy, dir, orgFileName, fileType, mimeType, fileSize, checksum) VALUES ". - "(".$this->_id.", ".(int)$version.",".$db->qstr($comment).", ".$date.", ".$user->getID().", ".$db->qstr($dir).", ".$db->qstr($orgFileName).", ".$db->qstr($fileType).", ".$db->qstr($mimeType).", ".$filesize.", ".$db->qstr($checksum).")"; + "(".$this->_id.", ".(int)$version.",".$db->qstr($comment).", ".$db->getCurrentTimestamp().", ".$user->getID().", ".$db->qstr($dir).", ".$db->qstr($orgFileName).", ".$db->qstr($fileType).", ".$db->qstr($mimeType).", ".$filesize.", ".$db->qstr($checksum).")"; if (!$db->getResult($queryStr)) { $db->rollbackTransaction(); return false; @@ -1198,7 +1196,8 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ unset($this->_content); unset($this->_latestContent); - $content = new SeedDMS_Core_DocumentContent($contentID, $this, $version, $comment, $date, $user->getID(), $dir, $orgFileName, $fileType, $mimeType, $filesize, $checksum); + $content = $this->getLatestContent($contentID); +// $content = new SeedDMS_Core_DocumentContent($contentID, $this, $version, $comment, $date, $user->getID(), $dir, $orgFileName, $fileType, $mimeType, $filesize, $checksum); if($workflow) $content->setWorkflow($workflow, $user); $docResultSet = new SeedDMS_Core_AddContentResultSet($content); @@ -1282,7 +1281,7 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ $comment = ""; } $queryStr = "INSERT INTO `tblDocumentStatusLog` (`statusID`, `status`, `comment`, `date`, `userID`) ". - "VALUES ('". $statusID ."', '". $status."', 'New document content submitted". $comment ."', CURRENT_TIMESTAMP, '". $user->getID() ."')"; + "VALUES ('". $statusID ."', '". $status."', 'New document content submitted". $comment ."', ".$db->getCurrentDatetime().", '". $user->getID() ."')"; if (!$db->getResult($queryStr)) { $db->rollbackTransaction(); return false; @@ -1321,8 +1320,6 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ // the doc path is id/version.filetype $dir = $this->getDir(); - $date = time(); - /* If $version < 1 than replace the content of the latest version. */ if ((int) $version<1) { @@ -1356,7 +1353,7 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ $checksum = SeedDMS_Core_File::checksum($tmpFile); $db->startTransaction(); - $queryStr = "UPDATE tblDocumentContent set date=".$date.", fileSize=".$filesize.", checksum=".$db->qstr($checksum)." WHERE id=".$content->getID(); + $queryStr = "UPDATE tblDocumentContent set date=".$db->getCurrentTimestamp().", fileSize=".$filesize.", checksum=".$db->qstr($checksum)." WHERE id=".$content->getID(); if (!$db->getResult($queryStr)) { $db->rollbackTransaction(); return false; @@ -1731,7 +1728,7 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ $dir = $this->getDir(); $queryStr = "INSERT INTO tblDocumentFiles (comment, date, dir, document, fileType, mimeType, orgFileName, userID, name) VALUES ". - "(".$db->qstr($comment).", '".time()."', ".$db->qstr($dir).", ".$this->_id.", ".$db->qstr($fileType).", ".$db->qstr($mimeType).", ".$db->qstr($orgFileName).",".$user->getID().",".$db->qstr($name).")"; + "(".$db->qstr($comment).", ".$db->getCurrentTimestamp().", ".$db->qstr($dir).", ".$this->_id.", ".$db->qstr($fileType).", ".$db->qstr($mimeType).", ".$db->qstr($orgFileName).",".$user->getID().",".$db->qstr($name).")"; if (!$db->getResult($queryStr)) return false; $id = $db->getInsertID(); @@ -2085,6 +2082,66 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ return $resArr[0]['sum']; } /* }}} */ + /** + * Returns a list of events happend during the life of the document + * + * This includes the creation of new versions, approval and reviews, etc. + * + * @return array list of events + */ + function getTimeline() { /* {{{ */ + $db = $this->_dms->getDB(); + + $timeline = array(); + + /* No need to add entries for new version because the status log + * will generate an entry as well. + $queryStr = "SELECT * FROM tblDocumentContent WHERE document = " . $this->_id; + $resArr = $db->getResultArray($queryStr); + if (is_bool($resArr) && $resArr == false) + return false; + + foreach ($resArr as $row) { + $date = date('Y-m-d H:i:s', $row['date']); + $timeline[] = array('date'=>$date, 'msg'=>'Added version '.$row['version'], 'type'=>'add_version', 'version'=>$row['version'], 'document'=>$this, 'params'=>array($row['version'])); + } + */ + + $queryStr = "SELECT * FROM tblDocumentFiles WHERE document = " . $this->_id; + $resArr = $db->getResultArray($queryStr); + if (is_bool($resArr) && $resArr == false) + return false; + + foreach ($resArr as $row) { + $date = date('Y-m-d H:i:s', $row['date']); + $timeline[] = array('date'=>$date, 'msg'=>'Added attachment "'.$row['name'].'"', 'document'=>$this, 'type'=>'add_file'); + } + + $queryStr= + "SELECT `tblDocumentStatus`.*, `tblDocumentStatusLog`.`status`, ". + "`tblDocumentStatusLog`.`comment`, `tblDocumentStatusLog`.`date`, ". + "`tblDocumentStatusLog`.`userID` ". + "FROM `tblDocumentStatus` ". + "LEFT JOIN `tblDocumentStatusLog` USING (`statusID`) ". + "WHERE `tblDocumentStatus`.`documentID` = '". $this->_id ."' ". + "ORDER BY `tblDocumentStatusLog`.`statusLogID` DESC"; + $resArr = $db->getResultArray($queryStr); + if (is_bool($resArr) && !$resArr) + return false; + + /* The above query will also contain entries where a document status exists + * but no status log entry. Those records will have no date and must be + * skipped. + */ + foreach ($resArr as $row) { + if($row['date']) { + $date = $row['date']; + $timeline[] = array('date'=>$date, 'msg'=>'Version '.$row['version'].': Status change to '.$row['status'], 'type'=>'status_change', 'version'=>$row['version'], 'document'=>$this, 'status'=>$row['status'], 'params'=>array($row['version'], $row['status'])); + } + } + return $timeline; + } /* }}} */ + } /* }}} */ @@ -2214,6 +2271,10 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ if(!$date) $date = time(); + else { + if(!is_numeric($date)) + return false; + } $queryStr = "UPDATE tblDocumentContent SET date = ".(int) $date." WHERE `document` = " . $this->_document->getID() . " AND `version` = " . $this->_version; if (!$db->getResult($queryStr)) @@ -2470,7 +2531,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ if($date) $ddate = $db->qstr($date); else - $ddate = 'CURRENT_TIMESTAMP'; + $ddate = $db->getCurrentDatetime(); $queryStr = "INSERT INTO `tblDocumentStatusLog` (`statusID`, `status`, `comment`, `date`, `userID`) ". "VALUES ('". $this->_status["statusID"] ."', '". (int) $status ."', ".$db->qstr($comment).", ".$ddate.", '". $updateUser->getID() ."')"; $res = $db->getResult($queryStr); @@ -2867,7 +2928,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ } $queryStr = "INSERT INTO `tblDocumentReviewLog` (`reviewID`, `status`, `comment`, `date`, `userID`) ". - "VALUES ('". $reviewID ."', '0', '', CURRENT_TIMESTAMP, '". $requestUser->getID() ."')"; + "VALUES ('". $reviewID ."', '0', '', ".$db->getCurrentDatetime().", '". $requestUser->getID() ."')"; $res = $db->getResult($queryStr); if (is_bool($res) && !$res) { return -1; @@ -2925,7 +2986,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ } $queryStr = "INSERT INTO `tblDocumentReviewLog` (`reviewID`, `status`, `comment`, `date`, `userID`) ". - "VALUES ('". $reviewID ."', '0', '', CURRENT_TIMESTAMP, '". $requestUser->getID() ."')"; + "VALUES ('". $reviewID ."', '0', '', ".$db->getCurrentDatetime().", '". $requestUser->getID() ."')"; $res = $db->getResult($queryStr); if (is_bool($res) && !$res) { return -1; @@ -2982,7 +3043,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ $queryStr = "INSERT INTO `tblDocumentReviewLog` (`reviewID`, `status`, `comment`, `date`, `userID`) ". "VALUES ('". $indstatus["reviewID"] ."', '". - (int) $status ."', ".$db->qstr($comment).", CURRENT_TIMESTAMP, '". + (int) $status ."', ".$db->qstr($comment).", ".$db->getCurrentDatetime().", '". $requestUser->getID() ."')"; $res=$db->getResult($queryStr); if (is_bool($res) && !$res) @@ -3034,7 +3095,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ $queryStr = "INSERT INTO `tblDocumentReviewLog` (`reviewID`, `status`, `comment`, `date`, `userID`) ". "VALUES ('". $reviewStatus[0]["reviewID"] ."', '". - (int) $status ."', ".$db->qstr($comment).", CURRENT_TIMESTAMP, '". + (int) $status ."', ".$db->qstr($comment).", ".$db->getCurrentDatetime().", '". $requestUser->getID() ."')"; $res=$db->getResult($queryStr); if (is_bool($res) && !$res) @@ -3100,7 +3161,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ } $queryStr = "INSERT INTO `tblDocumentApproveLog` (`approveID`, `status`, `comment`, `date`, `userID`) ". - "VALUES ('". $approveID ."', '0', '', CURRENT_TIMESTAMP, '". $requestUser->getID() ."')"; + "VALUES ('". $approveID ."', '0', '', ".$db->getCurrentDatetime().", '". $requestUser->getID() ."')"; $res = $db->getResult($queryStr); if (is_bool($res) && !$res) { return -1; @@ -3156,7 +3217,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ } $queryStr = "INSERT INTO `tblDocumentApproveLog` (`approveID`, `status`, `comment`, `date`, `userID`) ". - "VALUES ('". $approveID ."', '0', '', CURRENT_TIMESTAMP, '". $requestUser->getID() ."')"; + "VALUES ('". $approveID ."', '0', '', ".$db->getCurrentDatetime().", '". $requestUser->getID() ."')"; $res = $db->getResult($queryStr); if (is_bool($res) && !$res) { return -1; @@ -3217,7 +3278,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ $queryStr = "INSERT INTO `tblDocumentApproveLog` (`approveID`, `status`, `comment`, `date`, `userID`) ". "VALUES ('". $indstatus["approveID"] ."', '". - (int) $status ."', ".$db->qstr($comment).", CURRENT_TIMESTAMP, '". + (int) $status ."', ".$db->qstr($comment).", ".$db->getCurrentDatetime().", '". $requestUser->getID() ."')"; $res=$db->getResult($queryStr); if (is_bool($res) && !$res) @@ -3261,7 +3322,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ $queryStr = "INSERT INTO `tblDocumentApproveLog` (`approveID`, `status`, `comment`, `date`, `userID`) ". "VALUES ('". $approvalStatus[0]["approveID"] ."', '". - (int) $status ."', ".$db->qstr($comment).", CURRENT_TIMESTAMP, '". + (int) $status ."', ".$db->qstr($comment).", ".$db->getCurrentDatetime().", '". $requestUser->getID() ."')"; $res=$db->getResult($queryStr); if (is_bool($res) && !$res) @@ -3297,7 +3358,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ } $queryStr = "INSERT INTO `tblDocumentReviewLog` (`reviewID`, `status`, `comment`, `date`, `userID`) ". - "VALUES ('". $indstatus["reviewID"] ."', '-2', '', CURRENT_TIMESTAMP, '". $requestUser->getID() ."')"; + "VALUES ('". $indstatus["reviewID"] ."', '-2', '', ".$db->getCurrentDatetime().", '". $requestUser->getID() ."')"; $res = $db->getResult($queryStr); if (is_bool($res) && !$res) { return -1; @@ -3328,7 +3389,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ } $queryStr = "INSERT INTO `tblDocumentReviewLog` (`reviewID`, `status`, `comment`, `date`, `userID`) ". - "VALUES ('". $reviewStatus[0]["reviewID"] ."', '-2', '', CURRENT_TIMESTAMP, '". $requestUser->getID() ."')"; + "VALUES ('". $reviewStatus[0]["reviewID"] ."', '-2', '', ".$db->getCurrentDatetime().", '". $requestUser->getID() ."')"; $res = $db->getResult($queryStr); if (is_bool($res) && !$res) { return -1; @@ -3360,7 +3421,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ } $queryStr = "INSERT INTO `tblDocumentApproveLog` (`approveID`, `status`, `comment`, `date`, `userID`) ". - "VALUES ('". $indstatus["approveID"] ."', '-2', '', CURRENT_TIMESTAMP, '". $requestUser->getID() ."')"; + "VALUES ('". $indstatus["approveID"] ."', '-2', '', ".$db->getCurrentDatetime().", '". $requestUser->getID() ."')"; $res = $db->getResult($queryStr); if (is_bool($res) && !$res) { return -1; @@ -3391,7 +3452,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ } $queryStr = "INSERT INTO `tblDocumentApproveLog` (`approveID`, `status`, `comment`, `date`, `userID`) ". - "VALUES ('". $approvalStatus[0]["approveID"] ."', '-2', '', CURRENT_TIMESTAMP, '". $requestUser->getID() ."')"; + "VALUES ('". $approvalStatus[0]["approveID"] ."', '-2', '', ".$db->getCurrentDatetime().", '". $requestUser->getID() ."')"; $res = $db->getResult($queryStr); if (is_bool($res) && !$res) { return -1; @@ -3460,7 +3521,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ if($workflow && is_object($workflow)) { $db->startTransaction(); $initstate = $workflow->getInitState(); - $queryStr = "INSERT INTO tblWorkflowDocumentContent (workflow, document, version, state, date) VALUES (". $workflow->getID(). ", ". $this->_document->getID() .", ". $this->_version .", ".$initstate->getID().", CURRENT_TIMESTAMP)"; + $queryStr = "INSERT INTO tblWorkflowDocumentContent (workflow, document, version, state, date) VALUES (". $workflow->getID(). ", ". $this->_document->getID() .", ". $this->_version .", ".$initstate->getID().", ".$db->getCurrentDatetime().")"; if (!$db->getResult($queryStr)) { $db->rollbackTransaction(); return false; @@ -3641,7 +3702,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ if($subworkflow) { $initstate = $subworkflow->getInitState(); - $queryStr = "INSERT INTO tblWorkflowDocumentContent (parentworkflow, workflow, document, version, state, date) VALUES (". $this->_workflow->getID(). ", ". $subworkflow->getID(). ", ". $this->_document->getID() .", ". $this->_version .", ".$initstate->getID().", CURRENT_TIMESTAMP)"; + $queryStr = "INSERT INTO tblWorkflowDocumentContent (parentworkflow, workflow, document, version, state, date) VALUES (". $this->_workflow->getID(). ", ". $subworkflow->getID(). ", ". $this->_document->getID() .", ". $this->_version .", ".$initstate->getID().", ".$db->getCurrentDatetime().")"; if (!$db->getResult($queryStr)) { return false; } @@ -3881,7 +3942,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */ return false; $state = $this->_workflowState; - $queryStr = "INSERT INTO tblWorkflowLog (document, version, workflow, userid, transition, date, comment) VALUES (".$this->_document->getID().", ".$this->_version.", " . (int) $this->_workflow->getID() . ", " .(int) $user->getID(). ", ".(int) $transition->getID().", CURRENT_TIMESTAMP, ".$db->qstr($comment).")"; + $queryStr = "INSERT INTO tblWorkflowLog (document, version, workflow, userid, transition, date, comment) VALUES (".$this->_document->getID().", ".$this->_version.", " . (int) $this->_workflow->getID() . ", " .(int) $user->getID(). ", ".(int) $transition->getID().", ".$db->getCurrentDatetime().", ".$db->qstr($comment).")"; if (!$db->getResult($queryStr)) return false; @@ -4360,7 +4421,7 @@ class SeedDMS_Core_AddContentResultSet { /* {{{ */ if (!is_integer($status)) { return false; } - if ($status<-3 || $status>2) { + if ($status<-3 || $status>3) { return false; } $this->_status = $status; diff --git a/SeedDMS_Core/Core/inc.ClassFolder.php b/SeedDMS_Core/Core/inc.ClassFolder.php index 84ee203a5..d58591b41 100644 --- a/SeedDMS_Core/Core/inc.ClassFolder.php +++ b/SeedDMS_Core/Core/inc.ClassFolder.php @@ -463,7 +463,7 @@ class SeedDMS_Core_Folder extends SeedDMS_Core_Object { //inheritAccess = true, defaultAccess = M_READ $queryStr = "INSERT INTO tblFolders (name, parent, folderList, comment, date, owner, inheritAccess, defaultAccess, sequence) ". - "VALUES (".$db->qstr($name).", ".$this->_id.", ".$db->qstr($pathPrefix).", ".$db->qstr($comment).", ".time().", ".$owner->getID().", 1, ".M_READ.", ". $sequence.")"; + "VALUES (".$db->qstr($name).", ".$this->_id.", ".$db->qstr($pathPrefix).", ".$db->qstr($comment).", ".$db->getCurrentTimestamp().", ".$owner->getID().", 1, ".M_READ.", ". $sequence.")"; if (!$db->getResult($queryStr)) { $db->rollbackTransaction(); return false; @@ -757,7 +757,7 @@ class SeedDMS_Core_Folder extends SeedDMS_Core_Object { $db->startTransaction(); $queryStr = "INSERT INTO tblDocuments (name, comment, date, expires, owner, folder, folderList, inheritAccess, defaultAccess, locked, keywords, sequence) VALUES ". - "(".$db->qstr($name).", ".$db->qstr($comment).", " . time().", ".(int) $expires.", ".$owner->getID().", ".$this->_id.",".$db->qstr($pathPrefix).", 1, ".M_READ.", -1, ".$db->qstr($keywords).", " . $sequence . ")"; + "(".$db->qstr($name).", ".$db->qstr($comment).", ".$db->getCurrentTimestamp().", ".(int) $expires.", ".$owner->getID().", ".$this->_id.",".$db->qstr($pathPrefix).", 1, ".M_READ.", -1, ".$db->qstr($keywords).", " . $sequence . ")"; if (!$db->getResult($queryStr)) { $db->rollbackTransaction(); return false; diff --git a/SeedDMS_Core/Core/inc.ClassGroup.php b/SeedDMS_Core/Core/inc.ClassGroup.php index 7471514b7..88535dad0 100644 --- a/SeedDMS_Core/Core/inc.ClassGroup.php +++ b/SeedDMS_Core/Core/inc.ClassGroup.php @@ -235,7 +235,7 @@ class SeedDMS_Core_Group { $reviewStatus = $this->getReviewStatus(); foreach ($reviewStatus as $r) { $queryStr = "INSERT INTO `tblDocumentReviewLog` (`reviewID`, `status`, `comment`, `date`, `userID`) ". - "VALUES ('". $r["reviewID"] ."', '-2', 'Review group removed from process', CURRENT_TIMESTAMP, '". $user->getID() ."')"; + "VALUES ('". $r["reviewID"] ."', '-2', 'Review group removed from process', ".$db->getCurrentDatetime().", '". $user->getID() ."')"; $res=$db->getResult($queryStr); if(!$res) { $db->rollbackTransaction(); @@ -246,7 +246,7 @@ class SeedDMS_Core_Group { $approvalStatus = $this->getApprovalStatus(); foreach ($approvalStatus as $a) { $queryStr = "INSERT INTO `tblDocumentApproveLog` (`approveID`, `status`, `comment`, `date`, `userID`) ". - "VALUES ('". $a["approveID"] ."', '-2', 'Approval group removed from process', CURRENT_TIMESTAMP, '". $user->getID() ."')"; + "VALUES ('". $a["approveID"] ."', '-2', 'Approval group removed from process', ".$db->getCurrentDatetime().", '". $user->getID() ."')"; $res=$db->getResult($queryStr); if(!$res) { $db->rollbackTransaction(); diff --git a/SeedDMS_Core/Core/inc.ClassUser.php b/SeedDMS_Core/Core/inc.ClassUser.php index cc0c2e9c1..e4f0b7e9c 100644 --- a/SeedDMS_Core/Core/inc.ClassUser.php +++ b/SeedDMS_Core/Core/inc.ClassUser.php @@ -584,7 +584,7 @@ class SeedDMS_Core_User { $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', CURRENT_TIMESTAMP, '". $user->getID() ."')"; + "VALUES ('". $ri["reviewID"] ."', '-2', 'Reviewer removed from process', ".$db->getCurrentDatetime().", '". $user->getID() ."')"; $res=$db->getResult($queryStr); if(!$res) { $db->rollbackTransaction(); @@ -595,7 +595,7 @@ class SeedDMS_Core_User { $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', CURRENT_TIMESTAMP, '". $user->getID() ."')"; + "VALUES ('". $ai["approveID"] ."', '-2', 'Approver removed from process', ".$db->getCurrentDatetime().", '". $user->getID() ."')"; $res=$db->getResult($queryStr); if(!$res) { $db->rollbackTransaction(); diff --git a/SeedDMS_Core/Core/inc.DBAccessPDO.php b/SeedDMS_Core/Core/inc.DBAccessPDO.php index 80068749c..8eb42c94f 100644 --- a/SeedDMS_Core/Core/inc.DBAccessPDO.php +++ b/SeedDMS_Core/Core/inc.DBAccessPDO.php @@ -454,6 +454,40 @@ class SeedDMS_Core_DatabaseAccess { return ''; } /* }}} */ + /** + * Return sql statement for returning the current date and time + * in format Y-m-d H:i:s + * + * @return string sql code + */ + function getCurrentDatetime() { /* {{{ */ + switch($this->_driver) { + case 'mysql': + return "CURRENT_TIMESTAMP"; + break; + case 'sqlite': + return "datetime('now', 'localtime')"; + break; + } + return ''; + } /* }}} */ + + /** + * Return sql statement for returning the current timestamp + * + * @return string sql code + */ + function getCurrentTimestamp() { /* {{{ */ + switch($this->_driver) { + case 'mysql': + return "UNIX_TIMESTAMP()"; + break; + case 'sqlite': + return "strftime('%s', 'now')"; + break; + } + return ''; + } /* }}} */ } ?> diff --git a/SeedDMS_Core/package.xml b/SeedDMS_Core/package.xml index 18e7d6ac7..44da79f5a 100644 --- a/SeedDMS_Core/package.xml +++ b/SeedDMS_Core/package.xml @@ -12,11 +12,11 @@ uwe@steinmann.cx yes - 2015-06-26 - + 2015-09-28 + - 4.3.20 - 4.3.20 + 4.3.21 + 4.3.21 stable @@ -24,15 +24,9 @@ GPL License -- add method SeedDMS_Core_DMS::checkDate() -- add method SeedDMS_Core_Document::setDate() -- add method SeedDMS_Core_Folder::setDate() -- date can be passed to SeedDMS_Core_DocumentContent::setStatus() -- add method SeedDMS_Core_DocumentContent::rewriteStatusLog() -- add method SeedDMS_Core_DocumentContent::rewriteReviewLog() -- add method SeedDMS_Core_DocumentContent::rewriteApprovalLog() -- access rights for guest are also taken into account if set in an acl. Previously guest could gain read rights even if the access was probibited -by a group or user right +- add method SeedDMS_Core_Database::getCurrentTimestamp() +- add method SeedDMS_Core_Database::getCurrentDatetime() +- user getCurrentTimestamp() and getCurrentDatetime() whenever possible @@ -874,5 +868,29 @@ clean workflow log when a document version was deleted - new method cleanNotifyList() + + 2015-06-26 + + + 4.3.20 + 4.3.20 + + + stable + stable + + GPL License + +- add method SeedDMS_Core_DMS::checkDate() +- add method SeedDMS_Core_Document::setDate() +- add method SeedDMS_Core_Folder::setDate() +- date can be passed to SeedDMS_Core_DocumentContent::setStatus() +- add method SeedDMS_Core_DocumentContent::rewriteStatusLog() +- add method SeedDMS_Core_DocumentContent::rewriteReviewLog() +- add method SeedDMS_Core_DocumentContent::rewriteApprovalLog() +- access rights for guest are also taken into account if set in an acl. Previously guest could gain read rights even if the access was probibited +by a group or user right + + diff --git a/SeedDMS_Preview/Preview/Previewer.php b/SeedDMS_Preview/Preview/Previewer.php index fba3359c9..a1a5d47e8 100644 --- a/SeedDMS_Preview/Preview/Previewer.php +++ b/SeedDMS_Preview/Preview/Previewer.php @@ -95,10 +95,10 @@ class SeedDMS_Preview_Previewer { $dir = $this->previewDir.'/'.$document->getDir(); switch(get_class($object)) { case "SeedDMS_Core_DocumentContent": - $target = $dir.'p'.$object->getVersion().'-'.$width.'.png'; + $target = $dir.'p'.$object->getVersion().'-'.$width; break; case "SeedDMS_Core_DocumentFile": - $target = $dir.'f'.$object->getID().'-'.$width.'.png'; + $target = $dir.'f'.$object->getID().'-'.$width; break; default: return false; @@ -106,7 +106,75 @@ class SeedDMS_Preview_Previewer { return $target; } /* }}} */ + /** + * Create a preview image for a given file + * + * @param string $infile name of input file including full path + * @param string $dir directory relative to $this->previewDir + * @param string $mimetype MimeType of input file + * @param integer $width width of generated preview image + * @return boolean true on success, false on failure + */ + public function createRawPreview($infile, $dir, $mimetype, $width=0, $target='') { /* {{{ */ + if($width == 0) + $width = $this->width; + else + $width = intval($width); + if(!$this->previewDir) + return false; + if(!is_dir($this->previewDir.'/'.$dir)) { + if (!SeedDMS_Core_File::makeDir($this->previewDir.'/'.$dir)) { + return false; + } + } + if(!file_exists($infile)) + return false; + if(!$target) + $target = $this->previewDir.$dir.md5($infile).'-'.$width; + if($target != '' && (!file_exists($target.'.png') || filectime($target.'.png') < filectime($infile))) { + $cmd = ''; + switch($mimetype) { + case "image/png": + case "image/gif": + case "image/jpeg": + case "image/jpg": + case "image/svg+xml": + $cmd = 'convert -resize '.$width.'x '.$infile.' '.$target.'.png'; + break; + case "application/pdf": + case "application/postscript": + $cmd = 'convert -density 100 -resize '.$width.'x '.$infile.'[0] '.$target.'.png'; + break; + case "text/plain": + $cmd = 'convert -resize '.$width.'x '.$infile.'[0] '.$target.'.png'; + break; + case "application/x-compressed-tar": + $cmd = 'tar tzvf '.$infile.' | convert -density 100 -resize '.$width.'x text:-[0] '.$target.'.png'; + break; + } + if($cmd) { + //exec($cmd); + try { + self::execWithTimeout($cmd); + } catch(Exception $e) { + } + } + return true; + } + return true; + + } /* }}} */ + public function createPreview($object, $width=0) { /* {{{ */ + if($width == 0) + $width = $this->width; + else + $width = intval($width); + $document = $object->getDocument(); + $file = $document->_dms->contentDir.$object->getPath(); + $target = $this->getFileName($object, $width); + return $this->createRawPreview($file, $document->getDir(), $object->getMimeType(), $width, $target); + if($width == 0) $width = $this->width; else @@ -124,7 +192,7 @@ class SeedDMS_Preview_Previewer { if(!file_exists($file)) return false; $target = $this->getFileName($object, $width); - if($target !== false && (!file_exists($target) || filectime($target) < $object->getDate())) { + if($target !== false && (!file_exists($target.'.png') || filectime($target.'.png') < $object->getDate())) { $cmd = ''; switch($object->getMimeType()) { case "image/png": @@ -132,17 +200,17 @@ class SeedDMS_Preview_Previewer { case "image/jpeg": case "image/jpg": case "image/svg+xml": - $cmd = 'convert -resize '.$width.'x '.$file.' '.$target; + $cmd = 'convert -resize '.$width.'x '.$file.' '.$target.'.png'; break; case "application/pdf": case "application/postscript": - $cmd = 'convert -density 100 -resize '.$width.'x '.$file.'[0] '.$target; + $cmd = 'convert -density 100 -resize '.$width.'x '.$file.'[0] '.$target.'.png'; break; case "text/plain": - $cmd = 'convert -resize '.$width.'x '.$file.'[0] '.$target; + $cmd = 'convert -resize '.$width.'x '.$file.'[0] '.$target.'.png'; break; case "application/x-compressed-tar": - $cmd = 'tar tzvf '.$file.' | convert -density 100 -resize '.$width.'x text:-[0] '.$target; + $cmd = 'tar tzvf '.$file.' | convert -density 100 -resize '.$width.'x text:-[0] '.$target.'.png'; break; } if($cmd) { @@ -158,6 +226,20 @@ class SeedDMS_Preview_Previewer { } /* }}} */ + public function hasRawPreview($infile, $dir, $width=0) { /* {{{ */ + if($width == 0) + $width = $this->width; + else + $width = intval($width); + if(!$this->previewDir) + return false; + $target = $this->previewDir.$dir.md5($infile).'-'.$width; + if($target !== false && file_exists($target.'.png') && filectime($target.'.png') >= filectime($infile)) { + return true; + } + return false; + } /* }}} */ + public function hasPreview($object, $width=0) { /* {{{ */ if($width == 0) $width = $this->width; @@ -166,12 +248,26 @@ class SeedDMS_Preview_Previewer { if(!$this->previewDir) return false; $target = $this->getFileName($object, $width); - if($target !== false && file_exists($target) && filectime($target) >= $object->getDate()) { + if($target !== false && file_exists($target.'.png') && filectime($target.'.png') >= $object->getDate()) { return true; } return false; } /* }}} */ + public function getRawPreview($infile, $dir, $width=0) { /* {{{ */ + if($width == 0) + $width = $this->width; + else + $width = intval($width); + if(!$this->previewDir) + return false; + + $target = $this->previewDir.$dir.md5($infile).'-'.$width; + if($target && file_exists($target.'.png')) { + readfile($target.'.png'); + } + } /* }}} */ + public function getPreview($object, $width=0) { /* {{{ */ if($width == 0) $width = $this->width; @@ -181,8 +277,8 @@ class SeedDMS_Preview_Previewer { return false; $target = $this->getFileName($object, $width); - if($target && file_exists($target)) { - readfile($target); + if($target && file_exists($target.'.png')) { + readfile($target.'.png'); } } /* }}} */ diff --git a/inc/inc.Calendar.php b/inc/inc.Calendar.php index e745690cd..9ce19ae07 100644 --- a/inc/inc.Calendar.php +++ b/inc/inc.Calendar.php @@ -49,7 +49,7 @@ function addEvent($from, $to, $name, $comment ){ global $db,$user; $queryStr = "INSERT INTO tblEvents (name, comment, start, stop, date, userID) VALUES ". - "(".$db->qstr($name).", ".$db->qstr($comment).", ".(int) $from.", ".(int) $to.", ".mktime().", ".$user->getID().")"; + "(".$db->qstr($name).", ".$db->qstr($comment).", ".(int) $from.", ".(int) $to.", ".$db->getCurrentTimestamp().", ".$user->getID().")"; $ret = $db->getResult($queryStr); return $ret; @@ -76,7 +76,7 @@ function editEvent($id, $from, $to, $name, $comment ){ global $db; - $queryStr = "UPDATE tblEvents SET start = " . (int) $from . ", stop = " . (int) $to . ", name = " . $db->qstr($name) . ", comment = " . $db->qstr($comment) . ", date = " . mktime() . " WHERE id = ". (int) $id; + $queryStr = "UPDATE tblEvents SET start = " . (int) $from . ", stop = " . (int) $to . ", name = " . $db->qstr($name) . ", comment = " . $db->qstr($comment) . ", date = " . $db->getCurrentTimestamp() . " WHERE id = ". (int) $id; $ret = $db->getResult($queryStr); return $ret; } diff --git a/inc/inc.ClassSettings.php b/inc/inc.ClassSettings.php index 984f1dce5..fe5beb606 100644 --- a/inc/inc.ClassSettings.php +++ b/inc/inc.ClassSettings.php @@ -443,7 +443,7 @@ class Settings { /* {{{ */ $this->_dbDatabase = strval($tab["dbDatabase"]); $this->_dbUser = strval($tab["dbUser"]); $this->_dbPass = strval($tab["dbPass"]); - $this->_doNotCheckDBVersion = Settings::boolVal($tab["doNotCheckVersion"]); + $this->_doNotCheckDBVersion = Settings::boolVal($tab["doNotCheckDBVersion"]); // XML Path: /configuration/system/smtp $node = $xml->xpath('/configuration/system/smtp'); @@ -722,7 +722,7 @@ class Settings { /* {{{ */ $this->setXMLAttributValue($node, "dbDatabase", $this->_dbDatabase); $this->setXMLAttributValue($node, "dbUser", $this->_dbUser); $this->setXMLAttributValue($node, "dbPass", $this->_dbPass); - $this->setXMLAttributValue($node, "doNotCheckVersion", $this->_doNotCheckVersion); + $this->setXMLAttributValue($node, "doNotCheckVersion", $this->_doNotCheckDBVersion); // XML Path: /configuration/system/smtp $node = $this->getXMLNode($xml, '/configuration/system', 'smtp'); diff --git a/inc/inc.Version.php b/inc/inc.Version.php index 7efae66c0..148b2a810 100644 --- a/inc/inc.Version.php +++ b/inc/inc.Version.php @@ -20,7 +20,7 @@ class SeedDMS_Version { - public $_number = "4.3.20"; + public $_number = "4.3.21"; private $_string = "SeedDMS"; function SeedDMS_Version() { diff --git a/install/install.php b/install/install.php index 869a062a6..c1370e799 100644 --- a/install/install.php +++ b/install/install.php @@ -119,7 +119,7 @@ function fileExistsInIncludePath($file) { /* {{{ */ * Load default settings + set */ define("SEEDDMS_INSTALL", "on"); -define("SEEDDMS_VERSION", "4.3.20"); +define("SEEDDMS_VERSION", "4.3.21"); require_once('../inc/inc.ClassSettings.php'); diff --git a/languages/ar_EG/lang.inc b/languages/ar_EG/lang.inc index d2f8b0163..a18b9dba0 100644 --- a/languages/ar_EG/lang.inc +++ b/languages/ar_EG/lang.inc @@ -173,6 +173,7 @@ URL: [url]', 'cannot_retrieve_review_snapshot' => 'لا يمكن استدعاء لقطة حالة المراجعة لهذا الاصدار من المستند', 'cannot_rm_root' => 'خطأ: لايمكنك مسح المجلد الرئيسي.', 'categories' => 'اقسام', +'categories_loading' => '', 'category' => 'قسم', 'category_exists' => '.القسم بالفعل موجود', 'category_filter' => 'اقسام فقط', @@ -382,6 +383,7 @@ URL: [url]', 'error_occured' => 'حدث خطأ', 'es_ES' => 'الإسبانية', 'event_details' => 'تفاصيل الحدث', +'exclude_items' => '', 'expired' => 'انتهى صلاحيته', 'expires' => 'تنتهى صلاحيته', 'expiry_changed_email' => 'تم تغيير تاريخ الصلاحية', @@ -398,6 +400,7 @@ URL: [url]', 'files' => 'ملفات', 'files_deletion' => 'مسح الملف', 'files_deletion_warning' => 'من خلال تلك الخاصية يمكنك مسح كل الملفات على مجلدات النظام. ملفات معلومات الاصدارات فقط ستظل متاحة للرؤية.', +'files_loading' => '', 'file_size' => 'حجم الملف', 'filter_for_documents' => '', 'filter_for_folders' => '', @@ -528,6 +531,7 @@ URL: [url]', 'keep' => '', 'keep_doc_status' => 'ابقاء حالة المستند', 'keywords' => 'كلمات البحث', +'keywords_loading' => '', 'keyword_exists' => 'كلمات البحث بالفعل موجودة', 'ko_KR' => '', 'language' => 'اللغة', @@ -662,6 +666,7 @@ URL: [url]', 'no_update_cause_locked' => 'لايمكنك تعديل المستند. قم بمخاطبة المستخدم الذي قام بحمايته من التعديل', 'no_user_image' => 'لا يوجد صورة متاحة', 'no_version_check' => '', +'no_version_modification' => '', 'no_workflow_available' => '', 'objectcheck' => 'التحقق من مستند/مجلد', 'obsolete' => 'مهمل', @@ -1217,6 +1222,20 @@ URL: [url]', 'theme' => 'شكل', 'thursday' => 'الخميس', 'thursday_abbr' => 'خ', +'timeline' => '', +'timeline_add_file' => '', +'timeline_add_version' => '', +'timeline_full_add_file' => '', +'timeline_full_add_version' => '', +'timeline_full_status_change' => '', +'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_status_change' => '', 'to' => 'الى', 'toggle_manager' => 'رجح مدير', 'to_before_from' => '', @@ -1238,6 +1257,7 @@ URL: [url]', 'transmittal_comment' => '', 'transmittal_name' => '', 'transmittal_size' => '', +'tree_loading' => '', 'trigger_workflow' => 'مسار العمل', 'tr_TR' => 'ﺕﺮﻜﻳﺓ', 'tuesday' => 'الثلاثاء', diff --git a/languages/bg_BG/lang.inc b/languages/bg_BG/lang.inc index 193436f31..5f64dd742 100644 --- a/languages/bg_BG/lang.inc +++ b/languages/bg_BG/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 (780) +// Translators: Admin (781) $text = array( 'accept' => 'Приеми', @@ -158,6 +158,7 @@ $text = array( 'cannot_retrieve_review_snapshot' => 'Невозможно е да се получи рецензираща снимка за тази версия на документа', 'cannot_rm_root' => 'Невозможно е да се изтрие руут папката', 'categories' => 'Категории', +'categories_loading' => '', 'category' => 'Категория', 'category_exists' => 'Категорията существува', 'category_filter' => 'Само категории', @@ -337,6 +338,7 @@ $text = array( 'error_occured' => 'Стана грешка', 'es_ES' => '', 'event_details' => 'Детайли за събитието', +'exclude_items' => '', 'expired' => 'Изтекъл', 'expires' => 'Изтича', 'expiry_changed_email' => 'Датата на изтичане променена', @@ -349,6 +351,7 @@ $text = array( 'files' => 'Файлове', 'files_deletion' => 'Изтриване на файлове', 'files_deletion_warning' => 'Тази операция ще изтрие всички файлове във всички папки. Информацията за версиите ще остане достъпна', +'files_loading' => '', 'file_size' => 'Размер', 'filter_for_documents' => '', 'filter_for_folders' => '', @@ -413,7 +416,7 @@ $text = array( 'inherits_access_empty_msg' => 'Започни с празен списък за достъп', 'inherits_access_msg' => 'достъпът наследен.', 'internal_error' => 'Вътрешна грешка', -'internal_error_exit' => 'Вътрешна грешка. Невозможно е да се изпълни запитването. Свършвам.', +'internal_error_exit' => 'Вътрешна грешка. Невозможно е да се изпълни запитването.', 'invalid_access_mode' => 'Неправилно ниво на достъп', 'invalid_action' => 'Неправилно действие', 'invalid_approval_status' => 'Неправилен статус на утвърждаване', @@ -459,6 +462,7 @@ $text = array( 'keep' => '', 'keep_doc_status' => 'Запази статуса на документа', 'keywords' => 'Ключови думи', +'keywords_loading' => '', 'keyword_exists' => 'Ключовата дума съществува', 'ko_KR' => '', 'language' => 'Език', @@ -569,6 +573,7 @@ $text = array( 'no_update_cause_locked' => 'Вие не можете да обновите документа. Свържете се с блокирщия го потребител.', 'no_user_image' => 'Изображение не е намерено', 'no_version_check' => '', +'no_version_modification' => '', 'no_workflow_available' => '', 'objectcheck' => 'Проверка на Папка/Документ', 'obsolete' => 'Остарял', @@ -1082,6 +1087,20 @@ $text = array( 'theme' => 'Тема', 'thursday' => 'четвъртък', 'thursday_abbr' => '', +'timeline' => '', +'timeline_add_file' => '', +'timeline_add_version' => '', +'timeline_full_add_file' => '', +'timeline_full_add_version' => '', +'timeline_full_status_change' => '', +'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_status_change' => '', 'to' => 'към', 'toggle_manager' => 'Превключи мениджър', 'to_before_from' => '', @@ -1094,6 +1113,7 @@ $text = array( 'transmittal_comment' => '', 'transmittal_name' => '', 'transmittal_size' => '', +'tree_loading' => '', 'trigger_workflow' => 'Процес', 'tr_TR' => '', 'tuesday' => 'вторник', diff --git a/languages/ca_ES/lang.inc b/languages/ca_ES/lang.inc index 231a44810..3b44fa3d6 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 (657) +// Translators: Admin (658) $text = array( 'accept' => 'Acceptar', @@ -163,6 +163,7 @@ URL: [url]', 'cannot_retrieve_review_snapshot' => 'No és possible recuperar la instantània de revisió per a aquesta versió de document.', 'cannot_rm_root' => 'Error: No és possible eliminar la carpeta root.', 'categories' => 'Categories', +'categories_loading' => '', 'category' => 'Category', 'category_exists' => '', 'category_filter' => '', @@ -342,6 +343,7 @@ URL: [url]', 'error_occured' => 'Ha succeït un error', 'es_ES' => '', 'event_details' => 'Detalls de l\'event', +'exclude_items' => '', 'expired' => 'Caducat', 'expires' => 'Caduca', 'expiry_changed_email' => 'Data de caducitat modificada', @@ -354,6 +356,7 @@ URL: [url]', 'files' => 'Fitxers', 'files_deletion' => 'Eliminació de fitxers', 'files_deletion_warning' => 'Amb aquesta opció es poden eliminar tots els fitxers del DMS complet. La informació de versionat romandrà visible.', +'files_loading' => '', 'file_size' => 'Mida', 'filter_for_documents' => '', 'filter_for_folders' => '', @@ -418,7 +421,7 @@ URL: [url]', 'inherits_access_empty_msg' => 'Començar amb una llista d\'accés buida', 'inherits_access_msg' => 'Accés heretat', 'internal_error' => 'Error intern', -'internal_error_exit' => 'Error intern. No és possible acabar la sol.licitud. Acabat.', +'internal_error_exit' => 'Error intern. No és possible acabar la sol.licitud.', 'invalid_access_mode' => 'No és valid el mode d\'accés', 'invalid_action' => 'L\'acció no és vàlida', 'invalid_approval_status' => 'L\'estat d\'aprovació no és válid', @@ -464,6 +467,7 @@ URL: [url]', 'keep' => '', 'keep_doc_status' => '', 'keywords' => 'Mots clau', +'keywords_loading' => '', 'keyword_exists' => 'El mot clau ja existeix', 'ko_KR' => '', 'language' => 'Llenguatge', @@ -574,6 +578,7 @@ URL: [url]', 'no_update_cause_locked' => 'Aquest document no es pot actualitzar. Si us plau, contacteu amb l\'usuari que l\'ha bloquejat.', 'no_user_image' => 'No es troba la imatge', 'no_version_check' => '', +'no_version_modification' => '', 'no_workflow_available' => '', 'objectcheck' => '', 'obsolete' => 'Obsolet', @@ -1087,6 +1092,20 @@ URL: [url]', 'theme' => 'Tema gràfic', 'thursday' => 'Dijous', 'thursday_abbr' => '', +'timeline' => '', +'timeline_add_file' => '', +'timeline_add_version' => '', +'timeline_full_add_file' => '', +'timeline_full_add_version' => '', +'timeline_full_status_change' => '', +'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_status_change' => '', 'to' => 'Fins', 'toggle_manager' => 'Intercanviar manager', 'to_before_from' => '', @@ -1099,6 +1118,7 @@ URL: [url]', 'transmittal_comment' => '', 'transmittal_name' => '', 'transmittal_size' => '', +'tree_loading' => '', 'trigger_workflow' => '', 'tr_TR' => '', 'tuesday' => 'Dimarts', diff --git a/languages/cs_CZ/lang.inc b/languages/cs_CZ/lang.inc index b26e0f930..a45a1cd6f 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 (688), kreml (455) +// Translators: Admin (692), kreml (455) $text = array( 'accept' => 'Přijmout', @@ -180,6 +180,7 @@ URL: [url]', 'cannot_retrieve_review_snapshot' => 'Není možné získat informaci o stavu kontroly této verze dokumentu.', 'cannot_rm_root' => 'Chyba: Není možné smazat kořenový adresář.', 'categories' => 'Kategorie', +'categories_loading' => '', 'category' => 'Kategorie', 'category_exists' => 'Kategorie již existuje.', 'category_filter' => 'Pouze kategorie', @@ -389,6 +390,7 @@ URL: [url]', 'error_occured' => 'Vyskytla se chyba', 'es_ES' => 'Španělština', 'event_details' => 'Údaje akce', +'exclude_items' => '', 'expired' => 'Platnost vypršela', 'expires' => 'Platnost vyprší', 'expiry_changed_email' => 'Datum expirace změněno', @@ -405,6 +407,7 @@ URL: [url]', 'files' => 'Soubory', 'files_deletion' => 'Soubor odstraněn', 'files_deletion_warning' => 'Pomocí této volby můžete odstranit všechny soubory z celé složky DMS. Verzovací informace zůstanou viditelné.', +'files_loading' => '', 'file_size' => 'Velikost souboru', 'filter_for_documents' => 'Další filtr pro dokumenty', 'filter_for_folders' => 'Další filtr pro složky', @@ -535,6 +538,7 @@ URL: [url]', 'keep' => 'Neměňte', 'keep_doc_status' => 'Zachovat stav dokumentu', 'keywords' => 'Klíčová slova', +'keywords_loading' => '', 'keyword_exists' => 'Klíčové slovo už existuje', 'ko_KR' => 'Korejština', 'language' => 'Jazyk', @@ -669,6 +673,7 @@ URL: [url]', 'no_update_cause_locked' => 'Proto nemůžete aktualizovat tento dokument. Prosím, kontaktujte uživatele, který ho zamknul.', 'no_user_image' => 'nebyl nalezen žádný obrázek', 'no_version_check' => 'Chyba při kontrole nové verze SeedDMS. Může to být způsobeno nastavením allow_url_fopen na 0 ve vaší php konfiguraci.', +'no_version_modification' => '', 'no_workflow_available' => 'workflow nedostupný', 'objectcheck' => 'kontrola adresáře/dokumentu', 'obsolete' => 'Zastaralé', @@ -841,15 +846,15 @@ URL: [url]', 'search_fulltext' => 'Vyhledat fulltextově', 'search_in' => 'Prohledávat', 'search_mode_and' => 'všechna slova', -'search_mode_documents' => '', -'search_mode_folders' => '', +'search_mode_documents' => 'Pouze dokumenty', +'search_mode_folders' => 'Pouze složky', 'search_mode_or' => 'alespoň jedno ze slov', 'search_no_results' => 'Vašemu dotazu nevyhovují žádné dokumenty', 'search_query' => 'Hledat', 'search_report' => 'Nalezených [count] dokumentů odpovídajících dotazu', 'search_report_fulltext' => 'Found [doccount] documents', -'search_resultmode' => '', -'search_resultmode_both' => '', +'search_resultmode' => 'Režim výsledků', +'search_resultmode_both' => 'Dokumenty a složky', 'search_results' => 'Výsledky hledání', 'search_results_access_filtered' => 'Výsledky hledání můžou obsahovat obsah, ke kterému byl zamítnut přístup.', 'search_time' => 'Uplynulý čas: [time] sek', @@ -1226,6 +1231,20 @@ URL: [url]', 'theme' => 'Vzhled', 'thursday' => 'Čtvrtek', 'thursday_abbr' => 'Čt', +'timeline' => '', +'timeline_add_file' => '', +'timeline_add_version' => '', +'timeline_full_add_file' => '', +'timeline_full_add_version' => '', +'timeline_full_status_change' => '', +'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_status_change' => '', 'to' => 'Do', 'toggle_manager' => 'Přepnout správce', 'to_before_from' => 'Datum ukončení nesmí být před datem zahájení', @@ -1247,6 +1266,7 @@ URL: [url]', 'transmittal_comment' => '', 'transmittal_name' => '', 'transmittal_size' => '', +'tree_loading' => '', 'trigger_workflow' => 'Pracovní postup', 'tr_TR' => 'Turecky', 'tuesday' => 'Úterý', diff --git a/languages/de_DE/lang.inc b/languages/de_DE/lang.inc index 5452853a7..2a347c4ad 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 (2106), dgrutsch (18) +// Translators: Admin (2131), dgrutsch (18) $text = array( 'accept' => 'Übernehmen', @@ -185,6 +185,7 @@ URL: [url]', 'cannot_retrieve_review_snapshot' => 'Nicht imstande, Berichtstatus Snapshot für diese Dokumentversion zurückzuholen', 'cannot_rm_root' => 'Fehler: Löschen des Hauptordners nicht möglich', 'categories' => 'Kategorien', +'categories_loading' => 'Bitte warten, bis die Liste der Kategorien geladen ist …', 'category' => 'Kategorie', 'category_exists' => 'Kategorie existiert bereits.', 'category_filter' => 'Nur Kategorien', @@ -394,6 +395,7 @@ URL: [url]', 'error_occured' => 'Ein Fehler ist aufgetreten. Bitte Administrator benachrichtigen.', 'es_ES' => 'Spanisch', 'event_details' => 'Ereignisdetails', +'exclude_items' => 'Einträge auslassen', 'expired' => 'abgelaufen', 'expires' => 'Ablaufdatum', 'expiry_changed_email' => 'Ablaufdatum geändert', @@ -410,6 +412,7 @@ URL: [url]', 'files' => 'Dateien', 'files_deletion' => 'Dateien löschen', 'files_deletion_warning' => 'Durch diese Operation können Sie Dokumente des DMS löschen. Die Versions-Information bleibt erhalten.', +'files_loading' => 'Bitte warten, bis die Dateiliste geladen ist …', 'file_size' => 'Dateigröße', 'filter_for_documents' => 'Zusätzliche Filter für Dokumente', 'filter_for_folders' => 'Zusätzliche Filter für Ordner', @@ -494,7 +497,7 @@ URL: [url]', 'inherits_access_empty_msg' => 'Leere Zugriffsliste', 'inherits_access_msg' => 'Zur Zeit werden die Rechte geerbt', 'internal_error' => 'Interner Fehler', -'internal_error_exit' => 'Interner Fehler: nicht imstande, Antrag durchzuführen. Herausnehmen. verlassen.', +'internal_error_exit' => 'Interner Fehler: nicht imstande, Anfrage auszuführen.', 'invalid_access_mode' => 'Unzulässige Zugangsart', 'invalid_action' => 'Unzulässige Aktion', 'invalid_approval_status' => 'Unzulässiger Freigabestatus', @@ -540,6 +543,7 @@ URL: [url]', 'keep' => 'Beibehalten', 'keep_doc_status' => 'Dokumentenstatus beibehalten', 'keywords' => 'Stichworte', +'keywords_loading' => 'Bitte warten, bis die Schlüsselwortliste geladen ist …', 'keyword_exists' => 'Stichwort besteht bereits', 'ko_KR' => 'Koreanisch', 'language' => 'Sprache', @@ -673,6 +677,7 @@ URL: [url]', 'no_update_cause_locked' => 'Sie können daher im Moment diese Datei nicht aktualisieren. Wenden Sie sich an den Benutzer, der die Sperrung eingerichtet hat', 'no_user_image' => 'Kein Bild vorhanden', 'no_version_check' => 'Ein Check auf neuere Versionen von SeedDMS ist fehlgeschlagen. Dies könnte daran liegen, dass allow_url_fopen in der PHP-Konfiguration auf 0 gesetzt ist.', +'no_version_modification' => 'Keine Modifikationen an einer Version', 'no_workflow_available' => '', 'objectcheck' => 'Ordner- und Dokumentenprüfung', 'obsolete' => 'veraltet', @@ -1246,6 +1251,20 @@ URL: [url]', 'theme' => 'Aussehen', 'thursday' => 'Donnerstag', 'thursday_abbr' => 'Do', +'timeline' => 'Verlauf', +'timeline_add_file' => 'Neuer Anhang', +'timeline_add_version' => 'Neue Version [version]', +'timeline_full_add_file' => '[document]
Neuer Anhang', +'timeline_full_add_version' => '[document]
Neue Version [version]', +'timeline_full_status_change' => '[document]
Version [version]: [status]', +'timeline_skip_add_file' => 'Anhang hinzugefügt', +'timeline_skip_status_change_-1' => 'abgelehnt', +'timeline_skip_status_change_-3' => 'abgelaufen', +'timeline_skip_status_change_0' => 'bevorstehende Prüfung', +'timeline_skip_status_change_1' => 'bevorstehende Freigabe', +'timeline_skip_status_change_2' => 'freigegeben', +'timeline_skip_status_change_3' => 'im Workflow', +'timeline_status_change' => 'Version [version]: [status]', 'to' => 'bis', 'toggle_manager' => 'Managerstatus wechseln', 'to_before_from' => 'Endedatum darf nicht vor dem Startdatum liegen', @@ -1267,6 +1286,7 @@ URL: [url]', 'transmittal_comment' => 'Kommentar', 'transmittal_name' => 'Name', 'transmittal_size' => 'Größe', +'tree_loading' => 'Bitte warten, bis der Dokumentenbaum geladen ist …', 'trigger_workflow' => 'Workflow', 'tr_TR' => 'Türkisch', 'tuesday' => 'Dienstag', diff --git a/languages/en_GB/lang.inc b/languages/en_GB/lang.inc index 0d6f915fe..f9da27003 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 (1238), dgrutsch (3), netixw (14) +// Translators: Admin (1266), dgrutsch (3), netixw (14) $text = array( 'accept' => 'Accept', @@ -185,6 +185,7 @@ URL: [url]', 'cannot_retrieve_review_snapshot' => 'Unable to retrieve review status snapshot for this document version.', 'cannot_rm_root' => 'Error: Cannot delete root folder.', 'categories' => 'Categories', +'categories_loading' => 'Please wait, until category list is loaded …', 'category' => 'Category', 'category_exists' => 'Category already exists.', 'category_filter' => 'Only categories', @@ -394,6 +395,7 @@ URL: [url]', 'error_occured' => 'An error has occured', 'es_ES' => 'Spanish', 'event_details' => 'Event details', +'exclude_items' => 'Exclude items', 'expired' => 'Expired', 'expires' => 'Expires', 'expiry_changed_email' => 'Expiry date changed', @@ -410,6 +412,7 @@ URL: [url]', 'files' => 'Files', 'files_deletion' => 'Files deletion', 'files_deletion_warning' => 'With this option you can delete all files of entire DMS folders. The versioning information will remain visible.', +'files_loading' => 'Please wait, until file list is loaded …', 'file_size' => 'Filesize', 'filter_for_documents' => 'Additional filter for documents', 'filter_for_folders' => 'Additional filter for folders', @@ -494,7 +497,7 @@ URL: [url]', 'inherits_access_empty_msg' => 'Start with empty access list', 'inherits_access_msg' => 'Access is being inherited.', 'internal_error' => 'Internal error', -'internal_error_exit' => 'Internal error. Unable to complete request. Exiting.', +'internal_error_exit' => 'Internal error. Unable to complete request.', 'invalid_access_mode' => 'Invalid Access Mode', 'invalid_action' => 'Invalid Action', 'invalid_approval_status' => 'Invalid Approval Status', @@ -540,6 +543,7 @@ URL: [url]', 'keep' => 'Do not change', 'keep_doc_status' => 'Keep document status', 'keywords' => 'Keywords', +'keywords_loading' => 'Please wait, until keyword list is loaded …', 'keyword_exists' => 'Keyword already exists', 'ko_KR' => 'Korean', 'language' => 'Language', @@ -673,6 +677,7 @@ URL: [url]', 'no_update_cause_locked' => 'You can therefore not update this document. Please contact the locking user.', 'no_user_image' => 'No image found', 'no_version_check' => 'Checking for a new version of SeedDMS has failed! This could be caused by allow_url_fopen being set to 0 in your php configuration.', +'no_version_modification' => 'No version modification', 'no_workflow_available' => '', 'objectcheck' => 'Folder/Document check', 'obsolete' => 'Obsolete', @@ -1253,6 +1258,20 @@ URL: [url]', 'theme' => 'Theme', 'thursday' => 'Thursday', 'thursday_abbr' => 'Th', +'timeline' => 'Timeline', +'timeline_add_file' => 'New Attachment', +'timeline_add_version' => 'New version [version]', +'timeline_full_add_file' => '[document]
New Attachment', +'timeline_full_add_version' => '[document]
New version [version]', +'timeline_full_status_change' => '[document]
Version [version]: [status]', +'timeline_skip_add_file' => 'attachment added', +'timeline_skip_status_change_-1' => 'rejected', +'timeline_skip_status_change_-3' => 'expired', +'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_status_change' => 'Version [version]: [status]', 'to' => 'To', 'toggle_manager' => 'Toggle manager', 'to_before_from' => 'End date may not be before start date', @@ -1274,6 +1293,7 @@ URL: [url]', 'transmittal_comment' => 'Comment', 'transmittal_name' => 'Name', 'transmittal_size' => 'Size', +'tree_loading' => 'Please wait, until document tree is loaded …', 'trigger_workflow' => 'Workflow', 'tr_TR' => 'Turkish', 'tuesday' => 'Tuesday', diff --git a/languages/es_ES/lang.inc b/languages/es_ES/lang.inc index 45e80b975..39964e58e 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 (952), angel (123), francisco (2), jaimem (14) +// Translators: acabello (20), Admin (954), angel (123), francisco (2), jaimem (14) $text = array( 'accept' => 'Aceptar', @@ -180,6 +180,7 @@ URL: [url]', 'cannot_retrieve_review_snapshot' => 'No es posible recuperar la instantánea de revisión para esta versión de documento.', 'cannot_rm_root' => 'Error: No es posible eliminar la carpeta raíz.', 'categories' => 'categorías', +'categories_loading' => '', 'category' => 'Categoría', 'category_exists' => 'La categoría ya existe.', 'category_filter' => 'Filtro categorías', @@ -389,6 +390,7 @@ URL: [url]', 'error_occured' => 'Ha ocurrido un error', 'es_ES' => 'Castellano', 'event_details' => 'Detalles del evento', +'exclude_items' => '', 'expired' => 'Caducado', 'expires' => 'Caduca', 'expiry_changed_email' => 'Fecha de caducidad modificada', @@ -405,6 +407,7 @@ URL: [url]', 'files' => 'Ficheros', 'files_deletion' => 'Eliminación de ficheros', 'files_deletion_warning' => 'Con esta opción se puede eliminar todos los ficheros del DMS completo. La información de versionado permanecerá visible.', +'files_loading' => '', 'file_size' => 'Tamaño', 'filter_for_documents' => 'Filtro adicional para documentos', 'filter_for_folders' => 'Filtro adicional para carpetas', @@ -489,7 +492,7 @@ URL: [url]', 'inherits_access_empty_msg' => 'Empezar con una lista de acceso vacía', 'inherits_access_msg' => 'Acceso heredado.', 'internal_error' => 'Error interno', -'internal_error_exit' => 'Error interno. No es posible terminar la solicitud. Terminado.', +'internal_error_exit' => 'Error interno. No es posible terminar la solicitud.', 'invalid_access_mode' => 'Modo de acceso no válido', 'invalid_action' => 'Acción no válida', 'invalid_approval_status' => 'Estado de aprobación no válido', @@ -535,6 +538,7 @@ URL: [url]', 'keep' => 'No cambiar', 'keep_doc_status' => 'Mantener estado del documento', 'keywords' => 'Palabras clave', +'keywords_loading' => '', 'keyword_exists' => 'La palabra clave ya existe', 'ko_KR' => 'Coreano', 'language' => 'Idioma', @@ -669,6 +673,7 @@ URL: [url]', 'no_update_cause_locked' => 'No puede actualizar este documento. Contacte con el usuario que lo bloqueó.', 'no_user_image' => 'No se encontró imagen', 'no_version_check' => 'Ha fallado la comprobación de nuevas versiones. En su configuración de PHP, revise que allow_url_fopen no esté en 0', +'no_version_modification' => 'Ninguna Modificación de Versión', 'no_workflow_available' => '', 'objectcheck' => 'Chequeo de carpeta/documento', 'obsolete' => 'Obsoleto', @@ -1232,6 +1237,20 @@ URL: [url]', 'theme' => 'Tema gráfico', 'thursday' => 'Jueves', 'thursday_abbr' => 'J', +'timeline' => '', +'timeline_add_file' => '', +'timeline_add_version' => '', +'timeline_full_add_file' => '', +'timeline_full_add_version' => '', +'timeline_full_status_change' => '', +'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_status_change' => '', 'to' => 'Hasta', 'toggle_manager' => 'Intercambiar mánager', 'to_before_from' => 'La fecha de finalización no debe ser anterior a la de inicio', @@ -1253,6 +1272,7 @@ URL: [url]', 'transmittal_comment' => '', 'transmittal_name' => 'Nombre', 'transmittal_size' => 'Tamaño', +'tree_loading' => '', 'trigger_workflow' => 'Flujo de Trabajo', 'tr_TR' => 'Turco', 'tuesday' => 'Martes', diff --git a/languages/fr_FR/lang.inc b/languages/fr_FR/lang.inc index a1f9b2309..5be394555 100644 --- a/languages/fr_FR/lang.inc +++ b/languages/fr_FR/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (975), jeromerobert (50), lonnnew (9) +// Translators: Admin (989), jeromerobert (50), lonnnew (9) $text = array( 'accept' => 'Accepter', @@ -180,6 +180,7 @@ URL: [url]', 'cannot_retrieve_review_snapshot' => 'Impossible de retrouver l\'instantané de statut de correction pour cette version du document.', 'cannot_rm_root' => 'Erreur : Dossier racine ineffaçable.', 'categories' => 'Catégories', +'categories_loading' => '', 'category' => 'Catégorie', 'category_exists' => 'Catégorie déjà existante.', 'category_filter' => 'Uniquement les catégories', @@ -389,6 +390,7 @@ URL: [url]', 'error_occured' => 'Une erreur s\'est produite', 'es_ES' => 'Espagnol', 'event_details' => 'Détails de l\'événement', +'exclude_items' => '', 'expired' => 'Expiré', 'expires' => 'Expiration', 'expiry_changed_email' => 'Date d\'expiration modifiée', @@ -405,6 +407,7 @@ URL: [url]', 'files' => 'Fichiers', 'files_deletion' => 'Suppression de fichiers', 'files_deletion_warning' => 'Avec cette option, vous pouvez supprimer tous les fichiers d\'un dossier DMS. Les informations de version resteront visibles.', +'files_loading' => '', 'file_size' => 'Taille', 'filter_for_documents' => 'Filtre additionnel pour les documents', 'filter_for_folders' => 'Filtre additionnel pour les dossiers', @@ -489,7 +492,7 @@ URL: [url]', 'inherits_access_empty_msg' => 'Commencer avec une liste d\'accès vide', 'inherits_access_msg' => 'L\'accès est hérité.', 'internal_error' => 'Erreur interne', -'internal_error_exit' => 'Erreur interne. Impossible d\'achever la demande. Sortie du programme.', +'internal_error_exit' => 'Erreur interne. Impossible d\'achever la demande.', 'invalid_access_mode' => 'Droits d\'accès invalides', 'invalid_action' => 'Action invalide', 'invalid_approval_status' => 'Statut d\'approbation invalide', @@ -535,6 +538,7 @@ URL: [url]', 'keep' => 'Ne pas modifier', 'keep_doc_status' => 'Garder le statut du document', 'keywords' => 'Mots-clés', +'keywords_loading' => '', 'keyword_exists' => 'Mot-clé déjà existant', 'ko_KR' => 'Korean', 'language' => 'Langue', @@ -668,6 +672,7 @@ URL: [url]', 'no_update_cause_locked' => 'Vous ne pouvez actuellement pas mettre à jour ce document. Contactez l\'utilisateur qui l\'a verrouillé.', 'no_user_image' => 'Aucune image trouvée', 'no_version_check' => '', +'no_version_modification' => '', 'no_workflow_available' => '', 'objectcheck' => 'Vérification des dossiers et documents', 'obsolete' => 'Obsolète', @@ -823,15 +828,15 @@ URL: [url]', 'search_fulltext' => 'Rechercher dans le texte', 'search_in' => 'Rechercher dans', 'search_mode_and' => 'tous les mots', -'search_mode_documents' => '', -'search_mode_folders' => '', +'search_mode_documents' => 'Seulement les documents', +'search_mode_folders' => 'Seulement les répertoires', 'search_mode_or' => 'au moins un mot', 'search_no_results' => 'Aucun document ne correspond à la recherche', 'search_query' => 'Rechercher', 'search_report' => '[doccount] documents trouvé(s) et [foldercount] dossiers en [searchtime] sec.', 'search_report_fulltext' => '[doccount] documents trouvé(s)', -'search_resultmode' => '', -'search_resultmode_both' => '', +'search_resultmode' => 'Résultat de la recherche', +'search_resultmode_both' => 'Documents et répertoires', 'search_results' => 'Résultats de recherche', 'search_results_access_filtered' => 'L\'accès à certains résultats de la recherche pourrait être refusé.', 'search_time' => 'Temps écoulé: [time] sec.', @@ -878,8 +883,8 @@ URL: [url]', 'settings_cannot_disable' => 'Le fichier ENABLE_INSTALL_TOOL ne peut pas être supprimé', 'settings_checkOutDir' => '', 'settings_checkOutDir_desc' => '', -'settings_cmdTimeout' => '', -'settings_cmdTimeout_desc' => '', +'settings_cmdTimeout' => 'Délai d\'expiration pour les commandes externes', +'settings_cmdTimeout_desc' => 'Cette durée en secondes détermine quand une commande externe (par exemple pour la création de l\'index de texte intégral) sera terminée.', 'settings_contentDir' => 'Contenu du répertoire', 'settings_contentDir_desc' => 'Endroit ou les fichiers téléchargés sont stockés (il est préférable de choisir un répertoire qui n\'est pas accessible par votre serveur web)', 'settings_contentOffsetDir' => 'Content Offset Directory', @@ -943,7 +948,7 @@ URL: [url]', 'settings_enableMenuTasks_desc' => '', 'settings_enableNotificationAppRev' => 'Notification correcteur/approbateur', 'settings_enableNotificationAppRev_desc' => 'Cochez pour envoyer une notification au correcteur/approbateur quand une nouvelle version du document est ajoutée', -'settings_enableNotificationWorkflow' => '', +'settings_enableNotificationWorkflow' => 'Envoyer les notifications aux utilisateurs dans le prochain workflow', 'settings_enableNotificationWorkflow_desc' => '', 'settings_enableOwnerNotification' => 'ctiver la notification par défaut du propriétaire', 'settings_enableOwnerNotification_desc' => 'Cocher pour ajouter une notification pour le propriétaire si un document quand il est ajouté.', @@ -982,8 +987,8 @@ URL: [url]', 'settings_firstDayOfWeek_desc' => 'Premier jour de la semaine', 'settings_footNote' => 'Note de bas de page', 'settings_footNote_desc' => 'Message à afficher au bas de chaque page', -'settings_fullSearchEngine' => '', -'settings_fullSearchEngine_desc' => '', +'settings_fullSearchEngine' => 'Moteur de recherche texte complet', +'settings_fullSearchEngine_desc' => 'Définissez la méthode utilisée pour la recherche complète de texte.', 'settings_fullSearchEngine_vallucene' => 'Zend Lucene', 'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', 'settings_guestID' => 'ID invité', @@ -1020,7 +1025,7 @@ URL: [url]', 'settings_maxDirID_desc' => 'Nombre maximum de sous-répertoires par le répertoire parent. Par défaut: 32700.', 'settings_maxExecutionTime' => 'Temps d\'exécution max (s)', 'settings_maxExecutionTime_desc' => 'Ceci définit la durée maximale en secondes q\'un script est autorisé à exécuter avant de se terminer par l\'analyse syntaxique', -'settings_maxRecursiveCount' => '', +'settings_maxRecursiveCount' => 'Nombre maximal de document/dossier récursif', 'settings_maxRecursiveCount_desc' => 'Nombre maximum de documents et répertoires dont l\'accès sera vérifié, lors d\'un décompte récursif. Si ce nombre est dépassé, le nombre de documents et répertoires affichés sera approximé.', 'settings_more_settings' => 'Configurer d\'autres paramètres. Connexion par défaut: admin/admin', 'settings_notfound' => 'Introuvable', @@ -1048,7 +1053,7 @@ URL: [url]', 'settings_php_gd2' => 'PHP extension : php_gd2', 'settings_php_mbstring' => 'PHP extension : php_mbstring', 'settings_php_version' => 'Version de PHP', -'settings_presetExpirationDate' => '', +'settings_presetExpirationDate' => 'Date d\'expiration prédéfinie', 'settings_presetExpirationDate_desc' => '', 'settings_previewWidthDetail' => 'Largeur des vignettes (vue détaillée)', 'settings_previewWidthDetail_desc' => 'Largeur des vignettes affichées sur la vue détaillée', @@ -1085,7 +1090,7 @@ URL: [url]', 'settings_smtpUser' => 'Utilisateur pour le serveur SMTP', 'settings_smtpUser_desc' => 'Utilisateur pour le serveur SMTP', 'settings_sortFoldersDefault' => 'Méthode de tri par défaut des dossiers', -'settings_sortFoldersDefault_desc' => '', +'settings_sortFoldersDefault_desc' => 'Ceci définit les méthodes de tri pour les dossiers et documents dans la vue du dossier.', 'settings_sortFoldersDefault_val_name' => 'Par nom', 'settings_sortFoldersDefault_val_sequence' => 'Par séquence', 'settings_sortFoldersDefault_val_unsorted' => 'Non trié', @@ -1208,6 +1213,20 @@ URL: [url]', 'theme' => 'Thème', 'thursday' => 'Jeudi', 'thursday_abbr' => 'Jeu.', +'timeline' => '', +'timeline_add_file' => '', +'timeline_add_version' => '', +'timeline_full_add_file' => '', +'timeline_full_add_version' => '', +'timeline_full_status_change' => '', +'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_status_change' => '', 'to' => 'Au', 'toggle_manager' => 'Basculer \'Responsable\'', 'to_before_from' => '', @@ -1220,6 +1239,7 @@ URL: [url]', 'transmittal_comment' => '', 'transmittal_name' => '', 'transmittal_size' => '', +'tree_loading' => '', 'trigger_workflow' => 'Workflow', 'tr_TR' => 'Turc', 'tuesday' => 'Mardi', diff --git a/languages/hr_HR/lang.inc b/languages/hr_HR/lang.inc index 35626c8e0..89809ef8f 100644 --- a/languages/hr_HR/lang.inc +++ b/languages/hr_HR/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (1022) +// Translators: Admin (1025) $text = array( 'accept' => 'Prihvati', @@ -180,6 +180,7 @@ Internet poveznica: [url]', 'cannot_retrieve_review_snapshot' => 'Nije moguće dohvatiti snimku statusa pregleda za ovu verziju dokumenta.', 'cannot_rm_root' => 'Greška: Ne možete izbrisati root mapu.', 'categories' => 'Kategorije', +'categories_loading' => '', 'category' => 'Kategorija', 'category_exists' => 'Kategorija već postoji.', 'category_filter' => 'Samo kategorije', @@ -389,6 +390,7 @@ Internet poveznica: [url]', 'error_occured' => 'Dogodila se greška', 'es_ES' => 'Španjolski', 'event_details' => 'Detalji događaja', +'exclude_items' => '', 'expired' => 'Isteklo', 'expires' => 'Datum isteka', 'expiry_changed_email' => 'Promijenjen datum isteka', @@ -405,6 +407,7 @@ Internet poveznica: [url]', 'files' => 'Datoteke', 'files_deletion' => 'Brisanje datoteke', 'files_deletion_warning' => 'Ovom opcijom možete izbrisati sve datoteke ili cjelokupne DMS mape. Informacije o verzijama će ostati vidljive.', +'files_loading' => '', 'file_size' => 'Veličina datoteke', 'filter_for_documents' => 'Dodatni filter za dokumente', 'filter_for_folders' => 'Dodatni filter za dokumente', @@ -489,7 +492,7 @@ Internet poveznica: [url]', 'inherits_access_empty_msg' => 'Započnite s praznim popisom pristupa', 'inherits_access_msg' => 'Prava pristupa se naslijeđuju.', 'internal_error' => 'Interna greška', -'internal_error_exit' => 'Interna greška. Ne mogu završiti zahtjev. Izlaz.', +'internal_error_exit' => 'Interna greška. Ne mogu završiti zahtjev.', 'invalid_access_mode' => 'Pogrešan način pristupa', 'invalid_action' => 'Pogrešna radnja', 'invalid_approval_status' => 'Pogrešan status odobrenja', @@ -535,8 +538,9 @@ Internet poveznica: [url]', 'keep' => 'Ne mijenjaj', 'keep_doc_status' => 'Zadrži status dokumenta', 'keywords' => 'Ključne riječi', +'keywords_loading' => '', 'keyword_exists' => 'Ključna riječ već postoji', -'ko_KR' => '', +'ko_KR' => 'Korejski', 'language' => 'Jezik', 'lastaccess' => 'Zadnji pristup', 'last_update' => 'Zadnje ažuriranje', @@ -668,6 +672,7 @@ Internet poveznica: [url]', 'no_update_cause_locked' => 'Dakle, ne možete ažurirati ovaj dokument. Molim kontaktirajte korisnika koji zaključava.', 'no_user_image' => 'Nema pronađene slike', 'no_version_check' => 'Neuspješna provjera nove verzije ProsperaDMS-a! Uzrok može biti ako je parametar allow_url_fopen u vašoj php konfiguraciji postavljen na 0.', +'no_version_modification' => '', 'no_workflow_available' => '', 'objectcheck' => 'Provjera mapa / dokumenata', 'obsolete' => 'Zastarjelo', @@ -1238,6 +1243,20 @@ Internet poveznica: [url]', 'theme' => 'Tema', 'thursday' => 'Četvrtak', 'thursday_abbr' => 'Če', +'timeline' => '', +'timeline_add_file' => '', +'timeline_add_version' => '', +'timeline_full_add_file' => '', +'timeline_full_add_version' => '', +'timeline_full_status_change' => '', +'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_status_change' => '', 'to' => 'Do', 'toggle_manager' => 'Zamjeni upravitelja', 'to_before_from' => 'Datum završetka ne može biti prije datuma početka', @@ -1259,12 +1278,13 @@ Internet poveznica: [url]', 'transmittal_comment' => '', 'transmittal_name' => '', 'transmittal_size' => '', +'tree_loading' => '', 'trigger_workflow' => 'Tok rada', 'tr_TR' => 'Turski', 'tuesday' => 'Utorak', 'tuesday_abbr' => 'Ut', 'type_to_search' => 'Unesi za pretragu', -'uk_UA' => '', +'uk_UA' => 'Ukrajinski', 'under_folder' => 'U mapi', 'unknown_attrdef' => 'Nepoznata definicija atributa', 'unknown_command' => 'Naredba nije prepoznata.', diff --git a/languages/hu_HU/lang.inc b/languages/hu_HU/lang.inc index 4a6637ead..7baaf6748 100644 --- a/languages/hu_HU/lang.inc +++ b/languages/hu_HU/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 (562), ribaz (1019) +// Translators: Admin (571), ribaz (1019) $text = array( 'accept' => 'Elfogad', @@ -180,6 +180,7 @@ URL: [url]', 'cannot_retrieve_review_snapshot' => 'Nem lehet lekérdezni a felülvizsgálati állapot pillanatfelvételt erről a dokumentum változatról.', 'cannot_rm_root' => 'Hiba: A gyökér mappa nem törölhető.', 'categories' => 'Kategóriák', +'categories_loading' => '', 'category' => 'Kategória', 'category_exists' => 'Kategória már létezik', 'category_filter' => 'Kizárólag kategóriák', @@ -389,6 +390,7 @@ URL: [url]', 'error_occured' => 'Hiba történt', 'es_ES' => 'Spanyol', 'event_details' => 'Esemény részletek', +'exclude_items' => '', 'expired' => 'Lejárt', 'expires' => 'Lejárat', 'expiry_changed_email' => 'Lejárati dátum módosítva', @@ -405,9 +407,10 @@ URL: [url]', 'files' => 'Állományok', 'files_deletion' => 'Állományok törlése', 'files_deletion_warning' => 'Ezzel az opcióval törölheti az összes állományt valamennyi DMS mappában. A változási információk láthatók maradnak.', +'files_loading' => '', 'file_size' => 'Állomány méret', -'filter_for_documents' => '', -'filter_for_folders' => '', +'filter_for_documents' => 'További dokumentum szűrők', +'filter_for_folders' => 'További mappa szűrők', 'folder' => 'Mappa', 'folders' => 'Mappák', 'folders_and_documents_statistic' => 'Tartalmak áttekintése', @@ -489,7 +492,7 @@ URL: [url]', 'inherits_access_empty_msg' => 'Indulás üres hozzáférési listával', 'inherits_access_msg' => 'Jogosultság örökítése folyamatban.', 'internal_error' => 'Belső hiba', -'internal_error_exit' => 'Belső hiba. Nem lehet teljesíteni a kérést. Kilépés.', +'internal_error_exit' => 'Belső hiba. Nem lehet teljesíteni a kérést.', 'invalid_access_mode' => 'Érvénytelen hozzáférési mód', 'invalid_action' => 'Érvénytelen művelet', 'invalid_approval_status' => 'Érvénytelen jóváhagyási állapot', @@ -535,8 +538,9 @@ URL: [url]', 'keep' => 'Ne módosítsd', 'keep_doc_status' => 'Dokumentum állapot megőrzése', 'keywords' => 'Kulcsszavak', +'keywords_loading' => '', 'keyword_exists' => 'Kulcsszó már létezik', -'ko_KR' => '', +'ko_KR' => 'Kóreai', 'language' => 'Nyelv', 'lastaccess' => 'Utolsó hozzáférés', 'last_update' => 'Utolsó frissítés', @@ -669,6 +673,7 @@ URL: [url]', 'no_update_cause_locked' => 'Emiatt nem módosíthatja a dokumentumot. Kérjük lépjen kapcsolatba a zároló felhasználóval.', 'no_user_image' => 'Kép nem található', 'no_version_check' => 'A SeedDMS új verziójának ellenőrzése hibára futott! Ennek oka lehet, hogy az allow_url_fopen 0-ra van állítva a php konfigurációjában.', +'no_version_modification' => '', 'no_workflow_available' => '', 'objectcheck' => 'Mappa/Dokumentum ellenőrzés', 'obsolete' => 'Elavult', @@ -846,15 +851,15 @@ URL: [url]', 'search_fulltext' => 'Keresés a teljes szövegben', 'search_in' => 'Keresés ebben a könyvtárban', 'search_mode_and' => 'egyezés minden szóra', -'search_mode_documents' => '', -'search_mode_folders' => '', +'search_mode_documents' => 'Csak dokumentumok', +'search_mode_folders' => 'Csak mappák', 'search_mode_or' => 'egyezés legalább egy szóra', 'search_no_results' => 'Nem található a keresett kifejezésnek megfelelő dokumentum', 'search_query' => 'Keresés erre', 'search_report' => '[searchtime] másodperc alatt [doccount] dokumentumot és [foldercount] mappát találtunk.', 'search_report_fulltext' => '[doccount] dokumentum található', -'search_resultmode' => '', -'search_resultmode_both' => '', +'search_resultmode' => 'Keresés eredménye', +'search_resultmode_both' => 'Dokumentumok és mappák', 'search_results' => 'Találatok', 'search_results_access_filtered' => 'Search results may contain content to which access has been denied.', 'search_time' => 'Felhasznßlt id: [time] mßsodperc.', @@ -1231,6 +1236,20 @@ URL: [url]', 'theme' => 'Téma', 'thursday' => 'Csütörtök', 'thursday_abbr' => 'Cs', +'timeline' => 'Vremenska crta', +'timeline_add_file' => '', +'timeline_add_version' => '', +'timeline_full_add_file' => '', +'timeline_full_add_version' => '', +'timeline_full_status_change' => '', +'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_status_change' => '', 'to' => 'ig', 'toggle_manager' => 'Kulcs kezelő', 'to_before_from' => 'A lejárati dátum nem előzheti meg a kezdési dátumot', @@ -1252,6 +1271,7 @@ URL: [url]', 'transmittal_comment' => '', 'transmittal_name' => '', 'transmittal_size' => '', +'tree_loading' => '', 'trigger_workflow' => 'Munkafolyamat', 'tr_TR' => 'Török', 'tuesday' => 'Kedd', diff --git a/languages/it_IT/lang.inc b/languages/it_IT/lang.inc index e27a12d94..a8751e86d 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 (1494), s.pnt (26) +// Translators: Admin (1502), s.pnt (26) $text = array( 'accept' => 'Accetta', @@ -186,6 +186,7 @@ URL: [url]', 'cannot_retrieve_review_snapshot' => 'Impossibile recuperare lo stato di revisione per questa versione del documento', 'cannot_rm_root' => 'Impossibile cancellare la cartella principale (root)', 'categories' => 'Categorie', +'categories_loading' => '', 'category' => 'Categoria', 'category_exists' => 'Categoria esistente.', 'category_filter' => 'Solo categorie', @@ -395,6 +396,7 @@ URL: [url]', 'error_occured' => 'Ooops... Si è verificato un errore', 'es_ES' => 'Spagnolo', 'event_details' => 'Dettagli evento', +'exclude_items' => '', 'expired' => 'Scaduto', 'expires' => 'Scadenza', 'expiry_changed_email' => 'Scadenza cambiata', @@ -411,6 +413,7 @@ URL: [url]', 'files' => 'Files', 'files_deletion' => 'Cancellazione files', 'files_deletion_warning' => 'Con questa operazione è possible cancellare i file di intere cartelle. Dopo la cancellazione lo storico delle versioni rimarrà comunque disponibile.', +'files_loading' => '', 'file_size' => 'Grandezza del file', 'filter_for_documents' => 'Filtro aggiuntivo per i documenti', 'filter_for_folders' => 'Filtro aggiuntivo per le cartelle', @@ -495,7 +498,7 @@ URL: [url]', 'inherits_access_empty_msg' => 'Reimposta una lista di permessi vuota', 'inherits_access_msg' => 'E\' impostato il permesso ereditario.', 'internal_error' => 'Errore interno', -'internal_error_exit' => 'Errore interno. Impossibile completare la richiesta. Uscire.', +'internal_error_exit' => 'Errore interno. Impossibile completare la richiesta.', 'invalid_access_mode' => 'Permessi non validi', 'invalid_action' => 'Azione non valida', 'invalid_approval_status' => 'Stato di approvazione non valido', @@ -541,6 +544,7 @@ URL: [url]', 'keep' => 'Non cambiare', 'keep_doc_status' => 'Mantieni lo stato del documento', 'keywords' => 'Parole-chiave', +'keywords_loading' => '', 'keyword_exists' => 'Parola-chiave già presente', 'ko_KR' => 'Coreano', 'language' => 'Lingua', @@ -675,6 +679,7 @@ URL: [url]', 'no_update_cause_locked' => 'Non è quindi possible aggiornare il documento. Prego contattare l\'utente che l\'ha bloccato.', 'no_user_image' => 'Nessuna immagine trovata', 'no_version_check' => 'Il controllo per una nuova versione di SeedDMS è fallito! Questo può essere causato da allow_url_fopen settato a 0 nella tua configurazione php.', +'no_version_modification' => '', 'no_workflow_available' => 'Nessun flusso di lavoro disponibile', 'objectcheck' => 'Controllo cartelle o documenti', 'obsolete' => 'Obsoleto', @@ -925,8 +930,8 @@ URL: [url]', 'settings_cannot_disable' => 'Il file ENABLE_INSTALL_TOOL non può essere cancellato', 'settings_checkOutDir' => 'Cartella per i documenti approvati', 'settings_checkOutDir_desc' => 'Questa eultima versione del documento viene copiata se approvato. Se accessibile agli utenti, possono editare il documento e ricopiarlo quando finito.', -'settings_cmdTimeout' => '', -'settings_cmdTimeout_desc' => '', +'settings_cmdTimeout' => 'Timeout per comandi esterni', +'settings_cmdTimeout_desc' => 'La durata in secondi determina quando un comando esterno (come ad es. la creazione di un indice per la ricerca) sarà terminato.', 'settings_contentDir' => 'Cartella contenitore', 'settings_contentDir_desc' => 'Cartella in cui vengono conservati i files caricati, si consiglia di scegliere una cartella sul web-server che non sia direttamente accessibile.', 'settings_contentOffsetDir' => 'Cartella Offset', @@ -1029,8 +1034,8 @@ URL: [url]', 'settings_firstDayOfWeek_desc' => 'Primo giorno della settimana', 'settings_footNote' => 'Pié di pagina', 'settings_footNote_desc' => 'Messaggio da visualizzare alla fine di ogni pagina', -'settings_fullSearchEngine' => '', -'settings_fullSearchEngine_desc' => '', +'settings_fullSearchEngine' => 'Sistema di ricerca a testo libero', +'settings_fullSearchEngine_desc' => 'Configurazioni del sistema di ricerca a testo libero.', 'settings_fullSearchEngine_vallucene' => 'Zend Lucene', 'settings_fullSearchEngine_valsqlitefts' => 'SQLiteFTS', 'settings_guestID' => 'ID Ospite', @@ -1255,6 +1260,20 @@ URL: [url]', 'theme' => 'Tema', 'thursday' => 'Giovedì', 'thursday_abbr' => 'Gio', +'timeline' => '', +'timeline_add_file' => '', +'timeline_add_version' => '', +'timeline_full_add_file' => '', +'timeline_full_add_version' => '', +'timeline_full_status_change' => '', +'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_status_change' => 'Versione - Stato', 'to' => 'A', 'toggle_manager' => 'Gestore', 'to_before_from' => 'La data di fine non può essere antecedente a quella di inizio', @@ -1276,6 +1295,7 @@ URL: [url]', 'transmittal_comment' => 'Commento', 'transmittal_name' => 'Nome', 'transmittal_size' => 'Dimensione', +'tree_loading' => 'Caricamento directory in corso', 'trigger_workflow' => 'Flusso di lavoro', 'tr_TR' => 'Turco', 'tuesday' => 'Martedì', diff --git a/languages/ko_KR/lang.inc b/languages/ko_KR/lang.inc index d61b320e2..e8e2c9700 100644 --- a/languages/ko_KR/lang.inc +++ b/languages/ko_KR/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 (935), daivoc (359) +// Translators: Admin (935), daivoc (364) $text = array( 'accept' => '동의', @@ -187,6 +187,7 @@ URL: [url]', 'cannot_retrieve_review_snapshot' => '이 문서의 버전에 대한 검토 상태의 스냅 샷을 확인 할 수 없습니다.', 'cannot_rm_root' => '오류 : 루트 폴더를 삭제할 수 없습니다.', 'categories' => '카테고리', +'categories_loading' => '카테고리 목록을 가지고 오는 중 ...', 'category' => '카테고리', 'category_exists' => '카테고리가 이미 존재합니다.', 'category_filter' => '카테고리', @@ -394,6 +395,7 @@ URL: [url]', 'error_occured' => '오류가 발생했습니다', 'es_ES' => '스페인어', 'event_details' => '이벤트의 자세한 사항', +'exclude_items' => '', 'expired' => '만료', 'expires' => '만료', 'expiry_changed_email' => '유효 기간 변경', @@ -410,6 +412,7 @@ URL: [url]', 'files' => '파일', 'files_deletion' => '파일 삭제', 'files_deletion_warning' => '이 옵션을 사용하면 전체 DMS 폴더의 모든 파일을 삭제할 수 있습니다. 버전 정보가 표시로 남을 것 입니다 files파일', +'files_loading' => '파일 목록을 가지고 오는 중 ...', 'file_size' => '파일 크기', 'filter_for_documents' => '문서에 대한 추가 필터', 'filter_for_folders' => '폴더에 대한 추가 필터', @@ -540,6 +543,7 @@ URL: [url]', 'keep' => '변경하지 마시오', 'keep_doc_status' => '문서 상태 유지', 'keywords' => '키워드', +'keywords_loading' => '키워드 목록을 가지고 오는 중 ...', 'keyword_exists' => '키워드가 이미 존재', 'ko_KR' => '한국어', 'language' => '언어', @@ -674,6 +678,7 @@ URL : [url]', 'no_update_cause_locked' => '이 문서를 업데이트 할 수 없습니다. 문서를 잠근 사용자 문의하시기 바랍니다..', 'no_user_image' => '이미지를 찾을 수 없습니다', 'no_version_check' => 'SeedDMS의 새 버전 확인을 실패 했습니다! 이것은 PHP 설정에서 allow_url_fopen 값이 0으로 설정 되면 발생할 수 있습니다.', +'no_version_modification' => '버전의 변동사항이 없습니다.', 'no_workflow_available' => '', 'objectcheck' => '폴더 / 문서 확인', 'obsolete' => '폐기', @@ -1246,6 +1251,20 @@ URL : [url]', 'theme' => '테마', 'thursday' => '목요일', 'thursday_abbr' => '목', +'timeline' => '', +'timeline_add_file' => '', +'timeline_add_version' => '', +'timeline_full_add_file' => '', +'timeline_full_add_version' => '', +'timeline_full_status_change' => '', +'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_status_change' => '', 'to' => '마감일', 'toggle_manager' => '전환 매니저', 'to_before_from' => '종료일은 시작일 전이 될수 없습니다', @@ -1267,6 +1286,7 @@ URL : [url]', 'transmittal_comment' => '코맨트', 'transmittal_name' => '아름', 'transmittal_size' => '크기', +'tree_loading' => '문서 구성을 가지고 오는 중 ...', 'trigger_workflow' => '워크플로우', 'tr_TR' => '터키어', 'tuesday' => '화요일', diff --git a/languages/nl_NL/lang.inc b/languages/nl_NL/lang.inc index 92f301b92..2e3bc45a0 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 (703), pepijn (45), reinoutdijkstra@hotmail.com (270) +// Translators: Admin (706), pepijn (45), reinoutdijkstra@hotmail.com (270) $text = array( 'accept' => 'Accept', @@ -173,6 +173,7 @@ URL: [url]', 'cannot_retrieve_review_snapshot' => 'Niet mogelijk om [Controle] status voor de huidige versie van dit document te verkrijgen.', 'cannot_rm_root' => 'Foutmelding: U kunt de basis map niet verwijderen.', 'categories' => 'Categorieen', +'categories_loading' => '', 'category' => 'Categorie', 'category_exists' => 'Categorie bestaat al.', 'category_filter' => 'Alleen categorieen', @@ -349,7 +350,7 @@ URL: [url]', 'dump_creation_warning' => 'M.b.v. deze functie maakt U een DB dump file. het bestand wordt opgeslagen in uw data-map op de Server', 'dump_list' => 'Bestaande dump bestanden', 'dump_remove' => 'Verwijder dump bestand', -'duplicate_content' => '', +'duplicate_content' => 'Dubbele inhoud', 'edit' => 'Wijzigen', 'edit_attributes' => 'Bewerk attributen', 'edit_comment' => 'Wijzig commentaar', @@ -382,6 +383,7 @@ URL: [url]', 'error_occured' => 'Er is een fout opgetreden', 'es_ES' => 'Spaans', 'event_details' => 'Activiteit details', +'exclude_items' => '', 'expired' => 'Verlopen', 'expires' => 'Verloopt', 'expiry_changed_email' => 'Verloopdatum gewijzigd', @@ -398,6 +400,7 @@ URL: [url]', 'files' => 'Bestanden', 'files_deletion' => 'Bestanden verwijderen', 'files_deletion_warning' => 'Met deze handeling verwijdert U ALLE bestanden uit het DMS. Versie informatie blijft beschikbaar', +'files_loading' => '', 'file_size' => 'Bestandsomvang', 'filter_for_documents' => 'Extra filter voor documenten', 'filter_for_folders' => 'Extra filter voor mappen', @@ -482,7 +485,7 @@ URL: [url]', 'inherits_access_empty_msg' => 'Begin met lege toegangslijst', 'inherits_access_msg' => 'Toegang is (over/ge)erfd..', 'internal_error' => 'Interne fout', -'internal_error_exit' => 'Interne fout. Niet mogelijk om verzoek uit de voeren. Systeem stopt.', +'internal_error_exit' => 'Interne fout. Niet mogelijk om verzoek uit de voeren.', 'invalid_access_mode' => 'Foutmelding: verkeerde toegangsmode', 'invalid_action' => 'Foutieve actie', 'invalid_approval_status' => 'Foutieve autorisatie status', @@ -528,6 +531,7 @@ URL: [url]', 'keep' => '', 'keep_doc_status' => 'Behoud document status', 'keywords' => 'Sleutelwoorden', +'keywords_loading' => '', 'keyword_exists' => 'Sleutelwoord bestaat al', 'ko_KR' => 'Koreaans', 'language' => 'Talen', @@ -661,6 +665,7 @@ URL: [url]', 'no_update_cause_locked' => 'U kunt daarom dit document niet bijwerken. Neem contact op met de persoon die het document heeft geblokkeerd.', 'no_user_image' => 'Geen afbeelding(en) gevonden', 'no_version_check' => 'Controle op een nieuwe versie van SeedDMS is mislukt! Dit kan komen omdat allow_url_fopen is ingesteld op 0 in uw PHP configuratie.', +'no_version_modification' => '', 'no_workflow_available' => '', 'objectcheck' => 'Map/Document controle', 'obsolete' => 'verouderd', @@ -1223,6 +1228,20 @@ URL: [url]', 'theme' => 'Thema', 'thursday' => 'Donderdag', 'thursday_abbr' => 'Th', +'timeline' => '', +'timeline_add_file' => '', +'timeline_add_version' => '', +'timeline_full_add_file' => '', +'timeline_full_add_version' => '', +'timeline_full_status_change' => '', +'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_status_change' => '', 'to' => 'Aan', 'toggle_manager' => 'Wijzig Beheerder', 'to_before_from' => 'De einddatum mag niet voor de startdatum liggen', @@ -1244,6 +1263,7 @@ URL: [url]', 'transmittal_comment' => '', 'transmittal_name' => '', 'transmittal_size' => '', +'tree_loading' => 'Directory boom wordt geladen ...', 'trigger_workflow' => 'Workflow', 'tr_TR' => 'Turks', 'tuesday' => 'Dinsdag', diff --git a/languages/pl_PL/lang.inc b/languages/pl_PL/lang.inc index 03e66f9e2..aac2cc3d8 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 (710), netixw (84), romi (93), uGn (112) +// Translators: Admin (715), netixw (84), romi (93), uGn (112) $text = array( 'accept' => 'Akceptuj', @@ -51,7 +51,7 @@ URL: [url]', 'add_approval' => 'Zaakceptuj', 'add_document' => 'Dodaj dokument', 'add_document_link' => 'Dodaj link', -'add_document_notify' => '', +'add_document_notify' => 'Przypisz powiadomienia', 'add_doc_reviewer_approver_warning' => 'Nota Bene. Dokumenty są automatycznie oznaczane jako wydane, jeśli recenzent lub zatwierdzający nie jest przypisany.', 'add_doc_workflow_warning' => 'Dokumenty zostaną automatycznie opublikowane jeżeli nie zostanie przypisany żaden proces.', 'add_event' => 'Dodaj zdarzenie', @@ -173,6 +173,7 @@ URL: [url]', 'cannot_retrieve_review_snapshot' => 'Nie można pobrać migawki stanu recenzowania dla tej wersji dokumentu.', 'cannot_rm_root' => 'Błąd: Nie można usunąć katalogu głównego.', 'categories' => 'Kategorie', +'categories_loading' => '', 'category' => 'Kategoria', 'category_exists' => 'Kategoria już istnieje.', 'category_filter' => 'Tylko w kategoriach', @@ -349,7 +350,7 @@ URL: [url]', 'dump_creation_warning' => 'Ta operacja utworzy plik będący zrzutem zawartości bazy danych. Po utworzeniu plik zrzutu będzie się znajdował w folderze danych na serwerze.', 'dump_list' => 'Istniejące pliki zrzutu', 'dump_remove' => 'Usuń plik zrzutu', -'duplicate_content' => '', +'duplicate_content' => 'Zduplikowana zawartość', 'edit' => 'Edytuj', 'edit_attributes' => 'Zmiana atrybutów', 'edit_comment' => 'Edytuj komentarz', @@ -382,6 +383,7 @@ URL: [url]', 'error_occured' => 'Wystąpił błąd', 'es_ES' => 'Hiszpański', 'event_details' => 'Szczegóły zdarzenia', +'exclude_items' => '', 'expired' => 'Wygasłe', 'expires' => 'Wygasa', 'expiry_changed_email' => 'Zmieniona data wygaśnięcia', @@ -398,6 +400,7 @@ URL: [url]', 'files' => 'Pliki', 'files_deletion' => 'Usuwanie plików', 'files_deletion_warning' => 'Ta operacja pozwala usunąć wszystkie pliki z repozytorium. Informacje o wersjonowaniu pozostaną widoczne.', +'files_loading' => '', 'file_size' => 'Rozmiar pliku', 'filter_for_documents' => 'Dodatkowe filtrowanie dla dokumentów', 'filter_for_folders' => 'Dodatkowe filtrowanie dla folderów', @@ -466,7 +469,7 @@ URL: [url]', 'home_folder' => '', 'hourly' => 'Co godzinę', 'hours' => 'godzin', -'hr_HR' => '', +'hr_HR' => 'Chorwacki', 'human_readable' => 'Archiwum czytelne dla człowieka', 'hu_HU' => 'Węgierski', 'id' => 'ID', @@ -482,7 +485,7 @@ URL: [url]', 'inherits_access_empty_msg' => 'Rozpocznij z pustą listą dostępu', 'inherits_access_msg' => 'Dostęp jest dziedziczony.', 'internal_error' => 'Błąd wewnętrzny', -'internal_error_exit' => 'Błąd wewnętrzny. Nie można ukończyć zadania. Wyjście.', +'internal_error_exit' => 'Błąd wewnętrzny. Nie można ukończyć zadania.', 'invalid_access_mode' => 'Nieprawidłowy tryb dostępu', 'invalid_action' => 'Nieprawidłowa akcja', 'invalid_approval_status' => 'Nieprawidłowy status akceptacji', @@ -528,8 +531,9 @@ URL: [url]', 'keep' => '', 'keep_doc_status' => 'Pozostaw status dokumentu', 'keywords' => 'Słowa kluczowe', +'keywords_loading' => '', 'keyword_exists' => 'Słowo kluczowe już istnieje', -'ko_KR' => '', +'ko_KR' => 'Koreański', 'language' => 'Język', 'lastaccess' => 'Ostatni dostęp', 'last_update' => 'Ostatnia aktualizacja', @@ -662,6 +666,7 @@ URL: [url]', 'no_update_cause_locked' => 'Nie możesz zaktualizować tego dokumentu. Proszę skontaktuj się z osobą która go blokuje.', 'no_user_image' => 'Nie znaleziono obrazu', 'no_version_check' => 'Poszukiwanie nowej wersji DeedDMS nie powiodło się! To może być spowodowane ustawieniem opcji \'allow_url_fopen = 0\' w twojej konfiguracji PHP.', +'no_version_modification' => '', 'no_workflow_available' => '', 'objectcheck' => 'Sprawdź Katalog/Dokument', 'obsolete' => 'Zdezaktualizowany', @@ -1211,6 +1216,20 @@ URL: [url]', 'theme' => 'Wygląd', 'thursday' => 'Czwartek', 'thursday_abbr' => 'Cz', +'timeline' => '', +'timeline_add_file' => '', +'timeline_add_version' => '', +'timeline_full_add_file' => '', +'timeline_full_add_version' => '', +'timeline_full_status_change' => '', +'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_status_change' => '', 'to' => 'Do', 'toggle_manager' => 'Przełączanie zarządcy', 'to_before_from' => '', @@ -1232,6 +1251,7 @@ URL: [url]', 'transmittal_comment' => '', 'transmittal_name' => '', 'transmittal_size' => '', +'tree_loading' => '', 'trigger_workflow' => 'Proces', 'tr_TR' => 'Turecki', 'tuesday' => 'Wtorek', diff --git a/languages/pt_BR/lang.inc b/languages/pt_BR/lang.inc index c85c30ea2..396c9183b 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 (889), flaviove (627), lfcristofoli (352) +// Translators: Admin (896), flaviove (627), lfcristofoli (352) $text = array( 'accept' => 'Aceitar', @@ -51,7 +51,7 @@ URL: [url]', 'add_approval' => '', 'add_document' => 'Novo documento', 'add_document_link' => 'Adicionar link', -'add_document_notify' => '', +'add_document_notify' => 'Definir Notificações', 'add_doc_reviewer_approver_warning' => 'N.B. Documents are automatically marked as released if no reviewer or approver is assigned.', 'add_doc_workflow_warning' => 'N.B. Os documentos são automaticamente marcados como liberados se nenhum fluxo de trabalho é atribuído.', 'add_event' => 'Add event', @@ -172,14 +172,15 @@ URL: [url]', 'calendar_week' => 'Calendário semanal', 'cancel' => 'Cancelar', 'cannot_assign_invalid_state' => 'Cannot assign new reviewers to a document that is not pending review or pending approval.', -'cannot_change_final_states' => 'Warning: Unable to alter document status for documents that have been rejected, marked obsolete or expired.', +'cannot_change_final_states' => '', 'cannot_delete_user' => 'Não é possível excluir usuário', 'cannot_delete_yourself' => 'Não é possível autoexcluir-se', 'cannot_move_root' => 'Erro: Não pode remover a pasta raiz.', 'cannot_retrieve_approval_snapshot' => '', -'cannot_retrieve_review_snapshot' => 'Unable to retrieve review status snapshot for this document version.', +'cannot_retrieve_review_snapshot' => '', 'cannot_rm_root' => 'Error: Cannot delete root folder.', 'categories' => 'Categorias', +'categories_loading' => '', 'category' => 'Categoria', 'category_exists' => 'Categoria já existe.', 'category_filter' => 'Somente categorias', @@ -355,7 +356,7 @@ URL: [url]', 'dump_creation_warning' => 'With this operation you can create a dump file of your database content. After the creation the dump file will be saved in the data folder of your server.', 'dump_list' => 'Existings dump files', 'dump_remove' => 'Remove dump file', -'duplicate_content' => '', +'duplicate_content' => 'Conteúdo Duplicado', 'edit' => 'editar', 'edit_attributes' => 'Editar atributos', 'edit_comment' => 'Editar comentário', @@ -388,6 +389,7 @@ URL: [url]', 'error_occured' => 'Ocorreu um erro', 'es_ES' => 'Espanhol', 'event_details' => 'Event details', +'exclude_items' => '', 'expired' => 'Expirado', 'expires' => 'Expira', 'expiry_changed_email' => 'Data de validade mudou', @@ -404,6 +406,7 @@ URL: [url]', 'files' => 'Arquivos', 'files_deletion' => 'Arquivos deletados', 'files_deletion_warning' => 'With this option you can delete all files of entire DMS folders. The versioning information will remain visible.', +'files_loading' => '', 'file_size' => 'Tamanho', 'filter_for_documents' => 'Filtro adicional para documentos', 'filter_for_folders' => 'Filtro adicional para pasta', @@ -488,7 +491,7 @@ URL: [url]', 'inherits_access_empty_msg' => 'Inicie com a lista de acesso vazia', 'inherits_access_msg' => 'acesso está endo herdado.', 'internal_error' => 'Internal error', -'internal_error_exit' => 'Internal error. Unable to complete request. Exiting.', +'internal_error_exit' => '', 'invalid_access_mode' => 'Invalid access Mode', 'invalid_action' => 'Invalid Action', 'invalid_approval_status' => '', @@ -534,6 +537,7 @@ URL: [url]', 'keep' => 'Não altere', 'keep_doc_status' => 'Mantenha status do documento', 'keywords' => 'Palavras-chave', +'keywords_loading' => '', 'keyword_exists' => 'Keyword already exists', 'ko_KR' => 'Coreano', 'language' => 'Idioma', @@ -667,6 +671,7 @@ URL: [url]', 'no_update_cause_locked' => 'Por isso você não pode atualizar este documento. Por favor contacte usuário que poáui a trava.', 'no_user_image' => 'não foi encontrado imagem de perfil', 'no_version_check' => 'Verificação de uma nova versão do SeedDMS falhou! Isso pode ser causado por allow_url_fopen configurado para 0 na sua configuração do PHP.', +'no_version_modification' => '', 'no_workflow_available' => '', 'objectcheck' => 'Verificação da Pasta/Documento', 'obsolete' => 'Obsolete', @@ -861,12 +866,12 @@ URL: [url]', 'select_category' => 'Clique para selecionar a categoria', 'select_groups' => 'Clique para selecionar os grupos', 'select_grp_approvers' => 'Clique para selecionar o grupo aprovador', -'select_grp_notification' => '', +'select_grp_notification' => 'Click para selecionar um grupo a ser notificado', 'select_grp_recipients' => '', 'select_grp_reviewers' => 'Clique para selecionar o grupo revisor', 'select_grp_revisors' => '', 'select_ind_approvers' => 'Clique para selecionar aprovador indivídual', -'select_ind_notification' => '', +'select_ind_notification' => 'Click para selecionar notificações individuais', 'select_ind_recipients' => '', 'select_ind_reviewers' => 'Clique para selecionar revisor individual', 'select_ind_revisors' => '', @@ -1229,6 +1234,20 @@ URL: [url]', 'theme' => 'Tema', 'thursday' => 'Thursday', 'thursday_abbr' => 'Th', +'timeline' => '', +'timeline_add_file' => '', +'timeline_add_version' => '', +'timeline_full_add_file' => '', +'timeline_full_add_version' => '', +'timeline_full_status_change' => '', +'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_status_change' => '', 'to' => 'To', 'toggle_manager' => 'Toggle manager', 'to_before_from' => 'A data de término não pode ser anterior a data de início', @@ -1250,6 +1269,7 @@ URL: [url]', 'transmittal_comment' => '', 'transmittal_name' => '', 'transmittal_size' => '', +'tree_loading' => '', 'trigger_workflow' => 'Fluxo de trabalho', 'tr_TR' => 'Turco', 'tuesday' => 'Tuesday', diff --git a/languages/ro_RO/lang.inc b/languages/ro_RO/lang.inc index ad896138b..e7e663eac 100644 --- a/languages/ro_RO/lang.inc +++ b/languages/ro_RO/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 (1007), balan (87) +// Translators: Admin (1008), balan (87) $text = array( 'accept' => 'Accept', @@ -185,6 +185,7 @@ URL: [url]', 'cannot_retrieve_review_snapshot' => 'Nu se poate regăsi statusul revizuirii instantanee pentru această versiune de document.', 'cannot_rm_root' => 'Eroare: Nu se poate șterge directorul rădăcină.', 'categories' => 'Categorii', +'categories_loading' => '', 'category' => 'Categorie', 'category_exists' => 'Categorie deja existentă', 'category_filter' => 'Doar categoriile', @@ -394,6 +395,7 @@ URL: [url]', 'error_occured' => 'An error has occured', 'es_ES' => 'Spaniola', 'event_details' => 'Detalii eveniment', +'exclude_items' => '', 'expired' => 'Expirat', 'expires' => 'Expiră', 'expiry_changed_email' => 'Data de expirare schimbată', @@ -410,6 +412,7 @@ URL: [url]', 'files' => 'Fișiere', 'files_deletion' => 'Ștergere fișiere', 'files_deletion_warning' => 'Cu această opțiune puteți șterge toate fișierele din toate folderele DMS. Informațiile versiunilor vor rămâne vizibile.', +'files_loading' => '', 'file_size' => 'Mărimea fișierului', 'filter_for_documents' => 'Filtru suplimentar pentru documente', 'filter_for_folders' => 'Filtru suplimentar pentru foldere', @@ -494,7 +497,7 @@ URL: [url]', 'inherits_access_empty_msg' => 'Începeți cu lista de acces goală', 'inherits_access_msg' => 'Accesul este moștenit.', 'internal_error' => 'Eroare internă', -'internal_error_exit' => 'Eroare internă. Nu se poate finaliza cererea. Ieșirea.', +'internal_error_exit' => 'Eroare internă. Nu se poate finaliza cererea.', 'invalid_access_mode' => 'Modul de acces invalid', 'invalid_action' => 'Actiune invalidă', 'invalid_approval_status' => 'Status aprobare invalid', @@ -540,6 +543,7 @@ URL: [url]', 'keep' => 'Nu schimbați', 'keep_doc_status' => 'Păstrați status document', 'keywords' => 'Cuvinte cheie', +'keywords_loading' => '', 'keyword_exists' => 'Cuvant cheie existent deja', 'ko_KR' => '', 'language' => 'Limbă', @@ -674,6 +678,7 @@ URL: [url]', 'no_update_cause_locked' => 'Deci, nu puteti sa actualizati acest document. Vă rugăm să contactați administratorul.', 'no_user_image' => 'Nu au fost găsite imagini', 'no_version_check' => 'Verificarea pentru o noua versiune SeedDMS a reușit! Acest lucru ar putea fi cauzat de setarea allow_url_fopen=0 în configurația php-ului dumneavoastră.', +'no_version_modification' => '', 'no_workflow_available' => 'Nici un workflow disponibil', 'objectcheck' => 'Verificare folder/document', 'obsolete' => 'Învechit', @@ -1254,6 +1259,20 @@ URL: [url]', 'theme' => 'Temă', 'thursday' => 'Joi', 'thursday_abbr' => 'Jo', +'timeline' => '', +'timeline_add_file' => '', +'timeline_add_version' => '', +'timeline_full_add_file' => '', +'timeline_full_add_version' => '', +'timeline_full_status_change' => '', +'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_status_change' => '', 'to' => 'La', 'toggle_manager' => 'Comută Manager', 'to_before_from' => 'Data de încheiere nu poate fi înainte de data de începere', @@ -1275,6 +1294,7 @@ URL: [url]', 'transmittal_comment' => 'Comentariu', 'transmittal_name' => 'Nume', 'transmittal_size' => '', +'tree_loading' => '', 'trigger_workflow' => 'Workflow', 'tr_TR' => 'Turcă', 'tuesday' => 'Marți', diff --git a/languages/ru_RU/lang.inc b/languages/ru_RU/lang.inc index 07e724039..e9911c7ff 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 (1260) +// Translators: Admin (1264) $text = array( 'accept' => 'Принять', @@ -173,6 +173,7 @@ URL: [url]', 'cannot_retrieve_review_snapshot' => 'Невозможно получить рецензирующий снимок для этой версии документа', 'cannot_rm_root' => 'Нельзя удалить корневой каталог', 'categories' => 'Категории', +'categories_loading' => '', 'category' => 'Категория', 'category_exists' => 'Категория существует', 'category_filter' => 'Только категории', @@ -382,6 +383,7 @@ URL: [url]', 'error_occured' => 'Произошла ошибка', 'es_ES' => 'Spanish', 'event_details' => 'Информация о событии', +'exclude_items' => '', 'expired' => 'Истёк', 'expires' => 'Истекает', 'expiry_changed_email' => 'Дата истечения изменена', @@ -398,6 +400,7 @@ URL: [url]', 'files' => 'Файлы', 'files_deletion' => 'Удалить файлы', 'files_deletion_warning' => 'Эта операция удалит все файлы во всех каталогах. Информация о версиях останется доступна', +'files_loading' => '', 'file_size' => 'Размер', 'filter_for_documents' => 'Дополнительный фильтр по документам', 'filter_for_folders' => 'Дополнительный фильтр по папкам', @@ -466,7 +469,7 @@ URL: [url]', 'home_folder' => '', 'hourly' => 'Ежечасно', 'hours' => 'часы', -'hr_HR' => '', +'hr_HR' => 'Хорватский', 'human_readable' => 'Понятный человеку архив', 'hu_HU' => 'Hungarian', 'id' => 'Идентификатор', @@ -482,7 +485,7 @@ URL: [url]', 'inherits_access_empty_msg' => 'Начать с пустого списка доступа', 'inherits_access_msg' => 'Доступ унаследован.', 'internal_error' => 'Внутренняя ошибка', -'internal_error_exit' => 'Внутренняя ошибка. Невозможно выполнить запрос. Завершение.', +'internal_error_exit' => 'Внутренняя ошибка. Невозможно выполнить запрос.', 'invalid_access_mode' => 'Неверный уровень доступа', 'invalid_action' => 'Неверное действие', 'invalid_approval_status' => 'Неверный статус утверждения', @@ -528,8 +531,9 @@ URL: [url]', 'keep' => '', 'keep_doc_status' => 'Сохранить статус документа', 'keywords' => 'Метки', +'keywords_loading' => '', 'keyword_exists' => 'Метка существует', -'ko_KR' => '', +'ko_KR' => 'Корейский', 'language' => 'Язык', 'lastaccess' => '', 'last_update' => 'Последнее обновление', @@ -661,6 +665,7 @@ URL: [url]', 'no_update_cause_locked' => 'Вы не можете обновить документ. Свяжитесь с заблокировавшим его пользователем.', 'no_user_image' => 'Изображение не найдено', 'no_version_check' => '', +'no_version_modification' => '', 'no_workflow_available' => '', 'objectcheck' => 'Проверка каталога или документа', 'obsolete' => 'Устарел', @@ -1222,6 +1227,20 @@ URL: [url]', 'theme' => 'Тема', 'thursday' => 'Четверг', 'thursday_abbr' => 'Чт', +'timeline' => '', +'timeline_add_file' => '', +'timeline_add_version' => '', +'timeline_full_add_file' => '', +'timeline_full_add_version' => '', +'timeline_full_status_change' => '', +'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_status_change' => '', 'to' => 'До', 'toggle_manager' => 'Изменить как менеджера', 'to_before_from' => '', @@ -1243,12 +1262,13 @@ URL: [url]', 'transmittal_comment' => '', 'transmittal_name' => '', 'transmittal_size' => '', +'tree_loading' => '', 'trigger_workflow' => 'Процесс', 'tr_TR' => 'Турецкий', 'tuesday' => 'Вторник', 'tuesday_abbr' => 'Вт', 'type_to_search' => 'Введите запрос', -'uk_UA' => '', +'uk_UA' => 'Украинский', 'under_folder' => 'В каталоге', 'unknown_attrdef' => '', 'unknown_command' => 'Команда не опознана.', diff --git a/languages/sk_SK/lang.inc b/languages/sk_SK/lang.inc index f6a41192c..f02d98d0c 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 (478) +// Translators: Admin (479) $text = array( 'accept' => 'Prijať', @@ -158,6 +158,7 @@ $text = array( 'cannot_retrieve_review_snapshot' => 'Nie je možné získať informáciu o stave kontroly tejto verzie dokumentu.', 'cannot_rm_root' => 'Chyba: Nie je možné zmazať koreňovú zložku.', 'categories' => 'Kategórie', +'categories_loading' => '', 'category' => '', 'category_exists' => '', 'category_filter' => '', @@ -337,6 +338,7 @@ $text = array( 'error_occured' => 'Vyskytla sa chyba', 'es_ES' => 'Španielčina', 'event_details' => 'Detail udalosti', +'exclude_items' => '', 'expired' => 'Platnosť vypršala', 'expires' => 'Platnosť vyprší', 'expiry_changed_email' => 'Datum platnosti zmeneny', @@ -349,6 +351,7 @@ $text = array( 'files' => 'Súbory', 'files_deletion' => 'Odstránenie súboru', 'files_deletion_warning' => 'Touto akciou môžete odstrániť celú DMS zložku. Verziovacie informácie zostanú viditeľné.', +'files_loading' => '', 'file_size' => 'Veľkosť súboru', 'filter_for_documents' => '', 'filter_for_folders' => '', @@ -413,7 +416,7 @@ $text = array( 'inherits_access_empty_msg' => 'Založiť nový zoznam riadenia prístupu', 'inherits_access_msg' => 'Prístup sa dedí.', 'internal_error' => 'Vnútorná chyba', -'internal_error_exit' => 'Vnútorná chyba. Nebolo možné dokončiť požiadavku. Ukončuje sa.', +'internal_error_exit' => 'Vnútorná chyba. Nebolo možné dokončiť požiadavku.', 'invalid_access_mode' => 'Neplatný režim prístupu', 'invalid_action' => 'Neplatná činnosť', 'invalid_approval_status' => 'Neplatný stav schválenia', @@ -459,6 +462,7 @@ $text = array( 'keep' => '', 'keep_doc_status' => '', 'keywords' => 'Kľúčové slová', +'keywords_loading' => '', 'keyword_exists' => 'Kľúčové slovo už existuje', 'ko_KR' => '', 'language' => 'Jazyk', @@ -569,6 +573,7 @@ $text = array( 'no_update_cause_locked' => 'Preto nemôžete aktualizovať tento dokument. Prosím, kontaktujte používateľa, ktorý ho zamkol.', 'no_user_image' => 'nebol nájdený žiadny obrázok', 'no_version_check' => '', +'no_version_modification' => '', 'no_workflow_available' => '', 'objectcheck' => '', 'obsolete' => 'Zastaralé', @@ -1082,6 +1087,20 @@ $text = array( 'theme' => 'Vzhľad', 'thursday' => 'Štvrtok', 'thursday_abbr' => '', +'timeline' => '', +'timeline_add_file' => '', +'timeline_add_version' => '', +'timeline_full_add_file' => '', +'timeline_full_add_version' => '', +'timeline_full_status_change' => '', +'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_status_change' => '', 'to' => 'Do', 'toggle_manager' => 'Prepnúť stav manager', 'to_before_from' => '', @@ -1094,6 +1113,7 @@ $text = array( 'transmittal_comment' => '', 'transmittal_name' => '', 'transmittal_size' => '', +'tree_loading' => '', 'trigger_workflow' => '', 'tr_TR' => 'Turecky', 'tuesday' => 'Utorok', diff --git a/languages/sv_SE/lang.inc b/languages/sv_SE/lang.inc index 53ab43946..0a67cba3f 100644 --- a/languages/sv_SE/lang.inc +++ b/languages/sv_SE/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 (1096), tmichelfelder (106) +// Translators: Admin (1098), tmichelfelder (106) $text = array( 'accept' => 'Godkänn', @@ -173,6 +173,7 @@ URL: [url]', 'cannot_retrieve_review_snapshot' => 'Det är inte möjligt att skapa en snapshot för denna version av dokumentet.', 'cannot_rm_root' => 'Fel: Det går inte att ta bort root-katalogen.', 'categories' => 'Kategorier', +'categories_loading' => '', 'category' => 'Kategori', 'category_exists' => 'Kategorin finns redan.', 'category_filter' => 'Bara kategorier', @@ -382,6 +383,7 @@ URL: [url]', 'error_occured' => 'Ett fel har inträffat.', 'es_ES' => 'spanska', 'event_details' => 'Händelseinställningar', +'exclude_items' => '', 'expired' => 'Har gått ut', 'expires' => 'Kommer att gå ut', 'expiry_changed_email' => 'Utgångsdatum ändrat', @@ -398,6 +400,7 @@ URL: [url]', 'files' => 'Filer', 'files_deletion' => 'Ta bort alla filer', 'files_deletion_warning' => 'Med detta alternativ kan du ta bort alla filer i en dokumentkatalog. Versionsinformationen kommer fortfarande att visas.', +'files_loading' => '', 'file_size' => 'Filstorlek', 'filter_for_documents' => '', 'filter_for_folders' => '', @@ -482,7 +485,7 @@ URL: [url]', 'inherits_access_empty_msg' => 'Börja med tom behörighetslista', 'inherits_access_msg' => 'Behörigheten har ärvts.', 'internal_error' => 'Internt fel', -'internal_error_exit' => 'Internt fel. Förfrågan kunde inte utföras. Avslutar.', +'internal_error_exit' => 'Internt fel. Förfrågan kunde inte utföras.', 'invalid_access_mode' => 'Ogiltig behörighetsnivå', 'invalid_action' => 'Ogiltig handling', 'invalid_approval_status' => 'Ogiltig godkännandestatus', @@ -528,6 +531,7 @@ URL: [url]', 'keep' => '', 'keep_doc_status' => 'Bibehåll dokumentstatus', 'keywords' => 'Nyckelord', +'keywords_loading' => '', 'keyword_exists' => 'Nyckelordet finns redan', 'ko_KR' => 'Koreanska', 'language' => 'Språk', @@ -662,6 +666,7 @@ URL: [url]', 'no_update_cause_locked' => 'Därför kan du inte uppdatera detta dokument. Ta kontakt med användaren som låst dokumentet.', 'no_user_image' => 'Ingen bild hittades', 'no_version_check' => 'Fel vid sökning efter ny version av SeedDMS! Ursaken kan vara att allow_url_fopen i din php konfiguration är satt till 0.', +'no_version_modification' => '', 'no_workflow_available' => '', 'objectcheck' => 'Katalog/Dokument-kontroll', 'obsolete' => 'Föråldrat', @@ -1217,6 +1222,20 @@ URL: [url]', 'theme' => 'Visningstema', 'thursday' => 'torsdag', 'thursday_abbr' => 'to', +'timeline' => 'Tidslinje', +'timeline_add_file' => '', +'timeline_add_version' => '', +'timeline_full_add_file' => '', +'timeline_full_add_version' => '', +'timeline_full_status_change' => '', +'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_status_change' => '', 'to' => 'till', 'toggle_manager' => 'Byt manager', 'to_before_from' => 'Slutdatum får inte vara innan startdatum', @@ -1238,6 +1257,7 @@ URL: [url]', 'transmittal_comment' => '', 'transmittal_name' => '', 'transmittal_size' => '', +'tree_loading' => '', 'trigger_workflow' => 'Arbetsflöde', 'tr_TR' => 'Turkiska', 'tuesday' => 'tisdag', diff --git a/languages/tr_TR/lang.inc b/languages/tr_TR/lang.inc index cca775cb1..65cf2c5e5 100644 --- a/languages/tr_TR/lang.inc +++ b/languages/tr_TR/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 (1006), aydin (83) +// Translators: Admin (1011), aydin (83) $text = array( 'accept' => 'Kabul', @@ -179,6 +179,7 @@ URL: [url]', 'cannot_retrieve_review_snapshot' => 'Bu doküman için anlık kontrol edilme durumu alınamadı.', 'cannot_rm_root' => 'Hata: Kök klasör silinemez.', 'categories' => 'Kategori', +'categories_loading' => '', 'category' => 'Kategori', 'category_exists' => 'Kategori zaten mevcut.', 'category_filter' => 'Sadece kategori', @@ -388,6 +389,7 @@ URL: [url]', 'error_occured' => 'Bir hata oluştu', 'es_ES' => 'İspanyolca', 'event_details' => 'Etkinkil detayları', +'exclude_items' => '', 'expired' => 'Süresi doldu', 'expires' => 'Süresinin dolacağı zaman', 'expiry_changed_email' => 'Süresinin dolacağı tarihi değişti', @@ -404,6 +406,7 @@ URL: [url]', 'files' => 'Dosyalar', 'files_deletion' => 'Dosya silme', 'files_deletion_warning' => 'Bu işlemle bütün DYS klasörlerindeki dosyaların tamamını silebilirsiniz. Versiyonlama bilgisi görülmeye devam edecek.', +'files_loading' => '', 'file_size' => 'Dosya boyutu', 'filter_for_documents' => 'Dokümanlar için ek filtreler', 'filter_for_folders' => 'Klasörler için ek filtreler', @@ -472,7 +475,7 @@ URL: [url]', 'home_folder' => 'Temel klasör', 'hourly' => 'Saatlik', 'hours' => 'saat', -'hr_HR' => '', +'hr_HR' => 'Hırvatça', 'human_readable' => 'Okunabilir arşiv', 'hu_HU' => 'Macarca', 'id' => 'ID', @@ -488,7 +491,7 @@ URL: [url]', 'inherits_access_empty_msg' => 'Boş erişim listesiyle başla', 'inherits_access_msg' => 'Erişim devralınıyor', 'internal_error' => 'İç hata', -'internal_error_exit' => 'İç hata. İstek tamamlanmadı. Çıkış yapılıyor.', +'internal_error_exit' => 'İç hata. İstek tamamlanmadı.', 'invalid_access_mode' => 'Gereçsiz Erişim Modu', 'invalid_action' => 'Geçersiz Eylem', 'invalid_approval_status' => 'Geçersiz Onay Durumu', @@ -534,8 +537,9 @@ URL: [url]', 'keep' => 'Değiştirmeyin', 'keep_doc_status' => 'Doküman durumunu değiştirme', 'keywords' => 'Anahtar kelimeler', +'keywords_loading' => '', 'keyword_exists' => 'Anahtar kelime zaten mevcut', -'ko_KR' => '', +'ko_KR' => 'Korece', 'language' => 'Dil', 'lastaccess' => 'Son erişim', 'last_update' => 'Son Güncelleme', @@ -668,6 +672,7 @@ URL: [url]', 'no_update_cause_locked' => 'Bu doküman kilitli olduğundan güncellenemez. Lütfen kilitleyen kullanıcıyla görüşünüz.', 'no_user_image' => 'Resim bulunamadı', 'no_version_check' => 'SeedDMS yeni versiyon kontrolü başarısız oldu! Bunun sebebi php konfigürasyonunuzdaki allow_url_fopen parametresinin 0 olarak ayarlanması olabilir.', +'no_version_modification' => 'Versiyon değişikliği yapılmamış', 'no_workflow_available' => 'Uygun iş akışı yok', 'objectcheck' => 'Klasör/Doküman kontrol', 'obsolete' => 'Geçersiz', @@ -1233,6 +1238,20 @@ URL: [url]', 'theme' => 'Tema', 'thursday' => 'Perşembe', 'thursday_abbr' => 'Pe', +'timeline' => '', +'timeline_add_file' => '', +'timeline_add_version' => '', +'timeline_full_add_file' => '', +'timeline_full_add_version' => '', +'timeline_full_status_change' => '', +'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_status_change' => '', 'to' => 'Kime', 'toggle_manager' => 'Değişim yönetimi', 'to_before_from' => 'Bitiş tarihi başlama tarihinden önce olamaz', @@ -1254,12 +1273,13 @@ URL: [url]', 'transmittal_comment' => '', 'transmittal_name' => '', 'transmittal_size' => '', +'tree_loading' => '', 'trigger_workflow' => 'İş Akışı', 'tr_TR' => 'Türkçe', 'tuesday' => 'Salı', 'tuesday_abbr' => 'Sa', 'type_to_search' => 'Aranacak sözcük yazınız', -'uk_UA' => '', +'uk_UA' => 'Ukraynaca', 'under_folder' => 'Klasörde', 'unknown_attrdef' => 'Bilinmeyen nitelik tanımı', 'unknown_command' => 'Komut anlaşılamadı.', diff --git a/languages/uk_UA/lang.inc b/languages/uk_UA/lang.inc index e3c508c6c..0ff312ab3 100644 --- a/languages/uk_UA/lang.inc +++ b/languages/uk_UA/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 (1130) +// Translators: Admin (1131) $text = array( 'accept' => 'Прийняти', @@ -185,6 +185,7 @@ URL: [url]', 'cannot_retrieve_review_snapshot' => 'Неможливо отримати знімок рецензування для цього документа', 'cannot_rm_root' => 'Не можна видаляти кореневий каталог', 'categories' => 'Категорії', +'categories_loading' => '', 'category' => 'Категорія', 'category_exists' => 'Категорія існує', 'category_filter' => 'Лише категорії', @@ -394,6 +395,7 @@ URL: [url]', 'error_occured' => 'Виникла помилка', 'es_ES' => 'Spanish', 'event_details' => 'Інформація про подію', +'exclude_items' => '', 'expired' => 'Термін виконання вийшов', 'expires' => 'Термін виконання виходить', 'expiry_changed_email' => 'Дату терміну виконання змінено', @@ -410,6 +412,7 @@ URL: [url]', 'files' => 'Файли', 'files_deletion' => 'Видалити файли', 'files_deletion_warning' => 'Ця операція видалить всі файли у всіх каталогах. Інформація про версії залишиться доступною', +'files_loading' => '', 'file_size' => 'Розмір', 'filter_for_documents' => 'Додатковий фільтр по документах', 'filter_for_folders' => 'Додатковий фільтр по каталогах', @@ -494,7 +497,7 @@ URL: [url]', 'inherits_access_empty_msg' => 'Почати з порожнього списку доступу', 'inherits_access_msg' => 'Доступ успадковано.', 'internal_error' => 'Внутрішня помилка', -'internal_error_exit' => 'Внутрішня помилка. Неможливо виконати запит. Завершення.', +'internal_error_exit' => 'Внутрішня помилка. Неможливо виконати запит.', 'invalid_access_mode' => 'Невірний рівень доступу', 'invalid_action' => 'Невірна дія', 'invalid_approval_status' => 'Невірний статус затвердження', @@ -540,6 +543,7 @@ URL: [url]', 'keep' => 'Не змінювати', 'keep_doc_status' => 'Зберегти статус документа', 'keywords' => 'Ключові слова', +'keywords_loading' => '', 'keyword_exists' => 'Ключове слово існує', 'ko_KR' => '', 'language' => 'Мова', @@ -673,6 +677,7 @@ URL: [url]', 'no_update_cause_locked' => 'Ви не можете оновити документ. Зв\'яжіться з користувачем, який його заблокував.', 'no_user_image' => 'Зображення не знайдено', 'no_version_check' => 'Перевірка наявності нової версії SeedDMS не відбулася! Це може бути спричинено налаштуванням allow_url_fopen = 0 у конфігурації вашого php.', +'no_version_modification' => '', 'no_workflow_available' => 'Немає доступних процесів', 'objectcheck' => 'Перевірка каталога чи документа', 'obsolete' => 'Застарів', @@ -1244,6 +1249,20 @@ URL: [url]', 'theme' => 'Тема', 'thursday' => 'Четвер', 'thursday_abbr' => 'Чт', +'timeline' => '', +'timeline_add_file' => '', +'timeline_add_version' => '', +'timeline_full_add_file' => '', +'timeline_full_add_version' => '', +'timeline_full_status_change' => '', +'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_status_change' => '', 'to' => 'До', 'toggle_manager' => 'Змінити ознаку менеджера', 'to_before_from' => 'Кінцева дата не може бути меншою початкової дати', @@ -1265,6 +1284,7 @@ URL: [url]', 'transmittal_comment' => 'Коментар', 'transmittal_name' => 'Назва', 'transmittal_size' => 'Розмір', +'tree_loading' => '', 'trigger_workflow' => 'Процес', 'tr_TR' => 'Turkish', 'tuesday' => 'Вівторок', diff --git a/languages/zh_CN/lang.inc b/languages/zh_CN/lang.inc index c9c3eaf5f..0ed32d7cd 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 (589), fengjohn (5) +// Translators: Admin (591), fengjohn (5) $text = array( 'accept' => '接受', @@ -162,6 +162,7 @@ URL: [url]', 'cannot_retrieve_review_snapshot' => '无法检索到该文件版本的校对快照.', 'cannot_rm_root' => '错误:不能删除根目录.', 'categories' => '分类', +'categories_loading' => '', 'category' => '分类', 'category_exists' => '', 'category_filter' => '指定分类', @@ -343,6 +344,7 @@ URL: [url]', 'error_occured' => '出错', 'es_ES' => '西班牙语', 'event_details' => '错误详情', +'exclude_items' => '', 'expired' => '过期', 'expires' => '有效限期', 'expiry_changed_email' => '到期日子已改变', @@ -355,6 +357,7 @@ URL: [url]', 'files' => '文件', 'files_deletion' => '删除文件', 'files_deletion_warning' => '通过此操作,您可以删除整个DMS(文档管理系统)文件夹里的所有文件.但版本信息将被保留', +'files_loading' => '', 'file_size' => '文件大小', 'filter_for_documents' => '文档新增过滤', 'filter_for_folders' => '文件夹新增过滤', @@ -465,6 +468,7 @@ URL: [url]', 'keep' => '', 'keep_doc_status' => '', 'keywords' => '关键字', +'keywords_loading' => '', 'keyword_exists' => '关键字已存在', 'ko_KR' => '韩国人', 'language' => '语言', @@ -575,6 +579,7 @@ URL: [url]', 'no_update_cause_locked' => '您不能更新此文档,请联系该文档锁定人', 'no_user_image' => '无图片', 'no_version_check' => '', +'no_version_modification' => '', 'no_workflow_available' => '', 'objectcheck' => '文件夹/文件检查', 'obsolete' => '过时的', @@ -1088,6 +1093,20 @@ URL: [url]', 'theme' => '主题', 'thursday' => 'Thursday', 'thursday_abbr' => '', +'timeline' => '时间轴', +'timeline_add_file' => '', +'timeline_add_version' => '', +'timeline_full_add_file' => '', +'timeline_full_add_version' => '', +'timeline_full_status_change' => '', +'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_status_change' => '', 'to' => '到', 'toggle_manager' => '角色切换', 'to_before_from' => '', @@ -1100,6 +1119,7 @@ URL: [url]', 'transmittal_comment' => '', 'transmittal_name' => '', 'transmittal_size' => '', +'tree_loading' => '文档结构尚未加载完成,请等待...', 'trigger_workflow' => '', 'tr_TR' => '土耳其', 'tuesday' => 'Tuesday', diff --git a/languages/zh_TW/lang.inc b/languages/zh_TW/lang.inc index 8e7109383..ab03a7802 100644 --- a/languages/zh_TW/lang.inc +++ b/languages/zh_TW/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 (2338) +// Translators: Admin (2340) $text = array( 'accept' => '接受', @@ -162,6 +162,7 @@ URL: [url]', 'cannot_retrieve_review_snapshot' => '無法檢索到該檔版本的校對快照.', 'cannot_rm_root' => '錯誤:不能刪除根目錄.', 'categories' => '分類', +'categories_loading' => '', 'category' => '分類', 'category_exists' => '', 'category_filter' => '指定分類', @@ -341,6 +342,7 @@ URL: [url]', 'error_occured' => '出錯', 'es_ES' => '西班牙語', 'event_details' => '錯誤詳情', +'exclude_items' => '', 'expired' => '過期', 'expires' => '有效限期', 'expiry_changed_email' => '到期日子已改變', @@ -353,6 +355,7 @@ URL: [url]', 'files' => '文件', 'files_deletion' => '刪除檔', 'files_deletion_warning' => '通過此操作,您可以刪除整個DMS(文檔管理系統)資料夾裡的所有檔.但版本資訊將被保留', +'files_loading' => '', 'file_size' => '文件大小', 'filter_for_documents' => '', 'filter_for_folders' => '', @@ -463,8 +466,9 @@ URL: [url]', 'keep' => '', 'keep_doc_status' => '', 'keywords' => '關鍵字', +'keywords_loading' => '', 'keyword_exists' => '關鍵字已存在', -'ko_KR' => '', +'ko_KR' => '韓語', 'language' => '語言', 'lastaccess' => '', 'last_update' => '上次更新', @@ -573,6 +577,7 @@ URL: [url]', 'no_update_cause_locked' => '您不能更新此文檔,請聯繫該文檔鎖定人', 'no_user_image' => '無圖片', 'no_version_check' => '', +'no_version_modification' => '', 'no_workflow_available' => '', 'objectcheck' => '資料夾/檔檢查', 'obsolete' => '過時的', @@ -1086,6 +1091,20 @@ URL: [url]', 'theme' => '主題', 'thursday' => 'Thursday', 'thursday_abbr' => '', +'timeline' => '', +'timeline_add_file' => '', +'timeline_add_version' => '', +'timeline_full_add_file' => '', +'timeline_full_add_version' => '', +'timeline_full_status_change' => '', +'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_status_change' => '', 'to' => '到', 'toggle_manager' => '角色切換', 'to_before_from' => '', @@ -1098,8 +1117,9 @@ URL: [url]', 'transmittal_comment' => '', 'transmittal_name' => '', 'transmittal_size' => '', +'tree_loading' => '', 'trigger_workflow' => '', -'tr_TR' => '', +'tr_TR' => '土耳其語', 'tuesday' => 'Tuesday', 'tuesday_abbr' => '', 'type_to_search' => '搜索類型', diff --git a/op/op.ApproveDocument.php b/op/op.ApproveDocument.php index eb4680883..f73ed1c68 100644 --- a/op/op.ApproveDocument.php +++ b/op/op.ApproveDocument.php @@ -291,6 +291,8 @@ if ($_POST["approvalStatus"]==-1){ } } +add_log_line("?documentid=".$_POST['documentid']."&version=".$_POST['version']."&approvalType=".$_POST['approvalType']."&approvalStatus=".$_POST['approvalStatus']); + header("Location:../out/out.ViewDocument.php?documentid=".$documentid."¤ttab=revapp"); ?> diff --git a/op/op.DropFolderPreview.php b/op/op.DropFolderPreview.php new file mode 100644 index 000000000..59925da6c --- /dev/null +++ b/op/op.DropFolderPreview.php @@ -0,0 +1,58 @@ +_dropFolderDir, -1, 1) == DIRECTORY_SEPARATOR) + $dropfolderdir = substr($settings->_dropFolderDir, 0, -1); +else + $dropfolderdir = $settings->_dropFolderDir; +$dir = $dropfolderdir.'/'.$user->getLogin(); + +if(!file_exists($dir.'/'.$filename)) + exit; + +if(!empty($_GET["width"])) + $previewer = new SeedDMS_Preview_Previewer($settings->_cacheDir, $_GET["width"]); +else + $previewer = new SeedDMS_Preview_Previewer($settings->_cacheDir); +if(!$previewer->hasRawPreview($dir.'/'.$filename, 'dropfolder/')) + $previewer->createRawPreview($dir.'/'.$filename, 'dropfolder/'); +header('Content-Type: image/png'); +$previewer->getRawPreview($dir.'/'.$filename, 'dropfolder/'); + +?> diff --git a/op/op.Search.php b/op/op.Search.php index 2b47cf0ed..966c59c58 100644 --- a/op/op.Search.php +++ b/op/op.Search.php @@ -99,7 +99,6 @@ if(isset($_GET["fullsearch"]) && $_GET["fullsearch"]) { } } - // --------------- Suche starten -------------------------------------------- // Check to see if the search has been restricted to a particular @@ -121,10 +120,7 @@ if(isset($_GET["fullsearch"]) && $_GET["fullsearch"]) { if(strlen($query) < 4 && strpos($query, '*')) { $session->setSplashMsg(array('type'=>'error', 'msg'=>getMLText('splash_invalid_searchterm'))); - $resArr = array(); - $resArr['totalDocs'] = 0; - $resArr['totalFolders'] = 0; - $resArr['totalPages'] = 0; + $totalPages = 0; $entries = array(); $searchTime = 0; } else { @@ -134,26 +130,10 @@ if(isset($_GET["fullsearch"]) && $_GET["fullsearch"]) { $hits = $lucenesearch->search($query, $owner ? $owner->getLogin() : '', '', $categorynames); if($hits === false) { $session->setSplashMsg(array('type'=>'error', 'msg'=>getMLText('splash_invalid_searchterm'))); - $resArr = array(); - $resArr['totalDocs'] = 0; - $resArr['totalFolders'] = 0; - $resArr['totalPages'] = 0; + $totalPages = 0; $entries = array(); $searchTime = 0; } else { - $limit = 20; - $resArr = array(); - $resArr['totalDocs'] = count($hits); - $resArr['totalFolders'] = 0; - if($pageNumber != 'all' && count($hits) > $limit) { - $resArr['totalPages'] = (int) (count($hits) / $limit); - if ((count($hits)%$limit) > 0) - $resArr['totalPages']++; - $hits = array_slice($hits, ($pageNumber-1)*$limit, $limit); - } else { - $resArr['totalPages'] = 1; - } - $entries = array(); $dcount = 0; $fcount = 0; @@ -167,6 +147,16 @@ if(isset($_GET["fullsearch"]) && $_GET["fullsearch"]) { } } } + $limit = 20; + if($pageNumber != 'all' && count($entries) > $limit) { + $totalPages = (int) (count($entries)/$limit); + if(count($entries)%$limit) + $totalPages++; + if($limit > 0) + $entries = array_slice($entries, ($pageNumber-1)*$limit, $limit); + } else { + $totalPages = 1; + } } $searchTime = getTime() - $startTime; $searchTime = round($searchTime, 2); diff --git a/out/out.DropFolderChooser.php b/out/out.DropFolderChooser.php index f94bcc8a2..d0e593aec 100644 --- a/out/out.DropFolderChooser.php +++ b/out/out.DropFolderChooser.php @@ -24,6 +24,11 @@ include("../inc/inc.DBInit.php"); include("../inc/inc.Language.php"); include("../inc/inc.Authentication.php"); +/** + * Include class to preview documents + */ +require_once("SeedDMS/Preview.php"); + $form = preg_replace('/[^A-Za-z0-9_]+/', '', $_GET["form"]); if(substr($settings->_dropFolderDir, -1, 1) == DIRECTORY_SEPARATOR) @@ -34,6 +39,8 @@ else $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'dropfolderdir'=>$dropfolderdir, 'dropfolderfile'=>$_GET["dropfolderfile"], 'form'=>$form)); if($view) { + $view->setParam('cachedir', $settings->_cacheDir); + $view->setParam('previewWidthList', $settings->_previewWidthList); $view->show(); exit; } diff --git a/out/out.Timeline.php b/out/out.Timeline.php new file mode 100644 index 000000000..e7ce12ef0 --- /dev/null +++ b/out/out.Timeline.php @@ -0,0 +1,56 @@ +isAdmin()) { + UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); +} +$rootfolder = $dms->getFolder($settings->_rootFolderID); + +if(!empty($_GET['fromdate'])) { + $from = makeTsFromLongDate($_GET['fromdate'].' 00:00:00'); +} else { + $from = time()-7*86400; +} +if(!empty($_GET['todate'])) { + $to = makeTsFromLongDate($_GET['todate'].' 23:59:59'); +} else { + $to = time(); +} + +if(isset($_GET['skip'])) + $skip = $_GET['skip']; +else + $skip = array(); + +$data = $dms->getTimeline($from, $to); + +$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); +$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'rootfolder'=>$rootfolder, 'from'=>$from, 'to'=>$to, 'skip'=>$_GET['skip'], 'data'=>$data)); +if($view) { + $view->show(); + exit; +} + +?> diff --git a/styles/bootstrap/application.css b/styles/bootstrap/application.css index 68119cd9a..2cfbfd414 100644 --- a/styles/bootstrap/application.css +++ b/styles/bootstrap/application.css @@ -115,6 +115,35 @@ div.help h3 { font-size: 16px; } +#dropfolderChooser { + width: 60%; + left: 20%; + margin-left: auto; + margin-right: auto; +} + +#timeline { + font-size: 12px; + line-height: 14px; +} +div.timeline-event-content { + margin: 3px 5px; +} +div.timeline-frame { + border-radius: 4px; + border-color: #e3e3e3; +} + +div.status_change_2 { + background-color: #DAF6D5; + border-color: #AAF897; +} + +div.status_change_-1 { + background-color: #F6D5D5; + border-color: #F89797; +} + @media (max-width: 480px) { .nav-tabs > li { float:none; diff --git a/styles/bootstrap/application.js b/styles/bootstrap/application.js index b440132bb..bc750fb96 100644 --- a/styles/bootstrap/application.js +++ b/styles/bootstrap/application.js @@ -406,9 +406,13 @@ $(document).ready( function() { var href = element.data('href'); var view = element.data('view'); var action = element.data('action'); - if(view && action) + var query = element.data('query'); + if(view && action) { url = "out."+view+".php?action="+action; - else + if(query) { + url += "&"+query; + } + } else url = href; // console.log('Calling '+url); $.get(url, function(data) { diff --git a/styles/bootstrap/timeline/img/16/delete.png b/styles/bootstrap/timeline/img/16/delete.png new file mode 100644 index 000000000..d54d0e06f Binary files /dev/null and b/styles/bootstrap/timeline/img/16/delete.png differ diff --git a/styles/bootstrap/timeline/img/16/moveleft.png b/styles/bootstrap/timeline/img/16/moveleft.png new file mode 100644 index 000000000..44c0d8216 Binary files /dev/null and b/styles/bootstrap/timeline/img/16/moveleft.png differ diff --git a/styles/bootstrap/timeline/img/16/moveright.png b/styles/bootstrap/timeline/img/16/moveright.png new file mode 100644 index 000000000..9d39bde6a Binary files /dev/null and b/styles/bootstrap/timeline/img/16/moveright.png differ diff --git a/styles/bootstrap/timeline/img/16/new.png b/styles/bootstrap/timeline/img/16/new.png new file mode 100644 index 000000000..7eeba137b Binary files /dev/null and b/styles/bootstrap/timeline/img/16/new.png differ diff --git a/styles/bootstrap/timeline/img/16/zoomin.png b/styles/bootstrap/timeline/img/16/zoomin.png new file mode 100644 index 000000000..b68dfadf7 Binary files /dev/null and b/styles/bootstrap/timeline/img/16/zoomin.png differ diff --git a/styles/bootstrap/timeline/img/16/zoomout.png b/styles/bootstrap/timeline/img/16/zoomout.png new file mode 100644 index 000000000..64e37275c Binary files /dev/null and b/styles/bootstrap/timeline/img/16/zoomout.png differ diff --git a/styles/bootstrap/timeline/img/24/delete.png b/styles/bootstrap/timeline/img/24/delete.png new file mode 100644 index 000000000..c9d5febb0 Binary files /dev/null and b/styles/bootstrap/timeline/img/24/delete.png differ diff --git a/styles/bootstrap/timeline/img/24/moveleft.png b/styles/bootstrap/timeline/img/24/moveleft.png new file mode 100644 index 000000000..fce5907c6 Binary files /dev/null and b/styles/bootstrap/timeline/img/24/moveleft.png differ diff --git a/styles/bootstrap/timeline/img/24/moveright.png b/styles/bootstrap/timeline/img/24/moveright.png new file mode 100644 index 000000000..d3f6dcf75 Binary files /dev/null and b/styles/bootstrap/timeline/img/24/moveright.png differ diff --git a/styles/bootstrap/timeline/img/24/new.png b/styles/bootstrap/timeline/img/24/new.png new file mode 100644 index 000000000..b5a0f077d Binary files /dev/null and b/styles/bootstrap/timeline/img/24/new.png differ diff --git a/styles/bootstrap/timeline/img/24/zoomin.png b/styles/bootstrap/timeline/img/24/zoomin.png new file mode 100644 index 000000000..0bda648fb Binary files /dev/null and b/styles/bootstrap/timeline/img/24/zoomin.png differ diff --git a/styles/bootstrap/timeline/img/24/zoomout.png b/styles/bootstrap/timeline/img/24/zoomout.png new file mode 100644 index 000000000..73b7fcb23 Binary files /dev/null and b/styles/bootstrap/timeline/img/24/zoomout.png differ diff --git a/styles/bootstrap/timeline/img/32/delete.png b/styles/bootstrap/timeline/img/32/delete.png new file mode 100644 index 000000000..320d9716b Binary files /dev/null and b/styles/bootstrap/timeline/img/32/delete.png differ diff --git a/styles/bootstrap/timeline/img/32/moveleft.png b/styles/bootstrap/timeline/img/32/moveleft.png new file mode 100644 index 000000000..49e2ee020 Binary files /dev/null and b/styles/bootstrap/timeline/img/32/moveleft.png differ diff --git a/styles/bootstrap/timeline/img/32/moveright.png b/styles/bootstrap/timeline/img/32/moveright.png new file mode 100644 index 000000000..f4f790e7f Binary files /dev/null and b/styles/bootstrap/timeline/img/32/moveright.png differ diff --git a/styles/bootstrap/timeline/img/32/new.png b/styles/bootstrap/timeline/img/32/new.png new file mode 100644 index 000000000..8cb7a036b Binary files /dev/null and b/styles/bootstrap/timeline/img/32/new.png differ diff --git a/styles/bootstrap/timeline/img/32/zoomin.png b/styles/bootstrap/timeline/img/32/zoomin.png new file mode 100644 index 000000000..41fe0d4be Binary files /dev/null and b/styles/bootstrap/timeline/img/32/zoomin.png differ diff --git a/styles/bootstrap/timeline/img/32/zoomout.png b/styles/bootstrap/timeline/img/32/zoomout.png new file mode 100644 index 000000000..ddac687f2 Binary files /dev/null and b/styles/bootstrap/timeline/img/32/zoomout.png differ diff --git a/styles/bootstrap/timeline/img/cluster_bg.png b/styles/bootstrap/timeline/img/cluster_bg.png new file mode 100644 index 000000000..9f4efe654 Binary files /dev/null and b/styles/bootstrap/timeline/img/cluster_bg.png differ diff --git a/styles/bootstrap/timeline/img/deleteEvent.png b/styles/bootstrap/timeline/img/deleteEvent.png new file mode 100644 index 000000000..e57c41c71 Binary files /dev/null and b/styles/bootstrap/timeline/img/deleteEvent.png differ diff --git a/styles/bootstrap/timeline/img/themeswitcher/buttonbg.png b/styles/bootstrap/timeline/img/themeswitcher/buttonbg.png new file mode 100644 index 000000000..084d7f9d5 Binary files /dev/null and b/styles/bootstrap/timeline/img/themeswitcher/buttonbg.png differ diff --git a/styles/bootstrap/timeline/img/themeswitcher/icon_color_arrow.gif b/styles/bootstrap/timeline/img/themeswitcher/icon_color_arrow.gif new file mode 100644 index 000000000..b458c7a1d Binary files /dev/null and b/styles/bootstrap/timeline/img/themeswitcher/icon_color_arrow.gif differ diff --git a/styles/bootstrap/timeline/img/themeswitcher/menuhoverbg.png b/styles/bootstrap/timeline/img/themeswitcher/menuhoverbg.png new file mode 100644 index 000000000..c94cf53b3 Binary files /dev/null and b/styles/bootstrap/timeline/img/themeswitcher/menuhoverbg.png differ diff --git a/styles/bootstrap/timeline/img/themeswitcher/theme_90_black_matte.png b/styles/bootstrap/timeline/img/themeswitcher/theme_90_black_matte.png new file mode 100644 index 000000000..182cc0e38 Binary files /dev/null and b/styles/bootstrap/timeline/img/themeswitcher/theme_90_black_matte.png differ diff --git a/styles/bootstrap/timeline/img/themeswitcher/theme_90_black_tie.png b/styles/bootstrap/timeline/img/themeswitcher/theme_90_black_tie.png new file mode 100644 index 000000000..4ea66938e Binary files /dev/null and b/styles/bootstrap/timeline/img/themeswitcher/theme_90_black_tie.png differ diff --git a/styles/bootstrap/timeline/img/themeswitcher/theme_90_blitzer.png b/styles/bootstrap/timeline/img/themeswitcher/theme_90_blitzer.png new file mode 100644 index 000000000..5dde122dc Binary files /dev/null and b/styles/bootstrap/timeline/img/themeswitcher/theme_90_blitzer.png differ diff --git a/styles/bootstrap/timeline/img/themeswitcher/theme_90_cupertino.png b/styles/bootstrap/timeline/img/themeswitcher/theme_90_cupertino.png new file mode 100644 index 000000000..0d9f11aa2 Binary files /dev/null and b/styles/bootstrap/timeline/img/themeswitcher/theme_90_cupertino.png differ diff --git a/styles/bootstrap/timeline/img/themeswitcher/theme_90_dark_hive.png b/styles/bootstrap/timeline/img/themeswitcher/theme_90_dark_hive.png new file mode 100644 index 000000000..66ab870bb Binary files /dev/null and b/styles/bootstrap/timeline/img/themeswitcher/theme_90_dark_hive.png differ diff --git a/styles/bootstrap/timeline/img/themeswitcher/theme_90_dot_luv.png b/styles/bootstrap/timeline/img/themeswitcher/theme_90_dot_luv.png new file mode 100644 index 000000000..2f7bf69c6 Binary files /dev/null and b/styles/bootstrap/timeline/img/themeswitcher/theme_90_dot_luv.png differ diff --git a/styles/bootstrap/timeline/img/themeswitcher/theme_90_eggplant.png b/styles/bootstrap/timeline/img/themeswitcher/theme_90_eggplant.png new file mode 100644 index 000000000..92e3d5a4d Binary files /dev/null and b/styles/bootstrap/timeline/img/themeswitcher/theme_90_eggplant.png differ diff --git a/styles/bootstrap/timeline/img/themeswitcher/theme_90_excite_bike.png b/styles/bootstrap/timeline/img/themeswitcher/theme_90_excite_bike.png new file mode 100644 index 000000000..5f58e82ab Binary files /dev/null and b/styles/bootstrap/timeline/img/themeswitcher/theme_90_excite_bike.png differ diff --git a/styles/bootstrap/timeline/img/themeswitcher/theme_90_flick.png b/styles/bootstrap/timeline/img/themeswitcher/theme_90_flick.png new file mode 100644 index 000000000..4baa549f9 Binary files /dev/null and b/styles/bootstrap/timeline/img/themeswitcher/theme_90_flick.png differ diff --git a/styles/bootstrap/timeline/img/themeswitcher/theme_90_hot_sneaks.png b/styles/bootstrap/timeline/img/themeswitcher/theme_90_hot_sneaks.png new file mode 100644 index 000000000..cde01b30d Binary files /dev/null and b/styles/bootstrap/timeline/img/themeswitcher/theme_90_hot_sneaks.png differ diff --git a/styles/bootstrap/timeline/img/themeswitcher/theme_90_humanity.png b/styles/bootstrap/timeline/img/themeswitcher/theme_90_humanity.png new file mode 100644 index 000000000..891b39efb Binary files /dev/null and b/styles/bootstrap/timeline/img/themeswitcher/theme_90_humanity.png differ diff --git a/styles/bootstrap/timeline/img/themeswitcher/theme_90_le_frog.png b/styles/bootstrap/timeline/img/themeswitcher/theme_90_le_frog.png new file mode 100644 index 000000000..80d0d8b4f Binary files /dev/null and b/styles/bootstrap/timeline/img/themeswitcher/theme_90_le_frog.png differ diff --git a/styles/bootstrap/timeline/img/themeswitcher/theme_90_mint_choco.png b/styles/bootstrap/timeline/img/themeswitcher/theme_90_mint_choco.png new file mode 100644 index 000000000..97d2c8792 Binary files /dev/null and b/styles/bootstrap/timeline/img/themeswitcher/theme_90_mint_choco.png differ diff --git a/styles/bootstrap/timeline/img/themeswitcher/theme_90_overcast.png b/styles/bootstrap/timeline/img/themeswitcher/theme_90_overcast.png new file mode 100644 index 000000000..b1e5dccc2 Binary files /dev/null and b/styles/bootstrap/timeline/img/themeswitcher/theme_90_overcast.png differ diff --git a/styles/bootstrap/timeline/img/themeswitcher/theme_90_pepper_grinder.png b/styles/bootstrap/timeline/img/themeswitcher/theme_90_pepper_grinder.png new file mode 100644 index 000000000..97b5d73c0 Binary files /dev/null and b/styles/bootstrap/timeline/img/themeswitcher/theme_90_pepper_grinder.png differ diff --git a/styles/bootstrap/timeline/img/themeswitcher/theme_90_smoothness.png b/styles/bootstrap/timeline/img/themeswitcher/theme_90_smoothness.png new file mode 100644 index 000000000..fa0f8fe93 Binary files /dev/null and b/styles/bootstrap/timeline/img/themeswitcher/theme_90_smoothness.png differ diff --git a/styles/bootstrap/timeline/img/themeswitcher/theme_90_south_street.png b/styles/bootstrap/timeline/img/themeswitcher/theme_90_south_street.png new file mode 100644 index 000000000..1545fd004 Binary files /dev/null and b/styles/bootstrap/timeline/img/themeswitcher/theme_90_south_street.png differ diff --git a/styles/bootstrap/timeline/img/themeswitcher/theme_90_start_menu.png b/styles/bootstrap/timeline/img/themeswitcher/theme_90_start_menu.png new file mode 100644 index 000000000..abd9b6716 Binary files /dev/null and b/styles/bootstrap/timeline/img/themeswitcher/theme_90_start_menu.png differ diff --git a/styles/bootstrap/timeline/img/themeswitcher/theme_90_sunny.png b/styles/bootstrap/timeline/img/themeswitcher/theme_90_sunny.png new file mode 100644 index 000000000..32867b93f Binary files /dev/null and b/styles/bootstrap/timeline/img/themeswitcher/theme_90_sunny.png differ diff --git a/styles/bootstrap/timeline/img/themeswitcher/theme_90_swanky_purse.png b/styles/bootstrap/timeline/img/themeswitcher/theme_90_swanky_purse.png new file mode 100644 index 000000000..4ae2a332d Binary files /dev/null and b/styles/bootstrap/timeline/img/themeswitcher/theme_90_swanky_purse.png differ diff --git a/styles/bootstrap/timeline/img/themeswitcher/theme_90_trontastic.png b/styles/bootstrap/timeline/img/themeswitcher/theme_90_trontastic.png new file mode 100644 index 000000000..f77b455fe Binary files /dev/null and b/styles/bootstrap/timeline/img/themeswitcher/theme_90_trontastic.png differ diff --git a/styles/bootstrap/timeline/img/themeswitcher/theme_90_ui_dark.png b/styles/bootstrap/timeline/img/themeswitcher/theme_90_ui_dark.png new file mode 100644 index 000000000..80e0fe83f Binary files /dev/null and b/styles/bootstrap/timeline/img/themeswitcher/theme_90_ui_dark.png differ diff --git a/styles/bootstrap/timeline/img/themeswitcher/theme_90_ui_light.png b/styles/bootstrap/timeline/img/themeswitcher/theme_90_ui_light.png new file mode 100644 index 000000000..04544e3db Binary files /dev/null and b/styles/bootstrap/timeline/img/themeswitcher/theme_90_ui_light.png differ diff --git a/styles/bootstrap/timeline/img/themeswitcher/theme_90_windoze.png b/styles/bootstrap/timeline/img/themeswitcher/theme_90_windoze.png new file mode 100644 index 000000000..2b8c3bd3a Binary files /dev/null and b/styles/bootstrap/timeline/img/themeswitcher/theme_90_windoze.png differ diff --git a/styles/bootstrap/timeline/timeline-locales.js b/styles/bootstrap/timeline/timeline-locales.js new file mode 100644 index 000000000..e6c591e61 --- /dev/null +++ b/styles/bootstrap/timeline/timeline-locales.js @@ -0,0 +1,284 @@ +if (typeof links === 'undefined') { + links = {}; + links.locales = {}; +} else if (typeof links.locales === 'undefined') { + links.locales = {}; +} + +// English =================================================== +links.locales['en'] = { + 'MONTHS': ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], + 'MONTHS_SHORT': ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], + 'DAYS': ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], + 'DAYS_SHORT': ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], + 'ZOOM_IN': "Zoom in", + 'ZOOM_OUT': "Zoom out", + 'MOVE_LEFT': "Move left", + 'MOVE_RIGHT': "Move right", + 'NEW': "New", + 'CREATE_NEW_EVENT': "Create new event" +}; + +links.locales['en_US'] = links.locales['en']; +links.locales['en_UK'] = links.locales['en']; + +// French =================================================== +links.locales['fr'] = { + 'MONTHS': ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"], + 'MONTHS_SHORT': ["Jan", "Fev", "Mar", "Avr", "Mai", "Jun", "Jul", "Aou", "Sep", "Oct", "Nov", "Dec"], + 'DAYS': ["Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"], + 'DAYS_SHORT': ["Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam"], + 'ZOOM_IN': "Zoomer", + 'ZOOM_OUT': "Dézoomer", + 'MOVE_LEFT': "Déplacer à gauche", + 'MOVE_RIGHT': "Déplacer à droite", + 'NEW': "Nouveau", + 'CREATE_NEW_EVENT': "Créer un nouvel évènement" +}; + +links.locales['fr_FR'] = links.locales['fr']; +links.locales['fr_BE'] = links.locales['fr']; +links.locales['fr_CA'] = links.locales['fr']; + +// Catalan =================================================== +links.locales['ca'] = { + 'MONTHS': ["Gener", "Febrer", "Març", "Abril", "Maig", "Juny", "Juliol", "Setembre", "Octubre", "Novembre", "Desembre"], + 'MONTHS_SHORT': ["Gen", "Feb", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Oct", "Nov", "Des"], + 'DAYS': ["Diumenge", "Dilluns", "Dimarts", "Dimecres", "Dijous", "Divendres", "Dissabte"], + 'DAYS_SHORT': ["Dm.", "Dl.", "Dm.", "Dc.", "Dj.", "Dv.", "Ds."], + 'ZOOM_IN': "Augmentar zoom", + 'ZOOM_OUT': "Disminuir zoom", + 'MOVE_LEFT': "Moure esquerra", + 'MOVE_RIGHT': "Moure dreta", + 'NEW': "Nou", + 'CREATE_NEW_EVENT': "Crear nou event" +}; +links.locales['ca_ES'] = links.locales['ca']; + +// German =================================================== +links.locales['de'] = { + 'MONTHS': ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"], + 'MONTHS_SHORT': ["Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"], + 'DAYS': ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"], + 'DAYS_SHORT': ["Son", "Mon", "Die", "Mit", "Don", "Fre", "Sam"], + 'ZOOM_IN': "Vergrößern", + 'ZOOM_OUT': "Verkleinern", + 'MOVE_LEFT': "Nach links verschieben", + 'MOVE_RIGHT': "Nach rechts verschieben", + 'NEW': "Neu", + 'CREATE_NEW_EVENT': "Neues Ereignis erzeugen" +}; + +links.locales['de_DE'] = links.locales['de']; +links.locales['de_CH'] = links.locales['de']; + +// Danish =================================================== +links.locales['da'] = { + 'MONTHS': ["januar", "februar", "marts", "april", "maj", "juni", "juli", "august", "september", "oktober", "november", "december"], + 'MONTHS_SHORT': ["jan", "feb", "mar", "apr", "maj", "jun", "jul", "aug", "sep", "okt", "nov", "dec"], + 'DAYS': ["søndag", "mandag", "tirsdag", "onsdag", "torsdag", "fredag", "lørdag"], + 'DAYS_SHORT': ["søn", "man", "tir", "ons", "tor", "fre", "lør"], + 'ZOOM_IN': "Zoom in", + 'ZOOM_OUT': "Zoom out", + 'MOVE_LEFT': "Move left", + 'MOVE_RIGHT': "Move right", + 'NEW': "New", + 'CREATE_NEW_EVENT': "Create new event" +}; +links.locales['da_DK'] = links.locales['da']; + +// Russian =================================================== +links.locales['ru'] = { + 'MONTHS': ["Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"], + 'MONTHS_SHORT': ["Янв", "Фев", "Мар", "Апр", "Май", "Июн", "Июл", "Авг", "Сен", "Окт", "Ноя", "Дек"], + 'DAYS': ["Воскресенье", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота"], + 'DAYS_SHORT': ["Вос", "Пон", "Втo", "Срe", "Чет", "Пят", "Суб"], + 'ZOOM_IN': "Увeличить", + 'ZOOM_OUT': "Умeньшить", + 'MOVE_LEFT': "Сдвинуть налeво", + 'MOVE_RIGHT': "Сдвинуть направо", + 'NEW': "Новый", + 'CREATE_NEW_EVENT': "Создать новоe событиe" +}; +links.locales['ru_RU'] = links.locales['ru']; + +// Spanish =================================================== +links.locales['es'] = { + 'MONTHS': ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"], + 'MONTHS_SHORT': ["Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"], + 'DAYS': ["Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"], + 'DAYS_SHORT': ["Dom", "Lun", "Mar", "Mié", "Jue", "Vie", "Sáb"], + 'ZOOM_IN': "Aumentar zoom", + 'ZOOM_OUT': "Disminuir zoom", + 'MOVE_LEFT': "Mover izquierda", + 'MOVE_RIGHT': "Mover derecha", + 'NEW': "Nuevo", + 'CREATE_NEW_EVENT': "Crear nuevo evento" +}; + +links.locales['es_ES'] = links.locales['es']; + +// Dutch ===================================================== +links.locales['nl'] = { + 'MONTHS': ["januari", "februari", "maart", "april", "mei", "juni", "juli", "augustus", "september", "oktober", "november", "december"], + 'MONTHS_SHORT': ["jan", "feb", "mrt", "apr", "mei", "jun", "jul", "aug", "sep", "okt", "nov", "dec"], + 'DAYS': ["zondag", "maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "zaterdag"], + 'DAYS_SHORT': ["zo", "ma", "di", "wo", "do", "vr", "za"], + 'ZOOM_IN': "Inzoomen", + 'ZOOM_OUT': "Uitzoomen", + 'MOVE_LEFT': "Naar links", + 'MOVE_RIGHT': "Naar rechts", + 'NEW': "Nieuw", + 'CREATE_NEW_EVENT': "Nieuwe gebeurtenis maken" +}; + +links.locales['nl_NL'] = links.locales['nl']; +links.locales['nl_BE'] = links.locales['nl']; + +// Turkish =================================================== +links.locales['tr'] = { + 'MONTHS': ["Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"], + 'MONTHS_SHORT': ["Oca", "Şub", "Mar", "Nis", "May", "Haz", "Tem", "Ağu", "Eyl", "Eki", "Kas", "Ara"], + 'DAYS': ["Pazar", "Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi"], + 'DAYS_SHORT': ["Paz", "Pzt", "Sal", "Çar", "Per", "Cum", "Cmt"], + 'ZOOM_IN': "Büyült", + 'ZOOM_OUT': "Küçült", + 'MOVE_LEFT': "Sola Taşı", + 'MOVE_RIGHT': "Sağa Taşı", + 'NEW': "Yeni", + 'CREATE_NEW_EVENT': "Yeni etkinlik oluştur" +}; + +links.locales['tr_TR'] = links.locales['tr']; + +// Hungarian =================================================== +links.locales['hu'] = { + 'MONTHS': ["január", "február", "március", "április", "május", "június", "július", "augusztus", "szeptember", "október", "november", "december"], + 'MONTHS_SHORT': ["jan", "feb", "márc", "ápr", "máj", "jún", "júl", "aug", "szep", "okt", "nov", "dec"], + 'DAYS': ["vasárnap", "hétfő", "kedd", "szerda", "csütörtök", "péntek", "szombat"], + 'DAYS_SHORT': ["vas", "hét", "kedd", "sze", "csü", "pé", "szo"], + 'ZOOM_IN': "Nagyítás", + 'ZOOM_OUT': "Kicsinyítés", + 'MOVE_LEFT': "Balra", + 'MOVE_RIGHT': "Jobbra", + 'NEW': "Új", + 'CREATE_NEW_EVENT': "Új esemény készítése" +}; + +links.locales['hu_HU'] = links.locales['hu']; + +// Brazilian Portuguese =================================================== +links.locales['pt'] = { + 'MONTHS': ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"], + 'MONTHS_SHORT': ["Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"], + 'DAYS': ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado"], + 'DAYS_SHORT': ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb"], + 'ZOOM_IN': "Aproximar", + 'ZOOM_OUT': "Afastar", + 'MOVE_LEFT': "Mover para esquerda", + 'MOVE_RIGHT': "Mover para direita", + 'NEW': "Novo", + 'CREATE_NEW_EVENT': "Criar novo evento" +}; + +links.locales['pt_BR'] = links.locales['pt']; + +// Portuguese =================================================== +links.locales['pt'] = { + 'MONTHS': ["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro", "Outubro", "Novembro", "Dezembro"], + 'MONTHS_SHORT': ["Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"], + 'DAYS': ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado"], + 'DAYS_SHORT': ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb"], + 'ZOOM_IN': "Mais Zoom", + 'ZOOM_OUT': "Menos Zoom", + 'MOVE_LEFT': "Esquerda", + 'MOVE_RIGHT': "Direita", + 'NEW': "Novo", + 'CREATE_NEW_EVENT': "Criar novo evento" +}; + +links.locales['pt_PT'] = links.locales['pt']; + + +// Chinese =================================================== +links.locales['zh'] = { + 'MONTHS': ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], + 'MONTHS_SHORT': ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], + 'DAYS': ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"], + 'DAYS_SHORT': ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"], + 'ZOOM_IN': "放大", + 'ZOOM_OUT': "缩小", + 'MOVE_LEFT': "左移", + 'MOVE_RIGHT': "右移", + 'NEW': "新建", + 'CREATE_NEW_EVENT': "创建新的事件" +}; + +links.locales['zh_CN'] = links.locales['zh']; +links.locales['zh_TR'] = links.locales['zh']; + + +// Arabic =================================================== +links.locales['ar'] = { + 'MONTHS': ["يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"], + 'MONTHS_SHORT': ["يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"], + 'DAYS': ["الأحد", "الأثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"], + 'DAYS_SHORT': ["الأحد", "الأثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"], + 'ZOOM_IN': "تكبير", + 'ZOOM_OUT': "تصغير", + 'MOVE_LEFT': "تحريك لليسار", + 'MOVE_RIGHT': "تحريك لليمين", + 'NEW': "جديد", + 'CREATE_NEW_EVENT': "إنشاء حدث جديد" +}; + +links.locales['ar_AR'] = links.locales['ar']; + + +// Japanese =================================================== +links.locales['ja'] = { + 'MONTHS': ["一月", "二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"], + 'MONTHS_SHORT': ["一月", "二月", "三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"], + 'DAYS': ["日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日"], + 'DAYS_SHORT': ["日", "月", "火", "水", "木", "金", "土"], + 'ZOOM_IN': "拡大する", + 'ZOOM_OUT': "縮小する", + 'MOVE_LEFT': "左に移動", + 'MOVE_RIGHT': "右に移動", + 'NEW': "新しい", + 'CREATE_NEW_EVENT': "新しいイベントの作成" +}; + +links.locales['ja_JA'] = links.locales['ja']; + +// Korean =================================================== +links.locales['ko'] = { + 'MONTHS': ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"], + 'MONTHS_SHORT': ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"], + 'DAYS': ["일요일", "월요일", "화요일", "수요일", "목요일", "금요일", "토요일"], + 'DAYS_SHORT': ["일", "월", "화", "수", "목", "금", "토"], + 'ZOOM_IN': "줌 인", + 'ZOOM_OUT': "줌 아웃", + 'MOVE_LEFT': "왼쪽으로 이동", + 'MOVE_RIGHT': "오른쪽으로 이동", + 'NEW': "신규", + 'CREATE_NEW_EVENT': "새 이벤트 생성" +}; + +links.locales['ko_KO'] = links.locales['ko']; + +// Polish =================================================== +links.locales['pl'] = { + 'MONTHS': ["Styczeń", "Luty", "Marzec", "Kwiecień", "Maj", "Czerwiec", "Lipiec", "Sierpień", "Wrzesień", "Październik", "Listopad", "Grudzień"], + 'MONTHS_SHORT': ["Sty", "Lut", "Mar", "Kwi", "Maj", "Cze", "Lip", "Sie", "Wrz", "Paź", "Lis", "Gru"], + 'DAYS': ["Niedziela", "Poniedziałek", "Wtorek", "Środa", "Czwartek", "Piątek", "Sobota"], + 'DAYS_SHORT': ["niedz", "pon", "wt", "śr", "czw", "pt", "sob"], + 'ZOOM_IN': "Powiększ", + 'ZOOM_OUT': "Zmniejsz", + 'MOVE_LEFT': "Przesuń w lewo", + 'MOVE_RIGHT': "Przesuń w prawo", + 'NEW': "Nowy", + 'CREATE_NEW_EVENT': "Utwórz nowe wydarzenie" +}; + +links.locales['ko'] = links.locales['ko_KO']; diff --git a/styles/bootstrap/timeline/timeline-min.js b/styles/bootstrap/timeline/timeline-min.js new file mode 100644 index 000000000..904601fe5 --- /dev/null +++ b/styles/bootstrap/timeline/timeline-min.js @@ -0,0 +1,218 @@ +/* + + Licensed under the Apache License, Version 2.0 (the "License"); you may not + use this file except in compliance with the License. You may obtain a copy + of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + License for the specific language governing permissions and limitations under + the License. + + Copyright (c) 2011-2015 Almende B.V. + + @author Jos de Jong, + @date 2015-03-04 + @version 2.9.1 +*/ +typeof links==="undefined"&&(links={});typeof google==="undefined"&&(google=void 0);if(!Array.prototype.indexOf)Array.prototype.indexOf=function(a){for(var b=0;b3)b.group=3;if(c>4)b.className=4;if(c>5)b.editable=5;if(c>6)b.type=6}return b}; +links.Timeline.prototype.setData=function(a){this.unselectItem();a||(a=[]);this.stackCancelAnimation();this.clearItems();this.data=a;var b=this.items;this.deleteGroups();if(google&&google.visualization&&a instanceof google.visualization.DataTable)for(var c=links.Timeline.mapColumnIds(a),d=0,e=a.getNumberOfRows();d0&&c.addRows(e);e=links.Timeline.mapColumnIds(c);for(d in b)if(b.hasOwnProperty(d)){var f=e[d];if(f==void 0){var f=b[d],g="string";typeof f=="number"?g="number":typeof f=="boolean"?g="boolean":f instanceof Date&&(g="datetime");f=c.addColumn(g,d)}c.setValue(a,f,b[d])}}else if(links.Timeline.isArray(c))for(d in e=c[a],e==void 0&& +(e={},c[a]=e),b)b.hasOwnProperty(d)&&(e[d]=b[d]);else throw"Cannot update data, unknown type of data";};links.Timeline.prototype.getItemIndex=function(a){for(var b=this.dom.items.frame,c=this.items,d=void 0;a.parentNode&&a.parentNode!==b;)a=a.parentNode;if(a.parentNode===b)for(var b=0,e=c.length;bd.valueOf()&&(b=new Date(d.valueOf()));this.applyRange(a,b);c==void 0||c==!0?this.render({animate:!1}):this.recalcConversion()};links.Timeline.prototype.setVisibleChartRangeAuto=function(){var a=this.getDataRange(!0);this.setVisibleChartRange(a.min,a.max)};links.Timeline.prototype.setVisibleChartRangeNow=function(){var a=this.end.valueOf()-this.start.valueOf(),b=new Date((new Date).valueOf()-a/2);this.setVisibleChartRange(b,new Date(b.valueOf()+a))}; +links.Timeline.prototype.getVisibleChartRange=function(){return{start:new Date(this.start.valueOf()),end:new Date(this.end.valueOf())}}; +links.Timeline.prototype.getDataRange=function(a){var b=this.items,c=void 0,d=void 0;if(b)for(var e=0,f=b.length;e0&&this.render({animate:a?a.animate:void 0,renderTimesLeft:b-1}))}; +links.Timeline.prototype.repaint=function(){var a=this.repaintFrame(),b=this.repaintAxis(),c=this.repaintGroups(),d=this.repaintItems();this.repaintCurrentTime();this.repaintCustomTime();return a||b||c||d};links.Timeline.prototype.reflowFrame=function(){var a=this.dom,b=this.size,c=a.frame?a.frame.offsetWidth:0,d=a.frame?a.frame.clientHeight:0,a=(a=b.frameWidth!==c)||b.frameHeight!==d;b.frameWidth=c;b.frameHeight=d;return a}; +links.Timeline.prototype.repaintFrame=function(){var a=!1,b=this.dom,c=this.options,d=this.size;if(!b.frame)b.frame=document.createElement("DIV"),b.frame.className="timeline-frame ui-widget ui-widget-content ui-corner-all",b.container.appendChild(b.frame),a=!0;var e=c.autoHeight?d.actualHeight+"px":c.height||"100%",c=c.width||"100%",a=(a=a||b.frame.style.height!=e)||b.frame.style.width!=c;b.frame.style.height=e;b.frame.style.width=c;if(!b.content){b.content=document.createElement("DIV");b.content.className= +"timeline-content";b.frame.appendChild(b.content);a=document.createElement("DIV");a.style.position="absolute";a.style.left="0px";a.style.top="0px";a.style.height="100%";a.style.width="0px";b.content.appendChild(a);b.contentTimelines=a;var a=this.eventParams,f=this;if(!a.onMouseDown)a.onMouseDown=function(a){f.onMouseDown(a)},links.Timeline.addEventListener(b.content,"mousedown",a.onMouseDown);if(!a.onTouchStart)a.onTouchStart=function(a){f.onTouchStart(a)},links.Timeline.addEventListener(b.content, +"touchstart",a.onTouchStart);if(!a.onMouseWheel)a.onMouseWheel=function(a){f.onMouseWheel(a)},links.Timeline.addEventListener(b.content,"mousewheel",a.onMouseWheel);if(!a.onDblClick)a.onDblClick=function(a){f.onDblClick(a)},links.Timeline.addEventListener(b.content,"dblclick",a.onDblClick);a=!0}b.content.style.left=d.contentLeft+"px";b.content.style.top="0px";b.content.style.width=d.contentWidth+"px";b.content.style.height=d.frameHeight+"px";this.repaintNavigation();return a}; +links.Timeline.prototype.reflowAxis=function(){var a,b=this.options,c=this.size,d=this.dom.axis,e=d&&d.characterMinor?d.characterMinor.clientWidth:0,f=d&&d.characterMinor?d.characterMinor.clientHeight:0,g=d&&d.characterMajor?d.characterMajor.clientWidth:0,h=d&&d.characterMajor?d.characterMajor.clientHeight:0,i=(b.showMinorLabels?f:0)+(b.showMajorLabels?h:0),k=b.axisOnTop?0:c.frameHeight-i,m=b.axisOnTop?i:k;a=(a=(a=c.axis.top!==k)||c.axis.line!==m)||c.axis.height!==i;c.axis.top=k;c.axis.line=m;c.axis.height= +i;c.axis.labelMajorTop=b.axisOnTop?0:m+(b.showMinorLabels?f:0);c.axis.labelMinorTop=b.axisOnTop?b.showMajorLabels?h:0:m;c.axis.lineMinorTop=b.axisOnTop?c.axis.labelMinorTop:0;c.axis.lineMinorHeight=b.showMajorLabels?c.frameHeight-h:c.frameHeight;c.axis.lineMinorWidth=d&&d.minorLines&&d.minorLines.length?d.minorLines[0].offsetWidth:1;c.axis.lineMajorWidth=d&&d.majorLines&&d.majorLines.length?d.majorLines[0].offsetWidth:1;a=(a=(a=(a=a||c.axis.characterMinorWidth!==e)||c.axis.characterMinorHeight!== +f)||c.axis.characterMajorWidth!==g)||c.axis.characterMajorHeight!==h;c.axis.characterMinorWidth=e;c.axis.characterMinorHeight=f;c.axis.characterMajorWidth=g;c.axis.characterMajorHeight=h;d=Math.max(c.frameHeight-i,0);c.contentLeft=b.groupsOnRight?0:c.groupsWidth;c.contentWidth=Math.max(c.frameWidth-c.groupsWidth,0);c.contentHeight=d;return a}; +links.Timeline.prototype.repaintAxis=function(){var a=!1,b=this.dom,c=this.options,d=this.size,e=this.step,f=b.axis;if(!f)f={},b.axis=f;if(!d.axis.properties)d.axis.properties={};if(!f.minorTexts)f.minorTexts=[];if(!f.minorLines)f.minorLines=[];if(!f.majorTexts)f.majorTexts=[];if(!f.majorLines)f.majorLines=[];if(!f.frame)f.frame=document.createElement("DIV"),f.frame.style.position="absolute",f.frame.style.left="0px",f.frame.style.top="0px",b.content.appendChild(f.frame);b.content.removeChild(f.frame); +f.frame.style.width=d.contentWidth+"px";f.frame.style.height=d.axis.height+"px";var g=this.screenToTime(0),h=this.screenToTime(d.contentWidth);if(d.axis.characterMinorWidth)this.minimumStep=this.screenToTime(d.axis.characterMinorWidth*6)-this.screenToTime(0),e.setRange(g,h,this.minimumStep);g=this.repaintAxisCharacters();a=a||g;this.repaintAxisStartOverwriting();e.start();g=void 0;for(h=0;!e.end()&&h<1E3;){h++;var i=this.timeToScreen(e.getCurrent()),k=e.isMajor();c.showMinorLabels&&this.repaintAxisMinorText(i, +e.getLabelMinor(c));k&&c.showMajorLabels?(i>0&&(g==void 0&&(g=i),this.repaintAxisMajorText(i,e.getLabelMajor(c))),this.repaintAxisMajorLine(i)):this.repaintAxisMinorLine(i);e.next()}c.showMajorLabels&&(e=this.screenToTime(0),c=this.step.getLabelMajor(c,e),d=c.length*d.axis.characterMajorWidth+10,(g==void 0||dd;)c.removeChild(e[d]),e.splice(d,1);e=a.axis.minorLines;for(d=b.minorLineNum;e.length>d;)c.removeChild(e[d]),e.splice(d,1);e=a.axis.majorTexts;for(d=b.majorTextNum;e.length>d;)c.removeChild(e[d]),e.splice(d,1);a=a.axis.majorLines;for(d=b.majorLineNum;a.length>d;)c.removeChild(a[d]),a.splice(d,1)}; +links.Timeline.prototype.repaintAxisHorizontal=function(){var a=this.dom.axis,b=this.size,c=this.options;if(c=c.showMinorLabels||c.showMajorLabels){if(!a.backgroundLine){var d=document.createElement("DIV");d.className="timeline-axis";d.style.position="absolute";d.style.left="0px";d.style.width="100%";d.style.border="none";a.frame.insertBefore(d,a.frame.firstChild);a.backgroundLine=d}if(a.backgroundLine)a.backgroundLine.style.top=b.axis.top+"px",a.backgroundLine.style.height=b.axis.height+"px"}else a.backgroundLine&& +(a.frame.removeChild(a.backgroundLine),delete a.backgroundLine);c?(a.line?(c=a.frame.removeChild(a.line),a.frame.appendChild(c)):(c=document.createElement("DIV"),c.className="timeline-axis",c.style.position="absolute",c.style.left="0px",c.style.width="100%",c.style.height="0px",a.frame.appendChild(c),a.line=c),a.line.style.top=b.axis.line+"px"):a.line&&a.line.parentElement&&(a.frame.removeChild(a.line),delete a.line)}; +links.Timeline.prototype.repaintAxisMinorText=function(a,b){var c=this.size,d=this.dom,e=c.axis.properties,f=d.axis.frame,d=d.axis.minorTexts,g=e.minorTextNum;if(g0||h.update.length>0||h.hide.length>0;a=h.show.shift();)a.showDOM(g),a.getImageUrls(i),f.push(a); +for(;a=h.update.shift();)a.updateDOM(g),a.getImageUrls(i),b=this.renderedItems.indexOf(a),b==-1&&f.push(a);for(;a=h.hide.shift();)a.hideDOM(g),b=this.renderedItems.indexOf(a),b!=-1&&f.splice(b,1);f.forEach(function(a){a.updatePosition(e)});this.repaintDeleteButton();this.repaintDragAreas();d.content.appendChild(g);i.length&&links.imageloader.loadAll(i,function(){e.render()},!1);return c}; +links.Timeline.prototype.reflowGroups=function(){for(var a=!1,b=this.options,c=this.size,d=this.dom,e=0,f=this.groups,g=this.dom.groups?this.dom.groups.labels:[],h=0,i=f.length;h-b.contentWidth&&d<2*b.contentWidth?"":"none";a.currentTime.style.left= +d+"px";a.currentTime.title="Current time: "+c;this.currentTimeTimer!=void 0&&(clearTimeout(this.currentTimeTimer),delete this.currentTimeTimer);var e=this,a=1/this.conversion.factor/2;a<30&&(a=30);this.currentTimeTimer=setTimeout(function(){e.repaintCurrentTime()},a)}else a.currentTime&&(a.contentTimelines.removeChild(a.currentTime),delete a.currentTime)}; +links.Timeline.prototype.repaintCustomTime=function(){var a=this.dom,b=this.size;if(this.options.showCustomTime){if(!a.customTime){var c=document.createElement("DIV");c.className="timeline-customtime";c.style.position="absolute";c.style.top="0px";c.style.height="100%";var d=document.createElement("DIV");d.style.position="relative";d.style.top="0px";d.style.left="-10px";d.style.height="100%";d.style.width="20px";c.appendChild(d);a.contentTimelines.appendChild(c);a.customTime=c;this.customTime=new Date}c= +this.timeToScreen(this.customTime);a.customTime.style.display=c>-b.contentWidth&&c<2*b.contentWidth?"":"none";a.customTime.style.left=c+"px";a.customTime.title="Time: "+this.customTime}else a.customTime&&(a.contentTimelines.removeChild(a.customTime),delete a.customTime)}; +links.Timeline.prototype.repaintDeleteButton=function(){var a=this.dom,b=a.items.frame,c=a.items.deleteButton;if(!c)c=document.createElement("DIV"),c.className="timeline-navigation-delete",c.style.position="absolute",b.appendChild(c),a.items.deleteButton=c;var a=this.selection&&this.selection.index!==void 0?this.selection.index:-1,d=this.selection&&this.selection.index!==void 0?this.items[a]:void 0;d&&d.rendered&&this.isEditable(d)?(a=d.getRight(this),d=d.top,c.style.left=a+"px",c.style.top=d+"px", +c.style.display="",b.removeChild(c),b.appendChild(c)):c.style.display="none"}; +links.Timeline.prototype.repaintDragAreas=function(){var a=this.options,b=this.dom,c=this.dom.items.frame,d=b.items.dragLeft;if(!d)d=document.createElement("DIV"),d.className="timeline-event-range-drag-left",d.style.position="absolute",c.appendChild(d),b.items.dragLeft=d;var e=b.items.dragRight;if(!e)e=document.createElement("DIV"),e.className="timeline-event-range-drag-right",e.style.position="absolute",c.appendChild(e),b.items.dragRight=e;var b=this.selection&&this.selection.index!==void 0?this.selection.index: +-1,f=this.selection&&this.selection.index!==void 0?this.items[b]:void 0;if(f&&f.rendered&&this.isEditable(f)&&(f instanceof links.Timeline.ItemRange||f instanceof links.Timeline.ItemFloatingRange)){var b=f.getLeft(this),g=f.getRight(this),h=f.top,f=f.height;d.style.left=b+"px";d.style.top=h+"px";d.style.width=a.dragAreaWidth+"px";d.style.height=f+"px";d.style.display="";c.removeChild(d);c.appendChild(d);e.style.left=g-a.dragAreaWidth+"px";e.style.top=h+"px";e.style.width=a.dragAreaWidth+"px";e.style.height= +f+"px";e.style.display="";c.removeChild(e);c.appendChild(e)}else d.style.display="none",e.style.display="none"}; +links.Timeline.prototype.repaintNavigation=function(){var a=this,b=this.options,c=this.dom,d=c.frame,e=c.navBar;if(!e){var f=b.showButtonNew&&b.editable,g=b.showNavigation&&(b.zoomable||b.moveable);if(g||f)e=document.createElement("DIV"),e.style.position="absolute",e.className="timeline-navigation ui-widget ui-state-highlight ui-corner-all",b.groupsOnRight?e.style.left="10px":e.style.right="10px",b.axisOnTop?e.style.bottom="10px":e.style.top="10px",c.navBar=e,d.appendChild(e);if(f)e.addButton=document.createElement("DIV"), +e.addButton.className="timeline-navigation-new",e.addButton.title=b.CREATE_NEW_EVENT,c=document.createElement("SPAN"),c.className="ui-icon ui-icon-circle-plus",e.addButton.appendChild(c),links.Timeline.addEventListener(e.addButton,"mousedown",function(c){links.Timeline.preventDefault(c);links.Timeline.stopPropagation(c);c=a.screenToTime(a.size.contentWidth/2);b.snapEvents&&a.step.snap(c);a.addItem({start:c,content:b.NEW,group:a.groups.length?a.groups[0].content:void 0},!0);c=a.items.length-1;a.selectItem(c); +a.applyAdd=!0;a.trigger("add");a.applyAdd?(a.render({animate:!1}),a.selectItem(c)):a.deleteItem(c)}),e.appendChild(e.addButton);f&&g&&links.Timeline.addClassName(e.addButton,"timeline-navigation-new-line");if(g){if(b.zoomable)e.zoomInButton=document.createElement("DIV"),e.zoomInButton.className="timeline-navigation-zoom-in",e.zoomInButton.title=this.options.ZOOM_IN,f=document.createElement("SPAN"),f.className="ui-icon ui-icon-circle-zoomin",e.zoomInButton.appendChild(f),links.Timeline.addEventListener(e.zoomInButton, +"mousedown",function(b){links.Timeline.preventDefault(b);links.Timeline.stopPropagation(b);a.zoom(0.4);a.trigger("rangechange");a.trigger("rangechanged")}),e.appendChild(e.zoomInButton),e.zoomOutButton=document.createElement("DIV"),e.zoomOutButton.className="timeline-navigation-zoom-out",e.zoomOutButton.title=this.options.ZOOM_OUT,f=document.createElement("SPAN"),f.className="ui-icon ui-icon-circle-zoomout",e.zoomOutButton.appendChild(f),links.Timeline.addEventListener(e.zoomOutButton,"mousedown", +function(b){links.Timeline.preventDefault(b);links.Timeline.stopPropagation(b);a.zoom(-0.4);a.trigger("rangechange");a.trigger("rangechanged")}),e.appendChild(e.zoomOutButton);if(b.moveable)e.moveLeftButton=document.createElement("DIV"),e.moveLeftButton.className="timeline-navigation-move-left",e.moveLeftButton.title=this.options.MOVE_LEFT,f=document.createElement("SPAN"),f.className="ui-icon ui-icon-circle-arrow-w",e.moveLeftButton.appendChild(f),links.Timeline.addEventListener(e.moveLeftButton, +"mousedown",function(b){links.Timeline.preventDefault(b);links.Timeline.stopPropagation(b);a.move(-0.2);a.trigger("rangechange");a.trigger("rangechanged")}),e.appendChild(e.moveLeftButton),e.moveRightButton=document.createElement("DIV"),e.moveRightButton.className="timeline-navigation-move-right",e.moveRightButton.title=this.options.MOVE_RIGHT,f=document.createElement("SPAN"),f.className="ui-icon ui-icon-circle-arrow-e",e.moveRightButton.appendChild(f),links.Timeline.addEventListener(e.moveRightButton, +"mousedown",function(b){links.Timeline.preventDefault(b);links.Timeline.stopPropagation(b);a.move(0.2);a.trigger("rangechange");a.trigger("rangechanged")}),e.appendChild(e.moveRightButton)}}};links.Timeline.prototype.setCurrentTime=function(a){this.clientTimeOffset=a.valueOf()-(new Date).valueOf();this.repaintCurrentTime()};links.Timeline.prototype.getCurrentTime=function(){return new Date((new Date).valueOf()+this.clientTimeOffset)}; +links.Timeline.prototype.setCustomTime=function(a){this.customTime=new Date(a.valueOf());this.repaintCustomTime()};links.Timeline.prototype.getCustomTime=function(){return new Date(this.customTime.valueOf())};links.Timeline.prototype.setScale=function(a,b){this.step.setScale(a,b);this.render()};links.Timeline.prototype.setAutoScale=function(a){this.step.setAutoScale(a);this.render()};links.Timeline.prototype.redraw=function(){this.setData(this.data)};links.Timeline.prototype.checkResize=function(){this.render()}; +links.Timeline.prototype.isEditable=function(a){return a?a.editable!=void 0?a.editable:this.options.editable:!1};links.Timeline.prototype.recalcConversion=function(){this.conversion.offset=this.start.valueOf();this.conversion.factor=this.size.contentWidth/(this.end.valueOf()-this.start.valueOf())};links.Timeline.prototype.screenToTime=function(a){var b=this.conversion;return new Date(a/b.factor+b.offset)}; +links.Timeline.prototype.timeToScreen=function(a){var b=this.conversion;return(a.valueOf()-b.offset)*b.factor}; +links.Timeline.prototype.onTouchStart=function(a){var b=this.eventParams,c=this;if(!b.touchDown){b.touchDown=!0;b.zoomed=!1;this.onMouseDown(a);if(!b.onTouchMove)b.onTouchMove=function(a){c.onTouchMove(a)},links.Timeline.addEventListener(document,"touchmove",b.onTouchMove);if(!b.onTouchEnd)b.onTouchEnd=function(a){c.onTouchEnd(a)},links.Timeline.addEventListener(document,"touchend",b.onTouchEnd);var d=this.getItemIndex(links.Timeline.getTarget(a));b.doubleTapStartPrev=b.doubleTapStart;b.doubleTapStart= +(new Date).valueOf();b.doubleTapItemPrev=b.doubleTapItem;b.doubleTapItem=d;links.Timeline.preventDefault(a)}};links.Timeline.prototype.onTouchMove=function(a){var b=this.eventParams;if(a.scale&&a.scale!==1)b.zoomed=!0;if(b.zoomed){if(this.options.zoomable){b.zoomed=!0;var c=b.end.valueOf()-b.start.valueOf(),d=c/a.scale-c,c=new Date(parseInt(b.start.valueOf()-d/2)),b=new Date(parseInt(b.end.valueOf()+d/2));this.setVisibleChartRange(c,b);this.trigger("rangechange")}}else this.onMouseMove(a);links.Timeline.preventDefault(a)}; +links.Timeline.prototype.onTouchEnd=function(a){var b=this.eventParams;b.touchDown=!1;b.zoomed&&this.trigger("rangechanged");b.onTouchMove&&(links.Timeline.removeEventListener(document,"touchmove",b.onTouchMove),delete b.onTouchMove);b.onTouchEnd&&(links.Timeline.removeEventListener(document,"touchend",b.onTouchEnd),delete b.onTouchEnd);this.onMouseUp(a);var c=(new Date).valueOf();this.getItemIndex(links.Timeline.getTarget(a));if(b.doubleTapStartPrev&&c-b.doubleTapStartPrev<500&&b.doubleTapItem== +b.doubleTapItemPrev)b.touchDown=!0,this.onDblClick(a),b.touchDown=!1;links.Timeline.preventDefault(a)}; +links.Timeline.prototype.onMouseDown=function(a){var a=a||window.event,b=this.eventParams,c=this.options,d=this.dom;if((a.which?a.which==1:a.button==1)||b.touchDown){b.mouseX=links.Timeline.getPageX(a);b.mouseY=links.Timeline.getPageY(a);b.frameLeft=links.Timeline.getAbsoluteLeft(this.dom.content);b.frameTop=links.Timeline.getAbsoluteTop(this.dom.content);b.previousLeft=0;b.previousOffset=0;b.moved=!1;b.start=new Date(this.start.valueOf());b.end=new Date(this.end.valueOf());b.target=links.Timeline.getTarget(a); +var e=d.items&&d.items.dragRight?d.items.dragRight:void 0;b.itemDragLeft=b.target===(d.items&&d.items.dragLeft?d.items.dragLeft:void 0);b.itemDragRight=b.target===e;b.itemDragLeft||b.itemDragRight?(b.itemIndex=this.selection&&this.selection.index!==void 0?this.selection.index:void 0,delete b.clusterIndex):(b.itemIndex=this.getItemIndex(b.target),b.clusterIndex=this.getClusterIndex(b.target));b.customTime=b.target===d.customTime||b.target.parentNode===d.customTime?this.customTime:void 0;b.addItem= +c.editable&&a.ctrlKey;if(b.addItem){var f=b.mouseY-b.frameTop,d=this.screenToTime(b.mouseX-b.frameLeft);c.snapEvents&&this.step.snap(d);e=new Date(d.valueOf());c=c.NEW;f=this.getGroupFromHeight(f);this.addItem({start:d,end:e,content:c,group:this.getGroupName(f)});b.itemIndex=this.items.length-1;delete b.clusterIndex;this.selectItem(b.itemIndex);b.itemDragRight=!0}c=this.items[b.itemIndex];d=this.isSelected(b.itemIndex);b.editItem=d&&this.isEditable(c);b.editItem?(b.itemStart=c.start,b.itemEnd=c.end, +b.itemGroup=c.group,b.itemLeft=c.getLeft(this),b.itemRight=c.getRight(this)):this.dom.frame.style.cursor="move";if(!b.touchDown){var g=this;if(!b.onMouseMove)b.onMouseMove=function(a){g.onMouseMove(a)},links.Timeline.addEventListener(document,"mousemove",b.onMouseMove);if(!b.onMouseUp)b.onMouseUp=function(a){g.onMouseUp(a)},links.Timeline.addEventListener(document,"mouseup",b.onMouseUp);links.Timeline.preventDefault(a)}}}; +links.Timeline.prototype.onMouseMove=function(a){var a=a||window.event,b=this.eventParams,c=this.size,d=this.dom,e=this.options,f=links.Timeline.getPageX(a),g=links.Timeline.getPageY(a);if(b.mouseX==void 0)b.mouseX=f;if(b.mouseY==void 0)b.mouseY=g;f-=b.mouseX;if(Math.abs(f)>=1)b.moved=!0;if(b.customTime)this.customTime=this.screenToTime(this.timeToScreen(b.customTime)+f),this.repaintCustomTime(),this.trigger("timechange");else if(b.editItem){var d=this.items[b.itemIndex],h,i;if(b.itemDragLeft&&e.timeChangeable){h= +b.itemLeft+f;i=b.itemRight;d.start=this.screenToTime(h);e.snapEvents&&(this.step.snap(d.start),h=this.timeToScreen(d.start));if(h>i)h=i,d.start=this.screenToTime(h);this.trigger("change")}else if(b.itemDragRight&&e.timeChangeable){h=b.itemLeft;i=b.itemRight+f;d.end=this.screenToTime(i);e.snapEvents&&(this.step.snap(d.end),i=this.timeToScreen(d.end));if(i=1&&(a=0.9);a<=-1&&(a=-0.9);a<0&&(a/=1+a);var c=new Date(this.start.valueOf()-(this.start.valueOf()-b)*a),d=new Date(this.end.valueOf()-(this.end.valueOf()-b)*a),e=d.valueOf()-c.valueOf(),f=Number(this.options.zoomMin)||10;f<10&&(f=10);e>=f&&(this.applyRange(c,d,b),this.render({animate:this.options.animate&&this.options.animateZoom}))}; +links.Timeline.prototype.move=function(a){var b=this.end.valueOf()-this.start.valueOf();this.applyRange(new Date(this.start.valueOf()+b*a),new Date(this.end.valueOf()+b*a));this.render()}; +links.Timeline.prototype.applyRange=function(a,b,c){var a=a.valueOf(),b=b.valueOf(),d=b-a,e=this.options,f=Number(e.zoomMin)||10;f<10&&(f=10);var g=Number(e.zoomMax)||31536E10;g>31536E10&&(g=31536E10);g=e&&(e=h+864E5),g>e-h&&(g=e-h),f>e-h&&(f=e-h));a>=b&&(b+=864E5);if(dg&&(f=d-g,i=c?(c.valueOf()-a)/d:0.5,a+=Math.round(f* +i),b-=Math.round(f*(1-i)));h!=void 0&&(f=a-h,f<0&&(a-=f,b-=f));e!=void 0&&(f=e-b,f<0&&(a+=f,b+=f));this.start=new Date(a);this.end=new Date(b)};links.Timeline.prototype.confirmDeleteItem=function(a){this.applyDelete=!0;this.isSelected(a)||this.selectItem(a);this.trigger("delete");this.applyDelete&&this.deleteItem(a);delete this.applyDelete}; +links.Timeline.prototype.deleteItem=function(a,b){if(a>=this.items.length)throw"Cannot delete row, index out of range";this.selection&&this.selection.index!==void 0&&(this.selection.index==a?this.unselectItem():this.selection.index>a&&this.selection.index--);this.renderQueue.hide.push(this.items.splice(a,1)[0]);if(this.data)if(google&&google.visualization&&this.data instanceof google.visualization.DataTable)this.data.removeRow(a);else if(links.Timeline.isArray(this.data))this.data.splice(a,1);else throw"Cannot delete row from data, unknown data type"; +this.options.cluster&&this.clusterGenerator.updateData();b||this.render()}; +links.Timeline.prototype.deleteAllItems=function(){this.unselectItem();this.clearItems();this.deleteGroups();if(this.data)if(google&&google.visualization&&this.data instanceof google.visualization.DataTable)this.data.removeRows(0,this.data.getNumberOfRows());else if(links.Timeline.isArray(this.data))this.data.splice(0,this.data.length);else throw"Cannot delete row from data, unknown data type";this.options.cluster&&this.clusterGenerator.updateData();this.render()}; +links.Timeline.prototype.getGroupFromHeight=function(a){var b,c,d=this.groups;if(d.length){if(this.options.axisOnTop)for(b=d.length-1;b>=0;b--){if(c=d[b],a>c.top)break}else for(b=0;bc.top)break;return c}}; +links.Timeline.Item=function(a,b){if(a)this.start=a.start,this.end=a.end,this.content=a.content,this.className=a.className,this.editable=a.editable,this.group=a.group,this.type=a.type;this.dotHeight=this.dotWidth=this.lineWidth=this.height=this.width=this.left=this.top=0;this.rendered=!1;if(b)for(var c in b)b.hasOwnProperty(c)&&(this[c]=b[c])};links.Timeline.Item.prototype.reflow=function(){return!1}; +links.Timeline.Item.prototype.getImageUrls=function(a){this.dom&&links.imageloader.filterImageUrls(this.dom,a)};links.Timeline.Item.prototype.select=function(){};links.Timeline.Item.prototype.unselect=function(){};links.Timeline.Item.prototype.createDOM=function(){};links.Timeline.Item.prototype.showDOM=function(){};links.Timeline.Item.prototype.hideDOM=function(){};links.Timeline.Item.prototype.updateDOM=function(){};links.Timeline.Item.prototype.updatePosition=function(){}; +links.Timeline.Item.prototype.isRendered=function(){return this.rendered};links.Timeline.Item.prototype.isVisible=function(){return!1};links.Timeline.Item.prototype.setPosition=function(){};links.Timeline.Item.prototype.getLeft=function(){return 0};links.Timeline.Item.prototype.getRight=function(){return 0};links.Timeline.Item.prototype.getWidth=function(){return this.width||0};links.Timeline.ItemBox=function(a,b){links.Timeline.Item.call(this,a,b)};links.Timeline.ItemBox.prototype=new links.Timeline.Item; +links.Timeline.ItemBox.prototype.reflow=function(){var a=this.dom,b=a.dot.offsetHeight,c=a.dot.offsetWidth,a=a.line.offsetWidth,d=this.dotHeight!=b||this.dotWidth!=c||this.lineWidth!=a;this.dotHeight=b;this.dotWidth=c;this.lineWidth=a;return d};links.Timeline.ItemBox.prototype.select=function(){var a=this.dom;links.Timeline.addClassName(a,"timeline-event-selected ui-state-active");links.Timeline.addClassName(a.line,"timeline-event-selected ui-state-active");links.Timeline.addClassName(a.dot,"timeline-event-selected ui-state-active")}; +links.Timeline.ItemBox.prototype.unselect=function(){var a=this.dom;links.Timeline.removeClassName(a,"timeline-event-selected ui-state-active");links.Timeline.removeClassName(a.line,"timeline-event-selected ui-state-active");links.Timeline.removeClassName(a.dot,"timeline-event-selected ui-state-active")}; +links.Timeline.ItemBox.prototype.createDOM=function(){var a=document.createElement("DIV");a.style.position="absolute";a.style.left=this.left+"px";a.style.top=this.top+"px";var b=document.createElement("DIV");b.className="timeline-event-content";b.innerHTML=this.content;a.appendChild(b);b=document.createElement("DIV");b.style.position="absolute";b.style.width="0px";a.line=b;b=document.createElement("DIV");b.style.position="absolute";b.style.width="0px";b.style.height="0px";a.dot=b;this.dom=a;this.updateDOM(); +return a};links.Timeline.ItemBox.prototype.showDOM=function(a){var b=this.dom;b||(b=this.createDOM());if(b.parentNode!=a)b.parentNode&&this.hideDOM(),a.appendChild(b),a.insertBefore(b.line,a.firstChild),a.appendChild(b.dot),this.rendered=!0};links.Timeline.ItemBox.prototype.hideDOM=function(){var a=this.dom;if(a)a.parentNode&&a.parentNode.removeChild(a),a.line&&a.line.parentNode&&a.line.parentNode.removeChild(a.line),a.dot&&a.dot.parentNode&&a.dot.parentNode.removeChild(a.dot),this.rendered=!1}; +links.Timeline.ItemBox.prototype.updateDOM=function(){var a=this.dom;if(a){var b=a.line,c=a.dot;a.firstChild.innerHTML=this.content;a.className="timeline-event timeline-event-box ui-widget ui-state-default";b.className="timeline-event timeline-event-line ui-widget ui-state-default";c.className="timeline-event timeline-event-dot ui-widget ui-state-default";this.isCluster&&(links.Timeline.addClassName(a,"timeline-event-cluster ui-widget-header"),links.Timeline.addClassName(b,"timeline-event-cluster ui-widget-header"), +links.Timeline.addClassName(c,"timeline-event-cluster ui-widget-header"));this.className&&(links.Timeline.addClassName(a,this.className),links.Timeline.addClassName(b,this.className),links.Timeline.addClassName(c,this.className))}}; +links.Timeline.ItemBox.prototype.updatePosition=function(a){var b=this.dom;if(b){var c=a.timeToScreen(this.start),d=a.options.axisOnTop,e=a.size.axis.top,f=a.size.axis.height,a=a.options.box&&a.options.box.align?a.options.box.align:void 0;b.style.top=this.top+"px";b.style.left=a=="right"?c-this.width+"px":a=="left"?c+"px":c-this.width/2+"px";a=b.line;b=b.dot;a.style.left=c-this.lineWidth/2+"px";b.style.left=c-this.dotWidth/2+"px";d?(a.style.top=f+"px",a.style.height=Math.max(this.top-f,0)+"px",b.style.top= +f-this.dotHeight/2+"px"):(a.style.top=this.top+this.height+"px",a.style.height=Math.max(e-this.top-this.height,0)+"px",b.style.top=e-this.dotHeight/2+"px")}};links.Timeline.ItemBox.prototype.isVisible=function(a,b){return this.cluster?!1:this.start>a&&this.start2*c&&(a=2*c);b.style.top=this.top+"px";b.style.left=d+"px";b.style.width=Math.max(a-d,1)+"px"}};links.Timeline.ItemRange.prototype.isVisible=function(a,b){return this.cluster?!1:this.end>a&&this.start2*c&&(a=2*c);b.style.top=this.top+"px";b.style.left=d+"px";b.style.width=Math.max(a-d,1)+"px"}};links.Timeline.ItemFloatingRange.prototype.isVisible=function(a,b){return this.cluster?!1:this.end&&this.start?this.end>a&&this.starta:!0}; +links.Timeline.ItemFloatingRange.prototype.setPosition=function(a,b){var c=this.dom;c.style.left=a+"px";c.style.width=b-a+"px";if(this.group)this.top=this.group.top,c.style.top=this.top+"px"};links.Timeline.ItemFloatingRange.prototype.getLeft=function(a){return this.start?a.timeToScreen(this.start):0};links.Timeline.ItemFloatingRange.prototype.getRight=function(a){return this.end?a.timeToScreen(this.end):a.size.contentWidth}; +links.Timeline.ItemFloatingRange.prototype.getWidth=function(a){return this.getRight(a)-this.getLeft(a)};links.Timeline.ItemDot=function(a,b){links.Timeline.Item.call(this,a,b)};links.Timeline.ItemDot.prototype=new links.Timeline.Item;links.Timeline.ItemDot.prototype.reflow=function(){var a=this.dom,b=a.dot.offsetHeight,c=a.dot.offsetWidth,a=a.content.offsetHeight,d=this.dotHeight!=b||this.dotWidth!=c||this.contentHeight!=a;this.dotHeight=b;this.dotWidth=c;this.contentHeight=a;return d}; +links.Timeline.ItemDot.prototype.select=function(){links.Timeline.addClassName(this.dom,"timeline-event-selected ui-state-active")};links.Timeline.ItemDot.prototype.unselect=function(){links.Timeline.removeClassName(this.dom,"timeline-event-selected ui-state-active")}; +links.Timeline.ItemDot.prototype.createDOM=function(){var a=document.createElement("DIV");a.style.position="absolute";var b=document.createElement("DIV");b.className="timeline-event-content";a.appendChild(b);var c=document.createElement("DIV");c.style.position="absolute";c.style.width="0px";c.style.height="0px";a.appendChild(c);a.content=b;a.dot=c;this.dom=a;this.updateDOM();return a}; +links.Timeline.ItemDot.prototype.showDOM=function(a){var b=this.dom;b||(b=this.createDOM());if(b.parentNode!=a)b.parentNode&&this.hideDOM(),a.appendChild(b),this.rendered=!0};links.Timeline.ItemDot.prototype.hideDOM=function(){var a=this.dom;if(a)a.parentNode&&a.parentNode.removeChild(a),this.rendered=!1}; +links.Timeline.ItemDot.prototype.updateDOM=function(){if(this.dom){var a=this.dom,b=a.dot;a.firstChild.innerHTML=this.content;a.className="timeline-event-dot-container";b.className="timeline-event timeline-event-dot ui-widget ui-state-default";this.isCluster&&(links.Timeline.addClassName(a,"timeline-event-cluster ui-widget-header"),links.Timeline.addClassName(b,"timeline-event-cluster ui-widget-header"));this.className&&(links.Timeline.addClassName(a,this.className),links.Timeline.addClassName(b, +this.className))}};links.Timeline.ItemDot.prototype.updatePosition=function(a){var b=this.dom;if(b)a=a.timeToScreen(this.start),b.style.top=this.top+"px",b.style.left=a-this.dotWidth/2+"px",b.content.style.marginLeft=1.5*this.dotWidth+"px",b.dot.style.top=(this.height-this.dotHeight)/2+"px"};links.Timeline.ItemDot.prototype.isVisible=function(a,b){return this.cluster?!1:this.start>a&&this.start=this.items.length)throw"Cannot get item, index out of range";var b=this.data;if(google&&google.visualization&&b instanceof google.visualization.DataTable){var c=links.Timeline.mapColumnIds(b),b={},d;for(d in c)c.hasOwnProperty(d)&&(b[d]=this.data.getValue(a,c[d]))}else if(links.Timeline.isArray(this.data))b=links.Timeline.clone(this.data[a]);else throw"Unknown data type. DataTable or Array expected.";a=this.items[a];b.start=new Date(a.start.valueOf()); +if(a.end)b.end=new Date(a.end.valueOf());b.content=a.content;if(a.group)b.group=this.getGroupName(a.group);if(a.className)b.className=a.className;if(typeof a.editable!=="undefined")b.editable=a.editable;if(a.type)b.type=a.type;return b}; +links.Timeline.prototype.getCluster=function(a){if(a>=this.clusters.length)throw"Cannot get cluster, index out of range";var b={},c=this.clusters[a],a=c.items;b.start=new Date(c.start.valueOf());if(c.type)b.type=c.type;b.items=[];for(c=0;cb.content?1:a.content0){if(a[0].row!=void 0){var b=a[0].row;if(this.items[b])return a=this.items[b],this.selectItem(b),b=a.start,a=a.end,a=a!=void 0?(a.valueOf()+b.valueOf())/2:b.valueOf(),b=this.end.valueOf()-this.start.valueOf(),this.setVisibleChartRange(new Date(a-b/2),new Date(a+b/2)),!0}}else this.unselectItem();return!1}; +links.Timeline.prototype.getSelection=function(){var a=[];this.selection&&(this.selection.index!==void 0?a.push({row:this.selection.index}):a.push({cluster:this.selection.cluster}));return a};links.Timeline.prototype.selectItem=function(a){this.unselectItem();this.selection=void 0;if(this.items[a]!=void 0){var b=this.items[a];this.selection={index:a};if(b&&b.dom){if(this.isEditable(b))b.dom.style.cursor="move";b.select()}this.repaintDeleteButton();this.repaintDragAreas()}}; +links.Timeline.prototype.selectCluster=function(a){this.unselectItem();this.selection=void 0;if(this.clusters[a]!=void 0)this.selection={cluster:a},this.repaintDeleteButton(),this.repaintDragAreas()};links.Timeline.prototype.isSelected=function(a){return this.selection&&this.selection.index==a}; +links.Timeline.prototype.unselectItem=function(){if(this.selection&&this.selection.index!==void 0){var a=this.items[this.selection.index];if(a&&a.dom)a.dom.style.cursor="",a.unselect();this.selection=void 0;this.repaintDeleteButton();this.repaintDragAreas()}}; +links.Timeline.prototype.stackItems=function(a){a==void 0&&(a=!1);var b=this.stack;if(!b)this.stack=b={};b.sortedItems=this.stackOrder(this.renderedItems);b.finalItems=this.stackCalculateFinal(b.sortedItems);if(a||b.timer){var c=this,d=function(){var a=c.stackMoveOneStep(b.sortedItems,b.finalItems);c.repaint();a?delete b.timer:b.timer=setTimeout(d,30)};if(!b.timer)b.timer=setTimeout(d,30)}else this.stackMoveToFinal(b.sortedItems,b.finalItems)}; +links.Timeline.prototype.stackCancelAnimation=function(){this.stack&&this.stack.timer&&(clearTimeout(this.stack.timer),delete this.stack.timer)};links.Timeline.prototype.getItemsByGroup=function(a){for(var b={},c=0;ch?1:-1;Math.abs(k)>4&&(m=k/4);h=parseInt(h+m);h!=i&&(c=!1);g.top=h;g.bottom=g.top+g.height}else g.top=f.top,g.bottom=f.bottom;g.left=f.left;g.right=f.right}return c}; +links.Timeline.prototype.stackMoveToFinal=function(a,b){for(var c=0,d=b.length;c=c;d--){var h=a[d];if(f(g,h,e)&&d!=b)return h}};links.Timeline.prototype.collision=function(a,b,c){c==void 0&&(c=0);return a.left-cb.left&&a.top-cb.top}; +links.Timeline.prototype.trigger=function(a){var b=null;switch(a){case "rangechange":case "rangechanged":b={start:new Date(this.start.valueOf()),end:new Date(this.end.valueOf())};break;case "timechange":case "timechanged":b={time:new Date(this.customTime.valueOf())}}links.events.trigger(this,a,b);google&&google.visualization&&google.visualization.events.trigger(this,a,b)}; +links.Timeline.prototype.clusterItems=function(){if(this.options.cluster){var a=this.clusterGenerator.getClusters(this.conversion.factor,this.options.clusterMaxItems);if(this.clusters!=a){var b=this.renderQueue;this.clusters&&this.clusters.forEach(function(a){b.hide.push(a);a.items.forEach(function(a){a.cluster=void 0})});a.forEach(function(a){a.items.forEach(function(b){b.cluster=a})});this.clusters=a}}}; +links.Timeline.prototype.filterItems=function(){function a(a){a.forEach(function(a){var c=a.rendered,f=a.isVisible(d,e);c!=f&&(c&&b.hide.push(a),f&&b.show.indexOf(a)==-1&&b.show.push(a))})}var b=this.renderQueue,c=this.end-this.start,d=new Date(this.start.valueOf()-c),e=new Date(this.end.valueOf()+c);a(this.items);this.clusters&&a(this.clusters)};links.Timeline.ClusterGenerator=function(a){this.timeline=a;this.clear()}; +links.Timeline.ClusterGenerator.prototype.clear=function(){this.items=[];this.groups={};this.clearCache()};links.Timeline.ClusterGenerator.prototype.clearCache=function(){this.cache={};this.cacheLevel=-1;this.cache[this.cacheLevel]=[]};links.Timeline.ClusterGenerator.prototype.setData=function(a,b){this.items=a||[];this.applyOnChangedLevel=this.dataChanged=!0;if(b&&b.applyOnChangedLevel)this.applyOnChangedLevel=b.applyOnChangedLevel}; +links.Timeline.ClusterGenerator.prototype.updateData=function(){this.dataChanged=!0;this.applyOnChangedLevel=!1};links.Timeline.ClusterGenerator.prototype.filterData=function(){var a=this.items||[],b={};this.groups=b;a.forEach(function(a){var c=a.group?a.group.content:"",f=b[c];f||(f=[],b[c]=f);f.push(a);if(a.start)a.center=a.end?(a.start.valueOf()+a.end.valueOf())/2:a.start.valueOf()});for(var c in b)b.hasOwnProperty(c)&&b[c].sort(function(a,b){return a.center-b.center});this.dataChanged=!1}; +links.Timeline.ClusterGenerator.prototype.getClusters=function(a,b){var c=-1,d=0;a>0&&(c=Math.round(Math.log(100/a)/Math.log(2)),d=Math.pow(2,c));if(this.dataChanged){var e=c!=this.cacheLevel;if(this.applyOnChangedLevel?e:1)this.clearCache(),this.filterData()}this.cacheLevel=c;e=this.cache[c];if(!e){var e=[],f;for(f in this.groups)if(this.groups.hasOwnProperty(f))for(var g=this.groups[f],h=g.length,i=0;i=0&&k.center-g[l].center=0&&k.center-e[l].centerb){for(var m=m-b+1,l=[],s=void 0,q=void 0,o=void 0,p=!1,n=0,u=i;l.length'+n+" events",k=k.group?k.group.content:void 0;t=p?this.timeline.createItem({start:new Date(q),end:new Date(o),content:n,group:k}):this.timeline.createItem({start:new Date(s),content:n,group:k});t.isCluster=!0;t.items=l;t.items.forEach(function(a){a.cluster=t});e.push(t);i+=m}else delete k.cluster,i+=1}this.cache[c]=e}return e}; +links.events=links.events||{listeners:[],indexOf:function(a){for(var b=this.listeners,c=0,d=this.listeners.length;cthis._end.valueOf()}; +links.Timeline.StepDate.prototype.next=function(){var a=this.current.valueOf();if(this.current.getMonth()<6)switch(this.scale){case links.Timeline.StepDate.SCALE.MILLISECOND:this.current=new Date(this.current.valueOf()+this.step);break;case links.Timeline.StepDate.SCALE.SECOND:this.current=new Date(this.current.valueOf()+this.step*1E3);break;case links.Timeline.StepDate.SCALE.MINUTE:this.current=new Date(this.current.valueOf()+this.step*6E4);break;case links.Timeline.StepDate.SCALE.HOUR:this.current= +new Date(this.current.valueOf()+this.step*36E5);var b=this.current.getHours();this.current.setHours(b-b%this.step);break;case links.Timeline.StepDate.SCALE.WEEKDAY:case links.Timeline.StepDate.SCALE.DAY:this.current.setDate(this.current.getDate()+this.step);break;case links.Timeline.StepDate.SCALE.MONTH:this.current.setMonth(this.current.getMonth()+this.step);break;case links.Timeline.StepDate.SCALE.YEAR:this.current.setFullYear(this.current.getFullYear()+this.step)}else switch(this.scale){case links.Timeline.StepDate.SCALE.MILLISECOND:this.current= +new Date(this.current.valueOf()+this.step);break;case links.Timeline.StepDate.SCALE.SECOND:this.current.setSeconds(this.current.getSeconds()+this.step);break;case links.Timeline.StepDate.SCALE.MINUTE:this.current.setMinutes(this.current.getMinutes()+this.step);break;case links.Timeline.StepDate.SCALE.HOUR:this.current.setHours(this.current.getHours()+this.step);break;case links.Timeline.StepDate.SCALE.WEEKDAY:case links.Timeline.StepDate.SCALE.DAY:this.current.setDate(this.current.getDate()+this.step); +break;case links.Timeline.StepDate.SCALE.MONTH:this.current.setMonth(this.current.getMonth()+this.step);break;case links.Timeline.StepDate.SCALE.YEAR:this.current.setFullYear(this.current.getFullYear()+this.step)}if(this.step!=1)switch(this.scale){case links.Timeline.StepDate.SCALE.MILLISECOND:this.current.getMilliseconds()0)this.step=b;this.autoScale=!1};links.Timeline.StepDate.prototype.setAutoScale=function(a){this.autoScale=a}; +links.Timeline.StepDate.prototype.setMinimumStep=function(a){if(a!=void 0){if(31104E9>a)this.scale=links.Timeline.StepDate.SCALE.YEAR,this.step=1E3;if(15552E9>a)this.scale=links.Timeline.StepDate.SCALE.YEAR,this.step=500;if(31104E8>a)this.scale=links.Timeline.StepDate.SCALE.YEAR,this.step=100;if(15552E8>a)this.scale=links.Timeline.StepDate.SCALE.YEAR,this.step=50;if(31104E7>a)this.scale=links.Timeline.StepDate.SCALE.YEAR,this.step=10;if(15552E7>a)this.scale=links.Timeline.StepDate.SCALE.YEAR,this.step= +5;if(31104E6>a)this.scale=links.Timeline.StepDate.SCALE.YEAR,this.step=1;if(7776E6>a)this.scale=links.Timeline.StepDate.SCALE.MONTH,this.step=3;if(2592E6>a)this.scale=links.Timeline.StepDate.SCALE.MONTH,this.step=1;if(432E6>a)this.scale=links.Timeline.StepDate.SCALE.DAY,this.step=5;if(1728E5>a)this.scale=links.Timeline.StepDate.SCALE.DAY,this.step=2;if(864E5>a)this.scale=links.Timeline.StepDate.SCALE.DAY,this.step=1;if(432E5>a)this.scale=links.Timeline.StepDate.SCALE.WEEKDAY,this.step=1;if(144E5> +a)this.scale=links.Timeline.StepDate.SCALE.HOUR,this.step=4;if(36E5>a)this.scale=links.Timeline.StepDate.SCALE.HOUR,this.step=1;if(9E5>a)this.scale=links.Timeline.StepDate.SCALE.MINUTE,this.step=15;if(6E5>a)this.scale=links.Timeline.StepDate.SCALE.MINUTE,this.step=10;if(3E5>a)this.scale=links.Timeline.StepDate.SCALE.MINUTE,this.step=5;if(6E4>a)this.scale=links.Timeline.StepDate.SCALE.MINUTE,this.step=1;if(15E3>a)this.scale=links.Timeline.StepDate.SCALE.SECOND,this.step=15;if(1E4>a)this.scale=links.Timeline.StepDate.SCALE.SECOND, +this.step=10;if(5E3>a)this.scale=links.Timeline.StepDate.SCALE.SECOND,this.step=5;if(1E3>a)this.scale=links.Timeline.StepDate.SCALE.SECOND,this.step=1;if(200>a)this.scale=links.Timeline.StepDate.SCALE.MILLISECOND,this.step=200;if(100>a)this.scale=links.Timeline.StepDate.SCALE.MILLISECOND,this.step=100;if(50>a)this.scale=links.Timeline.StepDate.SCALE.MILLISECOND,this.step=50;if(10>a)this.scale=links.Timeline.StepDate.SCALE.MILLISECOND,this.step=10;if(5>a)this.scale=links.Timeline.StepDate.SCALE.MILLISECOND, +this.step=5;if(1>a)this.scale=links.Timeline.StepDate.SCALE.MILLISECOND,this.step=1}}; +links.Timeline.StepDate.prototype.snap=function(a){if(this.scale==links.Timeline.StepDate.SCALE.YEAR){var b=a.getFullYear()+Math.round(a.getMonth()/12);a.setFullYear(Math.round(b/this.step)*this.step);a.setMonth(0);a.setDate(0);a.setHours(0);a.setMinutes(0);a.setSeconds(0);a.setMilliseconds(0)}else if(this.scale==links.Timeline.StepDate.SCALE.MONTH)a.getDate()>15?(a.setDate(1),a.setMonth(a.getMonth()+1)):a.setDate(1),a.setHours(0),a.setMinutes(0),a.setSeconds(0),a.setMilliseconds(0);else if(this.scale== +links.Timeline.StepDate.SCALE.DAY||this.scale==links.Timeline.StepDate.SCALE.WEEKDAY){switch(this.step){case 5:case 2:a.setHours(Math.round(a.getHours()/24)*24);break;default:a.setHours(Math.round(a.getHours()/12)*12)}a.setMinutes(0);a.setSeconds(0);a.setMilliseconds(0)}else if(this.scale==links.Timeline.StepDate.SCALE.HOUR){switch(this.step){case 4:a.setMinutes(Math.round(a.getMinutes()/60)*60);break;default:a.setMinutes(Math.round(a.getMinutes()/30)*30)}a.setSeconds(0);a.setMilliseconds(0)}else if(this.scale== +links.Timeline.StepDate.SCALE.MINUTE){switch(this.step){case 15:case 10:a.setMinutes(Math.round(a.getMinutes()/5)*5);a.setSeconds(0);break;case 5:a.setSeconds(Math.round(a.getSeconds()/60)*60);break;default:a.setSeconds(Math.round(a.getSeconds()/30)*30)}a.setMilliseconds(0)}else if(this.scale==links.Timeline.StepDate.SCALE.SECOND)switch(this.step){case 15:case 10:a.setSeconds(Math.round(a.getSeconds()/5)*5);a.setMilliseconds(0);break;case 5:a.setMilliseconds(Math.round(a.getMilliseconds()/1E3)*1E3); +break;default:a.setMilliseconds(Math.round(a.getMilliseconds()/500)*500)}else this.scale==links.Timeline.StepDate.SCALE.MILLISECOND&&(b=this.step>5?this.step/2:1,a.setMilliseconds(Math.round(a.getMilliseconds()/b)*b))}; +links.Timeline.StepDate.prototype.isMajor=function(){switch(this.scale){case links.Timeline.StepDate.SCALE.MILLISECOND:return this.current.getMilliseconds()==0;case links.Timeline.StepDate.SCALE.SECOND:return this.current.getSeconds()==0;case links.Timeline.StepDate.SCALE.MINUTE:return this.current.getHours()==0&&this.current.getMinutes()==0;case links.Timeline.StepDate.SCALE.HOUR:return this.current.getHours()==0;case links.Timeline.StepDate.SCALE.WEEKDAY:case links.Timeline.StepDate.SCALE.DAY:return this.current.getDate()== +1;case links.Timeline.StepDate.SCALE.MONTH:return this.current.getMonth()==0;case links.Timeline.StepDate.SCALE.YEAR:return!1;default:return!1}}; +links.Timeline.StepDate.prototype.getLabelMinor=function(a,b){if(b==void 0)b=this.current;switch(this.scale){case links.Timeline.StepDate.SCALE.MILLISECOND:return String(b.getMilliseconds());case links.Timeline.StepDate.SCALE.SECOND:return String(b.getSeconds());case links.Timeline.StepDate.SCALE.MINUTE:return this.addZeros(b.getHours(),2)+":"+this.addZeros(b.getMinutes(),2);case links.Timeline.StepDate.SCALE.HOUR:return this.addZeros(b.getHours(),2)+":"+this.addZeros(b.getMinutes(),2);case links.Timeline.StepDate.SCALE.WEEKDAY:return a.DAYS_SHORT[b.getDay()]+ +" "+b.getDate();case links.Timeline.StepDate.SCALE.DAY:return String(b.getDate());case links.Timeline.StepDate.SCALE.MONTH:return a.MONTHS_SHORT[b.getMonth()];case links.Timeline.StepDate.SCALE.YEAR:return String(b.getFullYear());default:return""}}; +links.Timeline.StepDate.prototype.getLabelMajor=function(a,b){if(b==void 0)b=this.current;switch(this.scale){case links.Timeline.StepDate.SCALE.MILLISECOND:return this.addZeros(b.getHours(),2)+":"+this.addZeros(b.getMinutes(),2)+":"+this.addZeros(b.getSeconds(),2);case links.Timeline.StepDate.SCALE.SECOND:return b.getDate()+" "+a.MONTHS[b.getMonth()]+" "+this.addZeros(b.getHours(),2)+":"+this.addZeros(b.getMinutes(),2);case links.Timeline.StepDate.SCALE.MINUTE:return a.DAYS[b.getDay()]+" "+b.getDate()+ +" "+a.MONTHS[b.getMonth()]+" "+b.getFullYear();case links.Timeline.StepDate.SCALE.HOUR:return a.DAYS[b.getDay()]+" "+b.getDate()+" "+a.MONTHS[b.getMonth()]+" "+b.getFullYear();case links.Timeline.StepDate.SCALE.WEEKDAY:case links.Timeline.StepDate.SCALE.DAY:return a.MONTHS[b.getMonth()]+" "+b.getFullYear();case links.Timeline.StepDate.SCALE.MONTH:return String(b.getFullYear());default:return""}};links.Timeline.StepDate.prototype.addZeros=function(a,b){for(var c=""+a;c.length=0&&(b="DOMMouseScroll"),a.addEventListener(b,c,d)):a.attachEvent("on"+b,c)}; +links.Timeline.removeEventListener=function(a,b,c,d){a.removeEventListener?(d===void 0&&(d=!1),b==="mousewheel"&&navigator.userAgent.indexOf("Firefox")>=0&&(b="DOMMouseScroll"),a.removeEventListener(b,c,d)):a.detachEvent("on"+b,c)};links.Timeline.getTarget=function(a){if(!a)a=window.event;var b;if(a.target)b=a.target;else if(a.srcElement)b=a.srcElement;if(b.nodeType!=void 0&&b.nodeType==3)b=b.parentNode;return b}; +links.Timeline.stopPropagation=function(a){if(!a)a=window.event;a.stopPropagation?a.stopPropagation():a.cancelBubble=!0};links.Timeline.preventDefault=function(a){if(!a)a=window.event;a.preventDefault?a.preventDefault():a.returnValue=!1};links.Timeline.getAbsoluteLeft=function(a){for(var b=document.documentElement,c=document.body,d=a.offsetLeft,a=a.offsetParent;a!=null&&a!=c&&a!=b;)d+=a.offsetLeft,d-=a.scrollLeft,a=a.offsetParent;return d}; +links.Timeline.getAbsoluteTop=function(a){for(var b=document.documentElement,c=document.body,d=a.offsetTop,a=a.offsetParent;a!=null&&a!=c&&a!=b;)d+=a.offsetTop,d-=a.scrollTop,a=a.offsetParent;return d};links.Timeline.getPageY=function(a){"targetTouches"in a&&a.targetTouches.length&&(a=a.targetTouches[0]);if("pageY"in a)return a.pageY;var b=document.documentElement,c=document.body;return a.clientY+(b&&b.scrollTop||c&&c.scrollTop||0)-(b&&b.clientTop||c&&c.clientTop||0)}; +links.Timeline.getPageX=function(a){"targetTouches"in a&&a.targetTouches.length&&(a=a.targetTouches[0]);if("pageX"in a)return a.pageX;var b=document.documentElement,c=document.body;return a.clientX+(b&&b.scrollLeft||c&&c.scrollLeft||0)-(b&&b.clientLeft||c&&c.clientLeft||0)};links.Timeline.addClassName=function(a,b){for(var c=a.className.split(" "),d=b.split(" "),e=!1,f=0;f


-
+

+
theme = $theme; $this->params = $params; $this->imgpath = '../views/'.$theme.'/images/'; - $this->extraheader = ''; + $this->extraheader = array('js'=>'', 'css'=>''); $this->footerjs = array(); } @@ -53,12 +53,14 @@ class SeedDMS_Bootstrap_Style extends SeedDMS_View_Common { echo ''."\n"; echo ''."\n"; echo ''."\n"; + if($this->extraheader['css']) + echo $this->extraheader['css']; echo ''."\n"; // echo ''."\n"; echo ''."\n"; - if($this->extraheader) - echo $this->extraheader; + if($this->extraheader['js']) + echo $this->extraheader['js']; echo ''."\n"; echo ''."\n"; echo ''."\n"; @@ -98,8 +100,8 @@ background-image: linear-gradient(to bottom, #882222, #111111);; } } /* }}} */ - function htmlAddHeader($head) { /* {{{ */ - $this->extraheader .= $head; + function htmlAddHeader($head, $type='js') { /* {{{ */ + $this->extraheader[$type] .= $head; } /* }}} */ function htmlEndPage() { /* {{{ */ @@ -566,8 +568,9 @@ $(document).ready(function () { echo "
  • \n"; echo " ".getMLText("misc")." \n"; echo " \n"; @@ -879,7 +882,7 @@ $(document).ready(function () {

    '; return $html; } /* }}} */ + + /** + * Output a timeline for a document + * + * @param object $document document + */ + protected function printTimeline($timeline, $height=300, $start='', $end='', $skip=array()) { /* {{{ */ + if(!$timeline) + return; +?> + +
    + diff --git a/views/bootstrap/class.DropFolderChooser.php b/views/bootstrap/class.DropFolderChooser.php index a24db7ce6..c344342ad 100644 --- a/views/bootstrap/class.DropFolderChooser.php +++ b/views/bootstrap/class.DropFolderChooser.php @@ -37,8 +37,12 @@ class SeedDMS_View_DropFolderChooser extends SeedDMS_Bootstrap_Style { $dropfolderfile = $this->params['dropfolderfile']; $form = $this->params['form']; $dropfolderdir = $this->params['dropfolderdir']; + $cachedir = $this->params['cachedir']; + $previewwidth = $this->params['previewWidthList']; - $this->htmlStartPage(getMLText("choose_target_file")); + $previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth); + +// $this->htmlStartPage(getMLText("choose_target_file")); // $this->globalBanner(); // $this->pageNavigation(getMLText("choose_target_file")); ?> @@ -47,7 +51,7 @@ class SeedDMS_View_DropFolderChooser extends SeedDMS_Bootstrap_Style { var targetName = document..dropfolderfile; contentContainerStart(); +// $this->contentContainerStart(); $dir = $dropfolderdir.'/'.$user->getLogin(); /* Check if we are still looking in the configured directory and @@ -56,20 +60,32 @@ var targetName = document..dropfolderfile; if(dirname($dir) == $dropfolderdir) { if(is_dir($dir)) { $d = dir($dir); - echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + $finfo = finfo_open(FILEINFO_MIME_TYPE); while (false !== ($entry = $d->read())) { if($entry != '..' && $entry != '.') { if(!is_dir($entry)) { - echo "\n"; + $mimetype = finfo_file($finfo, $dir.'/'.$entry); + $previewer->createRawPreview($dir.'/'.$entry, 'dropfolder/', $mimetype); + echo "\n"; } } } + echo "\n"; echo "
    ".getMLText('name')."".getMLText('file_size')."".getMLText('date')."
    ".$entry."".SeedDMS_Core_File::format_filesize(filesize($dir.'/'.$entry))."
    "; + if($previewer->hasRawPreview($dir.'/'.$entry, 'dropfolder/')) { + echo ""; + } + echo "".$entry."".SeedDMS_Core_File::format_filesize(filesize($dir.'/'.$entry))."".date('Y-m-d H:i:s', filectime($dir.'/'.$entry))."
    \n"; } } - $this->contentContainerEnd(); - echo "\n\n"; +// $this->contentContainerEnd(); +// echo "\n\n"; // $this->htmlEndPage(); } /* }}} */ } diff --git a/views/bootstrap/class.Timeline.php b/views/bootstrap/class.Timeline.php new file mode 100644 index 000000000..87a49b76c --- /dev/null +++ b/views/bootstrap/class.Timeline.php @@ -0,0 +1,129 @@ + + * @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 Timeline 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_Timeline extends SeedDMS_Bootstrap_Style { + var $dms; + var $folder_count; + var $document_count; + var $file_count; + var $storage_size; + + function show() { /* {{{ */ + $this->dms = $this->params['dms']; + $user = $this->params['user']; + $data = $this->params['data']; + $from = $this->params['from']; + $to = $this->params['to']; + $skip = $this->params['skip']; + + $this->htmlAddHeader(''."\n", 'css'); + $this->htmlAddHeader(''."\n", 'js'); + $this->htmlAddHeader(''."\n", 'js'); + + $this->htmlStartPage(getMLText("timeline")); + $this->globalNavigation(); + $this->contentStart(); + $this->pageNavigation(getMLText("admin_tools"), "admin_tools"); +?> + +\n"; + +echo "
    \n"; +$this->contentHeading(getMLText("timeline")); +echo "
    \n"; +?> +
    +
    + +
    + + + + - + + + + +
    +
    +
    + +
    + >
    + >
    + >
    + >
    + >
    + >
    + >
    +
    +
    +
    + +
    + +
    +
    +
    +\n"; +echo "
    \n"; + +echo "
    \n"; +$this->contentHeading(getMLText("timeline")); +if($data) { + foreach($data as &$item) { + switch($item['type']) { + case 'add_version': + $msg = getMLText('timeline_full_'.$item['type'], array('document'=>htmlspecialchars($item['document']->getName()), 'version'=> $item['version'])); + break; + case 'add_file': + $msg = getMLText('timeline_full_'.$item['type'], array('document'=>htmlspecialchars($item['document']->getName()))); + break; + case 'status_change': + $msg = getMLText('timeline_full_'.$item['type'], array('document'=>htmlspecialchars($item['document']->getName()), 'version'=> $item['version'], 'status'=> getOverallStatusText($item['status']))); + break; + default: + $msg = '???'; + } + $item['msg'] = $msg; + } + $this->printTimeline($data, 550, date('Y-m-d', $from), date('Y-m-d', $to+1), $skip); +} +echo "
    \n"; +echo "
    \n"; + +$this->contentContainerEnd(); +$this->htmlEndPage(); + } /* }}} */ +} +?> diff --git a/views/bootstrap/class.UsrMgr.php b/views/bootstrap/class.UsrMgr.php index f7565fbc6..c0d49370a 100644 --- a/views/bootstrap/class.UsrMgr.php +++ b/views/bootstrap/class.UsrMgr.php @@ -406,21 +406,6 @@ function showUser(selectObj) { id = selectObj.options[selectObj.selectedIndex].value; $('div.ajax').trigger('update', {userid: id}); } - - -obj = -1; -function showUser(selectObj) { - if (obj != -1) - obj.style.display = "none"; - - id = selectObj.options[selectObj.selectedIndex].value; - if (id == -1) - return; - - obj = document.getElementById("keywords" + id); - obj.style.display = ""; -} - contentHeading(getMLText("user_management")); @@ -444,26 +429,12 @@ function showUser(selectObj) { ?> -
    +
    getID()."\"" : "") ?>>
    -
    - - - -getID()."\" style=\"display : none;\">"; - $this->showUserForm($currUser); - print "
    \n"; - } - endif; -?> -
    +
    getID()."\"" : "") ?>>
    diff --git a/views/bootstrap/class.ViewDocument.php b/views/bootstrap/class.ViewDocument.php index 276ff3a19..8a2ae362a 100644 --- a/views/bootstrap/class.ViewDocument.php +++ b/views/bootstrap/class.ViewDocument.php @@ -88,6 +88,10 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style { $versions = $document->getContent(); + $this->htmlAddHeader(''."\n", 'css'); + $this->htmlAddHeader(''."\n", 'js'); + $this->htmlAddHeader(''."\n", 'js'); + $this->htmlStartPage(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName())))); $this->globalNavigation($folder); $this->contentStart(); @@ -1107,6 +1111,31 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style { ?> +isAdmin()) { + $timeline = $document->getTimeline(); + if($timeline) { + $this->contentHeading(getMLText("timeline")); + foreach($timeline as &$item) { + switch($item['type']) { + case 'add_version': + $msg = getMLText('timeline_'.$item['type'], array('document'=>$item['document']->getName(), 'version'=> $item['version'])); + break; + case 'add_file': + $msg = getMLText('timeline_'.$item['type'], array('document'=>$item['document']->getName())); + break; + case 'status_change': + $msg = getMLText('timeline_'.$item['type'], array('document'=>$item['document']->getName(), 'version'=> $item['version'], 'status'=> getOverallStatusText($item['status']))); + break; + default: + $msg = '???'; + } + $item['msg'] = $msg; + } + $this->printTimeline($timeline, 300, '', date('Y-m-d')); + } + } +?> ".htmlspecialchars($folder->getComment())."\n"; echo ""; } + echo ""; + echo "".getMLText("creation_date").":"; + echo "".getLongReadableDate($folder->getDate()).""; + echo ""; if($user->isAdmin()) { if($folder->inheritsAccess()) {