Skip to content

Commit

Permalink
Merge pull request #5569 from olsesacl/develop-show-preview-documents
Browse files Browse the repository at this point in the history
NEW Preview documents
  • Loading branch information
eldy committed Aug 4, 2016
2 parents c73f962 + 5fe0d60 commit 7211542
Show file tree
Hide file tree
Showing 2 changed files with 92 additions and 0 deletions.
33 changes: 33 additions & 0 deletions htdocs/core/class/html.formfile.class.php
Expand Up @@ -619,6 +619,9 @@ function showdocuments($modulepart,$modulesubdir,$filedir,$urlsource,$genallowed
$out.= ' target="_blank">';
$out.= img_mime($file["name"],$langs->trans("File").': '.$file["name"]).' '.dol_trunc($file["name"],$maxfilenamelength);
$out.= '</a>'."\n";

$out.= $this->showPreview($file,$modulepart,$relativepath);

$out.= '</td>';

// Show file size
Expand Down Expand Up @@ -739,6 +742,8 @@ function getDocumentsLink($modulepart, $modulesubdir, $filedir, $filter='')
$out.= img_mime($relativepath, $file["name"]);
$out.= '</a>'."\n";

$out.= $this->showPreview($file,$modulepart,$relativepath);

$this->infofiles['nboffiles']++;
$this->infofiles['files'][]=$file['fullname'];
$ext=pathinfo($file["name"], PATHINFO_EXTENSION);
Expand Down Expand Up @@ -859,6 +864,9 @@ function list_of_documents($filearray,$object,$modulepart,$param='',$forcedownlo
//print dol_trunc($file['name'],$maxlength,'middle');
print $file['name'];
print '</a>';

print $this->showPreview($file,$modulepart,$filepath);

print "</td>\n";
print '<td align="right" width="80px">'.dol_print_size($file['size'],1,1).'</td>';
print '<td align="center" width="130px">'.dol_print_date($file['date'],"dayhour","tzuser").'</td>';
Expand Down Expand Up @@ -1320,5 +1328,30 @@ public function listOfLinks($object, $permtodelete=1, $action=null, $selected=nu
return $nboflinks;
}

/**
* Show detail icon with link for preview
* @param array $file File
* @param string $modulepart propal, facture, facture_fourn, ...
* @param string $relativepath Relative path of docs
* @return string $out Output string with HTML
*/
public function showPreview($file, $modulepart, $relativepath){
global $langs, $conf;

if (empty($conf->use_javascript_ajax)) return '';

$out='';

$mime_preview = array('jpeg', 'png', 'gif', 'tiff', 'pdf', 'plain', 'css');
$num_mime = array_search(dol_mimetype($file['name'], '', 1), $mime_preview);

if( $num_mime!== false){
$out.= ' <a href="javascript:document_preview(\''.DOL_URL_ROOT.'/document.php?modulepart='.$modulepart.'&amp;attachment=0&amp;file='.urlencode($relativepath).'\',\''.dol_mimetype($file['name']).'\', \''.$file['name'].'\')">';
$out.= img_picto($langs->trans('Preview'), 'detail').'</a>';

return $out;
}
}

}

59 changes: 59 additions & 0 deletions htdocs/core/js/lib_head.js.php
Expand Up @@ -948,6 +948,65 @@ function copyToClipboard(text,text2)
return false;
}

/*
* Function show document preview
* @params string file File path
* @params string type mime file
* @params string title
*/
function document_preview(file, type, title){

var ValidImageTypes = ["image/gif", "image/jpeg", "image/png"];

if ($.inArray(type, ValidImageTypes) < 0) {
var width='85%';
var object_width='100%';
var height = $( window ).height()*0.90;
var object_height='98%';

show_preview();

} else {
var object_width=0;
var object_height=0;

var img = new Image();

img.onload = function() {
object_width = this.width;
object_height = this.height;

width = $( window ).width()*0.90;
if(object_width < width){
width = object_width + 30
}
height = $( window ).height()*0.85;
if(object_height < height){
height = object_height + 80
}

show_preview();

};
img.src = file;

}
function show_preview(){

var newElem = '<object data="'+file+'" type="'+type+'" width="'+object_width+'" height="'+object_height+'"></object>';

$("#dialogforpopup").html(newElem);
$("#dialogforpopup").dialog({
closeOnEscape: true,
resizable: true,
width: width,
height: height,
modal: true,
title: title
});
}
}

/*
* Provide a function to get an URL GET parameter in javascript
*
Expand Down

0 comments on commit 7211542

Please sign in to comment.