BUG 5601 Documents are being loaded too slow
Fixed issue implementing pagination. Some other fixes and improvements applied in this commit: Better Refresh button for documents tree, bug 6919 fixed too
This commit is contained in:
@@ -42,7 +42,7 @@ class AppFolder extends BaseAppFolder {
|
||||
$oDataset->next ();
|
||||
if ($aRow = $oDataset->getRow ()) {//Folder exist, then return the ID
|
||||
$response['success']=false;
|
||||
$response['message']=$response['error']="Can't create folder <br /> A folder with same name already exists. <br /> $folderParent$folderName";
|
||||
$response['message']=$response['error']="Can't create folder <br /> A folder with same name already exists. <br /> $folderName";
|
||||
$response['folderUID']=$aRow ['FOLDER_UID'];
|
||||
//return ($aRow ['FOLDER_UID']);
|
||||
return ($response);
|
||||
@@ -58,7 +58,7 @@ class AppFolder extends BaseAppFolder {
|
||||
// we save it, since we get no validation errors, or do whatever else you like.
|
||||
$res = $tr->save ();
|
||||
$response['success']=true;
|
||||
$response['message']=$response['error']="Folder successfully created. <br /> $folderParent$folderName";
|
||||
$response['message']="Folder successfully created. <br /> $folderName";
|
||||
$response['folderUID']=$folderUID;
|
||||
return ($response);
|
||||
//return $folderUID;
|
||||
@@ -127,7 +127,7 @@ class AppFolder extends BaseAppFolder {
|
||||
* @param string(32) $folderID
|
||||
* @return multitype:
|
||||
*/
|
||||
function getFolderList($folderID) {
|
||||
function getFolderList($folderID, $limit=0, $start=0) {
|
||||
$Criteria = new Criteria ( 'workflow' );
|
||||
$Criteria->clearSelectColumns ()->clearOrderByColumns ();
|
||||
|
||||
@@ -141,15 +141,23 @@ class AppFolder extends BaseAppFolder {
|
||||
|
||||
$Criteria->addAscendingOrderByColumn ( AppFolderPeer::FOLDER_NAME );
|
||||
|
||||
$response['totalFoldersCount'] = AppFolderPeer::doCount($Criteria);
|
||||
$response['folders'] = array();
|
||||
|
||||
if($limit != 0){
|
||||
|
||||
$Criteria->setLimit($limit);
|
||||
$Criteria->setOffset($start);
|
||||
}
|
||||
$rs = appFolderPeer::doSelectRS ( $Criteria );
|
||||
$rs->setFetchmode ( ResultSet::FETCHMODE_ASSOC );
|
||||
$rs->next ();
|
||||
$folderResult = array ();
|
||||
while ( is_array ( $row = $rs->getRow () ) ) {
|
||||
$folderResult [] = $row;
|
||||
$response['folders'] [] = $row;
|
||||
$rs->next ();
|
||||
}
|
||||
return ($folderResult);
|
||||
return ($response);
|
||||
}
|
||||
/**
|
||||
* @param string(32) $folderUid
|
||||
@@ -190,7 +198,7 @@ class AppFolder extends BaseAppFolder {
|
||||
return $folderArray;
|
||||
}
|
||||
|
||||
function getFolderContent($folderID, $docIdFilter = array(), $keyword = NULL, $searchType = NULL) {
|
||||
function getFolderContent($folderID, $docIdFilter = array(), $keyword = NULL, $searchType = NULL, $limit=0, $start=0) {
|
||||
require_once ("classes/model/AppDocument.php");
|
||||
require_once ("classes/model/InputDocument.php");
|
||||
require_once ("classes/model/OutputDocument.php");
|
||||
@@ -213,12 +221,19 @@ class AppFolder extends BaseAppFolder {
|
||||
|
||||
$oCase->verifyTable ();
|
||||
|
||||
$oCriteria->setOffset(0);
|
||||
$oCriteria->setLimit(150);
|
||||
|
||||
$oCriteria->addAscendingOrderByColumn ( AppDocumentPeer::APP_DOC_INDEX );
|
||||
$oCriteria->addDescendingOrderByColumn ( AppDocumentPeer::DOC_VERSION );
|
||||
|
||||
|
||||
$response['totalDocumentsCount'] = AppDocumentPeer::doCount($oCriteria);
|
||||
$response['documents'] = array();
|
||||
|
||||
|
||||
|
||||
$oCriteria->setLimit($limit);
|
||||
$oCriteria->setOffset($start);
|
||||
|
||||
$rs = AppDocumentPeer::doSelectRS ( $oCriteria );
|
||||
$rs->setFetchmode ( ResultSet::FETCHMODE_ASSOC );
|
||||
$rs->next ();
|
||||
@@ -238,15 +253,15 @@ class AppFolder extends BaseAppFolder {
|
||||
if ((in_array ( $row ['APP_DOC_UID'], $completeInfo ['INPUT_DOCUMENTS'] )) || (in_array ( $row ['APP_DOC_UID'], $completeInfo ['OUTPUT_DOCUMENTS'] )) || (in_array ( $completeInfo ['USR_UID'], array ($_SESSION ['USER_LOGGED'], '-1' ) ))) {
|
||||
if (count ( $docIdFilter ) > 0) {
|
||||
if (in_array ( $row ['APP_DOC_UID'], $docIdFilter )) {
|
||||
$filesResult [] = $completeInfo;
|
||||
$response['documents'][] = $completeInfo;
|
||||
}
|
||||
} elseif ($lastVersion == $row ['DOC_VERSION']) { //Only Last Document version
|
||||
if ($searchType == "ALL") {// If search in name of docs is active then filter
|
||||
if ((stripos ( $completeInfo ['APP_DOC_FILENAME'], $keyword ) !== false) || (stripos ( $completeInfo ['APP_DOC_TAGS'], $keyword ) !== false)) {
|
||||
$filesResult [] = $completeInfo;
|
||||
$response['documents'][] = $completeInfo;
|
||||
}
|
||||
} else {//No search filter active
|
||||
$filesResult [] = $completeInfo;
|
||||
$response['documents'][] = $completeInfo;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -255,7 +270,7 @@ class AppFolder extends BaseAppFolder {
|
||||
}
|
||||
$rs->next ();
|
||||
}
|
||||
return ($filesResult);
|
||||
return ($response);
|
||||
}
|
||||
function getCompleteDocumentInfo($appUid, $appDocUid, $docVersion, $docUid, $usrId) {
|
||||
require_once ("classes/model/AppDocument.php");
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
<?php
|
||||
|
||||
if (! isset ( $_REQUEST ['action'] )) {
|
||||
$res ['success'] = 'failure';
|
||||
$res ['success'] = false;
|
||||
$res ['message'] = 'You may request an action';
|
||||
print G::json_encode ( $res);
|
||||
die ();
|
||||
}
|
||||
if (! function_exists ( $_REQUEST ['action'] )) {
|
||||
$res ['success'] = 'failure';
|
||||
$res ['success'] = false;
|
||||
$res ['message'] = 'The requested action doesn\'t exists';
|
||||
print G::json_encode ( $res );
|
||||
die ();
|
||||
@@ -18,7 +18,27 @@ $functionParams = isset ( $_REQUEST ['params'] ) ? $_REQUEST ['params'] : array
|
||||
|
||||
$functionName ( $functionParams );
|
||||
|
||||
function getExtJSParams() {
|
||||
$validParams = array('callback' => '', 'dir' => 'DESC', 'sort' => '', 'start' => 0, 'limit' => 25, 'filter' => '', 'search' => '', 'action' => '', 'xaction' => '', 'data' => '', 'status' => '', 'query' => '', 'fields' => "");
|
||||
$result = array();
|
||||
foreach ($validParams as $paramName => $paramDefault) {
|
||||
$result[$paramName] = isset($_REQUEST[$paramName]) ? $_REQUEST[$paramName] : isset($_REQUEST[$paramName]) ? $_REQUEST[$paramName] : $paramDefault;
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
function sendJsonResultGeneric($response, $callback) {
|
||||
header("Content-Type: application/json");
|
||||
$finalResponse = json_encode($response);
|
||||
if ($callback != '') {
|
||||
print $callback . "($finalResponse);";
|
||||
} else {
|
||||
print $finalResponse;
|
||||
}
|
||||
}
|
||||
|
||||
function expandNode(){
|
||||
extract(getExtJSParams());
|
||||
require_once ("classes/model/AppFolder.php");
|
||||
|
||||
$oPMFolder = new AppFolder ( );
|
||||
@@ -28,13 +48,26 @@ function expandNode(){
|
||||
if($_POST ['node']=="") $_POST ['node'] ="/";
|
||||
if($_POST ['node']=="root") $_POST ['node'] ="/";
|
||||
if(!(isset($_POST['sendWhat']))) $_POST['sendWhat']="both";
|
||||
$totalItems=0;
|
||||
$totalFolders=0;
|
||||
$totalDocuments=0;
|
||||
if(($_POST['sendWhat']=="dirs")||($_POST['sendWhat']=="both")){
|
||||
$folderList = $oPMFolder->getFolderList ( $_POST ['node'] != 'root' ? $_POST ['node'] == 'NA' ? "" : $_POST ['node'] : $rootFolder );
|
||||
$folderListObj = $oPMFolder->getFolderList ( $_POST ['node'] != 'root' ? $_POST ['node'] == 'NA' ? "" : $_POST ['node'] : $rootFolder, $limit, $start );
|
||||
//G::pr($folderListObj);
|
||||
$folderList=$folderListObj['folders'];
|
||||
$totalFolders=$folderListObj['totalFoldersCount'];
|
||||
$totalItems+=count($folderList);
|
||||
|
||||
//G::pr($folderList);
|
||||
}
|
||||
if(($_POST['sendWhat']=="files")||($_POST['sendWhat']=="both")){
|
||||
$folderContent = $oPMFolder->getFolderContent ( $_POST ['node'] != 'root' ? $_POST ['node'] == 'NA' ? "" : $_POST ['node'] : $rootFolder );
|
||||
//G::pr($folderContent);
|
||||
$folderContentObj = $oPMFolder->getFolderContent ( $_POST ['node'] != 'root' ? $_POST ['node'] == 'NA' ? "" : $_POST ['node'] : $rootFolder, array(), NULL, NULL, $limit, $start );
|
||||
//G::pr($folderContentObj);
|
||||
$folderContent=$folderContentObj['documents'];
|
||||
$totalDocuments=$folderContentObj['totalDocumentsCount'];
|
||||
$totalItems+=count($folderContent);
|
||||
|
||||
//G::pr($folderContent);
|
||||
}
|
||||
//G::pr($folderContent);
|
||||
$processListTree=array();
|
||||
@@ -162,7 +195,7 @@ function expandNode(){
|
||||
$tempTree ['appDocPlugin'] = $obj['APP_DOC_PLUGIN'];
|
||||
$tempTree ['appDocTags'] = $obj['APP_DOC_TAGS'];
|
||||
$tempTree ['appDocTitle'] = $obj['APP_DOC_TITLE'];
|
||||
$tempTree ['appDocComment'] = $obj['APP_DOC_COMMENT'];
|
||||
$tempTree ['appDocComment'] = $tempTree ['qtip'] = $obj['APP_DOC_COMMENT'];
|
||||
$tempTree ['appDocFileName'] = $obj['APP_DOC_FILENAME'];
|
||||
if(isset($obj['APP_NUMBER'])){
|
||||
$tempTree ['appLabel'] = sprintf("%s '%s' (%s)",$obj['APP_NUMBER'],$obj['APP_TITLE'],$obj['STATUS']);
|
||||
@@ -243,7 +276,8 @@ function expandNode(){
|
||||
}
|
||||
}
|
||||
if((isset($_POST['option']))&&($_POST['option']=="gridDocuments")){
|
||||
$processListTreeTemp['totalCount']=count($processListTree);
|
||||
$processListTreeTemp['totalCount']=$totalFolders+$totalDocuments;//count($processListTree);
|
||||
|
||||
$processListTreeTemp['items']=$processListTree;
|
||||
$processListTree = $processListTreeTemp;
|
||||
}
|
||||
@@ -1028,6 +1062,7 @@ function newFolder(){
|
||||
$oPMFolder = new AppFolder ( );
|
||||
//G::pr($_POST);
|
||||
if($_POST ['dir']=="") $_POST ['dir']="/";
|
||||
if($_POST ['dir']=="root") $_POST ['dir']="/";
|
||||
$folderStructure = $oPMFolder->getFolderStructure ( $_POST ['dir'] );
|
||||
//G::pr($folderStructure);
|
||||
$folderPath = $folderStructure ['PATH'];
|
||||
@@ -1206,8 +1241,10 @@ function getMime($fileName){
|
||||
$return['icon']="/images/documents/extension/document.png";
|
||||
if(count($fileNameA)>1){
|
||||
$extension=$fileNameA[count($fileNameA)-1];
|
||||
$return['description']=G::LoadTranslation("MIME_DES_".strtoupper($extension));
|
||||
$return['icon']="/images/documents/extension/".strtolower($extension).".png";
|
||||
if(file_exists(PATH_HTML."images/documents/extension/".strtolower($extension).".png")){
|
||||
$return['description']=G::LoadTranslation("MIME_DES_".strtoupper($extension));
|
||||
$return['icon']="/images/documents/extension/".strtolower($extension).".png";
|
||||
}
|
||||
}
|
||||
return $return;
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user