From ec8f40cf1f912ac34051058a817ebebceb384d39 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 8 Mar 2016 14:56:27 +0100 Subject: [PATCH 01/14] rename getNotificationsByGroup() to getNotifications() --- SeedDMS_Core/Core/inc.ClassGroup.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SeedDMS_Core/Core/inc.ClassGroup.php b/SeedDMS_Core/Core/inc.ClassGroup.php index f6f61d327..f53eeb708 100644 --- a/SeedDMS_Core/Core/inc.ClassGroup.php +++ b/SeedDMS_Core/Core/inc.ClassGroup.php @@ -357,7 +357,7 @@ class SeedDMS_Core_Group { * @param integer $type type of item (T_DOCUMENT or T_FOLDER) * @return array array of notifications */ - function getNotificationsByGroup($type=0) { /* {{{ */ + function getNotifications($type=0) { /* {{{ */ $db = $this->_dms->getDB(); $queryStr = "SELECT `tblNotify`.* FROM `tblNotify` ". "WHERE `tblNotify`.`groupID` = ". $this->_id; From 3031596312cfcba401c8365484f32bab7599f7cf Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 8 Mar 2016 14:59:04 +0100 Subject: [PATCH 02/14] replace old UI:: function calls --- views/bootstrap/class.ObjectCheck.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/views/bootstrap/class.ObjectCheck.php b/views/bootstrap/class.ObjectCheck.php index a312d972f..73a732e3c 100644 --- a/views/bootstrap/class.ObjectCheck.php +++ b/views/bootstrap/class.ObjectCheck.php @@ -96,7 +96,7 @@ class SeedDMS_View_ObjectCheck extends SeedDMS_Bootstrap_Style { print "\n"; $this->needsrepair = true; $lc = $document->getLatestContent(); - print "getID()."\">getFileType())."\" title=\"".$lc->getMimeType()."\">"; + print "getID()."\">getMimeIcon($lc->getFileType())."\" title=\"".$lc->getMimeType()."\">"; print "getID()."\">/"; $folder = $document->getFolder(); $tmppath = $folder->getPath(); @@ -124,7 +124,7 @@ class SeedDMS_View_ObjectCheck extends SeedDMS_Bootstrap_Style { $filepath = $dms->contentDir . $version->getPath(); if(!file_exists($filepath)) { print "\n"; - print "getID()."\">getFileType())."\" title=\"".$version->getMimeType()."\">"; + print "getID()."\">getMimeIcon($version->getFileType())."\" title=\"".$version->getMimeType()."\">"; print "getID()."\">/"; $folder = $document->getFolder(); $tmppath = $folder->getPath(); From 5471c17b0f568e5fc4f022da94b584c7d57116cb Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 8 Mar 2016 16:07:42 +0100 Subject: [PATCH 03/14] better check if reviewer/approver still exist --- views/bootstrap/class.ViewDocument.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/views/bootstrap/class.ViewDocument.php b/views/bootstrap/class.ViewDocument.php index 79da05dfd..b6ebbc339 100644 --- a/views/bootstrap/class.ViewDocument.php +++ b/views/bootstrap/class.ViewDocument.php @@ -545,9 +545,9 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style { } else { $reqName = htmlspecialchars($required->getFullName()." (".$required->getLogin().")"); + if($required->getId() == $user->getId() && ($user->getId() != $owner->getId() || $enableownerrevapp == 1)) + $is_reviewer = true; } - if($r["required"] == $user->getId() && ($user->getId() != $owner->getId() || $enableownerrevapp == 1)) - $is_reviewer = true; break; case 1: // Reviewer is a group. $required = $dms->getGroup($r["required"]); @@ -614,9 +614,9 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style { } else { $reqName = htmlspecialchars($required->getFullName()." (".$required->getLogin().")"); + if($required->getId() == $user->getId()) + $is_approver = true; } - if($a["required"] == $user->getId()) - $is_approver = true; break; case 1: // Approver is a group. $required = $dms->getGroup($a["required"]); @@ -625,9 +625,9 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style { } else { $reqName = "".htmlspecialchars($required->getName()).""; + if($required->isMember($user) && ($user->getId() != $owner->getId() || $enableownerrevapp == 1)) + $is_approver = true; } - if($required->isMember($user) && ($user->getId() != $owner->getId() || $enableownerrevapp == 1)) - $is_approver = true; break; } print "\n"; From 02307528ba74c883d15ff82be05647909556d39b Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 8 Mar 2016 17:22:46 +0100 Subject: [PATCH 04/14] check if $object is set --- SeedDMS_Preview/Preview/Previewer.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/SeedDMS_Preview/Preview/Previewer.php b/SeedDMS_Preview/Preview/Previewer.php index 067b104b2..cc493c588 100644 --- a/SeedDMS_Preview/Preview/Previewer.php +++ b/SeedDMS_Preview/Preview/Previewer.php @@ -98,6 +98,9 @@ class SeedDMS_Preview_Previewer { * @return string file name of preview image */ protected function getFileName($object, $width) { /* }}} */ + if(!$object) + return false; + $document = $object->getDocument(); $dir = $this->previewDir.'/'.$document->getDir(); switch(get_class($object)) { @@ -173,6 +176,9 @@ class SeedDMS_Preview_Previewer { } /* }}} */ public function createPreview($object, $width=0) { /* {{{ */ + if(!$object) + return false; + if($width == 0) $width = $this->width; else @@ -248,6 +254,9 @@ class SeedDMS_Preview_Previewer { } /* }}} */ public function hasPreview($object, $width=0) { /* {{{ */ + if(!$object) + return false; + if($width == 0) $width = $this->width; else From ffd73017112c181100e46a2901ed900b7189abec Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 8 Mar 2016 17:23:07 +0100 Subject: [PATCH 05/14] use more translations, send notification email when folder is deleted --- op/op.Ajax.php | 53 ++++++++++++++++++++++++++++++++------------------ 1 file changed, 34 insertions(+), 19 deletions(-) diff --git a/op/op.Ajax.php b/op/op.Ajax.php index 3cf17a426..172a1ba5b 100644 --- a/op/op.Ajax.php +++ b/op/op.Ajax.php @@ -218,26 +218,26 @@ switch($command) { if($folder->getAccessMode($user) >= M_READWRITE) { if($mfolder->setParent($folder)) { header('Content-Type: application/json'); - echo json_encode(array('success'=>true, 'message'=>'Folder moved', 'data'=>'')); + echo json_encode(array('success'=>true, 'message'=>getMLText('splash_move_folder'), 'data'=>'')); } else { header('Content-Type: application/json'); echo json_encode(array('success'=>false, 'message'=>'Error moving folder', 'data'=>'')); } } else { header('Content-Type: application/json'); - echo json_encode(array('success'=>false, 'message'=>'No access on destination folder', 'data'=>'')); + echo json_encode(array('success'=>false, 'message'=>getMLText('access_denied'), 'data'=>'')); } } else { header('Content-Type: application/json'); - echo json_encode(array('success'=>false, 'message'=>'No destination folder', 'data'=>'')); + echo json_encode(array('success'=>false, 'message'=>getMLText('invalid_folder_id'), 'data'=>'')); } } else { header('Content-Type: application/json'); - echo json_encode(array('success'=>false, 'message'=>'No access', 'data'=>'')); + echo json_encode(array('success'=>false, 'message'=>getMLText('access_denied'), 'data'=>'')); } } else { header('Content-Type: application/json'); - echo json_encode(array('success'=>false, 'message'=>'No folder', 'data'=>'')); + echo json_encode(array('success'=>false, 'message'=>getMLText('invalid_folder_id'), 'data'=>'')); } } } @@ -259,23 +259,23 @@ switch($command) { echo json_encode(array('success'=>true, 'message'=>getMLText('splash_move_document'), 'data'=>'')); } else { header('Content-Type: application/json'); - echo json_encode(array('success'=>false, 'message'=>'Error moving folder', 'data'=>'')); + echo json_encode(array('success'=>false, 'message'=>'Error moving document', 'data'=>'')); } } else { header('Content-Type: application/json'); - echo json_encode(array('success'=>false, 'message'=>'No access on destination folder', 'data'=>'')); + echo json_encode(array('success'=>false, 'message'=>getMLText('access_denied'), 'data'=>'')); } } else { header('Content-Type: application/json'); - echo json_encode(array('success'=>false, 'message'=>'No destination folder', 'data'=>'')); + echo json_encode(array('success'=>false, 'message'=>getMLText('invalid_folder_id'), 'data'=>'')); } } else { header('Content-Type: application/json'); - echo json_encode(array('success'=>false, 'message'=>'No access', 'data'=>'')); + echo json_encode(array('success'=>false, 'message'=>getMLText('access_denied'), 'data'=>'')); } } else { header('Content-Type: application/json'); - echo json_encode(array('success'=>false, 'message'=>'No folder', 'data'=>'')); + echo json_encode(array('success'=>false, 'message'=>getMLText('invalid_doc_id'), 'data'=>'')); } } } @@ -291,6 +291,21 @@ switch($command) { if($folder) { if ($folder->getAccessMode($user) >= M_READWRITE) { if($folder->remove()) { + if ($notifier) { + $subject = "folder_deleted_email_subject"; + $message = "folder_deleted_email_body"; + $params = array(); + $params['name'] = $foldername; + $params['folder_path'] = $parent->getFolderPathPlain(); + $params['username'] = $user->getFullName(); + $params['sitename'] = $settings->_siteName; + $params['http_root'] = $settings->_httpRoot; + $params['url'] = "http".((isset($_SERVER['HTTPS']) && (strcmp($_SERVER['HTTPS'],'off')!=0)) ? "s" : "")."://".$_SERVER['HTTP_HOST'].$settings->_httpRoot."out/out.ViewFolder.php?folderid=".$parent->getID(); + $notifier->toList($user, $nl["users"], $subject, $message, $params); + foreach ($nl["groups"] as $grp) { + $notifier->toGroup($user, $grp, $subject, $message, $params); + } + } header('Content-Type: application/json'); echo json_encode(array('success'=>true, 'message'=>'', 'data'=>'')); } else { @@ -299,11 +314,11 @@ switch($command) { } } else { header('Content-Type: application/json'); - echo json_encode(array('success'=>false, 'message'=>'No access', 'data'=>'')); + echo json_encode(array('success'=>false, 'message'=>getMLText('access_denied'), 'data'=>'')); } } else { header('Content-Type: application/json'); - echo json_encode(array('success'=>false, 'message'=>'No folder', 'data'=>'')); + echo json_encode(array('success'=>false, 'message'=>getMLText('invalid_folder_id'), 'data'=>'')); } } } @@ -363,11 +378,11 @@ switch($command) { } } else { header('Content-Type: application/json'); - echo json_encode(array('success'=>false, 'message'=>'No access', 'data'=>'')); + echo json_encode(array('success'=>false, 'message'=>getMLText('access_denied'), 'data'=>'')); } } else { header('Content-Type: application/json'); - echo json_encode(array('success'=>false, 'message'=>'No document', 'data'=>'')); + echo json_encode(array('success'=>false, 'message'=>getMLText('invalid_doc_id'), 'data'=>'')); } } } @@ -386,11 +401,11 @@ switch($command) { echo json_encode(array('success'=>false, 'message'=>'Error unlocking document', 'data'=>'')); } else { header('Content-Type: application/json'); - echo json_encode(array('success'=>true, 'message'=>'', 'data'=>'')); + echo json_encode(array('success'=>true, 'message'=>getMLText('splash_document_unlocked'), 'data'=>'')); } } else { header('Content-Type: application/json'); - echo json_encode(array('success'=>false, 'message'=>'No access', 'data'=>'')); + echo json_encode(array('success'=>false, 'message'=>getMLText('access_denied'), 'data'=>'')); } } else { if (!$document->setLocked($user)) { @@ -398,16 +413,16 @@ switch($command) { echo json_encode(array('success'=>false, 'message'=>'Error locking document', 'data'=>'')); } else { header('Content-Type: application/json'); - echo json_encode(array('success'=>true, 'message'=>'', 'data'=>'')); + echo json_encode(array('success'=>true, 'message'=>getMLText('splash_document_locked'), 'data'=>'')); } } } else { header('Content-Type: application/json'); - echo json_encode(array('success'=>false, 'message'=>'No access', 'data'=>'')); + echo json_encode(array('success'=>false, 'message'=>getMLText('access_denied'), 'data'=>'')); } } else { header('Content-Type: application/json'); - echo json_encode(array('success'=>false, 'message'=>'No document', 'data'=>'')); + echo json_encode(array('success'=>false, 'message'=>getMLText('invalid_doc_id'), 'data'=>'')); } } break; /* }}} */ From 835b16cb07c2c5133b5ce71b6a0d76d6e96afb61 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 8 Mar 2016 17:23:45 +0100 Subject: [PATCH 06/14] take out file deletion --- views/bootstrap/class.BackupTools.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/views/bootstrap/class.BackupTools.php b/views/bootstrap/class.BackupTools.php index a65f6bdf4..d49c45e14 100644 --- a/views/bootstrap/class.BackupTools.php +++ b/views/bootstrap/class.BackupTools.php @@ -174,7 +174,7 @@ class SeedDMS_View_BackupTools extends SeedDMS_Bootstrap_Style { $this->contentContainerEnd(); // files deletion ////////////////////////////////////////////////////////////// - + /* $this->contentHeading(getMLText("files_deletion")); $this->contentContainerStart(); print "

".getMLText("files_deletion_warning")."

\n"; @@ -185,6 +185,7 @@ class SeedDMS_View_BackupTools extends SeedDMS_Bootstrap_Style { print "\n"; $this->contentContainerEnd(); + */ $this->htmlEndPage(); } /* }}} */ From 2d04fc7d93c145e68e11f1581bec8c14ce26a7fe Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 8 Mar 2016 18:33:02 +0100 Subject: [PATCH 07/14] pass showfolders to view --- out/out.DropFolderChooser.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/out/out.DropFolderChooser.php b/out/out.DropFolderChooser.php index 29477f4aa..2365dc8d2 100644 --- a/out/out.DropFolderChooser.php +++ b/out/out.DropFolderChooser.php @@ -36,12 +36,18 @@ if(substr($settings->_dropFolderDir, -1, 1) == DIRECTORY_SEPARATOR) else $dropfolderdir = $settings->_dropFolderDir; +if(isset($_GET['showfolders']) && $_GET['showfolders']) + $showfolders = true; +else + $showfolders = false; + $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'dropfolderdir'=>$dropfolderdir, 'dropfolderfile'=>$_GET["dropfolderfile"], 'form'=>$form)); if($view) { $view->setParam('cachedir', $settings->_cacheDir); $view->setParam('previewWidthList', $settings->_previewWidthList); $view->setParam('timeout', $settings->_cmdTimeout); + $view->setParam('showfolders', $showfolders); $view($_GET); exit; } From 96db0eb052073b9f5c818d0983118a1f667035de Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 8 Mar 2016 18:33:54 +0100 Subject: [PATCH 08/14] dropfolderchoose can select folders --- views/bootstrap/class.Bootstrap.php | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/views/bootstrap/class.Bootstrap.php b/views/bootstrap/class.Bootstrap.php index fcab28ce3..4078e5c9a 100644 --- a/views/bootstrap/class.Bootstrap.php +++ b/views/bootstrap/class.Bootstrap.php @@ -1096,11 +1096,11 @@ $('#acceptkeywords').click(function(ev) { } } /* }}} */ - function printDropFolderChooserHtml($formName, $dropfolderfile="") { /* {{{ */ + function printDropFolderChooserHtml($formName, $dropfolderfile="", $showfolders=0) { /* {{{ */ print "
\n"; ?>