Merge branch 'seeddms-5.0.x' into develop

This commit is contained in:
Uwe Steinmann 2016-02-15 20:45:05 +01:00
commit bc608eff07
63 changed files with 687 additions and 101 deletions

View File

@ -2,6 +2,7 @@
Changes in version 5.0.1 Changes in version 5.0.1
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
- merged changes from 4.3.24 - merged changes from 4.3.24
- fixed sending test mail
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
Changes in version 5.0.0 Changes in version 5.0.0
@ -23,6 +24,7 @@
- further pages with content security policy turned on - further pages with content security policy turned on
- various translation updates - various translation updates
- check for document expiration when showing search result and folder content - check for document expiration when showing search result and folder content
- more rest api functions
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
Changes in version 4.3.23 Changes in version 4.3.23

View File

@ -64,6 +64,8 @@ Here is a detailed list of requirements:
6. The Zend Framework (version 1) (optional, only needed for fulltext search) 6. The Zend Framework (version 1) (optional, only needed for fulltext search)
7. The pear Log package 7. The pear Log package
8. The pear HTTP_WebDAV_Server package (optional, only need for webdav) 8. The pear HTTP_WebDAV_Server package (optional, only need for webdav)
9. SLIM RestApi
10. FeedWriter from https://github.com/mibe/FeedWriter
BEFORE YOU START BEFORE YOU START

View File

@ -186,7 +186,7 @@ class SeedDMS_Core_Group {
$queryStr = "INSERT INTO tblGroupMembers (groupID, userID, manager) VALUES (".$this->_id.", ".$user->getID(). ", " . ($asManager?"1":"0") ." )"; $queryStr = "INSERT INTO tblGroupMembers (groupID, userID, manager) VALUES (".$this->_id.", ".$user->getID(). ", " . ($asManager?"1":"0") ." )";
$res = $db->getResult($queryStr); $res = $db->getResult($queryStr);
if ($res) return false; if (!$res) return false;
unset($this->_users); unset($this->_users);
return true; return true;
@ -198,7 +198,7 @@ class SeedDMS_Core_Group {
$queryStr = "DELETE FROM tblGroupMembers WHERE groupID = ".$this->_id." AND userID = ".$user->getID(); $queryStr = "DELETE FROM tblGroupMembers WHERE groupID = ".$this->_id." AND userID = ".$user->getID();
$res = $db->getResult($queryStr); $res = $db->getResult($queryStr);
if ($res) return false; if (!$res) return false;
unset($this->_users); unset($this->_users);
return true; return true;
} /* }}} */ } /* }}} */

View File

@ -899,7 +899,7 @@ class SeedDMS_Core_User { /* {{{ */
function getDocumentsLocked() { /* {{{ */ function getDocumentsLocked() { /* {{{ */
$db = $this->_dms->getDB(); $db = $this->_dms->getDB();
$queryStr = "SELECT `tblDocuments`.* ". $queryStr = "SELECT `tblDocuments`.*, `tblDocumentLocks`.`userID` as `lockUser` ".
"FROM `tblDocumentLocks` LEFT JOIN `tblDocuments` ON `tblDocuments`.`id` = `tblDocumentLocks`.`document` ". "FROM `tblDocumentLocks` LEFT JOIN `tblDocuments` ON `tblDocuments`.`id` = `tblDocumentLocks`.`document` ".
"WHERE `tblDocumentLocks`.`userID` = '".$this->_id."' ". "WHERE `tblDocumentLocks`.`userID` = '".$this->_id."' ".
"ORDER BY `id` DESC"; "ORDER BY `id` DESC";

View File

@ -967,6 +967,7 @@ by a group or user right
SeedDMS_Core_DMS::getNotificationsByUser() are deprecated SeedDMS_Core_DMS::getNotificationsByUser() are deprecated
- SeedDMS_Core_DocumentCategory::getDocumentsByCategory() now returns the documents - SeedDMS_Core_DocumentCategory::getDocumentsByCategory() now returns the documents
- add SeedDMS_Core_Group::getWorkflowStatus() - add SeedDMS_Core_Group::getWorkflowStatus()
- SeedDMS_Core_User::getDocumentsLocked() sets locking user propperly
</notes> </notes>
</release> </release>
</changelog> </changelog>

View File

@ -44,7 +44,13 @@ class SeedDMS_Preview_Previewer {
*/ */
protected $converters; protected $converters;
function __construct($previewDir, $width=40) { /**
* @var integer $timeout maximum time for execution of external commands
* @access protected
*/
protected $timeout;
function __construct($previewDir, $width=40, $timeout=5) {
if(!is_dir($previewDir)) { if(!is_dir($previewDir)) {
if (!SeedDMS_Core_File::makeDir($previewDir)) { if (!SeedDMS_Core_File::makeDir($previewDir)) {
$this->previewDir = ''; $this->previewDir = '';
@ -66,9 +72,10 @@ class SeedDMS_Preview_Previewer {
'application/postscript' => "convert -density 100 -resize %wx '%f[0]' '%o'", 'application/postscript' => "convert -density 100 -resize %wx '%f[0]' '%o'",
'application/x-compressed-tar' => "tar tzvf '%f' | convert -density 100 -resize %wx text:-[0] '%o", 'application/x-compressed-tar' => "tar tzvf '%f' | convert -density 100 -resize %wx text:-[0] '%o",
); );
$this->timeout = intval($timeout);
} }
static function execWithTimeout($cmd, $timeout=2) { /* {{{ */ static function execWithTimeout($cmd, $timeout=5) { /* {{{ */
$descriptorspec = array( $descriptorspec = array(
0 => array("pipe", "r"), 0 => array("pipe", "r"),
1 => array("pipe", "w"), 1 => array("pipe", "w"),
@ -188,7 +195,7 @@ class SeedDMS_Preview_Previewer {
if($cmd) { if($cmd) {
//exec($cmd); //exec($cmd);
try { try {
self::execWithTimeout($cmd); self::execWithTimeout($cmd, $this->timeout);
} catch(Exception $e) { } catch(Exception $e) {
} }
} }
@ -254,7 +261,7 @@ class SeedDMS_Preview_Previewer {
if($cmd) { if($cmd) {
//exec($cmd); //exec($cmd);
try { try {
self::execWithTimeout($cmd); self::execWithTimeout($cmd, $this->timeout);
} catch(Exception $e) { } catch(Exception $e) {
} }
} }
@ -320,6 +327,21 @@ class SeedDMS_Preview_Previewer {
} }
} /* }}} */ } /* }}} */
public function getFilesize($object, $width=0) { /* {{{ */
if($width == 0)
$width = $this->width;
else
$width = intval($width);
$target = $this->getFileName($object, $width);
if($target && file_exists($target.'.png')) {
return(filesize($target.'.png'));
} else {
return false;
}
} /* }}} */
public function deletePreview($document, $object, $width=0) { /* {{{ */ public function deletePreview($document, $object, $width=0) { /* {{{ */
if($width == 0) if($width == 0)
$width = $this->width; $width = $this->width;

View File

@ -11,11 +11,11 @@
<email>uwe@steinmann.cx</email> <email>uwe@steinmann.cx</email>
<active>yes</active> <active>yes</active>
</lead> </lead>
<date>2015-08-08</date> <date>2016-02-11</date>
<time>09:36:57</time> <time>09:36:57</time>
<version> <version>
<release>1.1.4</release> <release>1.1.5</release>
<api>1.1.4</api> <api>1.1.5</api>
</version> </version>
<stability> <stability>
<release>stable</release> <release>stable</release>
@ -25,6 +25,8 @@
<notes> <notes>
- Converters to create preview images are no longer fixed. Those which has been hardcoded before remain the predefined converters, but they can also be changed. - Converters to create preview images are no longer fixed. Those which has been hardcoded before remain the predefined converters, but they can also be changed.
- command for creating the preview will be called with a given timeout - command for creating the preview will be called with a given timeout
add method getFilesize()
timeout for external commands can be passed to contructor of SeedDMS_Preview_Previewer
</notes> </notes>
<contents> <contents>
<dir baseinstalldir="SeedDMS" name="/"> <dir baseinstalldir="SeedDMS" name="/">
@ -132,5 +134,21 @@ create fixed width image with proportional height
preview images will also be recreated if the object this image belongs is of newer date than the image itself. This happens if versions are being deleted and than a new version is uploaded. Because the new version will get the version number of the old version, it will also take over the old preview image.Comparing the creation date of the image with the object detects this case. preview images will also be recreated if the object this image belongs is of newer date than the image itself. This happens if versions are being deleted and than a new version is uploaded. Because the new version will get the version number of the old version, it will also take over the old preview image.Comparing the creation date of the image with the object detects this case.
</notes> </notes>
</release> </release>
<release>
<date>2015-08-08</date>
<time>09:36:57</time>
<version>
<release>1.1.4</release>
<api>1.1.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="http://opensource.org/licenses/gpl-license">GPL License</license>
<notes>
command for creating the preview will be called with a given timeout
</notes>
</release>
</changelog> </changelog>
</package> </package>

View File

@ -31,31 +31,35 @@ class SeedDMS_Controller_Download extends SeedDMS_Controller_Common {
$content = $this->params['content']; $content = $this->params['content'];
if(!$this->callHook('version')) { if(!$this->callHook('version')) {
header("Content-Transfer-Encoding: binary"); if(file_exists($dms->contentDir . $content->getPath()) {
header("Content-Length: " . filesize($dms->contentDir . $content->getPath() )); header("Content-Transfer-Encoding: binary");
$efilename = rawurlencode($content->getOriginalFileName()); header("Content-Length: " . filesize($dms->contentDir . $content->getPath() ));
header("Content-Disposition: attachment; filename=\"" . $efilename . "\"; filename*=UTF-8''".$efilename); $efilename = rawurlencode($content->getOriginalFileName());
header("Content-Type: " . $content->getMimeType()); header("Content-Disposition: attachment; filename=\"" . $efilename . "\"; filename*=UTF-8''".$efilename);
header("Cache-Control: must-revalidate"); header("Content-Type: " . $content->getMimeType());
header("Cache-Control: must-revalidate");
readfile($dms->contentDir . $content->getPath()); readfile($dms->contentDir . $content->getPath());
}
} }
break; break;
case "file": case "file":
$file = $this->params['file']; $file = $this->params['file'];
if(!$this->callHook('file')) { if(!$this->callHook('file')) {
header("Content-Type: application/force-download; name=\"" . $file->getOriginalFileName() . "\""); if(file_exists($dms->contentDir . $file->getPath()) {
header("Content-Transfer-Encoding: binary"); header("Content-Type: application/force-download; name=\"" . $file->getOriginalFileName() . "\"");
header("Content-Length: " . filesize($dms->contentDir . $file->getPath() )); header("Content-Transfer-Encoding: binary");
header("Content-Disposition: attachment; filename=\"" . $file->getOriginalFileName() . "\""); header("Content-Length: " . filesize($dms->contentDir . $file->getPath() ));
//header("Expires: 0"); header("Content-Disposition: attachment; filename=\"" . $file->getOriginalFileName() . "\"");
header("Content-Type: " . $file->getMimeType()); //header("Expires: 0");
//header("Cache-Control: no-cache, must-revalidate"); header("Content-Type: " . $file->getMimeType());
header("Cache-Control: must-revalidate"); //header("Cache-Control: no-cache, must-revalidate");
//header("Pragma: no-cache"); header("Cache-Control: must-revalidate");
//header("Pragma: no-cache");
readfile($dms->contentDir . $file->getPath()); readfile($dms->contentDir . $file->getPath());
}
} }
break; break;
} }

View File

@ -584,6 +584,7 @@ URL: [url]',
'minutes' => 'دقائق', 'minutes' => 'دقائق',
'misc' => 'متنوعات', 'misc' => 'متنوعات',
'missing_checksum' => 'فحص اخطاء مفقود', 'missing_checksum' => 'فحص اخطاء مفقود',
'missing_file' => '',
'missing_filesize' => 'حجم ملف مفقود', 'missing_filesize' => 'حجم ملف مفقود',
'missing_transition_user_group' => 'مستخدم/مجموعة مفقودة للتحول', 'missing_transition_user_group' => 'مستخدم/مجموعة مفقودة للتحول',
'monday' => 'الاثنين', 'monday' => 'الاثنين',
@ -890,6 +891,7 @@ URL: [url]',
'select_one' => 'اختر واحد', 'select_one' => 'اختر واحد',
'select_users' => 'اضغط لاختيار المستخدم', 'select_users' => 'اضغط لاختيار المستخدم',
'select_workflow' => 'اختر مسار العمل', 'select_workflow' => 'اختر مسار العمل',
'send_test_mail' => '',
'september' => 'سبتمبر', 'september' => 'سبتمبر',
'sequence' => 'تتابع', 'sequence' => 'تتابع',
'seq_after' => 'بعد "[prevname]"', 'seq_after' => 'بعد "[prevname]"',

View File

@ -515,6 +515,7 @@ $text = array(
'minutes' => 'минути', 'minutes' => 'минути',
'misc' => 'Разни', 'misc' => 'Разни',
'missing_checksum' => 'липсва контролна сума', 'missing_checksum' => 'липсва контролна сума',
'missing_file' => '',
'missing_filesize' => 'липсва размер на файла', 'missing_filesize' => 'липсва размер на файла',
'missing_transition_user_group' => 'липсва потребител или група за преход', 'missing_transition_user_group' => 'липсва потребител или група за преход',
'monday' => 'понеделник', 'monday' => 'понеделник',
@ -755,6 +756,7 @@ $text = array(
'select_one' => 'Избери един', 'select_one' => 'Избери един',
'select_users' => 'Кликни да избереш потребители', 'select_users' => 'Кликни да избереш потребители',
'select_workflow' => 'Избери процес', 'select_workflow' => 'Избери процес',
'send_test_mail' => '',
'september' => 'септември', 'september' => 'септември',
'sequence' => 'Последователност', 'sequence' => 'Последователност',
'seq_after' => 'След "[prevname]"', 'seq_after' => 'След "[prevname]"',

View File

@ -520,6 +520,7 @@ URL: [url]',
'minutes' => '', 'minutes' => '',
'misc' => '', 'misc' => '',
'missing_checksum' => '', 'missing_checksum' => '',
'missing_file' => '',
'missing_filesize' => '', 'missing_filesize' => '',
'missing_transition_user_group' => '', 'missing_transition_user_group' => '',
'monday' => 'Dilluns', 'monday' => 'Dilluns',
@ -760,6 +761,7 @@ URL: [url]',
'select_one' => 'Seleccionar un', 'select_one' => 'Seleccionar un',
'select_users' => '', 'select_users' => '',
'select_workflow' => '', 'select_workflow' => '',
'send_test_mail' => '',
'september' => 'Setembre', 'september' => 'Setembre',
'sequence' => 'Seqüència', 'sequence' => 'Seqüència',
'seq_after' => 'Després "[prevname]"', 'seq_after' => 'Després "[prevname]"',

View File

@ -591,6 +591,7 @@ URL: [url]',
'minutes' => 'minuty', 'minutes' => 'minuty',
'misc' => 'Různé', 'misc' => 'Různé',
'missing_checksum' => 'Chybějící kontrolní součet', 'missing_checksum' => 'Chybějící kontrolní součet',
'missing_file' => '',
'missing_filesize' => 'Chybějící velikost souboru', 'missing_filesize' => 'Chybějící velikost souboru',
'missing_transition_user_group' => 'Chybějící uživatel/skupina pro změnu', 'missing_transition_user_group' => 'Chybějící uživatel/skupina pro změnu',
'monday' => 'Pondělí', 'monday' => 'Pondělí',
@ -899,6 +900,7 @@ URL: [url]',
'select_one' => 'Vyberte jeden', 'select_one' => 'Vyberte jeden',
'select_users' => 'Kliknutím vyberte uživatele', 'select_users' => 'Kliknutím vyberte uživatele',
'select_workflow' => 'Vyberte postup práce', 'select_workflow' => 'Vyberte postup práce',
'send_test_mail' => '',
'september' => 'Září', 'september' => 'Září',
'sequence' => 'Posloupnost', 'sequence' => 'Posloupnost',
'seq_after' => 'Po "[prevname]"', 'seq_after' => 'Po "[prevname]"',

View File

@ -19,7 +19,7 @@
// along with this program; if not, write to the Free Software // along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
// //
// Translators: Admin (2170), dgrutsch (21) // Translators: Admin (2172), dgrutsch (21)
$text = array( $text = array(
'accept' => 'Übernehmen', 'accept' => 'Übernehmen',
@ -596,6 +596,7 @@ URL: [url]',
'minutes' => 'Minuten', 'minutes' => 'Minuten',
'misc' => 'Sonstiges', 'misc' => 'Sonstiges',
'missing_checksum' => 'Fehlende Check-Summe', 'missing_checksum' => 'Fehlende Check-Summe',
'missing_file' => 'Datei fehlt',
'missing_filesize' => 'Fehlende Dateigröße', 'missing_filesize' => 'Fehlende Dateigröße',
'missing_transition_user_group' => 'Fehlende/r Benutzer/Gruppe für Transition', 'missing_transition_user_group' => 'Fehlende/r Benutzer/Gruppe für Transition',
'monday' => 'Montag', 'monday' => 'Montag',
@ -936,6 +937,7 @@ URL: [url]',
'select_one' => 'Bitte wählen', 'select_one' => 'Bitte wählen',
'select_users' => 'Klicken zur Auswahl eines Benutzers', 'select_users' => 'Klicken zur Auswahl eines Benutzers',
'select_workflow' => 'Workflow auswählen', 'select_workflow' => 'Workflow auswählen',
'send_test_mail' => 'Sende Test-Email',
'september' => 'September', 'september' => 'September',
'sequence' => 'Reihenfolge', 'sequence' => 'Reihenfolge',
'seq_after' => 'Nach "[prevname]"', 'seq_after' => 'Nach "[prevname]"',

View File

@ -19,7 +19,7 @@
// along with this program; if not, write to the Free Software // along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
// //
// Translators: Admin (1305), dgrutsch (7), netixw (14) // Translators: Admin (1307), dgrutsch (7), netixw (14)
$text = array( $text = array(
'accept' => 'Accept', 'accept' => 'Accept',
@ -596,6 +596,7 @@ URL: [url]',
'minutes' => 'minutes', 'minutes' => 'minutes',
'misc' => 'Misc', 'misc' => 'Misc',
'missing_checksum' => 'Missing checksum', 'missing_checksum' => 'Missing checksum',
'missing_file' => 'Missing file',
'missing_filesize' => 'Missing filesize', 'missing_filesize' => 'Missing filesize',
'missing_transition_user_group' => 'Missing user/group for transition', 'missing_transition_user_group' => 'Missing user/group for transition',
'monday' => 'Monday', 'monday' => 'Monday',
@ -936,6 +937,7 @@ URL: [url]',
'select_one' => 'Select one', 'select_one' => 'Select one',
'select_users' => 'Click to select users', 'select_users' => 'Click to select users',
'select_workflow' => 'Select workflow', 'select_workflow' => 'Select workflow',
'send_test_mail' => 'Send test mail',
'september' => 'September', 'september' => 'September',
'sequence' => 'Sequence', 'sequence' => 'Sequence',
'seq_after' => 'After "[prevname]"', 'seq_after' => 'After "[prevname]"',

View File

@ -591,6 +591,7 @@ URL: [url]',
'minutes' => 'minutos', 'minutes' => 'minutos',
'misc' => 'Misc', 'misc' => 'Misc',
'missing_checksum' => 'Falta checksum', 'missing_checksum' => 'Falta checksum',
'missing_file' => '',
'missing_filesize' => 'Falta tamaño fichero', 'missing_filesize' => 'Falta tamaño fichero',
'missing_transition_user_group' => 'Falta usuario/grupo para transición', 'missing_transition_user_group' => 'Falta usuario/grupo para transición',
'monday' => 'Lunes', 'monday' => 'Lunes',
@ -905,6 +906,7 @@ URL: [url]',
'select_one' => 'Seleccionar uno', 'select_one' => 'Seleccionar uno',
'select_users' => 'Haga Click para seleccionar usuarios', 'select_users' => 'Haga Click para seleccionar usuarios',
'select_workflow' => 'Selecionar Flujo de Trabajo', 'select_workflow' => 'Selecionar Flujo de Trabajo',
'send_test_mail' => '',
'september' => 'Septiembre', 'september' => 'Septiembre',
'sequence' => 'Secuencia', 'sequence' => 'Secuencia',
'seq_after' => 'Después "[prevname]"', 'seq_after' => 'Después "[prevname]"',

View File

@ -19,7 +19,7 @@
// along with this program; if not, write to the Free Software // along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
// //
// Translators: Admin (1009), jeromerobert (50), lonnnew (9) // Translators: Admin (1011), jeromerobert (50), lonnnew (9)
$text = array( $text = array(
'accept' => 'Accepter', 'accept' => 'Accepter',
@ -591,6 +591,7 @@ URL: [url]',
'minutes' => 'minutes', 'minutes' => 'minutes',
'misc' => 'Divers', 'misc' => 'Divers',
'missing_checksum' => 'Checksum manquante', 'missing_checksum' => 'Checksum manquante',
'missing_file' => '',
'missing_filesize' => 'Taille de fichier manquante', 'missing_filesize' => 'Taille de fichier manquante',
'missing_transition_user_group' => 'Utilisateur/groupe manquant pour transition', 'missing_transition_user_group' => 'Utilisateur/groupe manquant pour transition',
'monday' => 'Lundi', 'monday' => 'Lundi',
@ -881,6 +882,7 @@ URL: [url]',
'select_one' => 'Selectionner', 'select_one' => 'Selectionner',
'select_users' => 'Cliquer pour choisir un utilisateur', 'select_users' => 'Cliquer pour choisir un utilisateur',
'select_workflow' => 'Choisir un workflow', 'select_workflow' => 'Choisir un workflow',
'send_test_mail' => '',
'september' => 'Septembre', 'september' => 'Septembre',
'sequence' => 'Position dans le répertoire', 'sequence' => 'Position dans le répertoire',
'seq_after' => 'Après "[prevname]"', 'seq_after' => 'Après "[prevname]"',
@ -936,7 +938,7 @@ URL: [url]',
'settings_dbVersion' => 'Schéma de base de données trop ancien', 'settings_dbVersion' => 'Schéma de base de données trop ancien',
'settings_defaultSearchMethod' => '', 'settings_defaultSearchMethod' => '',
'settings_defaultSearchMethod_desc' => '', 'settings_defaultSearchMethod_desc' => '',
'settings_defaultSearchMethod_valdatabase' => '', 'settings_defaultSearchMethod_valdatabase' => 'base de données',
'settings_defaultSearchMethod_valfulltext' => '', 'settings_defaultSearchMethod_valfulltext' => '',
'settings_delete_install_folder' => 'Pour utiliser SeedDMS, vous devez supprimer le fichier ENABLE_INSTALL_TOOL dans le répertoire de configuration', 'settings_delete_install_folder' => 'Pour utiliser SeedDMS, vous devez supprimer le fichier ENABLE_INSTALL_TOOL dans le répertoire de configuration',
'settings_disableSelfEdit' => 'Désactiver auto modification', 'settings_disableSelfEdit' => 'Désactiver auto modification',
@ -970,7 +972,7 @@ URL: [url]',
'settings_enableGuestAutoLogin_desc' => '', 'settings_enableGuestAutoLogin_desc' => '',
'settings_enableGuestLogin' => 'Activer la connexion Invité', 'settings_enableGuestLogin' => 'Activer la connexion Invité',
'settings_enableGuestLogin_desc' => 'Si vous voulez vous connecter en tant qu\'invité, cochez cette option. Remarque: l\'utilisateur invité ne doit être utilisé que dans un environnement de confiance', 'settings_enableGuestLogin_desc' => 'Si vous voulez vous connecter en tant qu\'invité, cochez cette option. Remarque: l\'utilisateur invité ne doit être utilisé que dans un environnement de confiance',
'settings_enableHelp' => '', 'settings_enableHelp' => 'Activer l\'aide',
'settings_enableHelp_desc' => '', 'settings_enableHelp_desc' => '',
'settings_enableLanguageSelector' => 'Activer la sélection de langue', 'settings_enableLanguageSelector' => 'Activer la sélection de langue',
'settings_enableLanguageSelector_desc' => 'Montrer le sélecteur de langue d\'interface après connexion de l\'utilisateur.', 'settings_enableLanguageSelector_desc' => 'Montrer le sélecteur de langue d\'interface après connexion de l\'utilisateur.',

View File

@ -596,6 +596,7 @@ Internet poveznica: [url]',
'minutes' => 'minute', 'minutes' => 'minute',
'misc' => 'Razno', 'misc' => 'Razno',
'missing_checksum' => 'Nedostaje kontrolna suma', 'missing_checksum' => 'Nedostaje kontrolna suma',
'missing_file' => '',
'missing_filesize' => 'Nedostaje veličina datoteke', 'missing_filesize' => 'Nedostaje veličina datoteke',
'missing_transition_user_group' => 'Nedostaje korisnik/grupa za promjenu', 'missing_transition_user_group' => 'Nedostaje korisnik/grupa za promjenu',
'monday' => 'Ponedjeljak', 'monday' => 'Ponedjeljak',
@ -926,6 +927,7 @@ Internet poveznica: [url]',
'select_one' => 'Odaberite jednog', 'select_one' => 'Odaberite jednog',
'select_users' => 'Kliknite za odabir korisnika', 'select_users' => 'Kliknite za odabir korisnika',
'select_workflow' => 'Odaberite tok rada', 'select_workflow' => 'Odaberite tok rada',
'send_test_mail' => '',
'september' => 'Rujan', 'september' => 'Rujan',
'sequence' => 'Redoslijed', 'sequence' => 'Redoslijed',
'seq_after' => 'Nakon "[prevname]"', 'seq_after' => 'Nakon "[prevname]"',

View File

@ -591,6 +591,7 @@ URL: [url]',
'minutes' => 'perc', 'minutes' => 'perc',
'misc' => 'Vegyes', 'misc' => 'Vegyes',
'missing_checksum' => 'Hiányzó ellenőrzőösszeg', 'missing_checksum' => 'Hiányzó ellenőrzőösszeg',
'missing_file' => '',
'missing_filesize' => 'Hiányzó állomány méret', 'missing_filesize' => 'Hiányzó állomány méret',
'missing_transition_user_group' => 'Hiányzó felhasználó/csoport az átvezetéshez', 'missing_transition_user_group' => 'Hiányzó felhasználó/csoport az átvezetéshez',
'monday' => 'Hétfő', 'monday' => 'Hétfő',
@ -904,6 +905,7 @@ URL: [url]',
'select_one' => 'Vßlasszon egyet', 'select_one' => 'Vßlasszon egyet',
'select_users' => 'Kattintson a felhasználó kiválasztásához', 'select_users' => 'Kattintson a felhasználó kiválasztásához',
'select_workflow' => 'Munkafolyamat választás', 'select_workflow' => 'Munkafolyamat választás',
'send_test_mail' => '',
'september' => 'September', 'september' => 'September',
'sequence' => 'Sorrend', 'sequence' => 'Sorrend',
'seq_after' => '"[prevname]" utßn', 'seq_after' => '"[prevname]" utßn',

View File

@ -597,6 +597,7 @@ URL: [url]',
'minutes' => 'minuti', 'minutes' => 'minuti',
'misc' => 'Varie', 'misc' => 'Varie',
'missing_checksum' => 'Checksum mancante', 'missing_checksum' => 'Checksum mancante',
'missing_file' => '',
'missing_filesize' => 'Dimensione mancante', 'missing_filesize' => 'Dimensione mancante',
'missing_transition_user_group' => 'Utente/Gruppo per la transizione mancanti', 'missing_transition_user_group' => 'Utente/Gruppo per la transizione mancanti',
'monday' => 'Lunedì', 'monday' => 'Lunedì',
@ -928,6 +929,7 @@ URL: [url]',
'select_one' => 'Seleziona uno', 'select_one' => 'Seleziona uno',
'select_users' => 'Clicca per selezionare gli utenti', 'select_users' => 'Clicca per selezionare gli utenti',
'select_workflow' => 'Seleziona il flusso di lavoro', 'select_workflow' => 'Seleziona il flusso di lavoro',
'send_test_mail' => '',
'september' => 'Settembre', 'september' => 'Settembre',
'sequence' => 'Posizione', 'sequence' => 'Posizione',
'seq_after' => 'Dopo "[prevname]"', 'seq_after' => 'Dopo "[prevname]"',

View File

@ -596,6 +596,7 @@ URL: [url]',
'minutes' => '분', 'minutes' => '분',
'misc' => '기타', 'misc' => '기타',
'missing_checksum' => '검사 누락', 'missing_checksum' => '검사 누락',
'missing_file' => '',
'missing_filesize' => '누락 된 파일 크기', 'missing_filesize' => '누락 된 파일 크기',
'missing_transition_user_group' => '변화에 대한 사용자 / 그룹을 누락', 'missing_transition_user_group' => '변화에 대한 사용자 / 그룹을 누락',
'monday' => '월요일', 'monday' => '월요일',
@ -919,6 +920,7 @@ URL : [url]',
'select_one' => '선택', 'select_one' => '선택',
'select_users' => '사용자를 선택합니다', 'select_users' => '사용자를 선택합니다',
'select_workflow' => '선택 워크플로우', 'select_workflow' => '선택 워크플로우',
'send_test_mail' => '',
'september' => '9월', 'september' => '9월',
'sequence' => '순서', 'sequence' => '순서',
'seq_after' => '"[prevname] "후', 'seq_after' => '"[prevname] "후',

View File

@ -589,6 +589,7 @@ URL: [url]',
'minutes' => 'Minuten', 'minutes' => 'Minuten',
'misc' => 'Diversen', 'misc' => 'Diversen',
'missing_checksum' => 'Mis controlesom', 'missing_checksum' => 'Mis controlesom',
'missing_file' => '',
'missing_filesize' => 'ontbrekende bestandsgrootte', 'missing_filesize' => 'ontbrekende bestandsgrootte',
'missing_transition_user_group' => 'Gebruiker / groep ontbreekt voor de overdracht', 'missing_transition_user_group' => 'Gebruiker / groep ontbreekt voor de overdracht',
'monday' => 'Maandag', 'monday' => 'Maandag',
@ -901,6 +902,7 @@ URL: [url]',
'select_one' => 'Selecteer een', 'select_one' => 'Selecteer een',
'select_users' => 'Klik om gebruikers te selecteren', 'select_users' => 'Klik om gebruikers te selecteren',
'select_workflow' => 'Selecteer workflow', 'select_workflow' => 'Selecteer workflow',
'send_test_mail' => '',
'september' => 'september', 'september' => 'september',
'sequence' => 'Volgorde', 'sequence' => 'Volgorde',
'seq_after' => 'Na "[prevname]"', 'seq_after' => 'Na "[prevname]"',

View File

@ -584,6 +584,7 @@ URL: [url]',
'minutes' => 'minut', 'minutes' => 'minut',
'misc' => 'Różne', 'misc' => 'Różne',
'missing_checksum' => 'Brak sumy kontrolnej', 'missing_checksum' => 'Brak sumy kontrolnej',
'missing_file' => '',
'missing_filesize' => 'Brakujący rozmiar pliku', 'missing_filesize' => 'Brakujący rozmiar pliku',
'missing_transition_user_group' => 'Brak użytkownika / grupy dla przejścia', 'missing_transition_user_group' => 'Brak użytkownika / grupy dla przejścia',
'monday' => 'Poniedziałek', 'monday' => 'Poniedziałek',
@ -884,6 +885,7 @@ URL: [url]',
'select_one' => 'Wybierz', 'select_one' => 'Wybierz',
'select_users' => 'Kliknij by wybrać użytkowników', 'select_users' => 'Kliknij by wybrać użytkowników',
'select_workflow' => 'Wybierz proces', 'select_workflow' => 'Wybierz proces',
'send_test_mail' => '',
'september' => 'Wrzesień', 'september' => 'Wrzesień',
'sequence' => 'Kolejność', 'sequence' => 'Kolejność',
'seq_after' => 'Za "[prevname]"', 'seq_after' => 'Za "[prevname]"',

View File

@ -590,6 +590,7 @@ URL: [url]',
'minutes' => 'minutos', 'minutes' => 'minutos',
'misc' => 'Miscelânia', 'misc' => 'Miscelânia',
'missing_checksum' => 'Falta de verificação', 'missing_checksum' => 'Falta de verificação',
'missing_file' => '',
'missing_filesize' => 'Falta tamanho do arquivo', 'missing_filesize' => 'Falta tamanho do arquivo',
'missing_transition_user_group' => 'Falta usuário/grupo para transição', 'missing_transition_user_group' => 'Falta usuário/grupo para transição',
'monday' => 'Monday', 'monday' => 'Monday',
@ -902,6 +903,7 @@ URL: [url]',
'select_one' => 'Selecione um', 'select_one' => 'Selecione um',
'select_users' => 'Clique para selecionar os usuários', 'select_users' => 'Clique para selecionar os usuários',
'select_workflow' => 'Selecione o fluxo de trabalho', 'select_workflow' => 'Selecione o fluxo de trabalho',
'send_test_mail' => '',
'september' => 'September', 'september' => 'September',
'sequence' => 'Sequência', 'sequence' => 'Sequência',
'seq_after' => 'Depois "[prevname]"', 'seq_after' => 'Depois "[prevname]"',

View File

@ -596,6 +596,7 @@ URL: [url]',
'minutes' => 'minute', 'minutes' => 'minute',
'misc' => 'Diverse', 'misc' => 'Diverse',
'missing_checksum' => 'Lipsește suma de control(checksum)', 'missing_checksum' => 'Lipsește suma de control(checksum)',
'missing_file' => '',
'missing_filesize' => 'Lipsește dimensiunea fișierului', 'missing_filesize' => 'Lipsește dimensiunea fișierului',
'missing_transition_user_group' => 'Lipsește utilizatorul/grupul pentru tranziție', 'missing_transition_user_group' => 'Lipsește utilizatorul/grupul pentru tranziție',
'monday' => 'Luni', 'monday' => 'Luni',
@ -927,6 +928,7 @@ URL: [url]',
'select_one' => 'Selectați unul', 'select_one' => 'Selectați unul',
'select_users' => 'Click pentru a selecta utilizatori', 'select_users' => 'Click pentru a selecta utilizatori',
'select_workflow' => 'Selectați workflow', 'select_workflow' => 'Selectați workflow',
'send_test_mail' => '',
'september' => 'Septembrie', 'september' => 'Septembrie',
'sequence' => 'Poziție', 'sequence' => 'Poziție',
'seq_after' => 'După "[prevname]"', 'seq_after' => 'După "[prevname]"',

View File

@ -584,6 +584,7 @@ URL: [url]',
'minutes' => 'минуты', 'minutes' => 'минуты',
'misc' => 'Прочее', 'misc' => 'Прочее',
'missing_checksum' => 'Отсутствует контрольная сумма', 'missing_checksum' => 'Отсутствует контрольная сумма',
'missing_file' => '',
'missing_filesize' => 'Отсутствует размер файла', 'missing_filesize' => 'Отсутствует размер файла',
'missing_transition_user_group' => 'Отсутствует пользователь/группа для изменения.', 'missing_transition_user_group' => 'Отсутствует пользователь/группа для изменения.',
'monday' => 'Понедельник', 'monday' => 'Понедельник',
@ -895,6 +896,7 @@ URL: [url]',
'select_one' => 'Выберите', 'select_one' => 'Выберите',
'select_users' => 'Выберите пользователей', 'select_users' => 'Выберите пользователей',
'select_workflow' => 'Выберите процесс', 'select_workflow' => 'Выберите процесс',
'send_test_mail' => '',
'september' => 'Сентябрь', 'september' => 'Сентябрь',
'sequence' => 'Позиция', 'sequence' => 'Позиция',
'seq_after' => 'После «[prevname]»', 'seq_after' => 'После «[prevname]»',

View File

@ -519,6 +519,7 @@ URL: [url]',
'minutes' => '', 'minutes' => '',
'misc' => 'Rôzne', 'misc' => 'Rôzne',
'missing_checksum' => '', 'missing_checksum' => '',
'missing_file' => '',
'missing_filesize' => '', 'missing_filesize' => '',
'missing_transition_user_group' => '', 'missing_transition_user_group' => '',
'monday' => 'Pondelok', 'monday' => 'Pondelok',
@ -759,6 +760,7 @@ URL: [url]',
'select_one' => 'Vyberte jeden', 'select_one' => 'Vyberte jeden',
'select_users' => '', 'select_users' => '',
'select_workflow' => '', 'select_workflow' => '',
'send_test_mail' => '',
'september' => 'September', 'september' => 'September',
'sequence' => 'Postupnosť', 'sequence' => 'Postupnosť',
'seq_after' => 'Po "[prevname]"', 'seq_after' => 'Po "[prevname]"',

View File

@ -584,6 +584,7 @@ URL: [url]',
'minutes' => 'minuter', 'minutes' => 'minuter',
'misc' => 'Diverse', 'misc' => 'Diverse',
'missing_checksum' => 'Checksumma saknas', 'missing_checksum' => 'Checksumma saknas',
'missing_file' => '',
'missing_filesize' => 'Filstorlek saknas', 'missing_filesize' => 'Filstorlek saknas',
'missing_transition_user_group' => 'Användare/grupp saknas för övergång', 'missing_transition_user_group' => 'Användare/grupp saknas för övergång',
'monday' => 'måndag', 'monday' => 'måndag',
@ -890,6 +891,7 @@ URL: [url]',
'select_one' => 'Välj', 'select_one' => 'Välj',
'select_users' => 'Välj användare', 'select_users' => 'Välj användare',
'select_workflow' => 'Välj arbetsflöde', 'select_workflow' => 'Välj arbetsflöde',
'send_test_mail' => '',
'september' => 'september', 'september' => 'september',
'sequence' => 'Position', 'sequence' => 'Position',
'seq_after' => 'efter "[prevname]"', 'seq_after' => 'efter "[prevname]"',

View File

@ -590,6 +590,7 @@ URL: [url]',
'minutes' => 'dakika', 'minutes' => 'dakika',
'misc' => 'Diğer', 'misc' => 'Diğer',
'missing_checksum' => 'Sağlama toplamı eksik', 'missing_checksum' => 'Sağlama toplamı eksik',
'missing_file' => '',
'missing_filesize' => 'Dosya boyutu eksik', 'missing_filesize' => 'Dosya boyutu eksik',
'missing_transition_user_group' => 'Geçiş için kullanıcı/grup bilgisi eksik', 'missing_transition_user_group' => 'Geçiş için kullanıcı/grup bilgisi eksik',
'monday' => 'Pazartesi', 'monday' => 'Pazartesi',
@ -906,6 +907,7 @@ URL: [url]',
'select_one' => 'Birini seçiniz', 'select_one' => 'Birini seçiniz',
'select_users' => 'Kullanıcı seçmek için tıklayın', 'select_users' => 'Kullanıcı seçmek için tıklayın',
'select_workflow' => 'İş akışı seç', 'select_workflow' => 'İş akışı seç',
'send_test_mail' => '',
'september' => 'Eylül', 'september' => 'Eylül',
'sequence' => 'Sıralama', 'sequence' => 'Sıralama',
'seq_after' => 'Şundan sonra: "[prevname]"', 'seq_after' => 'Şundan sonra: "[prevname]"',

View File

@ -596,6 +596,7 @@ URL: [url]',
'minutes' => 'хвилини', 'minutes' => 'хвилини',
'misc' => 'Інше', 'misc' => 'Інше',
'missing_checksum' => 'Відсутня контрольна сума', 'missing_checksum' => 'Відсутня контрольна сума',
'missing_file' => '',
'missing_filesize' => 'Відсутній розмір файлу', 'missing_filesize' => 'Відсутній розмір файлу',
'missing_transition_user_group' => 'Відсутній користувач/група для зміни.', 'missing_transition_user_group' => 'Відсутній користувач/група для зміни.',
'monday' => 'Понеділок', 'monday' => 'Понеділок',
@ -917,6 +918,7 @@ URL: [url]',
'select_one' => 'Виберіть', 'select_one' => 'Виберіть',
'select_users' => 'Виберіть користувачів', 'select_users' => 'Виберіть користувачів',
'select_workflow' => 'Виберіть процес', 'select_workflow' => 'Виберіть процес',
'send_test_mail' => '',
'september' => 'Вересень', 'september' => 'Вересень',
'sequence' => 'Позиція', 'sequence' => 'Позиція',
'seq_after' => 'Після «[prevname]»', 'seq_after' => 'Після «[prevname]»',

View File

@ -521,6 +521,7 @@ URL: [url]',
'minutes' => '', 'minutes' => '',
'misc' => '其他', 'misc' => '其他',
'missing_checksum' => '缺失校验', 'missing_checksum' => '缺失校验',
'missing_file' => '',
'missing_filesize' => '缺失文件大小', 'missing_filesize' => '缺失文件大小',
'missing_transition_user_group' => '', 'missing_transition_user_group' => '',
'monday' => 'Monday', 'monday' => 'Monday',
@ -761,6 +762,7 @@ URL: [url]',
'select_one' => '选择一个', 'select_one' => '选择一个',
'select_users' => '点击选择用户', 'select_users' => '点击选择用户',
'select_workflow' => '', 'select_workflow' => '',
'send_test_mail' => '',
'september' => '九 月', 'september' => '九 月',
'sequence' => '次序', 'sequence' => '次序',
'seq_after' => '在"[prevname]"之后', 'seq_after' => '在"[prevname]"之后',

View File

@ -519,6 +519,7 @@ URL: [url]',
'minutes' => '', 'minutes' => '',
'misc' => '其他', 'misc' => '其他',
'missing_checksum' => '', 'missing_checksum' => '',
'missing_file' => '',
'missing_filesize' => '', 'missing_filesize' => '',
'missing_transition_user_group' => '', 'missing_transition_user_group' => '',
'monday' => 'Monday', 'monday' => 'Monday',
@ -759,6 +760,7 @@ URL: [url]',
'select_one' => '選擇一個', 'select_one' => '選擇一個',
'select_users' => '點擊選擇用戶', 'select_users' => '點擊選擇用戶',
'select_workflow' => '', 'select_workflow' => '',
'send_test_mail' => '',
'september' => '九 月', 'september' => '九 月',
'sequence' => '次序', 'sequence' => '次序',
'seq_after' => '在"[prevname]"之後', 'seq_after' => '在"[prevname]"之後',

View File

@ -210,7 +210,7 @@ switch($command) {
case 'testmail': /* {{{ */ case 'testmail': /* {{{ */
if($user && $user->isAdmin()) { if($user && $user->isAdmin()) {
if($user->getEmail()) { if($user->getEmail()) {
$emailobj = new SeedDMS_Email($settings->_smtpSendFrom, $settings->_smtpServer, $settings->_smtpPort, $settings->_smtpUser, $settings->_smtpPassword); $emailobj = new SeedDMS_EmailNotify($settings->_smtpSendFrom, $settings->_smtpServer, $settings->_smtpPort, $settings->_smtpUser, $settings->_smtpPassword);
$params = array(); $params = array();
if($emailobj->toIndividual($settings->_smtpSendFrom, $user, "testmail_subject", "testmail_body", $params)) { if($emailobj->toIndividual($settings->_smtpSendFrom, $user, "testmail_subject", "testmail_body", $params)) {

View File

@ -112,10 +112,14 @@ if (isset($_GET["version"])) {
UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); UI::exitError(getMLText("admin_tools"),getMLText("access_denied"));
} }
if (!isset($filename) || !file_exists($settings->_contentDir.$filename) ) { if (!isset($filename)) {
UI::exitError(getMLText("admin_tools"),getMLText("unknown_id")); UI::exitError(getMLText("admin_tools"),getMLText("unknown_id"));
} }
if (!file_exists($settings->_contentDir.$filename) ) {
UI::exitError(getMLText("admin_tools"),getMLText("missing_file"));
}
header('Content-Description: File Transfer'); header('Content-Description: File Transfer');
//header("Content-Type: application/force-download; name=\"" . $filename . "\""); //header("Content-Type: application/force-download; name=\"" . $filename . "\"");
//header("Content-Type: application/octet-stream"); //header("Content-Type: application/octet-stream");
@ -143,10 +147,14 @@ if (isset($_GET["version"])) {
UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); UI::exitError(getMLText("admin_tools"),getMLText("access_denied"));
} }
if (!isset($filename) || !file_exists($settings->_contentDir.$filename) ) { if (!isset($filename)) {
UI::exitError(getMLText("admin_tools"),getMLText("unknown_id")); UI::exitError(getMLText("admin_tools"),getMLText("unknown_id"));
} }
if (!file_exists($settings->_contentDir.$filename) ) {
UI::exitError(getMLText("admin_tools"),getMLText("missing_file"));
}
header("Content-Type: text/plain; name=\"" . $filename . "\""); header("Content-Type: text/plain; name=\"" . $filename . "\"");
header("Content-Transfer-Encoding: binary"); header("Content-Transfer-Encoding: binary");
header("Content-Length: " . filesize($settings->_contentDir . $filename )); header("Content-Length: " . filesize($settings->_contentDir . $filename ));
@ -196,10 +204,14 @@ if (isset($_GET["version"])) {
UI::exitError(getMLText("admin_tools"),getMLText("access_denied")); UI::exitError(getMLText("admin_tools"),getMLText("access_denied"));
} }
if (!isset($filename) || !file_exists($settings->_contentDir.$filename) ) { if (!isset($filename)) {
UI::exitError(getMLText("admin_tools"),getMLText("unknown_id")); UI::exitError(getMLText("admin_tools"),getMLText("unknown_id"));
} }
if (!file_exists($settings->_contentDir.$filename) ) {
UI::exitError(getMLText("admin_tools"),getMLText("missing_file"));
}
header("Content-Type: application/zip; name=\"" . $filename . "\""); header("Content-Type: application/zip; name=\"" . $filename . "\"");
//header("Content-Type: application/force-download; name=\"" . $filename . "\""); //header("Content-Type: application/force-download; name=\"" . $filename . "\"");
header("Content-Transfer-Encoding: binary"); header("Content-Transfer-Encoding: binary");
@ -234,17 +246,20 @@ if (isset($_GET["version"])) {
} }
$filename = $dms->contentDir . $document->getDir().'r'.(int) $_GET['reviewlogid']; $filename = $dms->contentDir . $document->getDir().'r'.(int) $_GET['reviewlogid'];
if(file_exists($filename)) { if (!file_exists($filename) ) {
$finfo = finfo_open(FILEINFO_MIME_TYPE); UI::exitError(getMLText("admin_tools"),getMLText("missing_file"));
$mimetype = finfo_file($finfo, $filename);
header("Content-Type: ".$mimetype."; name=\"review-" . $document->getID()."-".(int) $_GET['reviewlogid'] . get_extension($mimetype) . "\"");
header("Content-Transfer-Encoding: binary");
header("Content-Length: " . filesize($filename ));
header("Content-Disposition: attachment; filename=\"review-" . $document->getID()."-".(int) $_GET['reviewlogid'] . get_extension($mimetype) . "\"");
header("Cache-Control: must-revalidate");
readfile($filename);
} }
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$mimetype = finfo_file($finfo, $filename);
header("Content-Type: ".$mimetype."; name=\"review-" . $document->getID()."-".(int) $_GET['reviewlogid'] . get_extension($mimetype) . "\"");
header("Content-Transfer-Encoding: binary");
header("Content-Length: " . filesize($filename ));
header("Content-Disposition: attachment; filename=\"review-" . $document->getID()."-".(int) $_GET['reviewlogid'] . get_extension($mimetype) . "\"");
header("Cache-Control: must-revalidate");
readfile($filename);
} elseif (isset($_GET["approvelogid"])) { } elseif (isset($_GET["approvelogid"])) {
if (!isset($_GET["documentid"]) || !is_numeric($_GET["documentid"]) || intval($_GET["documentid"])<1) { 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")); UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id"));
@ -265,17 +280,19 @@ if (isset($_GET["version"])) {
} }
$filename = $dms->contentDir . $document->getDir().'a'.(int) $_GET['approvelogid']; $filename = $dms->contentDir . $document->getDir().'a'.(int) $_GET['approvelogid'];
if(file_exists($filename)) { if (!file_exists($filename) ) {
$finfo = finfo_open(FILEINFO_MIME_TYPE); UI::exitError(getMLText("admin_tools"),getMLText("missing_file"));
$mimetype = finfo_file($finfo, $filename);
header("Content-Type: ".$mimetype."; name=\"approval-" . $document->getID()."-".(int) $_GET['approvelogid'] . get_extension($mimetype) . "\"");
header("Content-Transfer-Encoding: binary");
header("Content-Length: " . filesize($filename ));
header("Content-Disposition: attachment; filename=\"approval-" . $document->getID()."-".(int) $_GET['approvelogid'] . get_extension($mimetype) . "\"");
header("Cache-Control: must-revalidate");
readfile($filename);
} }
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$mimetype = finfo_file($finfo, $filename);
header("Content-Type: ".$mimetype."; name=\"approval-" . $document->getID()."-".(int) $_GET['approvelogid'] . get_extension($mimetype) . "\"");
header("Content-Transfer-Encoding: binary");
header("Content-Length: " . filesize($filename ));
header("Content-Disposition: attachment; filename=\"approval-" . $document->getID()."-".(int) $_GET['approvelogid'] . get_extension($mimetype) . "\"");
header("Cache-Control: must-revalidate");
readfile($filename);
} }
add_log_line(); add_log_line();

View File

@ -36,7 +36,7 @@ if ($user->isGuest()) {
} }
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'cachedir'=>$settings->_cacheDir, 'previewWidthList'=>$settings->_previewWidthList)); $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'cachedir'=>$settings->_cacheDir, 'previewWidthList'=>$settings->_previewWidthList, 'timeout'=>$settings->_cmdTimeout));
if($view) { if($view) {
$view->show(); $view->show();
exit; exit;

View File

@ -52,6 +52,7 @@ if($view) {
$view->setParam('enableRecursiveCount', $settings->_enableRecursiveCount); $view->setParam('enableRecursiveCount', $settings->_enableRecursiveCount);
$view->setParam('maxRecursiveCount', $settings->_maxRecursiveCount); $view->setParam('maxRecursiveCount', $settings->_maxRecursiveCount);
$view->setParam('previewWidthList', $settings->_previewWidthList); $view->setParam('previewWidthList', $settings->_previewWidthList);
$view->setParam('timeout', $settings->_cmdTimeout);
$view($_GET); $view($_GET);
} }

View File

@ -70,7 +70,7 @@ $folder = $document->getFolder();
$accessop = new SeedDMS_AccessOperation($dms, $document, $user, $settings); $accessop = new SeedDMS_AccessOperation($dms, $document, $user, $settings);
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'folder'=>$folder, 'document'=>$document, 'version'=>$version, 'viewonlinefiletypes'=>$settings->_viewOnlineFileTypes, 'enableversionmodification'=>$settings->_enableVersionModification, 'previewwidthdetail'=>$settings->_previewWidthDetail, 'previewconverters'=>$settings->_converters['preview'], 'cachedir'=>$settings->_cacheDir)); $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'folder'=>$folder, 'document'=>$document, 'version'=>$version, 'viewonlinefiletypes'=>$settings->_viewOnlineFileTypes, 'enableversionmodification'=>$settings->_enableVersionModification, 'previewwidthdetail'=>$settings->_previewWidthDetail, 'previewconverters'=>$settings->_converters['preview'], 'cachedir'=>$settings->_cacheDir, 'timeout'=>$settings->_cmdTimeout));
if($view) { if($view) {
$view->setParam('accessobject', $accessop); $view->setParam('accessobject', $accessop);
$view->show(); $view->show();

View File

@ -43,6 +43,7 @@ $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'dropfold
if($view) { if($view) {
$view->setParam('cachedir', $settings->_cacheDir); $view->setParam('cachedir', $settings->_cacheDir);
$view->setParam('previewWidthList', $settings->_previewWidthList); $view->setParam('previewWidthList', $settings->_previewWidthList);
$view->setParam('timeout', $settings->_cmdTimeout);
$view($_GET); $view($_GET);
exit; exit;
} }

View File

@ -53,7 +53,7 @@ if(isset($_GET['groupid']) && $_GET['groupid']) {
} }
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'selgroup'=>$selgroup, 'allgroups'=>$allGroups, 'allusers'=>$allUsers, 'strictformcheck'=>$settings->_strictFormCheck, 'cachedir'=>$settings->_cacheDir, 'previewWidthList'=>$settings->_previewWidthList, 'workflowmode'=>$settings->_workflowMode)); $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'selgroup'=>$selgroup, 'allgroups'=>$allGroups, 'allusers'=>$allUsers, 'strictformcheck'=>$settings->_strictFormCheck, 'cachedir'=>$settings->_cacheDir, 'previewWidthList'=>$settings->_previewWidthList, 'workflowmode'=>$settings->_workflowMode, 'timeout'=>$settings->_cmdTimeout));
if($view) { if($view) {
$view($_GET); $view($_GET);
} }

View File

@ -34,7 +34,7 @@ if ($user->isGuest()) {
} }
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'cachedir'=>$settings->_cacheDir, 'previewWidthList'=>$settings->_previewWidthList, 'previewconverters'=>$settings->_converters['preview'])); $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'cachedir'=>$settings->_cacheDir, 'previewWidthList'=>$settings->_previewWidthList, 'previewconverters'=>$settings->_converters['preview'], 'timeout'=>$settings->_cmdTimeout));
if($view) { if($view) {
$view($_GET); $view($_GET);
exit; exit;

View File

@ -48,7 +48,7 @@ if (isset($_GET["orderby"]) && strlen($_GET["orderby"])==1 ) {
} }
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'orderby'=>$orderby, 'showinprocess'=>$showInProcess, 'workflowmode'=>$settings->_workflowMode, 'cachedir'=>$settings->_cacheDir, 'previewWidthList'=>$settings->_previewWidthList, 'previewconverters'=>$settings->_converters['preview'])); $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'orderby'=>$orderby, 'showinprocess'=>$showInProcess, 'workflowmode'=>$settings->_workflowMode, 'cachedir'=>$settings->_cacheDir, 'previewWidthList'=>$settings->_previewWidthList, 'previewconverters'=>$settings->_converters['preview'], 'timeout'=>$settings->_cmdTimeout));
if($view) { if($view) {
$view->show(); $view->show();
exit; exit;

View File

@ -37,7 +37,7 @@ if ($user->isGuest()) {
} }
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'cachedir'=>$settings->_cacheDir, 'previewWidthList'=>$settings->_previewWidthList)); $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'cachedir'=>$settings->_cacheDir, 'previewWidthList'=>$settings->_previewWidthList, 'timeout'=>$settings->_cmdTimeout));
if($view) { if($view) {
$view->show(); $view->show();
exit; exit;

View File

@ -470,6 +470,7 @@ if(count($entries) == 1) {
$view->setParam('enablefullsearch', $settings->_enableFullSearch); $view->setParam('enablefullsearch', $settings->_enableFullSearch);
$view->setParam('previewWidthList', $settings->_previewWidthList); $view->setParam('previewWidthList', $settings->_previewWidthList);
$view->setParam('previewconverters', $settings->_converters['preview']); $view->setParam('previewconverters', $settings->_converters['preview']);
$view->setParam('timeout', $settings->_cmdTimeout);
$view($_GET); $view($_GET);
exit; exit;
} }

View File

@ -64,6 +64,7 @@ if($view) {
$view->setParam('cachedir', $settings->_cacheDir); $view->setParam('cachedir', $settings->_cacheDir);
$view->setParam('previewWidthList', $settings->_previewWidthList); $view->setParam('previewWidthList', $settings->_previewWidthList);
$view->setParam('previewWidthDetail', $settings->_previewWidthDetail); $view->setParam('previewWidthDetail', $settings->_previewWidthDetail);
$view->setParam('timeout', $settings->_cmdTimeout);
$view($_GET); $view($_GET);
exit; exit;
} }

View File

@ -87,6 +87,7 @@ if($view) {
$view->setParam('previewConverters', $settings->_converters['preview']); $view->setParam('previewConverters', $settings->_converters['preview']);
$view->setParam('checkOutDir', $settings->_checkOutDir); $view->setParam('checkOutDir', $settings->_checkOutDir);
$view->setParam('currenttab', isset($_REQUEST['currenttab']) ? $_REQUEST['currenttab'] : ''); $view->setParam('currenttab', isset($_REQUEST['currenttab']) ? $_REQUEST['currenttab'] : '');
$view->setParam('timeout', $settings->_cmdTimeout);
$view($_GET); $view($_GET);
exit; exit;
} }

View File

@ -69,6 +69,7 @@ if($view) {
$view->setParam('maxRecursiveCount', $settings->_maxRecursiveCount); $view->setParam('maxRecursiveCount', $settings->_maxRecursiveCount);
$view->setParam('previewWidthList', $settings->_previewWidthList); $view->setParam('previewWidthList', $settings->_previewWidthList);
$view->setParam('previewconverters', $settings->_converters['preview']); $view->setParam('previewconverters', $settings->_converters['preview']);
$view->setParam('timeout', $settings->_cmdTimeout);
$view($_GET); $view($_GET);
exit; exit;
} }

View File

@ -37,7 +37,7 @@ if ($user->isGuest()) {
} }
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'cachedir'=>$settings->_cacheDir, 'workflowmode'=>$settings->_workflowMode, 'previewWidthList'=>$settings->_previewWidthList, 'previewconverters'=>$settings->_converters['preview'])); $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'cachedir'=>$settings->_cacheDir, 'workflowmode'=>$settings->_workflowMode, 'previewWidthList'=>$settings->_previewWidthList, 'previewconverters'=>$settings->_converters['preview'], 'timeout'=>$settings->_cmdTimeout));
if($view) { if($view) {
$view->show(); $view->show();
exit; exit;

View File

@ -838,6 +838,424 @@ function doSearchByAttr() { /* {{{ */
echo json_encode(array('success'=>true, 'message'=>'', 'data'=>$recs)); echo json_encode(array('success'=>true, 'message'=>'', 'data'=>$recs));
} /* }}} */ } /* }}} */
function checkIfAdmin()
{
global $app, $dms, $userobj;
if(!$userobj) {
$app->response()->header('Content-Type', 'application/json');
echo json_encode(array('success'=>false, 'message'=>'Not logged in', 'data'=>''));
return;
}
if(!$userobj->isAdmin()) {
$app->response()->header('Content-Type', 'application/json');
echo json_encode(array('success'=>false, 'message'=>'You must be logged in with an administrator account to access this resource', 'data'=>''));
return;
}
return true;
}
function createAccount() { /* {{{ */
global $app, $dms, $userobj;
checkIfAdmin();
$userName = $app->request()->post('user');
$password = $app->request()->post('pass');
$fullname = $app->request()->post('name');
$email = $app->request()->post('email');
$language = $app->request()->post('language');
$theme = $app->request()->post('theme');
$comment = $app->request()->post('comment');
$newAccount = $dms->addUser($userName, $password, $fullname, $email, $language, $theme, $comment);
if ($newAccount === false)
{
$app->response()->header('Content-Type', 'application/json');
echo json_encode(array('success'=>false, 'message'=>'Account could not be created, maybe it already exists', 'data'=>''));
return;
}
$result = array(
'id'=>$newAccount->getID()
);
$app->response()->header('Content-Type', 'application/json');
echo json_encode(array('success'=>true, 'message'=>'', 'data'=>$result));
return;
} /* }}} */
function getAccountById($id) { /* {{{ */
global $app, $dms, $userobj;
checkIfAdmin();
if(is_numeric($id))
$account = $dms->getUser($id);
else {
$account = $dms->getUserByLogin($id);
}
if($account) {
$data = array();
$data['id'] = $account->getId();
$data['login'] = $account->getLogin();
$data['fullname'] = $account->getFullName();
$data['email'] = $account->getEmail();
$data['language'] = $account->getLanguage();
$data['theme'] = $account->getTheme();
$data['role'] = $account->getRole();
$data['comment'] = $account->getComment();
$outputDisabled = ($account->isDisabled() === true || $account->isDisabled() === '1');
$data['isdisabled'] = $outputDisabled;
$data['isguest'] = $account->isGuest();
$data['isadmin'] = $account->isAdmin();
$app->response()->header('Content-Type', 'application/json');
echo json_encode(array('success'=>true, 'message'=>'', 'data'=>$data));
} else {
$app->response()->status(404);
}
} /* }}} */
function setDisabledAccount($id) { /* {{{ */
global $app, $dms, $userobj;
checkIfAdmin();
if ($app->request()->put('disable') == null)
{
$app->response()->header('Content-Type', 'application/json');
echo json_encode(array('success'=>false, 'message'=>'You must PUT a disabled state', 'data'=>''));
return;
}
$isDisabled = false;
$status = $app->request()->put('disable');
if ($status == 'true' || $status == '1')
{
$isDisabled = true;
}
if(is_numeric($id))
$account = $dms->getUser($id);
else {
$account = $dms->getUserByLogin($id);
}
if($account) {
$account->setDisabled($isDisabled);
$data = array();
$data['id'] = $account->getId();
$data['login'] = $account->getLogin();
$data['fullname'] = $account->getFullName();
$data['email'] = $account->getEmail();
$outputDisabled = ($account->isDisabled() === true || $account->isDisabled() === '1');
$data['isdisabled'] = $outputDisabled;
$app->response()->header('Content-Type', 'application/json');
echo json_encode(array('success'=>true, 'message'=>'', 'data'=>$data));
} else {
$app->response()->status(404);
}
} /* }}} */
function createGroup() { /* {{{ */
global $app, $dms, $userobj;
checkIfAdmin();
$groupName = $app->request()->post('name');
$comment = $app->request()->post('comment');
$newGroup = $dms->addGroup($groupName, $comment);
if ($newGroup === false)
{
$app->response()->header('Content-Type', 'application/json');
echo json_encode(array('success'=>false, 'message'=>'Group could not be created, maybe it already exists', 'data'=>''));
return;
}
$result = array(
'id'=>$newGroup->getID()
);
$app->response()->header('Content-Type', 'application/json');
echo json_encode(array('success'=>true, 'message'=>'', 'data'=>$result));
return;
} /* }}} */
function getGroup($id) { /* {{{ */
global $app, $dms, $userobj;
checkIfAdmin();
if(is_numeric($id))
$group = $dms->getGroup($id);
else {
$group = $dms->getGroupByName($id);
}
if($group) {
$data = array();
$data['id'] = $group->getId();
$data['name'] = $group->getName();
$data['comment'] = $group->getComment();
$data['users'] = array();
foreach ($group->getUsers() as $user) {
$data['users'][] = array('id' => $user->getID(), 'login' => $user->getLogin());
}
$app->response()->header('Content-Type', 'application/json');
echo json_encode(array('success'=>true, 'message'=>'', 'data'=>$data));
} else {
$app->response()->status(404);
}
} /* }}} */
function changeGroupMembership($id, $operationType) { /* {{{ */
global $app, $dms, $userobj;
checkIfAdmin();
if(is_numeric($id))
$group = $dms->getGroup($id);
else {
$group = $dms->getGroupByName($id);
}
if ($app->request()->put('userid') == null)
{
$app->response()->header('Content-Type', 'application/json');
echo json_encode(array('success'=>false, 'message'=>'Please PUT the userid', 'data'=>''));
return;
}
$userId = $app->request()->put('userid');
if(is_numeric($userId))
$user = $dms->getUser($userId);
else {
$user = $dms->getUserByLogin($userId);
}
if (!($group && $user)) {
$app->response()->status(404);
}
$operationResult = false;
if ($operationType == 'add')
{
$operationResult = $group->addUser($user);
}
if ($operationType == 'remove')
{
$operationResult = $group->removeUser($user);
}
if ($operationResult === false)
{
$app->response()->header('Content-Type', 'application/json');
$message = 'Could not add user to the group.';
if ($operationType == 'remove')
{
$message = 'Could not remove user from group.';
}
echo json_encode(array('success'=>false, 'message'=>'Something went wrong. ' . $message, 'data'=>''));
return;
}
$data = array();
$data['id'] = $group->getId();
$data['name'] = $group->getName();
$data['comment'] = $group->getComment();
$data['users'] = array();
foreach ($group->getUsers() as $userObj) {
$data['users'][] = array('id' => $userObj->getID(), 'login' => $userObj->getLogin());
}
$app->response()->header('Content-Type', 'application/json');
echo json_encode(array('success'=>true, 'message'=>'', 'data'=>$data));
} /* }}} */
function addUserToGroup($id) { /* {{{ */
changeGroupMembership($id, 'add');
}
function removeUserFromGroup($id) { /* {{{ */
changeGroupMembership($id, 'remove');
} /* }}} */
function setFolderInheritsAccess($id) { /* {{{ */
global $app, $dms, $userobj;
checkIfAdmin();
if ($app->request()->put('enable') == null)
{
$app->response()->header('Content-Type', 'application/json');
echo json_encode(array('success'=>false, 'message'=>'You must PUT an "enable" value', 'data'=>''));
return;
}
$inherit = false;
$status = $app->request()->put('enable');
if ($status == 'true' || $status == '1')
{
$inherit = true;
}
if(is_numeric($id))
$folder = $dms->getFolder($id);
else {
$folder = $dms->getFolderByName($id);
}
if($folder) {
$folder->setInheritAccess($inherit);
$folderId = $folder->getId();
$folder = null;
// reread from db
$folder = $dms->getFolder($folderId);
$success = ($folder->inheritsAccess() == $inherit);
$app->response()->header('Content-Type', 'application/json');
echo json_encode(array('success'=>$success, 'message'=>'', 'data'=>$data));
} else {
$app->response()->status(404);
}
} /* }}} */
function addUserAccessToFolder($id) { /* {{{ */
changeFolderAccess($id, 'add', 'user');
} /* }}} */
function addGroupAccessToFolder($id) { /* {{{ */
changeFolderAccess($id, 'add', 'group');
} /* }}} */
function removeUserAccessFromFolder($id) { /* {{{ */
changeFolderAccess($id, 'remove', 'user');
} /* }}} */
function removeGroupAccessFromFolder($id) { /* {{{ */
changeFolderAccess($id, 'remove', 'group');
} /* }}} */
function changeFolderAccess($id, $operationType, $userOrGroup) { /* {{{ */
global $app, $dms, $userobj;
checkIfAdmin();
if(is_numeric($id))
$folder = $dms->getfolder($id);
else {
$folder = $dms->getfolderByName($id);
}
if (!$folder) {
$app->response()->status(404);
return;
}
$userOrGroupIdInput = $app->request()->put('id');
if ($operationType == 'add')
{
if ($app->request()->put('id') == null)
{
$app->response()->header('Content-Type', 'application/json');
echo json_encode(array('success'=>false, 'message'=>'Please PUT the user or group Id', 'data'=>''));
return;
}
if ($app->request()->put('mode') == null)
{
$app->response()->header('Content-Type', 'application/json');
echo json_encode(array('success'=>false, 'message'=>'Please PUT the access mode', 'data'=>''));
return;
}
$modeInput = $app->request()->put('mode');
$mode = M_NONE;
if ($modeInput == 'read')
{
$mode = M_READ;
}
if ($modeInput == 'readwrite')
{
$mode = M_READWRITE;
}
if ($modeInput == 'all')
{
$mode = M_ALL;
}
}
$userOrGroupId = $userOrGroupIdInput;
if(!is_numeric($userOrGroupIdInput) && $userOrGroup == 'user')
{
$userOrGroupObj = $dms->getUserByLogin($userOrGroupIdInput);
}
if(!is_numeric($userOrGroupIdInput) && $userOrGroup == 'group')
{
$userOrGroupObj = $dms->getGroupByName($userOrGroupIdInput);
}
if(is_numeric($userOrGroupIdInput) && $userOrGroup == 'user')
{
$userOrGroupObj = $dms->getUser($userOrGroupIdInput);
}
if(is_numeric($userOrGroupIdInput) && $userOrGroup == 'group')
{
$userOrGroupObj = $dms->getGroup($userOrGroupIdInput);
}
if (!$userOrGroupObj) {
$app->response()->status(404);
return;
}
$userOrGroupId = $userOrGroupObj->getId();
$operationResult = false;
if ($operationType == 'add' && $userOrGroup == 'user')
{
$operationResult = $folder->addAccess($mode, $userOrGroupId, true);
}
if ($operationType == 'remove' && $userOrGroup == 'user')
{
$operationResult = $folder->removeAccess($userOrGroupId, true);
}
if ($operationType == 'add' && $userOrGroup == 'group')
{
$operationResult = $folder->addAccess($mode, $userOrGroupId, false);
}
if ($operationType == 'remove' && $userOrGroup == 'group')
{
$operationResult = $folder->removeAccess($userOrGroupId, false);
}
if ($operationResult === false)
{
$app->response()->header('Content-Type', 'application/json');
$message = 'Could not add user/group access to this folder.';
if ($operationType == 'remove')
{
$message = 'Could not remove user/group access from this folder.';
}
echo json_encode(array('success'=>false, 'message'=>'Something went wrong. ' . $message, 'data'=>''));
return;
}
$data = array();
$app->response()->header('Content-Type', 'application/json');
echo json_encode(array('success'=>true, 'message'=>'', 'data'=>$data));
} /* }}} */
function clearFolderAccessList($id) { /* {{{ */
global $app, $dms, $userobj;
checkIfAdmin();
if(is_numeric($id))
$folder = $dms->getFolder($id);
else {
$folder = $dms->getFolderByName($id);
}
if (!$folder)
{
$app->response()->status(404);
return;
}
$operationResult = $folder->clearAccessList();
$data = array();
$app->response()->header('Content-Type', 'application/json');
if (!$operationResult)
{
echo json_encode(array('success'=>false, 'message'=>'Something went wrong. Could not clear access list for this folder.', 'data'=>$data));
}
echo json_encode(array('success'=>true, 'message'=>'', 'data'=>$data));
} /* }}} */
//$app = new Slim(array('mode'=>'development', '_session.handler'=>null)); //$app = new Slim(array('mode'=>'development', '_session.handler'=>null));
$app = new \Slim\Slim(array('mode'=>'development', '_session.handler'=>null)); $app = new \Slim\Slim(array('mode'=>'development', '_session.handler'=>null));
@ -885,6 +1303,19 @@ $app->get('/document/:id/links', 'getDocumentLinks');
$app->put('/account/fullname', 'setFullName'); $app->put('/account/fullname', 'setFullName');
$app->put('/account/email', 'setEmail'); $app->put('/account/email', 'setEmail');
$app->get('/account/locked', 'getLockedDocuments'); $app->get('/account/locked', 'getLockedDocuments');
$app->post('/accounts', 'createAccount');
$app->get('/accounts/:id', 'getAccountById');
$app->put('/accounts/:id/disable', 'setDisabledAccount');
$app->post('/groups', 'createGroup');
$app->get('/groups/:id', 'getGroup');
$app->put('/groups/:id/addUser', 'addUserToGroup');
$app->put('/groups/:id/removeUser', 'removeUserFromGroup');
$app->put('/folder/:id/setInherit', 'setFolderInheritsAccess');
$app->put('/folder/:id/access/group/add', 'addGroupAccessToFolder'); //
$app->put('/folder/:id/access/user/add', 'addUserAccessToFolder'); //
$app->put('/folder/:id/access/group/remove', 'removeGroupAccessFromFolder');
$app->put('/folder/:id/access/user/remove', 'removeUserAccessFromFolder');
$app->put('/folder/:id/access/clear', 'clearFolderAccessList');
$app->run(); $app->run();
?> ?>

View File

@ -233,25 +233,6 @@ $(document).ready( function() {
'json' 'json'
); );
}); });
$('a.sendtestmail').click(function(ev){
ev.preventDefault();
$.ajax({url: '../op/op.Ajax.php',
type: 'GET',
dataType: "json",
data: {command: 'testmail'},
success: function(data) {
console.log(data);
noty({
text: data.msg,
type: (data.error) ? 'error' : 'success',
dismissQueue: true,
layout: 'topRight',
theme: 'defaultTheme',
timeout: 1500,
});
}
});
});
$('a.movefolder').click(function(ev){ $('a.movefolder').click(function(ev){
ev.preventDefault(); ev.preventDefault();
@ -693,7 +674,7 @@ $(document).ready(function() {
dismissQueue: true, dismissQueue: true,
layout: 'topRight', layout: 'topRight',
theme: 'defaultTheme', theme: 'defaultTheme',
timeout: (timeout == 'undefined' ? 1500 : timeout), timeout: (typeof timeout == 'undefined' ? 1500 : timeout),
}); });
}); });
}); });

View File

@ -36,8 +36,9 @@ class SeedDMS_View_ApprovalSummary extends SeedDMS_Bootstrap_Style {
$user = $this->params['user']; $user = $this->params['user'];
$cachedir = $this->params['cachedir']; $cachedir = $this->params['cachedir'];
$previewwidth = $this->params['previewWidthList']; $previewwidth = $this->params['previewWidthList'];
$timeout = $this->params['timeout'];
$previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth); $previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth, $timeout);
$this->htmlStartPage(getMLText("approval_summary")); $this->htmlStartPage(getMLText("approval_summary"));
$this->globalNavigation(); $this->globalNavigation();

View File

@ -59,10 +59,14 @@ $(document).ready( function() {
$previewwidth = $this->params['previewWidthList']; $previewwidth = $this->params['previewWidthList'];
$enableRecursiveCount = $this->params['enableRecursiveCount']; $enableRecursiveCount = $this->params['enableRecursiveCount'];
$maxRecursiveCount = $this->params['maxRecursiveCount']; $maxRecursiveCount = $this->params['maxRecursiveCount'];
$timeout = $this->params['timeout'];
if($selattrdef) { if($selattrdef) {
$this->contentHeading(getMLText("attrdef_info")); $this->contentHeading(getMLText("attrdef_info"));
$res = $selattrdef->getStatistics(30); $res = $selattrdef->getStatistics(30);
if(!empty($res['frequencies']['document']) ||!empty($res['frequencies']['folder']) ||!empty($res['frequencies']['content'])) {
?> ?>
<div class="accordion" id="accordion1"> <div class="accordion" id="accordion1">
<div class="accordion-group"> <div class="accordion-group">
@ -93,6 +97,7 @@ $(document).ready( function() {
</div> </div>
</div> </div>
<?php <?php
}
if($res['folders'] || $res['docs']) { if($res['folders'] || $res['docs']) {
print "<table id=\"viewfolder-table\" class=\"table table-condensed\">"; print "<table id=\"viewfolder-table\" class=\"table table-condensed\">";
print "<thead>\n<tr>\n"; print "<thead>\n<tr>\n";
@ -104,7 +109,7 @@ $(document).ready( function() {
foreach($res['folders'] as $subFolder) { foreach($res['folders'] as $subFolder) {
echo $this->folderListRow($subFolder); echo $this->folderListRow($subFolder);
} }
$previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth); $previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth, $timeout);
foreach($res['docs'] as $document) { foreach($res['docs'] as $document) {
echo $this->documentListRow($document, $previewer); echo $this->documentListRow($document, $previewer);
} }
@ -120,7 +125,7 @@ $(document).ready( function() {
print "<th>".getMLText("status")."</th>\n"; print "<th>".getMLText("status")."</th>\n";
print "<th>".getMLText("action")."</th>\n"; print "<th>".getMLText("action")."</th>\n";
print "</tr>\n</thead>\n<tbody>\n"; print "</tr>\n</thead>\n<tbody>\n";
$previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth); $previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth, $timeout);
foreach($res['contents'] as $content) { foreach($res['contents'] as $content) {
$doc = $content->getDocument(); $doc = $content->getDocument();
echo $this->documentListRow($doc, $previewer); echo $this->documentListRow($doc, $previewer);
@ -278,7 +283,24 @@ $(document).ready( function() {
$ot = getMLText("version"); $ot = getMLText("version");
break; break;
} }
print "<option value=\"".$attrdef->getID()."\" ".($selattrdef && $attrdef->getID()==$selattrdef->getID() ? 'selected' : '').">" . htmlspecialchars($attrdef->getName() ." (".$ot.")"); switch($attrdef->getType()) {
case SeedDMS_Core_AttributeDefinition::type_int:
$t = getMLText("attrdef_type_int");
break;
case SeedDMS_Core_AttributeDefinition::type_float:
$t = getMLText("attrdef_type_float");
break;
case SeedDMS_Core_AttributeDefinition::type_string:
$t = getMLText("attrdef_type_string");
break;
case SeedDMS_Core_AttributeDefinition::type_date:
$t = getMLText("attrdef_type_date");
break;
case SeedDMS_Core_AttributeDefinition::type_boolean:
$t = getMLText("attrdef_type_boolean");
break;
}
print "<option value=\"".$attrdef->getID()."\" ".($selattrdef && $attrdef->getID()==$selattrdef->getID() ? 'selected' : '').">" . htmlspecialchars($attrdef->getName() ." (".$ot.", ".$t.")");
} }
} }
?> ?>

View File

@ -40,8 +40,9 @@ class SeedDMS_View_DocumentVersionDetail extends SeedDMS_Bootstrap_Style {
$viewonlinefiletypes = $this->params['viewonlinefiletypes']; $viewonlinefiletypes = $this->params['viewonlinefiletypes'];
$enableversionmodification = $this->params['enableversionmodification']; $enableversionmodification = $this->params['enableversionmodification'];
$cachedir = $this->params['cachedir']; $cachedir = $this->params['cachedir'];
$previewwidthdetail = $this->params['previewwidthdetail']; $previewwidthdetail = $this->params['previewWidthDetail'];
$previewconverters = $this->params['previewconverters']; $previewconverters = $this->params['previewconverters'];
$timeout = $this->params['timeout'];
$latestContent = $document->getLatestContent(); $latestContent = $document->getLatestContent();
$status = $version->getStatus(); $status = $version->getStatus();
@ -148,7 +149,7 @@ class SeedDMS_View_DocumentVersionDetail extends SeedDMS_Bootstrap_Style {
print "<td><ul class=\"unstyled\">"; print "<td><ul class=\"unstyled\">";
print "</ul>"; print "</ul>";
$previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidthdetail); $previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidthdetail, $timeout);
$previewer->setConverters($previewconverters); $previewer->setConverters($previewconverters);
$previewer->createPreview($version); $previewer->createPreview($version);
if($previewer->hasPreview($version)) { if($previewer->hasPreview($version)) {

View File

@ -48,8 +48,9 @@ $('#fileselect').click(function(ev) {
$dropfolderdir = $this->params['dropfolderdir']; $dropfolderdir = $this->params['dropfolderdir'];
$cachedir = $this->params['cachedir']; $cachedir = $this->params['cachedir'];
$previewwidth = $this->params['previewWidthList']; $previewwidth = $this->params['previewWidthList'];
$timeout = $this->params['timeout'];
$previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth); $previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth, $timeout);
// $this->htmlStartPage(getMLText("choose_target_file")); // $this->htmlStartPage(getMLText("choose_target_file"));
// $this->globalBanner(); // $this->globalBanner();

View File

@ -107,9 +107,10 @@ $(document).ready( function() {
$cachedir = $this->params['cachedir']; $cachedir = $this->params['cachedir'];
$previewwidth = $this->params['previewWidthList']; $previewwidth = $this->params['previewWidthList'];
$workflowmode = $this->params['workflowmode']; $workflowmode = $this->params['workflowmode'];
$timeout = $this->params['timeout'];
if($selgroup) { if($selgroup) {
$previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth); $previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth, $timeout);
$this->contentHeading(getMLText("group_info")); $this->contentHeading(getMLText("group_info"));
echo "<table class=\"table table-condensed\">\n"; echo "<table class=\"table table-condensed\">\n";
if($workflowmode == "traditional") { if($workflowmode == "traditional") {

View File

@ -90,7 +90,7 @@ class SeedDMS_View_ManageNotify extends SeedDMS_Bootstrap_Style {
printMLText("empty_notify_list"); printMLText("empty_notify_list");
} }
else { else {
$previewer = new SeedDMS_Preview_Previewer($this->cachedir, $this->previewwidth); $previewer = new SeedDMS_Preview_Previewer($this->cachedir, $this->previewwidth, $this->timeout);
$previewer->setConverters($this->previewconverters); $previewer->setConverters($this->previewconverters);
print "<table class=\"table-condensed\">"; print "<table class=\"table-condensed\">";
@ -149,6 +149,7 @@ class SeedDMS_View_ManageNotify extends SeedDMS_Bootstrap_Style {
$this->previewwidth = $this->params['previewWidthList']; $this->previewwidth = $this->params['previewWidthList'];
$this->previewconverters = $this->params['previewconverters']; $this->previewconverters = $this->params['previewconverters'];
$this->db = $this->dms->getDB(); $this->db = $this->dms->getDB();
$this->timeout = $this->params['timeout'];
$this->htmlStartPage(getMLText("my_account")); $this->htmlStartPage(getMLText("my_account"));
$this->globalNavigation(); $this->globalNavigation();

View File

@ -42,7 +42,7 @@ class SeedDMS_View_MyDocuments extends SeedDMS_Bootstrap_Style {
$previewconverters = $this->params['previewconverters']; $previewconverters = $this->params['previewconverters'];
$db = $dms->getDB(); $db = $dms->getDB();
$previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth); $previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth, $timeout);
$previewer->setConverters($previewconverters); $previewer->setConverters($previewconverters);
$this->htmlStartPage(getMLText("my_documents")); $this->htmlStartPage(getMLText("my_documents"));

View File

@ -36,8 +36,9 @@ class SeedDMS_View_ReviewSummary extends SeedDMS_Bootstrap_Style {
$user = $this->params['user']; $user = $this->params['user'];
$cachedir = $this->params['cachedir']; $cachedir = $this->params['cachedir'];
$previewwidth = $this->params['previewWidthList']; $previewwidth = $this->params['previewWidthList'];
$timeout = $this->params['timeout'];
$previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth); $previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth, $timeout);
$this->htmlStartPage(getMLText("my_documents")); $this->htmlStartPage(getMLText("my_documents"));
$this->globalNavigation(); $this->globalNavigation();

View File

@ -90,6 +90,7 @@ class SeedDMS_View_Search extends SeedDMS_Bootstrap_Style {
$cachedir = $this->params['cachedir']; $cachedir = $this->params['cachedir'];
$previewwidth = $this->params['previewWidthList']; $previewwidth = $this->params['previewWidthList'];
$previewconverters = $this->params['previewconverters']; $previewconverters = $this->params['previewconverters'];
$timeout = $this->params['timeout'];
$this->htmlAddHeader('<script type="text/javascript" src="../styles/'.$this->theme.'/bootbox/bootbox.min.js"></script>'."\n", 'js'); $this->htmlAddHeader('<script type="text/javascript" src="../styles/'.$this->theme.'/bootbox/bootbox.min.js"></script>'."\n", 'js');
@ -488,7 +489,7 @@ $(document).ready( function() {
print "<th>".getMLText("action")."</th>\n"; print "<th>".getMLText("action")."</th>\n";
print "</tr>\n</thead>\n<tbody>\n"; print "</tr>\n</thead>\n<tbody>\n";
$previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth); $previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth, $timeout);
$previewer->setConverters($previewconverters); $previewer->setConverters($previewconverters);
foreach ($entries as $entry) { foreach ($entries as $entry) {
if(get_class($entry) == $dms->getClassname('document')) { if(get_class($entry) == $dms->getClassname('document')) {

View File

@ -55,6 +55,26 @@ class SeedDMS_View_Settings extends SeedDMS_Bootstrap_Style {
$('#settingstab li a').click(function(event) { $('#settingstab li a').click(function(event) {
$('#currenttab').val($(event.currentTarget).data('target').substring(1)); $('#currenttab').val($(event.currentTarget).data('target').substring(1));
}); });
$('a.sendtestmail').click(function(ev){
ev.preventDefault();
$.ajax({url: '../op/op.Ajax.php',
type: 'GET',
dataType: "json",
data: {command: 'testmail'},
success: function(data) {
console.log(data);
noty({
text: data.msg,
type: (data.error) ? 'error' : 'success',
dismissQueue: true,
layout: 'topRight',
theme: 'defaultTheme',
timeout: 1500,
});
}
});
});
}); });
<?php <?php
} /* }}} */ } /* }}} */
@ -476,7 +496,7 @@ if(!is_writeable($settings->_configFilePath)) {
<!-- <!--
-- SETTINGS - SYSTEM - SMTP -- SETTINGS - SYSTEM - SMTP
--> -->
<tr ><td><b> <?php printMLText("settings_SMTP");?></b></td><td><a class="btn sendtestmail">Send test mail</a></td> </tr> <tr ><td><b> <?php printMLText("settings_SMTP");?></b></td><td><a class="btn sendtestmail"><?php printMLText('send_test_mail'); ?></a></td> </tr>
<tr title="<?php printMLText("settings_smtpServer_desc");?>"> <tr title="<?php printMLText("settings_smtpServer_desc");?>">
<td><?php printMLText("settings_smtpServer");?>:</td> <td><?php printMLText("settings_smtpServer");?>:</td>
<td><?php $this->showTextField("smtpServer", $settings->_smtpServer); ?></td> <td><?php $this->showTextField("smtpServer", $settings->_smtpServer); ?></td>

View File

@ -38,8 +38,10 @@ class SeedDMS_View_Timeline extends SeedDMS_Bootstrap_Style {
$cachedir = $this->params['cachedir']; $cachedir = $this->params['cachedir'];
$previewwidthlist = $this->params['previewWidthList']; $previewwidthlist = $this->params['previewWidthList'];
$previewwidthdetail = $this->params['previewWidthDetail']; $previewwidthdetail = $this->params['previewWidthDetail'];
$timeout = $this->params['timeout'];
if($document) { if($document) {
$previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidthdetail); $previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidthdetail, $timeout);
$previewer->createPreview($version); $previewer->createPreview($version);
$this->contentHeading(getMLText("timeline_selected_item")); $this->contentHeading(getMLText("timeline_selected_item"));

View File

@ -80,6 +80,7 @@ $(document).ready( function() {
function info() { /* {{{ */ function info() { /* {{{ */
$dms = $this->params['dms']; $dms = $this->params['dms'];
$user = $this->params['user'];
$seluser = $this->params['seluser']; $seluser = $this->params['seluser'];
$quota = $this->params['quota']; $quota = $this->params['quota'];
$settings = $this->params['settings']; $settings = $this->params['settings'];
@ -136,7 +137,8 @@ $(document).ready( function() {
echo "<tr><td>".getMLText('network_drive')."</td><td><a href=\"http".((isset($_SERVER['HTTPS']) && (strcmp($_SERVER['HTTPS'],'off')!=0)) ? "s" : "")."://".$_SERVER['HTTP_HOST'].$settings->_httpRoot.'checkout/'.preg_replace('/[^A-Za-z0-9_-]/', '', $seluser->getLogin())."\">".preg_replace('/[^A-Za-z0-9_-]/', '', $seluser->getLogin())."</a></td></tr>\n"; echo "<tr><td>".getMLText('network_drive')."</td><td><a href=\"http".((isset($_SERVER['HTTPS']) && (strcmp($_SERVER['HTTPS'],'off')!=0)) ? "s" : "")."://".$_SERVER['HTTP_HOST'].$settings->_httpRoot.'checkout/'.preg_replace('/[^A-Za-z0-9_-]/', '', $seluser->getLogin())."\">".preg_replace('/[^A-Za-z0-9_-]/', '', $seluser->getLogin())."</a></td></tr>\n";
echo "</table>"; echo "</table>";
echo "<a href=\"../op/op.SubstituteUser.php?userid=".$seluser->getID()."\" class=\"btn btn-primary\">".getMLText("substitute_user")."</a>\n"; if($user->isAdmin() && $seluser->getID() != $user->getID())
echo "<a href=\"../op/op.SubstituteUser.php?userid=".$seluser->getID()."\" class=\"btn btn-primary\">".getMLText("substitute_user")."</a>\n";
} }
} /* }}} */ } /* }}} */

View File

@ -173,6 +173,7 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style {
$checkoutdir = $this->params['checkOutDir']; $checkoutdir = $this->params['checkOutDir'];
$documentid = $document->getId(); $documentid = $document->getId();
$currenttab = $this->params['currenttab']; $currenttab = $this->params['currenttab'];
$timeout = $this->params['timeout'];
$versions = $document->getContent(); $versions = $document->getContent();
@ -449,7 +450,7 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style {
print "</ul>"; print "</ul>";
*/ */
$previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidthdetail); $previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidthdetail, $timeout);
$previewer->setConverters($previewconverters); $previewer->setConverters($previewconverters);
$previewer->createPreview($latestContent); $previewer->createPreview($latestContent);
if ($file_exists) { if ($file_exists) {

View File

@ -114,6 +114,7 @@ class SeedDMS_View_ViewFolder extends SeedDMS_Bootstrap_Style {
$maxRecursiveCount = $this->params['maxRecursiveCount']; $maxRecursiveCount = $this->params['maxRecursiveCount'];
$previewwidth = $this->params['previewWidthList']; $previewwidth = $this->params['previewWidthList'];
$previewconverters = $this->params['previewconverters']; $previewconverters = $this->params['previewconverters'];
$timeout = $this->params['timeout'];
$folderid = $folder->getId(); $folderid = $folder->getId();
@ -131,7 +132,7 @@ class SeedDMS_View_ViewFolder extends SeedDMS_Bootstrap_Style {
$this->pageNavigation($this->getFolderPathHTML($folder), "view_folder", $folder); $this->pageNavigation($this->getFolderPathHTML($folder), "view_folder", $folder);
} }
$previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth); $previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth, $timeout);
$previewer->setConverters($previewconverters); $previewer->setConverters($previewconverters);
echo $this->callHook('preContent'); echo $this->callHook('preContent');

View File

@ -37,6 +37,7 @@ class SeedDMS_View_WorkflowSummary extends SeedDMS_Bootstrap_Style {
$cachedir = $this->params['cachedir']; $cachedir = $this->params['cachedir'];
$previewwidth = $this->params['previewWidthList']; $previewwidth = $this->params['previewWidthList'];
$previewconverters = $this->params['previewconverters']; $previewconverters = $this->params['previewconverters'];
$timeout = $this->params['timeout'];
$this->htmlStartPage(getMLText("my_documents")); $this->htmlStartPage(getMLText("my_documents"));
$this->globalNavigation(); $this->globalNavigation();
@ -49,7 +50,7 @@ class SeedDMS_View_WorkflowSummary extends SeedDMS_Bootstrap_Style {
// Get document list for the current user. // Get document list for the current user.
$workflowStatus = $user->getWorkflowStatus(); $workflowStatus = $user->getWorkflowStatus();
$previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth); $previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth, $timeout);
$previewer->setConverters($previewconverters); $previewer->setConverters($previewconverters);
$printheader=true; $printheader=true;