diff --git a/CHANGELOG b/CHANGELOG index f55027538..0ec0fe116 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -12,6 +12,8 @@ -------------------------------------------------------------------------------- - merge changes up to 5.1.27 - fix triggering workflow (Closes: #542) +- create original file name from new document name when uploading document + from the library folder. Used to be the original file name -------------------------------------------------------------------------------- Changes in version 6.0.19 @@ -256,6 +258,7 @@ is done - fix sorting in search result - import of users can handle hidden and disabled flag +- image conversion falls back to gd library if imagick extension is not loaded -------------------------------------------------------------------------------- Changes in version 5.1.26 diff --git a/controllers/class.ViewOnline.php b/controllers/class.ViewOnline.php index 7d071db17..6b9ca3f0a 100644 --- a/controllers/class.ViewOnline.php +++ b/controllers/class.ViewOnline.php @@ -49,16 +49,19 @@ class SeedDMS_Controller_ViewOnline extends SeedDMS_Controller_Common { */ $this->params['content'] = $content; if(null === $this->callHook('version')) { - header("Content-Type: " . $content->getMimeType()); - $efilename = rawurlencode($content->getOriginalFileName()); - if (!isset($settings->_viewOnlineFileTypes) || !is_array($settings->_viewOnlineFileTypes) || !in_array(strtolower($content->getFileType()), $settings->_viewOnlineFileTypes)) { - header("Content-Disposition: attachment; filename=\"" . $efilename . "\"; filename*=UTF-8''".$efilename); - } else { - header("Content-Disposition: filename=\"" . $efilename . "\"; filename*=UTF-8''".$efilename); - } - header("Cache-Control: must-revalidate"); + if(file_exists($dms->contentDir . $content->getPath())) { + header("Content-Type: " . $content->getMimeType()); + $efilename = rawurlencode($content->getOriginalFileName()); + if (!isset($settings->_viewOnlineFileTypes) || !is_array($settings->_viewOnlineFileTypes) || !in_array(strtolower($content->getFileType()), $settings->_viewOnlineFileTypes)) { + header("Content-Disposition: attachment; filename=\"" . $efilename . "\"; filename*=UTF-8''".$efilename); + } else { + header("Content-Disposition: filename=\"" . $efilename . "\"; filename*=UTF-8''".$efilename); + } + header("Cache-Control: must-revalidate"); + header("ETag: ".$content->getChecksum()); - sendFile($dms->contentDir.$content->getPath()); + sendFile($dms->contentDir.$content->getPath()); + } } break; } diff --git a/doc/README.Ldap b/doc/README.Ldap new file mode 100644 index 000000000..7940ca091 --- /dev/null +++ b/doc/README.Ldap @@ -0,0 +1,58 @@ +Ldap configuration +=================== + +The configuration for authentication against an ldap server needs to be done +the settings.xml file using a text editor. It cannot be edited from within the +web gui. + +SeedDMS supports ldap authentication using an Active Directory (AD) or a +regular ldap server, e.g. openldap + +The location of the ldap server is specified in two parameters: 'host' and +'port'. 'host' can be either a plain hostname or an ldap URI, including the +protocol, the host and optionally the port, e.g. ldap://localhost:389. In case +of an URI the port in the configuration must remain empty. + +The authentication itself is a two step process which differs, depending on how +to bind to the server. If the configuration sets 'bindDN' and 'bindPW', those +values will be used for a initial non anonymous bind to the ldap server +otherwise an anonymous bind is executed. + +After the initial bind, a ldap search for either 'uid=' (ldap) or +'sAMAccountName=' (AD) below basedn is done. The purpose of this +search is to retrieve a working bindDN which is then used to actually +authenticate the user. In case of an anonymous first bind the search will +likely fail and the bindDN for the second bind will be either +'uid=,' (ldap) or '@' (AD). If +the search succeeds the bindDN will be taken from the user's data in the ldap +server. This bindDN will be used for a second bind using the users password. +If the second bind succeeds the user could be successfully authenticated. + +The data from the ldap server can be used to create an account in SeedDMS +if the user trying to login does not exist yet, but was able to authenticate. +This will only be done if 'authentication->restricted' in the configuration +is set to true. In that case the common name (cn) and email address is taken +from ldap. Existing accounts in SeedDMS will not be updated with data from +ldap. + +Examples +--------- + +Anonymous bind to openldap on localhost, port 389 +- type = "ldap" +- baseDN = "ou=users,dc=mycompany,dc=de" +- host = "ldap://localhost" + +During authentication as user 'admin' the following steps are executed + +1. connect to ldap server at localhost:389 +2. do an anonymous bind +3. search for 'uid=admin' below basedn +4.1. if search succeeds use the dn from the user +4.2. if search fails use 'uid=admin,' as dn +5. do a non anonymous bind with dn and password entered by user +6. if step 5. succeeds the use is authenticated + +If bindDN and bindPW are specified in the configuration, the second step +will be a non anonymous bind. + diff --git a/doc/README.Mail b/doc/README.Mail new file mode 100644 index 000000000..2ee7c999d --- /dev/null +++ b/doc/README.Mail @@ -0,0 +1,30 @@ +Mail configuration +=================== + +SeedDMS uses email to + +* notify users about changes of documents and folders +* send instructions during the password forgotten process + +Configuring email in SeedDMS is simple on systems running a +local mail server, because this is the default in SeedDMS and +no additional configuration is needed. On Linux you should +consider running a local mail server, which relais the mails +to your outgoing mail server. If you cannot run a local mail +server, you can still configure SeedDMS to use an outgoing +SMTP server. Below are some examples on how to configure +SeedDMS for different hosters. + +1&1 +--------- + +smtp server: ssl://smtp.1und1.de +smtp port: 465 + +Gmail +--------- +smtp server: smtp.gmail.com +smtp port: 587 +note: you have to turn on 'Less secure app access' in your google account, +otherwise you will not be able to send mail. It will quit with an error +complaining about wrong credentials diff --git a/doc/README.ocr b/doc/README.ocr new file mode 100644 index 000000000..aaf6a9196 --- /dev/null +++ b/doc/README.ocr @@ -0,0 +1,59 @@ +OCR +==== + +SeedDMS itself has no support for optical character recognition (OCR) +because it does not care about the content of file. Though, external +OCR software can be used to convert an image into text and index it +by the full text search engine. + +The following script can be use to convert a scanned image into pdf +with a text layer added. The script actually takes this file to +ran it through pdftotext. It was published in the seeddms forum +https://sourceforge.net/p/seeddms/discussion/general/thread/4ec5973d/ + + +#!/bin/bash +inputpdf=$1 +temp_folder=/tmp/seedinput/$(date +"%Y_%m_%d_%H%M%S")/ +lockfile=/tmp/seed +protokolldatei=./tesser_syslog +cores=2 + +mkdir -p $lockfile + +while [ -e "$lockfile"/"`basename $0`" ]; +do + sleep 5 +done + +if ( set -o noclobber; echo "locked" > "$lockfile"/"`basename $0`"); then + +trap 'rm -f "$lockfile"/"`basename $0`"; echo $(date) " Lockdatei wird geloescht: " $lockfile"/"`basename $0` Aufrufparameter: $* >> $protokolldatei ;rm -r $temp_folder; exit $?' INT TERM KILL EXIT + #das Datum mit dem Scriptnamen in die Protokolldatei schreiben + echo $(date) " Lockdatei erstellt: " $lockfile"/"`basename $0` >> $protokolldatei + +else + #Script beenden falls Lockdatei nicht erstellt werden konnte + echo $(date) " Programm wird beendet, Lockdatei konnte nicht erstellt werden: $lockfile"/"`basename $0` Aufrufparameter: $* " >> $protokolldatei + exit 1 +fi + +mkdir -p $temp_folder + +$(pdftotext -raw $1 - 1> $temp_folder''tmp.txt ) +pdf_contents=`cat $temp_folder''tmp.txt` +pdf_contents=`echo "$pdf_contents" | tr -dc '[:print:]'` +if [ -z "$pdf_contents" ]; then + convert -density 300 -quality 95 $inputpdf +adjoin $temp_folder''image%03d.jpg + find $temp_folder -name '*.jpg'| parallel --gnu -j $cores tesseract -l deu --psm 6 {} {} pdf + +num=`find $temp_folder -name '*.pdf'| wc -l` +if [ "$num" -gt "1" ]; then + pdfunite $temp_folder*.pdf $temp_folder''tmp.pdf +else + mv $temp_folder*.pdf $temp_folder''tmp.pdf +fi + pdftotext $temp_folder''tmp.pdf $temp_folder''tmp.txt + mv $temp_folder''tmp.pdf $1 +fi +cat $temp_folder''tmp.txt diff --git a/inc/inc.ClassConversionServiceImageToImage.php b/inc/inc.ClassConversionServiceImageToImage.php index 952efc4f0..b5c9e7951 100644 --- a/inc/inc.ClassConversionServiceImageToImage.php +++ b/inc/inc.ClassConversionServiceImageToImage.php @@ -28,15 +28,15 @@ class SeedDMS_ConversionServiceImageToImage extends SeedDMS_ConversionServiceBas */ public $timeout; - public function __construct($from, $to) { + public function __construct($from, $to) { /* {{{ */ $this->from = $from; $this->to = $to; $this->timeout = 5; - } + } /* }}} */ - public function getInfo() { - return "Convert with imagick php functions"; - } + public function getInfo() { /* {{{ */ + return "Convert with imagick or gd php functions"; + } /* }}} */ public function getAdditionalParams() { /* {{{ */ return [ @@ -44,28 +44,68 @@ class SeedDMS_ConversionServiceImageToImage extends SeedDMS_ConversionServiceBas ]; } /* }}} */ - public function convert($infile, $target = null, $params = array()) { + /** + * Convert a pixel image into png and scale it + * + * This method uses imagick and if not available falls back to the gd library. + */ + public function convert($infile, $target = null, $params = array()) { /* {{{ */ $start = microtime(true); - $imagick = new Imagick(); - try { - if($imagick->readImage($infile)) { + if(extension_loaded('imagick')) { + $imagick = new Imagick(); + try { + if($imagick->readImage($infile)) { + if(!empty($params['width'])) + $imagick->scaleImage(min((int) $params['width'], $imagick->getImageWidth()), 0); + $end = microtime(true); + if($this->logger) { + $this->logger->log('Conversion from '.$this->from.' to '.$this->to.' with imagick service took '.($end-$start).' sec.', PEAR_LOG_INFO); + } + if($target) { + return $imagick->writeImage($target); + } else { + return $imagick->getImageBlob(); + } + } + } catch (ImagickException $e) { + return false; + } + } elseif(extension_loaded('gd')) { + $im = null; + switch($this->from) { + case 'image/jpeg': + case 'image/jpg': + $im = @imagecreatefromjpeg($infile); + break; + case 'image/png': + $im = @imagecreatefrompng($infile); + break; + case 'image/gif': + $im = @imagecreatefromgif($infile); + break; + } + if($im) { + $size = getimagesize($infile); if(!empty($params['width'])) - $imagick->scaleImage(min((int) $params['width'], $imagick->getImageWidth()), 0); + $im = imagescale($im, min((int) $params['width'], $size[0])); $end = microtime(true); if($this->logger) { - $this->logger->log('Conversion from '.$this->from.' to '.$this->to.' with image service took '.($end-$start).' sec.', PEAR_LOG_INFO); + $this->logger->log('Conversion from '.$this->from.' to '.$this->to.' with gd image service took '.($end-$start).' sec.', PEAR_LOG_INFO); } if($target) { - return $imagick->writeImage($target); + return imagepng($im, $target); } else { - return $imagick->getImageBlob(); + ob_start(); + var_dump(imagepng($im)); + $image = ob_get_clean(); + return $image; } + } else { + return false; } - } catch (ImagickException $e) { - return false; } return false; - } + } /* }}} */ } diff --git a/inc/inc.ConversionInit.php b/inc/inc.ConversionInit.php index 23795180c..bfda6f0c9 100644 --- a/inc/inc.ConversionInit.php +++ b/inc/inc.ConversionInit.php @@ -23,13 +23,15 @@ if(!empty($settings->_converters['fulltext'])) { if(extension_loaded('imagick')) { $conversionmgr->addService(new SeedDMS_ConversionServicePdfToImage('application/pdf', 'image/png'))->setLogger($logger); + $conversionmgr->addService(new SeedDMS_ConversionServiceImageToImage('image/tiff', 'image/png'))->setLogger($logger); + $conversionmgr->addService(new SeedDMS_ConversionServiceImageToImage('image/svg+xml', 'image/png'))->setLogger($logger); +} +if(extension_loaded('gd') || extension_loaded('imagick')) { $conversionmgr->addService(new SeedDMS_ConversionServiceImageToImage('image/jpeg', 'image/png'))->setLogger($logger); $conversionmgr->addService(new SeedDMS_ConversionServiceImageToImage('image/png', 'image/png'))->setLogger($logger); $conversionmgr->addService(new SeedDMS_ConversionServiceImageToImage('image/jpg', 'image/png'))->setLogger($logger); $conversionmgr->addService(new SeedDMS_ConversionServiceImageToImage('image/gif', 'image/png'))->setLogger($logger); - $conversionmgr->addService(new SeedDMS_ConversionServiceImageToImage('image/tiff', 'image/png'))->setLogger($logger); - $conversionmgr->addService(new SeedDMS_ConversionServiceImageToImage('image/svg+xml', 'image/png'))->setLogger($logger); } $conversionmgr->addService(new SeedDMS_ConversionServiceTextToText('text/plain', 'text/plain'))->setLogger($logger); diff --git a/inc/inc.Utils.php b/inc/inc.Utils.php index e129b8636..b05b5f386 100644 --- a/inc/inc.Utils.php +++ b/inc/inc.Utils.php @@ -367,6 +367,34 @@ function utf8_basename($path, $suffix='') { /* {{{ */ return $file; } /* }}} */ +/** + * Return a valid file name + * + * This function returns a valid file name for the given document content + * or an arbitrary string. If a document content is given the name of + * the document will be used. The extension of the file name will be + * either taken from the document name or the original file. If the two + * differ the extension from the original file name will be used. + * + * @param object|string $content document content or an arbitrary string + * @return string valid file name + */ +function getFilenameByDocname($content) { /* {{{ */ + if(is_string) { + $filename = $content; + } else { + $document = $content->getDocument(); + $ext = pathinfo($document->getName(), PATHINFO_EXTENSION); + $oext = pathinfo($content->getOriginalFileName(), PATHINFO_EXTENSION); + if($ext == $oext) + $filename = $document->getName(); + else { + $filename = $document->getName().'.'.$oext; + } + } + return mb_ereg_replace("([^\w\s\d\-_~,;\[\]\(\).])", '', $filename); +} /* }}} */ + function getLogger($prefix='') { /* {{{ */ global $settings; diff --git a/install/update-1.8.1/update.php b/install/update-1.8.1/update.php index c1ac6fd2e..9e483850b 100644 --- a/install/update-1.8.1/update.php +++ b/install/update-1.8.1/update.php @@ -1,42 +1,42 @@ -"; if (!$user->isAdmin()) { print "ERROR: You must be administrator to execute the update"; - die; + die; } -function update_content() +function update_content() { GLOBAL $db,$settings; @@ -45,7 +45,7 @@ function update_content() if (!makedir($settings->_contentDir."/temp")) return false; // for all contents - $queryStr = "SELECT * FROM tblDocumentContent"; + $queryStr = "SELECT * FROM tblDocumentContent"; $contents = $db->getResultArray($queryStr); if (is_bool($contents)&&!$contents) return false; @@ -75,7 +75,7 @@ function update_db() GLOBAL $db,$settings; // for all contents - $queryStr = "SELECT * FROM tblDocumentContent"; + $queryStr = "SELECT * FROM tblDocumentContent"; $contents = $db->getResultArray($queryStr); if (is_bool($contents)&&!$contents) return false; @@ -100,25 +100,24 @@ function update_db() if (!$db->getResult($queryStr)) return false; return true; -} +} print "Updating ...please wait
"; - - -if (!update_content()) { + + +if (!update_content()) { print "ERROR: An error occurred during the directory reordering"; - die; + die; } -if (!update_db()) { +if (!update_db()) { print "ERROR: An error occurred during the DB update"; print "
Please try to execute the update.sql manually"; - die; + die; } print "Update done
"; - print ""; - -?> +print ""; + diff --git a/install/update-1.8.1/update.sql b/install/update-1.8.1/update.sql index ecaf891be..a5d7ce657 100644 --- a/install/update-1.8.1/update.sql +++ b/install/update-1.8.1/update.sql @@ -1,33 +1,33 @@ -- mysql -uroot -ppassword mydms < update.sql -- this script must be executed when updating form a version < 1.8.1 --- -------------------------------------------------------- - --- --- New table for document-related files +-- -------------------------------------------------------- + +-- +-- New table for document-related files -- -CREATE TABLE `tblDocumentFiles` ( - `id` int(11) NOT NULL auto_increment, - `document` int(11) NOT NULL default '0', - `userID` int(11) NOT NULL default '0', - `comment` text, - `name` varchar(150) default NULL, - `date` int(12) default NULL, - `dir` varchar(255) NOT NULL default '', - `orgFileName` varchar(150) NOT NULL default '', - `fileType` varchar(10) NOT NULL default '', - `mimeType` varchar(70) NOT NULL default '', - PRIMARY KEY (`id`) -) ; +CREATE TABLE `tblDocumentFiles` ( + `id` int(11) NOT NULL auto_increment, + `document` int(11) NOT NULL default '0', + `userID` int(11) NOT NULL default '0', + `comment` text, + `name` varchar(150) default NULL, + `date` int(12) default NULL, + `dir` varchar(255) NOT NULL default '', + `orgFileName` varchar(150) NOT NULL default '', + `fileType` varchar(10) NOT NULL default '', + `mimeType` varchar(70) NOT NULL default '', + PRIMARY KEY (`id`) +) Engine=MyISAM ; --- -------------------------------------------------------- - --- --- Not longer required by new filesystem structure +-- -------------------------------------------------------- + +-- +-- Not longer required by new filesystem structure -- -DROP TABLE `tblDirPath`; -DROP TABLE `tblPathList`; - - +DROP TABLE `tblDirPath`; +DROP TABLE `tblPathList`; + + diff --git a/install/update-1.9.0/update.php b/install/update-1.9.0/update.php index ab190d1a1..f2ce8ea2d 100644 --- a/install/update-1.9.0/update.php +++ b/install/update-1.9.0/update.php @@ -1,39 +1,39 @@ -"; if (!$user->isAdmin()) { print "ERROR: You must be administrator to execute the update"; - die; + die; } function update_db() @@ -52,22 +52,21 @@ function update_db() if (!$db->getResult($queryStr)) return false; return true; -} +} print "Updating ...please wait
"; -print "
";
-
+print "
";
+
 if (!update_db()) {
 
 	print "
"; - + print "ERROR: An error occurred during the DB update"; print "
Please try to execute the update.sql manually"; die; - + }else print "
Update done
"; - print ""; - -?> +print ""; + diff --git a/install/update-1.9.0/update.sql b/install/update-1.9.0/update.sql index d0aeaee6b..1e50b1363 100644 --- a/install/update-1.9.0/update.sql +++ b/install/update-1.9.0/update.sql @@ -1,10 +1,10 @@ -- mysql -uyouruser -pyourpassword yourdb < update.sql -- this script must be executed when updating form a version < 1.9 --- -------------------------------------------------------- - --- --- New field for hidden users +-- -------------------------------------------------------- + +-- +-- New field for hidden users -- ALTER TABLE `tblUsers` ADD `hidden` smallint(1) NOT NULL default '0' ; @@ -12,27 +12,27 @@ ALTER TABLE `tblUsers` ADD `hidden` smallint(1) NOT NULL default '0' ; -- -- New field for group manager permission -- - -ALTER TABLE `tblGroupMembers` ADD `manager` smallint(1) NOT NULL default '0' ; --- --- Table structure for mandatory reviewers --- - -CREATE TABLE `tblMandatoryReviewers` ( - `userID` int(11) NOT NULL default '0', - `reviewerUserID` int(11) NOT NULL default '0', - `reviewerGroupID` int(11) NOT NULL default '0', - PRIMARY KEY (`userID`,`reviewerUserID`,`reviewerGroupID`) -) ; +ALTER TABLE `tblGroupMembers` ADD `manager` smallint(1) NOT NULL default '0' ; --- --- Table structure for mandatory approvers --- - -CREATE TABLE `tblMandatoryApprovers` ( - `userID` int(11) NOT NULL default '0', - `approverUserID` int(11) NOT NULL default '0', - `approverGroupID` int(11) NOT NULL default '0', - PRIMARY KEY (`userID`,`approverUserID`,`approverGroupID`) -) ; +-- +-- Table structure for mandatory reviewers +-- + +CREATE TABLE `tblMandatoryReviewers` ( + `userID` int(11) NOT NULL default '0', + `reviewerUserID` int(11) NOT NULL default '0', + `reviewerGroupID` int(11) NOT NULL default '0', + PRIMARY KEY (`userID`,`reviewerUserID`,`reviewerGroupID`) +) Engine=MyISAM ; + +-- +-- Table structure for mandatory approvers +-- + +CREATE TABLE `tblMandatoryApprovers` ( + `userID` int(11) NOT NULL default '0', + `approverUserID` int(11) NOT NULL default '0', + `approverGroupID` int(11) NOT NULL default '0', + PRIMARY KEY (`userID`,`approverUserID`,`approverGroupID`) +) Engine=MyISAM ; diff --git a/install/update-2.0.1/update.php b/install/update-2.0.1/update.php index ab190d1a1..ae3874722 100644 --- a/install/update-2.0.1/update.php +++ b/install/update-2.0.1/update.php @@ -1,39 +1,39 @@ -"; if (!$user->isAdmin()) { print "ERROR: You must be administrator to execute the update"; - die; + die; } function update_db() @@ -52,22 +52,20 @@ function update_db() if (!$db->getResult($queryStr)) return false; return true; -} +} print "Updating ...please wait
"; -print "
";
-
+print "
";
+
 if (!update_db()) {
 
 	print "
"; - + print "ERROR: An error occurred during the DB update"; print "
Please try to execute the update.sql manually"; die; - + }else print "
Update done
"; - print ""; - -?> +print ""; diff --git a/install/update-3.3.0/update.php b/install/update-3.3.0/update.php index 7ea4e9485..8e5304841 100644 --- a/install/update-3.3.0/update.php +++ b/install/update-3.3.0/update.php @@ -20,9 +20,7 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -function check($doupdate=0) { /* {{{ */ - global $db, $settings; - +function check($db, $doupdate=0) { /* {{{ */ $arr = array(); $arr['tblDocuments'] = array('key'=>'id', 'fields'=>array('name', 'comment', 'keywords')); $arr['tblDocumentFiles'] = array('key'=>'id', 'fields'=>array('name', 'comment', 'mimeType')); @@ -91,7 +89,7 @@ else $doupdate = 0; $doupdate = 1; -if (!check($doupdate)) { +if (!check($db, $doupdate)) { print "

Update failed

"; } diff --git a/languages/ar_EG/lang.inc b/languages/ar_EG/lang.inc index 8d024b04b..728198e3d 100644 --- a/languages/ar_EG/lang.inc +++ b/languages/ar_EG/lang.inc @@ -222,6 +222,7 @@ URL: [url]', 'backup_tools' => 'أدوات النسخ الاحتياطية', 'batch_change_owner' => '', 'batch_new_owner_msg' => '', +'batch_operation' => '', 'batch_operation_result' => '', 'between' => 'بين', 'bg_BG' => 'بلغارية', @@ -301,6 +302,7 @@ URL: [url]', 'comment_changed_email' => 'تعليق تغيير البريد الإلكتروني', 'comment_for_current_version' => 'تعليق على الاصدار', 'configure_extension' => 'تعديل', +'confirm_change_owner' => '', 'confirm_clear_cache' => 'تعديل مسح المحفوظات', 'confirm_create_fulltext_index' => 'نعم: اود اعادة انشاء فهرس للنص الكامل !', 'confirm_move_document' => 'تاكيد نقل الملف', @@ -861,6 +863,8 @@ URL: [url]', 'mandatory_reviewers' => 'مراجعين اجباريين', 'mandatory_reviewer_no_access' => 'ممنوع دخول المراجع الإجباري', 'march' => 'مارس', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => 'الحجم الاقصى للملف', 'may' => 'مايو', 'menu_dropfolder' => 'صفحة المجلد', diff --git a/languages/bg_BG/lang.inc b/languages/bg_BG/lang.inc index e412d81ce..3066d81d9 100644 --- a/languages/bg_BG/lang.inc +++ b/languages/bg_BG/lang.inc @@ -205,6 +205,7 @@ $text = array( 'backup_tools' => 'Иструменти за бекъп', 'batch_change_owner' => '', 'batch_new_owner_msg' => '', +'batch_operation' => '', 'batch_operation_result' => '', 'between' => 'между', 'bg_BG' => 'Български', @@ -284,6 +285,7 @@ $text = array( 'comment_changed_email' => 'Коментарите са изменени', 'comment_for_current_version' => 'Коментар за версията', 'configure_extension' => '', +'confirm_change_owner' => '', 'confirm_clear_cache' => '', 'confirm_create_fulltext_index' => 'Да, пресъздай пълнотекстов индекс!', 'confirm_move_document' => '', @@ -790,6 +792,8 @@ $text = array( 'mandatory_reviewers' => '', 'mandatory_reviewer_no_access' => '', 'march' => 'март', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => 'Лимит за размер на файла', 'may' => 'май', 'menu_dropfolder' => '', diff --git a/languages/ca_ES/lang.inc b/languages/ca_ES/lang.inc index 287bac3e0..e39caf015 100644 --- a/languages/ca_ES/lang.inc +++ b/languages/ca_ES/lang.inc @@ -210,6 +210,7 @@ URL: [url]', 'backup_tools' => 'Eines de còpia de seguretat', 'batch_change_owner' => '', 'batch_new_owner_msg' => '', +'batch_operation' => '', 'batch_operation_result' => '', 'between' => 'entre', 'bg_BG' => 'Búlgar', @@ -289,6 +290,7 @@ URL: [url]', 'comment_changed_email' => '', 'comment_for_current_version' => 'Comentari de la versió actual', 'configure_extension' => '', +'confirm_change_owner' => '', 'confirm_clear_cache' => '', 'confirm_create_fulltext_index' => '', 'confirm_move_document' => '', @@ -795,6 +797,8 @@ URL: [url]', 'mandatory_reviewers' => '', 'mandatory_reviewer_no_access' => '', 'march' => 'Març', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => 'Mida màxima de pujada de cada fitxer', 'may' => 'Maig', 'menu_dropfolder' => '', diff --git a/languages/cs_CZ/lang.inc b/languages/cs_CZ/lang.inc index d654fe887..7f2022f4b 100644 --- a/languages/cs_CZ/lang.inc +++ b/languages/cs_CZ/lang.inc @@ -234,6 +234,7 @@ URL: [url]', 'backup_tools' => 'Nástroje pro zálohování', 'batch_change_owner' => '', 'batch_new_owner_msg' => '', +'batch_operation' => '', 'batch_operation_result' => '', 'between' => 'mezi', 'bg_BG' => 'Bulharština', @@ -313,6 +314,7 @@ URL: [url]', 'comment_changed_email' => '', 'comment_for_current_version' => 'Komentář k aktuální verzi', 'configure_extension' => 'Konfigurovat rozšíření', +'confirm_change_owner' => '', 'confirm_clear_cache' => 'Chtěli byste vyčistit mezipaměť? Tím se odstraní všechny předběžně vygenerované náhledy.', 'confirm_create_fulltext_index' => 'Ano, chci znovu vytvořit fulltext index!', 'confirm_move_document' => 'Potvrďte přesunutí dokumentu.', @@ -892,6 +894,8 @@ URL: [url]', 'mandatory_reviewers' => 'Stanovení recenzenti', 'mandatory_reviewer_no_access' => 'Stanovený recenzent \'[user]\' má nedostatečná přístupová práva.', 'march' => 'Březen', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => 'Max. délka pro nahrání jednoho souboru', 'may' => 'Květen', 'menu_dropfolder' => 'Vhazovací složka', diff --git a/languages/de_DE/lang.inc b/languages/de_DE/lang.inc index e66bbd62c..6854064ad 100644 --- a/languages/de_DE/lang.inc +++ b/languages/de_DE/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (3119), dgrutsch (22) +// Translators: Admin (3123), dgrutsch (22) $text = array( '2_factor_auth' => '2-Faktor Authentifizierung', @@ -273,6 +273,7 @@ URL: [url]

', 'backup_tools' => 'Backup tools', 'batch_change_owner' => 'Besitzer ändern', 'batch_new_owner_msg' => 'Der Besitzer von [count] Dokuments wurde geändert.', +'batch_operation' => 'Massenoperation', 'batch_operation_result' => 'Ergebnis der Massenoperation', 'between' => 'zwischen', 'bg_BG' => 'Bulgarisch', @@ -352,6 +353,7 @@ URL: [url]

', 'comment_changed_email' => '', 'comment_for_current_version' => 'Kommentar zur aktuellen Version', 'configure_extension' => 'Erweiterung konfigurieren', +'confirm_change_owner' => 'Bitte bestätigen Sie den Besitzerwechsel der ausgewählten Objekte.', 'confirm_clear_cache' => 'Wollen Sie wirklich den Cache löschen? Dies entfernt alle vorberechneten Vorschaubilder, Javascript und andere Dateien.', 'confirm_create_fulltext_index' => 'Ja, Ich möchte den Volltext-Index neu erzeugen!.', 'confirm_move_document' => 'Dokument wirklich verschieben?', @@ -1035,6 +1037,8 @@ URL: [url]

', 'mandatory_reviewers' => 'Zwingende Prüfer', 'mandatory_reviewer_no_access' => 'Zwingender Prüfer \'[user]\' hat nicht ausreichende Zugriffsrechte.', 'march' => 'März', +'mark_document' => 'Dokument für Massenoperation auswählen', +'mark_folder' => 'Ordner für Massenoperation auswählen', 'max_upload_size' => 'Maximale Dateigröße', 'may' => 'Mai', 'menu_dropfolder' => 'Ablageordner', diff --git a/languages/el_GR/lang.inc b/languages/el_GR/lang.inc index 27484ba6a..ba8722753 100644 --- a/languages/el_GR/lang.inc +++ b/languages/el_GR/lang.inc @@ -205,6 +205,7 @@ $text = array( 'backup_tools' => 'Εργαλεία εφεδρικής καταγραφής', 'batch_change_owner' => '', 'batch_new_owner_msg' => '', +'batch_operation' => '', 'batch_operation_result' => '', 'between' => 'μεταξύ', 'bg_BG' => 'Βουλγάρικα', @@ -284,6 +285,7 @@ $text = array( 'comment_changed_email' => '', 'comment_for_current_version' => 'τρέχουσα έκδοση', 'configure_extension' => '', +'confirm_change_owner' => '', 'confirm_clear_cache' => '', 'confirm_create_fulltext_index' => 'Ναι, Θα ήθελα την επαναδημιουργία των δεικτών πλήρους κειμένου', 'confirm_move_document' => '', @@ -790,6 +792,8 @@ $text = array( 'mandatory_reviewers' => '', 'mandatory_reviewer_no_access' => '', 'march' => 'Μάρτιος', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => 'Μέγιστο μέγεθος μεταφόρτωσης', 'may' => 'Μάϊος', 'menu_dropfolder' => '', diff --git a/languages/en_GB/lang.inc b/languages/en_GB/lang.inc index df9efd92f..7c66d21d9 100644 --- a/languages/en_GB/lang.inc +++ b/languages/en_GB/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (2213), archonwang (3), dgrutsch (9), netixw (14) +// Translators: Admin (2217), archonwang (3), dgrutsch (9), netixw (14) $text = array( '2_factor_auth' => '2-factor authentication', @@ -273,6 +273,7 @@ URL: [url]

', 'backup_tools' => 'Backup tools', 'batch_change_owner' => 'Change owner', 'batch_new_owner_msg' => 'The owner of [count] documents has been changed.', +'batch_operation' => 'Batch operation', 'batch_operation_result' => 'Result of batch operation', 'between' => 'between', 'bg_BG' => 'Bulgarian', @@ -352,6 +353,7 @@ URL: [url]

', 'comment_changed_email' => '', 'comment_for_current_version' => 'Version comment', 'configure_extension' => 'Configure extension', +'confirm_change_owner' => 'Please confirm changing the owner of the selected objects.', 'confirm_clear_cache' => 'Would you really like to clear the cache? This will remove all precalculated preview images, javascript and other files.', 'confirm_create_fulltext_index' => 'Yes, I would like to recreate the fulltext index!', 'confirm_move_document' => 'Please confirm moving the document.', @@ -1036,6 +1038,8 @@ URL: [url]

', 'mandatory_reviewers' => 'Mandatory reviewers', 'mandatory_reviewer_no_access' => 'Mandatory reviewer \'[user]\' has insufficient access rights.', 'march' => 'March', +'mark_document' => 'Mark document for batch operation', +'mark_folder' => 'Mark folder for batch operation', 'max_upload_size' => 'Maximum upload size', 'may' => 'May', 'menu_dropfolder' => 'Drop folder', diff --git a/languages/es_ES/lang.inc b/languages/es_ES/lang.inc index 89e39bcbb..dd728ffb6 100644 --- a/languages/es_ES/lang.inc +++ b/languages/es_ES/lang.inc @@ -229,6 +229,7 @@ URL: [url]', 'backup_tools' => 'Herramientas de copia de seguridad', 'batch_change_owner' => '', 'batch_new_owner_msg' => '', +'batch_operation' => '', 'batch_operation_result' => '', 'between' => 'entre', 'bg_BG' => 'Búlgaro', @@ -308,6 +309,7 @@ URL: [url]', 'comment_changed_email' => '', 'comment_for_current_version' => 'Comentario de la versión actual', 'configure_extension' => 'Configurar extensión', +'confirm_change_owner' => '', 'confirm_clear_cache' => '', 'confirm_create_fulltext_index' => '¡Sí, quiero regenerar el índice te texto completo¡', 'confirm_move_document' => '', @@ -880,6 +882,8 @@ URL: [url]', 'mandatory_reviewers' => 'Revisores obligatorios', 'mandatory_reviewer_no_access' => 'El revisor obligatorio \'[user]\' no tiene suficiente nivel de acceso.', 'march' => 'Marzo', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => 'Tamaño máximo de subida para cada fichero', 'may' => 'Mayo', 'menu_dropfolder' => '', diff --git a/languages/fr_FR/lang.inc b/languages/fr_FR/lang.inc index 27e5afd3e..a5ad75000 100644 --- a/languages/fr_FR/lang.inc +++ b/languages/fr_FR/lang.inc @@ -263,6 +263,7 @@ URL : [url]

', 'backup_tools' => 'Outils de sauvegarde', 'batch_change_owner' => '', 'batch_new_owner_msg' => '', +'batch_operation' => '', 'batch_operation_result' => '', 'between' => 'entre', 'bg_BG' => 'Bulgare', @@ -342,6 +343,7 @@ URL : [url]

', 'comment_changed_email' => 'Commentaire lors du changement d\'adresse mail', 'comment_for_current_version' => 'Commentaires pour la version actuelle', 'configure_extension' => 'Configurer l’extension', +'confirm_change_owner' => '', 'confirm_clear_cache' => 'Voulez-vous vraiment vider le cache ? Cela va effacer toutes les miniatures.', 'confirm_create_fulltext_index' => 'Oui, je souhaite recréer l\'index de recherche plein texte !', 'confirm_move_document' => 'Veuillez confirmer le déplacement du document.', @@ -1022,6 +1024,8 @@ URL : [url]

', 'mandatory_reviewers' => 'Examinateurs', 'mandatory_reviewer_no_access' => 'Examinateur \'[user]\' ne dispose pas des droits suffisants', 'march' => 'Mars', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => 'Taille maximum de fichier déposé', 'may' => 'Mai', 'menu_dropfolder' => 'Dossier de dépôt', diff --git a/languages/hr_HR/lang.inc b/languages/hr_HR/lang.inc index f1aadd7cb..786fc2d69 100644 --- a/languages/hr_HR/lang.inc +++ b/languages/hr_HR/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (1248), marbanas (16) +// Translators: Admin (1249), marbanas (16) $text = array( '2_factor_auth' => '', @@ -234,6 +234,7 @@ Internet poveznica: [url]', 'backup_tools' => 'Alat za sigurnosnu kopiju', 'batch_change_owner' => '', 'batch_new_owner_msg' => '', +'batch_operation' => '', 'batch_operation_result' => '', 'between' => 'između', 'bg_BG' => 'Bugarski', @@ -313,6 +314,7 @@ Internet poveznica: [url]', 'comment_changed_email' => 'Promjena komentara', 'comment_for_current_version' => 'Verzija komentara', 'configure_extension' => '', +'confirm_change_owner' => '', 'confirm_clear_cache' => '', 'confirm_create_fulltext_index' => 'Da, želim ponovo indeksirati cijeli tekst!', 'confirm_move_document' => '', @@ -727,7 +729,7 @@ Internet poveznica: [url]', 'hu_HU' => 'Mađarski', 'id' => 'ID', 'identical_version' => 'Nova verzija je identična trenutnoj verziji.', -'id_ID' => '', +'id_ID' => 'Indonezija', 'import' => '', 'importfs' => '', 'import_extension' => '', @@ -873,6 +875,8 @@ Internet poveznica: [url]', 'mandatory_reviewers' => 'Obavezni recezenti', 'mandatory_reviewer_no_access' => 'Recezenti \'[user]\' nemaju dovoljno prava pristupa.', 'march' => 'Ožujak', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => 'Max. veličina za prijenos', 'may' => 'Svibanj', 'menu_dropfolder' => '', diff --git a/languages/hu_HU/lang.inc b/languages/hu_HU/lang.inc index 76a406251..4d34fa79c 100644 --- a/languages/hu_HU/lang.inc +++ b/languages/hu_HU/lang.inc @@ -229,6 +229,7 @@ URL: [url]', 'backup_tools' => 'Mentő eszközök', 'batch_change_owner' => '', 'batch_new_owner_msg' => '', +'batch_operation' => '', 'batch_operation_result' => '', 'between' => 'között', 'bg_BG' => 'Bulgár', @@ -308,6 +309,7 @@ URL: [url]', 'comment_changed_email' => '', 'comment_for_current_version' => 'Megjegyzés az aktuális verzióhoz', 'configure_extension' => '', +'confirm_change_owner' => '', 'confirm_clear_cache' => '', 'confirm_create_fulltext_index' => 'Igen, szeretném újra létrehozni a teljes szöveg indexet!', 'confirm_move_document' => '', @@ -868,6 +870,8 @@ URL: [url]', 'mandatory_reviewers' => 'Kötelező felülvizsgálók', 'mandatory_reviewer_no_access' => 'Kötelező felülvizsgáló \'[user]\' nem rendelkezik elegendő jogosultságokkal.', 'march' => 'Március', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => 'Legnagyobb feltölthető méret', 'may' => 'Május', 'menu_dropfolder' => '', diff --git a/languages/id_ID/lang.inc b/languages/id_ID/lang.inc index f198ffcf2..dedcdbb1e 100644 --- a/languages/id_ID/lang.inc +++ b/languages/id_ID/lang.inc @@ -243,6 +243,7 @@ URL: [url]

', 'backup_tools' => 'Alat cadangan', 'batch_change_owner' => '', 'batch_new_owner_msg' => '', +'batch_operation' => '', 'batch_operation_result' => '', 'between' => '', 'bg_BG' => 'Bulgaria', @@ -322,6 +323,7 @@ URL: [url]

', 'comment_changed_email' => '', 'comment_for_current_version' => 'Komentar versi', 'configure_extension' => 'Konfigurasi ekstensi', +'confirm_change_owner' => '', 'confirm_clear_cache' => '', 'confirm_create_fulltext_index' => 'Ya, saya ingin membuat ulang indeks teks secara lengkap!', 'confirm_move_document' => '', @@ -924,6 +926,8 @@ URL: [url]

', 'mandatory_reviewers' => '', 'mandatory_reviewer_no_access' => 'Mandatory reviewer \'[user]\' memiliki hak akses yang tidak memadai.', 'march' => 'Maret', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => 'Ukuran maksimum unggahan', 'may' => 'Mei', 'menu_dropfolder' => 'Seret folder', diff --git a/languages/it_IT/lang.inc b/languages/it_IT/lang.inc index ff9e6e099..ffdf16cb2 100644 --- a/languages/it_IT/lang.inc +++ b/languages/it_IT/lang.inc @@ -234,6 +234,7 @@ URL: [url]', 'backup_tools' => 'Strumenti di backup', 'batch_change_owner' => '', 'batch_new_owner_msg' => '', +'batch_operation' => '', 'batch_operation_result' => '', 'between' => 'tra', 'bg_BG' => 'Bulgaro', @@ -313,6 +314,7 @@ URL: [url]', 'comment_changed_email' => '', 'comment_for_current_version' => 'Commento per la versione', 'configure_extension' => 'Configura estensione', +'confirm_change_owner' => '', 'confirm_clear_cache' => 'Vuoi davvero cancellare la cache? Questo eliminerà tutte le immagini di anteprima precalcolate.', 'confirm_create_fulltext_index' => 'Sì, desidero ricreare l\'indice fulltext!', 'confirm_move_document' => 'Conferma lo spostamento del documento.', @@ -878,6 +880,8 @@ URL: [url]', 'mandatory_reviewers' => 'Revisori necessari', 'mandatory_reviewer_no_access' => 'Il revisore necessario \'[user]\' non ha sufficienti permessi d\'accesso.', 'march' => 'Marzo', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => 'Dimensione massima caricabile per ogni file', 'may' => 'Maggio', 'menu_dropfolder' => 'Cartella di pubblicazione', diff --git a/languages/ko_KR/lang.inc b/languages/ko_KR/lang.inc index f8c36b479..dfb18a0b7 100644 --- a/languages/ko_KR/lang.inc +++ b/languages/ko_KR/lang.inc @@ -236,6 +236,7 @@ URL: [url]', 'backup_tools' => '백업 도구', 'batch_change_owner' => '', 'batch_new_owner_msg' => '', +'batch_operation' => '', 'batch_operation_result' => '', 'between' => '사이', 'bg_BG' => '불가리아', @@ -315,6 +316,7 @@ URL: [url]', 'comment_changed_email' => '', 'comment_for_current_version' => '버전 주석', 'configure_extension' => '', +'confirm_change_owner' => '', 'confirm_clear_cache' => '', 'confirm_create_fulltext_index' => '예, 전체 텍스트 인덱스를 다시 만들고 싶습니다!', 'confirm_move_document' => '', @@ -874,6 +876,8 @@ URL: [url]', 'mandatory_reviewers' => '필수 검토자', 'mandatory_reviewer_no_access' => '필수 검수자\'[user]\'가 충분한 권한을 가지고 있지 않습니다.', 'march' => '3월', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => '최대 업로드 크기', 'may' => '월', 'menu_dropfolder' => '', diff --git a/languages/lo_LA/lang.inc b/languages/lo_LA/lang.inc index 0648673ea..c8abfb81b 100644 --- a/languages/lo_LA/lang.inc +++ b/languages/lo_LA/lang.inc @@ -232,6 +232,7 @@ URL: [url]', 'backup_tools' => 'ເຄື່ອງມືສຳຮອງຂໍມູນ', 'batch_change_owner' => '', 'batch_new_owner_msg' => '', +'batch_operation' => '', 'batch_operation_result' => '', 'between' => 'ລະຫວ່າງ', 'bg_BG' => 'ບັດແກເຣີຍ', @@ -311,6 +312,7 @@ URL: [url]', 'comment_changed_email' => '', 'comment_for_current_version' => 'ຄວາມຄິດເຫັນກ່ຽວກັບເວີຊັ້ນ', 'configure_extension' => '', +'confirm_change_owner' => '', 'confirm_clear_cache' => 'ເຈົ້າຕ້ອງການລົບແຄຣຫຼືບໍ່? ການດຳເນີນການນີ້ຈະລົບພາບຕົວຢ່າງທັງໝົດທີມີການຄຳນວນລ່ວງໜ້າ', 'confirm_create_fulltext_index' => 'ແມ່ນແລ້ວ, ຂ້ອຍຕ້ອງການສ້າງດັດສະນີຂໍ້ມູນເຕັມ', 'confirm_move_document' => 'ກະລຸນາຢືນຢັນການຍ້າຍເອກະສານ', @@ -871,6 +873,8 @@ URL: [url]', 'mandatory_reviewers' => 'ຜູ້ກວດສອບແບບບັງຄັບ', 'mandatory_reviewer_no_access' => 'ຜູ້ກວດສອບແບບບັງຄັບ "[user] " ມີສິດທິການເຂົ້າເຖິງບໍ່ພຽງພໍ', 'march' => 'ເດືອນມີນາ', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => 'ຂະຫນາດການອັບໂຫລດສູງສຸດ', 'may' => 'ເດືອນພຶດສະພາ', 'menu_dropfolder' => 'ວາງໂຟລເດີ', diff --git a/languages/nb_NO/lang.inc b/languages/nb_NO/lang.inc index e491887fb..5690d0791 100644 --- a/languages/nb_NO/lang.inc +++ b/languages/nb_NO/lang.inc @@ -234,6 +234,7 @@ URL: [url]', 'backup_tools' => 'Sikkerhetskopi-verktøy', 'batch_change_owner' => '', 'batch_new_owner_msg' => '', +'batch_operation' => '', 'batch_operation_result' => '', 'between' => 'mellom', 'bg_BG' => 'Bulgaria', @@ -313,6 +314,7 @@ URL: [url]', 'comment_changed_email' => 'Forandre e-post', 'comment_for_current_version' => 'Versjonskommentar', 'configure_extension' => 'Konfigurere utvidelse', +'confirm_change_owner' => '', 'confirm_clear_cache' => 'Vil du virkelig tømme hurtigbufferen? Dette vil fjerne alle forhåndsberegnede forhåndsbilder.', 'confirm_create_fulltext_index' => 'Ja, jeg vil gjenskape fulltekstindeksen!', 'confirm_move_document' => 'Venligst bekreft flytting av dokumentet.', @@ -892,6 +894,8 @@ URL: [url]', 'mandatory_reviewers' => 'Obligatorisk korrekturleser', 'mandatory_reviewer_no_access' => 'Obligatorisk korrekturleser \'[user]\' har mangelfull adgangsrettigheter.', 'march' => 'Mars', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => 'Maksimal størrelse for opplasting', 'may' => 'Mai', 'menu_dropfolder' => 'Slipp mappe', diff --git a/languages/nl_NL/lang.inc b/languages/nl_NL/lang.inc index f609fa12e..cda9743fb 100644 --- a/languages/nl_NL/lang.inc +++ b/languages/nl_NL/lang.inc @@ -227,6 +227,7 @@ URL: [url]', 'backup_tools' => 'Backup-gereedschap', 'batch_change_owner' => '', 'batch_new_owner_msg' => '', +'batch_operation' => '', 'batch_operation_result' => '', 'between' => 'tussen', 'bg_BG' => 'Bulgaars', @@ -306,6 +307,7 @@ URL: [url]', 'comment_changed_email' => 'Gewijzigde email', 'comment_for_current_version' => 'Versie van het commentaar', 'configure_extension' => 'Configureer extensie', +'confirm_change_owner' => '', 'confirm_clear_cache' => 'Ja, ik wil de cache opschonen!', 'confirm_create_fulltext_index' => 'Ja, Ik wil de fulltext index opnieuw maken!', 'confirm_move_document' => 'Bevestig verplaatsing van document', @@ -885,6 +887,8 @@ URL: [url]', 'mandatory_reviewers' => 'Verplichte beoordelaars \'[user]\'', 'mandatory_reviewer_no_access' => 'De verplichte gebruikers hebben onvoldoende rechten.', 'march' => 'maart', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => 'Maximale upload omvang voor ieder bestand', 'may' => 'mei', 'menu_dropfolder' => 'Dropfolder', diff --git a/languages/pl_PL/lang.inc b/languages/pl_PL/lang.inc index c0c28b51e..04df9182a 100644 --- a/languages/pl_PL/lang.inc +++ b/languages/pl_PL/lang.inc @@ -222,6 +222,7 @@ URL: [url]', 'backup_tools' => 'Narzędzia kopii zapasowej', 'batch_change_owner' => '', 'batch_new_owner_msg' => '', +'batch_operation' => '', 'batch_operation_result' => '', 'between' => 'między', 'bg_BG' => 'Bułgarski', @@ -301,6 +302,7 @@ URL: [url]', 'comment_changed_email' => '', 'comment_for_current_version' => 'Komentarz do wersji', 'configure_extension' => 'Konfiguruj rozszerzenie', +'confirm_change_owner' => '', 'confirm_clear_cache' => 'Czy naprawdę chcesz wyczyścić pamięć podręczną? Spowoduje to usunięcie wszystkich wstępnie obliczonych obrazów podglądu.', 'confirm_create_fulltext_index' => 'Tak, chcę ponownie utworzyć indeks pełnotekstowy.', 'confirm_move_document' => 'Potwierdź przeniesienie dokumentu', @@ -861,6 +863,8 @@ URL: [url]', 'mandatory_reviewers' => 'Wymagani przeglądający', 'mandatory_reviewer_no_access' => 'Obowiązkowy recenzent \'[user]\' ma niewystarczające prawa dostępu.', 'march' => 'Marzec', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => 'Maksymalny rozmiar pliku', 'may' => 'Maj', 'menu_dropfolder' => 'Folder zrzutu', diff --git a/languages/pt_BR/lang.inc b/languages/pt_BR/lang.inc index eb60f0d15..22fff1e7c 100644 --- a/languages/pt_BR/lang.inc +++ b/languages/pt_BR/lang.inc @@ -234,6 +234,7 @@ URL: [url]', 'backup_tools' => 'Ferramentas de backup', 'batch_change_owner' => '', 'batch_new_owner_msg' => '', +'batch_operation' => '', 'batch_operation_result' => '', 'between' => 'entre', 'bg_BG' => 'Bulgaro', @@ -313,6 +314,7 @@ URL: [url]', 'comment_changed_email' => 'comentário alterado email', 'comment_for_current_version' => 'Comentário para versão atual', 'configure_extension' => 'Configurar extensão', +'confirm_change_owner' => '', 'confirm_clear_cache' => 'Você realmente gostaria de limpar o cache? Isso removerá todas as imagens de pré-visualização.', 'confirm_create_fulltext_index' => 'Sim, eu gostaria de recriar o índice de texto completo!', 'confirm_move_document' => 'Por favor, confirme a movimentação do documento.', @@ -892,6 +894,8 @@ URL: [url]', 'mandatory_reviewers' => 'Avaliadores obrigatórios', 'mandatory_reviewer_no_access' => 'Avaliação obrigatória \'[usuário]\' tem direitos de acesso insuficientes.', 'march' => 'Março', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => 'Tamanho máximo de arquivo para upload', 'may' => 'Maio', 'menu_dropfolder' => 'Pasta suspensa', diff --git a/languages/ro_RO/lang.inc b/languages/ro_RO/lang.inc index 1032a7c53..86f41e025 100644 --- a/languages/ro_RO/lang.inc +++ b/languages/ro_RO/lang.inc @@ -234,6 +234,7 @@ URL: [url]', 'backup_tools' => 'Backup tools', 'batch_change_owner' => '', 'batch_new_owner_msg' => '', +'batch_operation' => '', 'batch_operation_result' => '', 'between' => 'între', 'bg_BG' => 'Bulgară', @@ -313,6 +314,7 @@ URL: [url]', 'comment_changed_email' => '', 'comment_for_current_version' => 'Comentariu versiune', 'configure_extension' => '', +'confirm_change_owner' => '', 'confirm_clear_cache' => '', 'confirm_create_fulltext_index' => 'Da, aș dori să recreeze indexul pentru tot textul!', 'confirm_move_document' => '', @@ -873,6 +875,8 @@ URL: [url]', 'mandatory_reviewers' => 'Revizuitori obligatorii', 'mandatory_reviewer_no_access' => 'Revizuitorul obligatoriu \'[user]\' are drepturi de acces insuficiente.', 'march' => 'Martie', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => 'Dimensiunea maximă de încărcare', 'may' => 'Mai', 'menu_dropfolder' => '', diff --git a/languages/ru_RU/lang.inc b/languages/ru_RU/lang.inc index 47e336e42..66e152490 100644 --- a/languages/ru_RU/lang.inc +++ b/languages/ru_RU/lang.inc @@ -234,6 +234,7 @@ URL: [url]', 'backup_tools' => 'Резервные копии', 'batch_change_owner' => '', 'batch_new_owner_msg' => '', +'batch_operation' => '', 'batch_operation_result' => '', 'between' => 'между', 'bg_BG' => 'Болгарский', @@ -313,6 +314,7 @@ URL: [url]', 'comment_changed_email' => 'Сообщение об изменении комментария', 'comment_for_current_version' => 'Комментарий версии', 'configure_extension' => '', +'confirm_change_owner' => '', 'confirm_clear_cache' => 'Подтвердить очистку кеша', 'confirm_create_fulltext_index' => 'Да, пересоздать полнотекстовый индекс!', 'confirm_move_document' => 'Подтвердить перемещение документа', @@ -873,6 +875,8 @@ URL: [url]', 'mandatory_reviewers' => 'Обязательные рецензенты', 'mandatory_reviewer_no_access' => 'Обязательный рецензент «[user]» не имеет достаточных прав доступа.', 'march' => 'Март', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => 'Ограничение размера файла', 'may' => 'Май', 'menu_dropfolder' => '', diff --git a/languages/sk_SK/lang.inc b/languages/sk_SK/lang.inc index c579943d0..cecfb3870 100644 --- a/languages/sk_SK/lang.inc +++ b/languages/sk_SK/lang.inc @@ -234,6 +234,7 @@ URL: [url]', 'backup_tools' => 'Zálohovacie nástroje', 'batch_change_owner' => '', 'batch_new_owner_msg' => '', +'batch_operation' => '', 'batch_operation_result' => '', 'between' => 'medzi', 'bg_BG' => 'Bulharsky', @@ -313,6 +314,7 @@ URL: [url]', 'comment_changed_email' => 'Nepreložené', 'comment_for_current_version' => 'Version comment', 'configure_extension' => 'Configure extension', +'confirm_change_owner' => '', 'confirm_clear_cache' => 'Chcete naozaj vyčistiť vyrovnávaciu pamäť? Tým sa odstránia všetky predbežne náhľady obrázkov.', 'confirm_create_fulltext_index' => 'Áno, chcel by som obnoviť fullttext index!', 'confirm_move_document' => 'Potvrďte presunutie dokumentu.', @@ -892,6 +894,8 @@ URL: [url]', 'mandatory_reviewers' => 'Mandatory reviewers', 'mandatory_reviewer_no_access' => 'Mandatory reviewer \'[user]\' has insufficient access rights.', 'march' => 'Marec', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => 'Maximálna veľkosť každého súboru', 'may' => 'Máj', 'menu_dropfolder' => 'Drop zložka', diff --git a/languages/sv_SE/lang.inc b/languages/sv_SE/lang.inc index 0c3b50574..7dbdd34a5 100644 --- a/languages/sv_SE/lang.inc +++ b/languages/sv_SE/lang.inc @@ -235,6 +235,7 @@ URL: [url]', 'backup_tools' => 'Backup-verktyg', 'batch_change_owner' => '', 'batch_new_owner_msg' => '', +'batch_operation' => '', 'batch_operation_result' => '', 'between' => 'mellan', 'bg_BG' => 'Bulgariska', @@ -314,6 +315,7 @@ URL: [url]', 'comment_changed_email' => '', 'comment_for_current_version' => 'Kommentar till versionen', 'configure_extension' => '', +'confirm_change_owner' => '', 'confirm_clear_cache' => 'Vill du verkligen rensa cachen? Detta kommer att ta bort alla förlagrade bilder för förhandsvisning.', 'confirm_create_fulltext_index' => 'Ja, jag vill återskapa fulltext-sökindex!', 'confirm_move_document' => 'Vänligen bekräfta flytt av dokumentet.', @@ -879,6 +881,8 @@ URL: [url]', 'mandatory_reviewers' => 'Obligatoriska granskare', 'mandatory_reviewer_no_access' => 'Obligatorisk person som granskar \'[user]\' ar inga rättigheter.', 'march' => 'Mars', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => 'Maximal storlek för uppladdning', 'may' => 'Maj', 'menu_dropfolder' => 'Mapp för snabbuppladdning', diff --git a/languages/tr_TR/lang.inc b/languages/tr_TR/lang.inc index a580f4d2b..74fb2410d 100644 --- a/languages/tr_TR/lang.inc +++ b/languages/tr_TR/lang.inc @@ -228,6 +228,7 @@ URL: [url]', 'backup_tools' => 'Yedekleme araçları', 'batch_change_owner' => '', 'batch_new_owner_msg' => '', +'batch_operation' => '', 'batch_operation_result' => '', 'between' => 'arasında', 'bg_BG' => 'Bulgarca', @@ -307,6 +308,7 @@ URL: [url]', 'comment_changed_email' => '', 'comment_for_current_version' => 'Versiyon açıklaması', 'configure_extension' => '', +'confirm_change_owner' => '', 'confirm_clear_cache' => '', 'confirm_create_fulltext_index' => 'Evet, tam metin indeksini yeniden oluşturmak istiyorum!', 'confirm_move_document' => '', @@ -867,6 +869,8 @@ URL: [url]', 'mandatory_reviewers' => 'Zorunlu kontrol edenler', 'mandatory_reviewer_no_access' => 'Zorunlu kontrol üyesi \'[user]\' yetersiz erişim haklarına sahip', 'march' => 'Mart', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => 'Maksimum yükleme boyutu', 'may' => 'Mayıs', 'menu_dropfolder' => '', diff --git a/languages/uk_UA/lang.inc b/languages/uk_UA/lang.inc index 1695f5844..ad53555e9 100644 --- a/languages/uk_UA/lang.inc +++ b/languages/uk_UA/lang.inc @@ -234,6 +234,7 @@ URL: [url]', 'backup_tools' => 'Резервні копії', 'batch_change_owner' => '', 'batch_new_owner_msg' => '', +'batch_operation' => '', 'batch_operation_result' => '', 'between' => 'між', 'bg_BG' => 'Bulgarian', @@ -313,6 +314,7 @@ URL: [url]', 'comment_changed_email' => 'Повідомлення про зміну коментаря', 'comment_for_current_version' => 'Коментар версії', 'configure_extension' => '', +'confirm_change_owner' => '', 'confirm_clear_cache' => '', 'confirm_create_fulltext_index' => 'Так, перестворити повнотекстовий індекс!', 'confirm_move_document' => '', @@ -873,6 +875,8 @@ URL: [url]', 'mandatory_reviewers' => 'Обов\'язкові рецензенти', 'mandatory_reviewer_no_access' => 'Обов\'язковий рецензент «[user]» не має достатніх прав доступу.', 'march' => 'Березень', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => 'Обмеження розміру файлу', 'may' => 'Травень', 'menu_dropfolder' => '', diff --git a/languages/zh_CN/lang.inc b/languages/zh_CN/lang.inc index 998e121ca..06fb3eb9e 100644 --- a/languages/zh_CN/lang.inc +++ b/languages/zh_CN/lang.inc @@ -226,6 +226,7 @@ URL: [url]', 'backup_tools' => '备份工具', 'batch_change_owner' => '', 'batch_new_owner_msg' => '', +'batch_operation' => '', 'batch_operation_result' => '', 'between' => '时间段', 'bg_BG' => '保加利亚语', @@ -305,6 +306,7 @@ URL: [url]', 'comment_changed_email' => '评论更新', 'comment_for_current_version' => '版本说明', 'configure_extension' => '配置扩展', +'confirm_change_owner' => '', 'confirm_clear_cache' => '确认清除缓存吗?这将删除所有预先计算的预览图像。', 'confirm_create_fulltext_index' => '确认重新创建全文索引', 'confirm_move_document' => '请确认移动文件', @@ -875,6 +877,8 @@ URL: [url]', 'mandatory_reviewers' => '必选校对人', 'mandatory_reviewer_no_access' => '必须的评审员\'[user]\'没有足够的访问权限', 'march' => '三 月', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => '最大上传文件大小', 'may' => '五 月', 'menu_dropfolder' => '删除文件夹', diff --git a/languages/zh_TW/lang.inc b/languages/zh_TW/lang.inc index 87e3123db..7dc583700 100644 --- a/languages/zh_TW/lang.inc +++ b/languages/zh_TW/lang.inc @@ -234,6 +234,7 @@ URL: [url]', 'backup_tools' => '備份工具', 'batch_change_owner' => '', 'batch_new_owner_msg' => '', +'batch_operation' => '', 'batch_operation_result' => '', 'between' => '時間段', 'bg_BG' => '保加利亞語', @@ -313,6 +314,7 @@ URL: [url]', 'comment_changed_email' => '', 'comment_for_current_version' => '版本說明', 'configure_extension' => '配置擴充套件', +'confirm_change_owner' => '', 'confirm_clear_cache' => '您真的要清除緩存嗎?這將刪除所有預先計算的預覽圖像。', 'confirm_create_fulltext_index' => '確認已新增之全文索引', 'confirm_move_document' => '請確認移動文件。', @@ -892,6 +894,8 @@ URL: [url]', 'mandatory_reviewers' => '強制性審稿人', 'mandatory_reviewer_no_access' => '強制性審閱者\'[user] \'沒有足夠的訪問權限。', 'march' => '三 月', +'mark_document' => '', +'mark_folder' => '', 'max_upload_size' => '最大上傳文件大小', 'may' => '五 月', 'menu_dropfolder' => '下拉目錄', diff --git a/op/op.AddDocument.php b/op/op.AddDocument.php index 1e6c3fa98..f28b32913 100644 --- a/op/op.AddDocument.php +++ b/op/op.AddDocument.php @@ -367,10 +367,15 @@ if($settings->_libraryFolder) { $docsource = 'library'; $fullfile = tempnam(sys_get_temp_dir(), ''); if(SeedDMS_Core_File::copyFile($dms->contentDir . $content->getPath(), $fullfile)) { + if($_POST["name"]!="") { + $oext = pathinfo($content->getOriginalFileName(), PATHINFO_EXTENSION); + $origfilename = getFilenameByDocname(trim($_POST['name'])).".".$oext; + } else + $origfilename = $content->getOriginalFileName(); $file_ary[] = array( 'tmp_name' => $fullfile, 'type' => $content->getMimeType(), - 'name' => $content->getOriginalFileName(), + 'name' => $origfilename, 'size' => $content->getFileSize(), 'error' => 0, 'source' => 'library', diff --git a/out/out.Calendar.php b/out/out.Calendar.php index 49feea74d..b3ca7fb57 100644 --- a/out/out.Calendar.php +++ b/out/out.Calendar.php @@ -74,6 +74,7 @@ if(isset($_GET['eventtype']) && $_GET['eventtype']) { if($view) { $view->setParam('accessobject', $accessop); + $view->setParam('conversionmgr', $conversionmgr); $view->setParam('onepage', $settings->_onePageMode); // do most navigation by reloading areas of pages with ajax $view->setParam('calendar', $calendar); $view->setParam('start', $start); @@ -90,6 +91,7 @@ if($view) { $view->setParam('cachedir', $settings->_cacheDir); $view->setParam('previewWidthList', $settings->_previewWidthList); $view->setParam('previewWidthDetail', $settings->_previewWidthDetail); + $view->setParam('previewConverters', isset($settings->_converters['preview']) ? $settings->_converters['preview'] : array()); $view->setParam('timeout', $settings->_cmdTimeout); $view->setParam('accessobject', $accessop); $view->setParam('xsendfile', $settings->_enableXsendfile); diff --git a/out/out.Search.php b/out/out.Search.php index 5d9307bf7..7190e7668 100644 --- a/out/out.Search.php +++ b/out/out.Search.php @@ -97,7 +97,7 @@ if($fullsearch) { if (is_numeric($_GET["pg"]) && $_GET["pg"]>0) { $pageNumber = (integer)$_GET["pg"]; } - else if (!strcasecmp($_GET["pg"], "all")) { + elseif (!strcasecmp($_GET["pg"], "all")) { $pageNumber = "all"; } } @@ -218,7 +218,7 @@ if($fullsearch) { $dcount = isset($facets['record_type']['document']) ? $facets['record_type']['document'] : 0 ; } } - if($pageNumber != 'all' && $searchresult['count'] > $limit) { + if(/* $pageNumber != 'all' && */$searchresult['count'] > $limit) { $totalPages = (int) ($searchresult['count']/$limit); if($searchresult['count']%$limit) $totalPages++; @@ -564,11 +564,12 @@ 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++; - $entries = array_slice($entries, ($pageNumber-1)*$limit, $limit); + if($pageNumber != 'all') + $entries = array_slice($entries, ($pageNumber-1)*$limit, $limit); } else $totalPages = 1; $facets = array(); diff --git a/out/out.Timeline.php b/out/out.Timeline.php index ef6980134..793fd2223 100644 --- a/out/out.Timeline.php +++ b/out/out.Timeline.php @@ -47,14 +47,15 @@ if(isset($_GET['documentid']) && $_GET['documentid'] && is_numeric($_GET['docume if($document = $dms->getDocument($_GET["documentid"])) { if(isset($_GET['version']) && $_GET['version'] && is_numeric($_GET['version'])) { $content = $document->getContentByVersion($_GET['version']); + } else { + $content = $document->getLatestContent(); } } } if($view) { - $view->setParam('dms', $dms); - $view->setParam('user', $user); $view->setParam('accessobject', $accessop); + $view->setParam('conversionmgr', $conversionmgr); $view->setParam('onepage', $settings->_onePageMode); // do most navigation by reloading areas of pages with ajax $view->setParam('showtree', showtree()); $view->setParam('fromdate', isset($_GET['fromdate']) ? $_GET['fromdate'] : ''); @@ -65,6 +66,7 @@ if($view) { $view->setParam('cachedir', $settings->_cacheDir); $view->setParam('previewWidthList', $settings->_previewWidthList); $view->setParam('previewWidthDetail', $settings->_previewWidthDetail); + $view->setParam('previewConverters', isset($settings->_converters['preview']) ? $settings->_converters['preview'] : array()); $view->setParam('timeout', $settings->_cmdTimeout); $view->setParam('accessobject', $accessop); $view->setParam('xsendfile', $settings->_enableXsendfile); diff --git a/views/bootstrap/class.Bootstrap.php b/views/bootstrap/class.Bootstrap.php index 8f5685c04..2120e6f17 100644 --- a/views/bootstrap/class.Bootstrap.php +++ b/views/bootstrap/class.Bootstrap.php @@ -414,16 +414,16 @@ background-image: linear-gradient(to bottom, #882222, #111111);; // if (!$this->params['user']->isGuest()) { $menuitems = array(); if ($accessobject->check_view_access('MyDocuments')) - $menuitems['my_documents'] = array('link'=>$this->params['settings']->_httpRoot."out/out.MyDocuments.php", 'label'=>'my_documents'); + $menuitems['my_documents'] = array('link'=>$this->params['settings']->_httpRoot."out/out.MyDocuments.php", 'label'=>getMLText('my_documents')); if ($accessobject->check_view_access('MyAccount')) - $menuitems['my_account'] = array('link'=>$this->params['settings']->_httpRoot."out/out.MyAccount.php", 'label'=>'my_account'); + $menuitems['my_account'] = array('link'=>$this->params['settings']->_httpRoot."out/out.MyAccount.php", 'label'=>getMLText('my_account')); if ($accessobject->check_view_access('TransmittalMgr')) - $menuitems['my_transmittals'] = array('link'=>$this->params['settings']->_httpRoot."out/out.TransmittalMgr.php", 'label'=>'my_transmittals'); + $menuitems['my_transmittals'] = array('link'=>$this->params['settings']->_httpRoot."out/out.TransmittalMgr.php", 'label'=>getMLText('my_transmittals')); if($this->hasHook('userMenuItems')) $menuitems = $this->callHook('userMenuItems', $menuitems); if($menuitems) { foreach($menuitems as $menuitem) { - echo "
  • ".getMLText($menuitem['label'])."
  • "; + echo "
  • ".$menuitem['label']."
  • "; } echo "
  • \n"; } @@ -510,11 +510,11 @@ background-image: linear-gradient(to bottom, #882222, #111111);; echo "
      \n"; $menuitems = array(); /* calendar {{{ */ - if ($this->params['enablecalendar'] && $accessobject->check_view_access('Calendar')) $menuitems['calendar'] = array('link'=>$this->params['settings']->_httpRoot.'out/out.Calendar.php?mode='.$this->params['calendardefaultview'], 'label'=>"calendar"); - if ($accessobject->check_view_access('AdminTools')) $menuitems['admintools'] = array('link'=>$this->params['settings']->_httpRoot.'out/out.AdminTools.php', 'label'=>"admin_tools"); + if ($this->params['enablecalendar'] && $accessobject->check_view_access('Calendar')) $menuitems['calendar'] = array('link'=>$this->params['settings']->_httpRoot.'out/out.Calendar.php?mode='.$this->params['calendardefaultview'], 'label'=>getMLText("calendar")); + if ($accessobject->check_view_access('AdminTools')) $menuitems['admintools'] = array('link'=>$this->params['settings']->_httpRoot.'out/out.AdminTools.php', 'label'=>getMLText("admin_tools")); if($this->params['enablehelp']) { $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); - $menuitems['help'] = array('link'=>$this->params['settings']->_httpRoot.'out/out.Help.php?context='.$tmp[1], 'label'=>"help"); + $menuitems['help'] = array('link'=>$this->params['settings']->_httpRoot.'out/out.Help.php?context='.$tmp[1], 'label'=>getMLText("help")); } /* }}} End of calendar */ @@ -524,14 +524,14 @@ background-image: linear-gradient(to bottom, #882222, #111111);; foreach($menuitems as $menuitem) { if(!empty($menuitem['children'])) { echo "
    • \n"; - echo " ".getMLText($menuitem['label'])." \n"; + echo " ".$menuitem['label']." \n"; echo " \n"; } else { - echo "
    • ".getMLText($menuitem['label'])."
    • "; + echo "
    • ".$menuitem['label']."
    • "; } } echo "
    \n"; @@ -1110,7 +1110,7 @@ background-image: linear-gradient(to bottom, #882222, #111111);; echo "\n"; } /* }}} */ - function pageList($pageNumber, $totalPages, $baseURI, $params) { /* {{{ */ + function pageList($pageNumber, $totalPages, $baseURI, $params, $dataparams=[]) { /* {{{ */ $maxpages = 25; // skip pages when more than this is shown $range = 5; // pages left and right of current page @@ -1129,11 +1129,17 @@ background-image: linear-gradient(to bottom, #882222, #111111);; $first=false; } + $datastr = ''; + if($dataparams) { + $datastr .= ' '; + foreach($dataparams as $k=>$v) + $datastr .= 'data-'.$k.'="'.$v.'"'; + } echo "
    "; echo "
      "; if($totalPages <= $maxpages) { for ($i = 1; $i <= $totalPages; $i++) { - echo "
    • ".$i."
    • "; + echo "
    • ".$i."
    • "; } } else { if($pageNumber-$range > 1) @@ -1153,21 +1159,21 @@ background-image: linear-gradient(to bottom, #882222, #111111);; $end -= $diff; } if($pageNumber > 1) - echo "
    • «
    • "; - echo "
    • 1
    • "; + echo "
    • «
    • "; + echo "
    • 1
    • "; if($start > 2) echo "
    • ...
    • "; for($j=$start; $j<=$end; $j++) - echo "
    • ".$j."
    • "; + echo "
    • ".$j."
    • "; if($end < $totalPages-1) echo "
    • ...
    • "; if($end < $totalPages) - echo "
    • ".$totalPages."
    • "; + echo "
    • ".$totalPages."
    • "; if($pageNumber < $totalPages) - echo "
    • »
    • "; + echo "
    • »
    • "; } if ($totalPages>1) { - echo "
    • ".getMLText("all_pages")."
    • "; + echo "
    • ".getMLText("all_pages")."
    • "; } echo "
    "; echo "
    "; @@ -3891,7 +3897,7 @@ $(document).ready(function() { * * @param object $document document */ - protected function printTimelineJs($timelineurl, $height=300, $start='', $end='', $skip=array()) { /* {{{ */ + protected function printTimelineJs($timelineurl, $height=300, $start='', $end='', $skip=array(), $onselect="") { /* {{{ */ if(!$timelineurl) return; ?> @@ -3918,21 +3924,16 @@ $(document).ready(function() { 'locale': 'params['session']->getLanguage() ?>' }; - function onselect() { - var sel = timeline.getSelection(); - if (sel.length) { - if (sel[0].row != undefined) { - var row = sel[0].row; - console.log(timeline.getItem(sel[0].row)); - item = timeline.getItem(sel[0].row); - $('div.ajax').trigger('update', {documentid: item.docid, version: item.version, statusid: item.statusid, statuslogid: item.statuslogid, fileid: item.fileid}); - } - } - } $(document).ready(function () { // Instantiate our timeline object. timeline = new links.Timeline(document.getElementById('timeline'), options); - links.events.addListener(timeline, 'select', onselect); + + links.events.addListener(timeline, 'select', ); + $.getJSON( '', function(data) { diff --git a/views/bootstrap/class.Calendar.php b/views/bootstrap/class.Calendar.php index ff1bfa920..bf37d2b9f 100644 --- a/views/bootstrap/class.Calendar.php +++ b/views/bootstrap/class.Calendar.php @@ -43,6 +43,8 @@ class SeedDMS_View_Calendar extends SeedDMS_Theme_Style { $event = $this->params['event']; $strictformcheck = $this->params['strictformcheck']; $cachedir = $this->params['cachedir']; + $conversionmgr = $this->params['conversionmgr']; + $previewconverters = $this->params['previewConverters']; $previewwidthlist = $this->params['previewWidthList']; $previewwidthdetail = $this->params['previewWidthDetail']; $timeout = $this->params['timeout']; @@ -52,6 +54,10 @@ class SeedDMS_View_Calendar extends SeedDMS_Theme_Style { print $this->folderListHeader(); print "\n"; $previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidthdetail, $timeout, $xsendfile); + if($conversionmgr) + $previewer->setConversionMgr($conversionmgr); + else + $previewer->setConverters($previewconverters); echo $this->documentListRow($document, $previewer); echo "\n\n"; } @@ -125,6 +131,8 @@ class SeedDMS_View_Calendar extends SeedDMS_Theme_Style { $dms = $this->params['dms']; $start = explode('-', $this->params['start']); $cachedir = $this->params['cachedir']; + $conversionmgr = $this->params['conversionmgr']; + $previewconverters = $this->params['previewConverters']; $previewwidthlist = $this->params['previewWidthList']; $previewwidthdetail = $this->params['previewWidthDetail']; $timeout = $this->params['timeout']; @@ -146,6 +154,10 @@ class SeedDMS_View_Calendar extends SeedDMS_Theme_Style { print "".getMLText("action")."\n"; print "\n\n\n"; $previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidthdetail, $timeout, $xsendfile); + if($conversionmgr) + $previewer->setConversionMgr($conversionmgr); + else + $previewer->setConverters($previewconverters); foreach($data as $i=>$item) { /* Filter out timeline events for the documents not happened on the * selected day diff --git a/views/bootstrap/class.DocumentVersionDetail.php b/views/bootstrap/class.DocumentVersionDetail.php index 9443b4326..f52e3938c 100644 --- a/views/bootstrap/class.DocumentVersionDetail.php +++ b/views/bootstrap/class.DocumentVersionDetail.php @@ -443,7 +443,7 @@ class SeedDMS_View_DocumentVersionDetail extends SeedDMS_Theme_Style { case 0: // Approver is an individual. $required = $dms->getUser($a["required"]); if (!is_object($required)) { - $reqName = getMLText("unknown_user")." '".$r["required"]."'"; + $reqName = getMLText("unknown_user")." '".$a["required"]."'"; } else { $reqName = " ".htmlspecialchars($required->getFullName()." (".$required->getLogin().")"); @@ -452,7 +452,7 @@ class SeedDMS_View_DocumentVersionDetail extends SeedDMS_Theme_Style { case 1: // Approver is a group. $required = $dms->getGroup($a["required"]); if (!is_object($required)) { - $reqName = getMLText("unknown_group")." '".$r["required"]."'"; + $reqName = getMLText("unknown_group")." '".$a["required"]."'"; } else { $reqName = " ".htmlspecialchars($required->getName()); diff --git a/views/bootstrap/class.Search.php b/views/bootstrap/class.Search.php index 0c9670f79..ea2ed0a4f 100644 --- a/views/bootstrap/class.Search.php +++ b/views/bootstrap/class.Search.php @@ -75,6 +75,7 @@ $(document).ready( function() { window.location.href = url; }); +/* $('#changeowner').on('click', function(e) { e.preventDefault(); var url = ""; @@ -89,6 +90,70 @@ $(document).ready( function() { url += '&'+$.param(values); window.location.href = url; }); +*/ +getParam('theme') !== 'bootstrap4'): ?> + $('body').on('click', 'a.change-owner-btn', function(ev){ + ev.preventDefault(); + ev.stopPropagation(); + confirmmsg = $(ev.currentTarget).attr('confirmmsg'); + href = $(ev.currentTarget).attr('href'); + bootbox.dialog(confirmmsg, [{ + "label" : " ", + "class" : "btn-danger", + "callback": function() { + var url = ""; + url = href+'&newowner='+($('#newowner').val()); + var inputs = $('input[name^=\"marks\"]'); + var values = {}; + inputs.each(function() { + if(this.checked) + values[this.name] = 1; + }); + url += '&'+$.param(values); + window.location.href = url; + } + }, { + "label" : "", + "class" : "btn-cancel", + "callback": function() { + } + }]); + }); + + $('body').on('click', 'a.change-owner-btn', function(ev){ + ev.preventDefault(); + ev.stopPropagation(); + confirmmsg = $(ev.currentTarget).attr('confirmmsg'); + href = $(ev.currentTarget).attr('href'); + bootbox.confirm({ + "message": confirmmsg, + "buttons": { + "confirm": { + "label" : " ", + "className" : "btn-danger", + }, + "cancel": { + "label" : " ", + "className" : "btn-secondary", + } + }, + "callback": function(result) { + if(result) { + var url = ""; + url = href+'&newowner='+($('#newowner').val()); + var inputs = $('input[name^=\"marks\"]'); + var values = {}; + inputs.each(function() { + if(this.checked) + values[this.name] = 1; + }); + url += '&'+$.param(values); + window.location.href = url; + } + } + }); + }); + }); printFolderChooserJs("form1"); @@ -940,9 +1005,13 @@ function typeahead() { /* {{{ */ 'class'=>'chzn-select', 'options'=>$options, 'placeholder'=>getMLText('select_users'), + 'attributes'=>array(array('style', 'width: 100%;')) ) ); - print $this->html_link('Search', array_merge($_GET, array('action'=>'changeowner')), array('class'=>'btn btn-primary', 'id'=>'changeowner'), " ".getMLText("batch_change_owner"), false, true)."\n"; +// print $this->html_link('Search', array_merge($_GET, array('action'=>'changeowner')), array('class'=>'btn btn-primary', 'id'=>'changeowner'), " ".getMLText("batch_change_owner"), false, true)."\n"; + + print $this->html_link('Search', array_merge($_GET, array('action'=>'changeowner')), array('class'=>'btn btn-primary change-owner-btn mt-4', 'confirmmsg'=>htmlspecialchars(getMLText("confirm_change_owner", array ()), ENT_QUOTES)), " ".getMLText("batch_change_owner"), false, true)."\n"; + $content = ob_get_clean(); $this->printAccordion(getMLText('batch_change_owner'), $content); } @@ -970,7 +1039,7 @@ function typeahead() { /* {{{ */ } */ echo $this->infoMsg(getMLText("search_report", array("count"=>$total, "doccount" => $totaldocs, "foldercount" => $totalfolders, 'searchtime'=>$searchTime))); - $this->pageList($pageNumber, $totalpages, "../out/out.Search.php", $urlparams); + $this->pageList((int) $pageNumber, $totalpages, "../out/out.Search.php", $urlparams); // $this->contentContainerStart(); $txt = $this->callHook('searchListHeader', $orderby, 'asc'); @@ -1086,7 +1155,7 @@ function typeahead() { /* {{{ */ else print "\n"; // $this->contentContainerEnd(); - $this->pageList($pageNumber, $totalpages, "../out/out.Search.php", $_GET); + $this->pageList((int) $pageNumber, $totalpages, "../out/out.Search.php", $_GET); } else { $numResults = $totaldocs + $totalfolders; if ($numResults == 0) { diff --git a/views/bootstrap/class.Settings.php b/views/bootstrap/class.Settings.php index 54b952dad..ce03fa302 100644 --- a/views/bootstrap/class.Settings.php +++ b/views/bootstrap/class.Settings.php @@ -176,9 +176,9 @@ class SeedDMS_View_Settings extends SeedDMS_Theme_Style { - - $value) { $optval = trim($isass ? $i : $value); @@ -589,7 +589,7 @@ if(($kkk = $this->callHook('getFullSearchEngine')) && is_array($kkk)) case 'select': if(!empty($conf['options'])) { $selections = empty($settings->_extensions[$extname][$confkey]) ? array() : explode(",", $settings->_extensions[$extname][$confkey]); - echo ""; foreach($conf['options'] as $key=>$opt) { echo ""; foreach($categories as $category) { @@ -619,7 +619,7 @@ if(($kkk = $this->callHook('getFullSearchEngine')) && is_array($kkk)) case "users": $users = $dms->getAllUsers(); if($users) { - echo ""; if($allowempty) echo ""; foreach($users as $curuser) { @@ -634,7 +634,7 @@ if(($kkk = $this->callHook('getFullSearchEngine')) && is_array($kkk)) case "groups": $recs = $dms->getAllGroups(); if($recs) { - echo ""; if($allowempty) echo ""; foreach($recs as $rec) { @@ -651,7 +651,7 @@ if(($kkk = $this->callHook('getFullSearchEngine')) && is_array($kkk)) $attrtype = empty($conf['attrtype']) ? 0 : $conf['attrtype']; $recs = $dms->getAllAttributeDefinitions($objtype, $attrtype); if($recs) { - echo ""; if($allowempty) echo ""; foreach($recs as $rec) { @@ -668,7 +668,7 @@ if(($kkk = $this->callHook('getFullSearchEngine')) && is_array($kkk)) case "workflows": $recs = $dms->getAllWorkflows(); if($recs) { - echo ""; if($allowempty) echo ""; foreach($recs as $rec) { diff --git a/views/bootstrap/class.Timeline.php b/views/bootstrap/class.Timeline.php index 3bb0e8332..af5323a85 100644 --- a/views/bootstrap/class.Timeline.php +++ b/views/bootstrap/class.Timeline.php @@ -41,6 +41,8 @@ class SeedDMS_View_Timeline extends SeedDMS_Theme_Style { $document = $this->params['document']; $version = $this->params['version']; $cachedir = $this->params['cachedir']; + $conversionmgr = $this->params['conversionmgr']; + $previewconverters = $this->params['previewConverters']; $previewwidthlist = $this->params['previewWidthList']; $previewwidthdetail = $this->params['previewWidthDetail']; $timeout = $this->params['timeout']; @@ -50,6 +52,10 @@ class SeedDMS_View_Timeline extends SeedDMS_Theme_Style { print $this->folderListHeader(); print "\n"; $previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidthdetail, $timeout, $xsendfile); + if($conversionmgr) + $previewer->setConversionMgr($conversionmgr); + else + $previewer->setConverters($previewconverters); $extracontent = array(); $extracontent['below_title'] = $this->getListRowPath($document); echo $this->documentListRow($document, $previewer, 0, false, $extracontent); @@ -158,10 +164,21 @@ $(document).ready(function () { ); }); }); + function onselect() { + var sel = timeline.getSelection(); + if (sel.length) { + if (sel[0].row != undefined) { + var row = sel[0].row; + console.log(timeline.getItem(sel[0].row)); + item = timeline.getItem(sel[0].row); + $('div.ajax').trigger('update', {documentid: item.docid, version: item.version, statusid: item.statusid, statuslogid: item.statuslogid, fileid: item.fileid}); + } + } + } printDeleteDocumentButtonJs(); $timelineurl = 'out.Timeline.php?action=data&fromdate='.date('Y-m-d', $from).'&todate='.date('Y-m-d', $to).'&skip='.urldecode(http_build_query(array('skip'=>$skip))); - $this->printTimelineJs($timelineurl, 550, ''/*date('Y-m-d', $from)*/, ''/*date('Y-m-d', $to+1)*/, $skip); + $this->printTimelineJs($timelineurl, 550, ''/*date('Y-m-d', $from)*/, ''/*date('Y-m-d', $to+1)*/, $skip, 'onselect'); $this->printClickDocumentJs(); } /* }}} */ diff --git a/views/bootstrap/class.ViewDocument.php b/views/bootstrap/class.ViewDocument.php index 7110a0f6b..f11f01437 100644 --- a/views/bootstrap/class.ViewDocument.php +++ b/views/bootstrap/class.ViewDocument.php @@ -155,6 +155,8 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Theme_Style { $cachedir = $this->params['cachedir']; $conversionmgr = $this->params['conversionmgr']; $previewconverters = $this->params['previewConverters']; + $previewwidthlist = $this->params['previewWidthList']; + $previewwidthdetail = $this->params['previewWidthDetail']; $timeout = $this->params['timeout']; $xsendfile = $this->params['xsendfile']; $document = $this->params['document']; diff --git a/views/bootstrap4/class.Bootstrap4.php b/views/bootstrap4/class.Bootstrap4.php index dd3fe9be9..69d304902 100644 --- a/views/bootstrap4/class.Bootstrap4.php +++ b/views/bootstrap4/class.Bootstrap4.php @@ -337,11 +337,11 @@ background-image: linear-gradient(to bottom, #882222, #111111);; echo "
      \n"; $menuitems = array(); /* calendar {{{ */ - if ($this->params['enablecalendar'] && $accessobject->check_view_access('Calendar')) $menuitems['calendar'] = array('link'=>$this->params['settings']->_httpRoot.'out/out.Calendar.php?mode='.$this->params['calendardefaultview'], 'label'=>"calendar"); - if ($this->params['user']->isAdmin()) $menuitems['admintools'] = array('link'=>$this->params['settings']->_httpRoot.'out/out.AdminTools.php', 'label'=>"admin_tools"); + if ($this->params['enablecalendar'] && $accessobject->check_view_access('Calendar')) $menuitems['calendar'] = array('link'=>$this->params['settings']->_httpRoot.'out/out.Calendar.php?mode='.$this->params['calendardefaultview'], 'label'=>getMLText("calendar")); + if ($accessobject->check_view_access('AdminTools')) $menuitems['admintools'] = array('link'=>$this->params['settings']->_httpRoot.'out/out.AdminTools.php', 'label'=>getMLText("admin_tools")); if($this->params['enablehelp']) { $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); - $menuitems['help'] = array('link'=>$this->params['settings']->_httpRoot.'out/out.Help.php?context='.$tmp[1], 'label'=>"help"); + $menuitems['help'] = array('link'=>$this->params['settings']->_httpRoot.'out/out.Help.php?context='.$tmp[1], 'label'=>getMLText("help")); } /* }}} End of calendar */ @@ -351,14 +351,14 @@ background-image: linear-gradient(to bottom, #882222, #111111);; foreach($menuitems as $menuitem) { if(!empty($menuitem['children'])) { echo "
    • \n"; - echo " ".getMLText($menuitem['label'])."\n"; + echo " ".$menuitem['label']."\n"; echo "
      \n"; foreach($menuitem['children'] as $submenuitem) { - echo " ".getMLText($submenuitem['label'])."\n"; + echo " ".$submenuitem['label']."\n"; } echo "
      \n"; } else { - echo "
    • ".getMLText($menuitem['label'])."
    • "; + echo "
    • ".$menuitem['label']."
    • "; } } echo "
    \n"; @@ -408,16 +408,16 @@ background-image: linear-gradient(to bottom, #882222, #111111);; if (!$this->params['user']->isGuest()) { $menuitems = array(); if ($accessobject->check_view_access('MyDocuments')) - $menuitems['my_documents'] = array('link'=>$this->params['settings']->_httpRoot."out/out.MyDocuments.php?inProcess=1", 'label'=>'my_documents'); + $menuitems['my_documents'] = array('link'=>$this->params['settings']->_httpRoot."out/out.MyDocuments.php?inProcess=1", 'label'=>getMLText('my_documents')); if ($accessobject->check_view_access('MyAccount')) - $menuitems['my_account'] = array('link'=>$this->params['settings']->_httpRoot."out/out.MyAccount.php", 'label'=>'my_account'); + $menuitems['my_account'] = array('link'=>$this->params['settings']->_httpRoot."out/out.MyAccount.php", 'label'=>getMLText('my_account')); if ($accessobject->check_view_access('TransmittalMgr')) - $menuitems['my_transmittals'] = array('link'=>$this->params['settings']->_httpRoot."out/out.TransmittalMgr.php", 'label'=>'my_transmittals'); + $menuitems['my_transmittals'] = array('link'=>$this->params['settings']->_httpRoot."out/out.TransmittalMgr.php", 'label'=>getMLText('my_transmittals')); if($this->hasHook('userMenuItems')) $menuitems = $this->callHook('userMenuItems', $menuitems); if($menuitems) { foreach($menuitems as $menuitem) { - echo " ".getMLText($menuitem['label'])."\n"; + echo " ".$menuitem['label']."\n"; } echo "
    \n"; } @@ -1010,7 +1010,7 @@ background-image: linear-gradient(to bottom, #882222, #111111);; } /* }}} */ - function pageList($pageNumber, $totalPages, $baseURI, $params) { /* {{{ */ + function pageList($pageNumber, $totalPages, $baseURI, $params, $dataparams=[]) { /* {{{ */ $maxpages = 25; // skip pages when more than this is shown $range = 2; // pages left and right of current page @@ -1029,11 +1029,17 @@ background-image: linear-gradient(to bottom, #882222, #111111);; $first=false; } + $datastr = ''; + if($dataparams) { + $datastr .= ' '; + foreach($dataparams as $k=>$v) + $datastr .= 'data-'.$k.'="'.$v.'"'; + } echo ""; @@ -3846,7 +3852,7 @@ $(document).ready(function() { * * @param object $document document */ - protected function printTimelineJs($timelineurl, $height=300, $start='', $end='', $skip=array()) { /* {{{ */ + protected function printTimelineJs($timelineurl, $height=300, $start='', $end='', $skip=array(), $onselect="") { /* {{{ */ if(!$timelineurl) return; ?> @@ -3873,21 +3879,16 @@ $(document).ready(function() { 'locale': 'params['session']->getLanguage() ?>' }; - function onselect() { - var sel = timeline.getSelection(); - if (sel.length) { - if (sel[0].row != undefined) { - var row = sel[0].row; - console.log(timeline.getItem(sel[0].row)); - item = timeline.getItem(sel[0].row); - $('div.ajax').trigger('update', {documentid: item.docid, version: item.version, statusid: item.statusid, statuslogid: item.statuslogid, fileid: item.fileid}); - } - } - } $(document).ready(function () { // Instantiate our timeline object. timeline = new links.Timeline(document.getElementById('timeline'), options); - links.events.addListener(timeline, 'select', onselect); + + links.events.addListener(timeline, 'select', ); + $.getJSON( '', function(data) { diff --git a/views/bootstrap4/styles/application.js b/views/bootstrap4/styles/application.js index 4c2d9078a..bcf9d170d 100644 --- a/views/bootstrap4/styles/application.js +++ b/views/bootstrap4/styles/application.js @@ -62,7 +62,7 @@ function initMost() { $(".chzn-select").select2({ theme: "bootstrap4", - width: '100%', + width: 'resolve', templateResult: chzn_template_func//, //templateSelection: chzn_template_func }); diff --git a/webdav/.htaccess b/webdav/.htaccess new file mode 100644 index 000000000..8c3dd5df5 --- /dev/null +++ b/webdav/.htaccess @@ -0,0 +1,2 @@ +RewriteEngine on +RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization},last]