mirror of
				https://git.code.sf.net/p/seeddms/code
				synced 2025-10-26 18:51:20 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			168 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			168 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
|  * Implementation of CategoryChooser 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");
 | |
| 
 | |
| /**
 | |
|  * Include class to preview documents
 | |
|  */
 | |
| require_once("SeedDMS/Preview.php");
 | |
| 
 | |
| /**
 | |
|  * Class which outputs the html page for CategoryChooser 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_DropFolderChooser extends SeedDMS_Bootstrap_Style {
 | |
| 
 | |
| 	function js() { /* {{{ */
 | |
| 		header('Content-Type: application/javascript');
 | |
| ?>
 | |
| $('.fileselect').click(function(ev) {
 | |
| 	attr_filename = $(ev.currentTarget).attr('filename');
 | |
| 	fileSelected(attr_filename);
 | |
| });
 | |
| $('.folderselect').click(function(ev) {
 | |
| 	attr_foldername = $(ev.currentTarget).attr('foldername');
 | |
| 	folderSelected(attr_foldername);
 | |
| });
 | |
| <?php
 | |
| 	} /* }}} */
 | |
| 
 | |
| 	public function menuList() { /* {{{ */
 | |
| 		$dms = $this->params['dms'];
 | |
| 		$user = $this->params['user'];
 | |
| 		$dropfolderdir = $this->params['dropfolderdir'];
 | |
| 		$showfolders = $this->params['showfolders'];
 | |
| 		$cachedir = $this->params['cachedir'];
 | |
| 		$previewwidth = $this->params['previewWidthMenuList'];
 | |
| 		$timeout = $this->params['timeout'];
 | |
| 		$xsendfile = $this->params['xsendfile'];
 | |
| 		$folderid = isset($_GET['folderid']) ? $_GET['folderid'] : 0;
 | |
| 
 | |
| 		$previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth, $timeout, $xsendfile);
 | |
| 
 | |
| 		$c = 0; // count files
 | |
| 		$filecontent = '';
 | |
| 		$dir = rtrim($dropfolderdir, '/').'/'.$user->getLogin();
 | |
| 		/* Check if we are still looking in the configured directory and
 | |
| 		 * not somewhere else, e.g. if the login was '../test'
 | |
| 		 */
 | |
| 		if(dirname($dir) == $dropfolderdir) {
 | |
| 			if(is_dir($dir)) {
 | |
| 				$d = dir($dir);
 | |
| 
 | |
| 				$finfo = finfo_open(FILEINFO_MIME_TYPE);
 | |
| 				while (false !== ($entry = $d->read())) {
 | |
| 					if($entry != '..' && $entry != '.') {
 | |
| 						if($showfolders == 0 && !is_dir($dir.'/'.$entry)) {
 | |
| 							$c++;
 | |
| 							$mimetype = finfo_file($finfo, $dir.'/'.$entry);
 | |
| 							if(file_exists($dir.'/'.$entry)) {
 | |
| 								$filecontent .= "<li><a".($folderid ? " href=\"../out/out.AddDocument.php?folderid=".$folderid."&dropfolderfileform1=".urldecode($entry)."\" title=\"".getMLText('menu_upload_from_dropfolder')."\"" : "").">";
 | |
| 								if($previewwidth) {
 | |
| 									$previewer->createRawPreview($dir.'/'.$entry, 'dropfolder/', $mimetype);
 | |
| 									if($previewer->hasRawPreview($dir.'/'.$entry, 'dropfolder/')) {
 | |
| 										$filecontent .= "<div style=\"float: left; display:inline; width:40px; max-height:40px;overflow:hidden;\"><img filename=\"".$entry."\" width=\"".$previewwidth."\" src=\"../op/op.DropFolderPreview.php?filename=".$entry."&width=".$previewwidth."\" title=\"".htmlspecialchars($mimetype)."\"></div>";
 | |
| 									}
 | |
| 								}
 | |
| 								$filecontent .= "<div style=\"margin-left:10px; margin-right: 40px; display:inline-block;\">".$entry."<br /><span style=\"font-size: 85%;\">".SeedDMS_Core_File::format_filesize(filesize($dir.'/'.$entry)).", ".date('Y-m-d H:i:s', filectime($dir.'/'.$entry))."</span></div></a></li>\n";
 | |
| 							}
 | |
| 						} elseif($showfolders && is_dir($dir.'/'.$entry)) {
 | |
| 							$filecontent .= "<li><a _href=\"\">".$entry."</a></li>";
 | |
| 						}
 | |
| 					}
 | |
| 				}
 | |
| 			}
 | |
| 		}
 | |
| 		$content = '';
 | |
| 		if($c) {
 | |
| 			$content .= "   <ul id=\"main-menu-dropfolderlist\" class=\"nav pull-right\">\n";
 | |
| 			$content .= "    <li class=\"dropdown add-dropfolderlist-area\">\n";
 | |
| 			$content .= "     <a href=\"#\" class=\"dropdown-toggle\" data-toggle=\"dropdown\" class=\"add-dropfolderlist-area\">".getMLText('menu_dropfolder')." (".$c.") <i class=\"icon-caret-down\"></i></a>\n";
 | |
| 			$content .= "     <ul class=\"dropdown-menu\" role=\"menu\">\n";
 | |
| 			$content .= $filecontent;
 | |
| 			$content .= "     </ul>\n";
 | |
| 			$content .= "    </li>\n";
 | |
| 			$content .= "   </ul>\n";
 | |
| 		}
 | |
| 		echo $content;
 | |
| 	} /* }}} */
 | |
| 
 | |
| 	function show() { /* {{{ */
 | |
| 		$dms = $this->params['dms'];
 | |
| 		$user = $this->params['user'];
 | |
| 		$dropfolderfile = $this->params['dropfolderfile'];
 | |
| 		$form = $this->params['form'];
 | |
| 		$dropfolderdir = $this->params['dropfolderdir'];
 | |
| 		$cachedir = $this->params['cachedir'];
 | |
| 		$previewwidth = $this->params['previewWidthList'];
 | |
| 		$timeout = $this->params['timeout'];
 | |
| 		$xsendfile = $this->params['xsendfile'];
 | |
| 		$showfolders = $this->params['showfolders'];
 | |
| 
 | |
| 		$previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth, $timeout, $xsendfile);
 | |
| 
 | |
| 		$dir = $dropfolderdir.'/'.$user->getLogin();
 | |
| 		/* Check if we are still looking in the configured directory and
 | |
| 		 * not somewhere else, e.g. if the login was '../test'
 | |
| 		 */
 | |
| 		if(dirname($dir) == $dropfolderdir) {
 | |
| 			if(is_dir($dir)) {
 | |
| 				$d = dir($dir);
 | |
| 				echo "<table class=\"table table-condensed\">\n";
 | |
| 				echo "<thead>\n";
 | |
| 				echo "<tr><th></th><th>".getMLText('name')."</th><th align=\"right\">".getMLText('file_size')."</th><th>".getMLText('date')."</th></tr>\n";
 | |
| 				echo "</thead>\n";
 | |
| 				echo "<tbody>\n";
 | |
| 				$finfo = finfo_open(FILEINFO_MIME_TYPE);
 | |
| 				while (false !== ($entry = $d->read())) {
 | |
| 					if($entry != '..' && $entry != '.') {
 | |
| 						if($showfolders == 0 && !is_dir($dir.'/'.$entry)) {
 | |
| 							$mimetype = finfo_file($finfo, $dir.'/'.$entry);
 | |
| 							$previewer->createRawPreview($dir.'/'.$entry, 'dropfolder/', $mimetype);
 | |
| 							echo "<tr><td style=\"min-width: ".$previewwidth."px;\">";
 | |
| 							if($previewer->hasRawPreview($dir.'/'.$entry, 'dropfolder/')) {
 | |
| 								echo "<img style=\"cursor: pointer;\" class=\"fileselect mimeicon\" filename=\"".$entry."\" width=\"".$previewwidth."\" src=\"../op/op.DropFolderPreview.php?filename=".$entry."&width=".$previewwidth."\" title=\"".htmlspecialchars($mimetype)."\">";
 | |
| 							}
 | |
| 							echo "</td><td><span style=\"cursor: pointer;\" class=\"fileselect\" filename=\"".$entry."\">".$entry."</span></td><td align=\"right\">".SeedDMS_Core_File::format_filesize(filesize($dir.'/'.$entry))."</td><td>".date('Y-m-d H:i:s', filectime($dir.'/'.$entry))."</td></tr>\n";
 | |
| 						} elseif($showfolders && is_dir($dir.'/'.$entry)) {
 | |
| 							echo "<tr>";
 | |
| 							echo "<td></td>";
 | |
| 							echo "<td><span style=\"cursor: pointer;\" class=\"folderselect\" foldername=\"".$entry."\" >".$entry."</span></td><td align=\"right\"></td><td></td>";
 | |
| 							echo "</tr>\n";
 | |
| 						}
 | |
| 					}
 | |
| 				}
 | |
| 				echo "</tbody>\n";
 | |
| 				echo "</table>\n";
 | |
| 				echo '<script src="../out/out.DropFolderChooser.php?action=js&'.$_SERVER['QUERY_STRING'].'"></script>'."\n";
 | |
| 			} else {
 | |
| 				echo "<div class=\"alert alert-danger\">".getMLText('invalid_dropfolder_folder')."</div>";
 | |
| 			}
 | |
| 		}
 | |
| 	} /* }}} */
 | |
| }
 | |
| ?>
 | 
