Spaces:
Sleeping
Sleeping
processmaker-community / processmaker-files /workflow /engine /methods /appFolder /appFolderAjax.php
| use ProcessMaker\Plugins\PluginRegistry; | |
| $filter = new InputFilter(); | |
| $_POST = $filter->xssFilterHard($_POST); | |
| $_GET = $filter->xssFilterHard($_GET); | |
| $_REQUEST = $filter->xssFilterHard($_REQUEST); | |
| if (! isset ($_SESSION ['USER_LOGGED'])) { | |
| $res ['success'] = false; | |
| $res ['error'] = G::LoadTranslation('ID_LOGIN_AGAIN'); | |
| $res ['login'] = true; | |
| print G::json_encode ($res); | |
| die (); | |
| } | |
| $search = isset($_REQUEST ['search']) ? $_REQUEST ['search'] : null; | |
| if (isset ($_REQUEST ['action']) && isset($_REQUEST['sort']) && isset($_REQUEST['dir'])) { | |
| sortContent(); | |
| } | |
| if (! isset ($_REQUEST ['action'])) { | |
| $res ['success'] = false; | |
| $res ['message'] = 'You may request an action'; | |
| print G::json_encode ($res); | |
| die (); | |
| } | |
| $_REQUEST['action'] = ($_REQUEST['action'] == 'rename') ? 'renameFolder' : $_REQUEST['action']; | |
| if (! function_exists ($_REQUEST['action']) || !G::isUserFunction($_REQUEST['action'])) { | |
| $res ['success'] = false; | |
| $res ['message'] = 'The requested action does not exist'; | |
| print G::json_encode ($res); | |
| die (); | |
| } | |
| if (($_REQUEST['action']) != 'renameFolder') { | |
| $functionName = $_REQUEST ['action']; | |
| $functionParams = isset ($_REQUEST ['params']) ? $_REQUEST ['params'] : array (); | |
| $functionName ($functionParams); | |
| } else { | |
| if (!isset($_REQUEST['item']) || | |
| !isset($_REQUEST['newitemname']) || | |
| !isset($_REQUEST['selitems'])) { | |
| exit(); | |
| } | |
| $functionName = 'renameFolder'; | |
| $functionParams = isset ($_REQUEST ['params']) ? $_REQUEST ['params'] : array (); | |
| $oldname = $_REQUEST ['item']; | |
| $newname = $_REQUEST ['newitemname']; | |
| $oUid = $_REQUEST ['selitems']; | |
| if (isset($oUid[0])) { | |
| $uid = $oUid[0]; | |
| } else { | |
| $uid = $oUid; | |
| } | |
| renameFolder ($oldname, $newname, $uid); | |
| } | |
| ///////////////////////////////////////////// | |
| function renameFolder($oldname, $newname, $uid) | |
| { | |
| $folder = new AppFolder(); | |
| //Clean Folder name (delete spaces...) | |
| $newname = trim( $newname ); | |
| $fields = array(); | |
| $fields['FOLDER_UID'] = $uid; | |
| $fields['FOLDER_NAME'] = $newname; | |
| $fields['FOLDER_UPDATE_DATE'] = date('Y-m-d H:i:s'); | |
| $folder->update($fields); | |
| $msgLabel= G::LoadTranslation ('ID_EDIT_SUCCESSFULLY'); | |
| echo "{action: '', error:'error',message: '$msgLabel', success: 'success',folderUID: 'root'}"; | |
| } | |
| /** | |
| * delete folders and documents | |
| * created by carlos pacha carlos@colosa.com, pckrlos@gmail.com | |
| * @param void | |
| * @return true | |
| **/ | |
| function delete() | |
| { | |
| include_once ("classes/model/AppDocument.php"); | |
| include_once ("classes/model/AppFolder.php"); | |
| switch ($_REQUEST['option']) { | |
| case 'documents': | |
| deleteDocuments($_REQUEST['selitems'], $_REQUEST['option']); | |
| break; | |
| case 'directory': | |
| $oAppFoder = new AppFolder (); | |
| $oAppDocument = new AppDocument (); | |
| $aDocuments = $oAppDocument->getDocumentsinFolders($_REQUEST['item']); | |
| if (count($aDocuments) > 0) { | |
| deleteDocuments($aDocuments, $_REQUEST['option']); | |
| } | |
| $oAppFoder->remove($_REQUEST['item'],''); | |
| break; | |
| } | |
| $msgLabel= G::LoadTranslation ('ID_DELETED_SUCCESSFULLY'); | |
| echo "{action: '', error:'error',message: '$msgLabel', success: 'success',folderUID: 'root'}"; | |
| } | |
| /** | |
| * delete docuements | |
| * created by carlos pacha carlos@colosa.com, pckrlos@gmail.com | |
| * @param array $aDocuments | |
| * @param string $opt | |
| * @return true | |
| **/ | |
| function deleteDocuments($aDocuments, $opt) | |
| { | |
| include_once ("classes/model/AppDocument.php"); | |
| $oAppDocument = new AppDocument (); | |
| foreach ($aDocuments as $key => $val) { | |
| if ($opt == 'documents') { | |
| list($sFileUID,$docVersion) = explode('_',$val); | |
| } else { | |
| $sFileUID = $val['sAppDocUid']; | |
| $docVersion = $val['iVersion']; | |
| } | |
| $oAppDocument->remove($sFileUID,$docVersion); | |
| } | |
| return true; | |
| } | |
| ///////////////////////////////////////////// | |
| 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 = G::json_encode($response); | |
| if ($callback != '') { | |
| print $callback . "($finalResponse);"; | |
| } else { | |
| print $finalResponse; | |
| } | |
| } | |
| function expandNode() | |
| { | |
| extract(getExtJSParams()); | |
| $oPMFolder = new AppFolder(); | |
| $rootFolder = "/"; | |
| if ($_POST ['node']=="") { | |
| $_POST ['node'] ="/"; | |
| } | |
| if ($_POST ['node']=="root") { | |
| $_POST ['node'] ="/"; | |
| } | |
| if (!(isset($_POST['sendWhat']))) { | |
| $_POST['sendWhat']="both"; | |
| } | |
| if (isset($_POST['renderTree'])) { | |
| $limit = 1000000; | |
| } | |
| $totalItems=0; | |
| $totalFolders=0; | |
| $totalDocuments=0; | |
| if (($_POST['sendWhat'] == "dirs") || ($_POST['sendWhat'] == "both")) { | |
| $folderListObj = $oPMFolder->getFolderList( | |
| ($_POST["node"] != "root")? (($_POST["node"] == "NA")? "" : $_POST["node"]) : $rootFolder, | |
| $limit, | |
| $start, | |
| 'ASC', | |
| 'name' | |
| ); | |
| $folderList=$folderListObj['folders']; | |
| $totalFolders=$folderListObj['totalFoldersCount']; | |
| $totalItems+=count($folderList); | |
| } | |
| if (($_POST['sendWhat'] == "files") || ($_POST['sendWhat'] == "both")) { | |
| global $RBAC; | |
| $user = ($RBAC->userCanAccess('PM_ALLCASES') == 1)? '' : $_SESSION['USER_LOGGED']; | |
| $folderContentObj = $oPMFolder->getFolderContent( | |
| ($_POST["node"] != "root")? (($_POST["node"] == "NA")? "" : $_POST["node"]) : $rootFolder, | |
| array(), | |
| null, | |
| null, | |
| $limit, | |
| $start, | |
| $user, | |
| true, | |
| $search | |
| ); | |
| $folderContent=$folderContentObj['documents']; | |
| $totalDocuments=$folderContentObj['totalDocumentsCount']; | |
| $totalItems+=count($folderContent); | |
| } | |
| $processListTree = array(); | |
| $tempTree = array(); | |
| if (isset($folderList) && sizeof($folderList)>0) { | |
| //$tempTree=array(); | |
| foreach ($folderList as $key => $obj) { | |
| //$tempTree ['all-obj'] = $obj; | |
| $tempTree ['text'] = $obj['FOLDER_NAME']; | |
| $tempTree ['id'] = $obj['FOLDER_UID']; | |
| $tempTree ['folderID'] = $obj['FOLDER_UID']; | |
| $tempTree ['cls'] = 'folder'; | |
| $tempTree ['draggable'] = true; | |
| $tempTree ['name'] = $obj['FOLDER_NAME']; | |
| $tempTree ['type'] = "Directory"; | |
| $tempTree ['is_file'] = false; | |
| $tempTree ['appDocCreateDate'] = $obj['FOLDER_CREATE_DATE']; | |
| $tempTree ['qtip'] ='<strong>Directory: </strong>'.$obj['FOLDER_NAME']. | |
| '<br /><strong>Create Date:</strong> '.$obj['FOLDER_CREATE_DATE'].''; | |
| $tempTree ['is_writable'] =true; | |
| $tempTree ['is_chmodable'] =true; | |
| $tempTree ['is_readable'] =true; | |
| $tempTree ['is_deletable'] =true; | |
| if ((isset($_POST['option']) )&& ($_POST['option'] == "gridDocuments")) { | |
| $tempTree ['icon'] = "/images/documents/extension/folder.png"; | |
| } | |
| //$tempTree ['leaf'] = true; | |
| //$tempTree ['optionType'] = "category"; | |
| //$tempTree['allowDrop']=false; | |
| //$tempTree ['singleClickExpand'] = false; | |
| /* | |
| if ($key != "No Category") { | |
| $tempTree ['expanded'] = true; | |
| } else { | |
| //$tempTree ['expanded'] = false; | |
| $tempTree ['expanded'] = true; | |
| } | |
| */ | |
| $processListTree [] = $tempTree; | |
| $tempTree=array(); | |
| } | |
| /*if ($_POST ['node'] == '/') { | |
| $notInFolderLabel = G::LoadTranslation ('ID_NOT_IN_FOLDER'); | |
| $tempTree ['text'] = $notInFolderLabel; | |
| $tempTree ['id'] = "NA"; | |
| $tempTree ['folderID'] = "NA"; | |
| $tempTree ['cls'] = 'folder'; | |
| $tempTree ['draggable' ] = true; | |
| $tempTree ['name'] = $notInFolderLabel; | |
| $tempTree ['type'] = "Directory"; | |
| $tempTree ['is_file'] = false; | |
| $tempTree ['qtip'] ='<strong>Directory: </strong>'.$notInFolderLabel.'<br /><i>Unfiled Files</i> '; | |
| $tempTree ['is_writable'] =true; | |
| $tempTree ['is_chmodable'] =true; | |
| $tempTree ['is_readable'] =true; | |
| $tempTree ['is_deletable'] =true; | |
| if ((isset($_POST['option']))&&($_POST['option']=="gridDocuments")) { | |
| $tempTree ['icon'] = "/images/documents/extension/bz2.png"; | |
| }*/ | |
| //$tempTree ['leaf'] = true; | |
| //$tempTree ['optionType'] = "category"; | |
| //$tempTree['allowDrop']=false; | |
| //$tempTree ['singleClickExpand'] = false; | |
| /* | |
| if ($key != "No Category") { | |
| $tempTree ['expanded'] = true; | |
| } else { | |
| //$tempTree ['expanded'] = false; | |
| $tempTree ['expanded'] = true; | |
| } | |
| */ | |
| /*$processListTree [] = $tempTree; | |
| $tempTree=array(); | |
| }*/ | |
| } else { | |
| if ($_POST ['node'] == '/') { | |
| //$tempTree=array(); | |
| //$processListTree [] = array(); | |
| } | |
| } | |
| if (isset($folderContent)) { | |
| foreach ($folderContent as $key => $obj) { | |
| $mimeInformation = getMime($obj["APP_DOC_FILENAME"]); | |
| $tempTree["text"] = $obj["APP_DOC_FILENAME"]; | |
| $tempTree["name"] = $obj["APP_DOC_FILENAME"]; | |
| $tempTree["type"] = $mimeInformation["description"]; | |
| $tempTree["icon"] = $mimeInformation["icon"]; | |
| /* | |
| if (isset($obj['OUT_DOC_GENERATE'])) { | |
| if ($obj['OUT_DOC_GENERATE'] == "BOTH") { | |
| $arrayType=array("PDF","DOC"); | |
| } else { | |
| $arrayType=array($obj['OUT_DOC_GENERATE']); | |
| } | |
| foreach ($arrayType as $keyType => $fileType) { | |
| $tempTree ['text'.$fileType] = $obj['APP_DOC_FILENAME'].".".strtolower($fileType); | |
| $tempTree ['name'.$fileType] = $obj['APP_DOC_FILENAME'].".".strtolower($fileType); | |
| $mimeInformation=getMime($obj['APP_DOC_FILENAME'].".".strtolower($fileType)); | |
| $tempTree ['type'.$fileType] = $mimeInformation['description']; | |
| $tempTree ['icon'.$fileType] = $mimeInformation['icon']; | |
| } | |
| } | |
| */ | |
| $tempTree ['appdocid'] = $obj['APP_DOC_UID']; | |
| $tempTree ['id'] = $obj['APP_DOC_UID_VERSION']; | |
| $tempTree ['cls'] = 'file'; | |
| //$tempTree ['draggable'] = true; | |
| $tempTree ['leaf'] = true; | |
| $tempTree ['is_file'] = true; | |
| //if ((isset($_POST['option']))&&($_POST['option']=="gridDocuments")) { | |
| //} | |
| $tempTree ['docVersion'] = $obj['DOC_VERSION']; | |
| $tempTree ['appUid'] = $obj['APP_UID']; | |
| $tempTree ['usrUid'] = $obj['USR_UID']; | |
| $tempTree ['appDocType'] = ucfirst(strtolower($obj['APP_DOC_TYPE'])); | |
| $tempTree ['appDocCreateDate'] = $obj['APP_DOC_CREATE_DATE']; | |
| $tempTree ['appDocPlugin'] = $obj['APP_DOC_PLUGIN']; | |
| $tempTree ['appDocTags'] = $obj['APP_DOC_TAGS']; | |
| $tempTree ['appDocTitle'] = $obj['APP_DOC_TITLE']; | |
| $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']); | |
| } else { | |
| $tempTree ['appLabel'] = "No case related"; | |
| } | |
| $tempTree ['proTitle'] = $obj['PRO_TITLE']; | |
| $tempTree ['appDocVersionable'] = 0; | |
| if (isset($obj['OUT_DOC_VERSIONING'])) { | |
| $tempTree ['appDocVersionable'] = $obj['OUT_DOC_VERSIONING']; | |
| } elseif (isset($obj['INP_DOC_VERSIONING'])) { | |
| $tempTree ['appDocVersionable'] = $obj['INP_DOC_VERSIONING']; | |
| } | |
| if (isset($obj['USR_LASTNAME']) && isset($obj['USR_LASTNAME'])) { | |
| $tempTree ['owner'] = $obj['USR_USERNAME']; | |
| $tempTree ['owner_firstname'] = $obj['USR_FIRSTNAME']; | |
| $tempTree ['owner_lastname'] = $obj['USR_LASTNAME']; | |
| } else { | |
| $tempTree ['owner'] = $obj['USR_USERNAME']; | |
| $tempTree ['owner_firstname'] = ""; | |
| $tempTree ['owner_lastname'] = ""; | |
| } | |
| $tempTree ['deletelabel'] = $obj['DELETE_LABEL']; | |
| if ((isset($obj['DOWNLOAD_LABEL'])) && ($obj['DOWNLOAD_LABEL']!="")) { | |
| $labelgen=strtoupper(str_replace(".","",$obj['DOWNLOAD_LABEL'])); | |
| $tempTree ['downloadLabel'.$labelgen] = $obj['DOWNLOAD_LABEL']; | |
| $tempTree ['downloadLink'.$labelgen] = $obj['DOWNLOAD_LINK']; | |
| } | |
| $tempTree ['downloadLabel'] = $obj['DOWNLOAD_LABEL']; | |
| $tempTree ['downloadLink'] = $obj['DOWNLOAD_LINK']; | |
| if ((isset($obj['DOWNLOAD_LABEL1'])) && ($obj['DOWNLOAD_LABEL1']!="")) { | |
| $labelgen=strtoupper(str_replace(".","",$obj['DOWNLOAD_LABEL1'])); | |
| $tempTree ['downloadLabel'.$labelgen] = $obj['DOWNLOAD_LABEL1']; | |
| $tempTree ['downloadLink'.$labelgen] = $obj['DOWNLOAD_LINK1']; | |
| } | |
| $tempTree ['downloadLabel1'] = $obj['DOWNLOAD_LABEL1']; | |
| $tempTree ['downloadLink1'] = $obj['DOWNLOAD_LINK1']; | |
| $tempTree ['appDocUidVersion'] = $obj['APP_DOC_UID_VERSION']; | |
| $tempTree ['is_readable'] = true; | |
| $tempTree ['is_file'] = true; | |
| //$tempTree ['optionType'] = "category"; | |
| //$tempTree['allowDrop']=false; | |
| //$tempTree ['singleClickExpand'] = true; | |
| /* | |
| if ($key != "No Category") { | |
| $tempTree ['expanded'] = true; | |
| } else { | |
| //$tempTree ['expanded'] = false; | |
| $tempTree ['expanded'] = true; | |
| } | |
| */ | |
| $tempTree["outDocGenerate"] = ""; | |
| if (isset($obj["OUT_DOC_GENERATE"])) { | |
| switch ($obj["OUT_DOC_GENERATE"]) { | |
| case "PDF": | |
| case "DOC": | |
| $mimeInformation = getMime($obj["APP_DOC_FILENAME"] . "." . strtolower($obj["OUT_DOC_GENERATE"])); | |
| $tempTree["text"] = $obj["APP_DOC_FILENAME"] . "." . strtolower($obj["OUT_DOC_GENERATE"]); | |
| $tempTree["name"] = $obj["APP_DOC_FILENAME"] . "." . strtolower($obj["OUT_DOC_GENERATE"]); | |
| $tempTree["type"] = $mimeInformation["description"]; | |
| $tempTree["icon"] = $mimeInformation["icon"]; | |
| $tempTree["appDocFileName"] = $tempTree["name"]; | |
| $tempTree["downloadLabel"] = $tempTree["downloadLabel" . $obj["OUT_DOC_GENERATE"]]; | |
| $tempTree["downloadLink"] = $tempTree["downloadLink" . $obj["OUT_DOC_GENERATE"]]; | |
| $tempTree["id"] = $tempTree["id"] . "_" . $obj["OUT_DOC_GENERATE"]; | |
| $processListTree[] = $tempTree; | |
| break; | |
| case "BOTH": | |
| $strExpander = null; | |
| $mimeInformation = getMime($obj["APP_DOC_FILENAME"] . ".pdf"); | |
| $strExpander = $strExpander . "<a href=\"javascript:;\" onclick=\"openActionDialog(this, 'download', 'pdf'); return false;\" style=\"color: #000000; text-decoration: none;\"><img src=\"/images/documents/extension/pdf.png\" style=\"margin-left: 25px; border: 0;\" alt=\"\" /> <b>" . $obj["APP_DOC_FILENAME"] . ".pdf</b> (" . $mimeInformation["description"] . ")</a>"; | |
| $strExpander = $strExpander . "<br />"; | |
| $mimeInformation = getMime($obj["APP_DOC_FILENAME"] . ".doc"); | |
| $strExpander = $strExpander . "<a href=\"javascript:;\" onclick=\"openActionDialog(this, 'download', 'doc'); return false;\" style=\"color: #000000; text-decoration: none;\"><img src=\"/images/documents/extension/doc.png\" style=\"margin-left: 25px; border: 0;\" alt=\"\" /> <b>" . $obj["APP_DOC_FILENAME"] . ".doc</b> (" . $mimeInformation["description"] . ")</a>"; | |
| $tempTree["outDocGenerate"] = $strExpander; | |
| $tempTree["text"] = $obj["APP_DOC_FILENAME"]; | |
| $tempTree["name"] = $obj["APP_DOC_FILENAME"]; | |
| $tempTree["type"] = ""; | |
| $tempTree["icon"] = "/images/documents/extension/document.png"; | |
| $tempTree["appDocFileName"] = $tempTree["name"]; | |
| //$tempTree["downloadLabel"] = $obj["DOWNLOAD_LABEL"]; | |
| //$tempTree["downloadLink"] = $obj["DOWNLOAD_LINK"]; | |
| $tempTree["id"] = $tempTree["id"] . "_" . $obj["OUT_DOC_GENERATE"]; | |
| $processListTree[] = $tempTree; | |
| break; | |
| //case "NOFILE": | |
| // break; | |
| } | |
| } else { | |
| if ($obj["APP_DOC_TYPE"] == "OUTPUT" && | |
| $tempTree["type"] == G::LoadTranslation("MIME_DES_FILE") && | |
| preg_match("/^.+&ext=(.+)&.+$/", $tempTree["downloadLink"], $arrayMatch) | |
| ) { | |
| $ext = $arrayMatch[1]; | |
| $mimeInformation = getMime($obj["APP_DOC_FILENAME"] . ".$ext"); | |
| $tempTree["text"] = $obj["APP_DOC_FILENAME"] . ".$ext"; | |
| $tempTree["name"] = $obj["APP_DOC_FILENAME"] . ".$ext"; | |
| $tempTree["type"] = $mimeInformation["description"]; | |
| $tempTree["icon"] = $mimeInformation["icon"]; | |
| } | |
| $processListTree[] = $tempTree; | |
| } | |
| $tempTree = array(); | |
| } | |
| } | |
| if ((isset($_POST['option'])) && ($_POST['option'] == "gridDocuments")) { | |
| $processListTreeTemp["totalCount"] = $totalFolders + $totalDocuments; | |
| $processListTreeTemp['msg']='correct reload'; | |
| $processListTreeTemp['items']=$processListTree; | |
| $processListTree = $processListTreeTemp; | |
| } | |
| echo G::json_encode($processListTree); | |
| } | |
| function sortContent() | |
| { | |
| extract(getExtJSParams()); | |
| $rootFolder = "/"; | |
| $oPMFolder = new AppFolder(); | |
| global $RBAC; | |
| $user = ($RBAC->userCanAccess('PM_ALLCASES') == 1)? '' : $_SESSION['USER_LOGGED']; | |
| $totalItems = 0; | |
| $totalFolders = 0; | |
| $totalDocuments = 0; | |
| if (!(isset($_POST['sendWhat']))) { | |
| $_POST['sendWhat'] = "both"; | |
| } | |
| if (isset($_POST['renderTree'])) { | |
| $limit = 1000000; | |
| } | |
| $direction = "DESC"; | |
| if (isset($_POST['dir'])) { | |
| $direction = $_POST['dir']; | |
| } | |
| if (($_POST['sendWhat'] == "dirs") || ($_POST['sendWhat'] == "both")) { | |
| $folderListObj = $oPMFolder->getFolderList( | |
| ($_POST["node"] != "root")? (($_POST["node"] == "NA")? "" : $_POST["node"]) : $rootFolder, | |
| $limit, | |
| $start, | |
| $direction, | |
| (isset($_POST["sort"]))? $_POST["sort"]:"appDocCreateDate", | |
| $search | |
| ); | |
| $folderList=$folderListObj['folders']; | |
| $totalFolders=$folderListObj['totalFoldersCount']; | |
| $totalItems+=count($folderList); | |
| } | |
| if (($_POST['sendWhat'] == "files") || ($_POST['sendWhat'] == "both")) { | |
| global $RBAC; | |
| $user = ($RBAC->userCanAccess('PM_ALLCASES') == 1)? '' : $_SESSION['USER_LOGGED']; | |
| $folderContentObj = $oPMFolder->getDirectoryContentSortedBy( | |
| ($_POST["node"] != "root")? (($_POST["node"] == "NA")? "" : $_POST["node"]) : $rootFolder, | |
| array(), | |
| null, | |
| null, | |
| $limit, | |
| $start, | |
| $user, | |
| true, | |
| $direction, | |
| (isset($_POST["sort"]))? $_POST["sort"]:"appDocCreateDate", | |
| $search | |
| ); | |
| $folderContent = $folderContentObj['documents']; | |
| $totalDocuments = $folderContentObj['totalDocumentsCount']; | |
| $totalItems += count($folderContent); | |
| } | |
| $processListTree = array(); | |
| $tempTree = array(); | |
| if (isset($folderList) && sizeof($folderList)>0) { | |
| //$tempTree=array(); | |
| foreach ($folderList as $key => $obj) { | |
| //$tempTree ['all-obj'] = $obj; | |
| $tempTree ['text'] = $obj['FOLDER_NAME']; | |
| $tempTree ['id'] = $obj['FOLDER_UID']; | |
| $tempTree ['folderID'] = $obj['FOLDER_UID']; | |
| $tempTree ['cls'] = 'folder'; | |
| $tempTree ['draggable'] = true; | |
| $tempTree ['name'] = $obj['FOLDER_NAME']; | |
| $tempTree ['type'] = "Directory"; | |
| $tempTree ['is_file'] = false; | |
| $tempTree ['appDocCreateDate'] = $obj['FOLDER_CREATE_DATE']; | |
| $tempTree ['qtip'] ='<strong>Directory: </strong>'.$obj['FOLDER_NAME']. | |
| '<br /><strong>Create Date:</strong> '.$obj['FOLDER_CREATE_DATE'].''; | |
| $tempTree ['is_writable'] =true; | |
| $tempTree ['is_chmodable'] =true; | |
| $tempTree ['is_readable'] =true; | |
| $tempTree ['is_deletable'] =true; | |
| if ((isset($_POST['option']) )&& ($_POST['option'] == "gridDocuments")) { | |
| $tempTree ['icon'] = "/images/documents/extension/folder.png"; | |
| } | |
| $processListTree [] = $tempTree; | |
| $tempTree=array(); | |
| } | |
| } else { | |
| if ($_POST ['node'] == '/') { | |
| } | |
| } | |
| if (isset($folderContent)) { | |
| foreach ($folderContent as $key => $obj) { | |
| $mimeInformation = getMime($obj["APP_DOC_FILENAME"]); | |
| $tempTree["text"] = $obj["APP_DOC_FILENAME"]; | |
| $tempTree["name"] = $obj["APP_DOC_FILENAME"]; | |
| $tempTree["type"] = $mimeInformation["description"]; | |
| $tempTree["icon"] = $mimeInformation["icon"]; | |
| $tempTree ['appdocid'] = $obj['APP_DOC_UID']; | |
| $tempTree ['id'] = $obj['APP_DOC_UID_VERSION']; | |
| $tempTree ['cls'] = 'file'; | |
| //$tempTree ['draggable'] = true; | |
| $tempTree ['leaf'] = true; | |
| $tempTree ['is_file'] = true; | |
| //if ((isset($_POST['option']))&&($_POST['option']=="gridDocuments")) { | |
| //} | |
| $tempTree ['docVersion'] = $obj['DOC_VERSION']; | |
| $tempTree ['appUid'] = $obj['APP_UID']; | |
| $tempTree ['usrUid'] = $obj['USR_UID']; | |
| $tempTree ['appDocType'] = ucfirst(strtolower($obj['APP_DOC_TYPE'])); | |
| $tempTree ['appDocCreateDate'] = $obj['APP_DOC_CREATE_DATE']; | |
| $tempTree ['appDocPlugin'] = $obj['APP_DOC_PLUGIN']; | |
| $tempTree ['appDocTags'] = $obj['APP_DOC_TAGS']; | |
| $tempTree ['appDocTitle'] = $obj['APP_DOC_TITLE']; | |
| $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']); | |
| } else { | |
| $tempTree ['appLabel'] = "No case related"; | |
| } | |
| $tempTree ['proTitle'] = $obj['PRO_TITLE']; | |
| $tempTree ['appDocVersionable'] = 0; | |
| if (isset($obj['OUT_DOC_VERSIONING'])) { | |
| $tempTree ['appDocVersionable'] = $obj['OUT_DOC_VERSIONING']; | |
| } elseif (isset($obj['INP_DOC_VERSIONING'])) { | |
| $tempTree ['appDocVersionable'] = $obj['INP_DOC_VERSIONING']; | |
| } | |
| if (isset($obj['USR_LASTNAME']) && isset($obj['USR_LASTNAME'])) { | |
| $tempTree ['owner'] = $obj['USR_USERNAME']; | |
| $tempTree ['owner_firstname'] = $obj['USR_FIRSTNAME']; | |
| $tempTree ['owner_lastname'] = $obj['USR_LASTNAME']; | |
| } else { | |
| $tempTree ['owner'] = $obj['USR_USERNAME']; | |
| $tempTree ['owner_firstname'] = ""; | |
| $tempTree ['owner_lastname'] = ""; | |
| } | |
| $tempTree ['deletelabel'] = $obj['DELETE_LABEL']; | |
| if ((isset($obj['DOWNLOAD_LABEL'])) && ($obj['DOWNLOAD_LABEL']!="")) { | |
| $labelgen=strtoupper(str_replace(".","",$obj['DOWNLOAD_LABEL'])); | |
| $tempTree ['downloadLabel'.$labelgen] = $obj['DOWNLOAD_LABEL']; | |
| $tempTree ['downloadLink'.$labelgen] = $obj['DOWNLOAD_LINK']; | |
| } | |
| $tempTree ['downloadLabel'] = $obj['DOWNLOAD_LABEL']; | |
| $tempTree ['downloadLink'] = $obj['DOWNLOAD_LINK']; | |
| if ((isset($obj['DOWNLOAD_LABEL1'])) && ($obj['DOWNLOAD_LABEL1']!="")) { | |
| $labelgen=strtoupper(str_replace(".","",$obj['DOWNLOAD_LABEL1'])); | |
| $tempTree ['downloadLabel'.$labelgen] = $obj['DOWNLOAD_LABEL1']; | |
| $tempTree ['downloadLink'.$labelgen] = $obj['DOWNLOAD_LINK1']; | |
| } | |
| $tempTree ['downloadLabel1'] = $obj['DOWNLOAD_LABEL1']; | |
| $tempTree ['downloadLink1'] = $obj['DOWNLOAD_LINK1']; | |
| $tempTree ['appDocUidVersion'] = $obj['APP_DOC_UID_VERSION']; | |
| $tempTree ['is_readable'] = true; | |
| $tempTree ['is_file'] = true; | |
| $tempTree["outDocGenerate"] = ""; | |
| if (isset($obj["OUT_DOC_GENERATE"])) { | |
| switch ($obj["OUT_DOC_GENERATE"]) { | |
| case "PDF": | |
| case "DOC": | |
| $mimeInformation = getMime($obj["APP_DOC_FILENAME"] . "." . strtolower($obj["OUT_DOC_GENERATE"])); | |
| $tempTree["text"] = $obj["APP_DOC_FILENAME"] . "." . strtolower($obj["OUT_DOC_GENERATE"]); | |
| $tempTree["name"] = $obj["APP_DOC_FILENAME"] . "." . strtolower($obj["OUT_DOC_GENERATE"]); | |
| $tempTree["type"] = $mimeInformation["description"]; | |
| $tempTree["icon"] = $mimeInformation["icon"]; | |
| $tempTree["appDocFileName"] = $tempTree["name"]; | |
| $tempTree["downloadLabel"] = $tempTree["downloadLabel" . $obj["OUT_DOC_GENERATE"]]; | |
| $tempTree["downloadLink"] = $tempTree["downloadLink" . $obj["OUT_DOC_GENERATE"]]; | |
| $tempTree["id"] = $tempTree["id"] . "_" . $obj["OUT_DOC_GENERATE"]; | |
| $processListTree[] = $tempTree; | |
| break; | |
| case "BOTH": | |
| $strExpander = null; | |
| $mimeInformation = getMime($obj["APP_DOC_FILENAME"] . ".pdf"); | |
| $strExpander = $strExpander . "<a href=\"javascript:;\" onclick=\"openActionDialog(this, 'download', 'pdf'); return false;\" style=\"color: #000000; text-decoration: none;\"><img src=\"/images/documents/extension/pdf.png\" style=\"margin-left: 25px; border: 0;\" alt=\"\" /> <b>" . $obj["APP_DOC_FILENAME"] . ".pdf</b> (" . $mimeInformation["description"] . ")</a>"; | |
| $strExpander = $strExpander . "<br />"; | |
| $mimeInformation = getMime($obj["APP_DOC_FILENAME"] . ".doc"); | |
| $strExpander = $strExpander . "<a href=\"javascript:;\" onclick=\"openActionDialog(this, 'download', 'doc'); return false;\" style=\"color: #000000; text-decoration: none;\"><img src=\"/images/documents/extension/doc.png\" style=\"margin-left: 25px; border: 0;\" alt=\"\" /> <b>" . $obj["APP_DOC_FILENAME"] . ".doc</b> (" . $mimeInformation["description"] . ")</a>"; | |
| $tempTree["outDocGenerate"] = $strExpander; | |
| $tempTree["text"] = $obj["APP_DOC_FILENAME"]; | |
| $tempTree["name"] = $obj["APP_DOC_FILENAME"]; | |
| $tempTree["type"] = ""; | |
| $tempTree["icon"] = "/images/documents/extension/document.png"; | |
| $tempTree["appDocFileName"] = $tempTree["name"]; | |
| //$tempTree["downloadLabel"] = $obj["DOWNLOAD_LABEL"]; | |
| //$tempTree["downloadLink"] = $obj["DOWNLOAD_LINK"]; | |
| $tempTree["id"] = $tempTree["id"] . "_" . $obj["OUT_DOC_GENERATE"]; | |
| $processListTree[] = $tempTree; | |
| break; | |
| //case "NOFILE": | |
| // break; | |
| } | |
| } else { | |
| if ($obj["APP_DOC_TYPE"] == "OUTPUT" && | |
| $tempTree["type"] == G::LoadTranslation("MIME_DES_FILE") && | |
| preg_match("/^.+&ext=(.+)&.+$/", $tempTree["downloadLink"], $arrayMatch) | |
| ) { | |
| $ext = $arrayMatch[1]; | |
| $mimeInformation = getMime($obj["APP_DOC_FILENAME"] . ".$ext"); | |
| $tempTree["text"] = $obj["APP_DOC_FILENAME"] . ".$ext"; | |
| $tempTree["name"] = $obj["APP_DOC_FILENAME"] . ".$ext"; | |
| $tempTree["type"] = $mimeInformation["description"]; | |
| $tempTree["icon"] = $mimeInformation["icon"]; | |
| } | |
| $processListTree[] = $tempTree; | |
| } | |
| $tempTree = array(); | |
| } | |
| } | |
| if ((isset($_POST['option'])) && ($_POST['option'] == "gridDocuments")) { | |
| $processListTreeTemp["totalCount"] = $totalFolders + $totalDocuments; | |
| $processListTreeTemp['msg']='correct reload'; | |
| $processListTreeTemp['items']=$processListTree; | |
| $processListTree = $processListTreeTemp; | |
| } | |
| echo G::json_encode($processListTree); | |
| } | |
| function openPMFolder() | |
| { | |
| $WIDTH_PANEL = 350; | |
| $folderContent = $oPMFolder->getFolderList ($_POST ['folderID'] != '0' ? | |
| $_POST ['folderID'] == 'NA' ? "" : $_POST ['folderID'] : $rootFolder); | |
| //krumo($folderContent); | |
| if (! is_array ($folderContent)) { | |
| echo $folderContent; | |
| exit (); | |
| } | |
| $tree = new PmTree (); | |
| $tree->name = 'DMS'; | |
| $tree->nodeType = "blank"; | |
| //$tree->width="350px"; | |
| $tree->value = ''; | |
| $tree->showSign = false; | |
| $i = 0; | |
| foreach ($folderContent as $key => $obj) { | |
| $i ++; | |
| //if ($obj->item_type=="F") { | |
| $RowClass = ($i % 2 == 0) ? 'Row1' : 'Row2'; | |
| $id_delete = G::LoadTranslation('ID_DELETE'); | |
| $id_edit = G::LoadTranslation('ID_EDIT'); | |
| $htmlGroup = <<<GHTML | |
| <table cellspacing='0' cellpadding='0' border='1' style='border:0px;' width="100%" class="pagedTable"> | |
| <tr id="{$i}" onmouseout="setRowClass(this, '{$RowClass}')" onmouseover="setRowClass(this, 'RowPointer')" | |
| class="{$RowClass}" style="cursor:hand"> | |
| <td width='' class='treeNode' style='border:0px;background-color:transparent;'><a href="#" | |
| onclick="focusRow(this, 'Selected');openPMFolder('{$obj['FOLDER_UID']}','{$_POST['rootfolder']}');"> | |
| <img src="/images/folderV2.gif" border = "0" valign="middle" /> {$obj['FOLDER_NAME']}</a> | |
| <a href="#" onclick="deletePMFolder('{$obj['FOLDER_UID']}','{$_POST['rootfolder']}');"> {$id_delete}</a> | |
| </td> | |
| </tr> | |
| </table> | |
| <div id="child_{$obj['FOLDER_UID']}"></div> | |
| GHTML; | |
| $ch = & $tree->addChild ($key, $htmlGroup, array ('nodeType' => 'child')); | |
| $ch->point = ' '; | |
| } | |
| $RowClass = ($i % 2 == 0) ? 'Row1' : 'Row2'; | |
| $key = 0; | |
| if ($_POST ['folderID'] == '0') { | |
| $notInFolderLabel = G::LoadTranslation ('ID_NOT_IN_FOLDER'); | |
| $htmlGroup = <<<GHTML | |
| <table cellspacing='0' cellpadding='0' border='1' style='border:0px;' width="100%" class="pagedTable"> | |
| <tr id="{$i}" onclick="focusRow(this, 'Selected');openPMFolder('NA');" | |
| onmouseout="setRowClass(this, '{$RowClass}')" onmouseover="setRowClass(this, 'RowPointer')" class="{$RowClass}"> | |
| <td width='' class='treeNode' style='border:0px;background-color:transparent;'><a href="#" onclick=""> | |
| <img src="/images/folderV2.gif" border = "0" valign="middle" /> - {$notInFolderLabel} -</a> </td> | |
| </tr> | |
| </table> | |
| <div id="child_NA"></div> | |
| GHTML; | |
| $ch = & $tree->addChild ($key, $htmlGroup, array ('nodeType' => 'child')); | |
| $ch->point = ' '; | |
| } | |
| print ($tree->render ()) ; | |
| } | |
| function getPMFolderContent() | |
| { | |
| $swSearch = false; | |
| if (isset ($_POST ['folderID'])) { | |
| //Render content of a folder | |
| $folderID = $_POST ['folderID'] != '0' ? $_POST ['folderID'] == 'NA' ? "" : $_POST ['folderID'] : $rootFolder; | |
| $folderContent = $oPMFolder->getFolderContent ($folderID); | |
| } else { | |
| // Perform a Search | |
| $swSearch = true; | |
| $folderContent = $oPMFolder->getFolderContent (null, array (), $_POST ['searchKeyword'], $_POST ['type']); | |
| } | |
| array_unshift ($folderContent, array ('id' => 'char')); | |
| if (! is_array ($folderContent)) { | |
| echo $folderContent; | |
| exit (); | |
| } | |
| $_DBArray ['PM_FOLDER_DOC'] = $folderContent; | |
| $_SESSION ['_DBArray'] = $_DBArray; | |
| $c = new Criteria ('dbarray'); | |
| $c->setDBArrayTable ('PM_FOLDER_DOC'); | |
| $c->addAscendingOrderByColumn ('id'); | |
| $G_PUBLISH = new Publisher (); | |
| $labelFolderAddFile = ""; | |
| $labelFolderAddFolder = ""; | |
| if ($RBAC->userCanAccess ('PM_FOLDERS_ADD_FILE') == 1) { | |
| $labelFolderAddFile = G::LoadTranslation ('ID_ATTACH'); | |
| } | |
| if ($RBAC->userCanAccess ('PM_FOLDERS_ADD_FOLDER') == 1) { | |
| $labelFolderAddFolder = G::LoadTranslation ('ID_NEW_FOLDER'); | |
| } | |
| if (! $swSearch) { | |
| $G_PUBLISH->AddContent ('propeltable', 'paged-table', 'appFolder/appFolderDocumentList', | |
| $c, array ('folderID' => $_POST ['folderID'] != '0' ? $_POST ['folderID'] == 'NA' ? | |
| "/" : $_POST ['folderID'] : $rootFolder, 'labelFolderAddFile' => $labelFolderAddFile, | |
| 'labelFolderAddFolder' => $labelFolderAddFolder)); | |
| $G_PUBLISH->AddContent ('xmlform', 'xmlform', 'appFolder/appFolderDocumentListHeader', '', | |
| array (), 'appFolderList?folderID=' . $_POST ['folderID']); | |
| } else { | |
| $G_PUBLISH->AddContent ('propeltable', 'paged-table', 'appFolder/appFolderDocumentListSearch', $c, array ()); | |
| $G_PUBLISH->AddContent ('xmlform', 'xmlform', 'appFolder/appFolderDocumentListHeader', '', array (), | |
| 'appFolderList?folderID=/'); | |
| } | |
| G::RenderPage ('publish', 'raw'); | |
| } | |
| function getPMFolderTags() | |
| { | |
| // Default font sizes | |
| $min_font_size = 12; | |
| $max_font_size = 30; | |
| $rootFolder = "/"; | |
| $folderID = $_POST ['rootFolder'] != '0' ? $_POST ['rootFolder'] == 'NA' ? "" : $_POST ['rootFolder'] : $rootFolder; | |
| $tags = $oPMFolder->getFolderTags ($folderID); | |
| $minimum_count = 0; | |
| $maximum_count = 0; | |
| if ((is_array ($tags)) && (count ($tags) > 0)) { | |
| $minimum_count = min (array_values ($tags)); | |
| $maximum_count = max (array_values ($tags)); | |
| } | |
| $spread = $maximum_count - $minimum_count; | |
| if ($spread == 0) { | |
| $spread = 1; | |
| } | |
| $cloud_html = ''; | |
| $cloud_tags = array (); // create an array to hold tag code | |
| foreach ($tags as $tag => $count) { | |
| $href = "#"; | |
| //$href="?q="$tag; | |
| $size = $min_font_size + ($count - $minimum_count) * ($max_font_size - $min_font_size) / $spread; | |
| $cloud_tags [] = '<a style="font-size: ' . floor ($size) . 'px' . '" class="tag_cloud" href="' . $href . | |
| '" onClick="getPMFolderSearchResult(\'' . $tag . '\',\'TAG\')"' . ' title="\'' . $tag . | |
| '\' returned a count of ' . $count . '">' . htmlspecialchars (stripslashes ($tag)) . '</a>'; | |
| } | |
| $cloud_html = join ("\n", $cloud_tags) . "\n"; | |
| print "$cloud_html"; | |
| } | |
| function uploadDocument() | |
| { | |
| $uploadDocumentComponent=array(); | |
| $uploadDocumentComponent["xtype"]= "tabpanel"; | |
| $uploadDocumentComponent["stateId"]= "upload_tabpanel"; | |
| $uploadDocumentComponent["activeTab"]= "uploadform"; | |
| $uploadDocumentComponent["dialogtitle"]= G::LoadTranslation('ID_UPLOAD'); | |
| $uploadDocumentComponent["stateful"]= true; | |
| $uploadDocumentComponent["stateEvents"]= array("tabchange"); | |
| $uploadDocumentComponent["getState"]= "function_getState"; | |
| $functionsToReplace['function_getState']="function() { | |
| return { | |
| activeTab:this.items.indexOf(this.getActiveTab()) | |
| }; | |
| }"; | |
| $uploadDocumentComponent["listeners"]["resize"]["fn"]="function_listeners_resize"; | |
| $functionsToReplace['function_listeners_resize'] = "function(panel) { | |
| panel.items.each(function(item) { item.setHeight(500);return true }); | |
| }"; | |
| $uploadDocumentComponent["items"]=array(); | |
| $itemA=array(); | |
| $itemA["xtype"]= "swfuploadpanel"; | |
| $itemA["title"]= "flashupload"; | |
| $itemA["height"]= "300"; | |
| $itemA["id"]= "swfuploader"; | |
| $itemA["viewConfig"]["forceFit"]=true; | |
| $itemA["listeners"]["allUploadsComplete"]["fn"]="function_listeners_allUploadsComplete"; | |
| $functionsToReplace['function_listeners_allUploadsComplete'] = "function(panel) { | |
| datastore.reload(); | |
| panel.destroy(); | |
| Ext.getCmp('dialog').destroy(); | |
| statusBarMessage('upload_completed', false, true); | |
| }"; | |
| // Uploader Params | |
| $itemA["upload_url"]= "../appFolder/appFolderAjax.php"; | |
| $itemA["post_params"][session_name()]=session_id(); | |
| $itemA["post_params"]["option"]="uploadFile"; | |
| $itemA["post_params"]["action"]="upload"; | |
| $itemA["post_params"]["dir"]="datastore.directory"; | |
| $itemA["post_params"]["requestType"]="xmlhttprequest"; | |
| $itemA["post_params"]["confirm"]="true"; | |
| $itemA["flash_url"]="/scripts/extjs3-ext/ux.swfupload/swfupload.swf"; | |
| $itemA["file_size_limit"]=get_max_file_size(); | |
| // Custom Params | |
| $itemA["single_file_select"]=false; // Set to true if you only want to select one file from the FileDialog. | |
| $itemA["confirm_delete"]=false; // This will prompt for removing files from queue. | |
| $itemA["remove_completed"]=false; // Remove file from grid after uploaded. | |
| //$uploadDocumentComponent["items"][]=$itemA; | |
| //Standard Upload | |
| $itemA=array(); | |
| $itemA["xtype"]="form"; | |
| $itemA["autoScroll"]=true; | |
| $itemA["autoHeight"]=true; | |
| $itemA["id"]="uploadform"; | |
| $itemA["fileUpload"]=true; | |
| $itemA["labelWidth"]="125"; | |
| $itemA["url"]="URL_SCRIPT"; | |
| $itemA["title"]=G::LoadTranslation('ID_UPLOAD'); | |
| //$itemA["tooltip"]="Max File Size <strong>". ((get_max_file_size() / 1024) / 1024)." MB</strong><br /> | |
| //Max Post Size<strong>". ((get_max_upload_limit() / 1024) / 1024)." MB</strong><br />"; | |
| $itemA["frame"]=true; | |
| $itemA["items"]=array(); | |
| $itemB=array(); | |
| $itemB["xtype"]="displayfield"; | |
| $itemB["value"]="Max File Size <strong>". ((get_max_file_size() / 1024) / 1024)." MB</strong><br /> | |
| Max Post Size<strong>". ((get_max_upload_limit() / 1024) / 1024)." MB</strong><br />"; | |
| //$itemA["items"][]=$itemB; | |
| for ($i=0; $i<7; $i++) { | |
| $itemB=array(); | |
| $itemB["xtype"]="fileuploadfield"; | |
| $itemB["fieldLabel"]="File ".($i+1); | |
| $itemB["id"]="uploadedFile[$i]"; | |
| $itemB["name"]="uploadedFile[$i]"; | |
| $itemB["width"]=275; | |
| $itemB["buttonOnly"]= false; | |
| $itemA["items"][]=$itemB; | |
| } | |
| $itemB=array(); | |
| $itemB["xtype"]="checkbox"; | |
| $itemB["fieldLabel"]="Overwrite";//G::LoadTranslation('ID_OVERWRITE'); | |
| $itemB["name"]="overwrite_files"; | |
| $itemB["checked"]=true; | |
| $itemA["items"][]=$itemB; | |
| $itemA["buttons"]=array(); | |
| $buttonA=array(); | |
| $buttonA["text"]=G::LoadTranslation('ID_SAVE'); | |
| $buttonA["handler"]="function_standardupload_btnsave"; | |
| $functionsToReplace["function_standardupload_btnsave"]=' function() { | |
| statusBarMessage("'.G::LoadTranslation('ID_UPLOADING_FILE').'", true, true); | |
| form = Ext.getCmp("uploadform").getForm(); | |
| //Ext.getCmp("uploadform").getForm().submit(); | |
| //console.log(form); | |
| //console.log(form.url); | |
| Ext.getCmp("uploadform").getForm().submit({ | |
| //reset: true, | |
| reset: false, | |
| waitTitle : " ", | |
| success: function(form, action) { | |
| datastore.reload(); | |
| statusBarMessage(action.result.message, false, true); | |
| Ext.getCmp("dialog").destroy(); | |
| }, | |
| failure: function(form, action) { | |
| if(!action.result) return; | |
| Ext.MessageBox.alert("error", action.result.error); | |
| statusBarMessage(action.result.error, false, false); | |
| }, | |
| scope: Ext.getCmp("uploadform"), | |
| // add some vars to the request, similar to hidden fields | |
| params: { | |
| option: "standardupload", | |
| action: "uploadExternalDocument", | |
| dir: datastore.directory, | |
| requestType: "xmlhttprequest", | |
| confirm: "true", | |
| docUid: "-1", | |
| appId: "00000000000000000000000000000000" | |
| } | |
| }); | |
| }'; | |
| $itemA["buttons"][]=$buttonA; | |
| $buttonA=array(); | |
| $buttonA["text"]= G::LoadTranslation('ID_CANCEL'); | |
| $buttonA["handler"]="function_standardupload_btncancel"; | |
| $functionsToReplace["function_standardupload_btncancel"]=' function() { Ext.getCmp("dialog").destroy(); }'; | |
| $itemA["buttons"][]=$buttonA; | |
| $uploadDocumentComponent["items"][]=$itemA; | |
| $itemA=array(); | |
| $itemA["xtype"]="form"; | |
| $itemA["id"]="transferform"; | |
| $itemA["url"]="../appFolder/appFolderAjax.php"; | |
| $itemA["hidden"]="true"; | |
| $itemA["title"]="acttransfer"; | |
| $itemA["autoHeight"]="true"; | |
| $itemA["labelWidth"]=225; | |
| $itemA["frame"]= true; | |
| $itemA["items"]=array(); | |
| for ($i=0; $i<7; $i++) { | |
| $itemB=array(); | |
| $itemB["xtype"]= "textfield"; | |
| $itemB["fieldLabel"]= "url_to_file"; | |
| $itemB["name"]= "userfile[$i]"; | |
| $itemB["width"]=275; | |
| $itemA["items"][]=$itemB; | |
| } | |
| $itemB=array(); | |
| $itemB["xtype"]="checkbox"; | |
| $itemB["fieldLabel"]="overwrite_files"; | |
| $itemB["name"]="overwrite_files"; | |
| $itemB["checked"]=true; | |
| $itemA["items"][]=$itemB; | |
| $itemA["buttons"]=array(); | |
| $buttonA=array(); | |
| $buttonA["text"]="btnsave"; | |
| $buttonA["handler"]="function_transfer_btnsave"; | |
| $functionsToReplace["function_transfer_btnsave"]='function() { | |
| statusBarMessage("transfer_processing", true, true); | |
| transfer = Ext.getCmp("transferform").getForm(); | |
| transfer.submit({ | |
| //reset: true, | |
| reset: false, | |
| success: function(form, action) { | |
| datastore.reload(); | |
| statusBarMessage(action.result.message, false, true); | |
| Ext.getCmp("dialog").destroy(); | |
| }, | |
| failure: function(form, action) { | |
| if(!action.result) return; | |
| Ext.MessageBox.alert("error", action.result.error); | |
| statusBarMessage(action.result.error, false, false); | |
| }, | |
| scope: transfer, | |
| // add some vars to the request, similar to hidden fields | |
| params: { | |
| "option": "com_extplorer", | |
| "action": "transfer", | |
| "dir": datastore.directory, | |
| "confirm": "true" | |
| } | |
| }); | |
| }'; | |
| $itemA["buttons"]=$buttonA; | |
| $buttonA=array(); | |
| $buttonA["text"]="btncancel"; | |
| $buttonA["handler"]="function_transfer_btncancel"; | |
| $functionsToReplace["function_transfer_btncancel"]='function() { Ext.getCmp("dialog").destroy(); }'; | |
| $itemA["buttons"]=$buttonA; | |
| // $uploadDocumentComponent["items"][]=$itemA; | |
| $finalResponse=G::json_encode($uploadDocumentComponent); | |
| $finalResponse=str_replace("URL_SCRIPT","../appFolder/appFolderAjax.php",$finalResponse); | |
| foreach ($functionsToReplace as $key => $originalFunction) { | |
| $finalResponse=str_replace('"'.$key.'"',$originalFunction,$finalResponse); | |
| } | |
| echo ($finalResponse); | |
| } | |
| function copyAction() | |
| { | |
| copyMoveAction("copy"); | |
| } | |
| function moveAction() | |
| { | |
| copyMoveAction("move"); | |
| } | |
| function findChilds($uidFolder, $path, $arrayPath) | |
| { | |
| $Criteria = new Criteria (); | |
| $Criteria->addSelectColumn ( AppFolderPeer::FOLDER_UID ); | |
| $Criteria->addSelectColumn ( AppFolderPeer::FOLDER_PARENT_UID ); | |
| $Criteria->addSelectColumn ( AppFolderPeer::FOLDER_NAME ); | |
| $Criteria->addSelectColumn ( AppFolderPeer::FOLDER_CREATE_DATE ); | |
| $Criteria->addSelectColumn ( AppFolderPeer::FOLDER_UPDATE_DATE ); | |
| $Criteria->add(AppFolderPeer::FOLDER_PARENT_UID, $uidFolder); | |
| $Criteria->addAscendingOrderByColumn(AppFolderPeer::FOLDER_NAME); | |
| $rs = appFolderPeer::doSelectRS ( $Criteria ); | |
| $rs->setFetchmode ( ResultSet::FETCHMODE_ASSOC ); | |
| $folderResult = array (); | |
| $appFoder = new AppFolder (); | |
| while ($rs->next()) { | |
| $row = $rs->getRow(); | |
| $path = ($uidFolder != '/')? $path : ''; | |
| $path = $path."/".$row['FOLDER_NAME']; | |
| $arrayPath[] = array($row['FOLDER_UID'],$path); | |
| $arrayPath = findChilds($row['FOLDER_UID'], $path, $arrayPath); | |
| } | |
| return $arrayPath; | |
| } | |
| function copyMoveAction($type) | |
| { | |
| $oPMFolder = new AppFolder (); | |
| $dir=$_REQUEST['dir']; | |
| $paths = array(); | |
| $folderResult = findChilds('/', '', $paths); | |
| $withCombo = 30; | |
| $folderSelected = $oPMFolder->load($dir); | |
| $root = array("/","/"); | |
| array_unshift ($folderResult, $root); | |
| $folderResultSel = array(); | |
| foreach ($folderResult as $key => $value) { | |
| $count = strlen($value[1]); | |
| $withCombo = ($count>$withCombo) ? $count : $withCombo; | |
| if ($folderSelected['FOLDER_PARENT_UID'] != $value[0] && $dir != $value[0]) { | |
| $folderResultSel[] = $value; | |
| } | |
| } | |
| $dirCompletePath=$oPMFolder->getFolderStructure($dir); | |
| $copyDialog["xtype"] = "form"; | |
| $copyDialog["id"] = "simpleform"; | |
| $copyDialog["labelWidth"] = 80; | |
| $copyDialog["width"] = 500; | |
| $copyDialog["modal"] = true; | |
| $copyDialog["url"] = "URL_SCRIPT"; | |
| if ($type=="copy") { | |
| $copyDialog["dialogtitle"]= G::LoadTranslation('ID_COPY'); | |
| } else { | |
| $copyDialog["dialogtitle"]= G::LoadTranslation('ID_MOVE'); | |
| } | |
| $copyDialog["frame"]= true; | |
| $copyDialog["items"]=array(); | |
| $itemField=array(); | |
| $itemField["xtype"] = "combo"; | |
| $itemField["hiddenName"] = "new_dir"; | |
| $itemField["id"] = "new_dir_label"; | |
| $itemField["name"] = "new_dir_label"; | |
| $itemField["mode"] = "local"; | |
| $itemField["triggerAction"] = "all"; | |
| $itemField["store"] = $folderResultSel; | |
| $itemField["valueField"] = "FOLDER_UID"; | |
| $itemField["editable"] = false; | |
| $itemField["displayField"] = "FOLDER_NAME"; | |
| $itemField["selectOnFocus"] = true; | |
| $itemField["tpl"] = '<tpl for="."><div ext:qtip="{field2}" class="x-combo-list-item">{field2}</div></tpl>'; | |
| $itemField["fieldLabel"] = G::LoadTranslation('ID_DESTINATION'); | |
| $itemField["emptyText"] = G::LoadTranslation('ID_SELECT_DIRECTORY'); | |
| $itemField["width"] = 390; | |
| $itemField["allowBlank"]=false; | |
| $copyDialog["items"][]=$itemField; | |
| $itemField=array(); | |
| $itemField["xtype"]="hidden"; | |
| $itemField["fieldLabel"]="copyMove"; | |
| $itemField["name"]="copyMove"; | |
| $itemField["value"]="all"; | |
| $itemField["width"]=175; | |
| $itemField["allowBlank"]=false; | |
| $copyDialog["items"][]=$itemField; | |
| $copyDialog["buttons"]=array(); | |
| $itemButton=array(); | |
| if ($type == "copy") { | |
| $itemButton["text"]= G::LoadTranslation('ID_COPY'); | |
| } else { | |
| $itemButton["text"]= G::LoadTranslation('ID_MOVE'); | |
| } | |
| $itemButton["handler"]="copyDialogCreateButtonFunction"; | |
| $itemButton["id"]="buttonCopy"; | |
| $functionsToReplace["copyDialogCreateButtonFunction"]="function() { | |
| form = Ext.getCmp('simpleform').getForm(); | |
| var requestParams = getRequestParams(); | |
| requestParams.confirm = 'true'; | |
| if (Ext.getCmp('new_dir_label').getValue() == '') { | |
| statusBarMessage('Select a Directory', false, false); | |
| return false; | |
| } | |
| requestParams.new_dir = Ext.getCmp('new_dir_label').getValue() | |
| statusBarMessage('Please wait...', true, true); | |
| Ext.getCmp('new_dir_label').disable(); | |
| Ext.getCmp('buttonCopy').disable(); | |
| Ext.getCmp('buttonCancel').disable(); | |
| requestParams.action = '".$type."Execute'; | |
| form.submit({ | |
| reset: false, | |
| success: function(form, action) { | |
| if(action.result.success){ | |
| if(action.result.success=='success'){ | |
| statusBarMessage(action.result.message, false, true); | |
| var node = dirTree.getNodeById('root'); | |
| node.select(); | |
| datastore.directory = 'root'; | |
| datastore.reload(); | |
| dirTree.getRootNode().reload(); | |
| requestParams.dir = 'root'; | |
| Ext.getCmp('dialog').destroy(); | |
| }else{ | |
| statusBarMessage(action.result.message, false, false); | |
| } | |
| }else{ | |
| if(!action.result) return; | |
| Ext.MessageBox.alert('Error!', action.result.error); | |
| statusBarMessage(action.result.error, false, false); | |
| } | |
| }, | |
| failure: function(form, action) { | |
| if(!action.result) return; | |
| Ext.MessageBox.alert('Error!', action.result.error); | |
| statusBarMessage(action.result.error, false, false); | |
| }, | |
| scope: form, | |
| // add some vars to the request, similar to hidden fields | |
| params: requestParams | |
| }); | |
| }"; | |
| $copyDialog["buttons"][]=$itemButton; | |
| $itemButton=array(); | |
| $itemButton["text"]=G::LoadTranslation('ID_CANCEL'); | |
| $itemButton["id"]="buttonCancel"; | |
| $itemButton["handler"]= "copyDialogCancelButtonFunction"; | |
| $functionsToReplace["copyDialogCancelButtonFunction"]="function() { Ext.getCmp('dialog').destroy(); }"; | |
| $copyDialog["buttons"][]=$itemButton; | |
| $finalResponse=G::json_encode($copyDialog); | |
| foreach ($functionsToReplace as $key => $originalFunction) { | |
| $finalResponse=str_replace('"'.$key.'"',$originalFunction,$finalResponse); | |
| } | |
| $finalResponse=str_replace("URL_SCRIPT","../appFolder/appFolderAjax.php",$finalResponse); | |
| echo ($finalResponse); | |
| } | |
| function copyExecute() | |
| { | |
| copyMoveExecute("copy"); | |
| } | |
| function moveExecute() | |
| { | |
| copyMoveExecute("move"); | |
| } | |
| function copyMoveExecute($type) | |
| { | |
| uploadExternalDocument(); | |
| } | |
| function documentVersionHistory() | |
| { | |
| $folderID = $_POST ['folderID'] != '0' ? $_POST ['folderID'] == 'NA' ? "" : $_POST ['folderID'] : $rootFolder; | |
| $folderContent = $oPMFolder->getFolderContent ($folderID, array ($_POST ['appDocId'])); | |
| array_unshift ($folderContent, array ('id' => 'char')); | |
| if (! is_array ($folderContent)) { | |
| echo $folderContent; | |
| exit (); | |
| } | |
| $_DBArray ['PM_FOLDER_DOC_HISTORY'] = $folderContent; | |
| $_SESSION ['_DBArray'] = $_DBArray; | |
| $c = new Criteria ('dbarray'); | |
| $c->setDBArrayTable ('PM_FOLDER_DOC_HISTORY'); | |
| $c->addAscendingOrderByColumn ('id'); | |
| $G_PUBLISH = new Publisher (); | |
| $G_PUBLISH->AddContent ('propeltable', 'paged-table', 'appFolder/appFolderDocumentListHistory', $c, | |
| array ('folderID' => $_POST ['folderID'] != '0' ? $_POST ['folderID'] == 'NA' ? | |
| "/" : $_POST ['folderID'] : $rootFolder)); | |
| G::RenderPage ('publish', 'raw'); | |
| } | |
| function overwriteFile($node, $fileName) | |
| { | |
| global $RBAC; | |
| $appDocument = new AppDocument(); | |
| $pMFolder = new AppFolder(); | |
| $user = ($RBAC->userCanAccess('PM_ALLCASES') == 1) ? '' : $_SESSION['USER_LOGGED']; | |
| $folderContentObj = $pMFolder->getFolderContent ($node, array(), null, null, '', '', $user); | |
| foreach ($folderContentObj['documents'] as $key => $value) { | |
| if ($folderContentObj['documents'][$key]['APP_DOC_FILENAME'] == $fileName) { | |
| $appDocument->remove(trim($folderContentObj['documents'][$key]['APP_DOC_UID']), $folderContentObj['documents'][$key]['DOC_VERSION']); | |
| } | |
| } | |
| } | |
| function copyMoveExecuteTree($uidFolder, $newUidFolder) | |
| { | |
| $appFoder = new AppFolder (); | |
| $folderContent = $appFoder->getFolderContent($uidFolder); | |
| $folderOrigin = $appFoder->getFolderStructure($uidFolder); | |
| if ($newUidFolder == $folderOrigin[$uidFolder]['PARENT'] && $_REQUEST['action'] == 'moveExecute') { | |
| return $uidFolder; | |
| } | |
| $FolderParentUid = trim($newUidFolder);//$form['FOLDER_PARENT_UID']; | |
| $FolderName = $folderOrigin[$uidFolder]['NAME']; | |
| $newFolderContent = $appFoder->createFolder ($FolderName, $FolderParentUid, "new"); | |
| $appDocument = new AppDocument(); | |
| if ($_REQUEST['action'] == 'moveExecute') { | |
| $appFoder->remove($uidFolder,$folderOrigin[$uidFolder]['PARENT']); | |
| } | |
| $action = $_REQUEST['action']; | |
| foreach ($folderContent['documents'] as $keys => $value) { | |
| $docInfo = $appDocument->load($value['APP_DOC_UID'],$value['DOC_VERSION']); | |
| $docInfo['FOLDER_UID'] = $newFolderContent['folderUID']; | |
| $docInfo['APP_DOC_CREATE_DATE'] = date('Y-m-d H:i:s'); | |
| $docInfo['APP_DOC_STATUS'] = 'ACTIVE'; | |
| if ($action == 'copyExecute') { | |
| $path = PATH_DOCUMENT . G::getPathFromUID($docInfo["APP_UID"]) . PATH_SEP; | |
| $arrayInfo = pathinfo($docInfo["APP_DOC_FILENAME"]); | |
| $extension = (isset($arrayInfo["extension"])? $arrayInfo["extension"] : ""); | |
| $arrayPathFromFile = G::getPathFromFileUID($docInfo["APP_UID"], $docInfo["APP_DOC_UID"]); | |
| $originFile = $arrayPathFromFile[0] . PATH_SEP . $arrayPathFromFile[1] . "_" . $docInfo["DOC_VERSION"] . "." . $extension; | |
| //Create Document | |
| unset($docInfo['APP_DOC_UID']); | |
| $docUid = $appDocument->create($docInfo); | |
| //Copy file | |
| $arrayPathFromFile = G::getPathFromFileUID($docInfo["APP_UID"], $docUid); | |
| $newFile = $arrayPathFromFile[0] . PATH_SEP . $arrayPathFromFile[1] . "_" . $docInfo["DOC_VERSION"] . "." . $extension; | |
| if(!file_exists($path . $arrayPathFromFile[0])) { | |
| mkdir( $path . $arrayPathFromFile[0], 0777, true ); | |
| } | |
| copy($path . $originFile, $path . $newFile); | |
| } else { | |
| $appDocument->update($docInfo); | |
| } | |
| } | |
| return $newFolderContent['folderUID']; | |
| } | |
| function checkTree ($uidOriginFolder, $uidNewFolder) | |
| { | |
| $appFoder = new AppFolder (); | |
| $newFoldercontent = copyMoveExecuteTree($uidOriginFolder, $uidNewFolder); | |
| $listfolder = $appFoder->getFolderList($uidOriginFolder); | |
| if (count($listfolder)>0) { | |
| foreach ($listfolder['folders'] as $key => $value) { | |
| checkTree($value["FOLDER_UID"], $newFoldercontent); | |
| } | |
| } else { | |
| return; | |
| } | |
| } | |
| function uploadExternalDocument() | |
| { | |
| $response['action']=$_POST['action']. " - ".$_POST['option']; | |
| $response['error']="error"; | |
| $response['message']="error"; | |
| $response['success']=false; | |
| $overwrite = (isset($_REQUEST['overwrite_files'])) ? $_REQUEST['overwrite_files'] : false; | |
| if (isset($_POST["confirm"]) && $_POST["confirm"] == "true") { | |
| if (isset($_FILES['uploadedFile'])) { | |
| $uploadedInstances=count($_FILES['uploadedFile']['name']); | |
| $sw_error=false; | |
| $sw_error_exists=isset($_FILES['uploadedFile']['error']); | |
| $emptyInstances=0; | |
| $quequeUpload=array(); | |
| //overwrite files | |
| if ($overwrite) { | |
| for ($i=0; $i<$uploadedInstances; $i++) { | |
| overwriteFile($_REQUEST['dir'], stripslashes($_FILES['uploadedFile']['name'][$i])); | |
| } | |
| } | |
| // upload files & check for errors | |
| for ($i=0; $i<$uploadedInstances; $i++) { | |
| $errors[$i] = null; | |
| $tmp = $_FILES['uploadedFile']['tmp_name'][$i]; | |
| $items[$i] = stripslashes($_FILES['uploadedFile']['name'][$i]); | |
| if ($sw_error_exists) { | |
| $up_err = $_FILES['uploadedFile']['error'][$i]; | |
| } else { | |
| $up_err=(file_exists($tmp)?0:4); | |
| } | |
| if ($items[$i]=="" || $up_err==4) { | |
| $emptyInstances++; | |
| continue; | |
| } | |
| if ($up_err==1 || $up_err==2) { | |
| $errors[$i]='miscfilesize'; | |
| $sw_error = true; | |
| continue; | |
| } | |
| if ($up_err==3) { | |
| $errors[$i]='miscfilepart'; | |
| $sw_error=true; | |
| continue; | |
| } | |
| if (!@is_uploaded_file($tmp)) { | |
| $errors[$i]='uploadfile'; | |
| $sw_error=true; | |
| continue; | |
| } | |
| //The uplaoded files seems to be correct and ready to be uploaded. Add to the Queque | |
| $fileInfo=array("tempName"=>$tmp,"fileName"=>$items[$i]); | |
| $quequeUpload[]=$fileInfo; | |
| } | |
| } elseif (isset($_POST['selitems'])) { | |
| $response=""; | |
| $response['msg']= "correct reload"; | |
| $response['success']=true; | |
| if (isset($_REQUEST['option']) && isset($_REQUEST['copyMove'])) { | |
| if ($_REQUEST['option'] == 'directory' && $_REQUEST['copyMove'] == 'all') { | |
| $response['action'] = $_POST['action']. " - ".$_POST['option']; | |
| $response['error'] = "Complete"; | |
| $response['message']= str_replace("Execute", "", $_POST['action']). " ". "Complete"; | |
| $response['success']= 'success'; | |
| $response['node'] = ''; | |
| $_POST ['node'] = ""; | |
| $newFolderUid = checkTree($_REQUEST['dir'], ($_REQUEST['new_dir'] == 'root')? '/' : $_REQUEST['new_dir']); | |
| } | |
| $_POST['selitems'] = array(); | |
| } else { | |
| $oAppDocument = new AppDocument(); | |
| if (isset($_POST['selitems']) && is_array($_POST['selitems'])) { | |
| foreach ($_POST['selitems'] as $docId) { | |
| $arrayDocId = explode ('_',$docId); | |
| $docInfo=$oAppDocument->load($arrayDocId[0]); | |
| $docInfo['FOLDER_UID'] = $_POST['new_dir']; | |
| $docInfo['APP_DOC_CREATE_DATE'] = date('Y-m-d H:i:s'); | |
| $oAppDocument->update($docInfo); | |
| } | |
| } | |
| } | |
| } | |
| //G::pr($quequeUpload); | |
| //Read. Instance Document classes | |
| if (!empty($quequeUpload)) { | |
| foreach ($quequeUpload as $key => $fileObj) { | |
| $extension = pathinfo($fileObj['fileName'], PATHINFO_EXTENSION); | |
| if (\Bootstrap::getDisablePhpUploadExecution() === 1 && $extension === 'php') { | |
| $message = \G::LoadTranslation('THE_UPLOAD_OF_PHP_FILES_WAS_DISABLED'); | |
| \Bootstrap::registerMonologPhpUploadExecution('phpUpload', 550, $message, $fileObj['fileName']); | |
| $response['error'] = $message; | |
| $response['message'] = $message; | |
| $response['success'] = false; | |
| print_r(G::json_encode($response)); | |
| exit(); | |
| } | |
| } | |
| $docUid=$_POST['docUid']; | |
| $appDocUid=isset($_POST['APP_DOC_UID'])?$_POST['APP_DOC_UID']:""; | |
| $docVersion=isset($_POST['docVersion'])?$_POST['docVersion']:""; | |
| $actionType=isset($_POST['actionType'])?$_POST['actionType']:""; | |
| $folderId=$_POST['dir']==""?"/":$_POST['dir']; | |
| $appId=$_POST['appId']; | |
| $docType=isset($_POST['docType'])?$_GET['docType']:"INPUT"; | |
| //save info | |
| $oInputDocument = new InputDocument(); | |
| if ($docUid != -1) { | |
| $aID = $oInputDocument->load($docUid); | |
| } else { | |
| $oFolder=new AppFolder(); | |
| $folderStructure=$oFolder->getFolderStructure($folderId); | |
| $aID=array('INP_DOC_DESTINATION_PATH'=>$folderStructure['PATH']); | |
| } | |
| //Get the Custom Folder ID (create if necessary) | |
| $oFolder=new AppFolder(); | |
| if ($docUid!=-1) { | |
| //krumo("jhl"); | |
| $folderId=$oFolder->createFromPath($aID['INP_DOC_DESTINATION_PATH'],$appId); | |
| //Tags | |
| $fileTags=$oFolder->parseTags($aID['INP_DOC_TAGS'],$appId); | |
| } else { | |
| $folderId=$folderId; | |
| $fileTags="EXTERNAL"; | |
| } | |
| foreach ($quequeUpload as $key => $fileObj) { | |
| $oAppDocument = new AppDocument(); | |
| switch ($actionType) { | |
| case "R": | |
| //replace | |
| $aFields = array( | |
| 'APP_DOC_UID' => $appDocUid, | |
| 'APP_UID' => $appId, | |
| 'DOC_VERSION' => $docVersion, | |
| 'DEL_INDEX' => 1, | |
| 'USR_UID' => $_SESSION['USER_LOGGED'], | |
| 'DOC_UID' => $docUid, | |
| 'APP_DOC_TYPE' => $docType, | |
| 'APP_DOC_CREATE_DATE' => date('Y-m-d H:i:s'), | |
| 'APP_DOC_COMMENT' => isset($_POST['form']['APP_DOC_COMMENT']) ? | |
| $_POST['form']['APP_DOC_COMMENT'] : '', | |
| 'APP_DOC_TITLE' => '', | |
| 'APP_DOC_FILENAME' => $fileObj['fileName'], | |
| 'FOLDER_UID' => $folderId, | |
| 'APP_DOC_TAGS' => $fileTags | |
| ); | |
| $oAppDocument->update($aFields); | |
| break; | |
| case "NV": | |
| //New Version | |
| $aFields = array( | |
| 'APP_DOC_UID' => $appDocUid, | |
| 'APP_UID' => $appId, | |
| 'DEL_INDEX' => 1, | |
| 'USR_UID' => $_SESSION['USER_LOGGED'], | |
| 'DOC_UID' => $docUid, | |
| 'APP_DOC_TYPE' => $docType, | |
| 'APP_DOC_CREATE_DATE' => date('Y-m-d H:i:s'), | |
| 'APP_DOC_COMMENT' => isset($_POST['form']['APP_DOC_COMMENT']) ? | |
| $_POST['form']['APP_DOC_COMMENT'] : '', | |
| 'APP_DOC_TITLE' => '', | |
| 'APP_DOC_FILENAME' => $fileObj['fileName'], | |
| 'FOLDER_UID' => $folderId, | |
| 'APP_DOC_TAGS' => $fileTags | |
| ); | |
| $oAppDocument->create($aFields); | |
| break; | |
| default: | |
| //New | |
| $aFields = array( | |
| 'APP_UID' => $appId, | |
| 'DEL_INDEX' => isset($_SESSION['INDEX'])?$_SESSION['INDEX']:1, | |
| 'USR_UID' => $_SESSION['USER_LOGGED'], | |
| 'DOC_UID' => $docUid, | |
| 'APP_DOC_TYPE' => $docType, | |
| 'APP_DOC_CREATE_DATE' => date('Y-m-d H:i:s'), | |
| 'APP_DOC_COMMENT' => isset($_POST['form']['APP_DOC_COMMENT']) ? | |
| $_POST['form']['APP_DOC_COMMENT'] : '', | |
| 'APP_DOC_TITLE' => '', | |
| 'APP_DOC_FILENAME' => $fileObj['fileName'], | |
| 'FOLDER_UID' => $folderId, | |
| 'APP_DOC_TAGS' => $fileTags | |
| ); | |
| $oAppDocument->create($aFields); | |
| break; | |
| } | |
| $sAppDocUid = $oAppDocument->getAppDocUid(); | |
| $iDocVersion = $oAppDocument->getDocVersion(); | |
| $info = pathinfo($oAppDocument->getAppDocFilename()); | |
| $ext = (isset($info['extension']) ? $info['extension'] : ''); | |
| //save the file | |
| //if (!empty($_FILES['form'])) { | |
| //if ($_FILES['form']['error']['APP_DOC_FILENAME'] == 0) { | |
| $sPathName = PATH_DOCUMENT . G::getPathFromUID($appId) . PATH_SEP; | |
| $file = G::getPathFromFileUID($appId, $sAppDocUid); | |
| $sPathName .= $file[0]; | |
| $sFileName = $file[1] . "_" . $iDocVersion . '.' . $ext; | |
| G::uploadFile($fileObj['tempName'], $sPathName, $sFileName); //upload | |
| //Plugin Hook PM_UPLOAD_DOCUMENT for upload document | |
| $oPluginRegistry = PluginRegistry::loadSingleton(); | |
| if ($oPluginRegistry->existsTrigger (PM_UPLOAD_DOCUMENT) && class_exists ('uploadDocumentData')) { | |
| $oData['APP_UID'] = $appId; | |
| $documentData = new uploadDocumentData ( | |
| $appId, | |
| $_SESSION['USER_LOGGED'], | |
| $sPathName . $sFileName, | |
| $fileObj['fileName'], | |
| $sAppDocUid | |
| ); | |
| //$oPluginRegistry->executeTriggers (PM_UPLOAD_DOCUMENT , $documentData); | |
| //unlink ($sPathName . $sFileName); | |
| } | |
| //end plugin | |
| if ($sw_error) { | |
| // there were errors | |
| $err_msg=""; | |
| for ($i=0; $i<$uploadedInstances; $i++) { | |
| if ($errors[$i]==null) { | |
| continue; | |
| } | |
| $err_msg .= $items[$i]." : ".$errors[$i]."\n"; | |
| } | |
| $response['error']=$err_msg; | |
| $response['message']=$err_msg; | |
| $response['success']=false; | |
| } elseif ($emptyInstances==$uploadedInstances) { | |
| $response['error']= G::LoadTranslation('ID_UPLOAD_LEAST_FILE'); | |
| $response['message']= G::LoadTranslation('ID_UPLOAD_LEAST_FILE'); | |
| $response['success']=false; | |
| } else { | |
| $response['error']= G::LoadTranslation('ID_UPLOAD_COMPLETE'); | |
| $response['message']="Upload complete"; | |
| $response['success']=true; | |
| } | |
| } | |
| } | |
| } | |
| print_r(G::json_encode($response)); | |
| } | |
| 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']; | |
| $parentUid = $_POST ['dir']; | |
| $folderUid = G::GenerateUniqueID (); | |
| $formNewFolder=array(); | |
| $formNewFolder["xtype"]="form"; | |
| $formNewFolder["id"]= "simpleform"; | |
| $formNewFolder["labelWidth"]=125; | |
| $formNewFolder["url"]="../appFolder/appFolderAjax.php"; | |
| $formNewFolder["dialogtitle"]= G::LoadTranslation('ID_CREATE_FOLDER'); | |
| $formNewFolder["frame"]= true; | |
| $formNewFolder["items"]= array(); | |
| $field=array(); | |
| $field["xtype"]= "label"; | |
| $field["fieldLabel"]= G::LoadTranslation('ID_CREATE_FOLDER_PATH_FOLDER'); | |
| $field["name"]= "form[FOLDER_PATH]"; | |
| $field["id"]= "form[FOLDER_PATH]"; | |
| $field["width"]=175; | |
| $field["allowBlank"]=false; | |
| $field["value"]=$folderPath; | |
| $field["text"]=$folderPath; | |
| $formNewFolder["items"][]= $field; | |
| $field=array(); | |
| $field["xtype"]= "hidden"; | |
| $field["fieldLabel"]= "Uid"; | |
| $field["name"]= "form[FOLDER_UID]"; | |
| $field["id"]= "form[FOLDER_UID]"; | |
| $field["width"]=175; | |
| $field["allowBlank"]=false; | |
| $field["value"]=$folderUid; | |
| $formNewFolder["items"][]= $field; | |
| $field=array(); | |
| $field["xtype"]= "hidden"; | |
| $field["fieldLabel"]= "Parent"; | |
| $field["name"]= "form[FOLDER_PARENT_UID]"; | |
| $field["id"]= "form[FOLDER_PARENT_UID]"; | |
| $field["width"]=175; | |
| $field["allowBlank"]=false; | |
| $field["value"]=$parentUid; | |
| $formNewFolder["items"][]= $field; | |
| $field=array(); | |
| $field["xtype"]= "textfield"; | |
| $field["fieldLabel"]= G::LoadTranslation('ID_CREATE_FOLDER_NAME_FOLDER'); | |
| $field["name"]= "form[FOLDER_NAME]"; | |
| $field["id"]= "form[FOLDER_NAME]"; | |
| $field["width"]=175; | |
| $field["allowBlank"]=false; | |
| $formNewFolder["items"][]= $field; | |
| $formNewFolder["buttons"]= array(); | |
| $button = array(); | |
| $button["text"] = G::LoadTranslation('ID_CREATE'); | |
| $button["handler"] = 'handlerCreate'; | |
| $formNewFolder["buttons"][] = $button; | |
| $button=array(); | |
| $button["text"]= G::LoadTranslation('ID_CANCEL'); | |
| $button["handler"]= 'handlerCancel'; | |
| $formNewFolder["buttons"][]= $button; | |
| $handlerCreate='function() { | |
| statusBarMessage("Please wait...", true,true); | |
| Ext.getCmp("simpleform").getForm().submit({ | |
| //reset: true, | |
| reset: false, | |
| waitTitle : " ", | |
| success: function(form, action) { | |
| statusBarMessage(action.result.message, false, true); | |
| try{ | |
| dirTree.getSelectionModel().getSelectedNode().reload(); | |
| } catch(e) {} | |
| datastore.reload(); | |
| Ext.getCmp("dialog").destroy(); | |
| }, | |
| failure: function(form, action) { | |
| if(!action.result) return; | |
| Ext.Msg.alert("Error!", action.result.error); | |
| statusBarMessage(action.result.error, false, false); | |
| }, | |
| scope: Ext.getCmp("simpleform"), | |
| // add some vars to the request, similar to hidden fields | |
| params: {option: "new", | |
| action: "appFolderSave", | |
| dir: datastore.directory, | |
| confirm: "true"} | |
| }) | |
| }'; | |
| $handlerCancel='function() { Ext.getCmp("dialog").destroy(); }'; | |
| $response=G::json_encode($formNewFolder); | |
| //This will add the functions to the Json response without quotes! | |
| $response=str_replace('"handlerCreate"',$handlerCreate,$response); | |
| $response=str_replace('"handlerCancel"',$handlerCancel,$response); | |
| print_r($response); | |
| } | |
| function appFolderSave() | |
| { | |
| $oPMFolder = new AppFolder (); | |
| $form = $_POST['form']; | |
| $FolderUid = $form['FOLDER_UID']; | |
| $FolderParentUid = $form['FOLDER_PARENT_UID']; | |
| $FolderName = $form['FOLDER_NAME']; | |
| $FolderCreateDate = 'now'; | |
| $FolderUpdateDate = 'now'; | |
| $response['action']=$_POST['action']. " - ".$_POST['option']; | |
| $response['error']="error"; | |
| $response['message']="error"; | |
| $response['success']=false; | |
| $folderCreateResponse = $oPMFolder->createFolder ($FolderName, $FolderParentUid, "new"); | |
| $response=array_merge($response,$folderCreateResponse); | |
| print_r(G::json_encode($response)); | |
| } | |
| function documentInfo() | |
| { | |
| $oFolder = new AppFolder (); | |
| $Fields = $oPMFolder->getCompleteDocumentInfo ($_POST ['appId'], $_POST ['appDocId'], $_POST ['docVersion'], | |
| $_POST ['docID'], $_POST ['usrUid']); | |
| $G_PUBLISH = new Publisher (); | |
| $G_PUBLISH->AddContent ('xmlform', 'xmlform', 'appFolder/appFolderDocumentInfo', '', $Fields, ''); | |
| G::RenderPage ('publish', 'raw'); | |
| } | |
| function documentdelete() | |
| { | |
| include_once ("classes/model/AppDocument.php"); | |
| $oAppDocument = new AppDocument (); | |
| $oAppDocument->remove($_POST['sFileUID'],$_POST['docVersion']); | |
| /*we need to delete fisicaly the file use the follow code | |
| $appId= "00000000000000000000000000000000"; | |
| $sPathName = PATH_DOCUMENT . $appId . PATH_SEP; | |
| unlink($sPathName.$_POST['sFileUID'].'_1.jpg');*/ | |
| } | |
| function deletePMFolder() | |
| { | |
| include_once ("classes/model/AppFolder.php"); | |
| $oAppFoder = new AppFolder (); | |
| $oAppFoder->remove($_POST['sFileUID'],$_POST['rootfolder']); | |
| } | |
| function getMime($fileName) | |
| { | |
| $fileName=basename($fileName); | |
| $fileNameA=explode(".",$fileName); | |
| $return['description']=G::LoadTranslation("MIME_DES_FILE"); | |
| $return['icon']="/images/documents/extension/document.png"; | |
| if (count($fileNameA)>1) { | |
| $extension=$fileNameA[count($fileNameA)-1]; | |
| 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; | |
| } | |
| function get_max_file_size() | |
| { | |
| // get php max_upload_file_size | |
| return calc_php_setting_bytes(ini_get("upload_max_filesize")); | |
| } | |
| function get_max_upload_limit() | |
| { | |
| return calc_php_setting_bytes(ini_get('post_max_size')); | |
| } | |
| function calc_php_setting_bytes($value) | |
| { | |
| //if(@eregi("G$",$value)) { | |
| // $value = substr($value,0,-1); | |
| // $value = round($value*1073741824); | |
| //} elseif (@eregi("M$",$value)) { | |
| // $value = substr($value,0,-1); | |
| // $value = round($value*1048576); | |
| //} elseif (@eregi("K$",$value)) { | |
| // $value = substr($value,0,-1); | |
| // $value = round($value*1024); | |
| //} | |
| if (@preg_match("/G$/i", $value)) { | |
| $value = substr($value, 0, -1); | |
| $value = round($value * 1073741824); | |
| } else { | |
| if (@preg_match("/M$/i", $value)) { | |
| $value = substr($value, 0, -1); | |
| $value = round($value * 1048576); | |
| } else { | |
| if (@preg_match("/K$/i", $value)) { | |
| $value = substr($value, 0, -1); | |
| $value = round($value * 1024); | |
| } | |
| } | |
| } | |
| return $value; | |
| } | |
| function get_abs_item($dir, $item) | |
| { | |
| // get absolute file+path | |
| if (is_array($item)) { | |
| // FTP Mode | |
| $abs_item = '/' . get_abs_dir($dir)."/".$item['name']; | |
| if (get_is_dir($item)) { | |
| $abs_item.='/'; | |
| } | |
| return extPathName($abs_item); | |
| } | |
| return extPathName(get_abs_dir($dir)."/".$item); | |
| } | |
| function extPathName($p_path, $p_addtrailingslash = false) | |
| { | |
| $retval = ""; | |
| $isWin = (substr(PHP_OS, 0, 3) == 'WIN'); | |
| if ($isWin) { | |
| $retval = str_replace('/', '\\', $p_path); | |
| if ($p_addtrailingslash) { | |
| if (substr($retval, -1) != '\\') { | |
| $retval .= '\\'; | |
| } | |
| } | |
| // Check if UNC path | |
| $unc = substr($retval,0,2) == '\\\\' ? 1 : 0; | |
| // Remove double \\ | |
| $retval = str_replace('\\\\', '\\', $retval); | |
| // If UNC path, we have to add one \ in front or everything breaks! | |
| if ($unc == 1) { | |
| $retval = '\\'.$retval; | |
| } | |
| } else { | |
| $retval = str_replace('\\', '/', $p_path); | |
| if ($p_addtrailingslash) { | |
| if (substr($retval, -1) != '/') { | |
| $retval .= '/'; | |
| } | |
| } | |
| // Check if UNC path | |
| $unc = substr($retval,0,2) == '//' ? 1 : 0; | |
| // Remove double // | |
| $retval = str_replace('//','/',$retval); | |
| // If UNC path, we have to add one / in front or everything breaks! | |
| if ($unc == 1) { | |
| $retval = '/'.$retval; | |
| } | |
| } | |
| return $retval; | |
| } | |