mirror of
https://git.code.sf.net/p/seeddms/code
synced 2025-05-27 20:17:29 +00:00
Compare commits
188 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
a825bb43fb | ||
![]() |
00c3a63ff1 | ||
![]() |
396fd6a4fe | ||
![]() |
4972929258 | ||
![]() |
776f19d501 | ||
![]() |
c014749676 | ||
![]() |
2ec29e3336 | ||
![]() |
9a826b88e9 | ||
![]() |
c638258a10 | ||
![]() |
d7c1e4b103 | ||
![]() |
637fd66210 | ||
![]() |
964495b9b6 | ||
![]() |
7fe2a12af3 | ||
![]() |
e1f976e646 | ||
![]() |
ba18e89cda | ||
![]() |
4c6d047bb8 | ||
![]() |
e687474d19 | ||
![]() |
31aa18606f | ||
![]() |
0fd6ed5381 | ||
![]() |
a74229eb14 | ||
![]() |
04e9402094 | ||
![]() |
e9388dc3ec | ||
![]() |
fb5bf43990 | ||
![]() |
abc8df5939 | ||
![]() |
72245fabe0 | ||
![]() |
cd6afd07fe | ||
![]() |
69f4d9a194 | ||
![]() |
00d5d8b334 | ||
![]() |
6610647ddf | ||
![]() |
3fb3434c61 | ||
![]() |
4ed83488ba | ||
![]() |
2288be497c | ||
![]() |
d377bd81ab | ||
![]() |
e069f784b4 | ||
![]() |
181482a1a7 | ||
![]() |
b2cfde85ca | ||
![]() |
f46ae01386 | ||
![]() |
ae66ec223c | ||
![]() |
a5edba86ae | ||
![]() |
8b0d8e85c2 | ||
![]() |
4184cd4f1d | ||
![]() |
d50247ba09 | ||
![]() |
6a39584dcc | ||
![]() |
e8c0ebbf4f | ||
![]() |
67a2afc626 | ||
![]() |
133fc5d570 | ||
![]() |
92bee67638 | ||
![]() |
5fdd83de3c | ||
![]() |
cd4743d917 | ||
![]() |
904e4b8657 | ||
![]() |
de4fae18d0 | ||
![]() |
f1859da68b | ||
![]() |
c8a7dad7d6 | ||
![]() |
3bed5b0d68 | ||
![]() |
1bff379d84 | ||
![]() |
073948d4c3 | ||
![]() |
4f3e6cadf5 | ||
![]() |
692318dcc1 | ||
![]() |
c2d8b383c3 | ||
![]() |
f8ceb0d56a | ||
![]() |
e578e2a206 | ||
![]() |
22f23c71f0 | ||
![]() |
42a38984f7 | ||
![]() |
fb59582a56 | ||
![]() |
8f2f15bb80 | ||
![]() |
7f2d12e299 | ||
![]() |
fc555555d2 | ||
![]() |
28ba7b59b9 | ||
![]() |
b7e075cdba | ||
![]() |
0ad6416d65 | ||
![]() |
d1dfc924b5 | ||
![]() |
5a40423836 | ||
![]() |
53133fc824 | ||
![]() |
7529c68c80 | ||
![]() |
edb91d3299 | ||
![]() |
5ce55216ad | ||
![]() |
f3fa653eee | ||
![]() |
37fd1ac969 | ||
![]() |
54c3ec54fc | ||
![]() |
a4899a52ad | ||
![]() |
0e6f14dbaf | ||
![]() |
c4c37becf6 | ||
![]() |
9d400a808e | ||
![]() |
287753b7bc | ||
![]() |
54832e3727 | ||
![]() |
52401dce05 | ||
![]() |
597e9c89b3 | ||
![]() |
bfe17bcc46 | ||
![]() |
df8d6edcff | ||
![]() |
9b2c120b5f | ||
![]() |
757e95ab86 | ||
![]() |
2e6d25873c | ||
![]() |
38b3abc50e | ||
![]() |
3bbdf680de | ||
![]() |
2ecef66355 | ||
![]() |
9abbf6a1e5 | ||
![]() |
9a3f217e45 | ||
![]() |
d7f1e899ba | ||
![]() |
1d62de5213 | ||
![]() |
ddab6e2b57 | ||
![]() |
dee29cb64f | ||
![]() |
128a57a9c5 | ||
![]() |
5ed5476106 | ||
![]() |
70c63afd10 | ||
![]() |
789b5daaf8 | ||
![]() |
2eb19048ab | ||
![]() |
b30c4a7a66 | ||
![]() |
b5d32f3d53 | ||
![]() |
304db26698 | ||
![]() |
444af0831b | ||
![]() |
3197f25ce8 | ||
![]() |
71d5154945 | ||
![]() |
056736ecc5 | ||
![]() |
329b54d00f | ||
![]() |
157c033f2a | ||
![]() |
d66f12ae21 | ||
![]() |
4ba5099569 | ||
![]() |
86362c5284 | ||
![]() |
9f39b639c6 | ||
![]() |
0999808364 | ||
![]() |
6c0b1691c3 | ||
![]() |
985aa5cc28 | ||
![]() |
e714e361a9 | ||
![]() |
9f5390e560 | ||
![]() |
f281376ac2 | ||
![]() |
6731882ae0 | ||
![]() |
3538fd2616 | ||
![]() |
a44ddc0b94 | ||
![]() |
879855536f | ||
![]() |
4352f95818 | ||
![]() |
0fe367820f | ||
![]() |
3fec498ce5 | ||
![]() |
d9a2ea5303 | ||
![]() |
ae34e29fed | ||
![]() |
d4bfb539b7 | ||
![]() |
b2cc1a122e | ||
![]() |
0eff90974e | ||
![]() |
b75bcb5725 | ||
![]() |
327d65c7e0 | ||
![]() |
d3d08e5b15 | ||
![]() |
a2a39ce946 | ||
![]() |
b9abff5c55 | ||
![]() |
24595a234d | ||
![]() |
199fd57151 | ||
![]() |
9dfc6e8b1e | ||
![]() |
cfc23e0ddf | ||
![]() |
7012580476 | ||
![]() |
40bd123fe3 | ||
![]() |
6c3ecaf9a1 | ||
![]() |
40ce4a74e1 | ||
![]() |
8fcfd70bd6 | ||
![]() |
6f0803e698 | ||
![]() |
5d28744758 | ||
![]() |
a17220d373 | ||
![]() |
54dea818f7 | ||
![]() |
a446f45e43 | ||
![]() |
6139c781d0 | ||
![]() |
0602fad397 | ||
![]() |
44bf03c557 | ||
![]() |
4bcb5f8e4c | ||
![]() |
4fe696f18b | ||
![]() |
023c2c58f1 | ||
![]() |
1a002c9d18 | ||
![]() |
3321b097e6 | ||
![]() |
dc2cadc6d8 | ||
![]() |
20e9157d01 | ||
![]() |
02e7066749 | ||
![]() |
18c34ce29d | ||
![]() |
b7014a6b21 | ||
![]() |
fdf14b2a1f | ||
![]() |
e79a0015f9 | ||
![]() |
0c4103ce34 | ||
![]() |
ff3dd800e4 | ||
![]() |
211a3bc6bc | ||
![]() |
e49c9e1c98 | ||
![]() |
e3002fce0b | ||
![]() |
2a45854818 | ||
![]() |
cb059d53eb | ||
![]() |
44bd7fda79 | ||
![]() |
5f54964d69 | ||
![]() |
3dc3b6f0d2 | ||
![]() |
468b146a64 | ||
![]() |
d81f946446 | ||
![]() |
097aae895f | ||
![]() |
a55662ea1b | ||
![]() |
8d35bb6a9b | ||
![]() |
7826d487cc | ||
![]() |
ddbc3839a5 |
42
CHANGELOG
42
CHANGELOG
|
@ -1,3 +1,16 @@
|
|||
--------------------------------------------------------------------------------
|
||||
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
|
||||
--------------------------------------------------------------------------------
|
||||
|
@ -308,6 +321,35 @@
|
|||
- 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
|
||||
--------------------------------------------------------------------------------
|
||||
|
|
|
@ -232,7 +232,8 @@ class SeedDMS_Controller_Login extends SeedDMS_Controller_Common {
|
|||
}
|
||||
}
|
||||
|
||||
$user = $authenticator->authenticate($login, $pwd);
|
||||
if(!is_object($user))
|
||||
$user = $authenticator->authenticate($login, $pwd);
|
||||
|
||||
if(0) {
|
||||
/* Authenticate against LDAP server {{{ */
|
||||
|
|
|
@ -49,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`
|
||||
|
|
|
@ -81,6 +81,7 @@ class SeedDMS_AccessOperation {
|
|||
'CategoryChooser',
|
||||
'ChangePassword',
|
||||
'CheckInDocument',
|
||||
'CheckOutDocument',
|
||||
'Clipboard',
|
||||
'Dashboard',
|
||||
'DocumentAccess',
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -93,11 +93,25 @@ class SeedDMS_Download_Mgr {
|
|||
*/
|
||||
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->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'), 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->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();
|
||||
|
@ -105,8 +119,14 @@ class SeedDMS_Download_Mgr {
|
|||
$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;
|
||||
} /* }}} */
|
||||
|
@ -137,8 +157,9 @@ class SeedDMS_Download_Mgr {
|
|||
|
||||
$i = 1;
|
||||
$col = 1;
|
||||
foreach($this->header as $h)
|
||||
$sheet->setCellValue([$col++, $i], $h);
|
||||
if(!$this->skipdefaultcols)
|
||||
foreach($this->header as $h)
|
||||
$sheet->setCellValue([$col++, $i], $h);
|
||||
foreach($this->extraheader as $h)
|
||||
$sheet->setCellValue([$col++, $i], $h);
|
||||
$i++;
|
||||
|
@ -151,13 +172,14 @@ class SeedDMS_Download_Mgr {
|
|||
$approvalStatus = $item->getApprovalStatus();
|
||||
|
||||
$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());
|
||||
$l = $i;
|
||||
$k = $i;
|
||||
if($reviewStatus) {
|
||||
foreach ($reviewStatus as $r) {
|
||||
switch ($r["type"]) {
|
||||
|
@ -181,7 +203,7 @@ class SeedDMS_Download_Mgr {
|
|||
$tcol = $col;
|
||||
$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->getStyleByColumnAndRow($tcol++, $l)->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_DATETIME);
|
||||
$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++;
|
||||
|
@ -212,7 +234,7 @@ class SeedDMS_Download_Mgr {
|
|||
$tcol = $col;
|
||||
$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->getStyleByColumnAndRow($tcol++, $k)->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_DATETIME);
|
||||
$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++;
|
||||
|
@ -220,6 +242,7 @@ class SeedDMS_Download_Mgr {
|
|||
$k--;
|
||||
}
|
||||
$col += 4;
|
||||
}
|
||||
if(isset($this->extracols[$item->getID()]) && $this->extracols[$item->getID()]) {
|
||||
foreach($this->extracols[$item->getID()] as $column)
|
||||
$sheet->setCellValue([$col++, $i], is_array($column) ? implode("\n", $column) : $column );
|
||||
|
@ -239,8 +262,9 @@ class SeedDMS_Download_Mgr {
|
|||
|
||||
$i = 1;
|
||||
$col = 1;
|
||||
foreach($this->folder_header as $h)
|
||||
$sheet->setCellValue([$col++, $i], $h);
|
||||
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++;
|
||||
|
@ -251,8 +275,10 @@ class SeedDMS_Download_Mgr {
|
|||
$dms = $folder->_dms;
|
||||
|
||||
$col = 1;
|
||||
$sheet->setCellValue([$col++, $i], $folder->getID());
|
||||
$sheet->setCellValue([$col++, $i], $folder->getName());
|
||||
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 );
|
||||
|
|
|
@ -205,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 {
|
||||
|
|
|
@ -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
|
||||
|
@ -706,6 +708,7 @@ class Settings { /* {{{ */
|
|||
$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');
|
||||
|
@ -1011,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');
|
||||
|
@ -1124,6 +1129,7 @@ class Settings { /* {{{ */
|
|||
$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');
|
||||
|
@ -1350,9 +1356,9 @@ class Settings { /* {{{ */
|
|||
*/
|
||||
foreach($extension as $fieldname=>$confvalue) {
|
||||
if($fieldname != '___disable__' && $confvalue) {
|
||||
$parameter = $extnode->addChild('parameter');
|
||||
$parameter[0] = isset($extension[$fieldname]) ? (is_array($extension[$fieldname]) ? implode(',', $extension[$fieldname]) : $extension[$fieldname]) : '';
|
||||
$this->setXMLAttributValue($parameter, 'name', $fieldname);
|
||||
$parameter = $extnode->addChild('parameter');
|
||||
$parameter[0] = isset($extension[$fieldname]) ? (is_array($extension[$fieldname]) ? implode(',', $extension[$fieldname]) : $extension[$fieldname]) : '';
|
||||
$this->setXMLAttributValue($parameter, 'name', $fieldname);
|
||||
}
|
||||
}
|
||||
/* Old code saves those parameters listed in the configuration
|
||||
|
|
|
@ -46,7 +46,7 @@ class UI extends UI_Default {
|
|||
* @return object an object of a class implementing the view
|
||||
*/
|
||||
static public function factory($theme, $class='', $params=array()) { /* {{{ */
|
||||
global $settings, $dms, $user, $session, $extMgr, $request, $logger, $notifier;
|
||||
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);
|
||||
|
|
|
@ -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),
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -1100,7 +1100,9 @@ function getMandatoryReviewers($folder, $document, $user) { /* {{{ */
|
|||
foreach($groups as $group) {
|
||||
$managers = $group->getManagers();
|
||||
foreach($managers as $manager) {
|
||||
$revi[] = $manager->getId();
|
||||
/* Do not add myself, if I'm the manager of the group */
|
||||
if($manager->getId() != $user->getId())
|
||||
$revi[] = $manager->getId();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1195,7 +1197,9 @@ function getMandatoryApprovers($folder, $document, $user) { /* {{{ */
|
|||
foreach($groups as $group) {
|
||||
$managers = $group->getManagers();
|
||||
foreach($managers as $manager) {
|
||||
$appi[] = $manager->getId();
|
||||
/* Do not add myself, if I'm the manager of the group */
|
||||
if($manager->getId() != $user->getId())
|
||||
$appi[] = $manager->getId();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1416,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.31";
|
||||
const _number = "6.0.33";
|
||||
const _string = "SeedDMS";
|
||||
|
||||
function __construct() {
|
||||
|
|
50
index.php
50
index.php
|
@ -44,32 +44,9 @@ if(true) {
|
|||
|
||||
$containerBuilder = new \DI\ContainerBuilder();
|
||||
$c = $containerBuilder->build();
|
||||
/*
|
||||
$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");
|
||||
};
|
||||
};
|
||||
*/
|
||||
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.
|
||||
|
@ -91,12 +68,8 @@ if(true) {
|
|||
}
|
||||
}
|
||||
|
||||
$app->get('/', function($request, $response) {
|
||||
return $response
|
||||
->withHeader('Location', '/out/out.ViewFolder.php')
|
||||
->withStatus(302);
|
||||
$app->addErrorMiddleware(false, true, true);
|
||||
|
||||
});
|
||||
if(isset($GLOBALS['SEEDDMS_HOOKS']['initDMS'])) {
|
||||
foreach($GLOBALS['SEEDDMS_HOOKS']['initDMS'] as $hookObj) {
|
||||
if (method_exists($hookObj, 'addRoute')) {
|
||||
|
@ -107,20 +80,13 @@ if(true) {
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
$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,86 +406,97 @@ 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) {
|
||||
case 'mysql':
|
||||
case 'mysqli':
|
||||
case 'mysqlnd':
|
||||
$tmp = explode(":", $settings->_dbHostname);
|
||||
$dsn = $settings->_dbDriver.":dbname=".$settings->_dbDatabase.";host=".$tmp[0];
|
||||
if(isset($tmp[1]))
|
||||
$dsn .= ";port=".$tmp[1];
|
||||
break;
|
||||
case 'sqlite':
|
||||
$dsn = $settings->_dbDriver.":".$settings->_dbDatabase;
|
||||
if(file_exists('update-'.$_GET['version'].'/update-sqlite3.sql'))
|
||||
$sqlfile = "update-sqlite3.sql";
|
||||
break;
|
||||
case 'pgsql':
|
||||
$tmp = explode(":", $settings->_dbHostname);
|
||||
$dsn = $settings->_dbDriver.":dbname=".$settings->_dbDatabase.";host=".$tmp[0];
|
||||
if(isset($tmp[1]))
|
||||
$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) {
|
||||
die;
|
||||
}
|
||||
$sqlfile = "update.sql";
|
||||
switch($settings->_dbDriver) {
|
||||
case 'mysql':
|
||||
case 'mysqli':
|
||||
case 'mysqlnd':
|
||||
$tmp = explode(":", $settings->_dbHostname);
|
||||
$dsn = $settings->_dbDriver.":dbname=".$settings->_dbDatabase.";host=".$tmp[0];
|
||||
if(isset($tmp[1]))
|
||||
$dsn .= ";port=".$tmp[1];
|
||||
break;
|
||||
case 'sqlite':
|
||||
$dsn = $settings->_dbDriver.":".$settings->_dbDatabase;
|
||||
if(file_exists('update-'.$_GET['version'].'/update-sqlite3.sql'))
|
||||
$sqlfile = "update-sqlite3.sql";
|
||||
break;
|
||||
case 'pgsql':
|
||||
$tmp = explode(":", $settings->_dbHostname);
|
||||
$dsn = $settings->_dbDriver.":dbname=".$settings->_dbDatabase.";host=".$tmp[0];
|
||||
if(isset($tmp[1]))
|
||||
$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) {
|
||||
die;
|
||||
}
|
||||
|
||||
$errorMsg = '';
|
||||
$res = $db->query('select * from tblVersion');
|
||||
$recs = $res->fetchAll(PDO::FETCH_ASSOC);
|
||||
if(!empty($recs)) {
|
||||
$rec = $recs[0];
|
||||
if($_GET['version'] > $rec['major'].'.'.$rec['minor'].'.'.$rec['subminor']) {
|
||||
$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']) {
|
||||
|
||||
if(file_exists('update-'.$_GET['version'].'/'.$sqlfile)) {
|
||||
$queries = file_get_contents('update-'.$_GET['version'].'/'.$sqlfile);
|
||||
$queries = explode(";", $queries);
|
||||
if(file_exists('update-'.$_GET['version'].'/'.$sqlfile)) {
|
||||
$queries = file_get_contents('update-'.$_GET['version'].'/'.$sqlfile);
|
||||
$queries = explode(";", $queries);
|
||||
|
||||
// execute queries
|
||||
if($queries) {
|
||||
echo "<h3>Updating database schema</h3>";
|
||||
foreach($queries as $query) {
|
||||
$query = trim($query);
|
||||
if (!empty($query)) {
|
||||
echo $query."<br />";
|
||||
if(false === $db->exec($query)) {
|
||||
$e = $db->ErrorInfo();
|
||||
$errorMsg .= $e[2] . "<br/>";
|
||||
// execute queries
|
||||
if($queries) {
|
||||
echo "<h3>Updating database schema</h3>";
|
||||
foreach($queries as $query) {
|
||||
$query = trim($query);
|
||||
if (!empty($query)) {
|
||||
echo $query."<br />";
|
||||
if(false === $db->exec($query)) {
|
||||
$e = $db->ErrorInfo();
|
||||
$errorMsg .= $e[2] . "<br/>";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
echo "<p>SQL file for update missing!</p>";
|
||||
}
|
||||
} else {
|
||||
echo "<p>Database schema already up to date.</p>";
|
||||
}
|
||||
|
||||
|
||||
if(!$errorMsg) {
|
||||
if(file_exists('update-'.$_GET['version'].'/update.php')) {
|
||||
echo "<h3>Running update script</h3>";
|
||||
include('update-'.$_GET['version'].'/update.php');
|
||||
}
|
||||
} else {
|
||||
echo "<h3>Error Messages</h3>";
|
||||
echo $errorMsg;
|
||||
}
|
||||
echo "<p><a href=\"install.php\">Go back to installation and recheck.</a></p>";
|
||||
} else {
|
||||
echo "<p>SQL file for update missing!</p>";
|
||||
echo "<p>Could not determine database schema version.</p>";
|
||||
}
|
||||
} else {
|
||||
echo "<p>Database schema already up to date.</p>";
|
||||
}
|
||||
$db = null;
|
||||
|
||||
|
||||
if(!$errorMsg) {
|
||||
if(file_exists('update-'.$_GET['version'].'/update.php')) {
|
||||
echo "<h3>Running update script</h3>";
|
||||
include('update-'.$_GET['version'].'/update.php');
|
||||
}
|
||||
} else {
|
||||
echo "<h3>Error Messages</h3>";
|
||||
echo $errorMsg;
|
||||
}
|
||||
echo "<p><a href=\"install.php\">Go back to installation and recheck.</a></p>";
|
||||
} else {
|
||||
echo "<p>Could not determine database schema version.</p>";
|
||||
}
|
||||
$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();
|
||||
|
|
|
@ -686,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' => 'تحميل الإضافات',
|
||||
|
@ -1140,6 +1142,7 @@ URL: [url]',
|
|||
'no_groups' => 'لايوجد مجموعات',
|
||||
'no_group_members' => 'هذه المجموعة لايوجد بها اعضاء',
|
||||
'no_linked_files' => 'لايوجد ملفات مرتبطة',
|
||||
'no_mimetype' => '',
|
||||
'no_previous_versions' => 'لايوجد اصدارات سابقة',
|
||||
'no_receipt_needed' => 'لا يحتاج لأي مستلم',
|
||||
'no_review_needed' => 'لايوجد مراجعات في الانتظار',
|
||||
|
@ -1287,6 +1290,7 @@ URL: [url]',
|
|||
'removeFolderFromDropFolder' => 'إزالة مجلد من إسقاط لائحة',
|
||||
'removeFolderFromDropFolder_desc' => '',
|
||||
'remove_approval_log' => '',
|
||||
'remove_from_clipboard' => '',
|
||||
'remove_marked_files' => 'ازالة الملفات المختارة',
|
||||
'remove_review_log' => '',
|
||||
'remove_task' => '',
|
||||
|
@ -1683,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' => '',
|
||||
|
@ -2001,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' => '',
|
||||
|
@ -2130,6 +2137,7 @@ URL: [url]',
|
|||
'status_revision_sleeping' => 'مراجعة الوضع في حالة النوم',
|
||||
'status_revisor_removed' => 'تم ازالة حالة المراجع',
|
||||
'status_unknown' => 'مجهول',
|
||||
'storage' => '',
|
||||
'storage_size' => 'حجم التخزين',
|
||||
'subfolder_duplicate_name' => 'اسم مجلد فرعي مكرر',
|
||||
'submit_2_fact_auth' => 'قدم ثنائي عامل التوثيق',
|
||||
|
|
|
@ -620,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' => '',
|
||||
|
@ -1018,6 +1020,7 @@ $text = array(
|
|||
'no_groups' => 'Няма групи',
|
||||
'no_group_members' => 'Групата няма членове',
|
||||
'no_linked_files' => 'Няма свързани файлове',
|
||||
'no_mimetype' => '',
|
||||
'no_previous_versions' => 'Няма други версии',
|
||||
'no_receipt_needed' => '',
|
||||
'no_review_needed' => 'Рецензия не е нужна',
|
||||
|
@ -1156,6 +1159,7 @@ $text = array(
|
|||
'removeFolderFromDropFolder' => '',
|
||||
'removeFolderFromDropFolder_desc' => '',
|
||||
'remove_approval_log' => '',
|
||||
'remove_from_clipboard' => '',
|
||||
'remove_marked_files' => '',
|
||||
'remove_review_log' => '',
|
||||
'remove_task' => '',
|
||||
|
@ -1525,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' => '',
|
||||
|
@ -1843,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' => '',
|
||||
|
@ -1972,6 +1979,7 @@ $text = array(
|
|||
'status_revision_sleeping' => '',
|
||||
'status_revisor_removed' => '',
|
||||
'status_unknown' => 'Неизвестен',
|
||||
'storage' => '',
|
||||
'storage_size' => 'Размер на хранилището',
|
||||
'subfolder_duplicate_name' => '',
|
||||
'submit_2_fact_auth' => '',
|
||||
|
|
|
@ -625,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' => '',
|
||||
|
@ -1023,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.',
|
||||
|
@ -1161,6 +1164,7 @@ URL: [url]',
|
|||
'removeFolderFromDropFolder' => 'Esborrar carpeta després de la importació',
|
||||
'removeFolderFromDropFolder_desc' => '',
|
||||
'remove_approval_log' => '',
|
||||
'remove_from_clipboard' => '',
|
||||
'remove_marked_files' => '',
|
||||
'remove_review_log' => '',
|
||||
'remove_task' => '',
|
||||
|
@ -1530,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' => '',
|
||||
|
@ -1848,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' => '',
|
||||
|
@ -1977,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' => '',
|
||||
|
|
|
@ -710,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í',
|
||||
|
@ -1171,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.',
|
||||
|
@ -1333,6 +1336,7 @@ URL: [url]',
|
|||
'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' => '',
|
||||
|
@ -1755,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' => '',
|
||||
|
@ -2073,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' => '',
|
||||
|
@ -2202,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,7 +19,7 @@
|
|||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// Translators: Admin (3433), dgrutsch (22)
|
||||
// Translators: Admin (3444), dgrutsch (22)
|
||||
|
||||
$text = array(
|
||||
'2_factor_auth' => '2-Faktor Authentifizierung',
|
||||
|
@ -409,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',
|
||||
|
@ -850,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 ...',
|
||||
|
@ -865,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',
|
||||
|
@ -1046,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',
|
||||
|
@ -1404,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.',
|
||||
|
@ -1622,6 +1625,7 @@ URL: [url]</p>',
|
|||
'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',
|
||||
|
@ -2146,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ü',
|
||||
|
@ -2464,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',
|
||||
|
@ -2593,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',
|
||||
|
|
|
@ -620,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' => '',
|
||||
|
@ -1029,6 +1031,7 @@ URL: [url]',
|
|||
'no_groups' => '',
|
||||
'no_group_members' => '',
|
||||
'no_linked_files' => 'δεν υπάρχουν συνδεδεμένα αρχεία',
|
||||
'no_mimetype' => '',
|
||||
'no_previous_versions' => '',
|
||||
'no_receipt_needed' => '',
|
||||
'no_review_needed' => '',
|
||||
|
@ -1167,6 +1170,7 @@ URL: [url]',
|
|||
'removeFolderFromDropFolder' => '',
|
||||
'removeFolderFromDropFolder_desc' => '',
|
||||
'remove_approval_log' => '',
|
||||
'remove_from_clipboard' => '',
|
||||
'remove_marked_files' => '',
|
||||
'remove_review_log' => '',
|
||||
'remove_task' => '',
|
||||
|
@ -1536,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' => '',
|
||||
|
@ -1854,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' => '',
|
||||
|
@ -1983,6 +1990,7 @@ URL: [url]',
|
|||
'status_revision_sleeping' => '',
|
||||
'status_revisor_removed' => '',
|
||||
'status_unknown' => '',
|
||||
'storage' => '',
|
||||
'storage_size' => '',
|
||||
'subfolder_duplicate_name' => '',
|
||||
'submit_2_fact_auth' => '',
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// Translators: Admin (2531), archonwang (3), dgrutsch (9), netixw (14)
|
||||
// Translators: Admin (2547), archonwang (3), dgrutsch (9), netixw (14)
|
||||
|
||||
$text = array(
|
||||
'2_factor_auth' => '2-factor authentication',
|
||||
|
@ -409,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',
|
||||
|
@ -467,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',
|
||||
|
@ -850,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 ...',
|
||||
|
@ -865,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',
|
||||
|
@ -875,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',
|
||||
|
@ -1046,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',
|
||||
|
@ -1198,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',
|
||||
|
@ -1406,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.',
|
||||
|
@ -1624,6 +1627,7 @@ URL: [url]</p>',
|
|||
'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',
|
||||
|
@ -2148,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',
|
||||
|
@ -2466,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',
|
||||
|
@ -2595,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',
|
||||
|
|
|
@ -699,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',
|
||||
|
@ -1155,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.',
|
||||
|
@ -1310,6 +1313,7 @@ nURL: [url]',
|
|||
'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' => '',
|
||||
|
@ -1706,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' => '',
|
||||
|
@ -2024,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',
|
||||
|
@ -2153,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,7 +19,7 @@
|
|||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// Translators: Admin (1173), jeromerobert (50), lonnnew (9), Oudiceval (1171)
|
||||
// Translators: Admin (1175), jeromerobert (50), lonnnew (9), Oudiceval (1171)
|
||||
|
||||
$text = array(
|
||||
'2_factor_auth' => 'Authentification forte',
|
||||
|
@ -820,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…',
|
||||
|
@ -1361,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',
|
||||
|
@ -1577,6 +1580,7 @@ URL : [url]</p>',
|
|||
'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' => '',
|
||||
|
@ -2093,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' => '',
|
||||
|
@ -2411,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',
|
||||
|
@ -2540,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',
|
||||
|
@ -2684,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.',
|
||||
|
@ -2703,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
|
@ -693,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 ...',
|
||||
|
@ -1146,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.',
|
||||
|
@ -1301,6 +1304,7 @@ URL: [url]',
|
|||
'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' => '',
|
||||
|
@ -1696,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' => '',
|
||||
|
@ -2014,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' => '',
|
||||
|
@ -2143,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,7 +19,7 @@
|
|||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// Translators: Admin (485), atoz-chevara (835)
|
||||
// Translators: Admin (489), atoz-chevara (835)
|
||||
|
||||
$text = array(
|
||||
'2_factor_auth' => '',
|
||||
|
@ -382,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',
|
||||
|
@ -689,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',
|
||||
|
@ -749,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...',
|
||||
|
@ -965,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' => '',
|
||||
|
@ -1239,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.',
|
||||
|
@ -1410,6 +1413,7 @@ URL: [url]',
|
|||
'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' => '',
|
||||
|
@ -1786,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' => '',
|
||||
|
@ -2104,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',
|
||||
|
@ -2233,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' => '',
|
||||
|
|
|
@ -703,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...',
|
||||
|
@ -1153,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.',
|
||||
|
@ -1319,6 +1322,7 @@ URL: [url]',
|
|||
'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' => '',
|
||||
|
@ -1742,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' => '',
|
||||
|
@ -2060,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' => '',
|
||||
|
@ -2189,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',
|
||||
|
|
|
@ -699,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' => '',
|
||||
|
@ -1153,6 +1155,7 @@ URL [url]',
|
|||
'no_groups' => '그룹이 없음',
|
||||
'no_group_members' => '그룹 회원 이 없습니다.',
|
||||
'no_linked_files' => '연결되지 않은 파일',
|
||||
'no_mimetype' => '',
|
||||
'no_previous_versions' => '다른 버전을 찾을 수 없습니다',
|
||||
'no_receipt_needed' => '접수가 필요하지 않습니다',
|
||||
'no_review_needed' => '검토중인 자료가 없습니다.',
|
||||
|
@ -1300,6 +1303,7 @@ URL: [url]',
|
|||
'removeFolderFromDropFolder' => '',
|
||||
'removeFolderFromDropFolder_desc' => '',
|
||||
'remove_approval_log' => '',
|
||||
'remove_from_clipboard' => '',
|
||||
'remove_marked_files' => '마크 파일을 제거',
|
||||
'remove_review_log' => '',
|
||||
'remove_task' => '',
|
||||
|
@ -1713,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' => '',
|
||||
|
@ -2031,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' => '',
|
||||
|
@ -2160,6 +2167,7 @@ URL : [url]',
|
|||
'status_revision_sleeping' => '보류',
|
||||
'status_revisor_removed' => '감사자 목록에서 제거',
|
||||
'status_unknown' => '알 수없는',
|
||||
'storage' => '',
|
||||
'storage_size' => '저장 크기',
|
||||
'subfolder_duplicate_name' => '',
|
||||
'submit_2_fact_auth' => '',
|
||||
|
|
|
@ -696,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' => '',
|
||||
|
@ -1150,6 +1152,7 @@ URL: [url]',
|
|||
'no_groups' => 'ບໍ່ມີກຸ່ມ',
|
||||
'no_group_members' => 'ກຸ່ມນີ້ຍັງບໍ່ມີສະມາຊິກ',
|
||||
'no_linked_files' => 'ບໍ່ມີໄຟລທີ່ເຊື່ອມໂຍງ',
|
||||
'no_mimetype' => '',
|
||||
'no_previous_versions' => 'ບໍ່ພົບເວີຊັນອື່ນ',
|
||||
'no_receipt_needed' => 'ປະຈຸບັນນີ້ບໍ່ມີເອກະສານທີ່ຈະຕ້ອງຢືນຢັນກ່ຽວກັບການຮັບສິນຄ້າ',
|
||||
'no_review_needed' => 'ບໍ່ມີເອກະສານທີຍັງຄ້າງທີລໍຖ້າກວດຄືນ',
|
||||
|
@ -1316,6 +1319,7 @@ URL: [url]',
|
|||
'removeFolderFromDropFolder' => 'ຍ້າຍໂຟລເດີຫຼັງຈາກນຳຂໍ້ມູນເຂົ້າ',
|
||||
'removeFolderFromDropFolder_desc' => '',
|
||||
'remove_approval_log' => '',
|
||||
'remove_from_clipboard' => '',
|
||||
'remove_marked_files' => 'ລົບໄຟລທີມີເຄື່ອງໝາຍໄວ້',
|
||||
'remove_review_log' => '',
|
||||
'remove_task' => '',
|
||||
|
@ -1739,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' => '',
|
||||
|
@ -2057,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' => '',
|
||||
|
@ -2186,6 +2193,7 @@ URL: [url]',
|
|||
'status_revision_sleeping' => 'ຢູ່ລະຫວ່າງດຳເນີນການ',
|
||||
'status_revisor_removed' => 'ແກ້ໄຂຄຳອະທິບາຍອອກຈາກລາຍການ',
|
||||
'status_unknown' => 'ບໍ່ຮູ້',
|
||||
'storage' => '',
|
||||
'storage_size' => 'ຂະໜາດພື້ນທີ່ເກັບຂໍ້ມູນ',
|
||||
'subfolder_duplicate_name' => '',
|
||||
'submit_2_fact_auth' => 'ເກັບຄວາມລັບໄວ້',
|
||||
|
|
|
@ -710,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 ...',
|
||||
|
@ -1171,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.',
|
||||
|
@ -1331,6 +1334,7 @@ URL: [url]',
|
|||
'removeFolderFromDropFolder' => 'Fjern mappe etter import',
|
||||
'removeFolderFromDropFolder_desc' => '',
|
||||
'remove_approval_log' => '',
|
||||
'remove_from_clipboard' => '',
|
||||
'remove_marked_files' => 'Fjern markerte filer',
|
||||
'remove_review_log' => '',
|
||||
'remove_task' => '',
|
||||
|
@ -1752,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' => '',
|
||||
|
@ -2070,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' => '',
|
||||
|
@ -2199,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',
|
||||
|
|
|
@ -703,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 ...',
|
||||
|
@ -1163,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.',
|
||||
|
@ -1329,6 +1332,7 @@ URL: [url]',
|
|||
'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' => '',
|
||||
|
@ -1751,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' => '',
|
||||
|
@ -2069,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',
|
||||
|
@ -2198,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',
|
||||
|
|
|
@ -686,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...',
|
||||
|
@ -1140,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',
|
||||
|
@ -1295,6 +1298,7 @@ URL: [url]',
|
|||
'removeFolderFromDropFolder' => 'Usuń folder po imporcie',
|
||||
'removeFolderFromDropFolder_desc' => '',
|
||||
'remove_approval_log' => '',
|
||||
'remove_from_clipboard' => '',
|
||||
'remove_marked_files' => 'Usuń zaznaczone pliki',
|
||||
'remove_review_log' => '',
|
||||
'remove_task' => '',
|
||||
|
@ -1682,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' => '',
|
||||
|
@ -2000,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',
|
||||
|
@ -2129,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',
|
||||
|
|
|
@ -710,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',
|
||||
|
@ -1170,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.',
|
||||
|
@ -1336,6 +1339,7 @@ URL: [url]',
|
|||
'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' => '',
|
||||
|
@ -1758,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' => '',
|
||||
|
@ -2076,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' => '',
|
||||
|
@ -2205,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',
|
||||
|
|
|
@ -698,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',
|
||||
|
@ -1152,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.',
|
||||
|
@ -1307,6 +1310,7 @@ URL: [url]',
|
|||
'removeFolderFromDropFolder' => '',
|
||||
'removeFolderFromDropFolder_desc' => '',
|
||||
'remove_approval_log' => '',
|
||||
'remove_from_clipboard' => '',
|
||||
'remove_marked_files' => 'Eliminați fișierele marcate',
|
||||
'remove_review_log' => '',
|
||||
'remove_task' => '',
|
||||
|
@ -1720,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' => '',
|
||||
|
@ -2038,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' => '',
|
||||
|
@ -2167,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' => '',
|
||||
|
|
|
@ -698,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' => 'Загрузка расширений',
|
||||
|
@ -1151,6 +1153,7 @@ URL: [url]',
|
|||
'no_groups' => 'Нет групп',
|
||||
'no_group_members' => 'Группа не имеет членов',
|
||||
'no_linked_files' => 'Нет связанных документов',
|
||||
'no_mimetype' => '',
|
||||
'no_previous_versions' => 'Нет предыдущих версий',
|
||||
'no_receipt_needed' => 'Нет документов, нуждающихся в подтверждении получения',
|
||||
'no_review_needed' => 'Рецензия не требуется',
|
||||
|
@ -1309,6 +1312,7 @@ URL: [url]',
|
|||
'removeFolderFromDropFolder' => '',
|
||||
'removeFolderFromDropFolder_desc' => '',
|
||||
'remove_approval_log' => '',
|
||||
'remove_from_clipboard' => '',
|
||||
'remove_marked_files' => 'Удалить выбранные файлы',
|
||||
'remove_review_log' => '',
|
||||
'remove_task' => '',
|
||||
|
@ -1727,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' => '',
|
||||
|
@ -2045,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' => '',
|
||||
|
@ -2174,6 +2181,7 @@ URL: [url]',
|
|||
'status_revision_sleeping' => 'В ожидании рецензии',
|
||||
'status_revisor_removed' => 'Ревизор удален из списка',
|
||||
'status_unknown' => 'Неизвестный',
|
||||
'storage' => '',
|
||||
'storage_size' => 'Размер хранилища',
|
||||
'subfolder_duplicate_name' => '',
|
||||
'submit_2_fact_auth' => '',
|
||||
|
|
|
@ -710,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 ...',
|
||||
|
@ -1171,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.',
|
||||
|
@ -1337,6 +1340,7 @@ URL: [url]',
|
|||
'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' => '',
|
||||
|
@ -1760,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' => '',
|
||||
|
@ -2078,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' => '',
|
||||
|
@ -2207,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',
|
||||
|
|
|
@ -704,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' => '',
|
||||
|
@ -1158,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.',
|
||||
|
@ -1310,6 +1313,7 @@ URL: [url]',
|
|||
'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' => '',
|
||||
|
@ -1733,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' => '',
|
||||
|
@ -2051,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' => '',
|
||||
|
@ -2180,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',
|
||||
|
|
|
@ -692,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',
|
||||
|
@ -1144,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.',
|
||||
|
@ -1301,6 +1304,7 @@ URL: [url]',
|
|||
'removeFolderFromDropFolder' => '',
|
||||
'removeFolderFromDropFolder_desc' => '',
|
||||
'remove_approval_log' => '',
|
||||
'remove_from_clipboard' => '',
|
||||
'remove_marked_files' => 'İşaretli dosyaları sil',
|
||||
'remove_review_log' => '',
|
||||
'remove_task' => '',
|
||||
|
@ -1697,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' => '',
|
||||
|
@ -2015,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' => '',
|
||||
|
@ -2144,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' => '',
|
||||
|
|
|
@ -697,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' => '',
|
||||
|
@ -1150,6 +1152,7 @@ URL: [url]',
|
|||
'no_groups' => 'Немає груп',
|
||||
'no_group_members' => 'Група не має членів',
|
||||
'no_linked_files' => 'Немає пов\'язаних документів',
|
||||
'no_mimetype' => '',
|
||||
'no_previous_versions' => 'Немає попередніх версій',
|
||||
'no_receipt_needed' => 'Немає документів, які потребують підтвердження отримання',
|
||||
'no_review_needed' => 'Рецензія не потрібна',
|
||||
|
@ -1308,6 +1311,7 @@ URL: [url]',
|
|||
'removeFolderFromDropFolder' => '',
|
||||
'removeFolderFromDropFolder_desc' => '',
|
||||
'remove_approval_log' => '',
|
||||
'remove_from_clipboard' => '',
|
||||
'remove_marked_files' => 'Видалити обрані файли',
|
||||
'remove_review_log' => '',
|
||||
'remove_task' => '',
|
||||
|
@ -1719,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' => '',
|
||||
|
@ -2037,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' => '',
|
||||
|
@ -2166,6 +2173,7 @@ URL: [url]',
|
|||
'status_revision_sleeping' => 'Ревізію призупинено',
|
||||
'status_revisor_removed' => 'Ревізора видалено зі списку',
|
||||
'status_unknown' => 'Невідомий',
|
||||
'storage' => '',
|
||||
'storage_size' => 'Розмір сховища',
|
||||
'subfolder_duplicate_name' => '',
|
||||
'submit_2_fact_auth' => '',
|
||||
|
|
|
@ -700,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' => '加载扩展',
|
||||
|
@ -1154,6 +1156,7 @@ URL: [url]',
|
|||
'no_groups' => '无组别',
|
||||
'no_group_members' => '该组没有成员',
|
||||
'no_linked_files' => '无链接文件',
|
||||
'no_mimetype' => '',
|
||||
'no_previous_versions' => '无其它版本',
|
||||
'no_receipt_needed' => '目前没有需要收据确认的文件',
|
||||
'no_review_needed' => '无待校对的文件',
|
||||
|
@ -1314,6 +1317,7 @@ URL: [url]',
|
|||
'removeFolderFromDropFolder' => '导入后删除文件夹',
|
||||
'removeFolderFromDropFolder_desc' => '',
|
||||
'remove_approval_log' => '',
|
||||
'remove_from_clipboard' => '',
|
||||
'remove_marked_files' => '删除选中的文件',
|
||||
'remove_review_log' => '',
|
||||
'remove_task' => '',
|
||||
|
@ -1707,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' => '',
|
||||
|
@ -2025,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' => '',
|
||||
|
@ -2154,6 +2161,7 @@ URL: [url]',
|
|||
'status_revision_sleeping' => '等待',
|
||||
'status_revisor_removed' => '从名单中删除校订人',
|
||||
'status_unknown' => '未知',
|
||||
'storage' => '',
|
||||
'storage_size' => '存储大小',
|
||||
'subfolder_duplicate_name' => '重复的文件夹',
|
||||
'submit_2_fact_auth' => '保存秘钥',
|
||||
|
|
|
@ -710,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' => '擴充套件讀取中',
|
||||
|
@ -1171,6 +1173,7 @@ URL: [url]',
|
|||
'no_groups' => '無組別',
|
||||
'no_group_members' => '該組沒有成員',
|
||||
'no_linked_files' => '無連結檔',
|
||||
'no_mimetype' => '',
|
||||
'no_previous_versions' => '無其它版本',
|
||||
'no_receipt_needed' => '當前沒有需要收據確認的文件。',
|
||||
'no_review_needed' => '無待校對的文件',
|
||||
|
@ -1335,6 +1338,7 @@ URL: [url]',
|
|||
'removeFolderFromDropFolder' => '導入後刪除文件夾',
|
||||
'removeFolderFromDropFolder_desc' => '',
|
||||
'remove_approval_log' => '',
|
||||
'remove_from_clipboard' => '',
|
||||
'remove_marked_files' => '刪除勾選的檔案',
|
||||
'remove_review_log' => '',
|
||||
'remove_task' => '',
|
||||
|
@ -1758,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' => '',
|
||||
|
@ -2076,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' => '',
|
||||
|
@ -2205,6 +2212,7 @@ URL: [url]',
|
|||
'status_revision_sleeping' => '待定',
|
||||
'status_revisor_removed' => '修訂者已從清單中刪除',
|
||||
'status_unknown' => '未知',
|
||||
'storage' => '',
|
||||
'storage_size' => '存儲大小',
|
||||
'subfolder_duplicate_name' => '子文件夾名稱重複',
|
||||
'submit_2_fact_auth' => '保存秘密',
|
||||
|
|
|
@ -250,10 +250,38 @@ 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:
|
||||
$attribute = date('Y-m-d', makeTsFromDate($attribute));
|
||||
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)) {
|
||||
|
@ -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();
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -55,7 +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');
|
||||
|
|
|
@ -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']));
|
||||
|
|
|
@ -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,10 +57,12 @@ if ($action == "saveSettings")
|
|||
function setBoolValue($name) {
|
||||
global $_POST, $settings;
|
||||
if(!in_array($name, $settings->_hiddenConfFields)) {
|
||||
if (isset($_POST[$name]) && $_POST[$name]=="on")
|
||||
$settings->{"_".$name} = true;
|
||||
else
|
||||
$settings->{"_".$name} = false;
|
||||
if (isset($_POST[$name])) {
|
||||
if ($_POST[$name]=="on")
|
||||
$settings->{"_".$name} = true;
|
||||
else
|
||||
$settings->{"_".$name} = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
function setIntValue($name) {
|
||||
|
@ -81,11 +72,13 @@ if ($action == "saveSettings")
|
|||
}
|
||||
function setArrayValue($name) {
|
||||
global $_POST, $settings;
|
||||
if(!in_array($name, $settings->_hiddenConfFields)) {
|
||||
if(isset($_POST[$name]) && $_POST[$name])
|
||||
$settings->{"_".$name} = $_POST[$name];
|
||||
else
|
||||
$settings->{"_".$name} = array();
|
||||
if (!in_array($name, $settings->_hiddenConfFields)) {
|
||||
if (isset($_POST[$name])) {
|
||||
if ($_POST[$name])
|
||||
$settings->{"_".$name} = $_POST[$name];
|
||||
else
|
||||
$settings->{"_".$name} = array();
|
||||
}
|
||||
}
|
||||
}
|
||||
function setDirValue($name) {
|
||||
|
@ -199,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");
|
||||
|
@ -299,7 +293,7 @@ if ($action == "saveSettings")
|
|||
// SETTINGS - ADVANCED - SERVER
|
||||
setStrValue("coreDir");
|
||||
setStrValue("luceneClassDir");
|
||||
setIntValue("contentOffsetDir");
|
||||
setStrValue("contentOffsetDir");
|
||||
setIntValue("maxDirID");
|
||||
setIntValue("updateNotifyTime");
|
||||
setIntValue("maxExecutionTime");
|
||||
|
@ -347,15 +341,21 @@ if ($action == "saveSettings")
|
|||
// -------------------------------------------------------------------------
|
||||
// save
|
||||
// -------------------------------------------------------------------------
|
||||
if (!$settings->save())
|
||||
UI::exitError(getMLText("admin_tools"),getMLText("settings_SaveError"));
|
||||
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']);
|
||||
}
|
||||
|
|
|
@ -346,10 +346,38 @@ 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:
|
||||
$attribute = date('Y-m-d', makeTsFromDate($attribute));
|
||||
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)) {
|
||||
|
@ -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();
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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,121 +180,89 @@ 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) {
|
||||
if($catid) {
|
||||
if(is_numeric($catid)) {
|
||||
if($cat = $dms->getDocumentCategory($catid)) {
|
||||
$categories[] = $cat;
|
||||
$categorynames[] = $cat->getName();
|
||||
}
|
||||
} else {
|
||||
$categorynames[] = $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)) {
|
||||
$categories[] = $cat;
|
||||
$categorynames[] = $cat->getName();
|
||||
}
|
||||
} else {
|
||||
$categorynames[] = $catid;
|
||||
}
|
||||
}
|
||||
} /* }}} */
|
||||
}
|
||||
} /* }}} */
|
||||
|
||||
if (isset($_GET["orderby"]) && is_string($_GET["orderby"])) {
|
||||
$orderby = $_GET["orderby"];
|
||||
}
|
||||
else {
|
||||
$orderby = "";
|
||||
}
|
||||
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;
|
||||
$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 = "";
|
||||
}
|
||||
|
||||
// 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;
|
||||
}
|
||||
}
|
||||
} /* }}} */
|
||||
|
||||
// status
|
||||
$status = isset($get['status']) ? $get['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 {{{
|
||||
if (isset($_GET["query"]) && is_string($_GET["query"])) {
|
||||
$query = $_GET["query"];
|
||||
// if(isset($_GET['action']) && ($_GET['action'] == 'typeahead'))
|
||||
// $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'];
|
||||
} else {
|
||||
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
|
||||
if(isset($_GET['status']))
|
||||
$status = $_GET['status'];
|
||||
else
|
||||
$status = array();
|
||||
// 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) {
|
||||
|
@ -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);
|
||||
|
|
|
@ -161,7 +161,11 @@ $(document).ready( function() {
|
|||
foreach($res['docs'] as $document) {
|
||||
$extracontent = array();
|
||||
$extracontent['below_title'] = $this->getListRowPath($document);
|
||||
echo $this->documentListRow($document, $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);
|
||||
}
|
||||
|
||||
echo "</tbody>\n</table>\n";
|
||||
|
@ -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 {
|
||||
|
@ -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,7 +817,10 @@ 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) {
|
||||
$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($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']) {
|
||||
$menuitems['index_folder'] = array('link'=>$this->params['settings']->_httpRoot."out/out.Indexer.php?folderid=". $folderID."&showtree=".showtree(), 'label'=>getMLText('index_folder'));
|
||||
|
@ -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,7 +905,10 @@ 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) {
|
||||
$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($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')) {
|
||||
$menuitems['transfer_document'] = array('link'=>$this->params['settings']->_httpRoot."out/out.TransferDocument". $docid, 'label'=>getMLText('transfer_document'));
|
||||
|
@ -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>
|
||||
|
@ -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 = [];
|
||||
foreach($target as $t)
|
||||
$objvalue[] = $t->getId();
|
||||
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 = [];
|
||||
foreach($target as $t)
|
||||
$objvalue[] = $t->getId();
|
||||
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,7 +3346,10 @@ $('body').on('click', '[id^=\"table-row-folder\"] td:nth-child(2)', function(ev)
|
|||
$actions['document_access'] = $this->printAccessButton($document, true);
|
||||
}
|
||||
if($enableClipboard) {
|
||||
$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($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)
|
||||
$actions['view_document'] = '<a href="'.$this->params['settings']->_httpRoot.'out/out.ViewDocument.php?documentid='.$docID.'" title="'.getMLText("view_document").'"><i class="fa fa-eye"></i></a>';
|
||||
|
@ -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;
|
||||
|
@ -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,7 +3588,10 @@ $('body').on('click', '[id^=\"table-row-folder\"] td:nth-child(2)', function(ev)
|
|||
$actions['folder_access'] = $this->printAccessButton($subFolder, true);
|
||||
}
|
||||
if($enableClipboard) {
|
||||
$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($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)
|
||||
$actions['view_folder'] = '<a href="'.$this->params['settings']->_httpRoot.'out/out.ViewFolder.php?folderid='.$subFolder->getID().'" title="'.getMLText("view_folder").'"><i class="fa fa-eye"></i></a>';
|
||||
|
|
|
@ -244,11 +244,49 @@ $(document).ready( function() {
|
|||
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".
|
||||
|
@ -272,7 +310,7 @@ $(document).ready( function() {
|
|||
$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);
|
||||
|
@ -285,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) {
|
||||
|
@ -304,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'];
|
||||
|
@ -317,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>";
|
||||
|
@ -334,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);
|
||||
|
|
|
@ -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";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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></th>";
|
||||
echo "<th>".getMLText("name");
|
||||
echo "</th>\n";
|
||||
echo "<th>".getMLText("name")."</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";
|
||||
echo "<tr><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";
|
||||
$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";
|
||||
$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";
|
||||
}
|
||||
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"));
|
||||
|
|
|
@ -57,7 +57,7 @@ $(document).ready( function() {
|
|||
$('#export').on('click', function(ev) {
|
||||
ev.preventDefault();
|
||||
ev.stopPropagation();
|
||||
var url = $(this).attr('href')+'&includecontent='+($('#includecontent').prop('checked') ? '1' : '0');
|
||||
var url = $(this).attr('href')+'&includecontent='+($('#includecontent').prop('checked') ? '1' : '0')+'&skipdefaultcols='+($('#skipdefaultcols').prop('checked') ? '1' : '0');
|
||||
var values = {};
|
||||
$('input[name^=\"marks\"]').each(function() {
|
||||
if(this.checked)
|
||||
|
@ -225,10 +225,12 @@ $(document).ready(function() {
|
|||
$user = $this->params['user'];
|
||||
$entries = $this->params['searchhits'];
|
||||
$includecontent = $this->params['includecontent'];
|
||||
$skipdefaultcols = $this->params['skipdefaultcols'];
|
||||
$marks = $this->params['marks'];
|
||||
|
||||
include("../inc/inc.ClassDownloadMgr.php");
|
||||
$downmgr = new SeedDMS_Download_Mgr();
|
||||
$downmgr->skipDefaultCols($skipdefaultcols);
|
||||
if($extraheader = $this->callHook('extraDownloadHeader'))
|
||||
$downmgr->addHeader($extraheader);
|
||||
foreach($entries as $entry) {
|
||||
|
@ -545,6 +547,12 @@ $(document).ready(function() {
|
|||
<li class="nav-item <?php echo ($facetsearch == true && $facetsearch == true) ? 'active' : ''; ?>"><a class="nav-link <?php echo ($facetsearch == true && $facetsearch == true) ? 'active' : ''; ?>" data-target="#facetfulltext" data-toggle="tab" role="button"><?php printMLText('facetfullsearch'); ?></a></li>
|
||||
<?php
|
||||
}
|
||||
$tabs = $this->callHook('extraTabs');
|
||||
if($tabs) {
|
||||
foreach($tabs as $tabid=>$tab) {
|
||||
echo '<li class="nav-item"><a class="nav-link" data-target="#'.$tabid.'" data-toggle="tab" role="button">'.$tab['title'].'</a></li>';
|
||||
}
|
||||
}
|
||||
?>
|
||||
</ul>
|
||||
<div class="tab-content">
|
||||
|
@ -710,6 +718,8 @@ $(document).ready(function() {
|
|||
$openfilterdlg = true;
|
||||
if($status)
|
||||
$openfilterdlg = true;
|
||||
if($mimetype)
|
||||
$openfilterdlg = true;
|
||||
if($modifyenddate || $modifystartdate)
|
||||
$openfilterdlg = true;
|
||||
if($revisionstartdate || $revisionenddate)
|
||||
|
@ -754,6 +764,7 @@ $(document).ready(function() {
|
|||
}
|
||||
$options[] = array(S_DRAFT_APP, getOverallStatusText(S_DRAFT_APP), in_array(S_DRAFT_APP, $status));
|
||||
$options[] = array(S_RELEASED, getOverallStatusText(S_RELEASED), in_array(S_RELEASED, $status));
|
||||
$options[] = array(S_DRAFT, getOverallStatusText(S_DRAFT), in_array(S_DRAFT, $status));
|
||||
$options[] = array(S_REJECTED, getOverallStatusText(S_REJECTED), in_array(S_REJECTED, $status));
|
||||
$options[] = array(S_IN_REVISION, getOverallStatusText(S_IN_REVISION), in_array(S_IN_REVISION, $status));
|
||||
$options[] = array(S_EXPIRED, getOverallStatusText(S_EXPIRED), in_array(S_EXPIRED, $status));
|
||||
|
@ -770,6 +781,22 @@ $(document).ready(function() {
|
|||
'options'=>$options
|
||||
)
|
||||
);
|
||||
$options = [];
|
||||
foreach($dms->getMimeTypes() as $m) {
|
||||
$options[] = array($m['mimeType'], $m['mimeType'], in_array($m['mimeType'], $mimetype)/*, array(array('data-subtitle', htmlspecialchars($m['c'].' ×')))*/);
|
||||
}
|
||||
$this->formField(
|
||||
getMLText("mimetype"),
|
||||
array(
|
||||
'element'=>'select',
|
||||
'class'=>'chzn-select',
|
||||
'name'=>'mimetype[]',
|
||||
'multiple'=>true,
|
||||
'attributes'=>array(array('data-placeholder', getMLText('select_mimetype')), array('data-no_results_text', getMLText('no_mimetype'))),
|
||||
'options'=>$options
|
||||
)
|
||||
);
|
||||
|
||||
$this->formField(
|
||||
getMLText("modified")." (".getMLText('from').")",
|
||||
$this->getDateChooser(!empty($modifystartdate) ? getReadableDate($modifystartdate) : null, "modified[from]", $this->params['session']->getLanguage())
|
||||
|
@ -811,9 +838,9 @@ $(document).ready(function() {
|
|||
} elseif(in_array($attrdef->getType(), [SeedDMS_Core_AttributeDefinition::type_int, SeedDMS_Core_AttributeDefinition::type_float]) && !$attrdef->getValueSet()) {
|
||||
$this->formField(htmlspecialchars($attrdef->getName().' ('.getMLText('from').')'), $this->getAttributeEditField($attrdef, !empty($attributes[$attrdef->getID()]['from']) ? $attributes[$attrdef->getID()]['from'] : '', 'attributes', true, 'from'));
|
||||
$this->formField(htmlspecialchars($attrdef->getName().' ('.getMLText('to').')'), $this->getAttributeEditField($attrdef, !empty($attributes[$attrdef->getID()]['to']) ? $attributes[$attrdef->getID()]['to'] : '', 'attributes', true, 'to'));
|
||||
|
||||
} else
|
||||
$this->formField(htmlspecialchars($attrdef->getName()), $this->getAttributeEditField($attrdef, isset($attributes[$attrdef->getID()]) ? $attributes[$attrdef->getID()] : '', 'attributes', true, '', true));
|
||||
} else {
|
||||
$this->formField(htmlspecialchars($attrdef->getName()), $this->getAttributeEditField($attrdef, isset($attributes[$attrdef->getID()]) ? $attributes[$attrdef->getID()] : '', 'attributes', true, '', false));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1483,6 +1510,14 @@ $(document).ready(function() {
|
|||
echo "</div>\n";
|
||||
}
|
||||
// }}}
|
||||
|
||||
if($tabs) {
|
||||
foreach($tabs as $tabid=>$tab) {
|
||||
echo '<div class="tab-pane" id="'.$tabid.'" role="tabpanel">';
|
||||
echo $tab['content'];
|
||||
echo "</div>\n";
|
||||
}
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
<?php
|
||||
|
@ -1506,6 +1541,16 @@ $(document).ready(function() {
|
|||
'value'=>1,
|
||||
)
|
||||
);
|
||||
$this->formField(
|
||||
getMLText("skip_default_export_cols"),
|
||||
array(
|
||||
'element'=>'input',
|
||||
'type'=>'checkbox',
|
||||
'name'=>'skipdefaultcols',
|
||||
'id'=>'skipdefaultcols',
|
||||
'value'=>1,
|
||||
)
|
||||
);
|
||||
//$this->formSubmit("<i class=\"fa fa-download\"></i> ".getMLText('export'));
|
||||
print $this->html_link('Search', array_merge($_GET, array('action'=>'export')), array('class'=>'btn btn-primary', 'id'=>'export'), "<i class=\"fa fa-download\"></i> ".getMLText("batch_export"), false, true)."\n";
|
||||
$content = ob_get_clean();
|
||||
|
|
|
@ -13,11 +13,6 @@
|
|||
* @version Release: @package_version@
|
||||
*/
|
||||
|
||||
/**
|
||||
* Include parent class
|
||||
*/
|
||||
//require_once("class.Bootstrap.php");
|
||||
|
||||
/**
|
||||
* Class which outputs the html page for SetRevisors view
|
||||
*
|
||||
|
@ -31,6 +26,26 @@
|
|||
*/
|
||||
class SeedDMS_View_SetRevisors extends SeedDMS_Theme_Style {
|
||||
|
||||
function js() { /* {{{ */
|
||||
header('Content-Type: application/javascript; charset=UTF-8');
|
||||
parent::jsTranslations(array('js_form_error', 'js_form_errors'));
|
||||
?>
|
||||
function runValidation() {
|
||||
$("#form1").validate({
|
||||
rules: {
|
||||
startdate: {
|
||||
required: true
|
||||
},
|
||||
},
|
||||
messages: {
|
||||
comment: "<?php printMLText("js_no_reviѕion_date");?>",
|
||||
}
|
||||
});
|
||||
}
|
||||
runValidation();
|
||||
<?php
|
||||
} /* }}} */
|
||||
|
||||
function show() { /* {{{ */
|
||||
$dms = $this->params['dms'];
|
||||
$user = $this->params['user'];
|
||||
|
@ -44,6 +59,9 @@ class SeedDMS_View_SetRevisors extends SeedDMS_Theme_Style {
|
|||
|
||||
$overallStatus = $content->getStatus();
|
||||
|
||||
$this->htmlAddHeader('<script type="text/javascript" src="../views/'.$this->theme.'/vendors/jquery-validation/jquery.validate.js"></script>'."\n", 'js');
|
||||
$this->htmlAddHeader('<script type="text/javascript" src="../views/'.$this->theme.'/styles/validation-default.js"></script>'."\n", 'js');
|
||||
|
||||
$this->htmlStartPage(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))));
|
||||
$this->globalNavigation($folder);
|
||||
$this->contentStart();
|
||||
|
@ -69,7 +87,7 @@ class SeedDMS_View_SetRevisors extends SeedDMS_Theme_Style {
|
|||
}
|
||||
?>
|
||||
|
||||
<form class="form-horizontal" action="../op/op.SetRevisors.php" method="post" name="form1">
|
||||
<form class="form-horizontal" action="../op/op.SetRevisors.php" method="post" id="form1" name="form1">
|
||||
<input type='hidden' name='documentid' value='<?php echo $document->getID() ?>'/>
|
||||
<input type='hidden' name='version' value='<?php echo $content->getVersion() ?>'/>
|
||||
|
||||
|
@ -184,4 +202,3 @@ class SeedDMS_View_SetRevisors extends SeedDMS_Theme_Style {
|
|||
$this->htmlEndPage();
|
||||
} /* }}} */
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -189,9 +189,10 @@ class SeedDMS_View_Settings extends SeedDMS_Theme_Style {
|
|||
<td><?= getMLText($title) ?></td>
|
||||
<td>
|
||||
<?php
|
||||
if($this->isVisible($name))
|
||||
if($this->isVisible($name)) {
|
||||
echo '<input name="'.$name.'" type="hidden" vaule="" />';
|
||||
echo '<input name="'.$name.'" type="checkbox" '.($settings->{"_".$name} ? "checked" : '').' />';
|
||||
else
|
||||
} else
|
||||
echo getMLText('settings_conf_field_not_editable');
|
||||
echo "</td>\n";
|
||||
?>
|
||||
|
@ -331,7 +332,184 @@ class SeedDMS_View_Settings extends SeedDMS_Theme_Style {
|
|||
<?php
|
||||
} /* }}} */
|
||||
|
||||
function js() { /* {{{ */
|
||||
protected function showExtensionConfig($extname, $extconf) { /* {{{ */
|
||||
$dms = $this->params['dms'];
|
||||
$settings = $this->params['settings'];
|
||||
|
||||
foreach($extconf['config'] as $confkey=>$conf) {
|
||||
ob_start();
|
||||
if($this->isVisible($extname.'|'.$confkey)) {
|
||||
switch($conf['type']) {
|
||||
case 'checkbox':
|
||||
?>
|
||||
<input type="hidden" name="<?php echo "extensions[".$extname."][".$confkey."]"; ?>" value=""><input type="checkbox" id="extension_<?= $extname ?>_<?= $confkey ?>" name="<?php echo "extensions[".$extname."][".$confkey."]"; ?>" value="1" <?php if(isset($settings->_extensions[$extname][$confkey]) && $settings->_extensions[$extname][$confkey]) echo 'checked'; ?> />
|
||||
<?php
|
||||
break;
|
||||
case 'select':
|
||||
$allowempty = empty($conf['allow_empty']) ? false : $conf['allow_empty'];
|
||||
$multiple = empty($conf['multiple']) ? false : $conf['multiple'];
|
||||
$order = empty($conf['order']) ? '' : $conf['order'];
|
||||
if(!empty($conf['options'])) {
|
||||
$selections = empty($settings->_extensions[$extname][$confkey]) ? array() : explode(",", $settings->_extensions[$extname][$confkey]);
|
||||
echo "<select id=\"extension_".$extname."_".$confkey."\" class=\"chzn-select\"".($allowempty ? " data-allow-clear=\"true\"" : "").($order ? " order=\"".$order."\"" : "")." name=\"extensions[".$extname."][".$confkey."][]\"".($multiple ? " multiple" : "").(!empty($conf['size']) ? " size=\"".$conf['size']."\"" : "")." data-placeholder=\"".getMLText("select_option")."\" style=\"width: 100%;\">";
|
||||
if(is_array($conf['options'])) {
|
||||
$options = $conf['options'];
|
||||
} elseif(is_string($conf['options']) && $conf['options'] == 'hook') {
|
||||
$options = $this->callHook('getOptions', $confkey, $extname, $extconf);
|
||||
} else {
|
||||
$options = [];
|
||||
}
|
||||
if($allowempty)
|
||||
echo "<option value=\"\"></option>";
|
||||
foreach($options as $key=>$opt) {
|
||||
echo "<option value=\"".$key."\"";
|
||||
if(in_array($key, $selections))
|
||||
echo " selected";
|
||||
if(is_array($opt)) {
|
||||
echo " data-subtitle=\"".htmlspecialchars($opt['subtitle'])."\">".htmlspecialchars($opt['value']);
|
||||
} else {
|
||||
echo ">".htmlspecialchars(getMLText($extname.'_'.$opt, array(), $opt));
|
||||
}
|
||||
echo "</option>";
|
||||
}
|
||||
echo "</select>";
|
||||
} elseif(!empty($conf['internal'])) {
|
||||
$selections = empty($settings->_extensions[$extname][$confkey]) ? array() : explode(",", $settings->_extensions[$extname][$confkey]);
|
||||
switch($conf['internal']) {
|
||||
case "categories":
|
||||
$categories = $dms->getDocumentCategories();
|
||||
if($categories) {
|
||||
echo "<select class=\"chzn-select\"".($allowempty ? " data-allow-clear=\"true\"" : "")." name=\"extensions[".$extname."][".$confkey."][]\"".($multiple ? " multiple" : "").(!empty($conf['size']) ? " size=\"".$conf['size']."\"" : "")." data-placeholder=\"".getMLText("select_category")."\" style=\"width: 100%;\">";
|
||||
if($allowempty)
|
||||
echo "<option value=\"\"></option>";
|
||||
foreach($categories as $category) {
|
||||
echo "<option value=\"".$category->getID()."\"";
|
||||
if(in_array($category->getID(), $selections))
|
||||
echo " selected";
|
||||
echo ">".htmlspecialchars($category->getName())."</option>";
|
||||
}
|
||||
echo "</select>";
|
||||
}
|
||||
break;
|
||||
case "users":
|
||||
$users = $dms->getAllUsers();
|
||||
if($users) {
|
||||
echo "<select class=\"chzn-select\"".($allowempty ? " data-allow-clear=\"true\"" : "")." name=\"extensions[".$extname."][".$confkey."][]\"".(!empty($conf['multiple']) ? " multiple" : "").(!empty($conf['size']) ? " size=\"".$conf['size']."\"" : "")." data-placeholder=\"".getMLText("select_user")."\" style=\"width: 100%;\">";
|
||||
if($allowempty)
|
||||
echo "<option value=\"\"></option>";
|
||||
foreach($users as $curuser) {
|
||||
echo "<option value=\"".$curuser->getID()."\"";
|
||||
if(in_array($curuser->getID(), $selections))
|
||||
echo " selected";
|
||||
echo ">".htmlspecialchars($curuser->getLogin()." - ".$curuser->getFullName())."</option>";
|
||||
}
|
||||
echo "</select>";
|
||||
}
|
||||
break;
|
||||
case "groups":
|
||||
$recs = $dms->getAllGroups();
|
||||
if($recs) {
|
||||
echo "<select class=\"chzn-select\"".($allowempty ? " data-allow-clear=\"true\"" : "")." name=\"extensions[".$extname."][".$confkey."][]\"".(!empty($conf['multiple']) ? " multiple" : "").(!empty($conf['size']) ? " size=\"".$conf['size']."\"" : "")." data-placeholder=\"".getMLText("select_group")."\" style=\"width: 100%;\">";
|
||||
if($allowempty)
|
||||
echo "<option value=\"\"></option>";
|
||||
foreach($recs as $rec) {
|
||||
echo "<option value=\"".$rec->getID()."\"";
|
||||
if(in_array($rec->getID(), $selections))
|
||||
echo " selected";
|
||||
echo ">".htmlspecialchars($rec->getName())."</option>";
|
||||
}
|
||||
echo "</select>";
|
||||
}
|
||||
break;
|
||||
case "attributedefinitions":
|
||||
$objtype = empty($conf['objtype']) ? 0 : $conf['objtype'];
|
||||
$attrtype = empty($conf['attrtype']) ? 0 : $conf['attrtype'];
|
||||
$order = empty($conf['order']) ? '' : $conf['order'];
|
||||
$recs = $dms->getAllAttributeDefinitions($objtype, $attrtype);
|
||||
if($recs) {
|
||||
echo "<select class=\"chzn-select\"".($allowempty ? " data-allow-clear=\"true\"" : "").($order ? " order=\"".$order."\"" : "")." name=\"extensions[".$extname."][".$confkey."][]\"".(!empty($conf['multiple']) ? " multiple" : "").(!empty($conf['size']) ? " size=\"".$conf['size']."\"" : "")." data-placeholder=\"".getMLText("select_attrdef")."\" data-no_results_text=\"".getMLText('unknown_attrdef')."\" style=\"width: 100%;\">";
|
||||
if($allowempty)
|
||||
echo "<option value=\"\"></option>";
|
||||
if($order == 'keep') {
|
||||
foreach($selections as $selid) {
|
||||
if($rec = $dms->getAttributeDefinition($selid)) {
|
||||
echo "<option value=\"".$rec->getID()."\" selected data-subtitle=\"".htmlspecialchars(getAttributeObjectTypeText($rec).", ".getAttributeTypeText($rec))."\">".htmlspecialchars($rec->getName())."</option>";
|
||||
}
|
||||
}
|
||||
}
|
||||
foreach($recs as $rec) {
|
||||
if($order == 'keep' && in_array($rec->getID(), $selections))
|
||||
continue;
|
||||
echo "<option value=\"".$rec->getID()."\"";
|
||||
if(in_array($rec->getID(), $selections))
|
||||
echo " selected";
|
||||
echo " data-subtitle=\"".htmlspecialchars(getAttributeObjectTypeText($rec).", ".getAttributeTypeText($rec))."\">".htmlspecialchars($rec->getName())."</option>";
|
||||
}
|
||||
echo "</select>";
|
||||
} else {
|
||||
printMLText('no_attribute_definitions');
|
||||
}
|
||||
break;
|
||||
case "workflows":
|
||||
$recs = $dms->getAllWorkflows();
|
||||
if($recs) {
|
||||
echo "<select class=\"chzn-select\"".($allowempty ? " data-allow-clear=\"true\"" : "")." name=\"extensions[".$extname."][".$confkey."][]\"".(!empty($conf['multiple']) ? " multiple" : "").(!empty($conf['size']) ? " size=\"".$conf['size']."\"" : "")." data-placeholder=\"".getMLText("select_attribute_value")."\" style=\"width: 100%;\">";
|
||||
if($allowempty)
|
||||
echo "<option value=\"\"></option>";
|
||||
foreach($recs as $rec) {
|
||||
echo "<option value=\"".$rec->getID()."\"";
|
||||
if(in_array($rec->getID(), $selections))
|
||||
echo " selected";
|
||||
echo ">".htmlspecialchars($rec->getName())."</option>";
|
||||
}
|
||||
echo "</select>";
|
||||
} else {
|
||||
printMLText('no_workflows');
|
||||
}
|
||||
break;
|
||||
case "folders":
|
||||
$this->formField(null, $this->getFolderChooserHtml("form".$extname.$confkey, M_READ, -1, $selections ? $dms->getFolder($selections[0]) : 0, 'extensions['.$extname."][".$confkey."]"));
|
||||
break;
|
||||
case "folderlist":
|
||||
echo "<select class=\"chzn-select-folder\"".($allowempty ? " data-allow-clear=\"true\"" : "")." name=\"extensions[".$extname."][".$confkey."][]\"".(!empty($conf['multiple']) ? " multiple" : "").(!empty($conf['size']) ? " size=\"".$conf['size']."\"" : "")." data-placeholder=\"".getMLText("select_attribute_value")."\" style=\"width: 100%;\">";
|
||||
if($selections) {
|
||||
foreach ($selections as $selid) {
|
||||
if ($f = $dms->getFolder($selid)) {
|
||||
echo "<option value=\"".$f->getID()."\"";
|
||||
echo " selected";
|
||||
echo ">".htmlspecialchars($f->getName())."</option>";
|
||||
}
|
||||
}
|
||||
}
|
||||
echo "</select>";
|
||||
break;
|
||||
case "documents":
|
||||
$this->formField(null, $this->getDocumentChooserHtml("form".$extname.$confkey, M_READ, -1, $selections ? $dms->getDocument($selections[0]) : 0, 'extensions['.$extname."][".$confkey."]"));
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'hook':
|
||||
echo $this->callHook('showConfig', $confkey, $extname, $extconf);
|
||||
break;
|
||||
case "date":
|
||||
$this->formField(
|
||||
null,
|
||||
$this->getDateChooser((isset($settings->_extensions[$extname][$confkey]) ? getReadableDate($settings->_extensions[$extname][$confkey]) : ''), "extensions[".$extname."][".$confkey."]", $this->params['session']->getLanguage())
|
||||
);
|
||||
break;
|
||||
default:
|
||||
$this->showTextField("extensions[".$extname."][".$confkey."]", isset($settings->_extensions[$extname][$confkey]) ? $settings->_extensions[$extname][$confkey] : '', isset($conf['type']) ? $conf['type'] : '', isset($conf['placeholder']) ? $conf['placeholder'] : '');
|
||||
}
|
||||
} else {
|
||||
echo getMLText('settings_conf_field_not_editable');
|
||||
}
|
||||
$html = ob_get_clean();
|
||||
$this->showConfigPlain($conf['title'], isset($conf['help']) ? $conf['help'] : '', $html);
|
||||
}
|
||||
} /* }}} */
|
||||
|
||||
public function js() { /* {{{ */
|
||||
$extmgr = $this->params['extmgr'];
|
||||
|
||||
header('Content-Type: application/javascript; charset=UTF-8');
|
||||
|
@ -382,7 +560,42 @@ console.log($(event.currentTarget).data('target').substring(1));
|
|||
<?php
|
||||
} /* }}} */
|
||||
|
||||
function show() { /* {{{ */
|
||||
public function extension() { /* {{{ */
|
||||
$dms = $this->params['dms'];
|
||||
$user = $this->params['user'];
|
||||
$extname = $this->params['extname'];
|
||||
$settings = $this->params['settings'];
|
||||
$extmgr = $this->params['extmgr'];
|
||||
|
||||
$extconf = $extmgr->getExtensionConfiguration()[$extname];
|
||||
?>
|
||||
<form action="../op/op.Settings.php" method="post" enctype="multipart/form-data" id="formconfig" name="formconfig" >
|
||||
<?php echo createHiddenFieldWithKey('savesettings'); ?>
|
||||
<input type="hidden" name="action" value="saveSettings" />
|
||||
<?php
|
||||
if($this->hasHook('processConfig')) {
|
||||
$ttt = $this->callHook('processConfig', $extname, $extconf);
|
||||
if($ttt)
|
||||
$extconf = $ttt;
|
||||
}
|
||||
if($this->isVisible($extname.'|')) {
|
||||
if($extconf['config']) {
|
||||
// $this->showRawConfigHeadline("<p><a id=\"".$extname."\" name=\"".$extname."\"></a>".'<input type="hidden" name="extensions['.$extname.'][__disable__]" value="'.(isset($settings->_extensions[$extname]["__disable__"]) && $settings->_extensions[$extname]["__disable__"] ? '1' : '').'" /><i class="fa fa-circle'.(isset($settings->_extensions[$extname]["__disable__"]) && $settings->_extensions[$extname]["__disable__"] ? ' disabled' : ' enabled').'"></i> <span title="'.$extname.'">'.$extconf['title'].'</span></p>');
|
||||
$this->showExtensionConfig($extname, $extconf);
|
||||
} else {
|
||||
/* Even no configuration exists, output the input field to enable/disable
|
||||
* the extension. Otherwise it will be enabled each time the config is
|
||||
* saved.
|
||||
*/
|
||||
echo '<input type="hidden" name="extensions['.$extname.'][__disable__]" value="'.(isset($settings->_extensions[$extname]["__disable__"]) && $settings->_extensions[$extname]["__disable__"] ? '1' : '').'" />'."\n";
|
||||
}
|
||||
}
|
||||
?>
|
||||
</form>
|
||||
<?php
|
||||
} /* }}} */
|
||||
|
||||
public function show() { /* {{{ */
|
||||
$dms = $this->params['dms'];
|
||||
$user = $this->params['user'];
|
||||
$users = $this->params['allusers'];
|
||||
|
@ -547,6 +760,7 @@ if(($kkk = $this->callHook('getFullSearchEngine')) && is_array($kkk))
|
|||
<?php $this->showConfigText('settings_partitionSize', 'partitionSize'); ?>
|
||||
<?php $this->showConfigText('settings_maxUploadSize', 'maxUploadSize'); ?>
|
||||
<?php $this->showConfigCheckbox('settings_enableXsendfile', 'enableXsendfile'); ?>
|
||||
<?php $this->showConfigCheckbox('settings_enableMemcached', 'enableMemcached'); ?>
|
||||
<!--
|
||||
-- SETTINGS - SYSTEM - AUTHENTICATION
|
||||
-->
|
||||
|
@ -717,171 +931,7 @@ if(($kkk = $this->callHook('getFullSearchEngine')) && is_array($kkk))
|
|||
if($this->isVisible($extname.'|')) {
|
||||
if($extconf['config']) {
|
||||
$this->showRawConfigHeadline("<a id=\"".$extname."\" name=\"".$extname."\"></a>".'<input type="hidden" name="extensions['.$extname.'][__disable__]" value="'.(isset($settings->_extensions[$extname]["__disable__"]) && $settings->_extensions[$extname]["__disable__"] ? '1' : '').'" /><i class="fa fa-circle'.(isset($settings->_extensions[$extname]["__disable__"]) && $settings->_extensions[$extname]["__disable__"] ? ' disabled' : ' enabled').'"></i> <span title="'.$extname.'">'.$extconf['title'].'</span>');
|
||||
foreach($extconf['config'] as $confkey=>$conf) {
|
||||
ob_start();
|
||||
if($this->isVisible($extname.'|'.$confkey)) {
|
||||
switch($conf['type']) {
|
||||
case 'checkbox':
|
||||
?>
|
||||
<input type="hidden" name="<?php echo "extensions[".$extname."][".$confkey."]"; ?>" value=""><input type="checkbox" name="<?php echo "extensions[".$extname."][".$confkey."]"; ?>" value="1" <?php if(isset($settings->_extensions[$extname][$confkey]) && $settings->_extensions[$extname][$confkey]) echo 'checked'; ?> />
|
||||
<?php
|
||||
break;
|
||||
case 'select':
|
||||
$allowempty = empty($conf['allow_empty']) ? false : $conf['allow_empty'];
|
||||
$multiple = empty($conf['multiple']) ? false : $conf['multiple'];
|
||||
if(!empty($conf['options'])) {
|
||||
$selections = empty($settings->_extensions[$extname][$confkey]) ? array() : explode(",", $settings->_extensions[$extname][$confkey]);
|
||||
echo "<select class=\"chzn-select\"".($allowempty ? " data-allow-clear=\"true\"" : "")." name=\"extensions[".$extname."][".$confkey."][]\"".($multiple ? " multiple" : "").(!empty($conf['size']) ? " size=\"".$conf['size']."\"" : "")." data-placeholder=\"".getMLText("select_option")."\" style=\"width: 100%;\">";
|
||||
if(is_array($conf['options'])) {
|
||||
$options = $conf['options'];
|
||||
} elseif(is_string($conf['options']) && $conf['options'] == 'hook') {
|
||||
$options = $this->callHook('getOptions', $confkey, $extname, $extconf);
|
||||
} else {
|
||||
$options = [];
|
||||
}
|
||||
if($allowempty)
|
||||
echo "<option value=\"\"></option>";
|
||||
foreach($options as $key=>$opt) {
|
||||
echo "<option value=\"".$key."\"";
|
||||
if(in_array($key, $selections))
|
||||
echo " selected";
|
||||
echo ">".htmlspecialchars(getMLText($extname.'_'.$opt, array(), $opt))."</option>";
|
||||
}
|
||||
echo "</select>";
|
||||
} elseif(!empty($conf['internal'])) {
|
||||
$selections = empty($settings->_extensions[$extname][$confkey]) ? array() : explode(",", $settings->_extensions[$extname][$confkey]);
|
||||
switch($conf['internal']) {
|
||||
case "categories":
|
||||
$categories = $dms->getDocumentCategories();
|
||||
if($categories) {
|
||||
echo "<select class=\"chzn-select\"".($allowempty ? " data-allow-clear=\"true\"" : "")." name=\"extensions[".$extname."][".$confkey."][]\"".($multiple ? " multiple" : "").(!empty($conf['size']) ? " size=\"".$conf['size']."\"" : "")." data-placeholder=\"".getMLText("select_category")."\" style=\"width: 100%;\">";
|
||||
if($allowempty)
|
||||
echo "<option value=\"\"></option>";
|
||||
foreach($categories as $category) {
|
||||
echo "<option value=\"".$category->getID()."\"";
|
||||
if(in_array($category->getID(), $selections))
|
||||
echo " selected";
|
||||
echo ">".htmlspecialchars($category->getName())."</option>";
|
||||
}
|
||||
echo "</select>";
|
||||
}
|
||||
break;
|
||||
case "users":
|
||||
$users = $dms->getAllUsers();
|
||||
if($users) {
|
||||
echo "<select class=\"chzn-select\"".($allowempty ? " data-allow-clear=\"true\"" : "")." name=\"extensions[".$extname."][".$confkey."][]\"".(!empty($conf['multiple']) ? " multiple" : "").(!empty($conf['size']) ? " size=\"".$conf['size']."\"" : "")." data-placeholder=\"".getMLText("select_user")."\" style=\"width: 100%;\">";
|
||||
if($allowempty)
|
||||
echo "<option value=\"\"></option>";
|
||||
foreach($users as $curuser) {
|
||||
echo "<option value=\"".$curuser->getID()."\"";
|
||||
if(in_array($curuser->getID(), $selections))
|
||||
echo " selected";
|
||||
echo ">".htmlspecialchars($curuser->getLogin()." - ".$curuser->getFullName())."</option>";
|
||||
}
|
||||
echo "</select>";
|
||||
}
|
||||
break;
|
||||
case "groups":
|
||||
$recs = $dms->getAllGroups();
|
||||
if($recs) {
|
||||
echo "<select class=\"chzn-select\"".($allowempty ? " data-allow-clear=\"true\"" : "")." name=\"extensions[".$extname."][".$confkey."][]\"".(!empty($conf['multiple']) ? " multiple" : "").(!empty($conf['size']) ? " size=\"".$conf['size']."\"" : "")." data-placeholder=\"".getMLText("select_group")."\" style=\"width: 100%;\">";
|
||||
if($allowempty)
|
||||
echo "<option value=\"\"></option>";
|
||||
foreach($recs as $rec) {
|
||||
echo "<option value=\"".$rec->getID()."\"";
|
||||
if(in_array($rec->getID(), $selections))
|
||||
echo " selected";
|
||||
echo ">".htmlspecialchars($rec->getName())."</option>";
|
||||
}
|
||||
echo "</select>";
|
||||
}
|
||||
break;
|
||||
case "attributedefinitions":
|
||||
$objtype = empty($conf['objtype']) ? 0 : $conf['objtype'];
|
||||
$attrtype = empty($conf['attrtype']) ? 0 : $conf['attrtype'];
|
||||
$order = empty($conf['order']) ? '' : $conf['order'];
|
||||
$recs = $dms->getAllAttributeDefinitions($objtype, $attrtype);
|
||||
if($recs) {
|
||||
echo "<select class=\"chzn-select\"".($allowempty ? " data-allow-clear=\"true\"" : "").($order ? " order=\"".$order."\"" : "")." name=\"extensions[".$extname."][".$confkey."][]\"".(!empty($conf['multiple']) ? " multiple" : "").(!empty($conf['size']) ? " size=\"".$conf['size']."\"" : "")." data-placeholder=\"".getMLText("select_attrdef")."\" data-no_results_text=\"".getMLText('unknown_attrdef')."\" style=\"width: 100%;\">";
|
||||
if($allowempty)
|
||||
echo "<option value=\"\"></option>";
|
||||
if($order == 'keep') {
|
||||
foreach($selections as $selid) {
|
||||
if($rec = $dms->getAttributeDefinition($selid)) {
|
||||
echo "<option value=\"".$rec->getID()."\" selected data-subtitle=\"".htmlspecialchars(getAttributeObjectTypeText($rec).", ".getAttributeTypeText($rec))."\">".htmlspecialchars($rec->getName())."</option>";
|
||||
}
|
||||
}
|
||||
}
|
||||
foreach($recs as $rec) {
|
||||
if($order == 'keep' && in_array($rec->getID(), $selections))
|
||||
continue;
|
||||
echo "<option value=\"".$rec->getID()."\"";
|
||||
if(in_array($rec->getID(), $selections))
|
||||
echo " selected";
|
||||
echo " data-subtitle=\"".htmlspecialchars(getAttributeObjectTypeText($rec).", ".getAttributeTypeText($rec))."\">".htmlspecialchars($rec->getName())."</option>";
|
||||
}
|
||||
echo "</select>";
|
||||
} else {
|
||||
printMLText('no_attribute_definitions');
|
||||
}
|
||||
break;
|
||||
case "workflows":
|
||||
$recs = $dms->getAllWorkflows();
|
||||
if($recs) {
|
||||
echo "<select class=\"chzn-select\"".($allowempty ? " data-allow-clear=\"true\"" : "")." name=\"extensions[".$extname."][".$confkey."][]\"".(!empty($conf['multiple']) ? " multiple" : "").(!empty($conf['size']) ? " size=\"".$conf['size']."\"" : "")." data-placeholder=\"".getMLText("select_attribute_value")."\" style=\"width: 100%;\">";
|
||||
if($allowempty)
|
||||
echo "<option value=\"\"></option>";
|
||||
foreach($recs as $rec) {
|
||||
echo "<option value=\"".$rec->getID()."\"";
|
||||
if(in_array($rec->getID(), $selections))
|
||||
echo " selected";
|
||||
echo ">".htmlspecialchars($rec->getName())."</option>";
|
||||
}
|
||||
echo "</select>";
|
||||
} else {
|
||||
printMLText('no_workflows');
|
||||
}
|
||||
break;
|
||||
case "folders":
|
||||
$this->formField(null, $this->getFolderChooserHtml("form".$extname.$confkey, M_READ, -1, $selections ? $dms->getFolder($selections[0]) : 0, 'extensions['.$extname."][".$confkey."]"));
|
||||
break;
|
||||
case "folderlist":
|
||||
echo "<select class=\"chzn-select-folder\"".($allowempty ? " data-allow-clear=\"true\"" : "")." name=\"extensions[".$extname."][".$confkey."][]\"".(!empty($conf['multiple']) ? " multiple" : "").(!empty($conf['size']) ? " size=\"".$conf['size']."\"" : "")." data-placeholder=\"".getMLText("select_attribute_value")."\" style=\"width: 100%;\">";
|
||||
if($selections) {
|
||||
foreach ($selections as $selid) {
|
||||
if ($f = $dms->getFolder($selid)) {
|
||||
echo "<option value=\"".$f->getID()."\"";
|
||||
echo " selected";
|
||||
echo ">".htmlspecialchars($f->getName())."</option>";
|
||||
}
|
||||
}
|
||||
}
|
||||
echo "</select>";
|
||||
break;
|
||||
case "documents":
|
||||
$this->formField(null, $this->getDocumentChooserHtml("form".$extname.$confkey, M_READ, -1, $selections ? $dms->getDocument($selections[0]) : 0, 'extensions['.$extname."][".$confkey."]"));
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'hook':
|
||||
echo $this->callHook('showConfig', $confkey, $extname, $extconf);
|
||||
break;
|
||||
case "date":
|
||||
$this->formField(
|
||||
null,
|
||||
$this->getDateChooser((isset($settings->_extensions[$extname][$confkey]) ? getReadableDate($settings->_extensions[$extname][$confkey]) : ''), "extensions[".$extname."][".$confkey."]", $this->params['session']->getLanguage())
|
||||
);
|
||||
break;
|
||||
default:
|
||||
$this->showTextField("extensions[".$extname."][".$confkey."]", isset($settings->_extensions[$extname][$confkey]) ? $settings->_extensions[$extname][$confkey] : '', isset($conf['type']) ? $conf['type'] : '', isset($conf['placeholder']) ? $conf['placeholder'] : '');
|
||||
}
|
||||
} else {
|
||||
echo getMLText('settings_conf_field_not_editable');
|
||||
}
|
||||
$html = ob_get_clean();
|
||||
$this->showConfigPlain($conf['title'], isset($conf['help']) ? $conf['help'] : '', $html);
|
||||
}
|
||||
$this->showExtensionConfig($extname, $extconf);
|
||||
} else {
|
||||
/* Even no configuration exists, output the input field to enable/disable
|
||||
* the extension. Otherwise it will be enabled each time the config is
|
||||
|
|
|
@ -298,7 +298,7 @@ class SeedDMS_View_Tasks extends SeedDMS_Theme_Style {
|
|||
$subitems = [];
|
||||
foreach($tasks['review'] as $t) {
|
||||
$doc = $dms->getDocument($t['id']);
|
||||
$subitems[] = array('label'=>$doc->getName(), 'link'=>$this->params['settings']->_httpRoot."out/out.ViewDocument.php?documentid=".$doc->getID()."¤ttab=revapp", 'class'=>"table-row-document", 'rel'=>"document_".$doc->getID());
|
||||
$subitems[] = array('label'=>htmlspecialchars($doc->getName()), 'link'=>$this->params['settings']->_httpRoot."out/out.ViewDocument.php?documentid=".$doc->getID()."¤ttab=revapp", 'class'=>"table-row-document", 'rel'=>"document_".$doc->getID());
|
||||
}
|
||||
$menuitems['tasks']['children']['review'] = array('label'=>getMLText('documents_to_review'), 'children'=>$subitems);
|
||||
|
||||
|
@ -307,7 +307,7 @@ class SeedDMS_View_Tasks extends SeedDMS_Theme_Style {
|
|||
$subitems = [];
|
||||
foreach($tasks['approval'] as $t) {
|
||||
$doc = $dms->getDocument($t['id']);
|
||||
$subitems[] = array('label'=>$doc->getName(), 'link'=>$this->params['settings']->_httpRoot."out/out.ViewDocument.php?documentid=".$doc->getID()."¤ttab=revapp", 'class'=>"table-row-document", 'rel'=>"document_".$doc->getID());
|
||||
$subitems[] = array('label'=>htmlspecialchars($doc->getName()), 'link'=>$this->params['settings']->_httpRoot."out/out.ViewDocument.php?documentid=".$doc->getID()."¤ttab=revapp", 'class'=>"table-row-document", 'rel'=>"document_".$doc->getID());
|
||||
}
|
||||
$menuitems['tasks']['children']['approval'] = array('label'=>getMLText('documents_to_approve'), 'children'=>$subitems);
|
||||
}
|
||||
|
@ -315,7 +315,7 @@ class SeedDMS_View_Tasks extends SeedDMS_Theme_Style {
|
|||
$subitems = [];
|
||||
foreach($tasks['workflow'] as $t) {
|
||||
$doc = $dms->getDocument($t['id']);
|
||||
$subitems[] = array('label'=>$doc->getName(), 'link'=>$this->params['settings']->_httpRoot."out/out.ViewDocument.php?documentid=".$doc->getID()."¤ttab=workflow", 'class'=>"table-row-document", 'rel'=>"document_".$doc->getID());
|
||||
$subitems[] = array('label'=>htmlspecialchars($doc->getName()), 'link'=>$this->params['settings']->_httpRoot."out/out.ViewDocument.php?documentid=".$doc->getID()."¤ttab=workflow", 'class'=>"table-row-document", 'rel'=>"document_".$doc->getID());
|
||||
}
|
||||
$menuitems['tasks']['children']['workflow'] = array('label'=>getMLText('documents_to_trigger_workflow'), 'children'=>$subitems);
|
||||
}
|
||||
|
@ -323,7 +323,7 @@ class SeedDMS_View_Tasks extends SeedDMS_Theme_Style {
|
|||
$subitems = [];
|
||||
foreach($tasks['receipt'] as $t) {
|
||||
$doc = $dms->getDocument($t['id']);
|
||||
$subitems[] = array('label'=>$doc->getName(), 'link'=>"../out/out.ViewDocument.php?documentid=".$doc->getID()."¤ttab=recipients", 'class'=>"table-row-document", 'rel'=>"document_".$doc->getID());
|
||||
$subitems[] = array('label'=>htmlspecialchars($doc->getName()), 'link'=>"../out/out.ViewDocument.php?documentid=".$doc->getID()."¤ttab=recipients", 'class'=>"table-row-document", 'rel'=>"document_".$doc->getID());
|
||||
}
|
||||
$menuitems['tasks']['children']['receipt'] = array('label'=>getMLText('documents_to_receipt'), 'children'=>$subitems);
|
||||
}
|
||||
|
@ -331,7 +331,7 @@ class SeedDMS_View_Tasks extends SeedDMS_Theme_Style {
|
|||
$subitems = [];
|
||||
foreach($tasks['revision'] as $t) {
|
||||
$doc = $dms->getDocument($t['id']);
|
||||
$subitems[] = array('label'=>$doc->getName(), 'link'=>"../out/out.ViewDocument.php?documentid=".$doc->getID()."¤ttab=revision", 'class'=>"table-row-document", 'rel'=>"document_".$doc->getID());
|
||||
$subitems[] = array('label'=>htmlspecialchars($doc->getName()), 'link'=>"../out/out.ViewDocument.php?documentid=".$doc->getID()."¤ttab=revision", 'class'=>"table-row-document", 'rel'=>"document_".$doc->getID());
|
||||
}
|
||||
$menuitems['tasks']['children']['revision'] = array('label'=>getMLText('documents_to_revise'), 'children'=>$subitems);
|
||||
}
|
||||
|
@ -339,7 +339,7 @@ class SeedDMS_View_Tasks extends SeedDMS_Theme_Style {
|
|||
$subitems = [];
|
||||
foreach($tasks['needscorrection'] as $t) {
|
||||
$doc = $dms->getDocument($t['id']);
|
||||
$subitems[] = array('label'=>$doc->getName(), 'link'=>"../out/out.ViewDocument.php?documentid=".$doc->getID()."¤ttab=docinfo", 'class'=>"table-row-document", 'rel'=>"document_".$doc->getID());
|
||||
$subitems[] = array('label'=>htmlspecialchars($doc->getName()), 'link'=>"../out/out.ViewDocument.php?documentid=".$doc->getID()."¤ttab=docinfo", 'class'=>"table-row-document", 'rel'=>"document_".$doc->getID());
|
||||
}
|
||||
$menuitems['tasks']['children']['needscorrection'] = array('label'=>getMLText('documents_to_correct'), 'children'=>$subitems);
|
||||
}
|
||||
|
@ -347,15 +347,15 @@ class SeedDMS_View_Tasks extends SeedDMS_Theme_Style {
|
|||
$subitems = [];
|
||||
foreach($tasks['rejected'] as $t) {
|
||||
$doc = $dms->getDocument($t['id']);
|
||||
$subitems[] = array('label'=>$doc->getName(), 'link'=>$this->params['settings']->_httpRoot."out/out.ViewDocument.php?documentid=".$doc->getID()."¤ttab=docinfo", 'class'=>"table-row-document", 'rel'=>"document_".$doc->getID());
|
||||
$subitems[] = array('label'=>htmlspecialchars($doc->getName()), 'link'=>$this->params['settings']->_httpRoot."out/out.ViewDocument.php?documentid=".$doc->getID()."¤ttab=docinfo", 'class'=>"table-row-document", 'rel'=>"document_".$doc->getID());
|
||||
}
|
||||
$menuitems['tasks']['children']['rejected'] = array('label'=>getMLText('documents_rejected'), 'children'=>$subitems);
|
||||
$menuitems['tasks']['children']['rejected'] = array('label'=>getMLText('documents_user_rejected'), 'children'=>$subitems);
|
||||
}
|
||||
if(!empty($tasks['checkedout'])) {
|
||||
$subitems = [];
|
||||
foreach($tasks['checkedout'] as $t) {
|
||||
$doc = $dms->getDocument($t['id']);
|
||||
$subitems[] = array('label'=>$doc->getName(), 'link'=>"../out/out.ViewDocument.php?documentid=".$doc->getID()."¤ttab=docinfo", 'class'=>"table-row-document", 'rel'=>"document_".$doc->getID());
|
||||
$subitems[] = array('label'=>htmlspecialchars($doc->getName()), 'link'=>"../out/out.ViewDocument.php?documentid=".$doc->getID()."¤ttab=docinfo", 'class'=>"table-row-document", 'rel'=>"document_".$doc->getID());
|
||||
}
|
||||
$menuitems['tasks']['children']['checkedout'] = array('label'=>getMLText('documents_checked_out_by_you'), 'children'=>$subitems);
|
||||
}
|
||||
|
|
|
@ -604,10 +604,12 @@ console.log(element);
|
|||
$tmp = array();
|
||||
foreach($approvalStatus as $r) {
|
||||
if($r['type'] == 1) {
|
||||
if(!in_array($r['required'], $mapprovers['g']))
|
||||
if($mapprovers) {
|
||||
if(!in_array($r['required'], $mapprovers['g']))
|
||||
$tmp[] = $r['required'];
|
||||
} else {
|
||||
$tmp[] = $r['required'];
|
||||
} else {
|
||||
$tmp[] = $r['required'];
|
||||
}
|
||||
}
|
||||
}
|
||||
$fieldwrap = array('', '');
|
||||
|
|
|
@ -321,14 +321,14 @@ $(document).ready( function() {
|
|||
|
||||
foreach($files as $file) {
|
||||
|
||||
$file_exists=file_exists($dms->contentDir . $file->getPath());
|
||||
$file_exists = $file->exists();//file_exists($dms->contentDir . $file->getPath());
|
||||
|
||||
$responsibleUser = $file->getUser();
|
||||
|
||||
print "<tr>";
|
||||
print "<td>";
|
||||
$previewer->createPreview($file, $previewwidthdetail);
|
||||
if($file_exists) {
|
||||
$previewer->createPreview($file, $previewwidthdetail);
|
||||
if ($viewonlinefiletypes && (in_array(strtolower($file->getFileType()), $viewonlinefiletypes) || in_array(strtolower($file->getMimeType()), $viewonlinefiletypes))) {
|
||||
if($accessobject->check_controller_access('ViewOnline', array('action'=>'run'))) {
|
||||
print "<a target=\"_blank\" href=\"".$this->params['settings']->_httpRoot."op/op.ViewOnline.php?documentid=".$documentid."&file=". $file->getID()."\">";
|
||||
|
@ -338,15 +338,15 @@ $(document).ready( function() {
|
|||
print "<a href=\"".$this->params['settings']->_httpRoot."op/op.Download.php?documentid=".$documentid."&file=".$file->getID()."\">";
|
||||
}
|
||||
}
|
||||
}
|
||||
if($previewer->hasPreview($file)) {
|
||||
print("<img class=\"mimeicon\" width=\"".$previewwidthdetail."\" src=\"".$this->params['settings']->_httpRoot."op/op.Preview.php?documentid=".$document->getID()."&file=".$file->getID()."&width=".$previewwidthdetail."\" title=\"".htmlspecialchars($file->getMimeType())."\">");
|
||||
} else {
|
||||
print "<img class=\"mimeicon\" width=\"".$previewwidthdetail."\" src=\"".$this->getMimeIcon($file->getFileType())."\" title=\"".htmlspecialchars($file->getMimeType())."\">";
|
||||
}
|
||||
if($file_exists) {
|
||||
if($previewer->hasPreview($file)) {
|
||||
print("<img class=\"mimeicon\" width=\"".$previewwidthdetail."\" src=\"".$this->params['settings']->_httpRoot."op/op.Preview.php?documentid=".$document->getID()."&file=".$file->getID()."&width=".$previewwidthdetail."\" title=\"".htmlspecialchars($file->getMimeType())."\">");
|
||||
} else {
|
||||
print "<img class=\"mimeicon\" width=\"".$previewwidthdetail."\" src=\"".$this->getMimeIcon($file->getFileType())."\" title=\"".htmlspecialchars($file->getMimeType())."\">";
|
||||
}
|
||||
if($accessobject->check_controller_access('Download', array('action'=>'run')) || $accessobject->check_controller_access('ViewOnline', array('action'=>'run')))
|
||||
print "</a>";
|
||||
} else {
|
||||
print "<img class=\"mimeicon\" width=\"".$previewwidthdetail."\" src=\"".$this->getMimeIcon($file->getFileType())."\" title=\"".htmlspecialchars($file->getMimeType())."\">";
|
||||
}
|
||||
print "</td>";
|
||||
|
||||
|
@ -357,7 +357,7 @@ $(document).ready( function() {
|
|||
print "<li>".htmlspecialchars($file->getOriginalFileName())."</li>\n";
|
||||
if ($file_exists) {
|
||||
$realmimetype = $file->getRealMimeType();
|
||||
print "<li>".SeedDMS_Core_File::format_filesize(filesize($dms->contentDir . $file->getPath())) ." bytes, ".htmlspecialchars($file->getMimeType())."</li>";
|
||||
print "<li>".SeedDMS_Core_File::format_filesize($file->size()) ." bytes, ".htmlspecialchars($file->getMimeType())."</li>";
|
||||
} else print "<li>".htmlspecialchars($file->getMimeType())." - <span class=\"warning\">".getMLText("document_deleted")."</span></li>";
|
||||
|
||||
print "<li>".getMLText("uploaded_by")." <a href=\"mailto:".htmlspecialchars($responsibleUser->getEmail())."\">".htmlspecialchars($responsibleUser->getFullName())."</a></li>";
|
||||
|
@ -440,7 +440,7 @@ $(document).ready( function() {
|
|||
?>
|
||||
<tr>
|
||||
<td><?php printMLText("name");?>:</td>
|
||||
<td><?php $this->printInlineEdit(htmlspecialchars($document->getName()), $document);?></td>
|
||||
<td><?php $this->printInlineEditDocumentName(htmlspecialchars($document->getName()), $document);?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php printMLText("owner");?>:</td>
|
||||
|
@ -733,7 +733,7 @@ $(document).ready( function() {
|
|||
$previewwidthdetail = $this->params['previewWidthDetail'];
|
||||
|
||||
// verify if file exists
|
||||
$file_exists=file_exists($dms->contentDir . $latestContent->getPath());
|
||||
$file_exists = $latestContent->exists(); //file_exists($dms->contentDir . $latestContent->getPath());
|
||||
|
||||
$status = $latestContent->getStatus();
|
||||
|
||||
|
@ -747,23 +747,30 @@ $(document).ready( function() {
|
|||
$this->rowStart();
|
||||
$this->columnStart(3);
|
||||
if ($file_exists) {
|
||||
if ($viewonlinefiletypes && (in_array(strtolower($latestContent->getFileType()), $viewonlinefiletypes) || in_array(strtolower($latestContent->getMimeType()), $viewonlinefiletypes))) {
|
||||
if($accessobject->check_controller_access('ViewOnline', array('action'=>'run')))
|
||||
print "<a target=\"_blank\" href=\"".$this->params['settings']->_httpRoot."op/op.ViewOnline.php?documentid=".$latestContent->getDocument()->getId()."&version=". $latestContent->getVersion()."\">";
|
||||
} else {
|
||||
if($accessobject->check_controller_access('Download', array('action'=>'version')))
|
||||
print "<a href=\"".$this->params['settings']->_httpRoot."op/op.Download.php?documentid=".$latestContent->getDocument()->getId()."&version=".$latestContent->getVersion()."\">";
|
||||
$previewer->createPreview($latestContent);
|
||||
$previewhtml = $this->callHook('documentPreviewThumb', $previewer, $latestContent->getDocument(), $latestContent);
|
||||
if(is_string($previewhtml))
|
||||
echo $previewhtml;
|
||||
else {
|
||||
if ($viewonlinefiletypes && (in_array(strtolower($latestContent->getFileType()), $viewonlinefiletypes) || in_array(strtolower($latestContent->getMimeType()), $viewonlinefiletypes))) {
|
||||
if($accessobject->check_controller_access('ViewOnline', array('action'=>'run')))
|
||||
print "<a target=\"_blank\" href=\"".$this->params['settings']->_httpRoot."op/op.ViewOnline.php?documentid=".$latestContent->getDocument()->getId()."&version=". $latestContent->getVersion()."\">";
|
||||
} else {
|
||||
if($accessobject->check_controller_access('Download', array('action'=>'version')))
|
||||
print "<a href=\"".$this->params['settings']->_httpRoot."op/op.Download.php?documentid=".$latestContent->getDocument()->getId()."&version=".$latestContent->getVersion()."\">";
|
||||
}
|
||||
if($previewer->hasPreview($latestContent)) {
|
||||
print("<img class=\"mimeicon\" width=\"".$previewwidthdetail."\" src=\"".$this->params['settings']->_httpRoot."op/op.Preview.php?documentid=".$latestContent->getDocument()->getID()."&version=".$latestContent->getVersion()."&width=".$previewwidthdetail."\" title=\"".htmlspecialchars($latestContent->getMimeType())."\">");
|
||||
} else {
|
||||
print "<img class=\"mimeicon\" width=\"".$previewwidthdetail."\" src=\"".$this->getMimeIcon($latestContent->getFileType())."\" title=\"".htmlspecialchars($latestContent->getMimeType())."\">";
|
||||
}
|
||||
if ($accessobject->check_controller_access('ViewOnline', array('action'=>'run')) || $accessobject->check_controller_access('Download', array('action'=>'version'))) {
|
||||
print "</a>";
|
||||
}
|
||||
}
|
||||
}
|
||||
$previewer->createPreview($latestContent);
|
||||
if($previewer->hasPreview($latestContent)) {
|
||||
print("<img class=\"mimeicon\" width=\"".$previewwidthdetail."\" src=\"".$this->params['settings']->_httpRoot."op/op.Preview.php?documentid=".$latestContent->getDocument()->getID()."&version=".$latestContent->getVersion()."&width=".$previewwidthdetail."\" title=\"".htmlspecialchars($latestContent->getMimeType())."\">");
|
||||
} else {
|
||||
print "<img class=\"mimeicon\" width=\"".$previewwidthdetail."\" src=\"".$this->getMimeIcon($latestContent->getFileType())."\" title=\"".htmlspecialchars($latestContent->getMimeType())."\">";
|
||||
}
|
||||
if ($file_exists && ($accessobject->check_controller_access('ViewOnline', array('action'=>'run')) || $accessobject->check_controller_access('Download', array('action'=>'version')))) {
|
||||
print "</a>";
|
||||
}
|
||||
// print "</td>\n";
|
||||
|
||||
// print "<td>";
|
||||
|
@ -2050,4 +2057,3 @@ $(document).ready( function() {
|
|||
$this->htmlEndPage();
|
||||
} /* }}} */
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -363,6 +363,7 @@ $(document).ready( function() {
|
|||
}); /* }}} */
|
||||
|
||||
$('body').on('click', '[data-toggle="modal"]', function(ev){ /* {{{ */
|
||||
setTimeout(function(){initMost();}, 500);
|
||||
/* Also set the title */
|
||||
if($(this).data("modal-title"))
|
||||
$($(this).data("target")+' .modal-header h3').html($(this).data("modal-title"));
|
||||
|
@ -407,6 +408,8 @@ $(document).ready( function() {
|
|||
if(data.success) {
|
||||
$("#main-clipboard").html('Loading').load(seeddms_webroot+'out/out.Clipboard.php?action=mainclipboard')
|
||||
$("#menu-clipboard div").html('Loading').load(seeddms_webroot+'out/out.Clipboard.php?action=menuclipboard')
|
||||
$("div.ajax[data-action='navigation']").trigger('update', {});
|
||||
$("div.ajax[data-action='folderList']").trigger('update', {});
|
||||
noty({
|
||||
text: attr_msg,
|
||||
type: 'success',
|
||||
|
@ -442,6 +445,8 @@ $(document).ready( function() {
|
|||
if(data.success) {
|
||||
$("#main-clipboard").html('Loading').load(seeddms_webroot+'out/out.Clipboard.php?action=mainclipboard')
|
||||
$("#menu-clipboard div").html('Loading').load(seeddms_webroot+'out/out.Clipboard.php?action=menuclipboard')
|
||||
$("div.ajax[data-action='navigation']").trigger('update', {});
|
||||
$("div.ajax[data-action='folderList']").trigger('update', {});
|
||||
noty({
|
||||
text: attr_msg,
|
||||
type: 'success',
|
||||
|
@ -716,8 +721,7 @@ $(document).ready( function() {
|
|||
window.history.back();
|
||||
}); /* }}} */
|
||||
|
||||
$("body").on("blur", "span.editable", function(e) { /* {{{ */
|
||||
console.log($(this).data('document'));
|
||||
$("body").on("blur", "span.editdocname", function(e) { /* {{{ */
|
||||
e.preventDefault();
|
||||
$.post(seeddms_webroot+"op/op.Ajax.php", { command: "setdocumentname", id: $(this).data('document'), formtoken: $(this).data('formtoken'), name: $(this).text() })
|
||||
.done(function( data ) {
|
||||
|
@ -753,6 +757,8 @@ function onAddClipboard(ev) { /* {{{ */
|
|||
if(data.success) {
|
||||
$("#main-clipboard").html('Loading').load(seeddms_webroot+'out/out.Clipboard.php?action=mainclipboard')
|
||||
$("#menu-clipboard div").html('Loading').load(seeddms_webroot+'out/out.Clipboard.php?action=menuclipboard')
|
||||
$("div.ajax[data-action='navigation']").trigger('update', {});
|
||||
$("div.ajax[data-action='folderList']").trigger('update', {});
|
||||
noty({
|
||||
text: data.message,
|
||||
type: 'success',
|
||||
|
|
|
@ -378,7 +378,11 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
|
|||
echo " <a class=\"nav-link dropdown-toggle\" data-toggle=\"dropdown\">".$menuitem['label']."</a>\n";
|
||||
echo " <div class=\"dropdown-menu dropdown-menu-left\">\n";
|
||||
foreach($menuitem['children'] as $submenuitem) {
|
||||
echo " <a class=\"dropdown-item\" href=\"".$submenuitem['link']."\"".(isset($submenuitem['target']) ? ' target="'.$submenuitem['target'].'"' : '').">".$submenuitem['label']."</a>\n";
|
||||
echo " <a class=\"dropdown-item\" 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>\n";
|
||||
}
|
||||
echo " </div>\n";
|
||||
} else {
|
||||
|
@ -472,7 +476,7 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
|
|||
echo " <a class=\"dropdown-item active\"";
|
||||
else
|
||||
echo " <a class=\"dropdown-item\"";
|
||||
echo " href=\"".$this->params['settings']->_httpRoot."op/op.SetLanguage.php?lang=".$currLang."&referer=".$_SERVER["REQUEST_URI"]."\">";
|
||||
echo " 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>\n";
|
||||
}
|
||||
echo " </div>\n";
|
||||
|
@ -701,6 +705,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')) {
|
||||
|
@ -743,7 +748,10 @@ 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) {
|
||||
$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($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 ($this->params['user']->isAdmin() && $this->params['enablefullsearch']) {
|
||||
$menuitems['index_folder'] = array('link'=>$this->params['settings']->_httpRoot."out/out.Indexer.php?folderid=". $folderID."&showtree=".showtree(), 'label'=>getMLText('index_folder'));
|
||||
|
@ -764,6 +772,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']);
|
||||
|
@ -823,7 +832,10 @@ 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) {
|
||||
$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($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')) {
|
||||
$menuitems['transfer_document'] = array('link'=>$this->params['settings']->_httpRoot."out/out.TransferDocument". $docid, 'label'=>getMLText('transfer_document'));
|
||||
|
@ -1539,12 +1551,12 @@ function getOverallStatusIcon($status) { /* {{{ */
|
|||
function getModalBox($config) { /* {{{ */
|
||||
$content = '';
|
||||
$content .= '
|
||||
<div class="modal fade" id="'.$config['id'].'" tabindex="-1" role="dialog" aria-labelledby="'.$config['id'].'Label" aria-hidden="true">
|
||||
<div class="modal fade" id="'.$config['id'].'" tabindex="-1" role="dialog" aria-labelledby="'.$config['id'].'Label">
|
||||
<div class="modal-dialog modal-lg" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h3 id="'.$config['id'].'Label">'.$config['title'].'</h3>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<button type="button" class="close" data-dismiss="modal">×</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
';
|
||||
|
@ -1558,7 +1570,7 @@ function getOverallStatusIcon($status) { /* {{{ */
|
|||
';
|
||||
if($config['buttons']) {
|
||||
foreach($config['buttons'] as $button)
|
||||
$content .= '<button class="btn'.(!empty($button['id']) ? ' btn-primary" id="'.$button['id'].'"': ' btn-secondary" ').' data-dismiss="modal" aria-hidden="true">'.$button['title'].'</button>';
|
||||
$content .= '<button class="btn'.(!empty($button['id']) ? ' btn-primary" id="'.$button['id'].'"': ' btn-secondary" ').' data-dismiss="modal">'.$button['title'].'</button>';
|
||||
}
|
||||
$content .= '
|
||||
</div>
|
||||
|
@ -2044,6 +2056,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 : '');
|
||||
|
@ -2077,18 +2098,27 @@ $(document).ready(function() {
|
|||
$content .= "<input type=\"text\" class=\"form-control\" id=\"".$attr_id."\" name=\"".$attr_name."\" value=\"".htmlspecialchars($objvalue)."\"".((!$norequire && $attrdef->getMinValues() > 0) ? ' required="required"' : '')." data-rule-number=\"true\"/>";
|
||||
break; */
|
||||
case SeedDMS_Core_AttributeDefinition::type_folder:
|
||||
$target = $attribute ? $attribute->getValue() : null;
|
||||
$target = $attribute ? (is_object($attribute) ? $attribute->getValue() : $attribute) : null;
|
||||
$content .= $this->getFolderChooserHtml("attr".$attrdef->getId(), M_READWRITE, -1, $target, $attr_name, false);
|
||||
break;
|
||||
case SeedDMS_Core_AttributeDefinition::type_document:
|
||||
$target = $attribute ? $attribute->getValue() : null;
|
||||
$target = $attribute ? (is_object($attribute) ? $attribute->getValue() : $attribute) : null;
|
||||
$content .= $this->getDocumentChooserHtml("attr".$attrdef->getId(), M_READ, -1, $target, $attr_name);
|
||||
break;
|
||||
case SeedDMS_Core_AttributeDefinition::type_user:
|
||||
$target = $attribute ? $attribute->getValueAsArray() : [];
|
||||
$objvalue = [];
|
||||
foreach($target as $t)
|
||||
$objvalue[] = $t->getId();
|
||||
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;
|
||||
|
@ -2108,10 +2138,19 @@ $(document).ready(function() {
|
|||
}
|
||||
break;
|
||||
case SeedDMS_Core_AttributeDefinition::type_group:
|
||||
$target = $attribute ? $attribute->getValueAsArray() : [];
|
||||
$objvalue = [];
|
||||
foreach($target as $t)
|
||||
$objvalue[] = $t->getId();
|
||||
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;
|
||||
|
@ -2606,9 +2645,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;
|
||||
|
@ -3251,6 +3290,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'];
|
||||
|
@ -3280,7 +3320,10 @@ $('body').on('click', '[id^=\"table-row-folder\"] td:nth-child(2)', function(ev)
|
|||
$actions['document_access'] = $this->printAccessButton($document, true);
|
||||
}
|
||||
if($enableClipboard) {
|
||||
$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($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)
|
||||
$actions['view_document'] = '<a href="'.$this->params['settings']->_httpRoot.'out/out.ViewDocument.php?documentid='.$docID.'" title="'.getMLText("view_document").'"><i class="fa fa-eye"></i></a>';
|
||||
|
@ -3351,7 +3394,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;
|
||||
|
@ -3421,7 +3464,7 @@ $('body').on('click', '[id^=\"table-row-folder\"] td:nth-child(2)', function(ev)
|
|||
if($totalreceipts) {
|
||||
$content .= "
|
||||
<div class=\"progress\">
|
||||
<div class=\"progress-bar bar bar-success bg-success d-block\" role=\"progress-bar\" style=\"width: ".round($rstat['1']/$totalreceipts*100)."%;\">".($rstat['1'] ? $rstat['1']."/".$totalreceipts : '').($allcomments['1'] ? " ".$this->printPopupBox('<i class="fa fa-comment"></i>', implode('<br />', formatComment($allcomments['1'])), true) : "")."</div>
|
||||
<div class=\"progress-bar bar bar-success bg-success\" role=\"progress-bar\" style=\"width: ".round($rstat['1']/$totalreceipts*100)."%;\">".($rstat['1'] ? $rstat['1']."/".$totalreceipts : '').($allcomments['1'] ? " ".$this->printPopupBox('<i class="fa fa-comment"></i>', implode('<br />', formatComment($allcomments['1'])), true) : "")."</div>
|
||||
<div class=\"progress-bar bar bar-danger bg-danger\" style=\"width: ".round($rstat['-1']/$totalreceipts*100)."%;\">".($rstat['-1'] ? $rstat['-1']."/".$totalreceipts : '').($allcomments['-1'] ? " ".$this->printPopupBox('<i class="fa fa-comment"></i>', implode('<br />', formatComment($allcomments['-1'])), true) : "")."</div>
|
||||
</div>";
|
||||
}
|
||||
|
@ -3538,6 +3581,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'];
|
||||
|
@ -3570,7 +3614,10 @@ $('body').on('click', '[id^=\"table-row-folder\"] td:nth-child(2)', function(ev)
|
|||
$actions['folder_access'] = $this->printAccessButton($subFolder, true);
|
||||
}
|
||||
if($enableClipboard) {
|
||||
$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($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)
|
||||
$actions['view_folder'] = '<a href="'.$this->params['settings']->_httpRoot.'out/out.ViewFolder.php?folderid='.$subFolder->getID().'" title="'.getMLText("view_folder").'"><i class="fa fa-eye"></i></a>';
|
||||
|
|
|
@ -396,7 +396,7 @@ $(document).ready( function() {
|
|||
$('body').on('click', '[data-toggle="modal"]', function(ev){ /* {{{ */
|
||||
ev.preventDefault();
|
||||
if($(this).data("remote"))
|
||||
$($(this).data("target")+' .modal-body').load($(this).data("remote"));
|
||||
$($(this).data("target")+' .modal-body').load($(this).data("remote"), function() {setTimeout(function(){initMost();}, 500);});
|
||||
/* Also set the title */
|
||||
if($(this).data("modal-title"))
|
||||
$($(this).data("target")+' .modal-header h3').html($(this).data("modal-title"));
|
||||
|
@ -456,6 +456,8 @@ $(document).ready( function() {
|
|||
if(data.success) {
|
||||
$("#main-clipboard").html('Loading').load(seeddms_webroot+'out/out.Clipboard.php?action=mainclipboard')
|
||||
$("#menu-clipboard div").html('Loading').load(seeddms_webroot+'out/out.Clipboard.php?action=menuclipboard')
|
||||
$("div.ajax[data-action='navigation']").trigger('update', {});
|
||||
$("div.ajax[data-action='folderList']").trigger('update', {});
|
||||
noty({
|
||||
text: attr_msg,
|
||||
type: 'success',
|
||||
|
@ -491,6 +493,8 @@ $(document).ready( function() {
|
|||
if(data.success) {
|
||||
$("#main-clipboard").html('Loading').load(seeddms_webroot+'out/out.Clipboard.php?action=mainclipboard')
|
||||
$("#menu-clipboard div").html('Loading').load(seeddms_webroot+'out/out.Clipboard.php?action=menuclipboard')
|
||||
$("div.ajax[data-action='navigation']").trigger('update', {});
|
||||
$("div.ajax[data-action='folderList']").trigger('update', {});
|
||||
noty({
|
||||
text: attr_msg,
|
||||
type: 'success',
|
||||
|
@ -765,8 +769,7 @@ $(document).ready( function() {
|
|||
window.history.back();
|
||||
}); /* }}} */
|
||||
|
||||
$("body").on("blur", "span.editable", function(e) { /* {{{ */
|
||||
console.log($(this).data('document'));
|
||||
$("body").on("blur", "span.editdocname", function(e) { /* {{{ */
|
||||
e.preventDefault();
|
||||
$.post(seeddms_webroot+"op/op.Ajax.php", { command: "setdocumentname", id: $(this).data('document'), formtoken: $(this).data('formtoken'), name: $(this).text() })
|
||||
.done(function( data ) {
|
||||
|
@ -802,6 +805,8 @@ function onAddClipboard(ev) { /* {{{ */
|
|||
if(data.success) {
|
||||
$("#main-clipboard").html('Loading').load(seeddms_webroot+'out/out.Clipboard.php?action=mainclipboard')
|
||||
$("#menu-clipboard div").html('Loading').load(seeddms_webroot+'out/out.Clipboard.php?action=menuclipboard')
|
||||
$("div.ajax[data-action='navigation']").trigger('update', {});
|
||||
$("div.ajax[data-action='folderList']").trigger('update', {});
|
||||
noty({
|
||||
text: data.message,
|
||||
type: 'success',
|
||||
|
|
Loading…
Reference in New Issue
Block a user