mirror of
https://git.code.sf.net/p/seeddms/code
synced 2025-05-24 10:31:20 +00:00
Merge branch 'seeddms-6.0.x'
This commit is contained in:
commit
a825bb43fb
63
CHANGELOG
63
CHANGELOG
|
@ -1,8 +1,28 @@
|
|||
--------------------------------------------------------------------------------
|
||||
Changes in version 6.0.33
|
||||
--------------------------------------------------------------------------------
|
||||
- merge changes up to 5.1.40
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
Changes in version 6.0.32
|
||||
--------------------------------------------------------------------------------
|
||||
- merge changes up to 5.1.39
|
||||
- fix setting attributes (user, group, document, folder) when checking in
|
||||
a new document version
|
||||
- validate setting revision date
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
Changes in version 6.0.31
|
||||
--------------------------------------------------------------------------------
|
||||
- merge changes up to 5.1.38
|
||||
- fix various restapi endpoints which hadn't been updated to slim4
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
Changes in version 6.0.30
|
||||
--------------------------------------------------------------------------------
|
||||
- merge changes up to 5.1.37
|
||||
- receipt comment can be disabled
|
||||
- send request receipt notification only when document is released
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
Changes in version 6.0.29
|
||||
|
@ -301,9 +321,52 @@
|
|||
- add document list which can be exported as an archive
|
||||
- search results can be exported
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
Changes in version 5.1.40
|
||||
--------------------------------------------------------------------------------
|
||||
- fix saving user data when language selection is turned of (Closes: #568)
|
||||
- add much better support for new storage drivers
|
||||
- fix possible xss attacks
|
||||
- saver way to collect plugin configuration
|
||||
- fix update of postgres database
|
||||
- add hook displayPreviewThumb
|
||||
- add searching for mimetype in database
|
||||
- list of expired documents can be filtered by user
|
||||
- use quoted printable encoding instead of base64 for email subjects
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
Changes in version 5.1.39
|
||||
--------------------------------------------------------------------------------
|
||||
- show quota on chart page when listing total document size per user
|
||||
- turn off legend for chart sizepermonth
|
||||
- do not add group manager as mandatory approver/reviewer if logged in
|
||||
user is the manager itself
|
||||
- fixed setting group approvers from previous document version
|
||||
- very experimental support of memcached for accelerating some database
|
||||
operations (do not use in production)
|
||||
- prevent malicious manipulation of referer when setting language
|
||||
- fix setting attributes of type user, group, document, folder when updating
|
||||
a document
|
||||
- objects can be removed from clipboard
|
||||
- call hooks for document/folder list in attribute manager
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
Changes in version 5.1.38
|
||||
--------------------------------------------------------------------------------
|
||||
- require php 8.2
|
||||
- fix php error in out/out.ReviewSummary.php
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
Changes in version 5.1.37
|
||||
--------------------------------------------------------------------------------
|
||||
- do not show chart by category if there are no categories
|
||||
- documents in certain folders can be excluded from dashboard, could be useful
|
||||
for folders containing archived documents
|
||||
- migrate from Slim 3 to Slim 4 (check for extension updates)
|
||||
- fix reloading more entries in list of folders/documents at end of page if
|
||||
maxItemsPerPage is set
|
||||
- prevent xss attack
|
||||
- log level for rest api can be set separately
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
Changes in version 5.1.36
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
<propertyregex property="shortversion" subject="${version} kk" pattern="([56])\.([0-9]).*" replace="seeddms$1$2x" override="true"/>
|
||||
<property name="majorversion" value="${version}" />
|
||||
<propertyregex property="majorversion" subject="${version}" pattern="([56])\..*" replace="$1" override="true"/>
|
||||
<property name="composer_version" value="2.2.22" />
|
||||
<property name="composer_version" value="2.8.5" />
|
||||
<property name="composer_extra_params" value="" />
|
||||
<property name="composer_env" value="" />
|
||||
<property name="mink_driver" value="chrome" />
|
||||
|
@ -74,7 +74,12 @@
|
|||
<httpget url="https://getcomposer.org/composer-2.phar" sslVerifyPeer="false" dir="${srcdir}" filename="composer.phar" />
|
||||
</then>
|
||||
<else>
|
||||
<if>
|
||||
<not><available file="composer.phar" /></not>
|
||||
<then>
|
||||
<httpget url="https://getcomposer.org/download/${composer_version}/composer.phar" sslVerifyPeer="false" dir="${srcdir}" />
|
||||
</then>
|
||||
</if>
|
||||
</else>
|
||||
</if>
|
||||
<echo message="Installing dependencies..." />
|
||||
|
|
|
@ -1,28 +1,32 @@
|
|||
{
|
||||
"config": {
|
||||
"platform": {
|
||||
"php": "7.4"
|
||||
"php": "8.2"
|
||||
}
|
||||
},
|
||||
"require": {
|
||||
"robthree/twofactorauth": "^1.5",
|
||||
"sabre/dav": "^4.",
|
||||
"sabre/xml": "*",
|
||||
"slim/slim": "^3.0",
|
||||
"slim/slim": "^4.0",
|
||||
"guzzlehttp/psr7": "*",
|
||||
"erusev/parsedown": "*",
|
||||
"erusev/parsedown-extra": "*",
|
||||
"mibe/feedwriter": "^1.1",
|
||||
"phpoffice/phpspreadsheet": "*",
|
||||
"sabre/xml": "*",
|
||||
"sabre/dav": "^4.",
|
||||
"pear/log": "*",
|
||||
"pear/mail": "*",
|
||||
"pear/mail_mime": "*",
|
||||
"pear/net_smtp": "*",
|
||||
"pear/auth_sasl": "*",
|
||||
"pear/db": "*",
|
||||
"dragonmantank/cron-expression": "^3.1",
|
||||
"alecrabbit/php-console-colour": "*",
|
||||
"dragonmantank/cron-expression": "^3",
|
||||
"zf1/zend-search-lucene": "*",
|
||||
"symfony/http-foundation": "^5.4",
|
||||
"php-di/php-di": "^6.4",
|
||||
"slim/psr7": "^1.7",
|
||||
"seeddms/core": "dev-master",
|
||||
"seeddms/lucene": "dev-master",
|
||||
"seeddms/preview": "dev-master",
|
||||
|
@ -69,5 +73,4 @@
|
|||
}
|
||||
}
|
||||
]
|
||||
|
||||
}
|
||||
|
|
|
@ -232,6 +232,7 @@ class SeedDMS_Controller_Login extends SeedDMS_Controller_Common {
|
|||
}
|
||||
}
|
||||
|
||||
if(!is_object($user))
|
||||
$user = $authenticator->authenticate($login, $pwd);
|
||||
|
||||
if(0) {
|
||||
|
|
|
@ -59,7 +59,7 @@ class SeedDMS_Controller_UpdateDocument extends SeedDMS_Controller_Common {
|
|||
$content = $this->callHook('updateDocument');
|
||||
if($content === null) {
|
||||
$filesize = SeedDMS_Core_File::fileSize($userfiletmp);
|
||||
if($contentResult=$document->addContent($comment, $user, $userfiletmp, utf8_basename($userfilename), $filetype, $userfiletype, $reviewers, $approvers, $version=0, $attributes, $workflow, $initialdocumentstatus)) {
|
||||
if($contentResult=$document->addContent($comment, $user, $userfiletmp, utf8_basename($userfilename), $filetype, $userfiletype, $reviewers, $approvers, 0, $attributes, $workflow, $initialdocumentstatus)) {
|
||||
|
||||
if ($this->hasParam('expires')) {
|
||||
if($document->setExpires($this->getParam('expires'))) {
|
||||
|
|
|
@ -18,6 +18,14 @@ Please note, that when ever a command outputs anything to stderr,
|
|||
this will considered as a failure of the command. Most command line
|
||||
programs have a parameter (.e.g. `-q`) to suppress such an output.
|
||||
|
||||
If you run php-fpm you may encounter problems with charsets based on
|
||||
UTF-8. Programms like `catdoc` read LANG from the environment to
|
||||
set the correct encoding of the output. php-fpm often clears the
|
||||
environment and programms like `catdoc` will not longer output any
|
||||
UTF-8 chars. In such a case you may want to set `clear_env=no` in
|
||||
php-fpm's configuration. On Debian this is done in the file
|
||||
`/etc/php/<php version>/fpm/pool.d/www.conf`. Search for `clear_env`.
|
||||
|
||||
Conversion to text for fulltext search
|
||||
=======================================
|
||||
|
||||
|
@ -41,6 +49,9 @@ application/vnd.openxmlformats-officedocument.wordprocessingml.document
|
|||
application/msword
|
||||
catdoc %s
|
||||
|
||||
application/vnd.oasis.opendocument.text
|
||||
odt2txt %s
|
||||
|
||||
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
|
||||
xlsx2csv -d tab %s
|
||||
|
||||
|
|
|
@ -8,13 +8,13 @@ SeedDMS is a web-based application written in PHP. It uses MySQL,
|
|||
SQLite3 or PostgreSQL to manage the documents that were uploaded into
|
||||
the application. Be aware that PostgreSQL is not very well tested.
|
||||
|
||||
Make sure you have PHP >= 7.4 and MySQL 5 or higher installed. SeedDMS
|
||||
Make sure you have PHP >= 8.2 and MySQL 5 or higher installed. SeedDMS
|
||||
will work with PHP running in CGI-mode as well as running as a module under
|
||||
apache.
|
||||
|
||||
Here is a detailed list of requirements:
|
||||
|
||||
1. A web server with at least php 7.4
|
||||
1. A web server with at least php 8.2
|
||||
2. A mysql database, unless you use SQLite
|
||||
3. The php installation must have support for `pdo_mysql`, `pdo_pgsql` or `pdo_sqlite`,
|
||||
`php_gd2`, `php_mbstring`, `php_xml`
|
||||
|
|
55
doc/README.Restapi.md
Normal file
55
doc/README.Restapi.md
Normal file
|
@ -0,0 +1,55 @@
|
|||
# How to access the Rest API
|
||||
|
||||
Below are various examples on how to access the Rest API. Some of them
|
||||
start by calling the `login` endpoint which creates a cookie based
|
||||
session which is stored in a local file named `cookies.txt`.
|
||||
The authentication is done with the user `admin`. You may use any other
|
||||
user as well.
|
||||
|
||||
You may as well pass `-H Authorization: <api key>` instead of `-b cookies.txt`
|
||||
to `curl` after setting the api key in the configuration of your SeedDMS.
|
||||
Of course, in that case you will not need the initial call of the `login`
|
||||
endpoint.
|
||||
|
||||
The examples often use the `jq` programm for formating the returned
|
||||
json data.
|
||||
|
||||
## Initial test
|
||||
|
||||
The `echo` endpoint does not require any authentication.
|
||||
|
||||
```
|
||||
#!/bin/sh
|
||||
BASEURL="https://your-domain/"
|
||||
|
||||
curl --silent -X GET ${BASEURL}restapi/index.php/echo/test | jq '.'
|
||||
|
||||
```
|
||||
|
||||
## Getting list of users
|
||||
|
||||
```
|
||||
#!/bin/sh
|
||||
BASEURL="https://your-domain/"
|
||||
|
||||
curl --silent -F "user=admin" -F "pass=admin" -b cookies.txt -c cookies.txt ${BASEURL}restapi/index.php/login | jq
|
||||
|
||||
curl --silent -b cookies.txt -X GET "${BASEURL}restapi/index.php/users" | jq '.'
|
||||
```
|
||||
|
||||
## Getting meta data of a folder
|
||||
|
||||
```
|
||||
#!/bin/sh
|
||||
BASEURL="https://your-domain/"
|
||||
|
||||
curl --silent -H "Authorization: <api key>" -X GET "${BASEURL}restapi/index.php/folder/1" | jq '.'
|
||||
```
|
||||
## Notes
|
||||
|
||||
Make sure to encode the data properly when using restapi functions which uses
|
||||
put. If you use curl with PHP, then encode the data as the following
|
||||
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
|
||||
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));
|
||||
|
|
@ -81,6 +81,7 @@ class SeedDMS_AccessOperation {
|
|||
'CategoryChooser',
|
||||
'ChangePassword',
|
||||
'CheckInDocument',
|
||||
'CheckOutDocument',
|
||||
'Clipboard',
|
||||
'Dashboard',
|
||||
'DocumentAccess',
|
||||
|
|
|
@ -48,18 +48,18 @@ class SeedDMS_Auth_Middleware_Session { /* {{{ */
|
|||
*
|
||||
* @return \Psr\Http\Message\ResponseInterface
|
||||
*/
|
||||
public function __invoke($request, $response, $next) {
|
||||
public function __invoke($request, $handler) {
|
||||
// $this->container has the DI
|
||||
$dms = $this->container->dms;
|
||||
$settings = $this->container->config;
|
||||
$logger = $this->container->logger;
|
||||
$dms = $this->container->get('dms');
|
||||
$settings = $this->container->get('config');
|
||||
$logger = $this->container->get('logger');
|
||||
$userobj = null;
|
||||
if ($this->container->has('userobj')) {
|
||||
$userobj = $this->container->userobj;
|
||||
$userobj = $this->container->get('userobj');
|
||||
}
|
||||
|
||||
if ($userobj) {
|
||||
$response = $next($request, $response);
|
||||
$response = $handler->handle($request);
|
||||
return $response;
|
||||
}
|
||||
|
||||
|
@ -100,9 +100,9 @@ class SeedDMS_Auth_Middleware_Session { /* {{{ */
|
|||
} else {
|
||||
return $response->withStatus(403);
|
||||
}
|
||||
$this->container['userobj'] = $userobj;
|
||||
$this->container->set('userobj', $userobj);
|
||||
|
||||
$response = $next($request, $response);
|
||||
$response = $handler->handle($request);
|
||||
return $response;
|
||||
}
|
||||
} /* }}} */
|
||||
|
|
|
@ -33,6 +33,11 @@ class SeedDMS_Calendar {
|
|||
*/
|
||||
protected $db;
|
||||
|
||||
/**
|
||||
* Instanz of user
|
||||
*/
|
||||
protected $user;
|
||||
|
||||
public function __construct($db, $user) { /* {{{ */
|
||||
$this->db = $db;
|
||||
$this->user = $user;
|
||||
|
|
|
@ -75,7 +75,7 @@ class SeedDMS_Controller_Common {
|
|||
if(method_exists($this, $action)) {
|
||||
$refl = new ReflectionMethod($this, $action);
|
||||
if($refl->isPublic())
|
||||
return $this->{$action}();
|
||||
$ret = $this->{$action}();
|
||||
else {
|
||||
echo "Action '".$action."' not public";
|
||||
return false;
|
||||
|
@ -85,11 +85,12 @@ class SeedDMS_Controller_Common {
|
|||
return false;
|
||||
}
|
||||
} else
|
||||
return $this->run();
|
||||
$ret = $this->run();
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
$this->callHook('postRun', get_class($this), $action ? $action : 'run');
|
||||
return $ret;
|
||||
}
|
||||
|
||||
public function setParams($params) {
|
||||
|
|
|
@ -35,7 +35,9 @@ class SeedDMS_ConversionServiceHtmlToText extends SeedDMS_ConversionServiceBase
|
|||
|
||||
public function convert($infile, $target = null, $params = array()) {
|
||||
$d = new DOMDocument;
|
||||
libxml_use_internal_errors(true);
|
||||
$d->loadHTMLFile($infile);
|
||||
libxml_clear_errors();
|
||||
$body = $d->getElementsByTagName('body')->item(0);
|
||||
$str = '';
|
||||
foreach($body->childNodes as $childNode) {
|
||||
|
|
|
@ -94,6 +94,12 @@ class SeedDMS_ConversionServiceImageToImage extends SeedDMS_ConversionServiceBas
|
|||
case 'image/gif':
|
||||
$im = @imagecreatefromgif($infile);
|
||||
break;
|
||||
case 'image/webp':
|
||||
$im = @imagecreatefromwebp($infile);
|
||||
break;
|
||||
case 'image/avif':
|
||||
$im = @imagecreatefromavif($infile);
|
||||
break;
|
||||
}
|
||||
if($im) {
|
||||
$width = imagesx($im);
|
||||
|
|
|
@ -39,12 +39,48 @@ class SeedDMS_Download_Mgr {
|
|||
*/
|
||||
protected $items;
|
||||
|
||||
/**
|
||||
* @var array $folder_items list of folder content items
|
||||
* @access protected
|
||||
*/
|
||||
protected $folder_items;
|
||||
|
||||
/**
|
||||
* @var array $extracols list of arrays with extra columns per item
|
||||
* @access protected
|
||||
*/
|
||||
protected $extracols;
|
||||
|
||||
/**
|
||||
* @var array $folder_extracols list of arrays with extra columns per folder item
|
||||
* @access protected
|
||||
*/
|
||||
protected $folder_extracols;
|
||||
|
||||
/**
|
||||
* @var array $header list of entries in header (first line)
|
||||
* @access protected
|
||||
*/
|
||||
protected $header;
|
||||
|
||||
/**
|
||||
* @var array $folder_header list of entries in header (first line)
|
||||
* @access protected
|
||||
*/
|
||||
protected $folder_header;
|
||||
|
||||
/**
|
||||
* @var array $extraheader list of extra entries in header
|
||||
* @access protected
|
||||
*/
|
||||
protected $extraheader;
|
||||
|
||||
/**
|
||||
* @var array $folder_extraheader list of extra entries in header
|
||||
* @access protected
|
||||
*/
|
||||
protected $folder_extraheader;
|
||||
|
||||
/**
|
||||
* @var array $rawcontents list of content used instead of document content
|
||||
* @access protected
|
||||
|
@ -55,21 +91,50 @@ class SeedDMS_Download_Mgr {
|
|||
* @var array $filenames filename used in archive
|
||||
* @access protected
|
||||
*/
|
||||
protected $filnames;
|
||||
protected $filenames;
|
||||
|
||||
/**
|
||||
* @var boolean $skipdefaultcols skip default columns, will only export extracols
|
||||
* @access protected
|
||||
*/
|
||||
protected $skipdefaultcols;
|
||||
|
||||
function __construct($tmpdir = '') {
|
||||
$this->tmpdir = $tmpdir;
|
||||
$this->items = array();
|
||||
$this->header = array(getMLText('download_header_document_no'), getMLText('download_header_document_name'), getMLText('download_header_filename'), getMLText('download_header_state'), getMLText('download_header_internal_version'), getMLText('download_header_reviewer'), getMLText('download_header_review_date'), getMLText('download_header_review_comment'), getMLText('download_header_review_state'), getMLText('download_header_approver'), getMLText('download_header_approval_date'), getMLText('download_header_approval_comment'), getMLText('download_header_approval_state'));
|
||||
$this->folder_items = array();
|
||||
$this->header = array(getMLText('download_header_document_no'), getMLText('download_header_document_name'), getMLText('download_header_filename'), getMLText('download_header_state'), getMLText('download_header_internal_version'));
|
||||
$this->header[] = getMLText('download_header_reviewer');
|
||||
$this->header[] = getMLText('download_header_review_date');
|
||||
$this->header[] = getMLText('download_header_review_comment');
|
||||
$this->header[] = getMLText('download_header_review_state');
|
||||
$this->header[] = getMLText('download_header_approver');
|
||||
$this->header[] = getMLText('download_header_approval_date');
|
||||
$this->header[] = getMLText('download_header_approval_comment');
|
||||
$this->header[] = getMLText('download_header_approval_state');
|
||||
$this->folder_header = array(getMLText('download_header_folder_no'), getMLText('download_header_folder_name'));
|
||||
$this->extracols = array();
|
||||
$this->folder_extracols = array();
|
||||
$this->rawcontents = array();
|
||||
$this->extraheader = array();
|
||||
$this->folder_extraheader = array();
|
||||
$this->filenames = array();
|
||||
$this->includereviewers = false;
|
||||
$this->includeapprovers = false;
|
||||
}
|
||||
|
||||
public function skipDefaultCols($v) { /* {{{ */
|
||||
$this->skipdefaultcols = (bool) $v;
|
||||
} /* }}} */
|
||||
|
||||
public function addHeader($extraheader) { /* {{{ */
|
||||
$this->extraheader = $extraheader;
|
||||
} /* }}} */
|
||||
|
||||
public function addFolderHeader($extraheader) { /* {{{ */
|
||||
$this->folder_extraheader = $extraheader;
|
||||
} /* }}} */
|
||||
|
||||
public function addItem($item, $extracols=array(), $rawcontent='', $filename='') { /* {{{ */
|
||||
$this->items[$item->getID()] = $item;
|
||||
$this->extracols[$item->getID()] = $extracols;
|
||||
|
@ -77,34 +142,44 @@ class SeedDMS_Download_Mgr {
|
|||
$this->filenames[$item->getID()] = $filename;
|
||||
} /* }}} */
|
||||
|
||||
public function addFolderItem($item, $extracols=array()) { /* {{{ */
|
||||
$this->folder_items[$item->getID()] = $item;
|
||||
$this->folder_extracols[$item->getID()] = $extracols;
|
||||
} /* }}} */
|
||||
|
||||
public function createToc($file) { /* {{{ */
|
||||
$items = $this->items;
|
||||
$objPHPExcel = new PhpOffice\PhpSpreadsheet\Spreadsheet();
|
||||
$objPHPExcel->setValueBinder(new \PhpOffice\PhpSpreadsheet\Cell\AdvancedValueBinder());
|
||||
$objPHPExcel->getProperties()->setCreator("SeedDMS")->setTitle("Metadata");
|
||||
if($items = $this->items) {
|
||||
$sheet = $objPHPExcel->setActiveSheetIndex(0);
|
||||
$sheet->setTitle(getMLText('documents'));
|
||||
|
||||
$i = 1;
|
||||
$col = 0;
|
||||
$col = 1;
|
||||
if(!$this->skipdefaultcols)
|
||||
foreach($this->header as $h)
|
||||
$sheet->setCellValueByColumnAndRow($col++, $i, $h);
|
||||
$sheet->setCellValue([$col++, $i], $h);
|
||||
foreach($this->extraheader as $h)
|
||||
$sheet->setCellValueByColumnAndRow($col++, $i, $h);
|
||||
$sheet->setCellValue([$col++, $i], $h);
|
||||
$i++;
|
||||
foreach($items as $item) {
|
||||
if($item->isType('documentcontent')) {
|
||||
$document = $item->getDocument();
|
||||
$dms = $document->_dms;
|
||||
$status = $item->getStatus();
|
||||
$reviewStatus = $item->getReviewStatus();
|
||||
$approvalStatus = $item->getApprovalStatus();
|
||||
|
||||
$col = 0;
|
||||
$sheet->setCellValueByColumnAndRow($col++, $i, $document->getID());
|
||||
$sheet->setCellValueByColumnAndRow($col++, $i, $document->getName());
|
||||
$sheet->setCellValueByColumnAndRow($col++, $i, $document->getID()."-".$item->getOriginalFileName());
|
||||
$sheet->setCellValueByColumnAndRow($col++, $i, getOverallStatusText($status['status']));
|
||||
$sheet->setCellValueByColumnAndRow($col++, $i, $item->getVersion());
|
||||
$l = $i;
|
||||
$k = $i;
|
||||
$col = 1;
|
||||
$l = $i; // Number of reviewers
|
||||
$k = $i; // Number of approvers
|
||||
if(!$this->skipdefaultcols) {
|
||||
$sheet->setCellValue([$col++, $i], $document->getID());
|
||||
$sheet->setCellValue([$col++, $i], $document->getName());
|
||||
$sheet->setCellValue([$col++, $i], $document->getID()."-".$item->getOriginalFileName());
|
||||
$sheet->setCellValue([$col++, $i], getOverallStatusText($status['status']));
|
||||
$sheet->setCellValue([$col++, $i], $item->getVersion());
|
||||
if($reviewStatus) {
|
||||
foreach ($reviewStatus as $r) {
|
||||
switch ($r["type"]) {
|
||||
|
@ -126,11 +201,11 @@ class SeedDMS_Download_Mgr {
|
|||
break;
|
||||
}
|
||||
$tcol = $col;
|
||||
$sheet->setCellValueByColumnAndRow($tcol++, $l, $reqName);
|
||||
$sheet->setCellValueByColumnAndRow($tcol, $l, ($r['status']==1 || $r['status']==-1) ? \PhpOffice\PhpSpreadsheet\Shared\Date::PHPToExcel(new DateTime($r['date'])) : null);
|
||||
$sheet->getStyleByColumnAndRow($tcol++, $l)->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_DATETIME);
|
||||
$sheet->setCellValueByColumnAndRow($tcol++, $l, $r['comment']);
|
||||
$sheet->setCellValueByColumnAndRow($tcol++, $l, getReviewStatusText($r["status"]));
|
||||
$sheet->setCellValue([$tcol++, $l], $reqName);
|
||||
$sheet->setCellValue([$tcol, $l], ($r['status']==1 || $r['status']==-1) ? \PhpOffice\PhpSpreadsheet\Shared\Date::PHPToExcel(new DateTime($r['date'])) : null);
|
||||
$sheet->getStyle([$tcol++, $l])->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_DATETIME);
|
||||
$sheet->setCellValue([$tcol++, $l], $r['comment']);
|
||||
$sheet->setCellValue([$tcol++, $l], getReviewStatusText($r["status"]));
|
||||
$l++;
|
||||
}
|
||||
$l--;
|
||||
|
@ -157,23 +232,61 @@ class SeedDMS_Download_Mgr {
|
|||
break;
|
||||
}
|
||||
$tcol = $col;
|
||||
$sheet->setCellValueByColumnAndRow($tcol++, $k, $reqName);
|
||||
$sheet->setCellValueByColumnAndRow($tcol, $k, ($r['status']==1 || $r['status']==-1) ? \PhpOffice\PhpSpreadsheet\Shared\Date::PHPToExcel(new DateTime($r['date'])) : null);
|
||||
$sheet->getStyleByColumnAndRow($tcol++, $k)->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_DATETIME);
|
||||
$sheet->setCellValueByColumnAndRow($tcol++, $k, $r['comment']);
|
||||
$sheet->setCellValueByColumnAndRow($tcol++, $k, getApprovalStatusText($r["status"]));
|
||||
$sheet->setCellValue([$tcol++, $k], $reqName);
|
||||
$sheet->setCellValue([$tcol, $k], ($r['status']==1 || $r['status']==-1) ? \PhpOffice\PhpSpreadsheet\Shared\Date::PHPToExcel(new DateTime($r['date'])) : null);
|
||||
$sheet->getStyle([$tcol++, $k])->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_DATETIME);
|
||||
$sheet->setCellValue([$tcol++, $k], $r['comment']);
|
||||
$sheet->setCellValue([$tcol++, $k], getApprovalStatusText($r["status"]));
|
||||
$k++;
|
||||
}
|
||||
$k--;
|
||||
}
|
||||
$col += 4;
|
||||
}
|
||||
if(isset($this->extracols[$item->getID()]) && $this->extracols[$item->getID()]) {
|
||||
foreach($this->extracols[$item->getID()] as $column)
|
||||
$sheet->setCellValueByColumnAndRow($col++, $i, is_array($column) ? implode("\n", $column) : $column );
|
||||
$sheet->setCellValue([$col++, $i], is_array($column) ? implode("\n", $column) : $column );
|
||||
}
|
||||
$i = max($l, $k);
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if($items = $this->folder_items) {
|
||||
if($this->items)
|
||||
$sheet = $objPHPExcel->createSheet($i);
|
||||
else
|
||||
$sheet = $objPHPExcel->setActiveSheetIndex(0);
|
||||
$sheet->setTitle(getMLText('folders'));
|
||||
|
||||
$i = 1;
|
||||
$col = 1;
|
||||
if(!$this->skipdefaultcols)
|
||||
foreach($this->folder_header as $h)
|
||||
$sheet->setCellValue([$col++, $i], $h);
|
||||
foreach($this->folder_extraheader as $h)
|
||||
$sheet->setCellValue([$col++, $i], $h);
|
||||
$i++;
|
||||
$items = $this->folder_items;
|
||||
foreach($items as $item) {
|
||||
if($item->isType('folder')) {
|
||||
$folder = $item;
|
||||
$dms = $folder->_dms;
|
||||
|
||||
$col = 1;
|
||||
if(!$this->skipdefaultcols) {
|
||||
$sheet->setCellValue([$col++, $i], $folder->getID());
|
||||
$sheet->setCellValue([$col++, $i], $folder->getName());
|
||||
}
|
||||
if(isset($this->folder_extracols[$item->getID()]) && $this->folder_extracols[$item->getID()]) {
|
||||
foreach($this->folder_extracols[$item->getID()] as $column)
|
||||
$sheet->setCellValue([$col++, $i], is_array($column) ? implode("\n", $column) : $column );
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$objWriter = new PhpOffice\PhpSpreadsheet\Writer\Xlsx($objPHPExcel);
|
||||
$objWriter->save($file);
|
||||
|
|
|
@ -46,6 +46,8 @@ class SeedDMS_EmailNotify extends SeedDMS_Notify {
|
|||
|
||||
protected $from_address;
|
||||
|
||||
protected $force_from;
|
||||
|
||||
protected $lazy_ssl;
|
||||
|
||||
protected $debug;
|
||||
|
@ -203,7 +205,7 @@ class SeedDMS_EmailNotify extends SeedDMS_Notify {
|
|||
if($returnpath)
|
||||
$headers['Return-Path'] = $returnpath;
|
||||
$headers['To'] = $to;
|
||||
$preferences = array("input-charset" => "UTF-8", "output-charset" => "UTF-8");
|
||||
$preferences = array("input-charset" => "UTF-8", "output-charset" => "UTF-8", "scheme"=>"Q");
|
||||
$encoded_subject = iconv_mime_encode("Subject", getMLText($subject, $params, null, $lang), $preferences);
|
||||
$headers['Subject'] = substr($encoded_subject, strlen('Subject: '));
|
||||
$headers['Date'] = date('r', time());
|
||||
|
|
|
@ -210,13 +210,19 @@ class SeedDMS_Extension_Mgr {
|
|||
$fp = @fopen(self::getExtensionsConfFile(), "w");
|
||||
if($fp) {
|
||||
if($extensions) {
|
||||
$EXT_CONF = [];
|
||||
foreach($extensions as $_ext) {
|
||||
if(file_exists($this->extdir . "/" . $_ext . "/conf.php")) {
|
||||
$content = file_get_contents($this->extdir . "/" . $_ext . "/conf.php");
|
||||
fwrite($fp, $content);
|
||||
include $this->extdir . "/" . $_ext . "/conf.php";
|
||||
// $content = file_get_contents($this->extdir . "/" . $_ext . "/conf.php");
|
||||
// fwrite($fp, $content);
|
||||
}
|
||||
}
|
||||
}
|
||||
// fclose($fp);
|
||||
// $fp = @fopen(self::getExtensionsConfFile(), "w");
|
||||
fwrite($fp, '<?php
|
||||
$EXT_CONF = '.var_export($EXT_CONF, true).';');
|
||||
fclose($fp);
|
||||
return true;
|
||||
} else {
|
||||
|
@ -406,7 +412,7 @@ class SeedDMS_Extension_Mgr {
|
|||
*/
|
||||
public function checkExtensionByName($extname, $extconf, $options=array()) { /* {{{ */
|
||||
if(isset($this->configcache[$extname])) {
|
||||
return $this->configcache[$extname];
|
||||
// return $this->configcache[$extname];
|
||||
}
|
||||
|
||||
$this->errmsgs = array();
|
||||
|
@ -494,19 +500,6 @@ class SeedDMS_Extension_Mgr {
|
|||
return $this->configcache[$extname];
|
||||
} /* }}} */
|
||||
|
||||
static protected function rrmdir($dir) { /* {{{ */
|
||||
if (is_dir($dir)) {
|
||||
$objects = scandir($dir);
|
||||
foreach ($objects as $object) {
|
||||
if ($object != "." && $object != "..") {
|
||||
if (filetype($dir."/".$object) == "dir") self::rrmdir($dir."/".$object); else unlink($dir."/".$object);
|
||||
}
|
||||
}
|
||||
reset($objects);
|
||||
rmdir($dir);
|
||||
}
|
||||
} /* }}} */
|
||||
|
||||
/**
|
||||
* Update an extension
|
||||
*
|
||||
|
@ -522,7 +515,7 @@ class SeedDMS_Extension_Mgr {
|
|||
$newdir = addDirSep($this->cachedir)."ext.new";
|
||||
/* First remove a left over from a previous extension */
|
||||
if(file_exists($newdir)) {
|
||||
self::rrmdir($newdir);
|
||||
SeedDMS_Utils::rrmdir($newdir);
|
||||
}
|
||||
if(!mkdir($newdir, 0755)) {
|
||||
$this->errmsgs[] = "Cannot create temp. extension directory";
|
||||
|
@ -542,7 +535,7 @@ class SeedDMS_Extension_Mgr {
|
|||
|
||||
/* Check if extension is complete and fullfills the constraints */
|
||||
if(!self::checkExtensionByDir($newdir)) {
|
||||
self::rrmdir($newdir);
|
||||
SeedDMS_Utils::rrmdir($newdir);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -553,11 +546,11 @@ class SeedDMS_Extension_Mgr {
|
|||
if(!is_dir($this->extdir)) {
|
||||
if(!mkdir($this->extdir, 0755)) {
|
||||
$this->errmsgs[] = "Cannot create extension directory";
|
||||
self::rrmdir($newdir);
|
||||
SeedDMS_Utils::rrmdir($newdir);
|
||||
return false;
|
||||
}
|
||||
} elseif(is_dir($this->extdir ."/". $extname)) {
|
||||
$this->rrmdir($this->extdir ."/". $extname);
|
||||
SeedDMS_Utils::rrmdir($this->extdir ."/". $extname);
|
||||
}
|
||||
/* Move the temp. created ext directory to the final location */
|
||||
/* rename() may fail if dirs are moved from one device to another.
|
||||
|
@ -579,7 +572,7 @@ class SeedDMS_Extension_Mgr {
|
|||
* has been copied.
|
||||
*/
|
||||
$this->errmsgs[] = "Cannot move temp. extension directory to final destination";
|
||||
$this->rrmdir($this->extdir ."/". $extname);
|
||||
SeedDMS_Utils::rrmdir($this->extdir ."/". $extname);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -209,7 +209,7 @@ class SeedDMS_FulltextService {
|
|||
if($this->index)
|
||||
return $this->index;
|
||||
|
||||
if($this->services[0]) {
|
||||
if($this->services) {
|
||||
if($recreate)
|
||||
$this->index = $this->services[0]['Indexer']::create($this->services[0]['Conf']);
|
||||
else
|
||||
|
@ -222,7 +222,7 @@ class SeedDMS_FulltextService {
|
|||
public function Search() { /* {{{ */
|
||||
if($this->search)
|
||||
return $this->search;
|
||||
if($this->services[0]) {
|
||||
if($this->services) {
|
||||
$this->search = new $this->services[0]['Search']($this->index);
|
||||
return $this->search;
|
||||
} else {
|
||||
|
|
|
@ -29,12 +29,12 @@ class SeedDMS_LdapAuthentication extends SeedDMS_Authentication {
|
|||
var $settings;
|
||||
|
||||
protected function addUser($username, $info) {
|
||||
$mailfield = !empty($settings->_ldapMailField) ? $settings->_ldapMailField : 'mail';
|
||||
$mailfield = !empty($this->settings->_ldapMailField) ? $this->settings->_ldapMailField : 'mail';
|
||||
return $this->dms->addUser($username, null, $info['cn'][0], isset($info[$mailfield]) ? $info[$mailfield][0] : '', $this->settings->_language, $this->settings->_theme, "User was added from LDAP");
|
||||
}
|
||||
|
||||
protected function updateUser($user, $info) {
|
||||
$mailfield = !empty($settings->_ldapMailField) ? $settings->_ldapMailField : 'mail';
|
||||
$mailfield = !empty($this->settings->_ldapMailField) ? $this->settings->_ldapMailField : 'mail';
|
||||
if(isset($info['cn'][0]) && ($info['cn'][0] != $user->getFullName())) {
|
||||
$user->setFullName($info['cn'][0]);
|
||||
}
|
||||
|
|
|
@ -573,7 +573,7 @@ class SeedDMS_NotificationService {
|
|||
* the currently logged in user is not the
|
||||
* owner and the owner is not already in the list of notifiers.
|
||||
*/
|
||||
if($user->getID() != $content->getUser()->getID() && $content->getUser()->getID() != $document->getOwner()->getID() && false === SeedDMS_Core_DMS::inList($content->getUser(), $nl['users']))
|
||||
if($user->getID() != $content->getUser()->getID() && $content->getUser()->getID() != $document->getOwner()->getID() && false === SeedDMS_Core_DMS::inList($content->getUser(), $notifyList['users']))
|
||||
$this->toIndividual($user, $content->getUser(), $subject, $message, $params, SeedDMS_NotificationService::RECV_UPLOADER);
|
||||
} /* }}} */
|
||||
|
||||
|
@ -1471,6 +1471,35 @@ class SeedDMS_NotificationService {
|
|||
$this->toGroup($user, $recipient, $subject, $message, $params, SeedDMS_NotificationService::RECV_RECIPIENT);
|
||||
} /* }}} */
|
||||
|
||||
/**
|
||||
* Send a request receipt notification to all recipients of the document content
|
||||
*
|
||||
* This method can be called when the status of a document content changes
|
||||
* to 'released'. The recipients haven't been informed when the
|
||||
* document content was created but not immediatly released.
|
||||
*/
|
||||
public function sendToAllReceiptMail($content, $user) { /* {{{ */
|
||||
$dms = $content->getDMS();
|
||||
|
||||
$receiptStatus = $content->getReceiptStatus();
|
||||
if (!empty($receiptStatus)) {
|
||||
foreach ($receiptStatus as $r) {
|
||||
if($r['status'] == 0) {
|
||||
switch ($r["type"]) {
|
||||
case 0: // Recipient is an individual.
|
||||
if($recipient = $dms->getUser($r["required"]))
|
||||
$this->sendAddReceiptMail($content, $user, $recipient);
|
||||
break;
|
||||
case 1: // Recipient is a group.
|
||||
if($recipient = $dms->getGroup($r["required"]))
|
||||
$this->sendAddReceiptMail($content, $user, $recipient);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} /* }}} */
|
||||
|
||||
public function sendChangedDocumentOwnerMail($document, $user, $oldowner) { /* {{{ */
|
||||
if($oldowner->getID() != $document->getOwner()->getID()) {
|
||||
$notifyList = $document->getNotifyList();
|
||||
|
|
|
@ -286,6 +286,24 @@ class SeedDMS_Session {
|
|||
return (array) $this->data['clipboard'];
|
||||
} /* }}} */
|
||||
|
||||
/**
|
||||
* Check if object is on clipboard
|
||||
*
|
||||
* @param object $object Document or folder
|
||||
*/
|
||||
function isOnClipboard($object) { /* {{{ */
|
||||
/* id is only set if load() was called before */
|
||||
if($this->id) {
|
||||
$dms = $object->getDMS();
|
||||
if($object->isType('document')) {
|
||||
return in_array($object->getID(), $this->data['clipboard']['docs']);
|
||||
} elseif($object->isType('folder')) {
|
||||
return in_array($object->getID(), $this->data['clipboard']['folders']);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
} /* }}} */
|
||||
|
||||
/**
|
||||
* Add to clipboard of session
|
||||
*
|
||||
|
|
|
@ -152,6 +152,8 @@ class Settings { /* {{{ */
|
|||
var $_batchOperations = array(); // or 'all', 'change_owner', etc.
|
||||
// jump straight to the document if it is the only hit of a search
|
||||
var $_showSingleSearchHit = true;
|
||||
// enable/disable use of memcached
|
||||
var $_enableMemcached = false;
|
||||
// contentOffsetDirTo
|
||||
var $_contentOffsetDir = "1048576";
|
||||
// Maximum number of sub-directories per parent directory
|
||||
|
@ -265,8 +267,10 @@ class Settings { /* {{{ */
|
|||
var $_allowChangeRevAppInProcess = false;
|
||||
// enable/disable log system
|
||||
var $_logFileEnable = true;
|
||||
// enable/disable log system
|
||||
// max log level
|
||||
var $_logFileMaxLevel = 6; // PEAR_LOG_INFO
|
||||
// max log level for restapi
|
||||
var $_logFileRestApiMaxLevel = 6; // PEAR_LOG_INFO
|
||||
// the log file rotation
|
||||
var $_logFileRotation = "d";
|
||||
// Enable file upload by fine-uploader (was 'jumploader')
|
||||
|
@ -321,6 +325,8 @@ class Settings { /* {{{ */
|
|||
var $_maxRecursiveCount = 10000;
|
||||
// number of days in the past of the dashboard
|
||||
var $_daysPastDashboard = 7;
|
||||
// list of folders not considered for dashboard
|
||||
var $_excludeFoldersDashboard = [];
|
||||
// enable/disable help
|
||||
var $_enableHelp = true;
|
||||
// enable/disable language selection menu
|
||||
|
@ -388,6 +394,10 @@ class Settings { /* {{{ */
|
|||
var $_smtpPort = null;
|
||||
// SMTP : send from
|
||||
var $_smtpSendFrom = null;
|
||||
// SMTP : force send from
|
||||
var $_smtpForceFrom = false;
|
||||
// SMTP : allow self signed certificates
|
||||
var $_smtpLazySSL = false;
|
||||
// SMTP : user
|
||||
var $_smtpUser = null;
|
||||
// SMTP : password
|
||||
|
@ -504,7 +514,7 @@ class Settings { /* {{{ */
|
|||
*
|
||||
*/
|
||||
function stringToArray($value) { /* {{{ */
|
||||
return explode(";", $Value);
|
||||
return explode(";", $value);
|
||||
} /* }}} */
|
||||
|
||||
/**
|
||||
|
@ -622,6 +632,8 @@ class Settings { /* {{{ */
|
|||
$this->_enableRecursiveCount = Settings::boolVal($tab["enableRecursiveCount"]);
|
||||
$this->_maxRecursiveCount = intval($tab["maxRecursiveCount"]);
|
||||
$this->_daysPastDashboard = intval($tab["daysPastDashboard"]);
|
||||
if(trim(strval($tab["excludeFoldersDashboard"])))
|
||||
$this->_excludeFoldersDashboard = explode(',',strval($tab["excludeFoldersDashboard"]));
|
||||
$this->_enableHelp = Settings::boolVal($tab["enableHelp"]);
|
||||
$this->_enableLanguageSelector = Settings::boolVal($tab["enableLanguageSelector"]);
|
||||
$this->_enableThemeSelector = Settings::boolVal($tab["enableThemeSelector"]);
|
||||
|
@ -690,11 +702,13 @@ class Settings { /* {{{ */
|
|||
$this->_proxyPassword = strval($tab["proxyPassword"]);
|
||||
$this->_logFileEnable = Settings::boolVal($tab["logFileEnable"]);
|
||||
$this->_logFileMaxLevel = strval($tab["logFileMaxLevel"]);
|
||||
$this->_logFileRestApiMaxLevel = strval($tab["logFileRestApiMaxLevel"]);
|
||||
$this->_logFileRotation = strval($tab["logFileRotation"]);
|
||||
$this->_enableLargeFileUpload = Settings::boolVal($tab["enableLargeFileUpload"]);
|
||||
$this->_partitionSize = strval($tab["partitionSize"]);
|
||||
$this->_maxUploadSize = strval($tab["maxUploadSize"]);
|
||||
$this->_enableXsendfile = Settings::boolVal($tab["enableXsendfile"]);
|
||||
$this->_enableMemcached = Settings::boolVal($tab["enableMemcached"]);
|
||||
|
||||
// XML Path: /configuration/system/authentication
|
||||
$node = $xml->xpath('/configuration/system/authentication');
|
||||
|
@ -1000,6 +1014,8 @@ class Settings { /* {{{ */
|
|||
if (is_null($configFilePath))
|
||||
$configFilePath = $this->_configFilePath;
|
||||
|
||||
// copy($configFilePath, $configFilePath.'.'.time());
|
||||
|
||||
// Load
|
||||
$xml = simplexml_load_string(file_get_contents($configFilePath));
|
||||
$this->getXMLNode($xml, '/', 'configuration');
|
||||
|
@ -1052,6 +1068,7 @@ class Settings { /* {{{ */
|
|||
$this->setXMLAttributValue($node, "enableRecursiveCount", $this->_enableRecursiveCount);
|
||||
$this->setXMLAttributValue($node, "maxRecursiveCount", $this->_maxRecursiveCount);
|
||||
$this->setXMLAttributValue($node, "daysPastDashboard", $this->_daysPastDashboard);
|
||||
$this->setXMLAttributValue($node, "excludeFoldersDashboard", implode(',', $this->_excludeFoldersDashboard));
|
||||
$this->setXMLAttributValue($node, "enableHelp", $this->_enableHelp);
|
||||
$this->setXMLAttributValue($node, "enableLanguageSelector", $this->_enableLanguageSelector);
|
||||
$this->setXMLAttributValue($node, "enableThemeSelector", $this->_enableThemeSelector);
|
||||
|
@ -1106,11 +1123,13 @@ class Settings { /* {{{ */
|
|||
$this->setXMLAttributValue($node, "proxyPassword", $this->_proxyPassword);
|
||||
$this->setXMLAttributValue($node, "logFileEnable", $this->_logFileEnable);
|
||||
$this->setXMLAttributValue($node, "logFileMaxLevel", $this->_logFileMaxLevel);
|
||||
$this->setXMLAttributValue($node, "logFileRestApiMaxLevel", $this->_logFileRestApiMaxLevel);
|
||||
$this->setXMLAttributValue($node, "logFileRotation", $this->_logFileRotation);
|
||||
$this->setXMLAttributValue($node, "enableLargeFileUpload", $this->_enableLargeFileUpload);
|
||||
$this->setXMLAttributValue($node, "partitionSize", $this->_partitionSize);
|
||||
$this->setXMLAttributValue($node, "maxUploadSize", $this->_maxUploadSize);
|
||||
$this->setXMLAttributValue($node, "enableXsendfile", $this->_enableXsendfile);
|
||||
$this->setXMLAttributValue($node, "enableMemcached", $this->_enableMemcached);
|
||||
|
||||
// XML Path: /configuration/system/authentication
|
||||
$node = $this->getXMLNode($xml, '/configuration/system', 'authentication');
|
||||
|
|
|
@ -45,8 +45,8 @@ class UI extends UI_Default {
|
|||
* @param array $params parameter passed to constructor of view class
|
||||
* @return object an object of a class implementing the view
|
||||
*/
|
||||
static function factory($theme, $class='', $params=array()) { /* {{{ */
|
||||
global $settings, $dms, $user, $session, $extMgr, $request, $logger, $notifier;
|
||||
static public function factory($theme, $class='', $params=array()) { /* {{{ */
|
||||
global $settings, $dms, $user, $session, $extMgr, $request, $logger, $notifier, $fulltextservice;
|
||||
if(!$class) {
|
||||
$class = 'Bootstrap';
|
||||
$class = 'Style';
|
||||
|
@ -138,6 +138,7 @@ class UI extends UI_Default {
|
|||
$view->setParam('request', $request);
|
||||
$view->setParam('logger', $logger);
|
||||
$view->setParam('notifier', $notifier);
|
||||
$view->setParam('fulltextservice', $fulltextservice);
|
||||
// $view->setParam('settings', $settings);
|
||||
$view->setParam('sitename', $settings->_siteName);
|
||||
$view->setParam('rootfolderid', $settings->_rootFolderID);
|
||||
|
@ -179,7 +180,7 @@ class UI extends UI_Default {
|
|||
return null;
|
||||
} /* }}} */
|
||||
|
||||
static function getStyles() { /* {{{ */
|
||||
static public function getStyles() { /* {{{ */
|
||||
global $settings;
|
||||
|
||||
$themes = array();
|
||||
|
@ -196,7 +197,7 @@ class UI extends UI_Default {
|
|||
return $themes;
|
||||
} /* }}} */
|
||||
|
||||
static function exitError($pagetitle, $error, $noexit=false, $plain=false) {
|
||||
static public function exitError($pagetitle, $error, $noexit=false, $plain=false) {
|
||||
global $theme, $dms, $user, $settings;
|
||||
$view = UI::factory($theme, 'ErrorDlg');
|
||||
$request = $view->getParam('request');
|
||||
|
|
|
@ -63,6 +63,8 @@ if (extension_loaded('gd') || extension_loaded('imagick')) {
|
|||
$conversionmgr->addService(new SeedDMS_ConversionServiceImageToImage('image/png', 'image/png'))->setLogger($logger);
|
||||
$conversionmgr->addService(new SeedDMS_ConversionServiceImageToImage('image/jpg', 'image/png'))->setLogger($logger);
|
||||
$conversionmgr->addService(new SeedDMS_ConversionServiceImageToImage('image/gif', 'image/png'))->setLogger($logger);
|
||||
$conversionmgr->addService(new SeedDMS_ConversionServiceImageToImage('image/webp', 'image/png'))->setLogger($logger);
|
||||
$conversionmgr->addService(new SeedDMS_ConversionServiceImageToImage('image/avif', 'image/png'))->setLogger($logger);
|
||||
}
|
||||
|
||||
if (extension_loaded('imagick')) {
|
||||
|
|
|
@ -56,7 +56,7 @@ if(isset($GLOBALS['SEEDDMS_HOOKS']['initStorage'])) {
|
|||
|
||||
$dms = new SeedDMS_Core_DMS($db, $storage ? $storage : $settings->_contentDir.$settings->_contentOffsetDir);
|
||||
|
||||
if(extension_loaded('memcached')) {
|
||||
if($settings->_enableMemcached && extension_loaded('memcached')) {
|
||||
$memcache = new Memcached('seeddms');
|
||||
$memcache->addServers(array(
|
||||
array('localhost',11211),
|
||||
|
|
|
@ -32,6 +32,10 @@
|
|||
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
||||
/* Actually not needed anymore, but some old extension may still use
|
||||
* S_RELEASED, S_REJECTED, etc. from SeedDMS_Core_Document. So we keep
|
||||
* it for a while. Should be removed von 6.0.31 and 5.1.38 is released.
|
||||
*/
|
||||
if (!empty($settings->_coreDir)) {
|
||||
require_once $settings->_coreDir . '/Core.php';
|
||||
} else {
|
||||
|
|
|
@ -53,11 +53,12 @@ class SeedDMS_ExpiredDocumentsTask extends SeedDMS_SchedulerTaskBase { /* {{{ */
|
|||
$params['count'] = count($docs);
|
||||
$params['__body__'] = $body;
|
||||
$params['__body_html__'] = $bodyhtml;
|
||||
$params['__skip_footer__'] = true;
|
||||
$params['sitename'] = $settings->_siteName;
|
||||
$email->toIndividual('', $u, 'expired_docs_mail_subject', '', $params);
|
||||
$logger->log('Task \'expired_docs\': Sending reminder \'expired_docs_mail_subject\' to user \''.$u->getLogin().'\'', PEAR_LOG_INFO);
|
||||
$logger->log('Task \'expired_docs\': Sending reminder \'expired_docs_mail_subject\' to user \''.$u->getLogin().'\' ('.(count($docs)).' documents)', PEAR_LOG_INFO);
|
||||
} else {
|
||||
$logger->log('Task \'expired_docs\': Dry run, not sending reminder \'expired_docs_mail_subject\' to user \''.$u->getLogin().'\'', PEAR_LOG_INFO);
|
||||
$logger->log('Task \'expired_docs\': Dry run, not sending reminder \'expired_docs_mail_subject\' to user \''.$u->getLogin().'\' ('.(count($docs)).' documents)', PEAR_LOG_INFO);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -79,12 +80,13 @@ class SeedDMS_ExpiredDocumentsTask extends SeedDMS_SchedulerTaskBase { /* {{{ */
|
|||
$params['count'] = count($docs);
|
||||
$params['__body__'] = $body;
|
||||
$params['__body_html__'] = $bodyhtml;
|
||||
$params['__skip_footer__'] = true;
|
||||
$params['sitename'] = $settings->_siteName;
|
||||
$email->toIndividual('', $taskparams['email'], 'expired_docs_mail_subject', '', $params);
|
||||
|
||||
$logger->log('Task \'expired_docs\': Sending reminder \'expired_docs_mail_subject\' to user \''.$taskparams['email'].'\'', PEAR_LOG_INFO);
|
||||
$logger->log('Task \'expired_docs\': Sending reminder \'expired_docs_mail_subject\' to user \''.$taskparams['email'].'\' ('.(count($docs)).' documents)', PEAR_LOG_INFO);
|
||||
} else {
|
||||
$logger->log('Task \'expired_docs\': Dry run, not sending reminder \'expired_docs_mail_subject\' to user \''.$taskparams['email'].'\'', PEAR_LOG_INFO);
|
||||
$logger->log('Task \'expired_docs\': Dry run, not sending reminder \'expired_docs_mail_subject\' to user \''.$taskparams['email'].'\' ('.(count($docs)).' documents)', PEAR_LOG_INFO);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
@ -613,6 +615,7 @@ class SeedDMS_CalendarTask extends SeedDMS_SchedulerTaskBase { /* {{{ */
|
|||
$params['count'] = count($events);
|
||||
$params['__body__'] = $body;
|
||||
$params['__body_html__'] = $bodyhtml;
|
||||
$params['__skip_footer__'] = true;
|
||||
$params['sitename'] = $settings->_siteName;
|
||||
$email->toIndividual('', $auser, 'calendar_events_mail_subject', '', $params);
|
||||
|
||||
|
@ -714,6 +717,7 @@ class SeedDMS_StatisticTask extends SeedDMS_SchedulerTaskBase { /* {{{ */
|
|||
$params = array();
|
||||
$params['__body__'] = $body;
|
||||
$params['__body_html__'] = $bodyhtml;
|
||||
$params['__skip_footer__'] = true;
|
||||
$params['sitename'] = $settings->_siteName;
|
||||
$email->toIndividual('', $auser, 'statistics_mail_subject', '', $params);
|
||||
|
||||
|
@ -813,6 +817,7 @@ class SeedDMS_RecentChangesTask extends SeedDMS_SchedulerTaskBase { /* {{{ */
|
|||
|
||||
$params['__body__'] = $body;
|
||||
$params['__body_html__'] = $bodyhtml;
|
||||
$params['__skip_footer__'] = true;
|
||||
$params['sitename'] = $settings->_siteName;
|
||||
$email->toIndividual('', $u, 'recentchanges_mail_subject', '', $params);
|
||||
|
||||
|
|
|
@ -1100,6 +1100,8 @@ function getMandatoryReviewers($folder, $document, $user) { /* {{{ */
|
|||
foreach($groups as $group) {
|
||||
$managers = $group->getManagers();
|
||||
foreach($managers as $manager) {
|
||||
/* Do not add myself, if I'm the manager of the group */
|
||||
if($manager->getId() != $user->getId())
|
||||
$revi[] = $manager->getId();
|
||||
}
|
||||
}
|
||||
|
@ -1195,6 +1197,8 @@ function getMandatoryApprovers($folder, $document, $user) { /* {{{ */
|
|||
foreach($groups as $group) {
|
||||
$managers = $group->getManagers();
|
||||
foreach($managers as $manager) {
|
||||
/* Do not add myself, if I'm the manager of the group */
|
||||
if($manager->getId() != $user->getId())
|
||||
$appi[] = $manager->getId();
|
||||
}
|
||||
}
|
||||
|
@ -1256,6 +1260,34 @@ function getMandatoryApprovers($folder, $document, $user) { /* {{{ */
|
|||
return $approvers;
|
||||
} /* }}} */
|
||||
|
||||
/**
|
||||
* Class with various utility methods
|
||||
*
|
||||
* This class will sooner or later comprise the functions above
|
||||
*
|
||||
*/
|
||||
class SeedDMS_Utils { /* {{{ */
|
||||
|
||||
/**
|
||||
* Recursively remove a directory on disc
|
||||
*
|
||||
* @param string $dir name of directory
|
||||
*/
|
||||
static public function rrmdir($dir) { /* {{{ */
|
||||
if (is_dir($dir)) {
|
||||
$objects = scandir($dir);
|
||||
foreach ($objects as $object) {
|
||||
if ($object != "." && $object != "..") {
|
||||
if (filetype($dir."/".$object) == "dir") self::rrmdir($dir."/".$object); else unlink($dir."/".$object);
|
||||
}
|
||||
}
|
||||
reset($objects);
|
||||
rmdir($dir);
|
||||
}
|
||||
} /* }}} */
|
||||
|
||||
} /* }}} */
|
||||
|
||||
/**
|
||||
* Class for creating encrypted api keys
|
||||
*
|
||||
|
@ -1388,3 +1420,659 @@ class SeedDMS_FolderTree { /* {{{ */
|
|||
} /* }}} */
|
||||
|
||||
} /* }}} */
|
||||
|
||||
class SeedDMS_Search { /* {{{ */
|
||||
protected $dms;
|
||||
|
||||
protected $user;
|
||||
|
||||
protected $fulltextservice;
|
||||
|
||||
protected $settings;
|
||||
|
||||
public $searchparams;
|
||||
|
||||
protected $dcount;
|
||||
|
||||
protected $fcount;
|
||||
|
||||
protected $totalPages;
|
||||
|
||||
protected $entries;
|
||||
|
||||
protected $terms;
|
||||
|
||||
protected $searchTime;
|
||||
|
||||
public function __construct($dms, $user, $fulltextservice, $settings) {
|
||||
$this->dms = $dms;
|
||||
$this->user = $user;
|
||||
$this->fulltextservice = $fulltextservice;
|
||||
$this->settings = $settings;
|
||||
$this->searchparams = [];
|
||||
$this->dcount = 0;
|
||||
$this->fcount = 0;
|
||||
$this->totalPages = 0;
|
||||
$this->entries = array();
|
||||
$this->terms = array();
|
||||
$this->searchTime = 0;
|
||||
}
|
||||
|
||||
protected function getTime() { /* {{{ */
|
||||
if (function_exists('microtime')) {
|
||||
$tm = microtime();
|
||||
$tm = explode(' ', $tm);
|
||||
return (float) sprintf('%f', $tm[1] + $tm[0]);
|
||||
}
|
||||
return time();
|
||||
} /* }}} */
|
||||
|
||||
public function createSearchFromQuery($get) { /* {{{ */
|
||||
$dms = $this->dms;
|
||||
|
||||
/* Creation date {{{ */
|
||||
$createstartts = null;
|
||||
$createstartdate = null;
|
||||
$createendts = null;
|
||||
$createenddate = null;
|
||||
$created['from'] = null;
|
||||
$created['to'] = null;
|
||||
if(!empty($get["created"]["from"])) {
|
||||
$createstartts = makeTsFromDate($get["created"]["from"]);
|
||||
$createstartdate = array('year'=>(int)date('Y', $createstartts), 'month'=>(int)date('m', $createstartts), 'day'=>(int)date('d', $createstartts), 'hour'=>0, 'minute'=>0, 'second'=>0);
|
||||
if (!checkdate($createstartdate['month'], $createstartdate['day'], $createstartdate['year'])) {
|
||||
UI::exitError(getMLText("search"),getMLText("invalid_create_date_end"));
|
||||
}
|
||||
$created['from'] = $createstartts;
|
||||
}
|
||||
if(!empty($get["created"]["to"])) {
|
||||
$createendts = makeTsFromDate($get["created"]["to"]);
|
||||
$createenddate = array('year'=>(int)date('Y', $createendts), 'month'=>(int)date('m', $createendts), 'day'=>(int)date('d', $createendts), 'hour'=>23, 'minute'=>59, 'second'=>59);
|
||||
if (!checkdate($createenddate['month'], $createenddate['day'], $createenddate['year'])) {
|
||||
UI::exitError(getMLText("search"),getMLText("invalid_create_date_end"));
|
||||
}
|
||||
$created['to'] = $createendts;
|
||||
}
|
||||
$this->searchparams['created'] = $created;
|
||||
/* }}} */
|
||||
|
||||
/* Modification date {{{ */
|
||||
$modifystartts = null;
|
||||
$modifystartdate = null;
|
||||
$modifyendts = null;
|
||||
$modifyenddate = null;
|
||||
$modified['from'] = null;
|
||||
$modified['to'] = null;
|
||||
if(!empty($get["modified"]["from"])) {
|
||||
$modifystartts = makeTsFromDate($get["modified"]["from"]);
|
||||
$modifystartdate = array('year'=>(int)date('Y', $modifystartts), 'month'=>(int)date('m', $modifystartts), 'day'=>(int)date('d', $modifystartts), 'hour'=>0, 'minute'=>0, 'second'=>0);
|
||||
if (!checkdate($modifystartdate['month'], $modifystartdate['day'], $modifystartdate['year'])) {
|
||||
UI::exitError(getMLText("search"),getMLText("invalid_modification_date_end"));
|
||||
}
|
||||
$modified['from'] = $modifystartts;
|
||||
}
|
||||
if(!empty($get["modified"]["to"])) {
|
||||
$modifyendts = makeTsFromDate($get["modified"]["to"]);
|
||||
$modifyenddate = array('year'=>(int)date('Y', $modifyendts), 'month'=>(int)date('m', $modifyendts), 'day'=>(int)date('d', $modifyendts), 'hour'=>23, 'minute'=>59, 'second'=>59);
|
||||
if (!checkdate($modifyenddate['month'], $modifyenddate['day'], $modifyenddate['year'])) {
|
||||
UI::exitError(getMLText("search"),getMLText("invalid_modification_date_end"));
|
||||
}
|
||||
$modified['to'] = $modifyendts;
|
||||
}
|
||||
$this->searchparams['modified'] = $modified;
|
||||
/* }}} */
|
||||
|
||||
/* Filesize {{{ */
|
||||
$filesizestart = 0;
|
||||
$filesizeend = 0;
|
||||
$filesize['from'] = null;
|
||||
$filesize['to'] = null;
|
||||
if(!empty($get["filesize"]["from"])) {
|
||||
$filesizestart = $get["filesize"]["from"];
|
||||
$filesize['from'] = $get["filesize"]["from"];
|
||||
}
|
||||
if(!empty($get["filesize"]["to"])) {
|
||||
$filesizeend = $get["filesize"]["to"];
|
||||
$filesize['to'] = $get["filesize"]["to"];
|
||||
}
|
||||
$this->searchparams['filesize'] = $filesize;
|
||||
/* }}} */
|
||||
|
||||
// Check to see if the search has been restricted to a particular
|
||||
// document owner.
|
||||
// $get['owner'] can be a name of an array of names or ids {{{
|
||||
$owner = [];
|
||||
$ownernames = []; // Needed by fulltext search
|
||||
$ownerobjs = []; // Needed by database search
|
||||
if(!empty($get["owner"])) {
|
||||
$owner = $get['owner'];
|
||||
if (!is_array($get['owner'])) {
|
||||
if(is_numeric($get['owner']))
|
||||
$o = $dms->getUser($get['owner']);
|
||||
else
|
||||
$o = $dms->getUserByLogin($get['owner']);
|
||||
if($o) {
|
||||
$ownernames[] = $o->getLogin();
|
||||
$ownerobjs[] = $o;
|
||||
}
|
||||
} else {
|
||||
foreach($get["owner"] as $l) {
|
||||
if($l) {
|
||||
if(is_numeric($l))
|
||||
$o = $dms->getUser($l);
|
||||
else
|
||||
$o = $dms->getUserByLogin($l);
|
||||
if($o) {
|
||||
$ownernames[] = $o->getLogin();
|
||||
$ownerobjs[] = $o;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$this->searchparams['ownernames'] = $ownernames;
|
||||
$this->searchparams['ownerobjs'] = $ownerobjs;
|
||||
/* }}} */
|
||||
|
||||
// category {{{
|
||||
$categories = array();
|
||||
$categorynames = array();
|
||||
$category = array();
|
||||
if(isset($get['category']) && $get['category']) {
|
||||
$category = $get['category'];
|
||||
foreach($get['category'] as $catid) {
|
||||
if($catid) {
|
||||
if(is_numeric($catid)) {
|
||||
if($cat = $dms->getDocumentCategory($catid)) {
|
||||
$categories[] = $cat;
|
||||
$categorynames[] = $cat->getName();
|
||||
}
|
||||
} else {
|
||||
$categorynames[] = $catid;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$this->searchparams['categorynames'] = $categorynames;
|
||||
$this->searchparams['categories'] = $categories;
|
||||
/* }}} */
|
||||
|
||||
if (isset($get["orderby"]) && is_string($get["orderby"])) {
|
||||
$orderby = $get["orderby"];
|
||||
} else {
|
||||
$orderby = "";
|
||||
}
|
||||
$this->searchparams['orderby'] = $orderby;
|
||||
|
||||
$limit = (isset($get["limit"]) && is_numeric($get["limit"])) ? (int) $get['limit'] : 20;
|
||||
$this->searchparams['limit'] = $limit;
|
||||
$fullsearch = ((!isset($get["fullsearch"]) && $this->settings->_defaultSearchMethod == 'fulltext') || !empty($get["fullsearch"])) && $this->settings->_enableFullSearch;
|
||||
$this->searchparams['fullsearch'] = $fullsearch;
|
||||
$facetsearch = !empty($get["facetsearch"]) && $this->settings->_enableFullSearch;
|
||||
$this->searchparams['facetsearch'] = $facetsearch;
|
||||
|
||||
if (isset($get["query"]) && is_string($get["query"])) {
|
||||
$query = $get["query"];
|
||||
} else {
|
||||
$query = "";
|
||||
}
|
||||
$this->searchparams['query'] = $query;
|
||||
|
||||
// Check to see if the search has been restricted to a particular
|
||||
// mimetype. {{{
|
||||
$mimetype = [];
|
||||
if (isset($get["mimetype"])) {
|
||||
if (!is_array($get['mimetype'])) {
|
||||
if(!empty($get['mimetype']))
|
||||
$mimetype[] = $get['mimetype'];
|
||||
} else {
|
||||
foreach($get["mimetype"] as $l) {
|
||||
if($l)
|
||||
$mimetype[] = $l;
|
||||
}
|
||||
}
|
||||
}
|
||||
$this->searchparams['mimetype'] = $mimetype;
|
||||
/* }}} */
|
||||
|
||||
// status
|
||||
$status = isset($get['status']) ? $get['status'] : array();
|
||||
$this->searchparams['status'] = $status;
|
||||
|
||||
// Get the page number to display. If the result set contains more than
|
||||
// 25 entries, it is displayed across multiple pages.
|
||||
//
|
||||
// This requires that a page number variable be used to track which page the
|
||||
// user is interested in, and an extra clause on the select statement.
|
||||
//
|
||||
// Default page to display is always one.
|
||||
$pageNumber=1;
|
||||
if (isset($get["pg"])) {
|
||||
if (is_numeric($get["pg"]) && $get["pg"]>0) {
|
||||
$pageNumber = (int) $get["pg"];
|
||||
}
|
||||
elseif (!strcasecmp($get["pg"], "all")) {
|
||||
$pageNumber = "all";
|
||||
}
|
||||
}
|
||||
$this->searchparams['pageNumber'] = $pageNumber;
|
||||
|
||||
if($fullsearch) {
|
||||
// Search in Fulltext {{{
|
||||
|
||||
// record_type
|
||||
if(isset($get['record_type']))
|
||||
$record_type = $get['record_type'];
|
||||
else
|
||||
$record_type = array();
|
||||
$this->searchparams['record_type'] = $record_type;
|
||||
|
||||
if (isset($get["attributes"]))
|
||||
$attributes = $get["attributes"];
|
||||
else
|
||||
$attributes = array();
|
||||
|
||||
foreach($attributes as $an=>&$av) {
|
||||
if(substr($an, 0, 5) == 'attr_') {
|
||||
$tmp = explode('_', $an);
|
||||
if($attrdef = $dms->getAttributeDefinition($tmp[1])) {
|
||||
switch($attrdef->getType()) {
|
||||
/* Turn dates into timestamps */
|
||||
case SeedDMS_Core_AttributeDefinition::type_date:
|
||||
foreach(['from', 'to'] as $kk)
|
||||
if(!empty($av[$kk])) {
|
||||
if(!is_numeric($av[$kk])) {
|
||||
$av[$kk] = makeTsFromDate($av[$kk]);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$this->searchparams['attributes'] = $attributes;
|
||||
|
||||
/* Create $order array for fulltext search */
|
||||
$order = ['by'=>'', 'dir'=>''];
|
||||
switch($orderby) {
|
||||
case 'dd':
|
||||
$order = ['by'=>'created', 'dir'=>'desc'];
|
||||
break;
|
||||
case 'd':
|
||||
$order = ['by'=>'created', 'dir'=>'asc'];
|
||||
break;
|
||||
case 'nd':
|
||||
$order = ['by'=>'title', 'dir'=>'desc'];
|
||||
break;
|
||||
case 'n':
|
||||
$order = ['by'=>'title', 'dir'=>'asc'];
|
||||
break;
|
||||
case 'id':
|
||||
$order = ['by'=>'id', 'dir'=>'desc'];
|
||||
break;
|
||||
case 'i':
|
||||
$order = ['by'=>'id', 'dir'=>'asc'];
|
||||
break;
|
||||
default:
|
||||
$order = ['by'=>'', 'dir'=>''];
|
||||
}
|
||||
$this->searchparams['order'] = $order;
|
||||
|
||||
// Check to see if the search has been restricted to a particular sub-tree in
|
||||
// the folder hierarchy.
|
||||
$startFolder = null;
|
||||
if (isset($get["folderfullsearchid"]) && is_numeric($get["folderfullsearchid"]) && $get["folderfullsearchid"]>0) {
|
||||
$targetid = $get["folderfullsearchid"];
|
||||
$startFolder = $this->dms->getFolder($targetid);
|
||||
if (!is_object($startFolder)) {
|
||||
UI::exitError(getMLText("search"),getMLText("invalid_folder_id"));
|
||||
}
|
||||
}
|
||||
$this->searchparams['startFolder'] = $startFolder;
|
||||
|
||||
$rootFolder = $this->dms->getFolder($this->settings->_rootFolderID);
|
||||
$this->searchparams['rootFolder'] = $rootFolder;
|
||||
|
||||
// }}}
|
||||
} else {
|
||||
// Search in Database {{{
|
||||
|
||||
/* Select if only documents (0x01), only folders (0x02) or both (0x03)
|
||||
* are found
|
||||
*/
|
||||
$resultmode = 0x03;
|
||||
if (isset($get["resultmode"]) && is_numeric($get["resultmode"])) {
|
||||
$resultmode = $get['resultmode'];
|
||||
}
|
||||
$this->searchparams['resultmode'] = $resultmode;
|
||||
|
||||
$mode = "AND";
|
||||
if (isset($get["mode"]) && is_numeric($get["mode"]) && $get["mode"]==0) {
|
||||
$mode = "OR";
|
||||
}
|
||||
$this->searchparams['mode'] = $mode;
|
||||
|
||||
$searchin = array();
|
||||
if (isset($get['searchin']) && is_array($get["searchin"])) {
|
||||
foreach ($get["searchin"] as $si) {
|
||||
if (isset($si) && is_numeric($si)) {
|
||||
switch ($si) {
|
||||
case 1: // keywords
|
||||
case 2: // name
|
||||
case 3: // comment
|
||||
case 4: // attributes
|
||||
case 5: // id
|
||||
$searchin[$si] = $si;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// if none is checkd search all
|
||||
if (count($searchin)==0) $searchin=array(1, 2, 3, 4, 5);
|
||||
$this->searchparams['searchin'] = $searchin;
|
||||
|
||||
// Check to see if the search has been restricted to a particular sub-tree in
|
||||
// the folder hierarchy.
|
||||
if (isset($get["targetid"]) && is_numeric($get["targetid"]) && $get["targetid"]>0) {
|
||||
$targetid = $get["targetid"];
|
||||
$startFolder = $this->dms->getFolder($targetid);
|
||||
}
|
||||
else {
|
||||
$startFolder = $this->dms->getRootFolder();
|
||||
}
|
||||
if (!is_object($startFolder)) {
|
||||
UI::exitError(getMLText("search"),getMLText("invalid_folder_id"));
|
||||
}
|
||||
$this->searchparams['startFolder'] = $startFolder;
|
||||
|
||||
/* Revision date {{{ */
|
||||
$revisionstartts = null;
|
||||
$revisionstartdate = array();
|
||||
$revisionendts = null;
|
||||
$revisionenddate = array();
|
||||
$revised['from'] = null;
|
||||
$revised['to'] = null;
|
||||
if(!empty($get["revisiondatestart"])) {
|
||||
$revisionstartts = makeTsFromDate($get["revisiondatestart"]);
|
||||
$revisionstartdate = array('year'=>(int)date('Y', $revisionstartts), 'month'=>(int)date('m', $revisionstartts), 'day'=>(int)date('d', $revisionstartts), 'hour'=>0, 'minute'=>0, 'second'=>0);
|
||||
if (!checkdate($revisionstartdate['month'], $revisionstartdate['day'], $revisionstartdate['year'])) {
|
||||
UI::exitError(getMLText("search"),getMLText("invalid_revision_date_start"));
|
||||
}
|
||||
$revised['from'] = $revisionstartts;
|
||||
}
|
||||
$this->searchparams['revisionstartdate'] = $revisionstartdate;
|
||||
if(!empty($get["revisiondateend"])) {
|
||||
$revisionendts = makeTsFromDate($get["revisiondateend"]);
|
||||
$revisionenddate = array('year'=>(int)date('Y', $revisionendts), 'month'=>(int)date('m', $revisionendts), 'day'=>(int)date('d', $revisionendts), 'hour'=>23, 'minute'=>59, 'second'=>59);
|
||||
if (!checkdate($revisionenddate['month'], $revisionenddate['day'], $revisionenddate['year'])) {
|
||||
UI::exitError(getMLText("search"),getMLText("invalid_revision_date_end"));
|
||||
}
|
||||
$revised['to'] = $revisionendts;
|
||||
}
|
||||
$this->searchparams['revisionenddate'] = $revisionenddate;
|
||||
/* }}} */
|
||||
|
||||
/* Status date {{{ */
|
||||
$statusstartdate = array();
|
||||
$statusenddate = array();
|
||||
if(!empty($get["statusdatestart"])) {
|
||||
$statusstartts = makeTsFromDate($get["statusdatestart"]);
|
||||
$statusstartdate = array('year'=>(int)date('Y', $statusstartts), 'month'=>(int)date('m', $statusstartts), 'day'=>(int)date('d', $statusstartts), 'hour'=>0, 'minute'=>0, 'second'=>0);
|
||||
}
|
||||
$this->searchparams['statusstartdate'] = $statusstartdate;
|
||||
if ($statusstartdate && !checkdate($statusstartdate['month'], $statusstartdate['day'], $statusstartdate['year'])) {
|
||||
UI::exitError(getMLText("search"),getMLText("invalid_status_date_start"));
|
||||
}
|
||||
$this->searchparams['statusstartdate'] = $statusstartdate;
|
||||
|
||||
if(!empty($get["statusdateend"])) {
|
||||
$statusendts = makeTsFromDate($get["statusdateend"]);
|
||||
$statusenddate = array('year'=>(int)date('Y', $statusendts), 'month'=>(int)date('m', $statusendts), 'day'=>(int)date('d', $statusendts), 'hour'=>23, 'minute'=>59, 'second'=>59);
|
||||
}
|
||||
if ($statusenddate && !checkdate($statusenddate['month'], $statusenddate['day'], $statusenddate['year'])) {
|
||||
UI::exitError(getMLText("search"),getMLText("invalid_status_date_end"));
|
||||
}
|
||||
$this->searchparams['statusenddate'] = $statusenddate;
|
||||
/* }}} */
|
||||
|
||||
/* Expiration date {{{ */
|
||||
$expstartdate = array();
|
||||
$expenddate = array();
|
||||
if(!empty($get["expirationstart"])) {
|
||||
$expstartts = makeTsFromDate($get["expirationstart"]);
|
||||
$expstartdate = array('year'=>(int)date('Y', $expstartts), 'month'=>(int)date('m', $expstartts), 'day'=>(int)date('d', $expstartts), 'hour'=>0, 'minute'=>0, 'second'=>0);
|
||||
if (!checkdate($expstartdate['month'], $expstartdate['day'], $expstartdate['year'])) {
|
||||
UI::exitError(getMLText("search"),getMLText("invalid_expiration_date_start"));
|
||||
}
|
||||
}
|
||||
$this->searchparams['expstartdate'] = $expstartdate;
|
||||
if(!empty($get["expirationend"])) {
|
||||
$expendts = makeTsFromDate($get["expirationend"]);
|
||||
$expenddate = array('year'=>(int)date('Y', $expendts), 'month'=>(int)date('m', $expendts), 'day'=>(int)date('d', $expendts), 'hour'=>23, 'minute'=>59, 'second'=>59);
|
||||
if (!checkdate($expenddate['month'], $expenddate['day'], $expenddate['year'])) {
|
||||
UI::exitError(getMLText("search"),getMLText("invalid_expiration_date_end"));
|
||||
}
|
||||
}
|
||||
$this->searchparams['expenddate'] = $expenddate;
|
||||
/* }}} */
|
||||
|
||||
$reception = array();
|
||||
if (isset($get["reception"])){
|
||||
$reception = $get["reception"];
|
||||
}
|
||||
$this->searchparams['reception'] = $reception;
|
||||
|
||||
/* Do not search for folders if result shall be filtered by status.
|
||||
* If this is not done, unexplainable results will be delivered.
|
||||
* e.g. a search for expired documents of a given user will list
|
||||
* also all folders of that user because the status doesn't apply
|
||||
* to folders.
|
||||
*/
|
||||
// if($status)
|
||||
// $resultmode = 0x01;
|
||||
|
||||
if (isset($get["attributes"]))
|
||||
$attributes = $get["attributes"];
|
||||
else
|
||||
$attributes = array();
|
||||
|
||||
foreach($attributes as $attrdefid=>$attribute) {
|
||||
$attrdef = $this->dms->getAttributeDefinition($attrdefid);
|
||||
if($attribute) {
|
||||
if($attrdef->getType() == SeedDMS_Core_AttributeDefinition::type_date) {
|
||||
if(is_array($attribute)) {
|
||||
if(!empty($attributes[$attrdefid]['from']))
|
||||
$attributes[$attrdefid]['from'] = date('Y-m-d', makeTsFromDate($attribute['from']));
|
||||
if(!empty($attributes[$attrdefid]['to']))
|
||||
$attributes[$attrdefid]['to'] = date('Y-m-d', makeTsFromDate($attribute['to']));
|
||||
} else {
|
||||
$attributes[$attrdefid] = date('Y-m-d', makeTsFromDate($attribute));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$this->searchparams['attributes'] = $attributes;
|
||||
|
||||
// }}}
|
||||
}
|
||||
return $this->searchparams;
|
||||
} /* }}} */
|
||||
|
||||
public function setSearchParam($name, $value) {
|
||||
$this->searchparams[$name] = $value;
|
||||
}
|
||||
|
||||
public function search() { /* {{{ */
|
||||
if($this->searchparams['fullsearch']) {
|
||||
if($this->settings->_fullSearchEngine == 'lucene') {
|
||||
Zend_Search_Lucene_Search_QueryParser::setDefaultEncoding('utf-8');
|
||||
}
|
||||
|
||||
$startTime = $this->getTime();
|
||||
$total = 0;
|
||||
$index = $this->fulltextservice->Indexer();
|
||||
if($index) {
|
||||
if(!empty($this->settings->_suggestTerms) && !empty($get['query'])) {
|
||||
$st = preg_split("/[\s,]+/", trim($get['query']));
|
||||
if($lastterm = end($st))
|
||||
$this->terms = $index->terms($lastterm, $this->settings->_suggestTerms);
|
||||
}
|
||||
$limit = $this->searchparams['limit'];
|
||||
$lucenesearch = $this->fulltextservice->Search();
|
||||
$searchresult = $lucenesearch->search($this->searchparams['query'],
|
||||
array(
|
||||
'record_type'=>$this->searchparams['record_type'],
|
||||
'owner'=>$this->searchparams['ownernames'],
|
||||
'status'=>$this->searchparams['status'],
|
||||
'category'=>$this->searchparams['categorynames'],
|
||||
'user'=>$this->user->isAdmin() ? [] : [$this->user->getLogin()],
|
||||
'mimetype'=>$this->searchparams['mimetype'],
|
||||
'startFolder'=>$this->searchparams['startFolder'],
|
||||
'rootFolder'=>$this->searchparams['rootFolder'],
|
||||
'created_start'=>$this->searchparams['created']['from'],
|
||||
'created_end'=>$this->searchparams['created']['to'],
|
||||
'modified_start'=>$this->searchparams['modified']['from'],
|
||||
'modified_end'=>$this->searchparams['modified']['to'],
|
||||
'filesize_start'=>$this->searchparams['filesize']['from'],
|
||||
'filesize_end'=>$this->searchparams['filesize']['to'],
|
||||
'attributes'=>$this->searchparams['attributes']
|
||||
), ($this->searchparams['pageNumber'] == 'all' ? array() : array('limit'=>$limit, 'offset'=>$limit * ($this->searchparams['pageNumber']-1))), $this->searchparams['order']);
|
||||
if($searchresult !== false) {
|
||||
$entries = array();
|
||||
$facets = $searchresult['facets'];
|
||||
$stats = $searchresult['stats'] ?? null;
|
||||
$dcount = 0;
|
||||
$fcount = 0;
|
||||
if($searchresult['hits']) {
|
||||
foreach($searchresult['hits'] as $hit) {
|
||||
if($hit['document_id'][0] == 'D') {
|
||||
if($tmp = $this->dms->getDocument(substr($hit['document_id'], 1))) {
|
||||
// if($tmp->getAccessMode($user) >= M_READ) {
|
||||
$tmp->verifyLastestContentExpriry();
|
||||
$entries[] = $tmp;
|
||||
$dcount++;
|
||||
// }
|
||||
}
|
||||
} elseif($hit['document_id'][0] == 'F') {
|
||||
if($tmp = $this->dms->getFolder(substr($hit['document_id'], 1))) {
|
||||
// if($tmp->getAccessMode($user) >= M_READ) {
|
||||
$entries[] = $tmp;
|
||||
$fcount++;
|
||||
// }
|
||||
}
|
||||
}
|
||||
}
|
||||
if(isset($facets['record_type'])) {
|
||||
$fcount = isset($facets['record_type']['folder']) ? $facets['record_type']['folder'] : 0;
|
||||
$dcount = isset($facets['record_type']['document']) ? $facets['record_type']['document'] : 0 ;
|
||||
}
|
||||
}
|
||||
$this->fcount = $fcount;
|
||||
$this->dcount = $dcount;
|
||||
$this->stats = $stats;
|
||||
$this->entries = $entries;
|
||||
$this->facets = $facets;
|
||||
$totalPages = 0;
|
||||
if($limit > 0) {
|
||||
if($searchresult['count'] > $limit) {
|
||||
$totalPages = (int) ($searchresult['count']/$limit);
|
||||
if($searchresult['count']%$limit)
|
||||
$totalPages++;
|
||||
} else {
|
||||
$totalPages = 1;
|
||||
}
|
||||
}
|
||||
$this->total = $searchresult['count'];
|
||||
$this->totalPages = $totalPages;
|
||||
}
|
||||
$searchTime = $this->getTime() - $startTime;
|
||||
$this->searchTime = round($searchTime, 2);
|
||||
}
|
||||
} else {
|
||||
// ---------------- Start searching -----------------------------------------
|
||||
$startTime = $this->getTime();
|
||||
$resArr = $this->dms->search(array(
|
||||
'query'=>$this->searchparams['query'],
|
||||
'limit'=>0,
|
||||
'offset'=>0,
|
||||
'logicalmode'=>$this->searchparams['mode'],
|
||||
'searchin'=>$this->searchparams['searchin'],
|
||||
'startFolder'=>$this->searchparams['startFolder'],
|
||||
'owner'=>$this->searchparams['ownerobjs'],
|
||||
'status'=>$this->searchparams['status'],
|
||||
'mimetype'=>$this->searchparams['mimetype'],
|
||||
'creationstartdate'=>$this->searchparams['created']['from'],
|
||||
'creationenddate'=>$this->searchparams['created']['to'],
|
||||
'modificationstartdate'=>$this->searchparams['modified']['from'],
|
||||
'modificationenddate'=>$this->searchparams['modified']['to'],
|
||||
'filesizestart'=>$this->searchparams['filesize']['from'],
|
||||
'filesizeend'=>$this->searchparams['filesize']['to'],
|
||||
'categories'=>$this->searchparams['categories'],
|
||||
'attributes'=>$this->searchparams['attributes'],
|
||||
'mode'=>$this->searchparams['resultmode'],
|
||||
'expirationstartdate'=>$this->searchparams['expstartdate'],
|
||||
'expirationenddate'=>$this->searchparams['expenddate'],
|
||||
'revisionstartdate'=>$this->searchparams['revisionstartdate'],
|
||||
'revisionenddate'=>$this->searchparams['revisionenddate'],
|
||||
'reception'=>$this->searchparams['reception'],
|
||||
'statusstartdate'=>$this->searchparams['statusstartdate'],
|
||||
'statusenddate'=>$this->searchparams['statusenddate'],
|
||||
'orderby'=>$this->searchparams['orderby']
|
||||
));
|
||||
$this->total = $resArr['totalDocs'] + $resArr['totalFolders'];
|
||||
$searchTime = $this->getTime() - $startTime;
|
||||
$this->searchTime = round($searchTime, 2);
|
||||
|
||||
$entries = array();
|
||||
$fcount = 0;
|
||||
if($resArr['folders']) {
|
||||
foreach ($resArr['folders'] as $entry) {
|
||||
if ($entry->getAccessMode($this->user) >= M_READ) {
|
||||
$entries[] = $entry;
|
||||
$fcount++;
|
||||
}
|
||||
}
|
||||
}
|
||||
$this->fcount = $fcount;
|
||||
$dcount = 0;
|
||||
if($resArr['docs']) {
|
||||
foreach ($resArr['docs'] as $entry) {
|
||||
if ($entry->getAccessMode($this->user) >= M_READ) {
|
||||
if($entry->getLatestContent()) {
|
||||
$entry->verifyLastestContentExpriry();
|
||||
$entries[] = $entry;
|
||||
$dcount++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$limit = $this->searchparams['limit'];
|
||||
$this->dcount = $dcount;
|
||||
$totalPages = 0;
|
||||
if($limit > 0) {
|
||||
$totalPages = (int) (count($entries)/$limit);
|
||||
if(count($entries)%$limit)
|
||||
$totalPages++;
|
||||
}
|
||||
if($this->searchparams['pageNumber'] != 'all')
|
||||
$this->entries = array_slice($entries, ($this->searchparams['pageNumber']-1)*$limit, $limit);
|
||||
$this->totalPages = $totalPages;
|
||||
$this->facets = array();
|
||||
$this->stats = array();
|
||||
}
|
||||
} /* }}} */
|
||||
|
||||
public function getFolderCount() {
|
||||
return $this->fcount;
|
||||
}
|
||||
|
||||
public function getDocumentCount() {
|
||||
return $this->dcount;
|
||||
}
|
||||
|
||||
public function getTotal() {
|
||||
return $this->total;
|
||||
}
|
||||
} /* }}} */
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
|
||||
class SeedDMS_Version { /* {{{ */
|
||||
|
||||
const _number = "6.0.30";
|
||||
const _number = "6.0.33";
|
||||
const _string = "SeedDMS";
|
||||
|
||||
function __construct() {
|
||||
|
|
86
index.php
86
index.php
|
@ -31,6 +31,9 @@
|
|||
|
||||
require "inc/inc.Settings.php";
|
||||
|
||||
use DI\ContainerBuilder;
|
||||
use Slim\Factory\AppFactory;
|
||||
|
||||
if(true) {
|
||||
require_once("inc/inc.Utils.php");
|
||||
require_once("inc/inc.LogInit.php");
|
||||
|
@ -39,66 +42,51 @@ if(true) {
|
|||
require_once("inc/inc.Extension.php");
|
||||
require_once("inc/inc.DBInit.php");
|
||||
|
||||
$c = new \Slim\Container(); //Create Your container
|
||||
$c['notFoundHandler'] = function ($c) use ($settings, $dms) {
|
||||
return function ($request, $response) use ($c, $settings, $dms) {
|
||||
$uri = $request->getUri();
|
||||
if($uri->getBasePath())
|
||||
$file = $uri->getPath();
|
||||
else
|
||||
$file = substr($uri->getPath(), 1);
|
||||
if(file_exists($file) && is_file($file)) {
|
||||
$_SERVER['SCRIPT_FILENAME'] = basename($file);
|
||||
// include($file);
|
||||
exit;
|
||||
}
|
||||
if($request->isXhr()) {
|
||||
exit;
|
||||
}
|
||||
// print_r($request->getUri());
|
||||
// exit;
|
||||
return $c['response']
|
||||
->withStatus(302)
|
||||
->withHeader('Location', isset($settings->_siteDefaultPage) && strlen($settings->_siteDefaultPage)>0 ? $settings->_httpRoot.$settings->_siteDefaultPage : $settings->_httpRoot."out/out.ViewFolder.php");
|
||||
};
|
||||
};
|
||||
$app = new \Slim\App($c);
|
||||
$containerBuilder = new \DI\ContainerBuilder();
|
||||
$c = $containerBuilder->build();
|
||||
AppFactory::setContainer($c);
|
||||
$app = AppFactory::create();
|
||||
|
||||
/* put lots of data into the container, because if slim instanciates
|
||||
* a class by itself (with the help from the DI container), it will
|
||||
* pass the container to the constructor of the instanciated class.
|
||||
*/
|
||||
$container = $app->getContainer();
|
||||
$container['dms'] = $dms;
|
||||
$container['config'] = $settings;
|
||||
$container['conversionmgr'] = $conversionmgr;
|
||||
$container['logger'] = $logger;
|
||||
$container['fulltextservice'] = $fulltextservice;
|
||||
$container['notifier'] = $notifier;
|
||||
$container['authenticator'] = $authenticator;
|
||||
$container->set('dms', $dms);
|
||||
$container->set('config', $settings);
|
||||
$container->set('conversionmgr', $conversionmgr);
|
||||
$container->set('logger', $logger);
|
||||
$container->set('fulltextservice', $fulltextservice);
|
||||
$container->set('notifier', $notifier);
|
||||
$container->set('authenticator', $authenticator);
|
||||
|
||||
if(isset($GLOBALS['SEEDDMS_HOOKS']['initDMS'])) {
|
||||
foreach($GLOBALS['SEEDDMS_HOOKS']['initDMS'] as $hookObj) {
|
||||
if (method_exists($hookObj, 'addMiddleware')) {
|
||||
$hookObj->addMiddleware($app);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$app->addErrorMiddleware(false, true, true);
|
||||
|
||||
if(isset($GLOBALS['SEEDDMS_HOOKS']['initDMS'])) {
|
||||
foreach($GLOBALS['SEEDDMS_HOOKS']['initDMS'] as $hookObj) {
|
||||
if (method_exists($hookObj, 'addRoute')) {
|
||||
// FIXME: pass $app only just like initRestAPI. $app has a container
|
||||
// which contains all other objects
|
||||
$hookObj->addRoute(array('dms'=>$dms, 'app'=>$app, 'settings'=>$settings, 'conversionmgr'=>$conversionmgr, 'authenticator'=>$authenticator, 'fulltextservice'=>$fulltextservice, 'logger'=>$logger));
|
||||
// } else {
|
||||
// include("inc/inc.Authentication.php");
|
||||
// if (method_exists($hookObj, 'addRouteAfterAuthentication')) {
|
||||
// $hookObj->addRouteAfterAuthentication(array('dms'=>$dms, 'app'=>$app, 'settings'=>$settings, 'user'=>$user));
|
||||
// }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
$app->get('/out/[{path:.*}]', function($request, $response, $path = null) use ($app) {
|
||||
$uri = $request->getUri();
|
||||
if($uri->getBasePath())
|
||||
$file = $uri->getPath();
|
||||
else
|
||||
$file = substr($uri->getPath(), 1);
|
||||
if(file_exists($file) && is_file($file)) {
|
||||
$_SERVER['SCRIPT_FILENAME'] = basename($file);
|
||||
include($file);
|
||||
exit;
|
||||
}
|
||||
/* Catch all route */
|
||||
$app->get('/{path:.*}', function($request, $response) use ($settings) {
|
||||
return $response
|
||||
->withHeader('Location', $settings->_httpRoot.'out/out.ViewFolder.php')
|
||||
->withStatus(302);
|
||||
|
||||
});
|
||||
*/
|
||||
|
||||
$app->run();
|
||||
} else {
|
||||
|
|
|
@ -406,8 +406,8 @@ echo '<p><a href="install.php">' . getMLText("settings_start_install") . '</a></
|
|||
$this->contentHeading("SeedDMS Installation for version ".$_GET['version']);
|
||||
$this->contentContainerStart();
|
||||
|
||||
$sqlfile = "update.sql";
|
||||
switch($settings->_dbDriver) {
|
||||
$sqlfile = "update.sql";
|
||||
switch($settings->_dbDriver) {
|
||||
case 'mysql':
|
||||
case 'mysqli':
|
||||
case 'mysqlnd':
|
||||
|
@ -428,16 +428,27 @@ switch($settings->_dbDriver) {
|
|||
$dsn .= ";port=".$tmp[1];
|
||||
if(file_exists('update-'.$_GET['version'].'/update-postgres.sql'))
|
||||
$sqlfile = "update-postgres.sql";
|
||||
}
|
||||
$db = new PDO($dsn, $settings->_dbUser, $settings->_dbPass);
|
||||
if (!$db) {
|
||||
}
|
||||
$db = new PDO($dsn, $settings->_dbUser, $settings->_dbPass);
|
||||
if (!$db) {
|
||||
die;
|
||||
}
|
||||
}
|
||||
|
||||
$errorMsg = '';
|
||||
$res = $db->query('select * from tblVersion');
|
||||
$recs = $res->fetchAll(PDO::FETCH_ASSOC);
|
||||
if(!empty($recs)) {
|
||||
$errorMsg = '';
|
||||
switch($settings->_dbDriver) {
|
||||
case 'mysql':
|
||||
case 'mysqli':
|
||||
case 'mysqlnd':
|
||||
case 'sqlite':
|
||||
$sql = 'select * from `tblVersion`';
|
||||
break;
|
||||
case 'pgsql':
|
||||
$sql = 'select * from "tblVersion"';
|
||||
break;
|
||||
}
|
||||
$res = $db->query($sql);
|
||||
$recs = $res->fetchAll(PDO::FETCH_ASSOC);
|
||||
if(!empty($recs)) {
|
||||
$rec = $recs[0];
|
||||
if($_GET['version'] > $rec['major'].'.'.$rec['minor'].'.'.$rec['subminor']) {
|
||||
|
||||
|
@ -477,15 +488,15 @@ if(!empty($recs)) {
|
|||
echo $errorMsg;
|
||||
}
|
||||
echo "<p><a href=\"install.php\">Go back to installation and recheck.</a></p>";
|
||||
} else {
|
||||
} else {
|
||||
echo "<p>Could not determine database schema version.</p>";
|
||||
}
|
||||
$db = null;
|
||||
}
|
||||
$db = null;
|
||||
|
||||
// just remove info for web page installation
|
||||
$settings->_printDisclaimer = false;
|
||||
$settings->_footNote = false;
|
||||
// end of the page
|
||||
// just remove info for web page installation
|
||||
$settings->_printDisclaimer = false;
|
||||
$settings->_footNote = false;
|
||||
// end of the page
|
||||
$this->contentContainerEnd();
|
||||
$this->contentEnd();
|
||||
$this->htmlEndPage();
|
||||
|
|
|
@ -100,7 +100,7 @@ CREATE TABLE `tblUserSubstitutes` (
|
|||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `user` (`user`,`substitute`),
|
||||
CONSTRAINT `tblUserSubstitutes_user` FOREIGN KEY (`user`) REFERENCES `tblUsers` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `tblUserSubstitutes_substitute` FOREIGN KEY (`user`) REFERENCES `tblUsers` (`id`) ON DELETE CASCADE
|
||||
CONSTRAINT `tblUserSubstitutes_substitute` FOREIGN KEY (`substitute`) REFERENCES `tblUsers` (`id`) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
|
|
@ -41,7 +41,7 @@ CREATE TABLE `tblUserSubstitutes` (
|
|||
PRIMARY KEY (`id`),
|
||||
UNIQUE (`user`, `substitute`),
|
||||
CONSTRAINT `tblUserSubstitutes_user` FOREIGN KEY (`user`) REFERENCES `tblUsers` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `tblUserSubstitutes_substitute` FOREIGN KEY (`user`) REFERENCES `tblUsers` (`id`) ON DELETE CASCADE
|
||||
CONSTRAINT `tblUserSubstitutes_substitute` FOREIGN KEY (`substitute`) REFERENCES `tblUsers` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
CREATE TABLE `tblDocumentCheckOuts` (
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
|
||||
$text = array(
|
||||
'2_factor_auth' => 'توثيق ذو عاملين',
|
||||
'2_factor_auth_code' => '',
|
||||
'2_factor_auth_info' => 'معلومات عن توثيق ذو عاملين',
|
||||
'2_fact_auth_current_secret' => '',
|
||||
'2_fact_auth_new_secret' => '',
|
||||
|
@ -553,6 +554,8 @@ URL: [url]',
|
|||
'download_header_document_name' => '',
|
||||
'download_header_document_no' => '',
|
||||
'download_header_filename' => '',
|
||||
'download_header_folder_name' => '',
|
||||
'download_header_folder_no' => '',
|
||||
'download_header_internal_version' => '',
|
||||
'download_header_reviewer' => '',
|
||||
'download_header_review_comment' => '',
|
||||
|
@ -683,6 +686,8 @@ URL: [url]',
|
|||
'export_user_list_csv' => '',
|
||||
'extension_archive' => 'إرشيف أطول',
|
||||
'extension_changelog' => 'سجل التعديلات',
|
||||
'extension_config' => '',
|
||||
'extension_info' => '',
|
||||
'extension_is_off_now' => '',
|
||||
'extension_is_on_now' => '',
|
||||
'extension_loading' => 'تحميل الإضافات',
|
||||
|
@ -1137,6 +1142,7 @@ URL: [url]',
|
|||
'no_groups' => 'لايوجد مجموعات',
|
||||
'no_group_members' => 'هذه المجموعة لايوجد بها اعضاء',
|
||||
'no_linked_files' => 'لايوجد ملفات مرتبطة',
|
||||
'no_mimetype' => '',
|
||||
'no_previous_versions' => 'لايوجد اصدارات سابقة',
|
||||
'no_receipt_needed' => 'لا يحتاج لأي مستلم',
|
||||
'no_review_needed' => 'لايوجد مراجعات في الانتظار',
|
||||
|
@ -1282,7 +1288,9 @@ URL: [url]',
|
|||
'removed_workflow_email_body_html' => '',
|
||||
'removed_workflow_email_subject' => '[sitename]: [name] - تم ازالة مسار العمل من اصدار المستند',
|
||||
'removeFolderFromDropFolder' => 'إزالة مجلد من إسقاط لائحة',
|
||||
'removeFolderFromDropFolder_desc' => '',
|
||||
'remove_approval_log' => '',
|
||||
'remove_from_clipboard' => '',
|
||||
'remove_marked_files' => 'ازالة الملفات المختارة',
|
||||
'remove_review_log' => '',
|
||||
'remove_task' => '',
|
||||
|
@ -1464,6 +1472,7 @@ URL: [url]',
|
|||
'select_category' => 'اضغط لاختيار قسم',
|
||||
'select_created' => '',
|
||||
'select_documents_for_process' => '',
|
||||
'select_folder' => '',
|
||||
'select_group' => 'اختيار مجموعة',
|
||||
'select_groups' => 'اضغط لاختيار مجموعة',
|
||||
'select_grp_approvers' => 'اضغط لاختيار مجموعة الموافقون',
|
||||
|
@ -1511,7 +1520,9 @@ URL: [url]',
|
|||
'service_name' => '',
|
||||
'sessions' => 'صفوف',
|
||||
'setDateFromFile' => 'وضع تاريخ من الملف',
|
||||
'setDateFromFile_desc' => '',
|
||||
'setDateFromFolder' => 'تحديد التاريخ من المجلد',
|
||||
'setDateFromFolder_desc' => '',
|
||||
'settings' => 'الإعدادات',
|
||||
'settings_activate_module' => 'Activate module',
|
||||
'settings_activate_php_extension' => 'Activate PHP extension',
|
||||
|
@ -1609,6 +1620,8 @@ URL: [url]',
|
|||
'settings_delete_install_folder' => 'مسح مثبت المجلد',
|
||||
'settings_disableChangePassword' => '',
|
||||
'settings_disableChangePassword_desc' => '',
|
||||
'settings_disableReceiptComment' => '',
|
||||
'settings_disableReceiptComment_desc' => '',
|
||||
'settings_disableSelfEdit' => 'تعطيل التحرير الذاتي',
|
||||
'settings_disableSelfEdit_desc' => 'تعطيل التحرير الذاتي',
|
||||
'settings_disable_install' => 'تعطيل التثبيت',
|
||||
|
@ -1674,6 +1687,8 @@ URL: [url]',
|
|||
'settings_enableLargeFileUpload_desc' => 'تمكين تحميل الملفات الكبيرة',
|
||||
'settings_enableLoginByEmail' => '',
|
||||
'settings_enableLoginByEmail_desc' => '',
|
||||
'settings_enableMemcached' => '',
|
||||
'settings_enableMemcached_desc' => '',
|
||||
'settings_enableMenuTasks' => 'تمكين مهام القائمة',
|
||||
'settings_enableMenuTasks_desc' => 'تمكين مهام القائمة',
|
||||
'settings_enableMenuTransmittals' => '',
|
||||
|
@ -1733,6 +1748,8 @@ URL: [url]',
|
|||
'settings_encryptionKey' => 'مفتاح التشفير',
|
||||
'settings_encryptionKey_desc' => 'مفتاح التشفير',
|
||||
'settings_error' => 'خطأ',
|
||||
'settings_excludeFoldersDashboard' => '',
|
||||
'settings_excludeFoldersDashboard_desc' => '',
|
||||
'settings_expandFolderTree' => 'قم بتوسيع شجرة المجلد',
|
||||
'settings_expandFolderTree_desc' => 'قم بتوسيع شجرة المجلد',
|
||||
'settings_expandFolderTree_val0' => 'قم بتوسيع شجرة المجلد قيمة0',
|
||||
|
@ -1791,6 +1808,8 @@ URL: [url]',
|
|||
'settings_logFileEnable_desc' => 'تمكين سجل الملف',
|
||||
'settings_logFileMaxLevel' => '',
|
||||
'settings_logFileMaxLevel_desc' => '',
|
||||
'settings_logFileRestApiMaxLevel' => '',
|
||||
'settings_logFileRestApiMaxLevel_desc' => '',
|
||||
'settings_logFileRotation' => 'سجل ملف التناوب',
|
||||
'settings_logFileRotation_desc' => 'سجل ملف التناوب',
|
||||
'settings_loginFailure' => 'فشل في تسجيل الدخول',
|
||||
|
@ -1988,6 +2007,7 @@ URL: [url]',
|
|||
'sign_out' => 'تسجيل الخروج',
|
||||
'sign_out_user' => 'تسجيل خروج مستخدم',
|
||||
'site_brand' => 'مجلس النواب اللبناني',
|
||||
'skip_default_export_cols' => '',
|
||||
'sk_SK' => 'السلوفاكية',
|
||||
'sort_by_date' => 'رتب حسب التاريخ',
|
||||
'sort_by_expiration_date' => '',
|
||||
|
@ -2117,6 +2137,7 @@ URL: [url]',
|
|||
'status_revision_sleeping' => 'مراجعة الوضع في حالة النوم',
|
||||
'status_revisor_removed' => 'تم ازالة حالة المراجع',
|
||||
'status_unknown' => 'مجهول',
|
||||
'storage' => '',
|
||||
'storage_size' => 'حجم التخزين',
|
||||
'subfolder_duplicate_name' => 'اسم مجلد فرعي مكرر',
|
||||
'submit_2_fact_auth' => 'قدم ثنائي عامل التوثيق',
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
|
||||
$text = array(
|
||||
'2_factor_auth' => '',
|
||||
'2_factor_auth_code' => '',
|
||||
'2_factor_auth_info' => '',
|
||||
'2_fact_auth_current_secret' => '',
|
||||
'2_fact_auth_new_secret' => '',
|
||||
|
@ -491,6 +492,8 @@ $text = array(
|
|||
'download_header_document_name' => '',
|
||||
'download_header_document_no' => '',
|
||||
'download_header_filename' => '',
|
||||
'download_header_folder_name' => '',
|
||||
'download_header_folder_no' => '',
|
||||
'download_header_internal_version' => '',
|
||||
'download_header_reviewer' => '',
|
||||
'download_header_review_comment' => '',
|
||||
|
@ -617,6 +620,8 @@ $text = array(
|
|||
'export_user_list_csv' => '',
|
||||
'extension_archive' => '',
|
||||
'extension_changelog' => '',
|
||||
'extension_config' => '',
|
||||
'extension_info' => '',
|
||||
'extension_is_off_now' => '',
|
||||
'extension_is_on_now' => '',
|
||||
'extension_loading' => '',
|
||||
|
@ -1015,6 +1020,7 @@ $text = array(
|
|||
'no_groups' => 'Няма групи',
|
||||
'no_group_members' => 'Групата няма членове',
|
||||
'no_linked_files' => 'Няма свързани файлове',
|
||||
'no_mimetype' => '',
|
||||
'no_previous_versions' => 'Няма други версии',
|
||||
'no_receipt_needed' => '',
|
||||
'no_review_needed' => 'Рецензия не е нужна',
|
||||
|
@ -1151,7 +1157,9 @@ $text = array(
|
|||
'removed_workflow_email_body_html' => '',
|
||||
'removed_workflow_email_subject' => '',
|
||||
'removeFolderFromDropFolder' => '',
|
||||
'removeFolderFromDropFolder_desc' => '',
|
||||
'remove_approval_log' => '',
|
||||
'remove_from_clipboard' => '',
|
||||
'remove_marked_files' => '',
|
||||
'remove_review_log' => '',
|
||||
'remove_task' => '',
|
||||
|
@ -1306,6 +1314,7 @@ $text = array(
|
|||
'select_category' => 'Изберете категория',
|
||||
'select_created' => '',
|
||||
'select_documents_for_process' => '',
|
||||
'select_folder' => '',
|
||||
'select_group' => '',
|
||||
'select_groups' => 'Кликни да избереш групи',
|
||||
'select_grp_approvers' => 'Кликни да избереш група утвърждаващи',
|
||||
|
@ -1353,7 +1362,9 @@ $text = array(
|
|||
'service_name' => '',
|
||||
'sessions' => '',
|
||||
'setDateFromFile' => '',
|
||||
'setDateFromFile_desc' => '',
|
||||
'setDateFromFolder' => '',
|
||||
'setDateFromFolder_desc' => '',
|
||||
'settings' => 'Настройки',
|
||||
'settings_activate_module' => 'Активирай модул',
|
||||
'settings_activate_php_extension' => 'Активирай разширение на PHP',
|
||||
|
@ -1451,6 +1462,8 @@ $text = array(
|
|||
'settings_delete_install_folder' => 'Изтрийте ENABLE_INSTALL_TOOL в папка конфигурация, за да започнете да използвате системата',
|
||||
'settings_disableChangePassword' => '',
|
||||
'settings_disableChangePassword_desc' => '',
|
||||
'settings_disableReceiptComment' => '',
|
||||
'settings_disableReceiptComment_desc' => '',
|
||||
'settings_disableSelfEdit' => 'Изключи собствено редактиране',
|
||||
'settings_disableSelfEdit_desc' => 'Ако е включено, потребителите няма да могат да редактират своята информация',
|
||||
'settings_disable_install' => 'Изтрийте ENABLE_INSTALL_TOOL ако е возможно',
|
||||
|
@ -1516,6 +1529,8 @@ $text = array(
|
|||
'settings_enableLargeFileUpload_desc' => 'Ако е включено, качване на файлове е дустъпно и чрез джава-аплет, именован jumploader, без лимит за размер на файла. Това също ще позволи да се качват няколко файла наведнъж.',
|
||||
'settings_enableLoginByEmail' => '',
|
||||
'settings_enableLoginByEmail_desc' => '',
|
||||
'settings_enableMemcached' => '',
|
||||
'settings_enableMemcached_desc' => '',
|
||||
'settings_enableMenuTasks' => '',
|
||||
'settings_enableMenuTasks_desc' => '',
|
||||
'settings_enableMenuTransmittals' => '',
|
||||
|
@ -1575,6 +1590,8 @@ $text = array(
|
|||
'settings_encryptionKey' => 'Кодиращ ключ',
|
||||
'settings_encryptionKey_desc' => 'Този стринг се използва за създаване на уникален идентификатор, който добавен като невидимо поле към формуляр, предотвратява CSRF атаки.',
|
||||
'settings_error' => 'Грешка',
|
||||
'settings_excludeFoldersDashboard' => '',
|
||||
'settings_excludeFoldersDashboard_desc' => '',
|
||||
'settings_expandFolderTree' => 'Разгърни дървото с папките',
|
||||
'settings_expandFolderTree_desc' => 'Разгръщане на дървото с папките',
|
||||
'settings_expandFolderTree_val0' => 'започвайки от сгънато дърво',
|
||||
|
@ -1633,6 +1650,8 @@ $text = array(
|
|||
'settings_logFileEnable_desc' => 'Включи/изключи лог',
|
||||
'settings_logFileMaxLevel' => '',
|
||||
'settings_logFileMaxLevel_desc' => '',
|
||||
'settings_logFileRestApiMaxLevel' => '',
|
||||
'settings_logFileRestApiMaxLevel_desc' => '',
|
||||
'settings_logFileRotation' => 'Превъртане на лога',
|
||||
'settings_logFileRotation_desc' => 'Превъртане на лога',
|
||||
'settings_loginFailure' => 'Неуспешно влизане',
|
||||
|
@ -1830,6 +1849,7 @@ $text = array(
|
|||
'sign_out' => 'изход',
|
||||
'sign_out_user' => '',
|
||||
'site_brand' => '',
|
||||
'skip_default_export_cols' => '',
|
||||
'sk_SK' => 'Словашки',
|
||||
'sort_by_date' => 'Сортирай по дата"',
|
||||
'sort_by_expiration_date' => '',
|
||||
|
@ -1959,6 +1979,7 @@ $text = array(
|
|||
'status_revision_sleeping' => '',
|
||||
'status_revisor_removed' => '',
|
||||
'status_unknown' => 'Неизвестен',
|
||||
'storage' => '',
|
||||
'storage_size' => 'Размер на хранилището',
|
||||
'subfolder_duplicate_name' => '',
|
||||
'submit_2_fact_auth' => '',
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
|
||||
$text = array(
|
||||
'2_factor_auth' => '',
|
||||
'2_factor_auth_code' => '',
|
||||
'2_factor_auth_info' => '',
|
||||
'2_fact_auth_current_secret' => '',
|
||||
'2_fact_auth_new_secret' => '',
|
||||
|
@ -496,6 +497,8 @@ URL: [url]',
|
|||
'download_header_document_name' => '',
|
||||
'download_header_document_no' => '',
|
||||
'download_header_filename' => '',
|
||||
'download_header_folder_name' => '',
|
||||
'download_header_folder_no' => '',
|
||||
'download_header_internal_version' => '',
|
||||
'download_header_reviewer' => '',
|
||||
'download_header_review_comment' => '',
|
||||
|
@ -622,6 +625,8 @@ URL: [url]',
|
|||
'export_user_list_csv' => '',
|
||||
'extension_archive' => '',
|
||||
'extension_changelog' => '',
|
||||
'extension_config' => '',
|
||||
'extension_info' => '',
|
||||
'extension_is_off_now' => '',
|
||||
'extension_is_on_now' => '',
|
||||
'extension_loading' => '',
|
||||
|
@ -1020,6 +1025,7 @@ URL: [url]',
|
|||
'no_groups' => 'No hi ha grups',
|
||||
'no_group_members' => 'Aquest grup no té membres',
|
||||
'no_linked_files' => 'No hi ha fitxers enllaçats',
|
||||
'no_mimetype' => '',
|
||||
'no_previous_versions' => 'No s\'han trobat altres versions',
|
||||
'no_receipt_needed' => '',
|
||||
'no_review_needed' => 'No hi ha revisions pendents.',
|
||||
|
@ -1156,7 +1162,9 @@ URL: [url]',
|
|||
'removed_workflow_email_body_html' => '',
|
||||
'removed_workflow_email_subject' => '',
|
||||
'removeFolderFromDropFolder' => 'Esborrar carpeta després de la importació',
|
||||
'removeFolderFromDropFolder_desc' => '',
|
||||
'remove_approval_log' => '',
|
||||
'remove_from_clipboard' => '',
|
||||
'remove_marked_files' => '',
|
||||
'remove_review_log' => '',
|
||||
'remove_task' => '',
|
||||
|
@ -1311,6 +1319,7 @@ URL: [url]',
|
|||
'select_category' => 'Prem per seleccionar la categoria',
|
||||
'select_created' => '',
|
||||
'select_documents_for_process' => '',
|
||||
'select_folder' => '',
|
||||
'select_group' => 'Seleccionar grup',
|
||||
'select_groups' => '',
|
||||
'select_grp_approvers' => '',
|
||||
|
@ -1358,7 +1367,9 @@ URL: [url]',
|
|||
'service_name' => '',
|
||||
'sessions' => '',
|
||||
'setDateFromFile' => '',
|
||||
'setDateFromFile_desc' => '',
|
||||
'setDateFromFolder' => '',
|
||||
'setDateFromFolder_desc' => '',
|
||||
'settings' => 'Settings',
|
||||
'settings_activate_module' => 'Activate module',
|
||||
'settings_activate_php_extension' => 'Activate PHP extension',
|
||||
|
@ -1456,6 +1467,8 @@ URL: [url]',
|
|||
'settings_delete_install_folder' => '',
|
||||
'settings_disableChangePassword' => '',
|
||||
'settings_disableChangePassword_desc' => '',
|
||||
'settings_disableReceiptComment' => '',
|
||||
'settings_disableReceiptComment_desc' => '',
|
||||
'settings_disableSelfEdit' => '',
|
||||
'settings_disableSelfEdit_desc' => '',
|
||||
'settings_disable_install' => '',
|
||||
|
@ -1521,6 +1534,8 @@ URL: [url]',
|
|||
'settings_enableLargeFileUpload_desc' => '',
|
||||
'settings_enableLoginByEmail' => '',
|
||||
'settings_enableLoginByEmail_desc' => '',
|
||||
'settings_enableMemcached' => '',
|
||||
'settings_enableMemcached_desc' => '',
|
||||
'settings_enableMenuTasks' => '',
|
||||
'settings_enableMenuTasks_desc' => '',
|
||||
'settings_enableMenuTransmittals' => '',
|
||||
|
@ -1580,6 +1595,8 @@ URL: [url]',
|
|||
'settings_encryptionKey' => '',
|
||||
'settings_encryptionKey_desc' => '',
|
||||
'settings_error' => 'Error',
|
||||
'settings_excludeFoldersDashboard' => '',
|
||||
'settings_excludeFoldersDashboard_desc' => '',
|
||||
'settings_expandFolderTree' => '',
|
||||
'settings_expandFolderTree_desc' => '',
|
||||
'settings_expandFolderTree_val0' => '',
|
||||
|
@ -1638,6 +1655,8 @@ URL: [url]',
|
|||
'settings_logFileEnable_desc' => 'Enable/disable log file',
|
||||
'settings_logFileMaxLevel' => '',
|
||||
'settings_logFileMaxLevel_desc' => '',
|
||||
'settings_logFileRestApiMaxLevel' => '',
|
||||
'settings_logFileRestApiMaxLevel_desc' => '',
|
||||
'settings_logFileRotation' => 'Log File Rotation',
|
||||
'settings_logFileRotation_desc' => '',
|
||||
'settings_loginFailure' => '',
|
||||
|
@ -1835,6 +1854,7 @@ URL: [url]',
|
|||
'sign_out' => 'desconnectar',
|
||||
'sign_out_user' => '',
|
||||
'site_brand' => '',
|
||||
'skip_default_export_cols' => '',
|
||||
'sk_SK' => 'Eslovac',
|
||||
'sort_by_date' => '',
|
||||
'sort_by_expiration_date' => '',
|
||||
|
@ -1964,6 +1984,7 @@ URL: [url]',
|
|||
'status_revision_sleeping' => '',
|
||||
'status_revisor_removed' => '',
|
||||
'status_unknown' => 'Desconegut',
|
||||
'storage' => '',
|
||||
'storage_size' => 'Storage size',
|
||||
'subfolder_duplicate_name' => '',
|
||||
'submit_2_fact_auth' => '',
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
|
||||
$text = array(
|
||||
'2_factor_auth' => 'dvoufaktorové ověření',
|
||||
'2_factor_auth_code' => '',
|
||||
'2_factor_auth_info' => 'Tento systém vyžaduje dvoufaktorové ověření. Na svém mobilním telefonu budete potřebovat Google Authenticator. Níže vidíte dva QR kódy. Správný je vaše současné tajemství. Vlevo můžete nastavit nové tajemství. Pokud nastavíte nové tajemství, ujistěte se, že jste jej znovu otestovali pomocí služby Google Authenticator.',
|
||||
'2_fact_auth_current_secret' => '',
|
||||
'2_fact_auth_new_secret' => '',
|
||||
|
@ -577,6 +578,8 @@ URL: [url]',
|
|||
'download_header_document_name' => '',
|
||||
'download_header_document_no' => '',
|
||||
'download_header_filename' => '',
|
||||
'download_header_folder_name' => '',
|
||||
'download_header_folder_no' => '',
|
||||
'download_header_internal_version' => '',
|
||||
'download_header_reviewer' => '',
|
||||
'download_header_review_comment' => '',
|
||||
|
@ -707,6 +710,8 @@ URL: [url]',
|
|||
'export_user_list_csv' => '',
|
||||
'extension_archive' => 'Rozšíření',
|
||||
'extension_changelog' => 'Changelog',
|
||||
'extension_config' => '',
|
||||
'extension_info' => '',
|
||||
'extension_is_off_now' => '',
|
||||
'extension_is_on_now' => '',
|
||||
'extension_loading' => 'Načítání rozšíření',
|
||||
|
@ -1168,6 +1173,7 @@ URL: [url]',
|
|||
'no_groups' => 'Žádné skupiny',
|
||||
'no_group_members' => 'Tato skupina nemá žádné členy',
|
||||
'no_linked_files' => 'Žádné propojené soubory',
|
||||
'no_mimetype' => '',
|
||||
'no_previous_versions' => 'Nebyly nalezeny žádné jiné verze',
|
||||
'no_receipt_needed' => 'Nejsou žádné dokumenty, které by vyžadovaly potvrzení o přijetí.',
|
||||
'no_review_needed' => 'Nic nečeká k recenzi.',
|
||||
|
@ -1328,7 +1334,9 @@ URL: [url]',
|
|||
'removed_workflow_email_body_html' => '',
|
||||
'removed_workflow_email_subject' => '[sitename]: [name] - Odstraněno workflow z verze dokumentu',
|
||||
'removeFolderFromDropFolder' => 'Odstranit složku po nahrání',
|
||||
'removeFolderFromDropFolder_desc' => '',
|
||||
'remove_approval_log' => '',
|
||||
'remove_from_clipboard' => '',
|
||||
'remove_marked_files' => 'Odstranit označené soubory',
|
||||
'remove_review_log' => '',
|
||||
'remove_task' => '',
|
||||
|
@ -1531,6 +1539,7 @@ URL: [url]',
|
|||
'select_category' => 'Kliknutím vybrat kategorii',
|
||||
'select_created' => '',
|
||||
'select_documents_for_process' => '',
|
||||
'select_folder' => '',
|
||||
'select_group' => 'Vybrat skupinu',
|
||||
'select_groups' => 'Kliknutím vybrat skupiny',
|
||||
'select_grp_approvers' => 'Kliknutím vybrat skupinu schvalovatele',
|
||||
|
@ -1583,7 +1592,9 @@ Jméno: [username]
|
|||
'service_name' => '',
|
||||
'sessions' => 'seance',
|
||||
'setDateFromFile' => '',
|
||||
'setDateFromFile_desc' => '',
|
||||
'setDateFromFolder' => '',
|
||||
'setDateFromFolder_desc' => '',
|
||||
'settings' => 'Nastavení',
|
||||
'settings_activate_module' => 'Aktivovat modul',
|
||||
'settings_activate_php_extension' => 'Aktivovat PHP extension',
|
||||
|
@ -1681,6 +1692,8 @@ Jméno: [username]
|
|||
'settings_delete_install_folder' => 'Chcete-li použít SeedDMS, musíte v konfiguračním adresáři odstranit soubor ENABLE_INSTALL_TOOL',
|
||||
'settings_disableChangePassword' => '',
|
||||
'settings_disableChangePassword_desc' => '',
|
||||
'settings_disableReceiptComment' => '',
|
||||
'settings_disableReceiptComment_desc' => '',
|
||||
'settings_disableSelfEdit' => 'Zakázat vlastní úpravy',
|
||||
'settings_disableSelfEdit_desc' => 'Je-li zaškrtnuto, uživatel nemůže upravit svůj vlastní profil',
|
||||
'settings_disable_install' => 'Pokud je to možné, smažte soubor ENABLE_INSTALL_TOOL',
|
||||
|
@ -1746,6 +1759,8 @@ Jméno: [username]
|
|||
'settings_enableLargeFileUpload_desc' => 'Je-li nastaveno, nahrávání souborů je také k dispozici prostřednictvím java appletu s názvem jumploader bez omezení velikosti souboru nastaveného prohlížečem. Umožňuje také nahrát několik souborů v jednom kroku.',
|
||||
'settings_enableLoginByEmail' => '',
|
||||
'settings_enableLoginByEmail_desc' => '',
|
||||
'settings_enableMemcached' => '',
|
||||
'settings_enableMemcached_desc' => '',
|
||||
'settings_enableMenuTasks' => 'Povolit seznam úkolů v nabídce',
|
||||
'settings_enableMenuTasks_desc' => 'Aktivovat / Zakázat položku nabídky, která obsahuje všechny úkoly pro uživatele. Obsahuje dokumenty, které musí být přezkoumány, schváleny atd.',
|
||||
'settings_enableMenuTransmittals' => '',
|
||||
|
@ -1805,6 +1820,8 @@ Jméno: [username]
|
|||
'settings_encryptionKey' => 'Šifrovací klíč',
|
||||
'settings_encryptionKey_desc' => 'Tento řetězec se používá k vytvoření jedinečného identifikátoru, který je přidán jako skryté pole formuláře, aby se zabránilo útokům CSRF.',
|
||||
'settings_error' => 'Chyba',
|
||||
'settings_excludeFoldersDashboard' => '',
|
||||
'settings_excludeFoldersDashboard_desc' => '',
|
||||
'settings_expandFolderTree' => 'Rozbalit strom složek',
|
||||
'settings_expandFolderTree_desc' => 'Rozbalení stromu složek',
|
||||
'settings_expandFolderTree_val0' => 'začít se skrytým stromem',
|
||||
|
@ -1863,6 +1880,8 @@ Jméno: [username]
|
|||
'settings_logFileEnable_desc' => 'Povolení / zakázání souboru protokolu',
|
||||
'settings_logFileMaxLevel' => '',
|
||||
'settings_logFileMaxLevel_desc' => '',
|
||||
'settings_logFileRestApiMaxLevel' => '',
|
||||
'settings_logFileRestApiMaxLevel_desc' => '',
|
||||
'settings_logFileRotation' => 'Otočení souboru protokolu',
|
||||
'settings_logFileRotation_desc' => 'Otáčení souboru protokolu',
|
||||
'settings_loginFailure' => 'Přihlášení selhalo',
|
||||
|
@ -2060,6 +2079,7 @@ Jméno: [username]
|
|||
'sign_out' => 'Odhlásit',
|
||||
'sign_out_user' => 'Odhlášení uživatele',
|
||||
'site_brand' => '',
|
||||
'skip_default_export_cols' => '',
|
||||
'sk_SK' => 'Slovenština',
|
||||
'sort_by_date' => '',
|
||||
'sort_by_expiration_date' => '',
|
||||
|
@ -2189,6 +2209,7 @@ Jméno: [username]
|
|||
'status_revision_sleeping' => 'Probíhá',
|
||||
'status_revisor_removed' => 'Kontrolor odstraněn ze seznamu',
|
||||
'status_unknown' => 'Neznámý',
|
||||
'storage' => '',
|
||||
'storage_size' => 'Velikost úložiště',
|
||||
'subfolder_duplicate_name' => '',
|
||||
'submit_2_fact_auth' => 'Poslán tajný kód',
|
||||
|
|
|
@ -19,10 +19,11 @@
|
|||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// Translators: Admin (3418), dgrutsch (22)
|
||||
// Translators: Admin (3444), dgrutsch (22)
|
||||
|
||||
$text = array(
|
||||
'2_factor_auth' => '2-Faktor Authentifizierung',
|
||||
'2_factor_auth_code' => '2ter Faktor',
|
||||
'2_factor_auth_info' => 'Dieses System erfordert 2-Faktor-Authentifikation. Dazu brauchen Sie einen Authenticator auf Ihrem Mobiltelefon. Unten sehen Sie zwei QR-Codes. Der rechte Code beinhaltet Ihren aktuellen geheimen Schlüssel. Auf der linken Seite wird ein neuer Schlüssel angezeigt. Wenn Sie den neuen Schlüssel speichern, dann stellen Sie zuvor sicher, dass sie ihn mit Ihrem bevorzugten Authenticator (z.B. andOTP) zuvor eingescant haben.',
|
||||
'2_fact_auth_current_secret' => 'Aktuelles Geheimnis',
|
||||
'2_fact_auth_new_secret' => 'Neues Geheimnis',
|
||||
|
@ -408,7 +409,7 @@ URL: [url]</p>',
|
|||
'current_version' => 'Aktuelle Version',
|
||||
'daily' => 'täglich',
|
||||
'dashboard' => 'Übersicht',
|
||||
'databasesearch' => 'Datenbanksuche',
|
||||
'databasesearch' => 'Datenbank',
|
||||
'database_schema_version' => 'Version des Datenbankschemas',
|
||||
'data_loading' => 'Bitte warten, bis die Daten geladen sind …',
|
||||
'date' => 'Datum',
|
||||
|
@ -711,6 +712,8 @@ URL: [url]</p>',
|
|||
'download_header_document_name' => 'Dokumentenname',
|
||||
'download_header_document_no' => 'Dokumenten-Nr.',
|
||||
'download_header_filename' => 'Dateiname',
|
||||
'download_header_folder_name' => 'Ordnername',
|
||||
'download_header_folder_no' => 'Ordner-ID',
|
||||
'download_header_internal_version' => 'Int. Version',
|
||||
'download_header_reviewer' => 'Prüfer',
|
||||
'download_header_review_comment' => 'Prüfkommentar',
|
||||
|
@ -847,6 +850,8 @@ URL: [url]</p>',
|
|||
'export_user_list_csv' => 'Exportiere Benutzer als CSV-Datei',
|
||||
'extension_archive' => 'Erweiterung',
|
||||
'extension_changelog' => 'Versionshistorie',
|
||||
'extension_config' => 'Einstellungen',
|
||||
'extension_info' => 'Erweiterungen',
|
||||
'extension_is_off_now' => 'Erweiterung ist ausgeschaltet',
|
||||
'extension_is_on_now' => 'Erweiterung ist eingeschaltet',
|
||||
'extension_loading' => 'Lade Erweiterungen ...',
|
||||
|
@ -862,7 +867,7 @@ URL: [url]</p>',
|
|||
'extension_readme' => 'Readme',
|
||||
'extension_toggle_error' => 'Konnte Erweiterung nicht aus/einschalten',
|
||||
'extension_version_list' => 'Versionen',
|
||||
'facetfullsearch' => 'Volltextsuche (Facetten)',
|
||||
'facetfullsearch' => 'Volltext (Facetten)',
|
||||
'february' => 'Februar',
|
||||
'file' => 'Datei',
|
||||
'files' => 'Dateien',
|
||||
|
@ -1043,7 +1048,7 @@ URL: [url]</p>',
|
|||
'friday_abbr' => 'Fr',
|
||||
'from' => 'von',
|
||||
'fr_FR' => 'Französisch',
|
||||
'fullsearch' => 'Volltextsuche',
|
||||
'fullsearch' => 'Volltext',
|
||||
'fullsearch_hint' => 'Volltext-Index benutzen',
|
||||
'fulltextsearch_disabled' => 'Volltext-Index ist ausgeschaltet',
|
||||
'fulltext_converters' => 'Index Dokumentenumwandlung',
|
||||
|
@ -1401,6 +1406,7 @@ URL: [url]</p>',
|
|||
'no_groups' => 'keine Gruppen',
|
||||
'no_group_members' => 'Diese Gruppe hat keine Mitglieder',
|
||||
'no_linked_files' => 'Keine verknüpften Dokumente',
|
||||
'no_mimetype' => 'Kein Mime-Type',
|
||||
'no_previous_versions' => 'Keine anderen Versionen gefunden',
|
||||
'no_receipt_needed' => 'Es gibt zur Zeit keine Dokumente, die eine Empfangsbestätigung erfordern.',
|
||||
'no_review_needed' => 'Keine offenen Prüfungen.',
|
||||
|
@ -1617,7 +1623,9 @@ Benutzer: [username]<br />
|
|||
URL: [url]</p>',
|
||||
'removed_workflow_email_subject' => '[sitename]: [name] - Workflow von Dokumentenversion',
|
||||
'removeFolderFromDropFolder' => 'Ordner nach Import entfernen',
|
||||
'removeFolderFromDropFolder_desc' => 'Schalten Sie dies ein, um den importierten Ordner im Ablageordner auf der Festplatte zu löschen.',
|
||||
'remove_approval_log' => 'Einzelne Freigabe entfernen',
|
||||
'remove_from_clipboard' => 'Aus Zwischenablage entfernen',
|
||||
'remove_marked_files' => 'Markierte Dateien löschen',
|
||||
'remove_review_log' => 'Einzelne Prüfung entfernen',
|
||||
'remove_task' => 'Task entfernen',
|
||||
|
@ -1920,6 +1928,7 @@ URL: [url]</p>',
|
|||
'select_category' => 'Klicken zur Auswahl einer Kategorie',
|
||||
'select_created' => 'Klicken zur Auswahl des Erstellungsdatums',
|
||||
'select_documents_for_process' => 'Dokumente auswählen',
|
||||
'select_folder' => 'Ordner auswählen',
|
||||
'select_group' => 'Gruppe auswählen',
|
||||
'select_groups' => 'Klicken zur Auswahl einer Gruppe',
|
||||
'select_grp_approvers' => 'Klicken zur Auswahl einer Freigabegruppe',
|
||||
|
@ -1974,7 +1983,9 @@ Sollten Sie kein Passwort bekommen haben, dann nutzen Sie bitte die Passwort-Ver
|
|||
'service_name' => 'Service-Name',
|
||||
'sessions' => 'Benutzer Online',
|
||||
'setDateFromFile' => 'Datum von importierter Datei übernehmen',
|
||||
'setDateFromFile_desc' => 'Übernimmt das Datum der zu importierenden Datei als Datum des Dokuments in SeedDMS',
|
||||
'setDateFromFolder' => 'Datum von importierten Verzeichnis übernehmen',
|
||||
'setDateFromFolder_desc' => 'Übernimmt das Datum des zu importierenden Ordners als Datum des Ordners in SeedDMS',
|
||||
'settings' => 'Einstellungen',
|
||||
'settings_activate_module' => 'Modul aktivieren',
|
||||
'settings_activate_php_extension' => 'PHP-Erweiterung aktivieren',
|
||||
|
@ -2072,6 +2083,8 @@ Sollten Sie kein Passwort bekommen haben, dann nutzen Sie bitte die Passwort-Ver
|
|||
'settings_delete_install_folder' => 'Um SeedDMS nutzen zu können, müssen Sie die Datei ENABLE_INSTALL_TOOL aus dem Konfigurationsverzeichnis löschen.',
|
||||
'settings_disableChangePassword' => 'Kein Ändern des eigenen Passworts',
|
||||
'settings_disableChangePassword_desc' => 'Anwählen, um das Ändern des eigenen Passworts zu unterbinden. Schalten Sie dies ein, wenn LDAP-Authentifizierung verwendet wird. Es verhindert, dass Benutzer ein Passwort in der Datenbank setzen und damit die LDAP-Authentifizierung umgehen.',
|
||||
'settings_disableReceiptComment' => 'Kommentar für Empfangsbestätigung ausschalten',
|
||||
'settings_disableReceiptComment_desc' => 'Wenn Sie dies einschalten wird bei der Empfangsbestätigung kein Kommentar abgefragt.',
|
||||
'settings_disableSelfEdit' => 'Kein Ändern des eigenen Profils',
|
||||
'settings_disableSelfEdit_desc' => 'Anwählen, um das Ändern des eigenen Profiles zu verhindern.',
|
||||
'settings_disable_install' => 'Lösche ENABLE_INSTALL_TOOL wenn möglich',
|
||||
|
@ -2137,6 +2150,8 @@ Sollten Sie kein Passwort bekommen haben, dann nutzen Sie bitte die Passwort-Ver
|
|||
'settings_enableLargeFileUpload_desc' => 'Wenn dies gesetzt ist, dann ist ebenfalls der Upload von Dokumenten durch ein java applet mit Namen \'jumploader\' ohne Begrenzung der maximalen Dateigröße möglich. Auch das Hochladen mehrerer Dokumente in einem Schritt wird dadurch ermöglicht. Das Einschalten bewirkt, dass keine http only Cookies mehr gesetzt werden.',
|
||||
'settings_enableLoginByEmail' => 'Anmeldung mit E-Mail erlauben',
|
||||
'settings_enableLoginByEmail_desc' => 'Wenn eingeschaltet, dann ist auch die Anmeldung mit der E-Mail-Adresse möglich. Die Anmeldung mit dem Benutzername bleibt weiterhin möglich. Diese Einstellung wird möglicherweise nicht von allen Authentifizierungsmethoden berücksichtigt. Da die E-Mail nicht eindeutig ist, kann die Identifikation fehlschagen, auch wenn das Password aus Sicht des anmeldenen Benutzers korrekt ist.',
|
||||
'settings_enableMemcached' => 'Memcached verwenden',
|
||||
'settings_enableMemcached_desc' => 'Verwendet intern memcached, um einige Datenbankoperationen zu beschleunigen und sollte nicht im Produktionsbetrieb eingeschaltet werden.',
|
||||
'settings_enableMenuTasks' => 'Aufgabenliste im Menü',
|
||||
'settings_enableMenuTasks_desc' => 'Ein-/Ausschalten des Menüeintrags, der anstehenden Aufgaben des Benutzers enthält. Diese Liste beinhaltet Dokumente die geprüft, freigegeben, usw. werden müssen.',
|
||||
'settings_enableMenuTransmittals' => 'Dokumentenlisten im Menü',
|
||||
|
@ -2196,6 +2211,8 @@ Sollten Sie kein Passwort bekommen haben, dann nutzen Sie bitte die Passwort-Ver
|
|||
'settings_encryptionKey' => 'Verschlüsselungs-Sequenz',
|
||||
'settings_encryptionKey_desc' => 'Diese Zeichenkette wird verwendet um eine eindeutige Kennung zu erzeugen, die als verstecktes Feld in einem Formular untergebracht wird. Sie dient zur Verhinderung von CSRF-Attacken.',
|
||||
'settings_error' => 'Fehler',
|
||||
'settings_excludeFoldersDashboard' => 'Ordner nicht für das Dashboard berücksichtigen',
|
||||
'settings_excludeFoldersDashboard_desc' => 'Diese Ordner werden bei der Ausgabe der Dokumente auf dem Dashboard nicht berücksichtigt. Das kann z.B. für archivierte Dokumente oder Dokumente im Mülleimer sinnvoll sein.',
|
||||
'settings_expandFolderTree' => 'Dokumenten-Baum',
|
||||
'settings_expandFolderTree_desc' => 'Auswählen, wie der Dokumenten-Baum nach der Anmeldung angezeigt wird.',
|
||||
'settings_expandFolderTree_val0' => 'versteckt',
|
||||
|
@ -2254,6 +2271,8 @@ Sollten Sie kein Passwort bekommen haben, dann nutzen Sie bitte die Passwort-Ver
|
|||
'settings_logFileEnable_desc' => 'Anwählen, um alle Aktionen in einer Log-Datei im Datenverzeichnis zu speichern.',
|
||||
'settings_logFileMaxLevel' => 'Maximal Log-Level',
|
||||
'settings_logFileMaxLevel_desc' => 'Alle Meldungen bis zu diesem Level werden protokolliert',
|
||||
'settings_logFileRestApiMaxLevel' => 'Rest Api maximal Log-Level',
|
||||
'settings_logFileRestApiMaxLevel_desc' => 'Alle Meldungen der Rest Api bis zu diesem Level werden protokolliert',
|
||||
'settings_logFileRotation' => 'Rotation der Log-Datei',
|
||||
'settings_logFileRotation_desc' => 'Zeitraum nachdem eine Rotation der Log-Datei durchgeführt wird',
|
||||
'settings_loginFailure' => 'Anmeldefehlversuche',
|
||||
|
@ -2451,6 +2470,7 @@ Sollten Sie kein Passwort bekommen haben, dann nutzen Sie bitte die Passwort-Ver
|
|||
'sign_out' => 'Abmelden',
|
||||
'sign_out_user' => 'Benutzer abmelden',
|
||||
'site_brand' => '',
|
||||
'skip_default_export_cols' => 'Keine voreingestellten Spalten',
|
||||
'sk_SK' => 'Slovakisch',
|
||||
'sort_by_date' => 'Nach Datum sortieren',
|
||||
'sort_by_expiration_date' => 'Nach Ablaufdatum sortieren',
|
||||
|
@ -2580,6 +2600,7 @@ Sollten Sie kein Passwort bekommen haben, dann nutzen Sie bitte die Passwort-Ver
|
|||
'status_revision_sleeping' => 'wartend',
|
||||
'status_revisor_removed' => 'Wiederholungsprüfer von Liste entfernt',
|
||||
'status_unknown' => 'unbekannt',
|
||||
'storage' => 'Speicherung',
|
||||
'storage_size' => 'Speicherverbrauch',
|
||||
'subfolder_duplicate_name' => 'Doppelter Unterordnername',
|
||||
'submit_2_fact_auth' => 'Schlüssel speichern',
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
|
||||
$text = array(
|
||||
'2_factor_auth' => '',
|
||||
'2_factor_auth_code' => '',
|
||||
'2_factor_auth_info' => '',
|
||||
'2_fact_auth_current_secret' => '',
|
||||
'2_fact_auth_new_secret' => '',
|
||||
|
@ -491,6 +492,8 @@ $text = array(
|
|||
'download_header_document_name' => '',
|
||||
'download_header_document_no' => '',
|
||||
'download_header_filename' => '',
|
||||
'download_header_folder_name' => '',
|
||||
'download_header_folder_no' => '',
|
||||
'download_header_internal_version' => '',
|
||||
'download_header_reviewer' => '',
|
||||
'download_header_review_comment' => '',
|
||||
|
@ -617,6 +620,8 @@ $text = array(
|
|||
'export_user_list_csv' => '',
|
||||
'extension_archive' => '',
|
||||
'extension_changelog' => '',
|
||||
'extension_config' => '',
|
||||
'extension_info' => '',
|
||||
'extension_is_off_now' => '',
|
||||
'extension_is_on_now' => '',
|
||||
'extension_loading' => '',
|
||||
|
@ -1026,6 +1031,7 @@ URL: [url]',
|
|||
'no_groups' => '',
|
||||
'no_group_members' => '',
|
||||
'no_linked_files' => 'δεν υπάρχουν συνδεδεμένα αρχεία',
|
||||
'no_mimetype' => '',
|
||||
'no_previous_versions' => '',
|
||||
'no_receipt_needed' => '',
|
||||
'no_review_needed' => '',
|
||||
|
@ -1162,7 +1168,9 @@ URL: [url]',
|
|||
'removed_workflow_email_body_html' => '',
|
||||
'removed_workflow_email_subject' => '',
|
||||
'removeFolderFromDropFolder' => '',
|
||||
'removeFolderFromDropFolder_desc' => '',
|
||||
'remove_approval_log' => '',
|
||||
'remove_from_clipboard' => '',
|
||||
'remove_marked_files' => '',
|
||||
'remove_review_log' => '',
|
||||
'remove_task' => '',
|
||||
|
@ -1317,6 +1325,7 @@ URL: [url]',
|
|||
'select_category' => 'Επιλογή κατηγορίας',
|
||||
'select_created' => '',
|
||||
'select_documents_for_process' => '',
|
||||
'select_folder' => '',
|
||||
'select_group' => 'Επιλογή ομάδας',
|
||||
'select_groups' => '',
|
||||
'select_grp_approvers' => '',
|
||||
|
@ -1364,7 +1373,9 @@ URL: [url]',
|
|||
'service_name' => '',
|
||||
'sessions' => '',
|
||||
'setDateFromFile' => '',
|
||||
'setDateFromFile_desc' => '',
|
||||
'setDateFromFolder' => '',
|
||||
'setDateFromFolder_desc' => '',
|
||||
'settings' => 'Ρυθμίσεις',
|
||||
'settings_activate_module' => '',
|
||||
'settings_activate_php_extension' => '',
|
||||
|
@ -1462,6 +1473,8 @@ URL: [url]',
|
|||
'settings_delete_install_folder' => '',
|
||||
'settings_disableChangePassword' => 'Disable changing password',
|
||||
'settings_disableChangePassword_desc' => '',
|
||||
'settings_disableReceiptComment' => '',
|
||||
'settings_disableReceiptComment_desc' => '',
|
||||
'settings_disableSelfEdit' => '',
|
||||
'settings_disableSelfEdit_desc' => '',
|
||||
'settings_disable_install' => '',
|
||||
|
@ -1527,6 +1540,8 @@ URL: [url]',
|
|||
'settings_enableLargeFileUpload_desc' => '',
|
||||
'settings_enableLoginByEmail' => '',
|
||||
'settings_enableLoginByEmail_desc' => '',
|
||||
'settings_enableMemcached' => '',
|
||||
'settings_enableMemcached_desc' => '',
|
||||
'settings_enableMenuTasks' => '',
|
||||
'settings_enableMenuTasks_desc' => '',
|
||||
'settings_enableMenuTransmittals' => '',
|
||||
|
@ -1586,6 +1601,8 @@ URL: [url]',
|
|||
'settings_encryptionKey' => '',
|
||||
'settings_encryptionKey_desc' => '',
|
||||
'settings_error' => '',
|
||||
'settings_excludeFoldersDashboard' => '',
|
||||
'settings_excludeFoldersDashboard_desc' => '',
|
||||
'settings_expandFolderTree' => '',
|
||||
'settings_expandFolderTree_desc' => '',
|
||||
'settings_expandFolderTree_val0' => '',
|
||||
|
@ -1644,6 +1661,8 @@ URL: [url]',
|
|||
'settings_logFileEnable_desc' => '',
|
||||
'settings_logFileMaxLevel' => '',
|
||||
'settings_logFileMaxLevel_desc' => '',
|
||||
'settings_logFileRestApiMaxLevel' => '',
|
||||
'settings_logFileRestApiMaxLevel_desc' => '',
|
||||
'settings_logFileRotation' => '',
|
||||
'settings_logFileRotation_desc' => '',
|
||||
'settings_loginFailure' => '',
|
||||
|
@ -1841,6 +1860,7 @@ URL: [url]',
|
|||
'sign_out' => 'Αποσύνδεση',
|
||||
'sign_out_user' => 'Αποσύνδεση χρήστη',
|
||||
'site_brand' => '',
|
||||
'skip_default_export_cols' => '',
|
||||
'sk_SK' => 'Σλοβάκικα',
|
||||
'sort_by_date' => '',
|
||||
'sort_by_expiration_date' => '',
|
||||
|
@ -1970,6 +1990,7 @@ URL: [url]',
|
|||
'status_revision_sleeping' => '',
|
||||
'status_revisor_removed' => '',
|
||||
'status_unknown' => '',
|
||||
'storage' => '',
|
||||
'storage_size' => '',
|
||||
'subfolder_duplicate_name' => '',
|
||||
'submit_2_fact_auth' => '',
|
||||
|
|
|
@ -19,10 +19,11 @@
|
|||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// Translators: Admin (2517), archonwang (3), dgrutsch (9), netixw (14)
|
||||
// Translators: Admin (2547), archonwang (3), dgrutsch (9), netixw (14)
|
||||
|
||||
$text = array(
|
||||
'2_factor_auth' => '2-factor authentication',
|
||||
'2_factor_auth_code' => '2nd factor',
|
||||
'2_factor_auth_info' => 'This system enforces 2 factor authentication. You will need an Authenticator on your mobile phone. Below you see two QR codes. The right one is your current secret. On the left you can set a new secret. If you set a new secret make sure to rescan it with your preffered authenticator, e.g. andOTP.',
|
||||
'2_fact_auth_current_secret' => 'Current secret',
|
||||
'2_fact_auth_new_secret' => 'New secret',
|
||||
|
@ -408,7 +409,7 @@ URL: [url]</p>',
|
|||
'current_version' => 'Current version',
|
||||
'daily' => 'Daily',
|
||||
'dashboard' => 'Dashboard',
|
||||
'databasesearch' => 'Database search',
|
||||
'databasesearch' => 'Database',
|
||||
'database_schema_version' => 'Version of database schema',
|
||||
'data_loading' => 'Please wait, until the data is loaded …',
|
||||
'date' => 'Date',
|
||||
|
@ -466,7 +467,7 @@ URL: [url]</p>',
|
|||
'documents_user_no_reception' => 'Documents without reception',
|
||||
'documents_user_obsolete' => 'Obsolete documents',
|
||||
'documents_user_reception' => 'Documents awaiting reception',
|
||||
'documents_user_rejected' => 'Rejected documents',
|
||||
'documents_user_rejected' => 'Documents rejected',
|
||||
'documents_user_requiring_attention' => 'Documents owned by you that require attention',
|
||||
'documents_with_notification' => 'Documents with notification',
|
||||
'document_access_permission_changed_email' => 'Permission changed',
|
||||
|
@ -711,6 +712,8 @@ URL: [url]</p>',
|
|||
'download_header_document_name' => 'Document name',
|
||||
'download_header_document_no' => 'Document no',
|
||||
'download_header_filename' => 'File name',
|
||||
'download_header_folder_name' => 'Folder name',
|
||||
'download_header_folder_no' => 'Folder no.',
|
||||
'download_header_internal_version' => 'Int. version',
|
||||
'download_header_reviewer' => 'Reviewer',
|
||||
'download_header_review_comment' => 'Review comment',
|
||||
|
@ -847,6 +850,8 @@ URL: [url]</p>',
|
|||
'export_user_list_csv' => 'Export users as CSV',
|
||||
'extension_archive' => 'Extension',
|
||||
'extension_changelog' => 'Changelog',
|
||||
'extension_config' => 'Settings',
|
||||
'extension_info' => 'Extensions',
|
||||
'extension_is_off_now' => 'Extension off now',
|
||||
'extension_is_on_now' => 'Extension now enabled',
|
||||
'extension_loading' => 'Loading extensions ...',
|
||||
|
@ -862,7 +867,7 @@ URL: [url]</p>',
|
|||
'extension_readme' => 'Readme',
|
||||
'extension_toggle_error' => 'Could not toggle extension',
|
||||
'extension_version_list' => 'Versions',
|
||||
'facetfullsearch' => 'Full text search (facetts)',
|
||||
'facetfullsearch' => 'Full text (facetts)',
|
||||
'february' => 'February',
|
||||
'file' => 'File',
|
||||
'files' => 'Files',
|
||||
|
@ -872,7 +877,7 @@ URL: [url]</p>',
|
|||
'files_loading' => 'Please wait, until the list of files is loaded …',
|
||||
'filetype' => 'File type',
|
||||
'filter_for_documents' => 'Additional filter for documents',
|
||||
'filter_for_documents_and_folders' => 'Additional filter for folder and documents',
|
||||
'filter_for_documents_and_folders' => 'Additional filter for folders and documents',
|
||||
'filter_for_folders' => 'Additional filter for folders',
|
||||
'finished_workflow_log' => 'Finished workflows',
|
||||
'folder' => 'Folder',
|
||||
|
@ -1043,7 +1048,7 @@ URL: [url]</p>',
|
|||
'friday_abbr' => 'Fr',
|
||||
'from' => 'From',
|
||||
'fr_FR' => 'French',
|
||||
'fullsearch' => 'Full text search',
|
||||
'fullsearch' => 'Full text',
|
||||
'fullsearch_hint' => 'Use fulltext index',
|
||||
'fulltextsearch_disabled' => 'Fulltext index is disabled',
|
||||
'fulltext_converters' => 'Index document conversion',
|
||||
|
@ -1195,9 +1200,9 @@ URL: [url]</p>',
|
|||
'language' => 'Language',
|
||||
'lastaccess' => 'Last access',
|
||||
'last_update' => 'Last Update',
|
||||
'latest_newdocuments' => 'Latest added documents',
|
||||
'latest_statuschange' => 'Latest status change',
|
||||
'latest_updateddocuments' => 'Latest updated documents',
|
||||
'latest_newdocuments' => 'Recently added documents',
|
||||
'latest_statuschange' => 'Documents with recent status change',
|
||||
'latest_updateddocuments' => 'Recently updated documents',
|
||||
'legend' => 'Legend',
|
||||
'librarydoc' => 'Document from library',
|
||||
'linked_document' => 'Linked document',
|
||||
|
@ -1403,6 +1408,7 @@ URL: [url]</p>',
|
|||
'no_groups' => 'No groups',
|
||||
'no_group_members' => 'This group has no members',
|
||||
'no_linked_files' => 'No linked files',
|
||||
'no_mimetype' => 'No mimetype',
|
||||
'no_previous_versions' => 'No other versions found',
|
||||
'no_receipt_needed' => 'There are currently no documents requiring a receipt confirmation.',
|
||||
'no_review_needed' => 'No review pending.',
|
||||
|
@ -1619,7 +1625,9 @@ User: [username]<br />
|
|||
URL: [url]</p>',
|
||||
'removed_workflow_email_subject' => '[sitename]: [name] - Removed workflow from document version',
|
||||
'removeFolderFromDropFolder' => 'Remove folder after import',
|
||||
'removeFolderFromDropFolder_desc' => 'Enable this if you want the folder which was imported to be removed from the drop folder.',
|
||||
'remove_approval_log' => 'Remove approval',
|
||||
'remove_from_clipboard' => 'Remove from clipboard',
|
||||
'remove_marked_files' => 'Remove marked files',
|
||||
'remove_review_log' => 'Remove review',
|
||||
'remove_task' => 'Remove task',
|
||||
|
@ -1922,6 +1930,7 @@ URL: [url]</p>',
|
|||
'select_category' => 'Click to select category',
|
||||
'select_created' => 'Click to select date of creation',
|
||||
'select_documents_for_process' => 'Select documents',
|
||||
'select_folder' => 'Select folder',
|
||||
'select_group' => 'Select group',
|
||||
'select_groups' => 'Click to select groups',
|
||||
'select_grp_approvers' => 'Click to select group approver',
|
||||
|
@ -1976,7 +1985,9 @@ If you did not receive a password, please use the password forgotten function on
|
|||
'service_name' => 'Name of service',
|
||||
'sessions' => 'Users online',
|
||||
'setDateFromFile' => 'Take over date from imported file',
|
||||
'setDateFromFile_desc' => 'Take over the date of the imported file as the date of the document in SeedDMS',
|
||||
'setDateFromFolder' => 'Take over date from imported folder',
|
||||
'setDateFromFolder_desc' => 'Take over the date of the imported directory as the date of the folder in SeedDMS',
|
||||
'settings' => 'Settings',
|
||||
'settings_activate_module' => 'Activate module',
|
||||
'settings_activate_php_extension' => 'Activate PHP extension',
|
||||
|
@ -2074,6 +2085,8 @@ If you did not receive a password, please use the password forgotten function on
|
|||
'settings_delete_install_folder' => 'In order to use SeedDMS, you must delete the file ENABLE_INSTALL_TOOL in the configuration directory',
|
||||
'settings_disableChangePassword' => 'Disallow changing own password',
|
||||
'settings_disableChangePassword_desc' => 'If checked the user cannot change his/her password. Turn this on if LDAP authentication is used. It prevents setting a database password and circumvent LDAP authentication.',
|
||||
'settings_disableReceiptComment' => 'Disable comment for reception',
|
||||
'settings_disableReceiptComment_desc' => 'Turning this on will disable comments for receptions.',
|
||||
'settings_disableSelfEdit' => 'Disable Self Edit',
|
||||
'settings_disableSelfEdit_desc' => 'If checked user cannot edit his own profile',
|
||||
'settings_disable_install' => 'Delete file ENABLE_INSTALL_TOOL if possible',
|
||||
|
@ -2139,6 +2152,8 @@ If you did not receive a password, please use the password forgotten function on
|
|||
'settings_enableLargeFileUpload_desc' => 'If set, file upload is also available through a java applet called jumploader without a file size limit set by the browser. It also allows to upload several files in one step. Turning this on will turn off http only cookies.',
|
||||
'settings_enableLoginByEmail' => 'Enable login by email',
|
||||
'settings_enableLoginByEmail_desc' => 'If enabled, the user maya also use the email address for login. This will not disable login with the username. This setting may not be regarded by all authentication methods. Because the email is not unique, authentication may fail, even if the user enters a right password.',
|
||||
'settings_enableMemcached' => 'Use memcached (experimental)',
|
||||
'settings_enableMemcached_desc' => 'Use memcached for accelerating some database operations. This should not be be turned on in production.',
|
||||
'settings_enableMenuTasks' => 'Enable task list in menu',
|
||||
'settings_enableMenuTasks_desc' => 'Enable/Disable the menu item which contains all tasks for the user. This contains documents, that need to be reviewed, approved, etc.',
|
||||
'settings_enableMenuTransmittals' => 'Enable transmittals in menu',
|
||||
|
@ -2198,6 +2213,8 @@ If you did not receive a password, please use the password forgotten function on
|
|||
'settings_encryptionKey' => 'Encryption key',
|
||||
'settings_encryptionKey_desc' => 'This string is used for creating a unique identifier being added as a hidden field to a form in order to prevent CSRF attacks.',
|
||||
'settings_error' => 'Error',
|
||||
'settings_excludeFoldersDashboard' => 'Exclude folders from dashboard',
|
||||
'settings_excludeFoldersDashboard_desc' => 'This folders will not be checked for documents shown on the dashboard. This can be useful for archived documents or documents in the trash.',
|
||||
'settings_expandFolderTree' => 'Expand Folder Tree',
|
||||
'settings_expandFolderTree_desc' => 'Expand Folder Tree',
|
||||
'settings_expandFolderTree_val0' => 'start with tree hidden',
|
||||
|
@ -2256,6 +2273,8 @@ If you did not receive a password, please use the password forgotten function on
|
|||
'settings_logFileEnable_desc' => 'Enable/disable log file',
|
||||
'settings_logFileMaxLevel' => 'Maximum log level',
|
||||
'settings_logFileMaxLevel_desc' => 'All messages up to this level will be logged',
|
||||
'settings_logFileRestApiMaxLevel' => 'Rest Api maximum log level',
|
||||
'settings_logFileRestApiMaxLevel_desc' => 'All messages of the Rest Api up to this level will be logged',
|
||||
'settings_logFileRotation' => 'Log File Rotation',
|
||||
'settings_logFileRotation_desc' => 'The log file rotation',
|
||||
'settings_loginFailure' => 'Login failure',
|
||||
|
@ -2453,6 +2472,7 @@ If you did not receive a password, please use the password forgotten function on
|
|||
'sign_out' => 'Sign out',
|
||||
'sign_out_user' => 'Sign out user',
|
||||
'site_brand' => '',
|
||||
'skip_default_export_cols' => 'Skip default columns',
|
||||
'sk_SK' => 'Slovak',
|
||||
'sort_by_date' => 'Sort by date',
|
||||
'sort_by_expiration_date' => 'Sort by date of expiration',
|
||||
|
@ -2582,6 +2602,7 @@ If you did not receive a password, please use the password forgotten function on
|
|||
'status_revision_sleeping' => 'pending',
|
||||
'status_revisor_removed' => 'Revisor removed from list',
|
||||
'status_unknown' => 'Unknown',
|
||||
'storage' => 'Storage',
|
||||
'storage_size' => 'Storage size',
|
||||
'subfolder_duplicate_name' => 'Duplicate subfolder name',
|
||||
'submit_2_fact_auth' => 'Save secret',
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
|
||||
$text = array(
|
||||
'2_factor_auth' => 'Autenticación de doble factor',
|
||||
'2_factor_auth_code' => '',
|
||||
'2_factor_auth_info' => '',
|
||||
'2_fact_auth_current_secret' => '',
|
||||
'2_fact_auth_new_secret' => '',
|
||||
|
@ -566,6 +567,8 @@ URL: [url]',
|
|||
'download_header_document_name' => '',
|
||||
'download_header_document_no' => '',
|
||||
'download_header_filename' => '',
|
||||
'download_header_folder_name' => '',
|
||||
'download_header_folder_no' => '',
|
||||
'download_header_internal_version' => '',
|
||||
'download_header_reviewer' => '',
|
||||
'download_header_review_comment' => '',
|
||||
|
@ -696,6 +699,8 @@ URL: [url]',
|
|||
'export_user_list_csv' => '',
|
||||
'extension_archive' => '',
|
||||
'extension_changelog' => 'Log de Cambios',
|
||||
'extension_config' => '',
|
||||
'extension_info' => '',
|
||||
'extension_is_off_now' => '',
|
||||
'extension_is_on_now' => '',
|
||||
'extension_loading' => 'Cargando extensiones',
|
||||
|
@ -1152,6 +1157,7 @@ URL: [url]',
|
|||
'no_groups' => 'No hay grupos',
|
||||
'no_group_members' => 'Este grupo no tiene miembros',
|
||||
'no_linked_files' => 'No hay ficheros vinculados',
|
||||
'no_mimetype' => '',
|
||||
'no_previous_versions' => 'No se han encontrado otras versiones',
|
||||
'no_receipt_needed' => '',
|
||||
'no_review_needed' => 'No hay revisiones pendientes.',
|
||||
|
@ -1305,7 +1311,9 @@ nURL: [url]',
|
|||
'removed_workflow_email_body_html' => '',
|
||||
'removed_workflow_email_subject' => '[sitename]: [name] - Eliminar flujo de trabajo de la versión del documento',
|
||||
'removeFolderFromDropFolder' => 'Eliminar carpeta después de importar',
|
||||
'removeFolderFromDropFolder_desc' => '',
|
||||
'remove_approval_log' => '',
|
||||
'remove_from_clipboard' => '',
|
||||
'remove_marked_files' => 'Eliminar ficheros marcados',
|
||||
'remove_review_log' => '',
|
||||
'remove_task' => '',
|
||||
|
@ -1487,6 +1495,7 @@ URL: [url]',
|
|||
'select_category' => 'Haga Click para seleccionar categoría',
|
||||
'select_created' => '',
|
||||
'select_documents_for_process' => '',
|
||||
'select_folder' => '',
|
||||
'select_group' => 'Seleccionar Grupo',
|
||||
'select_groups' => 'Haga Click para seleccionar grupos',
|
||||
'select_grp_approvers' => 'Haga Click para seleccionar grupo de aprobadores',
|
||||
|
@ -1534,7 +1543,9 @@ URL: [url]',
|
|||
'service_name' => '',
|
||||
'sessions' => '',
|
||||
'setDateFromFile' => 'Obtiene la fecha del archivo importado',
|
||||
'setDateFromFile_desc' => '',
|
||||
'setDateFromFolder' => 'Obtiene la fecha de la carpeta importada',
|
||||
'setDateFromFolder_desc' => '',
|
||||
'settings' => 'Configuración',
|
||||
'settings_activate_module' => 'Activar módulo',
|
||||
'settings_activate_php_extension' => 'Activar extensión PHP',
|
||||
|
@ -1632,6 +1643,8 @@ URL: [url]',
|
|||
'settings_delete_install_folder' => 'Para utilizar SeedDMS, debe eliminar el archivo ENABLE_INSTALL_TOOL de la carpeta de configuración',
|
||||
'settings_disableChangePassword' => '',
|
||||
'settings_disableChangePassword_desc' => '',
|
||||
'settings_disableReceiptComment' => '',
|
||||
'settings_disableReceiptComment_desc' => '',
|
||||
'settings_disableSelfEdit' => 'Deshabilitar autoedición',
|
||||
'settings_disableSelfEdit_desc' => 'Si está seleccionado el usuario no podrá editar su propio perfil',
|
||||
'settings_disable_install' => 'Eliminar el archivo ENABLE_INSTALL_TOOL se es posible',
|
||||
|
@ -1697,6 +1710,8 @@ URL: [url]',
|
|||
'settings_enableLargeFileUpload_desc' => 'Si se habilita, la carga de ficheros también estará disponible a través de un applet java llamado jumploader, sin límite de tamaño de fichero fijado por el navegador. También permite la carga de múltiples ficheros de una sola vez.',
|
||||
'settings_enableLoginByEmail' => '',
|
||||
'settings_enableLoginByEmail_desc' => '',
|
||||
'settings_enableMemcached' => '',
|
||||
'settings_enableMemcached_desc' => '',
|
||||
'settings_enableMenuTasks' => 'Activar en el menú la lista de tareas',
|
||||
'settings_enableMenuTasks_desc' => 'Habilita/Deshabillita la parte del menú que contiene todas las tareas para el usuario. Contiene documentos que necesitan ser revisados, aprobados, etc.',
|
||||
'settings_enableMenuTransmittals' => '',
|
||||
|
@ -1756,6 +1771,8 @@ URL: [url]',
|
|||
'settings_encryptionKey' => 'Clave de cifrado',
|
||||
'settings_encryptionKey_desc' => 'Esta cadena se utiliza para crear un identificador único añadido como campo oculto a formularios para prevenir ataques CSRF.',
|
||||
'settings_error' => 'Error',
|
||||
'settings_excludeFoldersDashboard' => '',
|
||||
'settings_excludeFoldersDashboard_desc' => '',
|
||||
'settings_expandFolderTree' => 'Expandir árbol de carpetas',
|
||||
'settings_expandFolderTree_desc' => 'Expandir árbol de carpetas',
|
||||
'settings_expandFolderTree_val0' => 'Comenzar con el árbol oculto',
|
||||
|
@ -1814,6 +1831,8 @@ URL: [url]',
|
|||
'settings_logFileEnable_desc' => 'Habilitar/Deshabilitar archivo de registro',
|
||||
'settings_logFileMaxLevel' => '',
|
||||
'settings_logFileMaxLevel_desc' => '',
|
||||
'settings_logFileRestApiMaxLevel' => '',
|
||||
'settings_logFileRestApiMaxLevel_desc' => '',
|
||||
'settings_logFileRotation' => 'Rotación del archivo de registro',
|
||||
'settings_logFileRotation_desc' => 'Rotación del archivo de registro',
|
||||
'settings_loginFailure' => 'Fallo de acceso',
|
||||
|
@ -2011,6 +2030,7 @@ URL: [url]',
|
|||
'sign_out' => 'Salir',
|
||||
'sign_out_user' => 'Desconectar usuario',
|
||||
'site_brand' => '',
|
||||
'skip_default_export_cols' => '',
|
||||
'sk_SK' => 'Slovaco',
|
||||
'sort_by_date' => 'Ordenar por Fecha',
|
||||
'sort_by_expiration_date' => 'Ordenar por fecha de vencimiento',
|
||||
|
@ -2140,6 +2160,7 @@ URL: [url]',
|
|||
'status_revision_sleeping' => 'pendiente',
|
||||
'status_revisor_removed' => '',
|
||||
'status_unknown' => 'Desconocido',
|
||||
'storage' => '',
|
||||
'storage_size' => 'Tamaño de almacenamiento',
|
||||
'subfolder_duplicate_name' => '',
|
||||
'submit_2_fact_auth' => '',
|
||||
|
|
|
@ -19,10 +19,11 @@
|
|||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// Translators: Admin (1173), jeromerobert (50), lonnnew (9), Oudiceval (1171)
|
||||
// Translators: Admin (1175), jeromerobert (50), lonnnew (9), Oudiceval (1171)
|
||||
|
||||
$text = array(
|
||||
'2_factor_auth' => 'Authentification forte',
|
||||
'2_factor_auth_code' => '',
|
||||
'2_factor_auth_info' => 'Ce système requiert une authentification à deux facteurs. Cela nécessite l’installation de Google Authenticator sur votre téléphone mobile. Ci-dessous sont visibles deux QR codes. Celui de droite correspond à votre clé secrète actuelle. Celui de gauche permet de définir une nouvelle clé secrète. Lorsque vous définissez une nouvelle clé secrète, assurez-vous de la scanner avec Google Authenticator.',
|
||||
'2_fact_auth_current_secret' => 'Clé secrète actuelle',
|
||||
'2_fact_auth_new_secret' => 'Nouvelle clé secrète',
|
||||
|
@ -681,6 +682,8 @@ URL : [url]</p>',
|
|||
'download_header_document_name' => 'Nom du document',
|
||||
'download_header_document_no' => 'N° du document',
|
||||
'download_header_filename' => 'Nom du fichier',
|
||||
'download_header_folder_name' => '',
|
||||
'download_header_folder_no' => '',
|
||||
'download_header_internal_version' => 'Version interne',
|
||||
'download_header_reviewer' => 'Examinateur',
|
||||
'download_header_review_comment' => 'Commentaire de vérification',
|
||||
|
@ -817,6 +820,8 @@ URL : [url]</p>',
|
|||
'export_user_list_csv' => 'Exporter les utilisateurs en CSV',
|
||||
'extension_archive' => 'Extension',
|
||||
'extension_changelog' => 'Journal des modifications',
|
||||
'extension_config' => '',
|
||||
'extension_info' => '',
|
||||
'extension_is_off_now' => 'L’extension est désactivée',
|
||||
'extension_is_on_now' => 'L’extension est activée',
|
||||
'extension_loading' => 'Chargement des extensions…',
|
||||
|
@ -1358,6 +1363,7 @@ URL : [url]</p>',
|
|||
'no_groups' => 'Aucun groupe',
|
||||
'no_group_members' => 'Ce groupe ne contient aucun membre',
|
||||
'no_linked_files' => 'Aucun fichier lié',
|
||||
'no_mimetype' => '',
|
||||
'no_previous_versions' => 'Aucune autre version trouvée',
|
||||
'no_receipt_needed' => 'Il n’y a actuellement aucun document nécessitant une confirmation de réception.',
|
||||
'no_review_needed' => 'Aucune vérification en attente',
|
||||
|
@ -1572,7 +1578,9 @@ Utilisateur : [username]<br />
|
|||
URL : [url]</p>',
|
||||
'removed_workflow_email_subject' => '[sitename] : [name] - Workflow retiré de la version du doument',
|
||||
'removeFolderFromDropFolder' => 'Suppression du dossier après importation',
|
||||
'removeFolderFromDropFolder_desc' => '',
|
||||
'remove_approval_log' => 'Approbation retirée',
|
||||
'remove_from_clipboard' => '',
|
||||
'remove_marked_files' => 'Supprimer les fichiers sélectionnés',
|
||||
'remove_review_log' => 'Vérification retirée',
|
||||
'remove_task' => '',
|
||||
|
@ -1869,6 +1877,7 @@ URL : [url]</p>',
|
|||
'select_category' => 'Cliquer pour choisir une catégorie',
|
||||
'select_created' => '',
|
||||
'select_documents_for_process' => '',
|
||||
'select_folder' => '',
|
||||
'select_group' => 'Sélectionner un groupe',
|
||||
'select_groups' => 'Cliquer pour choisir un groupe',
|
||||
'select_grp_approvers' => 'Cliquer pour choisir un groupe d\'approbateur',
|
||||
|
@ -1921,7 +1930,9 @@ Nom : [username]
|
|||
'service_name' => '',
|
||||
'sessions' => 'Utilisateurs en ligne',
|
||||
'setDateFromFile' => 'Reprendre la date du fichier importé',
|
||||
'setDateFromFile_desc' => '',
|
||||
'setDateFromFolder' => 'Reprendre la date du dossier importé',
|
||||
'setDateFromFolder_desc' => '',
|
||||
'settings' => 'Configuration',
|
||||
'settings_activate_module' => 'Activez le module',
|
||||
'settings_activate_php_extension' => 'Activez l\'extension PHP',
|
||||
|
@ -2019,6 +2030,8 @@ Nom : [username]
|
|||
'settings_delete_install_folder' => 'Pour utiliser SeedDMS, vous devez supprimer le fichier ENABLE_INSTALL_TOOL dans le répertoire de configuration',
|
||||
'settings_disableChangePassword' => '',
|
||||
'settings_disableChangePassword_desc' => '',
|
||||
'settings_disableReceiptComment' => '',
|
||||
'settings_disableReceiptComment_desc' => '',
|
||||
'settings_disableSelfEdit' => 'Désactiver auto modification',
|
||||
'settings_disableSelfEdit_desc' => 'Si coché, l\'utilisateur ne peut pas éditer son profil',
|
||||
'settings_disable_install' => 'Si possible, supprimer le fichier ENABLE_INSTALL_TOOL',
|
||||
|
@ -2084,6 +2097,8 @@ Nom : [username]
|
|||
'settings_enableLargeFileUpload_desc' => 'Si défini, le téléchargement de fichier est également disponible via un applet java appelé jumploader sans limite de taille définie par le navigateur. Il permet également de télécharger plusieurs fichiers en une seule fois.',
|
||||
'settings_enableLoginByEmail' => '',
|
||||
'settings_enableLoginByEmail_desc' => '',
|
||||
'settings_enableMemcached' => '',
|
||||
'settings_enableMemcached_desc' => '',
|
||||
'settings_enableMenuTasks' => 'Activer le menu des tâches',
|
||||
'settings_enableMenuTasks_desc' => 'Affiche un menu avec la liste des tâches. Cette liste contient les documents en attente d’une action par l’utilisateur.',
|
||||
'settings_enableMenuTransmittals' => '',
|
||||
|
@ -2143,6 +2158,8 @@ Nom : [username]
|
|||
'settings_encryptionKey' => 'Clé de cryptage',
|
||||
'settings_encryptionKey_desc' => 'Cette chaîne est utilisée pour créer un identifiant unique étant ajouté comme champ masqué à un formulaire afin de prévenir des attaques CSRF.',
|
||||
'settings_error' => 'Erreur',
|
||||
'settings_excludeFoldersDashboard' => '',
|
||||
'settings_excludeFoldersDashboard_desc' => '',
|
||||
'settings_expandFolderTree' => 'Dérouler l\'arborescence des dossiers',
|
||||
'settings_expandFolderTree_desc' => 'Dérouler l\'arborescence des dossiers',
|
||||
'settings_expandFolderTree_val0' => 'Démarrer avec l\'arborescence cachée',
|
||||
|
@ -2201,6 +2218,8 @@ Nom : [username]
|
|||
'settings_logFileEnable_desc' => 'Active/désactive le fichier journal',
|
||||
'settings_logFileMaxLevel' => '',
|
||||
'settings_logFileMaxLevel_desc' => '',
|
||||
'settings_logFileRestApiMaxLevel' => '',
|
||||
'settings_logFileRestApiMaxLevel_desc' => '',
|
||||
'settings_logFileRotation' => 'Rotation fichier journal',
|
||||
'settings_logFileRotation_desc' => 'Rotation fichier journal',
|
||||
'settings_loginFailure' => 'Max. échecs de connexion',
|
||||
|
@ -2398,6 +2417,7 @@ Nom : [username]
|
|||
'sign_out' => 'Déconnexion',
|
||||
'sign_out_user' => 'Déconnecter l\'utilisateur',
|
||||
'site_brand' => '',
|
||||
'skip_default_export_cols' => '',
|
||||
'sk_SK' => 'Slovaque',
|
||||
'sort_by_date' => 'Trier par date',
|
||||
'sort_by_expiration_date' => 'Trier par date d’expiration',
|
||||
|
@ -2527,6 +2547,7 @@ Nom : [username]
|
|||
'status_revision_sleeping' => 'en attente',
|
||||
'status_revisor_removed' => 'Réviseur retiré de la liste',
|
||||
'status_unknown' => 'Inconnu',
|
||||
'storage' => '',
|
||||
'storage_size' => 'Taille occupée',
|
||||
'subfolder_duplicate_name' => 'Un sous-dossier porte déjà ce nom !',
|
||||
'submit_2_fact_auth' => 'Enregistrer la clé secrète',
|
||||
|
@ -2671,7 +2692,7 @@ URL : [url]</p>',
|
|||
'type_to_filter' => 'Filtrer dans la liste',
|
||||
'type_to_search' => 'Effectuer une recherche',
|
||||
'uk_UA' => 'Ukrénien',
|
||||
'undefined' => '',
|
||||
'undefined' => 'indéfini',
|
||||
'under_folder' => 'Dans le dossier',
|
||||
'unknown_attrdef' => 'Définition d’attribut inconnue',
|
||||
'unknown_command' => 'Commande non reconnue.',
|
||||
|
@ -2690,7 +2711,7 @@ URL : [url]</p>',
|
|||
'unlock_cause_locking_user' => 'Vous pouvez encore le mettre à jour, car vous êtes le seul à l\'avoir verrouillé. Le verrouillage sera automatiquement annulé.',
|
||||
'unlock_document' => 'Déverrouiller',
|
||||
'update' => 'Mettre à jour',
|
||||
'updated' => '',
|
||||
'updated' => 'mis à jour',
|
||||
'updated_documents' => '',
|
||||
'update_approvers' => 'Mettre à jour la liste des approbateurs',
|
||||
'update_document' => 'Mettre à jour',
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -23,6 +23,7 @@
|
|||
|
||||
$text = array(
|
||||
'2_factor_auth' => 'Kétfaktoros azonosítás',
|
||||
'2_factor_auth_code' => '',
|
||||
'2_factor_auth_info' => 'A rendszernek két faktoros hitelesítése van. Szükséged lesz a Google Authenticator-ra a mobil telefonodon. Lejebb látható két QR kód. A jobb oldali a saját jelszavát, a baloldali egy új titkos jelszót tartalmaz. Ha új jelszót szeretne beállítani, szkennelje be újra a Goolge Authenticator-al.',
|
||||
'2_fact_auth_current_secret' => '',
|
||||
'2_fact_auth_new_secret' => '',
|
||||
|
@ -560,6 +561,8 @@ URL: [url]',
|
|||
'download_header_document_name' => '',
|
||||
'download_header_document_no' => '',
|
||||
'download_header_filename' => '',
|
||||
'download_header_folder_name' => '',
|
||||
'download_header_folder_no' => '',
|
||||
'download_header_internal_version' => '',
|
||||
'download_header_reviewer' => '',
|
||||
'download_header_review_comment' => '',
|
||||
|
@ -690,6 +693,8 @@ URL: [url]',
|
|||
'export_user_list_csv' => '',
|
||||
'extension_archive' => 'Bővítmények',
|
||||
'extension_changelog' => 'Változásnapló',
|
||||
'extension_config' => '',
|
||||
'extension_info' => '',
|
||||
'extension_is_off_now' => '',
|
||||
'extension_is_on_now' => '',
|
||||
'extension_loading' => 'Kiterjesztések betöltése ...',
|
||||
|
@ -1143,6 +1148,7 @@ URL: [url]',
|
|||
'no_groups' => 'Nincsenek csoportok',
|
||||
'no_group_members' => 'Ennek a csoportnak nincsenek tagjai',
|
||||
'no_linked_files' => 'Nincsenek hivatkozott állományok',
|
||||
'no_mimetype' => '',
|
||||
'no_previous_versions' => 'Nem találhatók más változatok',
|
||||
'no_receipt_needed' => '',
|
||||
'no_review_needed' => 'Nincs folyamatban lévő felülvizsgálat.',
|
||||
|
@ -1296,7 +1302,9 @@ URL: [url]',
|
|||
'removed_workflow_email_body_html' => '',
|
||||
'removed_workflow_email_subject' => '[sitename]: [name] - Dokumentum változatból eltávolított munkafolyamat',
|
||||
'removeFolderFromDropFolder' => '',
|
||||
'removeFolderFromDropFolder_desc' => '',
|
||||
'remove_approval_log' => '',
|
||||
'remove_from_clipboard' => '',
|
||||
'remove_marked_files' => 'Megjelölt állományok eltávolítása',
|
||||
'remove_review_log' => '',
|
||||
'remove_task' => '',
|
||||
|
@ -1477,6 +1485,7 @@ URL: [url]',
|
|||
'select_category' => 'Kattintson a kategória kiválasztásához',
|
||||
'select_created' => '',
|
||||
'select_documents_for_process' => '',
|
||||
'select_folder' => '',
|
||||
'select_group' => 'Csoport kiválasztása',
|
||||
'select_groups' => 'Kattintson a csoportok kijelöléséhez',
|
||||
'select_grp_approvers' => 'Kattintson a csoport jóváhagyó kijelöléséhez',
|
||||
|
@ -1524,7 +1533,9 @@ URL: [url]',
|
|||
'service_name' => '',
|
||||
'sessions' => '',
|
||||
'setDateFromFile' => '',
|
||||
'setDateFromFile_desc' => '',
|
||||
'setDateFromFolder' => '',
|
||||
'setDateFromFolder_desc' => '',
|
||||
'settings' => 'Beállítások',
|
||||
'settings_activate_module' => 'Modul aktiválása',
|
||||
'settings_activate_php_extension' => 'PHP kiterjesztés aktiválása',
|
||||
|
@ -1622,6 +1633,8 @@ URL: [url]',
|
|||
'settings_delete_install_folder' => 'A SeedDMS használatához törölnie kell a konfigurációs könyvtárban található ENABLE_INSTALL_TOOL állományt.',
|
||||
'settings_disableChangePassword' => '',
|
||||
'settings_disableChangePassword_desc' => '',
|
||||
'settings_disableReceiptComment' => '',
|
||||
'settings_disableReceiptComment_desc' => '',
|
||||
'settings_disableSelfEdit' => 'Saját adatok szerkesztésének tiltása',
|
||||
'settings_disableSelfEdit_desc' => 'Ha be van jelölve a felhasználó nem szerkesztheti saját profilját',
|
||||
'settings_disable_install' => 'Törölje az ENABLE_INSTALL_TOOL állományt, ha lehetséges',
|
||||
|
@ -1687,6 +1700,8 @@ URL: [url]',
|
|||
'settings_enableLargeFileUpload_desc' => 'Ha beállítja az állományok feltöltése elérhető lesz egy jumploadernek hívott java appleten keresztül a böngészőprogram állomány méret korlátja nélkül. Ez engedélyezi több állomány feltöltését egy lépésben.',
|
||||
'settings_enableLoginByEmail' => '',
|
||||
'settings_enableLoginByEmail_desc' => '',
|
||||
'settings_enableMemcached' => '',
|
||||
'settings_enableMemcached_desc' => '',
|
||||
'settings_enableMenuTasks' => 'Feladatok menüpont engedélyezése',
|
||||
'settings_enableMenuTasks_desc' => 'Engedélyezi / letiltja a menüelemet, amely a felhasználó összes feladatát tartalmazza. Ez olyan dokumentumokat tartalmaz, amelyeket felül kell vizsgálni, jóvá kell hagyni stb.',
|
||||
'settings_enableMenuTransmittals' => '',
|
||||
|
@ -1746,6 +1761,8 @@ URL: [url]',
|
|||
'settings_encryptionKey' => 'Titkosító kulcs',
|
||||
'settings_encryptionKey_desc' => 'Ez a karaktersorozat használható egyedi azonosító létrehozásához amely rejtett mezőként lesz hozzáadva az űrlapokhoz a CSRF támadások megelőzésére.',
|
||||
'settings_error' => 'Hiba',
|
||||
'settings_excludeFoldersDashboard' => '',
|
||||
'settings_excludeFoldersDashboard_desc' => '',
|
||||
'settings_expandFolderTree' => 'Mappa fastruktúra kibontása',
|
||||
'settings_expandFolderTree_desc' => 'Mappa fastruktúra kibontása',
|
||||
'settings_expandFolderTree_val0' => 'indulás rejtett fastruktúrával',
|
||||
|
@ -1804,6 +1821,8 @@ URL: [url]',
|
|||
'settings_logFileEnable_desc' => 'Naplóállomány engedélyezése/tiltása',
|
||||
'settings_logFileMaxLevel' => '',
|
||||
'settings_logFileMaxLevel_desc' => '',
|
||||
'settings_logFileRestApiMaxLevel' => '',
|
||||
'settings_logFileRestApiMaxLevel_desc' => '',
|
||||
'settings_logFileRotation' => 'Naplóállomány forgatása',
|
||||
'settings_logFileRotation_desc' => 'A naplóállomány forgatása',
|
||||
'settings_loginFailure' => 'Bejelentkezési hiba',
|
||||
|
@ -2001,6 +2020,7 @@ URL: [url]',
|
|||
'sign_out' => 'Kijelentkezés',
|
||||
'sign_out_user' => 'Kijelentkezés',
|
||||
'site_brand' => '',
|
||||
'skip_default_export_cols' => '',
|
||||
'sk_SK' => 'Szlovák',
|
||||
'sort_by_date' => '',
|
||||
'sort_by_expiration_date' => '',
|
||||
|
@ -2130,6 +2150,7 @@ URL: [url]',
|
|||
'status_revision_sleeping' => '',
|
||||
'status_revisor_removed' => '',
|
||||
'status_unknown' => 'Ismeretlen',
|
||||
'storage' => '',
|
||||
'storage_size' => 'Tároló mérete',
|
||||
'subfolder_duplicate_name' => '',
|
||||
'submit_2_fact_auth' => '',
|
||||
|
|
|
@ -19,10 +19,11 @@
|
|||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// Translators: Admin (485), atoz-chevara (835)
|
||||
// Translators: Admin (489), atoz-chevara (835)
|
||||
|
||||
$text = array(
|
||||
'2_factor_auth' => '',
|
||||
'2_factor_auth_code' => '',
|
||||
'2_factor_auth_info' => '',
|
||||
'2_fact_auth_current_secret' => 'Kunci rahasi saat ini',
|
||||
'2_fact_auth_new_secret' => '',
|
||||
|
@ -381,7 +382,7 @@ URL: [url]</p>',
|
|||
'dashboard' => '',
|
||||
'databasesearch' => 'Pencarian Basis data',
|
||||
'database_schema_version' => 'Versi skema basis data',
|
||||
'data_loading' => '',
|
||||
'data_loading' => 'Harap tunggu, data sedang disiapkan.',
|
||||
'date' => 'Tanggal',
|
||||
'days' => 'hari',
|
||||
'debug' => 'Debug',
|
||||
|
@ -615,6 +616,8 @@ URL: [url]</p>',
|
|||
'download_header_document_name' => 'Nama dokumen',
|
||||
'download_header_document_no' => 'Nomor Dokumen',
|
||||
'download_header_filename' => 'Nama berkas',
|
||||
'download_header_folder_name' => '',
|
||||
'download_header_folder_no' => '',
|
||||
'download_header_internal_version' => 'Int. versi',
|
||||
'download_header_reviewer' => 'Pengulas',
|
||||
'download_header_review_comment' => '',
|
||||
|
@ -686,7 +689,7 @@ URL: [url]</p>',
|
|||
'empty_notify_list' => 'Tidak ada entri',
|
||||
'enable_extension' => 'Aktifkan ekstensi',
|
||||
'enddate' => '',
|
||||
'en_GB' => '',
|
||||
'en_GB' => 'Inggris (GB)',
|
||||
'equal_transition_states' => 'Status awal dan akhir sama',
|
||||
'error' => 'Galat',
|
||||
'error_add_aro' => 'Kesalahan saat menambahkan objek permintaan akses',
|
||||
|
@ -746,6 +749,8 @@ URL: [url]',
|
|||
'export_user_list_csv' => 'Ekspor pengguna sebagai CSV',
|
||||
'extension_archive' => 'Ekstensi',
|
||||
'extension_changelog' => '',
|
||||
'extension_config' => '',
|
||||
'extension_info' => '',
|
||||
'extension_is_off_now' => 'Perpanjangan tidak aktif sekarang',
|
||||
'extension_is_on_now' => '',
|
||||
'extension_loading' => 'Memuat ekstensi...',
|
||||
|
@ -962,7 +967,7 @@ URL: [url]</p>',
|
|||
'index_processing' => '',
|
||||
'index_waiting' => 'Mengunggu',
|
||||
'individuals' => 'Perorangan',
|
||||
'individuals_in_groups' => '',
|
||||
'individuals_in_groups' => 'Anggota di grup',
|
||||
'ind_review_removed' => 'Perubahan status, karena ulasan pengguna [name] telah dihapus.',
|
||||
'info_recipients_tab_not_released' => '',
|
||||
'info_rm_user_from_processes_none' => '',
|
||||
|
@ -1236,6 +1241,7 @@ URL: [url]',
|
|||
'no_groups' => 'Tidak ada kelompok',
|
||||
'no_group_members' => 'Kelompok ini tidak memiliki anggota',
|
||||
'no_linked_files' => 'Tidak ada berkas yang ditautkan',
|
||||
'no_mimetype' => '',
|
||||
'no_previous_versions' => 'Tidak ada versi lain yang ditemukan',
|
||||
'no_receipt_needed' => 'Saat ini tidak ada dokumen yang memerlukan konfirmasi tanda terima.',
|
||||
'no_review_needed' => 'Tidak ada tinjauan yang tertunda.',
|
||||
|
@ -1405,7 +1411,9 @@ URL: [url]',
|
|||
'removed_workflow_email_body_html' => '',
|
||||
'removed_workflow_email_subject' => '',
|
||||
'removeFolderFromDropFolder' => 'Hapus folder setelah diimpor',
|
||||
'removeFolderFromDropFolder_desc' => '',
|
||||
'remove_approval_log' => 'Hapus persetujuan',
|
||||
'remove_from_clipboard' => '',
|
||||
'remove_marked_files' => 'Hapus file yang ditandai',
|
||||
'remove_review_log' => 'Hapus ulasan',
|
||||
'remove_task' => '',
|
||||
|
@ -1560,6 +1568,7 @@ URL: [url]',
|
|||
'select_category' => 'Klik untuk memilih kategori',
|
||||
'select_created' => '',
|
||||
'select_documents_for_process' => '',
|
||||
'select_folder' => '',
|
||||
'select_group' => 'Pilih group',
|
||||
'select_groups' => 'Klik untuk memilih groups',
|
||||
'select_grp_approvers' => 'Klik untuk memilih group approver',
|
||||
|
@ -1614,7 +1623,9 @@ Jika Anda tidak menerima kata sandi, silakan gunakan fitur lupa kata sandi di ha
|
|||
'service_name' => '',
|
||||
'sessions' => 'Pengguna Online',
|
||||
'setDateFromFile' => 'Ambil alih tanggal dari file yang diimpor',
|
||||
'setDateFromFile_desc' => '',
|
||||
'setDateFromFolder' => 'Ambil alih tanggal dari folder yang diimpor',
|
||||
'setDateFromFolder_desc' => '',
|
||||
'settings' => 'Pengaturan',
|
||||
'settings_activate_module' => 'Aktifkan modul',
|
||||
'settings_activate_php_extension' => 'Aktifkan ekstensi PHP',
|
||||
|
@ -1712,6 +1723,8 @@ Jika Anda tidak menerima kata sandi, silakan gunakan fitur lupa kata sandi di ha
|
|||
'settings_delete_install_folder' => 'Untuk menggunakan SeedDMS, Anda harus menghapus file ENABLE_INSTALL_TOOL di direktori konfigurasi',
|
||||
'settings_disableChangePassword' => '',
|
||||
'settings_disableChangePassword_desc' => '',
|
||||
'settings_disableReceiptComment' => '',
|
||||
'settings_disableReceiptComment_desc' => '',
|
||||
'settings_disableSelfEdit' => '',
|
||||
'settings_disableSelfEdit_desc' => 'Jika dicentang, pengguna tidak dapat mengedit profilnya sendiri',
|
||||
'settings_disable_install' => '',
|
||||
|
@ -1777,6 +1790,8 @@ Jika Anda tidak menerima kata sandi, silakan gunakan fitur lupa kata sandi di ha
|
|||
'settings_enableLargeFileUpload_desc' => 'Jika disetel, unggah berkas juga tersedia melalui java applet yang disebut jumploader tanpa batas ukuran berkas yang ditetapkan oleh peramban. Ini juga memungkinkan untuk mengunggah beberapa berkas dalam satu langkah. Mengaktifkan ini akan mematikan cookie http saja.',
|
||||
'settings_enableLoginByEmail' => '',
|
||||
'settings_enableLoginByEmail_desc' => '',
|
||||
'settings_enableMemcached' => '',
|
||||
'settings_enableMemcached_desc' => '',
|
||||
'settings_enableMenuTasks' => 'Aktifkan daftar task di menu',
|
||||
'settings_enableMenuTasks_desc' => '',
|
||||
'settings_enableMenuTransmittals' => '',
|
||||
|
@ -1836,6 +1851,8 @@ Jika Anda tidak menerima kata sandi, silakan gunakan fitur lupa kata sandi di ha
|
|||
'settings_encryptionKey' => '',
|
||||
'settings_encryptionKey_desc' => '',
|
||||
'settings_error' => 'Galat',
|
||||
'settings_excludeFoldersDashboard' => '',
|
||||
'settings_excludeFoldersDashboard_desc' => '',
|
||||
'settings_expandFolderTree' => '',
|
||||
'settings_expandFolderTree_desc' => '',
|
||||
'settings_expandFolderTree_val0' => '',
|
||||
|
@ -1894,6 +1911,8 @@ Jika Anda tidak menerima kata sandi, silakan gunakan fitur lupa kata sandi di ha
|
|||
'settings_logFileEnable_desc' => '',
|
||||
'settings_logFileMaxLevel' => '',
|
||||
'settings_logFileMaxLevel_desc' => '',
|
||||
'settings_logFileRestApiMaxLevel' => '',
|
||||
'settings_logFileRestApiMaxLevel_desc' => '',
|
||||
'settings_logFileRotation' => '',
|
||||
'settings_logFileRotation_desc' => '',
|
||||
'settings_loginFailure' => 'Gagal masuk',
|
||||
|
@ -2091,6 +2110,7 @@ Jika Anda tidak menerima kata sandi, silakan gunakan fitur lupa kata sandi di ha
|
|||
'sign_out' => 'Keluar',
|
||||
'sign_out_user' => '',
|
||||
'site_brand' => '',
|
||||
'skip_default_export_cols' => '',
|
||||
'sk_SK' => 'Slovakia',
|
||||
'sort_by_date' => 'Urutkan berdasarkan tanggal',
|
||||
'sort_by_expiration_date' => 'Urutkan berdasarkan tanggal kadaluwarsa',
|
||||
|
@ -2220,6 +2240,7 @@ Jika Anda tidak menerima kata sandi, silakan gunakan fitur lupa kata sandi di ha
|
|||
'status_revision_sleeping' => 'tertunda',
|
||||
'status_revisor_removed' => '',
|
||||
'status_unknown' => 'Tidak diketahui',
|
||||
'storage' => '',
|
||||
'storage_size' => 'Ukuran penyimpanan',
|
||||
'subfolder_duplicate_name' => 'Duplikasi nama subfolder',
|
||||
'submit_2_fact_auth' => '',
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
|
||||
$text = array(
|
||||
'2_factor_auth' => 'Autorizzazione a due fattori',
|
||||
'2_factor_auth_code' => '',
|
||||
'2_factor_auth_info' => 'Questo sistema usa autenticazione a due fattori. Sarà necessario il “Google Authenticator” sul tuo telephono cellulare. Qui potete vedere due codici QR. Quello di destra è il tuo segreto. è sulla sinistra chè un nuovo segreto. Se si imposta un nuovo segreto per assicurarsi si deve scansione con “Google Authenticator” di nuovo.',
|
||||
'2_fact_auth_current_secret' => '',
|
||||
'2_fact_auth_new_secret' => '',
|
||||
|
@ -570,6 +571,8 @@ URL: [url]',
|
|||
'download_header_document_name' => '',
|
||||
'download_header_document_no' => '',
|
||||
'download_header_filename' => '',
|
||||
'download_header_folder_name' => '',
|
||||
'download_header_folder_no' => '',
|
||||
'download_header_internal_version' => '',
|
||||
'download_header_reviewer' => '',
|
||||
'download_header_review_comment' => '',
|
||||
|
@ -700,6 +703,8 @@ URL: [url]',
|
|||
'export_user_list_csv' => '',
|
||||
'extension_archive' => 'Archivio estensioni',
|
||||
'extension_changelog' => 'Registro delle modifiche delle estensioni',
|
||||
'extension_config' => '',
|
||||
'extension_info' => '',
|
||||
'extension_is_off_now' => '',
|
||||
'extension_is_on_now' => '',
|
||||
'extension_loading' => 'Caricamento estensioni...',
|
||||
|
@ -1150,6 +1155,7 @@ URL: [url]',
|
|||
'no_groups' => 'Nessun gruppo',
|
||||
'no_group_members' => 'Questo gruppo non ha membri',
|
||||
'no_linked_files' => 'Nessun file collegato',
|
||||
'no_mimetype' => '',
|
||||
'no_previous_versions' => 'Nessun\'altra versione trovata',
|
||||
'no_receipt_needed' => 'Rete disco',
|
||||
'no_review_needed' => 'Nessuna revisione in corso.',
|
||||
|
@ -1314,7 +1320,9 @@ URL: [url]',
|
|||
'removed_workflow_email_body_html' => '',
|
||||
'removed_workflow_email_subject' => '[sitename]: [name] - Flusso di lavoro rimosso dalla versione del documento',
|
||||
'removeFolderFromDropFolder' => 'Rimuovi la cartella di pubblicazione dopo l\'importazione',
|
||||
'removeFolderFromDropFolder_desc' => '',
|
||||
'remove_approval_log' => '',
|
||||
'remove_from_clipboard' => '',
|
||||
'remove_marked_files' => 'Rimuovi i files contrassegnati',
|
||||
'remove_review_log' => '',
|
||||
'remove_task' => '',
|
||||
|
@ -1518,6 +1526,7 @@ URL: [url]',
|
|||
'select_category' => 'Clicca per selezionare la categoria',
|
||||
'select_created' => '',
|
||||
'select_documents_for_process' => '',
|
||||
'select_folder' => '',
|
||||
'select_group' => 'Seleziona gruppo',
|
||||
'select_groups' => 'Clicca per selezionare i gruppi',
|
||||
'select_grp_approvers' => 'Seleziona gruppo approvatore',
|
||||
|
@ -1570,7 +1579,9 @@ Name: [username]
|
|||
'service_name' => '',
|
||||
'sessions' => 'Utenti online',
|
||||
'setDateFromFile' => 'Prende la data dal file importato',
|
||||
'setDateFromFile_desc' => '',
|
||||
'setDateFromFolder' => 'Prende la data dalla cartella importata',
|
||||
'setDateFromFolder_desc' => '',
|
||||
'settings' => 'Impostazioni',
|
||||
'settings_activate_module' => 'Attivazione modulo',
|
||||
'settings_activate_php_extension' => 'Attivazione estensione PHP',
|
||||
|
@ -1668,6 +1679,8 @@ Name: [username]
|
|||
'settings_delete_install_folder' => 'Per poter usare SeedDMS, devi cancellare il file ENABLE_INSTALL_TOOL nella cartella di configurazione.',
|
||||
'settings_disableChangePassword' => '',
|
||||
'settings_disableChangePassword_desc' => '',
|
||||
'settings_disableReceiptComment' => '',
|
||||
'settings_disableReceiptComment_desc' => '',
|
||||
'settings_disableSelfEdit' => 'Disabilita auto-modifica',
|
||||
'settings_disableSelfEdit_desc' => 'Se selezionato l\'utente non può modificare il proprio profilo',
|
||||
'settings_disable_install' => 'Prova ad eliminare il file ENABLE_INSTALL_TOOL se possibile',
|
||||
|
@ -1733,6 +1746,8 @@ Name: [username]
|
|||
'settings_enableLargeFileUpload_desc' => 'Se selezionato, il caricamento (upload) dei files può essere effettuato anche attraverso un\'applet Java chiamata Jumploader evitando il limite di dimensioni file imposto dal browser; Jumploader permette anche il caricamento di diversi files contemporaneamente.',
|
||||
'settings_enableLoginByEmail' => '',
|
||||
'settings_enableLoginByEmail_desc' => '',
|
||||
'settings_enableMemcached' => '',
|
||||
'settings_enableMemcached_desc' => '',
|
||||
'settings_enableMenuTasks' => 'Abilita compito delle attività nel menù',
|
||||
'settings_enableMenuTasks_desc' => 'Abilita/disabilita la voce di menu che contiene tutte le attività degli utenti. Questo conterrà i documenti che devono essere rivisti, approvati, etc.',
|
||||
'settings_enableMenuTransmittals' => '',
|
||||
|
@ -1792,6 +1807,8 @@ Name: [username]
|
|||
'settings_encryptionKey' => 'Chiave di criptazione',
|
||||
'settings_encryptionKey_desc' => 'La chiave viene usata per creare un identificatore unico da aggiungere come campo nascosto ad un formulario per protezione da attacchi CSRF.',
|
||||
'settings_error' => 'Errore',
|
||||
'settings_excludeFoldersDashboard' => '',
|
||||
'settings_excludeFoldersDashboard_desc' => '',
|
||||
'settings_expandFolderTree' => 'Espandi l\'albero delle cartelle',
|
||||
'settings_expandFolderTree_desc' => 'Espandi la struttura ad albero delle cartelle',
|
||||
'settings_expandFolderTree_val0' => 'Inizia con l\'albero nascosto',
|
||||
|
@ -1850,6 +1867,8 @@ Name: [username]
|
|||
'settings_logFileEnable_desc' => 'Abilita/disabilita il file di registro',
|
||||
'settings_logFileMaxLevel' => '',
|
||||
'settings_logFileMaxLevel_desc' => '',
|
||||
'settings_logFileRestApiMaxLevel' => '',
|
||||
'settings_logFileRestApiMaxLevel_desc' => '',
|
||||
'settings_logFileRotation' => 'Rotazione del file di registro',
|
||||
'settings_logFileRotation_desc' => 'Abilita/disabilita la rotazione del file di registro',
|
||||
'settings_loginFailure' => 'Login fallito',
|
||||
|
@ -2047,6 +2066,7 @@ Name: [username]
|
|||
'sign_out' => 'Disconnettiti',
|
||||
'sign_out_user' => 'Disconnetti l\'utente',
|
||||
'site_brand' => '',
|
||||
'skip_default_export_cols' => '',
|
||||
'sk_SK' => 'Slovacco',
|
||||
'sort_by_date' => 'Ordina per data',
|
||||
'sort_by_expiration_date' => '',
|
||||
|
@ -2176,6 +2196,7 @@ Name: [username]
|
|||
'status_revision_sleeping' => 'in attesa',
|
||||
'status_revisor_removed' => 'Revisore rimosso dalla lista',
|
||||
'status_unknown' => 'Sconosciuto',
|
||||
'storage' => '',
|
||||
'storage_size' => 'Spazio di archiviazione',
|
||||
'subfolder_duplicate_name' => 'Nome sottocartella duplicato',
|
||||
'submit_2_fact_auth' => 'Salva segreto',
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
|
||||
$text = array(
|
||||
'2_factor_auth' => '이중 인증',
|
||||
'2_factor_auth_code' => '',
|
||||
'2_factor_auth_info' => '',
|
||||
'2_fact_auth_current_secret' => '',
|
||||
'2_fact_auth_new_secret' => '',
|
||||
|
@ -566,6 +567,8 @@ URL: [url]',
|
|||
'download_header_document_name' => '',
|
||||
'download_header_document_no' => '',
|
||||
'download_header_filename' => '',
|
||||
'download_header_folder_name' => '',
|
||||
'download_header_folder_no' => '',
|
||||
'download_header_internal_version' => '',
|
||||
'download_header_reviewer' => '',
|
||||
'download_header_review_comment' => '',
|
||||
|
@ -696,6 +699,8 @@ URL: [url]',
|
|||
'export_user_list_csv' => '',
|
||||
'extension_archive' => '',
|
||||
'extension_changelog' => '',
|
||||
'extension_config' => '',
|
||||
'extension_info' => '',
|
||||
'extension_is_off_now' => '',
|
||||
'extension_is_on_now' => '',
|
||||
'extension_loading' => '',
|
||||
|
@ -1150,6 +1155,7 @@ URL [url]',
|
|||
'no_groups' => '그룹이 없음',
|
||||
'no_group_members' => '그룹 회원 이 없습니다.',
|
||||
'no_linked_files' => '연결되지 않은 파일',
|
||||
'no_mimetype' => '',
|
||||
'no_previous_versions' => '다른 버전을 찾을 수 없습니다',
|
||||
'no_receipt_needed' => '접수가 필요하지 않습니다',
|
||||
'no_review_needed' => '검토중인 자료가 없습니다.',
|
||||
|
@ -1295,7 +1301,9 @@ URL: [url]',
|
|||
'removed_workflow_email_body_html' => '',
|
||||
'removed_workflow_email_subject' => '[sitename] : [name] - 문서 버전에서 제거 된 워크플로우',
|
||||
'removeFolderFromDropFolder' => '',
|
||||
'removeFolderFromDropFolder_desc' => '',
|
||||
'remove_approval_log' => '',
|
||||
'remove_from_clipboard' => '',
|
||||
'remove_marked_files' => '마크 파일을 제거',
|
||||
'remove_review_log' => '',
|
||||
'remove_task' => '',
|
||||
|
@ -1494,6 +1502,7 @@ URL : [url]',
|
|||
'select_category' => '범주를 선택합니다',
|
||||
'select_created' => '',
|
||||
'select_documents_for_process' => '',
|
||||
'select_folder' => '',
|
||||
'select_group' => '',
|
||||
'select_groups' => '그룹을 선택합니다',
|
||||
'select_grp_approvers' => '그룹 승인을 선택합니다',
|
||||
|
@ -1541,7 +1550,9 @@ URL : [url]',
|
|||
'service_name' => '',
|
||||
'sessions' => '',
|
||||
'setDateFromFile' => '',
|
||||
'setDateFromFile_desc' => '',
|
||||
'setDateFromFolder' => '',
|
||||
'setDateFromFolder_desc' => '',
|
||||
'settings' => '설정',
|
||||
'settings_activate_module' => '모듈 활성화',
|
||||
'settings_activate_php_extension' => 'PHP 확장 활성화',
|
||||
|
@ -1639,6 +1650,8 @@ URL : [url]',
|
|||
'settings_delete_install_folder' => 'SeedDMS을 사용하려면 구성 디렉토리의 파일 ENABLE_INSTALL_TOOL을 삭제해야합니다',
|
||||
'settings_disableChangePassword' => '',
|
||||
'settings_disableChangePassword_desc' => '',
|
||||
'settings_disableReceiptComment' => '',
|
||||
'settings_disableReceiptComment_desc' => '',
|
||||
'settings_disableSelfEdit' => '자체 수정 불가',
|
||||
'settings_disableSelfEdit_desc' => '확인시 사용자가 자신의 프로필을 편집 할 수 없음',
|
||||
'settings_disable_install' => 'ENABLE_INSTALL_TOOL 삭제',
|
||||
|
@ -1704,6 +1717,8 @@ URL : [url]',
|
|||
'settings_enableLargeFileUpload_desc' => '설정하면, 브라우저가 설정 한 파일 크기 제한없이 jumploader라는 파일 업로드 자바 애플릿을 통해 사용할 수 있습니다. 또한 한 번에 여러 파일을 업로드 할 수 있습니다.',
|
||||
'settings_enableLoginByEmail' => '',
|
||||
'settings_enableLoginByEmail_desc' => '',
|
||||
'settings_enableMemcached' => '',
|
||||
'settings_enableMemcached_desc' => '',
|
||||
'settings_enableMenuTasks' => '메뉴의 작업 목록 허용',
|
||||
'settings_enableMenuTasks_desc' => '사용자의 모든 작업이 포함되어있는 메뉴 항목을 활성/비활성 합니다. 이것은 검토, 승인등이 필요한 문서를 포함 합니다',
|
||||
'settings_enableMenuTransmittals' => '',
|
||||
|
@ -1763,6 +1778,8 @@ URL : [url]',
|
|||
'settings_encryptionKey' => '암호화 키',
|
||||
'settings_encryptionKey_desc' => '이 문자열은 CSRF 공격을 방지하기 위해 formular에 숨겨진 필드로 추가되는 고유 식별자를 만드는 데 사용된다.',
|
||||
'settings_error' => '오류',
|
||||
'settings_excludeFoldersDashboard' => '',
|
||||
'settings_excludeFoldersDashboard_desc' => '',
|
||||
'settings_expandFolderTree' => '폴더 트리 확장',
|
||||
'settings_expandFolderTree_desc' => '폴더 트리 확장',
|
||||
'settings_expandFolderTree_val0' => '숨겨진 Tree로 시작',
|
||||
|
@ -1821,6 +1838,8 @@ URL : [url]',
|
|||
'settings_logFileEnable_desc' => '로그 파일 활성 / 비활성화',
|
||||
'settings_logFileMaxLevel' => '',
|
||||
'settings_logFileMaxLevel_desc' => '',
|
||||
'settings_logFileRestApiMaxLevel' => '',
|
||||
'settings_logFileRestApiMaxLevel_desc' => '',
|
||||
'settings_logFileRotation' => '로그 파일 회전',
|
||||
'settings_logFileRotation_desc' => '로그 파일 회전',
|
||||
'settings_loginFailure' => '로그인 실패',
|
||||
|
@ -2018,6 +2037,7 @@ URL : [url]',
|
|||
'sign_out' => '로그 아웃',
|
||||
'sign_out_user' => '사용자가 로그 아웃',
|
||||
'site_brand' => '',
|
||||
'skip_default_export_cols' => '',
|
||||
'sk_SK' => '슬로바키아어',
|
||||
'sort_by_date' => '',
|
||||
'sort_by_expiration_date' => '',
|
||||
|
@ -2147,6 +2167,7 @@ URL : [url]',
|
|||
'status_revision_sleeping' => '보류',
|
||||
'status_revisor_removed' => '감사자 목록에서 제거',
|
||||
'status_unknown' => '알 수없는',
|
||||
'storage' => '',
|
||||
'storage_size' => '저장 크기',
|
||||
'subfolder_duplicate_name' => '',
|
||||
'submit_2_fact_auth' => '',
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
|
||||
$text = array(
|
||||
'2_factor_auth' => 'ການກວດສອບແບບ 2 ປັດໃຈ',
|
||||
'2_factor_auth_code' => '',
|
||||
'2_factor_auth_info' => 'ລະບົບນີ້ໄຊ້ການກວດສອບແບບ 02 ປັດໃຈ. ເຈົ້າຈະຕ້ອງມີ Google Authenticator ໃນໂທລະສັບມືຖືຂອງທ່ານ. ດ້ານລຸ່ມແມ່ນມີ QR Codes ສອງແບບ ທາງດ້ານຂວາຈະມີຄວາມເປັນສ່ວນຕົວຂອງເຈົ້າ, ສ່ວນດ້ານຊ້າຍຂອງເຈົ້າແມ່ນຈະສາມາດຕັ້ງຄ່າຄວາມເປັນສ່ວນຕົວໄຫມ່. ຖ້າເຈົ້າຕັ້ງຄ່າຄວາມເປັນສ່ວນຕົວໄຫມ່ຮຽບຮ້ອຍ ແລ້ວນັ້ນໃຫ້ແນ່ໃຈວ່າໄດ້ສະແກນອີກຄັ້ງດ້ວຍ Google Authenticator',
|
||||
'2_fact_auth_current_secret' => '',
|
||||
'2_fact_auth_new_secret' => '',
|
||||
|
@ -563,6 +564,8 @@ URL: [url]',
|
|||
'download_header_document_name' => '',
|
||||
'download_header_document_no' => '',
|
||||
'download_header_filename' => '',
|
||||
'download_header_folder_name' => '',
|
||||
'download_header_folder_no' => '',
|
||||
'download_header_internal_version' => '',
|
||||
'download_header_reviewer' => '',
|
||||
'download_header_review_comment' => '',
|
||||
|
@ -693,6 +696,8 @@ URL: [url]',
|
|||
'export_user_list_csv' => '',
|
||||
'extension_archive' => '',
|
||||
'extension_changelog' => '',
|
||||
'extension_config' => '',
|
||||
'extension_info' => '',
|
||||
'extension_is_off_now' => '',
|
||||
'extension_is_on_now' => '',
|
||||
'extension_loading' => '',
|
||||
|
@ -1147,6 +1152,7 @@ URL: [url]',
|
|||
'no_groups' => 'ບໍ່ມີກຸ່ມ',
|
||||
'no_group_members' => 'ກຸ່ມນີ້ຍັງບໍ່ມີສະມາຊິກ',
|
||||
'no_linked_files' => 'ບໍ່ມີໄຟລທີ່ເຊື່ອມໂຍງ',
|
||||
'no_mimetype' => '',
|
||||
'no_previous_versions' => 'ບໍ່ພົບເວີຊັນອື່ນ',
|
||||
'no_receipt_needed' => 'ປະຈຸບັນນີ້ບໍ່ມີເອກະສານທີ່ຈະຕ້ອງຢືນຢັນກ່ຽວກັບການຮັບສິນຄ້າ',
|
||||
'no_review_needed' => 'ບໍ່ມີເອກະສານທີຍັງຄ້າງທີລໍຖ້າກວດຄືນ',
|
||||
|
@ -1311,7 +1317,9 @@ URL: [url]',
|
|||
'removed_workflow_email_body_html' => '',
|
||||
'removed_workflow_email_subject' => '[sitename]:[name] - ຍ້າຍການເຮັດວຽກ (ເວີກໂຟລ) ອອກຈາກເວີຊັ້ນຂອງເອກະສານ',
|
||||
'removeFolderFromDropFolder' => 'ຍ້າຍໂຟລເດີຫຼັງຈາກນຳຂໍ້ມູນເຂົ້າ',
|
||||
'removeFolderFromDropFolder_desc' => '',
|
||||
'remove_approval_log' => '',
|
||||
'remove_from_clipboard' => '',
|
||||
'remove_marked_files' => 'ລົບໄຟລທີມີເຄື່ອງໝາຍໄວ້',
|
||||
'remove_review_log' => '',
|
||||
'remove_task' => '',
|
||||
|
@ -1515,6 +1523,7 @@ URL: [url]',
|
|||
'select_category' => 'ຄິກເພື່ອເລືອກປະເພດ',
|
||||
'select_created' => '',
|
||||
'select_documents_for_process' => '',
|
||||
'select_folder' => '',
|
||||
'select_group' => '',
|
||||
'select_groups' => 'ຄິກເລືອກກຸ່ມ',
|
||||
'select_grp_approvers' => 'ຄິກເພືອເລືອກຜູ້ອະນຸມັດກຸ່ມ',
|
||||
|
@ -1567,7 +1576,9 @@ URL: [url]',
|
|||
'service_name' => '',
|
||||
'sessions' => 'ຜູ້ໄຊ້ອອນລາຍ',
|
||||
'setDateFromFile' => '',
|
||||
'setDateFromFile_desc' => '',
|
||||
'setDateFromFolder' => '',
|
||||
'setDateFromFolder_desc' => '',
|
||||
'settings' => 'ການຕັ້ງຄ່າ',
|
||||
'settings_activate_module' => 'ເປີດໄຊ້ງານໂມດູນ',
|
||||
'settings_activate_php_extension' => 'ຂະຫຍາຍພື້ນທີການໄຊ້ງານຂອງ PHP',
|
||||
|
@ -1665,6 +1676,8 @@ URL: [url]',
|
|||
'settings_delete_install_folder' => 'ໃນການໄຊ້ SeedDMS, ເຈົ້າຈະຕ້ອງລົບໄຟລ ເປີດໄຊ້ງານ_ຕິດຕັ້ງ_ເຄື່ອງມືໃນການບໍລິຫານ ການກຳນົດຄ່າ',
|
||||
'settings_disableChangePassword' => '',
|
||||
'settings_disableChangePassword_desc' => '',
|
||||
'settings_disableReceiptComment' => '',
|
||||
'settings_disableReceiptComment_desc' => '',
|
||||
'settings_disableSelfEdit' => 'ແກ້ໄຂການປິດໄຊ້ງານດ້ວຍຕົວເອງ',
|
||||
'settings_disableSelfEdit_desc' => 'ກວດຄືນເບິ່ງວ່າຍ້ອນຫຍັງຜູ້ນຳໄຊ້ຈື່ງບໍ່ສາມາດແກ້ໄຂໂປລໄຟລຂອງພວກເຂົາໄດ້',
|
||||
'settings_disable_install' => 'ຖ້າເປັນໄປໄດ້ ລົບໄຟລເປີດໄຊ້ງານ-ຕິດຕັ້ງ-ເຄື່ອງມື ຖ້າເປັນໄປໄດ້',
|
||||
|
@ -1730,6 +1743,8 @@ URL: [url]',
|
|||
'settings_enableLargeFileUpload_desc' => 'ການຕັ້ງຄ່າອັບໂຫລດໄຟລຈະມີໃຫ້ບໍລິການຜ່ານທາງດ້ານຂວາຂອງເອັບເຟັກທີ່ເອີ້ນວ່າ jumploader ໂດຍບໍ່ມີຂິດຈຳກັດຂອງຂະໜາດໄຟລທີກຳນົດໂດຍບາວເຊີ ນອກຈາກນີຍັງຊ່ວຍໃນການອັບໂຫລດໄຟລຫຼາຍໄຟລໃນຂັນຕອນດຽວການເປີດຄຸນລັກສະນະນີ້ຈະປິດຄຸກກີ້ສະເພາະ Http ເທົ່ານັ້ນ',
|
||||
'settings_enableLoginByEmail' => '',
|
||||
'settings_enableLoginByEmail_desc' => '',
|
||||
'settings_enableMemcached' => '',
|
||||
'settings_enableMemcached_desc' => '',
|
||||
'settings_enableMenuTasks' => 'ເປີດການໄຊ້ງານ',
|
||||
'settings_enableMenuTasks_desc' => 'ເປີດ/ປິດ ລາຍການເມນູທີ່ມີວຽກທັງໝົດສຳລັບຜູ້ໄຊ້ເອກະສານນີ້ມີເອກະສານທີຈ້ອງໄດ້ຮັບການກວດສອບ',
|
||||
'settings_enableMenuTransmittals' => '',
|
||||
|
@ -1789,6 +1804,8 @@ URL: [url]',
|
|||
'settings_encryptionKey' => 'ກະແຈການເຂົ້າລະຫັດລັບ',
|
||||
'settings_encryptionKey_desc' => 'ສະຕິງນີ້ໄຊ້ສຳຫຼັບສ້າງຕົວ',
|
||||
'settings_error' => 'ຄວາມຜິດພາດ',
|
||||
'settings_excludeFoldersDashboard' => '',
|
||||
'settings_excludeFoldersDashboard_desc' => '',
|
||||
'settings_expandFolderTree' => 'ຂະຫຍານທີໂຟລເດີ',
|
||||
'settings_expandFolderTree_desc' => 'ຂະຫຍານທີໂຟລເດີ',
|
||||
'settings_expandFolderTree_val0' => 'ການເລີ່ມຕົ້ນດ້ວຍສາຂາຍ່ອຍ',
|
||||
|
@ -1847,6 +1864,8 @@ URL: [url]',
|
|||
'settings_logFileEnable_desc' => 'ເປີດ/ປິດ ໃຊ້ວຽກໄຟລບັນທຶກ',
|
||||
'settings_logFileMaxLevel' => '',
|
||||
'settings_logFileMaxLevel_desc' => '',
|
||||
'settings_logFileRestApiMaxLevel' => '',
|
||||
'settings_logFileRestApiMaxLevel_desc' => '',
|
||||
'settings_logFileRotation' => 'ການໝຸນແຟ້ມບັນທືກ',
|
||||
'settings_logFileRotation_desc' => 'ການໝຸນແຟ້ມບັນທືກ',
|
||||
'settings_loginFailure' => 'ຄວາມລົ້ມເຫຼວໃນການເຂົາເຖີງ',
|
||||
|
@ -2044,6 +2063,7 @@ URL: [url]',
|
|||
'sign_out' => 'ອອກຈາກລະບົບ',
|
||||
'sign_out_user' => 'ອອກຈາກລະບົບຜູ້ໄຊ້',
|
||||
'site_brand' => '',
|
||||
'skip_default_export_cols' => '',
|
||||
'sk_SK' => 'ສະໂລວາເກຍ',
|
||||
'sort_by_date' => '',
|
||||
'sort_by_expiration_date' => '',
|
||||
|
@ -2173,6 +2193,7 @@ URL: [url]',
|
|||
'status_revision_sleeping' => 'ຢູ່ລະຫວ່າງດຳເນີນການ',
|
||||
'status_revisor_removed' => 'ແກ້ໄຂຄຳອະທິບາຍອອກຈາກລາຍການ',
|
||||
'status_unknown' => 'ບໍ່ຮູ້',
|
||||
'storage' => '',
|
||||
'storage_size' => 'ຂະໜາດພື້ນທີ່ເກັບຂໍ້ມູນ',
|
||||
'subfolder_duplicate_name' => '',
|
||||
'submit_2_fact_auth' => 'ເກັບຄວາມລັບໄວ້',
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
|
||||
$text = array(
|
||||
'2_factor_auth' => '2-trinns autentisering',
|
||||
'2_factor_auth_code' => '',
|
||||
'2_factor_auth_info' => 'Dette systemet håndhever 2-faktor autentisering. Du trenger Google Authenticator på mobiltelefonen din. Nedenfor ser du to QR-koder. Den rette er din nåværende hemmelighet. På venstre side kan du angi en ny hemmelighet. Hvis du angir en ny hemmelighet, må du huske å skanne den på nytt med Google Authenticator.',
|
||||
'2_fact_auth_current_secret' => '',
|
||||
'2_fact_auth_new_secret' => '',
|
||||
|
@ -577,6 +578,8 @@ URL: [url]',
|
|||
'download_header_document_name' => '',
|
||||
'download_header_document_no' => '',
|
||||
'download_header_filename' => '',
|
||||
'download_header_folder_name' => '',
|
||||
'download_header_folder_no' => '',
|
||||
'download_header_internal_version' => '',
|
||||
'download_header_reviewer' => '',
|
||||
'download_header_review_comment' => '',
|
||||
|
@ -707,6 +710,8 @@ URL: [url]',
|
|||
'export_user_list_csv' => '',
|
||||
'extension_archive' => 'Utvidelse',
|
||||
'extension_changelog' => 'Endringslogg',
|
||||
'extension_config' => '',
|
||||
'extension_info' => '',
|
||||
'extension_is_off_now' => '',
|
||||
'extension_is_on_now' => '',
|
||||
'extension_loading' => 'Laster inn utvidelser ...',
|
||||
|
@ -1168,6 +1173,7 @@ URL: [url]',
|
|||
'no_groups' => 'Ingen grupper',
|
||||
'no_group_members' => 'Denne gruppen har ingen medlemmer',
|
||||
'no_linked_files' => 'Ingen koblede filer',
|
||||
'no_mimetype' => '',
|
||||
'no_previous_versions' => 'Ingen andre versjoner funnet',
|
||||
'no_receipt_needed' => 'Det er for øyeblikket ingen dokumenter som krever kvitteringsbekreftelse.',
|
||||
'no_review_needed' => 'Ingen gjennomgang i påvente.',
|
||||
|
@ -1326,7 +1332,9 @@ URL: [url]',
|
|||
'removed_workflow_email_body_html' => '',
|
||||
'removed_workflow_email_subject' => '[sitename]: [name] - Fjernet arbeidsflyt fra dokumentversjonen',
|
||||
'removeFolderFromDropFolder' => 'Fjern mappe etter import',
|
||||
'removeFolderFromDropFolder_desc' => '',
|
||||
'remove_approval_log' => '',
|
||||
'remove_from_clipboard' => '',
|
||||
'remove_marked_files' => 'Fjern markerte filer',
|
||||
'remove_review_log' => '',
|
||||
'remove_task' => '',
|
||||
|
@ -1530,6 +1538,7 @@ URL: [url]',
|
|||
'select_category' => 'Klikk for å velge kategori',
|
||||
'select_created' => '',
|
||||
'select_documents_for_process' => '',
|
||||
'select_folder' => '',
|
||||
'select_group' => 'Klikk for å velge gruppe',
|
||||
'select_groups' => 'Klikk for å velge grupper',
|
||||
'select_grp_approvers' => 'Klikk for å velge gruppe godkjennere',
|
||||
|
@ -1580,7 +1589,9 @@ Bruker: [username]
|
|||
'service_name' => '',
|
||||
'sessions' => 'Brukere innlogget',
|
||||
'setDateFromFile' => 'Overta dato fra importert fil',
|
||||
'setDateFromFile_desc' => '',
|
||||
'setDateFromFolder' => 'Overta dato fra importert mappe',
|
||||
'setDateFromFolder_desc' => '',
|
||||
'settings' => 'Innstillinger',
|
||||
'settings_activate_module' => 'Aktiver modul',
|
||||
'settings_activate_php_extension' => 'Aktiver PHP-utvidelse',
|
||||
|
@ -1678,6 +1689,8 @@ Bruker: [username]
|
|||
'settings_delete_install_folder' => 'For å bruke SeedDMS, må du slette filen ENABLE_INSTALL_TOOL i konfigurasjonsmappen',
|
||||
'settings_disableChangePassword' => '',
|
||||
'settings_disableChangePassword_desc' => '',
|
||||
'settings_disableReceiptComment' => '',
|
||||
'settings_disableReceiptComment_desc' => '',
|
||||
'settings_disableSelfEdit' => 'Deaktiver selvredigering',
|
||||
'settings_disableSelfEdit_desc' => 'Hvis merket kan brukeren ikke redigere sin egen profil',
|
||||
'settings_disable_install' => 'Slett filen ENABLE_INSTALL_TOOL hvis mulig',
|
||||
|
@ -1743,6 +1756,8 @@ Bruker: [username]
|
|||
'settings_enableLargeFileUpload_desc' => 'Hvis det er satt, er filopplasting også tilgjengelig via en java-applet som heter jumploader uten en filstørrelsesgrense som er angitt av nettleseren. Det gjør det også mulig å laste opp flere filer på ett trinn. Hvis du slår på dette, slås bare av cookies.',
|
||||
'settings_enableLoginByEmail' => '',
|
||||
'settings_enableLoginByEmail_desc' => '',
|
||||
'settings_enableMemcached' => '',
|
||||
'settings_enableMemcached_desc' => '',
|
||||
'settings_enableMenuTasks' => 'Aktiver oppgaveliste i menyen',
|
||||
'settings_enableMenuTasks_desc' => 'Aktiver/deaktiver menypunktet som inneholder alle oppgaver for brukeren. Denne inneholder dokumenter som må gjennomgås, godkjennes osv.',
|
||||
'settings_enableMenuTransmittals' => '',
|
||||
|
@ -1802,6 +1817,8 @@ Bruker: [username]
|
|||
'settings_encryptionKey' => 'Krypteringsnøkkel',
|
||||
'settings_encryptionKey_desc' => 'Denne strengen brukes til å lage en unik identifikator som blir lagt til som et skjult felt til et skjema for å forhindre CSRF-angrep.',
|
||||
'settings_error' => 'Feil',
|
||||
'settings_excludeFoldersDashboard' => '',
|
||||
'settings_excludeFoldersDashboard_desc' => '',
|
||||
'settings_expandFolderTree' => 'Utvid mappetreet',
|
||||
'settings_expandFolderTree_desc' => 'Utvid mappetreet',
|
||||
'settings_expandFolderTree_val0' => 'starte med treet gjemt',
|
||||
|
@ -1860,6 +1877,8 @@ Bruker: [username]
|
|||
'settings_logFileEnable_desc' => 'Aktiver/deaktiver loggfil',
|
||||
'settings_logFileMaxLevel' => '',
|
||||
'settings_logFileMaxLevel_desc' => '',
|
||||
'settings_logFileRestApiMaxLevel' => '',
|
||||
'settings_logFileRestApiMaxLevel_desc' => '',
|
||||
'settings_logFileRotation' => 'Loggfil rotasjon',
|
||||
'settings_logFileRotation_desc' => 'Loggfil rotasjon',
|
||||
'settings_loginFailure' => 'Påloggingsfeil',
|
||||
|
@ -2057,6 +2076,7 @@ Bruker: [username]
|
|||
'sign_out' => 'Logg ut',
|
||||
'sign_out_user' => 'Logg ut bruker',
|
||||
'site_brand' => 'Nettsted merke/logo',
|
||||
'skip_default_export_cols' => '',
|
||||
'sk_SK' => 'Slovakisk',
|
||||
'sort_by_date' => 'Sorter etter dato',
|
||||
'sort_by_expiration_date' => '',
|
||||
|
@ -2186,6 +2206,7 @@ Bruker: [username]
|
|||
'status_revision_sleeping' => 'avventer',
|
||||
'status_revisor_removed' => 'Revisor fjernet fra listen',
|
||||
'status_unknown' => 'Ukjent',
|
||||
'storage' => '',
|
||||
'storage_size' => 'Lagrings størrelse',
|
||||
'subfolder_duplicate_name' => 'Dupliser navnet på undermappen',
|
||||
'submit_2_fact_auth' => 'Lagre hemmelighet',
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
|
||||
$text = array(
|
||||
'2_factor_auth' => '2-factor-authenticatie',
|
||||
'2_factor_auth_code' => '',
|
||||
'2_factor_auth_info' => 'Dit systeem werkt met 2-factor-authenticatie. U heeft de Google Authenticator nodig op uw mobiele telfoon. Hieronder staan 2 QR-codes. De rechter is uw huidige geheime code. Met de linker kunt u een nieuwe geheime code instellen. Denk erom de nieuwe code opnieuw te scannen met Googke Authenticator.',
|
||||
'2_fact_auth_current_secret' => '',
|
||||
'2_fact_auth_new_secret' => '',
|
||||
|
@ -570,6 +571,8 @@ URL: [url]',
|
|||
'download_header_document_name' => 'Naam document',
|
||||
'download_header_document_no' => 'Document nr.',
|
||||
'download_header_filename' => 'Filenaam',
|
||||
'download_header_folder_name' => '',
|
||||
'download_header_folder_no' => '',
|
||||
'download_header_internal_version' => 'Interne versie',
|
||||
'download_header_reviewer' => 'Beoordelaar',
|
||||
'download_header_review_comment' => 'Commentaar bij beoordeling',
|
||||
|
@ -700,6 +703,8 @@ URL: [url]',
|
|||
'export_user_list_csv' => 'Exporteer gebruikers in csv-formaat',
|
||||
'extension_archive' => 'Extensies',
|
||||
'extension_changelog' => 'Overzicht van wijzigingen',
|
||||
'extension_config' => '',
|
||||
'extension_info' => '',
|
||||
'extension_is_off_now' => 'Extensie uitgeschakeld',
|
||||
'extension_is_on_now' => 'Extensie ingeschakeld',
|
||||
'extension_loading' => 'Laden van extensies ...',
|
||||
|
@ -1160,6 +1165,7 @@ URL: [url]',
|
|||
'no_groups' => 'Geen groepen',
|
||||
'no_group_members' => 'Deze groep heeft geen leden',
|
||||
'no_linked_files' => 'Geen gekoppelde bestanden',
|
||||
'no_mimetype' => '',
|
||||
'no_previous_versions' => 'Geen andere versie(s) gevonden',
|
||||
'no_receipt_needed' => 'Geen ontvangstbericht nodig',
|
||||
'no_review_needed' => 'Geen review bezig.',
|
||||
|
@ -1324,7 +1330,9 @@ URL: [url]',
|
|||
'removed_workflow_email_body_html' => '',
|
||||
'removed_workflow_email_subject' => '[sitename]: [name] - Workflow verwijderd van document versie',
|
||||
'removeFolderFromDropFolder' => 'Map verwijderen uit Dropfilder',
|
||||
'removeFolderFromDropFolder_desc' => '',
|
||||
'remove_approval_log' => '',
|
||||
'remove_from_clipboard' => '',
|
||||
'remove_marked_files' => 'Geselecteerde bestanden worden verwijderd',
|
||||
'remove_review_log' => '',
|
||||
'remove_task' => '',
|
||||
|
@ -1527,6 +1535,7 @@ URL: [url]',
|
|||
'select_category' => 'klik om categorie te selecteren',
|
||||
'select_created' => '',
|
||||
'select_documents_for_process' => '',
|
||||
'select_folder' => '',
|
||||
'select_group' => 'Selecteer groep',
|
||||
'select_groups' => 'Klik om groep te selecteren',
|
||||
'select_grp_approvers' => 'Klik om beoordelaars te selecteren',
|
||||
|
@ -1579,7 +1588,9 @@ Name: [username]
|
|||
'service_name' => '',
|
||||
'sessions' => 'sessies',
|
||||
'setDateFromFile' => 'Gebruik de datum van de geïmporteerde file',
|
||||
'setDateFromFile_desc' => '',
|
||||
'setDateFromFolder' => 'Gebruik de datum van de geïmporteerde map',
|
||||
'setDateFromFolder_desc' => '',
|
||||
'settings' => 'Instellingen',
|
||||
'settings_activate_module' => 'Activeer module',
|
||||
'settings_activate_php_extension' => 'Activeer PHP uitbreiding',
|
||||
|
@ -1677,6 +1688,8 @@ Name: [username]
|
|||
'settings_delete_install_folder' => 'Om SeedDMS te kunnen gebruiken moet het bestand ENABLE_INSTALL_TOOL uit de configuratiemap verwijderd worden.',
|
||||
'settings_disableChangePassword' => '',
|
||||
'settings_disableChangePassword_desc' => '',
|
||||
'settings_disableReceiptComment' => '',
|
||||
'settings_disableReceiptComment_desc' => '',
|
||||
'settings_disableSelfEdit' => 'Uitschakelen Eigenprofiel wijzigen',
|
||||
'settings_disableSelfEdit_desc' => 'Indien aangevinkt kan de gebruiker zijn eigen profiel niet wijzigen.',
|
||||
'settings_disable_install' => 'Verwijder het bestand ENABLE_INSTALL_TOOL indien mogelijk',
|
||||
|
@ -1742,6 +1755,8 @@ Name: [username]
|
|||
'settings_enableLargeFileUpload_desc' => 'Indien ingeschakeld, is bestandsupload ook beschikbaar via een java applet jumploader genaamd zonder een bestandsgrootte limiet door de browser. Het staat ook toe om meerdere bestanden in een keer te versturen.',
|
||||
'settings_enableLoginByEmail' => '',
|
||||
'settings_enableLoginByEmail_desc' => '',
|
||||
'settings_enableMemcached' => '',
|
||||
'settings_enableMemcached_desc' => '',
|
||||
'settings_enableMenuTasks' => 'Menu-taken aanzetten',
|
||||
'settings_enableMenuTasks_desc' => 'Menu-taken aanzetten',
|
||||
'settings_enableMenuTransmittals' => '',
|
||||
|
@ -1801,6 +1816,8 @@ Name: [username]
|
|||
'settings_encryptionKey' => 'Sleutel voor encryptie',
|
||||
'settings_encryptionKey_desc' => 'Deze string wordt gebruikt om een unieke identificatie als onzichtbaar veld aan een formulier toe te voegen om CSRF aanvallen tegen te gaan.',
|
||||
'settings_error' => 'Fout',
|
||||
'settings_excludeFoldersDashboard' => '',
|
||||
'settings_excludeFoldersDashboard_desc' => '',
|
||||
'settings_expandFolderTree' => 'Uitvouwen mappenstructuur',
|
||||
'settings_expandFolderTree_desc' => 'Uitvouwen mappenstructuur',
|
||||
'settings_expandFolderTree_val0' => 'begin met verborgen structuur',
|
||||
|
@ -1859,6 +1876,8 @@ Name: [username]
|
|||
'settings_logFileEnable_desc' => 'Inschakelen/uitschakelen logbestand',
|
||||
'settings_logFileMaxLevel' => '',
|
||||
'settings_logFileMaxLevel_desc' => '',
|
||||
'settings_logFileRestApiMaxLevel' => '',
|
||||
'settings_logFileRestApiMaxLevel_desc' => '',
|
||||
'settings_logFileRotation' => 'Rotering Logbestand',
|
||||
'settings_logFileRotation_desc' => 'Rotering Logbestand',
|
||||
'settings_loginFailure' => 'Login-fout',
|
||||
|
@ -2056,6 +2075,7 @@ Name: [username]
|
|||
'sign_out' => 'Log uit',
|
||||
'sign_out_user' => 'Log gebruiker uit',
|
||||
'site_brand' => 'Merk van de site',
|
||||
'skip_default_export_cols' => '',
|
||||
'sk_SK' => 'Slowaaks',
|
||||
'sort_by_date' => 'Sorteren op datum',
|
||||
'sort_by_expiration_date' => 'Sorteren op vervaldatum',
|
||||
|
@ -2185,6 +2205,7 @@ Name: [username]
|
|||
'status_revision_sleeping' => 'Slapend',
|
||||
'status_revisor_removed' => 'Verwijderd',
|
||||
'status_unknown' => 'Onbekend',
|
||||
'storage' => '',
|
||||
'storage_size' => 'Omvang opslag',
|
||||
'subfolder_duplicate_name' => 'Dubble mapnaam',
|
||||
'submit_2_fact_auth' => '2-factor-authentificatie verstuurd',
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
|
||||
$text = array(
|
||||
'2_factor_auth' => 'Uwierzytelnianie dwuetapowe',
|
||||
'2_factor_auth_code' => '',
|
||||
'2_factor_auth_info' => 'Uwierzytelnianie dwuetapowe',
|
||||
'2_fact_auth_current_secret' => 'Obecny poufny kod',
|
||||
'2_fact_auth_new_secret' => 'Nowy poufny kod',
|
||||
|
@ -553,6 +554,8 @@ URL: [url]',
|
|||
'download_header_document_name' => 'Nazwa dokumentu',
|
||||
'download_header_document_no' => 'Numer dokumentu',
|
||||
'download_header_filename' => 'Nazwa pliku',
|
||||
'download_header_folder_name' => '',
|
||||
'download_header_folder_no' => '',
|
||||
'download_header_internal_version' => 'Wersja wewnętrzna',
|
||||
'download_header_reviewer' => 'Recenzent',
|
||||
'download_header_review_comment' => 'Komentarz recezenta',
|
||||
|
@ -683,6 +686,8 @@ URL: [url]',
|
|||
'export_user_list_csv' => 'Eksportuj użytkowników do pliku CSV',
|
||||
'extension_archive' => 'Rozszerzenie',
|
||||
'extension_changelog' => 'Log Zmian',
|
||||
'extension_config' => '',
|
||||
'extension_info' => '',
|
||||
'extension_is_off_now' => '',
|
||||
'extension_is_on_now' => '',
|
||||
'extension_loading' => 'Wgrywam dodatki...',
|
||||
|
@ -1137,6 +1142,7 @@ URL: [url]',
|
|||
'no_groups' => 'Brak grup',
|
||||
'no_group_members' => 'Ta grupa nie ma członków',
|
||||
'no_linked_files' => 'Brak powiązanych dokumentów',
|
||||
'no_mimetype' => '',
|
||||
'no_previous_versions' => 'Nie znaleziono poprzednich wersji',
|
||||
'no_receipt_needed' => 'Brak dokumentów w trakcie potwierdzenia',
|
||||
'no_review_needed' => 'Brak dokumentów w trakcie opiniowania',
|
||||
|
@ -1290,7 +1296,9 @@ URL: [url]',
|
|||
'removed_workflow_email_body_html' => '',
|
||||
'removed_workflow_email_subject' => '[sitename]: [name] - Usunięty przepływ dokumentu z wersji dokumentu',
|
||||
'removeFolderFromDropFolder' => 'Usuń folder po imporcie',
|
||||
'removeFolderFromDropFolder_desc' => '',
|
||||
'remove_approval_log' => '',
|
||||
'remove_from_clipboard' => '',
|
||||
'remove_marked_files' => 'Usuń zaznaczone pliki',
|
||||
'remove_review_log' => '',
|
||||
'remove_task' => '',
|
||||
|
@ -1458,6 +1466,7 @@ URL: [url]',
|
|||
'select_category' => 'Kliknij by wybrać kategorię',
|
||||
'select_created' => '',
|
||||
'select_documents_for_process' => '',
|
||||
'select_folder' => '',
|
||||
'select_group' => 'Wybierz grupę',
|
||||
'select_groups' => 'Kliknij by wybrać grupy',
|
||||
'select_grp_approvers' => 'Kliknij by wybrać grupę zatwierdzającą',
|
||||
|
@ -1510,7 +1519,9 @@ Name: [username]
|
|||
'service_name' => '',
|
||||
'sessions' => 'Sesja',
|
||||
'setDateFromFile' => 'Przejmij datę z importowanego pliku',
|
||||
'setDateFromFile_desc' => '',
|
||||
'setDateFromFolder' => 'Przejmij datę z importowanego folderu',
|
||||
'setDateFromFolder_desc' => '',
|
||||
'settings' => 'Ustawienia',
|
||||
'settings_activate_module' => 'Aktywuj moduł',
|
||||
'settings_activate_php_extension' => 'Aktywuj rozszerzenie PHP',
|
||||
|
@ -1608,6 +1619,8 @@ Name: [username]
|
|||
'settings_delete_install_folder' => 'Aby móc używać SeedDMS, musisz usunąć plik ENABLE_INSTALL_TOOL znajdujący się w katalogu konfiguracyjnym',
|
||||
'settings_disableChangePassword' => '',
|
||||
'settings_disableChangePassword_desc' => '',
|
||||
'settings_disableReceiptComment' => '',
|
||||
'settings_disableReceiptComment_desc' => '',
|
||||
'settings_disableSelfEdit' => 'Wyłącz auto edycję',
|
||||
'settings_disableSelfEdit_desc' => 'Jeśli zaznaczone, użytkownik nie może zmieniać własnych danych',
|
||||
'settings_disable_install' => 'Usuń plik ENABLE_INSTALL_TOOL jeśli to możliwe',
|
||||
|
@ -1673,6 +1686,8 @@ Name: [username]
|
|||
'settings_enableLargeFileUpload_desc' => 'Jeśli zaznaczone, wczytywanie plików będzie możliwe również przez aplet javy bez limitu rozmiaru plików. Aplet pozwala również na wczytywanie wielu plików jednocześnie.',
|
||||
'settings_enableLoginByEmail' => '',
|
||||
'settings_enableLoginByEmail_desc' => '',
|
||||
'settings_enableMemcached' => '',
|
||||
'settings_enableMemcached_desc' => '',
|
||||
'settings_enableMenuTasks' => 'Włącz listę zadań w menu',
|
||||
'settings_enableMenuTasks_desc' => 'Włącza/Wyłącza pozycję w menu w której znajdują się wszystkie zadania dla użytkownika. Zawiera dokumenty, które potrzebują być ocenione, zatwierdzone, itd.',
|
||||
'settings_enableMenuTransmittals' => '',
|
||||
|
@ -1732,6 +1747,8 @@ Name: [username]
|
|||
'settings_encryptionKey' => 'Klucz szyfrujący',
|
||||
'settings_encryptionKey_desc' => 'Ten ciąg znaków jest używany do tworzenia unikatowego identyfikatora dodawanego jako ukryte pole do formularza aby zapobiec atakom CSRF.',
|
||||
'settings_error' => 'Błąd',
|
||||
'settings_excludeFoldersDashboard' => '',
|
||||
'settings_excludeFoldersDashboard_desc' => '',
|
||||
'settings_expandFolderTree' => 'Rozwiń drzewo katalogów',
|
||||
'settings_expandFolderTree_desc' => 'Rozwiń drzewo katalogów',
|
||||
'settings_expandFolderTree_val0' => 'Rozpocznij z ukrytym drzewem',
|
||||
|
@ -1790,6 +1807,8 @@ Name: [username]
|
|||
'settings_logFileEnable_desc' => 'Włącz/Wyłącz plik dziennika',
|
||||
'settings_logFileMaxLevel' => '',
|
||||
'settings_logFileMaxLevel_desc' => '',
|
||||
'settings_logFileRestApiMaxLevel' => '',
|
||||
'settings_logFileRestApiMaxLevel_desc' => '',
|
||||
'settings_logFileRotation' => 'Rotowanie pliku dziennika',
|
||||
'settings_logFileRotation_desc' => 'Rotowanie pliku dziennika',
|
||||
'settings_loginFailure' => 'Błędy logowania',
|
||||
|
@ -1987,6 +2006,7 @@ Name: [username]
|
|||
'sign_out' => 'Wyloguj',
|
||||
'sign_out_user' => 'Wyloguj użytkownika',
|
||||
'site_brand' => '',
|
||||
'skip_default_export_cols' => '',
|
||||
'sk_SK' => 'słowacki',
|
||||
'sort_by_date' => 'Sortuj według daty',
|
||||
'sort_by_expiration_date' => 'Sortuj według daty ważności',
|
||||
|
@ -2116,6 +2136,7 @@ Name: [username]
|
|||
'status_revision_sleeping' => 'Oczekujące',
|
||||
'status_revisor_removed' => 'Revisor usunięty z listy',
|
||||
'status_unknown' => 'Nieznany',
|
||||
'storage' => '',
|
||||
'storage_size' => 'Zajętość dysku',
|
||||
'subfolder_duplicate_name' => 'Zduplikowana nazwa podfolderu',
|
||||
'submit_2_fact_auth' => 'Zapisz sekretne hasło',
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
|
||||
$text = array(
|
||||
'2_factor_auth' => 'Autenticação de dois fatores',
|
||||
'2_factor_auth_code' => '',
|
||||
'2_factor_auth_info' => 'Este sistema impõe a autenticação de 2 fatores. Você precisará do Google Authenticator no seu celular. Abaixo você vê dois códigos QR. O caminho certo é o seu atual segredo. À esquerda, você pode definir um novo segredo. Se você definir um novo segredo, verifique novamente com o Google Authenticator.',
|
||||
'2_fact_auth_current_secret' => '',
|
||||
'2_fact_auth_new_secret' => '',
|
||||
|
@ -577,6 +578,8 @@ URL: [url]',
|
|||
'download_header_document_name' => '',
|
||||
'download_header_document_no' => '',
|
||||
'download_header_filename' => '',
|
||||
'download_header_folder_name' => '',
|
||||
'download_header_folder_no' => '',
|
||||
'download_header_internal_version' => '',
|
||||
'download_header_reviewer' => '',
|
||||
'download_header_review_comment' => '',
|
||||
|
@ -707,6 +710,8 @@ URL: [url]',
|
|||
'export_user_list_csv' => '',
|
||||
'extension_archive' => 'Extensão',
|
||||
'extension_changelog' => 'Alterações no Log',
|
||||
'extension_config' => '',
|
||||
'extension_info' => '',
|
||||
'extension_is_off_now' => '',
|
||||
'extension_is_on_now' => '',
|
||||
'extension_loading' => 'Carregando Extensões',
|
||||
|
@ -1167,6 +1172,7 @@ URL: [url]',
|
|||
'no_groups' => 'Sem grupos',
|
||||
'no_group_members' => 'Este grupo não tem membros',
|
||||
'no_linked_files' => 'Não há arquivos vinculados',
|
||||
'no_mimetype' => '',
|
||||
'no_previous_versions' => 'Nenhuma outra versão encontrada',
|
||||
'no_receipt_needed' => 'Atualmente, não há documentos que exijam uma confirmação de recebimento.',
|
||||
'no_review_needed' => 'Nenhuma revisão pendente.',
|
||||
|
@ -1331,7 +1337,9 @@ URL: [url]',
|
|||
'removed_workflow_email_body_html' => '',
|
||||
'removed_workflow_email_subject' => '[sitename]: [name] - Fluxo de trabalho removido da versão do documento',
|
||||
'removeFolderFromDropFolder' => 'Remover pasta após a importação',
|
||||
'removeFolderFromDropFolder_desc' => '',
|
||||
'remove_approval_log' => '',
|
||||
'remove_from_clipboard' => '',
|
||||
'remove_marked_files' => 'Remover arquivos marcados',
|
||||
'remove_review_log' => '',
|
||||
'remove_task' => '',
|
||||
|
@ -1534,6 +1542,7 @@ URL: [url]',
|
|||
'select_category' => 'Clique para selecionar a categoria',
|
||||
'select_created' => '',
|
||||
'select_documents_for_process' => '',
|
||||
'select_folder' => '',
|
||||
'select_group' => 'Selecione o grupo',
|
||||
'select_groups' => 'Clique para selecionar os grupos',
|
||||
'select_grp_approvers' => 'Clique para selecionar o grupo aprovador',
|
||||
|
@ -1586,7 +1595,9 @@ Nome: [username]
|
|||
'service_name' => '',
|
||||
'sessions' => 'Online',
|
||||
'setDateFromFile' => 'Assumir a data do arquivo importado',
|
||||
'setDateFromFile_desc' => '',
|
||||
'setDateFromFolder' => 'Assumir a data da pasta importada',
|
||||
'setDateFromFolder_desc' => '',
|
||||
'settings' => 'Configurações',
|
||||
'settings_activate_module' => 'Ativar módulo',
|
||||
'settings_activate_php_extension' => 'Ativar extensão PHP',
|
||||
|
@ -1684,6 +1695,8 @@ Nome: [username]
|
|||
'settings_delete_install_folder' => 'Para utilizar Sistema GED, você deve excluir o arquivo ENABLE_INSTALL_TOOL do diretório de configuração',
|
||||
'settings_disableChangePassword' => '',
|
||||
'settings_disableChangePassword_desc' => '',
|
||||
'settings_disableReceiptComment' => '',
|
||||
'settings_disableReceiptComment_desc' => '',
|
||||
'settings_disableSelfEdit' => 'Desativar Auto Editar',
|
||||
'settings_disableSelfEdit_desc' => 'Se selecionado o usuário não poderá editar seu próprio perfil',
|
||||
'settings_disable_install' => 'Elimine o arquivo ENABLE_INSTALL_TOOL se possível',
|
||||
|
@ -1749,6 +1762,8 @@ Nome: [username]
|
|||
'settings_enableLargeFileUpload_desc' => 'Se selecionado, o upload de arquivo também estará disponível através de um applet java chamado jumploader sem limite de tamanho de arquivo definido pelo navegador. Ele também permite fazer o upload de vários arquivos de uma só vez.',
|
||||
'settings_enableLoginByEmail' => '',
|
||||
'settings_enableLoginByEmail_desc' => '',
|
||||
'settings_enableMemcached' => '',
|
||||
'settings_enableMemcached_desc' => '',
|
||||
'settings_enableMenuTasks' => 'Ativar lista de tarefas no menu',
|
||||
'settings_enableMenuTasks_desc' => 'Ativar / desativar o item de menu que contém todas as tarefas do usuário. Contém documentos que precisam ser revisados, aprovados etc.',
|
||||
'settings_enableMenuTransmittals' => '',
|
||||
|
@ -1808,6 +1823,8 @@ Nome: [username]
|
|||
'settings_encryptionKey' => 'Chave de criptografia',
|
||||
'settings_encryptionKey_desc' => 'Esta cadeia é usada para a criação de um identificador único a ser adicionado como um campo oculto para formular, a fim de evitar ataques CSRF.',
|
||||
'settings_error' => 'Erro',
|
||||
'settings_excludeFoldersDashboard' => '',
|
||||
'settings_excludeFoldersDashboard_desc' => '',
|
||||
'settings_expandFolderTree' => 'Expandir a árvore de pastas',
|
||||
'settings_expandFolderTree_desc' => 'Expanda a Árvore de Pastas',
|
||||
'settings_expandFolderTree_val0' => 'começar com a árvore escondida',
|
||||
|
@ -1866,6 +1883,8 @@ Nome: [username]
|
|||
'settings_logFileEnable_desc' => 'Ativar/Dasativar arquivo log',
|
||||
'settings_logFileMaxLevel' => '',
|
||||
'settings_logFileMaxLevel_desc' => '',
|
||||
'settings_logFileRestApiMaxLevel' => '',
|
||||
'settings_logFileRestApiMaxLevel_desc' => '',
|
||||
'settings_logFileRotation' => 'Rotação do Arquivo Log',
|
||||
'settings_logFileRotation_desc' => 'A rotação de arquivo de log',
|
||||
'settings_loginFailure' => 'Falha de login',
|
||||
|
@ -2063,6 +2082,7 @@ Nome: [username]
|
|||
'sign_out' => 'Sair',
|
||||
'sign_out_user' => 'Sair usuário',
|
||||
'site_brand' => '',
|
||||
'skip_default_export_cols' => '',
|
||||
'sk_SK' => 'Eslovaco',
|
||||
'sort_by_date' => 'classificar por data',
|
||||
'sort_by_expiration_date' => '',
|
||||
|
@ -2192,6 +2212,7 @@ Nome: [username]
|
|||
'status_revision_sleeping' => 'Pendente',
|
||||
'status_revisor_removed' => 'Revisor removido da lista',
|
||||
'status_unknown' => 'Desconhecido',
|
||||
'storage' => '',
|
||||
'storage_size' => 'Tamanho de armazenamento',
|
||||
'subfolder_duplicate_name' => 'nome duplicado da subpasta',
|
||||
'submit_2_fact_auth' => 'Salvar senha',
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
|
||||
$text = array(
|
||||
'2_factor_auth' => '',
|
||||
'2_factor_auth_code' => '',
|
||||
'2_factor_auth_info' => '',
|
||||
'2_fact_auth_current_secret' => '',
|
||||
'2_fact_auth_new_secret' => '',
|
||||
|
@ -565,6 +566,8 @@ URL: [url]',
|
|||
'download_header_document_name' => '',
|
||||
'download_header_document_no' => '',
|
||||
'download_header_filename' => '',
|
||||
'download_header_folder_name' => '',
|
||||
'download_header_folder_no' => '',
|
||||
'download_header_internal_version' => '',
|
||||
'download_header_reviewer' => '',
|
||||
'download_header_review_comment' => '',
|
||||
|
@ -695,6 +698,8 @@ URL: [url]',
|
|||
'export_user_list_csv' => '',
|
||||
'extension_archive' => '',
|
||||
'extension_changelog' => '',
|
||||
'extension_config' => '',
|
||||
'extension_info' => '',
|
||||
'extension_is_off_now' => '',
|
||||
'extension_is_on_now' => '',
|
||||
'extension_loading' => 'Se incarca extensiile',
|
||||
|
@ -1149,6 +1154,7 @@ URL: [url]',
|
|||
'no_groups' => 'Nu există grupe',
|
||||
'no_group_members' => 'Acest grup nu are membri',
|
||||
'no_linked_files' => 'Nici un fișiere asociate',
|
||||
'no_mimetype' => '',
|
||||
'no_previous_versions' => 'Nu sunt alte versiuni gasite',
|
||||
'no_receipt_needed' => '',
|
||||
'no_review_needed' => 'Nici o revizuire în așteptare.',
|
||||
|
@ -1302,7 +1308,9 @@ URL: [url]',
|
|||
'removed_workflow_email_body_html' => '',
|
||||
'removed_workflow_email_subject' => '[sitename]: [name] - Workflow eliminat din versiunea documentului',
|
||||
'removeFolderFromDropFolder' => '',
|
||||
'removeFolderFromDropFolder_desc' => '',
|
||||
'remove_approval_log' => '',
|
||||
'remove_from_clipboard' => '',
|
||||
'remove_marked_files' => 'Eliminați fișierele marcate',
|
||||
'remove_review_log' => '',
|
||||
'remove_task' => '',
|
||||
|
@ -1501,6 +1509,7 @@ URL: [url]',
|
|||
'select_category' => 'Click pentru a selecta categoria',
|
||||
'select_created' => '',
|
||||
'select_documents_for_process' => '',
|
||||
'select_folder' => '',
|
||||
'select_group' => 'Selecteaza grupul',
|
||||
'select_groups' => 'Click pentru a selecta grupuri',
|
||||
'select_grp_approvers' => 'Click pentru a selecta grupul de aprobatori',
|
||||
|
@ -1548,7 +1557,9 @@ URL: [url]',
|
|||
'service_name' => '',
|
||||
'sessions' => '',
|
||||
'setDateFromFile' => '',
|
||||
'setDateFromFile_desc' => '',
|
||||
'setDateFromFolder' => '',
|
||||
'setDateFromFolder_desc' => '',
|
||||
'settings' => 'Setări',
|
||||
'settings_activate_module' => 'Activați modulul',
|
||||
'settings_activate_php_extension' => 'Activați extensia PHP',
|
||||
|
@ -1646,6 +1657,8 @@ URL: [url]',
|
|||
'settings_delete_install_folder' => 'Pentru a utiliza SeedDMS, trebuie să ștergeți fișierul ENABLE_INSTALL_TOOL din directorul de configurare',
|
||||
'settings_disableChangePassword' => '',
|
||||
'settings_disableChangePassword_desc' => '',
|
||||
'settings_disableReceiptComment' => '',
|
||||
'settings_disableReceiptComment_desc' => '',
|
||||
'settings_disableSelfEdit' => 'Dezactivați Auto Editarea',
|
||||
'settings_disableSelfEdit_desc' => 'Dacă este bifată, utilizatorul nu va putea să-și editeze profilul',
|
||||
'settings_disable_install' => 'Ștergeți fișierul ENABLE_INSTALL_TOOL dacă este posibil',
|
||||
|
@ -1711,6 +1724,8 @@ URL: [url]',
|
|||
'settings_enableLargeFileUpload_desc' => 'Dacă este setat, incărcarea este de asemenea disponibilă prin intermediul unui applet Java numit jumploader fără limită de dimensiune a fișierului stabilită de browser. De asemenea, permite încărcarea mai multor fișiere într-un singur pas. Activand aceasta optiune va dezactiva optiunea http only cookies.',
|
||||
'settings_enableLoginByEmail' => '',
|
||||
'settings_enableLoginByEmail_desc' => '',
|
||||
'settings_enableMemcached' => '',
|
||||
'settings_enableMemcached_desc' => '',
|
||||
'settings_enableMenuTasks' => '',
|
||||
'settings_enableMenuTasks_desc' => '',
|
||||
'settings_enableMenuTransmittals' => '',
|
||||
|
@ -1770,6 +1785,8 @@ URL: [url]',
|
|||
'settings_encryptionKey' => 'Cheia de criptare',
|
||||
'settings_encryptionKey_desc' => 'Acest șir este utilizat pentru crearea unui identificator unic ce este adăugat ca un câmp ascuns pentru un formular, cu scopul de a preveni atacurile CSRF.',
|
||||
'settings_error' => 'Eroare',
|
||||
'settings_excludeFoldersDashboard' => '',
|
||||
'settings_excludeFoldersDashboard_desc' => '',
|
||||
'settings_expandFolderTree' => 'Expandați ierarhia Folderului',
|
||||
'settings_expandFolderTree_desc' => 'Expandați ierarhia Folderului',
|
||||
'settings_expandFolderTree_val0' => 'începeți cu ierarhia ascunsă',
|
||||
|
@ -1828,6 +1845,8 @@ URL: [url]',
|
|||
'settings_logFileEnable_desc' => 'Activare/dezactivare log fișier',
|
||||
'settings_logFileMaxLevel' => '',
|
||||
'settings_logFileMaxLevel_desc' => '',
|
||||
'settings_logFileRestApiMaxLevel' => '',
|
||||
'settings_logFileRestApiMaxLevel_desc' => '',
|
||||
'settings_logFileRotation' => 'Rotire Log fișiser',
|
||||
'settings_logFileRotation_desc' => 'Rotirea Log-ului fișierului',
|
||||
'settings_loginFailure' => 'Eșec Autentificare',
|
||||
|
@ -2025,6 +2044,7 @@ URL: [url]',
|
|||
'sign_out' => 'Sign out',
|
||||
'sign_out_user' => 'Sign out utilizator',
|
||||
'site_brand' => '',
|
||||
'skip_default_export_cols' => '',
|
||||
'sk_SK' => 'Slovacă',
|
||||
'sort_by_date' => 'Sortare dupa data',
|
||||
'sort_by_expiration_date' => '',
|
||||
|
@ -2154,6 +2174,7 @@ URL: [url]',
|
|||
'status_revision_sleeping' => 'in asteptare',
|
||||
'status_revisor_removed' => 'Revizuitor eliminat din lista',
|
||||
'status_unknown' => 'Necunoscut',
|
||||
'storage' => '',
|
||||
'storage_size' => 'Dimensiunea de stocare',
|
||||
'subfolder_duplicate_name' => '',
|
||||
'submit_2_fact_auth' => '',
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
|
||||
$text = array(
|
||||
'2_factor_auth' => 'Двухфакторная аутентификация',
|
||||
'2_factor_auth_code' => '',
|
||||
'2_factor_auth_info' => 'Использовать усиленную проверку подлинности',
|
||||
'2_fact_auth_current_secret' => '',
|
||||
'2_fact_auth_new_secret' => '',
|
||||
|
@ -565,6 +566,8 @@ URL: [url]',
|
|||
'download_header_document_name' => '',
|
||||
'download_header_document_no' => '',
|
||||
'download_header_filename' => '',
|
||||
'download_header_folder_name' => '',
|
||||
'download_header_folder_no' => '',
|
||||
'download_header_internal_version' => '',
|
||||
'download_header_reviewer' => '',
|
||||
'download_header_review_comment' => '',
|
||||
|
@ -695,6 +698,8 @@ URL: [url]',
|
|||
'export_user_list_csv' => '',
|
||||
'extension_archive' => '',
|
||||
'extension_changelog' => 'Журнал изменений',
|
||||
'extension_config' => '',
|
||||
'extension_info' => '',
|
||||
'extension_is_off_now' => '',
|
||||
'extension_is_on_now' => '',
|
||||
'extension_loading' => 'Загрузка расширений',
|
||||
|
@ -1148,6 +1153,7 @@ URL: [url]',
|
|||
'no_groups' => 'Нет групп',
|
||||
'no_group_members' => 'Группа не имеет членов',
|
||||
'no_linked_files' => 'Нет связанных документов',
|
||||
'no_mimetype' => '',
|
||||
'no_previous_versions' => 'Нет предыдущих версий',
|
||||
'no_receipt_needed' => 'Нет документов, нуждающихся в подтверждении получения',
|
||||
'no_review_needed' => 'Рецензия не требуется',
|
||||
|
@ -1304,7 +1310,9 @@ URL: [url]',
|
|||
'removed_workflow_email_body_html' => '',
|
||||
'removed_workflow_email_subject' => '[sitename]: удалён процесс из версии документа «[name]»',
|
||||
'removeFolderFromDropFolder' => '',
|
||||
'removeFolderFromDropFolder_desc' => '',
|
||||
'remove_approval_log' => '',
|
||||
'remove_from_clipboard' => '',
|
||||
'remove_marked_files' => 'Удалить выбранные файлы',
|
||||
'remove_review_log' => '',
|
||||
'remove_task' => '',
|
||||
|
@ -1508,6 +1516,7 @@ URL: [url]',
|
|||
'select_category' => 'Выберите категорию',
|
||||
'select_created' => '',
|
||||
'select_documents_for_process' => '',
|
||||
'select_folder' => '',
|
||||
'select_group' => 'Выберите группу',
|
||||
'select_groups' => 'Выберите группы',
|
||||
'select_grp_approvers' => 'Выберите утверждающую группу',
|
||||
|
@ -1555,7 +1564,9 @@ URL: [url]',
|
|||
'service_name' => '',
|
||||
'sessions' => '',
|
||||
'setDateFromFile' => '',
|
||||
'setDateFromFile_desc' => '',
|
||||
'setDateFromFolder' => '',
|
||||
'setDateFromFolder_desc' => '',
|
||||
'settings' => 'Настройки',
|
||||
'settings_activate_module' => 'Активировать модуль',
|
||||
'settings_activate_php_extension' => 'Активировать расширение PHP',
|
||||
|
@ -1653,6 +1664,8 @@ URL: [url]',
|
|||
'settings_delete_install_folder' => 'Удалите ENABLE_INSTALL_TOOL в каталоге конфигурации, для того что бы начать использовать систему',
|
||||
'settings_disableChangePassword' => '',
|
||||
'settings_disableChangePassword_desc' => '',
|
||||
'settings_disableReceiptComment' => '',
|
||||
'settings_disableReceiptComment_desc' => '',
|
||||
'settings_disableSelfEdit' => 'Отключить собственное редактирование',
|
||||
'settings_disableSelfEdit_desc' => 'Если включено, пользователи не смогут изменять информацию о себе.',
|
||||
'settings_disable_install' => 'Удалить ENABLE_INSTALL_TOOL, если возможно',
|
||||
|
@ -1718,6 +1731,8 @@ URL: [url]',
|
|||
'settings_enableLargeFileUpload_desc' => 'Если включено, загрузка файлов доступна так же через Java-апплет, называемый jumploader, без ограничения размера файла. Это также позволит загружать несколько файлов за раз.',
|
||||
'settings_enableLoginByEmail' => '',
|
||||
'settings_enableLoginByEmail_desc' => '',
|
||||
'settings_enableMemcached' => '',
|
||||
'settings_enableMemcached_desc' => '',
|
||||
'settings_enableMenuTasks' => 'Включить список задач в меню',
|
||||
'settings_enableMenuTasks_desc' => 'Включить/отключить пункт меню, который содержит все задачи пользователя. Там содержатся документы, которые нуждаются в рецензии, утверждении и т.д.',
|
||||
'settings_enableMenuTransmittals' => '',
|
||||
|
@ -1777,6 +1792,8 @@ URL: [url]',
|
|||
'settings_encryptionKey' => 'Ключ шифрования',
|
||||
'settings_encryptionKey_desc' => 'Строка используется для создания уникального идентификатора, добавляемого как скрытые поля к формулярам, для предотвращения CSRF-атак.',
|
||||
'settings_error' => 'Ошибка',
|
||||
'settings_excludeFoldersDashboard' => '',
|
||||
'settings_excludeFoldersDashboard_desc' => '',
|
||||
'settings_expandFolderTree' => 'Разворачивать дерево каталогов',
|
||||
'settings_expandFolderTree_desc' => 'Разворачивать дерево каталогов.',
|
||||
'settings_expandFolderTree_val0' => 'Начинать со свёрнутого дерева',
|
||||
|
@ -1835,6 +1852,8 @@ URL: [url]',
|
|||
'settings_logFileEnable_desc' => 'Включить/отключить журнал.',
|
||||
'settings_logFileMaxLevel' => '',
|
||||
'settings_logFileMaxLevel_desc' => '',
|
||||
'settings_logFileRestApiMaxLevel' => '',
|
||||
'settings_logFileRestApiMaxLevel_desc' => '',
|
||||
'settings_logFileRotation' => 'Ротация журнала',
|
||||
'settings_logFileRotation_desc' => 'Ротация файла журнала.',
|
||||
'settings_loginFailure' => 'Не удалось войти',
|
||||
|
@ -2032,6 +2051,7 @@ URL: [url]',
|
|||
'sign_out' => 'Выйти',
|
||||
'sign_out_user' => 'Пользовательский выход',
|
||||
'site_brand' => '',
|
||||
'skip_default_export_cols' => '',
|
||||
'sk_SK' => 'Slovak',
|
||||
'sort_by_date' => 'Сортировка по дате',
|
||||
'sort_by_expiration_date' => '',
|
||||
|
@ -2161,6 +2181,7 @@ URL: [url]',
|
|||
'status_revision_sleeping' => 'В ожидании рецензии',
|
||||
'status_revisor_removed' => 'Ревизор удален из списка',
|
||||
'status_unknown' => 'Неизвестный',
|
||||
'storage' => '',
|
||||
'storage_size' => 'Размер хранилища',
|
||||
'subfolder_duplicate_name' => '',
|
||||
'submit_2_fact_auth' => '',
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
|
||||
$text = array(
|
||||
'2_factor_auth' => '2-faktorové overovanie',
|
||||
'2_factor_auth_code' => '',
|
||||
'2_factor_auth_info' => 'This system enforces 2 factor authentication. You will need the Google Authenticator on your mobile phone. Below you see two QR codes. The right one is your current secret. On the left you can set a new secret. If you set a new secret make sure to rescan it with Google Authenticator.',
|
||||
'2_fact_auth_current_secret' => '',
|
||||
'2_fact_auth_new_secret' => '',
|
||||
|
@ -577,6 +578,8 @@ URL: [url]',
|
|||
'download_header_document_name' => '',
|
||||
'download_header_document_no' => '',
|
||||
'download_header_filename' => '',
|
||||
'download_header_folder_name' => '',
|
||||
'download_header_folder_no' => '',
|
||||
'download_header_internal_version' => '',
|
||||
'download_header_reviewer' => '',
|
||||
'download_header_review_comment' => '',
|
||||
|
@ -707,6 +710,8 @@ URL: [url]',
|
|||
'export_user_list_csv' => '',
|
||||
'extension_archive' => 'Rozšírenie',
|
||||
'extension_changelog' => 'Denník zmien',
|
||||
'extension_config' => '',
|
||||
'extension_info' => '',
|
||||
'extension_is_off_now' => '',
|
||||
'extension_is_on_now' => '',
|
||||
'extension_loading' => 'Nahrávajú sa rozšírenia ...',
|
||||
|
@ -1168,6 +1173,7 @@ URL: [url]',
|
|||
'no_groups' => 'Žiadne skupiny',
|
||||
'no_group_members' => 'Táto skupina nemá žiadnych členov',
|
||||
'no_linked_files' => 'No linked files',
|
||||
'no_mimetype' => '',
|
||||
'no_previous_versions' => 'Neboli nájdené žiadne iné verzie',
|
||||
'no_receipt_needed' => 'There are currently no documents requiring a receipt confirmation.',
|
||||
'no_review_needed' => 'No review pending.',
|
||||
|
@ -1332,7 +1338,9 @@ URL: [url]',
|
|||
'removed_workflow_email_body_html' => '',
|
||||
'removed_workflow_email_subject' => '[sitename]: [name] - Removed workflow from document version',
|
||||
'removeFolderFromDropFolder' => 'Po importe odstrániť zložku',
|
||||
'removeFolderFromDropFolder_desc' => '',
|
||||
'remove_approval_log' => '',
|
||||
'remove_from_clipboard' => '',
|
||||
'remove_marked_files' => 'Odstrániť označené súbory',
|
||||
'remove_review_log' => '',
|
||||
'remove_task' => '',
|
||||
|
@ -1536,6 +1544,7 @@ URL: [url]',
|
|||
'select_category' => 'Vyber kategóriu',
|
||||
'select_created' => '',
|
||||
'select_documents_for_process' => '',
|
||||
'select_folder' => '',
|
||||
'select_group' => 'Vybrať skupinu',
|
||||
'select_groups' => 'Kliknutím vyberte skupiny',
|
||||
'select_grp_approvers' => 'Kliknutím vyberte schvaľovateľa skupiny',
|
||||
|
@ -1588,7 +1597,9 @@ Meno: [username]
|
|||
'service_name' => '',
|
||||
'sessions' => 'Používatelia online',
|
||||
'setDateFromFile' => 'Prebrať dátumy z importovaných súborov',
|
||||
'setDateFromFile_desc' => '',
|
||||
'setDateFromFolder' => 'Prebrať dátumy z importovaných zložiek',
|
||||
'setDateFromFolder_desc' => '',
|
||||
'settings' => 'Nastavenia',
|
||||
'settings_activate_module' => 'Aktivovať modul',
|
||||
'settings_activate_php_extension' => 'Aktivovať PHP rozšírenie',
|
||||
|
@ -1686,6 +1697,8 @@ Meno: [username]
|
|||
'settings_delete_install_folder' => 'In order to use SeedDMS, you must delete the file ENABLE_INSTALL_TOOL in the configuration directory',
|
||||
'settings_disableChangePassword' => '',
|
||||
'settings_disableChangePassword_desc' => '',
|
||||
'settings_disableReceiptComment' => '',
|
||||
'settings_disableReceiptComment_desc' => '',
|
||||
'settings_disableSelfEdit' => 'Disable Self Edit',
|
||||
'settings_disableSelfEdit_desc' => 'If checked user cannot edit his own profile',
|
||||
'settings_disable_install' => 'Delete file ENABLE_INSTALL_TOOL if possible',
|
||||
|
@ -1751,6 +1764,8 @@ Meno: [username]
|
|||
'settings_enableLargeFileUpload_desc' => 'If set, file upload is also available through a java applet called jumploader without a file size limit set by the browser. It also allows to upload several files in one step. Turning this on will turn off http only cookies.',
|
||||
'settings_enableLoginByEmail' => '',
|
||||
'settings_enableLoginByEmail_desc' => '',
|
||||
'settings_enableMemcached' => '',
|
||||
'settings_enableMemcached_desc' => '',
|
||||
'settings_enableMenuTasks' => 'Enable task list in menu',
|
||||
'settings_enableMenuTasks_desc' => 'Enable/Disable the menu item which contains all tasks for the user. This contains documents, that need to be reviewed, approved, etc.',
|
||||
'settings_enableMenuTransmittals' => '',
|
||||
|
@ -1810,6 +1825,8 @@ Meno: [username]
|
|||
'settings_encryptionKey' => 'Encryption key',
|
||||
'settings_encryptionKey_desc' => 'This string is used for creating a unique identifier being added as a hidden field to a form in order to prevent CSRF attacks.',
|
||||
'settings_error' => 'Chyba',
|
||||
'settings_excludeFoldersDashboard' => '',
|
||||
'settings_excludeFoldersDashboard_desc' => '',
|
||||
'settings_expandFolderTree' => 'Rozbaliť',
|
||||
'settings_expandFolderTree_desc' => 'Rozbaliť strom zložiek',
|
||||
'settings_expandFolderTree_val0' => 'začať so skrytou stromovou štruktúrou',
|
||||
|
@ -1868,6 +1885,8 @@ Meno: [username]
|
|||
'settings_logFileEnable_desc' => 'Povoliť/zakázať log súbor',
|
||||
'settings_logFileMaxLevel' => '',
|
||||
'settings_logFileMaxLevel_desc' => '',
|
||||
'settings_logFileRestApiMaxLevel' => '',
|
||||
'settings_logFileRestApiMaxLevel_desc' => '',
|
||||
'settings_logFileRotation' => 'Log File Rotation',
|
||||
'settings_logFileRotation_desc' => 'The log file rotation',
|
||||
'settings_loginFailure' => 'Prihlásenie zlyhalo',
|
||||
|
@ -2065,6 +2084,7 @@ Meno: [username]
|
|||
'sign_out' => 'odhlásiť',
|
||||
'sign_out_user' => 'Odhlásiť používateľa',
|
||||
'site_brand' => '',
|
||||
'skip_default_export_cols' => '',
|
||||
'sk_SK' => 'Slovenčina',
|
||||
'sort_by_date' => '',
|
||||
'sort_by_expiration_date' => '',
|
||||
|
@ -2194,6 +2214,7 @@ Meno: [username]
|
|||
'status_revision_sleeping' => 'pending',
|
||||
'status_revisor_removed' => 'Revisor removed from list',
|
||||
'status_unknown' => 'Neznámy',
|
||||
'storage' => '',
|
||||
'storage_size' => 'Objem dát',
|
||||
'subfolder_duplicate_name' => '',
|
||||
'submit_2_fact_auth' => 'Save secret',
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
|
||||
$text = array(
|
||||
'2_factor_auth' => '2-faktors autentisering',
|
||||
'2_factor_auth_code' => '',
|
||||
'2_factor_auth_info' => 'För stöd av 2-faktors autentisering behöver du Google Authenticator installerad på din mobiltelefon.
|
||||
Nedan ser du två QR-koder. Den högra är din hemliga kod och till vänster kan du skapa en ny kod. Om du skapar en ny kod måste du skanna den på nytt med Google Authenticator.',
|
||||
'2_fact_auth_current_secret' => '',
|
||||
|
@ -571,6 +572,8 @@ URL: [url]',
|
|||
'download_header_document_name' => '',
|
||||
'download_header_document_no' => '',
|
||||
'download_header_filename' => '',
|
||||
'download_header_folder_name' => '',
|
||||
'download_header_folder_no' => '',
|
||||
'download_header_internal_version' => '',
|
||||
'download_header_reviewer' => '',
|
||||
'download_header_review_comment' => '',
|
||||
|
@ -701,6 +704,8 @@ URL: [url]',
|
|||
'export_user_list_csv' => '',
|
||||
'extension_archive' => '',
|
||||
'extension_changelog' => '',
|
||||
'extension_config' => '',
|
||||
'extension_info' => '',
|
||||
'extension_is_off_now' => '',
|
||||
'extension_is_on_now' => '',
|
||||
'extension_loading' => '',
|
||||
|
@ -1155,6 +1160,7 @@ URL: [url]',
|
|||
'no_groups' => 'Inga grupper',
|
||||
'no_group_members' => 'Denna grupp har inga medlemmar',
|
||||
'no_linked_files' => 'Inga länkade filer',
|
||||
'no_mimetype' => '',
|
||||
'no_previous_versions' => 'Inga andra versioner hittades.',
|
||||
'no_receipt_needed' => 'Det finns inga dokument som saknar mottagningsbevis.',
|
||||
'no_review_needed' => 'Det finns inga dokument som du behöver granska.',
|
||||
|
@ -1305,7 +1311,9 @@ URL: [url]',
|
|||
'removed_workflow_email_body_html' => '',
|
||||
'removed_workflow_email_subject' => '[sitename]: [name] - Arbetsflöde borttaget från dokumentversion',
|
||||
'removeFolderFromDropFolder' => 'Radera katalog efter import',
|
||||
'removeFolderFromDropFolder_desc' => '',
|
||||
'remove_approval_log' => '',
|
||||
'remove_from_clipboard' => '',
|
||||
'remove_marked_files' => 'Ta bort markerade filer',
|
||||
'remove_review_log' => '',
|
||||
'remove_task' => '',
|
||||
|
@ -1509,6 +1517,7 @@ URL: [url]',
|
|||
'select_category' => 'Klicka för att välja en kategori',
|
||||
'select_created' => '',
|
||||
'select_documents_for_process' => '',
|
||||
'select_folder' => '',
|
||||
'select_group' => 'Välj grupp',
|
||||
'select_groups' => 'Välj grupper',
|
||||
'select_grp_approvers' => 'Välj en grupp som ska godkänna',
|
||||
|
@ -1561,7 +1570,9 @@ Kommentar: [comment]',
|
|||
'service_name' => '',
|
||||
'sessions' => 'Användare online',
|
||||
'setDateFromFile' => '',
|
||||
'setDateFromFile_desc' => '',
|
||||
'setDateFromFolder' => '',
|
||||
'setDateFromFolder_desc' => '',
|
||||
'settings' => 'Inställningar',
|
||||
'settings_activate_module' => 'Aktivera modul',
|
||||
'settings_activate_php_extension' => 'Aktivera PHP-extension',
|
||||
|
@ -1659,6 +1670,8 @@ Kommentar: [comment]',
|
|||
'settings_delete_install_folder' => 'För att kunna använda LetoDMS måste du ta bort filen ENABLE_INSTALL_TOOL som finns i konfigurationsmappen.',
|
||||
'settings_disableChangePassword' => '',
|
||||
'settings_disableChangePassword_desc' => '',
|
||||
'settings_disableReceiptComment' => '',
|
||||
'settings_disableReceiptComment_desc' => '',
|
||||
'settings_disableSelfEdit' => 'Inaktivera själveditering',
|
||||
'settings_disableSelfEdit_desc' => 'Om ikryssad kan användare inte ändra sin egen profil.',
|
||||
'settings_disable_install' => 'Ta bort filen ENABLE_INSTALL_TOOL, om det är möjligt.',
|
||||
|
@ -1724,6 +1737,8 @@ Kommentar: [comment]',
|
|||
'settings_enableLargeFileUpload_desc' => 'Om aktiverad, kan filer laddas upp via javaapplet med namnet jumploader, utan begränsningar i filstorlek. Flera filer kan även laddas upp samtidigt i ett steg.',
|
||||
'settings_enableLoginByEmail' => '',
|
||||
'settings_enableLoginByEmail_desc' => '',
|
||||
'settings_enableMemcached' => '',
|
||||
'settings_enableMemcached_desc' => '',
|
||||
'settings_enableMenuTasks' => 'Aktivera uppgiftslista i menyn',
|
||||
'settings_enableMenuTasks_desc' => 'Aktiverar ett menyobjekt som visar användarens uppgifter, såsom dokument som behöver granskas eller godkännas.',
|
||||
'settings_enableMenuTransmittals' => '',
|
||||
|
@ -1783,6 +1798,8 @@ Kommentar: [comment]',
|
|||
'settings_encryptionKey' => 'Krypteringsnyckel',
|
||||
'settings_encryptionKey_desc' => 'Denna sträng används för att generera en unik identifierare, som är inrymd som ett dolt fält i ett formulär. Det används för att förhindra CSRF-attacker.',
|
||||
'settings_error' => 'Fel',
|
||||
'settings_excludeFoldersDashboard' => '',
|
||||
'settings_excludeFoldersDashboard_desc' => '',
|
||||
'settings_expandFolderTree' => 'Expandera katalogträd',
|
||||
'settings_expandFolderTree_desc' => 'Expandera katalogträd',
|
||||
'settings_expandFolderTree_val0' => 'Börja med dolt träd',
|
||||
|
@ -1841,6 +1858,8 @@ Kommentar: [comment]',
|
|||
'settings_logFileEnable_desc' => 'Aktivera/Inaktivera loggfil',
|
||||
'settings_logFileMaxLevel' => '',
|
||||
'settings_logFileMaxLevel_desc' => '',
|
||||
'settings_logFileRestApiMaxLevel' => '',
|
||||
'settings_logFileRestApiMaxLevel_desc' => '',
|
||||
'settings_logFileRotation' => 'Loggfils-rotation',
|
||||
'settings_logFileRotation_desc' => 'Loggfils-rotation',
|
||||
'settings_loginFailure' => 'Fel vid inloggning',
|
||||
|
@ -2038,6 +2057,7 @@ Kommentar: [comment]',
|
|||
'sign_out' => 'Logga ut',
|
||||
'sign_out_user' => 'Logga ut användare',
|
||||
'site_brand' => '',
|
||||
'skip_default_export_cols' => '',
|
||||
'sk_SK' => 'Slovakiska',
|
||||
'sort_by_date' => '',
|
||||
'sort_by_expiration_date' => '',
|
||||
|
@ -2167,6 +2187,7 @@ Kommentar: [comment]',
|
|||
'status_revision_sleeping' => 'Vilande',
|
||||
'status_revisor_removed' => 'Reviderare borttagen från listan',
|
||||
'status_unknown' => 'Okänd',
|
||||
'storage' => '',
|
||||
'storage_size' => 'Lagringsstorlek',
|
||||
'subfolder_duplicate_name' => '',
|
||||
'submit_2_fact_auth' => 'Spara hemlighet',
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
|
||||
$text = array(
|
||||
'2_factor_auth' => 'İki faktörlü yetkilendirme',
|
||||
'2_factor_auth_code' => '',
|
||||
'2_factor_auth_info' => '',
|
||||
'2_fact_auth_current_secret' => '',
|
||||
'2_fact_auth_new_secret' => '',
|
||||
|
@ -559,6 +560,8 @@ URL: [url]',
|
|||
'download_header_document_name' => '',
|
||||
'download_header_document_no' => '',
|
||||
'download_header_filename' => '',
|
||||
'download_header_folder_name' => '',
|
||||
'download_header_folder_no' => '',
|
||||
'download_header_internal_version' => '',
|
||||
'download_header_reviewer' => '',
|
||||
'download_header_review_comment' => '',
|
||||
|
@ -689,6 +692,8 @@ URL: [url]',
|
|||
'export_user_list_csv' => 'Kullanıcıları CSV olarak dışa aktar',
|
||||
'extension_archive' => '',
|
||||
'extension_changelog' => 'Değişiklik Listesi',
|
||||
'extension_config' => '',
|
||||
'extension_info' => '',
|
||||
'extension_is_off_now' => '',
|
||||
'extension_is_on_now' => '',
|
||||
'extension_loading' => 'Uzantı yüklendi',
|
||||
|
@ -1141,6 +1146,7 @@ URL: [url]',
|
|||
'no_groups' => 'Grup yok',
|
||||
'no_group_members' => 'Bu grubun hiç üyesi yok',
|
||||
'no_linked_files' => 'Link verilmiş dosya yok',
|
||||
'no_mimetype' => '',
|
||||
'no_previous_versions' => 'Başka versiyon yok',
|
||||
'no_receipt_needed' => '',
|
||||
'no_review_needed' => 'Bekleyen kontrol yok.',
|
||||
|
@ -1296,7 +1302,9 @@ URL: [url]',
|
|||
'removed_workflow_email_body_html' => '',
|
||||
'removed_workflow_email_subject' => '[sitename]: [name] - Doküman versiyonundan iş akışı silindi',
|
||||
'removeFolderFromDropFolder' => '',
|
||||
'removeFolderFromDropFolder_desc' => '',
|
||||
'remove_approval_log' => '',
|
||||
'remove_from_clipboard' => '',
|
||||
'remove_marked_files' => 'İşaretli dosyaları sil',
|
||||
'remove_review_log' => '',
|
||||
'remove_task' => '',
|
||||
|
@ -1478,6 +1486,7 @@ URL: [url]',
|
|||
'select_category' => 'Kategori seçmek için tıklayın',
|
||||
'select_created' => '',
|
||||
'select_documents_for_process' => '',
|
||||
'select_folder' => '',
|
||||
'select_group' => 'Grup Seç',
|
||||
'select_groups' => 'Grup seçmek için tıklayın',
|
||||
'select_grp_approvers' => 'Grup onaylayıcı seçmek için tıklayın',
|
||||
|
@ -1525,7 +1534,9 @@ URL: [url]',
|
|||
'service_name' => '',
|
||||
'sessions' => '',
|
||||
'setDateFromFile' => '',
|
||||
'setDateFromFile_desc' => '',
|
||||
'setDateFromFolder' => '',
|
||||
'setDateFromFolder_desc' => '',
|
||||
'settings' => 'Ayarlar',
|
||||
'settings_activate_module' => 'Modülü etkinleştir',
|
||||
'settings_activate_php_extension' => 'PHP uzantısını etkinleştir',
|
||||
|
@ -1623,6 +1634,8 @@ URL: [url]',
|
|||
'settings_delete_install_folder' => 'SeedDMS kullanabilmeniz için konfigürasyon (conf) dizini içindeki ENABLE_INSTALL_TOOL dosyasını silmelisiniz',
|
||||
'settings_disableChangePassword' => '',
|
||||
'settings_disableChangePassword_desc' => '',
|
||||
'settings_disableReceiptComment' => '',
|
||||
'settings_disableReceiptComment_desc' => '',
|
||||
'settings_disableSelfEdit' => 'Kendi kendine Düzenlemeyi Kapat',
|
||||
'settings_disableSelfEdit_desc' => 'Seçilirse kullanıcı kendi profil ayarlarını değiştiremez.',
|
||||
'settings_disable_install' => 'ENABLE_INSTALL_TOOL dosyasını silmeyi dene',
|
||||
|
@ -1688,6 +1701,8 @@ URL: [url]',
|
|||
'settings_enableLargeFileUpload_desc' => 'Etkinleştirilirse, büyük dosyalar dosya limitine bakılmaksızın jumploader isimli java applet aracılığıyla yüklenebilir. Bu ayrıca bir seferde birden çok dosya yüklemeyi de sağlar. Bu açıldığında sadece http çerezleri kapanmış olur.',
|
||||
'settings_enableLoginByEmail' => '',
|
||||
'settings_enableLoginByEmail_desc' => '',
|
||||
'settings_enableMemcached' => '',
|
||||
'settings_enableMemcached_desc' => '',
|
||||
'settings_enableMenuTasks' => '',
|
||||
'settings_enableMenuTasks_desc' => '',
|
||||
'settings_enableMenuTransmittals' => '',
|
||||
|
@ -1747,6 +1762,8 @@ URL: [url]',
|
|||
'settings_encryptionKey' => 'Şifreleme anahtarı',
|
||||
'settings_encryptionKey_desc' => 'Bu string, CSRF ataklarını önlemek için eşsiz id olarak kaydedilir.',
|
||||
'settings_error' => 'Hata',
|
||||
'settings_excludeFoldersDashboard' => '',
|
||||
'settings_excludeFoldersDashboard_desc' => '',
|
||||
'settings_expandFolderTree' => 'Klasör Ağacını Genişlet',
|
||||
'settings_expandFolderTree_desc' => 'Klasör Ağacını Genişlet',
|
||||
'settings_expandFolderTree_val0' => 'ağaç yapısı gizli olarak başlat',
|
||||
|
@ -1805,6 +1822,8 @@ URL: [url]',
|
|||
'settings_logFileEnable_desc' => 'Log dosyasını etkinleştir/devredışı bırak',
|
||||
'settings_logFileMaxLevel' => '',
|
||||
'settings_logFileMaxLevel_desc' => '',
|
||||
'settings_logFileRestApiMaxLevel' => '',
|
||||
'settings_logFileRestApiMaxLevel_desc' => '',
|
||||
'settings_logFileRotation' => 'Log Dosyası rotasyonu',
|
||||
'settings_logFileRotation_desc' => 'Log dosyasını seçeceğiniz zaman dilimine göre ayrı ayrı kaydet',
|
||||
'settings_loginFailure' => 'Hatalı giriş sayısı',
|
||||
|
@ -2002,6 +2021,7 @@ URL: [url]',
|
|||
'sign_out' => 'Çıkış',
|
||||
'sign_out_user' => 'Kullanıcı hesabından çıkış',
|
||||
'site_brand' => '',
|
||||
'skip_default_export_cols' => '',
|
||||
'sk_SK' => 'Slovakça',
|
||||
'sort_by_date' => 'Tarihe göre sırala',
|
||||
'sort_by_expiration_date' => '',
|
||||
|
@ -2131,6 +2151,7 @@ URL: [url]',
|
|||
'status_revision_sleeping' => '',
|
||||
'status_revisor_removed' => '',
|
||||
'status_unknown' => 'Bilinmeyen',
|
||||
'storage' => '',
|
||||
'storage_size' => 'Depo boyutu',
|
||||
'subfolder_duplicate_name' => '',
|
||||
'submit_2_fact_auth' => '',
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
|
||||
$text = array(
|
||||
'2_factor_auth' => '',
|
||||
'2_factor_auth_code' => '',
|
||||
'2_factor_auth_info' => '',
|
||||
'2_fact_auth_current_secret' => '',
|
||||
'2_fact_auth_new_secret' => '',
|
||||
|
@ -564,6 +565,8 @@ URL: [url]',
|
|||
'download_header_document_name' => '',
|
||||
'download_header_document_no' => '',
|
||||
'download_header_filename' => '',
|
||||
'download_header_folder_name' => '',
|
||||
'download_header_folder_no' => '',
|
||||
'download_header_internal_version' => '',
|
||||
'download_header_reviewer' => '',
|
||||
'download_header_review_comment' => '',
|
||||
|
@ -694,6 +697,8 @@ URL: [url]',
|
|||
'export_user_list_csv' => '',
|
||||
'extension_archive' => '',
|
||||
'extension_changelog' => '',
|
||||
'extension_config' => '',
|
||||
'extension_info' => '',
|
||||
'extension_is_off_now' => '',
|
||||
'extension_is_on_now' => '',
|
||||
'extension_loading' => '',
|
||||
|
@ -1147,6 +1152,7 @@ URL: [url]',
|
|||
'no_groups' => 'Немає груп',
|
||||
'no_group_members' => 'Група не має членів',
|
||||
'no_linked_files' => 'Немає пов\'язаних документів',
|
||||
'no_mimetype' => '',
|
||||
'no_previous_versions' => 'Немає попередніх версій',
|
||||
'no_receipt_needed' => 'Немає документів, які потребують підтвердження отримання',
|
||||
'no_review_needed' => 'Рецензія не потрібна',
|
||||
|
@ -1303,7 +1309,9 @@ URL: [url]',
|
|||
'removed_workflow_email_body_html' => '',
|
||||
'removed_workflow_email_subject' => '[sitename]: видалено процес з версії документа «[name]»',
|
||||
'removeFolderFromDropFolder' => '',
|
||||
'removeFolderFromDropFolder_desc' => '',
|
||||
'remove_approval_log' => '',
|
||||
'remove_from_clipboard' => '',
|
||||
'remove_marked_files' => 'Видалити обрані файли',
|
||||
'remove_review_log' => '',
|
||||
'remove_task' => '',
|
||||
|
@ -1500,6 +1508,7 @@ URL: [url]',
|
|||
'select_category' => 'Оберіть категорію',
|
||||
'select_created' => '',
|
||||
'select_documents_for_process' => '',
|
||||
'select_folder' => '',
|
||||
'select_group' => '',
|
||||
'select_groups' => 'Оберіть групи',
|
||||
'select_grp_approvers' => 'Оберіть групу затверджувачів',
|
||||
|
@ -1547,7 +1556,9 @@ URL: [url]',
|
|||
'service_name' => '',
|
||||
'sessions' => '',
|
||||
'setDateFromFile' => '',
|
||||
'setDateFromFile_desc' => '',
|
||||
'setDateFromFolder' => '',
|
||||
'setDateFromFolder_desc' => '',
|
||||
'settings' => 'Налаштування',
|
||||
'settings_activate_module' => 'Активувати модуль',
|
||||
'settings_activate_php_extension' => 'Активувати розширення PHP',
|
||||
|
@ -1645,6 +1656,8 @@ URL: [url]',
|
|||
'settings_delete_install_folder' => 'Видаліть ENABLE_INSTALL_TOOL в каталозі конфігурації для того, щоби почати використовувати систему',
|
||||
'settings_disableChangePassword' => '',
|
||||
'settings_disableChangePassword_desc' => '',
|
||||
'settings_disableReceiptComment' => '',
|
||||
'settings_disableReceiptComment_desc' => '',
|
||||
'settings_disableSelfEdit' => 'Відключити власне редагування',
|
||||
'settings_disableSelfEdit_desc' => 'Якщо ввімкнено, користувачі не зможуть змінювати інформацію про себе.',
|
||||
'settings_disable_install' => 'Видалити ENABLE_INSTALL_TOOL, якщо можливо',
|
||||
|
@ -1710,6 +1723,8 @@ URL: [url]',
|
|||
'settings_enableLargeFileUpload_desc' => 'Якщо увімкнено, завантаження файлів доступне також через Java-аплет jumploader без обмеження розміру файлів. Це також дозволить завантажувати кілька файлів за раз.',
|
||||
'settings_enableLoginByEmail' => '',
|
||||
'settings_enableLoginByEmail_desc' => '',
|
||||
'settings_enableMemcached' => '',
|
||||
'settings_enableMemcached_desc' => '',
|
||||
'settings_enableMenuTasks' => 'Включити список завдань в меню',
|
||||
'settings_enableMenuTasks_desc' => 'Включити/відключити пункт меню, який містить всі завдання користувача. Там містяться документи, які потребують рецензії, затвердження і т.ін.',
|
||||
'settings_enableMenuTransmittals' => '',
|
||||
|
@ -1769,6 +1784,8 @@ URL: [url]',
|
|||
'settings_encryptionKey' => 'Ключ шифрування',
|
||||
'settings_encryptionKey_desc' => 'Рядок використовується для створення унікального ідентифікатора, який додається як приховане поле до формулярів, для запобігання CSRF-атак.',
|
||||
'settings_error' => 'Помилка',
|
||||
'settings_excludeFoldersDashboard' => '',
|
||||
'settings_excludeFoldersDashboard_desc' => '',
|
||||
'settings_expandFolderTree' => 'Розгортати дерево каталогів',
|
||||
'settings_expandFolderTree_desc' => 'Розгортати дерево каталогів.',
|
||||
'settings_expandFolderTree_val0' => 'Починати із згорнутого дерева',
|
||||
|
@ -1827,6 +1844,8 @@ URL: [url]',
|
|||
'settings_logFileEnable_desc' => 'Увімкнути/вимкнути протоколювання (лог).',
|
||||
'settings_logFileMaxLevel' => '',
|
||||
'settings_logFileMaxLevel_desc' => '',
|
||||
'settings_logFileRestApiMaxLevel' => '',
|
||||
'settings_logFileRestApiMaxLevel_desc' => '',
|
||||
'settings_logFileRotation' => 'Ротація журналу (протоколу)',
|
||||
'settings_logFileRotation_desc' => 'Ротація файлу журналу.',
|
||||
'settings_loginFailure' => 'Не вдалося увійти',
|
||||
|
@ -2024,6 +2043,7 @@ URL: [url]',
|
|||
'sign_out' => 'Вийти',
|
||||
'sign_out_user' => 'Вихід користувача',
|
||||
'site_brand' => '',
|
||||
'skip_default_export_cols' => '',
|
||||
'sk_SK' => 'Slovak',
|
||||
'sort_by_date' => '',
|
||||
'sort_by_expiration_date' => '',
|
||||
|
@ -2153,6 +2173,7 @@ URL: [url]',
|
|||
'status_revision_sleeping' => 'Ревізію призупинено',
|
||||
'status_revisor_removed' => 'Ревізора видалено зі списку',
|
||||
'status_unknown' => 'Невідомий',
|
||||
'storage' => '',
|
||||
'storage_size' => 'Розмір сховища',
|
||||
'subfolder_duplicate_name' => '',
|
||||
'submit_2_fact_auth' => '',
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
|
||||
$text = array(
|
||||
'2_factor_auth' => '双重认证',
|
||||
'2_factor_auth_code' => '',
|
||||
'2_factor_auth_info' => '该系统启用双重认证。您需要在手机上进行 Google 认证。下面你会看到两个 QR 码。正确的是你目前的密码。在左边你可以设置一个新的密码。如果您设置了新的密码,请重新扫描并通过 Google 认证。',
|
||||
'2_fact_auth_current_secret' => '',
|
||||
'2_fact_auth_new_secret' => '',
|
||||
|
@ -559,6 +560,8 @@ URL: [url]',
|
|||
'download_header_document_name' => '',
|
||||
'download_header_document_no' => '',
|
||||
'download_header_filename' => '',
|
||||
'download_header_folder_name' => '',
|
||||
'download_header_folder_no' => '',
|
||||
'download_header_internal_version' => '',
|
||||
'download_header_reviewer' => '',
|
||||
'download_header_review_comment' => '',
|
||||
|
@ -697,6 +700,8 @@ URL: [url]',
|
|||
'export_user_list_csv' => '',
|
||||
'extension_archive' => '扩展',
|
||||
'extension_changelog' => '更新日志',
|
||||
'extension_config' => '',
|
||||
'extension_info' => '',
|
||||
'extension_is_off_now' => '',
|
||||
'extension_is_on_now' => '',
|
||||
'extension_loading' => '加载扩展',
|
||||
|
@ -1151,6 +1156,7 @@ URL: [url]',
|
|||
'no_groups' => '无组别',
|
||||
'no_group_members' => '该组没有成员',
|
||||
'no_linked_files' => '无链接文件',
|
||||
'no_mimetype' => '',
|
||||
'no_previous_versions' => '无其它版本',
|
||||
'no_receipt_needed' => '目前没有需要收据确认的文件',
|
||||
'no_review_needed' => '无待校对的文件',
|
||||
|
@ -1309,7 +1315,9 @@ URL: [url]',
|
|||
'removed_workflow_email_body_html' => '',
|
||||
'removed_workflow_email_subject' => '[sitename]: [name] - 已从文档版本中移除工作流',
|
||||
'removeFolderFromDropFolder' => '导入后删除文件夹',
|
||||
'removeFolderFromDropFolder_desc' => '',
|
||||
'remove_approval_log' => '',
|
||||
'remove_from_clipboard' => '',
|
||||
'remove_marked_files' => '删除选中的文件',
|
||||
'remove_review_log' => '',
|
||||
'remove_task' => '',
|
||||
|
@ -1483,6 +1491,7 @@ URL: [url]',
|
|||
'select_category' => '选中分类',
|
||||
'select_created' => '',
|
||||
'select_documents_for_process' => '',
|
||||
'select_folder' => '',
|
||||
'select_group' => '选择用户组',
|
||||
'select_groups' => '点击选择组',
|
||||
'select_grp_approvers' => '点击选择组审批组',
|
||||
|
@ -1535,7 +1544,9 @@ URL: [url]',
|
|||
'service_name' => '',
|
||||
'sessions' => '在线用户',
|
||||
'setDateFromFile' => '导入文件接收日期',
|
||||
'setDateFromFile_desc' => '',
|
||||
'setDateFromFolder' => '导入文件夹接收日期',
|
||||
'setDateFromFolder_desc' => '',
|
||||
'settings' => '设置',
|
||||
'settings_activate_module' => '启用模块',
|
||||
'settings_activate_php_extension' => '启用 PHP 扩展',
|
||||
|
@ -1633,6 +1644,8 @@ URL: [url]',
|
|||
'settings_delete_install_folder' => '在使用 DMS 前,您必须先删除配置目录(config)下的 ENABLE_INSTALL_TOOL 文件',
|
||||
'settings_disableChangePassword' => '',
|
||||
'settings_disableChangePassword_desc' => '',
|
||||
'settings_disableReceiptComment' => '',
|
||||
'settings_disableReceiptComment_desc' => '',
|
||||
'settings_disableSelfEdit' => '禁用自编辑',
|
||||
'settings_disableSelfEdit_desc' => '若勾选,则用户不能编辑自己的档案信息',
|
||||
'settings_disable_install' => '如有可能,则删除 ENABLE_INSTALL_TOOL 文件',
|
||||
|
@ -1698,6 +1711,8 @@ URL: [url]',
|
|||
'settings_enableLargeFileUpload_desc' => '如果设置了文件上传,也可以通过一个名为jumploader的浏览器java小程序来实现文件上传。它还允许一次上传多个文件。打开此选项将关闭网页cookie。',
|
||||
'settings_enableLoginByEmail' => '',
|
||||
'settings_enableLoginByEmail_desc' => '',
|
||||
'settings_enableMemcached' => '',
|
||||
'settings_enableMemcached_desc' => '',
|
||||
'settings_enableMenuTasks' => '在菜单中启用任务列表',
|
||||
'settings_enableMenuTasks_desc' => '启用/禁用包含用户所有任务的菜单项。其中包含需要审核、批准的文件等。',
|
||||
'settings_enableMenuTransmittals' => '',
|
||||
|
@ -1757,6 +1772,8 @@ URL: [url]',
|
|||
'settings_encryptionKey' => '加密密钥',
|
||||
'settings_encryptionKey_desc' => '这个字符串用于创建一个唯一的标识符,并作为一个隐藏字段添加到表单中以防止CSRF攻击。',
|
||||
'settings_error' => '错误',
|
||||
'settings_excludeFoldersDashboard' => '',
|
||||
'settings_excludeFoldersDashboard_desc' => '',
|
||||
'settings_expandFolderTree' => '展开文件夹树',
|
||||
'settings_expandFolderTree_desc' => '展开文件夹树',
|
||||
'settings_expandFolderTree_val0' => '启动时隐藏树形结构',
|
||||
|
@ -1815,6 +1832,8 @@ URL: [url]',
|
|||
'settings_logFileEnable_desc' => '启用 / 禁用日志文件',
|
||||
'settings_logFileMaxLevel' => '',
|
||||
'settings_logFileMaxLevel_desc' => '',
|
||||
'settings_logFileRestApiMaxLevel' => '',
|
||||
'settings_logFileRestApiMaxLevel_desc' => '',
|
||||
'settings_logFileRotation' => '设置日志文件时间段',
|
||||
'settings_logFileRotation_desc' => '日志文件时间段切换',
|
||||
'settings_loginFailure' => '登录失败',
|
||||
|
@ -2012,6 +2031,7 @@ URL: [url]',
|
|||
'sign_out' => '登出',
|
||||
'sign_out_user' => '退出登录',
|
||||
'site_brand' => '',
|
||||
'skip_default_export_cols' => '',
|
||||
'sk_SK' => '斯洛伐克语',
|
||||
'sort_by_date' => '日期排序',
|
||||
'sort_by_expiration_date' => '',
|
||||
|
@ -2141,6 +2161,7 @@ URL: [url]',
|
|||
'status_revision_sleeping' => '等待',
|
||||
'status_revisor_removed' => '从名单中删除校订人',
|
||||
'status_unknown' => '未知',
|
||||
'storage' => '',
|
||||
'storage_size' => '存储大小',
|
||||
'subfolder_duplicate_name' => '重复的文件夹',
|
||||
'submit_2_fact_auth' => '保存秘钥',
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
|
||||
$text = array(
|
||||
'2_factor_auth' => '2階段認證',
|
||||
'2_factor_auth_code' => '',
|
||||
'2_factor_auth_info' => '此系統強制執行2階段身份驗證。您將需要在手機上使用Google Authenticator。在下面,您可以看到兩個QR碼。正確的是您當前的秘密。在左側,您可以設置一個新的秘密。如果您設置了新的機密,請確保使用Google Authenticator重新掃描它。',
|
||||
'2_fact_auth_current_secret' => '',
|
||||
'2_fact_auth_new_secret' => '',
|
||||
|
@ -577,6 +578,8 @@ URL: [url]',
|
|||
'download_header_document_name' => '',
|
||||
'download_header_document_no' => '',
|
||||
'download_header_filename' => '',
|
||||
'download_header_folder_name' => '',
|
||||
'download_header_folder_no' => '',
|
||||
'download_header_internal_version' => '',
|
||||
'download_header_reviewer' => '',
|
||||
'download_header_review_comment' => '',
|
||||
|
@ -707,6 +710,8 @@ URL: [url]',
|
|||
'export_user_list_csv' => '',
|
||||
'extension_archive' => '擴充',
|
||||
'extension_changelog' => '修改紀錄',
|
||||
'extension_config' => '',
|
||||
'extension_info' => '',
|
||||
'extension_is_off_now' => '',
|
||||
'extension_is_on_now' => '',
|
||||
'extension_loading' => '擴充套件讀取中',
|
||||
|
@ -1168,6 +1173,7 @@ URL: [url]',
|
|||
'no_groups' => '無組別',
|
||||
'no_group_members' => '該組沒有成員',
|
||||
'no_linked_files' => '無連結檔',
|
||||
'no_mimetype' => '',
|
||||
'no_previous_versions' => '無其它版本',
|
||||
'no_receipt_needed' => '當前沒有需要收據確認的文件。',
|
||||
'no_review_needed' => '無待校對的文件',
|
||||
|
@ -1330,7 +1336,9 @@ URL: [url]',
|
|||
'removed_workflow_email_body_html' => '',
|
||||
'removed_workflow_email_subject' => '[sitename]: [name] - 從文檔版本中刪除了工作流程',
|
||||
'removeFolderFromDropFolder' => '導入後刪除文件夾',
|
||||
'removeFolderFromDropFolder_desc' => '',
|
||||
'remove_approval_log' => '',
|
||||
'remove_from_clipboard' => '',
|
||||
'remove_marked_files' => '刪除勾選的檔案',
|
||||
'remove_review_log' => '',
|
||||
'remove_task' => '',
|
||||
|
@ -1534,6 +1542,7 @@ URL: [url]',
|
|||
'select_category' => '選中分類',
|
||||
'select_created' => '',
|
||||
'select_documents_for_process' => '',
|
||||
'select_folder' => '',
|
||||
'select_group' => '選擇群',
|
||||
'select_groups' => '點擊選擇組',
|
||||
'select_grp_approvers' => '請點選審核人員群組',
|
||||
|
@ -1586,7 +1595,9 @@ URL: [url]',
|
|||
'service_name' => '',
|
||||
'sessions' => '在線用戶',
|
||||
'setDateFromFile' => '從導入的文件接管日期',
|
||||
'setDateFromFile_desc' => '',
|
||||
'setDateFromFolder' => '從導入的文件夾接管日期',
|
||||
'setDateFromFolder_desc' => '',
|
||||
'settings' => '設置',
|
||||
'settings_activate_module' => '激活模塊',
|
||||
'settings_activate_php_extension' => '激活PHP擴展',
|
||||
|
@ -1684,6 +1695,8 @@ URL: [url]',
|
|||
'settings_delete_install_folder' => '為了使用SeedDMS,必須在配置目錄中刪除文件ENABLE_INSTALL_TOOL',
|
||||
'settings_disableChangePassword' => '',
|
||||
'settings_disableChangePassword_desc' => '',
|
||||
'settings_disableReceiptComment' => '',
|
||||
'settings_disableReceiptComment_desc' => '',
|
||||
'settings_disableSelfEdit' => '禁用自我編輯',
|
||||
'settings_disableSelfEdit_desc' => '如果選中,則用戶無法編輯自己的個人資料',
|
||||
'settings_disable_install' => '如果可能,刪除文件ENABLE_INSTALL_TOOL',
|
||||
|
@ -1749,6 +1762,8 @@ URL: [url]',
|
|||
'settings_enableLargeFileUpload_desc' => '如果設置了該選項,則還可以通過一個名為Jumploader的Java小程序來上傳文件,而瀏覽器沒有設置文件大小限制。它還允許一步上傳幾個文件。啟用此功能將關閉僅HTTP cookie。',
|
||||
'settings_enableLoginByEmail' => '',
|
||||
'settings_enableLoginByEmail_desc' => '',
|
||||
'settings_enableMemcached' => '',
|
||||
'settings_enableMemcached_desc' => '',
|
||||
'settings_enableMenuTasks' => '在菜單中啟用任務列表',
|
||||
'settings_enableMenuTasks_desc' => '啟用/禁用包含用戶所有任務的菜單項。其中包含需要審查,批准等的文件。',
|
||||
'settings_enableMenuTransmittals' => '',
|
||||
|
@ -1808,6 +1823,8 @@ URL: [url]',
|
|||
'settings_encryptionKey' => '加密金鑰',
|
||||
'settings_encryptionKey_desc' => '該字符串用於創建唯一的標識符,該標識符作為隱藏字段添加到表單中,以防止CSRF攻擊。',
|
||||
'settings_error' => '錯誤',
|
||||
'settings_excludeFoldersDashboard' => '',
|
||||
'settings_excludeFoldersDashboard_desc' => '',
|
||||
'settings_expandFolderTree' => '展開文件樹',
|
||||
'settings_expandFolderTree_desc' => '展開文件樹',
|
||||
'settings_expandFolderTree_val0' => '從隱藏的樹開始',
|
||||
|
@ -1866,6 +1883,8 @@ URL: [url]',
|
|||
'settings_logFileEnable_desc' => '啟用/禁用日誌文件',
|
||||
'settings_logFileMaxLevel' => '',
|
||||
'settings_logFileMaxLevel_desc' => '',
|
||||
'settings_logFileRestApiMaxLevel' => '',
|
||||
'settings_logFileRestApiMaxLevel_desc' => '',
|
||||
'settings_logFileRotation' => '日誌文件輪換',
|
||||
'settings_logFileRotation_desc' => '日誌文件輪換',
|
||||
'settings_loginFailure' => '登錄失敗',
|
||||
|
@ -2063,6 +2082,7 @@ URL: [url]',
|
|||
'sign_out' => '登出',
|
||||
'sign_out_user' => '登出使用者',
|
||||
'site_brand' => '',
|
||||
'skip_default_export_cols' => '',
|
||||
'sk_SK' => '斯洛伐克語',
|
||||
'sort_by_date' => '依日期排序',
|
||||
'sort_by_expiration_date' => '',
|
||||
|
@ -2192,6 +2212,7 @@ URL: [url]',
|
|||
'status_revision_sleeping' => '待定',
|
||||
'status_revisor_removed' => '修訂者已從清單中刪除',
|
||||
'status_unknown' => '未知',
|
||||
'storage' => '',
|
||||
'storage_size' => '存儲大小',
|
||||
'subfolder_duplicate_name' => '子文件夾名稱重複',
|
||||
'submit_2_fact_auth' => '保存秘密',
|
||||
|
|
|
@ -498,9 +498,20 @@ foreach($file_ary as $file) {
|
|||
if($controller->hasHook('cleanUpDocument')) {
|
||||
$controller->callHook('cleanUpDocument', $document, $file);
|
||||
}
|
||||
// Send notification to subscribers of folder.
|
||||
if($notifier) {
|
||||
// Send notification to subscribers of folder.
|
||||
$notifier->sendNewDocumentMail($document, $user);
|
||||
|
||||
// Send notifcation to recipients of document
|
||||
$content = $document->getLatestContent();
|
||||
$status = $content->getStatus();
|
||||
if ($status["status"] == S_RELEASED) {
|
||||
if ($settings->_enableNotificationAppRev) {
|
||||
if ($notifier) {
|
||||
$notifier->sendToAllReceiptMail($content, $user);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if($settings->_removeFromDropFolder) {
|
||||
if(file_exists($userfiletmp)) {
|
||||
|
|
|
@ -51,6 +51,47 @@ if ($document->getAccessMode($user, 'addDocumentFile') < M_READWRITE) {
|
|||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied"));
|
||||
}
|
||||
|
||||
function reArrayFiles(&$file_post) {
|
||||
$file_ary = array();
|
||||
$file_count = count($file_post['name']);
|
||||
$file_keys = array_keys($file_post);
|
||||
|
||||
for ($i=0; $i<$file_count; $i++) {
|
||||
if($file_post['error'][$i] != 4) { // no file uploaded
|
||||
foreach ($file_keys as $key) {
|
||||
$file_ary[$i][$key] = $file_post[$key][$i];
|
||||
}
|
||||
$file_ary[$i]['source'] = 'upload';
|
||||
}
|
||||
}
|
||||
|
||||
return $file_ary;
|
||||
}
|
||||
|
||||
if(!empty($_FILES['userfile'])) {
|
||||
$file_ary = reArrayFiles($_FILES['userfile']);
|
||||
} else {
|
||||
$file_ary = array();
|
||||
}
|
||||
|
||||
if($settings->_dropFolderDir) {
|
||||
if(isset($_POST["dropfolderfileaddfileform"]) && $_POST["dropfolderfileaddfileform"]) {
|
||||
$fullfile = $settings->_dropFolderDir.'/'.$user->getLogin().'/'.$_POST["dropfolderfileaddfileform"];
|
||||
if(file_exists($fullfile)) {
|
||||
$finfo = finfo_open(FILEINFO_MIME_TYPE);
|
||||
$mimetype = finfo_file($finfo, $fullfile);
|
||||
$file_ary[] = array(
|
||||
'tmp_name' => $fullfile,
|
||||
'type' => $mimetype,
|
||||
'name' => $_POST["dropfolderfileaddfileform"],
|
||||
'size' => filesize($fullfile),
|
||||
'error' => 0,
|
||||
'source' => 'dropfolder'
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$prefix = 'userfile';
|
||||
if(isset($_POST[$prefix.'-fine-uploader-uuids']) && $_POST[$prefix.'-fine-uploader-uuids']) {
|
||||
$uuids = explode(';', $_POST[$prefix.'-fine-uploader-uuids']);
|
||||
|
@ -60,34 +101,43 @@ if(isset($_POST[$prefix.'-fine-uploader-uuids']) && $_POST[$prefix.'-fine-upload
|
|||
if(file_exists($fullfile)) {
|
||||
$finfo = finfo_open(FILEINFO_MIME_TYPE);
|
||||
$mimetype = finfo_file($finfo, $fullfile);
|
||||
$_FILES["userfile"]['tmp_name'][] = $fullfile;
|
||||
$_FILES["userfile"]['type'][] = $mimetype;
|
||||
$_FILES["userfile"]['name'][] = isset($names[$i]) ? $names[$i] : $uuid;
|
||||
$_FILES["userfile"]['size'][] = filesize($fullfile);
|
||||
$_FILES["userfile"]['error'][] = 0;
|
||||
$file_ary[] = array(
|
||||
'tmp_name' => $fullfile,
|
||||
'type' => $mimetype,
|
||||
'name' => isset($names[$i]) ? $names[$i] : $uuid,
|
||||
'size' => filesize($fullfile),
|
||||
'error' => 0,
|
||||
'source' => 'upload',
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(!$file_ary) {
|
||||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("uploading_failed"));
|
||||
}
|
||||
|
||||
$maxuploadsize = SeedDMS_Core_File::parse_filesize($settings->_maxUploadSize);
|
||||
for ($file_num=0;$file_num<count($_FILES["userfile"]["tmp_name"]);$file_num++){
|
||||
if ($_FILES["userfile"]["size"][$file_num]==0) {
|
||||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("uploading_zerosize"));
|
||||
foreach($file_ary as $file) {
|
||||
if($file['error']==1) {
|
||||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("uploading_maxsize"));
|
||||
}
|
||||
if ($maxuploadsize && $_FILES["userfile"]["size"][$file_num] > $maxuploadsize) {
|
||||
UI::exitError(getMLText("folder_title", array("documentname" => $document->getName())),getMLText("uploading_maxsize"));
|
||||
}
|
||||
if (is_uploaded_file($_FILES["userfile"]["tmp_name"][$file_num]) && $_FILES['userfile']['error'][$file_num] != 0){
|
||||
if($file['error']!=0) {
|
||||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("uploading_failed"));
|
||||
}
|
||||
if($_FILES["userfile"]["error"][$file_num]) {
|
||||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("error_occured"));
|
||||
if ($file["size"]==0) {
|
||||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("uploading_zerosize"));
|
||||
}
|
||||
if ($maxuploadsize && $file["size"] > $maxuploadsize) {
|
||||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("uploading_maxsize"));
|
||||
}
|
||||
}
|
||||
|
||||
if(count($_FILES["userfile"]["tmp_name"]) == 1 && !empty($_POST['name']))
|
||||
foreach($file_ary as $file) {
|
||||
if(count($file_ary) == 1 && !empty($_POST['name']))
|
||||
$name = $_POST["name"];
|
||||
else
|
||||
$name = $_FILES["userfile"]['name'][$file_num];
|
||||
$name = $file['name'];
|
||||
$comment = $_POST["comment"];
|
||||
$version = (int) $_POST["version"];
|
||||
$public = (isset($_POST["public"]) && $_POST["public"] == 'true') ? 1 : 0;
|
||||
|
@ -99,9 +149,9 @@ for ($file_num=0;$file_num<count($_FILES["userfile"]["tmp_name"]);$file_num++){
|
|||
}
|
||||
}
|
||||
|
||||
$userfiletmp = $_FILES["userfile"]["tmp_name"][$file_num];
|
||||
$userfiletype = $_FILES["userfile"]["type"][$file_num];
|
||||
$userfilename = $_FILES["userfile"]["name"][$file_num];
|
||||
$userfiletmp = $file["tmp_name"];
|
||||
$userfiletype = $file["type"];
|
||||
$userfilename = $file["name"];
|
||||
|
||||
$fileType = ".".pathinfo($userfilename, PATHINFO_EXTENSION);
|
||||
|
||||
|
|
|
@ -111,6 +111,13 @@ if(!$controller()) {
|
|||
$notifier->sendSubmittedApprovalMail($latestContent, $user, $approvelog ? $approvelog[0] : false);
|
||||
if($controller->oldstatus != $controller->newstatus)
|
||||
$notifier->sendChangedDocumentStatusMail($latestContent, $user, $controller->oldstatus);
|
||||
if ($controller->newstatus == S_RELEASED) {
|
||||
if ($settings->_enableNotificationAppRev) {
|
||||
if ($notifier) {
|
||||
$notifier->sendToAllReceiptMail($content, $user);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -218,6 +218,3 @@ else if ($action == "removeattrvalue") {
|
|||
}
|
||||
|
||||
header("Location:../out/out.AttributeMgr.php?attrdefid=".$attrdefid);
|
||||
|
||||
?>
|
||||
|
||||
|
|
|
@ -28,16 +28,6 @@ include("../inc/inc.ClassSession.php");
|
|||
include("../inc/inc.DBInit.php");
|
||||
include("../inc/inc.ClassUI.php");
|
||||
|
||||
function _printMessage($heading, $message) {
|
||||
|
||||
UI::htmlStartPage($heading, "password");
|
||||
UI::globalBanner();
|
||||
UI::pageNavigation($heading);
|
||||
UI::contentContainer($message."<p><a href=\"../out/out.Login.php\">" . getMLText("login") . "</a></p>\n");
|
||||
UI::htmlEndPage();
|
||||
return;
|
||||
}
|
||||
|
||||
/* Check if the form data comes from a trusted request */
|
||||
if(!checkFormKey('changepassword')) {
|
||||
UI::exitError(getMLText("folder_title", array("foldername" => getMLText("invalid_request_token"))),getMLText("invalid_request_token"));
|
||||
|
|
|
@ -250,11 +250,39 @@ default:
|
|||
$attributes = $_POST["attributes_version"];
|
||||
foreach($attributes as $attrdefid=>$attribute) {
|
||||
$attrdef = $dms->getAttributeDefinition($attrdefid);
|
||||
if(null === ($ret = $controller->callHook('validateAttribute', $attrdef, $attribute))) {
|
||||
if($attribute) {
|
||||
switch($attrdef->getType()) {
|
||||
case SeedDMS_Core_AttributeDefinition::type_date:
|
||||
if(is_array($attribute))
|
||||
$attribute = array_map(fn($value): string => date('Y-m-d', makeTsFromDate($value)), $attribute);
|
||||
else
|
||||
$attribute = date('Y-m-d', makeTsFromDate($attribute));
|
||||
break;
|
||||
case SeedDMS_Core_AttributeDefinition::type_folder:
|
||||
if(is_array($attribute))
|
||||
$attribute = array_map(fn($value): object => $dms->getFolder((int) $value), $attribute);
|
||||
else
|
||||
$attribute = $dms->getFolder((int) $attribute);
|
||||
break;
|
||||
case SeedDMS_Core_AttributeDefinition::type_document:
|
||||
if(is_array($attribute))
|
||||
$attribute = array_map(fn($value): object => $dms->getDocument((int) $value), $attribute);
|
||||
else
|
||||
$attribute = $dms->getDocument((int) $attribute);
|
||||
break;
|
||||
case SeedDMS_Core_AttributeDefinition::type_user:
|
||||
if(is_array($attribute))
|
||||
$attribute = array_map(fn($value): object => $dms->getUser((int) $value), $attribute);
|
||||
else
|
||||
$attribute = $dms->getUser((int) $attribute);
|
||||
break;
|
||||
case SeedDMS_Core_AttributeDefinition::type_group:
|
||||
if(is_array($attribute))
|
||||
$attribute = array_map(fn($value): object => $dms->getGroup((int) $value), $attribute);
|
||||
else
|
||||
$attribute = $dms->getGroup((int) $attribute);
|
||||
break;
|
||||
}
|
||||
if(!$attrdef->validate($attribute, null, true)) {
|
||||
$errmsg = getAttributeValidationText($attrdef->getValidationError(), $attrdef->getName(), $attribute);
|
||||
|
@ -263,6 +291,10 @@ default:
|
|||
} elseif($attrdef->getMinValues() > 0) {
|
||||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("attr_min_values", array("attrname"=>$attrdef->getName())));
|
||||
}
|
||||
} else {
|
||||
if($ret === false)
|
||||
return false;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$attributes = array();
|
||||
|
|
|
@ -75,5 +75,3 @@ $session->setSplashMsg(array('type'=>'success', 'msg'=>getMLText('splash_documen
|
|||
add_log_line();
|
||||
header("Location:../out/out.ViewDocument.php?documentid=".$documentid);
|
||||
|
||||
?>
|
||||
|
||||
|
|
|
@ -1,114 +0,0 @@
|
|||
<?php
|
||||
// MyDMS. Document Management System
|
||||
// Copyright (C) 2002-2005 Markus Westphal
|
||||
// Copyright (C) 2006-2008 Malcolm Cowe
|
||||
// Copyright (C) 2010-2016 Uwe Steinmann
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation; either version 2 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
include("../inc/inc.Settings.php");
|
||||
include("../inc/inc.Utils.php");
|
||||
include("../inc/inc.LogInit.php");
|
||||
include("../inc/inc.Language.php");
|
||||
include("../inc/inc.Init.php");
|
||||
include("../inc/inc.Extension.php");
|
||||
include("../inc/inc.DBInit.php");
|
||||
include("../inc/inc.ClassUI.php");
|
||||
include("../inc/inc.Authentication.php");
|
||||
|
||||
UI::htmlStartPage("Create Document Folder Index");
|
||||
UI::globalNavigation();
|
||||
UI::pageNavigation("Create Document Folder Index");
|
||||
UI::contentHeading("Indexing Documents...");
|
||||
|
||||
if (!$user->isAdmin()) {
|
||||
UI::contentContainer("<p>Permission denied.</p>");
|
||||
UI::htmlPageEnd();
|
||||
exit;
|
||||
}
|
||||
|
||||
function getTime() {
|
||||
if (function_exists('microtime')) {
|
||||
$tm = microtime();
|
||||
$tm = explode(' ', $tm);
|
||||
return (float) sprintf('%f', $tm[1] + $tm[0]);
|
||||
}
|
||||
return time();
|
||||
}
|
||||
|
||||
|
||||
// ------------------------------------- Suche starten --------------------------------------------
|
||||
|
||||
UI::contentContainerStart();
|
||||
|
||||
$startTime = getTime();
|
||||
$results = array();
|
||||
//searchInFolder($startFolder);
|
||||
|
||||
//
|
||||
// Construct the SQL query that will be used to search the database.
|
||||
//
|
||||
|
||||
// Create the keyword search string. This search spans up to three columns
|
||||
// in the database: keywords, name and comment.
|
||||
|
||||
//
|
||||
// The base query.
|
||||
//
|
||||
$searchQuery = "SELECT `tblDocuments`.* FROM `tblDocuments` ";
|
||||
|
||||
// Send the search query to the database.
|
||||
$resArr = $db->getResultArray($searchQuery);
|
||||
// Assemble the results into an array of MyDMS Document objects.
|
||||
if (!is_bool($resArr) && count($resArr)>0) {
|
||||
echo "<ol>";
|
||||
foreach($resArr as $docArr) {
|
||||
$doc = new SeedDMS_Core_Document($docArr["id"],
|
||||
$docArr["name"],
|
||||
$docArr["comment"],
|
||||
$docArr["date"],
|
||||
$docArr["expires"],
|
||||
$docArr["owner"],
|
||||
$docArr["folder"],
|
||||
$docArr["inheritAccess"],
|
||||
$docArr["defaultAccess"],
|
||||
$docArr["lockUser"],
|
||||
$docArr["keywords"],
|
||||
$docArr["sequence"]);
|
||||
// Make sure that the folder search path is also updated.
|
||||
$folder = $doc->getFolder();
|
||||
$path = $folder->getPath();
|
||||
$flist = "";
|
||||
foreach ($path as $f) {
|
||||
$flist .= ":".$f->getID();
|
||||
}
|
||||
if (strlen($flist)>1) {
|
||||
$flist .= ":";
|
||||
}
|
||||
$queryStr = "UPDATE tblDocuments SET folderList = '" . $flist . "' WHERE id = ". $doc->getID();
|
||||
$db->getResult($queryStr);
|
||||
echo "<li>Updating docID '".$doc->getID()."' -- '".$flist."'</li>";
|
||||
}
|
||||
echo "</ol>";
|
||||
}
|
||||
|
||||
$searchTime = getTime() - $startTime;
|
||||
$searchTime = round($searchTime, 2);
|
||||
echo "<p>";
|
||||
printMLText("search_time", array("time" => $searchTime));
|
||||
|
||||
UI::contentContainerEnd();
|
||||
UI::htmlEndPage();
|
||||
?>
|
|
@ -46,7 +46,8 @@ if(!checkFormKey('edituserdata')) {
|
|||
$fullname = $_POST["fullname"];
|
||||
$email = $_POST["email"];
|
||||
$comment = $_POST["comment"];
|
||||
$language = $_POST["language"];
|
||||
if(isset($_POST["language"]))
|
||||
$language = $_POST["language"];
|
||||
/* 'theme' won't be set, if themeselector is turned off */
|
||||
if(isset($_POST["theme"]))
|
||||
$mytheme = $_POST["theme"];
|
||||
|
@ -103,7 +104,7 @@ if ($user->getEmail() != $email)
|
|||
if ($user->getComment() != $comment)
|
||||
$user->setComment($comment);
|
||||
|
||||
if ($user->getLanguage() != $language)
|
||||
if (isset($language) && $user->getLanguage() != $language)
|
||||
$user->setLanguage($language);
|
||||
|
||||
if (isset($mytheme) && $user->getTheme() != $mytheme)
|
||||
|
|
|
@ -239,9 +239,10 @@ if($newfolder) {
|
|||
$session->setSplashMsg(array('type'=>'error', 'msg'=>getMLText('error_importfs')));
|
||||
else {
|
||||
if(isset($_GET['remove']) && $_GET["remove"]) {
|
||||
$cmd = 'rm -rf '.$dirname;
|
||||
$ret = null;
|
||||
system($cmd, $ret);
|
||||
SeedDMS_Utils::rrmdir($dirname);
|
||||
// $cmd = 'rm -rf '.$dirname;
|
||||
// $ret = null;
|
||||
// system($cmd, $ret);
|
||||
}
|
||||
$session->setSplashMsg(array('type'=>'success', 'msg'=>getMLText('splash_importfs', array('docs'=>$doccount, 'folders'=>$foldercount))));
|
||||
}
|
||||
|
|
|
@ -85,9 +85,16 @@ if ($overrideStatus != $overallStatus["status"]) {
|
|||
if (!$content->setStatus($overrideStatus, $comment, $user)) {
|
||||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("error_occured"));
|
||||
} else {
|
||||
if ($notifier) {
|
||||
// Send notification to subscribers.
|
||||
if($notifier) {
|
||||
$notifier->sendChangedDocumentStatusMail($content, $user, $overallStatus["status"]);
|
||||
|
||||
// Send request for receipt notification
|
||||
if ($overrideStatus == S_RELEASED) {
|
||||
if ($settings->_enableNotificationAppRev) {
|
||||
$notifier->sendToAllReceiptMail($content, $user);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -31,15 +31,6 @@ include("../inc/inc.ClassUI.php");
|
|||
|
||||
include $settings->_rootDir . "languages/" . $settings->_language . "/lang.inc";
|
||||
|
||||
function _printMessage($heading, $message) {
|
||||
UI::htmlStartPage($heading, "password");
|
||||
UI::globalBanner();
|
||||
UI::pageNavigation($heading);
|
||||
UI::contentContainer($message."<p><a href=\"../out/out.Login.php\">" . getMLText("login") . "</a></p>\n");
|
||||
UI::htmlEndPage();
|
||||
return;
|
||||
}
|
||||
|
||||
if (isset($_POST["email"])) {
|
||||
$email = $_POST["email"];
|
||||
}
|
||||
|
@ -64,9 +55,10 @@ if($user) {
|
|||
$params['url'] = getBaseUrl().$settings->_httpRoot."out/out.ChangePassword.php?hash=".$hash;
|
||||
$params['url_prefix'] = getBaseUrl().$settings->_httpRoot;
|
||||
$emailobj->toIndividual($settings->_smtpSendFrom, $user, $subject, $message, $params);
|
||||
add_log_line("Request for '".$login."' send to '".$email."'", PEAR_LOG_INFO);
|
||||
}
|
||||
} else {
|
||||
add_log_line("No such user '".$login."' with email '".$email."'", PEAR_LOG_WARNING);
|
||||
}
|
||||
|
||||
header('Location: ../out/out.PasswordSend.php');
|
||||
exit;
|
||||
?>
|
||||
|
|
|
@ -31,5 +31,4 @@ include("../inc/inc.Authentication.php");
|
|||
|
||||
$session->setLanguage($_GET['lang']);
|
||||
|
||||
header("Location: http".((isset($_SERVER['HTTPS']) && (strcmp($_SERVER['HTTPS'],'off')!=0)) ? "s" : "")."://".$_SERVER['HTTP_HOST'].$_GET['referer']);
|
||||
?>
|
||||
header("Location: http".((isset($_SERVER['HTTPS']) && (strcmp($_SERVER['HTTPS'],'off')!=0)) ? "s" : "")."://".$_SERVER['HTTP_HOST'].decryptData($settings->_encryptionKey, $_GET['referer']));
|
||||
|
|
|
@ -69,6 +69,8 @@ foreach ($docAccess["groups"] as $i=>$da) {
|
|||
$accessIndex["g"][$da->getID()] = $da;
|
||||
}
|
||||
|
||||
$status = $content->getStatus();
|
||||
|
||||
// Retrieve list of currently assigned recipients, along with
|
||||
// their latest status.
|
||||
$receiptStatus = $content->getReceiptStatus();
|
||||
|
@ -137,12 +139,15 @@ foreach ($pIndRev as $p) {
|
|||
// email error
|
||||
break;
|
||||
default:
|
||||
// Send an email notification to the new recipient.
|
||||
// Send an email notification to the new recipient only if the document
|
||||
// is already released
|
||||
if ($status["status"] == S_RELEASED) {
|
||||
if($settings->_enableNotificationAppRev) {
|
||||
if ($notifier) {
|
||||
$notifier->sendAddReceiptMail($content, $user, $accessIndex["i"][$p]);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -218,12 +223,15 @@ foreach ($pGrpRev as $p) {
|
|||
// email error
|
||||
break;
|
||||
default:
|
||||
// Send an email notification to the new recipient.
|
||||
// Send an email notification to the new recipient only if the document
|
||||
// is already released
|
||||
if ($status["status"] == S_RELEASED) {
|
||||
if($settings->_enableNotificationAppRev) {
|
||||
if ($notifier) {
|
||||
$notifier->sendAddReceiptMail($content, $user, $accessIndex["g"][$p]);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -55,10 +55,12 @@ if (!is_object($content)) {
|
|||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("invalid_version"));
|
||||
}
|
||||
|
||||
if (isset($_POST["startdate"])) {
|
||||
$ts = null;
|
||||
if (!empty($_POST["startdate"])) {
|
||||
$ts = makeTsFromDate($_POST["startdate"]);
|
||||
} else {
|
||||
$ts = time();
|
||||
}
|
||||
if(!$ts) {
|
||||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("invalid_revision_date"));
|
||||
}
|
||||
$startdate = date('Y-m-d', $ts);
|
||||
|
||||
|
|
|
@ -29,17 +29,6 @@ include("../inc/inc.DBInit.php");
|
|||
include("../inc/inc.ClassUI.php");
|
||||
include("../inc/inc.Authentication.php");
|
||||
|
||||
|
||||
function getBoolValue($post_name)
|
||||
{
|
||||
$out = false;
|
||||
if (isset($_POST[$post_name]))
|
||||
if ($_POST[$post_name]=="on")
|
||||
$out = true;
|
||||
|
||||
return $out;
|
||||
}
|
||||
|
||||
if (!$user->isAdmin()) {
|
||||
UI::exitError(getMLText("admin_tools"),getMLText("access_denied"));
|
||||
}
|
||||
|
@ -68,12 +57,14 @@ if ($action == "saveSettings")
|
|||
function setBoolValue($name) {
|
||||
global $_POST, $settings;
|
||||
if(!in_array($name, $settings->_hiddenConfFields)) {
|
||||
if (isset($_POST[$name]) && $_POST[$name]=="on")
|
||||
if (isset($_POST[$name])) {
|
||||
if ($_POST[$name]=="on")
|
||||
$settings->{"_".$name} = true;
|
||||
else
|
||||
$settings->{"_".$name} = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
function setIntValue($name) {
|
||||
global $_POST, $settings;
|
||||
if(isset($_POST[$name]) && !in_array($name, $settings->_hiddenConfFields))
|
||||
|
@ -81,13 +72,15 @@ if ($action == "saveSettings")
|
|||
}
|
||||
function setArrayValue($name) {
|
||||
global $_POST, $settings;
|
||||
if(!in_array($name, $settings->_hiddenConfFields)) {
|
||||
if(isset($_POST[$name]) && $_POST[$name])
|
||||
if (!in_array($name, $settings->_hiddenConfFields)) {
|
||||
if (isset($_POST[$name])) {
|
||||
if ($_POST[$name])
|
||||
$settings->{"_".$name} = $_POST[$name];
|
||||
else
|
||||
$settings->{"_".$name} = array();
|
||||
}
|
||||
}
|
||||
}
|
||||
function setDirValue($name) {
|
||||
global $_POST, $settings;
|
||||
if(isset($_POST[$name]) && !in_array($name, $settings->_hiddenConfFields))
|
||||
|
@ -150,6 +143,7 @@ if ($action == "saveSettings")
|
|||
setBoolValue("enableRecursiveCount");
|
||||
setIntValue("maxRecursiveCount");
|
||||
setIntValue("daysPastDashboard");
|
||||
setArrayValue("excludeFoldersDashboard");
|
||||
setBoolValue("enableLanguageSelector");
|
||||
setBoolValue("enableHelp");
|
||||
setBoolValue("enableThemeSelector");
|
||||
|
@ -198,6 +192,7 @@ if ($action == "saveSettings")
|
|||
setStrValue("partitionSize"); // TODO: check if valid value, e.g. 1M or 5K
|
||||
setStrValue("maxUploadSize"); // TODO: check if valid value, e.g. 1M or 5K
|
||||
setBoolValue("enableXsendfile");
|
||||
setBoolValue("enableMemcached");
|
||||
|
||||
// SETTINGS - SYSTEM - AUTHENTICATION
|
||||
setBoolValue("enableGuestLogin");
|
||||
|
@ -298,7 +293,7 @@ if ($action == "saveSettings")
|
|||
// SETTINGS - ADVANCED - SERVER
|
||||
setStrValue("coreDir");
|
||||
setStrValue("luceneClassDir");
|
||||
setIntValue("contentOffsetDir");
|
||||
setStrValue("contentOffsetDir");
|
||||
setIntValue("maxDirID");
|
||||
setIntValue("updateNotifyTime");
|
||||
setIntValue("maxExecutionTime");
|
||||
|
@ -346,15 +341,21 @@ if ($action == "saveSettings")
|
|||
// -------------------------------------------------------------------------
|
||||
// save
|
||||
// -------------------------------------------------------------------------
|
||||
if (!$settings->save())
|
||||
if (!$settings->save()) {
|
||||
if(isAjax()) {
|
||||
echo json_encode(array('success'=>false, 'msg'=>getMLText('settings_SaveError')));
|
||||
exit;
|
||||
} else {
|
||||
UI::exitError(getMLText("admin_tools"),getMLText("settings_SaveError"));
|
||||
}
|
||||
}
|
||||
|
||||
add_log_line(".php&action=savesettings");
|
||||
}
|
||||
|
||||
$session->setSplashMsg(array('type'=>'success', 'msg'=>getMLText('splash_settings_saved')));
|
||||
|
||||
|
||||
header("Location:../out/out.Settings.php?currenttab=".$_POST['currenttab']);
|
||||
|
||||
?>
|
||||
if(isAjax()) {
|
||||
echo json_encode(array('success'=>true, 'msg'=>getMLText('splash_settings_saved')));
|
||||
} else {
|
||||
$session->setSplashMsg(array('type'=>'success', 'msg'=>getMLText('splash_settings_saved')));
|
||||
header("Location:../out/out.Settings.php?currenttab=".$_POST['currenttab']);
|
||||
}
|
||||
|
|
|
@ -80,6 +80,3 @@ $session->setSplashMsg(array('type'=>'success', 'msg'=>getMLText('splash_transfe
|
|||
add_log_line("?documentid=".$documentid);
|
||||
|
||||
header("Location:../out/out.ViewFolder.php?folderid=".$folder->getID());
|
||||
|
||||
?>
|
||||
|
||||
|
|
|
@ -346,11 +346,39 @@ default:
|
|||
$attributes = $_POST["attributes_version"];
|
||||
foreach($attributes as $attrdefid=>$attribute) {
|
||||
$attrdef = $dms->getAttributeDefinition($attrdefid);
|
||||
if(null === ($ret = $controller->callHook('validateAttribute', $attrdef, $attribute))) {
|
||||
if($attribute) {
|
||||
switch($attrdef->getType()) {
|
||||
case SeedDMS_Core_AttributeDefinition::type_date:
|
||||
if(is_array($attribute))
|
||||
$attribute = array_map(fn($value): string => date('Y-m-d', makeTsFromDate($value)), $attribute);
|
||||
else
|
||||
$attribute = date('Y-m-d', makeTsFromDate($attribute));
|
||||
break;
|
||||
case SeedDMS_Core_AttributeDefinition::type_folder:
|
||||
if(is_array($attribute))
|
||||
$attribute = array_map(fn($value): object => $dms->getFolder((int) $value), $attribute);
|
||||
else
|
||||
$attribute = $dms->getFolder((int) $attribute);
|
||||
break;
|
||||
case SeedDMS_Core_AttributeDefinition::type_document:
|
||||
if(is_array($attribute))
|
||||
$attribute = array_map(fn($value): object => $dms->getDocument((int) $value), $attribute);
|
||||
else
|
||||
$attribute = $dms->getDocument((int) $attribute);
|
||||
break;
|
||||
case SeedDMS_Core_AttributeDefinition::type_user:
|
||||
if(is_array($attribute))
|
||||
$attribute = array_map(fn($value): object => $dms->getUser((int) $value), $attribute);
|
||||
else
|
||||
$attribute = $dms->getUser((int) $attribute);
|
||||
break;
|
||||
case SeedDMS_Core_AttributeDefinition::type_group:
|
||||
if(is_array($attribute))
|
||||
$attribute = array_map(fn($value): object => $dms->getGroup((int) $value), $attribute);
|
||||
else
|
||||
$attribute = $dms->getGroup((int) $attribute);
|
||||
break;
|
||||
}
|
||||
if(!$attrdef->validate($attribute, null, true)) {
|
||||
$errmsg = getAttributeValidationText($attrdef->getValidationError(), $attrdef->getName(), $attribute);
|
||||
|
@ -359,6 +387,10 @@ default:
|
|||
} elseif($attrdef->getMinValues() > 0) {
|
||||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("attr_min_values", array("attrname"=>$attrdef->getName())));
|
||||
}
|
||||
} else {
|
||||
if($ret === false)
|
||||
return false;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$attributes = array();
|
||||
|
@ -403,6 +435,15 @@ default:
|
|||
$notifier->sendNewDocumentVersionMail($document, $user);
|
||||
|
||||
$notifier->sendChangedExpiryMail($document, $user, $oldexpires);
|
||||
|
||||
$status = $content->getStatus();
|
||||
if ($status["status"] == S_RELEASED) {
|
||||
if ($settings->_enableNotificationAppRev) {
|
||||
if ($notifier) {
|
||||
$notifier->sendToAllReceiptMail($content, $user);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if($settings->_removeFromDropFolder) {
|
||||
|
|
|
@ -57,6 +57,8 @@ if($view) {
|
|||
$view->setParam('enableRecursiveCount', $settings->_enableRecursiveCount);
|
||||
$view->setParam('maxRecursiveCount', $settings->_maxRecursiveCount);
|
||||
$view->setParam('previewWidthList', $settings->_previewWidthList);
|
||||
$view->setParam('previewConverters', isset($settings->_converters['preview']) ? $settings->_converters['preview'] : array());
|
||||
$view->setParam('convertToPdf', $settings->_convertToPdf);
|
||||
$view->setParam('timeout', $settings->_cmdTimeout);
|
||||
$view->setParam('accessobject', $accessop);
|
||||
$view->setParam('xsendfile', $settings->_enableXsendfile);
|
||||
|
|
|
@ -53,6 +53,7 @@ if ($view) {
|
|||
$view->setParam('type', $type);
|
||||
$view->setParam('data', $data);
|
||||
$view->setParam('accessobject', $accessop);
|
||||
$view->setParam('quota', $settings->_quota);
|
||||
$view($_GET);
|
||||
exit;
|
||||
}
|
||||
|
|
|
@ -25,6 +25,7 @@ if($view) {
|
|||
$view->setParam('convertToPdf', $settings->_convertToPdf);
|
||||
$view->setParam('timeout', $settings->_cmdTimeout);
|
||||
$view->setParam('dayspastdashboard', (int) $settings->_daysPastDashboard);
|
||||
$view->setParam('excludedfolders', $settings->_excludeFoldersDashboard);
|
||||
$view->setParam('accessobject', $accessop);
|
||||
$view->setParam('xsendfile', $settings->_enableXsendfile);
|
||||
$view($_GET);
|
||||
|
|
|
@ -49,6 +49,7 @@ if (isset($_GET["orderdir"]) && strlen($_GET["orderdir"])==1 ) {
|
|||
$days = null;
|
||||
$startts = null;
|
||||
$endts = null;
|
||||
$seluser = null;
|
||||
if(isset($_GET['days']) && is_numeric($_GET['days'])) {
|
||||
$days = (int) $_GET['days'];
|
||||
} else {
|
||||
|
@ -59,6 +60,9 @@ if(isset($_GET['days']) && is_numeric($_GET['days'])) {
|
|||
$endts = makeTsFromDate($_GET['enddate']);
|
||||
}
|
||||
}
|
||||
if(isset($_GET['seluserid'])) {
|
||||
$seluser = $dms->getUser((int) $_GET['seluserid']);
|
||||
}
|
||||
|
||||
if($view) {
|
||||
$view->setParam('conversionmgr', $conversionmgr);
|
||||
|
@ -68,6 +72,7 @@ if($view) {
|
|||
$view->setParam('days', $days);
|
||||
$view->setParam('startts', $startts);
|
||||
$view->setParam('endts', $endts);
|
||||
$view->setParam('seluser', $seluser);
|
||||
$view->setParam('cachedir', $settings->_cacheDir);
|
||||
$view->setParam('previewWidthList', $settings->_previewWidthList);
|
||||
$view->setParam('timeout', $settings->_cmdTimeout);
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
*/
|
||||
|
||||
if (!isset($settings)) {
|
||||
require_once "../inc/inc.Settings.php");
|
||||
require_once "../inc/inc.Settings.php";
|
||||
}
|
||||
require_once "inc/inc.Utils.php";
|
||||
require_once "inc/inc.LogInit.php";
|
||||
|
|
|
@ -29,51 +29,57 @@ require_once("inc/inc.DBInit.php");
|
|||
require_once("inc/inc.ClassUI.php");
|
||||
require_once("inc/inc.Authentication.php");
|
||||
|
||||
function getTime() {
|
||||
function getTime() { /* {{{ */
|
||||
if (function_exists('microtime')) {
|
||||
$tm = microtime();
|
||||
$tm = explode(' ', $tm);
|
||||
return (float) sprintf('%f', $tm[1] + $tm[0]);
|
||||
}
|
||||
return time();
|
||||
}
|
||||
} /* }}} */
|
||||
|
||||
$get = $_GET;
|
||||
|
||||
// Redirect to the search page if the navigation search button has been
|
||||
// selected without supplying any search terms.
|
||||
if (isset($_GET["navBar"])) {
|
||||
if (!isset($_GET["folderid"]) || !is_numeric($_GET["folderid"]) || intval($_GET["folderid"])<1) {
|
||||
if (isset($get["navBar"])) {
|
||||
if (!isset($get["folderid"]) || !is_numeric($get["folderid"]) || intval($get["folderid"])<1) {
|
||||
$folderid=$settings->_rootFolderID;
|
||||
} else {
|
||||
$folderid = $_GET["folderid"];
|
||||
$folderid = $get["folderid"];
|
||||
}
|
||||
}
|
||||
|
||||
$includecontent = false;
|
||||
if (isset($_GET["includecontent"]) && $_GET["includecontent"])
|
||||
if (isset($get["includecontent"]) && $get["includecontent"])
|
||||
$includecontent = true;
|
||||
|
||||
$skipdefaultcols = false;
|
||||
if (isset($get["skipdefaultcols"]) && $get["skipdefaultcols"])
|
||||
$skipdefaultcols = true;
|
||||
|
||||
$newowner = null;
|
||||
if (isset($_GET["newowner"]) && is_numeric($_GET["newowner"]) && $_GET['newowner'] > 0) {
|
||||
$newowner = $dms->getUser((int) $_GET['newowner']);
|
||||
if (isset($get["newowner"]) && is_numeric($get["newowner"]) && $get['newowner'] > 0) {
|
||||
$newowner = $dms->getUser((int) $get['newowner']);
|
||||
}
|
||||
|
||||
$newreviewer = null;
|
||||
if (isset($_GET["newreviewer"]) && is_numeric($_GET["newreviewer"]) && $_GET['newreviewer'] > 0) {
|
||||
$newreviewer = $dms->getUser((int) $_GET['newreviewer']);
|
||||
if (isset($get["newreviewer"]) && is_numeric($get["newreviewer"]) && $get['newreviewer'] > 0) {
|
||||
$newreviewer = $dms->getUser((int) $get['newreviewer']);
|
||||
}
|
||||
|
||||
$newapprover = null;
|
||||
if (isset($_GET["newapprover"]) && is_numeric($_GET["newapprover"]) && $_GET['newapprover'] > 0) {
|
||||
$newapprover = $dms->getUser((int) $_GET['newapprover']);
|
||||
if (isset($get["newapprover"]) && is_numeric($get["newapprover"]) && $get['newapprover'] > 0) {
|
||||
$newapprover = $dms->getUser((int) $get['newapprover']);
|
||||
}
|
||||
|
||||
$changecategory = null;
|
||||
if (isset($_GET["changecategory"]) && is_numeric($_GET["changecategory"]) && $_GET['changecategory'] > 0) {
|
||||
$changecategory = $dms->getDocumentCategory((int) $_GET['changecategory']);
|
||||
if (isset($get["changecategory"]) && is_numeric($get["changecategory"]) && $get['changecategory'] > 0) {
|
||||
$changecategory = $dms->getDocumentCategory((int) $get['changecategory']);
|
||||
}
|
||||
$removecategory = 0;
|
||||
if (isset($_GET["removecategory"]) && is_numeric($_GET["removecategory"]) && $_GET['removecategory'] > 0) {
|
||||
$removecategory = (int) $_GET['removecategory'];
|
||||
if (isset($get["removecategory"]) && is_numeric($get["removecategory"]) && $get['removecategory'] > 0) {
|
||||
$removecategory = (int) $get['removecategory'];
|
||||
}
|
||||
|
||||
/* Creation date {{{ */
|
||||
|
@ -83,16 +89,16 @@ $createendts = null;
|
|||
$createenddate = null;
|
||||
$created['from'] = null;
|
||||
$created['to'] = null;
|
||||
if(!empty($_GET["created"]["from"])) {
|
||||
$createstartts = makeTsFromDate($_GET["created"]["from"]);
|
||||
if(!empty($get["created"]["from"])) {
|
||||
$createstartts = makeTsFromDate($get["created"]["from"]);
|
||||
$createstartdate = array('year'=>(int)date('Y', $createstartts), 'month'=>(int)date('m', $createstartts), 'day'=>(int)date('d', $createstartts), 'hour'=>0, 'minute'=>0, 'second'=>0);
|
||||
if (!checkdate($createstartdate['month'], $createstartdate['day'], $createstartdate['year'])) {
|
||||
UI::exitError(getMLText("search"),getMLText("invalid_create_date_end"));
|
||||
}
|
||||
$created['from'] = $createstartts;
|
||||
}
|
||||
if(!empty($_GET["created"]["to"])) {
|
||||
$createendts = makeTsFromDate($_GET["created"]["to"]);
|
||||
if(!empty($get["created"]["to"])) {
|
||||
$createendts = makeTsFromDate($get["created"]["to"]);
|
||||
$createenddate = array('year'=>(int)date('Y', $createendts), 'month'=>(int)date('m', $createendts), 'day'=>(int)date('d', $createendts), 'hour'=>23, 'minute'=>59, 'second'=>59);
|
||||
if (!checkdate($createenddate['month'], $createenddate['day'], $createenddate['year'])) {
|
||||
UI::exitError(getMLText("search"),getMLText("invalid_create_date_end"));
|
||||
|
@ -108,16 +114,16 @@ $modifyendts = null;
|
|||
$modifyenddate = null;
|
||||
$modified['from'] = null;
|
||||
$modified['to'] = null;
|
||||
if(!empty($_GET["modified"]["from"])) {
|
||||
$modifystartts = makeTsFromDate($_GET["modified"]["from"]);
|
||||
if(!empty($get["modified"]["from"])) {
|
||||
$modifystartts = makeTsFromDate($get["modified"]["from"]);
|
||||
$modifystartdate = array('year'=>(int)date('Y', $modifystartts), 'month'=>(int)date('m', $modifystartts), 'day'=>(int)date('d', $modifystartts), 'hour'=>0, 'minute'=>0, 'second'=>0);
|
||||
if (!checkdate($modifystartdate['month'], $modifystartdate['day'], $modifystartdate['year'])) {
|
||||
UI::exitError(getMLText("search"),getMLText("invalid_modification_date_end"));
|
||||
}
|
||||
$modified['from'] = $modifystartts;
|
||||
}
|
||||
if(!empty($_GET["modified"]["to"])) {
|
||||
$modifyendts = makeTsFromDate($_GET["modified"]["to"]);
|
||||
if(!empty($get["modified"]["to"])) {
|
||||
$modifyendts = makeTsFromDate($get["modified"]["to"]);
|
||||
$modifyenddate = array('year'=>(int)date('Y', $modifyendts), 'month'=>(int)date('m', $modifyendts), 'day'=>(int)date('d', $modifyendts), 'hour'=>23, 'minute'=>59, 'second'=>59);
|
||||
if (!checkdate($modifyenddate['month'], $modifyenddate['day'], $modifyenddate['year'])) {
|
||||
UI::exitError(getMLText("search"),getMLText("invalid_modification_date_end"));
|
||||
|
@ -131,35 +137,35 @@ $filesizestart = 0;
|
|||
$filesizeend = 0;
|
||||
$filesize['from'] = null;
|
||||
$filesize['to'] = null;
|
||||
if(!empty($_GET["filesize"]["from"])) {
|
||||
$filesizestart = $_GET["filesize"]["from"];
|
||||
$filesize['from'] = $_GET["filesize"]["from"];
|
||||
if(!empty($get["filesize"]["from"])) {
|
||||
$filesizestart = $get["filesize"]["from"];
|
||||
$filesize['from'] = $get["filesize"]["from"];
|
||||
}
|
||||
if(!empty($_GET["filesize"]["to"])) {
|
||||
$filesizeend = $_GET["filesize"]["to"];
|
||||
$filesize['to'] = $_GET["filesize"]["to"];
|
||||
if(!empty($get["filesize"]["to"])) {
|
||||
$filesizeend = $get["filesize"]["to"];
|
||||
$filesize['to'] = $get["filesize"]["to"];
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
// Check to see if the search has been restricted to a particular
|
||||
// document owner.
|
||||
// $_GET['owner'] can be a name of an array of names or ids {{{
|
||||
// $get['owner'] can be a name of an array of names or ids {{{
|
||||
$owner = [];
|
||||
$ownernames = []; // Needed by fulltext search
|
||||
$ownerobjs = []; // Needed by database search
|
||||
if(!empty($_GET["owner"])) {
|
||||
$owner = $_GET['owner'];
|
||||
if (!is_array($_GET['owner'])) {
|
||||
if(is_numeric($_GET['owner']))
|
||||
$o = $dms->getUser($_GET['owner']);
|
||||
if(!empty($get["owner"])) {
|
||||
$owner = $get['owner'];
|
||||
if (!is_array($get['owner'])) {
|
||||
if(is_numeric($get['owner']))
|
||||
$o = $dms->getUser($get['owner']);
|
||||
else
|
||||
$o = $dms->getUserByLogin($_GET['owner']);
|
||||
$o = $dms->getUserByLogin($get['owner']);
|
||||
if($o) {
|
||||
$ownernames[] = $o->getLogin();
|
||||
$ownerobjs[] = $o;
|
||||
}
|
||||
} else {
|
||||
foreach($_GET["owner"] as $l) {
|
||||
foreach($get["owner"] as $l) {
|
||||
if($l) {
|
||||
if(is_numeric($l))
|
||||
$o = $dms->getUser($l);
|
||||
|
@ -174,13 +180,13 @@ if(!empty($_GET["owner"])) {
|
|||
}
|
||||
} /* }}} */
|
||||
|
||||
// category {{{
|
||||
$categories = array();
|
||||
$categorynames = array();
|
||||
$category = array();
|
||||
if(isset($_GET['category']) && $_GET['category']) {
|
||||
$category = $_GET['category'];
|
||||
foreach($_GET['category'] as $catid) {
|
||||
// category {{{
|
||||
$categories = array();
|
||||
$categorynames = array();
|
||||
$category = array();
|
||||
if(isset($get['category']) && $get['category']) {
|
||||
$category = $get['category'];
|
||||
foreach($get['category'] as $catid) {
|
||||
if($catid) {
|
||||
if(is_numeric($catid)) {
|
||||
if($cat = $dms->getDocumentCategory($catid)) {
|
||||
|
@ -192,103 +198,71 @@ if(!empty($_GET["owner"])) {
|
|||
}
|
||||
}
|
||||
}
|
||||
} /* }}} */
|
||||
} /* }}} */
|
||||
|
||||
if (isset($_GET["orderby"]) && is_string($_GET["orderby"])) {
|
||||
$orderby = $_GET["orderby"];
|
||||
}
|
||||
else {
|
||||
if (isset($get["orderby"]) && is_string($get["orderby"])) {
|
||||
$orderby = $get["orderby"];
|
||||
} else {
|
||||
$orderby = "";
|
||||
}
|
||||
}
|
||||
|
||||
$terms = [];
|
||||
$limit = (isset($_GET["limit"]) && is_numeric($_GET["limit"])) ? (int) $_GET['limit'] : 20;
|
||||
$fullsearch = ((!isset($_GET["fullsearch"]) && $settings->_defaultSearchMethod == 'fulltext') || !empty($_GET["fullsearch"])) && $settings->_enableFullSearch;
|
||||
$facetsearch = !empty($_GET["facetsearch"]) && $settings->_enableFullSearch;
|
||||
if($fullsearch) {
|
||||
// Search in Fulltext {{{
|
||||
if (isset($_GET["query"]) && is_string($_GET["query"])) {
|
||||
$query = $_GET["query"];
|
||||
// if(isset($_GET['action']) && ($_GET['action'] == 'typeahead'))
|
||||
// $query .= '*';
|
||||
}
|
||||
else {
|
||||
$limit = (isset($get["limit"]) && is_numeric($get["limit"])) ? (int) $get['limit'] : 20;
|
||||
$fullsearch = ((!isset($get["fullsearch"]) && $settings->_defaultSearchMethod == 'fulltext') || !empty($get["fullsearch"])) && $settings->_enableFullSearch;
|
||||
$facetsearch = !empty($get["facetsearch"]) && $settings->_enableFullSearch;
|
||||
|
||||
if (isset($get["query"]) && is_string($get["query"])) {
|
||||
$query = $get["query"];
|
||||
} else {
|
||||
$query = "";
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Get the page number to display. If the result set contains more than
|
||||
// 25 entries, it is displayed across multiple pages.
|
||||
//
|
||||
// This requires that a page number variable be used to track which page the
|
||||
// user is interested in, and an extra clause on the select statement.
|
||||
//
|
||||
// Default page to display is always one.
|
||||
$pageNumber=1;
|
||||
if (isset($_GET["pg"])) {
|
||||
if (is_numeric($_GET["pg"]) && $_GET["pg"]>0) {
|
||||
$pageNumber = (integer)$_GET["pg"];
|
||||
}
|
||||
elseif (!strcasecmp($_GET["pg"], "all")) {
|
||||
$pageNumber = "all";
|
||||
}
|
||||
}
|
||||
|
||||
// --------------- Suche starten --------------------------------------------
|
||||
|
||||
// Check to see if the search has been restricted to a particular
|
||||
// mimetype. {{{
|
||||
$mimetype = [];
|
||||
if (isset($_GET["mimetype"])) {
|
||||
if (!is_array($_GET['mimetype'])) {
|
||||
if(!empty($_GET['mimetype']))
|
||||
$mimetype[] = $_GET['mimetype'];
|
||||
// Check to see if the search has been restricted to a particular
|
||||
// mimetype. {{{
|
||||
$mimetype = [];
|
||||
if (isset($get["mimetype"])) {
|
||||
if (!is_array($get['mimetype'])) {
|
||||
if(!empty($get['mimetype']))
|
||||
$mimetype[] = $get['mimetype'];
|
||||
} else {
|
||||
foreach($_GET["mimetype"] as $l) {
|
||||
foreach($get["mimetype"] as $l) {
|
||||
if($l)
|
||||
$mimetype[] = $l;
|
||||
}
|
||||
}
|
||||
} /* }}} */
|
||||
} /* }}} */
|
||||
|
||||
/* Creation date {{{
|
||||
$createstartts = null;
|
||||
$createstartdate = null;
|
||||
$createendts = null;
|
||||
$createenddate = null;
|
||||
$created = [];
|
||||
if(!empty($_GET["created"]["from"])) {
|
||||
$createstartts = makeTsFromDate($_GET["created"]["from"]);
|
||||
$createstartdate = array('year'=>(int)date('Y', $createstartts), 'month'=>(int)date('m', $createstartts), 'day'=>(int)date('d', $createstartts), 'hour'=>0, 'minute'=>0, 'second'=>0);
|
||||
if (!checkdate($createstartdate['month'], $createstartdate['day'], $createstartdate['year'])) {
|
||||
UI::exitError(getMLText("search"),getMLText("invalid_create_date_end"));
|
||||
}
|
||||
$created['from'] = $createstartts;
|
||||
}
|
||||
if(!empty($_GET["created"]["to"])) {
|
||||
$createendts = makeTsFromDate($_GET["created"]["to"]);
|
||||
$createenddate = array('year'=>(int)date('Y', $createendts), 'month'=>(int)date('m', $createendts), 'day'=>(int)date('d', $createendts), 'hour'=>23, 'minute'=>59, 'second'=>59);
|
||||
if (!checkdate($createenddate['month'], $createenddate['day'], $createenddate['year'])) {
|
||||
UI::exitError(getMLText("search"),getMLText("invalid_create_date_end"));
|
||||
}
|
||||
$created['to'] = $createendts;
|
||||
}
|
||||
}}} */
|
||||
// status
|
||||
$status = isset($get['status']) ? $get['status'] : array();
|
||||
|
||||
// status
|
||||
if(isset($_GET['status']))
|
||||
$status = $_GET['status'];
|
||||
else
|
||||
$status = array();
|
||||
// Get the page number to display. If the result set contains more than
|
||||
// 25 entries, it is displayed across multiple pages.
|
||||
//
|
||||
// This requires that a page number variable be used to track which page the
|
||||
// user is interested in, and an extra clause on the select statement.
|
||||
//
|
||||
// Default page to display is always one.
|
||||
$pageNumber=1;
|
||||
if (isset($get["pg"])) {
|
||||
if (is_numeric($get["pg"]) && $get["pg"]>0) {
|
||||
$pageNumber = (int) $get["pg"];
|
||||
}
|
||||
elseif (!strcasecmp($get["pg"], "all")) {
|
||||
$pageNumber = "all";
|
||||
}
|
||||
}
|
||||
|
||||
if($fullsearch) {
|
||||
// Search in Fulltext {{{
|
||||
|
||||
// record_type
|
||||
if(isset($_GET['record_type']))
|
||||
$record_type = $_GET['record_type'];
|
||||
if(isset($get['record_type']))
|
||||
$record_type = $get['record_type'];
|
||||
else
|
||||
$record_type = array();
|
||||
|
||||
if (isset($_GET["attributes"]))
|
||||
$attributes = $_GET["attributes"];
|
||||
if (isset($get["attributes"]))
|
||||
$attributes = $get["attributes"];
|
||||
else
|
||||
$attributes = array();
|
||||
|
||||
|
@ -340,8 +314,8 @@ if($fullsearch) {
|
|||
// Check to see if the search has been restricted to a particular sub-tree in
|
||||
// the folder hierarchy.
|
||||
$startFolder = null;
|
||||
if (isset($_GET["folderfullsearchid"]) && is_numeric($_GET["folderfullsearchid"]) && $_GET["folderfullsearchid"]>0) {
|
||||
$targetid = $_GET["folderfullsearchid"];
|
||||
if (isset($get["folderfullsearchid"]) && is_numeric($get["folderfullsearchid"]) && $get["folderfullsearchid"]>0) {
|
||||
$targetid = $get["folderfullsearchid"];
|
||||
$startFolder = $dms->getFolder($targetid);
|
||||
if (!is_object($startFolder)) {
|
||||
UI::exitError(getMLText("search"),getMLText("invalid_folder_id"));
|
||||
|
@ -350,7 +324,6 @@ if($fullsearch) {
|
|||
|
||||
$rootFolder = $dms->getFolder($settings->_rootFolderID);
|
||||
|
||||
$startTime = getTime();
|
||||
if($settings->_fullSearchEngine == 'lucene') {
|
||||
Zend_Search_Lucene_Search_QueryParser::setDefaultEncoding('utf-8');
|
||||
}
|
||||
|
@ -358,6 +331,7 @@ if($fullsearch) {
|
|||
if(strlen($query) < 4 && strpos($query, '*')) {
|
||||
$session->setSplashMsg(array('type'=>'error', 'msg'=>getMLText('splash_invalid_searchterm')));
|
||||
$dcount = 0;
|
||||
$fcount = 0;
|
||||
$totalPages = 0;
|
||||
$entries = array();
|
||||
$searchTime = 0;
|
||||
|
@ -367,13 +341,30 @@ if($fullsearch) {
|
|||
$total = 0;
|
||||
$index = $fulltextservice->Indexer();
|
||||
if($index) {
|
||||
if(!empty($settings->_suggestTerms) && !empty($_GET['query'])) {
|
||||
$st = preg_split("/[\s,]+/", trim($_GET['query']));
|
||||
if(!empty($settings->_suggestTerms) && !empty($get['query'])) {
|
||||
$st = preg_split("/[\s,]+/", trim($get['query']));
|
||||
if($lastterm = end($st))
|
||||
$terms = $index->terms($lastterm, $settings->_suggestTerms);
|
||||
}
|
||||
$lucenesearch = $fulltextservice->Search();
|
||||
$searchresult = $lucenesearch->search($query, array('record_type'=>$record_type, 'owner'=>$ownernames, 'status'=>$status, 'category'=>$categorynames, 'user'=>$user->isAdmin() ? [] : [$user->getLogin()], 'mimetype'=>$mimetype, 'startFolder'=>$startFolder, 'rootFolder'=>$rootFolder, 'created_start'=>$createstartts, 'created_end'=>$createendts, 'modified_start'=>$modifystartts, 'modified_end'=>$modifyendts, 'filesize_start'=>$filesizestart, 'filesize_end'=>$filesizeend, 'attributes'=>$attributes), ($pageNumber == 'all' ? array() : array('limit'=>$limit, 'offset'=>$limit * ($pageNumber-1))), $order);
|
||||
$searchresult = $lucenesearch->search($query,
|
||||
array(
|
||||
'record_type'=>$record_type,
|
||||
'owner'=>$ownernames,
|
||||
'status'=>$status,
|
||||
'category'=>$categorynames,
|
||||
'user'=>$user->isAdmin() ? [] : [$user->getLogin()],
|
||||
'mimetype'=>$mimetype,
|
||||
'startFolder'=>$startFolder,
|
||||
'rootFolder'=>$rootFolder,
|
||||
'created_start'=>$created['from'],
|
||||
'created_end'=>$created['to'],
|
||||
'modified_start'=>$modified['from'],
|
||||
'modified_end'=>$modified['to'],
|
||||
'filesize_start'=>$filesize['from'],
|
||||
'filesize_end'=>$filesize['to'],
|
||||
'attributes'=>$attributes
|
||||
), ($pageNumber == 'all' ? array() : array('limit'=>$limit, 'offset'=>$limit * ($pageNumber-1))), $order);
|
||||
if($searchresult === false) {
|
||||
$session->setSplashMsg(array('type'=>'error', 'msg'=>getMLText('splash_invalid_searchterm')));
|
||||
$dcount = 0;
|
||||
|
@ -441,29 +432,23 @@ if($fullsearch) {
|
|||
// }}}
|
||||
} else {
|
||||
// Search in Database {{{
|
||||
if (isset($_GET["query"]) && is_string($_GET["query"])) {
|
||||
$query = $_GET["query"];
|
||||
}
|
||||
else {
|
||||
$query = "";
|
||||
}
|
||||
|
||||
/* Select if only documents (0x01), only folders (0x02) or both (0x03)
|
||||
* are found
|
||||
*/
|
||||
$resultmode = 0x03;
|
||||
if (isset($_GET["resultmode"]) && is_numeric($_GET["resultmode"])) {
|
||||
$resultmode = $_GET['resultmode'];
|
||||
if (isset($get["resultmode"]) && is_numeric($get["resultmode"])) {
|
||||
$resultmode = $get['resultmode'];
|
||||
}
|
||||
|
||||
$mode = "AND";
|
||||
if (isset($_GET["mode"]) && is_numeric($_GET["mode"]) && $_GET["mode"]==0) {
|
||||
if (isset($get["mode"]) && is_numeric($get["mode"]) && $get["mode"]==0) {
|
||||
$mode = "OR";
|
||||
}
|
||||
|
||||
$searchin = array();
|
||||
if (isset($_GET['searchin']) && is_array($_GET["searchin"])) {
|
||||
foreach ($_GET["searchin"] as $si) {
|
||||
if (isset($get['searchin']) && is_array($get["searchin"])) {
|
||||
foreach ($get["searchin"] as $si) {
|
||||
if (isset($si) && is_numeric($si)) {
|
||||
switch ($si) {
|
||||
case 1: // keywords
|
||||
|
@ -483,8 +468,8 @@ if($fullsearch) {
|
|||
|
||||
// Check to see if the search has been restricted to a particular sub-tree in
|
||||
// the folder hierarchy.
|
||||
if (isset($_GET["targetid"]) && is_numeric($_GET["targetid"]) && $_GET["targetid"]>0) {
|
||||
$targetid = $_GET["targetid"];
|
||||
if (isset($get["targetid"]) && is_numeric($get["targetid"]) && $get["targetid"]>0) {
|
||||
$targetid = $get["targetid"];
|
||||
$startFolder = $dms->getFolder($targetid);
|
||||
}
|
||||
else {
|
||||
|
@ -494,76 +479,43 @@ if($fullsearch) {
|
|||
UI::exitError(getMLText("search"),getMLText("invalid_folder_id"));
|
||||
}
|
||||
|
||||
// Check to see if the search has been restricted to a particular
|
||||
/* document owner. {{{
|
||||
$owner = array();
|
||||
$ownerobjs = array();
|
||||
if (isset($_GET["owner"])) {
|
||||
$owner = $_GET['owner'];
|
||||
if (!is_array($_GET['owner'])) {
|
||||
if(!empty($_GET['owner']) && $o = $dms->getUser($_GET['owner'])) {
|
||||
$ownerobjs[] = $o;
|
||||
} else
|
||||
UI::exitError(getMLText("search"),getMLText("unknown_owner"));
|
||||
} else {
|
||||
foreach($_GET["owner"] as $l) {
|
||||
if($o = $dms->getUser($l)) {
|
||||
$ownerobjs[] = $o;
|
||||
}
|
||||
}
|
||||
}
|
||||
} }}} */
|
||||
|
||||
/* Creation date {{{
|
||||
$createstartdate = array();
|
||||
$createenddate = array();
|
||||
if(!empty($_GET["createstart"])) {
|
||||
$createstartts = makeTsFromDate($_GET["createstart"]);
|
||||
$createstartdate = array('year'=>(int)date('Y', $createstartts), 'month'=>(int)date('m', $createstartts), 'day'=>(int)date('d', $createstartts), 'hour'=>0, 'minute'=>0, 'second'=>0);
|
||||
}
|
||||
if ($createstartdate && !checkdate($createstartdate['month'], $createstartdate['day'], $createstartdate['year'])) {
|
||||
UI::exitError(getMLText("search"),getMLText("invalid_create_date_end"));
|
||||
}
|
||||
if(!empty($_GET["createend"])) {
|
||||
$createendts = makeTsFromDate($_GET["createend"]);
|
||||
$createenddate = array('year'=>(int)date('Y', $createendts), 'month'=>(int)date('m', $createendts), 'day'=>(int)date('d', $createendts), 'hour'=>23, 'minute'=>59, 'second'=>59);
|
||||
}
|
||||
if ($createenddate && !checkdate($createenddate['month'], $createenddate['day'], $createenddate['year'])) {
|
||||
UI::exitError(getMLText("search"),getMLText("invalid_create_date_end"));
|
||||
}
|
||||
}}} */
|
||||
|
||||
/* Revision date {{{ */
|
||||
$revisionstartts = null;
|
||||
$revisionstartdate = array();
|
||||
$revisionendts = null;
|
||||
$revisionenddate = array();
|
||||
if(!empty($_GET["revisiondatestart"])) {
|
||||
$revisionstartts = makeTsFromDate($_GET["revisiondatestart"]);
|
||||
$revised['from'] = null;
|
||||
$revised['to'] = null;
|
||||
if(!empty($get["revisiondatestart"])) {
|
||||
$revisionstartts = makeTsFromDate($get["revisiondatestart"]);
|
||||
$revisionstartdate = array('year'=>(int)date('Y', $revisionstartts), 'month'=>(int)date('m', $revisionstartts), 'day'=>(int)date('d', $revisionstartts), 'hour'=>0, 'minute'=>0, 'second'=>0);
|
||||
if (!checkdate($revisionstartdate['month'], $revisionstartdate['day'], $revisionstartdate['year'])) {
|
||||
UI::exitError(getMLText("search"),getMLText("invalid_revision_date_start"));
|
||||
}
|
||||
$revised['from'] = $revisionstartts;
|
||||
}
|
||||
if(!empty($_GET["revisiondateend"])) {
|
||||
$revisionendts = makeTsFromDate($_GET["revisiondateend"]);
|
||||
if(!empty($get["revisiondateend"])) {
|
||||
$revisionendts = makeTsFromDate($get["revisiondateend"]);
|
||||
$revisionenddate = array('year'=>(int)date('Y', $revisionendts), 'month'=>(int)date('m', $revisionendts), 'day'=>(int)date('d', $revisionendts), 'hour'=>23, 'minute'=>59, 'second'=>59);
|
||||
if (!checkdate($revisionenddate['month'], $revisionenddate['day'], $revisionenddate['year'])) {
|
||||
UI::exitError(getMLText("search"),getMLText("invalid_revision_date_end"));
|
||||
}
|
||||
$revised['to'] = $revisionendts;
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
/* Status date {{{ */
|
||||
$statusstartdate = array();
|
||||
$statusenddate = array();
|
||||
if(!empty($_GET["statusdatestart"])) {
|
||||
$statusstartts = makeTsFromDate($_GET["statusdatestart"]);
|
||||
if(!empty($get["statusdatestart"])) {
|
||||
$statusstartts = makeTsFromDate($get["statusdatestart"]);
|
||||
$statusstartdate = array('year'=>(int)date('Y', $statusstartts), 'month'=>(int)date('m', $statusstartts), 'day'=>(int)date('d', $statusstartts), 'hour'=>0, 'minute'=>0, 'second'=>0);
|
||||
}
|
||||
if ($statusstartdate && !checkdate($statusstartdate['month'], $statusstartdate['day'], $statusstartdate['year'])) {
|
||||
UI::exitError(getMLText("search"),getMLText("invalid_status_date_start"));
|
||||
}
|
||||
if(!empty($_GET["statusdateend"])) {
|
||||
$statusendts = makeTsFromDate($_GET["statusdateend"]);
|
||||
if(!empty($get["statusdateend"])) {
|
||||
$statusendts = makeTsFromDate($get["statusdateend"]);
|
||||
$statusenddate = array('year'=>(int)date('Y', $statusendts), 'month'=>(int)date('m', $statusendts), 'day'=>(int)date('d', $statusendts), 'hour'=>23, 'minute'=>59, 'second'=>59);
|
||||
}
|
||||
if ($statusenddate && !checkdate($statusenddate['month'], $statusenddate['day'], $statusenddate['year'])) {
|
||||
|
@ -574,15 +526,15 @@ if($fullsearch) {
|
|||
/* Expiration date {{{ */
|
||||
$expstartdate = array();
|
||||
$expenddate = array();
|
||||
if(!empty($_GET["expirationstart"])) {
|
||||
$expstartts = makeTsFromDate($_GET["expirationstart"]);
|
||||
if(!empty($get["expirationstart"])) {
|
||||
$expstartts = makeTsFromDate($get["expirationstart"]);
|
||||
$expstartdate = array('year'=>(int)date('Y', $expstartts), 'month'=>(int)date('m', $expstartts), 'day'=>(int)date('d', $expstartts), 'hour'=>0, 'minute'=>0, 'second'=>0);
|
||||
if (!checkdate($expstartdate['month'], $expstartdate['day'], $expstartdate['year'])) {
|
||||
UI::exitError(getMLText("search"),getMLText("invalid_expiration_date_start"));
|
||||
}
|
||||
}
|
||||
if(!empty($_GET["expirationend"])) {
|
||||
$expendts = makeTsFromDate($_GET["expirationend"]);
|
||||
if(!empty($get["expirationend"])) {
|
||||
$expendts = makeTsFromDate($get["expirationend"]);
|
||||
$expenddate = array('year'=>(int)date('Y', $expendts), 'month'=>(int)date('m', $expendts), 'day'=>(int)date('d', $expendts), 'hour'=>23, 'minute'=>59, 'second'=>59);
|
||||
if (!checkdate($expenddate['month'], $expenddate['day'], $expenddate['year'])) {
|
||||
UI::exitError(getMLText("search"),getMLText("invalid_expiration_date_end"));
|
||||
|
@ -590,45 +542,9 @@ if($fullsearch) {
|
|||
}
|
||||
/* }}} */
|
||||
|
||||
// status
|
||||
$status = isset($_GET['status']) ? $_GET['status'] : array();
|
||||
/*
|
||||
$status = array();
|
||||
if (isset($_GET["draft"])){
|
||||
$status[] = S_DRAFT;
|
||||
}
|
||||
if (isset($_GET["pendingReview"])){
|
||||
$status[] = S_DRAFT_REV;
|
||||
}
|
||||
if (isset($_GET["pendingApproval"])){
|
||||
$status[] = S_DRAFT_APP;
|
||||
}
|
||||
if (isset($_GET["inWorkflow"])){
|
||||
$status[] = S_IN_WORKFLOW;
|
||||
}
|
||||
if (isset($_GET["released"])){
|
||||
$status[] = S_RELEASED;
|
||||
}
|
||||
if (isset($_GET["rejected"])){
|
||||
$status[] = S_REJECTED;
|
||||
}
|
||||
if (isset($_GET["inrevision"])){
|
||||
$status[] = S_IN_REVISION;
|
||||
}
|
||||
if (isset($_GET["obsolete"])){
|
||||
$status[] = S_OBSOLETE;
|
||||
}
|
||||
if (isset($_GET["expired"])){
|
||||
$status[] = S_EXPIRED;
|
||||
}
|
||||
if (isset($_GET["needs_correction"])){
|
||||
$status[] = S_NEEDS_CORRECTION;
|
||||
}
|
||||
*/
|
||||
|
||||
$reception = array();
|
||||
if (isset($_GET["reception"])){
|
||||
$reception = $_GET["reception"];
|
||||
if (isset($get["reception"])){
|
||||
$reception = $get["reception"];
|
||||
}
|
||||
|
||||
/* Do not search for folders if result shall be filtered by status.
|
||||
|
@ -640,8 +556,8 @@ if($fullsearch) {
|
|||
// if($status)
|
||||
// $resultmode = 0x01;
|
||||
|
||||
if (isset($_GET["attributes"]))
|
||||
$attributes = $_GET["attributes"];
|
||||
if (isset($get["attributes"]))
|
||||
$attributes = $get["attributes"];
|
||||
else
|
||||
$attributes = array();
|
||||
|
||||
|
@ -661,38 +577,20 @@ if($fullsearch) {
|
|||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Get the page number to display. If the result set contains more than
|
||||
// 25 entries, it is displayed across multiple pages.
|
||||
//
|
||||
// This requires that a page number variable be used to track which page the
|
||||
// user is interested in, and an extra clause on the select statement.
|
||||
//
|
||||
// Default page to display is always one.
|
||||
$pageNumber=1;
|
||||
// $limit = 15;
|
||||
if (isset($_GET["pg"])) {
|
||||
if (is_numeric($_GET["pg"]) && $_GET["pg"]>0) {
|
||||
$pageNumber = (int) $_GET["pg"];
|
||||
}
|
||||
elseif (!strcasecmp($_GET["pg"], "all")) {
|
||||
$pageNumber = "all";
|
||||
}
|
||||
}
|
||||
|
||||
// ---------------- Start searching -----------------------------------------
|
||||
$startTime = getTime();
|
||||
$resArr = $dms->search(array(
|
||||
'query'=>$query,
|
||||
'limit'=>0,
|
||||
'offset'=>0 /*$limit, ($pageNumber-1)*$limit*/,
|
||||
'offset'=>0,
|
||||
'logicalmode'=>$mode,
|
||||
'searchin'=>$searchin,
|
||||
'startFolder'=>$startFolder,
|
||||
'owner'=>$ownerobjs,
|
||||
'status'=>$status,
|
||||
'creationstartdate'=>$created['from'], //$createstartdate ? $createstartdate : array(),
|
||||
'creationenddate'=>$created['to'], //$createenddate ? $createenddate : array(),
|
||||
'mimetype'=>$mimetype,
|
||||
'creationstartdate'=>$created['from'],
|
||||
'creationenddate'=>$created['to'],
|
||||
'modificationstartdate'=>$modified['from'],
|
||||
'modificationenddate'=>$modified['to'],
|
||||
'filesizestart'=>$filesize['from'],
|
||||
|
@ -715,7 +613,7 @@ if($fullsearch) {
|
|||
|
||||
$entries = array();
|
||||
$fcount = 0;
|
||||
if(!isset($_GET['action']) || $_GET['action'] != 'export') {
|
||||
// if(!isset($get['action']) || $get['action'] != 'export') {
|
||||
if($resArr['folders']) {
|
||||
foreach ($resArr['folders'] as $entry) {
|
||||
if ($entry->getAccessMode($user) >= M_READ) {
|
||||
|
@ -724,7 +622,7 @@ if($fullsearch) {
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// }
|
||||
$dcount = 0;
|
||||
if($resArr['docs']) {
|
||||
foreach ($resArr['docs'] as $entry) {
|
||||
|
@ -738,7 +636,7 @@ if($fullsearch) {
|
|||
}
|
||||
}
|
||||
$totalPages = 1;
|
||||
if ((!isset($_GET['action']) || $_GET['action'] != 'export') /*&& (!isset($_GET["pg"]) || strcasecmp($_GET["pg"], "all"))*/) {
|
||||
if ((!isset($get['action']) || $get['action'] != 'export') /*&& (!isset($get["pg"]) || strcasecmp($get["pg"], "all"))*/) {
|
||||
$totalPages = (int) (count($entries)/$limit);
|
||||
if(count($entries)%$limit)
|
||||
$totalPages++;
|
||||
|
@ -772,7 +670,8 @@ if($settings->_showSingleSearchHit && count($entries) == 1) {
|
|||
$view->setParam('accessobject', $accessop);
|
||||
$view->setParam('query', $query);
|
||||
$view->setParam('includecontent', $includecontent);
|
||||
$view->setParam('marks', isset($_GET['marks']) ? $_GET['marks'] : array());
|
||||
$view->setParam('skipdefaultcols', $skipdefaultcols);
|
||||
$view->setParam('marks', isset($get['marks']) ? $get['marks'] : array());
|
||||
$view->setParam('newowner', $newowner);
|
||||
$view->setParam('newreviewer', $newreviewer);
|
||||
$view->setParam('newapprover', $newapprover);
|
||||
|
@ -784,7 +683,7 @@ if($settings->_showSingleSearchHit && count($entries) == 1) {
|
|||
$view->setParam('pagenumber', $pageNumber);
|
||||
$view->setParam('limit', $limit);
|
||||
$view->setParam('searchtime', $searchTime);
|
||||
$view->setParam('urlparams', $_GET);
|
||||
$view->setParam('urlparams', $get);
|
||||
$view->setParam('cachedir', $settings->_cacheDir);
|
||||
$view->setParam('onepage', $settings->_onePageMode); // do most navigation by reloading areas of pages with ajax
|
||||
$view->setParam('showtree', showtree());
|
||||
|
@ -797,21 +696,21 @@ if($settings->_showSingleSearchHit && count($entries) == 1) {
|
|||
$view->setParam('facetsearch', $facetsearch);
|
||||
$view->setParam('mode', isset($mode) ? $mode : '');
|
||||
$view->setParam('orderby', isset($orderby) ? $orderby : '');
|
||||
$view->setParam('defaultsearchmethod', !empty($_GET["fullsearch"]) || $settings->_defaultSearchMethod);
|
||||
$view->setParam('defaultsearchmethod', !empty($get["fullsearch"]) || $settings->_defaultSearchMethod);
|
||||
$view->setParam('resultmode', isset($resultmode) ? $resultmode : '');
|
||||
$view->setParam('searchin', isset($searchin) ? $searchin : array());
|
||||
$view->setParam('startfolder', isset($startFolder) ? $startFolder : null);
|
||||
$view->setParam('owner', $owner);
|
||||
$view->setParam('createstartdate', $createstartts);
|
||||
$view->setParam('createenddate', $createendts);
|
||||
$view->setParam('createstartdate', $created['from']);
|
||||
$view->setParam('createenddate', $created['to']);
|
||||
$view->setParam('created', $created);
|
||||
$view->setParam('revisionstartdate', !empty($revisionstartdate) ? getReadableDate($revisionstartts) : '');
|
||||
$view->setParam('revisionenddate', !empty($revisionenddate) ? getReadableDate($revisionendts) : '');
|
||||
$view->setParam('modifystartdate', $modifystartts);
|
||||
$view->setParam('modifyenddate', $modifyendts);
|
||||
$view->setParam('modifystartdate', $modified['from']);
|
||||
$view->setParam('modifyenddate', $modified['to']);
|
||||
$view->setParam('modified', $modified);
|
||||
$view->setParam('filesizestart', $filesizestart);
|
||||
$view->setParam('filesizeend', $filesizeend);
|
||||
$view->setParam('filesizestart', $filesize['from']);
|
||||
$view->setParam('filesizeend', $filesize['to']);
|
||||
$view->setParam('filesize', $filesize);
|
||||
$view->setParam('expstartdate', !empty($expstartdate) ? getReadableDate($expstartts) : '');
|
||||
$view->setParam('expenddate', !empty($expenddate) ? getReadableDate($expendts) : '');
|
||||
|
@ -839,7 +738,7 @@ if($settings->_showSingleSearchHit && count($entries) == 1) {
|
|||
$view->setParam('xsendfile', $settings->_enableXsendfile);
|
||||
$view->setParam('reception', $reception);
|
||||
$view->setParam('showsinglesearchhit', $settings->_showSingleSearchHit);
|
||||
$view($_GET);
|
||||
$view($get);
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -42,6 +42,7 @@ if($view) {
|
|||
$view->setParam('settings', $settings);
|
||||
$view->setParam('extmgr', $extMgr);
|
||||
$view->setParam('currenttab', (isset($_REQUEST['currenttab']) ? $_REQUEST['currenttab'] : ''));
|
||||
$view->setParam('extname', (isset($_REQUEST['extensionname']) ? $_REQUEST['extensionname'] : ''));
|
||||
$view->setParam('allusers', $users);
|
||||
$view->setParam('allgroups', $groups);
|
||||
$view->setParam('accessobject', $accessop);
|
||||
|
|
|
@ -40,6 +40,7 @@ if($view) {
|
|||
$view->setParam('previewWidthList', $settings->_previewWidthList);
|
||||
$view->setParam('timeout', $settings->_cmdTimeout);
|
||||
$view->setParam('xsendfile', $settings->_enableXsendfile);
|
||||
$view->setParam('tasksinmenu', []);
|
||||
$view($_GET);
|
||||
exit;
|
||||
}
|
||||
|
|
|
@ -2,7 +2,10 @@ RewriteEngine on
|
|||
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
|
||||
|
||||
<Files ~ "^swagger\.yaml">
|
||||
# Apache module
|
||||
SetHandler application/x-httpd-php
|
||||
# PHP FPM on Debian
|
||||
#SetHandler "proxy:unix:/var/run/php/php8.2-fpm.sock|fcgi://localhost/"
|
||||
<IfModule mod_headers.c>
|
||||
Header set Access-Control-Allow-Origin "*"
|
||||
Header set Access-Control-Allow-Methods "GET"
|
||||
|
|
1653
restapi/index.php
1653
restapi/index.php
File diff suppressed because it is too large
Load Diff
|
@ -13,9 +13,6 @@ info:
|
|||
license:
|
||||
name: "Apache 2.0"
|
||||
url: "http://www.apache.org/licenses/LICENSE-2.0.html"
|
||||
servers:
|
||||
- url:
|
||||
description: Current host server
|
||||
host: "<?php echo $_SERVER['HTTP_HOST']; ?>"
|
||||
basePath: "<?php echo $settings->_httpRoot; ?>restapi/index.php"
|
||||
tags:
|
||||
|
@ -406,6 +403,92 @@ paths:
|
|||
$ref: "#/definitions/ApiResponse"
|
||||
security:
|
||||
- api_key: []
|
||||
/users/{id}/quota:
|
||||
put:
|
||||
tags:
|
||||
- "user"
|
||||
summary: "Change quota of user by ID"
|
||||
description: "Change the quota of a single user"
|
||||
operationId: "changeUserQuota"
|
||||
produces:
|
||||
- "application/json"
|
||||
consumes:
|
||||
- "application/x-www-form-urlencoded"
|
||||
parameters:
|
||||
- name: "id"
|
||||
in: "path"
|
||||
description: "ID of user"
|
||||
required: true
|
||||
type: "integer"
|
||||
format: "int64"
|
||||
- name: "quota"
|
||||
in: "formData"
|
||||
required: true
|
||||
type: "integer"
|
||||
format: "int64"
|
||||
description: "New quota"
|
||||
responses:
|
||||
"200":
|
||||
description: "successful operation"
|
||||
schema:
|
||||
$ref: "#/definitions/ApiResponse"
|
||||
"400":
|
||||
description: "Invalid parameter"
|
||||
schema:
|
||||
$ref: "#/definitions/ApiResponse"
|
||||
"403":
|
||||
description: "No access"
|
||||
schema:
|
||||
$ref: "#/definitions/ApiResponse"
|
||||
"404":
|
||||
description: "User not found"
|
||||
schema:
|
||||
$ref: "#/definitions/ApiResponse"
|
||||
security:
|
||||
- api_key: []
|
||||
/users/{id}/homefolder/{folderid}:
|
||||
put:
|
||||
tags:
|
||||
- "user"
|
||||
summary: "Change quota of user by ID"
|
||||
description: "Change the quota of a single user"
|
||||
operationId: "changeUserHomefolder"
|
||||
produces:
|
||||
- "application/json"
|
||||
consumes:
|
||||
- "application/x-www-form-urlencoded"
|
||||
parameters:
|
||||
- name: "id"
|
||||
in: "path"
|
||||
description: "ID of user"
|
||||
required: true
|
||||
type: "integer"
|
||||
format: "int64"
|
||||
- name: "folderid"
|
||||
in: "path"
|
||||
description: "ID of folder"
|
||||
required: true
|
||||
type: "integer"
|
||||
format: "int64"
|
||||
responses:
|
||||
"200":
|
||||
description: "successful operation"
|
||||
schema:
|
||||
$ref: "#/definitions/ApiResponse"
|
||||
"400":
|
||||
description: "Invalid parameter"
|
||||
schema:
|
||||
$ref: "#/definitions/ApiResponse"
|
||||
"403":
|
||||
description: "No access"
|
||||
schema:
|
||||
$ref: "#/definitions/ApiResponse"
|
||||
"404":
|
||||
description: "User or folder not found"
|
||||
schema:
|
||||
$ref: "#/definitions/ApiResponse"
|
||||
security:
|
||||
- api_key: []
|
||||
/groups:
|
||||
get:
|
||||
tags:
|
||||
|
@ -466,6 +549,161 @@ paths:
|
|||
$ref: "#/definitions/ApiResponse"
|
||||
security:
|
||||
- api_key: []
|
||||
/groups/{id}:
|
||||
get:
|
||||
tags:
|
||||
- "group"
|
||||
summary: "Find group by ID"
|
||||
description: "Returns a single group"
|
||||
operationId: "getGroupById"
|
||||
produces:
|
||||
- "application/json"
|
||||
parameters:
|
||||
- name: "id"
|
||||
in: "path"
|
||||
description: "ID of group to return"
|
||||
required: true
|
||||
type: "integer"
|
||||
format: "int64"
|
||||
responses:
|
||||
"200":
|
||||
description: "successful operation"
|
||||
schema:
|
||||
$ref: "#/definitions/ApiResponseUser"
|
||||
"404":
|
||||
description: "Group not found"
|
||||
schema:
|
||||
$ref: "#/definitions/ApiResponse"
|
||||
security:
|
||||
- api_key: []
|
||||
delete:
|
||||
tags:
|
||||
- "group"
|
||||
summary: "Delete group by ID"
|
||||
description: "Delete a single group"
|
||||
operationId: "deleteGroupById"
|
||||
produces:
|
||||
- "application/json"
|
||||
parameters:
|
||||
- name: "id"
|
||||
in: "path"
|
||||
description: "ID of group to delete"
|
||||
required: true
|
||||
type: "integer"
|
||||
format: "int64"
|
||||
responses:
|
||||
"200":
|
||||
description: "successful operation"
|
||||
schema:
|
||||
$ref: "#/definitions/ApiResponse"
|
||||
"500":
|
||||
description: "Error deleting group"
|
||||
schema:
|
||||
$ref: "#/definitions/ApiResponse"
|
||||
"403":
|
||||
description: "No access"
|
||||
schema:
|
||||
$ref: "#/definitions/ApiResponse"
|
||||
"404":
|
||||
description: "Group not found"
|
||||
schema:
|
||||
$ref: "#/definitions/ApiResponse"
|
||||
security:
|
||||
- api_key: []
|
||||
/groups/{id}/addUser:
|
||||
put:
|
||||
tags:
|
||||
- "group"
|
||||
summary: "Add user to group"
|
||||
description: "Adds an existing user as a new member of a group"
|
||||
operationId: "addUserToGroup"
|
||||
produces:
|
||||
- "application/json"
|
||||
consumes:
|
||||
- "application/x-www-form-urlencoded"
|
||||
parameters:
|
||||
- name: "id"
|
||||
in: "path"
|
||||
description: "ID of group"
|
||||
required: true
|
||||
type: "integer"
|
||||
format: "int64"
|
||||
- name: "userid"
|
||||
in: "formData"
|
||||
description: "ID of user"
|
||||
required: true
|
||||
type: "integer"
|
||||
format: "int64"
|
||||
responses:
|
||||
"200":
|
||||
description: "successful operation"
|
||||
schema:
|
||||
$ref: "#/definitions/ApiResponse"
|
||||
"400":
|
||||
description: "Invalid parameter"
|
||||
schema:
|
||||
$ref: "#/definitions/ApiResponse"
|
||||
"403":
|
||||
description: "No access"
|
||||
schema:
|
||||
$ref: "#/definitions/ApiResponse"
|
||||
"404":
|
||||
description: "User or group not found"
|
||||
schema:
|
||||
$ref: "#/definitions/ApiResponse"
|
||||
"500":
|
||||
description: "Internal error"
|
||||
schema:
|
||||
$ref: "#/definitions/ApiResponse"
|
||||
security:
|
||||
- api_key: []
|
||||
/groups/{id}/removeUser:
|
||||
put:
|
||||
tags:
|
||||
- "group"
|
||||
summary: "Remove user from group"
|
||||
description: "Remove a user as a new member of a group"
|
||||
operationId: "removeUserToGroup"
|
||||
produces:
|
||||
- "application/json"
|
||||
consumes:
|
||||
- "application/x-www-form-urlencoded"
|
||||
parameters:
|
||||
- name: "id"
|
||||
in: "path"
|
||||
description: "ID of group"
|
||||
required: true
|
||||
type: "integer"
|
||||
format: "int64"
|
||||
- name: "userid"
|
||||
in: "formData"
|
||||
description: "ID of user"
|
||||
required: true
|
||||
type: "integer"
|
||||
format: "int64"
|
||||
responses:
|
||||
"200":
|
||||
description: "successful operation"
|
||||
schema:
|
||||
$ref: "#/definitions/ApiResponse"
|
||||
"400":
|
||||
description: "Invalid parameter"
|
||||
schema:
|
||||
$ref: "#/definitions/ApiResponse"
|
||||
"403":
|
||||
description: "No access"
|
||||
schema:
|
||||
$ref: "#/definitions/ApiResponse"
|
||||
"404":
|
||||
description: "User or group not found"
|
||||
schema:
|
||||
$ref: "#/definitions/ApiResponse"
|
||||
"500":
|
||||
description: "Internal error"
|
||||
schema:
|
||||
$ref: "#/definitions/ApiResponse"
|
||||
security:
|
||||
- api_key: []
|
||||
/document/{id}:
|
||||
get:
|
||||
tags:
|
||||
|
@ -565,7 +803,8 @@ paths:
|
|||
"200":
|
||||
description: "preview image file"
|
||||
schema:
|
||||
type: "file"
|
||||
type: "string"
|
||||
format: "binary"
|
||||
"403":
|
||||
description: "No access"
|
||||
schema:
|
||||
|
@ -598,7 +837,8 @@ paths:
|
|||
"200":
|
||||
description: "content file"
|
||||
schema:
|
||||
type: "file"
|
||||
type: "string"
|
||||
format: "binary"
|
||||
"403":
|
||||
description: "No access"
|
||||
schema:
|
||||
|
@ -637,7 +877,8 @@ paths:
|
|||
"200":
|
||||
description: "attached file"
|
||||
schema:
|
||||
type: "file"
|
||||
type: "string"
|
||||
format: "binary"
|
||||
"403":
|
||||
description: "No access"
|
||||
schema:
|
||||
|
@ -676,7 +917,8 @@ paths:
|
|||
"200":
|
||||
description: "content file"
|
||||
schema:
|
||||
type: "file"
|
||||
type: "string"
|
||||
format: "binary"
|
||||
"403":
|
||||
description: "No access"
|
||||
schema:
|
||||
|
@ -1510,7 +1752,7 @@ paths:
|
|||
produces:
|
||||
- "application/json"
|
||||
consumes:
|
||||
- "application/x-www-form-urlencoded"
|
||||
- "multipart/form-data"
|
||||
parameters:
|
||||
- name: "id"
|
||||
in: "path"
|
||||
|
@ -1557,6 +1799,53 @@ paths:
|
|||
$ref: "#/definitions/ApiResponse"
|
||||
security:
|
||||
- api_key: []
|
||||
/folder/{id}/owner/{userid}:
|
||||
post:
|
||||
tags:
|
||||
- "folder"
|
||||
summary: "Set owner of folder"
|
||||
description: "Set owner of folder"
|
||||
operationId: "setFolderOwner"
|
||||
produces:
|
||||
- "application/json"
|
||||
consumes:
|
||||
- "application/x-www-form-urlencoded"
|
||||
parameters:
|
||||
- name: "id"
|
||||
in: "path"
|
||||
description: "ID of folder."
|
||||
type: "integer"
|
||||
required: true
|
||||
format: "int64"
|
||||
- name: "userid"
|
||||
in: "path"
|
||||
description: "ID of user."
|
||||
type: "integer"
|
||||
required: true
|
||||
format: "int64"
|
||||
responses:
|
||||
"201":
|
||||
description: "successful operation"
|
||||
schema:
|
||||
$ref: "#/definitions/ApiResponse"
|
||||
"400":
|
||||
description: "No folder or user given"
|
||||
schema:
|
||||
$ref: "#/definitions/ApiResponse"
|
||||
"403":
|
||||
description: "No access"
|
||||
schema:
|
||||
$ref: "#/definitions/ApiResponse"
|
||||
"404":
|
||||
description: "Folder not found"
|
||||
schema:
|
||||
$ref: "#/definitions/ApiResponse"
|
||||
"500":
|
||||
description: "Internal error"
|
||||
schema:
|
||||
$ref: "#/definitions/ApiResponse"
|
||||
security:
|
||||
- api_key: []
|
||||
/categories:
|
||||
get:
|
||||
tags:
|
||||
|
@ -1782,15 +2071,21 @@ paths:
|
|||
description: "Invalid status value"
|
||||
security:
|
||||
- api_key: []
|
||||
/echo:
|
||||
/echo/{data}:
|
||||
get:
|
||||
tags:
|
||||
- "misc"
|
||||
summary: "Return what was send in the body"
|
||||
description: "Just returns the body content"
|
||||
summary: "Return what was send in the path"
|
||||
description: "Just returns the path"
|
||||
operationId: "echoData"
|
||||
produces:
|
||||
- "application/json"
|
||||
parameters:
|
||||
- name: "data"
|
||||
in: "path"
|
||||
description: "Data to be echoed"
|
||||
required: true
|
||||
type: "string"
|
||||
responses:
|
||||
"200":
|
||||
description: "successful operation"
|
||||
|
|
|
@ -35,11 +35,16 @@ class SeedDMS_View_AddFile extends SeedDMS_Theme_Style {
|
|||
$enablelargefileupload = $this->params['enablelargefileupload'];
|
||||
$partitionsize = $this->params['partitionsize'];
|
||||
$maxuploadsize = $this->params['maxuploadsize'];
|
||||
$dropfolderdir = $this->params['dropfolderdir'];
|
||||
|
||||
header('Content-Type: application/javascript; charset=UTF-8');
|
||||
parent::jsTranslations(array('js_form_error', 'js_form_errors'));
|
||||
if($enablelargefileupload)
|
||||
$this->printFineUploaderJs($this->params['settings']->_httpRoot.'op/op.UploadChunks.php', $partitionsize, $maxuploadsize);
|
||||
|
||||
if($dropfolderdir) {
|
||||
$this->printDropFolderChooserJs("addfileform");
|
||||
}
|
||||
$this->printFileChooserJs();
|
||||
?>
|
||||
|
||||
|
@ -58,14 +63,18 @@ $(document).ready( function() {
|
|||
}
|
||||
return false;
|
||||
}, "<?php printMLText("js_no_file");?>");
|
||||
$("#form1").validate({
|
||||
$("#addfileform").validate({
|
||||
debug: false,
|
||||
ignore: ":hidden:not(.do_validate)",
|
||||
<?php
|
||||
if($enablelargefileupload) {
|
||||
?>
|
||||
submitHandler: function(form) {
|
||||
/* fileuploader may not have any files if drop folder is used */
|
||||
if(userfileuploader.getUploads().length)
|
||||
userfileuploader.uploadStoredFiles();
|
||||
else
|
||||
form.submit();
|
||||
},
|
||||
<?php
|
||||
}
|
||||
|
@ -74,14 +83,18 @@ $(document).ready( function() {
|
|||
<?php
|
||||
if($enablelargefileupload) {
|
||||
?>
|
||||
fineuploaderuuids: {
|
||||
fineuploader: [ userfileuploader ]
|
||||
'userfile-fine-uploader-uuids': {
|
||||
fineuploader: [ userfileuploader, $('#dropfolderfileaddfileform') ]
|
||||
}
|
||||
<?php
|
||||
} else {
|
||||
?>
|
||||
'userfile[]': {
|
||||
required: true
|
||||
require_from_group: [1, ".fileupload-group"],
|
||||
maxsize: <?= $maxuploadsize ?>
|
||||
},
|
||||
dropfolderfileaddfileform: {
|
||||
require_from_group: [1, ".fileupload-group"]
|
||||
}
|
||||
<?php
|
||||
}
|
||||
|
@ -113,6 +126,7 @@ $(document).ready( function() {
|
|||
$enablelargefileupload = $this->params['enablelargefileupload'];
|
||||
$uploadedattachmentispublic = $this->params['uploadedattachmentispublic'];
|
||||
$maxuploadsize = $this->params['maxuploadsize'];
|
||||
$dropfolderdir = $this->params['dropfolderdir'];
|
||||
|
||||
$this->htmlAddHeader('<script type="text/javascript" src="'.$this->params['settings']->_httpRoot.'views/'.$this->theme.'/vendors/jquery-validation/jquery.validate.js"></script>'."\n", 'js');
|
||||
$this->htmlAddHeader('<script type="text/javascript" src="'.$this->params['settings']->_httpRoot.'views/'.$this->theme.'/styles/validation-default.js"></script>'."\n", 'js');
|
||||
|
@ -132,7 +146,7 @@ $(document).ready( function() {
|
|||
|
||||
?>
|
||||
|
||||
<form class="form-horizontal" action="../op/op.AddFile.php" enctype="multipart/form-data" method="post" name="form1" id="form1">
|
||||
<form class="form-horizontal" action="../op/op.AddFile.php" enctype="multipart/form-data" method="post" name="addfileform" id="addfileform">
|
||||
<input type="hidden" name="documentid" value="<?php print $document->getId(); ?>">
|
||||
<?php
|
||||
$this->contentContainerStart();
|
||||
|
@ -140,6 +154,12 @@ $(document).ready( function() {
|
|||
getMLText("local_file"),
|
||||
($enablelargefileupload ? $this->getFineUploaderHtml() : $this->getFileChooserHtml('userfile[]', false))
|
||||
);
|
||||
if($dropfolderdir) {
|
||||
$this->formField(
|
||||
getMLText("dropfolder_file"),
|
||||
$this->getDropFolderChooserHtml("addfileform")
|
||||
);
|
||||
}
|
||||
$options = array();
|
||||
$options[] = array("", getMLText('document'));
|
||||
$versions = $document->getContent();
|
||||
|
@ -198,4 +218,3 @@ $(document).ready( function() {
|
|||
|
||||
} /* }}} */
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -161,6 +161,10 @@ $(document).ready( function() {
|
|||
foreach($res['docs'] as $document) {
|
||||
$extracontent = array();
|
||||
$extracontent['below_title'] = $this->getListRowPath($document);
|
||||
$txt = $this->callHook('documentListItem', $document, $previewer, false, 'attributemgr', $extracontent);
|
||||
if(is_string($txt))
|
||||
echo $txt;
|
||||
else
|
||||
echo $this->documentListRow($document, $previewer, false, 0, $extracontent);
|
||||
}
|
||||
|
||||
|
@ -176,10 +180,14 @@ $(document).ready( function() {
|
|||
print "<th>".getMLText("action")."</th>\n";
|
||||
print "</tr>\n</thead>\n<tbody>\n";
|
||||
foreach($res['contents'] as $content) {
|
||||
$doc = $content->getDocument();
|
||||
$document = $content->getDocument();
|
||||
$extracontent = array();
|
||||
$extracontent['below_title'] = $this->getListRowPath($doc);
|
||||
echo $this->documentListRow($doc, $previewer, false, 0, $extracontent);
|
||||
$txt = $this->callHook('documentListItem', $document, $previewer, false, 'attributemgr', $extracontent);
|
||||
if(is_string($txt))
|
||||
echo $txt;
|
||||
else
|
||||
echo $this->documentListRow($document, $previewer, false, 0, $extracontent);
|
||||
}
|
||||
print "</tbody></table>";
|
||||
}
|
||||
|
|
|
@ -464,7 +464,7 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
|
|||
echo "<li class=\"active\">";
|
||||
else
|
||||
echo "<li>";
|
||||
echo "<a href=\"".$this->params['settings']->_httpRoot."op/op.SetLanguage.php?lang=".$currLang."&referer=".$_SERVER["REQUEST_URI"]."\">";
|
||||
echo "<a href=\"".$this->params['settings']->_httpRoot."op/op.SetLanguage.php?lang=".$currLang."&referer=".urlencode(encryptData($this->params['settings']->_encryptionKey, $_SERVER["REQUEST_URI"]))."\">";
|
||||
echo getMLText($currLang)."</a></li>\n";
|
||||
}
|
||||
echo " </ul>\n";
|
||||
|
@ -563,7 +563,11 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
|
|||
echo " <a class=\"dropdown-toggle\" data-toggle=\"dropdown\">".$menuitem['label']." <i class=\"fa fa-caret-down\"></i></a>\n";
|
||||
echo " <ul class=\"dropdown-menu\" role=\"menu\">\n";
|
||||
foreach($menuitem['children'] as $submenuitem) {
|
||||
echo " <li><a href=\"".$submenuitem['link']."\"".(isset($submenuitem['target']) ? ' target="'.$submenuitem['target'].'"' : '').">".$submenuitem['label']."</a></li>\n";
|
||||
echo " <li><a href=\"".$submenuitem['link']."\"".(isset($submenuitem['target']) ? ' target="'.$submenuitem['target'].'"' : '');
|
||||
if(!empty($submenuitem['attributes']))
|
||||
foreach($submenuitem['attributes'] as $attr)
|
||||
echo ' '.$attr[0].'="'.$attr[1].'"';
|
||||
echo ">".$submenuitem['label']."</a></li>\n";
|
||||
}
|
||||
echo " </ul>\n";
|
||||
} else {
|
||||
|
@ -717,7 +721,7 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
|
|||
$content .= '>';
|
||||
$content .= $menuitem['label'];
|
||||
if(!empty($menuitem['badge']))
|
||||
$content .= '<span class="badge'.($menuitem['badge'] > 0 ? ' badge-info' : '').' badge-right">'.$menuitem['badge']."</span>";
|
||||
$content .= '<span class="badge'.(isset($menuitem['badge-type']) ? ' badge-'.$menuitem['badge-type'] : ($menuitem['badge'] > 0 ? ' badge-info' : '')).' badge-right">'.$menuitem['badge']."</span>";
|
||||
$content .= ' </a>'."\n";
|
||||
$content .= " </li>\n";
|
||||
}
|
||||
|
@ -768,6 +772,7 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
|
|||
|
||||
private function folderNavigationBar($folder) { /* {{{ */
|
||||
$dms = $this->params['dms'];
|
||||
$session = $this->params['session'];
|
||||
$enableClipboard = $this->params['enableclipboard'];
|
||||
$accessobject = $this->params['accessobject'];
|
||||
if (!is_object($folder) || !$folder->isType('folder')) {
|
||||
|
@ -812,6 +817,9 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
|
|||
$menuitems['edit_folder_notify'] = array('link'=>$this->params['settings']->_httpRoot."out/out.FolderNotify.php?folderid=". $folderID ."&showtree=". showtree(), 'label'=>getMLText('edit_folder_notify'));
|
||||
}
|
||||
if($enableClipboard) {
|
||||
if($session->isOnClipboard($folder))
|
||||
$menuitems['remove_from_clipboard'] = array('class'=>'removefromclipboard', 'attributes'=>array(['rel', 'F'.$folder->getId()], ['msg', getMLText('splash_removed_from_clipboard')], ['title', getMLText("remove_from_clipboard")]), 'label'=>getMLText("remove_from_clipboard"));
|
||||
else
|
||||
$menuitems['add_to_clipboard'] = array('class'=>'addtoclipboard', 'attributes'=>array(['rel', 'F'.$folder->getId()], ['msg', getMLText('splash_added_to_clipboard')], ['title', getMLText("add_to_clipboard")]), 'label'=>getMLText("add_to_clipboard"));
|
||||
}
|
||||
if ($accessobject->check_view_access('Indexer') && $this->params['enablefullsearch']) {
|
||||
|
@ -835,6 +843,7 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
|
|||
} /* }}} */
|
||||
|
||||
private function documentNavigationBar($document) { /* {{{ */
|
||||
$session = $this->params['session'];
|
||||
$accessobject = $this->params['accessobject'];
|
||||
$enableClipboard = $this->params['enableclipboard'];
|
||||
$accessMode = $document->getAccessMode($this->params['user']);
|
||||
|
@ -896,6 +905,9 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
|
|||
$menuitems['edit_document_notify'] = array('link'=>$this->params['settings']->_httpRoot."out/out.DocumentNotify". $docid, 'label'=>getMLText('edit_document_notify'));
|
||||
}
|
||||
if($enableClipboard) {
|
||||
if($session->isOnClipboard($document))
|
||||
$menuitems['remove_from_clipboard'] = array('class'=>'removefromclipboard', 'attributes'=>array(['rel', 'D'.$document->getId()], ['msg', getMLText('splash_removed_from_clipboard')], ['title', getMLText("remove_from_clipboard")]), 'label'=>getMLText("remove_from_clipboard"));
|
||||
else
|
||||
$menuitems['add_to_clipboard'] = array('class'=>'addtoclipboard', 'attributes'=>array(['rel', 'D'.$document->getId()], ['msg', getMLText('splash_added_to_clipboard')], ['title', getMLText("add_to_clipboard")]), 'label'=>getMLText("add_to_clipboard"));
|
||||
}
|
||||
if ($accessobject->check_view_access('TransferDocument')) {
|
||||
|
@ -1623,9 +1635,9 @@ function getOverallStatusIcon($status) { /* {{{ */
|
|||
*/
|
||||
function getModalBox($config) { /* {{{ */
|
||||
$content = '
|
||||
<div class="modal modal-wide hide" id="'.$config['id'].'" tabindex="-1" role="dialog" aria-labelledby="'.$config['id'].'Label" aria-hidden="true">
|
||||
<div class="modal modal-wide hide" id="'.$config['id'].'" tabindex="-1" role="dialog" aria-labelledby="'.$config['id'].'Label">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<button type="button" class="close" data-dismiss="modal">×</button>
|
||||
<h3 id="'.$config['id'].'Label">'.$config['title'].'</h3>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
|
@ -1640,7 +1652,7 @@ function getOverallStatusIcon($status) { /* {{{ */
|
|||
';
|
||||
if($config['buttons']) {
|
||||
foreach($config['buttons'] as $button)
|
||||
$content .= '<button class="btn'.(!empty($button['id']) ? ' btn-primary" id="'.$button['id'].'"': '" ').'data-dismiss="modal" aria-hidden="true">'.$button['title'].'</button>';
|
||||
$content .= '<button class="btn'.(!empty($button['id']) ? ' btn-primary" id="'.$button['id'].'"': '" ').'data-dismiss="modal">'.$button['title'].'</button>';
|
||||
}
|
||||
$content .= '
|
||||
</div>
|
||||
|
@ -1868,7 +1880,7 @@ $(document).ready(function() {
|
|||
/**
|
||||
* This function is deprecated. Don't use it anymore. There is a generic
|
||||
* folderSelected and documentSelected function in application.js
|
||||
* If you extra functions to be called then define them in your own js code
|
||||
* If you need extra functions to be called then define them in your own js code
|
||||
*/
|
||||
function printDocumentChooserJs($form, $formname='') { /* {{{ */
|
||||
if(!$formname)
|
||||
|
@ -1935,7 +1947,7 @@ function folderSelected<?php echo $formid ?>(id, name) {
|
|||
/**
|
||||
* This function is deprecated. Don't use it anymore. There is a generic
|
||||
* folderSelected and documentSelected function in application.js
|
||||
* If you extra functions to be called then define them in your own js code
|
||||
* If you need extra functions to be called then define them in your own js code
|
||||
*/
|
||||
function printFolderChooserJs($form, $formname='') { /* {{{ */
|
||||
if(!$formname)
|
||||
|
@ -2100,6 +2112,15 @@ $(document).ready(function() {
|
|||
echo self::getAttributeEditField($attrdef, $attribute, $fieldname, $norequire, $namepostfix, $alwaysmultiple);
|
||||
} /* }}} */
|
||||
|
||||
/**
|
||||
* Return html code for an input/select field of an attribute
|
||||
*
|
||||
* The passed attribute ($attribute) can either be an object of type
|
||||
* SeedDMS_Core_Attribute, scalar or an array. A scalar or array is
|
||||
* passed when the method is called to create the search form. In that
|
||||
* case $attribute has the value from the post data after submitting the
|
||||
* search form.
|
||||
*/
|
||||
function getAttributeEditField($attrdef, $attribute, $fieldname='attributes', $norequire=false, $namepostfix='', $alwaysmultiple=false) { /* {{{ */
|
||||
$dms = $this->params['dms'];
|
||||
$attr_id = $fieldname.'_'.$attrdef->getId().($namepostfix ? '_'.$namepostfix : '');
|
||||
|
@ -2136,10 +2157,19 @@ $(document).ready(function() {
|
|||
$content .= $this->getDocumentChooserHtml("attr".$attrdef->getId(), M_READ, -1, $target, $attr_name);
|
||||
break;
|
||||
case SeedDMS_Core_AttributeDefinition::type_user:
|
||||
$target = $attribute ? $attribute->getValueAsArray() : [];
|
||||
$objvalue = [];
|
||||
if($attribute) {
|
||||
if(is_object($attribute)) {
|
||||
$target = $attribute->getValueAsArray();
|
||||
foreach($target as $t)
|
||||
$objvalue[] = $t->getId();
|
||||
} elseif(is_array($attribute)) {
|
||||
foreach($attribute as $t)
|
||||
$objvalue[] = $t;
|
||||
} else {
|
||||
$objvalue[] = $attribute;
|
||||
}
|
||||
}
|
||||
$users = $dms->getAllUsers();
|
||||
if($users) {
|
||||
$allowempty = $attrdef->getMinValues() == 0;
|
||||
|
@ -2159,10 +2189,19 @@ $(document).ready(function() {
|
|||
}
|
||||
break;
|
||||
case SeedDMS_Core_AttributeDefinition::type_group:
|
||||
$target = $attribute ? $attribute->getValueAsArray() : [];
|
||||
$objvalue = [];
|
||||
if($attribute) {
|
||||
if(is_object($attribute)) {
|
||||
$target = $attribute->getValueAsArray();
|
||||
foreach($target as $t)
|
||||
$objvalue[] = $t->getId();
|
||||
} elseif(is_array($attribute)) {
|
||||
foreach($attribute as $t)
|
||||
$objvalue[] = $t;
|
||||
} else {
|
||||
$objvalue[] = $attribute;
|
||||
}
|
||||
}
|
||||
$groups = $dms->getAllGroups();
|
||||
if($groups) {
|
||||
$allowempty = $attrdef->getMinValues() == 0;
|
||||
|
@ -2656,9 +2695,9 @@ $(function() {
|
|||
*
|
||||
* @param string text
|
||||
*/
|
||||
function printInlineEdit($text, $object){ /* {{{ */
|
||||
function printInlineEditDocumentName($text, $object){ /* {{{ */
|
||||
if(!empty($this->params['settings']->_inlineEditing)) {
|
||||
echo "<span class=\"editable\" contenteditable=\"true\"";
|
||||
echo "<span class=\"editdocname editable\" contenteditable=\"true\"";
|
||||
if($object->isType('document'))
|
||||
echo " data-document=\"".$object->getId()."\" data-formtoken=\"".createFormKey('setdocumentname')."\"";
|
||||
echo ">".$text;
|
||||
|
@ -3277,6 +3316,7 @@ $('body').on('click', '[id^=\"table-row-folder\"] td:nth-child(2)', function(ev)
|
|||
|
||||
function documentListRowAction($document, $previewer, $skipcont=false, $version=0, $extracontent=array()) { /* {{{ */
|
||||
$user = $this->params['user'];
|
||||
$session = $this->params['session'];
|
||||
$enableClipboard = $this->params['enableclipboard'];
|
||||
$accessop = $this->params['accessobject'];
|
||||
$onepage = $this->params['onepage'];
|
||||
|
@ -3306,6 +3346,9 @@ $('body').on('click', '[id^=\"table-row-folder\"] td:nth-child(2)', function(ev)
|
|||
$actions['document_access'] = $this->printAccessButton($document, true);
|
||||
}
|
||||
if($enableClipboard) {
|
||||
if($session->isOnClipboard($document))
|
||||
$actions['remove_from_clipboard'] = '<a class="removefromclipboard" rel="D'.$docID.'" msg="'.getMLText('splash_removed_from_clipboard').'" title="'.getMLText("remove_from_clipboard").'"><i class="fa fa-copy"></i></a>';
|
||||
else
|
||||
$actions['add_to_clipboard'] = '<a class="addtoclipboard" rel="D'.$docID.'" msg="'.getMLText('splash_added_to_clipboard').'" title="'.getMLText("add_to_clipboard").'"><i class="fa fa-copy"></i></a>';
|
||||
}
|
||||
if($onepage)
|
||||
|
@ -3378,7 +3421,7 @@ $('body').on('click', '[id^=\"table-row-folder\"] td:nth-child(2)', function(ev)
|
|||
$extracontent = array_merge($extracontent, $ec);
|
||||
|
||||
$content .= "<td>";
|
||||
if (file_exists($dms->contentDir . $latestContent->getPath())) {
|
||||
if ($latestContent->exists()) {
|
||||
$previewhtml = $this->callHook('documentListPreview', $previewer, $document, $latestContent);
|
||||
if(is_string($previewhtml))
|
||||
$content .= $previewhtml;
|
||||
|
@ -3416,7 +3459,7 @@ $('body').on('click', '[id^=\"table-row-folder\"] td:nth-child(2)', function(ev)
|
|||
$content .= "<br />";
|
||||
foreach($categories as $category) {
|
||||
$color = substr(md5($category->getName()), 0, 6);
|
||||
$content .= "<span class=\"badge\" style=\"background-color: #".$color."; color: #".self::getContrastColor($color).";\">".$category->getName()."</span> ";
|
||||
$content .= "<span class=\"badge\" style=\"background-color: #".$color."; color: #".self::getContrastColor($color).";\">".htmlspecialchars($category->getName())."</span> ";
|
||||
}
|
||||
}
|
||||
if(!empty($extracontent['bottom_title']))
|
||||
|
@ -3512,6 +3555,7 @@ $('body').on('click', '[id^=\"table-row-folder\"] td:nth-child(2)', function(ev)
|
|||
function folderListRowAction($subFolder, $skipcont=false, $extracontent=array()) { /* {{{ */
|
||||
$dms = $this->params['dms'];
|
||||
$user = $this->params['user'];
|
||||
$session = $this->params['session'];
|
||||
// $folder = $this->params['folder'];
|
||||
$showtree = $this->params['showtree'];
|
||||
$enableRecursiveCount = $this->params['enableRecursiveCount'];
|
||||
|
@ -3544,6 +3588,9 @@ $('body').on('click', '[id^=\"table-row-folder\"] td:nth-child(2)', function(ev)
|
|||
$actions['folder_access'] = $this->printAccessButton($subFolder, true);
|
||||
}
|
||||
if($enableClipboard) {
|
||||
if($session->isOnClipboard($subFolder))
|
||||
$actions['add_to_clipboard'] = '<a class="removefromclipboard" rel="F'.$subFolder->getID().'" msg="'.getMLText('splash_removed_from_clipboard').'" title="'.getMLText("remove_from_clipboard").'"><i class="fa fa-copy"></i></a>';
|
||||
else
|
||||
$actions['add_to_clipboard'] = '<a class="addtoclipboard" rel="F'.$subFolder->getID().'" msg="'.getMLText('splash_added_to_clipboard').'" title="'.getMLText("add_to_clipboard").'"><i class="fa fa-copy"></i></a>';
|
||||
}
|
||||
if($onepage)
|
||||
|
|
|
@ -13,11 +13,6 @@
|
|||
* @version Release: @package_version@
|
||||
*/
|
||||
|
||||
/**
|
||||
* Include parent class
|
||||
*/
|
||||
//require_once("class.Bootstrap.php");
|
||||
|
||||
/**
|
||||
* Class which outputs the html page for Charts view
|
||||
*
|
||||
|
@ -229,11 +224,69 @@ $(document).ready( function() {
|
|||
}
|
||||
} /* }}} */
|
||||
|
||||
function show() { /* {{{ */
|
||||
$this->dms = $this->params['dms'];
|
||||
/**
|
||||
* Check if it makes sense to show the chart
|
||||
*
|
||||
* e.g. it doesn't make sense to show the documents by category if
|
||||
* there are no categories.
|
||||
*
|
||||
* @param string $type
|
||||
* @return boolean
|
||||
*/
|
||||
private function showChart($type) { /* {{{ */
|
||||
$dms = $this->params['dms'];
|
||||
if($type == 'docspercategory') {
|
||||
if($cats = $dms->getDocumentCategories())
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
} /* }}} */
|
||||
|
||||
protected function getSearchUrl($type, $item) {
|
||||
$dms = $this->params['dms'];
|
||||
$settings = $this->params['settings'];
|
||||
|
||||
$searchurl = null;
|
||||
switch($type) {
|
||||
case 'docsperuser':
|
||||
case 'sizeperuser':
|
||||
$searchurl = $settings->_httpRoot.'out/out.Search.php?fullsearch=0&query=&mode=1&orderby=&resultmode=1&owner%5B%5D='.$item['res'];
|
||||
break;
|
||||
case 'foldersperuser':
|
||||
$searchurl = $settings->_httpRoot.'out/out.Search.php?fullsearch=0&query=&mode=1&orderby=&resultmode=2&owner%5B%5D='.$item['res'];
|
||||
break;
|
||||
case 'docspercategory':
|
||||
$searchurl = $settings->_httpRoot.'out/out.Search.php?fullsearch=0&query=&mode=1&orderby=&resultmode=1&category%5B%5D='.$item['res'];
|
||||
break;
|
||||
case 'docsperstatus':
|
||||
$searchurl = $settings->_httpRoot.'out/out.Search.php?fullsearch=0&query=&mode=1&orderby=&resultmode=1&status%5B%5D='.$item['res'];
|
||||
break;
|
||||
case 'docspermonth':
|
||||
case 'sizepermonth':
|
||||
$startmonth = $item['key'].'-01';
|
||||
$endmonth = date('Y-m-t', strtotime($startmonth));
|
||||
$searchurl = $settings->_httpRoot.'out/out.Search.php?fullsearch=0&query=&mode=1&orderby=&resultmode=1&created%5Bfrom%5D='.$startmonth.'&created%5Bto%5D='.$endmonth;
|
||||
break;
|
||||
case 'docspermimetype':
|
||||
$searchurl = $settings->_httpRoot.'out/out.Search.php?fullsearch=0&query=&mode=1&orderby=&resultmode=1&mimetype%5B%5D='.urlencode($item['key']);
|
||||
break;
|
||||
case 'docsaccumulated':
|
||||
$start = date('Y-m-d', $item['key']/1000);
|
||||
$end = date('Y-m-d', $item['key']/1000 + 86400);
|
||||
$searchurl = $settings->_httpRoot.'out/out.Search.php?fullsearch=0&query=&mode=1&orderby=&resultmode=1&created%5Bfrom%5D='.$start.'&created%5Bto%5D='.$end;
|
||||
break;
|
||||
}
|
||||
return $searchurl;
|
||||
}
|
||||
|
||||
public function show() { /* {{{ */
|
||||
$dms = $this->params['dms'];
|
||||
$user = $this->params['user'];
|
||||
$data = $this->params['data'];
|
||||
$type = $this->params['type'];
|
||||
$quota = $this->params['quota'];
|
||||
|
||||
$this->htmlAddHeader(
|
||||
'<script type="text/javascript" src="../styles/bootstrap/flot/jquery.flot.min.js"></script>'."\n".
|
||||
|
@ -251,12 +304,13 @@ $(document).ready( function() {
|
|||
$this->contentHeading(getMLText("chart_selection"));
|
||||
$this->contentContainerStart();
|
||||
foreach(array('docsperuser', 'foldersperuser', 'sizeperuser', 'sizepermonth','docspermimetype', 'docspercategory', 'docsperstatus', 'docspermonth', 'docsaccumulated') as $atype) {
|
||||
if($this->showChart($atype))
|
||||
echo "<div><a href=\"?type=".$atype."\">".getMLText('chart_'.$atype.'_title')."</a></div>\n";
|
||||
}
|
||||
$this->contentContainerEnd();
|
||||
$this->columnEnd();
|
||||
|
||||
if(in_array($type, array('docspermonth', 'docsaccumulated'))) {
|
||||
if(in_array($type, array('sizepermonth', 'docspermonth', 'docsaccumulated'))) {
|
||||
$this->columnStart(9);
|
||||
} else {
|
||||
$this->columnStart(6);
|
||||
|
@ -269,9 +323,14 @@ $(document).ready( function() {
|
|||
$this->contentContainerEnd();
|
||||
echo "<table class=\"table table-condensed table-sm table-hover\">";
|
||||
echo "<tr>";
|
||||
echo "<th>".getMLText('chart_'.$type.'_title')."</th><th>".getMLText('total')."</th>";
|
||||
if(in_array($type, array('docspermonth', 'docsaccumulated')))
|
||||
echo "<th>".getMLText('chart_'.$type.'_title')."</th>";
|
||||
echo "<th>".getMLText('total')."</th>";
|
||||
$types = array('docspermonth', 'docsaccumulated');
|
||||
if($quota)
|
||||
$types[] = 'sizeperuser';
|
||||
if(in_array($type, $types))
|
||||
echo "<th></th>";
|
||||
echo "<th>Search</th>";
|
||||
echo "</tr>";
|
||||
$total = 0;
|
||||
switch($type) {
|
||||
|
@ -288,6 +347,11 @@ $(document).ready( function() {
|
|||
echo "<td>".$item['total']."</td>";
|
||||
if(in_array($type, array('docspermonth')))
|
||||
echo "<td>".sprintf('%+d', $item['total']-$oldtotal)."</td>";
|
||||
$searchurl = $this->getSearchUrl($type, $item);
|
||||
if($searchurl)
|
||||
echo "<td><a href=\"".$searchurl."\"><i class=\"fa fa-search\"></i></a></td>";
|
||||
else
|
||||
echo "<td></td>";
|
||||
echo "</tr>";
|
||||
$oldtotal = $item['total'];
|
||||
$total += $item['total'];
|
||||
|
@ -301,15 +365,46 @@ $(document).ready( function() {
|
|||
echo "<td>".getReadableDate($item['key']/1000)."</td>";
|
||||
echo "<td>".$item['total']."</td>";
|
||||
echo "<td>".sprintf('%+d', $item['total']-$oldtotal)."</td>";
|
||||
$searchurl = $this->getSearchUrl($type, $item);
|
||||
if($searchurl)
|
||||
echo "<td><a href=\"".$searchurl."\"><i class=\"fa fa-search\"></i></a></td>";
|
||||
else
|
||||
echo "<td></td>";
|
||||
echo "</tr>";
|
||||
$oldtotal = $item['total'];
|
||||
$total += $item['total'];
|
||||
}
|
||||
break;
|
||||
case 'sizeperuser':
|
||||
foreach($data as $item) {
|
||||
$currUser = $dms->getUser($item['res']);
|
||||
echo "<tr><td>".htmlspecialchars($item['key'])."</td>";
|
||||
echo "<td>".SeedDMS_Core_File::format_filesize((int) $item['total'])."</td>";
|
||||
if($quota) {
|
||||
echo "<td width=\"100\">";
|
||||
$qt = $currUser->getQuota() ? $currUser->getQuota() : $quota;
|
||||
echo $this->getProgressBar($currUser->getUsedDiskSpace(), $qt);
|
||||
echo "</td>";
|
||||
}
|
||||
$searchurl = $this->getSearchUrl($type, $item);
|
||||
if($searchurl)
|
||||
echo "<td><a href=\"".$searchurl."\"><i class=\"fa fa-search\"></i></a></td>";
|
||||
else
|
||||
echo "<td></td>";
|
||||
echo "</tr>";
|
||||
$total += $item['total'];
|
||||
}
|
||||
echo "<tr><th></th><th>".SeedDMS_Core_File::format_filesize($total)."<th></tr>";
|
||||
break;
|
||||
case 'sizepermonth':
|
||||
foreach($data as $item) {
|
||||
echo "<tr><td>".htmlspecialchars($item['key'])."</td><td>".SeedDMS_Core_File::format_filesize((int) $item['total'])."</td></tr>";
|
||||
echo "<tr><td>".htmlspecialchars($item['key'])."</td><td>".SeedDMS_Core_File::format_filesize((int) $item['total'])."</td>";
|
||||
$searchurl = $this->getSearchUrl($type, $item);
|
||||
if($searchurl)
|
||||
echo "<td><a href=\"".$searchurl."\"><i class=\"fa fa-search\"></i></a></td>";
|
||||
else
|
||||
echo "<td></td>";
|
||||
echo "</tr>";
|
||||
$total += $item['total'];
|
||||
}
|
||||
echo "<tr><th></th><th>".SeedDMS_Core_File::format_filesize($total)."<th></tr>";
|
||||
|
@ -318,7 +413,7 @@ $(document).ready( function() {
|
|||
echo "</table>";
|
||||
$this->columnEnd();
|
||||
|
||||
if(!in_array($type, array('docspermonth', 'docsaccumulated'))) {
|
||||
if(!in_array($type, array('sizepermonth', 'docspermonth', 'docsaccumulated'))) {
|
||||
$this->columnStart(3);
|
||||
$this->contentHeading(getMLText('legend'));
|
||||
$this->contentContainerStart('', 'legend');
|
||||
|
|
|
@ -52,12 +52,12 @@ class SeedDMS_View_Clipboard extends SeedDMS_Theme_Style {
|
|||
$subitems = [];
|
||||
foreach($clipboard['folders'] as $folderid) {
|
||||
if($folder = $this->params['dms']->getFolder($folderid)) {
|
||||
$subitems[] = array('label'=>'<i class="fa fa-folder-o"></i> '.$folder->getName(), 'link'=>$this->params['settings']->_httpRoot."out/out.ViewFolder.php?folderid=".$folder->getID(), 'class'=>"table-row-folder droptarget", 'attributes'=>array(array('data-droptarget', "folder_".$folder->getID()), array('rel', "folder_".$folder->getID()), array('data-name', htmlspecialchars($folder->getName(), ENT_QUOTES))));
|
||||
$subitems[] = array('label'=>'<i class="fa fa-folder-o"></i> '.htmlspecialchars($folder->getName()), 'link'=>$this->params['settings']->_httpRoot."out/out.ViewFolder.php?folderid=".$folder->getID(), 'class'=>"table-row-folder droptarget", 'attributes'=>array(array('data-droptarget', "folder_".$folder->getID()), array('rel', "folder_".$folder->getID()), array('data-name', htmlspecialchars($folder->getName(), ENT_QUOTES))));
|
||||
}
|
||||
}
|
||||
foreach($clipboard['docs'] as $docid) {
|
||||
if($document = $this->params['dms']->getDocument($docid))
|
||||
$subitems[] = array('label'=>'<i class="fa fa-file"></i> '.$document->getName(), 'link'=>$this->params['settings']->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID(), 'class'=>"table-row-document droptarget", 'attributes'=>array(array('data-droptarget', "document_".$document->getID()), array('rel', "document_".$document->getID()), array('formtoken', createFormKey('')), array('data-name', htmlspecialchars($document->getName(), ENT_QUOTES))));
|
||||
$subitems[] = array('label'=>'<i class="fa fa-file"></i> '.htmlspecialchars($document->getName()), 'link'=>$this->params['settings']->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID(), 'class'=>"table-row-document droptarget", 'attributes'=>array(array('data-droptarget', "document_".$document->getID()), array('rel', "document_".$document->getID()), array('formtoken', createFormKey('')), array('data-name', htmlspecialchars($document->getName(), ENT_QUOTES))));
|
||||
}
|
||||
if((count($clipboard['docs']) + count($clipboard['folders'])) > 0) {
|
||||
$subitems[] = array('divider'=>true);
|
||||
|
|
|
@ -69,6 +69,7 @@ class SeedDMS_View_Dashboard extends SeedDMS_Theme_Style {
|
|||
$previewconverters = $this->params['previewConverters'];
|
||||
$timeout = $this->params['timeout'];
|
||||
$dayspastdashboard = $this->params['dayspastdashboard'];
|
||||
$excludedfolders = $this->params['excludedfolders'];
|
||||
$xsendfile = $this->params['xsendfile'];
|
||||
|
||||
$previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth, $timeout, $xsendfile);
|
||||
|
@ -80,6 +81,11 @@ class SeedDMS_View_Dashboard extends SeedDMS_Theme_Style {
|
|||
echo $this->contentHeading(getMLText('new_documents'));
|
||||
$documents = $dms->getLatestChanges('newdocuments', mktime(0, 0, 0)-$dayspastdashboard*86400, time());
|
||||
$documents = SeedDMS_Core_DMS::filterAccess($documents, $user, M_READ);
|
||||
foreach($documents as $i=>$doc) {
|
||||
$fl = explode(':', $doc->getFolderList());
|
||||
if(array_intersect($fl, $excludedfolders))
|
||||
unset($documents[$i]);
|
||||
}
|
||||
if (count($documents) > 0) {
|
||||
$this->printList($documents, $previewer);
|
||||
}
|
||||
|
@ -94,6 +100,7 @@ class SeedDMS_View_Dashboard extends SeedDMS_Theme_Style {
|
|||
$previewconverters = $this->params['previewConverters'];
|
||||
$timeout = $this->params['timeout'];
|
||||
$dayspastdashboard = $this->params['dayspastdashboard'];
|
||||
$excludedfolders = $this->params['excludedfolders'];
|
||||
$xsendfile = $this->params['xsendfile'];
|
||||
|
||||
$previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth, $timeout, $xsendfile);
|
||||
|
@ -105,6 +112,11 @@ class SeedDMS_View_Dashboard extends SeedDMS_Theme_Style {
|
|||
echo $this->contentHeading(getMLText('updated_documents'));
|
||||
$documents = $dms->getLatestChanges('updateddocuments', mktime(0, 0, 0)-$dayspastdashboard*86400, time());
|
||||
$documents = SeedDMS_Core_DMS::filterAccess($documents, $user, M_READ);
|
||||
foreach($documents as $i=>$doc) {
|
||||
$fl = explode(':', $doc->getFolderList());
|
||||
if(array_intersect($fl, $excludedfolders))
|
||||
unset($documents[$i]);
|
||||
}
|
||||
if (count($documents) > 0) {
|
||||
$this->printList($documents, $previewer);
|
||||
}
|
||||
|
@ -119,6 +131,7 @@ class SeedDMS_View_Dashboard extends SeedDMS_Theme_Style {
|
|||
$previewconverters = $this->params['previewConverters'];
|
||||
$timeout = $this->params['timeout'];
|
||||
$dayspastdashboard = $this->params['dayspastdashboard'];
|
||||
$excludedfolders = $this->params['excludedfolders'];
|
||||
$xsendfile = $this->params['xsendfile'];
|
||||
|
||||
$previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth, $timeout, $xsendfile);
|
||||
|
@ -130,6 +143,11 @@ class SeedDMS_View_Dashboard extends SeedDMS_Theme_Style {
|
|||
echo $this->contentHeading(getMLText('status_change'));
|
||||
$documents = $dms->getLatestChanges('statuschange', mktime(0, 0, 0)-$dayspastdashboard*86400, time());
|
||||
$documents = SeedDMS_Core_DMS::filterAccess($documents, $user, M_READ);
|
||||
foreach($documents as $i=>$doc) {
|
||||
$fl = explode(':', $doc->getFolderList());
|
||||
if(array_intersect($fl, $excludedfolders))
|
||||
unset($documents[$i]);
|
||||
}
|
||||
if (count($documents) > 0) {
|
||||
$this->printList($documents, $previewer);
|
||||
}
|
||||
|
@ -156,7 +174,7 @@ class SeedDMS_View_Dashboard extends SeedDMS_Theme_Style {
|
|||
$timeout = $this->params['timeout'];
|
||||
$xsendfile = $this->params['xsendfile'];
|
||||
|
||||
$this->htmlStartPage(getMLText("calendar"));
|
||||
$this->htmlStartPage(getMLText("dashboard"));
|
||||
$this->globalNavigation();
|
||||
$this->contentStart();
|
||||
|
||||
|
|
|
@ -353,7 +353,7 @@ class SeedDMS_View_DocumentVersionDetail extends SeedDMS_Theme_Style {
|
|||
print "<li>".$arr[0].": ".$arr[1]."</li>\n";
|
||||
} else {
|
||||
$attrdef = $attribute->getAttributeDefinition();
|
||||
print "<li>".htmlspecialchars($attrdef->getName()).": ".htmlspecialchars(implode(', ', $attribute->getValueAsArray()))."</li>\n";
|
||||
print "<li>".htmlspecialchars($attrdef->getName()).": ".htmlspecialchars($attribute->getValueAsString())."</li>\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -139,7 +139,7 @@ $(document).ready( function() {
|
|||
if(!$nodocumentformfields || !in_array('categories', $nodocumentformfields)) {
|
||||
$options = array();
|
||||
foreach($categories as $category) {
|
||||
$options[] = array($category->getID(), $category->getName(), in_array($category, $document->getCategories()));
|
||||
$options[] = array($category->getID(), htmlspecialchars($category->getName()), in_array($category, $document->getCategories()));
|
||||
}
|
||||
$this->formField(
|
||||
getMLText("categories"),
|
||||
|
|
|
@ -45,6 +45,7 @@ class SeedDMS_View_ExpiredDocuments extends SeedDMS_Theme_Style {
|
|||
function show() { /* {{{ */
|
||||
$dms = $this->params['dms'];
|
||||
$user = $this->params['user'];
|
||||
$settings = $this->params['settings'];
|
||||
$orderby = $this->params['orderby'];
|
||||
$orderdir = $this->params['orderdir'];
|
||||
$conversionmgr = $this->params['conversionmgr'];
|
||||
|
@ -56,6 +57,7 @@ class SeedDMS_View_ExpiredDocuments extends SeedDMS_Theme_Style {
|
|||
$days = $this->params['days'];
|
||||
$startts = $this->params['startts'];
|
||||
$endts = $this->params['endts'];
|
||||
$seluser = $this->params['seluser'];
|
||||
|
||||
$db = $dms->getDB();
|
||||
$previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth, $timeout, $xsendfile);
|
||||
|
@ -91,6 +93,21 @@ class SeedDMS_View_ExpiredDocuments extends SeedDMS_Theme_Style {
|
|||
getMLText("enddate"),
|
||||
$this->getDateChooser(getReadableDate($endts), "enddate", $this->params['session']->getLanguage(), '', '')
|
||||
);
|
||||
$allUsers = $dms->getAllUsers($settings->_sortUsersInList);
|
||||
foreach ($allUsers as $currUser) {
|
||||
if (!$currUser->isGuest())
|
||||
$options[] = array($currUser->getID(), htmlspecialchars($currUser->getLogin()), $seluser && ($seluser->getId() == $currUser->getId()), array(array('data-subtitle', htmlspecialchars($currUser->getFullName()))));
|
||||
}
|
||||
$this->formField(
|
||||
getMLText("user"),
|
||||
array(
|
||||
'element'=>'select',
|
||||
'name'=>'seluserid',
|
||||
'class'=>'chzn-select',
|
||||
'options'=>$options,
|
||||
'attributes'=>array(array('data-allow-clear', 'true'), array('data-placeholder', getMLText('select_user'))),
|
||||
)
|
||||
);
|
||||
$this->formSubmit("<i class=\"fa fa-refresh\"></i> ".getMLText('update'));
|
||||
?>
|
||||
</form>
|
||||
|
@ -99,7 +116,7 @@ class SeedDMS_View_ExpiredDocuments extends SeedDMS_Theme_Style {
|
|||
$this->columnStart(8);
|
||||
|
||||
if(is_numeric($days)) {
|
||||
$docs = $dms->getDocumentsExpired($days, null, $orderby, $orderdir, true);
|
||||
$docs = $dms->getDocumentsExpired($days, $seluser, $orderby, $orderdir, true);
|
||||
$this->contentHeading(''.$days);
|
||||
} else {
|
||||
$d = [];
|
||||
|
@ -107,7 +124,7 @@ class SeedDMS_View_ExpiredDocuments extends SeedDMS_Theme_Style {
|
|||
$d['start'] = $startts;
|
||||
if($endts)
|
||||
$d['end'] = $endts+86400;
|
||||
$docs = $dms->getDocumentsExpired($d, null, $orderby, $orderdir, true);
|
||||
$docs = $dms->getDocumentsExpired($d, $seluser, $orderby, $orderdir, true);
|
||||
$this->contentHeading(getReadableDate($startts)." - ".getReadableDate($endts));
|
||||
}
|
||||
if($docs) {
|
||||
|
@ -137,4 +154,3 @@ class SeedDMS_View_ExpiredDocuments extends SeedDMS_Theme_Style {
|
|||
$this->htmlEndPage();
|
||||
} /* }}} */
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -55,6 +55,25 @@ class SeedDMS_View_ExtensionMgr extends SeedDMS_Theme_Style {
|
|||
});
|
||||
*/
|
||||
});
|
||||
$('body').on('click', '#btn_save_config', function(ev){
|
||||
var element = $(this);
|
||||
ev.preventDefault();
|
||||
$.ajax({url: '../op/op.Settings.php',
|
||||
type: 'POST',
|
||||
dataType: "json",
|
||||
data: data = $('#formconfig').serializeArray(),
|
||||
success: function(data) {
|
||||
noty({
|
||||
text: data.msg,
|
||||
type: (data.error) ? 'error' : 'success',
|
||||
dismissQueue: true,
|
||||
layout: 'topRight',
|
||||
theme: 'defaultTheme',
|
||||
timeout: 1500,
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
$('body').on('click', 'a.toggle', function(ev){
|
||||
// $('a.toggle').click(function(ev){
|
||||
var element = $(this);
|
||||
|
@ -247,8 +266,10 @@ class SeedDMS_View_ExtensionMgr extends SeedDMS_Theme_Style {
|
|||
if(!empty($extconf['changelog']) && file_exists($extdir."/".$extname."/".$extconf['changelog'])) {
|
||||
echo $this->getModalBoxLink(array('target'=>'extensionChangelog', 'remote'=>'out.ExtensionMgr.php?action=changelog&extensionname='.$extname, 'class'=>'', 'title'=>'<i class="fa fa-reorder"></i>', 'attributes'=>array('title'=>getMLText('show_extension_changelog'))));
|
||||
}
|
||||
if($extconf['config'])
|
||||
echo "<a href=\"../out/out.Settings.php?currenttab=extensions#".$extname."\" title=\"".getMLText('configure_extension')."\"><i class=\"fa fa-cogs\"></i></a>";
|
||||
if($extconf['config']) {
|
||||
// echo "<a href=\"../out/out.Settings.php?currenttab=extensions#".$extname."\" title=\"".getMLText('configure_extension')."\"><i class=\"fa fa-cogs\"></i></a>";
|
||||
echo $this->getModalBoxLink(array('target'=>'extensionConfig', 'remote'=>'out.Settings.php?action=extension&extensionname='.$extname, 'class'=>'', 'title'=>'<i class="fa fa-cogs"></i>', 'attributes'=>array('title'=>getMLText('show_extension_changelog'), 'data-modal-title'=>'<i class=\'fa fa-circle'.(isset($settings->_extensions[$extname]["__disable__"]) && $settings->_extensions[$extname]["__disable__"] ? ' disabled' : ' enabled').'\'></i> '.$extconf['title'])));
|
||||
}
|
||||
if($settings->_enableExtensionDownload)
|
||||
echo "<form style=\"display: inline-block; margin: 0px;\" method=\"post\" action=\"../op/op.ExtensionMgr.php\" id=\"".$extname."-download\">".createHiddenFieldWithKey('extensionmgr')."<input type=\"hidden\" name=\"action\" value=\"download\" /><input type=\"hidden\" name=\"extname\" value=\"".$extname."\" /><a class=\"download\" data-extname=\"".$extname."\" title=\"".getMLText('download_extension')."\"><i class=\"fa fa-download\"></i></a></form>";
|
||||
if(is_writeable($settings->_configFilePath) && $check) {
|
||||
|
@ -392,6 +413,7 @@ class SeedDMS_View_ExtensionMgr extends SeedDMS_Theme_Style {
|
|||
echo $this->getModalBox(array('id'=>'extensionInfo', 'title'=>getMLText('extension_version_list'), 'content'=>'<p>'.getMLText('extension_loading').'</p>', 'buttons'=>array(array('title'=>getMLText('close')))));
|
||||
echo $this->getModalBox(array('id'=>'extensionChangelog', 'title'=>getMLText('extension_changelog'), 'content'=>'<p>'.getMLText('changelog_loading').'</p>', 'buttons'=>array(array('title'=>getMLText('close')))));
|
||||
echo $this->getModalBox(array('id'=>'extensionReadme', 'title'=>getMLText('extension_readme'), 'content'=>'<p>'.getMLText('readme_loading').'</p>', 'buttons'=>array(array('title'=>getMLText('close')))));
|
||||
echo $this->getModalBox(array('id'=>'extensionConfig', 'title'=>getMLText('extension_config'), 'content'=>'<p>'.getMLText('readme_loading').'</p>', 'buttons'=>array(array('title'=>getMLText('close')), array('id'=>'btn_save_config', 'title'=>getMLText('save')))));
|
||||
$this->contentEnd();
|
||||
$this->htmlEndPage();
|
||||
} /* }}} */
|
||||
|
|
|
@ -13,11 +13,6 @@
|
|||
* @version Release: @package_version@
|
||||
*/
|
||||
|
||||
/**
|
||||
* Include parent class
|
||||
*/
|
||||
//require_once("class.Bootstrap.php");
|
||||
|
||||
/**
|
||||
* Class which outputs the html page for Info view
|
||||
*
|
||||
|
@ -60,17 +55,30 @@ class SeedDMS_View_Info extends SeedDMS_Theme_Style {
|
|||
$this->rowStart();
|
||||
$this->columnStart(6);
|
||||
$this->contentHeading(getMLText("seeddms_info"));
|
||||
$seedextensions = $extmgr->getExtensionConfiguration();
|
||||
echo "<table class=\"table table-condensed table-sm\">\n";
|
||||
echo "<thead>\n<tr>\n";
|
||||
echo "<th>".getMLText("name")."</th>\n";
|
||||
echo "</tr>\n</thead>\n<tbody>\n";
|
||||
$dbversion = $dms->getDBVersion();
|
||||
echo "<tr><td>".getMLText('seeddms_version')."</td><td>".$version->version()."</td></tr>\n";
|
||||
if($user->isAdmin()) {
|
||||
$storage = $dms->getStorage();
|
||||
echo "<tr><td>".getMLText('database_schema_version')."</td><td>".$dbversion['major'].".".$dbversion['minor'].".".$dbversion['subminor']."</td></tr>\n";
|
||||
echo "<tr></td><td>".getMLText('storage')."</td><td>".($storage ? $storage->info() : "legacy")."</td></tr>\n";
|
||||
}
|
||||
echo "</tbody>\n</table>\n";
|
||||
|
||||
if($user->isAdmin()) {
|
||||
$this->contentHeading(getMLText("extension_info"));
|
||||
echo "<table class=\"table table-condensed table-sm\">\n";
|
||||
echo "<thead>\n<tr>\n";
|
||||
echo "<th></th>";
|
||||
echo "<th></th>";
|
||||
echo "<th>".getMLText("name");
|
||||
echo "<th>".getMLText("version")."</th>\n";
|
||||
echo "</th>\n";
|
||||
echo "</tr>\n</thead>\n<tbody>\n";
|
||||
$dbversion = $dms->getDBVersion();
|
||||
echo "<tr><td></td><td></td><td>".getMLText('seeddms_version')."</td><td>".$version->version()."</td></tr>\n";
|
||||
if($user->isAdmin()) {
|
||||
echo "<tr><td></td><td></td><td>".getMLText('database_schema_version')."</td><td>".$dbversion['major'].".".$dbversion['minor'].".".$dbversion['subminor']."</td></tr>\n";
|
||||
$seedextensions = $extmgr->getExtensionConfiguration();
|
||||
foreach($seedextensions as $extname=>$extconf) {
|
||||
echo "<tr><td>";
|
||||
if(!$settings->extensionIsDisabled($extname))
|
||||
|
@ -85,8 +93,8 @@ class SeedDMS_View_Info extends SeedDMS_Theme_Style {
|
|||
echo "<td>".$extname."<br />".$extconf['title']."</td><td>".$extconf['version']."</td>";
|
||||
echo "</tr>\n";
|
||||
}
|
||||
}
|
||||
echo "</tbody>\n</table>\n";
|
||||
}
|
||||
$this->columnEnd();
|
||||
$this->columnStart(6);
|
||||
if($user->isAdmin()) {
|
||||
|
@ -98,6 +106,7 @@ class SeedDMS_View_Info extends SeedDMS_Theme_Style {
|
|||
echo "</tr>\n</thead>\n<tbody>\n";
|
||||
echo "<tr><td>PHP</td><td>".phpversion()."</td></tr>\n";
|
||||
echo "<tr><td>Path to php.ini</td><td>".php_ini_loaded_file()."</td></tr>\n";
|
||||
echo "<tr><td>Timezone</td><td>".date_default_timezone_get()." (Current date/time on server is ".getLongReadableDate(time()).")</td></tr>\n";
|
||||
echo "</tbody>\n</table>\n";
|
||||
|
||||
$this->contentHeading(getMLText("installed_php_extensions"));
|
||||
|
@ -116,7 +125,7 @@ class SeedDMS_View_Info extends SeedDMS_Theme_Style {
|
|||
|
||||
$this->contentHeading(getMLText("missing_php_functions_and_classes"));
|
||||
$missingfunc = [];
|
||||
foreach(array('proc_open', 'openssl_cipher_iv_length') as $funcname) {
|
||||
foreach(array('proc_open', 'openssl_cipher_iv_length', 'system') as $funcname) {
|
||||
if(!function_exists($funcname)) {
|
||||
$missingfunc[] = $funcname; //getMLText('func_'.$funcname."_missing")
|
||||
}
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user