mirror of
https://git.code.sf.net/p/seeddms/code
synced 2026-01-15 13:56:42 +00:00
Merge branch 'seeddms-5.1.x' into seeddms-6.0.x
This commit is contained in:
commit
b5b2e82e25
|
|
@ -358,6 +358,9 @@
|
|||
- use table for list of caches
|
||||
- propper error msgs when saving extension configuration
|
||||
- creating backup archives has been removed
|
||||
- add javascript table sorter
|
||||
- use table sorter on clear cache page and conversion services page
|
||||
- droping an url in the drag&drop area will download the url
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
Changes in version 5.1.42
|
||||
|
|
|
|||
|
|
@ -242,6 +242,15 @@ module.exports = function (grunt) {
|
|||
],
|
||||
dest: bootstrapDir + '/editor.md',
|
||||
flatten: false
|
||||
},{
|
||||
expand: true,
|
||||
cwd: nodeDir + '/tablesort/dist/',
|
||||
src: [
|
||||
'tablesort.min.js',
|
||||
'sorts/**'
|
||||
],
|
||||
dest: bootstrapDir + '/tablesort',
|
||||
flatten: false
|
||||
},{
|
||||
expand: true,
|
||||
src: [
|
||||
|
|
|
|||
|
|
@ -71,7 +71,8 @@
|
|||
"cache/memcached-adapter": "^1.2",
|
||||
"symfony/console": "^7.2",
|
||||
"twig/twig": "^3.0",
|
||||
"league/commonmark": "^2.7"
|
||||
"league/commonmark": "^2.7",
|
||||
"symfony/process": "^7.3"
|
||||
},
|
||||
"require-dev": {
|
||||
"composer/composer": "dev-main"
|
||||
|
|
|
|||
|
|
@ -74,7 +74,8 @@
|
|||
"cache/memcached-adapter": "^1.2",
|
||||
"symfony/console": "^7.2",
|
||||
"twig/twig": "^3.0",
|
||||
"league/commonmark": "^2.7"
|
||||
"league/commonmark": "^2.7",
|
||||
"symfony/process": "^7.3"
|
||||
},
|
||||
"require-dev": {
|
||||
"composer/composer": "dev-main",
|
||||
|
|
|
|||
211
op/op.Ajax.php
211
op/op.Ajax.php
|
|
@ -793,6 +793,217 @@ switch($command) {
|
|||
}
|
||||
break; /* }}} */
|
||||
|
||||
case 'uploadremotedocument': /* {{{ */
|
||||
if($user) {
|
||||
if(checkFormKey('')) {
|
||||
if (!isset($_POST["folderid"]) || !is_numeric($_POST["folderid"]) || intval($_POST["folderid"])<1) {
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode(array('success'=>false, 'message'=>getMLText("invalid_folder_id")));
|
||||
exit;
|
||||
}
|
||||
|
||||
$folderid = $_POST["folderid"];
|
||||
$folder = $dms->getFolder($folderid);
|
||||
|
||||
if (!is_object($folder)) {
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode(array('success'=>false, 'message'=>getMLText("invalid_folder_id")));
|
||||
exit;
|
||||
}
|
||||
|
||||
if ($folder->getAccessMode($user, 'addDocument') < M_READWRITE) {
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode(array('success'=>false, 'message'=>getMLText("access_denied")));
|
||||
exit;
|
||||
}
|
||||
|
||||
if($settings->_quota > 0) {
|
||||
$remain = checkQuota($user);
|
||||
if ($remain < 0) {
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode(array('success'=>false, 'message'=>getMLText("quota_exceeded", array('bytes'=>SeedDMS_Core_File::format_filesize(abs($remain))))));
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
$fullfile = tempnam(sys_get_temp_dir(), '');
|
||||
$fp = fopen($fullfile, 'w');
|
||||
set_time_limit(0); // unlimited max execution time
|
||||
$headers = [];
|
||||
$options = array(
|
||||
CURLOPT_FILE => $fp,
|
||||
CURLOPT_TIMEOUT => 120,
|
||||
CURLOPT_URL => $_POST['remoteurl'],
|
||||
CURLOPT_HEADER => false,
|
||||
CURLOPT_FOLLOWLOCATION => true,
|
||||
);
|
||||
$options[CURLOPT_HEADERFUNCTION] = function($curl, $header) use (&$headers) {
|
||||
$len = strlen($header);
|
||||
$header = explode(':', $header, 2);
|
||||
if (count($header) < 2) // ignore invalid headers
|
||||
return $len;
|
||||
|
||||
$headers[strtolower(trim($header[0]))][] = trim($header[1]);
|
||||
|
||||
return $len;
|
||||
};
|
||||
if($settings->_proxyUrl) {
|
||||
$options[CURLOPT_PROXY] = $settings->_proxyUrl;
|
||||
if($settings->_proxyUser) {
|
||||
$options[CURLOPT_PROXYUSERPWD] = $settings->_proxyUser.':'.$settings->_proxyPassword;
|
||||
}
|
||||
}
|
||||
|
||||
$ch = curl_init();
|
||||
curl_setopt_array($ch, $options);
|
||||
$result = curl_exec($ch);
|
||||
curl_close($ch);
|
||||
fclose($fp);
|
||||
|
||||
$userfiletmp = $fullfile;
|
||||
$userfilename = basename(urldecode($_POST['remoteurl']));
|
||||
if (preg_match('/Content-Disposition:.*?filename="(.+?)"/', $headers['content-disposition'][0], $matches)) {
|
||||
$userfilename = $matches[1];
|
||||
}
|
||||
|
||||
$userfiletype = $headers['content-type'][0];
|
||||
$fileType = ".".pathinfo($userfilename, PATHINFO_EXTENSION);
|
||||
if($fileType == ".") {
|
||||
$fileType = ".".SeedDMS_Core_File::fileExtension($userfiletype);
|
||||
$userfilename .= ".".SeedDMS_Core_File::fileExtension($userfiletype);
|
||||
}
|
||||
|
||||
//$finfo = finfo_open(FILEINFO_MIME_TYPE);
|
||||
//finfo_file($finfo, $fullfile);
|
||||
|
||||
if (!empty($_POST["name"]))
|
||||
$name = $_POST["name"];
|
||||
else
|
||||
$name = utf8_basename($userfilename);
|
||||
|
||||
/* Check if name already exists in the folder */
|
||||
if(!$settings->_enableDuplicateDocNames) {
|
||||
if($folder->hasDocumentByName($name)) {
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode(array('success'=>false, 'message'=>getMLText("document_duplicate_name")));
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
if(isset($_POST["attributes"]))
|
||||
$attributes = $_POST["attributes"];
|
||||
else
|
||||
$attributes = array();
|
||||
|
||||
if(isset($_POST["comment"]))
|
||||
$comment = trim($_POST["comment"]);
|
||||
else
|
||||
$comment = '';
|
||||
|
||||
// Get the list of reviewers and approvers for this document.
|
||||
$reviewers = array();
|
||||
$approvers = array();
|
||||
$reviewers["i"] = array();
|
||||
$reviewers["g"] = array();
|
||||
$approvers["i"] = array();
|
||||
$approvers["g"] = array();
|
||||
$workflow = null;
|
||||
|
||||
if($settings->_workflowMode == 'traditional' || $settings->_workflowMode == 'traditional_only_approval') {
|
||||
// add mandatory reviewers/approvers
|
||||
if($settings->_workflowMode == 'traditional') {
|
||||
$mreviewers = getMandatoryReviewers($folder, null, $user);
|
||||
if($mreviewers['i'])
|
||||
$reviewers['i'] = array_merge($reviewers['i'], $mreviewers['i']);
|
||||
if($mreviewers['g'])
|
||||
$reviewers['g'] = array_merge($reviewers['g'], $mreviewers['g']);
|
||||
}
|
||||
$mapprovers = getMandatoryApprovers($folder, null, $user);
|
||||
if($mapprovers['i'])
|
||||
$approvers['i'] = array_merge($approvers['i'], $mapprovers['i']);
|
||||
if($mapprovers['g'])
|
||||
$approvers['g'] = array_merge($approvers['g'], $mapprovers['g']);
|
||||
|
||||
} elseif($settings->_workflowMode == 'advanced') {
|
||||
$workflow = $user->getMandatoryWorkflow();
|
||||
}
|
||||
|
||||
$expires = false;
|
||||
if($settings->_presetExpirationDate) {
|
||||
$expires = strtotime($settings->_presetExpirationDate);
|
||||
}
|
||||
|
||||
$keywords = isset($_POST["keywords"]) ? trim($_POST["keywords"]) : '';
|
||||
|
||||
$categories = isset($_POST["categories"]) ? $_POST["categories"] : null;
|
||||
$cats = array();
|
||||
if($categories) {
|
||||
foreach($categories as $catid) {
|
||||
if($cat = $dms->getDocumentCategory($catid))
|
||||
$cats[] = $cat;
|
||||
}
|
||||
}
|
||||
|
||||
$controller = Controller::factory('AddDocument', array('dms'=>$dms, 'user'=>$user));
|
||||
$controller->setParam('documentsource', 'upload');
|
||||
$controller->setParam('folder', $folder);
|
||||
$controller->setParam('fulltextservice', $fulltextservice);
|
||||
$controller->setParam('name', $name);
|
||||
$controller->setParam('comment', $comment);
|
||||
$controller->setParam('expires', $expires);
|
||||
$controller->setParam('keywords', $keywords);
|
||||
$controller->setParam('categories', $cats);
|
||||
$controller->setParam('owner', $user);
|
||||
$controller->setParam('userfiletmp', $userfiletmp);
|
||||
$controller->setParam('userfilename', $userfilename);
|
||||
$controller->setParam('filetype', $fileType);
|
||||
$controller->setParam('userfiletype', $userfiletype);
|
||||
$minmax = $folder->getDocumentsMinMax();
|
||||
$deviation = rand(10, 1000)/10;
|
||||
if($settings->_defaultDocPosition == 'start')
|
||||
$controller->setParam('sequence', $minmax['min'] - $deviation);
|
||||
else
|
||||
$controller->setParam('sequence', $minmax['max'] + $deviation);
|
||||
$controller->setParam('reviewers', $reviewers);
|
||||
$controller->setParam('approvers', $approvers);
|
||||
$controller->setParam('reqversion', 1);
|
||||
$controller->setParam('versioncomment', '');
|
||||
$controller->setParam('attributes', $attributes);
|
||||
$controller->setParam('attributesversion', array());
|
||||
$controller->setParam('workflow', $workflow);
|
||||
$controller->setParam('notificationgroups', array());
|
||||
$controller->setParam('notificationusers', array());
|
||||
$controller->setParam('maxsizeforfulltext', $settings->_maxSizeForFullText);
|
||||
$controller->setParam('defaultaccessdocs', $settings->_defaultAccessDocs);
|
||||
|
||||
if(!$document = $controller()) {
|
||||
$err = $controller->getErrorMsg();
|
||||
if(is_string($err))
|
||||
$errmsg = getMLText($err);
|
||||
elseif(is_array($err)) {
|
||||
$errmsg = getMLText($err[0], $err[1]);
|
||||
} else {
|
||||
$errmsg = $err;
|
||||
}
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode(array('success'=>false, 'message'=>$errmsg));
|
||||
exit;
|
||||
} else {
|
||||
// Send notification to subscribers of folder.
|
||||
if($notifier) {
|
||||
$notifier->sendNewDocumentMail($document, $user);
|
||||
}
|
||||
}
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode(array('success'=>true, 'message'=>getMLText('splash_document_updated'), 'data'=>$document->getID()));
|
||||
add_log_line("updated document ".$document->getId());
|
||||
} else {
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode(array('success'=>false, 'message'=>getMLText('invalid_request_token'), 'data'=>''));
|
||||
}
|
||||
}
|
||||
break; /* }}} */
|
||||
|
||||
case 'uploaddocument': /* {{{ */
|
||||
if($user) {
|
||||
if(checkFormKey('')) {
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@
|
|||
"popper.js": "^1.16.1",
|
||||
"select2": "^4.0.13",
|
||||
"spectrum-colorpicker2": "^2.0.10",
|
||||
"tablesort": "^5.6.0",
|
||||
"vis-timeline": "^7.4.7"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2077,7 +2077,8 @@ $(document).ready(function() {
|
|||
$attrs = $attribute->getValueAsArray();
|
||||
$tmp = array();
|
||||
foreach($attrs as $targetfolder) {
|
||||
$tmp[] = '<a href="'.$this->params['settings']->_httpRoot.'out/out.ViewFolder.php?folderid='.$targetfolder->getId().'">'.htmlspecialchars($targetfolder->getName()).'</a>';
|
||||
if ($targetfolder)
|
||||
$tmp[] = '<a href="'.$this->params['settings']->_httpRoot.'out/out.ViewFolder.php?folderid='.$targetfolder->getId().'">'.htmlspecialchars($targetfolder->getName()).'</a>';
|
||||
}
|
||||
return implode('<br />', $tmp);
|
||||
break;
|
||||
|
|
@ -2085,7 +2086,8 @@ $(document).ready(function() {
|
|||
$attrs = $attribute->getValueAsArray();
|
||||
$tmp = array();
|
||||
foreach($attrs as $targetdoc) {
|
||||
$tmp[] = '<a href="'.$this->params['settings']->_httpRoot.'out/out.ViewDocument.php?documentid='.$targetdoc->getId().'">'.htmlspecialchars($targetdoc->getName()).'</a>';
|
||||
if ($targetdoc)
|
||||
$tmp[] = '<a href="'.$this->params['settings']->_httpRoot.'out/out.ViewDocument.php?documentid='.$targetdoc->getId().'">'.htmlspecialchars($targetdoc->getName()).'</a>';
|
||||
}
|
||||
return implode('<br />', $tmp);
|
||||
break;
|
||||
|
|
@ -2093,7 +2095,8 @@ $(document).ready(function() {
|
|||
$attrs = $attribute->getValueAsArray();
|
||||
$tmp = array();
|
||||
foreach($attrs as $curuser) {
|
||||
$tmp[] = htmlspecialchars($curuser->getFullname()." (".$curuser->getLogin().")");
|
||||
if ($curuser)
|
||||
$tmp[] = htmlspecialchars($curuser->getFullname()." (".$curuser->getLogin().")");
|
||||
}
|
||||
return implode('<br />', $tmp);
|
||||
break;
|
||||
|
|
@ -2101,7 +2104,8 @@ $(document).ready(function() {
|
|||
$attrs = $attribute->getValueAsArray();
|
||||
$tmp = array();
|
||||
foreach($attrs as $curgroup) {
|
||||
$tmp[] = htmlspecialchars($curgroup->getName());
|
||||
if ($curgroup)
|
||||
$tmp[] = htmlspecialchars($curgroup->getName());
|
||||
}
|
||||
return implode('<br />', $tmp);
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -13,11 +13,6 @@
|
|||
* @version Release: @package_version@
|
||||
*/
|
||||
|
||||
/**
|
||||
* Include parent class
|
||||
*/
|
||||
//require_once("class.Bootstrap.php");
|
||||
|
||||
/**
|
||||
* Class which outputs the html page for ClearCache view
|
||||
*
|
||||
|
|
@ -31,11 +26,18 @@
|
|||
*/
|
||||
class SeedDMS_View_ClearCache extends SeedDMS_Theme_Style {
|
||||
|
||||
function js() { /* {{{ */
|
||||
header('Content-Type: application/javascript; charset=UTF-8');
|
||||
?>
|
||||
new Tablesort(document.getElementById('clearcachetable'));
|
||||
<?php
|
||||
} /* }}} */
|
||||
|
||||
protected function output($name, $title, $space, $c) {
|
||||
echo '<tr><td><input type="checkbox" name="'.$name.'" value="1" checked></td>';
|
||||
echo '<td>'.$title.'</td>';
|
||||
echo '<td>'.($space !== NULL ? SeedDMS_Core_File::format_filesize($space) : '').'</td>';
|
||||
echo '<td>'.($c !== NULL ? $c : '').'</td>';
|
||||
echo '<td data-sort="'.((int) $space).'">'.($space !== NULL ? SeedDMS_Core_File::format_filesize($space) : '').'</td>';
|
||||
echo '<td data-sort="'.((int) $c).'">'.($c !== NULL ? $c : '').'</td>';
|
||||
echo '</tr>';
|
||||
}
|
||||
|
||||
|
|
@ -44,6 +46,9 @@ class SeedDMS_View_ClearCache extends SeedDMS_Theme_Style {
|
|||
$user = $this->params['user'];
|
||||
$cachedir = $this->params['cachedir'];
|
||||
|
||||
$this->htmlAddHeader('<script type="text/javascript" src="../views/'.$this->theme.'/vendors/tablesort/tablesort.min.js"></script>'."\n", 'js');
|
||||
$this->htmlAddHeader('<script type="text/javascript" src="../views/'.$this->theme.'/vendors/tablesort/sorts/tablesort.number.min.js"></script>'."\n", 'js');
|
||||
|
||||
$this->htmlStartPage(getMLText("admin_tools"));
|
||||
$this->globalNavigation();
|
||||
$this->contentStart();
|
||||
|
|
@ -53,9 +58,9 @@ class SeedDMS_View_ClearCache extends SeedDMS_Theme_Style {
|
|||
?>
|
||||
<form action="../op/op.ClearCache.php" name="form1" method="post">
|
||||
<?php echo createHiddenFieldWithKey('clearcache'); ?>
|
||||
<table class="table table-sm table-condensed table-hover">
|
||||
<table id="clearcachetable" class="table table-sm table-condensed table-hover">
|
||||
<thead>
|
||||
<tr><th></th><th>Cache</th><th>Size</th><th>Files</th></tr>
|
||||
<tr><th data-sort-method="none"></th><th data-sort-method="none">Cache</th><th>Size</th><th>Files</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php
|
||||
|
|
|
|||
|
|
@ -22,14 +22,21 @@
|
|||
*/
|
||||
class SeedDMS_View_ConversionServices extends SeedDMS_Theme_Style {
|
||||
|
||||
function js() { /* {{{ */
|
||||
header('Content-Type: application/javascript; charset=UTF-8');
|
||||
?>
|
||||
new Tablesort(document.getElementById('servicetable'));
|
||||
<?php
|
||||
} /* }}} */
|
||||
|
||||
/**
|
||||
* List all registered conversion services
|
||||
*
|
||||
*/
|
||||
function list_conversion_services($allservices) { /* {{{ */
|
||||
echo "<table class=\"table table-condensed table-sm\">\n";
|
||||
echo "<table id=\"servicetable\" class=\"table table-condensed table-sm\">\n";
|
||||
echo "<thead>";
|
||||
echo "<tr><th>".getMLText('service_list_from')."</th><th>".getMLText('service_list_to')."</th><th>".getMLText('class_name')."</th><th>".getMLText('service_list_info')."</th></tr>\n";
|
||||
echo "<tr><th>".getMLText('service_list_from')."</th><th>".getMLText('service_list_to')."</th><th>".getMLText('class_name')."</th><th data-sort-method=\"none\">".getMLText('service_list_info')."</th></tr>\n";
|
||||
echo "</thead>";
|
||||
echo "<tbody>";
|
||||
foreach($allservices as $from=>$tos) {
|
||||
|
|
@ -48,6 +55,9 @@ class SeedDMS_View_ConversionServices extends SeedDMS_Theme_Style {
|
|||
$user = $this->params['user'];
|
||||
$conversionmgr = $this->params['conversionmgr'];
|
||||
|
||||
$this->htmlAddHeader('<script type="text/javascript" src="../views/'.$this->theme.'/vendors/tablesort/tablesort.min.js"></script>'."\n", 'js');
|
||||
$this->htmlAddHeader('<script type="text/javascript" src="../views/'.$this->theme.'/vendors/tablesort/sorts/tablesort.number.min.js"></script>'."\n", 'js');
|
||||
|
||||
$this->htmlStartPage(getMLText("admin_tools"));
|
||||
$this->globalNavigation();
|
||||
$this->contentStart();
|
||||
|
|
@ -57,7 +67,7 @@ class SeedDMS_View_ConversionServices extends SeedDMS_Theme_Style {
|
|||
$allservices = $conversionmgr->getServices();
|
||||
if($data = $dms->getStatisticalData('docspermimetype')) {
|
||||
$this->contentHeading(getMLText("list_conversion_overview"));
|
||||
echo "<table class=\"table table-condensed table-sm\">\n";
|
||||
echo "<table id=\"mimetypetable\" class=\"table table-condensed table-sm\">\n";
|
||||
echo "<thead>";
|
||||
echo "<tr><th>".getMLText('mimetype')."</th><th>".getMLText('preview')."</th><th>".getMLText('fullsearch')."</th><th>".getMLText('preview_pdf')."</th></tr>\n";
|
||||
echo "</thead>";
|
||||
|
|
|
|||
|
|
@ -767,7 +767,7 @@ $(document).ready( function() {
|
|||
|
||||
function onAddClipboard(ev) { /* {{{ */
|
||||
ev.preventDefault();
|
||||
var source_info = JSON.parse(ev.originalEvent.dataTransfer.getData("text"));
|
||||
var source_info = JSON.parse(ev.originalEvent.dataTransfer.getData("text/json"));
|
||||
source_type = source_info.type;
|
||||
source_id = source_info.id;
|
||||
formtoken = source_info.formtoken;
|
||||
|
|
@ -1004,16 +1004,117 @@ function onAddClipboard(ev) { /* {{{ */
|
|||
}
|
||||
}
|
||||
|
||||
SeedDMSUpload.handleFileUpload = function(target_id, target_type, items,obj,statusbar) {
|
||||
/* target is set for the quick upload area */
|
||||
// var target_id = obj.data('target');
|
||||
// var target_type = 'folder';
|
||||
/* droptarget is set for folders and documents in lists */
|
||||
// var droptarget = obj.data('droptarget');
|
||||
// if(droptarget) {
|
||||
// target_type = droptarget.split("_")[0];
|
||||
// target_id = droptarget.split("_")[1];
|
||||
// }
|
||||
SeedDMSUpload.handleUrlUpload = function(target_id, target_type, url, obj, status, afteruploadfunc) {
|
||||
if(target_type == 'folder' && target_id) {
|
||||
var fd = new FormData();
|
||||
fd.append('targettype', target_type);
|
||||
fd.append('folderid', target_id);
|
||||
fd.append('formtoken', obj.data('uploadformtoken'));
|
||||
fd.append('command', 'uploadremotedocument');
|
||||
fd.append('remoteurl', url);
|
||||
|
||||
$.ajax({
|
||||
url: ajaxurl,
|
||||
type: "POST",
|
||||
contentType: false,
|
||||
dataType:"json",
|
||||
processData: false,
|
||||
cache: false,
|
||||
data: fd,
|
||||
success: function(data) {
|
||||
if(data.success) {
|
||||
noty({
|
||||
text: data.message,
|
||||
type: 'success',
|
||||
dismissQueue: true,
|
||||
layout: 'topRight',
|
||||
theme: 'defaultTheme',
|
||||
timeout: 1500
|
||||
});
|
||||
// if(editBtnLabel)
|
||||
// status.statusbar.after($('<a href="'+seeddms_webroot+'out/out.EditDocument.php?documentid=' + data.data + '" class="btn btn-mini btn-sm btn-primary">' + editBtnLabel + '</a>'));
|
||||
if(afteruploadfunc) {
|
||||
afteruploadfunc();
|
||||
}
|
||||
} else {
|
||||
noty({
|
||||
text: data.message,
|
||||
type: 'error',
|
||||
dismissQueue: true,
|
||||
layout: 'topRight',
|
||||
theme: 'defaultTheme',
|
||||
timeout: 3500
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
} else if(target_type == 'document' && target_id) {
|
||||
var fd = new FormData();
|
||||
fd.append('targettype', target_type);
|
||||
fd.append('documentid', target_id);
|
||||
fd.append('formtoken', obj.data('uploadformtoken'));
|
||||
fd.append('command', 'updateremotedocument');
|
||||
fd.append('remoteurl', url);
|
||||
} else if(target_type == 'attachment' && target_id) {
|
||||
var fd = new FormData();
|
||||
fd.append('targettype', target_type);
|
||||
fd.append('documentid', target_id);
|
||||
fd.append('formtoken', obj.data('uploadformtoken'));
|
||||
fd.append('command', 'addremotefile');
|
||||
fd.append('remoteurl', url);
|
||||
}
|
||||
}
|
||||
|
||||
/* Upload a new file into a folder, as a new document version, or as
|
||||
* a new attachment
|
||||
*/
|
||||
SeedDMSUpload.handleFileUpload = function(target_id, target_type, file, obj, statusbar, afteruploadfunc) {
|
||||
if(file.size <= maxFileSize) {
|
||||
var fd = new FormData();
|
||||
fd.append('targettype', target_type);
|
||||
if (target_type == "folder") {
|
||||
fd.append('folderid', target_id);
|
||||
fd.append('command', 'uploaddocument');
|
||||
} else if (target_type == "document") {
|
||||
fd.append('documentid', target_id);
|
||||
fd.append('command', 'updatedocument');
|
||||
} else if (target_type == "attachment") {
|
||||
fd.append('documentid', target_id);
|
||||
fd.append('command', 'addfile');
|
||||
}
|
||||
fd.append('formtoken', obj.data('uploadformtoken'));
|
||||
if (typeof obj.data('comment') !== 'undefined') {
|
||||
fd.append('comment', obj.data('comment'));
|
||||
}
|
||||
if (typeof obj.data('keywords') !== 'undefined') {
|
||||
fd.append('keywords', obj.data('keywords'));
|
||||
}
|
||||
fd.append('userfile', file);
|
||||
SeedDMSUpload.getFormData(fd, obj.data('attributes'), 'attributes');
|
||||
SeedDMSUpload.getFormData(fd, obj.data('categories'), 'categories');
|
||||
|
||||
statusbar.parent().show();
|
||||
var status = new SeedDMSUpload.createStatusbar(statusbar);
|
||||
status.setFileNameSize(file.name,file.size);
|
||||
SeedDMSUpload.sendFileToServer(fd,status,afteruploadfunc);
|
||||
} else {
|
||||
noty({
|
||||
text: maxFileSizeMsg + '<br /><em>' + file.name + ' (' + file.size + ' Bytes)</em>',
|
||||
type: 'error',
|
||||
dismissQueue: true,
|
||||
layout: 'topRight',
|
||||
theme: 'defaultTheme',
|
||||
timeout: 5000
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/* Upload several files (of type FileSystemEntry) as new documents
|
||||
* into a folder, or as attachments, or as a new document version.
|
||||
* items may contain elements of type FileSystemFileEntry or
|
||||
* FileSystemDirectoryEntry.
|
||||
*/
|
||||
SeedDMSUpload.handleFilesUpload = function(target_id, target_type, items, obj, statusbar) {
|
||||
var afterupload = obj.data('afterupload');
|
||||
if(afterupload) {
|
||||
afteruploadfunc = eval(afterupload);
|
||||
|
|
@ -1025,40 +1126,10 @@ function onAddClipboard(ev) { /* {{{ */
|
|||
}
|
||||
if(target_type == 'folder' && target_id) {
|
||||
for (var i = 0; i < items.length; i++) {
|
||||
var item = items[i]; //.webkitGetAsEntry();
|
||||
var item = items[i];
|
||||
if (item.isFile) {
|
||||
item.file(function(file) {
|
||||
if(file.size <= maxFileSize) {
|
||||
var fd = new FormData();
|
||||
fd.append('targettype', target_type);
|
||||
fd.append('folderid', target_id);
|
||||
fd.append('formtoken', obj.data('uploadformtoken'));
|
||||
if (typeof obj.data('comment') !== 'undefined') {
|
||||
fd.append('comment', obj.data('comment'));
|
||||
}
|
||||
if (typeof obj.data('keywords') !== 'undefined') {
|
||||
fd.append('keywords', obj.data('keywords'));
|
||||
}
|
||||
fd.append('userfile', file);
|
||||
fd.append('command', 'uploaddocument');
|
||||
SeedDMSUpload.getFormData(fd, obj.data('attributes'), 'attributes');
|
||||
SeedDMSUpload.getFormData(fd, obj.data('categories'), 'categories');
|
||||
// fd.append('path', file.webkitRelativePath);
|
||||
|
||||
statusbar.parent().show();
|
||||
var status = new SeedDMSUpload.createStatusbar(statusbar);
|
||||
status.setFileNameSize(file.name,file.size);
|
||||
SeedDMSUpload.sendFileToServer(fd,status,afteruploadfunc);
|
||||
} else {
|
||||
noty({
|
||||
text: maxFileSizeMsg + '<br /><em>' + file.name + ' (' + file.size + ' Bytes)</em>',
|
||||
type: 'error',
|
||||
dismissQueue: true,
|
||||
layout: 'topRight',
|
||||
theme: 'defaultTheme',
|
||||
timeout: 5000
|
||||
});
|
||||
}
|
||||
SeedDMSUpload.handleFileUpload(target_id, target_type, file, obj, statusbar, afteruploadfunc);
|
||||
});
|
||||
} else if(item.isDirectory) {
|
||||
var fd = new FormData();
|
||||
|
|
@ -1074,7 +1145,7 @@ function onAddClipboard(ev) { /* {{{ */
|
|||
// obj.data('afterupload', '()=>{}');
|
||||
var dirReader = item.createReader();
|
||||
dirReader.readEntries(function(entries) {
|
||||
SeedDMSUpload.handleFileUpload(fid, 'folder', entries, obj, statusbar);
|
||||
SeedDMSUpload.handleFilesUpload(fid, 'folder', entries, obj, statusbar);
|
||||
});
|
||||
}
|
||||
/* Just reload the parent folder */
|
||||
|
|
@ -1085,62 +1156,19 @@ function onAddClipboard(ev) { /* {{{ */
|
|||
}
|
||||
} else if(target_type == 'document' && target_id) {
|
||||
for (var i = 0; i < items.length; i++) {
|
||||
var item = items[i]; //.webkitGetAsEntry();
|
||||
var item = items[i];
|
||||
if (item.isFile) {
|
||||
item.file(function(file) {
|
||||
if(file.size <= maxFileSize) {
|
||||
var fd = new FormData();
|
||||
fd.append('targettype', target_type);
|
||||
fd.append('documentid', target_id);
|
||||
fd.append('formtoken', obj.data('uploadformtoken'));
|
||||
fd.append('userfile', file);
|
||||
fd.append('command', 'updatedocument');
|
||||
|
||||
var status = new SeedDMSUpload.createStatusbar(statusbar);
|
||||
status.setFileNameSize(file.name,file.size);
|
||||
SeedDMSUpload.sendFileToServer(fd,status);
|
||||
$("div.ajax[data-action='folderList']").trigger('update', {folderid: seeddms_folder});
|
||||
} else {
|
||||
noty({
|
||||
text: maxFileSizeMsg + '<br /><em>' + file.name + ' (' + file.size + ' Bytes)</em>',
|
||||
type: 'error',
|
||||
dismissQueue: true,
|
||||
layout: 'topRight',
|
||||
theme: 'defaultTheme',
|
||||
timeout: 5000
|
||||
});
|
||||
}
|
||||
SeedDMSUpload.handleFileUpload(target_id, target_type, file, obj, statusbar, afteruploadfunc);
|
||||
});
|
||||
}
|
||||
}
|
||||
} else if(target_type == 'attachment' && target_id) {
|
||||
for (var i = 0; i < items.length; i++) {
|
||||
var item = items[i]; //.webkitGetAsEntry();
|
||||
var item = items[i];
|
||||
if (item.isFile) {
|
||||
item.file(function(file) {
|
||||
if(file.size <= maxFileSize) {
|
||||
var fd = new FormData();
|
||||
fd.append('targettype', target_type);
|
||||
fd.append('documentid', target_id);
|
||||
fd.append('formtoken', obj.data('uploadformtoken'));
|
||||
fd.append('userfile', file);
|
||||
fd.append('command', 'addfile');
|
||||
|
||||
var status = new SeedDMSUpload.createStatusbar(statusbar);
|
||||
status.setFileNameSize(file.name,file.size);
|
||||
SeedDMSUpload.sendFileToServer(fd,status, function(){
|
||||
$("div.ajax[data-action='documentFiles']").trigger('update', {documentid: target_id});
|
||||
});
|
||||
} else {
|
||||
noty({
|
||||
text: maxFileSizeMsg + '<br /><em>' + file.name + ' (' + file.size + ' Bytes)</em>',
|
||||
type: 'error',
|
||||
dismissQueue: true,
|
||||
layout: 'topRight',
|
||||
theme: 'defaultTheme',
|
||||
timeout: 5000
|
||||
});
|
||||
}
|
||||
SeedDMSUpload.handleFileUpload(target_id, target_type, file, obj, statusbar, function(){$("div.ajax[data-action='documentFiles']").trigger('update', {documentid: target_id});});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
@ -1172,16 +1200,51 @@ $(document).ready(function() { /* {{{ */
|
|||
target_type = attr_rel.split("_")[0];
|
||||
target_id = attr_rel.split("_")[1];
|
||||
|
||||
var files = e.originalEvent.dataTransfer.files;
|
||||
var afterupload = $(this).data('afterupload');
|
||||
if(afterupload) {
|
||||
afteruploadfunc = eval(afterupload);
|
||||
} else {
|
||||
afteruploadfunc = function() {
|
||||
if(target_id == seeddms_folder)
|
||||
$("div.ajax[data-action='folderList']").trigger('update', {folderid: seeddms_folder});
|
||||
}
|
||||
}
|
||||
var items = e.originalEvent.dataTransfer.items;
|
||||
|
||||
//We need to send dropped files to Server
|
||||
newitems = [];
|
||||
newsysfiles = [];
|
||||
newfile = null;
|
||||
if(items.length > 0) {
|
||||
for (var i=0; i<items.length; i++) {
|
||||
newitems.push(items[i].webkitGetAsEntry());
|
||||
/* Dropping an image from a web page will result in several items, containing
|
||||
* the image as a file, the url with type text/uri-list and text/plain,
|
||||
* the image tag with type text/html.
|
||||
*/
|
||||
for (const item of items) {
|
||||
// console.log('kind: '+item.kind);
|
||||
// console.log('type: '+item.type);
|
||||
if (item.kind === "file" && item.webkitGetAsEntry()) {
|
||||
newsysfiles.push(item.webkitGetAsEntry());
|
||||
} else if (item.kind === "file" && (f = item.getAsFile())) {
|
||||
newfile = f;
|
||||
}
|
||||
}
|
||||
if (newsysfiles.length > 0) {
|
||||
SeedDMSUpload.handleFilesUpload(target_id, target_type, newsysfiles, $(this), $(this));
|
||||
} else if (newfile) {
|
||||
SeedDMSUpload.handleFileUpload(target_id, target_type, newfile, $(this), $(this), afteruploadfunc);
|
||||
} else {
|
||||
/* Do a second iteration because getAsString() seems to be aysnc */
|
||||
for (const item of items) {
|
||||
if (item.kind === "string" && item.type === "text/uri-list") {
|
||||
item.getAsString((s) => {
|
||||
try {
|
||||
url = new URL(s);
|
||||
SeedDMSUpload.handleUrlUpload(target_id, target_type, url.href, $(this), null, afteruploadfunc);
|
||||
} catch(e) {
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
SeedDMSUpload.handleFileUpload(target_id, target_type, newitems, $(this), $(this));
|
||||
}
|
||||
});
|
||||
|
||||
|
|
@ -1210,109 +1273,123 @@ $(document).ready(function() { /* {{{ */
|
|||
files = e.originalEvent.dataTransfer.files;
|
||||
items = e.originalEvent.dataTransfer.items;
|
||||
if(target_type == 'folder') {
|
||||
/* check for files, because items has an entry if no file was dropped */
|
||||
if(files.length > 0) {
|
||||
// console.log('Drop '+files.length+' files on '+target_type+' '+target_id);
|
||||
newitems = [];
|
||||
for (var i=0; i<items.length; i++) {
|
||||
newitems.push(items[i].webkitGetAsEntry());
|
||||
newitems = [];
|
||||
for (const item of items) {
|
||||
console.log('kind: '+item.kind);
|
||||
console.log('type: '+item.type);
|
||||
if (item.kind === "file" && item.webkitGetAsEntry()) {
|
||||
newitems.push(item.webkitGetAsEntry());
|
||||
} else if (item.kind === "file" && (f=item.getAsFile())) {
|
||||
// newitems.push(f);
|
||||
// console.log(f);
|
||||
}
|
||||
SeedDMSUpload.handleFileUpload(target_id, target_type, newitems,$(e.currentTarget),$('div.statusbar-container h1')/*$(e.currentTarget).find("span")*/);
|
||||
}
|
||||
if (newitems.length > 0) {
|
||||
SeedDMSUpload.handleFilesUpload(target_id, target_type, newitems, $(e.currentTarget),$('div.statusbar-container h1')/*$(e.currentTarget).find("span")*/);
|
||||
} else {
|
||||
/* The data is passed in dataTransfer. The items are meaning less. */
|
||||
var source_info = JSON.parse(e.originalEvent.dataTransfer.getData("text"));
|
||||
source_type = source_info.type;
|
||||
source_id = source_info.id;
|
||||
formtoken = source_info.formtoken;
|
||||
// console.log('Drop '+source_type+' '+source_id+' on '+target_type+' '+target_id);
|
||||
if(source_type == 'document') {
|
||||
var bootbox_message = trans.confirm_move_document;
|
||||
if(source_info.name)
|
||||
bootbox_message += "<p> "+escapeHtml(source_info.name)+' <i class="fa fa-arrow-right"></i> '+escapeHtml(target_name)+"</p>";
|
||||
bootbox.dialog(bootbox_message, [{
|
||||
"label" : "<i class='fa fa-remove'></i> "+trans.move_document,
|
||||
"class" : "btn-danger",
|
||||
"callback": function() {
|
||||
$.get(seeddms_webroot+'op/op.Ajax.php',
|
||||
{ command: 'movedocument', docid: source_id, targetfolderid: target_id, formtoken: formtoken },
|
||||
function(data) {
|
||||
if(data.success) {
|
||||
$('#table-row-document-'+source_id).hide('slow');
|
||||
noty({
|
||||
text: data.message,
|
||||
type: 'success',
|
||||
dismissQueue: true,
|
||||
layout: 'topRight',
|
||||
theme: 'defaultTheme',
|
||||
timeout: 1500
|
||||
});
|
||||
} else {
|
||||
noty({
|
||||
text: data.message,
|
||||
type: 'error',
|
||||
dismissQueue: true,
|
||||
layout: 'topRight',
|
||||
theme: 'defaultTheme',
|
||||
timeout: 3500
|
||||
});
|
||||
}
|
||||
},
|
||||
'json'
|
||||
);
|
||||
}
|
||||
}, {
|
||||
"label" : trans.cancel,
|
||||
"class" : "btn-cancel",
|
||||
"callback": function() {
|
||||
}
|
||||
}]);
|
||||
try {
|
||||
var source_info = JSON.parse(e.originalEvent.dataTransfer.getData("text/json"));
|
||||
source_type = source_info.type;
|
||||
source_id = source_info.id;
|
||||
formtoken = source_info.formtoken;
|
||||
// console.log('Drop '+source_type+' '+source_id+' on '+target_type+' '+target_id);
|
||||
if(source_type == 'document') {
|
||||
var bootbox_message = trans.confirm_move_document;
|
||||
if(source_info.name)
|
||||
bootbox_message += "<p> "+escapeHtml(source_info.name)+' <i class="fa fa-arrow-right"></i> '+escapeHtml(target_name)+"</p>";
|
||||
bootbox.dialog(bootbox_message, [{
|
||||
"label" : "<i class='fa fa-remove'></i> "+trans.move_document,
|
||||
"class" : "btn-danger",
|
||||
"callback": function() {
|
||||
$.get(seeddms_webroot+'op/op.Ajax.php',
|
||||
{ command: 'movedocument', docid: source_id, targetfolderid: target_id, formtoken: formtoken },
|
||||
function(data) {
|
||||
if(data.success) {
|
||||
$('#table-row-document-'+source_id).hide('slow');
|
||||
noty({
|
||||
text: data.message,
|
||||
type: 'success',
|
||||
dismissQueue: true,
|
||||
layout: 'topRight',
|
||||
theme: 'defaultTheme',
|
||||
timeout: 1500
|
||||
});
|
||||
} else {
|
||||
noty({
|
||||
text: data.message,
|
||||
type: 'error',
|
||||
dismissQueue: true,
|
||||
layout: 'topRight',
|
||||
theme: 'defaultTheme',
|
||||
timeout: 3500
|
||||
});
|
||||
}
|
||||
},
|
||||
'json'
|
||||
);
|
||||
}
|
||||
}, {
|
||||
"label" : trans.cancel,
|
||||
"class" : "btn-cancel",
|
||||
"callback": function() {
|
||||
}
|
||||
}]);
|
||||
|
||||
url = seeddms_webroot+"out/out.MoveDocument.php?documentid="+source_id+"&targetid="+target_id;
|
||||
// document.location = url;
|
||||
} else if(source_type == 'folder' && source_id != target_id) {
|
||||
var bootbox_message = trans.confirm_move_folder;
|
||||
if(source_info.name)
|
||||
bootbox_message += "<p> "+escapeHtml(source_info.name)+' <i class="fa fa-arrow-right"></i> '+escapeHtml(target_name)+"</p>";
|
||||
bootbox.dialog(bootbox_message, [{
|
||||
"label" : "<i class='fa fa-arrow-right'></i> "+trans.move_folder,
|
||||
"class" : "btn-danger",
|
||||
"callback": function() {
|
||||
$.get(seeddms_webroot+'op/op.Ajax.php',
|
||||
{ command: 'movefolder', folderid: source_id, targetfolderid: target_id, formtoken: formtoken },
|
||||
function(data) {
|
||||
if(data.success) {
|
||||
$('#table-row-folder-'+source_id).hide('slow');
|
||||
noty({
|
||||
text: data.message,
|
||||
type: 'success',
|
||||
dismissQueue: true,
|
||||
layout: 'topRight',
|
||||
theme: 'defaultTheme',
|
||||
timeout: 1500
|
||||
});
|
||||
} else {
|
||||
noty({
|
||||
text: data.message,
|
||||
type: 'error',
|
||||
dismissQueue: true,
|
||||
layout: 'topRight',
|
||||
theme: 'defaultTheme',
|
||||
timeout: 3500
|
||||
});
|
||||
}
|
||||
},
|
||||
'json'
|
||||
);
|
||||
}
|
||||
}, {
|
||||
"label" : trans.cancel,
|
||||
"class" : "btn-cancel",
|
||||
"callback": function() {
|
||||
}
|
||||
}]);
|
||||
url = seeddms_webroot+"out/out.MoveDocument.php?documentid="+source_id+"&targetid="+target_id;
|
||||
// document.location = url;
|
||||
} else if(source_type == 'folder' && source_id != target_id) {
|
||||
var bootbox_message = trans.confirm_move_folder;
|
||||
if(source_info.name)
|
||||
bootbox_message += "<p> "+escapeHtml(source_info.name)+' <i class="fa fa-arrow-right"></i> '+escapeHtml(target_name)+"</p>";
|
||||
bootbox.dialog(bootbox_message, [{
|
||||
"label" : "<i class='fa fa-arrow-right'></i> "+trans.move_folder,
|
||||
"class" : "btn-danger",
|
||||
"callback": function() {
|
||||
$.get(seeddms_webroot+'op/op.Ajax.php',
|
||||
{ command: 'movefolder', folderid: source_id, targetfolderid: target_id, formtoken: formtoken },
|
||||
function(data) {
|
||||
if(data.success) {
|
||||
$('#table-row-folder-'+source_id).hide('slow');
|
||||
noty({
|
||||
text: data.message,
|
||||
type: 'success',
|
||||
dismissQueue: true,
|
||||
layout: 'topRight',
|
||||
theme: 'defaultTheme',
|
||||
timeout: 1500
|
||||
});
|
||||
} else {
|
||||
noty({
|
||||
text: data.message,
|
||||
type: 'error',
|
||||
dismissQueue: true,
|
||||
layout: 'topRight',
|
||||
theme: 'defaultTheme',
|
||||
timeout: 3500
|
||||
});
|
||||
}
|
||||
},
|
||||
'json'
|
||||
);
|
||||
}
|
||||
}, {
|
||||
"label" : trans.cancel,
|
||||
"class" : "btn-cancel",
|
||||
"callback": function() {
|
||||
}
|
||||
}]);
|
||||
|
||||
url = seeddms_webroot+"out/out.MoveFolder.php?folderid="+source_id+"&targetid="+target_id;
|
||||
// document.location = url;
|
||||
url = seeddms_webroot+"out/out.MoveFolder.php?folderid="+source_id+"&targetid="+target_id;
|
||||
// document.location = url;
|
||||
}
|
||||
} catch(e) {
|
||||
}
|
||||
try {
|
||||
url = new URL(e.originalEvent.dataTransfer.getData("text"));
|
||||
console.log(url.href);
|
||||
SeedDMSUpload.handleUrlUpload(target_id, target_type, url.href, $(e.currentTarget), $('div.statusbar-container h1'));
|
||||
} catch(e) {
|
||||
}
|
||||
}
|
||||
} else if(target_type == 'document') {
|
||||
|
|
@ -1432,7 +1509,7 @@ $(document).ready(function() { /* {{{ */
|
|||
for (var i=0; i<items.length; i++) {
|
||||
newitems.push(items[i].webkitGetAsEntry());
|
||||
}
|
||||
SeedDMSUpload.handleFileUpload(target_id, target_type, newitems,$(e.currentTarget),$('div.statusbar-container h1')/*$(e.currentTarget).find("span")*/);
|
||||
SeedDMSUpload.handleFilesUpload(target_id, target_type, newitems, $(e.currentTarget), $('div.statusbar-container h1')/*$(e.currentTarget).find("span")*/);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
@ -1459,7 +1536,7 @@ $(document).ready(function() { /* {{{ */
|
|||
timeout: 3000
|
||||
});
|
||||
*/
|
||||
e.originalEvent.dataTransfer.setData("text", JSON.stringify(dragStartInfo));
|
||||
e.originalEvent.dataTransfer.setData("text/json", JSON.stringify(dragStartInfo));
|
||||
});
|
||||
|
||||
$(document).on('dragstart', '.table-row-document', function (e) {
|
||||
|
|
@ -1472,7 +1549,7 @@ $(document).ready(function() { /* {{{ */
|
|||
formtoken : $(e.target).attr('formtoken'),
|
||||
name: $(e.target).data('name')+''
|
||||
};
|
||||
e.originalEvent.dataTransfer.setData("text", JSON.stringify(dragStartInfo));
|
||||
e.originalEvent.dataTransfer.setData("text/json", JSON.stringify(dragStartInfo));
|
||||
});
|
||||
|
||||
/* Dropping item on alert below clipboard */
|
||||
|
|
@ -1521,7 +1598,7 @@ $(document).ready(function() { /* {{{ */
|
|||
$(e.target).parent().css('border', '1px solid white');
|
||||
target_type = attr_rel.split("_")[0];
|
||||
target_id = attr_rel.split("_")[1];
|
||||
var source_info = JSON.parse(e.originalEvent.dataTransfer.getData("text"));
|
||||
var source_info = JSON.parse(e.originalEvent.dataTransfer.getData("text/json"));
|
||||
source_type = source_info.type;
|
||||
source_id = source_info.id;
|
||||
formtoken = source_info.formtoken;
|
||||
|
|
|
|||
|
|
@ -2021,7 +2021,8 @@ $(document).ready(function() {
|
|||
$attrs = $attribute->getValueAsArray();
|
||||
$tmp = array();
|
||||
foreach($attrs as $targetfolder) {
|
||||
$tmp[] = '<a href="'.$this->params['settings']->_httpRoot.'out/out.ViewFolder.php?folderid='.$targetfolder->getId().'">'.htmlspecialchars($targetfolder->getName()).'</a>';
|
||||
if ($targetfolder)
|
||||
$tmp[] = '<a href="'.$this->params['settings']->_httpRoot.'out/out.ViewFolder.php?folderid='.$targetfolder->getId().'">'.htmlspecialchars($targetfolder->getName()).'</a>';
|
||||
}
|
||||
return implode('<br />', $tmp);
|
||||
break;
|
||||
|
|
@ -2029,7 +2030,8 @@ $(document).ready(function() {
|
|||
$attrs = $attribute->getValueAsArray();
|
||||
$tmp = array();
|
||||
foreach($attrs as $targetdoc) {
|
||||
$tmp[] = '<a href="'.$this->params['settings']->_httpRoot.'out/out.ViewDocument.php?documentid='.$targetdoc->getId().'">'.htmlspecialchars($targetdoc->getName()).'</a>';
|
||||
if ($targetdoc)
|
||||
$tmp[] = '<a href="'.$this->params['settings']->_httpRoot.'out/out.ViewDocument.php?documentid='.$targetdoc->getId().'">'.htmlspecialchars($targetdoc->getName()).'</a>';
|
||||
}
|
||||
return implode('<br />', $tmp);
|
||||
break;
|
||||
|
|
@ -2037,7 +2039,8 @@ $(document).ready(function() {
|
|||
$attrs = $attribute->getValueAsArray();
|
||||
$tmp = array();
|
||||
foreach($attrs as $curuser) {
|
||||
$tmp[] = htmlspecialchars($curuser->getFullname()." (".$curuser->getLogin().")");
|
||||
if ($curuser)
|
||||
$tmp[] = htmlspecialchars($curuser->getFullname()." (".$curuser->getLogin().")");
|
||||
}
|
||||
return implode('<br />', $tmp);
|
||||
break;
|
||||
|
|
@ -2045,7 +2048,8 @@ $(document).ready(function() {
|
|||
$attrs = $attribute->getValueAsArray();
|
||||
$tmp = array();
|
||||
foreach($attrs as $curgroup) {
|
||||
$tmp[] = htmlspecialchars($curgroup->getName());
|
||||
if ($curgroup)
|
||||
$tmp[] = htmlspecialchars($curgroup->getName());
|
||||
}
|
||||
return implode('<br />', $tmp);
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -117,6 +117,7 @@ function initMost() { /* {{{ */
|
|||
$(".chzn-select-folder").select2({ /* {{{ */
|
||||
theme: "bootstrap4",
|
||||
width: 'resolve',
|
||||
debug: false,
|
||||
ajax: {
|
||||
url: seeddms_webroot+"op/op.Ajax.php",
|
||||
delay: 500,
|
||||
|
|
@ -815,7 +816,7 @@ $(document).ready( function() {
|
|||
|
||||
function onAddClipboard(ev) { /* {{{ */
|
||||
ev.preventDefault();
|
||||
var source_info = JSON.parse(ev.originalEvent.dataTransfer.getData("text"));
|
||||
var source_info = JSON.parse(ev.originalEvent.dataTransfer.getData("text/json"));
|
||||
source_type = source_info.type;
|
||||
source_id = source_info.id;
|
||||
formtoken = source_info.formtoken;
|
||||
|
|
@ -1052,16 +1053,117 @@ function onAddClipboard(ev) { /* {{{ */
|
|||
}
|
||||
}
|
||||
|
||||
SeedDMSUpload.handleFileUpload = function(target_id, target_type, items,obj,statusbar) {
|
||||
/* target is set for the quick upload area */
|
||||
// var target_id = obj.data('target');
|
||||
// var target_type = 'folder';
|
||||
/* droptarget is set for folders and documents in lists */
|
||||
// var droptarget = obj.data('droptarget');
|
||||
// if(droptarget) {
|
||||
// target_type = droptarget.split("_")[0];
|
||||
// target_id = droptarget.split("_")[1];
|
||||
// }
|
||||
SeedDMSUpload.handleUrlUpload = function(target_id, target_type, url, obj, status, afteruploadfunc) {
|
||||
if(target_type == 'folder' && target_id) {
|
||||
var fd = new FormData();
|
||||
fd.append('targettype', target_type);
|
||||
fd.append('folderid', target_id);
|
||||
fd.append('formtoken', obj.data('uploadformtoken'));
|
||||
fd.append('command', 'uploadremotedocument');
|
||||
fd.append('remoteurl', url);
|
||||
|
||||
$.ajax({
|
||||
url: ajaxurl,
|
||||
type: "POST",
|
||||
contentType: false,
|
||||
dataType:"json",
|
||||
processData: false,
|
||||
cache: false,
|
||||
data: fd,
|
||||
success: function(data) {
|
||||
if(data.success) {
|
||||
noty({
|
||||
text: data.message,
|
||||
type: 'success',
|
||||
dismissQueue: true,
|
||||
layout: 'topRight',
|
||||
theme: 'defaultTheme',
|
||||
timeout: 1500
|
||||
});
|
||||
// if(editBtnLabel)
|
||||
// status.statusbar.after($('<a href="'+seeddms_webroot+'out/out.EditDocument.php?documentid=' + data.data + '" class="btn btn-mini btn-sm btn-primary">' + editBtnLabel + '</a>'));
|
||||
if(afteruploadfunc) {
|
||||
afteruploadfunc();
|
||||
}
|
||||
} else {
|
||||
noty({
|
||||
text: data.message,
|
||||
type: 'error',
|
||||
dismissQueue: true,
|
||||
layout: 'topRight',
|
||||
theme: 'defaultTheme',
|
||||
timeout: 3500
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
} else if(target_type == 'document' && target_id) {
|
||||
var fd = new FormData();
|
||||
fd.append('targettype', target_type);
|
||||
fd.append('documentid', target_id);
|
||||
fd.append('formtoken', obj.data('uploadformtoken'));
|
||||
fd.append('command', 'updateremotedocument');
|
||||
fd.append('remoteurl', url);
|
||||
} else if(target_type == 'attachment' && target_id) {
|
||||
var fd = new FormData();
|
||||
fd.append('targettype', target_type);
|
||||
fd.append('documentid', target_id);
|
||||
fd.append('formtoken', obj.data('uploadformtoken'));
|
||||
fd.append('command', 'addremotefile');
|
||||
fd.append('remoteurl', url);
|
||||
}
|
||||
}
|
||||
|
||||
/* Upload a new file into a folder, as a new document version, or as
|
||||
* a new attachment
|
||||
*/
|
||||
SeedDMSUpload.handleFileUpload = function(target_id, target_type, file, obj, statusbar, afteruploadfunc) {
|
||||
if(file.size <= maxFileSize) {
|
||||
var fd = new FormData();
|
||||
fd.append('targettype', target_type);
|
||||
if (target_type == "folder") {
|
||||
fd.append('folderid', target_id);
|
||||
fd.append('command', 'uploaddocument');
|
||||
} else if (target_type == "document") {
|
||||
fd.append('documentid', target_id);
|
||||
fd.append('command', 'updatedocument');
|
||||
} else if (target_type == "attachment") {
|
||||
fd.append('documentid', target_id);
|
||||
fd.append('command', 'addfile');
|
||||
}
|
||||
fd.append('formtoken', obj.data('uploadformtoken'));
|
||||
if (typeof obj.data('comment') !== 'undefined') {
|
||||
fd.append('comment', obj.data('comment'));
|
||||
}
|
||||
if (typeof obj.data('keywords') !== 'undefined') {
|
||||
fd.append('keywords', obj.data('keywords'));
|
||||
}
|
||||
fd.append('userfile', file);
|
||||
SeedDMSUpload.getFormData(fd, obj.data('attributes'), 'attributes');
|
||||
SeedDMSUpload.getFormData(fd, obj.data('categories'), 'categories');
|
||||
|
||||
statusbar.parent().show();
|
||||
var status = new SeedDMSUpload.createStatusbar(statusbar);
|
||||
status.setFileNameSize(file.name,file.size);
|
||||
SeedDMSUpload.sendFileToServer(fd,status,afteruploadfunc);
|
||||
} else {
|
||||
noty({
|
||||
text: maxFileSizeMsg + '<br /><em>' + file.name + ' (' + file.size + ' Bytes)</em>',
|
||||
type: 'error',
|
||||
dismissQueue: true,
|
||||
layout: 'topRight',
|
||||
theme: 'defaultTheme',
|
||||
timeout: 5000
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/* Upload several files (of type FileSystemEntry) as new documents
|
||||
* into a folder, or as attachments, or as a new document version.
|
||||
* items may contain elements of type FileSystemFileEntry or
|
||||
* FileSystemDirectoryEntry.
|
||||
*/
|
||||
SeedDMSUpload.handleFilesUpload = function(target_id, target_type, items, obj, statusbar) {
|
||||
var afterupload = obj.data('afterupload');
|
||||
if(afterupload) {
|
||||
afteruploadfunc = eval(afterupload);
|
||||
|
|
@ -1073,40 +1175,10 @@ function onAddClipboard(ev) { /* {{{ */
|
|||
}
|
||||
if(target_type == 'folder' && target_id) {
|
||||
for (var i = 0; i < items.length; i++) {
|
||||
var item = items[i]; //.webkitGetAsEntry();
|
||||
var item = items[i];
|
||||
if (item.isFile) {
|
||||
item.file(function(file) {
|
||||
if(file.size <= maxFileSize) {
|
||||
var fd = new FormData();
|
||||
fd.append('targettype', target_type);
|
||||
fd.append('folderid', target_id);
|
||||
fd.append('formtoken', obj.data('uploadformtoken'));
|
||||
if (typeof obj.data('comment') !== 'undefined') {
|
||||
fd.append('comment', obj.data('comment'));
|
||||
}
|
||||
if (typeof obj.data('keywords') !== 'undefined') {
|
||||
fd.append('keywords', obj.data('keywords'));
|
||||
}
|
||||
fd.append('userfile', file);
|
||||
fd.append('command', 'uploaddocument');
|
||||
SeedDMSUpload.getFormData(fd, obj.data('attributes'), 'attributes');
|
||||
SeedDMSUpload.getFormData(fd, obj.data('categories'), 'categories');
|
||||
// fd.append('path', file.webkitRelativePath);
|
||||
|
||||
statusbar.parent().show();
|
||||
var status = new SeedDMSUpload.createStatusbar(statusbar);
|
||||
status.setFileNameSize(file.name,file.size);
|
||||
SeedDMSUpload.sendFileToServer(fd,status,afteruploadfunc);
|
||||
} else {
|
||||
noty({
|
||||
text: maxFileSizeMsg + '<br /><em>' + file.name + ' (' + file.size + ' Bytes)</em>',
|
||||
type: 'error',
|
||||
dismissQueue: true,
|
||||
layout: 'topRight',
|
||||
theme: 'defaultTheme',
|
||||
timeout: 5000
|
||||
});
|
||||
}
|
||||
SeedDMSUpload.handleFileUpload(target_id, target_type, file, obj, statusbar, afteruploadfunc);
|
||||
});
|
||||
} else if(item.isDirectory) {
|
||||
var fd = new FormData();
|
||||
|
|
@ -1122,7 +1194,7 @@ function onAddClipboard(ev) { /* {{{ */
|
|||
// obj.data('afterupload', '()=>{}');
|
||||
var dirReader = item.createReader();
|
||||
dirReader.readEntries(function(entries) {
|
||||
SeedDMSUpload.handleFileUpload(fid, 'folder', entries, obj, statusbar);
|
||||
SeedDMSUpload.handleFilesUpload(fid, 'folder', entries, obj, statusbar);
|
||||
});
|
||||
}
|
||||
/* Just reload the parent folder */
|
||||
|
|
@ -1133,62 +1205,19 @@ function onAddClipboard(ev) { /* {{{ */
|
|||
}
|
||||
} else if(target_type == 'document' && target_id) {
|
||||
for (var i = 0; i < items.length; i++) {
|
||||
var item = items[i]; //.webkitGetAsEntry();
|
||||
var item = items[i];
|
||||
if (item.isFile) {
|
||||
item.file(function(file) {
|
||||
if(file.size <= maxFileSize) {
|
||||
var fd = new FormData();
|
||||
fd.append('targettype', target_type);
|
||||
fd.append('documentid', target_id);
|
||||
fd.append('formtoken', obj.data('uploadformtoken'));
|
||||
fd.append('userfile', file);
|
||||
fd.append('command', 'updatedocument');
|
||||
|
||||
var status = new SeedDMSUpload.createStatusbar(statusbar);
|
||||
status.setFileNameSize(file.name,file.size);
|
||||
SeedDMSUpload.sendFileToServer(fd,status);
|
||||
$("div.ajax[data-action='folderList']").trigger('update', {folderid: seeddms_folder});
|
||||
} else {
|
||||
noty({
|
||||
text: maxFileSizeMsg + '<br /><em>' + file.name + ' (' + file.size + ' Bytes)</em>',
|
||||
type: 'error',
|
||||
dismissQueue: true,
|
||||
layout: 'topRight',
|
||||
theme: 'defaultTheme',
|
||||
timeout: 5000
|
||||
});
|
||||
}
|
||||
SeedDMSUpload.handleFileUpload(target_id, target_type, file, obj, statusbar, afteruploadfunc);
|
||||
});
|
||||
}
|
||||
}
|
||||
} else if(target_type == 'attachment' && target_id) {
|
||||
for (var i = 0; i < items.length; i++) {
|
||||
var item = items[i]; //.webkitGetAsEntry();
|
||||
var item = items[i];
|
||||
if (item.isFile) {
|
||||
item.file(function(file) {
|
||||
if(file.size <= maxFileSize) {
|
||||
var fd = new FormData();
|
||||
fd.append('targettype', target_type);
|
||||
fd.append('documentid', target_id);
|
||||
fd.append('formtoken', obj.data('uploadformtoken'));
|
||||
fd.append('userfile', file);
|
||||
fd.append('command', 'addfile');
|
||||
|
||||
var status = new SeedDMSUpload.createStatusbar(statusbar);
|
||||
status.setFileNameSize(file.name,file.size);
|
||||
SeedDMSUpload.sendFileToServer(fd,status, function(){
|
||||
$("div.ajax[data-action='documentFiles']").trigger('update', {documentid: target_id});
|
||||
});
|
||||
} else {
|
||||
noty({
|
||||
text: maxFileSizeMsg + '<br /><em>' + file.name + ' (' + file.size + ' Bytes)</em>',
|
||||
type: 'error',
|
||||
dismissQueue: true,
|
||||
layout: 'topRight',
|
||||
theme: 'defaultTheme',
|
||||
timeout: 5000
|
||||
});
|
||||
}
|
||||
SeedDMSUpload.handleFileUpload(target_id, target_type, file, obj, statusbar, function(){$("div.ajax[data-action='documentFiles']").trigger('update', {documentid: target_id});});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
@ -1220,16 +1249,51 @@ $(document).ready(function() { /* {{{ */
|
|||
target_type = attr_rel.split("_")[0];
|
||||
target_id = attr_rel.split("_")[1];
|
||||
|
||||
var files = e.originalEvent.dataTransfer.files;
|
||||
var afterupload = $(this).data('afterupload');
|
||||
if(afterupload) {
|
||||
afteruploadfunc = eval(afterupload);
|
||||
} else {
|
||||
afteruploadfunc = function() {
|
||||
if(target_id == seeddms_folder)
|
||||
$("div.ajax[data-action='folderList']").trigger('update', {folderid: seeddms_folder});
|
||||
}
|
||||
}
|
||||
var items = e.originalEvent.dataTransfer.items;
|
||||
|
||||
//We need to send dropped files to Server
|
||||
newitems = [];
|
||||
newsysfiles = [];
|
||||
newfile = null;
|
||||
if(items.length > 0) {
|
||||
for (var i=0; i<items.length; i++) {
|
||||
newitems.push(items[i].webkitGetAsEntry());
|
||||
/* Dropping an image from a web page will result in several items, containing
|
||||
* the image as a file, the url with type text/uri-list and text/plain,
|
||||
* the image tag with type text/html.
|
||||
*/
|
||||
for (const item of items) {
|
||||
// console.log('kind: '+item.kind);
|
||||
// console.log('type: '+item.type);
|
||||
if (item.kind === "file" && item.webkitGetAsEntry()) {
|
||||
newsysfiles.push(item.webkitGetAsEntry());
|
||||
} else if (item.kind === "file" && (f = item.getAsFile())) {
|
||||
newfile = f;
|
||||
}
|
||||
}
|
||||
if (newsysfiles.length > 0) {
|
||||
SeedDMSUpload.handleFilesUpload(target_id, target_type, newsysfiles, $(this), $(this));
|
||||
} else if (newfile) {
|
||||
SeedDMSUpload.handleFileUpload(target_id, target_type, newfile, $(this), $(this), afteruploadfunc);
|
||||
} else {
|
||||
/* Do a second iteration because getAsString() seems to be aysnc */
|
||||
for (const item of items) {
|
||||
if (item.kind === "string" && item.type === "text/uri-list") {
|
||||
item.getAsString((s) => {
|
||||
try {
|
||||
url = new URL(s);
|
||||
SeedDMSUpload.handleUrlUpload(target_id, target_type, url.href, $(this), null, afteruploadfunc);
|
||||
} catch(e) {
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
SeedDMSUpload.handleFileUpload(target_id, target_type, newitems, $(this), $(this));
|
||||
}
|
||||
});
|
||||
|
||||
|
|
@ -1258,121 +1322,135 @@ $(document).ready(function() { /* {{{ */
|
|||
files = e.originalEvent.dataTransfer.files;
|
||||
items = e.originalEvent.dataTransfer.items;
|
||||
if(target_type == 'folder') {
|
||||
/* check for files, because items has an entry if no file was dropped */
|
||||
if(files.length > 0) {
|
||||
// console.log('Drop '+files.length+' files on '+target_type+' '+target_id);
|
||||
newitems = [];
|
||||
for (var i=0; i<items.length; i++) {
|
||||
newitems.push(items[i].webkitGetAsEntry());
|
||||
newitems = [];
|
||||
for (const item of items) {
|
||||
console.log('kind: '+item.kind);
|
||||
console.log('type: '+item.type);
|
||||
if (item.kind === "file" && item.webkitGetAsEntry()) {
|
||||
newitems.push(item.webkitGetAsEntry());
|
||||
} else if (item.kind === "file" && (f=item.getAsFile())) {
|
||||
// newitems.push(f);
|
||||
// console.log(f);
|
||||
}
|
||||
SeedDMSUpload.handleFileUpload(target_id, target_type, newitems,$(e.currentTarget),$('div.statusbar-container h1')/*$(e.currentTarget).find("span")*/);
|
||||
}
|
||||
if (newitems.length > 0) {
|
||||
SeedDMSUpload.handleFilesUpload(target_id, target_type, newitems, $(e.currentTarget),$('div.statusbar-container h1')/*$(e.currentTarget).find("span")*/);
|
||||
} else {
|
||||
/* The data is passed in dataTransfer. The items are meaning less. */
|
||||
var source_info = JSON.parse(e.originalEvent.dataTransfer.getData("text"));
|
||||
source_type = source_info.type;
|
||||
source_id = source_info.id;
|
||||
formtoken = source_info.formtoken;
|
||||
// console.log('Drop '+source_type+' '+source_id+' on '+target_type+' '+target_id);
|
||||
if(source_type == 'document') {
|
||||
var bootbox_message = trans.confirm_move_document;
|
||||
if(source_info.name)
|
||||
bootbox_message += "<p> "+escapeHtml(source_info.name)+' <i class="fa fa-arrow-right"></i> '+escapeHtml(target_name)+"</p>";
|
||||
bootbox.dialog({
|
||||
"message" : bootbox_message,
|
||||
"buttons" : {
|
||||
"cancel" : {
|
||||
"label" : trans.cancel,
|
||||
"className" : "btn-secondary",
|
||||
"callback": function() {
|
||||
}
|
||||
},
|
||||
"move" : {
|
||||
"label" : "<i class='fa fa-remove'></i> "+trans.move_document,
|
||||
"className" : "btn-danger",
|
||||
"callback": function() {
|
||||
$.get(seeddms_webroot+'op/op.Ajax.php',
|
||||
{ command: 'movedocument', docid: source_id, targetfolderid: target_id, formtoken: formtoken },
|
||||
function(data) {
|
||||
if(data.success) {
|
||||
$('#table-row-document-'+source_id).hide('slow');
|
||||
noty({
|
||||
text: data.message,
|
||||
type: 'success',
|
||||
dismissQueue: true,
|
||||
layout: 'topRight',
|
||||
theme: 'defaultTheme',
|
||||
timeout: 1500
|
||||
});
|
||||
} else {
|
||||
noty({
|
||||
text: data.message,
|
||||
type: 'error',
|
||||
dismissQueue: true,
|
||||
layout: 'topRight',
|
||||
theme: 'defaultTheme',
|
||||
timeout: 3500
|
||||
});
|
||||
}
|
||||
},
|
||||
'json'
|
||||
);
|
||||
try {
|
||||
var source_info = JSON.parse(e.originalEvent.dataTransfer.getData("text/json"));
|
||||
source_type = source_info.type;
|
||||
source_id = source_info.id;
|
||||
formtoken = source_info.formtoken;
|
||||
// console.log('Drop '+source_type+' '+source_id+' on '+target_type+' '+target_id);
|
||||
if(source_type == 'document') {
|
||||
var bootbox_message = trans.confirm_move_document;
|
||||
if(source_info.name)
|
||||
bootbox_message += "<p> "+escapeHtml(source_info.name)+' <i class="fa fa-arrow-right"></i> '+escapeHtml(target_name)+"</p>";
|
||||
bootbox.dialog({
|
||||
"message" : bootbox_message,
|
||||
"buttons" : {
|
||||
"cancel" : {
|
||||
"label" : trans.cancel,
|
||||
"className" : "btn-secondary",
|
||||
"callback": function() {
|
||||
}
|
||||
},
|
||||
"move" : {
|
||||
"label" : "<i class='fa fa-remove'></i> "+trans.move_document,
|
||||
"className" : "btn-danger",
|
||||
"callback": function() {
|
||||
$.get(seeddms_webroot+'op/op.Ajax.php',
|
||||
{ command: 'movedocument', docid: source_id, targetfolderid: target_id, formtoken: formtoken },
|
||||
function(data) {
|
||||
if(data.success) {
|
||||
$('#table-row-document-'+source_id).hide('slow');
|
||||
noty({
|
||||
text: data.message,
|
||||
type: 'success',
|
||||
dismissQueue: true,
|
||||
layout: 'topRight',
|
||||
theme: 'defaultTheme',
|
||||
timeout: 1500
|
||||
});
|
||||
} else {
|
||||
noty({
|
||||
text: data.message,
|
||||
type: 'error',
|
||||
dismissQueue: true,
|
||||
layout: 'topRight',
|
||||
theme: 'defaultTheme',
|
||||
timeout: 3500
|
||||
});
|
||||
}
|
||||
},
|
||||
'json'
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
url = seeddms_webroot+"out/out.MoveDocument.php?documentid="+source_id+"&targetid="+target_id;
|
||||
// document.location = url;
|
||||
} else if(source_type == 'folder' && source_id != target_id) {
|
||||
var bootbox_message = trans.confirm_move_folder;
|
||||
if(source_info.name)
|
||||
bootbox_message += "<p> "+escapeHtml(source_info.name)+' <i class="fa fa-arrow-right"></i> '+escapeHtml(target_name)+"</p>";
|
||||
bootbox.dialog({
|
||||
"message" : bootbox_message,
|
||||
"buttons" : {
|
||||
"cancel" : {
|
||||
"label" : trans.cancel,
|
||||
"className" : "btn-secondary",
|
||||
"callback": function() {
|
||||
}
|
||||
},
|
||||
"move" : {
|
||||
"label" : "<i class='fa fa-arrow-right'></i> "+trans.move_folder,
|
||||
"className" : "btn-danger",
|
||||
"callback": function() {
|
||||
$.get(seeddms_webroot+'op/op.Ajax.php',
|
||||
{ command: 'movefolder', folderid: source_id, targetfolderid: target_id, formtoken: formtoken },
|
||||
function(data) {
|
||||
if(data.success) {
|
||||
$('#table-row-folder-'+source_id).hide('slow');
|
||||
noty({
|
||||
text: data.message,
|
||||
type: 'success',
|
||||
dismissQueue: true,
|
||||
layout: 'topRight',
|
||||
theme: 'defaultTheme',
|
||||
timeout: 1500
|
||||
});
|
||||
} else {
|
||||
noty({
|
||||
text: data.message,
|
||||
type: 'error',
|
||||
dismissQueue: true,
|
||||
layout: 'topRight',
|
||||
theme: 'defaultTheme',
|
||||
timeout: 3500
|
||||
});
|
||||
}
|
||||
},
|
||||
'json'
|
||||
);
|
||||
url = seeddms_webroot+"out/out.MoveDocument.php?documentid="+source_id+"&targetid="+target_id;
|
||||
// document.location = url;
|
||||
} else if(source_type == 'folder' && source_id != target_id) {
|
||||
var bootbox_message = trans.confirm_move_folder;
|
||||
if(source_info.name)
|
||||
bootbox_message += "<p> "+escapeHtml(source_info.name)+' <i class="fa fa-arrow-right"></i> '+escapeHtml(target_name)+"</p>";
|
||||
bootbox.dialog({
|
||||
"message" : bootbox_message,
|
||||
"buttons" : {
|
||||
"cancel" : {
|
||||
"label" : trans.cancel,
|
||||
"className" : "btn-secondary",
|
||||
"callback": function() {
|
||||
}
|
||||
},
|
||||
"move" : {
|
||||
"label" : "<i class='fa fa-arrow-right'></i> "+trans.move_folder,
|
||||
"className" : "btn-danger",
|
||||
"callback": function() {
|
||||
$.get(seeddms_webroot+'op/op.Ajax.php',
|
||||
{ command: 'movefolder', folderid: source_id, targetfolderid: target_id, formtoken: formtoken },
|
||||
function(data) {
|
||||
if(data.success) {
|
||||
$('#table-row-folder-'+source_id).hide('slow');
|
||||
noty({
|
||||
text: data.message,
|
||||
type: 'success',
|
||||
dismissQueue: true,
|
||||
layout: 'topRight',
|
||||
theme: 'defaultTheme',
|
||||
timeout: 1500
|
||||
});
|
||||
} else {
|
||||
noty({
|
||||
text: data.message,
|
||||
type: 'error',
|
||||
dismissQueue: true,
|
||||
layout: 'topRight',
|
||||
theme: 'defaultTheme',
|
||||
timeout: 3500
|
||||
});
|
||||
}
|
||||
},
|
||||
'json'
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
url = seeddms_webroot+"out/out.MoveFolder.php?folderid="+source_id+"&targetid="+target_id;
|
||||
// document.location = url;
|
||||
url = seeddms_webroot+"out/out.MoveFolder.php?folderid="+source_id+"&targetid="+target_id;
|
||||
// document.location = url;
|
||||
}
|
||||
} catch(e) {
|
||||
}
|
||||
try {
|
||||
url = new URL(e.originalEvent.dataTransfer.getData("text"));
|
||||
console.log(url.href);
|
||||
SeedDMSUpload.handleUrlUpload(target_id, target_type, url.href, $(e.currentTarget), $('div.statusbar-container h1'));
|
||||
} catch(e) {
|
||||
}
|
||||
}
|
||||
} else if(target_type == 'document') {
|
||||
|
|
@ -1406,14 +1484,14 @@ $(document).ready(function() { /* {{{ */
|
|||
"label" : "<i class='fa fa-link'></i> "+trans.upload_new_version,
|
||||
"className" : "btn-danger",
|
||||
"callback": function() {
|
||||
SeedDMSUpload.handleFileUpload(target_id, target_type, newitems,$(e.currentTarget),$('div.statusbar-container h1'));
|
||||
SeedDMSUpload.handleFilesUpload(target_id, target_type, newitems,$(e.currentTarget),$('div.statusbar-container h1'));
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
} else {
|
||||
var source_info = JSON.parse(e.originalEvent.dataTransfer.getData("text"));
|
||||
var source_info = JSON.parse(e.originalEvent.dataTransfer.getData("text/json"));
|
||||
source_type = source_info.type;
|
||||
source_id = source_info.id;
|
||||
formtoken = source_info.formtoken;
|
||||
|
|
@ -1505,7 +1583,7 @@ $(document).ready(function() { /* {{{ */
|
|||
for (var i=0; i<items.length; i++) {
|
||||
newitems.push(items[i].webkitGetAsEntry());
|
||||
}
|
||||
SeedDMSUpload.handleFileUpload(target_id, target_type, newitems,$(e.currentTarget),$('div.statusbar-container h1')/*$(e.currentTarget).find("span")*/);
|
||||
SeedDMSUpload.handleFilesUpload(target_id, target_type, newitems, $(e.currentTarget), $('div.statusbar-container h1')/*$(e.currentTarget).find("span")*/);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
@ -1532,7 +1610,7 @@ $(document).ready(function() { /* {{{ */
|
|||
timeout: 3000
|
||||
});
|
||||
*/
|
||||
e.originalEvent.dataTransfer.setData("text", JSON.stringify(dragStartInfo));
|
||||
e.originalEvent.dataTransfer.setData("text/json", JSON.stringify(dragStartInfo));
|
||||
});
|
||||
|
||||
$(document).on('dragstart', '.table-row-document', function (e) {
|
||||
|
|
@ -1545,7 +1623,7 @@ $(document).ready(function() { /* {{{ */
|
|||
formtoken : $(e.target).attr('formtoken'),
|
||||
name: $(e.target).data('name')+''
|
||||
};
|
||||
e.originalEvent.dataTransfer.setData("text", JSON.stringify(dragStartInfo));
|
||||
e.originalEvent.dataTransfer.setData("text/json", JSON.stringify(dragStartInfo));
|
||||
});
|
||||
|
||||
/* Dropping item on alert below clipboard */
|
||||
|
|
@ -1594,7 +1672,7 @@ $(document).ready(function() { /* {{{ */
|
|||
$(e.target).parent().css('border', '1px solid white');
|
||||
target_type = attr_rel.split("_")[0];
|
||||
target_id = attr_rel.split("_")[1];
|
||||
var source_info = JSON.parse(e.originalEvent.dataTransfer.getData("text"));
|
||||
var source_info = JSON.parse(e.originalEvent.dataTransfer.getData("text/json"));
|
||||
source_type = source_info.type;
|
||||
source_id = source_info.id;
|
||||
formtoken = source_info.formtoken;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user