From 0b69ddb4398d109571b8faf4118bc0ca7e305d34 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 26 Apr 2016 12:06:41 +0200 Subject: [PATCH 01/76] callbacks can have more than one user function --- SeedDMS_Core/Core/inc.ClassDMS.php | 36 ++++++++++++++++++------- SeedDMS_Core/Core/inc.ClassDocument.php | 12 +++++---- SeedDMS_Core/Core/inc.ClassFolder.php | 22 ++++++++------- 3 files changed, 47 insertions(+), 23 deletions(-) diff --git a/SeedDMS_Core/Core/inc.ClassDMS.php b/SeedDMS_Core/Core/inc.ClassDMS.php index 06d7a6d13..45e93971f 100644 --- a/SeedDMS_Core/Core/inc.ClassDMS.php +++ b/SeedDMS_Core/Core/inc.ClassDMS.php @@ -271,6 +271,7 @@ class SeedDMS_Core_DMS { $this->maxDirID = 0; //31998; $this->enableConverting = false; $this->convertFileTypes = array(); + $this->callbacks = array(); $this->version = '@package_version@'; if($this->version[0] == '@') $this->version = '4.3.26'; @@ -1291,8 +1292,9 @@ class SeedDMS_Core_DMS { /* Check if 'onPostAddUser' callback is set */ if(isset($this->_dms->callbacks['onPostAddUser'])) { - $callback = $this->_dms->callbacks['onPostUser']; - if(!call_user_func($callback[0], $callback[1], $user)) { + foreach($this->_dms->callbacks['onPostUser'] as $callback) { + if(!call_user_func($callback[0], $callback[1], $user)) { + } } } @@ -1391,8 +1393,9 @@ class SeedDMS_Core_DMS { /* Check if 'onPostAddGroup' callback is set */ if(isset($this->_dms->callbacks['onPostAddGroup'])) { - $callback = $this->_dms->callbacks['onPostAddGroup']; - if(!call_user_func($callback[0], $callback[1], $group)) { + foreach($this->_dms->callbacks['onPostAddGroup'] as $callback) { + if(!call_user_func($callback[0], $callback[1], $group)) { + } } } @@ -1479,8 +1482,9 @@ class SeedDMS_Core_DMS { /* Check if 'onPostAddKeywordCategory' callback is set */ if(isset($this->_dms->callbacks['onPostAddKeywordCategory'])) { - $callback = $this->_dms->callbacks['onPostAddKeywordCategory']; - if(!call_user_func($callback[0], $callback[1], $category)) { + foreach($this->_dms->callbacks['onPostAddKeywordCategory'] as $callback) { + if(!call_user_func($callback[0], $callback[1], $category)) { + } } } @@ -1554,8 +1558,9 @@ class SeedDMS_Core_DMS { /* Check if 'onPostAddDocumentCategory' callback is set */ if(isset($this->_dms->callbacks['onPostAddDocumentCategory'])) { - $callback = $this->_dms->callbacks['onPostAddDocumentCategory']; - if(!call_user_func($callback[0], $callback[1], $category)) { + foreach($this->_dms->callbacks['onPostAddDocumentCategory'] as $callback) { + if(!call_user_func($callback[0], $callback[1], $category)) { + } } } @@ -2272,7 +2277,20 @@ class SeedDMS_Core_DMS { */ function setCallback($name, $func, $params=null) { /* {{{ */ if($name && $func) - $this->callbacks[$name] = array($func, $params); + $this->callbacks[$name] = array(array($func, $params)); + } /* }}} */ + + /** + * Add a callback function + * + * @param string $name internal name of callback + * @param mixed $func function name as expected by {call_user_method} + * @param mixed $params parameter passed as the first argument to the + * callback + */ + function addCallback($name, $func, $params=null) { /* {{{ */ + if($name && $func) + $this->callbacks[$name][] = array($func, $params); } /* }}} */ /** diff --git a/SeedDMS_Core/Core/inc.ClassDocument.php b/SeedDMS_Core/Core/inc.ClassDocument.php index bdf0e33cb..d37252c67 100644 --- a/SeedDMS_Core/Core/inc.ClassDocument.php +++ b/SeedDMS_Core/Core/inc.ClassDocument.php @@ -1787,9 +1787,10 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ /* Check if 'onPreRemoveDocument' callback is set */ if(isset($this->_dms->callbacks['onPreRemoveDocument'])) { - $callback = $this->_dms->callbacks['onPreRemoveDocument']; - if(!call_user_func($callback[0], $callback[1], $this)) { - return false; + foreach($this->_dms->callbacks['onPreRemoveDocument'] as $callback) { + if(!call_user_func($callback[0], $callback[1], $this)) { + return false; + } } } @@ -1874,8 +1875,9 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */ /* Check if 'onPostRemoveDocument' callback is set */ if(isset($this->_dms->callbacks['onPostRemoveDocument'])) { - $callback = $this->_dms->callbacks['onPostRemoveDocument']; - if(!call_user_func($callback[0], $callback[1], $this->_id)) { + foreach($this->_dms->callbacks['onPostRemoveDocument'] as $callback) { + if(!call_user_func($callback[0], $callback[1], $this->_id)) { + } } } diff --git a/SeedDMS_Core/Core/inc.ClassFolder.php b/SeedDMS_Core/Core/inc.ClassFolder.php index 7d9a004f1..1155f3706 100644 --- a/SeedDMS_Core/Core/inc.ClassFolder.php +++ b/SeedDMS_Core/Core/inc.ClassFolder.php @@ -484,8 +484,9 @@ class SeedDMS_Core_Folder extends SeedDMS_Core_Object { /* Check if 'onPostAddSubFolder' callback is set */ if(isset($this->_dms->callbacks['onPostAddSubFolder'])) { - $callback = $this->_dms->callbacks['onPostAddSubFolder']; - if(!call_user_func($callback[0], $callback[1], $newFolder)) { + foreach($this->_dms->callbacks['onPostAddSubFolder'] as $callback) { + if(!call_user_func($callback[0], $callback[1], $newFolder)) { + } } } @@ -802,8 +803,9 @@ class SeedDMS_Core_Folder extends SeedDMS_Core_Object { /* Check if 'onPostAddDocument' callback is set */ if(isset($this->_dms->callbacks['onPostAddDocument'])) { - $callback = $this->_dms->callbacks['onPostAddDocument']; - if(!call_user_func($callback[0], $callback[1], $document)) { + foreach($this->_dms->callbacks['onPostAddDocument'] as $callback) { + if(!call_user_func($callback[0], $callback[1], $document)) { + } } } @@ -822,9 +824,10 @@ class SeedDMS_Core_Folder extends SeedDMS_Core_Object { /* Check if 'onPreRemoveFolder' callback is set */ if(isset($this->_dms->callbacks['onPreRemoveFolder'])) { - $callback = $this->_dms->callbacks['onPreRemoveFolder']; - if(!call_user_func($callback[0], $callback[1], $this)) { - return false; + foreach($this->_dms->callbacks['onPreRemoveFolder'] as $callback) { + if(!call_user_func($callback[0], $callback[1], $this)) { + return false; + } } } @@ -880,8 +883,9 @@ class SeedDMS_Core_Folder extends SeedDMS_Core_Object { /* Check if 'onPostRemoveFolder' callback is set */ if(isset($this->_dms->callbacks['onPostRemoveFolder'])) { - $callback = $this->_dms->callbacks['onPostRemoveFolder']; - if(!call_user_func($callback[0], $callback[1], $this->_id)) { + foreach($this->_dms->callbacks['onPostRemoveFolder'] as $callback) { + if(!call_user_func($callback[0], $callback[1], $this->_id)) { + } } } From 127ae5c48779187150c0e1c2e624bc54eaf065b7 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 26 Apr 2016 12:07:17 +0200 Subject: [PATCH 02/76] start new version 4.3.27 --- SeedDMS_Core/package.xml | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/SeedDMS_Core/package.xml b/SeedDMS_Core/package.xml index 967a0e018..05443f7de 100644 --- a/SeedDMS_Core/package.xml +++ b/SeedDMS_Core/package.xml @@ -12,11 +12,11 @@ uwe@steinmann.cx yes - 2016-04-04 - + 2016-04-26 + - 4.3.26 - 4.3.26 + 4.3.27 + 4.3.27 stable @@ -24,7 +24,7 @@ GPL License -- add more callbacks +callbacks can have more then one user function @@ -984,5 +984,21 @@ SeedDMS_Core_DMS::getNotificationsByUser() are deprecated - fix setting multi value attributes for versions + + 2016-04-04 + + + 4.3.26 + 4.3.26 + + + stable + stable + + GPL License + +- add more callbacks + + From b2186874e6a079b196e71b29b0e43a6f2ee0bf21 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 26 Apr 2016 12:07:39 +0200 Subject: [PATCH 03/76] lots of documentation, new methods MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit deleteDocumentPreviews() removeѕ all previews of a document, finisch deletePreview() --- SeedDMS_Preview/Preview/Previewer.php | 166 ++++++++++++++++++-------- 1 file changed, 113 insertions(+), 53 deletions(-) diff --git a/SeedDMS_Preview/Preview/Previewer.php b/SeedDMS_Preview/Preview/Previewer.php index 24d41baae..76d878854 100644 --- a/SeedDMS_Preview/Preview/Previewer.php +++ b/SeedDMS_Preview/Preview/Previewer.php @@ -93,13 +93,13 @@ class SeedDMS_Preview_Previewer { } /* }}} */ /** - * Retrieve the physical filename of the preview image on disk + * Return the physical filename of the preview image on disk * * @param object $object document content or document file * @param integer $width width of preview image * @return string file name of preview image */ - protected function getFileName($object, $width) { /* }}} */ + protected function getFileName($object, $width) { /* {{{ */ if(!$object) return false; @@ -121,10 +121,18 @@ class SeedDMS_Preview_Previewer { /** * Create a preview image for a given file * + * This method creates a preview image in png format for a regular file + * in the file system and stores the result in the directory $dir relative + * to the configured preview directory. The filename of the resulting preview + * image is either $target.png (if set) or md5($infile)-$width.png. + * The $mimetype is used to select the propper conversion programm. + * An already existing preview image is replaced. + * * @param string $infile name of input file including full path * @param string $dir directory relative to $this->previewDir * @param string $mimetype MimeType of input file * @param integer $width width of generated preview image + * @param string $target optional name of preview image (without extension) * @return boolean true on success, false on failure */ public function createRawPreview($infile, $dir, $mimetype, $width=0, $target='') { /* {{{ */ @@ -177,6 +185,19 @@ class SeedDMS_Preview_Previewer { } /* }}} */ + /** + * Create preview image + * + * This function creates a preview image for the given document + * content or document file. It internally uses + * {@link SeedDMS_Preview::createRawPreview()}. The filename of the + * preview image is created by {@link SeedDMS_Preview_Previewer::getFileName()} + * + * @param object $object instance of SeedDMS_Core_DocumentContent + * or SeedDMS_Core_DocumentFile + * @param integer $width desired width of preview image + * @return boolean true on success, false on failure + */ public function createPreview($object, $width=0) { /* {{{ */ if(!$object) return false; @@ -189,58 +210,19 @@ class SeedDMS_Preview_Previewer { $file = $document->_dms->contentDir.$object->getPath(); $target = $this->getFileName($object, $width); return $this->createRawPreview($file, $document->getDir(), $object->getMimeType(), $width, $target); - - if($width == 0) - $width = $this->width; - else - $width = intval($width); - if(!$this->previewDir) - return false; - $document = $object->getDocument(); - $dir = $this->previewDir.'/'.$document->getDir(); - if(!is_dir($dir)) { - if (!SeedDMS_Core_File::makeDir($dir)) { - return false; - } - } - $file = $document->_dms->contentDir.$object->getPath(); - if(!file_exists($file)) - return false; - $target = $this->getFileName($object, $width); - if($target !== false && (!file_exists($target.'.png') || filectime($target.'.png') < $object->getDate())) { - $cmd = ''; - switch($object->getMimeType()) { - case "image/png": - case "image/gif": - case "image/jpeg": - case "image/jpg": - case "image/svg+xml": - $cmd = 'convert -resize '.$width.'x '.$file.' '.$target.'.png'; - break; - case "application/pdf": - case "application/postscript": - $cmd = 'convert -density 100 -resize '.$width.'x '.$file.'[0] '.$target.'.png'; - break; - case "text/plain": - $cmd = 'convert -resize '.$width.'x '.$file.'[0] '.$target.'.png'; - break; - case "application/x-compressed-tar": - $cmd = 'tar tzvf '.$file.' | convert -density 100 -resize '.$width.'x text:-[0] '.$target.'.png'; - break; - } - if($cmd) { - //exec($cmd); - try { - self::execWithTimeout($cmd, $this->timeout); - } catch(Exception $e) { - } - } - return true; - } - return true; } /* }}} */ + /** + * Check if a preview image already exists. + * + * This function is a companion to {@link SeedDMS_Preview_Previewer::createRawPreview()}. + * + * @param string $infile name of input file including full path + * @param string $dir directory relative to $this->previewDir + * @param integer $width desired width of preview image + * @return boolean true if preview exists, otherwise false + */ public function hasRawPreview($infile, $dir, $width=0) { /* {{{ */ if($width == 0) $width = $this->width; @@ -255,6 +237,16 @@ class SeedDMS_Preview_Previewer { return false; } /* }}} */ + /** + * Check if a preview image already exists. + * + * This function is a companion to {@link SeedDMS_Preview_Previewer::createPreview()}. + * + * @param object $object instance of SeedDMS_Core_DocumentContent + * or SeedDMS_Core_DocumentFile + * @param integer $width desired width of preview image + * @return boolean true if preview exists, otherwise false + */ public function hasPreview($object, $width=0) { /* {{{ */ if(!$object) return false; @@ -272,6 +264,16 @@ class SeedDMS_Preview_Previewer { return false; } /* }}} */ + /** + * Return a preview image. + * + * This function returns the content of a preview image if it exists.. + * + * @param string $infile name of input file including full path + * @param string $dir directory relative to $this->previewDir + * @param integer $width desired width of preview image + * @return boolean/string image content if preview exists, otherwise false + */ public function getRawPreview($infile, $dir, $width=0) { /* {{{ */ if($width == 0) $width = $this->width; @@ -286,6 +288,16 @@ class SeedDMS_Preview_Previewer { } } /* }}} */ + /** + * Return a preview image. + * + * This function returns the content of a preview image if it exists.. + * + * @param object $object instance of SeedDMS_Core_DocumentContent + * or SeedDMS_Core_DocumentFile + * @param integer $width desired width of preview image + * @return boolean/string image content if preview exists, otherwise false + */ public function getPreview($object, $width=0) { /* {{{ */ if($width == 0) $width = $this->width; @@ -300,6 +312,15 @@ class SeedDMS_Preview_Previewer { } } /* }}} */ + /** + * Return file size preview image. + * + * @param object $object instance of SeedDMS_Core_DocumentContent + * or SeedDMS_Core_DocumentFile + * @param integer $width desired width of preview image + * @return boolean/integer size of preview image or false if image + * does not exist + */ public function getFilesize($object, $width=0) { /* {{{ */ if($width == 0) $width = $this->width; @@ -314,8 +335,15 @@ class SeedDMS_Preview_Previewer { } /* }}} */ - - public function deletePreview($document, $object, $width=0) { /* {{{ */ + /** + * Delete preview image. + * + * @param object $object instance of SeedDMS_Core_DocumentContent + * or SeedDMS_Core_DocumentFile + * @param integer $width desired width of preview image + * @return boolean true if deletion succeded or false if file does not exist + */ + public function deletePreview($object, $width=0) { /* {{{ */ if($width == 0) $width = $this->width; else @@ -324,6 +352,38 @@ class SeedDMS_Preview_Previewer { return false; $target = $this->getFileName($object, $width); + if($target && file_exists($target.'.png')) { + return(unlink($target.'.png')); + } else { + return false; + } + } /* }}} */ + + /** + * Delete all preview images belonging to a document + * + * This function removes the preview images of all versions and + * files of a document including the directory. It actually just + * removes the directory for the document in the cache. + * + * @param object $document instance of SeedDMS_Core_Document + * @return boolean true if deletion succeded or false if file does not exist + */ + public function deleteDocumentPreviews($document) { /* {{{ */ + if(!$this->previewDir) + return false; + + function recurseRmdir($dir) { + $files = array_diff(scandir($dir), array('.','..')); + foreach ($files as $file) { + (is_dir("$dir/$file")) ? recurseRmdir("$dir/$file") : unlink("$dir/$file"); + } + return rmdir($dir); + } + + $dir = $this->previewDir.'/'.$document->getDir(); + return recurseRmdir($dir); + } /* }}} */ } ?> From 8ee518e69b0f9593d0beab0140dccc551c4ae2a8 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 26 Apr 2016 12:08:35 +0200 Subject: [PATCH 04/76] new version 1.1.9 --- SeedDMS_Preview/package.xml | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/SeedDMS_Preview/package.xml b/SeedDMS_Preview/package.xml index ee7067f3a..26f2e7a37 100644 --- a/SeedDMS_Preview/package.xml +++ b/SeedDMS_Preview/package.xml @@ -11,11 +11,11 @@ uwe@steinmann.cx yes - 2016-04-05 + 2016-04-26 - 1.1.8 - 1.1.8 + 1.1.9 + 1.1.9 stable @@ -23,7 +23,9 @@ GPL License -pass variables to stream_select (required by php7) +add more documentation +finished deletePreview() +add new method deleteDocumentPreviews() @@ -196,5 +198,21 @@ check if object passed to createPreview(), hasPreview() is not null set last parameter of stream_select() to 200000 micro sec. in case the timeout in sec. is set to 0 + + 2016-04-05 + + + 1.1.8 + 1.1.8 + + + stable + stable + + GPL License + +pass variables to stream_select (required by php7) + + From 97e28a8fef07af6778cf9661269c2131c9dfc2c6 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 26 Apr 2016 12:12:13 +0200 Subject: [PATCH 05/76] delete preview images --- op/op.RemoveDocument.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/op/op.RemoveDocument.php b/op/op.RemoveDocument.php index eb6897322..44368683f 100644 --- a/op/op.RemoveDocument.php +++ b/op/op.RemoveDocument.php @@ -52,6 +52,11 @@ if($document->isLocked()) { $folder = $document->getFolder(); +/* Remove all preview images. */ +require_once("SeedDMS/Preview.php"); +$previewer = new SeedDMS_Preview_Previewer($settings->_cacheDir); +$previewer->deleteDocumentPreviews($document); + /* Get the notify list before removing the document */ $dnl = $document->getNotifyList(); $fnl = $folder->getNotifyList(); From 1a515c9dfd269389478a4818e97f7f5f1320119f Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 26 Apr 2016 12:12:39 +0200 Subject: [PATCH 06/76] delete preview image, remove old code --- op/op.RemoveDocumentFile.php | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/op/op.RemoveDocumentFile.php b/op/op.RemoveDocumentFile.php index 4c9c988ea..8e706c959 100644 --- a/op/op.RemoveDocumentFile.php +++ b/op/op.RemoveDocumentFile.php @@ -55,26 +55,18 @@ if (($document->getAccessMode($user) < M_ALL)&&($user->getID()!=$file->getUserID UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); } +/* Remove preview image. */ +require_once("SeedDMS/Preview.php"); +$previewer = new SeedDMS_Preview_Previewer($settings->_cacheDir); +$previewer->deletePreview($file, $settings->_previewWidthDetail); + if (!$document->removeDocumentFile($fileid)) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("error_occured")); } else { // Send notification to subscribers. if($notifier) { $notifyList = $document->getNotifyList(); -/* - $subject = "###SITENAME###: ".$document->getName()." - ".getMLText("removed_file_email"); - $message = getMLText("removed_file_email")."\r\n"; - $message .= - getMLText("name").": ".$document->getName()."\r\n". - getMLText("file").": ".$file->getOriginalFileName()."\r\n". - getMLText("user").": ".$user->getFullName()." <". $user->getEmail() .">\r\n". - "URL: ###URL_PREFIX###out/out.ViewDocument.php?documentid=".$document->getID()."\r\n"; - $notifier->toList($user, $document->_notifyList["users"], $subject, $message); - foreach ($document->_notifyList["groups"] as $grp) { - $notifier->toGroup($user, $grp, $subject, $message); - } -*/ $subject = "removed_file_email_subject"; $message = "removed_file_email_body"; $params = array(); From 6f16d606472e01abc0bd7b9327593f14c9896062 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 26 Apr 2016 12:14:59 +0200 Subject: [PATCH 07/76] add another callback which removes preview images of documents also remove some old code --- op/op.RemoveFolder.php | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/op/op.RemoveFolder.php b/op/op.RemoveFolder.php index a0f375c09..ab75b3757 100644 --- a/op/op.RemoveFolder.php +++ b/op/op.RemoveFolder.php @@ -68,25 +68,21 @@ if($settings->_enableFullSearch) { $dms->setCallback('onPreRemoveDocument', 'removeFromIndex', array($index, $indexconf)); } +function removePreviews($arr, $document) { + $previewer = $arr[0]; + + $previewer->deleteDocumentPreviews($document); + return true; +} +require_once("SeedDMS/Preview.php"); +$previewer = new SeedDMS_Preview_Previewer($settings->_cacheDir); +$dms->addCallback('onPreRemoveDocument', 'removePreviews', array($previewer)); + $nl = $folder->getNotifyList(); $foldername = $folder->getName(); if ($folder->remove()) { // Send notification to subscribers. if ($notifier) { -/* - $subject = "###SITENAME###: ".$folder->getName()." - ".getMLText("folder_deleted_email"); - $message = getMLText("folder_deleted_email")."\r\n"; - $message .= - getMLText("name").": ".$folder->getName()."\r\n". - getMLText("folder").": ".$folder->getFolderPathPlain()."\r\n". - getMLText("comment").": ".$folder->getComment()."\r\n". - "URL: ###URL_PREFIX###out/out.ViewFolder.php?folderid=".$folder->getID()."\r\n"; - - $notifier->toList($user, $folder->_notifyList["users"], $subject, $message); - foreach ($folder->_notifyList["groups"] as $grp) { - $notifier->toGroup($user, $grp, $subject, $message); - } -*/ $subject = "folder_deleted_email_subject"; $message = "folder_deleted_email_body"; $params = array(); From 43633620e850dd203562e596ec5157e4c93da823 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 26 Apr 2016 12:15:56 +0200 Subject: [PATCH 08/76] remove preview images, remove some old code --- op/op.RemoveVersion.php | 29 +++++------------------------ 1 file changed, 5 insertions(+), 24 deletions(-) diff --git a/op/op.RemoveVersion.php b/op/op.RemoveVersion.php index f297ac074..c1d8390cd 100644 --- a/op/op.RemoveVersion.php +++ b/op/op.RemoveVersion.php @@ -58,37 +58,16 @@ if (!is_object($version)) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("invalid_version")); } +require_once("SeedDMS/Preview.php"); +$previewer = new SeedDMS_Preview_Previewer($settings->_cacheDir); if (count($document->getContent())==1) { + $previewer->deleteDocumentPreviews($document); $nl = $document->getNotifyList(); $docname = $document->getName(); if (!$document->remove()) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("error_occured")); } else { if ($notifier){ -/* - $path = ""; - $folder = $document->getFolder(); - $folderPath = $folder->getPath(); - for ($i = 0; $i < count($folderPath); $i++) { - $path .= $folderPath[$i]->getName(); - if ($i +1 < count($folderPath)) - $path .= " / "; - } - - $subject = "###SITENAME###: ".$document->getName()." - ".getMLText("document_deleted_email"); - $message = getMLText("document_deleted_email")."\r\n"; - $message .= - getMLText("document").": ".$document->getName()."\r\n". - getMLText("folder").": ".$path."\r\n". - getMLText("comment").": ".$document->getComment()."\r\n". - getMLText("user").": ".$user->getFullName()." <". $user->getEmail() ."> "; - - // Send notification to subscribers. - $notifier->toList($user, $document->_notifyList["users"], $subject, $message); - foreach ($document->_notifyList["groups"] as $grp) { - $notifier->toGroup($user, $grp, $subject, $message); - } -*/ $subject = "document_deleted_email_subject"; $message = "document_deleted_email_body"; $params = array(); @@ -131,6 +110,8 @@ else { } } + $previewer->deletePreview($version, $settings->_previewWidthDetail); + $previewer->deletePreview($version, $settings->_previewWidthList); if (!$document->removeContent($version)) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("error_occured")); } else { From fcf85a88e0e1a58b6a86434ff608b50f3ff6e059 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 26 Apr 2016 12:16:29 +0200 Subject: [PATCH 09/76] move inclusion of "SeedDMS/Preview.php" into view --- out/out.ViewDocument.php | 5 ----- views/bootstrap/class.ViewDocument.php | 5 +++++ 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/out/out.ViewDocument.php b/out/out.ViewDocument.php index f908d23ba..731b7413a 100644 --- a/out/out.ViewDocument.php +++ b/out/out.ViewDocument.php @@ -27,11 +27,6 @@ include("../inc/inc.ClassUI.php"); include("../inc/inc.ClassAccessOperation.php"); include("../inc/inc.Authentication.php"); -/** - * Include class to preview documents - */ -require_once("SeedDMS/Preview.php"); - $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); $view = UI::factory($theme, $tmp[1]); if(!$view) { diff --git a/views/bootstrap/class.ViewDocument.php b/views/bootstrap/class.ViewDocument.php index 59d226395..7d885416b 100644 --- a/views/bootstrap/class.ViewDocument.php +++ b/views/bootstrap/class.ViewDocument.php @@ -18,6 +18,11 @@ */ require_once("class.Bootstrap.php"); +/** + * Include class to preview documents + */ +require_once("SeedDMS/Preview.php"); + /** * Class which outputs the html page for ViewDocument view * From 7e3cd7d6c4feafa403e724b8a62d5774a825f38d Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 26 Apr 2016 13:43:02 +0200 Subject: [PATCH 10/76] move inclusion SeedDMS/Preview.php into view --- out/out.ApprovalSummary.php | 5 ----- out/out.AttributeMgr.php | 5 ----- out/out.DocumentVersionDetail.php | 5 ----- out/out.DropFolderChooser.php | 5 ----- out/out.GroupMgr.php | 5 ----- out/out.ManageNotify.php | 5 ----- out/out.MyDocuments.php | 5 ----- out/out.ReviewSummary.php | 5 ----- out/out.Search.php | 5 ----- out/out.Timeline.php | 5 ----- out/out.ViewFolder.php | 5 ----- out/out.WorkflowSummary.php | 5 ----- views/bootstrap/class.ApprovalSummary.php | 5 +++++ views/bootstrap/class.AttributeMgr.php | 5 +++++ views/bootstrap/class.DocumentVersionDetail.php | 5 +++++ views/bootstrap/class.DropFolderChooser.php | 5 +++++ views/bootstrap/class.GroupMgr.php | 5 +++++ views/bootstrap/class.ManageNotify.php | 5 +++++ views/bootstrap/class.MyDocuments.php | 5 +++++ views/bootstrap/class.ReviewSummary.php | 5 +++++ views/bootstrap/class.Search.php | 5 +++++ views/bootstrap/class.Timeline.php | 5 +++++ views/bootstrap/class.ViewFolder.php | 5 +++++ views/bootstrap/class.WorkflowSummary.php | 5 +++++ 24 files changed, 60 insertions(+), 60 deletions(-) diff --git a/out/out.ApprovalSummary.php b/out/out.ApprovalSummary.php index d2a838a64..487a4ffeb 100644 --- a/out/out.ApprovalSummary.php +++ b/out/out.ApprovalSummary.php @@ -24,11 +24,6 @@ include("../inc/inc.Language.php"); include("../inc/inc.ClassUI.php"); include("../inc/inc.Authentication.php"); -/** - * Include class to preview documents - */ -require_once("SeedDMS/Preview.php"); - if ($user->isGuest()) { UI::exitError(getMLText("my_documents"),getMLText("access_denied")); } diff --git a/out/out.AttributeMgr.php b/out/out.AttributeMgr.php index 87a8bcc7a..14d60bb36 100644 --- a/out/out.AttributeMgr.php +++ b/out/out.AttributeMgr.php @@ -25,11 +25,6 @@ include("../inc/inc.Language.php"); include("../inc/inc.ClassUI.php"); include("../inc/inc.Authentication.php"); -/** - * Include class to preview documents - */ -require_once("SeedDMS/Preview.php"); - if (!$user->isAdmin()) { UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); } diff --git a/out/out.DocumentVersionDetail.php b/out/out.DocumentVersionDetail.php index 6342e6092..ff6923114 100644 --- a/out/out.DocumentVersionDetail.php +++ b/out/out.DocumentVersionDetail.php @@ -26,11 +26,6 @@ include("../inc/inc.ClassUI.php"); include("../inc/inc.ClassAccessOperation.php"); include("../inc/inc.Authentication.php"); -/** - * Include class to preview documents - */ -require_once("SeedDMS/Preview.php"); - if (!isset($_GET["documentid"]) || !is_numeric($_GET["documentid"]) || intval($_GET["documentid"])<1) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } diff --git a/out/out.DropFolderChooser.php b/out/out.DropFolderChooser.php index 34e45e243..da71f6c1a 100644 --- a/out/out.DropFolderChooser.php +++ b/out/out.DropFolderChooser.php @@ -24,11 +24,6 @@ include("../inc/inc.DBInit.php"); include("../inc/inc.Language.php"); include("../inc/inc.Authentication.php"); -/** - * Include class to preview documents - */ -require_once("SeedDMS/Preview.php"); - $form = preg_replace('/[^A-Za-z0-9_]+/', '', $_GET["form"]); if(substr($settings->_dropFolderDir, -1, 1) == DIRECTORY_SEPARATOR) diff --git a/out/out.GroupMgr.php b/out/out.GroupMgr.php index 2ab0b2cd0..f6816cd10 100644 --- a/out/out.GroupMgr.php +++ b/out/out.GroupMgr.php @@ -25,11 +25,6 @@ include("../inc/inc.Language.php"); include("../inc/inc.ClassUI.php"); include("../inc/inc.Authentication.php"); -/** - * Include class to preview documents - */ -require_once("SeedDMS/Preview.php"); - if (!$user->isAdmin()) { UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); } diff --git a/out/out.ManageNotify.php b/out/out.ManageNotify.php index 327ca07ad..a427dba23 100644 --- a/out/out.ManageNotify.php +++ b/out/out.ManageNotify.php @@ -22,11 +22,6 @@ include("../inc/inc.Language.php"); include("../inc/inc.ClassUI.php"); include("../inc/inc.Authentication.php"); -/** - * Include class to preview documents - */ -require_once("SeedDMS/Preview.php"); - if ($user->isGuest()) { UI::exitError(getMLText("my_account"),getMLText("access_denied")); } diff --git a/out/out.MyDocuments.php b/out/out.MyDocuments.php index 4fdc2a0ed..379ae1a8e 100644 --- a/out/out.MyDocuments.php +++ b/out/out.MyDocuments.php @@ -24,11 +24,6 @@ include("../inc/inc.Language.php"); include("../inc/inc.ClassUI.php"); include("../inc/inc.Authentication.php"); -/** - * Include class to preview documents - */ -require_once("SeedDMS/Preview.php"); - if ($user->isGuest()) { UI::exitError(getMLText("my_documents"),getMLText("access_denied")); } diff --git a/out/out.ReviewSummary.php b/out/out.ReviewSummary.php index 7c6567105..075a50672 100644 --- a/out/out.ReviewSummary.php +++ b/out/out.ReviewSummary.php @@ -25,11 +25,6 @@ include("../inc/inc.Language.php"); include("../inc/inc.ClassUI.php"); include("../inc/inc.Authentication.php"); -/** - * Include class to preview documents - */ -require_once("SeedDMS/Preview.php"); - if ($user->isGuest()) { UI::exitError(getMLText("my_documents"),getMLText("access_denied")); } diff --git a/out/out.Search.php b/out/out.Search.php index fca8c96c2..f9736c2e8 100644 --- a/out/out.Search.php +++ b/out/out.Search.php @@ -26,11 +26,6 @@ include("../inc/inc.ClassUI.php"); include("../inc/inc.ClassAccessOperation.php"); include("../inc/inc.Authentication.php"); -/** - * Include class to preview documents - */ -require_once("SeedDMS/Preview.php"); - function getTime() { if (function_exists('microtime')) { $tm = microtime(); diff --git a/out/out.Timeline.php b/out/out.Timeline.php index 2130ff2ad..bad3862ec 100644 --- a/out/out.Timeline.php +++ b/out/out.Timeline.php @@ -23,11 +23,6 @@ include("../inc/inc.Language.php"); include("../inc/inc.ClassUI.php"); include("../inc/inc.Authentication.php"); -/** - * Include class to preview documents - */ -require_once("SeedDMS/Preview.php"); - if (!$user->isAdmin()) { UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); } diff --git a/out/out.ViewFolder.php b/out/out.ViewFolder.php index 1ff3e02f6..011a842a2 100644 --- a/out/out.ViewFolder.php +++ b/out/out.ViewFolder.php @@ -25,11 +25,6 @@ include("../inc/inc.Language.php"); include("../inc/inc.Authentication.php"); include("../inc/inc.ClassUI.php"); -/** - * Include class to preview documents - */ -require_once("SeedDMS/Preview.php"); - $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user)); diff --git a/out/out.WorkflowSummary.php b/out/out.WorkflowSummary.php index b0247a6c0..6d2dbc4a9 100644 --- a/out/out.WorkflowSummary.php +++ b/out/out.WorkflowSummary.php @@ -25,11 +25,6 @@ include("../inc/inc.Language.php"); include("../inc/inc.ClassUI.php"); include("../inc/inc.Authentication.php"); -/** - * Include class to preview documents - */ -require_once("SeedDMS/Preview.php"); - if ($user->isGuest()) { UI::exitError(getMLText("my_documents"),getMLText("access_denied")); } diff --git a/views/bootstrap/class.ApprovalSummary.php b/views/bootstrap/class.ApprovalSummary.php index 6e2e513c4..55c6926f9 100644 --- a/views/bootstrap/class.ApprovalSummary.php +++ b/views/bootstrap/class.ApprovalSummary.php @@ -18,6 +18,11 @@ */ require_once("class.Bootstrap.php"); +/** + * Include class to preview documents + */ +require_once("SeedDMS/Preview.php"); + /** * Class which outputs the html page for ApprovalSummary view * diff --git a/views/bootstrap/class.AttributeMgr.php b/views/bootstrap/class.AttributeMgr.php index 5f3878916..057777cbb 100644 --- a/views/bootstrap/class.AttributeMgr.php +++ b/views/bootstrap/class.AttributeMgr.php @@ -18,6 +18,11 @@ */ require_once("class.Bootstrap.php"); +/** + * Include class to preview documents + */ +require_once("SeedDMS/Preview.php"); + /** * Class which outputs the html page for AttributeMgr view * diff --git a/views/bootstrap/class.DocumentVersionDetail.php b/views/bootstrap/class.DocumentVersionDetail.php index 41bfbd713..185375f18 100644 --- a/views/bootstrap/class.DocumentVersionDetail.php +++ b/views/bootstrap/class.DocumentVersionDetail.php @@ -18,6 +18,11 @@ */ require_once("class.Bootstrap.php"); +/** + * Include class to preview documents + */ +require_once("SeedDMS/Preview.php"); + /** * Class which outputs the html page for DocumentVersionDetail view * diff --git a/views/bootstrap/class.DropFolderChooser.php b/views/bootstrap/class.DropFolderChooser.php index 4882c6782..f9c883710 100644 --- a/views/bootstrap/class.DropFolderChooser.php +++ b/views/bootstrap/class.DropFolderChooser.php @@ -18,6 +18,11 @@ */ require_once("class.Bootstrap.php"); +/** + * Include class to preview documents + */ +require_once("SeedDMS/Preview.php"); + /** * Class which outputs the html page for CategoryChooser view * diff --git a/views/bootstrap/class.GroupMgr.php b/views/bootstrap/class.GroupMgr.php index 0ba3cdb86..08b373b54 100644 --- a/views/bootstrap/class.GroupMgr.php +++ b/views/bootstrap/class.GroupMgr.php @@ -18,6 +18,11 @@ */ require_once("class.Bootstrap.php"); +/** + * Include class to preview documents + */ +require_once("SeedDMS/Preview.php"); + /** * Class which outputs the html page for GroupMgr view * diff --git a/views/bootstrap/class.ManageNotify.php b/views/bootstrap/class.ManageNotify.php index c4acc49df..06a2874e8 100644 --- a/views/bootstrap/class.ManageNotify.php +++ b/views/bootstrap/class.ManageNotify.php @@ -18,6 +18,11 @@ */ require_once("class.Bootstrap.php"); +/** + * Include class to preview documents + */ +require_once("SeedDMS/Preview.php"); + /** * Class which outputs the html page for ManageNotify view * diff --git a/views/bootstrap/class.MyDocuments.php b/views/bootstrap/class.MyDocuments.php index d4020c532..35e162c25 100644 --- a/views/bootstrap/class.MyDocuments.php +++ b/views/bootstrap/class.MyDocuments.php @@ -18,6 +18,11 @@ */ require_once("class.Bootstrap.php"); +/** + * Include class to preview documents + */ +require_once("SeedDMS/Preview.php"); + /** * Class which outputs the html page for MyDocuments view * diff --git a/views/bootstrap/class.ReviewSummary.php b/views/bootstrap/class.ReviewSummary.php index 95a3dd819..879cdc3e0 100644 --- a/views/bootstrap/class.ReviewSummary.php +++ b/views/bootstrap/class.ReviewSummary.php @@ -18,6 +18,11 @@ */ require_once("class.Bootstrap.php"); +/** + * Include class to preview documents + */ +require_once("SeedDMS/Preview.php"); + /** * Class which outputs the html page for ReviewSummary view * diff --git a/views/bootstrap/class.Search.php b/views/bootstrap/class.Search.php index 023c2d0e6..aa35708bc 100644 --- a/views/bootstrap/class.Search.php +++ b/views/bootstrap/class.Search.php @@ -18,6 +18,11 @@ */ require_once("class.Bootstrap.php"); +/** + * Include class to preview documents + */ +require_once("SeedDMS/Preview.php"); + /** * Class which outputs the html page for Search result view * diff --git a/views/bootstrap/class.Timeline.php b/views/bootstrap/class.Timeline.php index 4832ffb61..2ef72a7bf 100644 --- a/views/bootstrap/class.Timeline.php +++ b/views/bootstrap/class.Timeline.php @@ -18,6 +18,11 @@ */ require_once("class.Bootstrap.php"); +/** + * Include class to preview documents + */ +require_once("SeedDMS/Preview.php"); + /** * Class which outputs the html page for Timeline view * diff --git a/views/bootstrap/class.ViewFolder.php b/views/bootstrap/class.ViewFolder.php index 934c4691c..5c2cddc39 100644 --- a/views/bootstrap/class.ViewFolder.php +++ b/views/bootstrap/class.ViewFolder.php @@ -18,6 +18,11 @@ */ require_once("class.Bootstrap.php"); +/** + * Include class to preview documents + */ +require_once("SeedDMS/Preview.php"); + /** * Class which outputs the html page for ViewFolder view * diff --git a/views/bootstrap/class.WorkflowSummary.php b/views/bootstrap/class.WorkflowSummary.php index 1014d677e..ba482b8c0 100644 --- a/views/bootstrap/class.WorkflowSummary.php +++ b/views/bootstrap/class.WorkflowSummary.php @@ -18,6 +18,11 @@ */ require_once("class.Bootstrap.php"); +/** + * Include class to preview documents + */ +require_once("SeedDMS/Preview.php"); + /** * Class which outputs the html page for WorkflowSummary view * From 20920d9cecdbd24869a695e60bd3cce7b4d31d56 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 26 Apr 2016 13:47:42 +0200 Subject: [PATCH 11/76] start changelog for 4.3.27 --- CHANGELOG | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG b/CHANGELOG index f4f648dbe..0c3391f2d 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,8 @@ +-------------------------------------------------------------------------------- + Changes in version 4.3.27 +-------------------------------------------------------------------------------- +- remove preview images when document or document content is removed (Closes #262) + -------------------------------------------------------------------------------- Changes in version 4.3.26 -------------------------------------------------------------------------------- From 24e30529ab168f9e612ec0aed197e6b2d545d0b0 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 26 Apr 2016 18:20:22 +0200 Subject: [PATCH 12/76] fix html markup --- views/bootstrap/class.ViewDocument.php | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/views/bootstrap/class.ViewDocument.php b/views/bootstrap/class.ViewDocument.php index 7d885416b..4949113d6 100644 --- a/views/bootstrap/class.ViewDocument.php +++ b/views/bootstrap/class.ViewDocument.php @@ -417,7 +417,7 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style { print "
  • ".htmlspecialchars($attrdef->getName()).": ".htmlspecialchars(implode(', ', $attribute->getValueAsArray()))."
  • \n"; } } - print "\n"; + print "\n"; print "".htmlspecialchars($latestContent->getComment()).""; @@ -599,7 +599,7 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style { } print "\n"; - print "\n\n"; + print "\n"; } } @@ -668,7 +668,6 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style { } print ""; - print "\n"; print "\n\n"; } } @@ -946,7 +945,7 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style { print "
  • ".htmlspecialchars($attrdef->getName()).": ".htmlspecialchars(implode(', ', $attribute->getValueAsArray()))."
  • \n"; } } - print "\n"; + print "\n"; print "".htmlspecialchars($version->getComment()).""; print "".getOverallStatusText($vstat["status"]).""; print ""; @@ -1030,7 +1029,7 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style { print "
  • ".getMLText("uploaded_by")." getEmail()."\">".htmlspecialchars($responsibleUser->getFullName())."
  • "; print "
  • ".getLongReadableDate($file->getDate())."
  • "; - + print ""; print "".htmlspecialchars($file->getComment()).""; print "
      "; From 42c68e0b1e08fc13894e5ddf8e5cf01d5ca8086f Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Wed, 27 Apr 2016 20:34:44 +0200 Subject: [PATCH 13/76] remove class 'table' from table this turns of the lines --- views/bootstrap/class.AttributeMgr.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/bootstrap/class.AttributeMgr.php b/views/bootstrap/class.AttributeMgr.php index 057777cbb..731291cea 100644 --- a/views/bootstrap/class.AttributeMgr.php +++ b/views/bootstrap/class.AttributeMgr.php @@ -167,7 +167,7 @@ $(document).ready( function() { - +
      \n"; $errmsgs = array(); foreach($GLOBALS['EXT_CONF'] as $extname=>$extconf) { + $errmsgs = array(); if(!isset($extconf['disable']) || $extconf['disable'] == false) { /* check dependency on specific seeddms version */ - if(isset($extconf['constraints']['depends']['seeddms'])) { - $tmp = explode('-', $extconf['constraints']['depends']['seeddms'], 2); - if(cmpVersion($tmp[0], $version->version()) > 0 || ($tmp[1] && cmpVersion($tmp[1], $version->version()) < 0)) - $errmsgs[] = sprintf("Incorrect SeedDMS version (needs version %s)", $extconf['constraints']['depends']['seeddms']); - } else { + if(!isset($extconf['constraints']['depends']['seeddms'])) $errmsgs[] = "Missing dependency on SeedDMS"; + if(!isset($extconf['constraints']['depends']['php'])) + $errmsgs[] = "Missing dependency on PHP"; + + if(isset($extconf['constraints']['depends'])) { + foreach($extconf['constraints']['depends'] as $dkey=>$dval) { + switch($dkey) { + case 'seeddms': + $tmp = explode('-', $dval, 2); + if(cmpVersion($tmp[0], $version->version()) > 0 || ($tmp[1] && cmpVersion($tmp[1], $version->version()) < 0)) + $errmsgs[] = sprintf("Incorrect SeedDMS version (needs version %s)", $extconf['constraints']['depends']['seeddms']); + break; + case 'php': + $tmp = explode('-', $dval, 2); + if(cmpVersion($tmp[0], phpversion()) > 0 || ($tmp[1] && cmpVersion($tmp[1], phpversion()) < 0)) + $errmsgs[] = sprintf("Incorrect PHP version (needs version %s)", $extconf['constraints']['depends']['php']); + break; + default: + $tmp = explode('-', $dval, 2); + if(isset($GLOBALS['EXT_CONF'][$dkey]['version'])) { + if(cmpVersion($tmp[0], $GLOBALS['EXT_CONF'][$dkey]['version']) > 0 || ($tmp[1] && cmpVersion($tmp[1], $GLOBALS['EXT_CONF'][$dkey]['version']) < 0)) + $errmsgs[] = sprintf("Incorrect version of extension '%s' (needs version '%s' but provides '%s')", $dkey, $dval, $GLOBALS['EXT_CONF'][$dkey]['version']); + } else { + $errmsgs[] = sprintf("Missing extension or version for '%s'", $dkey); + } + break; + } + } } - /* check dependency on specific php version */ - if(isset($extconf['constraints']['depends']['php'])) { - $tmp = explode('-', $extconf['constraints']['depends']['php'], 2); - if(cmpVersion($tmp[0], phpversion()) > 0 || ($tmp[1] && cmpVersion($tmp[1], phpversion()) < 0)) - $errmsgs[] = sprintf("Incorrect PHP version (needs version %s)", $extconf['constraints']['depends']['php']); - } else { - $errmsgs[] = "Missing dependency on PHP"; - } if($errmsgs) echo ""; else @@ -77,7 +93,7 @@ class SeedDMS_View_ExtensionMgr extends SeedDMS_Bootstrap_Style { echo ""; echo ""; echo ""; echo ""; From eb3f20c78bca9ad68dca63385b1f270864d8c5e3 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 28 Apr 2016 12:07:07 +0200 Subject: [PATCH 20/76] add changes in 5.0.4 --- CHANGELOG | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CHANGELOG b/CHANGELOG index cbf7fbacc..8b2f90f86 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,10 @@ +-------------------------------------------------------------------------------- + Changes in version 5.0.4 +-------------------------------------------------------------------------------- +- merged changes from 4.3.27 +- much better dependency checking for extensions, turn off extensions which + do not match seeddms version dependency + -------------------------------------------------------------------------------- Changes in version 5.0.3 -------------------------------------------------------------------------------- @@ -24,6 +31,10 @@ - add .xml to online file types by default - add home folder for users +-------------------------------------------------------------------------------- + Changes in version 4.3.27 +-------------------------------------------------------------------------------- + -------------------------------------------------------------------------------- Changes in version 4.3.26 -------------------------------------------------------------------------------- From ea14c50838a119d29f8185a32f0f7f483df102c0 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 29 Apr 2016 08:09:37 +0200 Subject: [PATCH 21/76] mark jqtree element on hover --- styles/bootstrap/application.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/styles/bootstrap/application.css b/styles/bootstrap/application.css index d050492ab..38ea66652 100644 --- a/styles/bootstrap/application.css +++ b/styles/bootstrap/application.css @@ -163,6 +163,10 @@ div.splash { display: none; } +ul.jqtree-tree li.jqtree_common > .jqtree-element:hover { + background-color: #E0E0E0; +} + @media (max-width: 480px) { .nav-tabs > li { float:none; From fa413d03369eee2b93cef703bfd007f9e34d4fff Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Fri, 29 Apr 2016 08:10:10 +0200 Subject: [PATCH 22/76] no action if folder is droped on itself --- styles/bootstrap/application.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/styles/bootstrap/application.js b/styles/bootstrap/application.js index 220e326ed..f7a2002bf 100644 --- a/styles/bootstrap/application.js +++ b/styles/bootstrap/application.js @@ -665,7 +665,7 @@ $(document).ready(function() { url = "../out/out.MoveDocument.php?documentid="+source_id+"&targetid="+target_id; // document.location = url; - } else if(source_type == 'folder') { + } else if(source_type == 'folder' && source_id != target_id) { bootbox.dialog(trans.confirm_move_folder, [{ "label" : " "+trans.move_folder, "class" : "btn-danger", @@ -814,7 +814,7 @@ $(document).ready(function() { url = "../out/out.MoveDocument.php?documentid="+source_id+"&targetid="+target_id; // document.location = url; - } else if(source_type == 'folder') { + } else if(source_type == 'folder' && source_id != target_id) { bootbox.dialog(trans.confirm_move_folder, [{ "label" : " "+trans.move_folder, "class" : "btn-danger", From 1640df6d4fe59e8f943201d033d84443223529bb Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 2 May 2016 09:34:12 +0200 Subject: [PATCH 23/76] do not claim that the default for maxDirID is 32670 --- conf/settings.xml.template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/settings.xml.template b/conf/settings.xml.template index 32afc7468..d43aa3ff6 100644 --- a/conf/settings.xml.template +++ b/conf/settings.xml.template @@ -267,7 +267,7 @@ - directory ($_contentDir). This requires a base directory from which - to begin. Usually leave this to the default setting, 1048576, but can - be any number or string that does not already exist within $_contentDir. - - maxDirID: Maximum number of sub-directories per parent directory. Default: 32700. + - maxDirID: Maximum number of sub-directories per parent directory. Default: 0. - updateNotifyTime: users are notified about document-changes that took place within the last "updateNotifyTime" seconds - extraPath: XXX - maxExecutionTime: XXX From 11d63555477539203fb3e8dc0fee7a570941877e Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 2 May 2016 10:08:39 +0200 Subject: [PATCH 24/76] fix typo --- CHANGELOG | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index 30495e49a..6e29dafaa 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -22,7 +22,7 @@ -------------------------------------------------------------------------------- - much more consistent drag & drop - various translation updates -- take out file deletion because it was (and probabbly never has been) useful +- take out file deletion because it was not (and probabbly never has been) useful - send notification if folder is deleted by ajax call - add page ImportFS for mass importing files from drop folder - add initial version for editing text files online From 9fb4dfaa9b4451e317101e39b40db87601b43b84 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 3 May 2016 06:44:50 +0200 Subject: [PATCH 25/76] start new version 5.0.4 --- Makefile | 2 +- SeedDMS_Core/Core/inc.ClassDMS.php | 2 +- SeedDMS_Core/package.xml | 25 ++++++++++++++++++++----- inc/inc.Version.php | 2 +- install/install.php | 2 +- 5 files changed, 24 insertions(+), 9 deletions(-) diff --git a/Makefile b/Makefile index 97be48904..d76f54390 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -VERSION=5.0.3 +VERSION=5.0.4 SRC=CHANGELOG inc conf utils index.php languages views op out controllers doc drop-tables-innodb.sql styles js TODO LICENSE Makefile webdav install restapi # webapp diff --git a/SeedDMS_Core/Core/inc.ClassDMS.php b/SeedDMS_Core/Core/inc.ClassDMS.php index c1e6d1c62..a047733f7 100644 --- a/SeedDMS_Core/Core/inc.ClassDMS.php +++ b/SeedDMS_Core/Core/inc.ClassDMS.php @@ -312,7 +312,7 @@ class SeedDMS_Core_DMS { $this->callbacks = array(); $this->version = '@package_version@'; if($this->version[0] == '@') - $this->version = '5.0.3'; + $this->version = '5.0.4'; } /* }}} */ /** diff --git a/SeedDMS_Core/package.xml b/SeedDMS_Core/package.xml index 75077d574..79f2645bb 100644 --- a/SeedDMS_Core/package.xml +++ b/SeedDMS_Core/package.xml @@ -12,11 +12,11 @@ uwe@steinmann.cx yes - 2016-04-04 + 2016-05-03 - 5.0.3 - 5.0.3 + 5.0.4 + 5.0.4 stable @@ -24,8 +24,6 @@ GPL License -- use classname from SeedDMS_Core_DMS::_classnames for SeedDMS_Core_DocumentContent -- all changes from 4.3.26 merged @@ -1074,5 +1072,22 @@ SeedDMS_Core_DMS::getNotificationsByUser() are deprecated - all changes from 4.3.25 merged + + 2016-04-04 + + + 5.0.3 + 5.0.3 + + + stable + stable + + GPL License + +- use classname from SeedDMS_Core_DMS::_classnames for SeedDMS_Core_DocumentContent +- all changes from 4.3.26 merged + + diff --git a/inc/inc.Version.php b/inc/inc.Version.php index 95f0bc97e..21244c76c 100644 --- a/inc/inc.Version.php +++ b/inc/inc.Version.php @@ -20,7 +20,7 @@ class SeedDMS_Version { - public $_number = "5.0.3"; + public $_number = "5.0.4"; private $_string = "SeedDMS"; function __construct() { diff --git a/install/install.php b/install/install.php index 6c1ddb38d..3c413a0b4 100644 --- a/install/install.php +++ b/install/install.php @@ -118,7 +118,7 @@ function fileExistsInIncludePath($file) { /* {{{ */ * Load default settings + set */ define("SEEDDMS_INSTALL", "on"); -define("SEEDDMS_VERSION", "5.0.3"); +define("SEEDDMS_VERSION", "5.0.4"); require_once('../inc/inc.ClassSettings.php'); From 553a29bd29a65fb85951c550a9b0b726c7ecbb22 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 3 May 2016 07:03:31 +0200 Subject: [PATCH 26/76] remove some old code --- inc/inc.Authentication.php | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/inc/inc.Authentication.php b/inc/inc.Authentication.php index d300504b7..38c3d8bd6 100644 --- a/inc/inc.Authentication.php +++ b/inc/inc.Authentication.php @@ -76,19 +76,9 @@ if($settings->_enableEmail) { $notifier->addService(new SeedDMS_EmailNotify($dms)); } -/* Include the language file as specified in the session. If that is not - * available use the language from the settings +/* Include additional language file for view + * This file must set $LANG[xx][] */ -/* -if(file_exists($settings->_rootDir . "languages/" . $resArr["language"] . "/lang.inc")) { - include $settings->_rootDir . "languages/" . $resArr["language"] . "/lang.inc"; - $session->setLanguage($resArr["language"]); -} else { - include $settings->_rootDir . "languages/" . $settings->_language . "/lang.inc"; - $session->setLanguage($settings->_language); -} -*/ - if(file_exists($settings->_rootDir . "view/".$theme."/languages/" . $lang . "/lang.inc")) { include $settings->_rootDir . "view/".$theme."/languages/" . $lang . "/lang.inc"; } From 1b8e0052e8b35625de5ed874ef49f621f6697c3e Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 3 May 2016 07:03:47 +0200 Subject: [PATCH 27/76] use contentHeading() instead of plain html --- views/bootstrap/class.ForcePasswordChange.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/bootstrap/class.ForcePasswordChange.php b/views/bootstrap/class.ForcePasswordChange.php index dde4f3ea4..d48443479 100644 --- a/views/bootstrap/class.ForcePasswordChange.php +++ b/views/bootstrap/class.ForcePasswordChange.php @@ -75,7 +75,7 @@ $(document).ready( function() { $this->htmlStartPage(getMLText("sign_in"), "forcepasswordchange"); $this->globalBanner(); $this->contentStart(); - echo "

      ".getMLText('password_expiration')."

      "; + $this->contentHeading(getMLText('password_expiration')); echo "
      ".getMLText('password_expiration_text')."
      "; $this->contentContainerStart(); ?> From 30a18f81c559525d5b7b16d325186a0afb220552 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 3 May 2016 07:12:24 +0200 Subject: [PATCH 28/76] $strictformset isn't needed --- views/bootstrap/class.ForcePasswordChange.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/views/bootstrap/class.ForcePasswordChange.php b/views/bootstrap/class.ForcePasswordChange.php index d48443479..06553cf4e 100644 --- a/views/bootstrap/class.ForcePasswordChange.php +++ b/views/bootstrap/class.ForcePasswordChange.php @@ -32,8 +32,6 @@ require_once("class.Bootstrap.php"); class SeedDMS_View_ForcePasswordChange extends SeedDMS_Bootstrap_Style { function js() { /* {{{ */ - $strictformcheck = $this->params['strictformcheck']; - header('Content-Type: application/javascript'); ?> function checkForm() From ecf6c13fe46ce7e728c87a36abeba89976fbf704 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 3 May 2016 08:36:06 +0200 Subject: [PATCH 29/76] make recurseRmdir() static --- SeedDMS_Preview/Preview/Previewer.php | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/SeedDMS_Preview/Preview/Previewer.php b/SeedDMS_Preview/Preview/Previewer.php index 76d878854..ef37f82a4 100644 --- a/SeedDMS_Preview/Preview/Previewer.php +++ b/SeedDMS_Preview/Preview/Previewer.php @@ -359,6 +359,14 @@ class SeedDMS_Preview_Previewer { } } /* }}} */ + static function recurseRmdir($dir) { + $files = array_diff(scandir($dir), array('.','..')); + foreach ($files as $file) { + (is_dir("$dir/$file")) ? SeedDMS_Preview_Previewer::recurseRmdir("$dir/$file") : unlink("$dir/$file"); + } + return rmdir($dir); + } + /** * Delete all preview images belonging to a document * @@ -373,16 +381,8 @@ class SeedDMS_Preview_Previewer { if(!$this->previewDir) return false; - function recurseRmdir($dir) { - $files = array_diff(scandir($dir), array('.','..')); - foreach ($files as $file) { - (is_dir("$dir/$file")) ? recurseRmdir("$dir/$file") : unlink("$dir/$file"); - } - return rmdir($dir); - } - $dir = $this->previewDir.'/'.$document->getDir(); - return recurseRmdir($dir); + return SeedDMS_Preview_Previewer::recurseRmdir($dir); } /* }}} */ } From 0501900a28c54c950114ce7c0ff663a9b6512406 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Wed, 4 May 2016 08:14:04 +0200 Subject: [PATCH 30/76] various improvements --- doc/README.Synology.txt | 106 ++++++++++++++++++++++++++++++---------- 1 file changed, 80 insertions(+), 26 deletions(-) diff --git a/doc/README.Synology.txt b/doc/README.Synology.txt index 0326d4504..d878c7dd3 100644 --- a/doc/README.Synology.txt +++ b/doc/README.Synology.txt @@ -1,14 +1,16 @@ ********************************************* -How to set up SeedDMS Preview on Synology NAS +How to set up a Synology NAS to run SeedDMS ********************************************* +**This guide has been updated and tested to work on Synology DSM 6.0. It should as well work with older DMS versions, however some steps or paths may be different.** + Introduction ############ -SeedDMS provides a function creating a preview of each document which is displayed on the document page. +SeedDMS is a feature rich and lightweight document management system. Unfortunately, some of the tools which are part of many Linux distros, have not been made available by +Synology and therefore require additional steps to bring them to your Synology. -Synology stations do not support the creation of the previews by default due to a missing Ghostscript implementation. Therefore -loading of a document page can use a lot of time because SeedDMS tries to create the missing preview images each time the document -page is being loaded. +This guide covers the installation of the required tools to have all features of SeedDMS available. It does not cover the installation of 3rd party programs (like OPKG). It +does not cover the installation of SeedDMS as well, please refer to the separate README.Install.md file. Prerequisites ############# @@ -20,7 +22,7 @@ In order to complete the steps outlined below, you must be able to carry out the To complete the installation, the following prerequisites on your Synology must be met: * IPKG or OPKG (OPKG preferred) installed -* Pear Package SeedDMS_Preview already installed +* PEAR installed from the Synology Package Center Installation and configuration ############################## @@ -31,8 +33,8 @@ must be done on the terminal. Install Ghostscript *************************** -The first step is to install Ghostscript to make ImageMagick capable of converting PDF files to images. Use IPKG or OPKG to complete this -step. +The first step is to install Ghostscript to make ImageMagick capable of converting PDF files to images which are then used for previews. +Use IPKG or OPKG to complete this step. Make Ghostscript available to PHP ***************************************** @@ -42,21 +44,10 @@ use phpinfo and find **_SERVER["PATH"]**. If you can't find /opt inside, PHP can update the paths or just make a symlink. To create the symlink, cd to /usr/bin and type *ln -s /opt/bin/gs gs*. Verify the created symlink. -Fix Ghostscript package bug -**************************************** - -Unfortunately the version delivered by OPKG has a bug, making Ghostscript failing to work properly. The bug requries fixing at the time -of the writing are the following: - -* Resource path pointing to a wrong version (9.10 instead of 9.16) - -First, fix the resource path. Go to /opt/bin and find **gs** in there. Open the file with VI. Change the GS_LIB path from */opt/share/ghostscript/9.10/Resource* -to */opt/share/ghostscript/9.16/Resource*. This will now allow Ghostscript to find it's files in the proper path. - Fix ImageMagick ******************** -Not only Ghostscript is affected by bugs, the default configuration files are missing. Unfortunately some work is required here as well. +Not only Ghostscript is affected by bugs, the default configuration files for ImageMagick are missing. Unfortunately some work is required here as well. To check where ImageMagick looks for it's files, invoke the command *convert -debug configure logo: null:*. You will see some paths shown, these are the paths where ImageMagic tries to locate it's configuration files. The first path shown will point to */usr/share/ImageMagick-6* followed by the @@ -99,11 +90,74 @@ If you want to test Ghostcript as well, invoke the follwing command: This command should go through without any errors and as well output a png file. -If the tests above are successful, you are ready to use SeedDMS Preview. Go to your SeedDMS Installation and open a folder. For the first test you -may take a folder with less files in it. Be patient while the previews are generated. You may check the process using *top* on the terminal. +If the tests above are successful, you are ready to use SeedDMS Preview. -At the end your document page should show the previews like shown below: +Install PEAR packages +********************* -.. figure:: preview.png - :alt: Document previews - :scale: 75% +This step is similar to the installation on other Linux distros. Once you installed PEAR from the Package Center you can call it from the command line. + +The following packages are required by SeedDMS: + +* Auth_SASL +* HTTP_WebDAV_Server +* Log +* Mail +* Net_SMTP + +Install these packages, then go to the next step. + +Install additional packages +*************************** + +SeedDMS uses other small tools (for example the Slim Framework) to add some additional functionality. At the moment (Version 5.0.x) the list contains the following +tools: + +* FeedWriter +* Slim +* parsedown + +Copy the tools to a folder on your Synology. Using the console, copy the tools to **/volume1/@appstore/PEAR**. +Copy the whole folders as they are and do not change the structure. As the PEAR directory is already within +the PHP include path, no further configuration is required to get them working. + +Fulltext Index +*************** + +If you do not intend to use the fulltext index, please skip this section and continue with the readme file to +install SeedDMS. + +To create the fulltext index, SeedDMS needs to be able to convert the documents to text files to read the terms +out. Pdftotext is already available by default, so we just need to take care of the Microsoft Office formats. + +For this guide, the following two tools have been selected: + +docx2txt available from http://docx2txt.sourceforge.net/ + +xlsx2csv available from http://github.com/dilshod/xlsx2csv + +Copy both files to your Synology. + +**docx2txt** + +This program runs without any kind of installation. Create a folder on your Synology and extract the contents of the archive. + +In SeedDMS you can now configure the setting for Word documents to the path where you extracted the files in the step before. Point +to the docx2txt.sh file and you are done. + +To make the configuration more simple you can add a symlink in **/usr/bin**. This will allow you to call docx2txt from any location of your Synology. +The symlink must point to docx2txt.sh to get it working. In SeedDMS you can now just configure docx2txt followed by any additional commands. + +**xlsx2csv** + +This one must be installed to get it working. The installation script is written in Python, so you need to get Python installed on your Synology. +As the version available from Synology does not properly work (you can't install PIP) it is strongly recommended to use OPKG or IPKG to install Python. + +Install Python and PIP. Once completed, point to the directory where you copied xlsx2csv. Unpack the archive, then execute the installer (pip install xlsx2csv). + +Once completed, xlsx2csv is available and can be configured within SeedDMS. + +Complete the installation +************************* + +Now you are ready to install SeedDMS and configure the database. Follow the README file to install SeedDMS. \ No newline at end of file From 058acc313ac12e6a689c2ffc6b1edf2e9c77ab6c Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Wed, 4 May 2016 13:09:13 +0200 Subject: [PATCH 31/76] fix mass import from file system --- op/op.ImportFS.php | 42 +++++++++++++++++++----------- views/bootstrap/class.ImportFS.php | 4 +-- 2 files changed, 29 insertions(+), 17 deletions(-) diff --git a/op/op.ImportFS.php b/op/op.ImportFS.php index 162633fc3..e8bb3fa00 100644 --- a/op/op.ImportFS.php +++ b/op/op.ImportFS.php @@ -13,8 +13,7 @@ if (!isset($_GET["targetid"]) || !is_numeric($_GET["targetid"]) || $_GET["target $targetid = $_GET["targetid"]; $folder = $dms->getFolder($targetid); if (!is_object($folder)) { - echo "Could not find specified folder\n"; - exit(1); + UI::exitError(getMLText("admin_tools"),getMLText("invalid_target_folder")); } if ($folder->getAccessMode($user) < M_READWRITE) { @@ -30,7 +29,7 @@ if(!is_dir($dirname)) { } function import_folder($dirname, $folder) { /* {{{ */ - global $user; + global $user, $doccount, $foldercount; $d = dir($dirname); $sequence = 1; @@ -56,27 +55,40 @@ function import_folder($dirname, $folder) { /* {{{ */ if (is_bool($lastDotIndex) && !$lastDotIndex) $filetype = "."; else $filetype = substr($path, $lastDotIndex); - echo $mimetype." - ".$filetype." - ".$path."\n"; - $res = $folder->addDocument($name, $comment, $expires, $user, $keywords, +// echo $mimetype." - ".$filetype." - ".$path."\n"; + if($res = $folder->addDocument($name, $comment, $expires, $user, $keywords, $categories, $filetmp, $name, $filetype, $mimetype, $sequence, $reviewers, - $approvers, $reqversion, $version_comment); - - if (is_bool($res) && !$res) { - echo "Could not add document to folder\n"; - exit(1); + $approvers, $reqversion, $version_comment)) { + $doccount++; + } else { + return false; } - set_time_limit(1200); + set_time_limit(30); } elseif(is_dir($path)) { $name = basename($path); - $newfolder = $folder->addSubFolder($name, '', $user, $sequence); - import_folder($path, $newfolder); + if($newfolder = $folder->addSubFolder($name, '', $user, $sequence)) { + $foldercount++; + if(!import_folder($path, $newfolder)) + return false; + } else { + return false; + } } $sequence++; } } + return true; } /* }}} */ -header("Content-Type: text/plain"); -import_folder($dirname, $folder); +$foldercount = $doccount = 0; +if($newfolder = $folder->addSubFolder($_GET["dropfolderfileform1"], '', $user, 1)) { + if(!import_folder($dirname, $newfolder)) + $session->setSplashMsg(array('type'=>'error', 'msg'=>getMLText('error_importfs'))); + else + $session->setSplashMsg(array('type'=>'success', 'msg'=>getMLText('splash_importfs', array('docs'=>$doccount, 'folders'=>$foldercount)))); +} else { + $session->setSplashMsg(array('type'=>'error', 'msg'=>getMLText('error_importfs'))); +} +header("Location:../out/out.ViewFolder.php?folderid=".$newfolder->getID()); diff --git a/views/bootstrap/class.ImportFS.php b/views/bootstrap/class.ImportFS.php index 3da3e13e1..192e95fc1 100644 --- a/views/bootstrap/class.ImportFS.php +++ b/views/bootstrap/class.ImportFS.php @@ -52,12 +52,12 @@ class SeedDMS_View_ImportFS extends SeedDMS_Bootstrap_Style { $this->contentContainerStart(); print "
      "; - print "
      "; + print "
      "; $this->printFolderChooserHtml("form1",M_READWRITE); print "
      "; if($dropfolderdir) { print "
      "; /* Setting drop folder dir to "" will force to take the default from settings.xml */ From b9faf8e5eb15378f58535b7278f0be769243d604 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Wed, 4 May 2016 13:09:56 +0200 Subject: [PATCH 32/76] new phrases and translation for catan --- languages/ar_EG/lang.inc | 5 +++ languages/bg_BG/lang.inc | 5 +++ languages/ca_ES/lang.inc | 79 +++++++++++++++++++++------------------- languages/cs_CZ/lang.inc | 5 +++ languages/de_DE/lang.inc | 7 +++- languages/en_GB/lang.inc | 7 +++- languages/es_ES/lang.inc | 5 +++ languages/fr_FR/lang.inc | 5 +++ languages/hr_HR/lang.inc | 5 +++ languages/hu_HU/lang.inc | 5 +++ languages/it_IT/lang.inc | 5 +++ languages/ko_KR/lang.inc | 5 +++ languages/nl_NL/lang.inc | 5 +++ languages/pl_PL/lang.inc | 5 +++ languages/pt_BR/lang.inc | 5 +++ languages/ro_RO/lang.inc | 5 +++ languages/ru_RU/lang.inc | 5 +++ languages/sk_SK/lang.inc | 5 +++ languages/sv_SE/lang.inc | 5 +++ languages/tr_TR/lang.inc | 5 +++ languages/uk_UA/lang.inc | 5 +++ languages/zh_CN/lang.inc | 5 +++ languages/zh_TW/lang.inc | 5 +++ 23 files changed, 154 insertions(+), 39 deletions(-) diff --git a/languages/ar_EG/lang.inc b/languages/ar_EG/lang.inc index 77b324f5f..fe8538991 100644 --- a/languages/ar_EG/lang.inc +++ b/languages/ar_EG/lang.inc @@ -221,6 +221,7 @@ URL: [url]', 'choose_workflow_action' => 'اختر اجراء مسار عمل', 'choose_workflow_state' => 'اختر حالة مسار عمل', 'class_name' => '', +'clear_cache' => '', 'clear_clipboard' => '', 'clear_password' => '', 'clipboard' => 'لوحة القصاصات', @@ -361,6 +362,7 @@ URL: [url]', 'draft_pending_review' => 'مسودة - قيد المراجعة', 'drag_icon_here' => 'قم بسحب ايقونة المستند او المجلد الى هنا!', 'dropfolder_file' => 'ملف من مجلد التجميع', +'dropfolder_folder' => '', 'dropupload' => 'رفع سريع', 'drop_files_here' => 'أفلت الملفات هنا!', 'dump_creation' => 'انشاء مستخرج من قاعدة البيانات', @@ -399,6 +401,7 @@ URL: [url]', 'error' => 'خطأ', 'error_add_aro' => '', 'error_add_permission' => '', +'error_importfs' => '', 'error_no_document_selected' => 'لم يتم اختيار مستند', 'error_no_folder_selected' => 'لم يتم اختيار مجلد', 'error_occured' => 'حدث خطأ', @@ -501,6 +504,7 @@ URL: [url]', 'identical_version' => 'الاصدار الجديد مماثل للاصدار الحالي.', 'import' => '', 'importfs' => '', +'import_fs' => '', 'include_content' => '', 'include_documents' => 'اشمل مستندات', 'include_subdirectories' => 'اشمل مجلدات فرعية', @@ -1235,6 +1239,7 @@ URL: [url]', 'splash_edit_user' => '', 'splash_error_add_to_transmittal' => '', 'splash_folder_edited' => '', +'splash_importfs' => '', 'splash_invalid_folder_id' => '', 'splash_invalid_searchterm' => '', 'splash_moved_clipboard' => '', diff --git a/languages/bg_BG/lang.inc b/languages/bg_BG/lang.inc index 784a068ac..11767daeb 100644 --- a/languages/bg_BG/lang.inc +++ b/languages/bg_BG/lang.inc @@ -206,6 +206,7 @@ $text = array( 'choose_workflow_action' => 'Изберете workflow действие', 'choose_workflow_state' => 'Изберете състояние на workflow', 'class_name' => '', +'clear_cache' => '', 'clear_clipboard' => '', 'clear_password' => '', 'clipboard' => '', @@ -316,6 +317,7 @@ $text = array( 'draft_pending_review' => 'Чернова - очаква рецензия', 'drag_icon_here' => 'Провлачи икона или папка, или документ ТУК!', 'dropfolder_file' => 'Файл от drop папка', +'dropfolder_folder' => '', 'dropupload' => '', 'drop_files_here' => '', 'dump_creation' => 'Създаване дъмп на БД', @@ -354,6 +356,7 @@ $text = array( 'error' => 'Грешка', 'error_add_aro' => '', 'error_add_permission' => '', +'error_importfs' => '', 'error_no_document_selected' => 'Няма избрани документи', 'error_no_folder_selected' => 'Няма избрани папки', 'error_occured' => 'Стана грешка', @@ -432,6 +435,7 @@ $text = array( 'identical_version' => 'Новата версия е идентична с текущата.', 'import' => '', 'importfs' => '', +'import_fs' => '', 'include_content' => '', 'include_documents' => 'Включи документи', 'include_subdirectories' => 'Включи под-папки', @@ -1100,6 +1104,7 @@ $text = array( 'splash_edit_user' => '', 'splash_error_add_to_transmittal' => '', 'splash_folder_edited' => '', +'splash_importfs' => '', 'splash_invalid_folder_id' => '', 'splash_invalid_searchterm' => '', 'splash_moved_clipboard' => '', diff --git a/languages/ca_ES/lang.inc b/languages/ca_ES/lang.inc index 144cc7db5..a89331017 100644 --- a/languages/ca_ES/lang.inc +++ b/languages/ca_ES/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (662) +// Translators: Admin (698) $text = array( 'accept' => 'Acceptar', @@ -36,7 +36,7 @@ $text = array( 'access_permission_changed_email_body' => '', 'access_permission_changed_email_subject' => '', 'according_settings' => '', -'action' => '', +'action' => 'Acció', 'actions' => 'Accions', 'action_approve' => '', 'action_complete' => '', @@ -62,7 +62,7 @@ $text = array( 'add_revision' => '', 'add_role' => '', 'add_subfolder' => 'Afegir subdirectori', -'add_to_clipboard' => '', +'add_to_clipboard' => 'Emmagatzemar al portapapers', 'add_to_transmittal' => '', 'add_transmittal' => '', 'add_user' => 'Afegir nou usuari', @@ -106,7 +106,7 @@ URL: [url]', 'april' => 'Abril', 'archive_creation' => 'Creació d\'arxiu', 'archive_creation_warning' => 'Amb aquesta operació pot crear un arxiu que contingui els fitxers de les carpetes del DMS complet. Després de crear-lo, l\'arxiu es guardarà a la carpeta de dades del servidor.
      ATENCIÓ: un fitxer creat com llegible per humans no es podrà usar com a còpia de seguretat del servidor.', -'ar_EG' => '', +'ar_EG' => 'Àrab', 'assign_approvers' => 'Assignar aprovadors', 'assign_reviewers' => 'Assignar revisors', 'assign_user_property_to' => 'Assignar propietats d\'usuari a', @@ -155,7 +155,7 @@ URL: [url]', 'backup_remove' => 'Eliminar fitxer de còpia de seguretat', 'backup_tools' => 'Eines de còpia de seguretat', 'between' => 'entre', -'bg_BG' => '', +'bg_BG' => 'Búlgar', 'browse' => '', 'calendar' => 'Calendari', 'calendar_week' => '', @@ -176,7 +176,7 @@ URL: [url]', 'category_info' => '', 'category_in_use' => '', 'category_noname' => '', -'ca_ES' => '', +'ca_ES' => 'Català', 'change_assignments' => 'Canviar assignacions', 'change_password' => '', 'change_password_message' => '', @@ -211,9 +211,10 @@ URL: [url]', 'choose_workflow_action' => '', 'choose_workflow_state' => '', 'class_name' => '', +'clear_cache' => '', 'clear_clipboard' => '', 'clear_password' => '', -'clipboard' => '', +'clipboard' => 'Portapapers', 'close' => 'Tancar', 'comment' => 'Comentaris', 'comment_changed_email' => '', @@ -244,7 +245,7 @@ URL: [url]', 'create_fulltext_index' => '', 'create_fulltext_index_warning' => '', 'creation_date' => 'Creació', -'cs_CZ' => '', +'cs_CZ' => 'Txec', 'current_password' => '', 'current_quota' => '', 'current_state' => '', @@ -261,7 +262,7 @@ URL: [url]', 'delete' => 'Eliminar', 'details' => 'Detalls', 'details_version' => 'Detalls de la versió: [version]', -'de_DE' => '', +'de_DE' => 'Alemany', 'disclaimer' => 'Aquesta és una àrea restringida. Només es permet l\'accés a usuaris autoritzats. Qualsevol intrusió es perseguirà d\'acord amb les lleis internacionals.', 'discspace' => '', 'document' => 'Document', @@ -319,10 +320,11 @@ URL: [url]', 'draft' => '', 'draft_pending_approval' => 'Esborrany - pendent d\'aprovació', 'draft_pending_review' => 'Esborrany - pendent de revisió', -'drag_icon_here' => '', +'drag_icon_here' => 'Arrossegui aquí una icona de carpeta o document', 'dropfolder_file' => '', -'dropupload' => '', -'drop_files_here' => '', +'dropfolder_folder' => '', +'dropupload' => 'Pujada ràpida', +'drop_files_here' => 'Dugui arxius aquí', 'dump_creation' => 'Creació de bolcat de BDD', 'dump_creation_warning' => 'Amb aquesta operació es crearà un bolcat a fitxer del contingut de la base de dades. Després de la creació del bolcat, el fitxer es guardarà a la carpeta de dades del seu servidor.', 'dump_list' => 'Fitxers de bolcat existents', @@ -354,17 +356,18 @@ URL: [url]', 'email_not_given' => '', 'empty_folder_list' => '', 'empty_notify_list' => 'No hi ha entrades', -'en_GB' => '', +'en_GB' => 'Anglès (Regne Unit)', 'equal_transition_states' => '', 'error' => '', 'error_add_aro' => '', 'error_add_permission' => '', +'error_importfs' => '', 'error_no_document_selected' => '', 'error_no_folder_selected' => '', 'error_occured' => 'Ha succeït un error', 'error_remove_permission' => '', 'error_toogle_permission' => '', -'es_ES' => '', +'es_ES' => 'Castellà', 'event_details' => 'Detalls de l\'event', 'exclude_items' => '', 'expired' => 'Caducat', @@ -404,7 +407,7 @@ URL: [url]', 'friday' => 'Divendres', 'friday_abbr' => '', 'from' => 'Des de', -'fr_FR' => '', +'fr_FR' => 'Francès', 'fullsearch' => '', 'fullsearch_hint' => '', 'fulltext_info' => '', @@ -430,18 +433,19 @@ URL: [url]', 'hook_name' => '', 'hourly' => 'Hourly', 'hours' => '', -'hr_HR' => '', +'hr_HR' => 'Croat', 'human_readable' => 'Arxiu llegible per humans', -'hu_HU' => '', +'hu_HU' => 'Hongarès', 'id' => 'ID', 'identical_version' => '', 'import' => '', 'importfs' => '', +'import_fs' => '', 'include_content' => '', 'include_documents' => 'Incloure documents', 'include_subdirectories' => 'Incloure subdirectoris', 'index_converters' => '', -'index_folder' => '', +'index_folder' => 'Carpeta d\'índex', 'individuals' => 'Individuals', 'indivіduals_in_groups' => '', 'inherited' => '', @@ -474,7 +478,7 @@ URL: [url]', 'in_workflow' => '', 'is_disabled' => '', 'is_hidden' => 'Amagar de la llista d\'usuaris', -'it_IT' => '', +'it_IT' => 'Italià', 'january' => 'Gener', 'js_no_approval_group' => 'Si us plau, seleccioneu grup d\'aprovació', 'js_no_approval_status' => 'Si us plau, seleccioneu l\'estat d\'aprovació', @@ -499,7 +503,7 @@ URL: [url]', 'keywords' => 'Mots clau', 'keywords_loading' => '', 'keyword_exists' => 'El mot clau ja existeix', -'ko_KR' => '', +'ko_KR' => 'Coreà', 'language' => 'Llenguatge', 'lastaccess' => '', 'last_update' => 'Última modificació', @@ -576,7 +580,7 @@ URL: [url]', 'new_subfolder_email_subject' => '', 'new_user_image' => 'Nova imatge', 'next_state' => '', -'nl_NL' => '', +'nl_NL' => 'Holandès', 'no' => 'No', 'notify_added_email' => 'Se us ha afegit a la llista de notificació', 'notify_added_email_body' => '', @@ -646,7 +650,7 @@ URL: [url]', 'pending_reviews' => '', 'pending_workflows' => '', 'personal_default_keywords' => 'Mots clau personals', -'pl_PL' => '', +'pl_PL' => 'Polonès', 'possible_substitutes' => '', 'preview' => '', 'preview_converters' => '', @@ -654,7 +658,7 @@ URL: [url]', 'preview_plain' => '', 'previous_state' => '', 'previous_versions' => 'Versions anteriors', -'pt_BR' => '', +'pt_BR' => 'Portuguès', 'quota' => '', 'quota_exceeded' => '', 'quota_is_disabled' => '', @@ -746,11 +750,11 @@ URL: [url]', 'role_name' => '', 'role_type' => '', 'role_user' => 'User', -'ro_RO' => '', +'ro_RO' => 'Romanès', 'run_subworkflow' => '', 'run_subworkflow_email_body' => '', 'run_subworkflow_email_subject' => '', -'ru_RU' => '', +'ru_RU' => 'Rus', 'saturday' => 'Dissabte', 'saturday_abbr' => '', 'save' => 'Guardar', @@ -1084,9 +1088,9 @@ URL: [url]', 'sign_in' => 'sign in', 'sign_out' => 'desconnectar', 'sign_out_user' => '', -'sk_SK' => '', +'sk_SK' => 'Eslovac', 'space_used_on_data_folder' => 'Espai utilitzat a la carpeta de dades', -'splash_added_to_clipboard' => '', +'splash_added_to_clipboard' => 'Emmagatzemat al portapapers', 'splash_add_attribute' => '', 'splash_add_group' => '', 'splash_add_group_member' => '', @@ -1097,14 +1101,15 @@ URL: [url]', 'splash_document_added' => '', 'splash_document_checkedout' => '', 'splash_document_edited' => '', -'splash_document_locked' => '', -'splash_document_unlocked' => '', +'splash_document_locked' => 'Document blocat', +'splash_document_unlocked' => 'Document desblocat', 'splash_edit_attribute' => '', 'splash_edit_group' => '', 'splash_edit_role' => '', 'splash_edit_user' => '', 'splash_error_add_to_transmittal' => '', 'splash_folder_edited' => '', +'splash_importfs' => '', 'splash_invalid_folder_id' => '', 'splash_invalid_searchterm' => '', 'splash_moved_clipboard' => '', @@ -1112,8 +1117,8 @@ URL: [url]', 'splash_move_folder' => '', 'splash_removed_from_clipboard' => '', 'splash_rm_attribute' => '', -'splash_rm_document' => '', -'splash_rm_folder' => '', +'splash_rm_document' => 'Document esborrat', +'splash_rm_folder' => 'Carpeta esborrada', 'splash_rm_group' => '', 'splash_rm_group_member' => '', 'splash_rm_role' => '', @@ -1154,14 +1159,14 @@ URL: [url]', 'submit_revision' => '', 'submit_userinfo' => '', 'substitute_to_user' => '', -'substitute_user' => '', +'substitute_user' => 'Canviar usuari', 'success_add_aro' => '', 'success_add_permission' => '', 'success_remove_permission' => '', 'success_toogle_permission' => '', 'sunday' => 'Diumenge', 'sunday_abbr' => '', -'sv_SE' => '', +'sv_SE' => 'Suec', 'switched_to' => '', 'takeOverGrpApprover' => '', 'takeOverGrpReviewer' => '', @@ -1202,12 +1207,12 @@ URL: [url]', 'transmittal_size' => '', 'tree_loading' => 'Espereu mentre l\'arbre de documents es carrega...', 'trigger_workflow' => '', -'tr_TR' => '', +'tr_TR' => 'Turc', 'tuesday' => 'Dimarts', 'tuesday_abbr' => '', 'type_of_hook' => '', 'type_to_search' => '', -'uk_UA' => '', +'uk_UA' => 'Ucraïnès', 'under_folder' => 'A carpeta', 'unknown_attrdef' => '', 'unknown_command' => 'Ordre no reconeguda.', @@ -1290,7 +1295,7 @@ URL: [url]', 'workflow_user_summary' => '', 'year_view' => 'Vista d\'any', 'yes' => 'Sí', -'zh_CN' => '', -'zh_TW' => '', +'zh_CN' => 'Xinès (Xina)', +'zh_TW' => 'Xina (Taiwan)', ); ?> diff --git a/languages/cs_CZ/lang.inc b/languages/cs_CZ/lang.inc index 4dab36009..11700687b 100644 --- a/languages/cs_CZ/lang.inc +++ b/languages/cs_CZ/lang.inc @@ -228,6 +228,7 @@ URL: [url]', 'choose_workflow_action' => 'Zvolte akci pracovního postupu', 'choose_workflow_state' => 'Zvolit akci pracovního postupu', 'class_name' => '', +'clear_cache' => '', 'clear_clipboard' => 'Vyčistit schránku', 'clear_password' => '', 'clipboard' => 'Schránka', @@ -368,6 +369,7 @@ URL: [url]', 'draft_pending_review' => 'Návrh - čeká na kontrolu', 'drag_icon_here' => 'Přetáhnout ikonu složky nebo dokumentu sem!', 'dropfolder_file' => 'Soubor z "přetažené" složky', +'dropfolder_folder' => '', 'dropupload' => 'Rychlý upload', 'drop_files_here' => 'Soubory dát sem!', 'dump_creation' => 'Vytvoření zálohy databáze', @@ -406,6 +408,7 @@ URL: [url]', 'error' => 'Error', 'error_add_aro' => '', 'error_add_permission' => '', +'error_importfs' => '', 'error_no_document_selected' => 'Není vybrán žádný dokument.', 'error_no_folder_selected' => 'Není vybrána žádná složka', 'error_occured' => 'Vyskytla se chyba', @@ -508,6 +511,7 @@ URL: [url]', 'identical_version' => 'Nová verze je identická s verzí současnou', 'import' => '', 'importfs' => '', +'import_fs' => '', 'include_content' => '', 'include_documents' => 'Včetně dokumentů', 'include_subdirectories' => 'Včetně podadresářů', @@ -1244,6 +1248,7 @@ URL: [url]', 'splash_edit_user' => 'Uživatel uložen', 'splash_error_add_to_transmittal' => '', 'splash_folder_edited' => 'Změny složky uloženy', +'splash_importfs' => '', 'splash_invalid_folder_id' => 'Neplatné ID složky', 'splash_invalid_searchterm' => 'Neplatný vyhledávací dotaz', 'splash_moved_clipboard' => 'Schránka přenesena do aktuální složky', diff --git a/languages/de_DE/lang.inc b/languages/de_DE/lang.inc index 65c8543c2..9411a3ea2 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 (2229), dgrutsch (21) +// Translators: Admin (2234), dgrutsch (21) $text = array( 'accept' => 'Übernehmen', @@ -233,6 +233,7 @@ URL: [url]', 'choose_workflow_action' => 'Workflow-Aktion wählen', 'choose_workflow_state' => 'Workflow-Status wählen', 'class_name' => 'Klassenname', +'clear_cache' => 'Cache löschen', 'clear_clipboard' => 'Zwischenablage leeren', 'clear_password' => 'Passwort löschen', 'clipboard' => 'Zwischenablage', @@ -373,6 +374,7 @@ URL: [url]', 'draft_pending_review' => 'Entwurf - bevorstehende Prüfung', 'drag_icon_here' => 'Icon eines Ordners oder Dokuments hier hin ziehen!', 'dropfolder_file' => 'Datei aus Ablageordner', +'dropfolder_folder' => 'Ordner aus Ablageordner', 'dropupload' => 'Direkt Hochladen', 'drop_files_here' => 'Dateien hier hin ziehen!', 'dump_creation' => 'DB dump erzeugen', @@ -411,6 +413,7 @@ URL: [url]', 'error' => 'Fehler', 'error_add_aro' => 'Fehler beim Hinzufügen des Zugriffsobjekt', 'error_add_permission' => 'Fehler beim Hinzufügen der Berechtigung', +'error_importfs' => 'Fehler beim Importieren aus dem Dateisystem', 'error_no_document_selected' => 'Kein Dokument ausgewählt', 'error_no_folder_selected' => 'Kein Ordner ausgewählt', 'error_occured' => 'Ein Fehler ist aufgetreten. Bitte Administrator benachrichtigen.', @@ -513,6 +516,7 @@ URL: [url]', 'identical_version' => 'Neue Version ist identisch zu aktueller Version.', 'import' => 'Importiere', 'importfs' => 'Importiere aus Dateisystem', +'import_fs' => 'Aus Dateisystem importieren', 'include_content' => 'Inhalte mit exportieren', 'include_documents' => 'Dokumente miteinbeziehen', 'include_subdirectories' => 'Unterverzeichnisse miteinbeziehen', @@ -1281,6 +1285,7 @@ URL: [url]', 'splash_edit_user' => 'Benutzer gespeichert', 'splash_error_add_to_transmittal' => 'Fehler beim Hinzufügen zur Dokumentenliste', 'splash_folder_edited' => 'Änderungen am Ordner gespeichert', +'splash_importfs' => '[docs] Dokumente und [folders] Ordner importiert', 'splash_invalid_folder_id' => 'Ungültige Ordner-ID', 'splash_invalid_searchterm' => 'Ungültiger Suchbegriff', 'splash_moved_clipboard' => 'Inhalt der Zwischenablage in aktuellen Ordner verschoben', diff --git a/languages/en_GB/lang.inc b/languages/en_GB/lang.inc index 4346e9e50..6d34a89d7 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 (1375), dgrutsch (7), netixw (14) +// Translators: Admin (1380), dgrutsch (7), netixw (14) $text = array( 'accept' => 'Accept', @@ -233,6 +233,7 @@ URL: [url]', 'choose_workflow_action' => 'Choose workflow action', 'choose_workflow_state' => 'Choose workflow state', 'class_name' => 'Name of class', +'clear_cache' => 'Clear cache', 'clear_clipboard' => 'Clear clipboard', 'clear_password' => 'Clear password', 'clipboard' => 'Clipboard', @@ -373,6 +374,7 @@ URL: [url]', 'draft_pending_review' => 'Draft - pending review', 'drag_icon_here' => 'Drag icon of folder or document here!', 'dropfolder_file' => 'File from drop folder', +'dropfolder_folder' => 'Folder from drop folder', 'dropupload' => 'Fast upload', 'drop_files_here' => 'Drop files here!', 'dump_creation' => 'DB dump creation', @@ -411,6 +413,7 @@ URL: [url]', 'error' => 'Error', 'error_add_aro' => 'Error while adding access request object', 'error_add_permission' => 'Error while add permission', +'error_importfs' => 'Error while importing form file system', 'error_no_document_selected' => 'No document selected', 'error_no_folder_selected' => 'No folder selected', 'error_occured' => 'An error has occurred', @@ -513,6 +516,7 @@ URL: [url]', 'identical_version' => 'New version is identical to current version.', 'import' => 'Import', 'importfs' => 'Import from Filesystem', +'import_fs' => 'Import from filesystem', 'include_content' => 'Include content', 'include_documents' => 'Include documents', 'include_subdirectories' => 'Include subdirectories', @@ -1282,6 +1286,7 @@ URL: [url]', 'splash_edit_user' => 'User saved', 'splash_error_add_to_transmittal' => 'Error while adding document to transmittal', 'splash_folder_edited' => 'Save folder changes', +'splash_importfs' => 'Imported [docs] documents and [folders] folders', 'splash_invalid_folder_id' => 'Invalid folder ID', 'splash_invalid_searchterm' => 'Invalid search term', 'splash_moved_clipboard' => 'Clipboard moved into current folder', diff --git a/languages/es_ES/lang.inc b/languages/es_ES/lang.inc index b5145360c..85ab828bc 100644 --- a/languages/es_ES/lang.inc +++ b/languages/es_ES/lang.inc @@ -228,6 +228,7 @@ URL: [url]', 'choose_workflow_action' => 'Seleccione acción del flujo de trabajo', 'choose_workflow_state' => 'Seleccione estado del flujo de trabajo', 'class_name' => '', +'clear_cache' => '', 'clear_clipboard' => 'Limpiar portapapeles', 'clear_password' => '', 'clipboard' => 'Portapapeles', @@ -368,6 +369,7 @@ URL: [url]', 'draft_pending_review' => 'Borrador - pendiente de revisión', 'drag_icon_here' => 'Arrastre carpeta o documento aquí!', 'dropfolder_file' => 'Fichero de la carpeta destino', +'dropfolder_folder' => '', 'dropupload' => 'Carga Rapida', 'drop_files_here' => 'Arrastre archivos aquí!', 'dump_creation' => 'Creación de volcado de BDD', @@ -406,6 +408,7 @@ URL: [url]', 'error' => 'Error', 'error_add_aro' => '', 'error_add_permission' => '', +'error_importfs' => '', 'error_no_document_selected' => 'Ningún documento seleccionado', 'error_no_folder_selected' => 'Ninguna carpeta seleccionada', 'error_occured' => 'Ha ocurrido un error', @@ -508,6 +511,7 @@ URL: [url]', 'identical_version' => 'La nueva versión es idéntica a la actual.', 'import' => '', 'importfs' => '', +'import_fs' => '', 'include_content' => '', 'include_documents' => 'Incluir documentos', 'include_subdirectories' => 'Incluir subcarpetas', @@ -1250,6 +1254,7 @@ URL: [url]', 'splash_edit_user' => 'Usuario guardado', 'splash_error_add_to_transmittal' => '', 'splash_folder_edited' => 'Cambios a la carpeta guardados', +'splash_importfs' => '', 'splash_invalid_folder_id' => 'ID de carpeta inválido', 'splash_invalid_searchterm' => 'Término de búsqueda inválido', 'splash_moved_clipboard' => 'Portapapeles movido a la carpeta actual', diff --git a/languages/fr_FR/lang.inc b/languages/fr_FR/lang.inc index a7e19d55b..a5a9c0f00 100644 --- a/languages/fr_FR/lang.inc +++ b/languages/fr_FR/lang.inc @@ -228,6 +228,7 @@ URL: [url]', 'choose_workflow_action' => 'Choose une action de workflow', 'choose_workflow_state' => 'Choisir un état de workflow', 'class_name' => '', +'clear_cache' => '', 'clear_clipboard' => 'Vider le presse-papier', 'clear_password' => '', 'clipboard' => 'Presse-papier', @@ -368,6 +369,7 @@ URL: [url]', 'draft_pending_review' => 'Ebauche - En cours de correction', 'drag_icon_here' => 'Glisser/déposer le fichier ou document ici!', 'dropfolder_file' => 'Fichier du dossier déposé', +'dropfolder_folder' => '', 'dropupload' => 'Téléchargement rapide', 'drop_files_here' => 'Glissez fichiers ici!', 'dump_creation' => 'création sauvegarde BD', @@ -406,6 +408,7 @@ URL: [url]', 'error' => 'Erreur', 'error_add_aro' => '', 'error_add_permission' => '', +'error_importfs' => '', 'error_no_document_selected' => 'Aucun document sélectionné', 'error_no_folder_selected' => 'Aucun dossier sélectionné', 'error_occured' => 'Une erreur s\'est produite', @@ -508,6 +511,7 @@ URL: [url]', 'identical_version' => 'Nouvelle version identique à l\'actuelle.', 'import' => '', 'importfs' => '', +'import_fs' => '', 'include_content' => '', 'include_documents' => 'Inclure les documents', 'include_subdirectories' => 'Inclure les sous-dossiers', @@ -1226,6 +1230,7 @@ URL: [url]', 'splash_edit_user' => 'Utilisateur modifié', 'splash_error_add_to_transmittal' => '', 'splash_folder_edited' => '', +'splash_importfs' => '', 'splash_invalid_folder_id' => 'Identifiant de répertoire invalide', 'splash_invalid_searchterm' => 'Recherche invalide', 'splash_moved_clipboard' => 'Presse-papier déplacé dans le répertoire courant', diff --git a/languages/hr_HR/lang.inc b/languages/hr_HR/lang.inc index 947ea9fb3..15ec56d40 100644 --- a/languages/hr_HR/lang.inc +++ b/languages/hr_HR/lang.inc @@ -233,6 +233,7 @@ Internet poveznica: [url]', 'choose_workflow_action' => 'Odaberite radnju toka rada', 'choose_workflow_state' => 'Odaberite status toka rada', 'class_name' => '', +'clear_cache' => '', 'clear_clipboard' => 'Očistite međuspremnik', 'clear_password' => '', 'clipboard' => 'Međuspremnik', @@ -373,6 +374,7 @@ Internet poveznica: [url]', 'draft_pending_review' => 'Skica - čeka pregled', 'drag_icon_here' => 'Ovdje povuci ikonu mape ili dokumenta!', 'dropfolder_file' => 'Datoteka iz padajuće mape', +'dropfolder_folder' => '', 'dropupload' => 'Zona za brzo učitavanje', 'drop_files_here' => 'Ovdje ispusti datoteku!', 'dump_creation' => 'Izrada odlagališta baze podataka', @@ -411,6 +413,7 @@ Internet poveznica: [url]', 'error' => 'Greška', 'error_add_aro' => '', 'error_add_permission' => '', +'error_importfs' => '', 'error_no_document_selected' => 'Nije odabran dokument', 'error_no_folder_selected' => 'Nije odabrana mapa', 'error_occured' => 'Dogodila se greška', @@ -513,6 +516,7 @@ Internet poveznica: [url]', 'identical_version' => 'Nova verzija je identična trenutnoj verziji.', 'import' => '', 'importfs' => '', +'import_fs' => '', 'include_content' => 'Uključi sadržaj', 'include_documents' => 'Sadrži dokumente', 'include_subdirectories' => 'Sadrži podmape', @@ -1271,6 +1275,7 @@ Internet poveznica: [url]', 'splash_edit_user' => 'Korisnik pohranjen', 'splash_error_add_to_transmittal' => '', 'splash_folder_edited' => 'Pohrani izmjene mape', +'splash_importfs' => '', 'splash_invalid_folder_id' => 'Nevažeći ID mape', 'splash_invalid_searchterm' => 'Nevažeći traženi pojam', 'splash_moved_clipboard' => 'Međuspremnik je premješten u trenutnu mapu', diff --git a/languages/hu_HU/lang.inc b/languages/hu_HU/lang.inc index 0367d9b3f..6106ab820 100644 --- a/languages/hu_HU/lang.inc +++ b/languages/hu_HU/lang.inc @@ -228,6 +228,7 @@ URL: [url]', 'choose_workflow_action' => 'Válasszon munkafolyamat műveletet', 'choose_workflow_state' => 'Válasszon munkafolyamat állapotot', 'class_name' => '', +'clear_cache' => '', 'clear_clipboard' => 'Vágólap törlése', 'clear_password' => '', 'clipboard' => 'Vágólap', @@ -368,6 +369,7 @@ URL: [url]', 'draft_pending_review' => 'Piszkozat - felülvizsgálat folyamatban', 'drag_icon_here' => 'Húzza a mappa vagy dokumentum ikonját ide!', 'dropfolder_file' => 'Állomány a dropfolder-ből', +'dropfolder_folder' => '', 'dropupload' => 'Gyors feltöltés', 'drop_files_here' => 'Húzz ide egy fájlt', 'dump_creation' => 'Adatbázis mentés létrehozása', @@ -406,6 +408,7 @@ URL: [url]', 'error' => 'Hiba', 'error_add_aro' => '', 'error_add_permission' => '', +'error_importfs' => '', 'error_no_document_selected' => 'Nincs kijelölt dokumentum', 'error_no_folder_selected' => 'Nincs kijelölt mappa', 'error_occured' => 'Hiba történt', @@ -508,6 +511,7 @@ URL: [url]', 'identical_version' => 'Az új verzió megegyezik az eredetivel.', 'import' => '', 'importfs' => '', +'import_fs' => '', 'include_content' => '', 'include_documents' => 'Tartalmazó dokumentumok', 'include_subdirectories' => 'Tartalmazó alkönyvtárak', @@ -1249,6 +1253,7 @@ URL: [url]', 'splash_edit_user' => 'Felhasználó mentve', 'splash_error_add_to_transmittal' => '', 'splash_folder_edited' => 'Mappa változásainak mentése', +'splash_importfs' => '', 'splash_invalid_folder_id' => 'Érvénytelen mappa azonosító', 'splash_invalid_searchterm' => 'Érvénytelen keresési feltétel', 'splash_moved_clipboard' => 'Vágólap tartalom áthelyezve az aktuális mappába', diff --git a/languages/it_IT/lang.inc b/languages/it_IT/lang.inc index 995441683..e41f7271c 100644 --- a/languages/it_IT/lang.inc +++ b/languages/it_IT/lang.inc @@ -234,6 +234,7 @@ URL: [url]', 'choose_workflow_action' => 'Seleziona l\'azione del flusso di lavoro', 'choose_workflow_state' => 'Seleziona lo stato del flusso di lavoro', 'class_name' => '', +'clear_cache' => '', 'clear_clipboard' => 'Cancella appunti', 'clear_password' => '', 'clipboard' => 'Appunti', @@ -374,6 +375,7 @@ URL: [url]', 'draft_pending_review' => 'Bozza - in revisione', 'drag_icon_here' => 'Trascina qui l\'icona della cartella o del documento', 'dropfolder_file' => 'Scegli file dal server', +'dropfolder_folder' => '', 'dropupload' => 'Caricamento Rapido', 'drop_files_here' => 'Trascina qui il file', 'dump_creation' => 'Creazione del DB dump', @@ -412,6 +414,7 @@ URL: [url]', 'error' => 'Errore', 'error_add_aro' => '', 'error_add_permission' => '', +'error_importfs' => '', 'error_no_document_selected' => 'Nessun documento selezionato', 'error_no_folder_selected' => 'Nessuna cartella selezionata', 'error_occured' => 'Ooops... Si è verificato un errore', @@ -514,6 +517,7 @@ URL: [url]', 'identical_version' => 'La nuova versione è identica a quella attuale.', 'import' => '', 'importfs' => '', +'import_fs' => '', 'include_content' => 'Includi contenuto', 'include_documents' => 'Includi documenti', 'include_subdirectories' => 'Includi sottocartelle', @@ -1273,6 +1277,7 @@ URL: [url]', 'splash_edit_user' => 'Utente modificato', 'splash_error_add_to_transmittal' => '', 'splash_folder_edited' => 'Cartella modificata', +'splash_importfs' => '', 'splash_invalid_folder_id' => 'ID cartella non valido', 'splash_invalid_searchterm' => 'Termine di ricerca non valido', 'splash_moved_clipboard' => 'Appunti trasferiti nella cartella corrente', diff --git a/languages/ko_KR/lang.inc b/languages/ko_KR/lang.inc index c99713149..be202de64 100644 --- a/languages/ko_KR/lang.inc +++ b/languages/ko_KR/lang.inc @@ -235,6 +235,7 @@ URL: [url]', 'choose_workflow_action' => '워크플로우 작업 선택', 'choose_workflow_state' => '워크플로우 상태 선택', 'class_name' => '', +'clear_cache' => '', 'clear_clipboard' => '클립 보드 제거', 'clear_password' => '', 'clipboard' => '클립보드', @@ -373,6 +374,7 @@ URL: [url]', 'draft_pending_review' => '초안 - 검토 대기', 'drag_icon_here' => '여기에 폴더 나 문서의 아이콘을 끌어!', 'dropfolder_file' => '드롭 폴더 파일', +'dropfolder_folder' => '', 'dropupload' => '빠른 업로드', 'drop_files_here' => '이곳에 파일을 올려놓으세요!', 'dump_creation' => 'DB 덤프 생성', @@ -411,6 +413,7 @@ URL: [url]', 'error' => '오류', 'error_add_aro' => '', 'error_add_permission' => '', +'error_importfs' => '', 'error_no_document_selected' => '선택되지 문서는', 'error_no_folder_selected' => '어떤 폴더를 선택하지', 'error_occured' => '오류가 발생했습니다', @@ -513,6 +516,7 @@ URL: [url]', 'identical_version' => '새 버전은 최신 버전으로 동일하다.', 'import' => '', 'importfs' => '', +'import_fs' => '', 'include_content' => '내용을 포함', 'include_documents' => '문서 포함', 'include_subdirectories' => '서브 디렉토리를 포함', @@ -1264,6 +1268,7 @@ URL : [url]', 'splash_edit_user' => '사용자 저장', 'splash_error_add_to_transmittal' => '', 'splash_folder_edited' => '저장 폴더 변경', +'splash_importfs' => '', 'splash_invalid_folder_id' => '잘못된 폴더 ID', 'splash_invalid_searchterm' => '잘못된 검색 범위', 'splash_moved_clipboard' => '클립 보드가 현재 폴더로 이동', diff --git a/languages/nl_NL/lang.inc b/languages/nl_NL/lang.inc index a0dcdf713..4ce8ffa3e 100644 --- a/languages/nl_NL/lang.inc +++ b/languages/nl_NL/lang.inc @@ -226,6 +226,7 @@ URL: [url]', 'choose_workflow_action' => 'Kies workflow actie', 'choose_workflow_state' => 'kiest workflowstatus', 'class_name' => '', +'clear_cache' => '', 'clear_clipboard' => 'Vrijgeven klembord', 'clear_password' => '', 'clipboard' => 'Klembord', @@ -366,6 +367,7 @@ URL: [url]', 'draft_pending_review' => 'Draft - in afwachting van controle', 'drag_icon_here' => 'Versleep icoon van de folder of bestand hier!', 'dropfolder_file' => 'Bestand van dropfolder', +'dropfolder_folder' => '', 'dropupload' => 'Snel toevoegen', 'drop_files_here' => 'Sleep bestanden hierheen!', 'dump_creation' => 'DB dump aanmaken', @@ -404,6 +406,7 @@ URL: [url]', 'error' => 'Fout', 'error_add_aro' => 'Verzoek om toegang toegevoegd', 'error_add_permission' => 'Voeg permissie toe', +'error_importfs' => '', 'error_no_document_selected' => 'Geen document geselecteerd', 'error_no_folder_selected' => 'Geen map geselecteerd', 'error_occured' => 'Er is een fout opgetreden', @@ -506,6 +509,7 @@ URL: [url]', 'identical_version' => 'Nieuwe versie is identiek aan de huidige versie', 'import' => '', 'importfs' => '', +'import_fs' => '', 'include_content' => 'inclusief inhoud', 'include_documents' => 'Inclusief documenten', 'include_subdirectories' => 'Inclusief submappen', @@ -1277,6 +1281,7 @@ URL: [url]', 'splash_edit_user' => 'Gebruiker opgeslagen', 'splash_error_add_to_transmittal' => 'Fout: toevoeging aan verzending', 'splash_folder_edited' => 'Opslaan mapwijzigingen', +'splash_importfs' => '', 'splash_invalid_folder_id' => 'Ongeldige map ID', 'splash_invalid_searchterm' => 'Ongeldige zoekterm', 'splash_moved_clipboard' => 'Klembord verplaatst naar de huidige map', diff --git a/languages/pl_PL/lang.inc b/languages/pl_PL/lang.inc index 7d3142eb6..ebb5048de 100644 --- a/languages/pl_PL/lang.inc +++ b/languages/pl_PL/lang.inc @@ -221,6 +221,7 @@ URL: [url]', 'choose_workflow_action' => 'Wybierz działanie procesu', 'choose_workflow_state' => 'Wybierz stan obiegu', 'class_name' => '', +'clear_cache' => '', 'clear_clipboard' => 'Oczyść schowek', 'clear_password' => '', 'clipboard' => 'Schowek', @@ -361,6 +362,7 @@ URL: [url]', 'draft_pending_review' => 'Szkic - w oczekiwaniu na opinię', 'drag_icon_here' => 'Przeciągnij ikonę folderu lub dokumentu tutaj!', 'dropfolder_file' => 'Plik z folderu rozwijanego', +'dropfolder_folder' => '', 'dropupload' => 'Szybki upload', 'drop_files_here' => 'Przeciągnij tu pliki!', 'dump_creation' => 'Utworzenie zrzutu bazy danych', @@ -399,6 +401,7 @@ URL: [url]', 'error' => 'Błąd', 'error_add_aro' => '', 'error_add_permission' => '', +'error_importfs' => '', 'error_no_document_selected' => 'Brak wybranych dokumentów', 'error_no_folder_selected' => 'Brak wybranych katalogów', 'error_occured' => 'Wystąpił błąd', @@ -501,6 +504,7 @@ URL: [url]', 'identical_version' => 'Nowa wersja jest identyczna z obecną', 'import' => '', 'importfs' => '', +'import_fs' => '', 'include_content' => '', 'include_documents' => 'Uwzględnij dokumenty', 'include_subdirectories' => 'Uwzględnij podkatalogi', @@ -1229,6 +1233,7 @@ URL: [url]', 'splash_edit_user' => 'Zapisano użytkownika', 'splash_error_add_to_transmittal' => '', 'splash_folder_edited' => 'Zapisz zmiany folderu', +'splash_importfs' => '', 'splash_invalid_folder_id' => 'Nieprawidłowy identyfikator folderu', 'splash_invalid_searchterm' => 'Nieprawidłowa wartość wyszukiwania', 'splash_moved_clipboard' => 'Schowek został przeniesiony do bieżącego folderu', diff --git a/languages/pt_BR/lang.inc b/languages/pt_BR/lang.inc index d67ef7d1d..a3fc5767d 100644 --- a/languages/pt_BR/lang.inc +++ b/languages/pt_BR/lang.inc @@ -228,6 +228,7 @@ URL: [url]', 'choose_workflow_action' => 'Escolha a ação de fluxo de trabalho', 'choose_workflow_state' => 'Escolha um estado de fluxo de trabalho', 'class_name' => '', +'clear_cache' => '', 'clear_clipboard' => 'Limpar área de transferência', 'clear_password' => '', 'clipboard' => 'Área de transferência', @@ -367,6 +368,7 @@ URL: [url]', 'draft_pending_review' => 'Draft - pending review', 'drag_icon_here' => 'Arraste ícone de pasta ou documento para aqui!', 'dropfolder_file' => 'Arquivo de pasta suspensa', +'dropfolder_folder' => '', 'dropupload' => 'Upload rápido', 'drop_files_here' => 'Solte os arquivos aqui!', 'dump_creation' => 'DB dump creation', @@ -405,6 +407,7 @@ URL: [url]', 'error' => 'Erro', 'error_add_aro' => '', 'error_add_permission' => '', +'error_importfs' => '', 'error_no_document_selected' => 'Nenhum documento selecionado', 'error_no_folder_selected' => 'Nenhuma pasta selecionada', 'error_occured' => 'Ocorreu um erro', @@ -507,6 +510,7 @@ URL: [url]', 'identical_version' => 'Nova versão é idêntica à versão atual.', 'import' => '', 'importfs' => '', +'import_fs' => '', 'include_content' => '', 'include_documents' => 'Include documents', 'include_subdirectories' => 'Include subdirectories', @@ -1247,6 +1251,7 @@ URL: [url]', 'splash_edit_user' => 'Usuário salvo', 'splash_error_add_to_transmittal' => '', 'splash_folder_edited' => 'Salvar modificação de pastas', +'splash_importfs' => '', 'splash_invalid_folder_id' => 'ID de pasta inválida', 'splash_invalid_searchterm' => 'Termo de pesquisa inválido', 'splash_moved_clipboard' => 'Área de transferência movida para a pasta corrente', diff --git a/languages/ro_RO/lang.inc b/languages/ro_RO/lang.inc index e52db2a16..8d9c915c8 100644 --- a/languages/ro_RO/lang.inc +++ b/languages/ro_RO/lang.inc @@ -233,6 +233,7 @@ URL: [url]', 'choose_workflow_action' => 'Alege acțiune workflow', 'choose_workflow_state' => 'Alege stare workflow', 'class_name' => '', +'clear_cache' => '', 'clear_clipboard' => 'Goleste clipboard', 'clear_password' => '', 'clipboard' => 'Clipboard', @@ -373,6 +374,7 @@ URL: [url]', 'draft_pending_review' => 'Proiect - în așteptarea revizuirii', 'drag_icon_here' => 'Trageți iconul de folder sau document aici!', 'dropfolder_file' => 'Fișiere din folderele aruncate (File from drop folder)', +'dropfolder_folder' => '', 'dropupload' => 'Încărcare rapidă', 'drop_files_here' => 'Aruncă fișierele aici!', 'dump_creation' => 'Creare fisier imagine baza de date', @@ -411,6 +413,7 @@ URL: [url]', 'error' => 'Eroare', 'error_add_aro' => '', 'error_add_permission' => '', +'error_importfs' => '', 'error_no_document_selected' => 'Nici un document selectat', 'error_no_folder_selected' => 'Nici un folder selectat', 'error_occured' => 'An error has occured', @@ -513,6 +516,7 @@ URL: [url]', 'identical_version' => 'Noua versiune este identică cu versiunea curentă.', 'import' => '', 'importfs' => '', +'import_fs' => '', 'include_content' => '', 'include_documents' => 'Include documente', 'include_subdirectories' => 'Include subfoldere', @@ -1272,6 +1276,7 @@ URL: [url]', 'splash_edit_user' => 'Utilizator salvat', 'splash_error_add_to_transmittal' => '', 'splash_folder_edited' => 'Salvați modificările folderului', +'splash_importfs' => '', 'splash_invalid_folder_id' => 'ID folder invalid', 'splash_invalid_searchterm' => 'Termen de căutare invalid', 'splash_moved_clipboard' => 'Clipboard mutat în folderul curent', diff --git a/languages/ru_RU/lang.inc b/languages/ru_RU/lang.inc index 866fb5f51..9ab65dcb6 100644 --- a/languages/ru_RU/lang.inc +++ b/languages/ru_RU/lang.inc @@ -233,6 +233,7 @@ URL: [url]', 'choose_workflow_action' => 'Выберите действие процесса', 'choose_workflow_state' => 'Выберите статус процесса', 'class_name' => '', +'clear_cache' => '', 'clear_clipboard' => 'Очистить буфер обмена', 'clear_password' => '', 'clipboard' => 'Буфер обмена', @@ -373,6 +374,7 @@ URL: [url]', 'draft_pending_review' => 'Черновик — ожидает рецензии', 'drag_icon_here' => 'Перетащите сюда значок каталога или документа.', 'dropfolder_file' => 'Файл из проходного каталога', +'dropfolder_folder' => '', 'dropupload' => 'Быстрая загрузка', 'drop_files_here' => 'Переместите файлы сюда', 'dump_creation' => 'Создать дамп БД', @@ -411,6 +413,7 @@ URL: [url]', 'error' => 'Ошибка', 'error_add_aro' => '', 'error_add_permission' => '', +'error_importfs' => '', 'error_no_document_selected' => 'Нет выбранных документов', 'error_no_folder_selected' => 'Нет выбранных каталогов', 'error_occured' => 'Произошла ошибка', @@ -513,6 +516,7 @@ URL: [url]', 'identical_version' => 'Новая версия идентична текущей.', 'import' => '', 'importfs' => '', +'import_fs' => '', 'include_content' => 'Включая содержимое', 'include_documents' => 'Включая документы', 'include_subdirectories' => 'Включая подкаталоги', @@ -1279,6 +1283,7 @@ URL: [url]', 'splash_edit_user' => 'Пользователь сохранён', 'splash_error_add_to_transmittal' => '', 'splash_folder_edited' => 'Изменения каталога сохранены', +'splash_importfs' => '', 'splash_invalid_folder_id' => 'Неверный идентификатор каталога', 'splash_invalid_searchterm' => 'Неверный поисковый запрос', 'splash_moved_clipboard' => 'Буфер обмена перенесён в текущий каталог', diff --git a/languages/sk_SK/lang.inc b/languages/sk_SK/lang.inc index eabead7b7..5bc5df98d 100644 --- a/languages/sk_SK/lang.inc +++ b/languages/sk_SK/lang.inc @@ -210,6 +210,7 @@ URL: [url]', 'choose_workflow_action' => '', 'choose_workflow_state' => '', 'class_name' => '', +'clear_cache' => '', 'clear_clipboard' => '', 'clear_password' => '', 'clipboard' => 'Schránka', @@ -320,6 +321,7 @@ URL: [url]', 'draft_pending_review' => 'Návrh - čaká na kontrolu', 'drag_icon_here' => 'Sem myšou pretiahnite ikonu, zložku alebo dokument', 'dropfolder_file' => '', +'dropfolder_folder' => '', 'dropupload' => 'Rýchlo nahraj', 'drop_files_here' => 'Sem vložte súbory!', 'dump_creation' => 'Vytvorenie výstupu DB', @@ -358,6 +360,7 @@ URL: [url]', 'error' => 'Chyba', 'error_add_aro' => '', 'error_add_permission' => '', +'error_importfs' => '', 'error_no_document_selected' => '', 'error_no_folder_selected' => '', 'error_occured' => 'Vyskytla sa chyba', @@ -436,6 +439,7 @@ URL: [url]', 'identical_version' => '', 'import' => '', 'importfs' => '', +'import_fs' => '', 'include_content' => '', 'include_documents' => 'Vrátane súborov', 'include_subdirectories' => 'Vrátane podzložiek', @@ -1104,6 +1108,7 @@ URL: [url]', 'splash_edit_user' => '', 'splash_error_add_to_transmittal' => '', 'splash_folder_edited' => '', +'splash_importfs' => '', 'splash_invalid_folder_id' => '', 'splash_invalid_searchterm' => '', 'splash_moved_clipboard' => '', diff --git a/languages/sv_SE/lang.inc b/languages/sv_SE/lang.inc index 57ba94b2a..6ea04e272 100644 --- a/languages/sv_SE/lang.inc +++ b/languages/sv_SE/lang.inc @@ -221,6 +221,7 @@ URL: [url]', 'choose_workflow_action' => 'Välj åtgärd för arbetsflödet', 'choose_workflow_state' => 'Välj status för arbetsflödet', 'class_name' => '', +'clear_cache' => '', 'clear_clipboard' => 'Rensa urklipp', 'clear_password' => '', 'clipboard' => 'Urklipp', @@ -361,6 +362,7 @@ URL: [url]', 'draft_pending_review' => 'Utkast: väntar på granskning', 'drag_icon_here' => 'Dra ikon av mappen eller dokument hit!', 'dropfolder_file' => 'Fil från mellanlagrings-mappen', +'dropfolder_folder' => '', 'dropupload' => 'Snabb uppladdning', 'drop_files_here' => 'Släpp filer här!', 'dump_creation' => 'Skapa DB-dump', @@ -399,6 +401,7 @@ URL: [url]', 'error' => 'Fel', 'error_add_aro' => '', 'error_add_permission' => '', +'error_importfs' => '', 'error_no_document_selected' => 'Inget dokument har valts', 'error_no_folder_selected' => 'Ingen katalog har valts', 'error_occured' => 'Ett fel har inträffat.', @@ -501,6 +504,7 @@ URL: [url]', 'identical_version' => 'Ny version är lika med den aktuella versionen.', 'import' => '', 'importfs' => '', +'import_fs' => '', 'include_content' => '', 'include_documents' => 'Inkludera dokument', 'include_subdirectories' => 'Inkludera under-kataloger', @@ -1235,6 +1239,7 @@ URL: [url]', 'splash_edit_user' => 'Användare sparat', 'splash_error_add_to_transmittal' => '', 'splash_folder_edited' => 'Spara katalog ändringar', +'splash_importfs' => '', 'splash_invalid_folder_id' => 'Ogiltigt katalog ID', 'splash_invalid_searchterm' => 'Ogiltigt sökord', 'splash_moved_clipboard' => 'Urklipp flyttades till aktuella katalogen', diff --git a/languages/tr_TR/lang.inc b/languages/tr_TR/lang.inc index 37fe960a3..647400bb7 100644 --- a/languages/tr_TR/lang.inc +++ b/languages/tr_TR/lang.inc @@ -227,6 +227,7 @@ URL: [url]', 'choose_workflow_action' => 'İş akış eylemi seçiniz', 'choose_workflow_state' => 'İş akış durumunu seçiniz', 'class_name' => '', +'clear_cache' => '', 'clear_clipboard' => 'Panoyu temizle', 'clear_password' => '', 'clipboard' => 'Pano', @@ -367,6 +368,7 @@ URL: [url]', 'draft_pending_review' => 'Taslak - kontrol bekliyor', 'drag_icon_here' => 'Klasör veya dokümanın ikonunu buraya sürükleyin!', 'dropfolder_file' => 'Sürüklenen klasörden dosya', +'dropfolder_folder' => '', 'dropupload' => 'Hızlı yükleme', 'drop_files_here' => 'Dosyaları buraya sürükleyin!', 'dump_creation' => 'Veritabanı dump oluşturma', @@ -405,6 +407,7 @@ URL: [url]', 'error' => 'Hata', 'error_add_aro' => '', 'error_add_permission' => '', +'error_importfs' => '', 'error_no_document_selected' => 'Hiçbir doküman seçilmedi', 'error_no_folder_selected' => 'Hiçbir klasör seçilmedi', 'error_occured' => 'Bir hata oluştu', @@ -507,6 +510,7 @@ URL: [url]', 'identical_version' => 'Yeni versiyon güncel versiyonla aynı.', 'import' => '', 'importfs' => '', +'import_fs' => '', 'include_content' => '', 'include_documents' => 'Dokümanları kapsa', 'include_subdirectories' => 'Alt klasörleri kapsa', @@ -1251,6 +1255,7 @@ URL: [url]', 'splash_edit_user' => 'Kullanıcı kaydedildi', 'splash_error_add_to_transmittal' => '', 'splash_folder_edited' => 'Klasör değişiklikleri kaydedildi', +'splash_importfs' => '', 'splash_invalid_folder_id' => 'Hatalı klasör ID', 'splash_invalid_searchterm' => 'Hatalı arama terimi', 'splash_moved_clipboard' => 'Pano mevcut klasöre taşındı', diff --git a/languages/uk_UA/lang.inc b/languages/uk_UA/lang.inc index 427db7e91..bf2b3ae13 100644 --- a/languages/uk_UA/lang.inc +++ b/languages/uk_UA/lang.inc @@ -233,6 +233,7 @@ URL: [url]', 'choose_workflow_action' => 'Оберіть дію процесу', 'choose_workflow_state' => 'Оберіть статус процесу', 'class_name' => '', +'clear_cache' => '', 'clear_clipboard' => 'Очистити буфер обміну', 'clear_password' => '', 'clipboard' => 'Буфер обміну', @@ -373,6 +374,7 @@ URL: [url]', 'draft_pending_review' => 'Чернетка — Очікує на рецензію', 'drag_icon_here' => 'Перетягніть сюди значок документа чи каталогу', 'dropfolder_file' => 'Файл з прохідного каталогу', +'dropfolder_folder' => '', 'dropupload' => 'Швидке завантаження', 'drop_files_here' => 'Перемістіть файли сюди', 'dump_creation' => 'Створити дамп БД', @@ -411,6 +413,7 @@ URL: [url]', 'error' => 'Помилка', 'error_add_aro' => '', 'error_add_permission' => '', +'error_importfs' => '', 'error_no_document_selected' => 'Немає вибраних документів', 'error_no_folder_selected' => 'Немає вибраних каталогів', 'error_occured' => 'Виникла помилка', @@ -513,6 +516,7 @@ URL: [url]', 'identical_version' => 'Нова версія ідентична поточній.', 'import' => '', 'importfs' => '', +'import_fs' => '', 'include_content' => 'Включно з вмістом', 'include_documents' => 'Включно з документами', 'include_subdirectories' => 'Включно з підкаталогами', @@ -1272,6 +1276,7 @@ URL: [url]', 'splash_edit_user' => 'Користувача збережено', 'splash_error_add_to_transmittal' => '', 'splash_folder_edited' => 'Зміни каталогу збережено', +'splash_importfs' => '', 'splash_invalid_folder_id' => 'Невірний ідентифікатор каталогу', 'splash_invalid_searchterm' => 'Невірний пошуковий запит', 'splash_moved_clipboard' => 'Буфер обміну перенесено в поточний каталог', diff --git a/languages/zh_CN/lang.inc b/languages/zh_CN/lang.inc index 22a8c05e8..1fcb4b71a 100644 --- a/languages/zh_CN/lang.inc +++ b/languages/zh_CN/lang.inc @@ -210,6 +210,7 @@ URL: [url]', 'choose_workflow_action' => '', 'choose_workflow_state' => '', 'class_name' => '', +'clear_cache' => '', 'clear_clipboard' => '清除粘贴板', 'clear_password' => '', 'clipboard' => '剪切板', @@ -322,6 +323,7 @@ URL: [url]', 'draft_pending_review' => '待校对', 'drag_icon_here' => '拖动图标到这里', 'dropfolder_file' => '所选文件夹的文件', +'dropfolder_folder' => '', 'dropupload' => '快速上传', 'drop_files_here' => '拖入这里', 'dump_creation' => '转储数据', @@ -360,6 +362,7 @@ URL: [url]', 'error' => '错误', 'error_add_aro' => '', 'error_add_permission' => '', +'error_importfs' => '', 'error_no_document_selected' => '请选择文档', 'error_no_folder_selected' => '请选择文件夹', 'error_occured' => '出错', @@ -438,6 +441,7 @@ URL: [url]', 'identical_version' => '', 'import' => '', 'importfs' => '', +'import_fs' => '', 'include_content' => '', 'include_documents' => '包含文档', 'include_subdirectories' => '包含子目录', @@ -1106,6 +1110,7 @@ URL: [url]', 'splash_edit_user' => '', 'splash_error_add_to_transmittal' => '', 'splash_folder_edited' => '', +'splash_importfs' => '', 'splash_invalid_folder_id' => '', 'splash_invalid_searchterm' => '', 'splash_moved_clipboard' => '', diff --git a/languages/zh_TW/lang.inc b/languages/zh_TW/lang.inc index c2fc5c10b..77d55aeb6 100644 --- a/languages/zh_TW/lang.inc +++ b/languages/zh_TW/lang.inc @@ -210,6 +210,7 @@ URL: [url]', 'choose_workflow_action' => '選擇流程行為', 'choose_workflow_state' => '選擇流程狀態', 'class_name' => '', +'clear_cache' => '', 'clear_clipboard' => '清除剪貼簿', 'clear_password' => '', 'clipboard' => '剪貼簿', @@ -320,6 +321,7 @@ URL: [url]', 'draft_pending_review' => '待校對', 'drag_icon_here' => '拖動圖示到這裡', 'dropfolder_file' => '', +'dropfolder_folder' => '', 'dropupload' => '快速上傳', 'drop_files_here' => '拖入這裡', 'dump_creation' => '轉儲數據', @@ -358,6 +360,7 @@ URL: [url]', 'error' => '', 'error_add_aro' => '', 'error_add_permission' => '', +'error_importfs' => '', 'error_no_document_selected' => '請選擇文檔', 'error_no_folder_selected' => '請選擇資料夾', 'error_occured' => '出錯', @@ -436,6 +439,7 @@ URL: [url]', 'identical_version' => '', 'import' => '', 'importfs' => '', +'import_fs' => '', 'include_content' => '', 'include_documents' => '包含文檔', 'include_subdirectories' => '包含子目錄', @@ -1104,6 +1108,7 @@ URL: [url]', 'splash_edit_user' => '', 'splash_error_add_to_transmittal' => '', 'splash_folder_edited' => '', +'splash_importfs' => '', 'splash_invalid_folder_id' => '', 'splash_invalid_searchterm' => '', 'splash_moved_clipboard' => '', From 1c09327bc0d71f9a284215d9cee4f75cfed79a84 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 9 May 2016 08:21:21 +0200 Subject: [PATCH 33/76] add preview function for audio files (not activated) --- views/bootstrap/class.ViewDocument.php | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/views/bootstrap/class.ViewDocument.php b/views/bootstrap/class.ViewDocument.php index 4949113d6..565b48f87 100644 --- a/views/bootstrap/class.ViewDocument.php +++ b/views/bootstrap/class.ViewDocument.php @@ -127,6 +127,23 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style { $this->printDocumentChooserJs("form1"); } /* }}} */ + function preview() { /* {{{ */ + $document = $this->params['document']; + $latestContent = $document->getLatestContent(); + switch($latestContent->getMimeType()) { + case 'audio/mpeg': + case 'audio/ogg': + case 'audio/wav': + $this->contentHeading(getMLText("preview")); +?> + +params['dms']; $user = $this->params['user']; @@ -313,6 +330,7 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style {
      : From 5d25720ec989d61615246607240a0ad990686383 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 28 Apr 2016 07:51:42 +0200 Subject: [PATCH 14/76] add new operation to clear cache completely --- CHANGELOG | 1 + op/op.ClearCache.php | 36 +++++++++++++++++ out/out.ClearCache.php | 40 +++++++++++++++++++ views/bootstrap/class.Bootstrap.php | 1 + views/bootstrap/class.ClearCache.php | 60 ++++++++++++++++++++++++++++ 5 files changed, 138 insertions(+) create mode 100644 op/op.ClearCache.php create mode 100644 out/out.ClearCache.php create mode 100644 views/bootstrap/class.ClearCache.php diff --git a/CHANGELOG b/CHANGELOG index 0c3391f2d..9ca8e4a24 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -2,6 +2,7 @@ Changes in version 4.3.27 -------------------------------------------------------------------------------- - remove preview images when document or document content is removed (Closes #262) +- add clear cache operation in admin tools -------------------------------------------------------------------------------- Changes in version 4.3.26 diff --git a/op/op.ClearCache.php b/op/op.ClearCache.php new file mode 100644 index 000000000..b5c00e5f0 --- /dev/null +++ b/op/op.ClearCache.php @@ -0,0 +1,36 @@ +_cacheDir.'/*'; +system($cmd); +add_log_line(""); + +header("Location:../out/out.AdminTools.php"); + diff --git a/out/out.ClearCache.php b/out/out.ClearCache.php new file mode 100644 index 000000000..578464b35 --- /dev/null +++ b/out/out.ClearCache.php @@ -0,0 +1,40 @@ +isAdmin()) { + UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); +} + +$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); +$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user)); +if($view) { + $view->setParam('cachedir', $settings->_cacheDir); + $view($_GET); + exit; +} + +?> diff --git a/views/bootstrap/class.Bootstrap.php b/views/bootstrap/class.Bootstrap.php index d2d0398ef..74151ceaa 100644 --- a/views/bootstrap/class.Bootstrap.php +++ b/views/bootstrap/class.Bootstrap.php @@ -573,6 +573,7 @@ $(document).ready(function () { echo "
    • ".getMLText("charts")."
    • \n"; echo "
    • ".getMLText("timeline")."
    • \n"; echo "
    • ".getMLText("objectcheck")."
    • \n"; + echo "
    • ".getMLText("clear_cache")."
    • \n"; echo "
    • ".getMLText("version_info")."
    • \n"; echo " \n"; echo " \n"; diff --git a/views/bootstrap/class.ClearCache.php b/views/bootstrap/class.ClearCache.php new file mode 100644 index 000000000..b00043c62 --- /dev/null +++ b/views/bootstrap/class.ClearCache.php @@ -0,0 +1,60 @@ + + * @copyright Copyright (C) 2002-2005 Markus Westphal, + * 2006-2008 Malcolm Cowe, 2010 Matteo Lucarelli, + * 2010-2012 Uwe Steinmann + * @version Release: @package_version@ + */ + +/** + * Include parent class + */ +require_once("class.Bootstrap.php"); + +/** + * Class which outputs the html page for ClearCache view + * + * @category DMS + * @package SeedDMS + * @author Markus Westphal, Malcolm Cowe, Uwe Steinmann + * @copyright Copyright (C) 2002-2005 Markus Westphal, + * 2006-2008 Malcolm Cowe, 2010 Matteo Lucarelli, + * 2010-2012 Uwe Steinmann + * @version Release: @package_version@ + */ +class SeedDMS_View_ClearCache extends SeedDMS_Bootstrap_Style { + + function show() { /* {{{ */ + $dms = $this->params['dms']; + $user = $this->params['user']; + $cachedir = $this->params['cachedir']; + + $this->htmlStartPage(getMLText("admin_tools")); + $this->globalNavigation(); + $this->contentStart(); + $this->pageNavigation(getMLText("admin_tools"), "admin_tools"); + $this->contentHeading(getMLText("clear_cache")); + $this->contentContainerStart('warning'); + +?> +
      + +

      +$cachedir));?> +

      +

      +
      +contentContainerEnd(); + $this->contentEnd(); + $this->htmlEndPage(); + } /* }}} */ +} +?> From b86132a45c2e2d297a9ef684d12f386f45e10575 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 28 Apr 2016 10:42:13 +0200 Subject: [PATCH 15/76] pass variables to stream_select() --- SeedDMS_Lucene/Lucene/IndexedDocument.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/SeedDMS_Lucene/Lucene/IndexedDocument.php b/SeedDMS_Lucene/Lucene/IndexedDocument.php index 2a90a39b1..874bfd149 100644 --- a/SeedDMS_Lucene/Lucene/IndexedDocument.php +++ b/SeedDMS_Lucene/Lucene/IndexedDocument.php @@ -42,7 +42,9 @@ class SeedDMS_Lucene_IndexedDocument extends Zend_Search_Lucene_Document { do { $timeleft = $timeout - time(); $read = array($pipes[1]); - stream_select($read, $write = NULL, $exeptions = NULL, $timeleft, 200000); + $write = NULL; + $exeptions = NULL; + stream_select($read, $write, $exeptions, $timeleft, 200000); if (!empty($read)) { $output .= fread($pipes[1], 8192); From 2fc6f6aa7883339f5251e5b3201ac2fcbd1e683e Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 28 Apr 2016 10:42:52 +0200 Subject: [PATCH 16/76] new version 1.1.9 --- SeedDMS_Lucene/package.xml | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/SeedDMS_Lucene/package.xml b/SeedDMS_Lucene/package.xml index c37770104..dc9fc8a20 100644 --- a/SeedDMS_Lucene/package.xml +++ b/SeedDMS_Lucene/package.xml @@ -11,10 +11,10 @@ uwe@steinmann.cx yes - 2016-03-29 + 2016-04-28 - 1.1.8 + 1.1.9 1.1.7 @@ -23,7 +23,7 @@ GPL License -set last parameter of stream_select() to 200000 micro sec. in case the timeout in sec. is set to 0 +pass variables to stream_select() to fullfill strict standards. @@ -218,5 +218,21 @@ run external commands with a timeout add command for indexing postѕcript files + + 2016-03-29 + + + 1.1.8 + 1.1.7 + + + stable + stable + + GPL License + +set last parameter of stream_select() to 200000 micro sec. in case the timeout in sec. is set to 0 + + From 9af830c8144a6b9b844b3d62befde8eb57ec5e4f Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 28 Apr 2016 10:43:35 +0200 Subject: [PATCH 17/76] add note to 4.3.27 --- CHANGELOG | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG b/CHANGELOG index 9ca8e4a24..30495e49a 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -3,6 +3,7 @@ -------------------------------------------------------------------------------- - remove preview images when document or document content is removed (Closes #262) - add clear cache operation in admin tools +- fix strict standard error in SeedDMS_Lucene (Closes #263) -------------------------------------------------------------------------------- Changes in version 4.3.26 From 4dbe07871c1e074548de80f8d9a2724ec1a6b2c8 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 28 Apr 2016 12:04:09 +0200 Subject: [PATCH 18/76] check for dependency on seeddms disable extension if dependency not met --- inc/inc.Extension.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/inc/inc.Extension.php b/inc/inc.Extension.php index b3f6eaf26..b8f5f4def 100644 --- a/inc/inc.Extension.php +++ b/inc/inc.Extension.php @@ -13,6 +13,8 @@ require "inc.ClassExtensionMgr.php"; require_once "inc.ClassExtBase.php"; +require_once "inc.Version.php"; +require_once "inc.Utils.php"; $extMgr = new SeedDMS_Extension_Mgr($settings->_rootDir."/ext", $settings->_cacheDir); $extconffile = $extMgr->getExtensionsConfFile(); @@ -22,7 +24,17 @@ if(!file_exists($extconffile)) { $EXT_CONF = array(); include($extconffile); +$version = new SeedDMS_Version; + foreach($EXT_CONF as $extname=>$extconf) { + if(!isset($extconf['disable']) || $extconf['disable'] == false) { + /* check for requirements */ + if(!empty($extconf['constraints']['depends']['seeddms'])) { + $t = explode('-', $extconf['constraints']['depends']['seeddms'], 2); + if(cmpVersion($t[0], $version->version()) > 0 || ($t[1] && cmpVersion($t[1], $version->version()) < 0)) + $extconf['disable'] = true; + } + } if(!isset($extconf['disable']) || $extconf['disable'] == false) { $classfile = $settings->_rootDir."/ext/".$extname."/".$extconf['class']['file']; if(file_exists($classfile)) { From 2fb96d94bfb25a293e269018568d24b2fe1a89fe Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 28 Apr 2016 12:04:53 +0200 Subject: [PATCH 19/76] also check for dependencies on other extensions --- views/bootstrap/class.ExtensionMgr.php | 44 ++++++++++++++++++-------- 1 file changed, 30 insertions(+), 14 deletions(-) diff --git a/views/bootstrap/class.ExtensionMgr.php b/views/bootstrap/class.ExtensionMgr.php index 5be43b04d..59d91df1b 100644 --- a/views/bootstrap/class.ExtensionMgr.php +++ b/views/bootstrap/class.ExtensionMgr.php @@ -47,24 +47,40 @@ class SeedDMS_View_ExtensionMgr extends SeedDMS_Bootstrap_Style { print "
      ".$extconf['title']."
      ".$extconf['description'].""; if($errmsgs) - echo "
      getImgPath("attention.gif")."\"> ".implode('
      ', $errmsgs)."
      "; + echo "
      getImgPath("attention.gif")."\"> ".implode('
      ', $errmsgs)."
      "; echo "
      ".$extconf['version']."
      ".$extconf['releasedate']."
      ".$extconf['author']['name']."
      ".$extconf['author']['company']."
      contentContainerEnd(); +// $this->preview(); ?>
      From f894ac441a1c9560ab922bd336e643b2463d3409 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 17 May 2016 10:18:41 +0200 Subject: [PATCH 34/76] add methods get[Folder|Document]Attributes --- restapi/index.php | 57 ++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 51 insertions(+), 6 deletions(-) diff --git a/restapi/index.php b/restapi/index.php index 1cb64a9e3..a2b17da90 100644 --- a/restapi/index.php +++ b/restapi/index.php @@ -215,6 +215,29 @@ function getFolderPath($id) { /* {{{ */ echo json_encode(array('success'=>true, 'message'=>'', 'data'=>$data)); } /* }}} */ +function getFolderAttributes($id) { /* {{{ */ + global $app, $dms, $userobj; + $folder = $dms->getFolder($id); + + if($folder) { + if ($folder->getAccessMode($userobj) >= M_READ) { + $recs = array(); + $attributes = $folder->getAttributes(); + foreach($attributes as $attribute) { + $recs[] = array( + 'id'=>$attribute->getId(), + 'value'=>$attribute->getValue(), + 'name'=>$attribute->getAttributeDefinition()->getName(), + ); + } + $app->response()->header('Content-Type', 'application/json'); + echo json_encode(array('success'=>true, 'message'=>'', 'data'=>$recs)); + } else { + $app->response()->status(404); + } + } +} /* }}} */ + function getFolderChildren($id) { /* {{{ */ global $app, $dms, $userobj; if($id == 0) { @@ -649,6 +672,29 @@ function getDocumentLinks($id) { /* {{{ */ } } /* }}} */ +function getDocumentAttributes($id) { /* {{{ */ + global $app, $dms, $userobj; + $document = $dms->getDocument($id); + + if($document) { + if ($document->getAccessMode($userobj) >= M_READ) { + $recs = array(); + $attributes = $document->getAttributes(); + foreach($attributes as $attribute) { + $recs[] = array( + 'id'=>$attribute->getId(), + 'value'=>$attribute->getValue(), + 'name'=>$attribute->getAttributeDefinition()->getName(), + ); + } + $app->response()->header('Content-Type', 'application/json'); + echo json_encode(array('success'=>true, 'message'=>'', 'data'=>$recs)); + } else { + $app->response()->status(404); + } + } +} /* }}} */ + function getAccount() { /* {{{ */ global $app, $dms, $userobj; if($userobj) { @@ -838,8 +884,7 @@ function doSearchByAttr() { /* {{{ */ echo json_encode(array('success'=>true, 'message'=>'', 'data'=>$recs)); } /* }}} */ -function checkIfAdmin() -{ +function checkIfAdmin() { /* {{{ */ global $app, $dms, $userobj; if(!$userobj) { $app->response()->header('Content-Type', 'application/json'); @@ -853,8 +898,7 @@ function checkIfAdmin() } return true; -} - +} /* }}} */ function createAccount() { /* {{{ */ global $app, $dms, $userobj; @@ -1063,7 +1107,7 @@ function changeGroupMembership($id, $operationType) { /* {{{ */ function addUserToGroup($id) { /* {{{ */ changeGroupMembership($id, 'add'); -} +} /* }}} */ function removeUserFromGroup($id) { /* {{{ */ changeGroupMembership($id, 'remove'); @@ -1231,7 +1275,6 @@ function changeFolderAccess($id, $operationType, $userOrGroup) { /* {{{ */ echo json_encode(array('success'=>true, 'message'=>'', 'data'=>$data)); } /* }}} */ - function clearFolderAccessList($id) { /* {{{ */ global $app, $dms, $userobj; checkIfAdmin(); @@ -1289,6 +1332,7 @@ $app->delete('/folder/:id', 'deleteFolder'); $app->get('/folder/:id/children', 'getFolderChildren'); $app->get('/folder/:id/parent', 'getFolderParent'); $app->get('/folder/:id/path', 'getFolderPath'); +$app->get('/folder/:id/attributes', 'getFolderAttributes'); $app->post('/folder/:id/createfolder', 'createFolder'); $app->put('/folder/:id/document', 'uploadDocument'); $app->get('/document/:id', 'getDocument'); @@ -1300,6 +1344,7 @@ $app->get('/document/:id/version/:version', 'getDocumentVersion'); $app->get('/document/:id/files', 'getDocumentFiles'); $app->get('/document/:id/file/:fileid', 'getDocumentFile'); $app->get('/document/:id/links', 'getDocumentLinks'); +$app->get('/document/:id/attributes', 'getDocumentAttributes'); $app->put('/account/fullname', 'setFullName'); $app->put('/account/email', 'setEmail'); $app->get('/account/locked', 'getLockedDocuments'); From 0006416b7e48c00c53c18b8c0fa82e7a2eaf335b Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Wed, 18 May 2016 09:19:46 +0200 Subject: [PATCH 35/76] add class table-hover to table --- views/bootstrap/class.Search.php | 2 +- views/bootstrap/class.ViewFolder.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/views/bootstrap/class.Search.php b/views/bootstrap/class.Search.php index aa35708bc..b9ba05620 100644 --- a/views/bootstrap/class.Search.php +++ b/views/bootstrap/class.Search.php @@ -450,7 +450,7 @@ class SeedDMS_View_Search extends SeedDMS_Bootstrap_Style { $this->pageList($pageNumber, $totalpages, "../out/out.Search.php", $urlparams); // $this->contentContainerStart(); - print ""; + print "
      "; print "\n\n"; print "\n"; print "\n"; diff --git a/views/bootstrap/class.ViewFolder.php b/views/bootstrap/class.ViewFolder.php index 5c2cddc39..907a7863f 100644 --- a/views/bootstrap/class.ViewFolder.php +++ b/views/bootstrap/class.ViewFolder.php @@ -248,7 +248,7 @@ function folderSelected(id, name) { $documents = SeedDMS_Core_DMS::filterAccess($documents, $user, M_READ); if ((count($subFolders) > 0)||(count($documents) > 0)){ - print "
      ".getMLText("name")."
      "; + print "
      "; print "\n\n"; print "\n"; print "\n"; From 66039b6df2e8ee7281c492883aa3979d284d90f4 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Wed, 18 May 2016 09:20:05 +0200 Subject: [PATCH 36/76] add thead and tbody --- views/bootstrap/class.SubstituteUser.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/views/bootstrap/class.SubstituteUser.php b/views/bootstrap/class.SubstituteUser.php index b5bb37f37..72cc53412 100644 --- a/views/bootstrap/class.SubstituteUser.php +++ b/views/bootstrap/class.SubstituteUser.php @@ -48,7 +48,10 @@ class SeedDMS_View_SubstituteUser extends SeedDMS_Bootstrap_Style { $this->contentContainerStart(); ?>
      ".getMLText("name")."
      - + + + + "; @@ -76,6 +79,7 @@ class SeedDMS_View_SubstituteUser extends SeedDMS_Bootstrap_Style { echo ""; echo ""; } + echo ""; echo "
      "; $this->contentContainerEnd(); From 563dd3d22410ba73fdb8d8e468d5ebd520b0f7c6 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 23 May 2016 12:29:14 +0200 Subject: [PATCH 37/76] add some missing translations --- languages/tr_TR/lang.inc | 10 +++++----- languages/zh_CN/lang.inc | 4 ++-- languages/zh_TW/lang.inc | 10 +++++----- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/languages/tr_TR/lang.inc b/languages/tr_TR/lang.inc index 647400bb7..dfbc7d431 100644 --- a/languages/tr_TR/lang.inc +++ b/languages/tr_TR/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (1032), aydin (83) +// Translators: Admin (1036), aydin (83) $text = array( 'accept' => 'Kabul', @@ -52,7 +52,7 @@ URL: [url]', 'add_approval' => 'Onay ver', 'add_document' => 'Doküman ekle', 'add_document_link' => 'Link ekle', -'add_document_notify' => '', +'add_document_notify' => 'Hatırlatma ekte', 'add_doc_reviewer_approver_warning' => 'NOT: Dokümanlara onay veren veya gözden geçiren kimse atanmamışsa otomatik olarak yayınlanırlar.', 'add_doc_workflow_warning' => 'NOT: Dokümanlara iş akışı atanmamışsa otomatik olarak yayınlanırlar.', 'add_event' => 'Etkinlik ekle', @@ -571,7 +571,7 @@ URL: [url]', 'keep' => 'Değiştirmeyin', 'keep_doc_status' => 'Doküman durumunu değiştirme', 'keywords' => 'Anahtar kelimeler', -'keywords_loading' => '', +'keywords_loading' => 'Anahtar sözcük listesi yüklenene kadar lütfen bekleyin...', 'keyword_exists' => 'Anahtar kelime zaten mevcut', 'ko_KR' => 'Korece', 'language' => 'Dil', @@ -929,12 +929,12 @@ URL: [url]', 'select_grp_ind_notification' => '', 'select_grp_ind_recipients' => '', 'select_grp_ind_reviewers' => '', -'select_grp_notification' => '', +'select_grp_notification' => 'Gruplar için hatırlatma seçmek için tıklayın', 'select_grp_recipients' => '', 'select_grp_reviewers' => 'Grup kontrol edeni seçmek için tıklayın', 'select_grp_revisors' => '', 'select_ind_approvers' => 'Bireysel onaylanı seçmek için tıklayın', -'select_ind_notification' => '', +'select_ind_notification' => 'Bireysel hatırlatma seçmek için tıklayın', 'select_ind_recipients' => '', 'select_ind_reviewers' => 'Biresysel kontrol edeni seçmek için tıklayın', 'select_ind_revisors' => '', diff --git a/languages/zh_CN/lang.inc b/languages/zh_CN/lang.inc index 1fcb4b71a..2374fcf79 100644 --- a/languages/zh_CN/lang.inc +++ b/languages/zh_CN/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (632), fengjohn (5) +// Translators: Admin (633), fengjohn (5) $text = array( 'accept' => '接受', @@ -882,7 +882,7 @@ URL: [url]', 'settings_enableDuplicateDocNames_desc' => '', 'settings_enableEmail' => '开启邮件', 'settings_enableEmail_desc' => '开启/关闭邮件自动提醒', -'settings_enableFolderTree' => '', +'settings_enableFolderTree' => '开启目录树', 'settings_enableFolderTree_desc' => '', 'settings_enableFullSearch' => '允许全文搜索', 'settings_enableFullSearch_desc' => '允许全文搜索', diff --git a/languages/zh_TW/lang.inc b/languages/zh_TW/lang.inc index 77d55aeb6..49031bad4 100644 --- a/languages/zh_TW/lang.inc +++ b/languages/zh_TW/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (2355) +// Translators: Admin (2359) $text = array( 'accept' => '接受', @@ -125,12 +125,12 @@ URL: [url]', 'attrdef_objtype' => '類別', 'attrdef_regex' => '規則運算式', 'attrdef_type' => '類型', -'attrdef_type_boolean' => '', +'attrdef_type_boolean' => '布林數', 'attrdef_type_date' => '日期', 'attrdef_type_email' => '', -'attrdef_type_float' => '', -'attrdef_type_int' => '', -'attrdef_type_string' => '', +'attrdef_type_float' => '浮點數', +'attrdef_type_int' => '整數', +'attrdef_type_string' => '字串', 'attrdef_type_url' => '', 'attrdef_valueset' => '屬性值', 'attributes' => '屬性', From 6ba8013d40a6c19a330c86de55a63b48d046bc01 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Mon, 23 May 2016 13:15:50 +0200 Subject: [PATCH 38/76] add option to unlink file in drop folder once uploaded --- inc/inc.ClassSettings.php | 4 ++++ languages/ar_EG/lang.inc | 2 ++ languages/bg_BG/lang.inc | 2 ++ languages/ca_ES/lang.inc | 2 ++ languages/cs_CZ/lang.inc | 2 ++ languages/de_DE/lang.inc | 4 +++- languages/en_GB/lang.inc | 4 +++- languages/es_ES/lang.inc | 2 ++ languages/fr_FR/lang.inc | 2 ++ languages/hr_HR/lang.inc | 2 ++ languages/hu_HU/lang.inc | 2 ++ languages/it_IT/lang.inc | 2 ++ languages/ko_KR/lang.inc | 2 ++ languages/nl_NL/lang.inc | 2 ++ languages/pl_PL/lang.inc | 2 ++ languages/pt_BR/lang.inc | 2 ++ languages/ro_RO/lang.inc | 2 ++ languages/ru_RU/lang.inc | 2 ++ languages/sk_SK/lang.inc | 2 ++ languages/sv_SE/lang.inc | 2 ++ languages/tr_TR/lang.inc | 2 ++ languages/uk_UA/lang.inc | 2 ++ languages/zh_CN/lang.inc | 2 ++ languages/zh_TW/lang.inc | 2 ++ op/op.AddDocument.php | 5 +++++ op/op.Settings.php | 1 + views/bootstrap/class.Settings.php | 4 ++++ 27 files changed, 62 insertions(+), 2 deletions(-) diff --git a/inc/inc.ClassSettings.php b/inc/inc.ClassSettings.php index 787eab059..af8c14ccc 100644 --- a/inc/inc.ClassSettings.php +++ b/inc/inc.ClassSettings.php @@ -85,6 +85,8 @@ class Settings { /* {{{ */ var $_luceneDir = null; // Where the drop folders are located var $_dropFolderDir = null; + // enable removal of file from dropfolder after success import + var $_removeFromDropFolder = false; // Where the stop word file is located var $_stopWordsFile = null; // enable/disable lucene fulltext search @@ -529,6 +531,7 @@ class Settings { /* {{{ */ $this->_enableVersionModification = Settings::boolval($tab["enableVersionModification"]); $this->_enableDuplicateDocNames = Settings::boolval($tab["enableDuplicateDocNames"]); $this->_overrideMimeType = Settings::boolval($tab["overrideMimeType"]); + $this->_removeFromDropFolder = Settings::boolval($tab["removeFromDropFolder"]); // XML Path: /configuration/advanced/notification $node = $xml->xpath('/configuration/advanced/notification'); @@ -795,6 +798,7 @@ class Settings { /* {{{ */ $this->setXMLAttributValue($node, "enableVersionModification", $this->_enableVersionModification); $this->setXMLAttributValue($node, "enableDuplicateDocNames", $this->_enableDuplicateDocNames); $this->setXMLAttributValue($node, "overrideMimeType", $this->_overrideMimeType); + $this->setXMLAttributValue($node, "removeFromDropFolder", $this->_removeFromDropFolder); // XML Path: /configuration/advanced/notification $node = $this->getXMLNode($xml, '/configuration/advanced', 'notification'); diff --git a/languages/ar_EG/lang.inc b/languages/ar_EG/lang.inc index fe8538991..a547b2981 100644 --- a/languages/ar_EG/lang.inc +++ b/languages/ar_EG/lang.inc @@ -1144,6 +1144,8 @@ URL: [url]', 'settings_printDisclaimer_desc' => '', 'settings_quota' => '', 'settings_quota_desc' => '', +'settings_removeFromDropFolder' => '', +'settings_removeFromDropFolder_desc' => '', 'settings_restricted' => '', 'settings_restricted_desc' => '', 'settings_rootDir' => '', diff --git a/languages/bg_BG/lang.inc b/languages/bg_BG/lang.inc index 11767daeb..8b1223ded 100644 --- a/languages/bg_BG/lang.inc +++ b/languages/bg_BG/lang.inc @@ -1009,6 +1009,8 @@ $text = array( 'settings_printDisclaimer_desc' => 'Ако е включено, то дисклаймер из lang.inc ще се показва под всяка страница', 'settings_quota' => 'Квота за потребител', 'settings_quota_desc' => 'Максималният брой байтове, които всеки потребител може да заема на диска. 0 за неограничено използване на диска. Тази стойност може да бъде презаписана за всяко използване на профила.', +'settings_removeFromDropFolder' => '', +'settings_removeFromDropFolder_desc' => '', 'settings_restricted' => 'Ограничен достъп', 'settings_restricted_desc' => 'Разреши вход за потребители, само ако имат съотв. запис в БД (независимо от успешния вход чрез LDAP)', 'settings_rootDir' => 'Корнева папка', diff --git a/languages/ca_ES/lang.inc b/languages/ca_ES/lang.inc index a89331017..147b5c3cf 100644 --- a/languages/ca_ES/lang.inc +++ b/languages/ca_ES/lang.inc @@ -1014,6 +1014,8 @@ URL: [url]', 'settings_printDisclaimer_desc' => '', 'settings_quota' => '', 'settings_quota_desc' => '', +'settings_removeFromDropFolder' => '', +'settings_removeFromDropFolder_desc' => '', 'settings_restricted' => '', 'settings_restricted_desc' => '', 'settings_rootDir' => '', diff --git a/languages/cs_CZ/lang.inc b/languages/cs_CZ/lang.inc index 11700687b..2aa2773fb 100644 --- a/languages/cs_CZ/lang.inc +++ b/languages/cs_CZ/lang.inc @@ -1153,6 +1153,8 @@ URL: [url]', 'settings_printDisclaimer_desc' => '', 'settings_quota' => 'Kvóta uživatele', 'settings_quota_desc' => 'Maximální počet bytů na disku, který může uživatel použít. Nula znamená neomezený prostor. Tato hodnota může být přepsána pro každé použití jeho profilu.', +'settings_removeFromDropFolder' => '', +'settings_removeFromDropFolder_desc' => '', 'settings_restricted' => 'Restricted access', 'settings_restricted_desc' => '', 'settings_rootDir' => 'Root directory', diff --git a/languages/de_DE/lang.inc b/languages/de_DE/lang.inc index 9411a3ea2..4f4d5b855 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 (2234), dgrutsch (21) +// Translators: Admin (2236), dgrutsch (21) $text = array( 'accept' => 'Übernehmen', @@ -1190,6 +1190,8 @@ URL: [url]', 'settings_printDisclaimer_desc' => 'Anwählen, um die rechtlichen Hinweise am Ende jeder Seite anzuzeigen.', 'settings_quota' => 'User\'s quota', 'settings_quota_desc' => 'Die maximale Anzahl Bytes, die ein Benutzer belegen darf. Setzen Sie diesen Wert auf 0 für unbeschränkten Plattenplatz. Dieser Wert kann individuell in den Benutzereinstellungen überschrieben werden.', +'settings_removeFromDropFolder' => 'Datei aus Ablageordner nach erfolgreichem Hochladen löschen', +'settings_removeFromDropFolder_desc' => 'Schalten Sie dies ein, wenn eine Datei aus dem Ablageordner nach erfolgreichem Hochladen gelöscht werden soll.', 'settings_restricted' => 'Beschränkter Zugriff', 'settings_restricted_desc' => 'Nur Benutzer, die einen Eintrag in der Benutzerdatenbank haben dürfen sich anmelden (unabhängig von einer erfolgreichen Authentifizierung über LDAP)', 'settings_rootDir' => 'Wurzelverzeichnis', diff --git a/languages/en_GB/lang.inc b/languages/en_GB/lang.inc index 6d34a89d7..92b6a81d5 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 (1380), dgrutsch (7), netixw (14) +// Translators: Admin (1383), dgrutsch (7), netixw (14) $text = array( 'accept' => 'Accept', @@ -1191,6 +1191,8 @@ URL: [url]', 'settings_printDisclaimer_desc' => 'If enabled, the disclaimer message will be printed on the bottom of every page', 'settings_quota' => 'User\'s quota', 'settings_quota_desc' => 'The maximum number of bytes a user may use on disk. Set this to 0 for unlimited disk space. This value can be overridden for each user in his profile.', +'settings_removeFromDropFolder' => 'Remove file from drop folder after successful upload', +'settings_removeFromDropFolder_desc' => 'Enable this, if a file taken from the drop folder shall be deleted after successful upload.', 'settings_restricted' => 'Restricted access', 'settings_restricted_desc' => 'Only allow users to log in if they have an entry in the local database (irrespective of successful authentication with LDAP)', 'settings_rootDir' => 'Root directory', diff --git a/languages/es_ES/lang.inc b/languages/es_ES/lang.inc index 85ab828bc..8a389e807 100644 --- a/languages/es_ES/lang.inc +++ b/languages/es_ES/lang.inc @@ -1159,6 +1159,8 @@ URL: [url]', 'settings_printDisclaimer_desc' => 'Si es Verdadero el mensaje de renuncia de los ficheros lang.inc se mostratá al final de la página', 'settings_quota' => 'Cuota de usuario', 'settings_quota_desc' => 'El número máximo de bytes que el usuario puede ocupar en disco. Asignar 0 para no limitar el espacio de disco. Este valor puede ser sobreescrito por cada uso en su perfil.', +'settings_removeFromDropFolder' => '', +'settings_removeFromDropFolder_desc' => '', 'settings_restricted' => 'Acceso restringido', 'settings_restricted_desc' => 'Solo permitir conectar a usuarios si tienen alguna entrada en la base de datos local (independientemente de la autenticación correcta con LDAP)', 'settings_rootDir' => 'Carpeta raíz', diff --git a/languages/fr_FR/lang.inc b/languages/fr_FR/lang.inc index a5a9c0f00..2bd724143 100644 --- a/languages/fr_FR/lang.inc +++ b/languages/fr_FR/lang.inc @@ -1135,6 +1135,8 @@ URL: [url]', 'settings_printDisclaimer_desc' => 'If true the disclaimer message the lang.inc files will be print on the bottom of the page', 'settings_quota' => 'Quota de l\'utilisateur', 'settings_quota_desc' => 'Le maximum de bytes qu\'un utilisateur peut utiliser sur le disque. Définir à 0 pour un espace illimité. Cette valeur peut être outrepasser pour chaque utilisation dans son profile.', +'settings_removeFromDropFolder' => '', +'settings_removeFromDropFolder_desc' => '', 'settings_restricted' => 'Accès restreint', 'settings_restricted_desc' => 'Autoriser les utilisateurs à se connecter seulement s\'ils ont une entrée dans la BD locale (independamment d\'une authentification réussie avec LDAP)', 'settings_rootDir' => 'Répertoire racine', diff --git a/languages/hr_HR/lang.inc b/languages/hr_HR/lang.inc index 15ec56d40..c0dcd7f9a 100644 --- a/languages/hr_HR/lang.inc +++ b/languages/hr_HR/lang.inc @@ -1180,6 +1180,8 @@ Internet poveznica: [url]', 'settings_printDisclaimer_desc' => 'Ako je omogućeno, poruka odricanja od odgovornosti će se ispisati na dnu svake stranice', 'settings_quota' => 'Korisnička kvota', 'settings_quota_desc' => 'Maksimalni broj bajtova na disku koji korisnik može koristiti. Postavite na 0 za neograničeni prostor na disku. Ova vrijednost može biti postavljena svakom korisniku u njegovom profilu.', +'settings_removeFromDropFolder' => '', +'settings_removeFromDropFolder_desc' => '', 'settings_restricted' => 'Ograničeni pristup', 'settings_restricted_desc' => 'Omogući prijavu korisnicima samo ako imaju pristup u lokalnu bazu podataka (bez obzira na uspješnu autentifikaciju s LDAP-om)', 'settings_rootDir' => 'Root mapa', diff --git a/languages/hu_HU/lang.inc b/languages/hu_HU/lang.inc index 6106ab820..c3a105f52 100644 --- a/languages/hu_HU/lang.inc +++ b/languages/hu_HU/lang.inc @@ -1158,6 +1158,8 @@ URL: [url]', 'settings_printDisclaimer_desc' => 'Ha igaz a nyilatkozat üzenet a lang.inc állományok lesznek kiíratva a lap alján', 'settings_quota' => 'Felhasználói kvóta', 'settings_quota_desc' => 'A felhasználó által a lemezen használható bájtok legnagyobb száma. Állítsa 0-ra a korlátlan lemezterülethez. Ez az érték felülírható valamennyi felhasználó saját profiljában.', +'settings_removeFromDropFolder' => '', +'settings_removeFromDropFolder_desc' => '', 'settings_restricted' => 'Korlátozott hozzáférés', 'settings_restricted_desc' => 'Kizárólag azok a felhasználók jelentkezhetnek be, akik a helyi adatbázisban vannak (függetlenül a sikeres LDAP azonosítástól)', 'settings_rootDir' => 'Gyökérkönyvtár', diff --git a/languages/it_IT/lang.inc b/languages/it_IT/lang.inc index e41f7271c..d77d0a918 100644 --- a/languages/it_IT/lang.inc +++ b/languages/it_IT/lang.inc @@ -1182,6 +1182,8 @@ URL: [url]', 'settings_printDisclaimer_desc' => 'Se abilitato il messaggio circa i termini e le condizioni d\'uso verrà mostrato nel pié di pagina.', 'settings_quota' => 'Quota utente', 'settings_quota_desc' => 'La quantità Max di spazio su disco che può essere occupata da ciascun utente. Impostare il valore 0 offre spazio illimitato.', +'settings_removeFromDropFolder' => '', +'settings_removeFromDropFolder_desc' => '', 'settings_restricted' => 'Accesso limitato', 'settings_restricted_desc' => 'Permette agli utenti di entrare nel sistema soltanto se hanno un record nel database locale (ignora l\'autenticazione positiva attraverso LDAP)', 'settings_rootDir' => 'Cartella principale', diff --git a/languages/ko_KR/lang.inc b/languages/ko_KR/lang.inc index be202de64..fbbb78c4f 100644 --- a/languages/ko_KR/lang.inc +++ b/languages/ko_KR/lang.inc @@ -1173,6 +1173,8 @@ URL : [url]', 'settings_printDisclaimer_desc' => '활성인 경우 메시지 내역이 모든 페이지의 하단에 출력됩니다', 'settings_quota' => '사용자의 할당량', 'settings_quota_desc' => '사용자가 디스크를 사용할 수 있습니다 최대 바이트 수. 무제한 디스크 공간 사용시 0으로 설정합니다. 각각 자신의 프로필에 사용을 위해이 값은 변경 할 수 있습니다.', +'settings_removeFromDropFolder' => '', +'settings_removeFromDropFolder_desc' => '', 'settings_restricted' => '제한된 액세스', 'settings_restricted_desc' => '로컬 데이터베이스에 항목이있는 경우만 사용자가 로그인 할 수 있습니다. (LDAP 인증에 관계없이 )', 'settings_rootDir' => '루트 디렉토리', diff --git a/languages/nl_NL/lang.inc b/languages/nl_NL/lang.inc index 4ce8ffa3e..f553a0b7f 100644 --- a/languages/nl_NL/lang.inc +++ b/languages/nl_NL/lang.inc @@ -1186,6 +1186,8 @@ URL: [url]', 'settings_printDisclaimer_desc' => 'Indien ingeschakeld zal het vrijwarings bericht in de lang.inc bestanden worden getoond onderop de pagina', 'settings_quota' => 'Gebruikersquotum', 'settings_quota_desc' => 'Het maximum aantal bytes een gebruiker op de schijf mag schrijven. Stel deze in op 0 voor een onbeperkte schijfruimte. Deze waarde kan worden overschreven voor elk gebruik in zijn profiel.', +'settings_removeFromDropFolder' => '', +'settings_removeFromDropFolder_desc' => '', 'settings_restricted' => 'Beperkte toegang', 'settings_restricted_desc' => 'Sta alleen gebruiker toe om in te loggen die in de database zijn opgenomen (ongeacht succesvolle authenticatie met LDAP)', 'settings_rootDir' => 'Basismap', diff --git a/languages/pl_PL/lang.inc b/languages/pl_PL/lang.inc index ebb5048de..7a46bbc55 100644 --- a/languages/pl_PL/lang.inc +++ b/languages/pl_PL/lang.inc @@ -1138,6 +1138,8 @@ URL: [url]', 'settings_printDisclaimer_desc' => 'Zaznaczenie tej opcji spowoduje, że na dole strony będzie wyświetlany komunikat zrzeczenia się zawarty w pliku lang.inc.', 'settings_quota' => 'Przydział dysku użytkownika', 'settings_quota_desc' => 'Maksymalna liczba bajtów jaką użytkownik może wykorzystać na dysku. Ustaw na 0 dla nieograniczonej przestrzeni dyskowej. Wartość ta może być zastąpiona dla każdego zastosowania w swoim profilu.', +'settings_removeFromDropFolder' => '', +'settings_removeFromDropFolder_desc' => '', 'settings_restricted' => 'Ograniczony dostęp', 'settings_restricted_desc' => 'Mogą zalogować się tylko ci użytkownicy, którzy mają swoje wpisy w lokalnej bazie danych (niezależnie od pomyślnego uwierzytelnienia w LDAP)', 'settings_rootDir' => 'Katalog główny', diff --git a/languages/pt_BR/lang.inc b/languages/pt_BR/lang.inc index a3fc5767d..5ac68dbb9 100644 --- a/languages/pt_BR/lang.inc +++ b/languages/pt_BR/lang.inc @@ -1156,6 +1156,8 @@ URL: [url]', 'settings_printDisclaimer_desc' => 'Se for verdade a mensagem de aviso de isenção os arquivos lang.inc será impresso na parte inferior da página', 'settings_quota' => 'Quota do Usuário', 'settings_quota_desc' => 'O número máximo de bytes que um utilizador pode usar no disco. Defina para 0 para o espaço em disco ilimitado. Este valor pode ser substituído para cada uso em seu perfil.', +'settings_removeFromDropFolder' => '', +'settings_removeFromDropFolder_desc' => '', 'settings_restricted' => 'acesso restrito', 'settings_restricted_desc' => 'Só permitir que os usuários façam login se eles têm uma entrada no banco de dados local (independentemente de autenticação bem-sucedida com LDAP)', 'settings_rootDir' => 'Diretório raiz', diff --git a/languages/ro_RO/lang.inc b/languages/ro_RO/lang.inc index 8d9c915c8..165a0e065 100644 --- a/languages/ro_RO/lang.inc +++ b/languages/ro_RO/lang.inc @@ -1181,6 +1181,8 @@ URL: [url]', 'settings_printDisclaimer_desc' => 'Dacă este setat, mesajul de Disclaimer din fișierele lang.inc va fi printat în partea de jos a paginii', 'settings_quota' => 'Spatiu alocat utilizator', 'settings_quota_desc' => 'Numărul maxim de bytes pe care un utilizator îi poate folosi pe disc. Setați această opțiune pe 0 pentru spatiu pe disc nelimitat. Această valoare poate fi suprascrisă în profilul fiecărui utilizăr.', +'settings_removeFromDropFolder' => '', +'settings_removeFromDropFolder_desc' => '', 'settings_restricted' => 'Acces restricționat', 'settings_restricted_desc' => 'Permite utilizatorilor să se autentifice doar dacă au o intrare în baza de date locală (indiferent de autentificarea cu succes folosind LDAP)', 'settings_rootDir' => 'Director rădăcină', diff --git a/languages/ru_RU/lang.inc b/languages/ru_RU/lang.inc index 9ab65dcb6..772003095 100644 --- a/languages/ru_RU/lang.inc +++ b/languages/ru_RU/lang.inc @@ -1188,6 +1188,8 @@ URL: [url]', 'settings_printDisclaimer_desc' => 'Если включено, то предупреждение из lang.inc будет выводится внизу каждой страницы.', 'settings_quota' => 'Квота пользователя', 'settings_quota_desc' => 'Максимально количество байт, которые пользователь может использовать на дисковом пространстве. Значение 0 снимает ограничение на используемое дисковое пространство. Это значение может быть указано отдельно для каждого пользователя в его профиле.', +'settings_removeFromDropFolder' => '', +'settings_removeFromDropFolder_desc' => '', 'settings_restricted' => 'Ограниченный доступ', 'settings_restricted_desc' => 'Разрешать вход пользователям, только если у них есть соответствующая учётная запись в БД (независимо от успешного входа через LDAP).', 'settings_rootDir' => 'Корневой каталог', diff --git a/languages/sk_SK/lang.inc b/languages/sk_SK/lang.inc index 5bc5df98d..c5fae7449 100644 --- a/languages/sk_SK/lang.inc +++ b/languages/sk_SK/lang.inc @@ -1013,6 +1013,8 @@ URL: [url]', 'settings_printDisclaimer_desc' => '', 'settings_quota' => '', 'settings_quota_desc' => '', +'settings_removeFromDropFolder' => '', +'settings_removeFromDropFolder_desc' => '', 'settings_restricted' => '', 'settings_restricted_desc' => '', 'settings_rootDir' => '', diff --git a/languages/sv_SE/lang.inc b/languages/sv_SE/lang.inc index 6ea04e272..7dd6dd4b1 100644 --- a/languages/sv_SE/lang.inc +++ b/languages/sv_SE/lang.inc @@ -1144,6 +1144,8 @@ URL: [url]', 'settings_printDisclaimer_desc' => 'Om denna inställning sätts till ja, används meddelande som finns i lang.inc-filen och skrivs ut på slutet av sidan', 'settings_quota' => 'Användarens kvot', 'settings_quota_desc' => 'Maximala storlek av minnet i bytes som en användare har tillgång till. Storlek 0 bytes betyder obegränsad minne. Detta värde kan sättas individuellt för varje användare i dess profil.', +'settings_removeFromDropFolder' => '', +'settings_removeFromDropFolder_desc' => '', 'settings_restricted' => 'Begränsad behörighet', 'settings_restricted_desc' => 'Tillåt användare att logga in bara om det finns en inloggning för användaren i den lokala databasen (irrespective of successful authentication with LDAP)', 'settings_rootDir' => 'Root-mapp', diff --git a/languages/tr_TR/lang.inc b/languages/tr_TR/lang.inc index dfbc7d431..cfcc6bb4f 100644 --- a/languages/tr_TR/lang.inc +++ b/languages/tr_TR/lang.inc @@ -1160,6 +1160,8 @@ URL: [url]', 'settings_printDisclaimer_desc' => 'Seçildiğinde sayfanın en altında lang.inc dosyasındaki gizlilik notu yazılacak', 'settings_quota' => 'Kullanıcı kotası', 'settings_quota_desc' => 'Kullanıcının yükleyebileceği maksimum dosya boyutu (byte cinsinden). Sınırsız kota için 0 girilir.', +'settings_removeFromDropFolder' => '', +'settings_removeFromDropFolder_desc' => '', 'settings_restricted' => 'Kısıtlı erişim', 'settings_restricted_desc' => '(LDAP kullanıcısı olarak giriş yapılmış olunsa da) Sadece yerel veritabanında kullanıcı hesabı olanların girişine izin verilir.', 'settings_rootDir' => 'Kök dizin', diff --git a/languages/uk_UA/lang.inc b/languages/uk_UA/lang.inc index bf2b3ae13..7ca16f376 100644 --- a/languages/uk_UA/lang.inc +++ b/languages/uk_UA/lang.inc @@ -1181,6 +1181,8 @@ URL: [url]', 'settings_printDisclaimer_desc' => 'Якщо увімкнено, то попередження з lang.inc буде виводитися внизу кожної сторінки.', 'settings_quota' => 'Квота користувача', 'settings_quota_desc' => 'Максимальна кількість байт, Які користувач може використовувати на дисковому просторі. Значення 0 знімає обмеження на дисковий простір. Це значення може бути вказано окремо для кожного користувача в його профілі.', +'settings_removeFromDropFolder' => '', +'settings_removeFromDropFolder_desc' => '', 'settings_restricted' => 'Обмежений доступ', 'settings_restricted_desc' => 'Дозволити вхід користувачам, тільки якщо в них є відповідний обліковий запис в БД (незалежно від успішного входу через LDAP).', 'settings_rootDir' => 'Кореневий каталог', diff --git a/languages/zh_CN/lang.inc b/languages/zh_CN/lang.inc index 2374fcf79..0710830ce 100644 --- a/languages/zh_CN/lang.inc +++ b/languages/zh_CN/lang.inc @@ -1015,6 +1015,8 @@ URL: [url]', 'settings_printDisclaimer_desc' => '如果开启,这个免责声明信息将在每个页面的底部显示', 'settings_quota' => '', 'settings_quota_desc' => '', +'settings_removeFromDropFolder' => '', +'settings_removeFromDropFolder_desc' => '', 'settings_restricted' => '', 'settings_restricted_desc' => '', 'settings_rootDir' => '', diff --git a/languages/zh_TW/lang.inc b/languages/zh_TW/lang.inc index 49031bad4..ae3b51289 100644 --- a/languages/zh_TW/lang.inc +++ b/languages/zh_TW/lang.inc @@ -1013,6 +1013,8 @@ URL: [url]', 'settings_printDisclaimer_desc' => '', 'settings_quota' => '', 'settings_quota_desc' => '', +'settings_removeFromDropFolder' => '', +'settings_removeFromDropFolder_desc' => '', 'settings_restricted' => '', 'settings_restricted_desc' => '', 'settings_rootDir' => '', diff --git a/op/op.AddDocument.php b/op/op.AddDocument.php index 0771abee3..f01652a95 100644 --- a/op/op.AddDocument.php +++ b/op/op.AddDocument.php @@ -426,6 +426,11 @@ for ($file_num=0;$file_num_removeFromDropFolder) { + if(file_exists($userfiletmp)) { + unlink($userfiletmp); + } + } } add_log_line("?name=".$name."&folderid=".$folderid); diff --git a/op/op.Settings.php b/op/op.Settings.php index f39679ef6..e152e0545 100644 --- a/op/op.Settings.php +++ b/op/op.Settings.php @@ -154,6 +154,7 @@ if ($action == "saveSettings") $settings->_enableVersionModification = getBoolValue("enableVersionModification"); $settings->_enableDuplicateDocNames = getBoolValue("enableDuplicateDocNames"); $settings->_overrideMimeType = getBoolValue("overrideMimeType"); + $settings->_removeFromDropFolder = getBoolValue("removeFromDropFolder"); // SETTINGS - ADVANCED - NOTIFICATION $settings->_enableOwnerNotification = getBoolValue("enableOwnerNotification"); diff --git a/views/bootstrap/class.Settings.php b/views/bootstrap/class.Settings.php index 2fe5a9ebf..2d15782b9 100644 --- a/views/bootstrap/class.Settings.php +++ b/views/bootstrap/class.Settings.php @@ -562,6 +562,10 @@ if(!is_writeable($settings->_configFilePath)) { : _overrideMimeType) echo "checked" ?> /> + "> + : + _removeFromDropFolder) echo "checked" ?> /> +