Merge branch 'seeddms-5.0.x' into develop

This commit is contained in:
Uwe Steinmann 2016-05-03 06:40:50 +02:00
commit 38f02a149e
46 changed files with 476 additions and 143 deletions

View File

@ -34,6 +34,9 @@
--------------------------------------------------------------------------------
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
- fix strict standard error in SeedDMS_Lucene (Closes #263)
--------------------------------------------------------------------------------
Changes in version 4.3.26
@ -52,7 +55,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

View File

@ -388,6 +388,7 @@ class SeedDMS_Core_DMS {
$this->classnames['group'] = 'SeedDMS_Core_Group';
$this->classnames['transmittal'] = 'SeedDMS_Core_Transmittal';
$this->classnames['transmittalitem'] = 'SeedDMS_Core_TransmittalItem';
$this->callbacks = array();
$this->version = '@package_version@';
if($this->version[0] == '@')
$this->version = '5.1.0';
@ -1648,8 +1649,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)) {
}
}
}
@ -1709,8 +1711,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)) {
}
}
}
@ -1901,8 +1904,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)) {
}
}
}
@ -1976,8 +1980,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)) {
}
}
}
@ -2694,7 +2699,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);
} /* }}} */
/**

View File

@ -2300,9 +2300,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;
}
}
}
@ -2392,8 +2393,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)) {
}
}
}

View File

@ -534,8 +534,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)) {
}
}
}
@ -854,8 +855,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)) {
}
}
}
@ -876,9 +878,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;
}
}
}
@ -916,8 +919,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)) {
}
}
}

View File

@ -1030,6 +1030,22 @@ SeedDMS_Core_DMS::getNotificationsByUser() are deprecated
- fix setting multi value attributes for versions
</notes>
</release>
<release>
<date>2016-04-04</date>
<time>07:38:23</time>
<version>
<release>4.3.26</release>
<api>4.3.26</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="http://opensource.org/licenses/gpl-license">GPL License</license>
<notes>
- add more callbacks
</notes>
</release>
<release>
<date>2016-01-22</date>
<time>14:34:58</time>
@ -1078,5 +1094,21 @@ SeedDMS_Core_DMS::getNotificationsByUser() are deprecated
- all changes from 4.3.26 merged
</notes>
</release>
<release>
<date>2016-04-26</date>
<time>12:04:59</time>
<version>
<release>5.0.2</release>
<api>5.0.2</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="http://opensource.org/licenses/gpl-license">GPL License</license>
<notes>
- all changes from 4.3.25 merged
</notes>
</release>
</changelog>
</package>

View File

@ -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);

View File

@ -11,10 +11,10 @@
<email>uwe@steinmann.cx</email>
<active>yes</active>
</lead>
<date>2016-03-29</date>
<date>2016-04-28</date>
<time>08:11:19</time>
<version>
<release>1.1.8</release>
<release>1.1.9</release>
<api>1.1.7</api>
</version>
<stability>
@ -23,7 +23,7 @@
</stability>
<license uri="http://opensource.org/licenses/gpl-license">GPL License</license>
<notes>
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.
</notes>
<contents>
<dir baseinstalldir="SeedDMS" name="/">
@ -218,5 +218,21 @@ run external commands with a timeout
add command for indexing postѕcript files
</notes>
</release>
<release>
<date>2016-03-29</date>
<time>08:11:19</time>
<version>
<release>1.1.8</release>
<api>1.1.7</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="http://opensource.org/licenses/gpl-license">GPL License</license>
<notes>
set last parameter of stream_select() to 200000 micro sec. in case the timeout in sec. is set to 0
</notes>
</release>
</changelog>
</package>

View File

@ -121,7 +121,7 @@ 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
@ -149,10 +149,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='') { /* {{{ */
@ -210,6 +218,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;
@ -276,9 +297,18 @@ class SeedDMS_Preview_Previewer {
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;
@ -293,6 +323,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;
@ -310,6 +350,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;
@ -324,6 +374,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;
@ -338,6 +398,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;
@ -352,8 +421,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
@ -362,6 +438,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);
} /* }}} */
}
?>

View File

@ -11,11 +11,11 @@
<email>uwe@steinmann.cx</email>
<active>yes</active>
</lead>
<date>2016-04-05</date>
<date>2016-04-26</date>
<time>15:17:11</time>
<version>
<release>1.1.8</release>
<api>1.1.8</api>
<release>1.1.9</release>
<api>1.1.9</api>
</version>
<stability>
<release>stable</release>
@ -23,7 +23,9 @@
</stability>
<license uri="http://opensource.org/licenses/gpl-license">GPL License</license>
<notes>
pass variables to stream_select (required by php7)
add more documentation
finished deletePreview()
add new method deleteDocumentPreviews()
</notes>
<contents>
<dir baseinstalldir="SeedDMS" name="/">
@ -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
</notes>
</release>
<release>
<date>2016-04-05</date>
<time>15:17:11</time>
<version>
<release>1.1.8</release>
<api>1.1.8</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="http://opensource.org/licenses/gpl-license">GPL License</license>
<notes>
pass variables to stream_select (required by php7)
</notes>
</release>
</changelog>
</package>

View File

@ -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

36
op/op.ClearCache.php Normal file
View File

@ -0,0 +1,36 @@
<?php
// SeedDMS. Document Management System
// Copyright (C) 2016 Uwe Steinmann
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
include("../inc/inc.Settings.php");
include("../inc/inc.LogInit.php");
include("../inc/inc.DBInit.php");
include("../inc/inc.Language.php");
include("../inc/inc.ClassUI.php");
include("../inc/inc.Authentication.php");
/* Check if the form data comes for a trusted request */
if(!checkFormKey('clearcache')) {
UI::exitError(getMLText("admin_tools"),getMLText("invalid_request_token"));
}
$cmd = 'rm -rf '.$settings->_cacheDir.'/*';
system($cmd);
add_log_line("");
header("Location:../out/out.AdminTools.php");

View File

@ -69,6 +69,11 @@ if($settings->_enableFullSearch) {
$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();

View File

@ -57,26 +57,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();

View File

@ -60,6 +60,16 @@ if($settings->_enableFullSearch) {
$index = null;
}
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));
/* save this for notification later on */
$nl = $folder->getNotifyList();
$parent=$folder->getParent();

View File

@ -60,37 +60,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();
@ -133,6 +112,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 {

View File

@ -26,11 +26,6 @@ include("../inc/inc.DBInit.php");
include("../inc/inc.ClassUI.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], array('dms'=>$dms, 'user'=>$user));
$accessop = new SeedDMS_AccessOperation($dms, $user, $settings);

View File

@ -27,11 +27,6 @@ include("../inc/inc.DBInit.php");
include("../inc/inc.ClassUI.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], array('dms'=>$dms, 'user'=>$user));
$accessop = new SeedDMS_AccessOperation($dms, $user, $settings);

40
out/out.ClearCache.php Normal file
View File

@ -0,0 +1,40 @@
<?php
// MyDMS. Document Management System
// Copyright (C) 2002-2005 Markus Westphal
// Copyright (C) 2006-2008 Malcolm Cowe
// Copyright (C) 2010 Matteo Lucarelli
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
include("../inc/inc.Version.php");
include("../inc/inc.Settings.php");
include("../inc/inc.DBInit.php");
include("../inc/inc.Language.php");
include("../inc/inc.ClassUI.php");
include("../inc/inc.Authentication.php");
if (!$user->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;
}
?>

View File

@ -28,11 +28,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"));
}

View File

@ -26,11 +26,6 @@ include("../inc/inc.DBInit.php");
include("../inc/inc.ClassUI.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)

View File

@ -27,11 +27,6 @@ include("../inc/inc.DBInit.php");
include("../inc/inc.ClassUI.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], array('dms'=>$dms, 'user'=>$user));
$accessop = new SeedDMS_AccessOperation($dms, $user, $settings);

View File

@ -24,11 +24,6 @@ include("../inc/inc.DBInit.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"));
}

View File

@ -26,11 +26,6 @@ include("../inc/inc.DBInit.php");
include("../inc/inc.ClassUI.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], array('dms'=>$dms, 'user'=>$user));
$accessop = new SeedDMS_AccessOperation($dms, $user, $settings);

View File

@ -27,11 +27,6 @@ include("../inc/inc.DBInit.php");
include("../inc/inc.ClassUI.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], array('dms'=>$dms, 'user'=>$user));
$accessop = new SeedDMS_AccessOperation($dms, $user, $settings);

View File

@ -28,11 +28,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();

View File

@ -25,11 +25,6 @@ include("../inc/inc.DBInit.php");
include("../inc/inc.ClassUI.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], array('dms'=>$dms, 'user'=>$user));
$accessop = new SeedDMS_AccessOperation($dms, $user, $settings);

View File

@ -29,11 +29,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], array('dms'=>$dms, 'user'=>$user));
$accessop = new SeedDMS_AccessOperation($dms, $user, $settings);

View File

@ -27,11 +27,6 @@ include("../inc/inc.DBInit.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));
$accessop = new SeedDMS_AccessOperation($dms, $user, $settings);

View File

@ -27,11 +27,6 @@ include("../inc/inc.DBInit.php");
include("../inc/inc.ClassUI.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], array('dms'=>$dms, 'user'=>$user));
$accessop = new SeedDMS_AccessOperation($dms, $user, $settings);

View File

@ -171,6 +171,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;

View File

@ -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" : "<i class='icon-remove'></i> "+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" : "<i class='icon-remove'></i> "+trans.move_folder,
"class" : "btn-danger",

View File

@ -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
*

View File

@ -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
*
@ -162,7 +167,7 @@ $(document).ready( function() {
<?php
}
?>
<table class="table table-condensed">
<table class="table-condensed">
<tr>
<td>
<?php printMLText("attrdef_name");?>:

View File

@ -769,6 +769,8 @@ $(document).ready(function () {
echo " <li><a href=\"../out/out.ImportFS.php\">".getMLText("importfs")."</a></li>\n";
if ($this->check_access('ExtensionMgr'))
echo " <li><a href=\"../out/out.ExtensionMgr.php\">".getMLText("extension_manager")."</a></li>\n";
if ($this->check_access('ClearCache'))
echo " <li><a href=\"../out/out.ClearCache.php\">".getMLText("clear_cache")."</a></li>\n";
if ($this->check_access('Info'))
echo " <li><a href=\"../out/out.Info.php\">".getMLText("version_info")."</a></li>\n";
echo " </ul>\n";

View File

@ -0,0 +1,60 @@
<?php
/**
* Implementation of ClearCache view
*
* @category DMS
* @package SeedDMS
* @license GPL 2
* @version @version@
* @author Uwe Steinmann <uwe@steinmann.cx>
* @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 <uwe@steinmann.cx>
* @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');
?>
<form action="../op/op.ClearCache.php" name="form1" method="post">
<?php echo createHiddenFieldWithKey('clearcache'); ?>
<p>
<?php printMLText("confirm_clear_cache", array('cache_dir'=>$cachedir));?>
</p>
<p><button type="submit" class="btn"><i class="icon-remove"></i> <?php printMLText("clear_cache");?></button></p>
</form>
<?php
$this->contentContainerEnd();
$this->contentEnd();
$this->htmlEndPage();
} /* }}} */
}
?>

View File

@ -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
*

View File

@ -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
*

View File

@ -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
*

View File

@ -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
*

View File

@ -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
*

View File

@ -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
*

View File

@ -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
*

View File

@ -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
*

View File

@ -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
*
@ -1246,7 +1251,7 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style {
}
}
}
print "</ul>\n";
print "</ul></td>\n";
// print "<td>".htmlspecialchars($version->getComment())."</td>";
print "<td>".getOverallStatusText($vstat["status"])."</td>";
print "<td>";

View File

@ -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
*

View File

@ -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
*