Merge branch 'master' of git://github.com/ralpheav/processmaker into ralpheav-master
This commit is contained in:
@@ -3602,7 +3602,7 @@ class Cases
|
||||
$docVersion = $appDocument->getDocVersion();
|
||||
$arrayInfo = pathinfo($appDocument->getAppDocFilename());
|
||||
$extension = (isset($arrayInfo["extension"])) ? $arrayInfo["extension"] : null;
|
||||
$strPathName = PATH_DOCUMENT . $applicationUid . PATH_SEP;
|
||||
$strPathName = PATH_DOCUMENT . G::getPathFromUID($applicationUid) . PATH_SEP;
|
||||
$strFileName = $appDocUid . "_" . $docVersion . "." . $extension;
|
||||
|
||||
switch ($option) {
|
||||
|
||||
@@ -46,8 +46,16 @@ class CLI
|
||||
public static function taskName ($name)
|
||||
{
|
||||
self::$currentTask = $name;
|
||||
self::$tasks[$name] = array ('name' => $name,'description' => null,'args' => array (),'function' => null,'opt' => array ('short' => '','long' => array (),'descriptions' => array ()
|
||||
)
|
||||
self::$tasks[$name] = array (
|
||||
'name' => $name,
|
||||
'description' => null,
|
||||
'args' => array (),
|
||||
'function' => null,
|
||||
'opt' => array (
|
||||
'short' => '',
|
||||
'long' => array (),
|
||||
'descriptions' => array ()
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -915,5 +915,29 @@ class Configurations // extends Configuration
|
||||
|
||||
return array("caseColumns" => $caseColumns, "caseReaderFields" => $caseReaderFields, "rowsperpage" => 20, "dateformat" => "M d, Y");
|
||||
}
|
||||
/**
|
||||
* Set the current Directory structure version, default value 1.
|
||||
* Note.- TAKE CARE for the version value, input/output couln't work at the wrong version.
|
||||
* @param integer $version
|
||||
*/
|
||||
public function setDirectoryStructureVer($version = 1)
|
||||
{
|
||||
$obj = '';
|
||||
$this->loadConfig($obj, 'ENVIRONMENT_SETTINGS', '');
|
||||
$this->aConfig['directoryStructure'] = $version;
|
||||
$this->saveConfig('ENVIRONMENT_SETTINGS', $obj);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the current directory structure version if the array iten 'directoryStructure' doesn't exists it will returns 1.
|
||||
* @return integer
|
||||
*/
|
||||
public function getDirectoryStructureVer()
|
||||
{
|
||||
$obj = '';
|
||||
$this->loadConfig($obj, 'ENVIRONMENT_SETTINGS', '');
|
||||
$ver = isset($this->aConfig['directoryStructure']) ? $this->aConfig['directoryStructure'] : 1;
|
||||
return $ver;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1708,7 +1708,7 @@ function PMFGenerateOutputDocument ($outputID, $sApplication = null, $index = nu
|
||||
}
|
||||
$sFilename = $aFields['APP_DOC_UID'] . "_" . $lastDocVersion;
|
||||
|
||||
$pathOutput = PATH_DOCUMENT . $sApplication . PATH_SEP . 'outdocs' . PATH_SEP; //G::pr($sFilename);die;
|
||||
$pathOutput = PATH_DOCUMENT . G::getPathFromUID($sApplication) . PATH_SEP . 'outdocs' . PATH_SEP; //G::pr($sFilename);die;
|
||||
G::mk_dir( $pathOutput );
|
||||
|
||||
$aProperties = array ();
|
||||
@@ -1747,7 +1747,7 @@ function PMFGenerateOutputDocument ($outputID, $sApplication = null, $index = nu
|
||||
$oAppDocument1 = new AppDocument();
|
||||
$oAppDocument1->update( $aFields );
|
||||
|
||||
$sPathName = PATH_DOCUMENT . $sApplication . PATH_SEP;
|
||||
$sPathName = PATH_DOCUMENT . G::getPathFromUID($sApplication) . PATH_SEP;
|
||||
|
||||
$oData['APP_UID'] = $sApplication;
|
||||
$oData['ATTACHMENT_FOLDER'] = true;
|
||||
|
||||
@@ -4426,6 +4426,7 @@ class processMap
|
||||
$aDirectories[] = array('PATH' => ($sCurrentDirectory != '' ? $sCurrentDirectory . PATH_SEP : '') . $sObject, 'DIRECTORY' => $sObject );
|
||||
} else {
|
||||
$aAux = pathinfo($sPath);
|
||||
$aAux['extension'] = (isset($aAux['extension'])?$aAux['extension']:'');
|
||||
$aFiles[] = array('FILE' => $sObject, 'EXT' => $aAux['extension'] );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -89,6 +89,13 @@ class workspaceTools
|
||||
$stop = microtime(true);
|
||||
$final = $stop - $start;
|
||||
CLI::logging("<*> Process Updating cache view carried out in $final seconds.\n");
|
||||
|
||||
$start = microtime(true);
|
||||
CLI::logging("> Updating cases directories structure...\n");
|
||||
$this->upgradeCasesDirectoryStructure($workSpace);
|
||||
$stop = microtime(true);
|
||||
$final = $stop - $start;
|
||||
CLI::logging("<*> Process Updating directories structure carried out in $final seconds.\n");
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -482,6 +489,97 @@ class workspaceTools
|
||||
// end of reset
|
||||
}
|
||||
|
||||
/**
|
||||
* fix the 32K issue, by migrating /files directory structure to an uid tree structure based.
|
||||
* @param $workspace got the site(s) the manager wants to upgrade
|
||||
*/
|
||||
public function upgradeCasesDirectoryStructure ($workspace)
|
||||
{
|
||||
define('PATH_DOCUMENT', PATH_DATA . 'sites/' . $workspace . '/' . 'files/');
|
||||
$doclevel = explode('/', PATH_DOCUMENT);
|
||||
$length = sizeof(PATH_DOCUMENT);
|
||||
$filesDir = $doclevel[$length - 1];
|
||||
|
||||
if (is_dir(PATH_DOCUMENT) && is_writable($filesDir)) {
|
||||
CLI::logging("Error:" . PATH_DOCUMENT . " is not writable... please check the su permissions.\n");
|
||||
return;
|
||||
}
|
||||
|
||||
$directory = array();
|
||||
$blackHoleDir = G::getBlackHoleDir();
|
||||
$directory = glob(PATH_DOCUMENT . "*", GLOB_ONLYDIR);
|
||||
$dirslength = sizeof($directory);
|
||||
|
||||
if (! @chdir(PATH_DOCUMENT)) {
|
||||
CLI::logging("Cannot use Document directory. The upgrade must be done as root.\n");
|
||||
return;
|
||||
}
|
||||
|
||||
//Start migration
|
||||
for ($index = 0; $index < $dirslength; $index++) {
|
||||
$depthdirlevel = explode('/', $directory[$index]);
|
||||
$lastlength = sizeof($depthdirlevel);
|
||||
$UIdDir = $depthdirlevel[$lastlength - 1];
|
||||
$lenDir = strlen($UIdDir);
|
||||
|
||||
if ($lenDir == 32 && $UIdDir != $blackHoleDir) {
|
||||
$len = count(scandir($UIdDir));
|
||||
if ($len > 2) {
|
||||
//lenght = 2, because the function check . and .. dir links
|
||||
$newDiretory = G::getPathFromUIDPlain($UIdDir);
|
||||
CLI::logging("Migrating $UIdDir to $newDiretory\n");
|
||||
G::mk_dir($newDiretory);
|
||||
//echo `cp -R $UIdDir/* $newDiretory/`;
|
||||
if (G::recursive_copy($UIdDir, $newDiretory)) {
|
||||
CLI::logging("Removing $UIdDir...\n");
|
||||
G::rm_dir($UIdDir);
|
||||
rmdir($UIdDir);//remove the diretory itself, G::rm_dir cannot do it
|
||||
} else {
|
||||
CLI::logging("Error: Failure at coping from $UIdDir...\n");
|
||||
}
|
||||
} else {
|
||||
CLI::logging("$UIdDir is empty, removing it\n");
|
||||
rmdir($UIdDir);//remove the diretory itself
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Start '0' directory migration
|
||||
$black = PATH_DOCUMENT . $blackHoleDir . '/';
|
||||
if (is_dir($black)) {
|
||||
$newpattern = array();
|
||||
$file = glob($black . '*.*');//files only
|
||||
$dirlen = count($file);
|
||||
|
||||
for ($index = 0; $index < $dirlen; $index++) {
|
||||
$levelfile = explode('/', $file[$index]);
|
||||
$lastlevel = sizeof($levelfile);
|
||||
$goalFile = $levelfile[$lastlevel - 1];
|
||||
$newpattern = G::getPathFromFileUIDPlain($blackHoleDir, $goalFile);
|
||||
CLI::logging("Migrating $blackHoleDir file: $goalFile\n");
|
||||
G::mk_dir($blackHoleDir . '/' . $newpattern[0]);
|
||||
//echo `cp -R $black$goalFile $black$newpattern[0]/$newpattern[1]`;
|
||||
if (copy($black . $goalFile, $black . $newpattern[0] . '/' . $newpattern[1])) {
|
||||
unlink($file[$index]);
|
||||
} else {
|
||||
CLI::logging("Error: Failure at copy $file[$index] files...\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Set value of 2 to the directory structure version.
|
||||
$this->initPropel(true);
|
||||
G::LoadClass("configuration");
|
||||
$conf = new Configurations();
|
||||
if ($conf->exists("ENVIRONMENT_SETTINGS")) {
|
||||
$conf->setDirectoryStructureVer(2);
|
||||
CLI::logging("Please notice Version Directory Structure is 2 now.\n");
|
||||
} else {
|
||||
CLI::logging("Error: Issue found at try to use ENVIRONMENT_SETTINGS row.\n");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Upgrade this workspace database to the latest plugins schema
|
||||
*/
|
||||
|
||||
@@ -434,7 +434,7 @@ class AppFolder extends BaseAppFolder
|
||||
$info = pathinfo($oAppDocument->getAppDocFilename());
|
||||
|
||||
$version = (!empty($docVersion))? "_" . $docVersion : "_1";
|
||||
$outDocPath = PATH_DOCUMENT . $row1["APP_UID"] . PATH_SEP . "outdocs" . PATH_SEP;
|
||||
$outDocPath = PATH_DOCUMENT . G::getPathFromUID($row1["APP_UID"]) . PATH_SEP . "outdocs" . PATH_SEP;
|
||||
|
||||
if (file_exists($outDocPath . $appDocUid . $version . ".pdf") ||
|
||||
file_exists($outDocPath . $info["basename"] . $version . ".pdf") ||
|
||||
|
||||
@@ -177,8 +177,12 @@ class Translation extends BaseTranslation
|
||||
|
||||
//$json = new Services_JSON(); DEPRECATED
|
||||
$f = fopen( $cacheFileJS, 'w' );
|
||||
fwrite( $f, "var G_STRINGS =" . Bootstrap::json_encode( $translationJS ) . ";\n" );
|
||||
fclose( $f );
|
||||
if ($f==false) {
|
||||
echo "Error: Cannot write into cachefilejs: $cacheFileJS\n";
|
||||
} else {
|
||||
fwrite( $f, "var G_STRINGS =" . Bootstrap::json_encode( $translationJS ) . ";\n" );
|
||||
fclose( $f );
|
||||
}
|
||||
|
||||
$res['cacheFile'] = $cacheFile;
|
||||
$res['cacheFileJS'] = $cacheFileJS;
|
||||
|
||||
Reference in New Issue
Block a user